From c95bbd649b89655c2f85260fe789b0411b4151df Mon Sep 17 00:00:00 2001 From: lixinran Date: Thu, 9 Oct 2025 16:02:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=92=8C=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加图片数据库字段支持 --- .DS_Store | Bin 8196 -> 8196 bytes README.md | 4 +- backend/mindmap.db | Bin 3092480 -> 6283264 bytes backend/mindmap/ai_service.py | 2 +- ...de_image_height_node_image_url_and_more.py | 33 + backend/mindmap/models.py | 7 + backend/mindmap/views_doc.py | 28 +- frontend/.DS_Store | Bin 6148 -> 8196 bytes ...{index-5b39da23.css => index-3cdbb183.css} | 2 +- frontend/dist/assets/index-7802977e.js | 606 ++ frontend/dist/assets/index-a09f7810.js | 594 -- .../{index-a46c0a22.js => index-c6bfb612.js} | 2 +- .../{pdf-e6f26e66.js => pdf-869d0c0b.js} | 2 +- frontend/dist/index.html | 4 +- frontend/src/components/AISidebar.vue | 262 +- frontend/src/components/MindMap.vue | 24 +- frontend/src/lib/mind-elixir/src/utils/dom.ts | 4 +- frontend/src/utils/markdownRenderer.js | 16 +- mind-elixir-core-master/.eslintignore | 4 - mind-elixir-core-master/.eslintrc.cjs | 16 - mind-elixir-core-master/.github/FUNDING.yml | 12 - .../.github/ISSUE_TEMPLATE/bug_report.md | 38 - .../.github/ISSUE_TEMPLATE/feature_request.md | 20 - .../.github/workflows/npm-publish.yml | 60 - mind-elixir-core-master/.gitignore | 32 - mind-elixir-core-master/.husky/commit-msg | 4 - mind-elixir-core-master/.husky/pre-commit | 4 - mind-elixir-core-master/.husky/pre-push | 4 - mind-elixir-core-master/.npmignore | 74 - mind-elixir-core-master/.prettierrc.json | 9 - mind-elixir-core-master/LICENSE | 21 - mind-elixir-core-master/api-extractor.json | 396 - mind-elixir-core-master/build.js | 47 - mind-elixir-core-master/commitlint.config.js | 107 - mind-elixir-core-master/index.css | 177 - mind-elixir-core-master/index.html | 40 - mind-elixir-core-master/katex.css | 1 - mind-elixir-core-master/package-lock.json | 7715 ----------------- mind-elixir-core-master/package.json | 108 - mind-elixir-core-master/playwright.config.ts | 81 - mind-elixir-core-master/pnpm-lock.yaml | 4550 ---------- mind-elixir-core-master/readme.md | 432 - .../refs/scale-calc.excalidraw | 1720 ---- mind-elixir-core-master/src/arrow.ts | 556 -- mind-elixir-core-master/src/const.ts | 62 - mind-elixir-core-master/src/dev.dist.ts | 68 - mind-elixir-core-master/src/dev.ts | 192 - mind-elixir-core-master/src/docs.ts | 26 - .../src/exampleData/1.cn.ts | 544 -- mind-elixir-core-master/src/exampleData/1.ts | 623 -- mind-elixir-core-master/src/exampleData/2.ts | 114 - mind-elixir-core-master/src/exampleData/3.ts | 2646 ------ .../src/exampleData/htmlText.ts | 6 - mind-elixir-core-master/src/i18n.ts | 165 - .../src/icons/add-circle.svg | 7 - mind-elixir-core-master/src/icons/full.svg | 1 - mind-elixir-core-master/src/icons/left.svg | 1 - mind-elixir-core-master/src/icons/living.svg | 1 - .../src/icons/minus-circle.svg | 7 - mind-elixir-core-master/src/icons/right.svg | 1 - mind-elixir-core-master/src/icons/side.svg | 1 - mind-elixir-core-master/src/icons/zoomin.svg | 1 - mind-elixir-core-master/src/icons/zoomout.svg | 1 - mind-elixir-core-master/src/index.less | 374 - mind-elixir-core-master/src/index.ts | 198 - mind-elixir-core-master/src/interact.ts | 407 - mind-elixir-core-master/src/linkDiv.ts | 107 - mind-elixir-core-master/src/methods.ts | 131 - mind-elixir-core-master/src/mouse.ts | 161 - mind-elixir-core-master/src/nodeOperation.ts | 314 - .../src/plugin/contextMenu.less | 66 - .../src/plugin/contextMenu.ts | 229 - .../src/plugin/exportImage.ts | 263 - .../src/plugin/keypress.ts | 242 - .../src/plugin/nodeDraggable.ts | 174 - .../src/plugin/operationHistory.ts | 124 - .../src/plugin/selection.ts | 94 - .../src/plugin/toolBar.less | 40 - mind-elixir-core-master/src/plugin/toolBar.ts | 85 - mind-elixir-core-master/src/summary.ts | 241 - mind-elixir-core-master/src/types/dom.ts | 61 - mind-elixir-core-master/src/types/global.ts | 7 - mind-elixir-core-master/src/types/index.ts | 249 - .../src/utils/LinkDragMoveHelper.ts | 61 - mind-elixir-core-master/src/utils/dom.ts | 248 - .../src/utils/domManipulation.ts | 62 - .../src/utils/dragMoveHelper.ts | 19 - .../src/utils/generateBranch.ts | 80 - mind-elixir-core-master/src/utils/index.ts | 192 - .../src/utils/layout-ssr.ts | 321 - mind-elixir-core-master/src/utils/layout.ts | 80 - .../src/utils/objectManipulation.ts | 77 - mind-elixir-core-master/src/utils/pubsub.ts | 117 - mind-elixir-core-master/src/utils/svg.ts | 189 - mind-elixir-core-master/src/utils/theme.ts | 18 - mind-elixir-core-master/src/vite-env.d.ts | 1 - .../tests/MindElixirFixture.ts | 110 - mind-elixir-core-master/tests/arrow.spec.ts | 729 -- .../tests/drag-and-drop.spec.ts | 58 - .../DnD-move-after-1-chromium-win32.png | Bin 12961 -> 0 bytes .../DnD-move-before-1-chromium-win32.png | Bin 12903 -> 0 bytes .../DnD-move-in-1-chromium-win32.png | Bin 9136 -> 0 bytes .../tests/expand-collapse.spec.ts | 191 - .../tests/interaction.spec.ts | 103 - .../Add-Before-1-chromium-win32.png | Bin 9602 -> 0 bytes .../Add-Child-1-chromium-win32.png | Bin 9000 -> 0 bytes .../Add-Parent-1-chromium-win32.png | Bin 8954 -> 0 bytes .../Add-Sibling-1-chromium-win32.png | Bin 9629 -> 0 bytes .../Clear-and-reset-1-chromium-win32.png | Bin 9301 -> 0 bytes .../Copy-and-Paste-1-chromium-win32.png | Bin 13194 -> 0 bytes .../Edit-Node-1-chromium-win32.png | Bin 10221 -> 0 bytes .../Remove-Node-1-chromium-win32.png | Bin 8226 -> 0 bytes .../tests/keyboard-undo-redo.spec.ts | 235 - .../tests/mind-elixir-test.ts | 46 - .../tests/multiple-instance.spec.ts | 50 - ...ld-To-Data2-Correctly-1-chromium-win32.png | Bin 24942 -> 0 bytes .../tests/multiple-node.spec.ts | 94 - .../Multiple-Copy-1-chromium-win32.png | Bin 16093 -> 0 bytes .../Multiple-Move-After-1-chromium-win32.png | Bin 13398 -> 0 bytes .../Multiple-Move-Before-1-chromium-win32.png | Bin 13310 -> 0 bytes .../Multiple-Move-In-1-chromium-win32.png | Bin 13015 -> 0 bytes .../tests/operation-history.spec.ts | 293 - .../tests/simple-undo-redo.spec.ts | 139 - mind-elixir-core-master/tests/summary.spec.ts | 310 - .../tests/topic-select.spec.ts | 85 - .../tests/undo-redo.spec.ts | 231 - mind-elixir-core-master/tsconfig.json | 28 - mind-elixir-core-master/vite.config.ts | 61 - 128 files changed, 940 insertions(+), 29140 deletions(-) create mode 100644 backend/mindmap/migrations/0003_node_image_fit_node_image_height_node_image_url_and_more.py rename frontend/dist/assets/{index-5b39da23.css => index-3cdbb183.css} (58%) create mode 100644 frontend/dist/assets/index-7802977e.js delete mode 100644 frontend/dist/assets/index-a09f7810.js rename frontend/dist/assets/{index-a46c0a22.js => index-c6bfb612.js} (99%) rename frontend/dist/assets/{pdf-e6f26e66.js => pdf-869d0c0b.js} (99%) delete mode 100644 mind-elixir-core-master/.eslintignore delete mode 100644 mind-elixir-core-master/.eslintrc.cjs delete mode 100644 mind-elixir-core-master/.github/FUNDING.yml delete mode 100644 mind-elixir-core-master/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 mind-elixir-core-master/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 mind-elixir-core-master/.github/workflows/npm-publish.yml delete mode 100644 mind-elixir-core-master/.gitignore delete mode 100644 mind-elixir-core-master/.husky/commit-msg delete mode 100644 mind-elixir-core-master/.husky/pre-commit delete mode 100644 mind-elixir-core-master/.husky/pre-push delete mode 100644 mind-elixir-core-master/.npmignore delete mode 100644 mind-elixir-core-master/.prettierrc.json delete mode 100644 mind-elixir-core-master/LICENSE delete mode 100644 mind-elixir-core-master/api-extractor.json delete mode 100644 mind-elixir-core-master/build.js delete mode 100644 mind-elixir-core-master/commitlint.config.js delete mode 100644 mind-elixir-core-master/index.css delete mode 100644 mind-elixir-core-master/index.html delete mode 100644 mind-elixir-core-master/katex.css delete mode 100644 mind-elixir-core-master/package-lock.json delete mode 100644 mind-elixir-core-master/package.json delete mode 100644 mind-elixir-core-master/playwright.config.ts delete mode 100644 mind-elixir-core-master/pnpm-lock.yaml delete mode 100644 mind-elixir-core-master/readme.md delete mode 100644 mind-elixir-core-master/refs/scale-calc.excalidraw delete mode 100644 mind-elixir-core-master/src/arrow.ts delete mode 100644 mind-elixir-core-master/src/const.ts delete mode 100644 mind-elixir-core-master/src/dev.dist.ts delete mode 100644 mind-elixir-core-master/src/dev.ts delete mode 100644 mind-elixir-core-master/src/docs.ts delete mode 100644 mind-elixir-core-master/src/exampleData/1.cn.ts delete mode 100644 mind-elixir-core-master/src/exampleData/1.ts delete mode 100644 mind-elixir-core-master/src/exampleData/2.ts delete mode 100644 mind-elixir-core-master/src/exampleData/3.ts delete mode 100644 mind-elixir-core-master/src/exampleData/htmlText.ts delete mode 100644 mind-elixir-core-master/src/i18n.ts delete mode 100644 mind-elixir-core-master/src/icons/add-circle.svg delete mode 100644 mind-elixir-core-master/src/icons/full.svg delete mode 100644 mind-elixir-core-master/src/icons/left.svg delete mode 100644 mind-elixir-core-master/src/icons/living.svg delete mode 100644 mind-elixir-core-master/src/icons/minus-circle.svg delete mode 100644 mind-elixir-core-master/src/icons/right.svg delete mode 100644 mind-elixir-core-master/src/icons/side.svg delete mode 100644 mind-elixir-core-master/src/icons/zoomin.svg delete mode 100644 mind-elixir-core-master/src/icons/zoomout.svg delete mode 100644 mind-elixir-core-master/src/index.less delete mode 100644 mind-elixir-core-master/src/index.ts delete mode 100644 mind-elixir-core-master/src/interact.ts delete mode 100644 mind-elixir-core-master/src/linkDiv.ts delete mode 100644 mind-elixir-core-master/src/methods.ts delete mode 100644 mind-elixir-core-master/src/mouse.ts delete mode 100644 mind-elixir-core-master/src/nodeOperation.ts delete mode 100644 mind-elixir-core-master/src/plugin/contextMenu.less delete mode 100644 mind-elixir-core-master/src/plugin/contextMenu.ts delete mode 100644 mind-elixir-core-master/src/plugin/exportImage.ts delete mode 100644 mind-elixir-core-master/src/plugin/keypress.ts delete mode 100644 mind-elixir-core-master/src/plugin/nodeDraggable.ts delete mode 100644 mind-elixir-core-master/src/plugin/operationHistory.ts delete mode 100644 mind-elixir-core-master/src/plugin/selection.ts delete mode 100644 mind-elixir-core-master/src/plugin/toolBar.less delete mode 100644 mind-elixir-core-master/src/plugin/toolBar.ts delete mode 100644 mind-elixir-core-master/src/summary.ts delete mode 100644 mind-elixir-core-master/src/types/dom.ts delete mode 100644 mind-elixir-core-master/src/types/global.ts delete mode 100644 mind-elixir-core-master/src/types/index.ts delete mode 100644 mind-elixir-core-master/src/utils/LinkDragMoveHelper.ts delete mode 100644 mind-elixir-core-master/src/utils/dom.ts delete mode 100644 mind-elixir-core-master/src/utils/domManipulation.ts delete mode 100644 mind-elixir-core-master/src/utils/dragMoveHelper.ts delete mode 100644 mind-elixir-core-master/src/utils/generateBranch.ts delete mode 100644 mind-elixir-core-master/src/utils/index.ts delete mode 100644 mind-elixir-core-master/src/utils/layout-ssr.ts delete mode 100644 mind-elixir-core-master/src/utils/layout.ts delete mode 100644 mind-elixir-core-master/src/utils/objectManipulation.ts delete mode 100644 mind-elixir-core-master/src/utils/pubsub.ts delete mode 100644 mind-elixir-core-master/src/utils/svg.ts delete mode 100644 mind-elixir-core-master/src/utils/theme.ts delete mode 100644 mind-elixir-core-master/src/vite-env.d.ts delete mode 100644 mind-elixir-core-master/tests/MindElixirFixture.ts delete mode 100644 mind-elixir-core-master/tests/arrow.spec.ts delete mode 100644 mind-elixir-core-master/tests/drag-and-drop.spec.ts delete mode 100644 mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-after-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-before-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-in-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/expand-collapse.spec.ts delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Before-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Child-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Parent-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Sibling-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Clear-and-reset-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Copy-and-Paste-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Edit-Node-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Remove-Node-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/keyboard-undo-redo.spec.ts delete mode 100644 mind-elixir-core-master/tests/mind-elixir-test.ts delete mode 100644 mind-elixir-core-master/tests/multiple-instance.spec.ts delete mode 100644 mind-elixir-core-master/tests/multiple-instance.spec.ts-snapshots/Add-Child-To-Data2-Correctly-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/multiple-node.spec.ts delete mode 100644 mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Copy-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-After-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-Before-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-In-1-chromium-win32.png delete mode 100644 mind-elixir-core-master/tests/operation-history.spec.ts delete mode 100644 mind-elixir-core-master/tests/simple-undo-redo.spec.ts delete mode 100644 mind-elixir-core-master/tests/summary.spec.ts delete mode 100644 mind-elixir-core-master/tests/topic-select.spec.ts delete mode 100644 mind-elixir-core-master/tests/undo-redo.spec.ts delete mode 100644 mind-elixir-core-master/tsconfig.json delete mode 100644 mind-elixir-core-master/vite.config.ts diff --git a/.DS_Store b/.DS_Store index 73839c756f74e9ca6966347b63354fea99884619..3dc96eb7f555596f450edf96b229b5b4772a1565 100644 GIT binary patch delta 92 zcmZp1XmOa}&nUSuU^hRby<%fXPwP{feW wkjGHMkP0MI%7TmXa`N-i85kHCH~$kl$G9=snQ1e-#5b17tRlxZCOa?z0MY*&Pyhe` delta 46 zcmZp1XmOa}&nUhzU^hRb_+}n~Jf_J(!tImKi|B9G5Shcc`3#RW^JaF5Z!8-#*qH%l Cj}Hm} diff --git a/README.md b/README.md index ff5e022..a23428a 100644 --- a/README.md +++ b/README.md @@ -165,7 +165,7 @@ MindMap/ │ ├── test-*.html # 功能测试文件 │ ├── package.json # 前端依赖 │ └── vite.config.js # Vite配置 -├── mind-elixir-core-master/ # MindElixir完整源码 +../mind-elixir-core-master/ # MindElixir完整源码(平级目录) │ ├── src/ # TypeScript源码 │ ├── tests/ # 测试套件 │ ├── dist/ # 编译后文件 @@ -410,7 +410,7 @@ MIT License - 详见 [LICENSE](LICENSE) 文件 - ✅ **MindElixir增强**: 集成了自定义的Markdown和表格渲染功能 ### 文件结构优化 -- **保留**: `mind-elixir-core-master/` - 完整的源码和文档 +- **保留**: `../mind-elixir-core-master/` - 完整的源码和文档(平级目录) - **保留**: `frontend/src/lib/mind-elixir/` - 项目中使用的增强版本 - **保留**: 核心测试文件 - 用于功能验证和问题调试 - **删除**: 重复的调试文件和过时的测试文件 diff --git a/backend/mindmap.db b/backend/mindmap.db index 08c3c3690cd3354825bd1d54fa4d2a17a45a975e..52da9d25f4967790c4355464aaa3e2cf6c733b93 100644 GIT binary patch delta 1028375 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

VX5>g8sA)XUBKsF$1dQ7<>^qh4;-N4?yv zk9xUTAN6vxKI-LWz2fC2o#N#to#NF@x}2bRxlN~dHJc8fxk;yZxk;yZxk;yZxk;yZ zxk;yZxk;yZxk;yZxk;yZxk;yZxk;yZxk;yZxk;yZxk;yZRg(@ToZ{s+o#It(I`uO* z=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(F=@c(a zI(1w|@p79^@xrFlK68^!@p6++@p6++@p6++@p6++@p6++@p6++@p6++@p6++@p6++ z@p6++@p6++@p6++@!re3aEkXH^7wAzUBo+ycW8`wZztYHyp?zhaUAhx;$Mhki8m2% zB#z-Big-uUiBZHGh}RQG5=RiT#0)V_Oc9gB1aUZV7;z{ucO4xJAr2-EB3?@zNW6x4 zHE{s3Kd~S2D&m#IzQjJn-kdq_6?EcqVlU!l#7l{n5HBY7Bwj?kkl2HG0r7ldcj9@( zZW?nDZ&x}|L+nEAOpFs_#3)fAMu=geObii&8pGZIu@lj+GAD$+J~~lNtRhwtD~KJ5 z9f;==%ZX*gQep|QnCK;Xh!TkMANIDV6YYpa#B+#kiEW6jiLHn&i7kkQ#OB0i!~&w5 z=;Gx+>~+!!2hmQn5v@cE(M&WEjYI=cPZWs)QOD`|o%kCs|6$LsbmAA{G2+j}e-nQq z{z&|R_%Gu3#P5jT62BoHC4No(Dn|!j62BlGA%3n=_8cZ2A~q2li4DYq8l&C=#7~L) ziJuVn5py5Y!AHcs#1Dxd5Z@=hM|_v~4)JZ`9^zZXH;KE6ZxH{`HZL~QBIIOJdI=zPb1mG(@6I4G?G0$iDVB?BH6=}NcQj~l07_$WDidw z*~61a_V6TTCz0&oNhEuC63HH(M6!n`k?cVdsqMe);b|m$cpAwbo<_2Vr;+U8 zNhEuC63HH(M6!n`k?i3~Bzt%g$sV3WvWF*;?BPiydw3Gb9-c(9XFV_fvWKUU>^YuB zPg5GLBd#T`A+9DqMSPODiueTaapGgdmBbaqM{{(roVbj*l(>Yrn7D|zkhp;O2ys4< z5$6%-66X+S6LSyK!7O4O@gd?&;tb++;xvs>@7Khyh+h)FARZy|iY)5o6US5+$y~k^^&uq^5!YFn1)6ApZo@ZU|lym=trQajnyWQ`*>)o5totTfV z#2xPL?n~T#U8~#$?vCy@uA{D>T=lN^U9Y${y8^B$t~%F9*H~A~)z{Ts3u8^m`NZR& z&!f-Xh+T;_#4f~KXF7-zW5lRgT~Vz4qcfKfFDCXRUPQc**n@Zh@qY|jPN*sQqp9MMNo+wZBsM2DBNh

I3_x|BHSgo9`& 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

}m^x|{eWpA=hwH!BXGF~uzZODs) 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

Qc5vgAEuACXmVf|(}pdi%zs1* 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 lSn+dtpo99~11L?wuAghu`RKIfZq$H>g5p`t17m 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%0A>Y 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 YnJ5>zwtMS1-lz@SGEu5mm+z4OA1yohIsgCw diff --git a/backend/mindmap/ai_service.py b/backend/mindmap/ai_service.py index 377b98f..262ef15 100644 --- a/backend/mindmap/ai_service.py +++ b/backend/mindmap/ai_service.py @@ -77,7 +77,7 @@ def call_ai_api(system_prompt, user_prompt, model="glm-4.5", base_url="https://o model=model, messages=messages, temperature=0.7, - max_tokens=4000, # 减少token限制,提高响应速度 + max_tokens=8000, # 增加token限制,确保完整内容生成 stream=stream ) except Exception as e: diff --git a/backend/mindmap/migrations/0003_node_image_fit_node_image_height_node_image_url_and_more.py b/backend/mindmap/migrations/0003_node_image_fit_node_image_height_node_image_url_and_more.py new file mode 100644 index 0000000..c5829d2 --- /dev/null +++ b/backend/mindmap/migrations/0003_node_image_fit_node_image_height_node_image_url_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.7 on 2025-10-09 07:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mindmap', '0002_rename_mindmapnode_node'), + ] + + operations = [ + migrations.AddField( + model_name='node', + name='image_fit', + field=models.CharField(blank=True, default='contain', max_length=20), + ), + migrations.AddField( + model_name='node', + name='image_height', + field=models.IntegerField(blank=True, default=80, null=True), + ), + migrations.AddField( + model_name='node', + name='image_url', + field=models.URLField(blank=True, max_length=1000, null=True), + ), + migrations.AddField( + model_name='node', + name='image_width', + field=models.IntegerField(blank=True, default=120, null=True), + ), + ] diff --git a/backend/mindmap/models.py b/backend/mindmap/models.py index d0b7767..9dec538 100644 --- a/backend/mindmap/models.py +++ b/backend/mindmap/models.py @@ -28,6 +28,13 @@ class Node(models.Model): depth = models.IntegerField(default=0) # depth title = models.CharField(max_length=500, blank=True, default='') # title desc = models.TextField(blank=True, default='') # des + + # 图片相关字段 + image_url = models.URLField(max_length=1000, blank=True, null=True) # 图片URL + image_width = models.IntegerField(default=120, null=True, blank=True) # 图片宽度 + image_height = models.IntegerField(default=80, null=True, blank=True) # 图片高度 + image_fit = models.CharField(max_length=20, default='contain', blank=True) # 图片适配方式 + created_at = models.DateTimeField(auto_now_add=True) # createDate updated_at = models.DateTimeField(auto_now=True) # updateDate deleted = models.BooleanField(default=False) # delete diff --git a/backend/mindmap/views_doc.py b/backend/mindmap/views_doc.py index 942112b..bbd7bb2 100644 --- a/backend/mindmap/views_doc.py +++ b/backend/mindmap/views_doc.py @@ -39,7 +39,7 @@ def convert_to_mindelixir_format(mindmap, nodes): # 创建节点映射 node_map = {} for node in nodes: - node_map[str(node.id)] = { + node_data = { "id": str(node.id), "topic": node.title or "无标题", "data": { @@ -50,6 +50,17 @@ def convert_to_mindelixir_format(mindmap, nodes): "mindmapId": mindmap.id, "mindmap_id": mindmap.id } + + # 添加图片信息 + if node.image_url: + node_data["image"] = { + "url": node.image_url, + "width": node.image_width or 120, + "height": node.image_height or 80, + "fit": node.image_fit or "contain" + } + + node_map[str(node.id)] = node_data # 构建树形结构 root_nodes = [] @@ -159,6 +170,11 @@ def create_mindmap(request): children_count=0, depth=0, deleted=False, + # 添加图片信息 + image_url=mindmap_data.get('image', {}).get('url') if mindmap_data.get('image') else None, + image_width=mindmap_data.get('image', {}).get('width') if mindmap_data.get('image') else None, + image_height=mindmap_data.get('image', {}).get('height') if mindmap_data.get('image') else None, + image_fit=mindmap_data.get('image', {}).get('fit') if mindmap_data.get('image') else 'contain', ) # 递归创建所有子节点 @@ -180,6 +196,11 @@ def create_mindmap(request): children_count=0, depth=0, deleted=False, + # 图片字段默认为空 + image_url=None, + image_width=None, + image_height=None, + image_fit='contain', ) # 返回完整数据 @@ -205,6 +226,11 @@ def create_nodes_recursively(nodes_data, mindmap, parent_id): children_count=len(node_data.get('children', [])), depth=1, # 可以根据实际层级计算 deleted=False, + # 添加图片信息 + image_url=node_data.get('image', {}).get('url') if node_data.get('image') else None, + image_width=node_data.get('image', {}).get('width') if node_data.get('image') else None, + image_height=node_data.get('image', {}).get('height') if node_data.get('image') else None, + image_fit=node_data.get('image', {}).get('fit') if node_data.get('image') else 'contain', ) # 递归创建子节点 diff --git a/frontend/.DS_Store b/frontend/.DS_Store index 435e640fc751667c0735d60de9c932b53e8e924c..a6e74e6444c7af23e058c1fa5cc46b1de42d11f4 100644 GIT binary patch literal 8196 zcmeHM&1(}u6n~qh?WVQ1g0{Vg3tnsNm(tctjOoFHppEE3B_`RJ#%^{(J{qAEa<-lY zMZAeeZ{kJhP4o{?&`SmX2|>``e59G(G_?njLT6y+&Ca~vyf?p@o#E{gk(F$?Gena_ zWFvDqHjHAA#QS;fN)gp^2GRnasNfZ6(s@>{bm^J~!+>GHFkl!k3>XFu2LrgXd9r)l z`?A-Rh5^ICkz|0M4-PVy2_;)nilYOC2mv6YXch@|!~p{1D49^QC8dC3Oc^~`3Tmkk z!;*0HJ6s(yp=3)+2`5X!$x@ar6`@$dI&h9qCo3VPDGdXLfo=wP?A}jtTBj1#yW;nW zU~ieFQaO+1&}#q6tbBUA@ZoY;!~Kg!WmW$|Al}v}xv*ZN`c;qR)%d)Fj~)Ll5^DUA zQF?)|3=4_xdY|rNWX5^FEq&a@mRZNcz4`Cg z3S}uzYbcAD=Q+%liRU;y#M(0QLo?q3D#%!HgkHFxA>05gHz)^tCCUeFM2h?A>WtFp zH?A8POJ{Lu>vfyOkWPoWUOGBkG`a&b6r&Yd#{N#xHOM%2h#T}=?ERP8-tPm4)$sg? z@47v-a?M&ry+`kI6|YpQPfvfgB7M>RfkAuF9=7kLS6MS%&(<5YWVU*TKiy=^%eCv- z+^tffnHf8Ih57Yt$uCp|pyU>ya`$%0cUd#Z8opZ-*tG1hV|FYvHo37eJ2yY&%wJgC zoN_i6XQxr0ySTX-vrnBpe`zJN=9PW+nA3o3T3zQfBA<6lzB|;M^>rG0`t@U{M_-}w zXFsYti{d;|IQ>oU?$uXiWa2tEtZ?h;s_!wM?+5PP@%Gt>b;|R7Ob@Wrig?1l4z8Mb zoAveJqnczGIGhahNw+3>{J-4$`~Tr|-gspgFbw1J)IDhg_p^nMRMG7{S1~4vW=im@z25JHV0d64S3evx^@H_Klei=`YX$(vdlR=g- KY>wxd!wdjWrWnEi diff --git a/frontend/dist/assets/index-5b39da23.css b/frontend/dist/assets/index-3cdbb183.css similarity index 58% rename from frontend/dist/assets/index-5b39da23.css rename to frontend/dist/assets/index-3cdbb183.css index 9f20b00..8d01c65 100644 --- a/frontend/dist/assets/index-5b39da23.css +++ b/frontend/dist/assets/index-3cdbb183.css @@ -1 +1 @@ -.map-container{-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif;-webkit-user-select:none;user-select:none;height:100%;width:100%;overflow:hidden;font-size:15px;outline:none;touch-action:none;background-color:var(--bgcolor)}.map-container *{box-sizing:border-box}.map-container::-webkit-scrollbar{width:0px;height:0px}.map-container .selected{outline:2px solid var(--selected);outline-offset:1px}.map-container .hyper-link{text-decoration:none;margin-left:.3em}.map-container me-main>me-wrapper>me-parent>me-epd{top:50%;transform:translateY(-50%)}.map-container me-epd{top:100%;transform:translateY(-50%)}.map-container .lhs{direction:rtl}.map-container .lhs>me-wrapper>me-parent>me-epd{left:-10px}.map-container .lhs me-epd{left:5px}.map-container .lhs me-tpc{direction:ltr}.map-container .rhs>me-wrapper>me-parent>me-epd{right:-10px}.map-container .rhs me-epd{right:5px}.map-container .map-canvas{position:relative;-webkit-user-select:none;user-select:none;width:fit-content;transform:scale(1)}.map-container .map-canvas me-nodes{position:relative;display:flex;justify-content:center;align-items:center;height:max-content;width:max-content;padding:var(--map-padding)}.map-container me-main>me-wrapper{position:relative;margin:var(--main-gap-y) var(--main-gap-x)}.map-container me-main>me-wrapper>me-parent{margin:10px;padding:0}.map-container me-main>me-wrapper>me-parent>me-tpc{border-radius:var(--main-radius);background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);padding:8px 25px}.map-container me-wrapper{display:block;pointer-events:none;width:fit-content}.map-container me-children,.map-container me-parent{display:inline-block;vertical-align:middle}.map-container me-root{position:relative;margin:45px 0;z-index:10}.map-container me-root me-tpc{font-size:25px;color:var(--root-color);padding:10px 30px;border-radius:var(--root-radius);border:var(--root-border-color) 2px solid;background-color:var(--root-bgcolor)}.map-container me-parent{position:relative;cursor:pointer;padding:6px var(--node-gap-x);margin-top:var(--node-gap-y);z-index:10}.map-container me-parent me-tpc{position:relative;border-radius:3px;color:var(--color);padding:var(--topic-padding)}.map-container me-parent me-tpc .insert-preview{position:absolute;width:100%;left:0;z-index:9}.map-container me-parent me-tpc .show{background:#7ad5ff;pointer-events:none;opacity:.7;border-radius:3px}.map-container me-parent me-tpc .before{height:14px;top:-14px}.map-container me-parent me-tpc .in{height:100%;top:0}.map-container me-parent me-tpc .after{height:14px;bottom:-14px}.map-container me-parent me-epd{position:absolute;height:18px;width:18px;opacity:.8;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NDcxNzI0MiIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNDgwaC0xMzguNjY2NjY3VjM0MS4zMzMzMzNjMC0xNy4wNjY2NjctMTQuOTMzMzMzLTMyLTMyLTMycy0zMiAxNC45MzMzMzMtMzIgMzJ2MTM4LjY2NjY2N0gzNDEuMzMzMzMzYy0xNy4wNjY2NjcgMC0zMiAxNC45MzMzMzMtMzIgMzJzMTQuOTMzMzMzIDMyIDMyIDMyaDEzOC42NjY2NjdWNjgyLjY2NjY2N2MwIDE3LjA2NjY2NyAxNC45MzMzMzMgMzIgMzIgMzJzMzItMTQuOTMzMzMzIDMyLTMydi0xMzguNjY2NjY3SDY4Mi42NjY2NjdjMTcuMDY2NjY3IDAgMzItMTQuOTMzMzMzIDMyLTMycy0xNC45MzMzMzMtMzItMzItMzJ6Ij48L3BhdGg+Cjwvc3ZnPg==);background-repeat:no-repeat;background-size:contain;background-position:center;pointer-events:all;z-index:9}.map-container me-parent me-epd.minus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NTU2NDk4NSIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNTQ0SDM0MS4zMzMzMzNjLTE3LjA2NjY2NyAwLTMyLTE0LjkzMzMzMy0zMi0zMnMxNC45MzMzMzMtMzIgMzItMzJoMzQxLjMzMzMzNGMxNy4wNjY2NjcgMCAzMiAxNC45MzMzMzMgMzIgMzJzLTE0LjkzMzMzMyAzMi0zMiAzMnoiPjwvcGF0aD4KPC9zdmc+)!important;transition:opacity .3s;opacity:0}@media (hover: hover){.map-container me-parent me-epd.minus:hover{opacity:.8}}@media (hover: none){.map-container me-parent me-epd.minus{opacity:.8}}.map-container .icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.map-container .lines,.map-container .summary,.map-container .subLines,.map-container .topiclinks,.map-container .linkcontroller{position:absolute;height:102%;width:100%;top:0;left:0}.map-container .topiclinks,.map-container .linkcontroller,.map-container .summary{pointer-events:none;z-index:20}.map-container .summary>g,.map-container .topiclinks>g{cursor:pointer;pointer-events:stroke;z-index:20}.map-container .lines,.map-container .subLines{pointer-events:none}.map-container #input-box{position:absolute;top:0;left:0;width:max-content;max-width:35em;direction:ltr;-webkit-user-select:auto;user-select:auto;pointer-events:auto;color:var(--color);background-color:var(--bgcolor);z-index:100}.map-container me-tpc{display:block;max-width:35em;white-space:pre-wrap;pointer-events:all}.map-container me-tpc>*{pointer-events:none}.map-container me-tpc>a,.map-container me-tpc>iframe{pointer-events:auto}.map-container me-tpc>.text{display:inline-block}.map-container me-tpc>.text a{pointer-events:auto}.map-container me-tpc>img{display:block;margin-bottom:8px;object-fit:cover}.map-container me-tpc table{white-space:normal!important;border-collapse:collapse;width:100%;margin:4px 0;font-size:11px;border:2px solid #333;border-radius:6px;box-shadow:0 2px 8px #00000014;background-color:#fafafa;overflow:hidden;display:table!important}.map-container me-tpc table th,.map-container me-tpc table td{border:2px solid #333;padding:6px 8px;text-align:left;vertical-align:top;display:table-cell!important;position:relative;white-space:normal!important}.map-container me-tpc table th{background-color:#f5f5f5;font-weight:600;color:#333;text-align:center;border-bottom:2px solid #333}.map-container me-tpc table td{background-color:#fff}.map-container me-tpc table tr{display:table-row!important;white-space:normal!important}.map-container me-tpc table tr:nth-child(2n) td{background-color:#f8f8f8}.map-container me-tpc table tr:hover td{background-color:#f0f8ff}.map-container me-tpc table th:not(:last-child),.map-container me-tpc table td:not(:last-child){border-right:2px solid #333}.map-container me-tpc table tr:not(:last-child) td{border-bottom:2px solid #333}.map-container .circle{position:absolute;height:10px;width:10px;margin-top:-5px;margin-left:-5px;border-radius:100%;background:#757575;border:2px solid #ffffff;z-index:50;cursor:pointer}.map-container .tags{direction:ltr}.map-container .tags span{display:inline-block;border-radius:3px;padding:2px 4px;background:#d6f0f8;color:#276f86;margin:2px 4px 0 0;font-size:12px;line-height:1.3em}.map-container .icons{display:inline-block;direction:ltr;margin-left:5px}.map-container .icons span{display:inline-block;line-height:1.3em}.map-container .mind-elixir-ghost{position:fixed;top:-100%;left:-100%;box-sizing:content-box;opacity:.5;background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);max-width:200px;width:fit-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:8px 16px;border-radius:6px}.map-container .selection-area{background:#4f90f22d;border:1px solid #4f90f2}.map-container .context-menu{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99}.map-container .context-menu .menu-list{position:fixed;list-style:none;margin:0;padding:0;color:var(--panel-color);box-shadow:0 12px 15px #0003;border-radius:5px;overflow:hidden}.map-container .context-menu .menu-list li{min-width:200px;overflow:hidden;white-space:nowrap;padding:6px 10px;background:var(--panel-bgcolor);border-bottom:1px solid var(--panel-border-color);cursor:pointer}.map-container .context-menu .menu-list li span{line-height:20px}.map-container .context-menu .menu-list li a{color:#333;text-decoration:none}.map-container .context-menu .menu-list li.disabled{display:none}.map-container .context-menu .menu-list li:hover{filter:brightness(.95)}.map-container .context-menu .menu-list li:last-child{border-bottom:0}.map-container .context-menu .menu-list li span:last-child{float:right}.map-container .context-menu .key{font-size:10px;background-color:#f1f1f1;color:#333;padding:2px 5px;border-radius:3px}.map-container .tips{position:absolute;bottom:28px;left:50%;transform:translate(-50%);color:var(--panel-color);background:var(--panel-bgcolor);opacity:.8;padding:5px 10px;border-radius:5px;font-weight:700}.mind-elixir-toolbar{position:absolute;color:var(--panel-color);background:var(--panel-bgcolor);padding:10px;border-radius:5px;box-shadow:0 1px 2px #0003}.mind-elixir-toolbar svg{display:inline-block}.mind-elixir-toolbar span:active{opacity:.5}.mind-elixir-toolbar.rb{right:20px;bottom:20px}.mind-elixir-toolbar.rb span+span{margin-left:10px}.mind-elixir-toolbar.lt{font-size:20px;left:20px;top:20px}.mind-elixir-toolbar.lt span{display:block}.mind-elixir-toolbar.lt span+span{margin-top:10px}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-0cdd387c.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-30da91e8.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-68534840.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-de7701e4.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-1ae6bd74.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-07d8e303.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-3398dd02.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-74444efd.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-9be7ceb8.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-9163df9c.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-51814d27.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-5e28753b.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-0f60d1b8.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-c76c5d69.woff) format("woff"),url(/assets/KaTeX_Main-Bold-138ac28d.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-97479ca6.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-f1d6ef86.woff) format("woff"),url(/assets/KaTeX_Main-Italic-0d85ae7c.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-c2342cd8.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-c6368d87.woff) format("woff"),url(/assets/KaTeX_Main-Regular-d0332f52.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-dc47344d.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-850c0af5.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-7af58c5e.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-8a8d2445.woff) format("woff"),url(/assets/KaTeX_Math-Italic-08ce98e5.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-e99ae511.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-ece03cfd.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-1ece03f7.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-91ee6750.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-3931dd81.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-11e4dc8a.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-f36ea897.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-036d4e95.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-d96cdf2b.woff) format("woff"),url(/assets/KaTeX_Script-Regular-1c67f068.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-6b47c401.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-c943cc98.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-95b6d2f1.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-d04c5421.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-2014c523.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-a6b2099f.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/KaTeX_Size3-Regular-6ab6b62e.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-500e04d5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-a4af7d41.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-99f9c675.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-c647367d.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-71d517d6.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-e14fed02.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-f01f3e87.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.22"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mindmap-container[data-v-7ae591fd]{height:100vh;width:100%;position:relative;background:white;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow:visible}.zoom-controls[data-v-7ae591fd]{position:absolute;top:20px;right:20px;display:flex;align-items:center;gap:8px;background:white;border-radius:8px;padding:8px;box-shadow:0 2px 8px #0000001a;z-index:1000}.zoom-btn[data-v-7ae591fd]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e0e0e0;border-radius:4px;background:white;color:#666;cursor:pointer;transition:all .2s ease}.zoom-btn[data-v-7ae591fd]:hover{background:#f5f5f5;border-color:#ccc;color:#333}.zoom-btn[data-v-7ae591fd]:active{background:#e0e0e0;transform:scale(.95)}.zoom-level[data-v-7ae591fd]{font-size:12px;color:#666;font-weight:500;min-width:40px;text-align:center}.zoom-controls.welcome-mode[data-v-7ae591fd]{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(102,8,116,.1);box-shadow:0 4px 20px #0000001a}.zoom-controls.welcome-mode .zoom-btn[data-v-7ae591fd]{background:rgba(255,255,255,.8);border-color:#66087433;color:#660874}.zoom-controls.welcome-mode .zoom-btn[data-v-7ae591fd]:hover{background:rgba(255,255,255,.95);border-color:#6608744d;color:#5a0666}.zoom-controls.welcome-mode .zoom-level[data-v-7ae591fd]{color:#660874}.save-controls[data-v-7ae591fd]{position:absolute;bottom:20px;right:20px;z-index:1000;display:flex;gap:12px}.save-btn[data-v-7ae591fd]{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#660874;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #6608744d}.save-btn[data-v-7ae591fd]:hover{background:#5a0666;transform:translateY(-2px);box-shadow:0 6px 16px #66087466}.save-btn[data-v-7ae591fd]:active{transform:translateY(0);box-shadow:0 2px 8px #6608744d}.save-btn svg[data-v-7ae591fd]{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}.refresh-btn[data-v-7ae591fd]{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#28a745;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #28a7454d}.refresh-btn[data-v-7ae591fd]:hover{background:#218838;transform:translateY(-2px);box-shadow:0 6px 16px #28a74566}.refresh-btn[data-v-7ae591fd]:active{transform:translateY(0);box-shadow:0 2px 8px #28a7454d}.refresh-btn svg[data-v-7ae591fd]{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}.mindmap-el[data-v-7ae591fd]{height:100%;width:100%;background:white;border:none;outline:none;overflow:visible;position:relative}.welcome-page[data-v-7ae591fd]{height:100vh;width:100%;margin-left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);color:#37352f;position:relative;z-index:999;transition:all .4s cubic-bezier(.4,0,.2,1);border-left:none}.welcome-page.ai-sidebar-collapsed[data-v-7ae591fd]{width:100%;margin-left:0}.welcome-content[data-v-7ae591fd]{text-align:center;max-width:800px;padding:40px;background:white;border-radius:20px;border:2px solid #660874;box-shadow:0 8px 32px #00000026;position:relative;z-index:1001;margin-left:100px;transition:all .4s cubic-bezier(.4,0,.2,1)}.welcome-content.ai-sidebar-collapsed[data-v-7ae591fd]{margin-left:0}.welcome-header h1[data-v-7ae591fd]{font-size:3rem;margin:0 0 20px;font-weight:700;color:#37352f;text-shadow:none}.welcome-subtitle[data-v-7ae591fd]{font-size:1.2rem;margin:0 0 40px;color:#6b7280;font-weight:300}.welcome-features[data-v-7ae591fd]{display:flex;flex-direction:column;gap:30px;margin:40px 0;align-items:center}.feature-item[data-v-7ae591fd]{display:flex;align-items:center;gap:20px;padding:20px;background:rgba(255,255,255,.8);border-radius:15px;border:1px solid rgba(102,8,116,.1);transition:all .3s ease;box-shadow:0 4px 20px #00000014;width:100%;max-width:500px;justify-content:flex-start}.feature-item[data-v-7ae591fd]:hover{transform:translateY(-5px);background:rgba(255,255,255,.95);box-shadow:0 8px 32px #0000001f}.feature-icon[data-v-7ae591fd]{font-size:2.5rem;min-width:60px;color:#660874;display:flex;align-items:center;justify-content:center;flex-shrink:0}.feature-text[data-v-7ae591fd]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.feature-text h3[data-v-7ae591fd]{margin:0 0 10px;font-size:1.3rem;font-weight:600;color:#37352f;text-align:center}.feature-text p[data-v-7ae591fd]{margin:0;color:#6b7280;line-height:1.5;text-align:center}.welcome-tips[data-v-7ae591fd]{margin-top:30px;padding:20px;background:rgba(255,255,255,.8);border-radius:15px;border:1px solid rgba(102,8,116,.1);box-shadow:0 4px 20px #00000014}.welcome-tips p[data-v-7ae591fd]{margin:0;color:#6b7280;font-size:1rem}[data-v-7ae591fd] .mind-elixir{height:100%;width:100%;position:relative;overflow:hidden;background:transparent;border:none;outline:none}[data-v-7ae591fd] .mind-elixir .map-container{height:100%;width:100%;position:relative}[data-v-7ae591fd] .mind-elixir .map-canvas{transition:none}[data-v-7ae591fd] .map-container .topic{background:#ffffff!important;border:2px solid #e0e0e0!important;border-radius:8px!important;padding:12px 16px!important;box-shadow:0 2px 8px #0000001a!important;transition:all .3s ease!important;cursor:pointer!important;min-width:120px!important;max-width:300px!important;text-align:center!important;font-size:14px!important;font-weight:500!important;color:#333!important;position:relative!important}[data-v-7ae591fd] .map-container .topic:hover{border-color:#007bff!important;box-shadow:0 4px 12px #007bff33!important;transform:translateY(-2px)!important}[data-v-7ae591fd] .map-container .topic.selected{border-color:#007bff!important;background:#f8f9ff!important;box-shadow:0 4px 12px #007bff4d!important}.context-menu[data-v-7ae591fd]{position:absolute;background:rgba(255,255,255,.95);border-radius:12px;padding:8px;box-shadow:0 8px 24px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.1);z-index:1000;display:flex;flex-direction:row;gap:4px;align-items:center;min-width:auto;white-space:nowrap;animation:menuFadeIn-7ae591fd .2s ease;transform:translate(-50%)}@keyframes menuFadeIn-7ae591fd{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.context-menu-item[data-v-7ae591fd]{width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.context-menu-item[data-v-7ae591fd]:hover{background:rgba(0,0,0,.05);color:#333;transform:scale(1.05)}.context-menu-item.delete[data-v-7ae591fd]:hover{background:rgba(220,53,69,.1);color:#dc3545}.context-menu-item.ask-ai[data-v-7ae591fd]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:2px solid #5a67d8;box-shadow:0 2px 8px #667eea4d;position:relative}.context-menu-item.ask-ai[data-v-7ae591fd]:hover{background:linear-gradient(135deg,#5a67d8 0%,#667eea 100%);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.context-menu-item.ask-ai svg[data-v-7ae591fd]{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.context-menu-item svg[data-v-7ae591fd]{width:16px;height:16px}.context-menu-item[data-v-7ae591fd]:after{content:attr(title);position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;z-index:1001;pointer-events:none}.context-menu-item[data-v-7ae591fd]:hover:after{opacity:1;visibility:visible}.context-menu-item[data-v-7ae591fd]:before{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#000c;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none}.context-menu-item[data-v-7ae591fd]:hover:before{opacity:1;visibility:visible}.ai-input-area[data-v-7ae591fd]{position:absolute;width:300px;background:white;border-radius:12px;box-shadow:0 8px 32px #0000001f;z-index:1001;animation:slideInDown-7ae591fd .3s ease}@keyframes slideInDown-7ae591fd{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ai-input-header[data-v-7ae591fd]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e9ecef;background:#f8f9fa;border-radius:12px 12px 0 0}.ai-input-title[data-v-7ae591fd]{font-size:16px;font-weight:600;color:#2c3e50}.ai-close-btn[data-v-7ae591fd]{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;color:#6c757d;font-size:18px;line-height:1;transition:all .2s ease}.ai-close-btn[data-v-7ae591fd]:hover{background:#e9ecef;color:#495057}.ai-input-content[data-v-7ae591fd]{padding:20px}.ai-input-content textarea[data-v-7ae591fd]{width:100%;padding:12px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;line-height:1.5;resize:none;transition:border-color .2s ease;font-family:inherit;margin-bottom:16px;box-sizing:border-box}.ai-input-content textarea[data-v-7ae591fd]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.ai-input-content textarea[data-v-7ae591fd]:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.ai-input-actions[data-v-7ae591fd]{display:flex;justify-content:center;align-items:center;gap:8px}.btn-cancel[data-v-7ae591fd],.btn-submit[data-v-7ae591fd]{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.btn-cancel[data-v-7ae591fd]{background:#6c757d;color:#fff}.btn-cancel[data-v-7ae591fd]:hover:not(:disabled){background:#5a6268}.btn-submit[data-v-7ae591fd]{background:#007bff;color:#fff}.btn-submit[data-v-7ae591fd]:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.btn-cancel[data-v-7ae591fd]:disabled,.btn-submit[data-v-7ae591fd]:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.context-menu[data-v-7ae591fd]{padding:6px;gap:3px}.context-menu-item[data-v-7ae591fd]{width:32px;height:32px}.context-menu-item svg[data-v-7ae591fd]{width:14px;height:14px}}.node-description[data-v-7ae591fd]{font-size:11px;color:#666;margin-top:6px;padding:6px 8px;background:rgba(0,0,0,.03);border-radius:4px;max-width:250px;word-wrap:break-word;line-height:1.3;border-left:3px solid #e0e0e0;display:block}.topic[data-v-7ae591fd]{min-width:150px;max-width:400px;padding:8px 12px;border-radius:8px;background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;margin:4px!important}.topic.root[data-v-7ae591fd],.topic.main[data-v-7ae591fd],.topic.sub[data-v-7ae591fd]{background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important}.topic[data-v-7ae591fd]{background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;border-radius:8px!important;padding:8px 12px!important;min-width:150px!important;max-width:400px!important;margin:4px!important;position:relative!important}.tpc-line[data-v-7ae591fd]{position:absolute!important;z-index:1!important}.tpc-line.tpc-line-left[data-v-7ae591fd]{right:100%!important;top:50%!important;transform:translateY(-50%)!important}.tpc-line.tpc-line-right[data-v-7ae591fd]{left:100%!important;top:50%!important;transform:translateY(-50%)!important}.tpc-line.tpc-line-top[data-v-7ae591fd]{bottom:100%!important;left:50%!important;transform:translate(-50%)!important}.tpc-line.tpc-line-bottom[data-v-7ae591fd]{top:100%!important;left:50%!important;transform:translate(-50%)!important}.topic[data-v-7ae591fd]:before{display:none!important}.topic[data-v-7ae591fd]:after{display:none!important}.topic[style*="border-radius: 50%"][data-v-7ae591fd]{border-radius:8px!important;background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important}.topic[data-v-7ae591fd]:not(:has(.children)){background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;border-radius:8px!important}.topic[style][data-v-7ae591fd]{background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;border-radius:8px!important;padding:8px 12px!important;min-width:150px!important;max-width:400px!important;margin:4px!important}.topic .topic-text[data-v-7ae591fd]{font-weight:500;color:#333;margin-bottom:4px;line-height:1.4}.topic .topic-text.markdown-content[data-v-7ae591fd]{font-size:12px;line-height:1.3}.topic table[data-v-7ae591fd],.topic .text table[data-v-7ae591fd],.topic .topic-text table[data-v-7ae591fd],.topic .topic-text.markdown-content table[data-v-7ae591fd]{border-collapse:collapse!important;width:100%!important;margin:4px 0!important;font-size:11px!important;border:2px solid #333!important;border-radius:6px!important;box-shadow:0 2px 8px #00000014!important;background-color:#fafafa!important;overflow:hidden!important;display:table!important;white-space:normal!important}.topic table th[data-v-7ae591fd],.topic table td[data-v-7ae591fd],.topic .text table th[data-v-7ae591fd],.topic .text table td[data-v-7ae591fd],.topic .topic-text table th[data-v-7ae591fd],.topic .topic-text table td[data-v-7ae591fd],.topic .topic-text.markdown-content table th[data-v-7ae591fd],.topic .topic-text.markdown-content table td[data-v-7ae591fd]{border:2px solid #333!important;padding:6px 8px!important;text-align:left!important;vertical-align:top!important;display:table-cell!important;position:relative!important;white-space:normal!important}.topic .topic-text.markdown-content table th[data-v-7ae591fd],.topic .text table th[data-v-7ae591fd],.topic table th[data-v-7ae591fd]{background-color:#f5f5f5!important;font-weight:600!important;color:#333!important;text-align:center!important;border-bottom:2px solid #333!important}.topic .topic-text.markdown-content table td[data-v-7ae591fd],.topic .text table td[data-v-7ae591fd],.topic table td[data-v-7ae591fd]{background-color:#fff!important}.topic .topic-text.markdown-content table tr[data-v-7ae591fd],.topic .text table tr[data-v-7ae591fd],.topic table tr[data-v-7ae591fd]{display:table-row!important;white-space:normal!important}.topic .topic-text.markdown-content table tr:nth-child(2n) td[data-v-7ae591fd],.topic .text table tr:nth-child(2n) td[data-v-7ae591fd]{background-color:#f8f8f8!important}.topic .topic-text.markdown-content table tr:hover td[data-v-7ae591fd],.topic .text table tr:hover td[data-v-7ae591fd]{background-color:#f0f8ff!important}.topic .topic-text.markdown-content table th[data-v-7ae591fd]:not(:last-child),.topic .topic-text.markdown-content table td[data-v-7ae591fd]:not(:last-child),.topic .text table th[data-v-7ae591fd]:not(:last-child),.topic .text table td[data-v-7ae591fd]:not(:last-child){border-right:1px solid #e0e0e0!important}.topic .topic-text.markdown-content table tr:not(:last-child) td[data-v-7ae591fd],.topic .text table tr:not(:last-child) td[data-v-7ae591fd]{border-bottom:1px solid #e0e0e0!important}.topic .topic-text.markdown-content code[data-v-7ae591fd]{background-color:#f4f4f4;padding:1px 3px;border-radius:2px;font-family:Courier New,monospace;font-size:10px}.topic .topic-text.markdown-content pre[data-v-7ae591fd]{background-color:#f4f4f4;padding:4px;border-radius:3px;overflow-x:auto;font-size:10px}.topic .topic-text.markdown-content ul[data-v-7ae591fd],.topic .topic-text.markdown-content ol[data-v-7ae591fd]{margin:2px 0;padding-left:12px}.topic .topic-text.markdown-content li[data-v-7ae591fd]{margin:1px 0;font-size:11px}.topic .topic-text.markdown-content strong[data-v-7ae591fd]{font-weight:600}.topic .topic-text.markdown-content em[data-v-7ae591fd]{font-style:italic}.topic h1[data-v-7ae591fd],.topic h2[data-v-7ae591fd],.topic h3[data-v-7ae591fd],.topic h4[data-v-7ae591fd],.topic h5[data-v-7ae591fd],.topic h6[data-v-7ae591fd]{margin:4px 0;font-weight:600;color:#333}.topic p[data-v-7ae591fd]{margin:2px 0;line-height:1.3;color:#666}.topic ul[data-v-7ae591fd],.topic ol[data-v-7ae591fd]{margin:2px 0;padding-left:16px}.topic li[data-v-7ae591fd]{margin:1px 0;line-height:1.3;color:#666}.topic strong[data-v-7ae591fd],.topic b[data-v-7ae591fd]{font-weight:600;color:#333}.topic em[data-v-7ae591fd],.topic i[data-v-7ae591fd]{font-style:italic;color:#555}.topic code[data-v-7ae591fd]{background:#f5f5f5;padding:1px 3px;border-radius:3px;font-family:monospace;font-size:.9em}.topic-content[data-v-7ae591fd]{display:flex;flex-direction:column;align-items:flex-start}.ai-sidebar-wrapper[data-v-9bdaf8f5]{position:fixed;top:0;left:0;z-index:1000}.ai-sidebar[data-v-9bdaf8f5]{position:relative;width:420px;height:100vh;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);color:#37352f;transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:none;overflow:visible}.ai-sidebar[data-v-9bdaf8f5]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(102,8,116,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(102,8,116,.1) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(102,8,116,.05) 0%,transparent 50%);pointer-events:none}.sidebar-collapsed[data-v-9bdaf8f5]{transform:translate(-420px)}.sidebar-toggle[data-v-9bdaf8f5]{position:fixed;top:20px;width:45px;height:45px;background:#660874;border-radius:0 8px 8px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:2px 0 10px #0003,0 0 20px #6608744d;color:#fff;transition:all .4s cubic-bezier(.4,0,.2,1);font-weight:700;z-index:100000;border:2px solid #660874}.sidebar-toggle[data-v-9bdaf8f5]:hover{background:#5a0666;transform:scale(1.1);color:#fff;box-shadow:3px 0 15px #00000026;border-color:#5a0666}.sidebar-content[data-v-9bdaf8f5]{height:100%;overflow-y:auto;padding:20px;position:relative;z-index:10}.sidebar-header[data-v-9bdaf8f5]{text-align:center;margin-bottom:35px;padding-bottom:25px;border-bottom:1px solid rgba(102,8,116,.1);position:relative;z-index:10}.sidebar-header h3[data-v-9bdaf8f5]{margin:0 0 15px;font-size:28px;font-weight:600;color:#000}.sidebar-header p[data-v-9bdaf8f5]{margin:0;color:#333;font-size:16px}.collapse-hint[data-v-9bdaf8f5]{margin-top:10px;text-align:center}.collapse-hint small[data-v-9bdaf8f5]{color:#666;font-size:12px;opacity:.8}.section[data-v-9bdaf8f5]{margin-bottom:35px;background:rgba(255,255,255,.95);border-radius:12px;padding:25px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(102,8,116,.2);box-shadow:0 4px 20px #0000001a;position:relative;z-index:10;overflow:hidden}.section h4[data-v-9bdaf8f5]{margin:0 0 20px;font-size:20px;font-weight:600;display:flex;align-items:center;gap:8px;color:#000}.input-group[data-v-9bdaf8f5]{margin-bottom:20px}.input-group label[data-v-9bdaf8f5]{display:block;margin-bottom:10px;font-weight:500;font-size:16px;color:#000}.input-group textarea[data-v-9bdaf8f5]{width:100%;padding:12px;border:none;border-radius:8px;background:rgba(255,255,255,.9);color:#333;font-size:14px;resize:vertical;min-height:80px;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.input-group textarea[data-v-9bdaf8f5]:focus{outline:none;box-shadow:0 0 0 2px #ffffff80}.button-group[data-v-9bdaf8f5]{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.save-button-group[data-v-9bdaf8f5]{margin-top:15px}.btn-primary[data-v-9bdaf8f5],.btn-secondary[data-v-9bdaf8f5],.btn-clear[data-v-9bdaf8f5],.btn-copy[data-v-9bdaf8f5],.btn-import[data-v-9bdaf8f5],.btn-preview[data-v-9bdaf8f5],.btn-test[data-v-9bdaf8f5],.btn-save[data-v-9bdaf8f5]{padding:12px 18px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px}.btn-primary[data-v-9bdaf8f5]{background:#660874;color:#fff}.btn-primary[data-v-9bdaf8f5]:hover:not(:disabled){background:#5a0666;transform:translateY(-2px)}.btn-secondary[data-v-9bdaf8f5]{background:#2196F3;color:#fff}.btn-secondary[data-v-9bdaf8f5]:hover:not(:disabled){background:#1976D2;transform:translateY(-2px)}.btn-clear[data-v-9bdaf8f5]{background:#f44336;color:#fff}.btn-clear[data-v-9bdaf8f5]:hover{background:#d32f2f;transform:translateY(-2px)}.btn-copy[data-v-9bdaf8f5]{background:#FF9800;color:#fff}.btn-copy[data-v-9bdaf8f5]:hover{background:#F57C00;transform:translateY(-2px)}.btn-import[data-v-9bdaf8f5]{background:#9C27B0;color:#fff}.btn-import[data-v-9bdaf8f5]:hover{background:#7B1FA2;transform:translateY(-2px)}.btn-preview[data-v-9bdaf8f5]{background:#00BCD4;color:#fff}.btn-preview[data-v-9bdaf8f5]:hover{background:#0097A7;transform:translateY(-2px)}.btn-test[data-v-9bdaf8f5]{background:#FF5722;color:#fff}.file-upload-area[data-v-9bdaf8f5]{position:relative;border:2px dashed rgba(102,8,116,.5);border-radius:8px;padding:20px;text-align:center;transition:all .3s ease;cursor:pointer;background:rgba(255,255,255,.9)}.file-upload-area[data-v-9bdaf8f5]:hover{border-color:#66087480;background:rgba(255,255,255,.8)}.file-upload-area.drag-over[data-v-9bdaf8f5]{border-color:#660874cc;background:rgba(102,8,116,.1);transform:scale(1.02)}.file-input[data-v-9bdaf8f5]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-placeholder[data-v-9bdaf8f5]{display:flex;flex-direction:column;align-items:center;gap:8px}.upload-icon[data-v-9bdaf8f5]{font-size:24px}.upload-text[data-v-9bdaf8f5]{font-size:16px;font-weight:500;color:#000}.upload-hint[data-v-9bdaf8f5]{font-size:14px;color:#333}.file-info[data-v-9bdaf8f5]{margin-top:20px;padding:16px;background:rgba(255,255,255,.9);border-radius:12px;border:1px solid rgba(102,8,116,.15);box-shadow:0 2px 8px #0000000d}.file-details[data-v-9bdaf8f5]{display:flex;align-items:center;justify-content:space-between;gap:12px}.file-info-left[data-v-9bdaf8f5]{display:flex;flex-direction:column;gap:4px;flex:1}.file-name[data-v-9bdaf8f5]{font-weight:600;color:#37352f;font-size:16px;line-height:1.4}.file-size[data-v-9bdaf8f5]{color:#6b7280;font-size:13px;font-weight:500}.btn-remove[data-v-9bdaf8f5]{background:linear-gradient(135deg,#ff6b6b 0%,#ee5a52 100%);color:#fff;border:none;border-radius:8px;padding:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;box-shadow:0 2px 4px #ff6b6b4d}.btn-remove[data-v-9bdaf8f5]:hover{background:linear-gradient(135deg,#ff5252 0%,#d32f2f 100%);transform:translateY(-1px);box-shadow:0 4px 8px #ff6b6b66}.btn-remove[data-v-9bdaf8f5]:active{transform:translateY(0);box-shadow:0 2px 4px #ff6b6b4d}.file-action-buttons[data-v-9bdaf8f5]{margin-top:20px;padding-top:20px;border-top:1px solid rgba(102,8,116,.1)}.btn-test[data-v-9bdaf8f5]:hover{background:#E64A19;transform:translateY(-2px)}.btn-save[data-v-9bdaf8f5]{background:#660874;color:#fff}.btn-save[data-v-9bdaf8f5]:hover{background:#5a0666;transform:translateY(-2px)}button[data-v-9bdaf8f5]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.result-container[data-v-9bdaf8f5]{background:rgba(255,255,255,.8);border-radius:8px;padding:18px;margin-top:15px;border:1px solid rgba(102,8,116,.1)}.markdown-result[data-v-9bdaf8f5]{background:rgba(255,255,255,.95);border:1px solid rgba(102,8,116,.15);border-radius:8px;padding:15px;margin:0 0 20px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.5;color:#333;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;resize:vertical}.json-result[data-v-9bdaf8f5]{background:rgba(102,8,116,.1);border-radius:6px;padding:15px;margin:0 0 20px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;color:#37352f;overflow-x:auto;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.history-list[data-v-9bdaf8f5]{max-height:200px;overflow-y:auto;overflow-x:hidden}.history-item[data-v-9bdaf8f5]{background:rgba(255,255,255,.8);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .3s ease;border:1px solid rgba(102,8,116,.1);overflow:hidden;word-wrap:break-word;word-break:break-word}.history-item[data-v-9bdaf8f5]:hover{background:rgba(255,255,255,.95);transform:translate(5px);box-shadow:0 4px 16px #0000001a}.history-title[data-v-9bdaf8f5]{font-weight:500;margin-bottom:6px;font-size:16px;color:#37352f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-time[data-v-9bdaf8f5]{font-size:14px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.processing-status[data-v-9bdaf8f5]{display:flex;align-items:center;gap:8px;padding:15px;background:rgba(102,8,116,.1);border:1px solid rgba(102,8,116,.3);border-radius:8px;margin:20px 0;color:#660874;font-size:16px}.spinner[data-v-9bdaf8f5]{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #660874;border-radius:50%;animation:spin-9bdaf8f5 1s linear infinite}@keyframes spin-9bdaf8f5{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-preview[data-v-9bdaf8f5]:disabled{opacity:.6;cursor:not-allowed;background:rgba(255,255,255,.2)}.sidebar-content[data-v-9bdaf8f5]::-webkit-scrollbar,.json-result[data-v-9bdaf8f5]::-webkit-scrollbar,.history-list[data-v-9bdaf8f5]::-webkit-scrollbar{width:6px}.sidebar-content[data-v-9bdaf8f5]::-webkit-scrollbar-track,.json-result[data-v-9bdaf8f5]::-webkit-scrollbar-track,.history-list[data-v-9bdaf8f5]::-webkit-scrollbar-track{background:rgba(102,8,116,.1);border-radius:3px}.sidebar-content[data-v-9bdaf8f5]::-webkit-scrollbar-thumb,.json-result[data-v-9bdaf8f5]::-webkit-scrollbar-thumb,.history-list[data-v-9bdaf8f5]::-webkit-scrollbar-thumb{background:rgba(102,8,116,.3);border-radius:3px}.sidebar-content[data-v-9bdaf8f5]::-webkit-scrollbar-thumb:hover,.json-result[data-v-9bdaf8f5]::-webkit-scrollbar-thumb:hover,.history-list[data-v-9bdaf8f5]::-webkit-scrollbar-thumb:hover{background:rgba(102,8,116,.5)}@media (max-width: 768px){.ai-sidebar[data-v-9bdaf8f5]{width:300px}.sidebar-content[data-v-9bdaf8f5],.section[data-v-9bdaf8f5]{padding:15px}.button-group[data-v-9bdaf8f5]{flex-direction:column}.btn-primary[data-v-9bdaf8f5],.btn-secondary[data-v-9bdaf8f5],.btn-clear[data-v-9bdaf8f5],.btn-copy[data-v-9bdaf8f5],.btn-import[data-v-9bdaf8f5]{width:100%;justify-content:center}}.markdown-test[data-v-68a00828]{max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.test-section[data-v-68a00828]{margin-bottom:30px;padding:20px;border:1px solid #e0e0e0;border-radius:8px;background:#f9f9f9}.markdown-input[data-v-68a00828]{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.5;resize:vertical}.rendered-content[data-v-68a00828]{background:white;padding:20px;border-radius:4px;border:1px solid #ddd;min-height:200px}.test-cases[data-v-68a00828]{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.test-btn[data-v-68a00828],.test-case-btn[data-v-68a00828]{padding:8px 16px;border:1px solid #007bff;background:white;color:#007bff;border-radius:4px;cursor:pointer;transition:all .2s ease}.test-btn[data-v-68a00828]:hover,.test-case-btn[data-v-68a00828]:hover{background:#007bff;color:#fff}h2[data-v-68a00828],h3[data-v-68a00828]{color:#333;margin-bottom:15px}h2[data-v-68a00828]{border-bottom:2px solid #007bff;padding-bottom:10px}.error[data-v-68a00828]{color:#dc3545;background:#f8d7da;border:1px solid #f5c6cb;padding:10px;border-radius:4px}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;margin:0;padding:0;display:flex}.main-content{flex:1;margin-left:350px;transition:margin-left .3s ease;width:calc(100% - 350px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Avenir,Helvetica,Arial,sans-serif;background:#f5f5f5}.mind-elixir,.mind-elixir .map-container{height:100%;width:100%}.test-mode-toggle{position:fixed;top:20px;right:20px;z-index:1000}.test-btn{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;box-shadow:0 2px 8px #007bff4d;transition:all .2s ease}.test-btn:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff66}.test-mode{height:100vh;overflow:auto} +.map-container{-webkit-tap-highlight-color:rgba(0,0,0,0);font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,PingFang SC,Microsoft YaHei,Source Han Sans SC,Noto Sans CJK SC,WenQuanYi Micro Hei,sans-serif;-webkit-user-select:none;user-select:none;height:100%;width:100%;overflow:hidden;font-size:15px;outline:none;touch-action:none;background-color:var(--bgcolor)}.map-container *{box-sizing:border-box}.map-container::-webkit-scrollbar{width:0px;height:0px}.map-container .selected{outline:2px solid var(--selected);outline-offset:1px}.map-container .hyper-link{text-decoration:none;margin-left:.3em}.map-container me-main>me-wrapper>me-parent>me-epd{top:50%;transform:translateY(-50%)}.map-container me-epd{top:100%;transform:translateY(-50%)}.map-container .lhs{direction:rtl}.map-container .lhs>me-wrapper>me-parent>me-epd{left:-10px}.map-container .lhs me-epd{left:5px}.map-container .lhs me-tpc{direction:ltr}.map-container .rhs>me-wrapper>me-parent>me-epd{right:-10px}.map-container .rhs me-epd{right:5px}.map-container .map-canvas{position:relative;-webkit-user-select:none;user-select:none;width:fit-content;transform:scale(1)}.map-container .map-canvas me-nodes{position:relative;display:flex;justify-content:center;align-items:center;height:max-content;width:max-content;padding:var(--map-padding)}.map-container me-main>me-wrapper{position:relative;margin:var(--main-gap-y) var(--main-gap-x)}.map-container me-main>me-wrapper>me-parent{margin:10px;padding:0}.map-container me-main>me-wrapper>me-parent>me-tpc{border-radius:var(--main-radius);background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);padding:8px 25px}.map-container me-wrapper{display:block;pointer-events:none;width:fit-content}.map-container me-children,.map-container me-parent{display:inline-block;vertical-align:middle}.map-container me-root{position:relative;margin:45px 0;z-index:10}.map-container me-root me-tpc{font-size:25px;color:var(--root-color);padding:10px 30px;border-radius:var(--root-radius);border:var(--root-border-color) 2px solid;background-color:var(--root-bgcolor)}.map-container me-parent{position:relative;cursor:pointer;padding:6px var(--node-gap-x);margin-top:var(--node-gap-y);z-index:10}.map-container me-parent me-tpc{position:relative;border-radius:3px;color:var(--color);padding:var(--topic-padding)}.map-container me-parent me-tpc .insert-preview{position:absolute;width:100%;left:0;z-index:9}.map-container me-parent me-tpc .show{background:#7ad5ff;pointer-events:none;opacity:.7;border-radius:3px}.map-container me-parent me-tpc .before{height:14px;top:-14px}.map-container me-parent me-tpc .in{height:100%;top:0}.map-container me-parent me-tpc .after{height:14px;bottom:-14px}.map-container me-parent me-epd{position:absolute;height:18px;width:18px;opacity:.8;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NDcxNzI0MiIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNDgwaC0xMzguNjY2NjY3VjM0MS4zMzMzMzNjMC0xNy4wNjY2NjctMTQuOTMzMzMzLTMyLTMyLTMycy0zMiAxNC45MzMzMzMtMzIgMzJ2MTM4LjY2NjY2N0gzNDEuMzMzMzMzYy0xNy4wNjY2NjcgMC0zMiAxNC45MzMzMzMtMzIgMzJzMTQuOTMzMzMzIDMyIDMyIDMyaDEzOC42NjY2NjdWNjgyLjY2NjY2N2MwIDE3LjA2NjY2NyAxNC45MzMzMzMgMzIgMzIgMzJzMzItMTQuOTMzMzMzIDMyLTMydi0xMzguNjY2NjY3SDY4Mi42NjY2NjdjMTcuMDY2NjY3IDAgMzItMTQuOTMzMzMzIDMyLTMycy0xNC45MzMzMzMtMzItMzItMzJ6Ij48L3BhdGg+Cjwvc3ZnPg==);background-repeat:no-repeat;background-size:contain;background-position:center;pointer-events:all;z-index:9}.map-container me-parent me-epd.minus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdD0iMTY1NjY1NTU2NDk4NSIgY2xhc3M9Imljb24iIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIHZlcnNpb249IjEuMSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgICA8cGF0aCBkPSJNNTEyIDc0LjY2NjY2N0MyNzAuOTMzMzMzIDc0LjY2NjY2NyA3NC42NjY2NjcgMjcwLjkzMzMzMyA3NC42NjY2NjcgNTEyUzI3MC45MzMzMzMgOTQ5LjMzMzMzMyA1MTIgOTQ5LjMzMzMzMyA5NDkuMzMzMzMzIDc1My4wNjY2NjcgOTQ5LjMzMzMzMyA1MTIgNzUzLjA2NjY2NyA3NC42NjY2NjcgNTEyIDc0LjY2NjY2N3oiIHN0cm9rZS13aWR0aD0iNTQiIHN0cm9rZT0nYmxhY2snIGZpbGw9J3doaXRlJyA+PC9wYXRoPgogICAgPHBhdGggZD0iTTY4Mi42NjY2NjcgNTQ0SDM0MS4zMzMzMzNjLTE3LjA2NjY2NyAwLTMyLTE0LjkzMzMzMy0zMi0zMnMxNC45MzMzMzMtMzIgMzItMzJoMzQxLjMzMzMzNGMxNy4wNjY2NjcgMCAzMiAxNC45MzMzMzMgMzIgMzJzLTE0LjkzMzMzMyAzMi0zMiAzMnoiPjwvcGF0aD4KPC9zdmc+)!important;transition:opacity .3s;opacity:0}@media (hover: hover){.map-container me-parent me-epd.minus:hover{opacity:.8}}@media (hover: none){.map-container me-parent me-epd.minus{opacity:.8}}.map-container .icon{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.map-container .lines,.map-container .summary,.map-container .subLines,.map-container .topiclinks,.map-container .linkcontroller{position:absolute;height:102%;width:100%;top:0;left:0}.map-container .topiclinks,.map-container .linkcontroller,.map-container .summary{pointer-events:none;z-index:20}.map-container .summary>g,.map-container .topiclinks>g{cursor:pointer;pointer-events:stroke;z-index:20}.map-container .lines,.map-container .subLines{pointer-events:none}.map-container #input-box{position:absolute;top:0;left:0;width:max-content;max-width:35em;direction:ltr;-webkit-user-select:auto;user-select:auto;pointer-events:auto;color:var(--color);background-color:var(--bgcolor);z-index:100}.map-container me-tpc{display:block;max-width:35em;white-space:pre-wrap;pointer-events:all}.map-container me-tpc>*{pointer-events:none}.map-container me-tpc>a,.map-container me-tpc>iframe{pointer-events:auto}.map-container me-tpc>.text{display:inline-block}.map-container me-tpc>.text a{pointer-events:auto}.map-container me-tpc>img{display:block;margin-bottom:8px;object-fit:cover}.map-container me-tpc table{white-space:normal!important;border-collapse:collapse;width:100%;margin:4px 0;font-size:11px;border:2px solid #333;border-radius:6px;box-shadow:0 2px 8px #00000014;background-color:#fafafa;overflow:hidden;display:table!important}.map-container me-tpc table th,.map-container me-tpc table td{border:2px solid #333;padding:6px 8px;text-align:left;vertical-align:top;display:table-cell!important;position:relative;white-space:normal!important}.map-container me-tpc table th{background-color:#f5f5f5;font-weight:600;color:#333;text-align:center;border-bottom:2px solid #333}.map-container me-tpc table td{background-color:#fff}.map-container me-tpc table tr{display:table-row!important;white-space:normal!important}.map-container me-tpc table tr:nth-child(2n) td{background-color:#f8f8f8}.map-container me-tpc table tr:hover td{background-color:#f0f8ff}.map-container me-tpc table th:not(:last-child),.map-container me-tpc table td:not(:last-child){border-right:2px solid #333}.map-container me-tpc table tr:not(:last-child) td{border-bottom:2px solid #333}.map-container .circle{position:absolute;height:10px;width:10px;margin-top:-5px;margin-left:-5px;border-radius:100%;background:#757575;border:2px solid #ffffff;z-index:50;cursor:pointer}.map-container .tags{direction:ltr}.map-container .tags span{display:inline-block;border-radius:3px;padding:2px 4px;background:#d6f0f8;color:#276f86;margin:2px 4px 0 0;font-size:12px;line-height:1.3em}.map-container .icons{display:inline-block;direction:ltr;margin-left:5px}.map-container .icons span{display:inline-block;line-height:1.3em}.map-container .mind-elixir-ghost{position:fixed;top:-100%;left:-100%;box-sizing:content-box;opacity:.5;background-color:var(--main-bgcolor);border:2px solid var(--main-color);color:var(--main-color);max-width:200px;width:fit-content;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:8px 16px;border-radius:6px}.map-container .selection-area{background:#4f90f22d;border:1px solid #4f90f2}.map-container .context-menu{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99}.map-container .context-menu .menu-list{position:fixed;list-style:none;margin:0;padding:0;color:var(--panel-color);box-shadow:0 12px 15px #0003;border-radius:5px;overflow:hidden}.map-container .context-menu .menu-list li{min-width:200px;overflow:hidden;white-space:nowrap;padding:6px 10px;background:var(--panel-bgcolor);border-bottom:1px solid var(--panel-border-color);cursor:pointer}.map-container .context-menu .menu-list li span{line-height:20px}.map-container .context-menu .menu-list li a{color:#333;text-decoration:none}.map-container .context-menu .menu-list li.disabled{display:none}.map-container .context-menu .menu-list li:hover{filter:brightness(.95)}.map-container .context-menu .menu-list li:last-child{border-bottom:0}.map-container .context-menu .menu-list li span:last-child{float:right}.map-container .context-menu .key{font-size:10px;background-color:#f1f1f1;color:#333;padding:2px 5px;border-radius:3px}.map-container .tips{position:absolute;bottom:28px;left:50%;transform:translate(-50%);color:var(--panel-color);background:var(--panel-bgcolor);opacity:.8;padding:5px 10px;border-radius:5px;font-weight:700}.mind-elixir-toolbar{position:absolute;color:var(--panel-color);background:var(--panel-bgcolor);padding:10px;border-radius:5px;box-shadow:0 1px 2px #0003}.mind-elixir-toolbar svg{display:inline-block}.mind-elixir-toolbar span:active{opacity:.5}.mind-elixir-toolbar.rb{right:20px;bottom:20px}.mind-elixir-toolbar.rb span+span{margin-left:10px}.mind-elixir-toolbar.lt{font-size:20px;left:20px;top:20px}.mind-elixir-toolbar.lt span{display:block}.mind-elixir-toolbar.lt span+span{margin-top:10px}@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-0cdd387c.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-30da91e8.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-68534840.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-de7701e4.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-1ae6bd74.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-07d8e303.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-5d53e70a.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-3398dd02.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-ed0b7437.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-74444efd.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-9be7ceb8.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-9163df9c.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-51814d27.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-5e28753b.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-1e6f9579.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-0f60d1b8.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-c76c5d69.woff) format("woff"),url(/assets/KaTeX_Main-Bold-138ac28d.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-99cd42a3.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-a6f7ec0d.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-70ee1f64.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-97479ca6.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-f1d6ef86.woff) format("woff"),url(/assets/KaTeX_Main-Italic-0d85ae7c.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-c2342cd8.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-c6368d87.woff) format("woff"),url(/assets/KaTeX_Main-Regular-d0332f52.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-dc47344d.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-850c0af5.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-f9377ab0.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-7af58c5e.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-8a8d2445.woff) format("woff"),url(/assets/KaTeX_Math-Italic-08ce98e5.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-e99ae511.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-ece03cfd.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-1ece03f7.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-00b26ac8.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-91ee6750.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-3931dd81.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-68e8c73e.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-11e4dc8a.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-f36ea897.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-036d4e95.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-d96cdf2b.woff) format("woff"),url(/assets/KaTeX_Script-Regular-1c67f068.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-6b47c401.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-c943cc98.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-95b6d2f1.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-d04c5421.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-2014c523.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-a6b2099f.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/KaTeX_Size3-Regular-6ab6b62e.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-500e04d5.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-a4af7d41.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-99f9c675.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-c647367d.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-71d517d6.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-e14fed02.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-f01f3e87.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.22"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.mindmap-container[data-v-ce711d91]{height:100vh;width:100%;position:relative;background:white;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow:visible}.save-controls[data-v-ce711d91]{position:absolute;bottom:20px;right:20px;z-index:1000;display:flex;gap:12px}.save-btn[data-v-ce711d91]{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#660874;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #6608744d}.save-btn[data-v-ce711d91]:hover{background:#5a0666;transform:translateY(-2px);box-shadow:0 6px 16px #66087466}.save-btn[data-v-ce711d91]:active{transform:translateY(0);box-shadow:0 2px 8px #6608744d}.save-btn svg[data-v-ce711d91]{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}.refresh-btn[data-v-ce711d91]{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#28a745;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #28a7454d}.refresh-btn[data-v-ce711d91]:hover{background:#218838;transform:translateY(-2px);box-shadow:0 6px 16px #28a74566}.refresh-btn[data-v-ce711d91]:active{transform:translateY(0);box-shadow:0 2px 8px #28a7454d}.refresh-btn svg[data-v-ce711d91]{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none}.mindmap-el[data-v-ce711d91]{height:100%;width:100%;background:white;border:none;outline:none;overflow:visible;position:relative}.welcome-page[data-v-ce711d91]{height:100vh;width:100%;margin-left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);color:#37352f;position:relative;z-index:999;transition:all .4s cubic-bezier(.4,0,.2,1);border-left:none}.welcome-page.ai-sidebar-collapsed[data-v-ce711d91]{width:100%;margin-left:0}.welcome-content[data-v-ce711d91]{text-align:center;max-width:800px;padding:40px;background:white;border-radius:20px;border:2px solid #660874;box-shadow:0 8px 32px #00000026;position:relative;z-index:1001;margin-left:100px;transition:all .4s cubic-bezier(.4,0,.2,1)}.welcome-content.ai-sidebar-collapsed[data-v-ce711d91]{margin-left:0}.welcome-header h1[data-v-ce711d91]{font-size:3rem;margin:0 0 20px;font-weight:700;color:#37352f;text-shadow:none}.welcome-subtitle[data-v-ce711d91]{font-size:1.2rem;margin:0 0 40px;color:#6b7280;font-weight:300}.welcome-features[data-v-ce711d91]{display:flex;flex-direction:column;gap:30px;margin:40px 0;align-items:center}.feature-item[data-v-ce711d91]{display:flex;align-items:center;gap:20px;padding:20px;background:rgba(255,255,255,.8);border-radius:15px;border:1px solid rgba(102,8,116,.1);transition:all .3s ease;box-shadow:0 4px 20px #00000014;width:100%;max-width:500px;justify-content:flex-start}.feature-item[data-v-ce711d91]:hover{transform:translateY(-5px);background:rgba(255,255,255,.95);box-shadow:0 8px 32px #0000001f}.feature-icon[data-v-ce711d91]{font-size:2.5rem;min-width:60px;color:#660874;display:flex;align-items:center;justify-content:center;flex-shrink:0}.feature-text[data-v-ce711d91]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.feature-text h3[data-v-ce711d91]{margin:0 0 10px;font-size:1.3rem;font-weight:600;color:#37352f;text-align:center}.feature-text p[data-v-ce711d91]{margin:0;color:#6b7280;line-height:1.5;text-align:center}.welcome-tips[data-v-ce711d91]{margin-top:30px;padding:20px;background:rgba(255,255,255,.8);border-radius:15px;border:1px solid rgba(102,8,116,.1);box-shadow:0 4px 20px #00000014}.welcome-tips p[data-v-ce711d91]{margin:0;color:#6b7280;font-size:1rem}[data-v-ce711d91] .mind-elixir{height:100%;width:100%;position:relative;overflow:hidden;background:transparent;border:none;outline:none}[data-v-ce711d91] .mind-elixir .map-container{height:100%;width:100%;position:relative}[data-v-ce711d91] .mind-elixir .map-canvas{transition:none}[data-v-ce711d91] .map-container .topic{background:#ffffff!important;border:2px solid #e0e0e0!important;border-radius:8px!important;padding:12px 16px!important;box-shadow:0 2px 8px #0000001a!important;transition:all .3s ease!important;cursor:pointer!important;min-width:120px!important;max-width:300px!important;text-align:center!important;font-size:14px!important;font-weight:500!important;color:#333!important;position:relative!important}[data-v-ce711d91] .map-container .topic:hover{border-color:#007bff!important;box-shadow:0 4px 12px #007bff33!important;transform:translateY(-2px)!important}[data-v-ce711d91] .map-container .topic.selected{border-color:#007bff!important;background:#f8f9ff!important;box-shadow:0 4px 12px #007bff4d!important}.context-menu[data-v-ce711d91]{position:absolute;background:rgba(255,255,255,.95);border-radius:12px;padding:8px;box-shadow:0 8px 24px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,0,0,.1);z-index:1000;display:flex;flex-direction:row;gap:4px;align-items:center;min-width:auto;white-space:nowrap;animation:menuFadeIn-ce711d91 .2s ease;transform:translate(-50%)}@keyframes menuFadeIn-ce711d91{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.context-menu-item[data-v-ce711d91]{width:36px;height:36px;border:none;border-radius:8px;background:transparent;color:#666;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.context-menu-item[data-v-ce711d91]:hover{background:rgba(0,0,0,.05);color:#333;transform:scale(1.05)}.context-menu-item.delete[data-v-ce711d91]:hover{background:rgba(220,53,69,.1);color:#dc3545}.context-menu-item.ask-ai[data-v-ce711d91]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:2px solid #5a67d8;box-shadow:0 2px 8px #667eea4d;position:relative}.context-menu-item.ask-ai[data-v-ce711d91]:hover{background:linear-gradient(135deg,#5a67d8 0%,#667eea 100%);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.context-menu-item.ask-ai svg[data-v-ce711d91]{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.context-menu-item svg[data-v-ce711d91]{width:16px;height:16px}.context-menu-item[data-v-ce711d91]:after{content:attr(title);position:absolute;bottom:-30px;left:50%;transform:translate(-50%);background:rgba(0,0,0,.8);color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;z-index:1001;pointer-events:none}.context-menu-item[data-v-ce711d91]:hover:after{opacity:1;visibility:visible}.context-menu-item[data-v-ce711d91]:before{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#000c;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none}.context-menu-item[data-v-ce711d91]:hover:before{opacity:1;visibility:visible}.ai-input-area[data-v-ce711d91]{position:absolute;width:300px;background:white;border-radius:12px;box-shadow:0 8px 32px #0000001f;z-index:1001;animation:slideInDown-ce711d91 .3s ease}@keyframes slideInDown-ce711d91{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.ai-input-header[data-v-ce711d91]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #e9ecef;background:#f8f9fa;border-radius:12px 12px 0 0}.ai-input-title[data-v-ce711d91]{font-size:16px;font-weight:600;color:#2c3e50}.ai-close-btn[data-v-ce711d91]{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;color:#6c757d;font-size:18px;line-height:1;transition:all .2s ease}.ai-close-btn[data-v-ce711d91]:hover{background:#e9ecef;color:#495057}.ai-input-content[data-v-ce711d91]{padding:20px}.ai-input-content textarea[data-v-ce711d91]{width:100%;padding:12px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;line-height:1.5;resize:none;transition:border-color .2s ease;font-family:inherit;margin-bottom:16px;box-sizing:border-box}.ai-input-content textarea[data-v-ce711d91]:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.ai-input-content textarea[data-v-ce711d91]:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed}.ai-input-actions[data-v-ce711d91]{display:flex;justify-content:center;align-items:center;gap:8px}.btn-cancel[data-v-ce711d91],.btn-submit[data-v-ce711d91]{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.btn-cancel[data-v-ce711d91]{background:#6c757d;color:#fff}.btn-cancel[data-v-ce711d91]:hover:not(:disabled){background:#5a6268}.btn-submit[data-v-ce711d91]{background:#007bff;color:#fff}.btn-submit[data-v-ce711d91]:hover:not(:disabled){background:#0056b3;transform:translateY(-1px)}.btn-cancel[data-v-ce711d91]:disabled,.btn-submit[data-v-ce711d91]:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.context-menu[data-v-ce711d91]{padding:6px;gap:3px}.context-menu-item[data-v-ce711d91]{width:32px;height:32px}.context-menu-item svg[data-v-ce711d91]{width:14px;height:14px}}.node-description[data-v-ce711d91]{font-size:11px;color:#666;margin-top:6px;padding:6px 8px;background:rgba(0,0,0,.03);border-radius:4px;max-width:250px;word-wrap:break-word;line-height:1.3;border-left:3px solid #e0e0e0;display:block}.topic[data-v-ce711d91]{min-width:150px;max-width:400px;padding:8px 12px;border-radius:8px;background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;margin:4px!important}.topic.root[data-v-ce711d91],.topic.main[data-v-ce711d91],.topic.sub[data-v-ce711d91]{background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important}.topic[data-v-ce711d91]{background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;border-radius:8px!important;padding:8px 12px!important;min-width:150px!important;max-width:400px!important;margin:4px!important;position:relative!important}.tpc-line[data-v-ce711d91]{position:absolute!important;z-index:1!important}.tpc-line.tpc-line-left[data-v-ce711d91]{right:100%!important;top:50%!important;transform:translateY(-50%)!important}.tpc-line.tpc-line-right[data-v-ce711d91]{left:100%!important;top:50%!important;transform:translateY(-50%)!important}.tpc-line.tpc-line-top[data-v-ce711d91]{bottom:100%!important;left:50%!important;transform:translate(-50%)!important}.tpc-line.tpc-line-bottom[data-v-ce711d91]{top:100%!important;left:50%!important;transform:translate(-50%)!important}.topic[data-v-ce711d91]:before{display:none!important}.topic[data-v-ce711d91]:after{display:none!important}.topic[style*="border-radius: 50%"][data-v-ce711d91]{border-radius:8px!important;background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important}.topic[data-v-ce711d91]:not(:has(.children)){background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;border-radius:8px!important}.topic[style][data-v-ce711d91]{background:white!important;box-shadow:0 2px 8px #0000001a!important;border:1px solid #e0e0e0!important;border-radius:8px!important;padding:8px 12px!important;min-width:150px!important;max-width:400px!important;margin:4px!important}.topic .topic-text[data-v-ce711d91]{font-weight:500;color:#333;margin-bottom:4px;line-height:1.4}.topic .topic-text.markdown-content[data-v-ce711d91]{font-size:12px;line-height:1.3}.topic table[data-v-ce711d91],.topic .text table[data-v-ce711d91],.topic .topic-text table[data-v-ce711d91],.topic .topic-text.markdown-content table[data-v-ce711d91]{border-collapse:collapse!important;width:100%!important;margin:4px 0!important;font-size:11px!important;border:2px solid #333!important;border-radius:6px!important;box-shadow:0 2px 8px #00000014!important;background-color:#fafafa!important;overflow:hidden!important;display:table!important;white-space:normal!important}.topic table th[data-v-ce711d91],.topic table td[data-v-ce711d91],.topic .text table th[data-v-ce711d91],.topic .text table td[data-v-ce711d91],.topic .topic-text table th[data-v-ce711d91],.topic .topic-text table td[data-v-ce711d91],.topic .topic-text.markdown-content table th[data-v-ce711d91],.topic .topic-text.markdown-content table td[data-v-ce711d91]{border:2px solid #333!important;padding:6px 8px!important;text-align:left!important;vertical-align:top!important;display:table-cell!important;position:relative!important;white-space:normal!important}.topic .topic-text.markdown-content table th[data-v-ce711d91],.topic .text table th[data-v-ce711d91],.topic table th[data-v-ce711d91]{background-color:#f5f5f5!important;font-weight:600!important;color:#333!important;text-align:center!important;border-bottom:2px solid #333!important}.topic .topic-text.markdown-content table td[data-v-ce711d91],.topic .text table td[data-v-ce711d91],.topic table td[data-v-ce711d91]{background-color:#fff!important}.topic .topic-text.markdown-content table tr[data-v-ce711d91],.topic .text table tr[data-v-ce711d91],.topic table tr[data-v-ce711d91]{display:table-row!important;white-space:normal!important}.topic .topic-text.markdown-content table tr:nth-child(2n) td[data-v-ce711d91],.topic .text table tr:nth-child(2n) td[data-v-ce711d91]{background-color:#f8f8f8!important}.topic .topic-text.markdown-content table tr:hover td[data-v-ce711d91],.topic .text table tr:hover td[data-v-ce711d91]{background-color:#f0f8ff!important}.topic .topic-text.markdown-content table th[data-v-ce711d91]:not(:last-child),.topic .topic-text.markdown-content table td[data-v-ce711d91]:not(:last-child),.topic .text table th[data-v-ce711d91]:not(:last-child),.topic .text table td[data-v-ce711d91]:not(:last-child){border-right:1px solid #e0e0e0!important}.topic .topic-text.markdown-content table tr:not(:last-child) td[data-v-ce711d91],.topic .text table tr:not(:last-child) td[data-v-ce711d91]{border-bottom:1px solid #e0e0e0!important}.topic .topic-text.markdown-content code[data-v-ce711d91]{background-color:#f4f4f4;padding:1px 3px;border-radius:2px;font-family:Courier New,monospace;font-size:10px}.topic .topic-text.markdown-content pre[data-v-ce711d91]{background-color:#f4f4f4;padding:4px;border-radius:3px;overflow-x:auto;font-size:10px}.topic .topic-text.markdown-content ul[data-v-ce711d91],.topic .topic-text.markdown-content ol[data-v-ce711d91]{margin:2px 0;padding-left:12px}.topic .topic-text.markdown-content li[data-v-ce711d91]{margin:1px 0;font-size:11px}.topic .topic-text.markdown-content strong[data-v-ce711d91]{font-weight:600}.topic .topic-text.markdown-content em[data-v-ce711d91]{font-style:italic}.topic h1[data-v-ce711d91],.topic h2[data-v-ce711d91],.topic h3[data-v-ce711d91],.topic h4[data-v-ce711d91],.topic h5[data-v-ce711d91],.topic h6[data-v-ce711d91]{margin:4px 0;font-weight:600;color:#333}.topic p[data-v-ce711d91]{margin:2px 0;line-height:1.3;color:#666}.topic ul[data-v-ce711d91],.topic ol[data-v-ce711d91]{margin:2px 0;padding-left:16px}.topic li[data-v-ce711d91]{margin:1px 0;line-height:1.3;color:#666}.topic strong[data-v-ce711d91],.topic b[data-v-ce711d91]{font-weight:600;color:#333}.topic em[data-v-ce711d91],.topic i[data-v-ce711d91]{font-style:italic;color:#555}.topic code[data-v-ce711d91]{background:#f5f5f5;padding:1px 3px;border-radius:3px;font-family:monospace;font-size:.9em}.topic-content[data-v-ce711d91]{display:flex;flex-direction:column;align-items:flex-start}.ai-sidebar-wrapper[data-v-d0b1a702]{position:fixed;top:0;left:0;z-index:1000}.ai-sidebar[data-v-d0b1a702]{position:relative;width:420px;height:100vh;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);color:#37352f;transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:none;overflow:visible}.ai-sidebar[data-v-d0b1a702]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(102,8,116,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(102,8,116,.1) 0%,transparent 50%),radial-gradient(circle at 40% 40%,rgba(102,8,116,.05) 0%,transparent 50%);pointer-events:none}.sidebar-collapsed[data-v-d0b1a702]{transform:translate(-420px)}.sidebar-toggle[data-v-d0b1a702]{position:fixed;top:20px;width:45px;height:45px;background:#660874;border-radius:0 8px 8px 0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:2px 0 10px #0003,0 0 20px #6608744d;color:#fff;transition:all .4s cubic-bezier(.4,0,.2,1);font-weight:700;z-index:100000;border:2px solid #660874}.sidebar-toggle[data-v-d0b1a702]:hover{background:#5a0666;transform:scale(1.1);color:#fff;box-shadow:3px 0 15px #00000026;border-color:#5a0666}.sidebar-content[data-v-d0b1a702]{height:100%;overflow-y:auto;padding:20px;position:relative;z-index:10}.sidebar-header[data-v-d0b1a702]{text-align:center;margin-bottom:35px;padding-bottom:25px;border-bottom:1px solid rgba(102,8,116,.1);position:relative;z-index:10}.sidebar-header h3[data-v-d0b1a702]{margin:0 0 15px;font-size:28px;font-weight:600;color:#000}.sidebar-header p[data-v-d0b1a702]{margin:0;color:#333;font-size:16px}.collapse-hint[data-v-d0b1a702]{margin-top:10px;text-align:center}.collapse-hint small[data-v-d0b1a702]{color:#666;font-size:12px;opacity:.8}.section[data-v-d0b1a702]{margin-bottom:35px;background:rgba(255,255,255,.95);border-radius:12px;padding:25px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(102,8,116,.2);box-shadow:0 4px 20px #0000001a;position:relative;z-index:10;overflow:hidden}.section h4[data-v-d0b1a702]{margin:0 0 20px;font-size:20px;font-weight:600;display:flex;align-items:center;gap:8px;color:#000}.input-group[data-v-d0b1a702]{margin-bottom:20px}.input-group label[data-v-d0b1a702]{display:block;margin-bottom:10px;font-weight:500;font-size:16px;color:#000}.input-group textarea[data-v-d0b1a702]{width:100%;padding:12px;border:none;border-radius:8px;background:rgba(255,255,255,.9);color:#333;font-size:14px;resize:vertical;min-height:80px;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.input-group textarea[data-v-d0b1a702]:focus{outline:none;box-shadow:0 0 0 2px #ffffff80}.button-group[data-v-d0b1a702]{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.save-button-group[data-v-d0b1a702]{margin-top:15px}.btn-primary[data-v-d0b1a702],.btn-secondary[data-v-d0b1a702],.btn-clear[data-v-d0b1a702],.btn-copy[data-v-d0b1a702],.btn-import[data-v-d0b1a702],.btn-preview[data-v-d0b1a702],.btn-test[data-v-d0b1a702],.btn-save[data-v-d0b1a702]{padding:12px 18px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:6px}.btn-primary[data-v-d0b1a702]{background:#660874;color:#fff}.btn-primary[data-v-d0b1a702]:hover:not(:disabled){background:#5a0666;transform:translateY(-2px)}.btn-secondary[data-v-d0b1a702]{background:#2196F3;color:#fff}.btn-secondary[data-v-d0b1a702]:hover:not(:disabled){background:#1976D2;transform:translateY(-2px)}.btn-clear[data-v-d0b1a702]{background:#f44336;color:#fff}.btn-clear[data-v-d0b1a702]:hover{background:#d32f2f;transform:translateY(-2px)}.btn-copy[data-v-d0b1a702]{background:#FF9800;color:#fff}.btn-copy[data-v-d0b1a702]:hover{background:#F57C00;transform:translateY(-2px)}.btn-import[data-v-d0b1a702]{background:#9C27B0;color:#fff}.btn-import[data-v-d0b1a702]:hover{background:#7B1FA2;transform:translateY(-2px)}.btn-preview[data-v-d0b1a702]{background:#00BCD4;color:#fff}.btn-preview[data-v-d0b1a702]:hover{background:#0097A7;transform:translateY(-2px)}.btn-test[data-v-d0b1a702]{background:#FF5722;color:#fff}.file-upload-area[data-v-d0b1a702]{position:relative;border:2px dashed rgba(102,8,116,.5);border-radius:8px;padding:20px;text-align:center;transition:all .3s ease;cursor:pointer;background:rgba(255,255,255,.9)}.file-upload-area[data-v-d0b1a702]:hover{border-color:#66087480;background:rgba(255,255,255,.8)}.file-upload-area.drag-over[data-v-d0b1a702]{border-color:#660874cc;background:rgba(102,8,116,.1);transform:scale(1.02)}.file-input[data-v-d0b1a702]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-placeholder[data-v-d0b1a702]{display:flex;flex-direction:column;align-items:center;gap:8px}.upload-icon[data-v-d0b1a702]{font-size:24px}.upload-text[data-v-d0b1a702]{font-size:16px;font-weight:500;color:#000}.upload-hint[data-v-d0b1a702]{font-size:14px;color:#333}.file-info[data-v-d0b1a702]{margin-top:20px;padding:16px;background:rgba(255,255,255,.9);border-radius:12px;border:1px solid rgba(102,8,116,.15);box-shadow:0 2px 8px #0000000d}.file-details[data-v-d0b1a702]{display:flex;align-items:center;justify-content:space-between;gap:12px}.file-info-left[data-v-d0b1a702]{display:flex;flex-direction:column;gap:4px;flex:1}.file-name[data-v-d0b1a702]{font-weight:600;color:#37352f;font-size:16px;line-height:1.4}.file-size[data-v-d0b1a702]{color:#6b7280;font-size:13px;font-weight:500}.btn-remove[data-v-d0b1a702]{background:linear-gradient(135deg,#ff6b6b 0%,#ee5a52 100%);color:#fff;border:none;border-radius:8px;padding:8px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;box-shadow:0 2px 4px #ff6b6b4d}.btn-remove[data-v-d0b1a702]:hover{background:linear-gradient(135deg,#ff5252 0%,#d32f2f 100%);transform:translateY(-1px);box-shadow:0 4px 8px #ff6b6b66}.btn-remove[data-v-d0b1a702]:active{transform:translateY(0);box-shadow:0 2px 4px #ff6b6b4d}.file-action-buttons[data-v-d0b1a702]{margin-top:20px;padding-top:20px;border-top:1px solid rgba(102,8,116,.1)}.btn-test[data-v-d0b1a702]:hover{background:#E64A19;transform:translateY(-2px)}.btn-save[data-v-d0b1a702]{background:#660874;color:#fff}.btn-save[data-v-d0b1a702]:hover{background:#5a0666;transform:translateY(-2px)}button[data-v-d0b1a702]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.result-container[data-v-d0b1a702]{background:rgba(255,255,255,.8);border-radius:8px;padding:18px;margin-top:15px;border:1px solid rgba(102,8,116,.1)}.markdown-result[data-v-d0b1a702]{background:rgba(255,255,255,.95);border:1px solid rgba(102,8,116,.15);border-radius:8px;padding:15px;margin:0 0 20px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.5;color:#333;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;resize:vertical}.json-result[data-v-d0b1a702]{background:rgba(102,8,116,.1);border-radius:6px;padding:15px;margin:0 0 20px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;color:#37352f;overflow-x:auto;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.history-list[data-v-d0b1a702]{max-height:200px;overflow-y:auto;overflow-x:hidden}.history-item[data-v-d0b1a702]{background:rgba(255,255,255,.8);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:all .3s ease;border:1px solid rgba(102,8,116,.1);overflow:hidden;word-wrap:break-word;word-break:break-word}.history-item[data-v-d0b1a702]:hover{background:rgba(255,255,255,.95);transform:translate(5px);box-shadow:0 4px 16px #0000001a}.history-title[data-v-d0b1a702]{font-weight:500;margin-bottom:6px;font-size:16px;color:#37352f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-time[data-v-d0b1a702]{font-size:14px;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.processing-status[data-v-d0b1a702]{display:flex;align-items:center;gap:8px;padding:15px;background:rgba(102,8,116,.1);border:1px solid rgba(102,8,116,.3);border-radius:8px;margin:20px 0;color:#660874;font-size:16px}.spinner[data-v-d0b1a702]{width:20px;height:20px;border:2px solid #f3f3f3;border-top:2px solid #660874;border-radius:50%;animation:spin-d0b1a702 1s linear infinite}@keyframes spin-d0b1a702{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-preview[data-v-d0b1a702]:disabled{opacity:.6;cursor:not-allowed;background:rgba(255,255,255,.2)}.sidebar-content[data-v-d0b1a702]::-webkit-scrollbar,.json-result[data-v-d0b1a702]::-webkit-scrollbar,.history-list[data-v-d0b1a702]::-webkit-scrollbar{width:6px}.sidebar-content[data-v-d0b1a702]::-webkit-scrollbar-track,.json-result[data-v-d0b1a702]::-webkit-scrollbar-track,.history-list[data-v-d0b1a702]::-webkit-scrollbar-track{background:rgba(102,8,116,.1);border-radius:3px}.sidebar-content[data-v-d0b1a702]::-webkit-scrollbar-thumb,.json-result[data-v-d0b1a702]::-webkit-scrollbar-thumb,.history-list[data-v-d0b1a702]::-webkit-scrollbar-thumb{background:rgba(102,8,116,.3);border-radius:3px}.sidebar-content[data-v-d0b1a702]::-webkit-scrollbar-thumb:hover,.json-result[data-v-d0b1a702]::-webkit-scrollbar-thumb:hover,.history-list[data-v-d0b1a702]::-webkit-scrollbar-thumb:hover{background:rgba(102,8,116,.5)}@media (max-width: 768px){.ai-sidebar[data-v-d0b1a702]{width:300px}.sidebar-content[data-v-d0b1a702],.section[data-v-d0b1a702]{padding:15px}.button-group[data-v-d0b1a702]{flex-direction:column}.btn-primary[data-v-d0b1a702],.btn-secondary[data-v-d0b1a702],.btn-clear[data-v-d0b1a702],.btn-copy[data-v-d0b1a702],.btn-import[data-v-d0b1a702]{width:100%;justify-content:center}}.markdown-test[data-v-68a00828]{max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.test-section[data-v-68a00828]{margin-bottom:30px;padding:20px;border:1px solid #e0e0e0;border-radius:8px;background:#f9f9f9}.markdown-input[data-v-68a00828]{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:14px;line-height:1.5;resize:vertical}.rendered-content[data-v-68a00828]{background:white;padding:20px;border-radius:4px;border:1px solid #ddd;min-height:200px}.test-cases[data-v-68a00828]{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.test-btn[data-v-68a00828],.test-case-btn[data-v-68a00828]{padding:8px 16px;border:1px solid #007bff;background:white;color:#007bff;border-radius:4px;cursor:pointer;transition:all .2s ease}.test-btn[data-v-68a00828]:hover,.test-case-btn[data-v-68a00828]:hover{background:#007bff;color:#fff}h2[data-v-68a00828],h3[data-v-68a00828]{color:#333;margin-bottom:15px}h2[data-v-68a00828]{border-bottom:2px solid #007bff;padding-bottom:10px}.error[data-v-68a00828]{color:#dc3545;background:#f8d7da;border:1px solid #f5c6cb;padding:10px;border-radius:4px}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;margin:0;padding:0;display:flex}.main-content{flex:1;margin-left:350px;transition:margin-left .3s ease;width:calc(100% - 350px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Avenir,Helvetica,Arial,sans-serif;background:#f5f5f5}.mind-elixir,.mind-elixir .map-container{height:100%;width:100%}.test-mode-toggle{position:fixed;top:20px;right:20px;z-index:1000}.test-btn{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;box-shadow:0 2px 8px #007bff4d;transition:all .2s ease}.test-btn:hover{background:#0056b3;transform:translateY(-1px);box-shadow:0 4px 12px #007bff66}.test-mode{height:100vh;overflow:auto} diff --git a/frontend/dist/assets/index-7802977e.js b/frontend/dist/assets/index-7802977e.js new file mode 100644 index 0000000..9c6aabf --- /dev/null +++ b/frontend/dist/assets/index-7802977e.js @@ -0,0 +1,606 @@ +var Id=Object.defineProperty;var _d=(t,e,r)=>e in t?Id(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Ge=(t,e,r)=>(_d(t,typeof e!="symbol"?e+"":e,r),r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(s){if(s.ep)return;s.ep=!0;const i=r(s);fetch(s.href,i)}})();/** +* @vue/shared v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function wa(t){const e=Object.create(null);for(const r of t.split(","))e[r]=1;return r=>r in e}const Ye={},Cn=[],tr=()=>{},Rc=()=>!1,Rs=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),xa=t=>t.startsWith("onUpdate:"),yt=Object.assign,ka=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},Od=Object.prototype.hasOwnProperty,He=(t,e)=>Od.call(t,e),Ce=Array.isArray,Mn=t=>Is(t)==="[object Map]",Ic=t=>Is(t)==="[object Set]",De=t=>typeof t=="function",ut=t=>typeof t=="string",Zr=t=>typeof t=="symbol",it=t=>t!==null&&typeof t=="object",_c=t=>(it(t)||De(t))&&De(t.then)&&De(t.catch),Oc=Object.prototype.toString,Is=t=>Oc.call(t),Ld=t=>Is(t).slice(8,-1),Lc=t=>Is(t)==="[object Object]",Sa=t=>ut(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Qn=wa(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_s=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},zd=/-(\w)/g,Wr=_s(t=>t.replace(zd,(e,r)=>r?r.toUpperCase():"")),Fd=/\B([A-Z])/g,Qr=_s(t=>t.replace(Fd,"-$1").toLowerCase()),zc=_s(t=>t.charAt(0).toUpperCase()+t.slice(1)),ii=_s(t=>t?`on${zc(t)}`:""),Vr=(t,e)=>!Object.is(t,e),K0=(t,...e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:r})},$i=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let zo;const Os=()=>zo||(zo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function On(t){if(Ce(t)){const e={};for(let r=0;r{if(r){const n=r.split(Bd);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function Ln(t){let e="";if(ut(t))e=t;else if(Ce(t))for(let r=0;r!!(t&&t.__v_isRef===!0),ur=t=>ut(t)?t:t==null?"":Ce(t)||it(t)&&(t.toString===Oc||!De(t.toString))?Bc(t)?ur(t.value):JSON.stringify(t,Pc,2):String(t),Pc=(t,e)=>Bc(e)?Pc(t,e.value):Mn(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,s],i)=>(r[ai(n,i)+" =>"]=s,r),{})}:Ic(e)?{[`Set(${e.size})`]:[...e.values()].map(r=>ai(r))}:Zr(e)?ai(e):it(e)&&!Ce(e)&&!Lc(e)?String(e):e,ai=(t,e="")=>{var r;return Zr(t)?`Symbol(${(r=t.description)!=null?r:e})`:t};/** +* @vue/reactivity v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let It;class Ud{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=It,!e&&It&&(this.index=(It.scopes||(It.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,r;if(this.scopes)for(e=0,r=this.scopes.length;e0&&--this._on===0&&(It=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let r,n;for(r=0,n=this.effects.length;r0)return;if(t0){let e=t0;for(t0=void 0;e;){const r=e.next;e.next=void 0,e.flags&=-9,e=r}}let t;for(;e0;){let e=e0;for(e0=void 0;e;){const r=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=r}}if(t)throw t}function Uc(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Vc(t){let e,r=t.depsTail,n=r;for(;n;){const s=n.prevDep;n.version===-1?(n===r&&(r=s),Ea(n),Wd(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}t.deps=e,t.depsTail=r}function Bi(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Wc(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Wc(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===c0)||(t.globalVersion=c0,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Bi(t))))return;t.flags|=2;const e=t.dep,r=Ze,n=rr;Ze=t,rr=!0;try{Uc(t);const s=t.fn(t._value);(e.version===0||Vr(s,t._value))&&(t.flags|=128,t._value=s,e.version++)}catch(s){throw e.version++,s}finally{Ze=r,rr=n,Vc(t),t.flags&=-3}}function Ea(t,e=!1){const{dep:r,prevSub:n,nextSub:s}=t;if(n&&(n.nextSub=s,t.prevSub=void 0),s&&(s.prevSub=n,t.nextSub=void 0),r.subs===t&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let i=r.computed.deps;i;i=i.nextDep)Ea(i,!0)}!e&&!--r.sc&&r.map&&r.map.delete(r.key)}function Wd(t){const{prevDep:e,nextDep:r}=t;e&&(e.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=e,t.nextDep=void 0)}let rr=!0;const Gc=[];function Rr(){Gc.push(rr),rr=!1}function Ir(){const t=Gc.pop();rr=t===void 0?!0:t}function Fo(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const r=Ze;Ze=void 0;try{e()}finally{Ze=r}}}let c0=0;class Gd{constructor(e,r){this.sub=e,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ca{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!Ze||!rr||Ze===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Ze)r=this.activeLink=new Gd(Ze,this),Ze.deps?(r.prevDep=Ze.depsTail,Ze.depsTail.nextDep=r,Ze.depsTail=r):Ze.deps=Ze.depsTail=r,Kc(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Ze.depsTail,r.nextDep=void 0,Ze.depsTail.nextDep=r,Ze.depsTail=r,Ze.deps===r&&(Ze.deps=n)}return r}trigger(e){this.version++,c0++,this.notify(e)}notify(e){Ta();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{Aa()}}}function Kc(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)Kc(n)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const Pi=new WeakMap,hn=Symbol(""),Hi=Symbol(""),u0=Symbol("");function wt(t,e,r){if(rr&&Ze){let n=Pi.get(t);n||Pi.set(t,n=new Map);let s=n.get(r);s||(n.set(r,s=new Ca),s.map=n,s.key=r),s.track()}}function Ar(t,e,r,n,s,i){const a=Pi.get(t);if(!a){c0++;return}const o=l=>{l&&l.trigger()};if(Ta(),e==="clear")a.forEach(o);else{const l=Ce(t),c=l&&Sa(r);if(l&&r==="length"){const d=Number(n);a.forEach((f,p)=>{(p==="length"||p===u0||!Zr(p)&&p>=d)&&o(f)})}else switch((r!==void 0||a.has(void 0))&&o(a.get(r)),c&&o(a.get(u0)),e){case"add":l?c&&o(a.get("length")):(o(a.get(hn)),Mn(t)&&o(a.get(Hi)));break;case"delete":l||(o(a.get(hn)),Mn(t)&&o(a.get(Hi)));break;case"set":Mn(t)&&o(a.get(hn));break}}Aa()}function wn(t){const e=Pe(t);return e===t?e:(wt(e,"iterate",u0),Wt(t)?e:e.map(bt))}function Ls(t){return wt(t=Pe(t),"iterate",u0),t}const Kd={__proto__:null,[Symbol.iterator](){return li(this,Symbol.iterator,bt)},concat(...t){return wn(this).concat(...t.map(e=>Ce(e)?wn(e):e))},entries(){return li(this,"entries",t=>(t[1]=bt(t[1]),t))},every(t,e){return wr(this,"every",t,e,void 0,arguments)},filter(t,e){return wr(this,"filter",t,e,r=>r.map(bt),arguments)},find(t,e){return wr(this,"find",t,e,bt,arguments)},findIndex(t,e){return wr(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return wr(this,"findLast",t,e,bt,arguments)},findLastIndex(t,e){return wr(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return wr(this,"forEach",t,e,void 0,arguments)},includes(...t){return ci(this,"includes",t)},indexOf(...t){return ci(this,"indexOf",t)},join(t){return wn(this).join(t)},lastIndexOf(...t){return ci(this,"lastIndexOf",t)},map(t,e){return wr(this,"map",t,e,void 0,arguments)},pop(){return jn(this,"pop")},push(...t){return jn(this,"push",t)},reduce(t,...e){return $o(this,"reduce",t,e)},reduceRight(t,...e){return $o(this,"reduceRight",t,e)},shift(){return jn(this,"shift")},some(t,e){return wr(this,"some",t,e,void 0,arguments)},splice(...t){return jn(this,"splice",t)},toReversed(){return wn(this).toReversed()},toSorted(t){return wn(this).toSorted(t)},toSpliced(...t){return wn(this).toSpliced(...t)},unshift(...t){return jn(this,"unshift",t)},values(){return li(this,"values",bt)}};function li(t,e,r){const n=Ls(t),s=n[e]();return n!==t&&!Wt(t)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=r(i.value)),i}),s}const Yd=Array.prototype;function wr(t,e,r,n,s,i){const a=Ls(t),o=a!==t&&!Wt(t),l=a[e];if(l!==Yd[e]){const f=l.apply(t,i);return o?bt(f):f}let c=r;a!==t&&(o?c=function(f,p){return r.call(this,bt(f),p,t)}:r.length>2&&(c=function(f,p){return r.call(this,f,p,t)}));const d=l.call(a,c,n);return o&&s?s(d):d}function $o(t,e,r,n){const s=Ls(t);let i=r;return s!==t&&(Wt(t)?r.length>3&&(i=function(a,o,l){return r.call(this,a,o,l,t)}):i=function(a,o,l){return r.call(this,a,bt(o),l,t)}),s[e](i,...n)}function ci(t,e,r){const n=Pe(t);wt(n,"iterate",u0);const s=n[e](...r);return(s===-1||s===!1)&&Ra(r[0])?(r[0]=Pe(r[0]),n[e](...r)):s}function jn(t,e,r=[]){Rr(),Ta();const n=Pe(t)[e].apply(t,r);return Aa(),Ir(),n}const Xd=wa("__proto__,__v_isRef,__isVue"),Yc=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Zr));function Jd(t){Zr(t)||(t=String(t));const e=Pe(this);return wt(e,"has",t),e.hasOwnProperty(t)}class Xc{constructor(e=!1,r=!1){this._isReadonly=e,this._isShallow=r}get(e,r,n){if(r==="__v_skip")return e.__v_skip;const s=this._isReadonly,i=this._isShallow;if(r==="__v_isReactive")return!s;if(r==="__v_isReadonly")return s;if(r==="__v_isShallow")return i;if(r==="__v_raw")return n===(s?i?oh:eu:i?Qc:Zc).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const a=Ce(e);if(!s){let l;if(a&&(l=Kd[r]))return l;if(r==="hasOwnProperty")return Jd}const o=Reflect.get(e,r,kt(e)?e:n);return(Zr(r)?Yc.has(r):Xd(r))||(s||wt(e,"get",r),i)?o:kt(o)?a&&Sa(r)?o:o.value:it(o)?s?tu(o):Na(o):o}}class Jc extends Xc{constructor(e=!1){super(!1,e)}set(e,r,n,s){let i=e[r];if(!this._isShallow){const l=Gr(i);if(!Wt(n)&&!Gr(n)&&(i=Pe(i),n=Pe(n)),!Ce(e)&&kt(i)&&!kt(n))return l||(i.value=n),!0}const a=Ce(e)&&Sa(r)?Number(r)t,N0=t=>Reflect.getPrototypeOf(t);function rh(t,e,r){return function(...n){const s=this.__v_raw,i=Pe(s),a=Mn(i),o=t==="entries"||t===Symbol.iterator&&a,l=t==="keys"&&a,c=s[t](...n),d=r?qi:e?os:bt;return!e&&wt(i,"iterate",l?Hi:hn),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:o?[d(f[0]),d(f[1])]:d(f),done:p}},[Symbol.iterator](){return this}}}}function D0(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function nh(t,e){const r={get(s){const i=this.__v_raw,a=Pe(i),o=Pe(s);t||(Vr(s,o)&&wt(a,"get",s),wt(a,"get",o));const{has:l}=N0(a),c=e?qi:t?os:bt;if(l.call(a,s))return c(i.get(s));if(l.call(a,o))return c(i.get(o));i!==a&&i.get(s)},get size(){const s=this.__v_raw;return!t&&wt(Pe(s),"iterate",hn),s.size},has(s){const i=this.__v_raw,a=Pe(i),o=Pe(s);return t||(Vr(s,o)&&wt(a,"has",s),wt(a,"has",o)),s===o?i.has(s):i.has(s)||i.has(o)},forEach(s,i){const a=this,o=a.__v_raw,l=Pe(o),c=e?qi:t?os:bt;return!t&&wt(l,"iterate",hn),o.forEach((d,f)=>s.call(i,c(d),c(f),a))}};return yt(r,t?{add:D0("add"),set:D0("set"),delete:D0("delete"),clear:D0("clear")}:{add(s){!e&&!Wt(s)&&!Gr(s)&&(s=Pe(s));const i=Pe(this);return N0(i).has.call(i,s)||(i.add(s),Ar(i,"add",s,s)),this},set(s,i){!e&&!Wt(i)&&!Gr(i)&&(i=Pe(i));const a=Pe(this),{has:o,get:l}=N0(a);let c=o.call(a,s);c||(s=Pe(s),c=o.call(a,s));const d=l.call(a,s);return a.set(s,i),c?Vr(i,d)&&Ar(a,"set",s,i):Ar(a,"add",s,i),this},delete(s){const i=Pe(this),{has:a,get:o}=N0(i);let l=a.call(i,s);l||(s=Pe(s),l=a.call(i,s)),o&&o.call(i,s);const c=i.delete(s);return l&&Ar(i,"delete",s,void 0),c},clear(){const s=Pe(this),i=s.size!==0,a=s.clear();return i&&Ar(s,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(s=>{r[s]=rh(s,t,e)}),r}function Ma(t,e){const r=nh(t,e);return(n,s,i)=>s==="__v_isReactive"?!t:s==="__v_isReadonly"?t:s==="__v_raw"?n:Reflect.get(He(r,s)&&s in n?r:n,s,i)}const sh={get:Ma(!1,!1)},ih={get:Ma(!1,!0)},ah={get:Ma(!0,!1)};const Zc=new WeakMap,Qc=new WeakMap,eu=new WeakMap,oh=new WeakMap;function lh(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ch(t){return t.__v_skip||!Object.isExtensible(t)?0:lh(Ld(t))}function Na(t){return Gr(t)?t:Da(t,!1,Qd,sh,Zc)}function uh(t){return Da(t,!1,th,ih,Qc)}function tu(t){return Da(t,!0,eh,ah,eu)}function Da(t,e,r,n,s){if(!it(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const i=ch(t);if(i===0)return t;const a=s.get(t);if(a)return a;const o=new Proxy(t,i===2?n:r);return s.set(t,o),o}function Nn(t){return Gr(t)?Nn(t.__v_raw):!!(t&&t.__v_isReactive)}function Gr(t){return!!(t&&t.__v_isReadonly)}function Wt(t){return!!(t&&t.__v_isShallow)}function Ra(t){return t?!!t.__v_raw:!1}function Pe(t){const e=t&&t.__v_raw;return e?Pe(e):t}function dh(t){return!He(t,"__v_skip")&&Object.isExtensible(t)&&Fc(t,"__v_skip",!0),t}const bt=t=>it(t)?Na(t):t,os=t=>it(t)?tu(t):t;function kt(t){return t?t.__v_isRef===!0:!1}function ze(t){return hh(t,!1)}function hh(t,e){return kt(t)?t:new fh(t,e)}class fh{constructor(e,r){this.dep=new Ca,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?e:Pe(e),this._value=r?e:bt(e),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(e){const r=this._rawValue,n=this.__v_isShallow||Wt(e)||Gr(e);e=n?e:Pe(e),Vr(e,r)&&(this._rawValue=e,this._value=n?e:bt(e),this.dep.trigger())}}function ph(t){return kt(t)?t.value:t}const mh={get:(t,e,r)=>e==="__v_raw"?t:ph(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const s=t[e];return kt(s)&&!kt(r)?(s.value=r,!0):Reflect.set(t,e,r,n)}};function ru(t){return Nn(t)?t:new Proxy(t,mh)}class gh{constructor(e,r,n){this.fn=e,this.setter=r,this._value=void 0,this.dep=new Ca(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=c0-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Ze!==this)return jc(this,!0),!0}get value(){const e=this.dep.track();return Wc(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function vh(t,e,r=!1){let n,s;return De(t)?n=t:(n=t.get,s=t.set),new gh(n,s,r)}const R0={},ls=new WeakMap;let cn;function bh(t,e=!1,r=cn){if(r){let n=ls.get(r);n||ls.set(r,n=[]),n.push(t)}}function yh(t,e,r=Ye){const{immediate:n,deep:s,once:i,scheduler:a,augmentJob:o,call:l}=r,c=N=>s?N:Wt(N)||s===!1||s===0?Er(N,1):Er(N);let d,f,p,b,v=!1,x=!1;if(kt(t)?(f=()=>t.value,v=Wt(t)):Nn(t)?(f=()=>c(t),v=!0):Ce(t)?(x=!0,v=t.some(N=>Nn(N)||Wt(N)),f=()=>t.map(N=>{if(kt(N))return N.value;if(Nn(N))return c(N);if(De(N))return l?l(N,2):N()})):De(t)?e?f=l?()=>l(t,2):t:f=()=>{if(p){Rr();try{p()}finally{Ir()}}const N=cn;cn=d;try{return l?l(t,3,[b]):t(b)}finally{cn=N}}:f=tr,e&&s){const N=f,I=s===!0?1/0:s;f=()=>Er(N(),I)}const y=Vd(),M=()=>{d.stop(),y&&y.active&&ka(y.effects,d)};if(i&&e){const N=e;e=(...I)=>{N(...I),M()}}let k=x?new Array(t.length).fill(R0):R0;const T=N=>{if(!(!(d.flags&1)||!d.dirty&&!N))if(e){const I=d.run();if(s||v||(x?I.some((O,z)=>Vr(O,k[z])):Vr(I,k))){p&&p();const O=cn;cn=d;try{const z=[I,k===R0?void 0:x&&k[0]===R0?[]:k,b];k=I,l?l(e,3,z):e(...z)}finally{cn=O}}}else d.run()};return o&&o(T),d=new Hc(f),d.scheduler=a?()=>a(T,!1):T,b=N=>bh(N,!1,d),p=d.onStop=()=>{const N=ls.get(d);if(N){if(l)l(N,4);else for(const I of N)I();ls.delete(d)}},e?n?T(!0):k=d.run():a?a(T.bind(null,!0),!0):d.run(),M.pause=d.pause.bind(d),M.resume=d.resume.bind(d),M.stop=M,M}function Er(t,e=1/0,r){if(e<=0||!it(t)||t.__v_skip||(r=r||new Set,r.has(t)))return t;if(r.add(t),e--,kt(t))Er(t.value,e,r);else if(Ce(t))for(let n=0;n{Er(n,e,r)});else if(Lc(t)){for(const n in t)Er(t[n],e,r);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&Er(t[n],e,r)}return t}/** +* @vue/runtime-core v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function v0(t,e,r,n){try{return n?t(...n):t()}catch(s){zs(s,e,r)}}function mr(t,e,r,n){if(De(t)){const s=v0(t,e,r,n);return s&&_c(s)&&s.catch(i=>{zs(i,e,r)}),s}if(Ce(t)){const s=[];for(let i=0;i>>1,s=Et[n],i=d0(s);i=d0(r)?Et.push(t):Et.splice(xh(e),0,t),t.flags|=1,su()}}function su(){cs||(cs=nu.then(au))}function kh(t){Ce(t)?Dn.push(...t):qr&&t.id===-1?qr.splice(Tn+1,0,t):t.flags&1||(Dn.push(t),t.flags|=1),su()}function Bo(t,e,r=cr+1){for(;rd0(r)-d0(n));if(Dn.length=0,qr){qr.push(...e);return}for(qr=e,Tn=0;Tnt.id==null?t.flags&2?-1:1/0:t.id;function au(t){const e=tr;try{for(cr=0;cr{n._d&&Go(-1);const i=us(e);let a;try{a=t(...s)}finally{us(i),n._d&&Go(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function ds(t,e){if(Ut===null)return t;const r=Ps(Ut),n=t.dirs||(t.dirs=[]);for(let s=0;st.__isTeleport,Eh=Symbol("_leaveCb");function _a(t,e){t.shapeFlag&6&&t.component?(t.transition=e,_a(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function lu(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function r0(t,e,r,n,s=!1){if(Ce(t)){t.forEach((v,x)=>r0(v,e&&(Ce(e)?e[x]:e),r,n,s));return}if(n0(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&r0(t,e,r,n.component.subTree);return}const i=n.shapeFlag&4?Ps(n.component):n.el,a=s?null:i,{i:o,r:l}=t,c=e&&e.r,d=o.refs===Ye?o.refs={}:o.refs,f=o.setupState,p=Pe(f),b=f===Ye?Rc:v=>He(p,v);if(c!=null&&c!==l){if(ut(c))d[c]=null,b(c)&&(f[c]=null);else if(kt(c)){c.value=null;const v=e;v.k&&(d[v.k]=null)}}if(De(l))v0(l,o,12,[a,d]);else{const v=ut(l),x=kt(l);if(v||x){const y=()=>{if(t.f){const M=v?b(l)?f[l]:d[l]:l.value;if(s)Ce(M)&&ka(M,i);else if(Ce(M))M.includes(i)||M.push(i);else if(v)d[l]=[i],b(l)&&(f[l]=d[l]);else{const k=[i];l.value=k,t.k&&(d[t.k]=k)}}else v?(d[l]=a,b(l)&&(f[l]=a)):x&&(l.value=a,t.k&&(d[t.k]=a))};a?(y.id=-1,zt(y,r)):y()}}}Os().requestIdleCallback;Os().cancelIdleCallback;const n0=t=>!!t.type.__asyncLoader,cu=t=>t.type.__isKeepAlive;function Ch(t,e){uu(t,"a",e)}function Mh(t,e){uu(t,"da",e)}function uu(t,e,r=Ct){const n=t.__wdc||(t.__wdc=()=>{let s=r;for(;s;){if(s.isDeactivated)return;s=s.parent}return t()});if(Fs(e,n,r),r){let s=r.parent;for(;s&&s.parent;)cu(s.parent.vnode)&&Nh(n,e,r,s),s=s.parent}}function Nh(t,e,r,n){const s=Fs(e,t,n,!0);La(()=>{ka(n[e],s)},r)}function Fs(t,e,r=Ct,n=!1){if(r){const s=r[t]||(r[t]=[]),i=e.__weh||(e.__weh=(...a)=>{Rr();const o=b0(r),l=mr(e,r,t,a);return o(),Ir(),l});return n?s.unshift(i):s.push(i),i}}const zr=t=>(e,r=Ct)=>{(!f0||t==="sp")&&Fs(t,(...n)=>e(...n),r)},Dh=zr("bm"),Oa=zr("m"),Rh=zr("bu"),Ih=zr("u"),_h=zr("bum"),La=zr("um"),Oh=zr("sp"),Lh=zr("rtg"),zh=zr("rtc");function Fh(t,e=Ct){Fs("ec",t,e)}const $h=Symbol.for("v-ndc");function du(t,e,r,n){let s;const i=r&&r[n],a=Ce(t);if(a||ut(t)){const o=a&&Nn(t);let l=!1,c=!1;o&&(l=!Wt(t),c=Gr(t),t=Ls(t)),s=new Array(t.length);for(let d=0,f=t.length;de(o,l,void 0,i&&i[l]));else{const o=Object.keys(t);s=new Array(o.length);for(let l=0,c=o.length;lt?Iu(t)?Ps(t):ji(t.parent):null,s0=yt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>ji(t.parent),$root:t=>ji(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>za(t),$forceUpdate:t=>t.f||(t.f=()=>{Ia(t.update)}),$nextTick:t=>t.n||(t.n=Y0.bind(t.proxy)),$watch:t=>of.bind(t)}),ui=(t,e)=>t!==Ye&&!t.__isScriptSetup&&He(t,e),Bh={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:r,setupState:n,data:s,props:i,accessCache:a,type:o,appContext:l}=t;let c;if(e[0]!=="$"){const b=a[e];if(b!==void 0)switch(b){case 1:return n[e];case 2:return s[e];case 4:return r[e];case 3:return i[e]}else{if(ui(n,e))return a[e]=1,n[e];if(s!==Ye&&He(s,e))return a[e]=2,s[e];if((c=t.propsOptions[0])&&He(c,e))return a[e]=3,i[e];if(r!==Ye&&He(r,e))return a[e]=4,r[e];Ui&&(a[e]=0)}}const d=s0[e];let f,p;if(d)return e==="$attrs"&&wt(t.attrs,"get",""),d(t);if((f=o.__cssModules)&&(f=f[e]))return f;if(r!==Ye&&He(r,e))return a[e]=4,r[e];if(p=l.config.globalProperties,He(p,e))return p[e]},set({_:t},e,r){const{data:n,setupState:s,ctx:i}=t;return ui(s,e)?(s[e]=r,!0):n!==Ye&&He(n,e)?(n[e]=r,!0):He(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(i[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:s,propsOptions:i,type:a}},o){let l,c;return!!(r[o]||t!==Ye&&o[0]!=="$"&&He(t,o)||ui(e,o)||(l=i[0])&&He(l,o)||He(n,o)||He(s0,o)||He(s.config.globalProperties,o)||(c=a.__cssModules)&&c[o])},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:He(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function Po(t){return Ce(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let Ui=!0;function Ph(t){const e=za(t),r=t.proxy,n=t.ctx;Ui=!1,e.beforeCreate&&Ho(e.beforeCreate,t,"bc");const{data:s,computed:i,methods:a,watch:o,provide:l,inject:c,created:d,beforeMount:f,mounted:p,beforeUpdate:b,updated:v,activated:x,deactivated:y,beforeDestroy:M,beforeUnmount:k,destroyed:T,unmounted:N,render:I,renderTracked:O,renderTriggered:z,errorCaptured:W,serverPrefetch:U,expose:he,inheritAttrs:ge,components:Ae,directives:et,filters:Je}=e;if(c&&Hh(c,n,null),a)for(const Ie in a){const ve=a[Ie];De(ve)&&(n[Ie]=ve.bind(r))}if(s){const Ie=s.call(r,r);it(Ie)&&(t.data=Na(Ie))}if(Ui=!0,i)for(const Ie in i){const ve=i[Ie],Me=De(ve)?ve.bind(r,r):De(ve.get)?ve.get.bind(r,r):tr,tt=!De(ve)&&De(ve.set)?ve.set.bind(r):tr,We=Ou({get:Me,set:tt});Object.defineProperty(n,Ie,{enumerable:!0,configurable:!0,get:()=>We.value,set:_e=>We.value=_e})}if(o)for(const Ie in o)hu(o[Ie],n,r,Ie);if(l){const Ie=De(l)?l.call(r):l;Reflect.ownKeys(Ie).forEach(ve=>{Gh(ve,Ie[ve])})}d&&Ho(d,t,"c");function Fe(Ie,ve){Ce(ve)?ve.forEach(Me=>Ie(Me.bind(r))):ve&&Ie(ve.bind(r))}if(Fe(Dh,f),Fe(Oa,p),Fe(Rh,b),Fe(Ih,v),Fe(Ch,x),Fe(Mh,y),Fe(Fh,W),Fe(zh,O),Fe(Lh,z),Fe(_h,k),Fe(La,N),Fe(Oh,U),Ce(he))if(he.length){const Ie=t.exposed||(t.exposed={});he.forEach(ve=>{Object.defineProperty(Ie,ve,{get:()=>r[ve],set:Me=>r[ve]=Me,enumerable:!0})})}else t.exposed||(t.exposed={});I&&t.render===tr&&(t.render=I),ge!=null&&(t.inheritAttrs=ge),Ae&&(t.components=Ae),et&&(t.directives=et),U&&lu(t)}function Hh(t,e,r=tr){Ce(t)&&(t=Vi(t));for(const n in t){const s=t[n];let i;it(s)?"default"in s?i=X0(s.from||n,s.default,!0):i=X0(s.from||n):i=X0(s),kt(i)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):e[n]=i}}function Ho(t,e,r){mr(Ce(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function hu(t,e,r,n){let s=n.includes(".")?Au(r,n):()=>r[n];if(ut(t)){const i=e[t];De(i)&&i0(s,i)}else if(De(t))i0(s,t.bind(r));else if(it(t))if(Ce(t))t.forEach(i=>hu(i,e,r,n));else{const i=De(t.handler)?t.handler.bind(r):e[t.handler];De(i)&&i0(s,i,t)}}function za(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:s,optionsCache:i,config:{optionMergeStrategies:a}}=t.appContext,o=i.get(e);let l;return o?l=o:!s.length&&!r&&!n?l=e:(l={},s.length&&s.forEach(c=>hs(l,c,a,!0)),hs(l,e,a)),it(e)&&i.set(e,l),l}function hs(t,e,r,n=!1){const{mixins:s,extends:i}=e;i&&hs(t,i,r,!0),s&&s.forEach(a=>hs(t,a,r,!0));for(const a in e)if(!(n&&a==="expose")){const o=qh[a]||r&&r[a];t[a]=o?o(t[a],e[a]):e[a]}return t}const qh={data:qo,props:jo,emits:jo,methods:Xn,computed:Xn,beforeCreate:At,created:At,beforeMount:At,mounted:At,beforeUpdate:At,updated:At,beforeDestroy:At,beforeUnmount:At,destroyed:At,unmounted:At,activated:At,deactivated:At,errorCaptured:At,serverPrefetch:At,components:Xn,directives:Xn,watch:Uh,provide:qo,inject:jh};function qo(t,e){return e?t?function(){return yt(De(t)?t.call(this,this):t,De(e)?e.call(this,this):e)}:e:t}function jh(t,e){return Xn(Vi(t),Vi(e))}function Vi(t){if(Ce(t)){const e={};for(let r=0;r1)return r&&De(e)?e.call(n&&n.proxy):e}}const pu={},mu=()=>Object.create(pu),gu=t=>Object.getPrototypeOf(t)===pu;function Kh(t,e,r,n=!1){const s={},i=mu();t.propsDefaults=Object.create(null),vu(t,e,s,i);for(const a in t.propsOptions[0])a in s||(s[a]=void 0);r?t.props=n?s:uh(s):t.type.props?t.props=s:t.props=i,t.attrs=i}function Yh(t,e,r,n){const{props:s,attrs:i,vnode:{patchFlag:a}}=t,o=Pe(s),[l]=t.propsOptions;let c=!1;if((n||a>0)&&!(a&16)){if(a&8){const d=t.vnode.dynamicProps;for(let f=0;f{l=!0;const[p,b]=bu(f,e,!0);yt(a,p),b&&o.push(...b)};!r&&e.mixins.length&&e.mixins.forEach(d),t.extends&&d(t.extends),t.mixins&&t.mixins.forEach(d)}if(!i&&!l)return it(t)&&n.set(t,Cn),Cn;if(Ce(i))for(let d=0;dt==="_"||t==="_ctx"||t==="$stable",$a=t=>Ce(t)?t.map(dr):[dr(t)],Jh=(t,e,r)=>{if(e._n)return e;const n=Sh((...s)=>$a(e(...s)),r);return n._c=!1,n},yu=(t,e,r)=>{const n=t._ctx;for(const s in t){if(Fa(s))continue;const i=t[s];if(De(i))e[s]=Jh(s,i,n);else if(i!=null){const a=$a(i);e[s]=()=>a}}},wu=(t,e)=>{const r=$a(e);t.slots.default=()=>r},xu=(t,e,r)=>{for(const n in e)(r||!Fa(n))&&(t[n]=e[n])},Zh=(t,e,r)=>{const n=t.slots=mu();if(t.vnode.shapeFlag&32){const s=e._;s?(xu(n,e,r),r&&Fc(n,"_",s,!0)):yu(e,n)}else e&&wu(t,e)},Qh=(t,e,r)=>{const{vnode:n,slots:s}=t;let i=!0,a=Ye;if(n.shapeFlag&32){const o=e._;o?r&&o===1?i=!1:xu(s,e,r):(i=!e.$stable,yu(e,s)),a=e}else e&&(wu(t,e),a={default:1});if(i)for(const o in s)!Fa(o)&&a[o]==null&&delete s[o]},zt=pf;function ef(t){return tf(t)}function tf(t,e){const r=Os();r.__VUE__=!0;const{insert:n,remove:s,patchProp:i,createElement:a,createText:o,createComment:l,setText:c,setElementText:d,parentNode:f,nextSibling:p,setScopeId:b=tr,insertStaticContent:v}=t,x=(S,D,F,G=null,q=null,H=null,X=void 0,ne=null,se=!!D.dynamicChildren)=>{if(S===D)return;S&&!Un(S,D)&&(G=re(S),_e(S,q,H,!0),S=null),D.patchFlag===-2&&(se=!1,D.dynamicChildren=null);const{type:Q,ref:be,shapeFlag:le}=D;switch(Q){case Bs:y(S,D,F,G);break;case Kr:M(S,D,F,G);break;case J0:S==null&&k(D,F,G,X);break;case er:Ae(S,D,F,G,q,H,X,ne,se);break;default:le&1?I(S,D,F,G,q,H,X,ne,se):le&6?et(S,D,F,G,q,H,X,ne,se):(le&64||le&128)&&Q.process(S,D,F,G,q,H,X,ne,se,ye)}be!=null&&q?r0(be,S&&S.ref,H,D||S,!D):be==null&&S&&S.ref!=null&&r0(S.ref,null,H,S,!0)},y=(S,D,F,G)=>{if(S==null)n(D.el=o(D.children),F,G);else{const q=D.el=S.el;D.children!==S.children&&c(q,D.children)}},M=(S,D,F,G)=>{S==null?n(D.el=l(D.children||""),F,G):D.el=S.el},k=(S,D,F,G)=>{[S.el,S.anchor]=v(S.children,D,F,G,S.el,S.anchor)},T=({el:S,anchor:D},F,G)=>{let q;for(;S&&S!==D;)q=p(S),n(S,F,G),S=q;n(D,F,G)},N=({el:S,anchor:D})=>{let F;for(;S&&S!==D;)F=p(S),s(S),S=F;s(D)},I=(S,D,F,G,q,H,X,ne,se)=>{D.type==="svg"?X="svg":D.type==="math"&&(X="mathml"),S==null?O(D,F,G,q,H,X,ne,se):U(S,D,q,H,X,ne,se)},O=(S,D,F,G,q,H,X,ne)=>{let se,Q;const{props:be,shapeFlag:le,transition:pe,dirs:Se}=S;if(se=S.el=a(S.type,H,be&&be.is,be),le&8?d(se,S.children):le&16&&W(S.children,se,null,G,q,di(S,H),X,ne),Se&&nn(S,null,G,"created"),z(se,S,S.scopeId,X,G),be){for(const w in be)w!=="value"&&!Qn(w)&&i(se,w,null,be[w],H,G);"value"in be&&i(se,"value",null,be.value,H),(Q=be.onVnodeBeforeMount)&&ar(Q,G,S)}Se&&nn(S,null,G,"beforeMount");const Le=rf(q,pe);Le&&pe.beforeEnter(se),n(se,D,F),((Q=be&&be.onVnodeMounted)||Le||Se)&&zt(()=>{Q&&ar(Q,G,S),Le&&pe.enter(se),Se&&nn(S,null,G,"mounted")},q)},z=(S,D,F,G,q)=>{if(F&&b(S,F),G)for(let H=0;H{for(let Q=se;Q{const ne=D.el=S.el;let{patchFlag:se,dynamicChildren:Q,dirs:be}=D;se|=S.patchFlag&16;const le=S.props||Ye,pe=D.props||Ye;let Se;if(F&&sn(F,!1),(Se=pe.onVnodeBeforeUpdate)&&ar(Se,F,D,S),be&&nn(D,S,F,"beforeUpdate"),F&&sn(F,!0),(le.innerHTML&&pe.innerHTML==null||le.textContent&&pe.textContent==null)&&d(ne,""),Q?he(S.dynamicChildren,Q,ne,F,G,di(D,q),H):X||ve(S,D,ne,null,F,G,di(D,q),H,!1),se>0){if(se&16)ge(ne,le,pe,F,q);else if(se&2&&le.class!==pe.class&&i(ne,"class",null,pe.class,q),se&4&&i(ne,"style",le.style,pe.style,q),se&8){const Le=D.dynamicProps;for(let w=0;w{Se&&ar(Se,F,D,S),be&&nn(D,S,F,"updated")},G)},he=(S,D,F,G,q,H,X)=>{for(let ne=0;ne{if(D!==F){if(D!==Ye)for(const H in D)!Qn(H)&&!(H in F)&&i(S,H,D[H],null,q,G);for(const H in F){if(Qn(H))continue;const X=F[H],ne=D[H];X!==ne&&H!=="value"&&i(S,H,ne,X,q,G)}"value"in F&&i(S,"value",D.value,F.value,q)}},Ae=(S,D,F,G,q,H,X,ne,se)=>{const Q=D.el=S?S.el:o(""),be=D.anchor=S?S.anchor:o("");let{patchFlag:le,dynamicChildren:pe,slotScopeIds:Se}=D;Se&&(ne=ne?ne.concat(Se):Se),S==null?(n(Q,F,G),n(be,F,G),W(D.children||[],F,be,q,H,X,ne,se)):le>0&&le&64&&pe&&S.dynamicChildren?(he(S.dynamicChildren,pe,F,q,H,X,ne),(D.key!=null||q&&D===q.subTree)&&ku(S,D,!0)):ve(S,D,F,be,q,H,X,ne,se)},et=(S,D,F,G,q,H,X,ne,se)=>{D.slotScopeIds=ne,S==null?D.shapeFlag&512?q.ctx.activate(D,F,G,X,se):Je(D,F,G,q,H,X,se):ot(S,D,se)},Je=(S,D,F,G,q,H,X)=>{const ne=S.component=kf(S,G,q);if(cu(S)&&(ne.ctx.renderer=ye),Tf(ne,!1,X),ne.asyncDep){if(q&&q.registerDep(ne,Fe,X),!S.el){const se=ne.subTree=Ht(Kr);M(null,se,D,F),S.placeholder=se.el}}else Fe(ne,S,D,F,q,H,X)},ot=(S,D,F)=>{const G=D.component=S.component;if(hf(S,D,F))if(G.asyncDep&&!G.asyncResolved){Ie(G,D,F);return}else G.next=D,G.update();else D.el=S.el,G.vnode=D},Fe=(S,D,F,G,q,H,X)=>{const ne=()=>{if(S.isMounted){let{next:le,bu:pe,u:Se,parent:Le,vnode:w}=S;{const J=Su(S);if(J){le&&(le.el=w.el,Ie(S,le,X)),J.asyncDep.then(()=>{S.isUnmounted||ne()});return}}let E=le,_;sn(S,!1),le?(le.el=w.el,Ie(S,le,X)):le=w,pe&&K0(pe),(_=le.props&&le.props.onVnodeBeforeUpdate)&&ar(_,Le,le,w),sn(S,!0);const P=hi(S),Z=S.subTree;S.subTree=P,x(Z,P,f(Z.el),re(Z),S,q,H),le.el=P.el,E===null&&ff(S,P.el),Se&&zt(Se,q),(_=le.props&&le.props.onVnodeUpdated)&&zt(()=>ar(_,Le,le,w),q)}else{let le;const{el:pe,props:Se}=D,{bm:Le,m:w,parent:E,root:_,type:P}=S,Z=n0(D);if(sn(S,!1),Le&&K0(Le),!Z&&(le=Se&&Se.onVnodeBeforeMount)&&ar(le,E,D),sn(S,!0),pe&&Ue){const J=()=>{S.subTree=hi(S),Ue(pe,S.subTree,S,q,null)};Z&&P.__asyncHydrate?P.__asyncHydrate(pe,S,J):J()}else{_.ce&&_.ce._def.shadowRoot!==!1&&_.ce._injectChildStyle(P);const J=S.subTree=hi(S);x(null,J,F,G,S,q,H),D.el=J.el}if(w&&zt(w,q),!Z&&(le=Se&&Se.onVnodeMounted)){const J=D;zt(()=>ar(le,E,J),q)}(D.shapeFlag&256||E&&n0(E.vnode)&&E.vnode.shapeFlag&256)&&S.a&&zt(S.a,q),S.isMounted=!0,D=F=G=null}};S.scope.on();const se=S.effect=new Hc(ne);S.scope.off();const Q=S.update=se.run.bind(se),be=S.job=se.runIfDirty.bind(se);be.i=S,be.id=S.uid,se.scheduler=()=>Ia(be),sn(S,!0),Q()},Ie=(S,D,F)=>{D.component=S;const G=S.vnode.props;S.vnode=D,S.next=null,Yh(S,D.props,G,F),Qh(S,D.children,F),Rr(),Bo(S),Ir()},ve=(S,D,F,G,q,H,X,ne,se=!1)=>{const Q=S&&S.children,be=S?S.shapeFlag:0,le=D.children,{patchFlag:pe,shapeFlag:Se}=D;if(pe>0){if(pe&128){tt(Q,le,F,G,q,H,X,ne,se);return}else if(pe&256){Me(Q,le,F,G,q,H,X,ne,se);return}}Se&8?(be&16&&V(Q,q,H),le!==Q&&d(F,le)):be&16?Se&16?tt(Q,le,F,G,q,H,X,ne,se):V(Q,q,H,!0):(be&8&&d(F,""),Se&16&&W(le,F,G,q,H,X,ne,se))},Me=(S,D,F,G,q,H,X,ne,se)=>{S=S||Cn,D=D||Cn;const Q=S.length,be=D.length,le=Math.min(Q,be);let pe;for(pe=0;pebe?V(S,q,H,!0,!1,le):W(D,F,G,q,H,X,ne,se,le)},tt=(S,D,F,G,q,H,X,ne,se)=>{let Q=0;const be=D.length;let le=S.length-1,pe=be-1;for(;Q<=le&&Q<=pe;){const Se=S[Q],Le=D[Q]=se?jr(D[Q]):dr(D[Q]);if(Un(Se,Le))x(Se,Le,F,null,q,H,X,ne,se);else break;Q++}for(;Q<=le&&Q<=pe;){const Se=S[le],Le=D[pe]=se?jr(D[pe]):dr(D[pe]);if(Un(Se,Le))x(Se,Le,F,null,q,H,X,ne,se);else break;le--,pe--}if(Q>le){if(Q<=pe){const Se=pe+1,Le=Sepe)for(;Q<=le;)_e(S[Q],q,H,!0),Q++;else{const Se=Q,Le=Q,w=new Map;for(Q=Le;Q<=pe;Q++){const de=D[Q]=se?jr(D[Q]):dr(D[Q]);de.key!=null&&w.set(de.key,Q)}let E,_=0;const P=pe-Le+1;let Z=!1,J=0;const $=new Array(P);for(Q=0;Q=P){_e(de,q,H,!0);continue}let me;if(de.key!=null)me=w.get(de.key);else for(E=Le;E<=pe;E++)if($[E-Le]===0&&Un(de,D[E])){me=E;break}me===void 0?_e(de,q,H,!0):($[me-Le]=Q+1,me>=J?J=me:Z=!0,x(de,D[me],F,null,q,H,X,ne,se),_++)}const ue=Z?nf($):Cn;for(E=ue.length-1,Q=P-1;Q>=0;Q--){const de=Le+Q,me=D[de],Oe=D[de+1],Be=de+1{const{el:H,type:X,transition:ne,children:se,shapeFlag:Q}=S;if(Q&6){We(S.component.subTree,D,F,G);return}if(Q&128){S.suspense.move(D,F,G);return}if(Q&64){X.move(S,D,F,ye);return}if(X===er){n(H,D,F);for(let le=0;lene.enter(H),q);else{const{leave:le,delayLeave:pe,afterLeave:Se}=ne,Le=()=>{S.ctx.isUnmounted?s(H):n(H,D,F)},w=()=>{H._isLeaving&&H[Eh](!0),le(H,()=>{Le(),Se&&Se()})};pe?pe(H,Le,w):w()}else n(H,D,F)},_e=(S,D,F,G=!1,q=!1)=>{const{type:H,props:X,ref:ne,children:se,dynamicChildren:Q,shapeFlag:be,patchFlag:le,dirs:pe,cacheIndex:Se}=S;if(le===-2&&(q=!1),ne!=null&&(Rr(),r0(ne,null,F,S,!0),Ir()),Se!=null&&(D.renderCache[Se]=void 0),be&256){D.ctx.deactivate(S);return}const Le=be&1&&pe,w=!n0(S);let E;if(w&&(E=X&&X.onVnodeBeforeUnmount)&&ar(E,D,S),be&6)j(S.component,F,G);else{if(be&128){S.suspense.unmount(F,G);return}Le&&nn(S,null,D,"beforeUnmount"),be&64?S.type.remove(S,D,F,ye,G):Q&&!Q.hasOnce&&(H!==er||le>0&&le&64)?V(Q,D,F,!1,!0):(H===er&&le&384||!q&&be&16)&&V(se,D,F),G&&St(S)}(w&&(E=X&&X.onVnodeUnmounted)||Le)&&zt(()=>{E&&ar(E,D,S),Le&&nn(S,null,D,"unmounted")},F)},St=S=>{const{type:D,el:F,anchor:G,transition:q}=S;if(D===er){mt(F,G);return}if(D===J0){N(S);return}const H=()=>{s(F),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(S.shapeFlag&1&&q&&!q.persisted){const{leave:X,delayLeave:ne}=q,se=()=>X(F,H);ne?ne(S.el,H,se):se()}else H()},mt=(S,D)=>{let F;for(;S!==D;)F=p(S),s(S),S=F;s(D)},j=(S,D,F)=>{const{bum:G,scope:q,job:H,subTree:X,um:ne,m:se,a:Q}=S;Vo(se),Vo(Q),G&&K0(G),q.stop(),H&&(H.flags|=8,_e(X,S,D,F)),ne&&zt(ne,D),zt(()=>{S.isUnmounted=!0},D)},V=(S,D,F,G=!1,q=!1,H=0)=>{for(let X=H;X{if(S.shapeFlag&6)return re(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const D=p(S.anchor||S.el),F=D&&D[Th];return F?p(F):D};let ie=!1;const Ee=(S,D,F)=>{S==null?D._vnode&&_e(D._vnode,null,null,!0):x(D._vnode||null,S,D,null,null,null,F),D._vnode=S,ie||(ie=!0,Bo(),iu(),ie=!1)},ye={p:x,um:_e,m:We,r:St,mt:Je,mc:W,pc:ve,pbc:he,n:re,o:t};let fe,Ue;return e&&([fe,Ue]=e(ye)),{render:Ee,hydrate:fe,createApp:Wh(Ee,fe)}}function di({type:t,props:e},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:r}function sn({effect:t,job:e},r){r?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function rf(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function ku(t,e,r=!1){const n=t.children,s=e.children;if(Ce(n)&&Ce(s))for(let i=0;i>1,t[r[o]]0&&(e[n]=r[i-1]),r[i]=n)}}for(i=r.length,a=r[i-1];i-- >0;)r[i]=a,a=e[a];return r}function Su(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Su(e)}function Vo(t){if(t)for(let e=0;eX0(sf);function i0(t,e,r){return Tu(t,e,r)}function Tu(t,e,r=Ye){const{immediate:n,deep:s,flush:i,once:a}=r,o=yt({},r),l=e&&n||!e&&i!=="post";let c;if(f0){if(i==="sync"){const b=af();c=b.__watcherHandles||(b.__watcherHandles=[])}else if(!l){const b=()=>{};return b.stop=tr,b.resume=tr,b.pause=tr,b}}const d=Ct;o.call=(b,v,x)=>mr(b,d,v,x);let f=!1;i==="post"?o.scheduler=b=>{zt(b,d&&d.suspense)}:i!=="sync"&&(f=!0,o.scheduler=(b,v)=>{v?b():Ia(b)}),o.augmentJob=b=>{e&&(b.flags|=4),f&&(b.flags|=2,d&&(b.id=d.uid,b.i=d))};const p=yh(t,e,o);return f0&&(c?c.push(p):l&&p()),p}function of(t,e,r){const n=this.proxy,s=ut(t)?t.includes(".")?Au(n,t):()=>n[t]:t.bind(n,n);let i;De(e)?i=e:(i=e.handler,r=e);const a=b0(this),o=Tu(s,i.bind(n),r);return a(),o}function Au(t,e){const r=e.split(".");return()=>{let n=t;for(let s=0;se==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Wr(e)}Modifiers`]||t[`${Qr(e)}Modifiers`];function cf(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||Ye;let s=r;const i=e.startsWith("update:"),a=i&&lf(n,e.slice(7));a&&(a.trim&&(s=r.map(d=>ut(d)?d.trim():d)),a.number&&(s=r.map($i)));let o,l=n[o=ii(e)]||n[o=ii(Wr(e))];!l&&i&&(l=n[o=ii(Qr(e))]),l&&mr(l,t,6,s);const c=n[o+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[o])return;t.emitted[o]=!0,mr(c,t,6,s)}}function Eu(t,e,r=!1){const n=e.emitsCache,s=n.get(t);if(s!==void 0)return s;const i=t.emits;let a={},o=!1;if(!De(t)){const l=c=>{const d=Eu(c,e,!0);d&&(o=!0,yt(a,d))};!r&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!i&&!o?(it(t)&&n.set(t,null),null):(Ce(i)?i.forEach(l=>a[l]=null):yt(a,i),it(t)&&n.set(t,a),a)}function $s(t,e){return!t||!Rs(e)?!1:(e=e.slice(2).replace(/Once$/,""),He(t,e[0].toLowerCase()+e.slice(1))||He(t,Qr(e))||He(t,e))}function hi(t){const{type:e,vnode:r,proxy:n,withProxy:s,propsOptions:[i],slots:a,attrs:o,emit:l,render:c,renderCache:d,props:f,data:p,setupState:b,ctx:v,inheritAttrs:x}=t,y=us(t);let M,k;try{if(r.shapeFlag&4){const N=s||n,I=N;M=dr(c.call(I,N,d,f,b,p,v)),k=o}else{const N=e;M=dr(N.length>1?N(f,{attrs:o,slots:a,emit:l}):N(f,null)),k=e.props?o:uf(o)}}catch(N){a0.length=0,zs(N,t,1),M=Ht(Kr)}let T=M;if(k&&x!==!1){const N=Object.keys(k),{shapeFlag:I}=T;N.length&&I&7&&(i&&N.some(xa)&&(k=df(k,i)),T=zn(T,k,!1,!0))}return r.dirs&&(T=zn(T,null,!1,!0),T.dirs=T.dirs?T.dirs.concat(r.dirs):r.dirs),r.transition&&_a(T,r.transition),M=T,us(y),M}const uf=t=>{let e;for(const r in t)(r==="class"||r==="style"||Rs(r))&&((e||(e={}))[r]=t[r]);return e},df=(t,e)=>{const r={};for(const n in t)(!xa(n)||!(n.slice(9)in e))&&(r[n]=t[n]);return r};function hf(t,e,r){const{props:n,children:s,component:i}=t,{props:a,children:o,patchFlag:l}=e,c=i.emitsOptions;if(e.dirs||e.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Wo(n,a,c):!!a;if(l&8){const d=e.dynamicProps;for(let f=0;ft.__isSuspense;function pf(t,e){e&&e.pendingBranch?Ce(t)?e.effects.push(...t):e.effects.push(t):kh(t)}const er=Symbol.for("v-fgt"),Bs=Symbol.for("v-txt"),Kr=Symbol.for("v-cmt"),J0=Symbol.for("v-stc"),a0=[];let Pt=null;function Ve(t=!1){a0.push(Pt=t?null:[])}function mf(){a0.pop(),Pt=a0[a0.length-1]||null}let h0=1;function Go(t,e=!1){h0+=t,t<0&&Pt&&e&&(Pt.hasOnce=!0)}function Mu(t){return t.dynamicChildren=h0>0?Pt||Cn:null,mf(),h0>0&&Pt&&Pt.push(t),t}function Ke(t,e,r,n,s,i){return Mu(Y(t,e,r,n,s,i,!0))}function gf(t,e,r,n,s){return Mu(Ht(t,e,r,n,s,!0))}function Nu(t){return t?t.__v_isVNode===!0:!1}function Un(t,e){return t.type===e.type&&t.key===e.key}const Du=({key:t})=>t??null,Z0=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?ut(t)||kt(t)||De(t)?{i:Ut,r:t,k:e,f:!!r}:t:null);function Y(t,e=null,r=null,n=0,s=null,i=t===er?0:1,a=!1,o=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Du(e),ref:e&&Z0(e),scopeId:ou,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ut};return o?(Ba(l,r),i&128&&t.normalize(l)):r&&(l.shapeFlag|=ut(r)?8:16),h0>0&&!a&&Pt&&(l.patchFlag>0||i&6)&&l.patchFlag!==32&&Pt.push(l),l}const Ht=vf;function vf(t,e=null,r=null,n=0,s=null,i=!1){if((!t||t===$h)&&(t=Kr),Nu(t)){const o=zn(t,e,!0);return r&&Ba(o,r),h0>0&&!i&&Pt&&(o.shapeFlag&6?Pt[Pt.indexOf(t)]=o:Pt.push(o)),o.patchFlag=-2,o}if(Mf(t)&&(t=t.__vccOpts),e){e=bf(e);let{class:o,style:l}=e;o&&!ut(o)&&(e.class=Ln(o)),it(l)&&(Ra(l)&&!Ce(l)&&(l=yt({},l)),e.style=On(l))}const a=ut(t)?1:Cu(t)?128:Ah(t)?64:it(t)?4:De(t)?2:0;return Y(t,e,r,n,s,a,i,!0)}function bf(t){return t?Ra(t)||gu(t)?yt({},t):t:null}function zn(t,e,r=!1,n=!1){const{props:s,ref:i,patchFlag:a,children:o,transition:l}=t,c=e?yf(s||{},e):s,d={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&Du(c),ref:e&&e.ref?r&&i?Ce(i)?i.concat(Z0(e)):[i,Z0(e)]:Z0(e):i,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==er?a===-1?16:a|16:a,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&zn(t.ssContent),ssFallback:t.ssFallback&&zn(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&n&&_a(d,l.clone(d)),d}function Ru(t=" ",e=0){return Ht(Bs,null,t,e)}function Ko(t,e){const r=Ht(J0,null,t);return r.staticCount=e,r}function Sr(t="",e=!1){return e?(Ve(),gf(Kr,null,t)):Ht(Kr,null,t)}function dr(t){return t==null||typeof t=="boolean"?Ht(Kr):Ce(t)?Ht(er,null,t.slice()):Nu(t)?jr(t):Ht(Bs,null,String(t))}function jr(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:zn(t)}function Ba(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(Ce(e))r=16;else if(typeof e=="object")if(n&65){const s=e.default;s&&(s._c&&(s._d=!1),Ba(t,s()),s._c&&(s._d=!0));return}else{r=32;const s=e._;!s&&!gu(e)?e._ctx=Ut:s===3&&Ut&&(Ut.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else De(e)?(e={default:e,_ctx:Ut},r=32):(e=String(e),n&64?(r=16,e=[Ru(e)]):r=8);t.children=e,t.shapeFlag|=r}function yf(...t){const e={};for(let r=0;rCt||Ut;let fs,Gi;{const t=Os(),e=(r,n)=>{let s;return(s=t[r])||(s=t[r]=[]),s.push(n),i=>{s.length>1?s.forEach(a=>a(i)):s[0](i)}};fs=e("__VUE_INSTANCE_SETTERS__",r=>Ct=r),Gi=e("__VUE_SSR_SETTERS__",r=>f0=r)}const b0=t=>{const e=Ct;return fs(t),t.scope.on(),()=>{t.scope.off(),fs(e)}},Yo=()=>{Ct&&Ct.scope.off(),fs(null)};function Iu(t){return t.vnode.shapeFlag&4}let f0=!1;function Tf(t,e=!1,r=!1){e&&Gi(e);const{props:n,children:s}=t.vnode,i=Iu(t);Kh(t,n,i,e),Zh(t,s,r||e);const a=i?Af(t,e):void 0;return e&&Gi(!1),a}function Af(t,e){const r=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Bh);const{setup:n}=r;if(n){Rr();const s=t.setupContext=n.length>1?Cf(t):null,i=b0(t),a=v0(n,t,0,[t.props,s]),o=_c(a);if(Ir(),i(),(o||t.sp)&&!n0(t)&&lu(t),o){if(a.then(Yo,Yo),e)return a.then(l=>{Xo(t,l,e)}).catch(l=>{zs(l,t,0)});t.asyncDep=a}else Xo(t,a,e)}else _u(t,e)}function Xo(t,e,r){De(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:it(e)&&(t.setupState=ru(e)),_u(t,r)}let Jo;function _u(t,e,r){const n=t.type;if(!t.render){if(!e&&Jo&&!n.render){const s=n.template||za(t).template;if(s){const{isCustomElement:i,compilerOptions:a}=t.appContext.config,{delimiters:o,compilerOptions:l}=n,c=yt(yt({isCustomElement:i,delimiters:o},a),l);n.render=Jo(s,c)}}t.render=n.render||tr}{const s=b0(t);Rr();try{Ph(t)}finally{Ir(),s()}}}const Ef={get(t,e){return wt(t,"get",""),t[e]}};function Cf(t){const e=r=>{t.exposed=r||{}};return{attrs:new Proxy(t.attrs,Ef),slots:t.slots,emit:t.emit,expose:e}}function Ps(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(ru(dh(t.exposed)),{get(e,r){if(r in e)return e[r];if(r in s0)return s0[r](t)},has(e,r){return r in e||r in s0}})):t.proxy}function Mf(t){return De(t)&&"__vccOpts"in t}const Ou=(t,e)=>vh(t,e,f0),Nf="3.5.20";/** +* @vue/runtime-dom v3.5.20 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ki;const Zo=typeof window<"u"&&window.trustedTypes;if(Zo)try{Ki=Zo.createPolicy("vue",{createHTML:t=>t})}catch{}const Lu=Ki?t=>Ki.createHTML(t):t=>t,Df="http://www.w3.org/2000/svg",Rf="http://www.w3.org/1998/Math/MathML",kr=typeof document<"u"?document:null,Qo=kr&&kr.createElement("template"),If={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const s=e==="svg"?kr.createElementNS(Df,t):e==="mathml"?kr.createElementNS(Rf,t):r?kr.createElement(t,{is:r}):kr.createElement(t);return t==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:t=>kr.createTextNode(t),createComment:t=>kr.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>kr.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,s,i){const a=r?r.previousSibling:e.lastChild;if(s&&(s===i||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),r),!(s===i||!(s=s.nextSibling)););else{Qo.innerHTML=Lu(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const o=Qo.content;if(n==="svg"||n==="mathml"){const l=o.firstChild;for(;l.firstChild;)o.appendChild(l.firstChild);o.removeChild(l)}e.insertBefore(o,r)}return[a?a.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},_f=Symbol("_vtc");function Of(t,e,r){const n=t[_f];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):r?t.setAttribute("class",e):t.className=e}const ps=Symbol("_vod"),zu=Symbol("_vsh"),Lf={name:"show",beforeMount(t,{value:e},{transition:r}){t[ps]=t.style.display==="none"?"":t.style.display,r&&e?r.beforeEnter(t):Vn(t,e)},mounted(t,{value:e},{transition:r}){r&&e&&r.enter(t)},updated(t,{value:e,oldValue:r},{transition:n}){!e!=!r&&(n?e?(n.beforeEnter(t),Vn(t,!0),n.enter(t)):n.leave(t,()=>{Vn(t,!1)}):Vn(t,e))},beforeUnmount(t,{value:e}){Vn(t,e)}};function Vn(t,e){t.style.display=e?t[ps]:"none",t[zu]=!e}const zf=Symbol(""),Ff=/(^|;)\s*display\s*:/;function $f(t,e,r){const n=t.style,s=ut(r);let i=!1;if(r&&!s){if(e)if(ut(e))for(const a of e.split(";")){const o=a.slice(0,a.indexOf(":")).trim();r[o]==null&&Q0(n,o,"")}else for(const a in e)r[a]==null&&Q0(n,a,"");for(const a in r)a==="display"&&(i=!0),Q0(n,a,r[a])}else if(s){if(e!==r){const a=n[zf];a&&(r+=";"+a),n.cssText=r,i=Ff.test(r)}}else e&&t.removeAttribute("style");ps in t&&(t[ps]=i?n.display:"",t[zu]&&(n.display="none"))}const el=/\s*!important$/;function Q0(t,e,r){if(Ce(r))r.forEach(n=>Q0(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=Bf(t,e);el.test(r)?t.setProperty(Qr(n),r.replace(el,""),"important"):t[n]=r}}const tl=["Webkit","Moz","ms"],fi={};function Bf(t,e){const r=fi[e];if(r)return r;let n=Wr(e);if(n!=="filter"&&n in t)return fi[e]=n;n=zc(n);for(let s=0;spi||(jf.then(()=>pi=0),pi=Date.now());function Vf(t,e){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;mr(Wf(n,r.value),e,5,[n])};return r.value=t,r.attached=Uf(),r}function Wf(t,e){if(Ce(e)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},e.map(n=>s=>!s._stopped&&n&&n(s))}else return e}const ol=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,Gf=(t,e,r,n,s,i)=>{const a=s==="svg";e==="class"?Of(t,n,a):e==="style"?$f(t,r,n):Rs(e)?xa(e)||Hf(t,e,r,n,i):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Kf(t,e,n,a))?(sl(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&nl(t,e,n,a,i,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!ut(n))?sl(t,Wr(e),n,i,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),nl(t,e,n,a))};function Kf(t,e,r,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&ol(e)&&De(r));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=t.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ol(e)&&ut(r)?!1:e in t}const ll=t=>{const e=t.props["onUpdate:modelValue"]||!1;return Ce(e)?r=>K0(e,r):e};function Yf(t){t.target.composing=!0}function cl(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const mi=Symbol("_assign"),Pa={created(t,{modifiers:{lazy:e,trim:r,number:n}},s){t[mi]=ll(s);const i=n||s.props&&s.props.type==="number";An(t,e?"change":"input",a=>{if(a.target.composing)return;let o=t.value;r&&(o=o.trim()),i&&(o=$i(o)),t[mi](o)}),r&&An(t,"change",()=>{t.value=t.value.trim()}),e||(An(t,"compositionstart",Yf),An(t,"compositionend",cl),An(t,"change",cl))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:r,modifiers:{lazy:n,trim:s,number:i}},a){if(t[mi]=ll(a),t.composing)return;const o=(i||t.type==="number")&&!/^0\d/.test(t.value)?$i(t.value):t.value,l=e??"";o!==l&&(document.activeElement===t&&t.type!=="range"&&(n&&e===r||s&&t.value.trim()===l)||(t.value=l))}},Xf=["ctrl","shift","alt","meta"],Jf={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>Xf.some(r=>t[`${r}Key`]&&!e.includes(r))},gi=(t,e)=>{const r=t._withMods||(t._withMods={}),n=e.join(".");return r[n]||(r[n]=(s,...i)=>{for(let a=0;a{const r=t._withKeys||(t._withKeys={}),n=e.join(".");return r[n]||(r[n]=s=>{if(!("key"in s))return;const i=Qr(s.key);if(e.some(a=>a===i||Zf[a]===i))return t(s)})},Qf=yt({patchProp:Gf},If);let ul;function ep(){return ul||(ul=ef(Qf))}const tp=(...t)=>{const e=ep().createApp(...t),{mount:r}=e;return e.mount=n=>{const s=np(n);if(!s)return;const i=e._component;!De(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const a=r(s,!1,rp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},e};function rp(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function np(t){return ut(t)?document.querySelector(t):t}var sp=Object.defineProperty,ip=(t,e,r)=>e in t?sp(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,I0=(t,e,r)=>(ip(t,typeof e!="symbol"?e+"":e,r),r);const Ha={name:"Latte",type:"light",palette:["#dd7878","#ea76cb","#8839ef","#e64553","#fe640b","#df8e1d","#40a02b","#209fb5","#1e66f5","#7287fd"],cssVar:{"--node-gap-x":"30px","--node-gap-y":"10px","--main-gap-x":"65px","--main-gap-y":"45px","--root-radius":"30px","--main-radius":"20px","--root-color":"#ffffff","--root-bgcolor":"#4c4f69","--root-border-color":"rgba(0, 0, 0, 0)","--main-color":"#444446","--main-bgcolor":"#ffffff","--topic-padding":"3px","--color":"#777777","--bgcolor":"#f6f6f6","--selected":"#4dc4ff","--accent-color":"#e64553","--panel-color":"#444446","--panel-bgcolor":"#ffffff","--panel-border-color":"#eaeaea","--map-padding":"50px"}},qa={name:"Dark",type:"dark",palette:["#848FA0","#748BE9","#D2F9FE","#4145A5","#789AFA","#706CF4","#EF987F","#775DD5","#FCEECF","#DA7FBC"],cssVar:{"--node-gap-x":"30px","--node-gap-y":"10px","--main-gap-x":"65px","--main-gap-y":"45px","--root-radius":"30px","--main-radius":"20px","--root-color":"#ffffff","--root-bgcolor":"#2d3748","--root-border-color":"rgba(255, 255, 255, 0.1)","--main-color":"#ffffff","--main-bgcolor":"#4c4f69","--topic-padding":"3px","--color":"#cccccc","--bgcolor":"#252526","--selected":"#4dc4ff","--accent-color":"#789AFA","--panel-color":"#ffffff","--panel-bgcolor":"#2d3748","--panel-border-color":"#696969","--map-padding":"50px 80px"}};function Yi(t){return t.replace(/&/g,"&").replace(/{if(t.parent=e,t.children)for(let r=0;r{if(t.expanded=e,t.children)if(r===void 0||r>0){const n=r!==void 0?r-1:void 0;t.children.forEach(s=>{In(s,e,n)})}else t.children.forEach(n=>{In(n,!1)})};function ja(t){if(t.id=gn(),t.children)for(let e=0;e0&&(a=180-a),i<0&&s<0&&(a=180+a),i>0&&s<0&&(a=360-a);const o=12,l=30,c=a+l,d=a-l;return{x1:r+Math.cos(Math.PI*c/180)*o,y1:n-Math.sin(Math.PI*c/180)*o,x2:r+Math.cos(Math.PI*d/180)*o,y2:n-Math.sin(Math.PI*d/180)*o}}function gn(){return(new Date().getTime().toString(16)+Math.random().toString(16).substr(2)).substr(2,16)}const ap=function(){const t=gn();return{topic:this.newTopicName,id:t}};function Ua(t){return JSON.parse(JSON.stringify(t,(e,r)=>{if(e!=="parent")return r}))}const tn=(t,e)=>{let r=0,n=0;for(;e&&e!==t;)r+=e.offsetLeft,n+=e.offsetTop,e=e.offsetParent;return{offsetLeft:r,offsetTop:n}},ft=(t,e)=>{for(const r in e)t.setAttribute(r,e[r])},Xi=t=>t?t.tagName==="ME-TPC":!1,Hs=t=>t.filter(e=>e.nodeObj.parent).filter((e,r,n)=>{for(let s=0;s{const e=/translate\(([^,]+),\s*([^)]+)\)/,r=t.match(e);return r?{x:parseFloat(r[1]),y:parseFloat(r[2])}:{x:0,y:0}},Va=function(t){for(let e=0;e(t.LHS="lhs",t.RHS="rhs",t))(sr||{});const op=t=>{const e=t.map.querySelectorAll(".lhs>me-wrapper>me-parent>me-tpc");t.selectNode(e[Math.ceil(e.length/2)-1])},lp=t=>{const e=t.map.querySelectorAll(".rhs>me-wrapper>me-parent>me-tpc");t.selectNode(e[Math.ceil(e.length/2)-1])},cp=t=>{t.selectNode(t.map.querySelector("me-root>me-tpc"))},up=function(t,e){const r=e.parentElement.parentElement.parentElement.previousSibling;if(r){const n=r.firstChild;t.selectNode(n)}},dp=function(t,e){const r=e.parentElement.nextSibling;if(r&&r.firstChild){const n=r.firstChild.firstChild.firstChild;t.selectNode(n)}},dl=function(t,e){var r,n;const s=t.currentNode||((r=t.currentNodes)==null?void 0:r[0]);if(!s)return;const i=s.nodeObj,a=s.offsetParent.offsetParent.parentElement;i.parent?a.className===e?dp(t,s):(n=i.parent)!=null&&n.parent?up(t,s):cp(t):e===sr.LHS?op(t):lp(t)},hl=function(t,e){const r=t.currentNode;if(!r||!r.nodeObj.parent)return;const n=e+"Sibling",s=r.parentElement.parentElement[n];s?t.selectNode(s.firstChild.firstChild):t.selectNode(r)},vs=function(t,e,r){const{scaleVal:n,scaleSensitivity:s}=t;switch(e){case"in":t.scale(n+s,r);break;case"out":t.scale(n-s,r)}};function hp(t,e){e=e===!0?{}:e;const r=()=>{t.currentArrow?t.removeArrow():t.currentSummary?t.removeSummary(t.currentSummary.summaryObj.id):t.currentNodes&&t.removeNodes(t.currentNodes)};let n=!1,s=null;const i=o=>{const l=t.nodeData;if(o.key==="0")for(const c of l.children)In(c,!1);if(o.key==="=")for(const c of l.children)In(c,!0);if(["1","2","3","4","5","6","7","8","9"].includes(o.key))for(const c of l.children)In(c,!0,Number(o.key)-1);t.refresh(),t.toCenter(),n=!1,s&&(clearTimeout(s),s=null,t.container.removeEventListener("keydown",i))},a={Enter:o=>{o.shiftKey?t.insertSibling("before"):o.ctrlKey||o.metaKey?t.insertParent():t.insertSibling("after")},Tab:()=>{t.addChild()},F1:()=>{t.toCenter()},F2:()=>{t.beginEdit()},ArrowUp:o=>{if(o.altKey)t.moveUpNode();else{if(o.metaKey||o.ctrlKey)return t.initSide();hl(t,"previous")}},ArrowDown:o=>{o.altKey?t.moveDownNode():hl(t,"next")},ArrowLeft:o=>{if(o.metaKey||o.ctrlKey)return t.initLeft();dl(t,sr.LHS)},ArrowRight:o=>{if(o.metaKey||o.ctrlKey)return t.initRight();dl(t,sr.RHS)},PageUp:()=>t.moveUpNode(),PageDown:()=>{t.moveDownNode()},c:o=>{(o.metaKey||o.ctrlKey)&&(t.waitCopy=t.currentNodes)},x:o=>{(o.metaKey||o.ctrlKey)&&(t.waitCopy=t.currentNodes,r())},v:o=>{!t.waitCopy||!t.currentNode||(o.metaKey||o.ctrlKey)&&(t.waitCopy.length===1?t.copyNode(t.waitCopy[0],t.currentNode):t.copyNodes(t.waitCopy,t.currentNode))},"=":o=>{(o.metaKey||o.ctrlKey)&&vs(t,"in")},"-":o=>{(o.metaKey||o.ctrlKey)&&vs(t,"out")},0:o=>{if(o.metaKey||o.ctrlKey){if(n)return;t.scale(1)}},k:o=>{(o.metaKey||o.ctrlKey)&&(n=!0,s&&(clearTimeout(s),t.container.removeEventListener("keydown",i)),s=window.setTimeout(()=>{n=!1,s=null},2e3),t.container.addEventListener("keydown",i))},Delete:r,Backspace:r,...e};t.container.onkeydown=o=>{if(o.preventDefault(),!t.editable)return;const l=a[o.key];l&&l(o)}}function fp(t){const{dragMoveHelper:e}=t,r=p=>{var b,v,x;if(p.button!==0)return;if((b=t.helper1)!=null&&b.moved){t.helper1.clear();return}if((v=t.helper2)!=null&&v.moved){t.helper2.clear();return}if(e.moved){e.clear();return}const y=p.target;if(y.tagName==="ME-EPD")p.ctrlKey||p.metaKey?t.expandNodeAll(y.previousSibling):t.expandNode(y.previousSibling);else if(y.tagName==="ME-TPC"&&t.currentNodes.length>1)t.selectNode(y);else if(!t.editable)return;const M=(x=y.parentElement)==null?void 0:x.parentElement;M.getAttribute("class")==="topiclinks"?t.selectArrow(y.parentElement):M.getAttribute("class")==="summary"&&t.selectSummary(y.parentElement)},n=p=>{var b;if(!t.editable)return;const v=p.target;Xi(v)&&t.beginEdit(v);const x=(b=v.parentElement)==null?void 0:b.parentElement;x.getAttribute("class")==="topiclinks"?t.editArrowLabel(v.parentElement):x.getAttribute("class")==="summary"&&t.editSummary(v.parentElement)};let s=0;const i=p=>{if(p.pointerType==="mouse")return;const b=new Date().getTime(),v=b-s;v<300&&v>0&&n(p),s=b},a=p=>{e.moved=!1;const b=t.mouseSelectionButton===0?2:0;if(p.button!==b&&p.pointerType==="mouse")return;e.x=p.clientX,e.y=p.clientY;const v=p.target;v.className!=="circle"&&v.contentEditable!=="plaintext-only"&&(e.mousedown=!0,v.setPointerCapture(p.pointerId))},o=p=>{if(p.target.contentEditable!=="plaintext-only"){const b=p.clientX-e.x,v=p.clientY-e.y;e.onMove(b,v)}e.x=p.clientX,e.y=p.clientY},l=p=>{const b=t.mouseSelectionButton===0?2:0;if(p.button!==b&&p.pointerType==="mouse")return;const v=p.target;v.hasPointerCapture&&v.hasPointerCapture(p.pointerId)&&v.releasePointerCapture(p.pointerId),e.clear()},c=p=>{if(p.preventDefault(),p.button!==2||!t.editable)return;const b=p.target;Xi(b)&&!b.classList.contains("selected")&&t.selectNode(b),setTimeout(()=>{t.dragMoveHelper.moved||t.bus.fire("showContextMenu",p)},200)},d=p=>{p.stopPropagation(),p.preventDefault(),p.ctrlKey||p.metaKey?p.deltaY<0?vs(t,"in",t.dragMoveHelper):t.scaleVal-t.scaleSensitivity>0&&vs(t,"out",t.dragMoveHelper):p.shiftKey?t.move(-p.deltaY,0):t.move(-p.deltaX,-p.deltaY)},{container:f}=t;return Va([{dom:f,evt:"pointerdown",func:a},{dom:f,evt:"pointermove",func:o},{dom:f,evt:"pointerup",func:l},{dom:f,evt:"pointerup",func:i},{dom:f,evt:"click",func:r},{dom:f,evt:"dblclick",func:n},{dom:f,evt:"contextmenu",func:c},{dom:f,evt:"wheel",func:typeof t.handleWheel=="function"?t.handleWheel:d}])}function pp(){return{handlers:{},addListener:function(t,e){this.handlers[t]===void 0&&(this.handlers[t]=[]),this.handlers[t].push(e)},fire:function(t,...e){if(this.handlers[t]instanceof Array){const r=this.handlers[t];for(let n=0;n{i.direction===0?n+=1:i.direction===1?s+=1:n<=s?(i.direction=0,n+=1):(i.direction=1,s+=1)})}gp(this,r,e)},gp=function(t,e,r){const n=bs.createElement("me-main");n.className=sr.LHS;const s=bs.createElement("me-main");s.className=sr.RHS;for(let i=0;i`${Yi(n)}`).join(""),t.appendChild(r),t.icons=r}else t.icons&&(t.icons=void 0);if(e.tags&&e.tags.length){const r=$t.createElement("div");r.className="tags",e.tags.forEach(n=>{const s=$t.createElement("span");typeof n=="string"?s.textContent=n:(s.textContent=n.text,n.className&&(s.className=n.className),n.style&&Object.assign(s.style,n.style)),r.appendChild(s)}),t.appendChild(r),t.tags=r}else t.tags&&(t.tags=void 0)},bp=function(t,e){const r=$t.createElement("me-wrapper"),{p:n,tpc:s}=this.createParent(t);if(r.appendChild(n),!e&&t.children&&t.children.length>0){const i=Ga(t.expanded);if(n.appendChild(i),t.expanded!==!1){const a=vp(this,t.children);r.appendChild(a)}}return{grp:r,top:n,tpc:s}},yp=function(t){const e=$t.createElement("me-parent"),r=this.createTopic(t);return Wa.call(this,r,t),e.appendChild(r),{p:e,tpc:r}},wp=function(t){const e=$t.createElement("me-children");return e.append(...t),e},xp=function(t){const e=$t.createElement("me-tpc");return e.nodeObj=t,e.dataset.nodeid="me"+t.id,e.draggable=this.draggable,e};function Bu(t){const e=$t.createRange();e.selectNodeContents(t);const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(e))}const kp=function(t){if(!t)return;const e=$t.createElement("div"),r=t.nodeObj,n=r.topic;t.appendChild(e),e.id="input-box",e.textContent=n,e.contentEditable="plaintext-only",e.spellcheck=!1;const s=getComputedStyle(t);e.style.cssText=`min-width:${t.offsetWidth-8}px; + color:${s.color}; + padding:${s.padding}; + margin:${s.margin}; + font:${s.font}; + background-color:${s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor}; + border-radius:${s.borderRadius};`,this.direction===0&&(e.style.right="0"),Bu(e),this.bus.fire("operation",{name:"beginEdit",obj:t.nodeObj}),e.addEventListener("keydown",i=>{i.stopPropagation();const a=i.key;if(a==="Enter"||a==="Tab"){if(i.shiftKey)return;i.preventDefault(),e.blur(),this.container.focus()}}),e.addEventListener("blur",()=>{var i;if(!e)return;const a=((i=e.textContent)==null?void 0:i.trim())||"";a===""?r.topic=n:(r.topic=a,this.markdown?t.text.innerHTML=this.markdown(r.topic,r):t.text.textContent=a),e.remove(),a!==n&&(this.linkDiv(),this.bus.fire("operation",{name:"finishEdit",obj:r,origin:n}))})},Ga=function(t){const e=$t.createElement("me-epd");return e.expanded=t!==!1,e.className=t!==!1?"minus":"",e},fn=document,Gt="http://www.w3.org/2000/svg",Ji=function(t,e,r,n={}){const{anchor:s="middle",color:i,dataType:a}=n,o=document.createElementNS(Gt,"text");return ft(o,{"text-anchor":s,x:e+"",y:r+"",fill:i||(s==="middle"?"rgb(235, 95, 82)":"#666")}),a&&(o.dataset.type=a),o.innerHTML=t,o},Pu=function(t,e,r){const n=fn.createElementNS(Gt,"path");return ft(n,{d:t,stroke:e||"#666",fill:"none","stroke-width":r}),n},Jn=function(t){const e=fn.createElementNS(Gt,"svg");return e.setAttribute("class",t),e.setAttribute("overflow","visible"),e},fl=function(){const t=fn.createElementNS(Gt,"line");return t.setAttribute("stroke","#4dc4ff"),t.setAttribute("fill","none"),t.setAttribute("stroke-width","2"),t.setAttribute("opacity","0.45"),t},Sp=function(t,e,r,n){const s=fn.createElementNS(Gt,"g");return[{name:"line",d:t},{name:"arrow1",d:e},{name:"arrow2",d:r}].forEach((i,a)=>{const o=i.d,l=fn.createElementNS(Gt,"path"),c={d:o,stroke:(n==null?void 0:n.stroke)||"rgb(235, 95, 82)",fill:"none","stroke-linecap":(n==null?void 0:n.strokeLinecap)||"cap","stroke-width":String((n==null?void 0:n.strokeWidth)||"2")};(n==null?void 0:n.opacity)!==void 0&&(c.opacity=String(n.opacity)),ft(l,c),a===0&&l.setAttribute("stroke-dasharray",(n==null?void 0:n.strokeDasharray)||"8,2");const d=fn.createElementNS(Gt,"path");ft(d,{d:o,stroke:"transparent",fill:"none","stroke-width":"15"}),s.appendChild(d),s.appendChild(l),s[i.name]=l}),s},Hu=function(t,e,r){if(!e)return;const n=fn.createElement("div");t.nodes.appendChild(n);const s=e.innerHTML;n.id="input-box",n.textContent=s,n.contentEditable="plaintext-only",n.spellcheck=!1;const i=e.getBBox();n.style.cssText=` + min-width:${Math.max(88,i.width)}px; + position:absolute; + left:${i.x}px; + top:${i.y}px; + padding: 2px 4px; + margin: -2px -4px; + `,Bu(n),t.scrollIntoView(n),n.addEventListener("keydown",a=>{a.stopPropagation();const o=a.key;if(o==="Enter"||o==="Tab"){if(a.shiftKey)return;a.preventDefault(),n.blur(),t.container.focus()}}),n.addEventListener("blur",()=>{var a;if(!n)return;const o=((a=n.textContent)==null?void 0:a.trim())||"";o===""?r.label=s:r.label=o,n.remove(),o!==s&&(e.innerHTML=r.label,"parent"in r?t.bus.fire("operation",{name:"finishEditSummary",obj:r}):t.bus.fire("operation",{name:"finishEditArrowLabel",obj:r}))})},Tp=function(t){const e=this.map.querySelector("me-root"),r=e.offsetTop,n=e.offsetLeft,s=e.offsetWidth,i=e.offsetHeight,a=this.map.querySelectorAll("me-main > me-wrapper");this.lines.innerHTML="";for(let o=0;o{const z=document.createElement("div");return z.innerText=O,z.className="tips",z},n=(O,z,W)=>{const U=document.createElement("li");return U.id=O,U.innerHTML=`${Yi(z)}${Yi(W)}`,U},s=ml[t.locale]?t.locale:"en",i=ml[s],a=n("cm-add_child",i.addChild,"Tab"),o=n("cm-add_parent",i.addParent,"Ctrl + Enter"),l=n("cm-add_sibling",i.addSibling,"Enter"),c=n("cm-remove_child",i.removeNode,"Delete"),d=n("cm-fucus",i.focus,""),f=n("cm-unfucus",i.cancelFocus,""),p=n("cm-up",i.moveUp,"PgUp"),b=n("cm-down",i.moveDown,"Pgdn"),v=n("cm-link",i.link,""),x=n("cm-link-bidirectional",i.linkBidirectional,""),y=n("cm-summary",i.summary,""),M=document.createElement("ul");if(M.className="menu-list",M.appendChild(a),M.appendChild(o),M.appendChild(l),M.appendChild(c),e.focus&&(M.appendChild(d),M.appendChild(f)),M.appendChild(p),M.appendChild(b),M.appendChild(y),e.link&&(M.appendChild(v),M.appendChild(x)),e&&e.extend)for(let O=0;O{z.onclick(U)}}const k=document.createElement("div");k.className="context-menu",k.appendChild(M),k.hidden=!0,t.container.append(k);let T=!0;const N=O=>{const z=O.target;if(Xi(z)){z.parentElement.tagName==="ME-ROOT"?T=!0:T=!1,T?(d.className="disabled",p.className="disabled",b.className="disabled",o.className="disabled",l.className="disabled",c.className="disabled"):(d.className="",p.className="",b.className="",o.className="",l.className="",c.className=""),k.hidden=!1,M.style.top="",M.style.bottom="",M.style.left="",M.style.right="";const W=M.getBoundingClientRect(),U=M.offsetHeight,he=M.offsetWidth,ge=O.clientY-W.top,Ae=O.clientX-W.left;U+ge>window.innerHeight?(M.style.top="",M.style.bottom="0px"):(M.style.bottom="",M.style.top=ge+15+"px"),he+Ae>window.innerWidth?(M.style.left="",M.style.right="0px"):(M.style.right="",M.style.left=Ae+10+"px")}};t.bus.addListener("showContextMenu",N),k.onclick=O=>{O.target===k&&(k.hidden=!0)},a.onclick=()=>{t.addChild(),k.hidden=!0},o.onclick=()=>{t.insertParent(),k.hidden=!0},l.onclick=()=>{T||(t.insertSibling("after"),k.hidden=!0)},c.onclick=()=>{T||(t.removeNodes(t.currentNodes||[]),k.hidden=!0)},d.onclick=()=>{T||(t.focusNode(t.currentNode),k.hidden=!0)},f.onclick=()=>{t.cancelFocus(),k.hidden=!0},p.onclick=()=>{T||(t.moveUpNode(),k.hidden=!0)},b.onclick=()=>{T||(t.moveDownNode(),k.hidden=!0)};const I=O=>{k.hidden=!0;const z=t.currentNode,W=r(i.clickTips);t.container.appendChild(W),t.map.addEventListener("click",U=>{U.preventDefault(),W.remove();const he=U.target;(he.parentElement.tagName==="ME-PARENT"||he.parentElement.tagName==="ME-ROOT")&&t.createArrow(z,he,O)},{once:!0})};return v.onclick=()=>I(),x.onclick=()=>I({bidirectional:!0}),y.onclick=()=>{k.hidden=!0,t.createSummary(),t.unselectNodes(t.currentNodes)},()=>{a.onclick=null,o.onclick=null,l.onclick=null,c.onclick=null,d.onclick=null,f.onclick=null,p.onclick=null,b.onclick=null,v.onclick=null,y.onclick=null,k.onclick=null,t.container.oncontextmenu=null}}const Zi=document,Ep=function(t,e){if(!e)return Qi(t),t;let r=t.querySelector(".insert-preview");const n=`insert-preview ${e} show`;return r||(r=Zi.createElement("div"),t.appendChild(r)),r.className=n,t},Qi=function(t){if(!t)return;const e=t.querySelectorAll(".insert-preview");for(const r of e||[])r.remove()},gl=function(t,e){for(const r of e){const n=r.parentElement.parentElement.contains(t);if(!(t&&t.tagName==="ME-TPC"&&t!==r&&!n&&t.nodeObj.parent))return!1}return!0},Cp=function(t){const e=document.createElement("div");return e.className="mind-elixir-ghost",t.container.appendChild(e),e};class Mp{constructor(e){I0(this,"mind"),I0(this,"isMoving",!1),I0(this,"interval",null),I0(this,"speed",20),this.mind=e}move(e,r){this.isMoving||(this.isMoving=!0,this.interval=setInterval(()=>{this.mind.move(e*this.speed*this.mind.scaleVal,r*this.speed*this.mind.scaleVal)},100))}stop(){this.isMoving=!1,clearInterval(this.interval)}}function Np(t){let e=null,r=null;const n=Cp(t),s=new Mp(t),i=l=>{t.selection.cancel();const c=l.target;if((c==null?void 0:c.tagName)!=="ME-TPC"){l.preventDefault();return}let d=t.currentNodes;d!=null&&d.includes(c)||(t.selectNode(c),d=t.currentNodes),t.dragged=d,d.length>1?n.innerHTML=d.length+"":n.innerHTML=c.innerHTML;for(const f of d)f.parentElement.parentElement.style.opacity="0.5";l.dataTransfer.setDragImage(n,0,0),l.dataTransfer.dropEffect="move",t.dragMoveHelper.clear()},a=l=>{const{dragged:c}=t;if(!c)return;s.stop();for(const f of c)f.parentElement.parentElement.style.opacity="1";const d=l.target;d.style.opacity="",r&&(Qi(r),e==="before"?t.moveNodeBefore(c,r):e==="after"?t.moveNodeAfter(c,r):e==="in"&&t.moveNodeIn(c,r),t.dragged=null,n.innerHTML="")},o=l=>{l.preventDefault();const c=12*t.scaleVal,{dragged:d}=t;if(!d)return;const f=t.container.getBoundingClientRect();l.clientXf.x+f.width-50?s.move(-1,0):l.clientYf.y+f.height-50?s.move(0,-1):s.stop(),Qi(r);const p=Zi.elementFromPoint(l.clientX,l.clientY-c);if(gl(p,d)){r=p;const b=p.getBoundingClientRect(),v=b.y;l.clientY>v+b.height?e="after":e="in"}else{const b=Zi.elementFromPoint(l.clientX,l.clientY+c),v=b.getBoundingClientRect();if(gl(b,d)){r=b;const x=v.y;l.clientYe.id)}:{type:"nodes",value:[t.obj.id]}};function Rp(t){let e=[],r=-1,n=t.getData(),s=[];t.undo=function(){if(r>-1){const l=e[r];n=l.prev,t.refresh(l.prev);try{l.currentTarget.type==="nodes"&&(l.operation==="removeNodes"?t.selectNodes(l.currentTarget.value.map(c=>this.findEle(c))):t.selectNodes(l.currentSelected.map(c=>this.findEle(c))))}catch{}finally{r--}}},t.redo=function(){if(rthis.findEle(c))):t.selectNodes(l.currentTarget.value.map(c=>this.findEle(c))))}catch{}}};const i=function(l){if(l.name==="beginEdit")return;e=e.slice(0,r+1);const c=t.getData(),d={prev:n,operation:l.name,currentSelected:s.map(f=>f.id),currentTarget:Dp(l),next:c};e.push(d),n=c,r=e.length-1},a=function(l){(l.metaKey||l.ctrlKey)&&(l.shiftKey&&l.key==="Z"||l.key==="y")?t.redo():(l.metaKey||l.ctrlKey)&&l.key==="z"&&t.undo()},o=function(l){s=t.currentNodes.map(c=>c.nodeObj)};return t.bus.addListener("operation",i),t.bus.addListener("selectNodes",o),t.container.addEventListener("keydown",a),()=>{t.bus.removeListener("operation",i),t.bus.removeListener("selectNodes",o),t.container.removeEventListener("keydown",a)}}const Ip='',_p='',Op='',Lp='',zp='',Fp='',$p='',Bp={side:Ip,left:_p,right:Op,full:Lp,living:zp,zoomin:Fp,zoomout:$p},un=(t,e)=>{const r=document.createElement("span");return r.id=t,r.innerHTML=Bp[e],r};function Pp(t){const e=document.createElement("div"),r=un("fullscreen","full"),n=un("toCenter","living"),s=un("zoomout","zoomout"),i=un("zoomin","zoomin"),a=document.createElement("span");return a.innerText="100%",e.appendChild(r),e.appendChild(n),e.appendChild(s),e.appendChild(i),e.className="mind-elixir-toolbar rb",r.onclick=()=>{document.fullscreenElement===t.el?document.exitFullscreen():t.el.requestFullscreen()},n.onclick=()=>{t.toCenter()},s.onclick=()=>{t.scale(t.scaleVal-t.scaleSensitivity)},i.onclick=()=>{t.scale(t.scaleVal+t.scaleSensitivity)},e}function Hp(t){const e=document.createElement("div"),r=un("tbltl","left"),n=un("tbltr","right"),s=un("tblts","side");return e.appendChild(r),e.appendChild(n),e.appendChild(s),e.className="mind-elixir-toolbar lt",r.onclick=()=>{t.initLeft()},n.onclick=()=>{t.initRight()},s.onclick=()=>{t.initSide()},e}function qp(t){t.container.append(Pp(t)),t.container.append(Hp(t))}/*! @viselect/vanilla v3.9.0 MIT | https://github.com/Simonwep/selection/tree/master/packages/vanilla */class jp{constructor(){this._listeners=new Map,this.on=this.addEventListener,this.off=this.removeEventListener,this.emit=this.dispatchEvent}addEventListener(e,r){const n=this._listeners.get(e)??new Set;return this._listeners.set(e,n),n.add(r),this}removeEventListener(e,r){var n;return(n=this._listeners.get(e))==null||n.delete(r),this}dispatchEvent(e,...r){let n=!0;for(const s of this._listeners.get(e)??[])n=s(...r)!==!1&&n;return n}unbindAllListeners(){this._listeners.clear()}}const vl=(t,e="px")=>typeof t=="number"?t+e:t,$r=({style:t},e,r)=>{if(typeof e=="object")for(const[n,s]of Object.entries(e))s!==void 0&&(t[n]=vl(s));else r!==void 0&&(t[e]=vl(r))},bl=(t=0,e=0,r=0,n=0)=>{const s={x:t,y:e,width:r,height:n,top:e,left:t,right:t+r,bottom:e+n};return{...s,toJSON:()=>JSON.stringify(s)}},Up=t=>{let e,r=-1,n=!1;return{next:(...s)=>{e=s,n||(n=!0,r=requestAnimationFrame(()=>{t(...e),n=!1}))},cancel:()=>{cancelAnimationFrame(r),n=!1}}},yl=(t,e,r="touch")=>{switch(r){case"center":{const n=e.left+e.width/2,s=e.top+e.height/2;return n>=t.left&&n<=t.right&&s>=t.top&&s<=t.bottom}case"cover":return e.left>=t.left&&e.top>=t.top&&e.right<=t.right&&e.bottom<=t.bottom;case"touch":return t.right>=e.left&&t.left<=e.right&&t.bottom>=e.top&&t.top<=e.bottom}},Vp=()=>matchMedia("(hover: none), (pointer: coarse)").matches,Wp=()=>"safari"in window,ea=t=>Array.isArray(t)?t:[t],ju=t=>(e,r,n,s={})=>{(e instanceof HTMLCollection||e instanceof NodeList)&&(e=Array.from(e)),r=ea(r),e=ea(e);for(const i of e)if(i)for(const a of r)i[t](a,n,{capture:!1,...s})},Br=ju("addEventListener"),Zt=ju("removeEventListener"),_0=t=>{var e;const{clientX:r,clientY:n,target:s}=((e=t.touches)==null?void 0:e[0])??t;return{x:r,y:n,target:s}},xn=(t,e=document)=>ea(t).map(r=>typeof r=="string"?Array.from(e.querySelectorAll(r)):r instanceof Element?r:null).flat().filter(Boolean),Gp=(t,e)=>e.some(r=>typeof r=="number"?t.button===r:typeof r=="object"?r.button!==t.button?!1:r.modifiers.every(n=>{switch(n){case"alt":return t.altKey;case"ctrl":return t.ctrlKey||t.metaKey;case"shift":return t.shiftKey}}):!1),{abs:an,max:wl,min:xl,ceil:kl}=Math,Sl=(t=[])=>({stored:t,selected:[],touched:[],changed:{added:[],removed:[]}}),Uu=class extends jp{constructor(e){var r,n,s,i,a;super(),this._selection=Sl(),this._targetBoundaryScrolled=!0,this._selectables=[],this._areaLocation={y1:0,x2:0,y2:0,x1:0},this._areaRect=bl(),this._singleClick=!0,this._scrollAvailable=!0,this._scrollingActive=!1,this._scrollSpeed={x:0,y:0},this._scrollDelta={x:0,y:0},this._lastMousePosition={x:0,y:0},this.enable=this._toggleStartEvents,this.disable=this._toggleStartEvents.bind(this,!1),this._options={selectionAreaClass:"selection-area",selectionContainerClass:void 0,selectables:[],document:window.document,startAreas:["html"],boundaries:["html"],container:"body",...e,behaviour:{overlap:"invert",intersect:"touch",triggers:[0],...e.behaviour,startThreshold:(r=e.behaviour)!=null&&r.startThreshold?typeof e.behaviour.startThreshold=="number"?e.behaviour.startThreshold:{x:10,y:10,...e.behaviour.startThreshold}:{x:10,y:10},scrolling:{speedDivider:10,manualSpeed:750,...(n=e.behaviour)==null?void 0:n.scrolling,startScrollMargins:{x:0,y:0,...(i=(s=e.behaviour)==null?void 0:s.scrolling)==null?void 0:i.startScrollMargins}}},features:{range:!0,touch:!0,deselectOnBlur:!1,...e.features,singleTap:{allow:!0,intersect:"native",...(a=e.features)==null?void 0:a.singleTap}}};for(const d of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))typeof this[d]=="function"&&(this[d]=this[d].bind(this));const{document:o,selectionAreaClass:l,selectionContainerClass:c}=this._options;this._area=o.createElement("div"),this._clippingElement=o.createElement("div"),this._clippingElement.appendChild(this._area),this._area.classList.add(l),c&&this._clippingElement.classList.add(c),$r(this._area,{willChange:"top, left, bottom, right, width, height",top:0,left:0,position:"fixed"}),$r(this._clippingElement,{overflow:"hidden",position:"fixed",transform:"translate3d(0, 0, 0)",pointerEvents:"none",zIndex:"1"}),this._frame=Up(d=>{this._recalculateSelectionAreaRect(),this._updateElementSelection(),this._emitEvent("move",d),this._redrawSelectionArea()}),this.enable()}_toggleStartEvents(e=!0){const{document:r,features:n}=this._options,s=e?Br:Zt;s(r,"mousedown",this._onTapStart),n.touch&&s(r,"touchstart",this._onTapStart,{passive:!1})}_onTapStart(e,r=!1){const{x:n,y:s,target:i}=_0(e),{document:a,startAreas:o,boundaries:l,features:c,behaviour:d}=this._options,f=i.getBoundingClientRect();if(e instanceof MouseEvent&&!Gp(e,d.triggers))return;const p=xn(o,a),b=xn(l,a);this._targetElement=b.find(M=>yl(M.getBoundingClientRect(),f));const v=e.composedPath(),x=p.find(M=>v.includes(M));if(this._targetBoundary=b.find(M=>v.includes(M)),!this._targetElement||!x||!this._targetBoundary||!r&&this._emitEvent("beforestart",e)===!1)return;this._areaLocation={x1:n,y1:s,x2:0,y2:0};const y=a.scrollingElement??a.body;this._scrollDelta={x:y.scrollLeft,y:y.scrollTop},this._singleClick=!0,this.clearSelection(!1,!0),Br(a,["touchmove","mousemove"],this._delayedTapMove,{passive:!1}),Br(a,["mouseup","touchcancel","touchend"],this._onTapStop),Br(a,"scroll",this._onScroll),c.deselectOnBlur&&(this._targetBoundaryScrolled=!1,Br(this._targetBoundary,"scroll",this._onStartAreaScroll))}_onSingleTap(e){const{singleTap:{intersect:r},range:n}=this._options.features,s=_0(e);let i;if(r==="native")i=s.target;else if(r==="touch"){this.resolveSelectables();const{x:o,y:l}=s;i=this._selectables.find(c=>{const{right:d,left:f,top:p,bottom:b}=c.getBoundingClientRect();return of&&lp})}if(!i)return;for(this.resolveSelectables();!this._selectables.includes(i);)if(i.parentElement)i=i.parentElement;else{this._targetBoundaryScrolled||this.clearSelection();return}const{stored:a}=this._selection;if(this._emitEvent("start",e),e.shiftKey&&n&&this._latestElement){const o=this._latestElement,[l,c]=o.compareDocumentPosition(i)&4?[i,o]:[o,i],d=[...this._selectables.filter(f=>f.compareDocumentPosition(l)&4&&f.compareDocumentPosition(c)&2),l,c];this.select(d),this._latestElement=o}else a.includes(i)&&(a.length===1||e.ctrlKey||a.every(o=>this._selection.stored.includes(o)))?this.deselect(i):(this.select(i),this._latestElement=i)}_delayedTapMove(e){const{container:r,document:n,behaviour:{startThreshold:s}}=this._options,{x1:i,y1:a}=this._areaLocation,{x:o,y:l}=_0(e);if(typeof s=="number"&&an(o+l-(i+a))>=s||typeof s=="object"&&an(o-i)>=s.x||an(l-a)>=s.y){if(Zt(n,["mousemove","touchmove"],this._delayedTapMove,{passive:!1}),this._emitEvent("beforedrag",e)===!1){Zt(n,["mouseup","touchcancel","touchend"],this._onTapStop);return}Br(n,["mousemove","touchmove"],this._onTapMove,{passive:!1}),$r(this._area,"display","block"),xn(r,n)[0].appendChild(this._clippingElement),this.resolveSelectables(),this._singleClick=!1,this._targetRect=this._targetElement.getBoundingClientRect(),this._scrollAvailable=this._targetElement.scrollHeight!==this._targetElement.clientHeight||this._targetElement.scrollWidth!==this._targetElement.clientWidth,this._scrollAvailable&&(Br(this._targetElement,"wheel",this._wheelScroll,{passive:!1}),Br(this._options.document,"keydown",this._keyboardScroll,{passive:!1}),this._selectables=this._selectables.filter(c=>this._targetElement.contains(c))),this._setupSelectionArea(),this._emitEvent("start",e),this._onTapMove(e)}this._handleMoveEvent(e)}_setupSelectionArea(){const{_clippingElement:e,_targetElement:r,_area:n}=this,s=this._targetRect=r.getBoundingClientRect();this._scrollAvailable?($r(e,{top:s.top,left:s.left,width:s.width,height:s.height}),$r(n,{marginTop:-s.top,marginLeft:-s.left})):($r(e,{top:0,left:0,width:"100%",height:"100%"}),$r(n,{marginTop:0,marginLeft:0}))}_onTapMove(e){const{_scrollSpeed:r,_areaLocation:n,_options:s,_frame:i}=this,{speedDivider:a}=s.behaviour.scrolling,o=this._targetElement,{x:l,y:c}=_0(e);if(n.x2=l,n.y2=c,this._lastMousePosition.x=l,this._lastMousePosition.y=c,this._scrollAvailable&&!this._scrollingActive&&(r.y||r.x)){this._scrollingActive=!0;const d=()=>{if(!r.x&&!r.y){this._scrollingActive=!1;return}const{scrollTop:f,scrollLeft:p}=o;r.y&&(o.scrollTop+=kl(r.y/a),n.y1-=o.scrollTop-f),r.x&&(o.scrollLeft+=kl(r.x/a),n.x1-=o.scrollLeft-p),i.next(e),requestAnimationFrame(d)};requestAnimationFrame(d)}else i.next(e);this._handleMoveEvent(e)}_handleMoveEvent(e){const{features:r}=this._options;(r.touch&&Vp()||this._scrollAvailable&&Wp())&&e.preventDefault()}_onScroll(){const{_scrollDelta:e,_options:{document:r}}=this,{scrollTop:n,scrollLeft:s}=r.scrollingElement??r.body;this._areaLocation.x1+=e.x-s,this._areaLocation.y1+=e.y-n,e.x=s,e.y=n,this._setupSelectionArea(),this._frame.next(null)}_onStartAreaScroll(){this._targetBoundaryScrolled=!0,Zt(this._targetElement,"scroll",this._onStartAreaScroll)}_wheelScroll(e){const{manualSpeed:r}=this._options.behaviour.scrolling,n=e.deltaY?e.deltaY>0?1:-1:0,s=e.deltaX?e.deltaX>0?1:-1:0;this._scrollSpeed.y+=n*r,this._scrollSpeed.x+=s*r,this._onTapMove(e),e.preventDefault()}_keyboardScroll(e){const{manualSpeed:r}=this._options.behaviour.scrolling,n=e.key==="ArrowLeft"?-1:e.key==="ArrowRight"?1:0,s=e.key==="ArrowUp"?-1:e.key==="ArrowDown"?1:0;this._scrollSpeed.x+=Math.sign(n)*r,this._scrollSpeed.y+=Math.sign(s)*r,e.preventDefault(),this._onTapMove({clientX:this._lastMousePosition.x,clientY:this._lastMousePosition.y,preventDefault:()=>{}})}_recalculateSelectionAreaRect(){const{_scrollSpeed:e,_areaLocation:r,_targetElement:n,_options:s}=this,{scrollTop:i,scrollHeight:a,clientHeight:o,scrollLeft:l,scrollWidth:c,clientWidth:d}=n,f=this._targetRect,{x1:p,y1:b}=r;let{x2:v,y2:x}=r;const{behaviour:{scrolling:{startScrollMargins:y}}}=s;vf.right-y.x?(e.x=c-l-d?an(f.left+f.width-v-y.x):0,v=v>f.right?f.right:v):e.x=0,xf.bottom-y.y?(e.y=a-i-o?an(f.top+f.height-x-y.y):0,x=x>f.bottom?f.bottom:x):e.y=0;const M=xl(p,v),k=xl(b,x),T=wl(p,v),N=wl(b,x);this._areaRect=bl(M,k,T-M,N-k)}_redrawSelectionArea(){const{x:e,y:r,width:n,height:s}=this._areaRect,{style:i}=this._area;i.left=`${e}px`,i.top=`${r}px`,i.width=`${n}px`,i.height=`${s}px`}_onTapStop(e,r){var n;const{document:s,features:i}=this._options,{_singleClick:a}=this;Zt(this._targetElement,"scroll",this._onStartAreaScroll),Zt(s,["mousemove","touchmove"],this._delayedTapMove),Zt(s,["touchmove","mousemove"],this._onTapMove),Zt(s,["mouseup","touchcancel","touchend"],this._onTapStop),Zt(s,"scroll",this._onScroll),this._keepSelection(),e&&a&&i.singleTap.allow?this._onSingleTap(e):!a&&!r&&(this._updateElementSelection(),this._emitEvent("stop",e)),this._scrollSpeed.x=0,this._scrollSpeed.y=0,Zt(this._targetElement,"wheel",this._wheelScroll,{passive:!0}),Zt(this._options.document,"keydown",this._keyboardScroll,{passive:!0}),this._clippingElement.remove(),(n=this._frame)==null||n.cancel(),$r(this._area,"display","none")}_updateElementSelection(){const{_selectables:e,_options:r,_selection:n,_areaRect:s}=this,{stored:i,selected:a,touched:o}=n,{intersect:l,overlap:c}=r.behaviour,d=c==="invert",f=[],p=[],b=[];for(let x=0;x!a.includes(x)));const v=c==="keep";for(let x=0;x!a.includes(l));switch(e.behaviour.overlap){case"drop":{r.stored=[...o,...a.filter(l=>!i.includes(l))];break}case"invert":{r.stored=[...o,...a.filter(l=>!s.removed.includes(l))];break}case"keep":{r.stored=[...a,...n.filter(l=>!a.includes(l))];break}}}trigger(e,r=!0){this._onTapStart(e,r)}resolveSelectables(){this._selectables=xn(this._options.selectables,this._options.document)}clearSelection(e=!0,r=!1){const{selected:n,stored:s,changed:i}=this._selection;i.added=[],i.removed.push(...n,...e?s:[]),r||(this._emitEvent("move",null),this._emitEvent("stop",null)),this._selection=Sl(e?[]:s)}getSelection(){return this._selection.stored}getSelectionArea(){return this._area}getSelectables(){return this._selectables}setAreaLocation(e){Object.assign(this._areaLocation,e),this._redrawSelectionArea()}getAreaLocation(){return this._areaLocation}cancel(e=!1){this._onTapStop(null,!e)}destroy(){this.cancel(),this.disable(),this._clippingElement.remove(),super.unbindAllListeners()}select(e,r=!1){const{changed:n,selected:s,stored:i}=this._selection,a=xn(e,this._options.document).filter(o=>!s.includes(o)&&!i.includes(o));return i.push(...a),s.push(...a),n.added.push(...a),n.removed=[],this._latestElement=void 0,r||(this._emitEvent("move",null),this._emitEvent("stop",null)),a}deselect(e,r=!1){const{selected:n,stored:s,changed:i}=this._selection,a=xn(e,this._options.document).filter(o=>n.includes(o)||s.includes(o));this._selection.stored=s.filter(o=>!a.includes(o)),this._selection.selected=n.filter(o=>!a.includes(o)),this._selection.changed.added=[],this._selection.changed.removed.push(...a.filter(o=>!i.removed.includes(o))),this._latestElement=void 0,r||(this._emitEvent("move",null),this._emitEvent("stop",null))}};Uu.version="3.9.0";let Kp=Uu;function Yp(t){const e=t.mouseSelectionButton===2?[2]:[0],r=new Kp({selectables:[".map-container me-tpc"],boundaries:[t.container],container:t.selectionContainer,features:{touch:!1},behaviour:{triggers:e,scrolling:{speedDivider:10,manualSpeed:750,startScrollMargins:{x:10,y:10}}}}).on("beforestart",({event:n})=>{var s;const i=n.target;if(i.id==="input-box"||i.className==="circle"||(s=t.container.querySelector(".context-menu"))!=null&&s.contains(i))return!1;if(!n.ctrlKey&&!n.metaKey){if(i.tagName==="ME-TPC"&&i.classList.contains("selected"))return!1;t.clearSelection()}const a=r.getSelectionArea();return a.style.background="#4f90f22d",a.style.border="1px solid #4f90f2",a.parentElement&&(a.parentElement.style.zIndex="9999"),!0}).on("move",({store:{changed:{added:n,removed:s}}})=>{if(n.length>0||s.length>0,n.length>0){for(const i of n)i.className="selected";t.currentNodes=[...t.currentNodes,...n],t.bus.fire("selectNodes",n.map(i=>i.nodeObj))}if(s.length>0){for(const i of s)i.classList.remove("selected");t.currentNodes=t.currentNodes.filter(i=>!(s!=null&&s.includes(i))),t.bus.fire("unselectNodes",s.map(i=>i.nodeObj))}});t.selection=r}const Xp=function(t,e=!0){this.theme=t;const r={...(t.type==="dark"?qa:Ha).cssVar,...t.cssVar},n=Object.keys(r);for(let s=0;s{var e;const r=(e=t.parent)==null?void 0:e.children,n=(r==null?void 0:r.indexOf(t))??0;return{siblings:r,index:n}};function Jp(t){const{siblings:e,index:r}=$n(t);if(e===void 0)return;const n=e[r];r===0?(e[r]=e[e.length-1],e[e.length-1]=n):(e[r]=e[r-1],e[r-1]=n)}function Zp(t){const{siblings:e,index:r}=$n(t);if(e===void 0)return;const n=e[r];r===e.length-1?(e[r]=e[0],e[0]=n):(e[r]=e[r+1],e[r+1]=n)}function Vu(t){const{siblings:e,index:r}=$n(t);return e===void 0?0:(e.splice(r,1),e.length)}function Qp(t,e,r){const{siblings:n,index:s}=$n(r);n!==void 0&&(e==="before"?n.splice(s,0,t):n.splice(s+1,0,t))}function e4(t,e){const{siblings:r,index:n}=$n(t);r!==void 0&&(r[n]=e,e.children=[t])}function Wu(t,e,r){var n;if(Vu(e),(n=r.parent)!=null&&n.parent||(e.direction=r.direction),t==="in")r.children?r.children.push(e):r.children=[e];else{e.direction!==void 0&&(e.direction=r.direction);const{siblings:s,index:i}=$n(r);if(s===void 0)return;t==="before"?s.splice(i,0,e):s.splice(i+1,0,e)}}const t4=function({map:t,direction:e},r){var n,s;if(e===0)return 0;if(e===1)return 1;if(e===2){const i=((n=t.querySelector(".lhs"))==null?void 0:n.childElementCount)||0,a=((s=t.querySelector(".rhs"))==null?void 0:s.childElementCount)||0;return i<=a?(r.direction=0,0):(r.direction=1,1)}},Gu=function(t,e,r){var n,s;const i=r.children[0].children[0],a=e.parentElement;if(a.tagName==="ME-PARENT"){if(y0(i),a.children[1])a.nextSibling.appendChild(r);else{const o=t.createChildren([r]);a.appendChild(Ga(!0)),a.insertAdjacentElement("afterend",o)}t.linkDiv(r.offsetParent)}else a.tagName==="ME-ROOT"&&(t4(t,i.nodeObj)===0?(n=t.container.querySelector(".lhs"))==null||n.appendChild(r):(s=t.container.querySelector(".rhs"))==null||s.appendChild(r),t.linkDiv())},r4=function(t,e){const r=t.parentNode;if(e===0){const n=r.parentNode.parentNode;n.tagName!=="ME-MAIN"&&(n.previousSibling.children[1].remove(),n.remove())}r.parentNode.remove()},Ku={before:"beforebegin",after:"afterend"},y0=function(t){const e=t.parentElement.parentElement.lastElementChild;(e==null?void 0:e.tagName)==="svg"&&(e==null||e.remove())},n4=function(t,e){const r=t.nodeObj,n=Ua(r);n.style&&e.style&&(e.style=Object.assign(n.style,e.style));const s=Object.assign(r,e);Wa.call(this,t,s),this.linkDiv(),this.bus.fire("operation",{name:"reshapeNode",obj:s,origin:n})},Ka=function(t,e,r){if(!e)return null;const n=e.nodeObj;n.expanded===!1&&(t.expandNode(e,!0),e=t.findEle(n.id));const s=r||t.generateNewObj();n.children?n.children.push(s):n.children=[s],en(t.nodeData);const{grp:i,top:a}=t.createWrapper(s);return Gu(t,e,i),{newTop:a,newNodeObj:s}},s4=function(t,e,r){var n,s,i,a;const o=e||this.currentNode;if(!o)return;const l=o.nodeObj;if(l.parent){if(!((n=l.parent)!=null&&n.parent)&&((i=(s=l.parent)==null?void 0:s.children)==null?void 0:i.length)===1&&this.direction===2){this.addChild(this.findEle(l.parent.id),r);return}}else{this.addChild();return}const c=r||this.generateNewObj();if(!((a=l.parent)!=null&&a.parent)){const b=o.closest("me-main").className===sr.LHS?0:1;c.direction=b}Qp(c,t,l),en(this.nodeData);const d=o.parentElement,{grp:f,top:p}=this.createWrapper(c);d.parentElement.insertAdjacentElement(Ku[t],f),this.linkDiv(f.offsetParent),r||this.editTopic(p.firstChild),this.bus.fire("operation",{name:"insertSibling",type:t,obj:c}),this.selectNode(p.firstChild,!0)},i4=function(t,e){const r=t||this.currentNode;if(!r)return;y0(r);const n=r.nodeObj;if(!n.parent)return;const s=e||this.generateNewObj();e4(n,s),en(this.nodeData);const i=r.parentElement.parentElement,{grp:a,top:o}=this.createWrapper(s,!0);o.appendChild(Ga(!0)),i.insertAdjacentElement("afterend",a);const l=this.createChildren([i]);o.insertAdjacentElement("afterend",l),this.linkDiv(),e||this.editTopic(o.firstChild),this.selectNode(o.firstChild,!0),this.bus.fire("operation",{name:"insertParent",obj:s})},a4=function(t,e){const r=t||this.currentNode;if(!r)return;const n=Ka(this,r,e);if(!n)return;const{newTop:s,newNodeObj:i}=n;this.bus.fire("operation",{name:"addChild",obj:i}),e||this.editTopic(s.firstChild),this.selectNode(s.firstChild,!0)},o4=function(t,e){const r=Ua(t.nodeObj);ja(r);const n=Ka(this,e,r);if(!n)return;const{newNodeObj:s}=n;this.selectNode(this.findEle(s.id)),this.bus.fire("operation",{name:"copyNode",obj:s})},l4=function(t,e){t=Hs(t);const r=[];for(let n=0;nthis.findEle(n.id))),this.bus.fire("operation",{name:"copyNodes",objs:r})},c4=function(t){const e=t||this.currentNode;if(!e)return;const r=e.nodeObj;Jp(r);const n=e.parentNode.parentNode;n.parentNode.insertBefore(n,n.previousSibling),this.linkDiv(),this.bus.fire("operation",{name:"moveUpNode",obj:r})},u4=function(t){const e=t||this.currentNode;if(!e)return;const r=e.nodeObj;Zp(r);const n=e.parentNode.parentNode;n.nextSibling?n.nextSibling.insertAdjacentElement("afterend",n):n.parentNode.prepend(n),this.linkDiv(),this.bus.fire("operation",{name:"moveDownNode",obj:r})},d4=function(t){if(t.length===0)return;t=Hs(t);for(const r of t){const n=r.nodeObj,s=Vu(n);r4(r,s)}const e=t[t.length-1];this.selectNode(this.findEle(e.nodeObj.parent.id)),this.linkDiv(),this.bus.fire("operation",{name:"removeNodes",objs:t.map(r=>r.nodeObj)})},h4=function(t,e){t=Hs(t);const r=e.nodeObj;r.expanded===!1&&(this.expandNode(e,!0),e=this.findEle(r.id));for(const n of t){const s=n.nodeObj;Wu("in",s,r),en(this.nodeData);const i=n.parentElement;Gu(this,e,i.parentElement)}this.linkDiv(),this.bus.fire("operation",{name:"moveNodeIn",objs:t.map(n=>n.nodeObj),toObj:r})},Yu=(t,e,r,n)=>{t=Hs(t),e==="after"&&(t=t.reverse());const s=r.nodeObj,i=[];for(const a of t){const o=a.nodeObj;Wu(e,o,s),en(n.nodeData),y0(a);const l=a.parentElement.parentNode;i.includes(l.parentElement)||i.push(l.parentElement),r.parentElement.parentNode.insertAdjacentElement(Ku[e],l)}for(const a of i)a.childElementCount===0&&a.tagName!=="ME-MAIN"&&(a.previousSibling.children[1].remove(),a.remove());n.linkDiv(),n.bus.fire("operation",{name:e==="before"?"moveNodeBefore":"moveNodeAfter",objs:t.map(a=>a.nodeObj),toObj:s})},f4=function(t,e){Yu(t,"before",e,this)},p4=function(t,e){Yu(t,"after",e,this)},m4=function(t){const e=t||this.currentNode;e&&(e.nodeObj.dangerouslySetInnerHTML||this.editTopic(e))},g4=function(t,e){t.text.textContent=e,t.nodeObj.topic=e,this.linkDiv()},Xu=Object.freeze(Object.defineProperty({__proto__:null,addChild:a4,beginEdit:m4,copyNode:o4,copyNodes:l4,insertParent:i4,insertSibling:s4,moveDownNode:u4,moveNodeAfter:p4,moveNodeBefore:f4,moveNodeIn:h4,moveUpNode:c4,removeNodes:d4,reshapeNode:n4,rmSubline:y0,setNodeTopic:g4},Symbol.toStringTag,{value:"Module"}));function v4(t){return{nodeData:t.isFocusMode?t.nodeDataBackup:t.nodeData,arrows:t.arrows,summaries:t.summaries,direction:t.direction,theme:t.theme}}const b4=function(t){const e=this.container,r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(r.top>n.bottom||r.bottomn.right||r.right{if(!(e==="parent"&&typeof r!="string"))return r})},T4=function(){return JSON.parse(this.getDataString())},A4=function(){this.editable=!0},E4=function(){this.editable=!1},C4=function(t,e={x:0,y:0}){if(tthis.scaleMax)return;const r=this.container.getBoundingClientRect(),n=e.x?e.x-r.left-r.width/2:0,s=e.y?e.y-r.top-r.height/2:0,{dx:i,dy:a}=Ju(this),o=this.map.style.transform,{x:l,y:c}=Fu(o),d=l-i,f=c-a,p=this.scaleVal,b=(-n+d)*(1-t/p),v=(-s+f)*(1-t/p);this.map.style.transform=`translate(${l-b}px, ${c-v}px) scale(${t})`,this.scaleVal=t,this.bus.fire("scale",t)},M4=function(){const t=this.nodes.offsetHeight/this.container.offsetHeight,e=this.nodes.offsetWidth/this.container.offsetWidth,r=1/Math.max(1,Math.max(t,e));this.scaleVal=r,this.map.style.transform="scale("+r+")",this.bus.fire("scale",r)},N4=function(t,e,r=!1){const{map:n,scaleVal:s,bus:i}=this,a=n.style.transform;let{x:o,y:l}=Fu(a);o+=t,l+=e,r&&(n.style.transition="transform 0.3s",setTimeout(()=>{n.style.transition="none"},300)),n.style.transform=`translate(${o}px, ${l}px) scale(${s})`,i.fire("move",{dx:t,dy:e})},Ju=t=>{const{container:e,map:r,nodes:n}=t,s=r.querySelector("me-root"),i=s.offsetTop,a=s.offsetLeft,o=s.offsetWidth,l=s.offsetHeight;let c,d;return t.alignment==="root"?(c=e.offsetWidth/2-a-o/2,d=e.offsetHeight/2-i-l/2,r.style.transformOrigin=`${a+o/2}px 50%`):(c=(e.offsetWidth-n.offsetWidth)/2,d=(e.offsetHeight-n.offsetHeight)/2,r.style.transformOrigin="50% 50%"),{dx:c,dy:d}},D4=function(){const{map:t}=this,{dx:e,dy:r}=Ju(this);t.style.transform=`translate(${e}px, ${r}px) scale(${this.scaleVal})`},R4=function(t){t(this)},I4=function(t){t.nodeObj.parent&&(this.clearSelection(),this.tempDirection===null&&(this.tempDirection=this.direction),this.isFocusMode||(this.nodeDataBackup=this.nodeData,this.isFocusMode=!0),this.nodeData=t.nodeObj,this.initRight(),this.toCenter())},_4=function(){this.isFocusMode=!1,this.tempDirection!==null&&(this.nodeData=this.nodeDataBackup,this.direction=this.tempDirection,this.tempDirection=null,this.refresh(),this.toCenter())},O4=function(){this.direction=0,this.refresh(),this.toCenter()},L4=function(){this.direction=1,this.refresh(),this.toCenter()},z4=function(){this.direction=2,this.refresh(),this.toCenter()},F4=function(t){this.locale=t,this.refresh()},$4=function(t,e){const r=t.nodeObj;typeof e=="boolean"?r.expanded=e:r.expanded!==!1?r.expanded=!1:r.expanded=!0;const n=t.getBoundingClientRect(),s={x:n.left,y:n.top},i=t.parentNode,a=i.children[1];if(a.expanded=r.expanded,a.className=r.expanded?"minus":"",y0(t),r.expanded){const f=this.createChildren(r.children.map(p=>this.createWrapper(p).grp));i.parentNode.appendChild(f)}else i.parentNode.children[1].remove();this.linkDiv(t.closest("me-main > me-wrapper"));const o=t.getBoundingClientRect(),l={x:o.left,y:o.top},c=s.x-l.x,d=s.y-l.y;this.move(c,d),this.bus.fire("expandNode",r)},B4=function(t,e){const r=t.nodeObj,n=t.getBoundingClientRect(),s={x:n.left,y:n.top};In(r,e??!r.expanded),this.refresh();const i=this.findEle(r.id).getBoundingClientRect(),a={x:i.left,y:i.top},o=s.x-a.x,l=s.y-a.y;this.move(o,l)},P4=function(t){this.clearSelection(),t&&(t=JSON.parse(JSON.stringify(t)),this.nodeData=t.nodeData,this.arrows=t.arrows||[],this.summaries=t.summaries||[],t.theme&&this.changeTheme(t.theme)),en(this.nodeData),this.layout(),this.linkDiv()},H4=Object.freeze(Object.defineProperty({__proto__:null,cancelFocus:_4,clearSelection:k4,disableEdit:E4,enableEdit:A4,expandNode:$4,expandNodeAll:B4,focusNode:I4,getData:T4,getDataString:S4,initLeft:O4,initRight:L4,initSide:z4,install:R4,move:N4,refresh:P4,scale:C4,scaleFit:M4,scrollIntoView:b4,selectNode:y4,selectNodes:w4,setLocale:F4,toCenter:D4,unselectNodes:x4},Symbol.toStringTag,{value:"Module"})),q4=function(t){return{dom:t,moved:!1,pointerdown:!1,lastX:0,lastY:0,handlePointerMove(e){if(this.pointerdown){this.moved=!0;const r=e.clientX-this.lastX,n=e.clientY-this.lastY;this.lastX=e.clientX,this.lastY=e.clientY,this.cb&&this.cb(r,n)}},handlePointerDown(e){e.button===0&&(this.pointerdown=!0,this.lastX=e.clientX,this.lastY=e.clientY,this.dom.setPointerCapture(e.pointerId))},handleClear(e){this.pointerdown=!1,e.pointerId!==void 0&&this.dom.releasePointerCapture(e.pointerId)},cb:null,init(e,r){this.cb=r,this.handleClear=this.handleClear.bind(this),this.handlePointerMove=this.handlePointerMove.bind(this),this.handlePointerDown=this.handlePointerDown.bind(this),this.destroy=Va([{dom:e,evt:"pointermove",func:this.handlePointerMove},{dom:e,evt:"pointerleave",func:this.handleClear},{dom:e,evt:"pointerup",func:this.handleClear},{dom:this.dom,evt:"pointerdown",func:this.handlePointerDown}])},destroy:null,clear(){this.moved=!1,this.pointerdown=!1}}},Tl={create:q4},j4="#4dc4ff";function Zu(t,e,r,n,s,i,a,o){return{x:t/8+r*3/8+s*3/8+a/8,y:e/8+n*3/8+i*3/8+o/8}}function U4(t,e,r){ft(t,{x:e+"",y:r+""})}function O0(t,e,r,n,s){ft(t,{x1:e+"",y1:r+"",x2:n+"",y2:s+""})}function Al(t,e,r,n,s,i,a,o,l,c){var d;const f=`M ${e} ${r} C ${n} ${s} ${i} ${a} ${o} ${l}`;if(t.line.setAttribute("d",f),c.style){const y=c.style;y.stroke&&t.line.setAttribute("stroke",y.stroke),y.strokeWidth&&t.line.setAttribute("stroke-width",String(y.strokeWidth)),y.strokeDasharray&&t.line.setAttribute("stroke-dasharray",y.strokeDasharray),y.strokeLinecap&&t.line.setAttribute("stroke-linecap",y.strokeLinecap),y.opacity!==void 0&&t.line.setAttribute("opacity",String(y.opacity))}const p=t.querySelectorAll('path[stroke="transparent"]');p.length>0&&p[0].setAttribute("d",f);const b=gs(i,a,o,l);if(b){const y=`M ${b.x1} ${b.y1} L ${o} ${l} L ${b.x2} ${b.y2}`;if(t.arrow1.setAttribute("d",y),p.length>1&&p[1].setAttribute("d",y),c.style){const M=c.style;M.stroke&&t.arrow1.setAttribute("stroke",M.stroke),M.strokeWidth&&t.arrow1.setAttribute("stroke-width",String(M.strokeWidth)),M.strokeLinecap&&t.arrow1.setAttribute("stroke-linecap",M.strokeLinecap),M.opacity!==void 0&&t.arrow1.setAttribute("opacity",String(M.opacity))}}if(c.bidirectional){const y=gs(n,s,e,r);if(y){const M=`M ${y.x1} ${y.y1} L ${e} ${r} L ${y.x2} ${y.y2}`;if(t.arrow2.setAttribute("d",M),p.length>2&&p[2].setAttribute("d",M),c.style){const k=c.style;k.stroke&&t.arrow2.setAttribute("stroke",k.stroke),k.strokeWidth&&t.arrow2.setAttribute("stroke-width",String(k.strokeWidth)),k.strokeLinecap&&t.arrow2.setAttribute("stroke-linecap",k.strokeLinecap),k.opacity!==void 0&&t.arrow2.setAttribute("opacity",String(k.opacity))}}}const{x:v,y:x}=Zu(e,r,n,s,i,a,o,l);U4(t.label,v,x),(d=c.style)!=null&&d.labelColor&&t.label.setAttribute("fill",c.style.labelColor),Z4(t)}function ys(t,e,r){const{offsetLeft:n,offsetTop:s}=tn(t.nodes,e),i=e.offsetWidth,a=e.offsetHeight,o=n+i/2,l=s+a/2,c=o+r.x,d=l+r.y;return{w:i,h:a,cx:o,cy:l,ctrlX:c,ctrlY:d}}function En(t){let e,r;const n=(t.cy-t.ctrlY)/(t.ctrlX-t.cx);return n>t.h/t.w||n<-t.h/t.w?t.cy-t.ctrlY<0?(e=t.cx-t.h/2/n,r=t.cy+t.h/2):(e=t.cx+t.h/2/n,r=t.cy-t.h/2):t.cx-t.ctrlX<0?(e=t.cx+t.w/2,r=t.cy-t.w*n/2):(e=t.cx-t.w/2,r=t.cy+t.w*n/2),{x:e,y:r}}const Ya=function(t,e,r,n,s){var i;if(!e||!r)return;const a=ys(t,e,n.delta1),o=ys(t,r,n.delta2),{x:l,y:c}=En(a),{ctrlX:d,ctrlY:f}=a,{ctrlX:p,ctrlY:b}=o,{x:v,y:x}=En(o),y=gs(p,b,v,x);if(!y)return;const M=`M ${y.x1} ${y.y1} L ${v} ${x} L ${y.x2} ${y.y2}`;let k="";if(n.bidirectional){const W=gs(d,f,l,c);if(!W)return;k=`M ${W.x1} ${W.y1} L ${l} ${c} L ${W.x2} ${W.y2}`}const T=Sp(`M ${l} ${c} C ${d} ${f} ${p} ${b} ${v} ${x}`,M,k,n.style),{x:N,y:I}=Zu(l,c,d,f,p,b,v,x),O=(i=n.style)==null?void 0:i.labelColor,z=Ji(n.label,N,I,{anchor:"middle",color:O,dataType:"custom-link"});T.appendChild(z),T.label=z,T.arrowObj=n,T.dataset.linkid=n.id,t.linkSvgGroup.appendChild(T),s||(t.arrows.push(n),t.currentArrow=T,Qu(t,n,a,o))},V4=function(t,e,r={}){const n={id:gn(),label:"Custom Link",from:t.nodeObj.id,to:e.nodeObj.id,delta1:{x:t.offsetWidth/2+100,y:0},delta2:{x:e.offsetWidth/2+100,y:0},...r};Ya(this,t,e,n),this.bus.fire("operation",{name:"createArrow",obj:n})},W4=function(t){qs(this);const e={...t,id:gn()};Ya(this,this.findEle(e.from),this.findEle(e.to),e),this.bus.fire("operation",{name:"createArrow",obj:e})},G4=function(t){let e;if(t?e=t:e=this.currentArrow,!e)return;qs(this);const r=e.arrowObj.id;this.arrows=this.arrows.filter(n=>n.id!==r),e.remove(),this.bus.fire("operation",{name:"removeArrow",obj:{id:r}})},K4=function(t){this.currentArrow=t;const e=t.arrowObj,r=this.findEle(e.from),n=this.findEle(e.to),s=ys(this,r,e.delta1),i=ys(this,n,e.delta2);Qu(this,e,s,i)},Y4=function(){qs(this),this.currentArrow=null},bi=function(t,e){const r=document.createElementNS(Gt,"path");return ft(r,{d:t,stroke:e,fill:"none","stroke-width":"6","stroke-linecap":"round","stroke-linejoin":"round"}),r},X4=function(t,e){const r=document.createElementNS(Gt,"g");r.setAttribute("class","arrow-highlight"),r.setAttribute("opacity","0.45");const n=bi(t.line.getAttribute("d"),e);r.appendChild(n);const s=bi(t.arrow1.getAttribute("d"),e);if(r.appendChild(s),t.arrow2.getAttribute("d")){const i=bi(t.arrow2.getAttribute("d"),e);r.appendChild(i)}t.insertBefore(r,t.firstChild)},J4=function(t){const e=t.querySelector(".arrow-highlight");e&&e.remove()},Z4=function(t){const e=t.querySelector(".arrow-highlight");if(!e)return;const r=e.querySelectorAll("path");r.length>=1&&r[0].setAttribute("d",t.line.getAttribute("d")),r.length>=2&&r[1].setAttribute("d",t.arrow1.getAttribute("d")),r.length>=3&&t.arrow2.getAttribute("d")&&r[2].setAttribute("d",t.arrow2.getAttribute("d"))},qs=function(t){var e,r;(e=t.helper1)==null||e.destroy(),(r=t.helper2)==null||r.destroy(),t.linkController.style.display="none",t.P2.style.display="none",t.P3.style.display="none",t.currentArrow&&J4(t.currentArrow)},Qu=function(t,e,r,n){const{linkController:s,P2:i,P3:a,line1:o,line2:l,nodes:c,map:d,currentArrow:f,bus:p}=t;if(!f)return;s.style.display="initial",i.style.display="initial",a.style.display="initial",c.appendChild(s),c.appendChild(i),c.appendChild(a),X4(f,j4);let{x:b,y:v}=En(r),{ctrlX:x,ctrlY:y}=r,{ctrlX:M,ctrlY:k}=n,{x:T,y:N}=En(n);i.style.cssText=`top:${y}px;left:${x}px;`,a.style.cssText=`top:${k}px;left:${M}px;`,O0(o,b,v,x,y),O0(l,M,k,T,N),t.helper1=Tl.create(i),t.helper2=Tl.create(a),t.helper1.init(d,(I,O)=>{x=x+I/t.scaleVal,y=y+O/t.scaleVal;const z=En({...r,ctrlX:x,ctrlY:y});b=z.x,v=z.y,i.style.top=y+"px",i.style.left=x+"px",Al(f,b,v,x,y,M,k,T,N,e),O0(o,b,v,x,y),e.delta1.x=x-r.cx,e.delta1.y=y-r.cy,p.fire("updateArrowDelta",e)}),t.helper2.init(d,(I,O)=>{M=M+I/t.scaleVal,k=k+O/t.scaleVal;const z=En({...n,ctrlX:M,ctrlY:k});T=z.x,N=z.y,a.style.top=k+"px",a.style.left=M+"px",Al(f,b,v,x,y,M,k,T,N,e),O0(l,M,k,T,N),e.delta2.x=M-n.cx,e.delta2.y=k-n.cy,p.fire("updateArrowDelta",e)})};function Q4(){this.linkSvgGroup.innerHTML="";for(let t=0;tms(t.from,this.nodeData)&&ms(t.to,this.nodeData))}const rm=Object.freeze(Object.defineProperty({__proto__:null,createArrow:V4,createArrowFrom:W4,editArrowLabel:em,removeArrow:G4,renderArrow:Q4,selectArrow:K4,tidyArrow:tm,unselectArrow:Y4},Symbol.toStringTag,{value:"Module"})),nm=function(t){var e,r;if(t.length===0)throw new Error("No selected node.");if(t.length===1){const d=t[0].nodeObj,f=t[0].nodeObj.parent;if(!f)throw new Error("Can not select root node.");const p=f.children.findIndex(b=>d===b);return{parent:f.id,start:p,end:p}}let n=0;const s=t.map(d=>{let f=d.nodeObj;const p=[];for(;f.parent;){const b=f.parent,v=b.children,x=v==null?void 0:v.indexOf(f);f=b,p.unshift({node:f,index:x})}return p.length>n&&(n=p.length),p});let i=0;e:for(;id[i-1].index).sort(),o=a[0]||0,l=a[a.length-1]||0,c=s[0][i-1].node;if(!c.parent)throw new Error("Please select nodes in the same main topic.");return{parent:c.id,start:o,end:l}},sm=function(t){const e=document.createElementNS(Gt,"g");return e.setAttribute("id",t),e},El=function(t,e){const r=document.createElementNS(Gt,"path");return ft(r,{d:t,stroke:e||"#666",fill:"none","stroke-linecap":"round","stroke-width":"2"}),r},im=t=>t.parentElement.parentElement,am=function(t,{parent:e,start:r}){const n=t.findEle(e),s=n.nodeObj;let i;return s.parent?i=n.closest("me-main").className:i=t.findEle(s.children[r].id).closest("me-main").className,i},Xa=function(t,e){var r;const{id:n,label:s,parent:i,start:a,end:o}=e,{nodes:l,theme:c,summarySvg:d}=t,f=t.findEle(i).nodeObj,p=am(t,e);let b=1/0,v=0,x=0,y=0;for(let W=a;W<=o;W++){const U=(r=f.children)==null?void 0:r[W];if(!U)return t.removeSummary(n),null;const he=im(t.findEle(U.id)),{offsetLeft:ge,offsetTop:Ae}=tn(l,he),et=a===o?10:20;W===a&&(x=Ae+et),W===o&&(y=Ae+he.offsetHeight-et),gev&&(v=he.offsetWidth+ge)}let M,k;const T=x+10,N=y+10,I=(T+N)/2,O=c.cssVar["--color"];p===sr.LHS?(M=El(`M ${b+10} ${T} c -5 0 -10 5 -10 10 L ${b} ${N-10} c 0 5 5 10 10 10 M ${b} ${I} h -10`,O),k=Ji(s,b-20,I+6,{anchor:"end",color:O})):(M=El(`M ${v-10} ${T} c 5 0 10 5 10 10 L ${v} ${N-10} c 0 5 -5 10 -10 10 M ${v} ${I} h 10`,O),k=Ji(s,v+20,I+6,{anchor:"start",color:O}));const z=sm("s-"+n);return z.appendChild(M),z.appendChild(k),z.summaryObj=e,d.appendChild(z),z},om=function(){if(!this.currentNodes)return;const{currentNodes:t,summaries:e,bus:r}=this,{parent:n,start:s,end:i}=nm(t),a={id:gn(),parent:n,start:s,end:i,label:"summary"},o=Xa(this,a);e.push(a),this.editSummary(o),r.fire("operation",{name:"createSummary",obj:a})},lm=function(t){const e=gn(),r={...t,id:e};Xa(this,r),this.summaries.push(r),this.bus.fire("operation",{name:"createSummary",obj:r})},cm=function(t){var e;const r=this.summaries.findIndex(n=>n.id===t);r>-1&&(this.summaries.splice(r,1),(e=document.querySelector("#s-"+t))==null||e.remove()),this.bus.fire("operation",{name:"removeSummary",obj:{id:t}})},um=function(t){const e=t.children[1].getBBox(),r=6,n=3,s=document.createElementNS(Gt,"rect");ft(s,{x:e.x-r+"",y:e.y-r+"",width:e.width+r*2+"",height:e.height+r*2+"",rx:n+"",stroke:this.theme.cssVar["--selected"]||"#4dc4ff","stroke-width":"2",fill:"none"}),t.appendChild(s),this.currentSummary=t},dm=function(){var t,e;(e=(t=this.currentSummary)==null?void 0:t.querySelector("rect"))==null||e.remove(),this.currentSummary=null},hm=function(){this.summarySvg.innerHTML="",this.summaries.forEach(t=>{try{Xa(this,t)}catch{}}),this.nodes.insertAdjacentElement("beforeend",this.summarySvg)},fm=function(t){if(!t)return;const e=t.childNodes[1];Hu(this,e,t.summaryObj)},pm=Object.freeze(Object.defineProperty({__proto__:null,createSummary:om,createSummaryFrom:lm,editSummary:fm,removeSummary:cm,renderSummary:hm,selectSummary:um,unselectSummary:dm},Symbol.toStringTag,{value:"Module"})),qt="http://www.w3.org/2000/svg";function mm(t,e){const r=document.createElementNS(qt,"svg");return ft(r,{version:"1.1",xmlns:qt,height:t,width:e}),r}function gm(t,e){return(parseInt(t)-parseInt(e))/2}function vm(t,e,r,n){const s=document.createElementNS(qt,"g");let i="";return t.text?i=t.text.textContent:i=t.childNodes[0].textContent,i.split(` +`).forEach((a,o)=>{const l=document.createElementNS(qt,"text");ft(l,{x:r+parseInt(e.paddingLeft)+"",y:n+parseInt(e.paddingTop)+gm(e.lineHeight,e.fontSize)*(o+1)+parseFloat(e.fontSize)*(o+1)+"","text-anchor":"start","font-family":e.fontFamily,"font-size":`${e.fontSize}`,"font-weight":`${e.fontWeight}`,fill:`${e.color}`}),l.innerHTML=a,s.appendChild(l)}),s}function bm(t,e,r,n){var s;let i="";(s=t.nodeObj)!=null&&s.dangerouslySetInnerHTML?i=t.nodeObj.dangerouslySetInnerHTML:t.text?i=t.text.textContent:i=t.childNodes[0].textContent;const a=document.createElementNS(qt,"foreignObject");ft(a,{x:r+parseInt(e.paddingLeft)+"",y:n+parseInt(e.paddingTop)+"",width:e.width,height:e.height});const o=document.createElement("div");return ft(o,{xmlns:"http://www.w3.org/1999/xhtml",style:`font-family: ${e.fontFamily}; font-size: ${e.fontSize}; font-weight: ${e.fontWeight}; color: ${e.color}; white-space: pre-wrap;`}),o.innerHTML=i,a.appendChild(o),a}function ym(t,e){const r=getComputedStyle(e),{offsetLeft:n,offsetTop:s}=tn(t.nodes,e),i=document.createElementNS(qt,"rect");return ft(i,{x:n+"",y:s+"",rx:r.borderRadius,ry:r.borderRadius,width:r.width,height:r.height,fill:r.backgroundColor,stroke:r.borderColor,"stroke-width":r.borderWidth}),i}function L0(t,e,r=!1){const n=getComputedStyle(e),{offsetLeft:s,offsetTop:i}=tn(t.nodes,e),a=document.createElementNS(qt,"rect");ft(a,{x:s+"",y:i+"",rx:n.borderRadius,ry:n.borderRadius,width:n.width,height:n.height,fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth});const o=document.createElementNS(qt,"g");o.appendChild(a);let l;return r?l=bm(e,n,s,i):l=vm(e,n,s,i),o.appendChild(l),o}function wm(t,e){const r=getComputedStyle(e),{offsetLeft:n,offsetTop:s}=tn(t.nodes,e),i=document.createElementNS(qt,"a"),a=document.createElementNS(qt,"text");return ft(a,{x:n+"",y:s+parseInt(r.fontSize)+"","text-anchor":"start","font-family":r.fontFamily,"font-size":`${r.fontSize}`,"font-weight":`${r.fontWeight}`,fill:`${r.color}`}),a.innerHTML=e.textContent,i.appendChild(a),i.setAttribute("href",e.href),i}function xm(t,e){const r=getComputedStyle(e),{offsetLeft:n,offsetTop:s}=tn(t.nodes,e),i=document.createElementNS(qt,"image");return ft(i,{x:n+"",y:s+"",width:r.width+"",height:r.height+"",href:e.src}),i}const z0=100,km='',Sm=(t,e=!1)=>{var r,n,s;const i=t.nodes,a=i.offsetHeight+z0*2,o=i.offsetWidth+z0*2,l=mm(a+"px",o+"px"),c=document.createElementNS(qt,"svg"),d=document.createElementNS(qt,"rect");ft(d,{x:"0",y:"0",width:`${o}`,height:`${a}`,fill:t.theme.cssVar["--bgcolor"]}),l.appendChild(d),i.querySelectorAll(".subLines").forEach(v=>{const x=v.cloneNode(!0),{offsetLeft:y,offsetTop:M}=tn(i,v.parentElement);x.setAttribute("x",`${y}`),x.setAttribute("y",`${M}`),c.appendChild(x)});const f=(r=i.querySelector(".lines"))==null?void 0:r.cloneNode(!0);f&&c.appendChild(f);const p=(n=i.querySelector(".topiclinks"))==null?void 0:n.cloneNode(!0);p&&c.appendChild(p);const b=(s=i.querySelector(".summary"))==null?void 0:s.cloneNode(!0);return b&&c.appendChild(b),i.querySelectorAll("me-tpc").forEach(v=>{v.nodeObj.dangerouslySetInnerHTML?c.appendChild(L0(t,v,!e)):(c.appendChild(ym(t,v)),c.appendChild(L0(t,v.text,!e)))}),i.querySelectorAll(".tags > span").forEach(v=>{c.appendChild(L0(t,v))}),i.querySelectorAll(".icons > span").forEach(v=>{c.appendChild(L0(t,v))}),i.querySelectorAll(".hyper-link").forEach(v=>{c.appendChild(wm(t,v))}),i.querySelectorAll("img").forEach(v=>{c.appendChild(xm(t,v))}),ft(c,{x:z0+"",y:z0+"",overflow:"visible"}),l.appendChild(c),l},Tm=(t,e)=>(e&&t.insertAdjacentHTML("afterbegin",""),km+t.outerHTML);function Am(t){return new Promise((e,r)=>{const n=new FileReader;n.onload=s=>{e(s.target.result)},n.onerror=s=>{r(s)},n.readAsDataURL(t)})}const Em=function(t=!1,e){const r=Sm(this,t),n=Tm(r,e);return new Blob([n],{type:"image/svg+xml"})},Cm=async function(t=!1,e){const r=this.exportSvg(t,e),n=await Am(r);return new Promise((s,i)=>{const a=new Image;a.setAttribute("crossOrigin","anonymous"),a.onload=()=>{const o=document.createElement("canvas");o.width=a.width,o.height=a.height,o.getContext("2d").drawImage(a,0,0),o.toBlob(s,"image/png",1)},a.src=n,a.onerror=i})},Mm=Object.freeze(Object.defineProperty({__proto__:null,exportPng:Cm,exportSvg:Em},Symbol.toStringTag,{value:"Module"}));function Nm(t,e){return async function(...r){const n=this.before[e];n&&!await n.apply(this,r)||t.apply(this,r)}}const Cl=Object.keys(Xu),e1={};for(let t=0;te()),this.el&&(this.el.innerHTML=""),this.el=void 0,this.nodeData=void 0,this.arrows=void 0,this.summaries=void 0,this.currentArrow=void 0,this.currentNodes=void 0,this.currentSummary=void 0,this.waitCopy=void 0,this.theme=void 0,this.direction=void 0,this.bus=void 0,this.container=void 0,this.map=void 0,this.lines=void 0,this.linkController=void 0,this.linkSvgGroup=void 0,this.P2=void 0,this.P3=void 0,this.line1=void 0,this.line2=void 0,this.nodes=void 0,(t=this.selection)==null||t.destroy(),this.selection=void 0}};function Rm({pT:t,pL:e,pW:r,pH:n,cT:s,cL:i,cW:a,cH:o,direction:l,containerHeight:c}){let d=e+r/2;const f=t+n/2;let p;l===sr.LHS?p=i+a:p=i;const b=s+o/2,v=(1-Math.abs(b-f)/c)*.25*(r/2);return l===sr.LHS?d=d-r/10-v:d=d+r/10+v,`M ${d} ${f} Q ${d} ${b} ${p} ${b}`}function Im({pT:t,pL:e,pW:r,pH:n,cT:s,cL:i,cW:a,cH:o,direction:l,isFirst:c}){const d=parseInt(this.container.style.getPropertyValue("--node-gap-x"));let f=0,p=0;c?f=t+n/2:f=t+n;const b=s+o;let v=0,x=0,y=0;const M=Math.abs(f-b)/300*d;return l===sr.LHS?(y=e,v=y+d,x=y-d,p=i+d,`M ${v} ${f} C ${y} ${f} ${y+M} ${b} ${x} ${b} H ${p}`):(y=e+r,v=y-d,x=y+d,p=i+a-d,`M ${v} ${f} C ${y} ${f} ${y-M} ${b} ${x} ${b} H ${p}`)}const _m="5.1.1";function Om(t){return{x:0,y:0,moved:!1,mousedown:!1,onMove(e,r){this.mousedown&&(this.moved=!0,t.move(e,r))},clear(){this.mousedown=!1}}}const Wn=document;function vt({el:t,direction:e,locale:r,draggable:n,editable:s,contextMenu:i,toolBar:a,keypress:o,mouseSelectionButton:l,selectionContainer:c,before:d,newTopicName:f,allowUndo:p,generateMainBranch:b,generateSubBranch:v,overflowHidden:x,theme:y,alignment:M,scaleSensitivity:k,scaleMax:T,scaleMin:N,handleWheel:I,markdown:O,imageProxy:z}){let W=null;const U=Object.prototype.toString.call(t);if(U==="[object HTMLDivElement]"?W=t:U==="[object String]"&&(W=document.querySelector(t)),!W)throw new Error("MindElixir: el is not a valid element");W.style.position="relative",W.innerHTML="",this.el=W,this.disposable=[],this.before=d||{},this.locale=r||"en",this.newTopicName=f||"New Node",this.contextMenu=i??!0,this.toolBar=a??!0,this.keypress=o??!0,this.mouseSelectionButton=l??0,this.direction=e??1,this.draggable=n??!0,this.editable=s??!0,this.allowUndo=p??!0,this.scaleSensitivity=k??.1,this.scaleMax=T??1.4,this.scaleMin=N??.2,this.generateMainBranch=b||Rm,this.generateSubBranch=v||Im,this.overflowHidden=x??!1,this.alignment=M??"root",this.handleWheel=I??!0,this.markdown=O||void 0,this.imageProxy=z||void 0,this.currentNodes=[],this.currentArrow=null,this.scaleVal=1,this.tempDirection=null,this.dragMoveHelper=Om(this),this.bus=pp(),this.container=Wn.createElement("div"),this.selectionContainer=c||this.container,this.container.className="map-container";const he=window.matchMedia("(prefers-color-scheme: dark)");this.theme=y||(he.matches?qa:Ha);const ge=Wn.createElement("div");ge.className="map-canvas",this.map=ge,this.container.setAttribute("tabindex","0"),this.container.appendChild(this.map),this.el.appendChild(this.container),this.nodes=Wn.createElement("me-nodes"),this.lines=Jn("lines"),this.summarySvg=Jn("summary"),this.linkController=Jn("linkcontroller"),this.P2=Wn.createElement("div"),this.P3=Wn.createElement("div"),this.P2.className=this.P3.className="circle",this.P2.style.display=this.P3.style.display="none",this.line1=fl(),this.line2=fl(),this.linkController.appendChild(this.line1),this.linkController.appendChild(this.line2),this.linkSvgGroup=Jn("topiclinks"),this.map.appendChild(this.nodes),this.overflowHidden?this.container.style.overflow="hidden":this.disposable.push(fp(this))}vt.prototype=Dm;Object.defineProperty(vt.prototype,"currentNode",{get(){return this.currentNodes[this.currentNodes.length-1]},enumerable:!0});vt.LEFT=0;vt.RIGHT=1;vt.SIDE=2;vt.THEME=Ha;vt.DARK_THEME=qa;vt.version=_m;vt.E=$u;vt.new=t=>({nodeData:{id:gn(),topic:t||"new topic",children:[]}});function t1(t,e){return function(){return t.apply(e,arguments)}}const{toString:Lm}=Object.prototype,{getPrototypeOf:Ja}=Object,{iterator:js,toStringTag:r1}=Symbol,Us=(t=>e=>{const r=Lm.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),ir=t=>(t=t.toLowerCase(),e=>Us(e)===t),Vs=t=>e=>typeof e===t,{isArray:Bn}=Array,p0=Vs("undefined");function w0(t){return t!==null&&!p0(t)&&t.constructor!==null&&!p0(t.constructor)&&Ot(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const n1=ir("ArrayBuffer");function zm(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&n1(t.buffer),e}const Fm=Vs("string"),Ot=Vs("function"),s1=Vs("number"),x0=t=>t!==null&&typeof t=="object",$m=t=>t===!0||t===!1,es=t=>{if(Us(t)!=="object")return!1;const e=Ja(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(r1 in t)&&!(js in t)},Bm=t=>{if(!x0(t)||w0(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},Pm=ir("Date"),Hm=ir("File"),qm=ir("Blob"),jm=ir("FileList"),Um=t=>x0(t)&&Ot(t.pipe),Vm=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||Ot(t.append)&&((e=Us(t))==="formdata"||e==="object"&&Ot(t.toString)&&t.toString()==="[object FormData]"))},Wm=ir("URLSearchParams"),[Gm,Km,Ym,Xm]=["ReadableStream","Request","Response","Headers"].map(ir),Jm=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function k0(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t>"u")return;let n,s;if(typeof t!="object"&&(t=[t]),Bn(t))for(n=0,s=t.length;n0;)if(s=r[n],e===s.toLowerCase())return s;return null}const dn=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),a1=t=>!p0(t)&&t!==dn;function ta(){const{caseless:t}=a1(this)&&this||{},e={},r=(n,s)=>{const i=t&&i1(e,s)||s;es(e[i])&&es(n)?e[i]=ta(e[i],n):es(n)?e[i]=ta({},n):Bn(n)?e[i]=n.slice():e[i]=n};for(let n=0,s=arguments.length;n(k0(e,(s,i)=>{r&&Ot(s)?t[i]=t1(s,r):t[i]=s},{allOwnKeys:n}),t),Qm=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),e2=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),r&&Object.assign(t.prototype,r)},t2=(t,e,r,n)=>{let s,i,a;const o={};if(e=e||{},t==null)return e;do{for(s=Object.getOwnPropertyNames(t),i=s.length;i-- >0;)a=s[i],(!n||n(a,t,e))&&!o[a]&&(e[a]=t[a],o[a]=!0);t=r!==!1&&Ja(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},r2=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return n!==-1&&n===r},n2=t=>{if(!t)return null;if(Bn(t))return t;let e=t.length;if(!s1(e))return null;const r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},s2=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Ja(Uint8Array)),i2=(t,e)=>{const n=(t&&t[js]).call(t);let s;for(;(s=n.next())&&!s.done;){const i=s.value;e.call(t,i[0],i[1])}},a2=(t,e)=>{let r;const n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},o2=ir("HTMLFormElement"),l2=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,s){return n.toUpperCase()+s}),Ml=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),c2=ir("RegExp"),o1=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};k0(r,(s,i)=>{let a;(a=e(s,i,t))!==!1&&(n[i]=a||s)}),Object.defineProperties(t,n)},u2=t=>{o1(t,(e,r)=>{if(Ot(t)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=t[r];if(Ot(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},d2=(t,e)=>{const r={},n=s=>{s.forEach(i=>{r[i]=!0})};return Bn(t)?n(t):n(String(t).split(e)),r},h2=()=>{},f2=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function p2(t){return!!(t&&Ot(t.append)&&t[r1]==="FormData"&&t[js])}const m2=t=>{const e=new Array(10),r=(n,s)=>{if(x0(n)){if(e.indexOf(n)>=0)return;if(w0(n))return n;if(!("toJSON"in n)){e[s]=n;const i=Bn(n)?[]:{};return k0(n,(a,o)=>{const l=r(a,s+1);!p0(l)&&(i[o]=l)}),e[s]=void 0,i}}return n};return r(t,0)},g2=ir("AsyncFunction"),v2=t=>t&&(x0(t)||Ot(t))&&Ot(t.then)&&Ot(t.catch),l1=((t,e)=>t?setImmediate:e?((r,n)=>(dn.addEventListener("message",({source:s,data:i})=>{s===dn&&i===r&&n.length&&n.shift()()},!1),s=>{n.push(s),dn.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",Ot(dn.postMessage)),b2=typeof queueMicrotask<"u"?queueMicrotask.bind(dn):typeof process<"u"&&process.nextTick||l1,y2=t=>t!=null&&Ot(t[js]),B={isArray:Bn,isArrayBuffer:n1,isBuffer:w0,isFormData:Vm,isArrayBufferView:zm,isString:Fm,isNumber:s1,isBoolean:$m,isObject:x0,isPlainObject:es,isEmptyObject:Bm,isReadableStream:Gm,isRequest:Km,isResponse:Ym,isHeaders:Xm,isUndefined:p0,isDate:Pm,isFile:Hm,isBlob:qm,isRegExp:c2,isFunction:Ot,isStream:Um,isURLSearchParams:Wm,isTypedArray:s2,isFileList:jm,forEach:k0,merge:ta,extend:Zm,trim:Jm,stripBOM:Qm,inherits:e2,toFlatObject:t2,kindOf:Us,kindOfTest:ir,endsWith:r2,toArray:n2,forEachEntry:i2,matchAll:a2,isHTMLForm:o2,hasOwnProperty:Ml,hasOwnProp:Ml,reduceDescriptors:o1,freezeMethods:u2,toObjectSet:d2,toCamelCase:l2,noop:h2,toFiniteNumber:f2,findKey:i1,global:dn,isContextDefined:a1,isSpecCompliantForm:p2,toJSONObject:m2,isAsyncFn:g2,isThenable:v2,setImmediate:l1,asap:b2,isIterable:y2};function Ne(t,e,r,n,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),s&&(this.response=s,this.status=s.status?s.status:null)}B.inherits(Ne,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:B.toJSONObject(this.config),code:this.code,status:this.status}}});const c1=Ne.prototype,u1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{u1[t]={value:t}});Object.defineProperties(Ne,u1);Object.defineProperty(c1,"isAxiosError",{value:!0});Ne.from=(t,e,r,n,s,i)=>{const a=Object.create(c1);return B.toFlatObject(t,a,function(l){return l!==Error.prototype},o=>o!=="isAxiosError"),Ne.call(a,t.message,e,r,n,s),a.cause=t,a.name=t.name,i&&Object.assign(a,i),a};const w2=null;function ra(t){return B.isPlainObject(t)||B.isArray(t)}function d1(t){return B.endsWith(t,"[]")?t.slice(0,-2):t}function Nl(t,e,r){return t?t.concat(e).map(function(s,i){return s=d1(s),!r&&i?"["+s+"]":s}).join(r?".":""):e}function x2(t){return B.isArray(t)&&!t.some(ra)}const k2=B.toFlatObject(B,{},null,function(e){return/^is[A-Z]/.test(e)});function Ws(t,e,r){if(!B.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,r=B.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(x,y){return!B.isUndefined(y[x])});const n=r.metaTokens,s=r.visitor||d,i=r.dots,a=r.indexes,l=(r.Blob||typeof Blob<"u"&&Blob)&&B.isSpecCompliantForm(e);if(!B.isFunction(s))throw new TypeError("visitor must be a function");function c(v){if(v===null)return"";if(B.isDate(v))return v.toISOString();if(B.isBoolean(v))return v.toString();if(!l&&B.isBlob(v))throw new Ne("Blob is not supported. Use a Buffer instead.");return B.isArrayBuffer(v)||B.isTypedArray(v)?l&&typeof Blob=="function"?new Blob([v]):Buffer.from(v):v}function d(v,x,y){let M=v;if(v&&!y&&typeof v=="object"){if(B.endsWith(x,"{}"))x=n?x:x.slice(0,-2),v=JSON.stringify(v);else if(B.isArray(v)&&x2(v)||(B.isFileList(v)||B.endsWith(x,"[]"))&&(M=B.toArray(v)))return x=d1(x),M.forEach(function(T,N){!(B.isUndefined(T)||T===null)&&e.append(a===!0?Nl([x],N,i):a===null?x:x+"[]",c(T))}),!1}return ra(v)?!0:(e.append(Nl(y,x,i),c(v)),!1)}const f=[],p=Object.assign(k2,{defaultVisitor:d,convertValue:c,isVisitable:ra});function b(v,x){if(!B.isUndefined(v)){if(f.indexOf(v)!==-1)throw Error("Circular reference detected in "+x.join("."));f.push(v),B.forEach(v,function(M,k){(!(B.isUndefined(M)||M===null)&&s.call(e,M,B.isString(k)?k.trim():k,x,p))===!0&&b(M,x?x.concat(k):[k])}),f.pop()}}if(!B.isObject(t))throw new TypeError("data must be an object");return b(t),e}function Dl(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(n){return e[n]})}function Za(t,e){this._pairs=[],t&&Ws(t,this,e)}const h1=Za.prototype;h1.append=function(e,r){this._pairs.push([e,r])};h1.toString=function(e){const r=e?function(n){return e.call(this,n,Dl)}:Dl;return this._pairs.map(function(s){return r(s[0])+"="+r(s[1])},"").join("&")};function S2(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function f1(t,e,r){if(!e)return t;const n=r&&r.encode||S2;B.isFunction(r)&&(r={serialize:r});const s=r&&r.serialize;let i;if(s?i=s(e,r):i=B.isURLSearchParams(e)?e.toString():new Za(e,r).toString(n),i){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+i}return t}class T2{constructor(){this.handlers=[]}use(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){B.forEach(this.handlers,function(n){n!==null&&e(n)})}}const Rl=T2,p1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},A2=typeof URLSearchParams<"u"?URLSearchParams:Za,E2=typeof FormData<"u"?FormData:null,C2=typeof Blob<"u"?Blob:null,M2={isBrowser:!0,classes:{URLSearchParams:A2,FormData:E2,Blob:C2},protocols:["http","https","file","blob","url","data"]},Qa=typeof window<"u"&&typeof document<"u",na=typeof navigator=="object"&&navigator||void 0,N2=Qa&&(!na||["ReactNative","NativeScript","NS"].indexOf(na.product)<0),D2=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),R2=Qa&&window.location.href||"http://localhost",I2=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Qa,hasStandardBrowserEnv:N2,hasStandardBrowserWebWorkerEnv:D2,navigator:na,origin:R2},Symbol.toStringTag,{value:"Module"})),xt={...I2,...M2};function _2(t,e){return Ws(t,new xt.classes.URLSearchParams,{visitor:function(r,n,s,i){return xt.isNode&&B.isBuffer(r)?(this.append(n,r.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...e})}function O2(t){return B.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function L2(t){const e={},r=Object.keys(t);let n;const s=r.length;let i;for(n=0;n=r.length;return a=!a&&B.isArray(s)?s.length:a,l?(B.hasOwnProp(s,a)?s[a]=[s[a],n]:s[a]=n,!o):((!s[a]||!B.isObject(s[a]))&&(s[a]=[]),e(r,n,s[a],i)&&B.isArray(s[a])&&(s[a]=L2(s[a])),!o)}if(B.isFormData(t)&&B.isFunction(t.entries)){const r={};return B.forEachEntry(t,(n,s)=>{e(O2(n),s,r,0)}),r}return null}function z2(t,e,r){if(B.isString(t))try{return(e||JSON.parse)(t),B.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}const eo={transitional:p1,adapter:["xhr","http","fetch"],transformRequest:[function(e,r){const n=r.getContentType()||"",s=n.indexOf("application/json")>-1,i=B.isObject(e);if(i&&B.isHTMLForm(e)&&(e=new FormData(e)),B.isFormData(e))return s?JSON.stringify(m1(e)):e;if(B.isArrayBuffer(e)||B.isBuffer(e)||B.isStream(e)||B.isFile(e)||B.isBlob(e)||B.isReadableStream(e))return e;if(B.isArrayBufferView(e))return e.buffer;if(B.isURLSearchParams(e))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return _2(e,this.formSerializer).toString();if((o=B.isFileList(e))||n.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Ws(o?{"files[]":e}:e,l&&new l,this.formSerializer)}}return i||s?(r.setContentType("application/json",!1),z2(e)):e}],transformResponse:[function(e){const r=this.transitional||eo.transitional,n=r&&r.forcedJSONParsing,s=this.responseType==="json";if(B.isResponse(e)||B.isReadableStream(e))return e;if(e&&B.isString(e)&&(n&&!this.responseType||s)){const a=!(r&&r.silentJSONParsing)&&s;try{return JSON.parse(e)}catch(o){if(a)throw o.name==="SyntaxError"?Ne.from(o,Ne.ERR_BAD_RESPONSE,this,null,this.response):o}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:xt.classes.FormData,Blob:xt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};B.forEach(["delete","get","head","post","put","patch"],t=>{eo.headers[t]={}});const to=eo,F2=B.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),$2=t=>{const e={};let r,n,s;return t&&t.split(` +`).forEach(function(a){s=a.indexOf(":"),r=a.substring(0,s).trim().toLowerCase(),n=a.substring(s+1).trim(),!(!r||e[r]&&F2[r])&&(r==="set-cookie"?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+", "+n:n)}),e},Il=Symbol("internals");function Gn(t){return t&&String(t).trim().toLowerCase()}function ts(t){return t===!1||t==null?t:B.isArray(t)?t.map(ts):String(t)}function B2(t){const e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}const P2=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function yi(t,e,r,n,s){if(B.isFunction(n))return n.call(this,e,r);if(s&&(e=r),!!B.isString(e)){if(B.isString(n))return e.indexOf(n)!==-1;if(B.isRegExp(n))return n.test(e)}}function H2(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,r,n)=>r.toUpperCase()+n)}function q2(t,e){const r=B.toCamelCase(" "+e);["get","set","has"].forEach(n=>{Object.defineProperty(t,n+r,{value:function(s,i,a){return this[n].call(this,e,s,i,a)},configurable:!0})})}class Gs{constructor(e){e&&this.set(e)}set(e,r,n){const s=this;function i(o,l,c){const d=Gn(l);if(!d)throw new Error("header name must be a non-empty string");const f=B.findKey(s,d);(!f||s[f]===void 0||c===!0||c===void 0&&s[f]!==!1)&&(s[f||l]=ts(o))}const a=(o,l)=>B.forEach(o,(c,d)=>i(c,d,l));if(B.isPlainObject(e)||e instanceof this.constructor)a(e,r);else if(B.isString(e)&&(e=e.trim())&&!P2(e))a($2(e),r);else if(B.isObject(e)&&B.isIterable(e)){let o={},l,c;for(const d of e){if(!B.isArray(d))throw TypeError("Object iterator must return a key-value pair");o[c=d[0]]=(l=o[c])?B.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}a(o,r)}else e!=null&&i(r,e,n);return this}get(e,r){if(e=Gn(e),e){const n=B.findKey(this,e);if(n){const s=this[n];if(!r)return s;if(r===!0)return B2(s);if(B.isFunction(r))return r.call(this,s,n);if(B.isRegExp(r))return r.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,r){if(e=Gn(e),e){const n=B.findKey(this,e);return!!(n&&this[n]!==void 0&&(!r||yi(this,this[n],n,r)))}return!1}delete(e,r){const n=this;let s=!1;function i(a){if(a=Gn(a),a){const o=B.findKey(n,a);o&&(!r||yi(n,n[o],o,r))&&(delete n[o],s=!0)}}return B.isArray(e)?e.forEach(i):i(e),s}clear(e){const r=Object.keys(this);let n=r.length,s=!1;for(;n--;){const i=r[n];(!e||yi(this,this[i],i,e,!0))&&(delete this[i],s=!0)}return s}normalize(e){const r=this,n={};return B.forEach(this,(s,i)=>{const a=B.findKey(n,i);if(a){r[a]=ts(s),delete r[i];return}const o=e?H2(i):String(i).trim();o!==i&&delete r[i],r[o]=ts(s),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const r=Object.create(null);return B.forEach(this,(n,s)=>{n!=null&&n!==!1&&(r[s]=e&&B.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,r])=>e+": "+r).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...r){const n=new this(e);return r.forEach(s=>n.set(s)),n}static accessor(e){const n=(this[Il]=this[Il]={accessors:{}}).accessors,s=this.prototype;function i(a){const o=Gn(a);n[o]||(q2(s,a),n[o]=!0)}return B.isArray(e)?e.forEach(i):i(e),this}}Gs.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);B.reduceDescriptors(Gs.prototype,({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(n){this[r]=n}}});B.freezeMethods(Gs);const nr=Gs;function wi(t,e){const r=this||to,n=e||r,s=nr.from(n.headers);let i=n.data;return B.forEach(t,function(o){i=o.call(r,i,s.normalize(),e?e.status:void 0)}),s.normalize(),i}function g1(t){return!!(t&&t.__CANCEL__)}function Pn(t,e,r){Ne.call(this,t??"canceled",Ne.ERR_CANCELED,e,r),this.name="CanceledError"}B.inherits(Pn,Ne,{__CANCEL__:!0});function v1(t,e,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?t(r):e(new Ne("Request failed with status code "+r.status,[Ne.ERR_BAD_REQUEST,Ne.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function j2(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function U2(t,e){t=t||10;const r=new Array(t),n=new Array(t);let s=0,i=0,a;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),d=n[i];a||(a=c),r[s]=l,n[s]=c;let f=i,p=0;for(;f!==s;)p+=r[f++],f=f%t;if(s=(s+1)%t,s===i&&(i=(i+1)%t),c-a{r=d,s=null,i&&(clearTimeout(i),i=null),t(...c)};return[(...c)=>{const d=Date.now(),f=d-r;f>=n?a(c,d):(s=c,i||(i=setTimeout(()=>{i=null,a(s)},n-f)))},()=>s&&a(s)]}const ws=(t,e,r=3)=>{let n=0;const s=U2(50,250);return V2(i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,l=a-n,c=s(l),d=a<=o;n=a;const f={loaded:a,total:o,progress:o?a/o:void 0,bytes:l,rate:c||void 0,estimated:c&&o&&d?(o-a)/c:void 0,event:i,lengthComputable:o!=null,[e?"download":"upload"]:!0};t(f)},r)},_l=(t,e)=>{const r=t!=null;return[n=>e[0]({lengthComputable:r,total:t,loaded:n}),e[1]]},Ol=t=>(...e)=>B.asap(()=>t(...e)),W2=xt.hasStandardBrowserEnv?((t,e)=>r=>(r=new URL(r,xt.origin),t.protocol===r.protocol&&t.host===r.host&&(e||t.port===r.port)))(new URL(xt.origin),xt.navigator&&/(msie|trident)/i.test(xt.navigator.userAgent)):()=>!0,G2=xt.hasStandardBrowserEnv?{write(t,e,r,n,s,i){const a=[t+"="+encodeURIComponent(e)];B.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),B.isString(n)&&a.push("path="+n),B.isString(s)&&a.push("domain="+s),i===!0&&a.push("secure"),document.cookie=a.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function K2(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Y2(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function b1(t,e,r){let n=!K2(e);return t&&(n||r==!1)?Y2(t,e):e}const Ll=t=>t instanceof nr?{...t}:t;function pn(t,e){e=e||{};const r={};function n(c,d,f,p){return B.isPlainObject(c)&&B.isPlainObject(d)?B.merge.call({caseless:p},c,d):B.isPlainObject(d)?B.merge({},d):B.isArray(d)?d.slice():d}function s(c,d,f,p){if(B.isUndefined(d)){if(!B.isUndefined(c))return n(void 0,c,f,p)}else return n(c,d,f,p)}function i(c,d){if(!B.isUndefined(d))return n(void 0,d)}function a(c,d){if(B.isUndefined(d)){if(!B.isUndefined(c))return n(void 0,c)}else return n(void 0,d)}function o(c,d,f){if(f in e)return n(c,d);if(f in t)return n(void 0,c)}const l={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:o,headers:(c,d,f)=>s(Ll(c),Ll(d),f,!0)};return B.forEach(Object.keys({...t,...e}),function(d){const f=l[d]||s,p=f(t[d],e[d],d);B.isUndefined(p)&&f!==o||(r[d]=p)}),r}const y1=t=>{const e=pn({},t);let{data:r,withXSRFToken:n,xsrfHeaderName:s,xsrfCookieName:i,headers:a,auth:o}=e;e.headers=a=nr.from(a),e.url=f1(b1(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),o&&a.set("Authorization","Basic "+btoa((o.username||"")+":"+(o.password?unescape(encodeURIComponent(o.password)):"")));let l;if(B.isFormData(r)){if(xt.hasStandardBrowserEnv||xt.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[c,...d]=l?l.split(";").map(f=>f.trim()).filter(Boolean):[];a.setContentType([c||"multipart/form-data",...d].join("; "))}}if(xt.hasStandardBrowserEnv&&(n&&B.isFunction(n)&&(n=n(e)),n||n!==!1&&W2(e.url))){const c=s&&i&&G2.read(i);c&&a.set(s,c)}return e},X2=typeof XMLHttpRequest<"u",J2=X2&&function(t){return new Promise(function(r,n){const s=y1(t);let i=s.data;const a=nr.from(s.headers).normalize();let{responseType:o,onUploadProgress:l,onDownloadProgress:c}=s,d,f,p,b,v;function x(){b&&b(),v&&v(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let y=new XMLHttpRequest;y.open(s.method.toUpperCase(),s.url,!0),y.timeout=s.timeout;function M(){if(!y)return;const T=nr.from("getAllResponseHeaders"in y&&y.getAllResponseHeaders()),I={data:!o||o==="text"||o==="json"?y.responseText:y.response,status:y.status,statusText:y.statusText,headers:T,config:t,request:y};v1(function(z){r(z),x()},function(z){n(z),x()},I),y=null}"onloadend"in y?y.onloadend=M:y.onreadystatechange=function(){!y||y.readyState!==4||y.status===0&&!(y.responseURL&&y.responseURL.indexOf("file:")===0)||setTimeout(M)},y.onabort=function(){y&&(n(new Ne("Request aborted",Ne.ECONNABORTED,t,y)),y=null)},y.onerror=function(){n(new Ne("Network Error",Ne.ERR_NETWORK,t,y)),y=null},y.ontimeout=function(){let N=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const I=s.transitional||p1;s.timeoutErrorMessage&&(N=s.timeoutErrorMessage),n(new Ne(N,I.clarifyTimeoutError?Ne.ETIMEDOUT:Ne.ECONNABORTED,t,y)),y=null},i===void 0&&a.setContentType(null),"setRequestHeader"in y&&B.forEach(a.toJSON(),function(N,I){y.setRequestHeader(I,N)}),B.isUndefined(s.withCredentials)||(y.withCredentials=!!s.withCredentials),o&&o!=="json"&&(y.responseType=s.responseType),c&&([p,v]=ws(c,!0),y.addEventListener("progress",p)),l&&y.upload&&([f,b]=ws(l),y.upload.addEventListener("progress",f),y.upload.addEventListener("loadend",b)),(s.cancelToken||s.signal)&&(d=T=>{y&&(n(!T||T.type?new Pn(null,t,y):T),y.abort(),y=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const k=j2(s.url);if(k&&xt.protocols.indexOf(k)===-1){n(new Ne("Unsupported protocol "+k+":",Ne.ERR_BAD_REQUEST,t));return}y.send(i||null)})},Z2=(t,e)=>{const{length:r}=t=t?t.filter(Boolean):[];if(e||r){let n=new AbortController,s;const i=function(c){if(!s){s=!0,o();const d=c instanceof Error?c:this.reason;n.abort(d instanceof Ne?d:new Pn(d instanceof Error?d.message:d))}};let a=e&&setTimeout(()=>{a=null,i(new Ne(`timeout ${e} of ms exceeded`,Ne.ETIMEDOUT))},e);const o=()=>{t&&(a&&clearTimeout(a),a=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(i):c.removeEventListener("abort",i)}),t=null)};t.forEach(c=>c.addEventListener("abort",i));const{signal:l}=n;return l.unsubscribe=()=>B.asap(o),l}},Q2=Z2,e3=function*(t,e){let r=t.byteLength;if(!e||r{const s=t3(t,e);let i=0,a,o=l=>{a||(a=!0,n&&n(l))};return new ReadableStream({async pull(l){try{const{done:c,value:d}=await s.next();if(c){o(),l.close();return}let f=d.byteLength;if(r){let p=i+=f;r(p)}l.enqueue(new Uint8Array(d))}catch(c){throw o(c),c}},cancel(l){return o(l),s.return()}},{highWaterMark:2})},Ks=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",w1=Ks&&typeof ReadableStream=="function",n3=Ks&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),x1=(t,...e)=>{try{return!!t(...e)}catch{return!1}},s3=w1&&x1(()=>{let t=!1;const e=new Request(xt.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Fl=64*1024,sa=w1&&x1(()=>B.isReadableStream(new Response("").body)),xs={stream:sa&&(t=>t.body)};Ks&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!xs[e]&&(xs[e]=B.isFunction(t[e])?r=>r[e]():(r,n)=>{throw new Ne(`Response type '${e}' is not supported`,Ne.ERR_NOT_SUPPORT,n)})})})(new Response);const i3=async t=>{if(t==null)return 0;if(B.isBlob(t))return t.size;if(B.isSpecCompliantForm(t))return(await new Request(xt.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if(B.isArrayBufferView(t)||B.isArrayBuffer(t))return t.byteLength;if(B.isURLSearchParams(t)&&(t=t+""),B.isString(t))return(await n3(t)).byteLength},a3=async(t,e)=>{const r=B.toFiniteNumber(t.getContentLength());return r??i3(e)},o3=Ks&&(async t=>{let{url:e,method:r,data:n,signal:s,cancelToken:i,timeout:a,onDownloadProgress:o,onUploadProgress:l,responseType:c,headers:d,withCredentials:f="same-origin",fetchOptions:p}=y1(t);c=c?(c+"").toLowerCase():"text";let b=Q2([s,i&&i.toAbortSignal()],a),v;const x=b&&b.unsubscribe&&(()=>{b.unsubscribe()});let y;try{if(l&&s3&&r!=="get"&&r!=="head"&&(y=await a3(d,n))!==0){let I=new Request(e,{method:"POST",body:n,duplex:"half"}),O;if(B.isFormData(n)&&(O=I.headers.get("content-type"))&&d.setContentType(O),I.body){const[z,W]=_l(y,ws(Ol(l)));n=zl(I.body,Fl,z,W)}}B.isString(f)||(f=f?"include":"omit");const M="credentials"in Request.prototype;v=new Request(e,{...p,signal:b,method:r.toUpperCase(),headers:d.normalize().toJSON(),body:n,duplex:"half",credentials:M?f:void 0});let k=await fetch(v,p);const T=sa&&(c==="stream"||c==="response");if(sa&&(o||T&&x)){const I={};["status","statusText","headers"].forEach(U=>{I[U]=k[U]});const O=B.toFiniteNumber(k.headers.get("content-length")),[z,W]=o&&_l(O,ws(Ol(o),!0))||[];k=new Response(zl(k.body,Fl,z,()=>{W&&W(),x&&x()}),I)}c=c||"text";let N=await xs[B.findKey(xs,c)||"text"](k,t);return!T&&x&&x(),await new Promise((I,O)=>{v1(I,O,{data:N,headers:nr.from(k.headers),status:k.status,statusText:k.statusText,config:t,request:v})})}catch(M){throw x&&x(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new Ne("Network Error",Ne.ERR_NETWORK,t,v),{cause:M.cause||M}):Ne.from(M,M&&M.code,t,v)}}),ia={http:w2,xhr:J2,fetch:o3};B.forEach(ia,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const $l=t=>`- ${t}`,l3=t=>B.isFunction(t)||t===null||t===!1,k1={getAdapter:t=>{t=B.isArray(t)?t:[t];const{length:e}=t;let r,n;const s={};for(let i=0;i`adapter ${o} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=e?i.length>1?`since : +`+i.map($l).join(` +`):" "+$l(i[0]):"as no adapter specified";throw new Ne("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n},adapters:ia};function xi(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Pn(null,t)}function Bl(t){return xi(t),t.headers=nr.from(t.headers),t.data=wi.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),k1.getAdapter(t.adapter||to.adapter)(t).then(function(n){return xi(t),n.data=wi.call(t,t.transformResponse,n),n.headers=nr.from(n.headers),n},function(n){return g1(n)||(xi(t),n&&n.response&&(n.response.data=wi.call(t,t.transformResponse,n.response),n.response.headers=nr.from(n.response.headers))),Promise.reject(n)})}const S1="1.11.0",Ys={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Ys[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const Pl={};Ys.transitional=function(e,r,n){function s(i,a){return"[Axios v"+S1+"] Transitional option '"+i+"'"+a+(n?". "+n:"")}return(i,a,o)=>{if(e===!1)throw new Ne(s(a," has been removed"+(r?" in "+r:"")),Ne.ERR_DEPRECATED);return r&&!Pl[a]&&(Pl[a]=!0,console.warn(s(a," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(i,a,o):!0}};Ys.spelling=function(e){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function c3(t,e,r){if(typeof t!="object")throw new Ne("options must be an object",Ne.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let s=n.length;for(;s-- >0;){const i=n[s],a=e[i];if(a){const o=t[i],l=o===void 0||a(o,i,t);if(l!==!0)throw new Ne("option "+i+" must be "+l,Ne.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new Ne("Unknown option "+i,Ne.ERR_BAD_OPTION)}}const rs={assertOptions:c3,validators:Ys},or=rs.validators;class ks{constructor(e){this.defaults=e||{},this.interceptors={request:new Rl,response:new Rl}}async request(e,r){try{return await this._request(e,r)}catch(n){if(n instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const i=s.stack?s.stack.replace(/^.+\n/,""):"";try{n.stack?i&&!String(n.stack).endsWith(i.replace(/^.+\n.+\n/,""))&&(n.stack+=` +`+i):n.stack=i}catch{}}throw n}}_request(e,r){typeof e=="string"?(r=r||{},r.url=e):r=e||{},r=pn(this.defaults,r);const{transitional:n,paramsSerializer:s,headers:i}=r;n!==void 0&&rs.assertOptions(n,{silentJSONParsing:or.transitional(or.boolean),forcedJSONParsing:or.transitional(or.boolean),clarifyTimeoutError:or.transitional(or.boolean)},!1),s!=null&&(B.isFunction(s)?r.paramsSerializer={serialize:s}:rs.assertOptions(s,{encode:or.function,serialize:or.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),rs.assertOptions(r,{baseUrl:or.spelling("baseURL"),withXsrfToken:or.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let a=i&&B.merge(i.common,i[r.method]);i&&B.forEach(["delete","get","head","post","put","patch","common"],v=>{delete i[v]}),r.headers=nr.concat(a,i);const o=[];let l=!0;this.interceptors.request.forEach(function(x){typeof x.runWhen=="function"&&x.runWhen(r)===!1||(l=l&&x.synchronous,o.unshift(x.fulfilled,x.rejected))});const c=[];this.interceptors.response.forEach(function(x){c.push(x.fulfilled,x.rejected)});let d,f=0,p;if(!l){const v=[Bl.bind(this),void 0];for(v.unshift(...o),v.push(...c),p=v.length,d=Promise.resolve(r);f{if(!n._listeners)return;let i=n._listeners.length;for(;i-- >0;)n._listeners[i](s);n._listeners=null}),this.promise.then=s=>{let i;const a=new Promise(o=>{n.subscribe(o),i=o}).then(s);return a.cancel=function(){n.unsubscribe(i)},a},e(function(i,a,o){n.reason||(n.reason=new Pn(i,a,o),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const e=new AbortController,r=n=>{e.abort(n)};return this.subscribe(r),e.signal.unsubscribe=()=>this.unsubscribe(r),e.signal}static source(){let e;return{token:new ro(function(s){e=s}),cancel:e}}}const u3=ro;function d3(t){return function(r){return t.apply(null,r)}}function h3(t){return B.isObject(t)&&t.isAxiosError===!0}const aa={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(aa).forEach(([t,e])=>{aa[e]=t});const f3=aa;function T1(t){const e=new ns(t),r=t1(ns.prototype.request,e);return B.extend(r,ns.prototype,e,{allOwnKeys:!0}),B.extend(r,e,null,{allOwnKeys:!0}),r.create=function(s){return T1(pn(t,s))},r}const dt=T1(to);dt.Axios=ns;dt.CanceledError=Pn;dt.CancelToken=u3;dt.isCancel=g1;dt.VERSION=S1;dt.toFormData=Ws;dt.AxiosError=Ne;dt.Cancel=dt.CanceledError;dt.all=function(e){return Promise.all(e)};dt.spread=d3;dt.isAxiosError=h3;dt.mergeConfig=pn;dt.AxiosHeaders=nr;dt.formToJSON=t=>m1(B.isHTMLForm(t)?new FormData(t):t);dt.getAdapter=k1.getAdapter;dt.HttpStatusCode=f3;dt.default=dt;const p3=dt,m3="http://127.0.0.1:8000/api",kn=p3.create({baseURL:m3,timeout:1e4,headers:{"Content-Type":"application/json"}}),lt={createMindmap:(t="思维导图",e=null)=>kn.post("/mindMaps",{title:t,data:e}),getMindmap:t=>kn.get(`/mindMaps/${t}`),getAllMindmaps:()=>kn.get("/mindmaps"),addNodes:(t,e)=>kn.post("/mindMaps/addNodes",{mindMapId:t,nodes:e}),updateNode:(t,e)=>kn.patch("/mindMaps/updateNode",{id:t,...e}),deleteNodes:t=>kn.delete("/mindMaps/deleteNodes",{data:{nodeIds:t}})};function no(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var vn=no();function A1(t){vn=t}var o0={exec:()=>null};function je(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:(s,i)=>{let a=typeof i=="string"?i:i.source;return a=a.replace(Mt.caret,"$1"),r=r.replace(s,a),n},getRegex:()=>new RegExp(r,e)};return n}var Mt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},g3=/^(?:[ \t]*(?:\n|$))+/,v3=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,b3=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,S0=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,y3=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,so=/(?:[*+-]|\d{1,9}[.)])/,E1=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,C1=je(E1).replace(/bull/g,so).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),w3=je(E1).replace(/bull/g,so).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),io=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,x3=/^[^\n]+/,ao=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,k3=je(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",ao).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),S3=je(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,so).getRegex(),Xs="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",oo=/|$))/,T3=je("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",oo).replace("tag",Xs).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),M1=je(io).replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Xs).getRegex(),A3=je(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",M1).getRegex(),lo={blockquote:A3,code:v3,def:k3,fences:b3,heading:y3,hr:S0,html:T3,lheading:C1,list:S3,newline:g3,paragraph:M1,table:o0,text:x3},Hl=je("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Xs).getRegex(),E3={...lo,lheading:w3,table:Hl,paragraph:je(io).replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Hl).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Xs).getRegex()},C3={...lo,html:je(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",oo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:o0,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:je(io).replace("hr",S0).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",C1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},M3=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,N3=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,N1=/^( {2,}|\\)\n(?!\s*$)/,D3=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,I1=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,L3=je(I1,"u").replace(/punct/g,Js).getRegex(),z3=je(I1,"u").replace(/punct/g,R1).getRegex(),_1="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",F3=je(_1,"gu").replace(/notPunctSpace/g,D1).replace(/punctSpace/g,co).replace(/punct/g,Js).getRegex(),$3=je(_1,"gu").replace(/notPunctSpace/g,_3).replace(/punctSpace/g,I3).replace(/punct/g,R1).getRegex(),B3=je("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,D1).replace(/punctSpace/g,co).replace(/punct/g,Js).getRegex(),P3=je(/\\(punct)/,"gu").replace(/punct/g,Js).getRegex(),H3=je(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),q3=je(oo).replace("(?:-->|$)","-->").getRegex(),j3=je("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",q3).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ss=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,U3=je(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Ss).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),O1=je(/^!?\[(label)\]\[(ref)\]/).replace("label",Ss).replace("ref",ao).getRegex(),L1=je(/^!?\[(ref)\](?:\[\])?/).replace("ref",ao).getRegex(),V3=je("reflink|nolink(?!\\()","g").replace("reflink",O1).replace("nolink",L1).getRegex(),uo={_backpedal:o0,anyPunctuation:P3,autolink:H3,blockSkip:O3,br:N1,code:N3,del:o0,emStrongLDelim:L3,emStrongRDelimAst:F3,emStrongRDelimUnd:B3,escape:M3,link:U3,nolink:L1,punctuation:R3,reflink:O1,reflinkSearch:V3,tag:j3,text:D3,url:o0},W3={...uo,link:je(/^!?\[(label)\]\((.*?)\)/).replace("label",Ss).getRegex(),reflink:je(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ss).getRegex()},oa={...uo,emStrongRDelimAst:$3,emStrongLDelim:z3,url:je(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ql=t=>K3[t];function lr(t,e){if(e){if(Mt.escapeTest.test(t))return t.replace(Mt.escapeReplace,ql)}else if(Mt.escapeTestNoEncode.test(t))return t.replace(Mt.escapeReplaceNoEncode,ql);return t}function jl(t){try{t=encodeURI(t).replace(Mt.percentDecode,"%")}catch{return null}return t}function Ul(t,e){var i;let r=t.replace(Mt.findPipe,(a,o,l)=>{let c=!1,d=o;for(;--d>=0&&l[d]==="\\";)c=!c;return c?"|":" |"}),n=r.split(Mt.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!((i=n.at(-1))!=null&&i.trim())&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function Vl(t,e,r,n,s){let i=e.href,a=e.title||null,o=t[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let l={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:i,title:a,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,l}function X3(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(` +`).map(i=>{let a=i.match(r.other.beginningSpace);if(a===null)return i;let[o]=a;return o.length>=s.length?i.slice(s.length):i}).join(` +`)}var Ts=class{constructor(t){Ge(this,"options");Ge(this,"rules");Ge(this,"lexer");this.options=t||vn}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Yn(r,` +`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let r=e[0],n=X3(r,e[3]||"",this.rules);return{type:"code",raw:r,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:n}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let r=e[2].trim();if(this.rules.other.endingHash.test(r)){let n=Yn(r,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(r=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:Yn(e[0],` +`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let r=Yn(e[0],` +`).split(` +`),n="",s="",i=[];for(;r.length>0;){let a=!1,o=[],l;for(l=0;l1,s={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let i=this.rules.other.listItemRegex(r),a=!1;for(;t;){let l=!1,c="",d="";if(!(e=i.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let f=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,M=>" ".repeat(3*M.length)),p=t.split(` +`,1)[0],b=!f.trim(),v=0;if(this.options.pedantic?(v=2,d=f.trimStart()):b?v=e[1].length+1:(v=e[2].search(this.rules.other.nonSpaceChar),v=v>4?1:v,d=f.slice(v),v+=e[1].length),b&&this.rules.other.blankLine.test(p)&&(c+=p+` +`,t=t.substring(p.length+1),l=!0),!l){let M=this.rules.other.nextBulletRegex(v),k=this.rules.other.hrRegex(v),T=this.rules.other.fencesBeginRegex(v),N=this.rules.other.headingBeginRegex(v),I=this.rules.other.htmlBeginRegex(v);for(;t;){let O=t.split(` +`,1)[0],z;if(p=O,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),z=p):z=p.replace(this.rules.other.tabCharGlobal," "),T.test(p)||N.test(p)||I.test(p)||M.test(p)||k.test(p))break;if(z.search(this.rules.other.nonSpaceChar)>=v||!p.trim())d+=` +`+z.slice(v);else{if(b||f.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||T.test(f)||N.test(f)||k.test(f))break;d+=` +`+p}!b&&!p.trim()&&(b=!0),c+=O+` +`,t=t.substring(O.length+1),f=z.slice(v)}}s.loose||(a?s.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(a=!0));let x=null,y;this.options.gfm&&(x=this.rules.other.listIsTask.exec(d),x&&(y=x[0]!=="[ ] ",d=d.replace(this.rules.other.listReplaceTask,""))),s.items.push({type:"list_item",raw:c,task:!!x,checked:y,loose:!1,text:d,tokens:[]}),s.raw+=c}let o=s.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;s.raw=s.raw.trimEnd();for(let l=0;lf.type==="space"),d=c.length>0&&c.some(f=>this.rules.other.anyLine.test(f.raw));s.loose=d}if(s.loose)for(let l=0;l({text:l,tokens:this.lexer.inline(l),header:!1,align:i.align[c]})));return i}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let r=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:r,tokens:this.lexer.inline(r)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let r=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let i=Yn(r.slice(0,-1),"\\");if((r.length-i.length)%2===0)return}else{let i=Y3(e[2],"()");if(i===-2)return;if(i>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+i;e[2]=e[2].substring(0,i),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let n=e[2],s="";if(this.options.pedantic){let i=this.rules.other.pedanticHrefTitle.exec(n);i&&(n=i[1],s=i[3])}else s=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?n=n.slice(1):n=n.slice(1,-1)),Vl(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:s&&s.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let n=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),s=e[n.toLowerCase()];if(!s){let i=r[0].charAt(0);return{type:"text",raw:i,text:i}}return Vl(r,s,r[0],this.lexer,this.rules)}}emStrong(t,e,r=""){let n=this.rules.inline.emStrongLDelim.exec(t);if(!(!n||n[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[2])||!r||this.rules.inline.punctuation.exec(r))){let s=[...n[0]].length-1,i,a,o=s,l=0,c=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*t.length+s);(n=c.exec(e))!=null;){if(i=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!i)continue;if(a=[...i].length,n[3]||n[4]){o+=a;continue}else if((n[5]||n[6])&&s%3&&!((s+a)%3)){l+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+l);let d=[...n[0]][0].length,f=t.slice(0,s+n.index+d+a);if(Math.min(s,a)%2){let b=f.slice(1,-1);return{type:"em",raw:f,text:b,tokens:this.lexer.inlineTokens(b)}}let p=f.slice(2,-2);return{type:"strong",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let r=e[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(r),s=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return n&&s&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:e[0],text:r}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let r,n;return e[2]==="@"?(r=e[1],n="mailto:"+r):(r=e[1],n=r),{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}url(t){var r;let e;if(e=this.rules.inline.url.exec(t)){let n,s;if(e[2]==="@")n=e[0],s="mailto:"+n;else{let i;do i=e[0],e[0]=((r=this.rules.inline._backpedal.exec(e[0]))==null?void 0:r[0])??"";while(i!==e[0]);n=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let r=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:r}}}},Cr=class la{constructor(e){Ge(this,"tokens");Ge(this,"options");Ge(this,"state");Ge(this,"tokenizer");Ge(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||vn,this.options.tokenizer=this.options.tokenizer||new Ts,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:Mt,block:F0.normal,inline:Kn.normal};this.options.pedantic?(r.block=F0.pedantic,r.inline=Kn.pedantic):this.options.gfm&&(r.block=F0.gfm,this.options.breaks?r.inline=Kn.breaks:r.inline=Kn.gfm),this.tokenizer.rules=r}static get rules(){return{block:F0,inline:Kn}}static lex(e,r){return new la(r).lex(e)}static lexInline(e,r){return new la(r).inlineTokens(e)}lex(e){e=e.replace(Mt.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let r=0;r(o=c.call({lexer:this},e,r))?(e=e.substring(o.raw.length),r.push(o),!0):!1))continue;if(o=this.tokenizer.space(e)){e=e.substring(o.raw.length);let c=r.at(-1);o.raw.length===1&&c!==void 0?c.raw+=` +`:r.push(o);continue}if(o=this.tokenizer.code(e)){e=e.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` +`)?"":` +`)+o.raw,c.text+=` +`+o.text,this.inlineQueue.at(-1).src=c.text):r.push(o);continue}if(o=this.tokenizer.fences(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.heading(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.hr(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.blockquote(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.list(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.html(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.def(e)){e=e.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` +`)?"":` +`)+o.raw,c.text+=` +`+o.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},r.push(o));continue}if(o=this.tokenizer.table(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.lheading(e)){e=e.substring(o.raw.length),r.push(o);continue}let l=e;if((a=this.options.extensions)!=null&&a.startBlock){let c=1/0,d=e.slice(1),f;this.options.extensions.startBlock.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(c=Math.min(c,f))}),c<1/0&&c>=0&&(l=e.substring(0,c+1))}if(this.state.top&&(o=this.tokenizer.paragraph(l))){let c=r.at(-1);n&&(c==null?void 0:c.type)==="paragraph"?(c.raw+=(c.raw.endsWith(` +`)?"":` +`)+o.raw,c.text+=` +`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(o),n=l.length!==e.length,e=e.substring(o.raw.length);continue}if(o=this.tokenizer.text(e)){e=e.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` +`)?"":` +`)+o.raw,c.text+=` +`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(o);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){var o,l,c;let n=e,s=null;if(this.tokens.links){let d=Object.keys(this.tokens.links);if(d.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)d.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(s=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,s.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(s=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,s.index)+"["+"a".repeat(s[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let i=!1,a="";for(;e;){i||(a=""),i=!1;let d;if((l=(o=this.options.extensions)==null?void 0:o.inline)!=null&&l.some(p=>(d=p.call({lexer:this},e,r))?(e=e.substring(d.raw.length),r.push(d),!0):!1))continue;if(d=this.tokenizer.escape(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.tag(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.link(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(d.raw.length);let p=r.at(-1);d.type==="text"&&(p==null?void 0:p.type)==="text"?(p.raw+=d.raw,p.text+=d.text):r.push(d);continue}if(d=this.tokenizer.emStrong(e,n,a)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.codespan(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.br(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.del(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.autolink(e)){e=e.substring(d.raw.length),r.push(d);continue}if(!this.state.inLink&&(d=this.tokenizer.url(e))){e=e.substring(d.raw.length),r.push(d);continue}let f=e;if((c=this.options.extensions)!=null&&c.startInline){let p=1/0,b=e.slice(1),v;this.options.extensions.startInline.forEach(x=>{v=x.call({lexer:this},b),typeof v=="number"&&v>=0&&(p=Math.min(p,v))}),p<1/0&&p>=0&&(f=e.substring(0,p+1))}if(d=this.tokenizer.inlineText(f)){e=e.substring(d.raw.length),d.raw.slice(-1)!=="_"&&(a=d.raw.slice(-1)),i=!0;let p=r.at(-1);(p==null?void 0:p.type)==="text"?(p.raw+=d.raw,p.text+=d.text):r.push(d);continue}if(e){let p="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return r}},As=class{constructor(t){Ge(this,"options");Ge(this,"parser");this.options=t||vn}space(t){return""}code({text:t,lang:e,escaped:r}){var i;let n=(i=(e||"").match(Mt.notSpaceStart))==null?void 0:i[0],s=t.replace(Mt.endingNewline,"")+` +`;return n?'

'+(r?s:lr(s,!0))+`
+`:"
"+(r?s:lr(s,!0))+`
+`}blockquote({tokens:t}){return`
+${this.parser.parse(t)}
+`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} +`}hr(t){return`
+`}list(t){let e=t.ordered,r=t.start,n="";for(let a=0;a +`+n+" +`}listitem(t){var r;let e="";if(t.task){let n=this.checkbox({checked:!!t.checked});t.loose?((r=t.tokens[0])==null?void 0:r.type)==="paragraph"?(t.tokens[0].text=n+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=n+" "+lr(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):e+=n+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • +`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    +`}table(t){let e="",r="";for(let s=0;s${n}`),` + +`+e+` +`+n+`
    +`}tablerow({text:t}){return` +${t} +`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` +`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${lr(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let n=this.parser.parseInline(r),s=jl(t);if(s===null)return n;t=s;let i='
    ",i}image({href:t,title:e,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let s=jl(t);if(s===null)return lr(r);t=s;let i=`${r}{let l=a[o].flat(1/0);r=r.concat(this.walkTokens(l,e))}):a.tokens&&(r=r.concat(this.walkTokens(a.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let n={...r};if(n.async=this.defaults.async||n.async||!1,r.extensions&&(r.extensions.forEach(s=>{if(!s.name)throw new Error("extension name required");if("renderer"in s){let i=e.renderers[s.name];i?e.renderers[s.name]=function(...a){let o=s.renderer.apply(this,a);return o===!1&&(o=i.apply(this,a)),o}:e.renderers[s.name]=s.renderer}if("tokenizer"in s){if(!s.level||s.level!=="block"&&s.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let i=e[s.level];i?i.unshift(s.tokenizer):e[s.level]=[s.tokenizer],s.start&&(s.level==="block"?e.startBlock?e.startBlock.push(s.start):e.startBlock=[s.start]:s.level==="inline"&&(e.startInline?e.startInline.push(s.start):e.startInline=[s.start]))}"childTokens"in s&&s.childTokens&&(e.childTokens[s.name]=s.childTokens)}),n.extensions=e),r.renderer){let s=this.defaults.renderer||new As(this.defaults);for(let i in r.renderer){if(!(i in s))throw new Error(`renderer '${i}' does not exist`);if(["options","parser"].includes(i))continue;let a=i,o=r.renderer[a],l=s[a];s[a]=(...c)=>{let d=o.apply(s,c);return d===!1&&(d=l.apply(s,c)),d||""}}n.renderer=s}if(r.tokenizer){let s=this.defaults.tokenizer||new Ts(this.defaults);for(let i in r.tokenizer){if(!(i in s))throw new Error(`tokenizer '${i}' does not exist`);if(["options","rules","lexer"].includes(i))continue;let a=i,o=r.tokenizer[a],l=s[a];s[a]=(...c)=>{let d=o.apply(s,c);return d===!1&&(d=l.apply(s,c)),d}}n.tokenizer=s}if(r.hooks){let s=this.defaults.hooks||new ss;for(let i in r.hooks){if(!(i in s))throw new Error(`hook '${i}' does not exist`);if(["options","block"].includes(i))continue;let a=i,o=r.hooks[a],l=s[a];ss.passThroughHooks.has(i)?s[a]=c=>{if(this.defaults.async)return Promise.resolve(o.call(s,c)).then(f=>l.call(s,f));let d=o.call(s,c);return l.call(s,d)}:s[a]=(...c)=>{let d=o.apply(s,c);return d===!1&&(d=l.apply(s,c)),d}}n.hooks=s}if(r.walkTokens){let s=this.defaults.walkTokens,i=r.walkTokens;n.walkTokens=function(a){let o=[];return o.push(i.call(this,a)),s&&(o=o.concat(s.call(this,a))),o}}this.defaults={...this.defaults,...n}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Cr.lex(t,e??this.defaults)}parser(t,e){return Mr.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let n={...r},s={...this.defaults,...n},i=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&n.async===!1)return i(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return i(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return i(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));s.hooks&&(s.hooks.options=s,s.hooks.block=t);let a=s.hooks?s.hooks.provideLexer():t?Cr.lex:Cr.lexInline,o=s.hooks?s.hooks.provideParser():t?Mr.parse:Mr.parseInline;if(s.async)return Promise.resolve(s.hooks?s.hooks.preprocess(e):e).then(l=>a(l,s)).then(l=>s.hooks?s.hooks.processAllTokens(l):l).then(l=>s.walkTokens?Promise.all(this.walkTokens(l,s.walkTokens)).then(()=>l):l).then(l=>o(l,s)).then(l=>s.hooks?s.hooks.postprocess(l):l).catch(i);try{s.hooks&&(e=s.hooks.preprocess(e));let l=a(e,s);s.hooks&&(l=s.hooks.processAllTokens(l)),s.walkTokens&&this.walkTokens(l,s.walkTokens);let c=o(l,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(l){return i(l)}}}onError(t,e){return r=>{if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,t){let n="

    An error occurred:

    "+lr(r.message+"",!0)+"
    ";return e?Promise.resolve(n):n}if(e)return Promise.reject(r);throw r}}},mn=new J3;function qe(t,e){return mn.parse(t,e)}qe.options=qe.setOptions=function(t){return mn.setOptions(t),qe.defaults=mn.defaults,A1(qe.defaults),qe};qe.getDefaults=no;qe.defaults=vn;qe.use=function(...t){return mn.use(...t),qe.defaults=mn.defaults,A1(qe.defaults),qe};qe.walkTokens=function(t,e){return mn.walkTokens(t,e)};qe.parseInline=mn.parseInline;qe.Parser=Mr;qe.parser=Mr.parse;qe.Renderer=As;qe.TextRenderer=ho;qe.Lexer=Cr;qe.lexer=Cr.lex;qe.Tokenizer=Ts;qe.Hooks=ss;qe.parse=qe;qe.options;qe.setOptions;qe.use;qe.walkTokens;qe.parseInline;Mr.parse;Cr.lex;var Wl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Z3(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function v8(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var s=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,s.get?s:{enumerable:!0,get:function(){return t[n]}})}),r}var z1={exports:{}};(function(t){var e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT + * @author Lea Verou + * @namespace + * @public + */var r=function(n){var s=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,i=0,a={},o={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function k(T){return T instanceof l?new l(T.type,k(T.content),T.alias):Array.isArray(T)?T.map(k):T.replace(/&/g,"&").replace(/"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT"&&1<2)return document.currentScript;try{throw new Error}catch(I){var k=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(I.stack)||[])[1];if(k){var T=document.getElementsByTagName("script");for(var N in T)if(T[N].src==k)return T[N]}return null}},isActive:function(k,T,N){for(var I="no-"+T;k;){var O=k.classList;if(O.contains(T))return!0;if(O.contains(I))return!1;k=k.parentElement}return!!N}},languages:{plain:a,plaintext:a,text:a,txt:a,extend:function(k,T){var N=o.util.clone(o.languages[k]);for(var I in T)N[I]=T[I];return N},insertBefore:function(k,T,N,I){I=I||o.languages;var O=I[k],z={};for(var W in O)if(O.hasOwnProperty(W)){if(W==T)for(var U in N)N.hasOwnProperty(U)&&(z[U]=N[U]);N.hasOwnProperty(W)||(z[W]=O[W])}var he=I[k];return I[k]=z,o.languages.DFS(o.languages,function(ge,Ae){Ae===he&&ge!=k&&(this[ge]=z)}),z},DFS:function k(T,N,I,O){O=O||{};var z=o.util.objId;for(var W in T)if(T.hasOwnProperty(W)){N.call(T,W,T[W],I||W);var U=T[W],he=o.util.type(U);he==="Object"&&!O[z(U)]?(O[z(U)]=!0,k(U,N,null,O)):he==="Array"&&!O[z(U)]&&(O[z(U)]=!0,k(U,N,W,O))}}},plugins:{},highlightAll:function(k,T){o.highlightAllUnder(document,k,T)},highlightAllUnder:function(k,T,N){var I={callback:N,container:k,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",I),I.elements=Array.prototype.slice.apply(I.container.querySelectorAll(I.selector)),o.hooks.run("before-all-elements-highlight",I);for(var O=0,z;z=I.elements[O++];)o.highlightElement(z,T===!0,I.callback)},highlightElement:function(k,T,N){var I=o.util.getLanguage(k),O=o.languages[I];o.util.setLanguage(k,I);var z=k.parentElement;z&&z.nodeName.toLowerCase()==="pre"&&o.util.setLanguage(z,I);var W=k.textContent,U={element:k,language:I,grammar:O,code:W};function he(Ae){U.highlightedCode=Ae,o.hooks.run("before-insert",U),U.element.innerHTML=U.highlightedCode,o.hooks.run("after-highlight",U),o.hooks.run("complete",U),N&&N.call(U.element)}if(o.hooks.run("before-sanity-check",U),z=U.element.parentElement,z&&z.nodeName.toLowerCase()==="pre"&&!z.hasAttribute("tabindex")&&z.setAttribute("tabindex","0"),!U.code){o.hooks.run("complete",U),N&&N.call(U.element);return}if(o.hooks.run("before-highlight",U),!U.grammar){he(o.util.encode(U.code));return}if(T&&n.Worker){var ge=new Worker(o.filename);ge.onmessage=function(Ae){he(Ae.data)},ge.postMessage(JSON.stringify({language:U.language,code:U.code,immediateClose:!0}))}else he(o.highlight(U.code,U.grammar,U.language))},highlight:function(k,T,N){var I={code:k,grammar:T,language:N};if(o.hooks.run("before-tokenize",I),!I.grammar)throw new Error('The language "'+I.language+'" has no grammar.');return I.tokens=o.tokenize(I.code,I.grammar),o.hooks.run("after-tokenize",I),l.stringify(o.util.encode(I.tokens),I.language)},tokenize:function(k,T){var N=T.rest;if(N){for(var I in N)T[I]=N[I];delete T.rest}var O=new f;return p(O,O.head,k),d(k,O,T,O.head,0),v(O)},hooks:{all:{},add:function(k,T){var N=o.hooks.all;N[k]=N[k]||[],N[k].push(T)},run:function(k,T){var N=o.hooks.all[k];if(!(!N||!N.length))for(var I=0,O;O=N[I++];)O(T)}},Token:l};n.Prism=o;function l(k,T,N,I){this.type=k,this.content=T,this.alias=N,this.length=(I||"").length|0}l.stringify=function k(T,N){if(typeof T=="string")return T;if(Array.isArray(T)){var I="";return T.forEach(function(he){I+=k(he,N)}),I}var O={type:T.type,content:k(T.content,N),tag:"span",classes:["token",T.type],attributes:{},language:N},z=T.alias;z&&(Array.isArray(z)?Array.prototype.push.apply(O.classes,z):O.classes.push(z)),o.hooks.run("wrap",O);var W="";for(var U in O.attributes)W+=" "+U+'="'+(O.attributes[U]||"").replace(/"/g,""")+'"';return"<"+O.tag+' class="'+O.classes.join(" ")+'"'+W+">"+O.content+""};function c(k,T,N,I){k.lastIndex=T;var O=k.exec(N);if(O&&I&&O[1]){var z=O[1].length;O.index+=z,O[0]=O[0].slice(z)}return O}function d(k,T,N,I,O,z){for(var W in N)if(!(!N.hasOwnProperty(W)||!N[W])){var U=N[W];U=Array.isArray(U)?U:[U];for(var he=0;he=z.reach);Me+=ve.value.length,ve=ve.next){var tt=ve.value;if(T.length>k.length)return;if(!(tt instanceof l)){var We=1,_e;if(Je){if(_e=c(Ie,Me,k,et),!_e||_e.index>=k.length)break;var V=_e.index,St=_e.index+_e[0].length,mt=Me;for(mt+=ve.value.length;V>=mt;)ve=ve.next,mt+=ve.value.length;if(mt-=ve.value.length,Me=mt,ve.value instanceof l)continue;for(var j=ve;j!==T.tail&&(mtz.reach&&(z.reach=ye);var fe=ve.prev;ie&&(fe=p(T,fe,ie),Me+=ie.length),b(T,fe,We);var Ue=new l(W,Ae?o.tokenize(re,Ae):re,ot,re);if(ve=p(T,fe,Ue),Ee&&p(T,ve,Ee),We>1){var S={cause:W+","+he,reach:ye};d(k,T,N,ve.prev,Me,S),z&&S.reach>z.reach&&(z.reach=S.reach)}}}}}}function f(){var k={value:null,prev:null,next:null},T={value:null,prev:k,next:null};k.next=T,this.head=k,this.tail=T,this.length=0}function p(k,T,N){var I=T.next,O={value:N,prev:T,next:I};return T.next=O,I.prev=O,k.length++,O}function b(k,T,N){for(var I=T.next,O=0;O/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&/,"&"))}),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(s,i){var a={};a["language-"+i]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[i]},a.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:a}};o["language-"+i]={pattern:/[\s\S]+/,inside:r.languages[i]};var l={};l[s]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return s}),"i"),lookbehind:!0,greedy:!0,inside:o},r.languages.insertBefore("markup","cdata",l)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(n,s){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[s,"language-"+s],inside:r.languages[s]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(n){var s=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+s.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+s.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+s.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+s.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:s,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var i=n.languages.markup;i&&(i.tag.addInlined("style","css"),i.tag.addAttribute("style","css"))}(r),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(){if(typeof r>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var n="Loading…",s=function(x,y){return"✖ Error "+x+" while fetching file: "+y},i="✖ Error: File does not exist or is empty",a={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},o="data-src-status",l="loading",c="loaded",d="failed",f="pre[data-src]:not(["+o+'="'+c+'"]):not(['+o+'="'+l+'"])';function p(x,y,M){var k=new XMLHttpRequest;k.open("GET",x,!0),k.onreadystatechange=function(){k.readyState==4&&(k.status<400&&k.responseText?y(k.responseText):k.status>=400?M(s(k.status,k.statusText)):M(i))},k.send(null)}function b(x){var y=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(x||"");if(y){var M=Number(y[1]),k=y[2],T=y[3];return k?T?[M,Number(T)]:[M,void 0]:[M,M]}}r.hooks.add("before-highlightall",function(x){x.selector+=", "+f}),r.hooks.add("before-sanity-check",function(x){var y=x.element;if(y.matches(f)){x.code="",y.setAttribute(o,l);var M=y.appendChild(document.createElement("CODE"));M.textContent=n;var k=y.getAttribute("data-src"),T=x.language;if(T==="none"){var N=(/\.(\w+)$/.exec(k)||[,"none"])[1];T=a[N]||N}r.util.setLanguage(M,T),r.util.setLanguage(y,T);var I=r.plugins.autoloader;I&&I.loadLanguages(T),p(k,function(O){y.setAttribute(o,c);var z=b(y.getAttribute("data-range"));if(z){var W=O.split(/\r\n?|\n/g),U=z[0],he=z[1]==null?W.length:z[1];U<0&&(U+=W.length),U=Math.max(0,Math.min(U-1,W.length)),he<0&&(he+=W.length),he=Math.max(0,Math.min(he,W.length)),O=W.slice(U,he).join(` +`),y.hasAttribute("data-start")||y.setAttribute("data-start",String(U+1))}M.textContent=O,r.highlightElement(M)},function(O){y.setAttribute(o,d),M.textContent=O})}}),r.plugins.fileHighlight={highlight:function(y){for(var M=(y||document).querySelectorAll(f),k=0,T;T=M[k++];)r.highlightElement(T)}};var v=!1;r.fileHighlight=function(){v||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),v=!0),r.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(z1);var Q3=z1.exports;const Gl=Z3(Q3);class Ft{constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new Ft(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}}class Kt{constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new Kt(r,Ft.range(this,e))}}class te{constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,s,i,a=r&&r.loc;if(a&&a.start<=a.end){var o=a.lexer.input;s=a.start,i=a.end,s===o.length?n+=" at end of input: ":n+=" at position "+(s+1)+": ";var l=o.slice(s,i).replace(/[^]/g,"$&̲"),c;s>15?c="…"+o.slice(s-15,s):c=o.slice(0,s);var d;i+15":">","<":"<",'"':""","'":"'"},i6=/[&><"']/g;function a6(t){return String(t).replace(i6,e=>s6[e])}var F1=function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},o6=function(e){var r=F1(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},l6=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},c6=function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},we={contains:e6,deflt:t6,escape:a6,hyphenate:n6,getBaseElem:F1,isCharacterBox:o6,protocolFromUrl:c6},is={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:t=>"#"+t},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(t,e)=>(e.push(t),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:t=>Math.max(0,t),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:t=>Math.max(0,t),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:t=>Math.max(0,t),cli:"-e, --max-expand ",cliProcessor:t=>t==="Infinity"?1/0:parseInt(t)},globalGroup:{type:"boolean",cli:!1}};function u6(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class fo{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in is)if(is.hasOwnProperty(r)){var n=is[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:u6(n)}}reportNonstrict(e,r,n){var s=this.strict;if(typeof s=="function"&&(s=s(e,r,n)),!(!s||s==="ignore")){if(s===!0||s==="error")throw new te("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);s==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+s+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var s=this.strict;if(typeof s=="function")try{s=s(e,r,n)}catch{s="error"}return!s||s==="ignore"?!1:s===!0||s==="error"?!0:s==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+s+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=we.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}}class Pr{constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return hr[d6[this.id]]}sub(){return hr[h6[this.id]]}fracNum(){return hr[f6[this.id]]}fracDen(){return hr[p6[this.id]]}cramp(){return hr[m6[this.id]]}text(){return hr[g6[this.id]]}isTight(){return this.size>=2}}var po=0,Es=1,_n=2,Nr=3,m0=4,Vt=5,Fn=6,Nt=7,hr=[new Pr(po,0,!1),new Pr(Es,0,!0),new Pr(_n,1,!1),new Pr(Nr,1,!0),new Pr(m0,2,!1),new Pr(Vt,2,!0),new Pr(Fn,3,!1),new Pr(Nt,3,!0)],d6=[m0,Vt,m0,Vt,Fn,Nt,Fn,Nt],h6=[Vt,Vt,Vt,Vt,Nt,Nt,Nt,Nt],f6=[_n,Nr,m0,Vt,Fn,Nt,Fn,Nt],p6=[Nr,Nr,Vt,Vt,Nt,Nt,Nt,Nt],m6=[Es,Es,Nr,Nr,Vt,Vt,Nt,Nt],g6=[po,Es,_n,Nr,_n,Nr,_n,Nr],ke={DISPLAY:hr[po],TEXT:hr[_n],SCRIPT:hr[m0],SCRIPTSCRIPT:hr[Fn]},ua=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function v6(t){for(var e=0;e=s[0]&&t<=s[1])return r.name}return null}var as=[];ua.forEach(t=>t.blocks.forEach(e=>as.push(...e)));function $1(t){for(var e=0;e=as[e]&&t<=as[e+1])return!0;return!1}var Sn=80,b6=function(e,r){return"M95,"+(622+e+r)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},y6=function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},w6=function(e,r){return"M983 "+(10+e+r)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},x6=function(e,r){return"M424,"+(2398+e+r)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` +h400000v`+(40+e)+"h-400000z"},k6=function(e,r){return"M473,"+(2713+e+r)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},S6=function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},T6=function(e,r,n){var s=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` +H742v`+s+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},A6=function(e,r,n){r=1e3*r;var s="";switch(e){case"sqrtMain":s=b6(r,Sn);break;case"sqrtSize1":s=y6(r,Sn);break;case"sqrtSize2":s=w6(r,Sn);break;case"sqrtSize3":s=x6(r,Sn);break;case"sqrtSize4":s=k6(r,Sn);break;case"sqrtTall":s=T6(r,Sn,n)}return s},E6=function(e,r){switch(e){case"⎜":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"∣":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"∥":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"⎟":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"⎢":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"⎥":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"⎪":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"⏐":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"‖":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},Kl={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},C6=function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z +M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z +M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z +M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class T0{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return we.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText();return this.children.map(e).join("")}}var fr={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},$0={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Yl={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function M6(t,e){fr[t]=e}function mo(t,e,r){if(!fr[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),s=fr[e][n];if(!s&&t[0]in Yl&&(n=Yl[t[0]].charCodeAt(0),s=fr[e][n]),!s&&r==="text"&&$1(n)&&(s=fr[e][77]),s)return{depth:s[0],height:s[1],italic:s[2],skew:s[3],width:s[4]}}var ki={};function N6(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!ki[e]){var r=ki[e]={cssEmPerMu:$0.quad[e]/18};for(var n in $0)$0.hasOwnProperty(n)&&(r[n]=$0[n][e])}return ki[e]}var D6=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Xl=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Jl=function(e,r){return r.size<2?e:D6[e-1][r.size-1]};class Tr{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||Tr.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=Xl[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new Tr(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Jl(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Xl[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=Jl(Tr.BASESIZE,e);return this.size===r&&this.textSize===Tr.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==Tr.BASESIZE?["sizing","reset-size"+this.size,"size"+Tr.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=N6(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}Tr.BASESIZE=6;var da={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},R6={ex:!0,em:!0,mu:!0},B1=function(e){return typeof e!="string"&&(e=e.unit),e in da||e in R6||e==="ex"},st=function(e,r){var n;if(e.unit in da)n=da[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var s;if(r.style.isTight()?s=r.havingStyle(r.style.text()):s=r,e.unit==="ex")n=s.fontMetrics().xHeight;else if(e.unit==="em")n=s.fontMetrics().quad;else throw new te("Invalid unit: '"+e.unit+"'");s!==r&&(n*=s.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},ae=function(e){return+e.toFixed(4)+"em"},Yr=function(e){return e.filter(r=>r).join(" ")},P1=function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var s=r.getColor();s&&(this.style.color=s)}},H1=function(e){var r=document.createElement(e);r.className=Yr(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var s in this.attributes)this.attributes.hasOwnProperty(s)&&r.setAttribute(s,this.attributes[s]);for(var i=0;i/=\x00-\x1f]/,q1=function(e){var r="<"+e;this.classes.length&&(r+=' class="'+we.escape(Yr(this.classes))+'"');var n="";for(var s in this.style)this.style.hasOwnProperty(s)&&(n+=we.hyphenate(s)+":"+this.style[s]+";");n&&(r+=' style="'+we.escape(n)+'"');for(var i in this.attributes)if(this.attributes.hasOwnProperty(i)){if(I6.test(i))throw new te("Invalid attribute name '"+i+"'");r+=" "+i+'="'+we.escape(this.attributes[i])+'"'}r+=">";for(var a=0;a",r};class A0{constructor(e,r,n,s){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,P1.call(this,e,n,s),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return we.contains(this.classes,e)}toNode(){return H1.call(this,"span")}toMarkup(){return q1.call(this,"span")}}class go{constructor(e,r,n,s){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,P1.call(this,r,s),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return we.contains(this.classes,e)}toNode(){return H1.call(this,"a")}toMarkup(){return q1.call(this,"a")}}class _6{constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return we.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+we.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=ae(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=Yr(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var s in this.style)this.style.hasOwnProperty(s)&&(n+=we.hyphenate(s)+":"+this.style[s]+";");n&&(e=!0,r+=' style="'+we.escape(n)+'"');var i=we.escape(this.text);return e?(r+=">",r+=i,r+="",r):i}}class _r{constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var s=0;s':''}}class ha{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e=" but got "+String(t)+".")}var z6={bin:1,close:1,inner:1,open:1,punct:1,rel:1},F6={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},Qe={math:{},text:{}};function u(t,e,r,n,s,i){Qe[t][s]={font:e,group:r,replace:n},i&&n&&(Qe[t][n]=Qe[t][s])}var h="math",K="text",m="main",A="ams",rt="accent-token",ce="bin",Dt="close",Hn="inner",xe="mathord",ht="op-token",jt="open",Zs="punct",C="rel",Fr="spacing",R="textord";u(h,m,C,"≡","\\equiv",!0);u(h,m,C,"≺","\\prec",!0);u(h,m,C,"≻","\\succ",!0);u(h,m,C,"∼","\\sim",!0);u(h,m,C,"⊥","\\perp");u(h,m,C,"⪯","\\preceq",!0);u(h,m,C,"⪰","\\succeq",!0);u(h,m,C,"≃","\\simeq",!0);u(h,m,C,"∣","\\mid",!0);u(h,m,C,"≪","\\ll",!0);u(h,m,C,"≫","\\gg",!0);u(h,m,C,"≍","\\asymp",!0);u(h,m,C,"∥","\\parallel");u(h,m,C,"⋈","\\bowtie",!0);u(h,m,C,"⌣","\\smile",!0);u(h,m,C,"⊑","\\sqsubseteq",!0);u(h,m,C,"⊒","\\sqsupseteq",!0);u(h,m,C,"≐","\\doteq",!0);u(h,m,C,"⌢","\\frown",!0);u(h,m,C,"∋","\\ni",!0);u(h,m,C,"∝","\\propto",!0);u(h,m,C,"⊢","\\vdash",!0);u(h,m,C,"⊣","\\dashv",!0);u(h,m,C,"∋","\\owns");u(h,m,Zs,".","\\ldotp");u(h,m,Zs,"⋅","\\cdotp");u(h,m,R,"#","\\#");u(K,m,R,"#","\\#");u(h,m,R,"&","\\&");u(K,m,R,"&","\\&");u(h,m,R,"ℵ","\\aleph",!0);u(h,m,R,"∀","\\forall",!0);u(h,m,R,"ℏ","\\hbar",!0);u(h,m,R,"∃","\\exists",!0);u(h,m,R,"∇","\\nabla",!0);u(h,m,R,"♭","\\flat",!0);u(h,m,R,"ℓ","\\ell",!0);u(h,m,R,"♮","\\natural",!0);u(h,m,R,"♣","\\clubsuit",!0);u(h,m,R,"℘","\\wp",!0);u(h,m,R,"♯","\\sharp",!0);u(h,m,R,"♢","\\diamondsuit",!0);u(h,m,R,"ℜ","\\Re",!0);u(h,m,R,"♡","\\heartsuit",!0);u(h,m,R,"ℑ","\\Im",!0);u(h,m,R,"♠","\\spadesuit",!0);u(h,m,R,"§","\\S",!0);u(K,m,R,"§","\\S");u(h,m,R,"¶","\\P",!0);u(K,m,R,"¶","\\P");u(h,m,R,"†","\\dag");u(K,m,R,"†","\\dag");u(K,m,R,"†","\\textdagger");u(h,m,R,"‡","\\ddag");u(K,m,R,"‡","\\ddag");u(K,m,R,"‡","\\textdaggerdbl");u(h,m,Dt,"⎱","\\rmoustache",!0);u(h,m,jt,"⎰","\\lmoustache",!0);u(h,m,Dt,"⟯","\\rgroup",!0);u(h,m,jt,"⟮","\\lgroup",!0);u(h,m,ce,"∓","\\mp",!0);u(h,m,ce,"⊖","\\ominus",!0);u(h,m,ce,"⊎","\\uplus",!0);u(h,m,ce,"⊓","\\sqcap",!0);u(h,m,ce,"∗","\\ast");u(h,m,ce,"⊔","\\sqcup",!0);u(h,m,ce,"◯","\\bigcirc",!0);u(h,m,ce,"∙","\\bullet",!0);u(h,m,ce,"‡","\\ddagger");u(h,m,ce,"≀","\\wr",!0);u(h,m,ce,"⨿","\\amalg");u(h,m,ce,"&","\\And");u(h,m,C,"⟵","\\longleftarrow",!0);u(h,m,C,"⇐","\\Leftarrow",!0);u(h,m,C,"⟸","\\Longleftarrow",!0);u(h,m,C,"⟶","\\longrightarrow",!0);u(h,m,C,"⇒","\\Rightarrow",!0);u(h,m,C,"⟹","\\Longrightarrow",!0);u(h,m,C,"↔","\\leftrightarrow",!0);u(h,m,C,"⟷","\\longleftrightarrow",!0);u(h,m,C,"⇔","\\Leftrightarrow",!0);u(h,m,C,"⟺","\\Longleftrightarrow",!0);u(h,m,C,"↦","\\mapsto",!0);u(h,m,C,"⟼","\\longmapsto",!0);u(h,m,C,"↗","\\nearrow",!0);u(h,m,C,"↩","\\hookleftarrow",!0);u(h,m,C,"↪","\\hookrightarrow",!0);u(h,m,C,"↘","\\searrow",!0);u(h,m,C,"↼","\\leftharpoonup",!0);u(h,m,C,"⇀","\\rightharpoonup",!0);u(h,m,C,"↙","\\swarrow",!0);u(h,m,C,"↽","\\leftharpoondown",!0);u(h,m,C,"⇁","\\rightharpoondown",!0);u(h,m,C,"↖","\\nwarrow",!0);u(h,m,C,"⇌","\\rightleftharpoons",!0);u(h,A,C,"≮","\\nless",!0);u(h,A,C,"","\\@nleqslant");u(h,A,C,"","\\@nleqq");u(h,A,C,"⪇","\\lneq",!0);u(h,A,C,"≨","\\lneqq",!0);u(h,A,C,"","\\@lvertneqq");u(h,A,C,"⋦","\\lnsim",!0);u(h,A,C,"⪉","\\lnapprox",!0);u(h,A,C,"⊀","\\nprec",!0);u(h,A,C,"⋠","\\npreceq",!0);u(h,A,C,"⋨","\\precnsim",!0);u(h,A,C,"⪹","\\precnapprox",!0);u(h,A,C,"≁","\\nsim",!0);u(h,A,C,"","\\@nshortmid");u(h,A,C,"∤","\\nmid",!0);u(h,A,C,"⊬","\\nvdash",!0);u(h,A,C,"⊭","\\nvDash",!0);u(h,A,C,"⋪","\\ntriangleleft");u(h,A,C,"⋬","\\ntrianglelefteq",!0);u(h,A,C,"⊊","\\subsetneq",!0);u(h,A,C,"","\\@varsubsetneq");u(h,A,C,"⫋","\\subsetneqq",!0);u(h,A,C,"","\\@varsubsetneqq");u(h,A,C,"≯","\\ngtr",!0);u(h,A,C,"","\\@ngeqslant");u(h,A,C,"","\\@ngeqq");u(h,A,C,"⪈","\\gneq",!0);u(h,A,C,"≩","\\gneqq",!0);u(h,A,C,"","\\@gvertneqq");u(h,A,C,"⋧","\\gnsim",!0);u(h,A,C,"⪊","\\gnapprox",!0);u(h,A,C,"⊁","\\nsucc",!0);u(h,A,C,"⋡","\\nsucceq",!0);u(h,A,C,"⋩","\\succnsim",!0);u(h,A,C,"⪺","\\succnapprox",!0);u(h,A,C,"≆","\\ncong",!0);u(h,A,C,"","\\@nshortparallel");u(h,A,C,"∦","\\nparallel",!0);u(h,A,C,"⊯","\\nVDash",!0);u(h,A,C,"⋫","\\ntriangleright");u(h,A,C,"⋭","\\ntrianglerighteq",!0);u(h,A,C,"","\\@nsupseteqq");u(h,A,C,"⊋","\\supsetneq",!0);u(h,A,C,"","\\@varsupsetneq");u(h,A,C,"⫌","\\supsetneqq",!0);u(h,A,C,"","\\@varsupsetneqq");u(h,A,C,"⊮","\\nVdash",!0);u(h,A,C,"⪵","\\precneqq",!0);u(h,A,C,"⪶","\\succneqq",!0);u(h,A,C,"","\\@nsubseteqq");u(h,A,ce,"⊴","\\unlhd");u(h,A,ce,"⊵","\\unrhd");u(h,A,C,"↚","\\nleftarrow",!0);u(h,A,C,"↛","\\nrightarrow",!0);u(h,A,C,"⇍","\\nLeftarrow",!0);u(h,A,C,"⇏","\\nRightarrow",!0);u(h,A,C,"↮","\\nleftrightarrow",!0);u(h,A,C,"⇎","\\nLeftrightarrow",!0);u(h,A,C,"△","\\vartriangle");u(h,A,R,"ℏ","\\hslash");u(h,A,R,"▽","\\triangledown");u(h,A,R,"◊","\\lozenge");u(h,A,R,"Ⓢ","\\circledS");u(h,A,R,"®","\\circledR");u(K,A,R,"®","\\circledR");u(h,A,R,"∡","\\measuredangle",!0);u(h,A,R,"∄","\\nexists");u(h,A,R,"℧","\\mho");u(h,A,R,"Ⅎ","\\Finv",!0);u(h,A,R,"⅁","\\Game",!0);u(h,A,R,"‵","\\backprime");u(h,A,R,"▲","\\blacktriangle");u(h,A,R,"▼","\\blacktriangledown");u(h,A,R,"■","\\blacksquare");u(h,A,R,"⧫","\\blacklozenge");u(h,A,R,"★","\\bigstar");u(h,A,R,"∢","\\sphericalangle",!0);u(h,A,R,"∁","\\complement",!0);u(h,A,R,"ð","\\eth",!0);u(K,m,R,"ð","ð");u(h,A,R,"╱","\\diagup");u(h,A,R,"╲","\\diagdown");u(h,A,R,"□","\\square");u(h,A,R,"□","\\Box");u(h,A,R,"◊","\\Diamond");u(h,A,R,"¥","\\yen",!0);u(K,A,R,"¥","\\yen",!0);u(h,A,R,"✓","\\checkmark",!0);u(K,A,R,"✓","\\checkmark");u(h,A,R,"ℶ","\\beth",!0);u(h,A,R,"ℸ","\\daleth",!0);u(h,A,R,"ℷ","\\gimel",!0);u(h,A,R,"ϝ","\\digamma",!0);u(h,A,R,"ϰ","\\varkappa");u(h,A,jt,"┌","\\@ulcorner",!0);u(h,A,Dt,"┐","\\@urcorner",!0);u(h,A,jt,"└","\\@llcorner",!0);u(h,A,Dt,"┘","\\@lrcorner",!0);u(h,A,C,"≦","\\leqq",!0);u(h,A,C,"⩽","\\leqslant",!0);u(h,A,C,"⪕","\\eqslantless",!0);u(h,A,C,"≲","\\lesssim",!0);u(h,A,C,"⪅","\\lessapprox",!0);u(h,A,C,"≊","\\approxeq",!0);u(h,A,ce,"⋖","\\lessdot");u(h,A,C,"⋘","\\lll",!0);u(h,A,C,"≶","\\lessgtr",!0);u(h,A,C,"⋚","\\lesseqgtr",!0);u(h,A,C,"⪋","\\lesseqqgtr",!0);u(h,A,C,"≑","\\doteqdot");u(h,A,C,"≓","\\risingdotseq",!0);u(h,A,C,"≒","\\fallingdotseq",!0);u(h,A,C,"∽","\\backsim",!0);u(h,A,C,"⋍","\\backsimeq",!0);u(h,A,C,"⫅","\\subseteqq",!0);u(h,A,C,"⋐","\\Subset",!0);u(h,A,C,"⊏","\\sqsubset",!0);u(h,A,C,"≼","\\preccurlyeq",!0);u(h,A,C,"⋞","\\curlyeqprec",!0);u(h,A,C,"≾","\\precsim",!0);u(h,A,C,"⪷","\\precapprox",!0);u(h,A,C,"⊲","\\vartriangleleft");u(h,A,C,"⊴","\\trianglelefteq");u(h,A,C,"⊨","\\vDash",!0);u(h,A,C,"⊪","\\Vvdash",!0);u(h,A,C,"⌣","\\smallsmile");u(h,A,C,"⌢","\\smallfrown");u(h,A,C,"≏","\\bumpeq",!0);u(h,A,C,"≎","\\Bumpeq",!0);u(h,A,C,"≧","\\geqq",!0);u(h,A,C,"⩾","\\geqslant",!0);u(h,A,C,"⪖","\\eqslantgtr",!0);u(h,A,C,"≳","\\gtrsim",!0);u(h,A,C,"⪆","\\gtrapprox",!0);u(h,A,ce,"⋗","\\gtrdot");u(h,A,C,"⋙","\\ggg",!0);u(h,A,C,"≷","\\gtrless",!0);u(h,A,C,"⋛","\\gtreqless",!0);u(h,A,C,"⪌","\\gtreqqless",!0);u(h,A,C,"≖","\\eqcirc",!0);u(h,A,C,"≗","\\circeq",!0);u(h,A,C,"≜","\\triangleq",!0);u(h,A,C,"∼","\\thicksim");u(h,A,C,"≈","\\thickapprox");u(h,A,C,"⫆","\\supseteqq",!0);u(h,A,C,"⋑","\\Supset",!0);u(h,A,C,"⊐","\\sqsupset",!0);u(h,A,C,"≽","\\succcurlyeq",!0);u(h,A,C,"⋟","\\curlyeqsucc",!0);u(h,A,C,"≿","\\succsim",!0);u(h,A,C,"⪸","\\succapprox",!0);u(h,A,C,"⊳","\\vartriangleright");u(h,A,C,"⊵","\\trianglerighteq");u(h,A,C,"⊩","\\Vdash",!0);u(h,A,C,"∣","\\shortmid");u(h,A,C,"∥","\\shortparallel");u(h,A,C,"≬","\\between",!0);u(h,A,C,"⋔","\\pitchfork",!0);u(h,A,C,"∝","\\varpropto");u(h,A,C,"◀","\\blacktriangleleft");u(h,A,C,"∴","\\therefore",!0);u(h,A,C,"∍","\\backepsilon");u(h,A,C,"▶","\\blacktriangleright");u(h,A,C,"∵","\\because",!0);u(h,A,C,"⋘","\\llless");u(h,A,C,"⋙","\\gggtr");u(h,A,ce,"⊲","\\lhd");u(h,A,ce,"⊳","\\rhd");u(h,A,C,"≂","\\eqsim",!0);u(h,m,C,"⋈","\\Join");u(h,A,C,"≑","\\Doteq",!0);u(h,A,ce,"∔","\\dotplus",!0);u(h,A,ce,"∖","\\smallsetminus");u(h,A,ce,"⋒","\\Cap",!0);u(h,A,ce,"⋓","\\Cup",!0);u(h,A,ce,"⩞","\\doublebarwedge",!0);u(h,A,ce,"⊟","\\boxminus",!0);u(h,A,ce,"⊞","\\boxplus",!0);u(h,A,ce,"⋇","\\divideontimes",!0);u(h,A,ce,"⋉","\\ltimes",!0);u(h,A,ce,"⋊","\\rtimes",!0);u(h,A,ce,"⋋","\\leftthreetimes",!0);u(h,A,ce,"⋌","\\rightthreetimes",!0);u(h,A,ce,"⋏","\\curlywedge",!0);u(h,A,ce,"⋎","\\curlyvee",!0);u(h,A,ce,"⊝","\\circleddash",!0);u(h,A,ce,"⊛","\\circledast",!0);u(h,A,ce,"⋅","\\centerdot");u(h,A,ce,"⊺","\\intercal",!0);u(h,A,ce,"⋒","\\doublecap");u(h,A,ce,"⋓","\\doublecup");u(h,A,ce,"⊠","\\boxtimes",!0);u(h,A,C,"⇢","\\dashrightarrow",!0);u(h,A,C,"⇠","\\dashleftarrow",!0);u(h,A,C,"⇇","\\leftleftarrows",!0);u(h,A,C,"⇆","\\leftrightarrows",!0);u(h,A,C,"⇚","\\Lleftarrow",!0);u(h,A,C,"↞","\\twoheadleftarrow",!0);u(h,A,C,"↢","\\leftarrowtail",!0);u(h,A,C,"↫","\\looparrowleft",!0);u(h,A,C,"⇋","\\leftrightharpoons",!0);u(h,A,C,"↶","\\curvearrowleft",!0);u(h,A,C,"↺","\\circlearrowleft",!0);u(h,A,C,"↰","\\Lsh",!0);u(h,A,C,"⇈","\\upuparrows",!0);u(h,A,C,"↿","\\upharpoonleft",!0);u(h,A,C,"⇃","\\downharpoonleft",!0);u(h,m,C,"⊶","\\origof",!0);u(h,m,C,"⊷","\\imageof",!0);u(h,A,C,"⊸","\\multimap",!0);u(h,A,C,"↭","\\leftrightsquigarrow",!0);u(h,A,C,"⇉","\\rightrightarrows",!0);u(h,A,C,"⇄","\\rightleftarrows",!0);u(h,A,C,"↠","\\twoheadrightarrow",!0);u(h,A,C,"↣","\\rightarrowtail",!0);u(h,A,C,"↬","\\looparrowright",!0);u(h,A,C,"↷","\\curvearrowright",!0);u(h,A,C,"↻","\\circlearrowright",!0);u(h,A,C,"↱","\\Rsh",!0);u(h,A,C,"⇊","\\downdownarrows",!0);u(h,A,C,"↾","\\upharpoonright",!0);u(h,A,C,"⇂","\\downharpoonright",!0);u(h,A,C,"⇝","\\rightsquigarrow",!0);u(h,A,C,"⇝","\\leadsto");u(h,A,C,"⇛","\\Rrightarrow",!0);u(h,A,C,"↾","\\restriction");u(h,m,R,"‘","`");u(h,m,R,"$","\\$");u(K,m,R,"$","\\$");u(K,m,R,"$","\\textdollar");u(h,m,R,"%","\\%");u(K,m,R,"%","\\%");u(h,m,R,"_","\\_");u(K,m,R,"_","\\_");u(K,m,R,"_","\\textunderscore");u(h,m,R,"∠","\\angle",!0);u(h,m,R,"∞","\\infty",!0);u(h,m,R,"′","\\prime");u(h,m,R,"△","\\triangle");u(h,m,R,"Γ","\\Gamma",!0);u(h,m,R,"Δ","\\Delta",!0);u(h,m,R,"Θ","\\Theta",!0);u(h,m,R,"Λ","\\Lambda",!0);u(h,m,R,"Ξ","\\Xi",!0);u(h,m,R,"Π","\\Pi",!0);u(h,m,R,"Σ","\\Sigma",!0);u(h,m,R,"Υ","\\Upsilon",!0);u(h,m,R,"Φ","\\Phi",!0);u(h,m,R,"Ψ","\\Psi",!0);u(h,m,R,"Ω","\\Omega",!0);u(h,m,R,"A","Α");u(h,m,R,"B","Β");u(h,m,R,"E","Ε");u(h,m,R,"Z","Ζ");u(h,m,R,"H","Η");u(h,m,R,"I","Ι");u(h,m,R,"K","Κ");u(h,m,R,"M","Μ");u(h,m,R,"N","Ν");u(h,m,R,"O","Ο");u(h,m,R,"P","Ρ");u(h,m,R,"T","Τ");u(h,m,R,"X","Χ");u(h,m,R,"¬","\\neg",!0);u(h,m,R,"¬","\\lnot");u(h,m,R,"⊤","\\top");u(h,m,R,"⊥","\\bot");u(h,m,R,"∅","\\emptyset");u(h,A,R,"∅","\\varnothing");u(h,m,xe,"α","\\alpha",!0);u(h,m,xe,"β","\\beta",!0);u(h,m,xe,"γ","\\gamma",!0);u(h,m,xe,"δ","\\delta",!0);u(h,m,xe,"ϵ","\\epsilon",!0);u(h,m,xe,"ζ","\\zeta",!0);u(h,m,xe,"η","\\eta",!0);u(h,m,xe,"θ","\\theta",!0);u(h,m,xe,"ι","\\iota",!0);u(h,m,xe,"κ","\\kappa",!0);u(h,m,xe,"λ","\\lambda",!0);u(h,m,xe,"μ","\\mu",!0);u(h,m,xe,"ν","\\nu",!0);u(h,m,xe,"ξ","\\xi",!0);u(h,m,xe,"ο","\\omicron",!0);u(h,m,xe,"π","\\pi",!0);u(h,m,xe,"ρ","\\rho",!0);u(h,m,xe,"σ","\\sigma",!0);u(h,m,xe,"τ","\\tau",!0);u(h,m,xe,"υ","\\upsilon",!0);u(h,m,xe,"ϕ","\\phi",!0);u(h,m,xe,"χ","\\chi",!0);u(h,m,xe,"ψ","\\psi",!0);u(h,m,xe,"ω","\\omega",!0);u(h,m,xe,"ε","\\varepsilon",!0);u(h,m,xe,"ϑ","\\vartheta",!0);u(h,m,xe,"ϖ","\\varpi",!0);u(h,m,xe,"ϱ","\\varrho",!0);u(h,m,xe,"ς","\\varsigma",!0);u(h,m,xe,"φ","\\varphi",!0);u(h,m,ce,"∗","*",!0);u(h,m,ce,"+","+");u(h,m,ce,"−","-",!0);u(h,m,ce,"⋅","\\cdot",!0);u(h,m,ce,"∘","\\circ",!0);u(h,m,ce,"÷","\\div",!0);u(h,m,ce,"±","\\pm",!0);u(h,m,ce,"×","\\times",!0);u(h,m,ce,"∩","\\cap",!0);u(h,m,ce,"∪","\\cup",!0);u(h,m,ce,"∖","\\setminus",!0);u(h,m,ce,"∧","\\land");u(h,m,ce,"∨","\\lor");u(h,m,ce,"∧","\\wedge",!0);u(h,m,ce,"∨","\\vee",!0);u(h,m,R,"√","\\surd");u(h,m,jt,"⟨","\\langle",!0);u(h,m,jt,"∣","\\lvert");u(h,m,jt,"∥","\\lVert");u(h,m,Dt,"?","?");u(h,m,Dt,"!","!");u(h,m,Dt,"⟩","\\rangle",!0);u(h,m,Dt,"∣","\\rvert");u(h,m,Dt,"∥","\\rVert");u(h,m,C,"=","=");u(h,m,C,":",":");u(h,m,C,"≈","\\approx",!0);u(h,m,C,"≅","\\cong",!0);u(h,m,C,"≥","\\ge");u(h,m,C,"≥","\\geq",!0);u(h,m,C,"←","\\gets");u(h,m,C,">","\\gt",!0);u(h,m,C,"∈","\\in",!0);u(h,m,C,"","\\@not");u(h,m,C,"⊂","\\subset",!0);u(h,m,C,"⊃","\\supset",!0);u(h,m,C,"⊆","\\subseteq",!0);u(h,m,C,"⊇","\\supseteq",!0);u(h,A,C,"⊈","\\nsubseteq",!0);u(h,A,C,"⊉","\\nsupseteq",!0);u(h,m,C,"⊨","\\models");u(h,m,C,"←","\\leftarrow",!0);u(h,m,C,"≤","\\le");u(h,m,C,"≤","\\leq",!0);u(h,m,C,"<","\\lt",!0);u(h,m,C,"→","\\rightarrow",!0);u(h,m,C,"→","\\to");u(h,A,C,"≱","\\ngeq",!0);u(h,A,C,"≰","\\nleq",!0);u(h,m,Fr," ","\\ ");u(h,m,Fr," ","\\space");u(h,m,Fr," ","\\nobreakspace");u(K,m,Fr," ","\\ ");u(K,m,Fr," "," ");u(K,m,Fr," ","\\space");u(K,m,Fr," ","\\nobreakspace");u(h,m,Fr,null,"\\nobreak");u(h,m,Fr,null,"\\allowbreak");u(h,m,Zs,",",",");u(h,m,Zs,";",";");u(h,A,ce,"⊼","\\barwedge",!0);u(h,A,ce,"⊻","\\veebar",!0);u(h,m,ce,"⊙","\\odot",!0);u(h,m,ce,"⊕","\\oplus",!0);u(h,m,ce,"⊗","\\otimes",!0);u(h,m,R,"∂","\\partial",!0);u(h,m,ce,"⊘","\\oslash",!0);u(h,A,ce,"⊚","\\circledcirc",!0);u(h,A,ce,"⊡","\\boxdot",!0);u(h,m,ce,"△","\\bigtriangleup");u(h,m,ce,"▽","\\bigtriangledown");u(h,m,ce,"†","\\dagger");u(h,m,ce,"⋄","\\diamond");u(h,m,ce,"⋆","\\star");u(h,m,ce,"◃","\\triangleleft");u(h,m,ce,"▹","\\triangleright");u(h,m,jt,"{","\\{");u(K,m,R,"{","\\{");u(K,m,R,"{","\\textbraceleft");u(h,m,Dt,"}","\\}");u(K,m,R,"}","\\}");u(K,m,R,"}","\\textbraceright");u(h,m,jt,"{","\\lbrace");u(h,m,Dt,"}","\\rbrace");u(h,m,jt,"[","\\lbrack",!0);u(K,m,R,"[","\\lbrack",!0);u(h,m,Dt,"]","\\rbrack",!0);u(K,m,R,"]","\\rbrack",!0);u(h,m,jt,"(","\\lparen",!0);u(h,m,Dt,")","\\rparen",!0);u(K,m,R,"<","\\textless",!0);u(K,m,R,">","\\textgreater",!0);u(h,m,jt,"⌊","\\lfloor",!0);u(h,m,Dt,"⌋","\\rfloor",!0);u(h,m,jt,"⌈","\\lceil",!0);u(h,m,Dt,"⌉","\\rceil",!0);u(h,m,R,"\\","\\backslash");u(h,m,R,"∣","|");u(h,m,R,"∣","\\vert");u(K,m,R,"|","\\textbar",!0);u(h,m,R,"∥","\\|");u(h,m,R,"∥","\\Vert");u(K,m,R,"∥","\\textbardbl");u(K,m,R,"~","\\textasciitilde");u(K,m,R,"\\","\\textbackslash");u(K,m,R,"^","\\textasciicircum");u(h,m,C,"↑","\\uparrow",!0);u(h,m,C,"⇑","\\Uparrow",!0);u(h,m,C,"↓","\\downarrow",!0);u(h,m,C,"⇓","\\Downarrow",!0);u(h,m,C,"↕","\\updownarrow",!0);u(h,m,C,"⇕","\\Updownarrow",!0);u(h,m,ht,"∐","\\coprod");u(h,m,ht,"⋁","\\bigvee");u(h,m,ht,"⋀","\\bigwedge");u(h,m,ht,"⨄","\\biguplus");u(h,m,ht,"⋂","\\bigcap");u(h,m,ht,"⋃","\\bigcup");u(h,m,ht,"∫","\\int");u(h,m,ht,"∫","\\intop");u(h,m,ht,"∬","\\iint");u(h,m,ht,"∭","\\iiint");u(h,m,ht,"∏","\\prod");u(h,m,ht,"∑","\\sum");u(h,m,ht,"⨂","\\bigotimes");u(h,m,ht,"⨁","\\bigoplus");u(h,m,ht,"⨀","\\bigodot");u(h,m,ht,"∮","\\oint");u(h,m,ht,"∯","\\oiint");u(h,m,ht,"∰","\\oiiint");u(h,m,ht,"⨆","\\bigsqcup");u(h,m,ht,"∫","\\smallint");u(K,m,Hn,"…","\\textellipsis");u(h,m,Hn,"…","\\mathellipsis");u(K,m,Hn,"…","\\ldots",!0);u(h,m,Hn,"…","\\ldots",!0);u(h,m,Hn,"⋯","\\@cdots",!0);u(h,m,Hn,"⋱","\\ddots",!0);u(h,m,R,"⋮","\\varvdots");u(K,m,R,"⋮","\\varvdots");u(h,m,rt,"ˊ","\\acute");u(h,m,rt,"ˋ","\\grave");u(h,m,rt,"¨","\\ddot");u(h,m,rt,"~","\\tilde");u(h,m,rt,"ˉ","\\bar");u(h,m,rt,"˘","\\breve");u(h,m,rt,"ˇ","\\check");u(h,m,rt,"^","\\hat");u(h,m,rt,"⃗","\\vec");u(h,m,rt,"˙","\\dot");u(h,m,rt,"˚","\\mathring");u(h,m,xe,"","\\@imath");u(h,m,xe,"","\\@jmath");u(h,m,R,"ı","ı");u(h,m,R,"ȷ","ȷ");u(K,m,R,"ı","\\i",!0);u(K,m,R,"ȷ","\\j",!0);u(K,m,R,"ß","\\ss",!0);u(K,m,R,"æ","\\ae",!0);u(K,m,R,"œ","\\oe",!0);u(K,m,R,"ø","\\o",!0);u(K,m,R,"Æ","\\AE",!0);u(K,m,R,"Œ","\\OE",!0);u(K,m,R,"Ø","\\O",!0);u(K,m,rt,"ˊ","\\'");u(K,m,rt,"ˋ","\\`");u(K,m,rt,"ˆ","\\^");u(K,m,rt,"˜","\\~");u(K,m,rt,"ˉ","\\=");u(K,m,rt,"˘","\\u");u(K,m,rt,"˙","\\.");u(K,m,rt,"¸","\\c");u(K,m,rt,"˚","\\r");u(K,m,rt,"ˇ","\\v");u(K,m,rt,"¨",'\\"');u(K,m,rt,"˝","\\H");u(K,m,rt,"◯","\\textcircled");var j1={"--":!0,"---":!0,"``":!0,"''":!0};u(K,m,R,"–","--",!0);u(K,m,R,"–","\\textendash");u(K,m,R,"—","---",!0);u(K,m,R,"—","\\textemdash");u(K,m,R,"‘","`",!0);u(K,m,R,"‘","\\textquoteleft");u(K,m,R,"’","'",!0);u(K,m,R,"’","\\textquoteright");u(K,m,R,"“","``",!0);u(K,m,R,"“","\\textquotedblleft");u(K,m,R,"”","''",!0);u(K,m,R,"”","\\textquotedblright");u(h,m,R,"°","\\degree",!0);u(K,m,R,"°","\\degree");u(K,m,R,"°","\\textdegree",!0);u(h,m,R,"£","\\pounds");u(h,m,R,"£","\\mathsterling",!0);u(K,m,R,"£","\\pounds");u(K,m,R,"£","\\textsterling",!0);u(h,A,R,"✠","\\maltese");u(K,A,R,"✠","\\maltese");var Ql='0123456789/@."';for(var Si=0;Si0)return Qt(i,c,s,r,a.concat(d));if(l){var f,p;if(l==="boldsymbol"){var b=P6(i,s,r,a,n);f=b.fontName,p=[b.fontClass]}else o?(f=W1[l].fontName,p=[l]):(f=q0(l,r.fontWeight,r.fontShape),p=[l,r.fontWeight,r.fontShape]);if(Qs(i,f,s).metrics)return Qt(i,f,s,r,a.concat(p));if(j1.hasOwnProperty(i)&&f.slice(0,10)==="Typewriter"){for(var v=[],x=0;x{if(Yr(t.classes)!==Yr(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var s in e.style)if(e.style.hasOwnProperty(s)&&t.style[s]!==e.style[s])return!1;return!0},j6=t=>{for(var e=0;er&&(r=a.height),a.depth>n&&(n=a.depth),a.maxFontSize>s&&(s=a.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=s},_t=function(e,r,n,s){var i=new A0(e,r,n,s);return vo(i),i},U1=(t,e,r,n)=>new A0(t,e,r,n),U6=function(e,r,n){var s=_t([e],[],r);return s.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),s.style.borderBottomWidth=ae(s.height),s.maxFontSize=1,s},V6=function(e,r,n,s){var i=new go(e,r,n,s);return vo(i),i},V1=function(e){var r=new T0(e);return vo(r),r},W6=function(e,r){return e instanceof T0?_t([],[e],r):e},G6=function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],s=-r[0].shift-r[0].elem.depth,i=s,a=1;a{var r=_t(["mspace"],[],e),n=st(t,e);return r.style.marginRight=ae(n),r},q0=function(e,r,n){var s="";switch(e){case"amsrm":s="AMS";break;case"textrm":s="Main";break;case"textsf":s="SansSerif";break;case"texttt":s="Typewriter";break;default:s=e}var i;return r==="textbf"&&n==="textit"?i="BoldItalic":r==="textbf"?i="Bold":r==="textit"?i="Italic":i="Regular",s+"-"+i},W1={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},G1={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},X6=function(e,r){var[n,s,i]=G1[e],a=new Xr(n),o=new _r([a],{width:ae(s),height:ae(i),style:"width:"+ae(s),viewBox:"0 0 "+1e3*s+" "+1e3*i,preserveAspectRatio:"xMinYMin"}),l=U1(["overlay"],[o],r);return l.height=i,l.style.height=ae(i),l.style.width=ae(s),l},L={fontMap:W1,makeSymbol:Qt,mathsym:B6,makeSpan:_t,makeSvgSpan:U1,makeLineSpan:U6,makeAnchor:V6,makeFragment:V1,wrapFragment:W6,makeVList:K6,makeOrd:H6,makeGlue:Y6,staticSvg:X6,svgData:G1,tryCombineChars:j6},nt={number:3,unit:"mu"},ln={number:4,unit:"mu"},xr={number:5,unit:"mu"},J6={mord:{mop:nt,mbin:ln,mrel:xr,minner:nt},mop:{mord:nt,mop:nt,mrel:xr,minner:nt},mbin:{mord:ln,mop:ln,mopen:ln,minner:ln},mrel:{mord:xr,mop:xr,mopen:xr,minner:xr},mopen:{},mclose:{mop:nt,mbin:ln,mrel:xr,minner:nt},mpunct:{mord:nt,mop:nt,mrel:xr,mopen:nt,mclose:nt,mpunct:nt,minner:nt},minner:{mord:nt,mop:nt,mbin:ln,mrel:xr,mopen:nt,mpunct:nt,minner:nt}},Z6={mord:{mop:nt},mop:{mord:nt,mop:nt},mbin:{},mrel:{},mopen:{},mclose:{mop:nt},mpunct:{},minner:{mop:nt}},K1={},Ms={},Ns={};function oe(t){for(var{type:e,names:r,props:n,handler:s,htmlBuilder:i,mathmlBuilder:a}=t,o={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:s},l=0;l{var y=x.classes[0],M=v.classes[0];y==="mbin"&&we.contains(e5,M)?x.classes[0]="mord":M==="mbin"&&we.contains(Q6,y)&&(v.classes[0]="mord")},{node:f},p,b),sc(i,(v,x)=>{var y=pa(x),M=pa(v),k=y&&M?v.hasClass("mtight")?Z6[y][M]:J6[y][M]:null;if(k)return L.makeGlue(k,c)},{node:f},p,b),i},sc=function t(e,r,n,s,i){s&&e.push(s);for(var a=0;ap=>{e.splice(f+1,0,p),a++})(a)}s&&e.pop()},Y1=function(e){return e instanceof T0||e instanceof go||e instanceof A0&&e.hasClass("enclosing")?e:null},n5=function t(e,r){var n=Y1(e);if(n){var s=n.children;if(s.length){if(r==="right")return t(s[s.length-1],"right");if(r==="left")return t(s[0],"left")}}return e},pa=function(e,r){return e?(r&&(e=n5(e,r)),r5[e.classes[0]]||null):null},g0=function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return Or(r.concat(n))},$e=function(e,r,n){if(!e)return Or();if(Ms[e.type]){var s=Ms[e.type](e,r);if(n&&r.size!==n.size){s=Or(r.sizingClasses(n),[s],r);var i=r.sizeMultiplier/n.sizeMultiplier;s.height*=i,s.depth*=i}return s}else throw new te("Got group of unknown type: '"+e.type+"'")};function j0(t,e){var r=Or(["base"],t,e),n=Or(["strut"]);return n.style.height=ae(r.height+r.depth),r.depth&&(n.style.verticalAlign=ae(-r.depth)),r.children.unshift(n),r}function ma(t,e){var r=null;t.length===1&&t[0].type==="tag"&&(r=t[0].tag,t=t[0].body);var n=pt(t,e,"root"),s;n.length===2&&n[1].hasClass("tag")&&(s=n.pop());for(var i=[],a=[],o=0;o0&&(i.push(j0(a,e)),a=[]),i.push(n[o]));a.length>0&&i.push(j0(a,e));var c;r?(c=j0(pt(r,e,!0)),c.classes=["tag"],i.push(c)):s&&i.push(s);var d=Or(["katex-html"],i);if(d.setAttribute("aria-hidden","true"),c){var f=c.children[0];f.style.height=ae(d.height+d.depth),d.depth&&(f.style.verticalAlign=ae(-d.depth))}return d}function X1(t){return new T0(t)}class Bt{constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=Yr(this.classes));for(var n=0;n0&&(e+=' class ="'+we.escape(Yr(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}}class pr{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return we.escape(this.toText())}toText(){return this.text}}class s5{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",ae(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var ee={MathNode:Bt,TextNode:pr,SpaceNode:s5,newDocumentFragment:X1},Xt=function(e,r,n){return Qe[r][e]&&Qe[r][e].replace&&e.charCodeAt(0)!==55349&&!(j1.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=Qe[r][e].replace),new ee.TextNode(e)},bo=function(e){return e.length===1?e[0]:new ee.MathNode("mrow",e)},yo=function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var s=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathsfit")return"sans-serif-italic";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var i=e.text;if(we.contains(["\\imath","\\jmath"],i))return null;Qe[s][i]&&Qe[s][i].replace&&(i=Qe[s][i].replace);var a=L.fontMap[n].fontName;return mo(i,a,s)?L.fontMap[n].variant:null};function Ci(t){if(!t)return!1;if(t.type==="mi"&&t.children.length===1){var e=t.children[0];return e instanceof pr&&e.text==="."}else if(t.type==="mo"&&t.children.length===1&&t.getAttribute("separator")==="true"&&t.getAttribute("lspace")==="0em"&&t.getAttribute("rspace")==="0em"){var r=t.children[0];return r instanceof pr&&r.text===","}else return!1}var Lt=function(e,r,n){if(e.length===1){var s=Xe(e[0],r);return n&&s instanceof Bt&&s.type==="mo"&&(s.setAttribute("lspace","0em"),s.setAttribute("rspace","0em")),[s]}for(var i=[],a,o=0;o=1&&(a.type==="mn"||Ci(a))){var c=l.children[0];c instanceof Bt&&c.type==="mn"&&(c.children=[...a.children,...c.children],i.pop())}else if(a.type==="mi"&&a.children.length===1){var d=a.children[0];if(d instanceof pr&&d.text==="̸"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var f=l.children[0];f instanceof pr&&f.text.length>0&&(f.text=f.text.slice(0,1)+"̸"+f.text.slice(1),i.pop())}}}i.push(l),a=l}return i},Jr=function(e,r,n){return bo(Lt(e,r,n))},Xe=function(e,r){if(!e)return new ee.MathNode("mrow");if(Ns[e.type]){var n=Ns[e.type](e,r);return n}else throw new te("Got group of unknown type: '"+e.type+"'")};function ic(t,e,r,n,s){var i=Lt(t,r),a;i.length===1&&i[0]instanceof Bt&&we.contains(["mrow","mtable"],i[0].type)?a=i[0]:a=new ee.MathNode("mrow",i);var o=new ee.MathNode("annotation",[new ee.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var l=new ee.MathNode("semantics",[a,o]),c=new ee.MathNode("math",[l]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");var d=s?"katex":"katex-mathml";return L.makeSpan([d],[c])}var J1=function(e){return new Tr({style:e.displayMode?ke.DISPLAY:ke.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Z1=function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=L.makeSpan(n,[e])}return e},i5=function(e,r,n){var s=J1(n),i;if(n.output==="mathml")return ic(e,r,s,n.displayMode,!0);if(n.output==="html"){var a=ma(e,s);i=L.makeSpan(["katex"],[a])}else{var o=ic(e,r,s,n.displayMode,!1),l=ma(e,s);i=L.makeSpan(["katex"],[o,l])}return Z1(i,n)},a5=function(e,r,n){var s=J1(n),i=ma(e,s),a=L.makeSpan(["katex"],[i]);return Z1(a,n)},o5={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},l5=function(e){var r=new ee.MathNode("mo",[new ee.TextNode(o5[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},c5={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},u5=function(e){return e.type==="ordgroup"?e.body.length:1},d5=function(e,r){function n(){var o=4e5,l=e.label.slice(1);if(we.contains(["widehat","widecheck","widetilde","utilde"],l)){var c=e,d=u5(c.base),f,p,b;if(d>5)l==="widehat"||l==="widecheck"?(f=420,o=2364,b=.42,p=l+"4"):(f=312,o=2340,b=.34,p="tilde4");else{var v=[1,1,2,2,3,3][d];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][v],f=[0,239,300,360,420][v],b=[0,.24,.3,.3,.36,.42][v],p=l+v):(o=[0,600,1033,2339,2340][v],f=[0,260,286,306,312][v],b=[0,.26,.286,.3,.306,.34][v],p="tilde"+v)}var x=new Xr(p),y=new _r([x],{width:"100%",height:ae(b),viewBox:"0 0 "+o+" "+f,preserveAspectRatio:"none"});return{span:L.makeSvgSpan([],[y],r),minWidth:0,height:b}}else{var M=[],k=c5[l],[T,N,I]=k,O=I/1e3,z=T.length,W,U;if(z===1){var he=k[3];W=["hide-tail"],U=[he]}else if(z===2)W=["halfarrow-left","halfarrow-right"],U=["xMinYMin","xMaxYMin"];else if(z===3)W=["brace-left","brace-center","brace-right"],U=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+z+" children.");for(var ge=0;ge0&&(s.style.minWidth=ae(i)),s},h5=function(e,r,n,s,i){var a,o=e.height+e.depth+n+s;if(/fbox|color|angl/.test(r)){if(a=L.makeSpan(["stretchy",r],[],i),r==="fbox"){var l=i.color&&i.getColor();l&&(a.style.borderColor=l)}}else{var c=[];/^[bx]cancel$/.test(r)&&c.push(new ha({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&c.push(new ha({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var d=new _r(c,{width:"100%",height:ae(o)});a=L.makeSvgSpan([],[d],i)}return a.height=o,a.style.height=ae(o),a},Lr={encloseSpan:h5,mathMLnode:l5,svgSpan:d5};function Re(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function wo(t){var e=ei(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function ei(t){return t&&(t.type==="atom"||F6.hasOwnProperty(t.type))?t:null}var xo=(t,e)=>{var r,n,s;t&&t.type==="supsub"?(n=Re(t.base,"accent"),r=n.base,t.base=r,s=L6($e(t,e)),t.base=n):(n=Re(t,"accent"),r=n.base);var i=$e(r,e.havingCrampedStyle()),a=n.isShifty&&we.isCharacterBox(r),o=0;if(a){var l=we.getBaseElem(r),c=$e(l,e.havingCrampedStyle());o=Zl(c).skew}var d=n.label==="\\c",f=d?i.height+i.depth:Math.min(i.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=Lr.svgSpan(n,e),p=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+ae(2*o)+")",marginLeft:ae(2*o)}:void 0}]},e);else{var b,v;n.label==="\\vec"?(b=L.staticSvg("vec",e),v=L.svgData.vec[1]):(b=L.makeOrd({mode:n.mode,text:n.label},e,"textord"),b=Zl(b),b.italic=0,v=b.width,d&&(f+=b.depth)),p=L.makeSpan(["accent-body"],[b]);var x=n.label==="\\textcircled";x&&(p.classes.push("accent-full"),f=i.height);var y=o;x||(y-=v/2),p.style.left=ae(y),n.label==="\\textcircled"&&(p.style.top=".2em"),p=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-f},{type:"elem",elem:p}]},e)}var M=L.makeSpan(["mord","accent"],[p],e);return s?(s.children[0]=M,s.height=Math.max(M.height,s.height),s.classes[0]="mord",s):M},Q1=(t,e)=>{var r=t.isStretchy?Lr.mathMLnode(t.label):new ee.MathNode("mo",[Xt(t.label,t.mode)]),n=new ee.MathNode("mover",[Xe(t.base,e),r]);return n.setAttribute("accent","true"),n},f5=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));oe({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(t,e)=>{var r=Ds(e[0]),n=!f5.test(t.funcName),s=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:s,base:r}},htmlBuilder:xo,mathmlBuilder:Q1});oe({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:xo,mathmlBuilder:Q1});oe({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:s}},htmlBuilder:(t,e)=>{var r=$e(t.base,e),n=Lr.svgSpan(t,e),s=t.label==="\\utilde"?.12:0,i=L.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:s},{type:"elem",elem:r}]},e);return L.makeSpan(["mord","accentunder"],[i],e)},mathmlBuilder:(t,e)=>{var r=Lr.mathMLnode(t.label),n=new ee.MathNode("munder",[Xe(t.base,e),r]);return n.setAttribute("accentunder","true"),n}});var U0=t=>{var e=new ee.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};oe({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:s}=t;return{type:"xArrow",mode:n.mode,label:s,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),s=L.wrapFragment($e(t.body,n,e),e),i=t.label.slice(0,2)==="\\x"?"x":"cd";s.classes.push(i+"-arrow-pad");var a;t.below&&(n=e.havingStyle(r.sub()),a=L.wrapFragment($e(t.below,n,e),e),a.classes.push(i+"-arrow-pad"));var o=Lr.svgSpan(t,e),l=-e.fontMetrics().axisHeight+.5*o.height,c=-e.fontMetrics().axisHeight-.5*o.height-.111;(s.depth>.25||t.label==="\\xleftequilibrium")&&(c-=s.depth);var d;if(a){var f=-e.fontMetrics().axisHeight+a.height+.5*o.height+.111;d=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:c},{type:"elem",elem:o,shift:l},{type:"elem",elem:a,shift:f}]},e)}else d=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:c},{type:"elem",elem:o,shift:l}]},e);return d.children[0].children[0].children[1].classes.push("svg-align"),L.makeSpan(["mrel","x-arrow"],[d],e)},mathmlBuilder(t,e){var r=Lr.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var s=U0(Xe(t.body,e));if(t.below){var i=U0(Xe(t.below,e));n=new ee.MathNode("munderover",[r,i,s])}else n=new ee.MathNode("mover",[r,s])}else if(t.below){var a=U0(Xe(t.below,e));n=new ee.MathNode("munder",[r,a])}else n=U0(),n=new ee.MathNode("mover",[r,n]);return n}});var p5=L.makeSpan;function ed(t,e){var r=pt(t.body,e,!0);return p5([t.mclass],r,e)}function td(t,e){var r,n=Lt(t.body,e);return t.mclass==="minner"?r=new ee.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new ee.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new ee.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}oe({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,s=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:ct(s),isCharacterBox:we.isCharacterBox(s)}},htmlBuilder:ed,mathmlBuilder:td});var ti=t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};oe({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:ti(e[0]),body:ct(e[1]),isCharacterBox:we.isCharacterBox(e[1])}}});oe({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,s=e[1],i=e[0],a;n!=="\\stackrel"?a=ti(s):a="mrel";var o={type:"op",mode:s.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:ct(s)},l={type:"supsub",mode:i.mode,base:o,sup:n==="\\underset"?null:i,sub:n==="\\underset"?i:null};return{type:"mclass",mode:r.mode,mclass:a,body:[l],isCharacterBox:we.isCharacterBox(l)}},htmlBuilder:ed,mathmlBuilder:td});oe({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:ti(e[0]),body:ct(e[0])}},htmlBuilder(t,e){var r=pt(t.body,e,!0),n=L.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=Lt(t.body,e),n=new ee.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});var m5={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},ac=()=>({type:"styling",body:[],mode:"math",style:"display"}),oc=t=>t.type==="textord"&&t.text==="@",g5=(t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e;function v5(t,e,r){var n=m5[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var s=r.callFunction("\\\\cdleft",[e[0]],[]),i={type:"atom",text:n,mode:"math",family:"rel"},a=r.callFunction("\\Big",[i],[]),o=r.callFunction("\\\\cdright",[e[1]],[]),l={type:"ordgroup",mode:"math",body:[s,a,o]};return r.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var c={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[c],[])}default:return{type:"textord",text:" ",mode:"math"}}}function b5(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new te("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],s=[n],i=0;i-1))if("<>AV".indexOf(c)>-1)for(var f=0;f<2;f++){for(var p=!0,b=l+1;bAV=|." after @',a[l]);var v=v5(c,d,t),x={type:"styling",body:[v],mode:"math",style:"display"};n.push(x),o=ac()}i%2===0?n.push(o):n.shift(),n=[],s.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var y=new Array(s[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:s,arraystretch:1,addJot:!0,rowGaps:[null],cols:y,colSeparationType:"CD",hLinesBeforeRow:new Array(s.length+1).fill([])}}oe({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=L.wrapFragment($e(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=ae(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new ee.MathNode("mrow",[Xe(t.label,e)]);return r=new ee.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new ee.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});oe({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=L.wrapFragment($e(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new ee.MathNode("mrow",[Xe(t.fragment,e)])}});oe({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=Re(e[0],"ordgroup"),s=n.body,i="",a=0;a=1114111)throw new te("\\@char with invalid code point "+i);return l<=65535?c=String.fromCharCode(l):(l-=65536,c=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:r.mode,text:c}}});var rd=(t,e)=>{var r=pt(t.body,e.withColor(t.color),!1);return L.makeFragment(r)},nd=(t,e)=>{var r=Lt(t.body,e.withColor(t.color)),n=new ee.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n};oe({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=Re(e[0],"color-token").color,s=e[1];return{type:"color",mode:r.mode,color:n,body:ct(s)}},htmlBuilder:rd,mathmlBuilder:nd});oe({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,s=Re(e[0],"color-token").color;r.gullet.macros.set("\\current@color",s);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:s,body:i}},htmlBuilder:rd,mathmlBuilder:nd});oe({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,s=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:s&&Re(s,"size").value}},htmlBuilder(t,e){var r=L.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=ae(st(t.size,e)))),r},mathmlBuilder(t,e){var r=new ee.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",ae(st(t.size,e)))),r}});var ga={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},sd=t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new te("Expected a control sequence",t);return e},y5=t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},id=(t,e,r,n)=>{var s=t.gullet.macros.get(r.text);s==null&&(r.noexpand=!0,s={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,s,n)};oe({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(ga[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=ga[n.text]),Re(e.parseFunction(),"internal");throw new te("Invalid token after macro prefix",n)}});oe({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),s=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(s))throw new te("Expected a control sequence",n);for(var i=0,a,o=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){a=e.gullet.future(),o[i].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new te('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==i+1)throw new te('Argument number "'+n.text+'" out of order');i++,o.push([])}else{if(n.text==="EOF")throw new te("Expected a macro definition");o[i].push(n.text)}var{tokens:l}=e.gullet.consumeArg();return a&&l.unshift(a),(r==="\\edef"||r==="\\xdef")&&(l=e.gullet.expandTokens(l),l.reverse()),e.gullet.macros.set(s,{tokens:l,numArgs:i,delimiters:o},r===ga[r]),{type:"internal",mode:e.mode}}});oe({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=sd(e.gullet.popToken());e.gullet.consumeSpaces();var s=y5(e);return id(e,n,s,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});oe({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=sd(e.gullet.popToken()),s=e.gullet.popToken(),i=e.gullet.popToken();return id(e,n,i,r==="\\\\globalfuture"),e.gullet.pushToken(i),e.gullet.pushToken(s),{type:"internal",mode:e.mode}}});var Zn=function(e,r,n){var s=Qe.math[e]&&Qe.math[e].replace,i=mo(s||e,r,n);if(!i)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return i},ko=function(e,r,n,s){var i=n.havingBaseStyle(r),a=L.makeSpan(s.concat(i.sizingClasses(n)),[e],n),o=i.sizeMultiplier/n.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=i.sizeMultiplier,a},ad=function(e,r,n){var s=r.havingBaseStyle(n),i=(1-r.sizeMultiplier/s.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=ae(i),e.height-=i,e.depth+=i},w5=function(e,r,n,s,i,a){var o=L.makeSymbol(e,"Main-Regular",i,s),l=ko(o,r,s,a);return n&&ad(l,s,r),l},x5=function(e,r,n,s){return L.makeSymbol(e,"Size"+r+"-Regular",n,s)},od=function(e,r,n,s,i,a){var o=x5(e,r,i,s),l=ko(L.makeSpan(["delimsizing","size"+r],[o],s),ke.TEXT,s,a);return n&&ad(l,s,ke.TEXT),l},Mi=function(e,r,n){var s;r==="Size1-Regular"?s="delim-size1":s="delim-size4";var i=L.makeSpan(["delimsizinginner",s],[L.makeSpan([],[L.makeSymbol(e,r,n)])]);return{type:"elem",elem:i}},Ni=function(e,r,n){var s=fr["Size4-Regular"][e.charCodeAt(0)]?fr["Size4-Regular"][e.charCodeAt(0)][4]:fr["Size1-Regular"][e.charCodeAt(0)][4],i=new Xr("inner",E6(e,Math.round(1e3*r))),a=new _r([i],{width:ae(s),height:ae(r),style:"width:"+ae(s),viewBox:"0 0 "+1e3*s+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),o=L.makeSvgSpan([],[a],n);return o.height=r,o.style.height=ae(r),o.style.width=ae(s),{type:"elem",elem:o}},va=.008,V0={type:"kern",size:-1*va},k5=["|","\\lvert","\\rvert","\\vert"],S5=["\\|","\\lVert","\\rVert","\\Vert"],ld=function(e,r,n,s,i,a){var o,l,c,d,f="",p=0;o=c=d=e,l=null;var b="Size1-Regular";e==="\\uparrow"?c=d="⏐":e==="\\Uparrow"?c=d="‖":e==="\\downarrow"?o=c="⏐":e==="\\Downarrow"?o=c="‖":e==="\\updownarrow"?(o="\\uparrow",c="⏐",d="\\downarrow"):e==="\\Updownarrow"?(o="\\Uparrow",c="‖",d="\\Downarrow"):we.contains(k5,e)?(c="∣",f="vert",p=333):we.contains(S5,e)?(c="∥",f="doublevert",p=556):e==="["||e==="\\lbrack"?(o="⎡",c="⎢",d="⎣",b="Size4-Regular",f="lbrack",p=667):e==="]"||e==="\\rbrack"?(o="⎤",c="⎥",d="⎦",b="Size4-Regular",f="rbrack",p=667):e==="\\lfloor"||e==="⌊"?(c=o="⎢",d="⎣",b="Size4-Regular",f="lfloor",p=667):e==="\\lceil"||e==="⌈"?(o="⎡",c=d="⎢",b="Size4-Regular",f="lceil",p=667):e==="\\rfloor"||e==="⌋"?(c=o="⎥",d="⎦",b="Size4-Regular",f="rfloor",p=667):e==="\\rceil"||e==="⌉"?(o="⎤",c=d="⎥",b="Size4-Regular",f="rceil",p=667):e==="("||e==="\\lparen"?(o="⎛",c="⎜",d="⎝",b="Size4-Regular",f="lparen",p=875):e===")"||e==="\\rparen"?(o="⎞",c="⎟",d="⎠",b="Size4-Regular",f="rparen",p=875):e==="\\{"||e==="\\lbrace"?(o="⎧",l="⎨",d="⎩",c="⎪",b="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(o="⎫",l="⎬",d="⎭",c="⎪",b="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(o="⎧",d="⎩",c="⎪",b="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(o="⎫",d="⎭",c="⎪",b="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(o="⎧",d="⎭",c="⎪",b="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(o="⎫",d="⎩",c="⎪",b="Size4-Regular");var v=Zn(o,b,i),x=v.height+v.depth,y=Zn(c,b,i),M=y.height+y.depth,k=Zn(d,b,i),T=k.height+k.depth,N=0,I=1;if(l!==null){var O=Zn(l,b,i);N=O.height+O.depth,I=2}var z=x+T+N,W=Math.max(0,Math.ceil((r-z)/(I*M))),U=z+W*I*M,he=s.fontMetrics().axisHeight;n&&(he*=s.sizeMultiplier);var ge=U/2-he,Ae=[];if(f.length>0){var et=U-x-T,Je=Math.round(U*1e3),ot=C6(f,Math.round(et*1e3)),Fe=new Xr(f,ot),Ie=(p/1e3).toFixed(3)+"em",ve=(Je/1e3).toFixed(3)+"em",Me=new _r([Fe],{width:Ie,height:ve,viewBox:"0 0 "+p+" "+Je}),tt=L.makeSvgSpan([],[Me],s);tt.height=Je/1e3,tt.style.width=Ie,tt.style.height=ve,Ae.push({type:"elem",elem:tt})}else{if(Ae.push(Mi(d,b,i)),Ae.push(V0),l===null){var We=U-x-T+2*va;Ae.push(Ni(c,We,s))}else{var _e=(U-x-T-N)/2+2*va;Ae.push(Ni(c,_e,s)),Ae.push(V0),Ae.push(Mi(l,b,i)),Ae.push(V0),Ae.push(Ni(c,_e,s))}Ae.push(V0),Ae.push(Mi(o,b,i))}var St=s.havingBaseStyle(ke.TEXT),mt=L.makeVList({positionType:"bottom",positionData:ge,children:Ae},St);return ko(L.makeSpan(["delimsizing","mult"],[mt],St),ke.TEXT,s,a)},Di=80,Ri=.08,Ii=function(e,r,n,s,i){var a=A6(e,s,n),o=new Xr(e,a),l=new _r([o],{width:"400em",height:ae(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return L.makeSvgSpan(["hide-tail"],[l],i)},T5=function(e,r){var n=r.havingBaseSizing(),s=hd("\\surd",e*n.sizeMultiplier,dd,n),i=n.sizeMultiplier,a=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),o,l=0,c=0,d=0,f;return s.type==="small"?(d=1e3+1e3*a+Di,e<1?i=1:e<1.4&&(i=.7),l=(1+a+Ri)/i,c=(1+a)/i,o=Ii("sqrtMain",l,d,a,r),o.style.minWidth="0.853em",f=.833/i):s.type==="large"?(d=(1e3+Di)*l0[s.size],c=(l0[s.size]+a)/i,l=(l0[s.size]+a+Ri)/i,o=Ii("sqrtSize"+s.size,l,d,a,r),o.style.minWidth="1.02em",f=1/i):(l=e+a+Ri,c=e+a,d=Math.floor(1e3*e+a)+Di,o=Ii("sqrtTall",l,d,a,r),o.style.minWidth="0.742em",f=1.056),o.height=c,o.style.height=ae(l),{span:o,advanceWidth:f,ruleWidth:(r.fontMetrics().sqrtRuleThickness+a)*i}},cd=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],A5=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],ud=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],l0=[0,1.2,1.8,2.4,3],E5=function(e,r,n,s,i){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),we.contains(cd,e)||we.contains(ud,e))return od(e,r,!1,n,s,i);if(we.contains(A5,e))return ld(e,l0[r],!1,n,s,i);throw new te("Illegal delimiter: '"+e+"'")},C5=[{type:"small",style:ke.SCRIPTSCRIPT},{type:"small",style:ke.SCRIPT},{type:"small",style:ke.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],M5=[{type:"small",style:ke.SCRIPTSCRIPT},{type:"small",style:ke.SCRIPT},{type:"small",style:ke.TEXT},{type:"stack"}],dd=[{type:"small",style:ke.SCRIPTSCRIPT},{type:"small",style:ke.SCRIPT},{type:"small",style:ke.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],N5=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},hd=function(e,r,n,s){for(var i=Math.min(2,3-s.style.size),a=i;ar)return n[a]}return n[n.length-1]},fd=function(e,r,n,s,i,a){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var o;we.contains(ud,e)?o=C5:we.contains(cd,e)?o=dd:o=M5;var l=hd(e,r,o,s);return l.type==="small"?w5(e,l.style,n,s,i,a):l.type==="large"?od(e,l.size,n,s,i,a):ld(e,r,n,s,i,a)},D5=function(e,r,n,s,i,a){var o=s.fontMetrics().axisHeight*s.sizeMultiplier,l=901,c=5/s.fontMetrics().ptPerEm,d=Math.max(r-o,n+o),f=Math.max(d/500*l,2*d-c);return fd(e,f,!0,s,i,a)},Dr={sqrtImage:T5,sizedDelim:E5,sizeToMaxHeight:l0,customSizedDelim:fd,leftRightDelim:D5},lc={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},R5=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function ri(t,e){var r=ei(t);if(r&&we.contains(R5,r.text))return r;throw r?new te("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new te("Invalid delimiter type '"+t.type+"'",t)}oe({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(t,e)=>{var r=ri(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:lc[t.funcName].size,mclass:lc[t.funcName].mclass,delim:r.text}},htmlBuilder:(t,e)=>t.delim==="."?L.makeSpan([t.mclass]):Dr.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),mathmlBuilder:t=>{var e=[];t.delim!=="."&&e.push(Xt(t.delim,t.mode));var r=new ee.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=ae(Dr.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}});function cc(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}oe({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new te("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:ri(e[0],t).text,color:r}}});oe({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var r=ri(e[0],t),n=t.parser;++n.leftrightDepth;var s=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Re(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:s,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:(t,e)=>{cc(t);for(var r=pt(t.body,e,!0,["mopen","mclose"]),n=0,s=0,i=!1,a=0;a{cc(t);var r=Lt(t.body,e);if(t.left!=="."){var n=new ee.MathNode("mo",[Xt(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var s=new ee.MathNode("mo",[Xt(t.right,t.mode)]);s.setAttribute("fence","true"),t.rightColor&&s.setAttribute("mathcolor",t.rightColor),r.push(s)}return bo(r)}});oe({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var r=ri(e[0],t);if(!t.parser.leftrightDepth)throw new te("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},htmlBuilder:(t,e)=>{var r;if(t.delim===".")r=g0(e,[]);else{r=Dr.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},mathmlBuilder:(t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?Xt("|","text"):Xt(t.delim,t.mode),n=new ee.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n}});var So=(t,e)=>{var r=L.wrapFragment($e(t.body,e),e),n=t.label.slice(1),s=e.sizeMultiplier,i,a=0,o=we.isCharacterBox(t.body);if(n==="sout")i=L.makeSpan(["stretchy","sout"]),i.height=e.fontMetrics().defaultRuleThickness/s,a=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var l=st({number:.6,unit:"pt"},e),c=st({number:.35,unit:"ex"},e),d=e.havingBaseSizing();s=s/d.sizeMultiplier;var f=r.height+r.depth+l+c;r.style.paddingLeft=ae(f/2+l);var p=Math.floor(1e3*f*s),b=S6(p),v=new _r([new Xr("phase",b)],{width:"400em",height:ae(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});i=L.makeSvgSpan(["hide-tail"],[v],e),i.style.height=ae(f),a=r.depth+l+c}else{/cancel/.test(n)?o||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var x=0,y=0,M=0;/box/.test(n)?(M=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),x=e.fontMetrics().fboxsep+(n==="colorbox"?0:M),y=x):n==="angl"?(M=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),x=4*M,y=Math.max(0,.25-r.depth)):(x=o?.2:0,y=x),i=Lr.encloseSpan(r,n,x,y,e),/fbox|boxed|fcolorbox/.test(n)?(i.style.borderStyle="solid",i.style.borderWidth=ae(M)):n==="angl"&&M!==.049&&(i.style.borderTopWidth=ae(M),i.style.borderRightWidth=ae(M)),a=r.depth+y,t.backgroundColor&&(i.style.backgroundColor=t.backgroundColor,t.borderColor&&(i.style.borderColor=t.borderColor))}var k;if(t.backgroundColor)k=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:a},{type:"elem",elem:r,shift:0}]},e);else{var T=/cancel|phase/.test(n)?["svg-align"]:[];k=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:i,shift:a,wrapperClasses:T}]},e)}return/cancel/.test(n)&&(k.height=r.height,k.depth=r.depth),/cancel/.test(n)&&!o?L.makeSpan(["mord","cancel-lap"],[k],e):L.makeSpan(["mord"],[k],e)},To=(t,e)=>{var r=0,n=new ee.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Xe(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var s=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+s+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n};oe({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:s}=t,i=Re(e[0],"color-token").color,a=e[1];return{type:"enclose",mode:n.mode,label:s,backgroundColor:i,body:a}},htmlBuilder:So,mathmlBuilder:To});oe({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:s}=t,i=Re(e[0],"color-token").color,a=Re(e[1],"color-token").color,o=e[2];return{type:"enclose",mode:n.mode,label:s,backgroundColor:a,borderColor:i,body:o}},htmlBuilder:So,mathmlBuilder:To});oe({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});oe({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,s=e[0];return{type:"enclose",mode:r.mode,label:n,body:s}},htmlBuilder:So,mathmlBuilder:To});oe({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});var pd={};function gr(t){for(var{type:e,names:r,props:n,handler:s,htmlBuilder:i,mathmlBuilder:a}=t,o={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:s},l=0;l{var e=t.parser.settings;if(!e.displayMode)throw new te("{"+t.envName+"} can be used only in display mode.")};function Ao(t){if(t.indexOf("ed")===-1)return t.indexOf("*")===-1}function rn(t,e,r){var{hskipBeforeAndAfter:n,addJot:s,cols:i,arraystretch:a,colSeparationType:o,autoTag:l,singleRow:c,emptySingleRow:d,maxNumCols:f,leqno:p}=e;if(t.gullet.beginGroup(),c||t.gullet.macros.set("\\cr","\\\\\\relax"),!a){var b=t.gullet.expandMacroAsText("\\arraystretch");if(b==null)a=1;else if(a=parseFloat(b),!a||a<0)throw new te("Invalid \\arraystretch: "+b)}t.gullet.beginGroup();var v=[],x=[v],y=[],M=[],k=l!=null?[]:void 0;function T(){l&&t.gullet.macros.set("\\@eqnsw","1",!0)}function N(){k&&(t.gullet.macros.get("\\df@tag")?(k.push(t.subparse([new Kt("\\df@tag")])),t.gullet.macros.set("\\df@tag",void 0,!0)):k.push(!!l&&t.gullet.macros.get("\\@eqnsw")==="1"))}for(T(),M.push(uc(t));;){var I=t.parseExpression(!1,c?"\\end":"\\\\");t.gullet.endGroup(),t.gullet.beginGroup(),I={type:"ordgroup",mode:t.mode,body:I},r&&(I={type:"styling",mode:t.mode,style:r,body:[I]}),v.push(I);var O=t.fetch().text;if(O==="&"){if(f&&v.length===f){if(c||o)throw new te("Too many tab characters: &",t.nextToken);t.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}t.consume()}else if(O==="\\end"){N(),v.length===1&&I.type==="styling"&&I.body[0].body.length===0&&(x.length>1||!d)&&x.pop(),M.length0&&(T+=.25),c.push({pos:T,isDashed:H[X]})}for(N(a[0]),n=0;n0&&(ge+=k,zH))for(n=0;n=o)){var re=void 0;(s>0||e.hskipBeforeAndAfter)&&(re=we.deflt(_e.pregap,p),re!==0&&(ot=L.makeSpan(["arraycolsep"],[]),ot.style.width=ae(re),Je.push(ot)));var ie=[];for(n=0;n0){for(var Ue=L.makeLineSpan("hline",r,d),S=L.makeLineSpan("hdashline",r,d),D=[{type:"elem",elem:l,shift:0}];c.length>0;){var F=c.pop(),G=F.pos-Ae;F.isDashed?D.push({type:"elem",elem:S,shift:G}):D.push({type:"elem",elem:Ue,shift:G})}l=L.makeVList({positionType:"individualShift",children:D},r)}if(Ie.length===0)return L.makeSpan(["mord"],[l],r);var q=L.makeVList({positionType:"individualShift",children:Ie},r);return q=L.makeSpan(["tag"],[q],r),L.makeFragment([l,q])},I5={c:"center ",l:"left ",r:"right "},br=function(e,r){for(var n=[],s=new ee.MathNode("mtd",[],["mtr-glue"]),i=new ee.MathNode("mtd",[],["mml-eqn-num"]),a=0;a0){var v=e.cols,x="",y=!1,M=0,k=v.length;v[0].type==="separator"&&(p+="top ",M=1),v[v.length-1].type==="separator"&&(p+="bottom ",k-=1);for(var T=M;T0?"left ":"",p+=W[W.length-1].length>0?"right ":"";for(var U=1;U-1?"alignat":"align",i=e.envName==="split",a=rn(e.parser,{cols:n,addJot:!0,autoTag:i?void 0:Ao(e.envName),emptySingleRow:!0,colSeparationType:s,maxNumCols:i?2:void 0,leqno:e.parser.settings.leqno},"display"),o,l=0,c={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var d="",f=0;f0&&b&&(y=1),n[v]={type:"align",align:x,pregap:y,postgap:0}}return a.colSeparationType=b?"align":"alignat",a};gr({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=ei(e[0]),n=r?[e[0]]:Re(e[0],"ordgroup").body,s=n.map(function(a){var o=wo(a),l=o.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new te("Unknown column alignment: "+l,a)}),i={cols:s,hskipBeforeAndAfter:!0,maxNumCols:s.length};return rn(t.parser,i,Eo(t.envName))},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var s=t.parser;if(s.consumeSpaces(),s.fetch().text==="["){if(s.consume(),s.consumeSpaces(),r=s.fetch().text,"lcr".indexOf(r)===-1)throw new te("Expected l or c or r",s.nextToken);s.consume(),s.consumeSpaces(),s.expect("]"),s.consume(),n.cols=[{type:"align",align:r}]}}var i=rn(t.parser,n,Eo(t.envName)),a=Math.max(0,...i.body.map(o=>o.length));return i.cols=new Array(a).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[i],left:e[0],right:e[1],rightColor:void 0}:i},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=rn(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=ei(e[0]),n=r?[e[0]]:Re(e[0],"ordgroup").body,s=n.map(function(a){var o=wo(a),l=o.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new te("Unknown column alignment: "+l,a)});if(s.length>1)throw new te("{subarray} can contain only one column");var i={cols:s,hskipBeforeAndAfter:!1,arraystretch:.5};if(i=rn(t.parser,i,"script"),i.body.length>0&&i.body[0].length>1)throw new te("{subarray} can contain only one column");return i},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=rn(t.parser,e,Eo(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:gd,htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){we.contains(["gather","gather*"],t.envName)&&ni(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Ao(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return rn(t.parser,e,"display")},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:gd,htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){ni(t);var e={autoTag:Ao(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return rn(t.parser,e,"display")},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["CD"],props:{numArgs:0},handler(t){return ni(t),b5(t.parser)},htmlBuilder:vr,mathmlBuilder:br});g("\\nonumber","\\gdef\\@eqnsw{0}");g("\\notag","\\nonumber");oe({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new te(t.funcName+" valid only within array environment")}});var dc=pd;oe({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,s=e[0];if(s.type!=="ordgroup")throw new te("Invalid environment name",s);for(var i="",a=0;a{var r=t.font,n=e.withFont(r);return $e(t.body,n)},bd=(t,e)=>{var r=t.font,n=e.withFont(r);return Xe(t.body,n)},hc={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};oe({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=Ds(e[0]),i=n;return i in hc&&(i=hc[i]),{type:"font",mode:r.mode,font:i.slice(1),body:s}},htmlBuilder:vd,mathmlBuilder:bd});oe({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(t,e)=>{var{parser:r}=t,n=e[0],s=we.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:ti(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:s}}});oe({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(t,e)=>{var{parser:r,funcName:n,breakOnTokenText:s}=t,{mode:i}=r,a=r.parseExpression(!0,s),o="math"+n.slice(1);return{type:"font",mode:i,font:o,body:{type:"ordgroup",mode:r.mode,body:a}}},htmlBuilder:vd,mathmlBuilder:bd});var yd=(t,e)=>{var r=e;return t==="display"?r=r.id>=ke.SCRIPT.id?r.text():ke.DISPLAY:t==="text"&&r.size===ke.DISPLAY.size?r=ke.TEXT:t==="script"?r=ke.SCRIPT:t==="scriptscript"&&(r=ke.SCRIPTSCRIPT),r},Co=(t,e)=>{var r=yd(t.size,e.style),n=r.fracNum(),s=r.fracDen(),i;i=e.havingStyle(n);var a=$e(t.numer,i,e);if(t.continued){var o=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;a.height=a.height0?v=3*p:v=7*p,x=e.fontMetrics().denom1):(f>0?(b=e.fontMetrics().num2,v=p):(b=e.fontMetrics().num3,v=3*p),x=e.fontMetrics().denom2);var y;if(d){var k=e.fontMetrics().axisHeight;b-a.depth-(k+.5*f){var r=new ee.MathNode("mfrac",[Xe(t.numer,e),Xe(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=st(t.barSize,e);r.setAttribute("linethickness",ae(n))}var s=yd(t.size,e.style);if(s.size!==e.style.size){r=new ee.MathNode("mstyle",[r]);var i=s.size===ke.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",i),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var a=[];if(t.leftDelim!=null){var o=new ee.MathNode("mo",[new ee.TextNode(t.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),a.push(o)}if(a.push(r),t.rightDelim!=null){var l=new ee.MathNode("mo",[new ee.TextNode(t.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),a.push(l)}return bo(a)}return r};oe({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=e[0],i=e[1],a,o=null,l=null,c="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,o="(",l=")";break;case"\\\\bracefrac":a=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":a=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":c="display";break;case"\\tfrac":case"\\tbinom":c="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:s,denom:i,hasBarLine:a,leftDelim:o,rightDelim:l,size:c,barSize:null}},htmlBuilder:Co,mathmlBuilder:Mo});oe({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=e[0],i=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:s,denom:i,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});oe({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,s;switch(r){case"\\over":s="\\frac";break;case"\\choose":s="\\binom";break;case"\\atop":s="\\\\atopfrac";break;case"\\brace":s="\\\\bracefrac";break;case"\\brack":s="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:s,token:n}}});var fc=["display","text","script","scriptscript"],pc=function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r};oe({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],s=e[5],i=Ds(e[0]),a=i.type==="atom"&&i.family==="open"?pc(i.text):null,o=Ds(e[1]),l=o.type==="atom"&&o.family==="close"?pc(o.text):null,c=Re(e[2],"size"),d,f=null;c.isBlank?d=!0:(f=c.value,d=f.number>0);var p="auto",b=e[3];if(b.type==="ordgroup"){if(b.body.length>0){var v=Re(b.body[0],"textord");p=fc[Number(v.text)]}}else b=Re(b,"textord"),p=fc[Number(b.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:s,continued:!1,hasBarLine:d,barSize:f,leftDelim:a,rightDelim:l,size:p}},htmlBuilder:Co,mathmlBuilder:Mo});oe({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:s}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Re(e[0],"size").value,token:s}}});oe({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=e[0],i=l6(Re(e[1],"infix").size),a=e[2],o=i.number>0;return{type:"genfrac",mode:r.mode,numer:s,denom:a,continued:!1,hasBarLine:o,barSize:i,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Co,mathmlBuilder:Mo});var wd=(t,e)=>{var r=e.style,n,s;t.type==="supsub"?(n=t.sup?$e(t.sup,e.havingStyle(r.sup()),e):$e(t.sub,e.havingStyle(r.sub()),e),s=Re(t.base,"horizBrace")):s=Re(t,"horizBrace");var i=$e(s.base,e.havingBaseStyle(ke.DISPLAY)),a=Lr.svgSpan(s,e),o;if(s.isOver?(o=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:.1},{type:"elem",elem:a}]},e),o.children[0].children[0].children[1].classes.push("svg-align")):(o=L.makeVList({positionType:"bottom",positionData:i.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:i}]},e),o.children[0].children[0].children[0].classes.push("svg-align")),n){var l=L.makeSpan(["mord",s.isOver?"mover":"munder"],[o],e);s.isOver?o=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:n}]},e):o=L.makeVList({positionType:"bottom",positionData:l.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return L.makeSpan(["mord",s.isOver?"mover":"munder"],[o],e)},_5=(t,e)=>{var r=Lr.mathMLnode(t.label);return new ee.MathNode(t.isOver?"mover":"munder",[Xe(t.base,e),r])};oe({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:wd,mathmlBuilder:_5});oe({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[1],s=Re(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:s})?{type:"href",mode:r.mode,href:s,body:ct(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(t,e)=>{var r=pt(t.body,e,!1);return L.makeAnchor(t.href,[],r,e)},mathmlBuilder:(t,e)=>{var r=Jr(t.body,e);return r instanceof Bt||(r=new Bt("mrow",[r])),r.setAttribute("href",t.href),r}});oe({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=Re(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var s=[],i=0;i{var{parser:r,funcName:n,token:s}=t,i=Re(e[0],"raw").string,a=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(n){case"\\htmlClass":l.class=i,o={command:"\\htmlClass",class:i};break;case"\\htmlId":l.id=i,o={command:"\\htmlId",id:i};break;case"\\htmlStyle":l.style=i,o={command:"\\htmlStyle",style:i};break;case"\\htmlData":{for(var c=i.split(","),d=0;d{var r=pt(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var s=L.makeSpan(n,r,e);for(var i in t.attributes)i!=="class"&&t.attributes.hasOwnProperty(i)&&s.setAttribute(i,t.attributes[i]);return s},mathmlBuilder:(t,e)=>Jr(t.body,e)});oe({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:ct(e[0]),mathml:ct(e[1])}},htmlBuilder:(t,e)=>{var r=pt(t.html,e,!1);return L.makeFragment(r)},mathmlBuilder:(t,e)=>Jr(t.mathml,e)});var _i=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new te("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!B1(n))throw new te("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n};oe({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(t,e,r)=>{var{parser:n}=t,s={number:0,unit:"em"},i={number:.9,unit:"em"},a={number:0,unit:"em"},o="";if(r[0])for(var l=Re(r[0],"raw").string,c=l.split(","),d=0;d{var r=st(t.height,e),n=0;t.totalheight.number>0&&(n=st(t.totalheight,e)-r);var s=0;t.width.number>0&&(s=st(t.width,e));var i={height:ae(r+n)};s>0&&(i.width=ae(s)),n>0&&(i.verticalAlign=ae(-n));var a=new _6(t.src,t.alt,i);return a.height=r,a.depth=n,a},mathmlBuilder:(t,e)=>{var r=new ee.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=st(t.height,e),s=0;if(t.totalheight.number>0&&(s=st(t.totalheight,e)-n,r.setAttribute("valign",ae(-s))),r.setAttribute("height",ae(n+s)),t.width.number>0){var i=st(t.width,e);r.setAttribute("width",ae(i))}return r.setAttribute("src",t.src),r}});oe({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,s=Re(e[0],"size");if(r.settings.strict){var i=n[1]==="m",a=s.value.unit==="mu";i?(a||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+s.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):a&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:s.value}},htmlBuilder(t,e){return L.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=st(t.dimension,e);return new ee.SpaceNode(r)}});oe({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:s}},htmlBuilder:(t,e)=>{var r;t.alignment==="clap"?(r=L.makeSpan([],[$e(t.body,e)]),r=L.makeSpan(["inner"],[r],e)):r=L.makeSpan(["inner"],[$e(t.body,e)]);var n=L.makeSpan(["fix"],[]),s=L.makeSpan([t.alignment],[r,n],e),i=L.makeSpan(["strut"]);return i.style.height=ae(s.height+s.depth),s.depth&&(i.style.verticalAlign=ae(-s.depth)),s.children.unshift(i),s=L.makeSpan(["thinbox"],[s],e),L.makeSpan(["mord","vbox"],[s],e)},mathmlBuilder:(t,e)=>{var r=new ee.MathNode("mpadded",[Xe(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}});oe({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,s=n.mode;n.switchMode("math");var i=r==="\\("?"\\)":"$",a=n.parseExpression(!1,i);return n.expect(i),n.switchMode(s),{type:"styling",mode:n.mode,style:"text",body:a}}});oe({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new te("Mismatched "+t.funcName)}});var mc=(t,e)=>{switch(e.style.size){case ke.DISPLAY.size:return t.display;case ke.TEXT.size:return t.text;case ke.SCRIPT.size:return t.script;case ke.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};oe({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:ct(e[0]),text:ct(e[1]),script:ct(e[2]),scriptscript:ct(e[3])}},htmlBuilder:(t,e)=>{var r=mc(t,e),n=pt(r,e,!1);return L.makeFragment(n)},mathmlBuilder:(t,e)=>{var r=mc(t,e);return Jr(r,e)}});var xd=(t,e,r,n,s,i,a)=>{t=L.makeSpan([],[t]);var o=r&&we.isCharacterBox(r),l,c;if(e){var d=$e(e,n.havingStyle(s.sup()),n);c={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-d.depth)}}if(r){var f=$e(r,n.havingStyle(s.sub()),n);l={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-f.height)}}var p;if(c&&l){var b=n.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+t.depth+a;p=L.makeVList({positionType:"bottom",positionData:b,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:ae(-i)},{type:"kern",size:l.kern},{type:"elem",elem:t},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:ae(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(l){var v=t.height-a;p=L.makeVList({positionType:"top",positionData:v,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:ae(-i)},{type:"kern",size:l.kern},{type:"elem",elem:t}]},n)}else if(c){var x=t.depth+a;p=L.makeVList({positionType:"bottom",positionData:x,children:[{type:"elem",elem:t},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:ae(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var y=[p];if(l&&i!==0&&!o){var M=L.makeSpan(["mspace"],[],n);M.style.marginRight=ae(i),y.unshift(M)}return L.makeSpan(["mop","op-limits"],y,n)},kd=["\\smallint"],qn=(t,e)=>{var r,n,s=!1,i;t.type==="supsub"?(r=t.sup,n=t.sub,i=Re(t.base,"op"),s=!0):i=Re(t,"op");var a=e.style,o=!1;a.size===ke.DISPLAY.size&&i.symbol&&!we.contains(kd,i.name)&&(o=!0);var l;if(i.symbol){var c=o?"Size2-Regular":"Size1-Regular",d="";if((i.name==="\\oiint"||i.name==="\\oiiint")&&(d=i.name.slice(1),i.name=d==="oiint"?"\\iint":"\\iiint"),l=L.makeSymbol(i.name,c,"math",e,["mop","op-symbol",o?"large-op":"small-op"]),d.length>0){var f=l.italic,p=L.staticSvg(d+"Size"+(o?"2":"1"),e);l=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:p,shift:o?.08:0}]},e),i.name="\\"+d,l.classes.unshift("mop"),l.italic=f}}else if(i.body){var b=pt(i.body,e,!0);b.length===1&&b[0]instanceof Yt?(l=b[0],l.classes[0]="mop"):l=L.makeSpan(["mop"],b,e)}else{for(var v=[],x=1;x{var r;if(t.symbol)r=new Bt("mo",[Xt(t.name,t.mode)]),we.contains(kd,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new Bt("mo",Lt(t.body,e));else{r=new Bt("mi",[new pr(t.name.slice(1))]);var n=new Bt("mo",[Xt("⁡","text")]);t.parentIsSupSub?r=new Bt("mrow",[r,n]):r=X1([r,n])}return r},O5={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};oe({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=n;return s.length===1&&(s=O5[s]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:s}},htmlBuilder:qn,mathmlBuilder:E0});oe({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:ct(n)}},htmlBuilder:qn,mathmlBuilder:E0});var L5={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};oe({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:qn,mathmlBuilder:E0});oe({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:qn,mathmlBuilder:E0});oe({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=L5[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:qn,mathmlBuilder:E0});var Sd=(t,e)=>{var r,n,s=!1,i;t.type==="supsub"?(r=t.sup,n=t.sub,i=Re(t.base,"operatorname"),s=!0):i=Re(t,"operatorname");var a;if(i.body.length>0){for(var o=i.body.map(f=>{var p=f.text;return typeof p=="string"?{type:"textord",mode:f.mode,text:p}:f}),l=pt(o,e.withFont("mathrm"),!0),c=0;c{for(var r=Lt(t.body,e.withFont("mathrm")),n=!0,s=0;sd.toText()).join("");r=[new ee.TextNode(o)]}var l=new ee.MathNode("mi",r);l.setAttribute("mathvariant","normal");var c=new ee.MathNode("mo",[Xt("⁡","text")]);return t.parentIsSupSub?new ee.MathNode("mrow",[l,c]):ee.newDocumentFragment([l,c])};oe({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(t,e)=>{var{parser:r,funcName:n}=t,s=e[0];return{type:"operatorname",mode:r.mode,body:ct(s),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Sd,mathmlBuilder:z5});g("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");bn({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?L.makeFragment(pt(t.body,e,!1)):L.makeSpan(["mord"],pt(t.body,e,!0),e)},mathmlBuilder(t,e){return Jr(t.body,e,!0)}});oe({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=$e(t.body,e.havingCrampedStyle()),n=L.makeLineSpan("overline-line",e),s=e.fontMetrics().defaultRuleThickness,i=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*s},{type:"elem",elem:n},{type:"kern",size:s}]},e);return L.makeSpan(["mord","overline"],[i],e)},mathmlBuilder(t,e){var r=new ee.MathNode("mo",[new ee.TextNode("‾")]);r.setAttribute("stretchy","true");var n=new ee.MathNode("mover",[Xe(t.body,e),r]);return n.setAttribute("accent","true"),n}});oe({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:ct(n)}},htmlBuilder:(t,e)=>{var r=pt(t.body,e.withPhantom(),!1);return L.makeFragment(r)},mathmlBuilder:(t,e)=>{var r=Lt(t.body,e);return new ee.MathNode("mphantom",r)}});oe({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},htmlBuilder:(t,e)=>{var r=L.makeSpan([],[$e(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=Lt(ct(t.body),e),n=new ee.MathNode("mphantom",r),s=new ee.MathNode("mpadded",[n]);return s.setAttribute("height","0px"),s.setAttribute("depth","0px"),s}});oe({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},htmlBuilder:(t,e)=>{var r=L.makeSpan(["inner"],[$e(t.body,e.withPhantom())]),n=L.makeSpan(["fix"],[]);return L.makeSpan(["mord","rlap"],[r,n],e)},mathmlBuilder:(t,e)=>{var r=Lt(ct(t.body),e),n=new ee.MathNode("mphantom",r),s=new ee.MathNode("mpadded",[n]);return s.setAttribute("width","0px"),s}});oe({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=Re(e[0],"size").value,s=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:s}},htmlBuilder(t,e){var r=$e(t.body,e),n=st(t.dy,e);return L.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new ee.MathNode("mpadded",[Xe(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});oe({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});oe({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,s=r[0],i=Re(e[0],"size"),a=Re(e[1],"size");return{type:"rule",mode:n.mode,shift:s&&Re(s,"size").value,width:i.value,height:a.value}},htmlBuilder(t,e){var r=L.makeSpan(["mord","rule"],[],e),n=st(t.width,e),s=st(t.height,e),i=t.shift?st(t.shift,e):0;return r.style.borderRightWidth=ae(n),r.style.borderTopWidth=ae(s),r.style.bottom=ae(i),r.width=n,r.height=s+i,r.depth=-i,r.maxFontSize=s*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=st(t.width,e),n=st(t.height,e),s=t.shift?st(t.shift,e):0,i=e.color&&e.getColor()||"black",a=new ee.MathNode("mspace");a.setAttribute("mathbackground",i),a.setAttribute("width",ae(r)),a.setAttribute("height",ae(n));var o=new ee.MathNode("mpadded",[a]);return s>=0?o.setAttribute("height",ae(s)):(o.setAttribute("height",ae(s)),o.setAttribute("depth",ae(-s))),o.setAttribute("voffset",ae(s)),o}});function Td(t,e,r){for(var n=pt(t,e,!1),s=e.sizeMultiplier/r.sizeMultiplier,i=0;i{var r=e.havingSize(t.size);return Td(t.body,r,e)};oe({type:"sizing",names:gc,props:{numArgs:0,allowedInText:!0},handler:(t,e)=>{var{breakOnTokenText:r,funcName:n,parser:s}=t,i=s.parseExpression(!1,r);return{type:"sizing",mode:s.mode,size:gc.indexOf(n)+1,body:i}},htmlBuilder:F5,mathmlBuilder:(t,e)=>{var r=e.havingSize(t.size),n=Lt(t.body,r),s=new ee.MathNode("mstyle",n);return s.setAttribute("mathsize",ae(r.sizeMultiplier)),s}});oe({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(t,e,r)=>{var{parser:n}=t,s=!1,i=!1,a=r[0]&&Re(r[0],"ordgroup");if(a)for(var o="",l=0;l{var r=L.makeSpan([],[$e(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new ee.MathNode("mpadded",[Xe(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r}});oe({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,s=r[0],i=e[0];return{type:"sqrt",mode:n.mode,body:i,index:s}},htmlBuilder(t,e){var r=$e(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=L.wrapFragment(r,e);var n=e.fontMetrics(),s=n.defaultRuleThickness,i=s;e.style.idr.height+r.depth+a&&(a=(a+f-r.height-r.depth)/2);var p=l.height-r.height-a-c;r.style.paddingLeft=ae(d);var b=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:l},{type:"kern",size:c}]},e);if(t.index){var v=e.havingStyle(ke.SCRIPTSCRIPT),x=$e(t.index,v,e),y=.6*(b.height-b.depth),M=L.makeVList({positionType:"shift",positionData:-y,children:[{type:"elem",elem:x}]},e),k=L.makeSpan(["root"],[M]);return L.makeSpan(["mord","sqrt"],[k,b],e)}else return L.makeSpan(["mord","sqrt"],[b],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new ee.MathNode("mroot",[Xe(r,e),Xe(n,e)]):new ee.MathNode("msqrt",[Xe(r,e)])}});var vc={display:ke.DISPLAY,text:ke.TEXT,script:ke.SCRIPT,scriptscript:ke.SCRIPTSCRIPT};oe({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:s}=t,i=s.parseExpression(!0,r),a=n.slice(1,n.length-5);return{type:"styling",mode:s.mode,style:a,body:i}},htmlBuilder(t,e){var r=vc[t.style],n=e.havingStyle(r).withFont("");return Td(t.body,n,e)},mathmlBuilder(t,e){var r=vc[t.style],n=e.havingStyle(r),s=Lt(t.body,n),i=new ee.MathNode("mstyle",s),a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=a[t.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var $5=function(e,r){var n=e.base;if(n)if(n.type==="op"){var s=n.limits&&(r.style.size===ke.DISPLAY.size||n.alwaysHandleSupSub);return s?qn:null}else if(n.type==="operatorname"){var i=n.alwaysHandleSupSub&&(r.style.size===ke.DISPLAY.size||n.limits);return i?Sd:null}else{if(n.type==="accent")return we.isCharacterBox(n.base)?xo:null;if(n.type==="horizBrace"){var a=!e.sub;return a===n.isOver?wd:null}else return null}else return null};bn({type:"supsub",htmlBuilder(t,e){var r=$5(t,e);if(r)return r(t,e);var{base:n,sup:s,sub:i}=t,a=$e(n,e),o,l,c=e.fontMetrics(),d=0,f=0,p=n&&we.isCharacterBox(n);if(s){var b=e.havingStyle(e.style.sup());o=$e(s,b,e),p||(d=a.height-b.fontMetrics().supDrop*b.sizeMultiplier/e.sizeMultiplier)}if(i){var v=e.havingStyle(e.style.sub());l=$e(i,v,e),p||(f=a.depth+v.fontMetrics().subDrop*v.sizeMultiplier/e.sizeMultiplier)}var x;e.style===ke.DISPLAY?x=c.sup1:e.style.cramped?x=c.sup3:x=c.sup2;var y=e.sizeMultiplier,M=ae(.5/c.ptPerEm/y),k=null;if(l){var T=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(a instanceof Yt||T)&&(k=ae(-a.italic))}var N;if(o&&l){d=Math.max(d,x,o.depth+.25*c.xHeight),f=Math.max(f,c.sub2);var I=c.defaultRuleThickness,O=4*I;if(d-o.depth-(l.height-f)0&&(d+=z,f-=z)}var W=[{type:"elem",elem:l,shift:f,marginRight:M,marginLeft:k},{type:"elem",elem:o,shift:-d,marginRight:M}];N=L.makeVList({positionType:"individualShift",children:W},e)}else if(l){f=Math.max(f,c.sub1,l.height-.8*c.xHeight);var U=[{type:"elem",elem:l,marginLeft:k,marginRight:M}];N=L.makeVList({positionType:"shift",positionData:f,children:U},e)}else if(o)d=Math.max(d,x,o.depth+.25*c.xHeight),N=L.makeVList({positionType:"shift",positionData:-d,children:[{type:"elem",elem:o,marginRight:M}]},e);else throw new Error("supsub must have either sup or sub.");var he=pa(a,"right")||"mord";return L.makeSpan([he],[a,L.makeSpan(["msupsub"],[N])],e)},mathmlBuilder(t,e){var r=!1,n,s;t.base&&t.base.type==="horizBrace"&&(s=!!t.sup,s===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var i=[Xe(t.base,e)];t.sub&&i.push(Xe(t.sub,e)),t.sup&&i.push(Xe(t.sup,e));var a;if(r)a=n?"mover":"munder";else if(t.sub)if(t.sup){var c=t.base;c&&c.type==="op"&&c.limits&&e.style===ke.DISPLAY||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(e.style===ke.DISPLAY||c.limits)?a="munderover":a="msubsup"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===ke.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===ke.DISPLAY)?a="munder":a="msub"}else{var o=t.base;o&&o.type==="op"&&o.limits&&(e.style===ke.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===ke.DISPLAY)?a="mover":a="msup"}return new ee.MathNode(a,i)}});bn({type:"atom",htmlBuilder(t,e){return L.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new ee.MathNode("mo",[Xt(t.text,t.mode)]);if(t.family==="bin"){var n=yo(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});var Ad={mi:"italic",mn:"normal",mtext:"normal"};bn({type:"mathord",htmlBuilder(t,e){return L.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new ee.MathNode("mi",[Xt(t.text,t.mode,e)]),n=yo(t,e)||"italic";return n!==Ad[r.type]&&r.setAttribute("mathvariant",n),r}});bn({type:"textord",htmlBuilder(t,e){return L.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=Xt(t.text,t.mode,e),n=yo(t,e)||"normal",s;return t.mode==="text"?s=new ee.MathNode("mtext",[r]):/[0-9]/.test(t.text)?s=new ee.MathNode("mn",[r]):t.text==="\\prime"?s=new ee.MathNode("mo",[r]):s=new ee.MathNode("mi",[r]),n!==Ad[s.type]&&s.setAttribute("mathvariant",n),s}});var Oi={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Li={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};bn({type:"spacing",htmlBuilder(t,e){if(Li.hasOwnProperty(t.text)){var r=Li[t.text].className||"";if(t.mode==="text"){var n=L.makeOrd(t,e,"textord");return n.classes.push(r),n}else return L.makeSpan(["mspace",r],[L.mathsym(t.text,t.mode,e)],e)}else{if(Oi.hasOwnProperty(t.text))return L.makeSpan(["mspace",Oi[t.text]],[],e);throw new te('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(Li.hasOwnProperty(t.text))r=new ee.MathNode("mtext",[new ee.TextNode(" ")]);else{if(Oi.hasOwnProperty(t.text))return new ee.MathNode("mspace");throw new te('Unknown type of space "'+t.text+'"')}return r}});var bc=()=>{var t=new ee.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};bn({type:"tag",mathmlBuilder(t,e){var r=new ee.MathNode("mtable",[new ee.MathNode("mtr",[bc(),new ee.MathNode("mtd",[Jr(t.body,e)]),bc(),new ee.MathNode("mtd",[Jr(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});var yc={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},wc={"\\textbf":"textbf","\\textmd":"textmd"},B5={"\\textit":"textit","\\textup":"textup"},xc=(t,e)=>{var r=t.font;if(r){if(yc[r])return e.withTextFontFamily(yc[r]);if(wc[r])return e.withTextFontWeight(wc[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(B5[r])};oe({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,s=e[0];return{type:"text",mode:r.mode,body:ct(s),font:n}},htmlBuilder(t,e){var r=xc(t,e),n=pt(t.body,r,!0);return L.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=xc(t,e);return Jr(t.body,r)}});oe({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=$e(t.body,e),n=L.makeLineSpan("underline-line",e),s=e.fontMetrics().defaultRuleThickness,i=L.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:s},{type:"elem",elem:n},{type:"kern",size:3*s},{type:"elem",elem:r}]},e);return L.makeSpan(["mord","underline"],[i],e)},mathmlBuilder(t,e){var r=new ee.MathNode("mo",[new ee.TextNode("‾")]);r.setAttribute("stretchy","true");var n=new ee.MathNode("munder",[Xe(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});oe({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=$e(t.body,e),n=e.fontMetrics().axisHeight,s=.5*(r.height-n-(r.depth+n));return L.makeVList({positionType:"shift",positionData:s,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new ee.MathNode("mpadded",[Xe(t.body,e)],["vcenter"])}});oe({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new te("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=kc(t),n=[],s=e.havingStyle(e.style.text()),i=0;it.body.replace(/ /g,t.star?"␣":" "),Ur=K1,Ed=`[ \r + ]`,P5="\\\\[a-zA-Z@]+",H5="\\\\[^\uD800-\uDFFF]",q5="("+P5+")"+Ed+"*",j5=`\\\\( +|[ \r ]+ +?)[ \r ]*`,ba="[̀-ͯ]",U5=new RegExp(ba+"+$"),V5="("+Ed+"+)|"+(j5+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(ba+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(ba+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+q5)+("|"+H5+")");class Sc{constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(V5,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Kt("EOF",new Ft(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new te("Unexpected character: '"+e[r]+"'",new Kt(e[r],new Ft(this,r,r+1)));var s=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[s]===14){var i=e.indexOf(` +`,this.tokenRegex.lastIndex);return i===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=i+1,this.lex()}return new Kt(s,new Ft(this,r,this.tokenRegex.lastIndex))}}class W5{constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new te("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var s=0;s0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var i=this.undefStack[this.undefStack.length-1];i&&!i.hasOwnProperty(e)&&(i[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}}var G5=md;g("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});g("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});g("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});g("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});g("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});g("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");g("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var Tc={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};g("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new te("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=Tc[e.text],n==null||n>=r)throw new te("Invalid base-"+r+" digit "+e.text);for(var s;(s=Tc[t.future().text])!=null&&s{var s=t.consumeArg().tokens;if(s.length!==1)throw new te("\\newcommand's first argument must be a macro name");var i=s[0].text,a=t.isDefined(i);if(a&&!e)throw new te("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!r)throw new te("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var o=0;if(s=t.consumeArg().tokens,s.length===1&&s[0].text==="["){for(var l="",c=t.expandNextToken();c.text!=="]"&&c.text!=="EOF";)l+=c.text,c=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new te("Invalid number of arguments: "+l);o=parseInt(l),s=t.consumeArg().tokens}return a&&n||t.macros.set(i,{tokens:s,numArgs:o}),""};g("\\newcommand",t=>No(t,!1,!0,!1));g("\\renewcommand",t=>No(t,!0,!1,!1));g("\\providecommand",t=>No(t,!0,!0,!0));g("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});g("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});g("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),Ur[r],Qe.math[r],Qe.text[r]),""});g("\\bgroup","{");g("\\egroup","}");g("~","\\nobreakspace");g("\\lq","`");g("\\rq","'");g("\\aa","\\r a");g("\\AA","\\r A");g("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");g("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");g("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");g("ℬ","\\mathscr{B}");g("ℰ","\\mathscr{E}");g("ℱ","\\mathscr{F}");g("ℋ","\\mathscr{H}");g("ℐ","\\mathscr{I}");g("ℒ","\\mathscr{L}");g("ℳ","\\mathscr{M}");g("ℛ","\\mathscr{R}");g("ℭ","\\mathfrak{C}");g("ℌ","\\mathfrak{H}");g("ℨ","\\mathfrak{Z}");g("\\Bbbk","\\Bbb{k}");g("·","\\cdotp");g("\\llap","\\mathllap{\\textrm{#1}}");g("\\rlap","\\mathrlap{\\textrm{#1}}");g("\\clap","\\mathclap{\\textrm{#1}}");g("\\mathstrut","\\vphantom{(}");g("\\underbar","\\underline{\\text{#1}}");g("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');g("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");g("\\ne","\\neq");g("≠","\\neq");g("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");g("∉","\\notin");g("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");g("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");g("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");g("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");g("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");g("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");g("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");g("⟂","\\perp");g("‼","\\mathclose{!\\mkern-0.8mu!}");g("∌","\\notni");g("⌜","\\ulcorner");g("⌝","\\urcorner");g("⌞","\\llcorner");g("⌟","\\lrcorner");g("©","\\copyright");g("®","\\textregistered");g("️","\\textregistered");g("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');g("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');g("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');g("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');g("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");g("⋮","\\vdots");g("\\varGamma","\\mathit{\\Gamma}");g("\\varDelta","\\mathit{\\Delta}");g("\\varTheta","\\mathit{\\Theta}");g("\\varLambda","\\mathit{\\Lambda}");g("\\varXi","\\mathit{\\Xi}");g("\\varPi","\\mathit{\\Pi}");g("\\varSigma","\\mathit{\\Sigma}");g("\\varUpsilon","\\mathit{\\Upsilon}");g("\\varPhi","\\mathit{\\Phi}");g("\\varPsi","\\mathit{\\Psi}");g("\\varOmega","\\mathit{\\Omega}");g("\\substack","\\begin{subarray}{c}#1\\end{subarray}");g("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");g("\\boxed","\\fbox{$\\displaystyle{#1}$}");g("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");g("\\implies","\\DOTSB\\;\\Longrightarrow\\;");g("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");g("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");g("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var Ac={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};g("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in Ac?e=Ac[r]:(r.slice(0,4)==="\\not"||r in Qe.math&&we.contains(["bin","rel"],Qe.math[r].group))&&(e="\\dotsb"),e});var Do={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};g("\\dotso",function(t){var e=t.future().text;return e in Do?"\\ldots\\,":"\\ldots"});g("\\dotsc",function(t){var e=t.future().text;return e in Do&&e!==","?"\\ldots\\,":"\\ldots"});g("\\cdots",function(t){var e=t.future().text;return e in Do?"\\@cdots\\,":"\\@cdots"});g("\\dotsb","\\cdots");g("\\dotsm","\\cdots");g("\\dotsi","\\!\\cdots");g("\\dotsx","\\ldots\\,");g("\\DOTSI","\\relax");g("\\DOTSB","\\relax");g("\\DOTSX","\\relax");g("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");g("\\,","\\tmspace+{3mu}{.1667em}");g("\\thinspace","\\,");g("\\>","\\mskip{4mu}");g("\\:","\\tmspace+{4mu}{.2222em}");g("\\medspace","\\:");g("\\;","\\tmspace+{5mu}{.2777em}");g("\\thickspace","\\;");g("\\!","\\tmspace-{3mu}{.1667em}");g("\\negthinspace","\\!");g("\\negmedspace","\\tmspace-{4mu}{.2222em}");g("\\negthickspace","\\tmspace-{5mu}{.277em}");g("\\enspace","\\kern.5em ");g("\\enskip","\\hskip.5em\\relax");g("\\quad","\\hskip1em\\relax");g("\\qquad","\\hskip2em\\relax");g("\\tag","\\@ifstar\\tag@literal\\tag@paren");g("\\tag@paren","\\tag@literal{({#1})}");g("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new te("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});g("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");g("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");g("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");g("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");g("\\newline","\\\\\\relax");g("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Cd=ae(fr["Main-Regular"]["T".charCodeAt(0)][1]-.7*fr["Main-Regular"]["A".charCodeAt(0)][1]);g("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+Cd+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");g("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+Cd+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");g("\\hspace","\\@ifstar\\@hspacer\\@hspace");g("\\@hspace","\\hskip #1\\relax");g("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");g("\\ordinarycolon",":");g("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");g("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');g("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');g("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');g("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');g("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');g("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');g("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');g("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');g("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');g("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');g("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');g("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');g("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');g("∷","\\dblcolon");g("∹","\\eqcolon");g("≔","\\coloneqq");g("≕","\\eqqcolon");g("⩴","\\Coloneqq");g("\\ratio","\\vcentcolon");g("\\coloncolon","\\dblcolon");g("\\colonequals","\\coloneqq");g("\\coloncolonequals","\\Coloneqq");g("\\equalscolon","\\eqqcolon");g("\\equalscoloncolon","\\Eqqcolon");g("\\colonminus","\\coloneq");g("\\coloncolonminus","\\Coloneq");g("\\minuscolon","\\eqcolon");g("\\minuscoloncolon","\\Eqcolon");g("\\coloncolonapprox","\\Colonapprox");g("\\coloncolonsim","\\Colonsim");g("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");g("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");g("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");g("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");g("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");g("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");g("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");g("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");g("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");g("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");g("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");g("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");g("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");g("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");g("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");g("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");g("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");g("\\nleqq","\\html@mathml{\\@nleqq}{≰}");g("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");g("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");g("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");g("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");g("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");g("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");g("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");g("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");g("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");g("\\imath","\\html@mathml{\\@imath}{ı}");g("\\jmath","\\html@mathml{\\@jmath}{ȷ}");g("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");g("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");g("⟦","\\llbracket");g("⟧","\\rrbracket");g("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");g("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");g("⦃","\\lBrace");g("⦄","\\rBrace");g("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");g("⦵","\\minuso");g("\\darr","\\downarrow");g("\\dArr","\\Downarrow");g("\\Darr","\\Downarrow");g("\\lang","\\langle");g("\\rang","\\rangle");g("\\uarr","\\uparrow");g("\\uArr","\\Uparrow");g("\\Uarr","\\Uparrow");g("\\N","\\mathbb{N}");g("\\R","\\mathbb{R}");g("\\Z","\\mathbb{Z}");g("\\alef","\\aleph");g("\\alefsym","\\aleph");g("\\Alpha","\\mathrm{A}");g("\\Beta","\\mathrm{B}");g("\\bull","\\bullet");g("\\Chi","\\mathrm{X}");g("\\clubs","\\clubsuit");g("\\cnums","\\mathbb{C}");g("\\Complex","\\mathbb{C}");g("\\Dagger","\\ddagger");g("\\diamonds","\\diamondsuit");g("\\empty","\\emptyset");g("\\Epsilon","\\mathrm{E}");g("\\Eta","\\mathrm{H}");g("\\exist","\\exists");g("\\harr","\\leftrightarrow");g("\\hArr","\\Leftrightarrow");g("\\Harr","\\Leftrightarrow");g("\\hearts","\\heartsuit");g("\\image","\\Im");g("\\infin","\\infty");g("\\Iota","\\mathrm{I}");g("\\isin","\\in");g("\\Kappa","\\mathrm{K}");g("\\larr","\\leftarrow");g("\\lArr","\\Leftarrow");g("\\Larr","\\Leftarrow");g("\\lrarr","\\leftrightarrow");g("\\lrArr","\\Leftrightarrow");g("\\Lrarr","\\Leftrightarrow");g("\\Mu","\\mathrm{M}");g("\\natnums","\\mathbb{N}");g("\\Nu","\\mathrm{N}");g("\\Omicron","\\mathrm{O}");g("\\plusmn","\\pm");g("\\rarr","\\rightarrow");g("\\rArr","\\Rightarrow");g("\\Rarr","\\Rightarrow");g("\\real","\\Re");g("\\reals","\\mathbb{R}");g("\\Reals","\\mathbb{R}");g("\\Rho","\\mathrm{P}");g("\\sdot","\\cdot");g("\\sect","\\S");g("\\spades","\\spadesuit");g("\\sub","\\subset");g("\\sube","\\subseteq");g("\\supe","\\supseteq");g("\\Tau","\\mathrm{T}");g("\\thetasym","\\vartheta");g("\\weierp","\\wp");g("\\Zeta","\\mathrm{Z}");g("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");g("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");g("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");g("\\bra","\\mathinner{\\langle{#1}|}");g("\\ket","\\mathinner{|{#1}\\rangle}");g("\\braket","\\mathinner{\\langle{#1}\\rangle}");g("\\Bra","\\left\\langle#1\\right|");g("\\Ket","\\left|#1\\right\\rangle");var Md=t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,s=e.consumeArg().tokens,i=e.consumeArg().tokens,a=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var l=f=>p=>{t&&(p.macros.set("|",a),s.length&&p.macros.set("\\|",o));var b=f;if(!f&&s.length){var v=p.future();v.text==="|"&&(p.popToken(),b=!0)}return{tokens:b?s:n,numArgs:0}};e.macros.set("|",l(!1)),s.length&&e.macros.set("\\|",l(!0));var c=e.consumeArg().tokens,d=e.expandTokens([...i,...c,...r]);return e.macros.endGroup(),{tokens:d.reverse(),numArgs:0}};g("\\bra@ket",Md(!1));g("\\bra@set",Md(!0));g("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");g("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");g("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");g("\\angln","{\\angl n}");g("\\blue","\\textcolor{##6495ed}{#1}");g("\\orange","\\textcolor{##ffa500}{#1}");g("\\pink","\\textcolor{##ff00af}{#1}");g("\\red","\\textcolor{##df0030}{#1}");g("\\green","\\textcolor{##28ae7b}{#1}");g("\\gray","\\textcolor{gray}{#1}");g("\\purple","\\textcolor{##9d38bd}{#1}");g("\\blueA","\\textcolor{##ccfaff}{#1}");g("\\blueB","\\textcolor{##80f6ff}{#1}");g("\\blueC","\\textcolor{##63d9ea}{#1}");g("\\blueD","\\textcolor{##11accd}{#1}");g("\\blueE","\\textcolor{##0c7f99}{#1}");g("\\tealA","\\textcolor{##94fff5}{#1}");g("\\tealB","\\textcolor{##26edd5}{#1}");g("\\tealC","\\textcolor{##01d1c1}{#1}");g("\\tealD","\\textcolor{##01a995}{#1}");g("\\tealE","\\textcolor{##208170}{#1}");g("\\greenA","\\textcolor{##b6ffb0}{#1}");g("\\greenB","\\textcolor{##8af281}{#1}");g("\\greenC","\\textcolor{##74cf70}{#1}");g("\\greenD","\\textcolor{##1fab54}{#1}");g("\\greenE","\\textcolor{##0d923f}{#1}");g("\\goldA","\\textcolor{##ffd0a9}{#1}");g("\\goldB","\\textcolor{##ffbb71}{#1}");g("\\goldC","\\textcolor{##ff9c39}{#1}");g("\\goldD","\\textcolor{##e07d10}{#1}");g("\\goldE","\\textcolor{##a75a05}{#1}");g("\\redA","\\textcolor{##fca9a9}{#1}");g("\\redB","\\textcolor{##ff8482}{#1}");g("\\redC","\\textcolor{##f9685d}{#1}");g("\\redD","\\textcolor{##e84d39}{#1}");g("\\redE","\\textcolor{##bc2612}{#1}");g("\\maroonA","\\textcolor{##ffbde0}{#1}");g("\\maroonB","\\textcolor{##ff92c6}{#1}");g("\\maroonC","\\textcolor{##ed5fa6}{#1}");g("\\maroonD","\\textcolor{##ca337c}{#1}");g("\\maroonE","\\textcolor{##9e034e}{#1}");g("\\purpleA","\\textcolor{##ddd7ff}{#1}");g("\\purpleB","\\textcolor{##c6b9fc}{#1}");g("\\purpleC","\\textcolor{##aa87ff}{#1}");g("\\purpleD","\\textcolor{##7854ab}{#1}");g("\\purpleE","\\textcolor{##543b78}{#1}");g("\\mintA","\\textcolor{##f5f9e8}{#1}");g("\\mintB","\\textcolor{##edf2df}{#1}");g("\\mintC","\\textcolor{##e0e5cc}{#1}");g("\\grayA","\\textcolor{##f6f7f7}{#1}");g("\\grayB","\\textcolor{##f0f1f2}{#1}");g("\\grayC","\\textcolor{##e3e5e6}{#1}");g("\\grayD","\\textcolor{##d6d8da}{#1}");g("\\grayE","\\textcolor{##babec2}{#1}");g("\\grayF","\\textcolor{##888d93}{#1}");g("\\grayG","\\textcolor{##626569}{#1}");g("\\grayH","\\textcolor{##3b3e40}{#1}");g("\\grayI","\\textcolor{##21242c}{#1}");g("\\kaBlue","\\textcolor{##314453}{#1}");g("\\kaGreen","\\textcolor{##71B307}{#1}");var Nd={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class K5{constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new W5(G5,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new Sc(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,s;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:s,end:n}=this.consumeArg(["]"])}else({tokens:s,start:r,end:n}=this.consumeArg());return this.pushToken(new Kt("EOF",n.loc)),this.pushTokens(s),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var s=this.future(),i,a=0,o=0;do{if(i=this.popToken(),r.push(i),i.text==="{")++a;else if(i.text==="}"){if(--a,a===-1)throw new te("Extra }",i)}else if(i.text==="EOF")throw new te("Unexpected end of input in a macro argument, expected '"+(e&&n?e[o]:"}")+"'",i);if(e&&n)if((a===0||a===1&&e[o]==="{")&&i.text===e[o]){if(++o,o===e.length){r.splice(-o,o);break}}else o=0}while(a!==0||n);return s.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:s,end:i}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new te("The length of delimiters doesn't match the number of args!");for(var n=r[0],s=0;sthis.settings.maxExpand)throw new te("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,s=r.noexpand?null:this._getExpansion(n);if(s==null||e&&s.unexpandable){if(e&&s==null&&n[0]==="\\"&&!this.isDefined(n))throw new te("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var i=s.tokens,a=this.consumeArgs(s.numArgs,s.delimiters);if(s.numArgs){i=i.slice();for(var o=i.length-1;o>=0;--o){var l=i[o];if(l.text==="#"){if(o===0)throw new te("Incomplete placeholder at end of macro body",l);if(l=i[--o],l.text==="#")i.splice(o+1,1);else if(/^[1-9]$/.test(l.text))i.splice(o,2,...a[+l.text-1]);else throw new te("Not a valid argument number",l)}}}return this.pushTokens(i),i.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Kt(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var s=this.stack.pop();s.treatAsRelax&&(s.noexpand=!1,s.treatAsRelax=!1),r.push(s)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var s=typeof r=="function"?r(this):r;if(typeof s=="string"){var i=0;if(s.indexOf("#")!==-1)for(var a=s.replace(/##/g,"");a.indexOf("#"+(i+1))!==-1;)++i;for(var o=new Sc(s,this.settings),l=[],c=o.lex();c.text!=="EOF";)l.push(c),c=o.lex();l.reverse();var d={tokens:l,numArgs:i};return d}return s}isDefined(e){return this.macros.has(e)||Ur.hasOwnProperty(e)||Qe.math.hasOwnProperty(e)||Qe.text.hasOwnProperty(e)||Nd.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:Ur.hasOwnProperty(e)&&!Ur[e].primitive}}var Ec=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,W0=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),zi={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Cc={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class si{constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new K5(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new te("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Kt("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var s=this.fetch();if(si.endOfExpression.indexOf(s.text)!==-1||r&&s.text===r||e&&Ur[s.text]&&Ur[s.text].infix)break;var i=this.parseAtom(r);if(i){if(i.type==="internal")continue}else break;n.push(i)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,s=0;s=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var o=Qe[this.mode][r].group,l=Ft.range(e),c;if(z6.hasOwnProperty(o)){var d=o;c={type:"atom",mode:this.mode,family:d,loc:l,text:r}}else c={type:o,mode:this.mode,loc:l,text:r};a=c}else if(r.charCodeAt(0)>=128)this.settings.strict&&($1(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),a={type:"textord",mode:"text",loc:Ft.range(e),text:r};else return null;if(this.consume(),i)for(var f=0;f|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript;(function(t){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var r=t.languages.markup;r&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css"))})(Prism);Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json;Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python;Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};qe.setOptions({breaks:!0,gfm:!0,tables:!0,sanitize:!1});const ya=t=>{if(!t||typeof t!="string")return"";try{const e=e7(t),r=qe.parse(e);return t7(r)}catch(e){return console.error("Markdown渲染失败:",e),`
    渲染失败: ${e.message}
    `}},e7=t=>t.replace(/\$\$([\s\S]*?)\$\$/g,(e,r)=>{try{return`
    ${Mc.renderToString(r.trim(),{displayMode:!0,throwOnError:!1})}
    `}catch(n){return console.warn("数学公式渲染失败:",n),`
    数学公式错误: ${r}
    `}}).replace(/\$([^$\n]+?)\$/g,(e,r)=>{if(r.includes("\\")||r.includes("{")||r.includes("}")||r.includes("^")||r.includes("_")||r.includes("=")||r.includes("+")||r.includes("-")||r.includes("*")||r.includes("/")||r.includes("(")||r.includes(")"))try{return`${Mc.renderToString(r.trim(),{displayMode:!1,throwOnError:!1})}`}catch(n){return console.warn("数学公式渲染失败:",n),`数学公式错误: ${r}`}return e}),t7=t=>{let e=t.replace(//g,'
    ').replace(/
    {const i=s.className.match(/language-(\w+)/);if(i)try{s.innerHTML=Gl.highlight(s.textContent,Gl.languages[i[1]],i[1])}catch(a){console.warn("语法高亮失败:",a)}}),r.innerHTML},r7=t=>{if(!t||typeof t!="string")return!1;const e=t.split(`
    +`);let r=!1,n=!1;for(const a of e){const o=a.trim();o.includes("|")&&o.split("|").length>=3&&(r=!0),o.includes("|")&&o.includes("-")&&/^[\s\|\-\:]+$/.test(o)&&(n=!0)}const s=(t.match(/\|/g)||[]).length,i=s>=6;return r&&n||r&&i||r&&s>=4},n7=t=>!t||typeof t!="string"?!1:r7(t)?!0:[/#{1,6}\s+/,/\*\*.*?\*\*/,/\*.*?\*/,/`.*?`/,/```[\s\S]*?```/,/^\s*[-*+]\s+/m,/^\s*\d+\.\s+/m,/\[.*?\]\(.*?\)/,/!\[.*?\]\(.*?\)/,/\$\$.*?\$\$/,/\$.*?\$/].some(r=>r.test(t)),G0=t=>!t||typeof t!="string"?t||"":n7(t)||t.includes("|")?ya(t):t;const _o=(t,e)=>{const r=t.__vccOpts||t;for(const[n,s]of e)r[n]=s;return r},s7={class:"mindmap-container"},i7={key:0,class:"welcome-page"},a7={class:"ai-input-content"},o7=["disabled","onKeydown"],l7={class:"ai-input-actions"},c7=["disabled"],u7=["disabled"],d7={key:0},h7={key:1},f7={key:3,class:"save-controls"},p7={__name:"MindMap",setup(t,{expose:e}){const r=ze(null),n=ze(null),s=ze(null),i=ze({}),a=ze({}),o=ze(null),l=ze(1),c=ze(!0),d=ze(!1),f=ze(!1),p=ze(null),b=ze(""),v=ze(!1);ze(new Map),ze(!1),ze({x:0,y:0}),ze(null);const x=()=>{c.value=!0,r.value&&(r.value.innerHTML=""),n.value&&(n.value=null)},y=()=>{c.value=!1},M=()=>{c.value=!1},k=()=>{if(!n.value||!r.value)return null;try{const w=r.value.querySelector(".map-canvas");if(w){const E=w.style.transform,_=n.value.scaleVal||1;return console.log("📍 保存位置:",{transform:E,scaleVal:_}),{transform:E,scaleVal:_}}}catch(w){console.warn("保存位置失败:",w)}return null},T=w=>{if(!(!w||!r.value||!n.value))try{const E=r.value.querySelector(".map-canvas");E&&w.transform&&(E.style.setProperty("transform",w.transform,"important"),w.scaleVal&&n.value.scaleVal!==w.scaleVal&&(n.value.scaleVal=w.scaleVal),E.style.setProperty("transform-origin","center center","important"),console.log("📍 恢复位置:",{transform:w.transform,scaleVal:w.scaleVal}))}catch(E){console.warn("恢复位置失败:",E)}},N=async(w,E=!1,_=!0)=>{try{const P=E?k():null;P?console.log("📍 保存当前位置用于保持原位:",P):!E&&!_&&console.log("📍 添加节点模式:不保存位置,等待居中到新节点"),console.log("🔍 loadMindmapData 被调用,数据:",w),console.log("🔍 数据字段:",Object.keys(w||{})),w&&w.id?(o.value=w.id,console.log("🔍 设置当前思维导图ID (data.id):",w.id)):w&&w.mindmapId?(o.value=w.mindmapId,console.log("🔍 设置当前思维导图ID (data.mindmapId):",w.mindmapId)):w&&w.nodeData&&w.nodeData.mindmapId?(o.value=w.nodeData.mindmapId,console.log("🔍 设置当前思维导图ID (data.nodeData.mindmapId):",w.nodeData.mindmapId)):w&&w.nodeData&&w.nodeData.mindmap_id?(o.value=w.nodeData.mindmap_id,console.log("🔍 设置当前思维导图ID (data.nodeData.mindmap_id):",w.nodeData.mindmap_id)):(console.warn("⚠️ 数据中没有找到 id 或 mindmapId 字段"),console.log("🔍 可用的字段:",Object.keys(w||{})),w&&w.nodeData&&console.log("🔍 nodeData字段:",Object.keys(w.nodeData||{}))),console.log("🔍 设置后的 currentMindmapId.value:",o.value),y(),await Y0(),r.value||(console.warn("⚠️ 思维导图容器未准备好,等待DOM更新..."),await new Promise(Z=>setTimeout(Z,100)),r.value||console.warn("⚠️ 思维导图容器仍未准备好,尝试继续执行..."));try{if(r.value){console.log("🔍 创建Mind Elixir实例,设置markdown函数"),n.value=new vt({el:r.value,direction:vt.RIGHT,draggable:!0,contextMenu:!1,toolBar:!0,nodeMenu:!1,keypress:!1,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:(J,$)=>{if(console.log("🔍 Mind Elixir markdown函数被调用:",J.substring(0,100)+"..."),J.includes("|")||J.includes("**")||J.includes("`")||J.includes("#")){console.log("🎨 检测到markdown内容,开始渲染:",J.substring(0,100)+"...");const ue=G0(J);return console.log("🎨 渲染结果:",ue.substring(0,200)+"..."),ue}return console.log("🔍 内容不包含markdown语法,返回原文本"),J}}),console.log("✅ Mind Elixir实例创建完成,markdown函数已设置"),console.log("🔍 初始化Mind Elixir数据:",w);const Z=n.value.init(w);console.log("✅ Mind Elixir实例创建成功,初始化结果:",Z),P?(T(P),console.log("📍 初始化后立即恢复位置"),setTimeout(()=>{T(P),console.log("📍 二次确认位置恢复")},100)):!E&&!_&&console.log("📍 跳过根节点居中,等待居中新节点")}else{console.warn("⚠️ 容器未准备好,延迟创建Mind Elixir实例..."),setTimeout(()=>{if(r.value){n.value=new vt({el:r.value,direction:vt.RIGHT,draggable:!0,contextMenu:!1,toolBar:!0,nodeMenu:!1,keypress:!1,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:(J,$)=>J.includes("|")||J.includes("**")||J.includes("`")||J.includes("#")?G0(J):J});const Z=n.value.init(w);console.log("✅ Mind Elixir实例延迟创建成功"),P?(T(P),console.log("📍 延迟创建后立即恢复位置"),setTimeout(()=>{T(P),console.log("📍 延迟创建后二次确认位置恢复")},100)):!E&&!_&&console.log("📍 延迟创建后跳过根节点居中,等待居中新节点"),setTimeout(()=>{P?T(P):_&&O(),X(),I()},300)}},200);return}}catch{setTimeout(()=>{try{if(r.value){n.value=new vt({el:r.value,direction:vt.RIGHT,draggable:!0,contextMenu:!1,toolBar:!0,nodeMenu:!1,keypress:!1,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:($,ue)=>$.includes("|")||$.includes("**")||$.includes("`")||$.includes("#")?G0($):$});const J=n.value.init(w);P?(T(P),console.log("📍 重试创建后立即恢复位置"),setTimeout(()=>{T(P),console.log("📍 重试创建后二次确认位置恢复")},100)):!E&&!_&&console.log("📍 重试创建后跳过根节点居中,等待居中新节点"),setTimeout(()=>{P?T(P):_&&O(),X(),I()},300)}}catch(J){console.error("❌ Mind Elixir实例重试创建失败:",J)}},500);return}setTimeout(()=>{E&&P?T(P):_&&O(),y(),X(),setTimeout(P?()=>{T(P),I()}:_?()=>{O(),I()}:()=>{I()},500)},100)}catch{}},I=()=>{n.value&&r.value&&setTimeout(()=>{r.value.querySelectorAll("me-tpc, .topic, [data-id]").forEach((E,_)=>{var $;const P=E.getAttribute("data-id")||E.id||E.getAttribute("nodeid")||(($=E.querySelector("[data-id]"))==null?void 0:$.getAttribute("data-id"));if(!P)return;const Z=(ue,de)=>{for(const me of ue){if(me.id===de)return me;if(me.children){const Oe=Z(me.children,de);if(Oe)return Oe}}return null},J=Z(n.value.data.nodeData,P);if(J&&J.data&&J.data.des){let ue=E.querySelector(".node-description");ue||(ue=document.createElement("div"),ue.className="node-description",ue.style.cssText=`
    +            font-size: 11px;
    +            color: #666;
    +            margin-top: 6px;
    +            padding: 6px 8px;
    +            background: rgba(0, 0, 0, 0.03);
    +            border-radius: 4px;
    +            max-width: 250px;
    +            word-wrap: break-word;
    +            line-height: 1.3;
    +            border-left: 3px solid #e0e0e0;
    +            display: block;
    +          `,E.appendChild(ue));const de=J.data.des;de.length>150?(ue.textContent=de.substring(0,150)+"...",ue.title=de):ue.textContent=de}})},1e3)},O=()=>{try{if(n.value&&n.value.toCenter){n.value.toCenter(),console.log("✅ 使用 MindElixir toCenter 方法实现根节点居中");return}const w=r.value;if(!w)return;const E=w.querySelector(".map-canvas");if(!E)return;const _=E.querySelectorAll("me-tpc");if(_.length===0)return;let P=1/0,Z=-1/0,J=1/0,$=-1/0;_.forEach(C0=>{const yn=C0.getBoundingClientRect(),M0=w.getBoundingClientRect(),Oo=yn.left-M0.left,Lo=yn.top-M0.top;P=Math.min(P,Oo),Z=Math.max(Z,Oo+yn.width),J=Math.min(J,Lo),$=Math.max($,Lo+yn.height)});const ue=(P+Z)/2,de=(J+$)/2,me=w.clientWidth/2,Oe=w.clientHeight/2,Be=me-ue,gt=Oe-de;E.style.transform=`translate(${Be}px, ${gt}px)`,E.style.opacity="1",E.style.transition="opacity 0.3s ease";const Rt=100,Jt=Math.max(Be,Rt),yr=Math.max(gt,Rt);E.style.transform=`translate(${Jt}px, ${yr}px)`,E.style.opacity="1",E.style.visibility="visible"}catch{}},z=async w=>{if(!(!n.value||!w))try{console.log("🎯 开始处理新节点:",w);let E=null,_=0;const P=5;for(;!E&&_setTimeout(Z,50)));E?(console.log("✅ 找到节点元素:",E),n.value.scrollIntoView&&(n.value.scrollIntoView(E),console.log("✅ 节点已平滑居中显示")),setTimeout(()=>{n.value.beginEdit&&(n.value.beginEdit(E),console.log("✅ 节点已进入编辑状态"))},350)):console.error("❌ 多次尝试后仍未找到节点元素:",w)}catch(E){console.error("❌ 居中显示节点失败:",E)}},W=()=>{if(!s.value)return;if(n.value&&n.value.getNodeById)try{const E=n.value.getNodeById(s.value.id);if(E){const _=E.getBoundingClientRect(),P=r.value.getBoundingClientRect(),Z=_.left-P.left+_.width/2,J=_.bottom-P.top+10;i.value={left:`${Z}px`,top:`${J}px`};return}}catch{}let w=document.querySelector(`[data-id="${s.value.id}"]`);if(w||(w=document.querySelector(`.topic[data-id="${s.value.id}"]`)),w||(w=document.querySelector(`[data-node-id="${s.value.id}"]`)),w||(w=document.querySelector(`[data-nodeid="me${s.value.id}"]`)),!w){const E=document.querySelectorAll("me-tpc");for(const _ of E)if(_.getAttribute("data-nodeid")===`me${s.value.id}`){w=_;break}}if(!w){const E=document.querySelectorAll(".topic");for(const _ of E)if(_.textContent.trim()===s.value.topic){w=_;break}}if(w){const E=w.getBoundingClientRect(),_=r.value.getBoundingClientRect(),P=E.left-_.left+E.width/2,Z=E.bottom-_.top+10;i.value={left:`${P}px`,top:`${Z}px`}}else i.value={left:"50%",top:"50%",transform:"translate(-50%, -50%)"}},U=async()=>{s.value&&(await ye(s.value),s.value=null)},he=async()=>{s.value&&(await fe(s.value),s.value=null)},ge=async()=>{s.value&&(await Ue(s.value),s.value=null)},Ae=async()=>{if(!s.value)return;console.log("Ask AI for node:",s.value);const w=parseFloat(i.value.left)||0,E=parseFloat(i.value.top)||0;a.value={left:`${w}px`,top:`${E+60}px`,transform:"translateX(-50%)"},f.value=!0,p.value=s.value},et=()=>{f.value=!1,p.value=null,b.value="",v.value=!1,s.value=null},Je=w=>{if(!w)return"";const E=[];return w.parent&&w.parent.topic&&E.push(`父节点: ${w.parent.topic}`),w.parent&&w.parent.parent&&w.parent.parent.topic&&E.push(`祖父节点: ${w.parent.parent.topic}`),E.join(" | ")},ot=w=>{w.ctrlKey||w.metaKey||(w.preventDefault(),Fe())},Fe=async()=>{if(!(!b.value.trim()||!p.value||v.value)){v.value=!0;try{const w="你是一个专业的思维导图分析助手。请根据用户的问题和提供的节点信息,给出专业、有用的回答。",E=`节点信息:
    +当前节点:${p.value.topic}
    +上下文:${Je(p.value)}
    +
    +用户问题:${b.value}
    +
    +请给出详细的回答,回答应该:
    +1. 直接回答用户的问题
    +2. 提供具体的建议或改进方案
    +3. 保持专业和有用的语调
    +4. 回答长度适中,便于在思维导图中展示`;console.log("发送AI请求:",{systemPrompt:w,userPrompt:E});const _=await fetch("http://127.0.0.1:8000/api/ai/generate-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({system_prompt:w,user_prompt:E,model:"glm-4.5",base_url:"https://open.bigmodel.cn/api/paas/v4/",api_key:"ce39bdd4fcf34ec0aec75072bc9ff988.hAp7HZTVUwy7vImn"})});if(!_.ok)throw new Error(`HTTP error! status: ${_.status}`);let P="";const Z=_.body.getReader(),J=new TextDecoder;let $="";for(;;){const{done:ue,value:de}=await Z.read();if(ue)break;$+=J.decode(de,{stream:!0});const me=$.split(`
    +`);$=me.pop()||"";for(const Oe of me)if(Oe.startsWith("data: "))try{const Be=JSON.parse(Oe.slice(6));if(Be.type==="chunk")P+=Be.content;else if(Be.type==="error")throw new Error(Be.content)}catch(Be){console.warn("解析流式数据失败:",Be)}}await tt(p.value,b.value,P),et()}catch(w){console.error("AI请求失败:",w),alert("AI请求失败,请稍后重试")}finally{v.value=!1}}},Ie=w=>w.replace(/^### (.*$)/gim,"📋 $1").replace(/^## (.*$)/gim,"📌 $1").replace(/^# (.*$)/gim,"🎯 $1").replace(/\*\*(.*?)\*\*/g,(E,_)=>{if(_.includes(":")){const P=_.split(":");if(P.length>1)return`【${P[0]}】: ${P.slice(1).join(":")}`}return`【${_}】`}).replace(/\*(.*?)\*/g,"《$1》").replace(/^- (.*$)/gim,"  • $1").replace(/^\d+\. (.*$)/gim,"  $&").replace(/```(.*?)```/gims,"💻 $1").replace(/`(.*?)`/g,"「$1」").replace(/\[([^\]]+)\]\([^)]+\)/g,"🔗 $1").replace(/\n\n/g,`
    +`).replace(/\n/g,`
    +  `),ve=(w,E,_)=>{const P=w.split(`
    +`);let Z=_,J=[];for(let $=0;$0){const Jt=Ie(gt.join(`
    +`));Be.topic=Be.topic+`
    +
    +`+Jt}E.children.push(Be),$=Rt-1}else de&&J.push(de)}if(J.length>0){const $=J.join(`
    +`).trim();$&&$.split(`
    +
    +`).filter(de=>de.trim()).forEach(de=>{const me=Ie(de.trim());if(me){const Oe={id:`node_${Z++}`,topic:me,children:[],level:(E.level||0)+1,data:{}};E.children.push(Oe)}})}return{nodeCounter:Z}},Me=w=>{const E=w.split(`
    +`);let _=null;const P=[];let Z=0,J=[];if(E.forEach(($,ue)=>{const de=$.trim(),me=de.match(/^(#{1,6})\s+(.+)$/);if(me){if(J.length>0&&P.length>0){const Jt=J.join(`
    +`).trim();Jt&&(Z=ve(Jt,P[P.length-1],Z).nodeCounter),J=[]}const Oe=me[1].length,Be=me[2].trim(),gt=Ie(Be),Rt={id:`node_${Z++}`,topic:gt,children:[],level:Oe,data:{}};if(Oe===1&&!_)_=Rt,P.length=0,P.push(_);else{for(;P.length>1&&P[P.length-1].level>=Oe;)P.pop();P.length>0&&P[P.length-1].children.push(Rt),P.push(Rt)}}else de&&J.push(de)}),J.length>0&&P.length>0){const $=J.join(`
    +`).trim();$&&(Z=ve($,P[P.length-1],Z).nodeCounter)}return _||(_={id:"root",topic:"根节点",children:[],data:{}}),_},tt=async(w,E,_)=>{var P,Z,J;try{const ue=(yr=>yr.replace(/^#+\s*/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/^\s*[-*+]\s*(?![|])/gm,"• ").replace(/\n{3,}/g,`
    +
    +`).trim())(_),de=`# ${E}
    +
    +${ue}`,me=Me(de),Oe={title:E,des:`AI追问产生的节点 - ${new Date().toLocaleString()}`,parentId:w.id,isRoot:!1},Be=[];if(me.children&&me.children.length>0&&me.children.forEach(yr=>{Be.push({title:yr.topic,des:"",parentId:null,isRoot:!1})}),console.log("当前思维导图ID:",o.value),!o.value)throw new Error("没有找到当前思维导图ID,无法创建节点");const gt=await lt.addNodes(o.value,[Oe]);if(!gt.data||!gt.data.success)throw new Error("AI父节点创建失败");const Rt=(J=(Z=(P=gt.data.data)==null?void 0:P.nodes)==null?void 0:Z[0])==null?void 0:J.id;if(!Rt)throw new Error("无法获取创建的父节点ID");Be.forEach(yr=>{yr.parentId=Rt});let Jt=null;if(Be.length>0&&(Jt=await lt.addNodes(o.value,Be)),gt.data&>.data.success)await be();else throw new Error("AI父节点创建失败")}catch($){console.error("创建AI节点失败:",$),alert("创建AI回答节点失败: "+$.message)}},We=async()=>{if(s.value){try{const w=s.value.topic||s.value.title||"无标题";if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(w),_e();else{const E=document.createElement("textarea");E.value=w,E.style.position="fixed",E.style.left="-999999px",E.style.top="-999999px",document.body.appendChild(E),E.focus(),E.select();const _=document.execCommand("copy");document.body.removeChild(E),_?_e():St()}}catch{St()}s.value=null}},_e=()=>{const w=document.createElement("div");w.textContent="文本已复制到剪贴板",w.style.cssText=`
    +    position: fixed;
    +    top: 20px;
    +    right: 20px;
    +    background: #4CAF50;
    +    color: white;
    +    padding: 12px 20px;
    +    border-radius: 6px;
    +    font-size: 14px;
    +    z-index: 10000;
    +    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    +    animation: slideIn 0.3s ease;
    +  `;const E=document.createElement("style");E.textContent=`
    +    @keyframes slideIn {
    +      from { transform: translateX(100%); opacity: 0; }
    +      to { transform: translateX(0); opacity: 1; }
    +    }
    +  `,document.head.appendChild(E),document.body.appendChild(w),setTimeout(()=>{w.parentNode&&w.parentNode.removeChild(w),E.parentNode&&E.parentNode.removeChild(E)},3e3)},St=()=>{const w=document.createElement("div");w.textContent="复制失败,请手动复制",w.style.cssText=`
    +    position: fixed;
    +    top: 20px;
    +    right: 20px;
    +    background: #f44336;
    +    color: white;
    +    padding: 12px 20px;
    +    border-radius: 6px;
    +    font-size: 14px;
    +    z-index: 10000;
    +    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    +    animation: slideIn 0.3s ease;
    +  `,document.body.appendChild(w),setTimeout(()=>{w.parentNode&&w.parentNode.removeChild(w)},3e3)},mt=(w,E="success")=>{const _=document.createElement("div");_.textContent=w;const P=E==="success"?"#4CAF50":E==="error"?"#f44336":"#ff9800";_.style.cssText=`
    +    position: fixed;
    +    top: 20px;
    +    right: 20px;
    +    background: ${P};
    +    color: white;
    +    padding: 12px 20px;
    +    border-radius: 6px;
    +    font-size: 14px;
    +    z-index: 10000;
    +    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    +    animation: slideIn 0.3s ease;
    +  `,document.body.appendChild(_),setTimeout(()=>{_.parentNode&&_.parentNode.removeChild(_)},2e3)},j=()=>{const w=document.createElement("div");w.textContent="✅ 节点编辑已保存",w.style.cssText=`
    +    position: fixed;
    +    top: 20px;
    +    right: 20px;
    +    background: #4CAF50;
    +    color: white;
    +    padding: 12px 20px;
    +    border-radius: 6px;
    +    font-size: 14px;
    +    z-index: 10000;
    +    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    +    animation: slideIn 0.3s ease;
    +  `,document.body.appendChild(w),setTimeout(()=>{w.parentNode&&w.parentNode.removeChild(w)},2e3)},V=()=>{const w=document.createElement("div");w.textContent="❌ 节点编辑保存失败",w.style.cssText=`
    +    position: fixed;
    +    top: 20px;
    +    right: 20px;
    +    background: #f44336;
    +    color: white;
    +    padding: 12px 20px;
    +    border-radius: 6px;
    +    font-size: 14px;
    +    z-index: 10000;
    +    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    +    animation: slideIn 0.3s ease;
    +  `,document.body.appendChild(w),setTimeout(()=>{w.parentNode&&w.parentNode.removeChild(w)},3e3)},re=async w=>{try{console.log("🎯 处理节点拖拽操作:",w.name),console.log("📦 操作详情:",{name:w.name,objs:w.objs,toObj:w.toObj}),setTimeout(async()=>{var E;try{const _=w.objs||[],P=w.toObj;if(!_.length||!P){console.warn("⚠️ 拖拽操作缺少必要信息");return}console.log(`📦 准备保存 ${_.length} 个节点的父子关系`);let Z=null;w.name==="moveNodeIn"?(Z=P.id,console.log(`📌 拖入操作:新父节点为 ${Z}`)):(w.name==="moveNodeBefore"||w.name==="moveNodeAfter")&&(Z=((E=P.parent)==null?void 0:E.id)||null,console.log(`📌 拖到兄弟位置:新父节点为 ${Z||"根节点"}`));const J=_.map(async me=>{try{console.log(`🔄 更新节点 ${me.id} 的父节点为 ${Z||"根节点"}`);const Oe=await lt.updateNode(me.id,{newParentId:Z});return Oe.data&&Oe.data.success?(console.log(`✅ 节点 ${me.id} 父子关系更新成功`),{success:!0,nodeId:me.id}):(console.warn(`⚠️ 节点 ${me.id} 父子关系更新失败:`,Oe),{success:!1,nodeId:me.id})}catch(Oe){return console.error(`❌ 节点 ${me.id} 父子关系更新失败:`,Oe),{success:!1,nodeId:me.id,error:Oe}}}),$=await Promise.all(J),ue=$.filter(me=>me.success).length,de=$.filter(me=>!me.success).length;console.log(`📊 拖拽保存结果: ${ue} 成功, ${de} 失败`)}catch(_){console.error("❌ 保存拖拽后的结构失败:",_),mt("❌ 节点拖拽保存失败","error")}},500)}catch(E){console.error("❌ 处理节点拖拽操作失败:",E)}},ie=async w=>{try{const E=w.obj;E?await Ee(E):console.error("无法解析编辑操作:",w)}catch(E){console.error("处理编辑完成失败:",E)}},Ee=async w=>{var E,_;try{if(!o.value){console.error("无法获取思维导图ID");return}const P=await lt.updateNode(w.id,{newTitle:w.topic,newDes:((E=w.data)==null?void 0:E.des)||"",newParentId:w.parentId||((_=w.parent)==null?void 0:_.id)});P.data&&P.data.success?j():(console.error("更新节点编辑失败:",P.data),V())}catch(P){console.error("更新节点编辑失败:",P),V()}},ye=async w=>{var E;try{await S();const _=o.value||w.mindmap_id||w.mindmapId;if(!_){console.error("无法获取思维导图ID");return}const P=await lt.addNodes(_,[{title:"新子节点",des:"子节点描述",parentId:w.id}]);if(P.data&&P.data.success){const Z=((E=P.data.data)==null?void 0:E.nodes)||[];if(Z.length>0){const J=Z[0];try{await new Promise(ue=>setTimeout(ue,800));const $=await lt.getMindmap(_);if($.data&&$.data.nodeData){await N($.data,!1,!1);try{console.log("🎯 开始居中显示新子节点:",J.id),await z(J.id)}catch(ue){console.error("居中显示新节点失败:",ue)}}else throw new Error("无法获取思维导图数据")}catch($){console.error("刷新思维导图失败:",$)}}}}catch(_){console.error("添加子节点失败:",_)}},fe=async w=>{var E;try{await S(),console.log("添加兄弟节点到API:",w.id),console.log("节点信息:",{id:w.id,parentId:w.parentId,parent:w.parent,mindmap_id:w.mindmap_id,mindmapId:w.mindmapId});const _=o.value||w.mindmap_id||w.mindmapId;if(!_){console.error("无法获取思维导图ID");return}let P=w.parentId;!P&&w.parent&&(P=w.parent.id);const Z=await lt.addNodes(_,[{title:"新兄弟节点",des:"兄弟节点描述",parentId:P}]);if(console.log("添加兄弟节点响应:",Z),Z.data&&Z.data.success){const J=((E=Z.data.data)==null?void 0:E.nodes)||[];if(J.length>0){const $=J[0];console.log("新创建的兄弟节点:",$),console.log("🎯 使用MindElixir init方法重新初始化数据...");try{const ue=await lt.getMindmap(_);if(ue.data&&ue.data.nodeData){await N(ue.data,!1,!1),console.log("✅ 思维导图刷新成功");try{console.log("🎯 开始居中显示新兄弟节点:",$.id),await z($.id)}catch(de){console.error("居中显示新节点失败:",de)}}else throw new Error("无法获取思维导图数据")}catch(ue){console.error("重新初始化失败,使用完整重新加载:",ue);const de=await lt.getMindmap(_);de.data&&de.data.nodeData&&await N(de.data,!0,!1)}}}}catch(_){console.error("添加兄弟节点失败:",_)}},Ue=async w=>{try{await S(),console.log("删除节点从API:",w.id);const E=await lt.deleteNodes([w.id]);if(console.log("删除节点响应:",E),E.data&&E.data.success){const _=o.value||w.mindmap_id||w.mindmapId;if(_){const P=await lt.getMindmap(_);P.data&&P.data.nodeData&&(await N(P.data,!0,!1),console.log("✅ 删除节点后思维导图已刷新,保持当前位置"))}}}catch(E){console.error("删除节点失败:",E)}},S=async()=>{const w=r.value;if(w){const E=w.querySelector("input:focus");if(E&&s.value){const _=E.value;_!==s.value.topic&&_.trim()!==""&&(console.log("保存当前编辑:",_),s.value.topic=_,await D(s.value))}}},D=async w=>{var E,_,P,Z,J;try{console.log("保存Mind Elixir编辑,节点ID:",w.id),console.log("编辑内容:",{newTitle:w.topic,newDes:((E=w.data)==null?void 0:E.des)||""});const $=String(w.id),ue=await lt.updateNode($,{newTitle:w.topic,newDes:((_=w.data)==null?void 0:_.des)||""});console.log("更新节点API响应:",ue),console.log("节点编辑已保存到后端"),console.log("✅ 节点编辑已保存,无需重新加载")}catch($){console.error("保存Mind Elixir编辑失败:",$),console.error("错误详情:",(P=$.response)==null?void 0:P.data),alert("保存编辑失败: "+(((J=(Z=$.response)==null?void 0:Z.data)==null?void 0:J.detail)||$.message))}},F=w=>{console.log("打开编辑模态框:",w),n.value.editText(w)},G=async(w,E,_)=>{var P,Z,J;try{console.log("开始创建节点:",w.topic,"父节点ID:",_);const $=await lt.addNodes(E,{title:w.topic||w.title||"无标题",des:((P=w.data)==null?void 0:P.des)||"",parentId:_});if(console.log("创建节点响应:",$),$.data&&$.data.success){const de=(J=(((Z=$.data.data)==null?void 0:Z.nodes)||[])[0])==null?void 0:J.id;if(console.log("当前节点ID:",de),w.children&&w.children.length>0){console.log("开始创建子节点,数量:",w.children.length);for(const me of w.children)await G(me,E,de)}else console.log("节点没有子节点,创建完成")}else console.error("创建节点失败,响应:",$)}catch($){console.error("创建节点失败:",$)}};let q=null,H=null;const X=()=>{if(!n.value)return;console.log("绑定事件监听器..."),q&&r.value.removeEventListener("wheel",q),H&&r.value.removeEventListener("click",H),q=_=>{if(_.ctrlKey||_.metaKey){_.preventDefault();const P=_.deltaY>0?.9:1.1,Z=Math.max(.3,Math.min(3,l.value*P));if(n.value){const J=r.value.querySelector(".map-container");J&&(J.style.transform=`scale(${Z})`,l.value=Z,localStorage.setItem("mindmap-zoom-level",Z.toString()))}}},r.value.addEventListener("wheel",q),n.value.bus.addListener("select",_=>{s.value=_,setTimeout(()=>{W()},50)}),n.value.bus.addListener("selectNode",_=>{s.value=_,setTimeout(()=>{W()},50)}),n.value.bus.addListener("scale",_=>{Math.abs(_-1)<.01&&Math.abs(l.value-1)>.01&&setTimeout(()=>{ne()},50)}),window.zoomIntervalId&&clearInterval(window.zoomIntervalId);const w=setInterval(()=>{l.value!==1&&r.value&&se()},500);window.zoomIntervalId=w;let E=0;H=_=>{const P=Date.now();if(P-E<100)return;E=P;const Z=_.target,J=Z.closest("me-tpc")||Z.closest(".topic")||(Z.classList.contains("topic")?Z:null)||(Z.tagName==="ME-TPC"?Z:null);if(J){const $=J.nodeObj;if($){s.value=$;const ue=r.value.getBoundingClientRect(),de=J.getBoundingClientRect(),me=de.left-ue.left+de.width/2,Oe=de.bottom-ue.top+8;i.value={left:`${me}px`,top:`${Oe}px`}}}else s.value=null,f.value&&(f.value=!1,p.value=null,b.value="",v.value=!1)},r.value.addEventListener("click",H),n.value.bus.addListener("edit",_=>{console.log("edit事件触发:",_),F(_)}),n.value.bus.addListener("editFinish",_=>{console.log("editFinish事件触发:",_),ie(_)}),n.value.bus.addListener("operation",_=>{console.log("Mind Elixir操作事件:",_),_.name==="moveNodeIn"||_.name==="moveNodeBefore"||_.name==="moveNodeAfter"?(console.log("检测到节点拖拽操作:",_.name,_),re(_)):_.name==="finishEdit"&&(console.log("检测到编辑完成操作:",_),ie(_))}),n.value.bus.addListener("removeNode",_=>{console.log("删除节点:",_),Ue(_)})},ne=()=>{if(n.value){const w=localStorage.getItem("mindmap-zoom-level");if(w){const E=parseFloat(w);if(E>=.3&&E<=3){const _=r.value.querySelector(".map-container");_&&(_.style.transform=`scale(${E})`,l.value=E)}}}},se=()=>{if(n.value&&l.value!==1&&r.value){const w=r.value.querySelector(".map-container");w&&(w.style.transform=`scale(${l.value})`)}},Q=async()=>{var w;if(console.log("🚀🚀🚀 保存函数被调用 🚀🚀🚀"),console.log("🔍 mindElixir.value:",n.value),console.log("🔍 currentMindmapId.value:",o.value),console.log("🔍 mindmapEl.value:",r.value),console.log("🔍🔍🔍 全局状态检查开始 🔍🔍🔍"),console.log("🔍 - showWelcome:",c.value),console.log("🔍 - 是否有思维导图容器:",!!r.value),console.log("🔍 - MindElixir实例状态:",!!n.value),console.log("🔍🔍🔍 全局状态检查结束 🔍🔍🔍"),n.value&&n.value.data?(console.log("🔍🔍🔍 MindElixir数据检查开始 🔍🔍🔍"),console.log("🔍 - 数据对象:",n.value.data),console.log("🔍 - 数据字段:",Object.keys(n.value.data)),console.log("🔍 - 是否有nodeData:",!!n.value.data.nodeData),console.log("🔍 - 是否有nodes:",!!n.value.data.nodes),console.log("🔍🔍🔍 MindElixir数据检查结束 🔍🔍🔍")):console.log("⚠️ MindElixir数据不存在或为空"),!n.value||!o.value){if(console.warn("⚠️ 没有可保存的思维导图数据"),console.warn("🔍 mindElixir.value 状态:",!!n.value),console.warn("🔍 currentMindmapId.value 状态:",!!o.value),n.value&&n.value.data&&(console.log("🔍 尝试从MindElixir数据中获取ID"),console.log("🔍 MindElixir数据:",n.value.data),n.value.data.mindmapId?(o.value=n.value.data.mindmapId,console.log("🔍 从MindElixir数据中获取到mindmapId:",n.value.data.mindmapId)):n.value.data.mindmap_id&&(o.value=n.value.data.mindmap_id,console.log("🔍 从MindElixir数据中获取到mindmap_id:",n.value.data.mindmap_id))),!o.value&&n.value){if(console.log("🔍 尝试重新初始化MindElixir数据..."),console.log("🔍 MindElixir实例属性:",Object.keys(n.value)),console.log("🔍 MindElixir实例方法:",Object.getOwnPropertyNames(Object.getPrototypeOf(n.value))),n.value.getData){const E=n.value.getData();console.log("🔍 通过getData()获取的数据:",E),E&&E.nodeData&&(console.log("🔍 nodeData详情:",E.nodeData),E.nodeData.mindmapId?(o.value=E.nodeData.mindmapId,console.log("🔍 从nodeData.mindmapId获取到ID:",E.nodeData.mindmapId)):E.nodeData.mindmap_id?(o.value=E.nodeData.mindmap_id,console.log("🔍 从nodeData.mindmap_id获取到ID:",E.nodeData.mindmap_id)):(console.log("🔍 nodeData中没有找到mindmapId字段"),console.log("🔍 nodeData字段:",Object.keys(E.nodeData)))),!o.value&&E&&(console.log("🔍 检查其他可能的ID字段..."),E.id?(o.value=E.id,console.log("🔍 从data.id获取到ID:",E.id)):E.mindmapId&&(o.value=E.mindmapId,console.log("🔍 从data.mindmapId获取到ID:",E.mindmapId)))}n.value.mindElixirData&&(console.log("🔍 mindElixirData:",n.value.mindElixirData),n.value.mindElixirData.id&&(o.value=n.value.mindElixirData.id,console.log("🔍 从mindElixirData获取到ID:",n.value.mindElixirData.id)))}if(!o.value){console.warn("⚠️ 仍然无法获取思维导图ID,无法保存"),console.warn("🔍 建议:请先加载一个思维导图,然后再尝试保存");return}}try{console.log("💾 开始保存思维导图..."),console.log("🔍 当前思维导图ID:",o.value),console.log("🔍 MindElixir实例:",n.value);let E=null;if(n.value&&n.value.getData?(E=n.value.getData(),console.log("🔍 通过getData()获取的数据:",E)):(E=n.value.data,console.log("🔍 通过data属性获取的数据:",E)),!E){console.warn("⚠️ MindElixir数据为空");return}let _=[];console.log("🔍 数据结构分析:"),console.log("🔍 - currentData.nodeData:",E.nodeData),console.log("🔍 - currentData.nodes:",E.nodes),console.log("🔍 - currentData.nodeData.children:",(w=E.nodeData)==null?void 0:w.children);const P=$=>{$&&$.id&&(_.push($),console.log(`🔍 收集节点: ${$.id} - ${$.topic||$.content||"无标题"}`),$.children&&$.children.length>0&&$.children.forEach(ue=>P(ue)))};if(E.nodeData)P(E.nodeData),console.log("🔍 从根节点收集到节点数量:",_.length);else if(E.nodes&&Array.isArray(E.nodes))E.nodes.forEach($=>P($)),console.log("🔍 从nodes数组收集到节点数量:",_.length);else if(Array.isArray(E))E.forEach($=>P($)),console.log("🔍 从currentData数组收集到节点数量:",_.length);else{console.warn("⚠️ 无法找到节点数据"),console.log("🔍 可用的数据字段:",Object.keys(E));return}if(_.length===0){console.warn("⚠️ 没有收集到任何节点");return}console.log("🔍 找到节点数据:",_),console.log("🔍 节点数量:",_.length),console.log("🔍 节点数据类型:",Array.isArray(_)?"数组":typeof _);const Z=[];if(_.forEach(($,ue)=>{if(console.log(`🔍 处理节点 ${ue}:`,$),$&&$.id){const de=$.topic||$.content||$.text||"",me=$.x||$.offsetX||0,Oe=$.y||$.offsetY||0;console.log(`🔍 节点 ${$.id} 内容:`,de,"位置:",{x:me,y:Oe});const Be={content:de,position:{x:me,y:Oe}};($.parentId||$.parent)&&(Be.parentId=$.parentId||$.parent,console.log(`🔍 节点 ${$.id} 父节点:`,Be.parentId)),console.log(`🔍 准备保存节点 ${$.id}:`,Be),Z.push(lt.updateNode($.id,Be).then(gt=>{console.log(`✅ 节点 ${$.id} 保存成功:`,gt)}).catch(gt=>{console.error(`❌ 节点 ${$.id} 保存失败:`,gt)}))}else console.warn(`⚠️ 节点 ${ue} 缺少ID:`,$)}),console.log("🔍 准备保存的节点数量:",Z.length),Z.length===0){console.warn("⚠️ 没有找到需要保存的节点");return}const J=await Promise.all(Z);console.log("🔍 保存结果:",J),console.log("🎉 思维导图保存完成!"),console.log("🔄 保存完成,开始自动刷新..."),await be()}catch(E){console.error("❌ 保存思维导图失败:",E)}},be=async()=>{if(!o.value){console.warn("⚠️ 没有当前思维导图ID,无法刷新");return}try{console.log("🔄 开始刷新思维导图...");const w=await lt.getMindmap(o.value);w.data&&w.data.nodeData?(console.log("✅ 获取到最新数据,开始刷新显示..."),await N(w.data,!0,!1),console.log("🎉 思维导图刷新完成!")):console.warn("⚠️ 无法获取思维导图数据")}catch(w){console.error("❌ 刷新思维导图失败:",w)}},le=async(w,E)=>{try{const _=String(o.value||"");if(n.value&&_&&_.startsWith("temp-")){console.log("🔄 检测到实时渲染的思维导图,将保存到数据库并更新ID");const J=k();console.log("📍 保存当前位置:",J);const $=await lt.createMindmap(E||"预览思维导图",w);if(console.log("🔄 创建思维导图响应:",$),$.data&&$.data.id){const ue=$.data.id;console.log("🎉 创建思维导图成功,新思维导图的ID是:",ue);const de=o.value;if(o.value=ue,n.value&&n.value.data){n.value.data.mindmapId=ue,n.value.data.id=ue;const me=Oe=>{Oe&&(Oe.mindmapId=ue,Oe.children&&Oe.children.forEach(Be=>me(Be)))};n.value.data.nodeData&&me(n.value.data.nodeData)}console.log("✅ 已更新思维导图ID,保持视图状态"),console.log("🔄 从临时ID",de,"更新为正式ID",ue),J&&setTimeout(()=>{T(J),console.log("📍 已恢复位置和缩放状态")},100),window.dispatchEvent(new CustomEvent("mindmap-saved",{detail:{mindmapId:ue,title:E,timestamp:Date.now(),fromRealtime:!0}}));return}}console.log("🔄 没有检测到实时渲染的思维导图,使用标准保存流程");const Z=await lt.createMindmap(E||"预览思维导图",w);if(console.log("🔄 创建思维导图响应:",Z),Z.data&&Z.data.id){const J=Z.data.id;if(console.log("🎉 创建思维导图成功,新思维导图的ID是:",J),console.log("📊 响应数据详情:",Z.data),Z.data.nodeData)console.log("✅ 思维导图创建时已包含节点数据,直接加载"),o.value=J,y(),await N(Z.data),window.dispatchEvent(new CustomEvent("mindmap-saved",{detail:{mindmapId:J,title:E,timestamp:Date.now()}})),setTimeout(async()=>{try{console.log("🔄 重新加载思维导图数据...");const $=await lt.getMindmap(J);$.data&&$.data.nodeData&&(await N($.data),console.log("✅ 思维导图数据重新加载成功"))}catch($){console.error("❌ 重新加载思维导图失败:",$)}},1500);else{console.log("🔧 需要递归创建节点"),await G(w,J,null),console.log("📥 开始加载新创建的思维导图,ID:",J);const $=await lt.getMindmap(J);console.log("🔄 加载思维导图响应:",$),$.data&&$.data.nodeData?(console.log("✅ 成功获取思维导图数据,开始加载显示"),o.value=J,y(),await N($.data),window.dispatchEvent(new CustomEvent("mindmap-saved",{detail:{mindmapId:J,title:E,timestamp:Date.now()}})),setTimeout(async()=>{try{console.log("🔄 重新加载思维导图数据...");const ue=await lt.getMindmap(J);ue.data&&ue.data.nodeData&&(await N(ue.data),console.log("✅ 思维导图数据重新加载成功"))}catch(ue){console.error("❌ 重新加载思维导图失败:",ue)}},1500)):console.error("❌ 获取思维导图数据失败:",$)}}}catch(_){console.error("❌ 保存预览数据到数据库失败:",_)}},pe=async w=>{try{if(console.log("📚 开始从历史记录加载思维导图:",w.title),y(),w.mindmapId){console.log("🎯 使用思维导图ID加载:",w.mindmapId);const E=await lt.getMindmap(w.mindmapId);if(E.data&&E.data.nodeData)await N(E.data);else throw new Error("无法获取思维导图数据")}else if(w.json)console.log("📊 使用历史记录中的JSON数据"),await N(w.json);else if(w.markdown){console.log("📝 使用历史记录中的Markdown数据,尝试转换为JSON");try{const E=await convertMarkdownToJSON(w.markdown);if(E)await N(E);else throw new Error("Markdown转换失败")}catch(E){console.error("Markdown转换失败:",E)}}}catch(E){console.error("❌ 从历史记录加载思维导图失败:",E)}};Oa(async()=>{window.addEventListener("save-preview-to-database",w=>{console.log("🎯 收到保存到数据库事件:",w.detail),console.log("📋 事件详情 - 标题:",w.detail.title,"来源:",w.detail.source,"时间戳:",new Date(w.detail.timestamp).toLocaleString()),le(w.detail.data,w.detail.title)}),window.addEventListener("realtime-mindmap-update",w=>{console.log("🔄 收到实时思维导图更新事件:",w.detail),Le(w.detail.data,w.detail.title)}),window.addEventListener("loadMindmapFromHistory",w=>{console.log("📚 收到从历史记录加载思维导图事件:",w.detail),console.log("🔍 事件数据详情:",w.detail),pe(w.detail)}),window.addEventListener("ai-sidebar-toggle",w=>{console.log("🤖 AI侧边栏折叠状态变化:",w.detail.isCollapsed),d.value=w.detail.isCollapsed}),x()});const Se=()=>{window.zoomIntervalId&&(clearInterval(window.zoomIntervalId),window.zoomIntervalId=null),r.value&&(q&&(r.value.removeEventListener("wheel",q),q=null),H&&(r.value.removeEventListener("click",H),H=null)),console.log("✅ 已清理所有定时器和事件监听器")};La(()=>{Se()}),e({showMindMapPage:M,cleanupIntervals:Se});const Le=async(w,E)=>{try{if(n.value){console.log("🔄 更新现有思维导图数据");try{const _=k(),P=String(o.value||""),Z=P&&P.startsWith("temp-")?P:`temp-${Date.now()}`,J={nodeData:w,mindmapId:Z,id:Z,title:E||"AI生成中..."};(!P||!P.startsWith("temp-"))&&(o.value=Z,console.log("🆔 更新临时思维导图ID:",Z));const $=n.value.init(J);_&&setTimeout(()=>{T(_)},100)}catch(_){console.error("❌ 更新思维导图数据失败:",_)}}else{y(),await Y0();let _=0;for(;!r.value&&_<20;)await new Promise($=>setTimeout($,50)),await Y0(),_++;if(!r.value){console.error("❌ 思维导图容器仍未准备好,跳过此次更新");return}n.value=new vt({el:r.value,direction:vt.RIGHT,draggable:!0,contextMenu:!1,toolBar:!0,nodeMenu:!0,keypress:!1,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:($,ue)=>{if($.includes("|")||$.includes("**")||$.includes("`")||$.includes("#")||$.includes("$")){console.log("🎨 实时更新 检测到markdown内容,开始渲染:",$.substring(0,100)+"...");const de=G0($);return console.log("🎨 实时更新 渲染结果:",de.substring(0,200)+"..."),de}return console.log("🔍 实时更新 内容不包含markdown语法,返回原文本"),$}});const P=`temp-${Date.now()}`,Z={nodeData:w,mindmapId:P,id:P,title:E||"AI生成中..."};o.value=P,console.log("🆔 设置临时思维导图ID:",P);const J=n.value.init(Z);console.log("✅ 实时思维导图实例创建成功"),X(),O()}}catch(_){console.error("❌ 实时更新思维导图失败:",_)}};return(w,E)=>(Ve(),Ke("div",s7,[c.value?(Ve(),Ke("div",i7,[Y("div",{class:Ln(["welcome-content",{"ai-sidebar-collapsed":d.value}])},[...E[1]||(E[1]=[Ko('

    🧠 思维导图工具

    可视化您的想法,构建知识体系

    🎯

    智能AI生成

    上传文档,AI自动生成思维导图结构

    ✏️

    灵活编辑

    拖拽节点,自由调整思维导图布局

    💾

    云端存储

    自动保存,多设备同步访问

    💡 提示:使用左侧AI侧边栏可以快速生成思维导图内容

    ',3)])],2)])):Sr("",!0),f.value?(Ve(),Ke("div",{key:1,class:"ai-input-area",style:On(a.value)},[Y("div",{class:"ai-input-header"},[E[2]||(E[2]=Y("span",{class:"ai-input-title"},"🤖 询问AI",-1)),Y("button",{onClick:et,class:"ai-close-btn"},"×")]),Y("div",a7,[ds(Y("textarea",{"onUpdate:modelValue":E[0]||(E[0]=_=>b.value=_),placeholder:"请输入您的问题...",rows:"2",disabled:v.value,onKeydown:[vi(gi(ot,["exact"]),["enter"]),vi(gi(Fe,["ctrl"]),["enter"]),vi(gi(Fe,["meta"]),["enter"])]},null,40,o7),[[Pa,b.value]]),Y("div",l7,[Y("button",{onClick:et,class:"btn-cancel",disabled:v.value}," 取消 ",8,c7),Y("button",{onClick:Fe,class:"btn-submit",disabled:!b.value.trim()||v.value},[v.value?(Ve(),Ke("span",d7,"AI思考中...")):(Ve(),Ke("span",h7,"询问AI"))],8,u7)])])],4)):Sr("",!0),c.value?Sr("",!0):(Ve(),Ke("div",{key:2,ref_key:"mindmapEl",ref:r,class:"mindmap-el"},null,512)),c.value?Sr("",!0):(Ve(),Ke("div",f7,[Y("button",{onClick:Q,class:"save-btn",title:"保存思维导图",style:{display:"none"}},[...E[3]||(E[3]=[Y("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[Y("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),Y("polyline",{points:"17,21 17,13 7,13 7,21"}),Y("polyline",{points:"7,3 7,8 15,8"})],-1),Y("span",null,"保存",-1)])]),Y("button",{onClick:be,class:"refresh-btn",title:"刷新思维导图",style:{display:"none"}},[...E[4]||(E[4]=[Y("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[Y("path",{d:"M1 4v6h6"}),Y("path",{d:"M23 20v-6h-6"}),Y("path",{d:"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"})],-1),Y("span",null,"刷新",-1)])])])),s.value?(Ve(),Ke("div",{key:4,class:"context-menu",style:On(i.value)},[s.value.parentId||s.value.parent?(Ve(),Ke("div",{key:0,class:"context-menu-item",onClick:he,title:"Add a sibling card"},[...E[5]||(E[5]=[Y("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 18 18",fill:"none"},[Y("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.9001 4.5C9.9001 5.74264 8.89274 6.75 7.6501 6.75C6.64263 6.75 5.78981 6.08785 5.5031 5.175H2.7001V11.025H5.4001V9.9C5.4001 8.90589 6.11644 8.1 7.0001 8.1H15.0501C15.9338 8.1 16.6501 8.90589 16.6501 9.9V13.95C16.6501 14.9441 15.9338 15.75 15.0501 15.75H7.0001C6.11644 15.75 5.4001 14.9441 5.4001 13.95V12.375H2.2501C1.75304 12.375 1.3501 11.7471 1.3501 11.475V4.725C1.3501 4.22794 1.75304 3.825 2.2501 3.825H5.5031C5.78981 2.91215 6.64263 2.25 7.6501 2.25C8.89274 2.25 9.9001 3.25736 9.9001 4.5ZM15.0501 9.9H7.0001V13.95H15.0501V9.9Z",fill:"currentColor","fill-opacity":"1"})],-1)])])):Sr("",!0),Y("div",{class:"context-menu-item",onClick:U,title:"Add a child card"},[...E[6]||(E[6]=[Y("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 18 18",fill:"none"},[Y("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.9501 6.63691H8.35014V11.3619H15.9501V6.63691ZM8.35014 4.83691C7.46649 4.83691 6.75014 5.6428 6.75014 6.63691V8.32441H4.84719C4.56048 7.41157 3.70766 6.74941 2.7002 6.74941C1.45755 6.74941 0.450195 7.75677 0.450195 8.99941C0.450195 10.2421 1.45755 11.2494 2.7002 11.2494C3.70766 11.2494 4.56048 10.5873 4.84719 9.67441H6.75014V11.3619C6.75014 12.356 7.46649 13.1619 8.35014 13.1619H15.9501C16.8338 13.1619 17.5501 12.356 17.5501 11.3619V6.63691C17.5501 5.6428 16.8338 4.83691 15.9501 4.83691H8.35014Z",fill:"currentColor","fill-opacity":"1"})],-1)])]),Y("div",{class:"context-menu-item",onClick:We,title:"Copy text"},[...E[7]||(E[7]=[Y("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 18 18",fill:"none"},[Y("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.4503 2.99952C16.4016 2.18908 15.7289 1.54688 14.9062 1.54688H6.46875L6.37452 1.5497C5.56408 1.5984 4.92188 2.27108 4.92188 3.09375V3.54688C4.92188 3.68495 5.0338 3.79688 5.17188 3.79688H6.35938C6.49745 3.79688 6.60938 3.68495 6.60938 3.54688V3.375L6.61309 3.34276C6.62766 3.28063 6.68343 3.23438 6.75 3.23438H14.625L14.6572 3.23809C14.7261 3.23438 14.7656 3.30029 14.7656 3.375V11.25L14.7619 11.2822C14.7473 11.3444 14.6916 11.3906 14.625 11.3906H14.4531C14.3151 11.3906 14.2031 11.5026 14.2031 11.6406V12.8281C14.2031 12.9662 14.3151 13.0781 14.4531 13.0781H14.9062L15.0005 13.0753C15.8109 13.0266 16.4531 12.3539 16.4531 11.5312V3.09375L16.4503 2.99952ZM11.5312 4.92188H3.09375C2.23943 4.92188 1.54688 5.61443 1.54688 6.46875V14.9062C1.54688 15.7606 2.23943 16.4531 3.09375 16.4531H11.5312C12.3856 16.4531 13.0781 15.7606 13.0781 14.9062V6.46875C13.0781 5.61443 12.3856 4.92188 11.5312 4.92188ZM3.37032 6.615H11.2635C11.3361 6.615 11.395 6.6739 11.395 6.74655V14.6397C11.395 14.7124 11.3361 14.7712 11.2635 14.7712H3.37032C3.29767 14.7712 3.23877 14.7124 3.23877 14.6397V6.74655C3.23877 6.6739 3.29767 6.615 3.37032 6.615ZM4.5 8.5C4.5 8.27909 4.67909 8.1 4.9 8.1H9.725C9.94591 8.1 10.125 8.27909 10.125 8.5V9.5C10.125 9.72091 9.94591 9.9 9.725 9.9H4.9C4.67909 9.9 4.5 9.72091 4.5 9.5V8.5ZM4.9 11.475C4.67909 11.475 4.5 11.6541 4.5 11.875V12.875C4.5 13.0959 4.67909 13.275 4.9 13.275H9.725C9.94591 13.275 10.125 13.0959 10.125 12.875V11.875C10.125 11.6541 9.94591 11.475 9.725 11.475H4.9Z",fill:"currentColor","fill-opacity":"1"})],-1)])]),Y("div",{class:"context-menu-item ask-ai",onClick:Ae,title:"Ask AI"},[...E[8]||(E[8]=[Ko('',1)])]),Y("div",{class:"context-menu-item delete",onClick:ge,title:"Delete"},[...E[9]||(E[9]=[Y("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[Y("path",{d:"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z",fill:"currentColor"}),Y("path",{"fill-rule":"evenodd",d:"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z",fill:"currentColor"})],-1)])])],4)):Sr("",!0)]))}},m7=_o(p7,[["__scopeId","data-v-ce711d91"]]),g7="modulepreload",v7=function(t){return"/"+t},Nc={},Dc=function(e,r,n){if(!r||r.length===0)return e();const s=document.getElementsByTagName("link");return Promise.all(r.map(i=>{if(i=v7(i),i in Nc)return;Nc[i]=!0;const a=i.endsWith(".css"),o=a?'[rel="stylesheet"]':"";if(!!n)for(let d=s.length-1;d>=0;d--){const f=s[d];if(f.href===i&&(!a||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${o}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":g7,a||(c.as="script",c.crossOrigin=""),c.href=i,document.head.appendChild(c),a)return new Promise((d,f)=>{c.addEventListener("load",d),c.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>e()).catch(i=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i})};const b7={class:"ai-sidebar-wrapper"},y7=["title"],w7={key:0,width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5"},x7={key:1,width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5"},k7={class:"sidebar-content"},S7={class:"section"},T7={class:"input-group"},A7={key:0,class:"file-info"},E7={class:"file-details"},C7={class:"file-info-left"},M7={class:"file-name"},N7={class:"file-size"},D7={class:"button-group file-action-buttons"},R7=["disabled"],I7={key:0},_7={key:1},O7={key:0,class:"section"},L7={class:"history-list"},z7=["onClick"],F7={class:"history-title"},$7={class:"history-time"},B7={class:"section"},P7={class:"input-group"},H7={class:"button-group"},q7=["disabled"],j7={key:0},U7={key:1},V7={class:"section"},W7={key:0,class:"processing-status"},G7={class:"result-container"},K7={class:"json-result"},Y7={class:"button-group"},X7=["disabled"],J7={__name:"AISidebar",emits:["start-realtime-generation"],setup(t,{emit:e}){const r=e,n=ze(!1),s=ze(""),i=ze(""),a=ze(""),o=ze(!1),l=ze(!1),c=ze([]),d=ze(!1);ze(""),ze("");const f=ze(!1),p=ze(""),b=ze(null),v=ze(null),x=()=>{n.value=!n.value,window.dispatchEvent(new CustomEvent("ai-sidebar-toggle",{detail:{isCollapsed:n.value}}))},y=j=>{const V=j.target.files[0];V&&(v.value=V,Me("文件上传成功!","success"))},M=j=>{j.preventDefault(),d.value=!1;const V=j.dataTransfer.files;if(V.length>0){const re=V[0],ie=[".txt",".md",".doc",".docx",".pdf"],Ee="."+re.name.split(".").pop().toLowerCase();ie.includes(Ee)?(v.value=re,Me("文件拖拽上传成功!","success")):Me("不支持的文件格式!请上传 .txt, .md, .doc, .docx, .pdf 格式的文件","error")}},k=j=>{j.preventDefault(),d.value=!0},T=j=>{j.preventDefault(),d.value=!1},N=()=>{v.value=null,b.value&&(b.value.value="")},I=j=>{if(j===0)return"0 Bytes";const V=1024,re=["Bytes","KB","MB","GB"],ie=Math.floor(Math.log(j)/Math.log(V));return parseFloat((j/Math.pow(V,ie)).toFixed(2))+" "+re[ie]},O=async()=>{if(!v.value){Me("请先上传文件","error");return}o.value=!0,r("start-realtime-generation");try{const j=await z(v.value);i.value="";const V="你是一个专业的文档分析专家。请分析上传的文档内容,生成结构化的Markdown格式思维导图。要求:1. 提取主要主题和关键概念 2. 组织成层次分明的结构 3. 使用清晰的标题和子标题 4. 保持内容的逻辑性和完整性",re=`请分析以下文档内容并生成结构化Markdown: + +${j}`;await he(V,re),await Ae(),We(v.value.name,i.value),setTimeout(async()=>{try{await ve()}catch(ie){console.error("自动保存失败:",ie)}},1500)}catch(j){console.error("从文件生成Markdown失败:",j),Me("生成失败: "+j.message,"error")}finally{o.value=!1}},z=j=>new Promise(async(V,re)=>{try{const ie=j.type.includes("text")||j.name.endsWith(".txt")||j.name.endsWith(".md"),Ee=j.type==="application/vnd.openxmlformats-officedocument.wordprocessingml.document"||j.type==="application/msword"||j.name.endsWith(".docx")||j.name.endsWith(".doc"),ye=j.type==="application/pdf"||j.name.endsWith(".pdf");if(ie){const fe=new FileReader;fe.onload=Ue=>V(Ue.target.result),fe.onerror=()=>re(new Error("文本文件读取失败")),fe.readAsText(j)}else if(Ee){const fe=await W(j);V(fe)}else if(ye){const fe=await U(j);V(fe)}else{const fe=new FileReader;fe.onload=Ue=>V(Ue.target.result),fe.onerror=()=>re(new Error("文件读取失败")),fe.readAsText(j)}}catch(ie){re(ie)}}),W=async j=>{try{if(j.name.endsWith(".docx")){const V=await Dc(()=>import("./index-c6bfb612.js").then(Ee=>Ee.i),[]),re=await j.arrayBuffer();return(await V.extractRawText({arrayBuffer:re})).value}else if(j.name.endsWith(".doc"))throw new Error("请将.doc文件转换为.docx格式,或安装相应的解析库")}catch(V){throw new Error(`Office文档解析失败: ${V.message}`)}},U=async j=>{try{const V=await Dc(()=>import("./pdf-869d0c0b.js"),[]);V.GlobalWorkerOptions.workerSrc="/pdf.worker.min.mjs";const re=await j.arrayBuffer(),ie=await V.getDocument({data:re}).promise;let Ee="";for(let ye=1;ye<=ie.numPages;ye++){const S=(await(await ie.getPage(ye)).getTextContent()).items.map(D=>D.str).join(" ");Ee+=S+` +`}return Ee}catch(V){throw new Error(`PDF文件解析失败: ${V.message}`)}},he=async(j,V)=>{const ie=j||`你是一位Markdown格式转换专家。你的任务是将用户提供的文章内容精确转换为结构化的Markdown格式。请遵循以下步骤: + +提取主标题: 识别文章最顶层的主标题(通常为文章题目或书名),并使用Markdown的 # 级别表示。 + +识别层级标题: 从文章内容中提取所有层级的内容标题(从主标题后的第一个标题开始,Level 1 至 Level 4)。判断层级依据: + +视觉与结构特征: 如独立成行/段、位置(行首)、格式(加粗、编号如 1., 1.1, (1), - 等)。 + +语义逻辑: 标题之间的包含和并列关系。 + +在Markdown中,使用相应标题级别: + +Level 1 标题用 ## + +Level 2 标题用 ### + +Level 3 标题用 #### + +Level 4 标题用 ##### + +精确保留原文标题文字,不得修改、概括或润色。 + +处理正文内容: 对于每个标题下的正文内容区块(从该标题后开始,直到下一个同级或更高级别标题前): + +直接保留原文文本,但根据内容结构适当格式化为Markdown。 + +如果内容是列表(如项目符号或编号列表),使用Markdown列表语法(例如 - 用于无序列表,1. 用于有序列表)。 + +保持段落和换行不变。 + +输出格式: 输出必须是纯Markdown格式的文本,不得包含任何额外说明、JSON或非Markdown元素。确保输出与示例风格一致。`,Ee=V||"请将以下内容转换为结构化的Markdown格式:";try{const ye=await fetch("http://127.0.0.1:8000/api/ai/generate-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({system_prompt:ie,user_prompt:Ee,model:"glm-4.5",base_url:"https://open.bigmodel.cn/api/paas/v4/",api_key:"ce39bdd4fcf34ec0aec75072bc9ff988.hAp7HZTVUwy7vImn"})});if(!ye.ok)throw new Error(`HTTP error! status: ${ye.status}`);const fe=ye.body.getReader(),Ue=new TextDecoder;let S="",D=0;for(;;){const{done:F,value:G}=await fe.read();if(F)break;S+=Ue.decode(G,{stream:!0});const q=S.split(` +`);S=q.pop()||"";for(const H of q)if(H.startsWith("data: "))try{const X=JSON.parse(H.slice(6));if(X.type==="start")Me("AI开始生成内容...","info");else if(X.type==="chunk"){D++,i.value+=X.content;try{const ne=et(i.value);a.value=JSON.stringify(ne,null,2),window.dispatchEvent(new CustomEvent("realtime-mindmap-update",{detail:{data:ne,title:ne.topic||"AI生成中...",source:"ai-streaming",chunkCount:D}}))}catch(ne){console.warn("⚠️ 实时转换JSON失败:",ne),console.warn("⚠️ 当前Markdown内容:",i.value)}}else if(X.type==="end")Me("AI内容生成完成!","success");else if(X.type==="error")throw new Error(X.content)}catch(X){console.warn("解析流式数据失败:",X)}}}catch(ye){throw console.error("流式AI API调用失败:",ye),ye}},ge=j=>{if(j.includes("|")&&j.includes("-")){const V=j.split(` +`);let re=!1,ie=!1;for(const Ee of V){const ye=Ee.trim();ye.includes("|")&&ye.split("|").length>=3&&(re=!0),ye.includes("|")&&ye.includes("-")&&/^[\s\|\-\:]+$/.test(ye)&&(ie=!0)}if(re&&ie)return console.log("🚫 formatMarkdownToText: 检测到表格内容,跳过转换"),j}return j.replace(/^### (.*$)/gim,"📋 $1").replace(/^## (.*$)/gim,"📌 $1").replace(/^# (.*$)/gim,"🎯 $1").replace(/\*\*(.*?)\*\*/g,(V,re)=>{if(re.includes(":")){const ie=re.split(":");if(ie.length>1)return`【${ie[0]}】: ${ie.slice(1).join(":")}`}return`【${re}】`}).replace(/\*(.*?)\*/g,"《$1》").replace(/^- (.*$)/gim," • $1").replace(/^\d+\. (.*$)/gim," $&").replace(/```(.*?)```/gims,"💻 $1").replace(/`(.*?)`/g,"「$1」").replace(/\[([^\]]+)\]\([^)]+\)/g,"🔗 $1").replace(/\n\n/g,` +`).replace(/\n/g,` + `)},Ae=async()=>{if(!i.value.trim()){Me("请输入Markdown内容","error");return}l.value=!0;try{const j=et(i.value);a.value=JSON.stringify(j,null,2)}catch(j){console.error("转换失败:",j),Me("转换失败,请检查Markdown格式","error")}finally{l.value=!1}},et=j=>{const V=j.split(` +`);let re=null;const ie=[];let Ee=0,ye=[];if(V.forEach((fe,Ue)=>{const S=fe.trim(),D=S.match(/^(#{1,6})\s+(.+)$/);if(D){if(ye.length>0&&ie.length>0){const X=ye.join(` +`).trim();X&&(Ee=Je(X,ie[ie.length-1],Ee).nodeCounter),ye=[]}const F=D[1].length,G=D[2].trim(),q=ge(G),H={id:`node_${Ee++}`,topic:q,children:[],level:F,data:{}};if(F===1&&!re)re=H,ie.length=0,ie.push(re);else{for(;ie.length>1&&ie[ie.length-1].level>=F;)ie.pop();ie.length>0&&ie[ie.length-1].children.push(H),ie.push(H)}}else S&&ye.push(S)}),ye.length>0&&ie.length>0){const fe=ye.join(` +`).trim();fe&&(fe.includes("|")&&console.log("🔍 处理最后的内容(包含表格):",fe.substring(0,200)+"..."),Ee=Je(fe,ie[ie.length-1],Ee).nodeCounter)}return re||(re={id:"root",topic:"根节点",children:[],data:{}}),re},Je=(j,V,re)=>{if(ot(j)){console.log("🎯 检测到表格内容,创建表格节点");const fe={id:`node_${re++}`,topic:j,children:[],level:(V.level||0)+1,data:{}};return V.children.push(fe),{nodeCounter:re}}const ie=j.split(` +`);let Ee=re,ye=[];for(let fe=0;fe0){const X=ge(q.join(` +`));G.topic=G.topic+` + +`+X}V.children.push(G),fe=H-1}else S&&ye.push(S)}if(ye.length>0){const fe=ye.join(` +`).trim();if(fe)if(ot(fe)){console.log("🎯 检测到表格内容,创建表格节点");const Ue={id:`node_${Ee++}`,topic:fe,children:[],level:(V.level||0)+1,data:{}};V.children.push(Ue)}else fe.split(` + +`).filter(S=>S.trim()).forEach(S=>{const D=ge(S.trim());if(D){const F={id:`node_${Ee++}`,topic:D,children:[],level:(V.level||0)+1,data:{}};V.children.push(F)}})}return{nodeCounter:Ee}},ot=j=>{if(!j||typeof j!="string")return!1;j.includes("|")&&console.log("🔍 检查表格内容:",j.substring(0,200)+"...");const V=j.split(` +`);let re=!1,ie=!1;for(const Ue of V){const S=Ue.trim();S.includes("|")&&S.split("|").length>=3&&(re=!0,console.log("✅ 找到表格行:",S)),S.includes("|")&&S.includes("-")&&/^[\s\|\-\:]+$/.test(S)&&(ie=!0,console.log("✅ 找到分隔符行:",S))}const Ee=(j.match(/\|/g)||[]).length,ye=Ee>=4,fe=re&&ie||re&&ye;return console.log("🔍 表格检测结果:",{hasTableRow:re,hasSeparator:ie,pipeCount:Ee,hasMultiplePipes:ye,result:fe}),fe},Fe=async()=>{if(!i.value){Me("没有Markdown内容可复制","error");return}try{await navigator.clipboard.writeText(i.value),Me("Markdown已复制到剪贴板","success")}catch{const V=document.createElement("textarea");V.value=i.value,document.body.appendChild(V),V.select(),document.execCommand("copy"),V.remove(),Me("Markdown已复制到剪贴板","success")}},Ie=async()=>{try{await navigator.clipboard.writeText(a.value),Me("JSON已复制到剪贴板","success")}catch(j){console.error("复制失败:",j),Me("复制失败","error")}},ve=async()=>{if(!a.value){Me("请先生成或转换JSON数据","error");return}try{const j=JSON.parse(a.value),V=j.topic||j.title||`AI生成的思维导图_${new Date().toLocaleString()}`,re=new CustomEvent("save-preview-to-database",{detail:{data:j,title:V,source:"ai-generated",timestamp:Date.now()}});window.dispatchEvent(re),setTimeout(()=>{Me("思维导图已保存成功!","success"),v.value=null,b.value&&(b.value.value="")},2e3)}catch(j){console.error("JSON解析失败:",j),Me("JSON格式错误,请检查数据","error")}},Me=(j,V="info")=>{const re=document.createElement("div");switch(re.className=`notification notification-${V}`,re.textContent=j,re.style.cssText=` + position: fixed; + top: 20px; + right: 20px; + padding: 12px 20px; + border-radius: 8px; + font-size: 14px; + font-weight: 500; + z-index: 10000; + box-shadow: 0 4px 12px rgba(0,0,0,0.15); + animation: slideIn 0.3s ease; + max-width: 300px; + word-wrap: break-word; + `,V){case"success":re.style.background="#4CAF50",re.style.color="white";break;case"error":re.style.background="#f44336",re.style.color="white";break;case"info":default:re.style.background="#2196F3",re.style.color="white";break}if(!document.querySelector("#notification-styles")){const ie=document.createElement("style");ie.id="notification-styles",ie.textContent=` + @keyframes slideIn { + from { transform: translateX(100%); opacity: 0; } + to { transform: translateX(0); opacity: 1; } + } + @keyframes slideOut { + from { transform: translateX(0); opacity: 1; } + to { transform: translateX(100%); opacity: 0; } + } + `,document.head.appendChild(ie)}document.body.appendChild(re),setTimeout(()=>{re.style.animation="slideOut 0.3s ease",setTimeout(()=>{re.parentNode&&re.parentNode.removeChild(re)},300)},3e3)},tt=()=>{i.value="",a.value="",Me("内容已清空","info")},We=(j,V,re=null)=>{const ie={title:j,content:V,mindmapId:re,timestamp:new Date};c.value.unshift(ie),c.value.length>10&&(c.value=c.value.slice(0,10)),localStorage.setItem("ai-sidebar-history",JSON.stringify(c.value))},_e=async j=>{j.mindmapId?window.dispatchEvent(new CustomEvent("loadMindmapFromHistory",{detail:{mindmapId:j.mindmapId,title:j.title}})):(i.value=j.content,await Ae(),window.dispatchEvent(new CustomEvent("loadMindmapFromHistory",{detail:{markdown:j.content,json:a.value,title:j.title}})))},St=j=>new Date(j).toLocaleString("zh-CN");Oa(()=>{const j=localStorage.getItem("ai-sidebar-history");if(j)try{c.value=JSON.parse(j)}catch(V){console.error("加载历史记录失败:",V)}window.addEventListener("add-to-history",V=>{const{title:re,content:ie,timestamp:Ee}=V.detail;We(re,ie,null)}),window.addEventListener("mindmap-saved",V=>{const{mindmapId:re,title:ie,timestamp:Ee}=V.detail,ye=c.value.find(fe=>fe.title===ie||fe.timestamp&&Math.abs(fe.timestamp-Ee)<5e3);ye?(ye.mindmapId=re,localStorage.setItem("ai-sidebar-history",JSON.stringify(c.value))):We(ie,"",re)}),i0(s,(V,re)=>{}),i0(i,(V,re)=>{})});const mt=async()=>{try{const j=await fetch("http://127.0.0.1:8000/api/ai/test-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({test:"data"})});if(!j.ok)throw new Error(`HTTP error! status: ${j.status}`);const V=j.body.getReader(),re=new TextDecoder;let ie="";for(;;){const{done:Ee,value:ye}=await V.read();if(Ee)break;ie+=re.decode(ye,{stream:!0});const fe=ie.split(` +`);ie=fe.pop()||"";for(const Ue of fe)if(Ue.startsWith("data: "))try{const S=JSON.parse(Ue.slice(6))}catch(S){console.warn("解析测试数据失败:",S)}}}catch(j){console.error("❌ 测试流式API失败:",j)}};return window.testStreamAPI=mt,(j,V)=>(Ve(),Ke("div",b7,[Y("div",{class:"sidebar-toggle",onClick:x,title:n.value?"展开AI助手":"折叠AI助手",style:On({left:n.value?"10px":"420px"})},[n.value?(Ve(),Ke("svg",w7,[...V[1]||(V[1]=[Y("path",{d:"M9 18l6-6-6-6"},null,-1)])])):(Ve(),Ke("svg",x7,[...V[2]||(V[2]=[Y("path",{d:"M15 18l-6-6 6-6"},null,-1)])]))],12,y7),Y("div",{class:Ln(["ai-sidebar",{"sidebar-collapsed":n.value}])},[ds(Y("div",k7,[V[12]||(V[12]=Y("div",{class:"sidebar-header"},[Y("h3",null,"🤖 AI 助手"),Y("p",null,"文档转思维导图工具"),Y("div",{class:"collapse-hint"},[Y("small",null,"💡 点击右侧按钮可折叠侧边栏")])],-1)),Y("div",S7,[V[6]||(V[6]=Y("h4",null,"📁 生成思维导图",-1)),Y("div",T7,[V[4]||(V[4]=Y("label",null,"上传文件:",-1)),Y("div",{class:"file-upload-area",onDrop:M,onDragover:k,onDragleave:T},[Y("input",{type:"file",ref_key:"fileInput",ref:b,onChange:y,accept:".txt,.md,.doc,.docx,.pdf",class:"file-input"},null,544),Y("div",{class:Ln(["file-upload-placeholder",{"drag-over":d.value}])},[...V[3]||(V[3]=[Y("span",{class:"upload-icon"},"📎",-1),Y("span",{class:"upload-text"},"点击选择文件或拖拽文件到此处",-1),Y("span",{class:"upload-hint"},"支持 .txt, .md, .doc, .docx, .pdf 格式",-1)])],2)],32)]),v.value?(Ve(),Ke("div",A7,[Y("div",E7,[Y("div",C7,[Y("span",M7,"📄 "+ur(v.value.name),1),Y("span",N7,"("+ur(I(v.value.size))+")",1)]),Y("button",{onClick:N,class:"btn-remove",title:"删除文件"},[...V[5]||(V[5]=[Y("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[Y("path",{d:"M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M10 11v6M14 11v6"})],-1)])])])])):Sr("",!0),Y("div",D7,[Y("button",{onClick:O,disabled:!v.value||o.value,class:"btn-primary"},[o.value?(Ve(),Ke("span",I7,"AI生成中...")):(Ve(),Ke("span",_7,"AI生成思维导图"))],8,R7)])]),c.value.length>0?(Ve(),Ke("div",O7,[V[7]||(V[7]=Y("h4",null,"📚 历史记录",-1)),Y("div",L7,[(Ve(!0),Ke(er,null,du(c.value,(re,ie)=>(Ve(),Ke("div",{key:ie,class:"history-item",onClick:Ee=>_e(re)},[Y("div",F7,ur(re.title),1),Y("div",$7,ur(St(re.timestamp)),1)],8,z7))),128))])])):Sr("",!0),Y("div",B7,[V[9]||(V[9]=Y("h4",null,"📝 AI生成的Markdown结果",-1)),Y("div",P7,[V[8]||(V[8]=Y("label",null,"Markdown内容:",-1)),ds(Y("textarea",{"onUpdate:modelValue":V[0]||(V[0]=re=>i.value=re),placeholder:"AI生成的Markdown内容将显示在这里",rows:"6",readonly:"",class:"markdown-result"},null,512),[[Pa,i.value]])]),Y("div",H7,[Y("button",{onClick:Ae,disabled:l.value,class:"btn-secondary"},[l.value?(Ve(),Ke("span",j7,"转换中...")):(Ve(),Ke("span",U7,"🔄 转换为JSON"))],8,q7),Y("button",{onClick:tt,class:"btn-clear"},"清空"),Y("button",{onClick:Fe,class:"btn-copy"},"📋 复制Markdown")])]),Y("div",V7,[V[11]||(V[11]=Y("h4",null,"📊 Markdown转JSON结果",-1)),f.value?(Ve(),Ke("div",W7,[V[10]||(V[10]=Y("div",{class:"spinner"},null,-1)),Y("span",null,ur(p.value),1)])):Sr("",!0),Y("div",G7,[Y("pre",K7,ur(a.value||"JSON转换结果将显示在这里"),1),Y("div",Y7,[Y("button",{onClick:Ie,class:"btn-copy"},"📋 复制JSON"),Y("button",{onClick:ve,disabled:f.value,class:"btn-copy"},ur(f.value?"处理中...":"👁️ 预览"),9,X7)])])])],512),[[Lf,!n.value]])],2)]))}},Z7=_o(J7,[["__scopeId","data-v-d0b1a702"]]);const Q7={class:"markdown-test"},e8={class:"test-section"},t8={class:"test-section"},r8=["innerHTML"],n8={class:"test-section"},s8={class:"test-cases"},i8=["onClick"],a8={__name:"MarkdownTest",setup(t){const e=ze(`# 测试标题 + +这是一个**粗体**和*斜体*的测试。 + +## 表格测试 + +| 产品 | 价格 | 库存 | +|------|------|------| +| 苹果 | 4元 | 100个 | +| 香蕉 | 2元 | 50个 | + +## 代码测试 + +\`\`\`javascript +function hello() { + console.log('Hello World!'); +} +\`\`\` + +行内代码:\`const name = 'test'\` + +## 列表测试 + +- 项目1 +- 项目2 + - 子项目2.1 + - 子项目2.2 +- 项目3 + +## 链接测试 + +- [GitHub](https://github.com) +- [Vue.js](https://vuejs.org)`),r=ze([{name:"基础表格",content:`# 产品价格表 + +| 产品 | 价格 | +|------|------| +| 苹果 | 4元 | +| 香蕉 | 2元 |`},{name:"复杂表格",content:`# 技术栈对比 + +| 技术 | 前端 | 后端 | 数据库 | +|------|------|------|--------| +| Vue.js | ✅ | ❌ | ❌ | +| Django | ❌ | ✅ | ❌ | +| PostgreSQL | ❌ | ❌ | ✅ |`},{name:"代码块",content:`# 代码示例 + +\`\`\`javascript +function markdownToJSON(markdown) { + const lines = markdown.split('\\n'); + // 处理逻辑... + return result; +} +\`\`\``},{name:"混合内容",content:`# 混合内容测试 + +这是一个包含**粗体**、*斜体*和\`行内代码\`的段落。 + +## 表格 + +| 功能 | 状态 | 说明 | +|------|------|------| +| 表格渲染 | ✅ | 支持markdown表格 | +| 代码高亮 | ✅ | 支持代码块 | + +## 代码 + +\`\`\`python +def hello_world(): + print("Hello, World!") +\`\`\``}]),n=Ou(()=>{if(!e.value)return"";try{return ya(e.value)}catch(a){return`
    渲染失败: ${a.message}
    `}}),s=()=>{},i=a=>{e.value=a.content};return(a,o)=>(Ve(),Ke("div",Q7,[o[4]||(o[4]=Y("h2",null,"Markdown渲染测试",-1)),Y("div",e8,[o[1]||(o[1]=Y("h3",null,"输入Markdown内容",-1)),ds(Y("textarea",{"onUpdate:modelValue":o[0]||(o[0]=l=>e.value=l),placeholder:"输入markdown内容...",rows:"10",class:"markdown-input"},null,512),[[Pa,e.value]])]),Y("div",t8,[o[2]||(o[2]=Y("h3",null,"渲染结果",-1)),Y("div",{class:"rendered-content",innerHTML:n.value},null,8,r8)]),Y("div",n8,[o[3]||(o[3]=Y("h3",null,"测试用例",-1)),Y("button",{onClick:s,class:"test-btn"},"加载测试用例"),Y("div",s8,[(Ve(!0),Ke(er,null,du(r.value,(l,c)=>(Ve(),Ke("button",{key:c,onClick:d=>i(l),class:"test-case-btn"},ur(l.name),9,i8))),128))])])]))}},o8=_o(a8,[["__scopeId","data-v-68a00828"]]);const l8={id:"app"},c8={class:"test-mode-toggle",style:{display:"none"}},u8={key:0,class:"test-mode"},d8={key:1},h8={class:"main-content"},f8={__name:"App",setup(t){const e=ze(null),r=ze(!1),n=()=>{r.value=!r.value},s=()=>{e.value&&e.value.showMindMapPage()};return(i,a)=>(Ve(),Ke("div",l8,[a[0]||(a[0]=Ru("« ",-1)),Y("div",c8,[Y("button",{onClick:n,class:"test-btn"},ur(r.value?"切换到思维导图":"测试Markdown渲染"),1)]),r.value?(Ve(),Ke("div",u8,[Ht(o8)])):(Ve(),Ke("div",d8,[Ht(Z7,{onStartRealtimeGeneration:s}),Y("div",h8,[Ht(m7,{ref_key:"mindMapRef",ref:e},null,512)])]))]))}};tp(f8).mount("#app");export{Dc as _,Wl as c,v8 as g}; diff --git a/frontend/dist/assets/index-a09f7810.js b/frontend/dist/assets/index-a09f7810.js deleted file mode 100644 index d07738a..0000000 --- a/frontend/dist/assets/index-a09f7810.js +++ /dev/null @@ -1,594 +0,0 @@ -var Id=Object.defineProperty;var _d=(t,e,r)=>e in t?Id(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Ge=(t,e,r)=>(_d(t,typeof e!="symbol"?e+"":e,r),r);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();/** -* @vue/shared v3.5.20 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function xa(t){const e=Object.create(null);for(const r of t.split(","))e[r]=1;return r=>r in e}const Ye={},Mn=[],rr=()=>{},Rc=()=>!1,Ii=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),ka=t=>t.startsWith("onUpdate:"),wt=Object.assign,Sa=(t,e)=>{const r=t.indexOf(e);r>-1&&t.splice(r,1)},Od=Object.prototype.hasOwnProperty,He=(t,e)=>Od.call(t,e),Me=Array.isArray,Nn=t=>_i(t)==="[object Map]",Ic=t=>_i(t)==="[object Set]",De=t=>typeof t=="function",dt=t=>typeof t=="string",Jr=t=>typeof t=="symbol",lt=t=>t!==null&&typeof t=="object",_c=t=>(lt(t)||De(t))&&De(t.then)&&De(t.catch),Oc=Object.prototype.toString,_i=t=>Oc.call(t),Ld=t=>_i(t).slice(8,-1),Lc=t=>_i(t)==="[object Object]",Ta=t=>dt(t)&&t!=="NaN"&&t[0]!=="-"&&""+parseInt(t,10)===t,Qn=xa(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Oi=t=>{const e=Object.create(null);return r=>e[r]||(e[r]=t(r))},zd=/-(\w)/g,Wr=Oi(t=>t.replace(zd,(e,r)=>r?r.toUpperCase():"")),Fd=/\B([A-Z])/g,Qr=Oi(t=>t.replace(Fd,"-$1").toLowerCase()),zc=Oi(t=>t.charAt(0).toUpperCase()+t.slice(1)),as=Oi(t=>t?`on${zc(t)}`:""),Vr=(t,e)=>!Object.is(t,e),Y0=(t,...e)=>{for(let r=0;r{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,writable:n,value:r})},Bs=t=>{const e=parseFloat(t);return isNaN(e)?t:e};let Fo;const Li=()=>Fo||(Fo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ln(t){if(Me(t)){const e={};for(let r=0;r{if(r){const n=r.split(Bd);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}function pn(t){let e="";if(dt(t))e=t;else if(Me(t))for(let r=0;r!!(t&&t.__v_isRef===!0),Qt=t=>dt(t)?t:t==null?"":Me(t)||lt(t)&&(t.toString===Oc||!De(t.toString))?Bc(t)?Qt(t.value):JSON.stringify(t,Pc,2):String(t),Pc=(t,e)=>Bc(e)?Pc(t,e.value):Nn(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((r,[n,i],s)=>(r[os(n,s)+" =>"]=i,r),{})}:Ic(e)?{[`Set(${e.size})`]:[...e.values()].map(r=>os(r))}:Jr(e)?os(e):lt(e)&&!Me(e)&&!Lc(e)?String(e):e,os=(t,e="")=>{var r;return Jr(t)?`Symbol(${(r=t.description)!=null?r:e})`:t};/** -* @vue/reactivity v3.5.20 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let _t;class Ud{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_t,!e&&_t&&(this.index=(_t.scopes||(_t.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,r;if(this.scopes)for(e=0,r=this.scopes.length;e0&&--this._on===0&&(_t=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let r,n;for(r=0,n=this.effects.length;r0)return;if(t0){let e=t0;for(t0=void 0;e;){const r=e.next;e.next=void 0,e.flags&=-9,e=r}}let t;for(;e0;){let e=e0;for(e0=void 0;e;){const r=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(n){t||(t=n)}e=r}}if(t)throw t}function Uc(t){for(let e=t.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function Vc(t){let e,r=t.depsTail,n=r;for(;n;){const i=n.prevDep;n.version===-1?(n===r&&(r=i),Ca(n),Wd(n)):e=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=i}t.deps=e,t.depsTail=r}function Ps(t){for(let e=t.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(Wc(e.dep.computed)||e.dep.version!==e.version))return!0;return!!t._dirty}function Wc(t){if(t.flags&4&&!(t.flags&16)||(t.flags&=-17,t.globalVersion===c0)||(t.globalVersion=c0,!t.isSSR&&t.flags&128&&(!t.deps&&!t._dirty||!Ps(t))))return;t.flags|=2;const e=t.dep,r=Je,n=nr;Je=t,nr=!0;try{Uc(t);const i=t.fn(t._value);(e.version===0||Vr(i,t._value))&&(t.flags|=128,t._value=i,e.version++)}catch(i){throw e.version++,i}finally{Je=r,nr=n,Vc(t),t.flags&=-3}}function Ca(t,e=!1){const{dep:r,prevSub:n,nextSub:i}=t;if(n&&(n.nextSub=i,t.prevSub=void 0),i&&(i.prevSub=n,t.nextSub=void 0),r.subs===t&&(r.subs=n,!n&&r.computed)){r.computed.flags&=-5;for(let s=r.computed.deps;s;s=s.nextDep)Ca(s,!0)}!e&&!--r.sc&&r.map&&r.map.delete(r.key)}function Wd(t){const{prevDep:e,nextDep:r}=t;e&&(e.nextDep=r,t.prevDep=void 0),r&&(r.prevDep=e,t.nextDep=void 0)}let nr=!0;const Gc=[];function Rr(){Gc.push(nr),nr=!1}function Ir(){const t=Gc.pop();nr=t===void 0?!0:t}function $o(t){const{cleanup:e}=t;if(t.cleanup=void 0,e){const r=Je;Je=void 0;try{e()}finally{Je=r}}}let c0=0;class Gd{constructor(e,r){this.sub=e,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Ma{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!Je||!nr||Je===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==Je)r=this.activeLink=new Gd(Je,this),Je.deps?(r.prevDep=Je.depsTail,Je.depsTail.nextDep=r,Je.depsTail=r):Je.deps=Je.depsTail=r,Kc(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const n=r.nextDep;n.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=n),r.prevDep=Je.depsTail,r.nextDep=void 0,Je.depsTail.nextDep=r,Je.depsTail=r,Je.deps===r&&(Je.deps=n)}return r}trigger(e){this.version++,c0++,this.notify(e)}notify(e){Aa();try{for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{Ea()}}}function Kc(t){if(t.dep.sc++,t.sub.flags&4){const e=t.dep.computed;if(e&&!t.dep.subs){e.flags|=20;for(let n=e.deps;n;n=n.nextDep)Kc(n)}const r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}const Hs=new WeakMap,hn=Symbol(""),qs=Symbol(""),u0=Symbol("");function xt(t,e,r){if(nr&&Je){let n=Hs.get(t);n||Hs.set(t,n=new Map);let i=n.get(r);i||(n.set(r,i=new Ma),i.map=n,i.key=r),i.track()}}function Ar(t,e,r,n,i,s){const a=Hs.get(t);if(!a){c0++;return}const o=l=>{l&&l.trigger()};if(Aa(),e==="clear")a.forEach(o);else{const l=Me(t),c=l&&Ta(r);if(l&&r==="length"){const d=Number(n);a.forEach((f,p)=>{(p==="length"||p===u0||!Jr(p)&&p>=d)&&o(f)})}else switch((r!==void 0||a.has(void 0))&&o(a.get(r)),c&&o(a.get(u0)),e){case"add":l?c&&o(a.get("length")):(o(a.get(hn)),Nn(t)&&o(a.get(qs)));break;case"delete":l||(o(a.get(hn)),Nn(t)&&o(a.get(qs)));break;case"set":Nn(t)&&o(a.get(hn));break}}Ea()}function xn(t){const e=Pe(t);return e===t?e:(xt(e,"iterate",u0),Gt(t)?e:e.map(yt))}function zi(t){return xt(t=Pe(t),"iterate",u0),t}const Kd={__proto__:null,[Symbol.iterator](){return cs(this,Symbol.iterator,yt)},concat(...t){return xn(this).concat(...t.map(e=>Me(e)?xn(e):e))},entries(){return cs(this,"entries",t=>(t[1]=yt(t[1]),t))},every(t,e){return wr(this,"every",t,e,void 0,arguments)},filter(t,e){return wr(this,"filter",t,e,r=>r.map(yt),arguments)},find(t,e){return wr(this,"find",t,e,yt,arguments)},findIndex(t,e){return wr(this,"findIndex",t,e,void 0,arguments)},findLast(t,e){return wr(this,"findLast",t,e,yt,arguments)},findLastIndex(t,e){return wr(this,"findLastIndex",t,e,void 0,arguments)},forEach(t,e){return wr(this,"forEach",t,e,void 0,arguments)},includes(...t){return us(this,"includes",t)},indexOf(...t){return us(this,"indexOf",t)},join(t){return xn(this).join(t)},lastIndexOf(...t){return us(this,"lastIndexOf",t)},map(t,e){return wr(this,"map",t,e,void 0,arguments)},pop(){return jn(this,"pop")},push(...t){return jn(this,"push",t)},reduce(t,...e){return Bo(this,"reduce",t,e)},reduceRight(t,...e){return Bo(this,"reduceRight",t,e)},shift(){return jn(this,"shift")},some(t,e){return wr(this,"some",t,e,void 0,arguments)},splice(...t){return jn(this,"splice",t)},toReversed(){return xn(this).toReversed()},toSorted(t){return xn(this).toSorted(t)},toSpliced(...t){return xn(this).toSpliced(...t)},unshift(...t){return jn(this,"unshift",t)},values(){return cs(this,"values",yt)}};function cs(t,e,r){const n=zi(t),i=n[e]();return n!==t&&!Gt(t)&&(i._next=i.next,i.next=()=>{const s=i._next();return s.value&&(s.value=r(s.value)),s}),i}const Yd=Array.prototype;function wr(t,e,r,n,i,s){const a=zi(t),o=a!==t&&!Gt(t),l=a[e];if(l!==Yd[e]){const f=l.apply(t,s);return o?yt(f):f}let c=r;a!==t&&(o?c=function(f,p){return r.call(this,yt(f),p,t)}:r.length>2&&(c=function(f,p){return r.call(this,f,p,t)}));const d=l.call(a,c,n);return o&&i?i(d):d}function Bo(t,e,r,n){const i=zi(t);let s=r;return i!==t&&(Gt(t)?r.length>3&&(s=function(a,o,l){return r.call(this,a,o,l,t)}):s=function(a,o,l){return r.call(this,a,yt(o),l,t)}),i[e](s,...n)}function us(t,e,r){const n=Pe(t);xt(n,"iterate",u0);const i=n[e](...r);return(i===-1||i===!1)&&Ia(r[0])?(r[0]=Pe(r[0]),n[e](...r)):i}function jn(t,e,r=[]){Rr(),Aa();const n=Pe(t)[e].apply(t,r);return Ea(),Ir(),n}const Xd=xa("__proto__,__v_isRef,__isVue"),Yc=new Set(Object.getOwnPropertyNames(Symbol).filter(t=>t!=="arguments"&&t!=="caller").map(t=>Symbol[t]).filter(Jr));function Zd(t){Jr(t)||(t=String(t));const e=Pe(this);return xt(e,"has",t),e.hasOwnProperty(t)}class Xc{constructor(e=!1,r=!1){this._isReadonly=e,this._isShallow=r}get(e,r,n){if(r==="__v_skip")return e.__v_skip;const i=this._isReadonly,s=this._isShallow;if(r==="__v_isReactive")return!i;if(r==="__v_isReadonly")return i;if(r==="__v_isShallow")return s;if(r==="__v_raw")return n===(i?s?oh:eu:s?Qc:Jc).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;const a=Me(e);if(!i){let l;if(a&&(l=Kd[r]))return l;if(r==="hasOwnProperty")return Zd}const o=Reflect.get(e,r,St(e)?e:n);return(Jr(r)?Yc.has(r):Xd(r))||(i||xt(e,"get",r),s)?o:St(o)?a&&Ta(r)?o:o.value:lt(o)?i?tu(o):Da(o):o}}class Zc extends Xc{constructor(e=!1){super(!1,e)}set(e,r,n,i){let s=e[r];if(!this._isShallow){const l=Gr(s);if(!Gt(n)&&!Gr(n)&&(s=Pe(s),n=Pe(n)),!Me(e)&&St(s)&&!St(n))return l||(s.value=n),!0}const a=Me(e)&&Ta(r)?Number(r)t,N0=t=>Reflect.getPrototypeOf(t);function rh(t,e,r){return function(...n){const i=this.__v_raw,s=Pe(i),a=Nn(s),o=t==="entries"||t===Symbol.iterator&&a,l=t==="keys"&&a,c=i[t](...n),d=r?js:e?li:yt;return!e&&xt(s,"iterate",l?qs:hn),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:o?[d(f[0]),d(f[1])]:d(f),done:p}},[Symbol.iterator](){return this}}}}function D0(t){return function(...e){return t==="delete"?!1:t==="clear"?void 0:this}}function nh(t,e){const r={get(i){const s=this.__v_raw,a=Pe(s),o=Pe(i);t||(Vr(i,o)&&xt(a,"get",i),xt(a,"get",o));const{has:l}=N0(a),c=e?js:t?li:yt;if(l.call(a,i))return c(s.get(i));if(l.call(a,o))return c(s.get(o));s!==a&&s.get(i)},get size(){const i=this.__v_raw;return!t&&xt(Pe(i),"iterate",hn),i.size},has(i){const s=this.__v_raw,a=Pe(s),o=Pe(i);return t||(Vr(i,o)&&xt(a,"has",i),xt(a,"has",o)),i===o?s.has(i):s.has(i)||s.has(o)},forEach(i,s){const a=this,o=a.__v_raw,l=Pe(o),c=e?js:t?li:yt;return!t&&xt(l,"iterate",hn),o.forEach((d,f)=>i.call(s,c(d),c(f),a))}};return wt(r,t?{add:D0("add"),set:D0("set"),delete:D0("delete"),clear:D0("clear")}:{add(i){!e&&!Gt(i)&&!Gr(i)&&(i=Pe(i));const s=Pe(this);return N0(s).has.call(s,i)||(s.add(i),Ar(s,"add",i,i)),this},set(i,s){!e&&!Gt(s)&&!Gr(s)&&(s=Pe(s));const a=Pe(this),{has:o,get:l}=N0(a);let c=o.call(a,i);c||(i=Pe(i),c=o.call(a,i));const d=l.call(a,i);return a.set(i,s),c?Vr(s,d)&&Ar(a,"set",i,s):Ar(a,"add",i,s),this},delete(i){const s=Pe(this),{has:a,get:o}=N0(s);let l=a.call(s,i);l||(i=Pe(i),l=a.call(s,i)),o&&o.call(s,i);const c=s.delete(i);return l&&Ar(s,"delete",i,void 0),c},clear(){const i=Pe(this),s=i.size!==0,a=i.clear();return s&&Ar(i,"clear",void 0,void 0),a}}),["keys","values","entries",Symbol.iterator].forEach(i=>{r[i]=rh(i,t,e)}),r}function Na(t,e){const r=nh(t,e);return(n,i,s)=>i==="__v_isReactive"?!t:i==="__v_isReadonly"?t:i==="__v_raw"?n:Reflect.get(He(r,i)&&i in n?r:n,i,s)}const ih={get:Na(!1,!1)},sh={get:Na(!1,!0)},ah={get:Na(!0,!1)};const Jc=new WeakMap,Qc=new WeakMap,eu=new WeakMap,oh=new WeakMap;function lh(t){switch(t){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ch(t){return t.__v_skip||!Object.isExtensible(t)?0:lh(Ld(t))}function Da(t){return Gr(t)?t:Ra(t,!1,Qd,ih,Jc)}function uh(t){return Ra(t,!1,th,sh,Qc)}function tu(t){return Ra(t,!0,eh,ah,eu)}function Ra(t,e,r,n,i){if(!lt(t)||t.__v_raw&&!(e&&t.__v_isReactive))return t;const s=ch(t);if(s===0)return t;const a=i.get(t);if(a)return a;const o=new Proxy(t,s===2?n:r);return i.set(t,o),o}function Dn(t){return Gr(t)?Dn(t.__v_raw):!!(t&&t.__v_isReactive)}function Gr(t){return!!(t&&t.__v_isReadonly)}function Gt(t){return!!(t&&t.__v_isShallow)}function Ia(t){return t?!!t.__v_raw:!1}function Pe(t){const e=t&&t.__v_raw;return e?Pe(e):t}function dh(t){return!He(t,"__v_skip")&&Object.isExtensible(t)&&Fc(t,"__v_skip",!0),t}const yt=t=>lt(t)?Da(t):t,li=t=>lt(t)?tu(t):t;function St(t){return t?t.__v_isRef===!0:!1}function ze(t){return hh(t,!1)}function hh(t,e){return St(t)?t:new fh(t,e)}class fh{constructor(e,r){this.dep=new Ma,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?e:Pe(e),this._value=r?e:yt(e),this.__v_isShallow=r}get value(){return this.dep.track(),this._value}set value(e){const r=this._rawValue,n=this.__v_isShallow||Gt(e)||Gr(e);e=n?e:Pe(e),Vr(e,r)&&(this._rawValue=e,this._value=n?e:yt(e),this.dep.trigger())}}function ph(t){return St(t)?t.value:t}const mh={get:(t,e,r)=>e==="__v_raw"?t:ph(Reflect.get(t,e,r)),set:(t,e,r,n)=>{const i=t[e];return St(i)&&!St(r)?(i.value=r,!0):Reflect.set(t,e,r,n)}};function ru(t){return Dn(t)?t:new Proxy(t,mh)}class gh{constructor(e,r,n){this.fn=e,this.setter=r,this._value=void 0,this.dep=new Ma(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=c0-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Je!==this)return jc(this,!0),!0}get value(){const e=this.dep.track();return Wc(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function vh(t,e,r=!1){let n,i;return De(t)?n=t:(n=t.get,i=t.set),new gh(n,i,r)}const R0={},ci=new WeakMap;let cn;function bh(t,e=!1,r=cn){if(r){let n=ci.get(r);n||ci.set(r,n=[]),n.push(t)}}function yh(t,e,r=Ye){const{immediate:n,deep:i,once:s,scheduler:a,augmentJob:o,call:l}=r,c=N=>i?N:Gt(N)||i===!1||i===0?Er(N,1):Er(N);let d,f,p,b,v=!1,k=!1;if(St(t)?(f=()=>t.value,v=Gt(t)):Dn(t)?(f=()=>c(t),v=!0):Me(t)?(k=!0,v=t.some(N=>Dn(N)||Gt(N)),f=()=>t.map(N=>{if(St(N))return N.value;if(Dn(N))return c(N);if(De(N))return l?l(N,2):N()})):De(t)?e?f=l?()=>l(t,2):t:f=()=>{if(p){Rr();try{p()}finally{Ir()}}const N=cn;cn=d;try{return l?l(t,3,[b]):t(b)}finally{cn=N}}:f=rr,e&&i){const N=f,_=i===!0?1/0:i;f=()=>Er(N(),_)}const w=Vd(),M=()=>{d.stop(),w&&w.active&&Sa(w.effects,d)};if(s&&e){const N=e;e=(..._)=>{N(..._),M()}}let x=k?new Array(t.length).fill(R0):R0;const A=N=>{if(!(!(d.flags&1)||!d.dirty&&!N))if(e){const _=d.run();if(i||v||(k?_.some((O,z)=>Vr(O,x[z])):Vr(_,x))){p&&p();const O=cn;cn=d;try{const z=[_,x===R0?void 0:k&&x[0]===R0?[]:x,b];x=_,l?l(e,3,z):e(...z)}finally{cn=O}}}else d.run()};return o&&o(A),d=new Hc(f),d.scheduler=a?()=>a(A,!1):A,b=N=>bh(N,!1,d),p=d.onStop=()=>{const N=ci.get(d);if(N){if(l)l(N,4);else for(const _ of N)_();ci.delete(d)}},e?n?A(!0):x=d.run():a?a(A.bind(null,!0),!0):d.run(),M.pause=d.pause.bind(d),M.resume=d.resume.bind(d),M.stop=M,M}function Er(t,e=1/0,r){if(e<=0||!lt(t)||t.__v_skip||(r=r||new Set,r.has(t)))return t;if(r.add(t),e--,St(t))Er(t.value,e,r);else if(Me(t))for(let n=0;n{Er(n,e,r)});else if(Lc(t)){for(const n in t)Er(t[n],e,r);for(const n of Object.getOwnPropertySymbols(t))Object.prototype.propertyIsEnumerable.call(t,n)&&Er(t[n],e,r)}return t}/** -* @vue/runtime-core v3.5.20 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function v0(t,e,r,n){try{return n?t(...n):t()}catch(i){Fi(i,e,r)}}function mr(t,e,r,n){if(De(t)){const i=v0(t,e,r,n);return i&&_c(i)&&i.catch(s=>{Fi(s,e,r)}),i}if(Me(t)){const i=[];for(let s=0;s>>1,i=Et[n],s=d0(i);s=d0(r)?Et.push(t):Et.splice(xh(e),0,t),t.flags|=1,iu()}}function iu(){ui||(ui=nu.then(au))}function kh(t){Me(t)?Rn.push(...t):qr&&t.id===-1?qr.splice(An+1,0,t):t.flags&1||(Rn.push(t),t.flags|=1),iu()}function Po(t,e,r=ur+1){for(;rd0(r)-d0(n));if(Rn.length=0,qr){qr.push(...e);return}for(qr=e,An=0;Ant.id==null?t.flags&2?-1:1/0:t.id;function au(t){const e=rr;try{for(ur=0;ur{n._d&&Ko(-1);const s=di(e);let a;try{a=t(...i)}finally{di(s),n._d&&Ko(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function hi(t,e){if(Vt===null)return t;const r=Hi(Vt),n=t.dirs||(t.dirs=[]);for(let i=0;it.__isTeleport,Eh=Symbol("_leaveCb");function Oa(t,e){t.shapeFlag&6&&t.component?(t.transition=e,Oa(t.component.subTree,e)):t.shapeFlag&128?(t.ssContent.transition=e.clone(t.ssContent),t.ssFallback.transition=e.clone(t.ssFallback)):t.transition=e}function lu(t){t.ids=[t.ids[0]+t.ids[2]+++"-",0,0]}function r0(t,e,r,n,i=!1){if(Me(t)){t.forEach((v,k)=>r0(v,e&&(Me(e)?e[k]:e),r,n,i));return}if(n0(n)&&!i){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&r0(t,e,r,n.component.subTree);return}const s=n.shapeFlag&4?Hi(n.component):n.el,a=i?null:s,{i:o,r:l}=t,c=e&&e.r,d=o.refs===Ye?o.refs={}:o.refs,f=o.setupState,p=Pe(f),b=f===Ye?Rc:v=>He(p,v);if(c!=null&&c!==l){if(dt(c))d[c]=null,b(c)&&(f[c]=null);else if(St(c)){c.value=null;const v=e;v.k&&(d[v.k]=null)}}if(De(l))v0(l,o,12,[a,d]);else{const v=dt(l),k=St(l);if(v||k){const w=()=>{if(t.f){const M=v?b(l)?f[l]:d[l]:l.value;if(i)Me(M)&&Sa(M,s);else if(Me(M))M.includes(s)||M.push(s);else if(v)d[l]=[s],b(l)&&(f[l]=d[l]);else{const x=[s];l.value=x,t.k&&(d[t.k]=x)}}else v?(d[l]=a,b(l)&&(f[l]=a)):k&&(l.value=a,t.k&&(d[t.k]=a))};a?(w.id=-1,Ft(w,r)):w()}}}Li().requestIdleCallback;Li().cancelIdleCallback;const n0=t=>!!t.type.__asyncLoader,cu=t=>t.type.__isKeepAlive;function Ch(t,e){uu(t,"a",e)}function Mh(t,e){uu(t,"da",e)}function uu(t,e,r=Ct){const n=t.__wdc||(t.__wdc=()=>{let i=r;for(;i;){if(i.isDeactivated)return;i=i.parent}return t()});if($i(e,n,r),r){let i=r.parent;for(;i&&i.parent;)cu(i.parent.vnode)&&Nh(n,e,r,i),i=i.parent}}function Nh(t,e,r,n){const i=$i(e,t,n,!0);za(()=>{Sa(n[e],i)},r)}function $i(t,e,r=Ct,n=!1){if(r){const i=r[t]||(r[t]=[]),s=e.__weh||(e.__weh=(...a)=>{Rr();const o=b0(r),l=mr(e,r,t,a);return o(),Ir(),l});return n?i.unshift(s):i.push(s),s}}const zr=t=>(e,r=Ct)=>{(!f0||t==="sp")&&$i(t,(...n)=>e(...n),r)},Dh=zr("bm"),La=zr("m"),Rh=zr("bu"),Ih=zr("u"),_h=zr("bum"),za=zr("um"),Oh=zr("sp"),Lh=zr("rtg"),zh=zr("rtc");function Fh(t,e=Ct){$i("ec",t,e)}const $h=Symbol.for("v-ndc");function du(t,e,r,n){let i;const s=r&&r[n],a=Me(t);if(a||dt(t)){const o=a&&Dn(t);let l=!1,c=!1;o&&(l=!Gt(t),c=Gr(t),t=zi(t)),i=new Array(t.length);for(let d=0,f=t.length;de(o,l,void 0,s&&s[l]));else{const o=Object.keys(t);i=new Array(o.length);for(let l=0,c=o.length;lt?Iu(t)?Hi(t):Us(t.parent):null,i0=wt(Object.create(null),{$:t=>t,$el:t=>t.vnode.el,$data:t=>t.data,$props:t=>t.props,$attrs:t=>t.attrs,$slots:t=>t.slots,$refs:t=>t.refs,$parent:t=>Us(t.parent),$root:t=>Us(t.root),$host:t=>t.ce,$emit:t=>t.emit,$options:t=>Fa(t),$forceUpdate:t=>t.f||(t.f=()=>{_a(t.update)}),$nextTick:t=>t.n||(t.n=X0.bind(t.proxy)),$watch:t=>of.bind(t)}),ds=(t,e)=>t!==Ye&&!t.__isScriptSetup&&He(t,e),Bh={get({_:t},e){if(e==="__v_skip")return!0;const{ctx:r,setupState:n,data:i,props:s,accessCache:a,type:o,appContext:l}=t;let c;if(e[0]!=="$"){const b=a[e];if(b!==void 0)switch(b){case 1:return n[e];case 2:return i[e];case 4:return r[e];case 3:return s[e]}else{if(ds(n,e))return a[e]=1,n[e];if(i!==Ye&&He(i,e))return a[e]=2,i[e];if((c=t.propsOptions[0])&&He(c,e))return a[e]=3,s[e];if(r!==Ye&&He(r,e))return a[e]=4,r[e];Vs&&(a[e]=0)}}const d=i0[e];let f,p;if(d)return e==="$attrs"&&xt(t.attrs,"get",""),d(t);if((f=o.__cssModules)&&(f=f[e]))return f;if(r!==Ye&&He(r,e))return a[e]=4,r[e];if(p=l.config.globalProperties,He(p,e))return p[e]},set({_:t},e,r){const{data:n,setupState:i,ctx:s}=t;return ds(i,e)?(i[e]=r,!0):n!==Ye&&He(n,e)?(n[e]=r,!0):He(t.props,e)||e[0]==="$"&&e.slice(1)in t?!1:(s[e]=r,!0)},has({_:{data:t,setupState:e,accessCache:r,ctx:n,appContext:i,propsOptions:s,type:a}},o){let l,c;return!!(r[o]||t!==Ye&&o[0]!=="$"&&He(t,o)||ds(e,o)||(l=s[0])&&He(l,o)||He(n,o)||He(i0,o)||He(i.config.globalProperties,o)||(c=a.__cssModules)&&c[o])},defineProperty(t,e,r){return r.get!=null?t._.accessCache[e]=0:He(r,"value")&&this.set(t,e,r.value,null),Reflect.defineProperty(t,e,r)}};function Ho(t){return Me(t)?t.reduce((e,r)=>(e[r]=null,e),{}):t}let Vs=!0;function Ph(t){const e=Fa(t),r=t.proxy,n=t.ctx;Vs=!1,e.beforeCreate&&qo(e.beforeCreate,t,"bc");const{data:i,computed:s,methods:a,watch:o,provide:l,inject:c,created:d,beforeMount:f,mounted:p,beforeUpdate:b,updated:v,activated:k,deactivated:w,beforeDestroy:M,beforeUnmount:x,destroyed:A,unmounted:N,render:_,renderTracked:O,renderTriggered:z,errorCaptured:Y,serverPrefetch:W,expose:he,inheritAttrs:pe,components:Ae,directives:st,filters:Ze}=e;if(c&&Hh(c,n,null),a)for(const Oe in a){const ve=a[Oe];De(ve)&&(n[Oe]=ve.bind(r))}if(i){const Oe=i.call(r,r);lt(Oe)&&(t.data=Da(Oe))}if(Vs=!0,s)for(const Oe in s){const ve=s[Oe],Ee=De(ve)?ve.bind(r,r):De(ve.get)?ve.get.bind(r,r):rr,rt=!De(ve)&&De(ve.set)?ve.set.bind(r):rr,Ve=Ou({get:Ee,set:rt});Object.defineProperty(n,Oe,{enumerable:!0,configurable:!0,get:()=>Ve.value,set:Ie=>Ve.value=Ie})}if(o)for(const Oe in o)hu(o[Oe],n,r,Oe);if(l){const Oe=De(l)?l.call(r):l;Reflect.ownKeys(Oe).forEach(ve=>{Gh(ve,Oe[ve])})}d&&qo(d,t,"c");function $e(Oe,ve){Me(ve)?ve.forEach(Ee=>Oe(Ee.bind(r))):ve&&Oe(ve.bind(r))}if($e(Dh,f),$e(La,p),$e(Rh,b),$e(Ih,v),$e(Ch,k),$e(Mh,w),$e(Fh,Y),$e(zh,O),$e(Lh,z),$e(_h,x),$e(za,N),$e(Oh,W),Me(he))if(he.length){const Oe=t.exposed||(t.exposed={});he.forEach(ve=>{Object.defineProperty(Oe,ve,{get:()=>r[ve],set:Ee=>r[ve]=Ee,enumerable:!0})})}else t.exposed||(t.exposed={});_&&t.render===rr&&(t.render=_),pe!=null&&(t.inheritAttrs=pe),Ae&&(t.components=Ae),st&&(t.directives=st),W&&lu(t)}function Hh(t,e,r=rr){Me(t)&&(t=Ws(t));for(const n in t){const i=t[n];let s;lt(i)?"default"in i?s=Z0(i.from||n,i.default,!0):s=Z0(i.from||n):s=Z0(i),St(s)?Object.defineProperty(e,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:a=>s.value=a}):e[n]=s}}function qo(t,e,r){mr(Me(t)?t.map(n=>n.bind(e.proxy)):t.bind(e.proxy),e,r)}function hu(t,e,r,n){let i=n.includes(".")?Au(r,n):()=>r[n];if(dt(t)){const s=e[t];De(s)&&s0(i,s)}else if(De(t))s0(i,t.bind(r));else if(lt(t))if(Me(t))t.forEach(s=>hu(s,e,r,n));else{const s=De(t.handler)?t.handler.bind(r):e[t.handler];De(s)&&s0(i,s,t)}}function Fa(t){const e=t.type,{mixins:r,extends:n}=e,{mixins:i,optionsCache:s,config:{optionMergeStrategies:a}}=t.appContext,o=s.get(e);let l;return o?l=o:!i.length&&!r&&!n?l=e:(l={},i.length&&i.forEach(c=>fi(l,c,a,!0)),fi(l,e,a)),lt(e)&&s.set(e,l),l}function fi(t,e,r,n=!1){const{mixins:i,extends:s}=e;s&&fi(t,s,r,!0),i&&i.forEach(a=>fi(t,a,r,!0));for(const a in e)if(!(n&&a==="expose")){const o=qh[a]||r&&r[a];t[a]=o?o(t[a],e[a]):e[a]}return t}const qh={data:jo,props:Uo,emits:Uo,methods:Xn,computed:Xn,beforeCreate:At,created:At,beforeMount:At,mounted:At,beforeUpdate:At,updated:At,beforeDestroy:At,beforeUnmount:At,destroyed:At,unmounted:At,activated:At,deactivated:At,errorCaptured:At,serverPrefetch:At,components:Xn,directives:Xn,watch:Uh,provide:jo,inject:jh};function jo(t,e){return e?t?function(){return wt(De(t)?t.call(this,this):t,De(e)?e.call(this,this):e)}:e:t}function jh(t,e){return Xn(Ws(t),Ws(e))}function Ws(t){if(Me(t)){const e={};for(let r=0;r1)return r&&De(e)?e.call(n&&n.proxy):e}}const pu={},mu=()=>Object.create(pu),gu=t=>Object.getPrototypeOf(t)===pu;function Kh(t,e,r,n=!1){const i={},s=mu();t.propsDefaults=Object.create(null),vu(t,e,i,s);for(const a in t.propsOptions[0])a in i||(i[a]=void 0);r?t.props=n?i:uh(i):t.type.props?t.props=i:t.props=s,t.attrs=s}function Yh(t,e,r,n){const{props:i,attrs:s,vnode:{patchFlag:a}}=t,o=Pe(i),[l]=t.propsOptions;let c=!1;if((n||a>0)&&!(a&16)){if(a&8){const d=t.vnode.dynamicProps;for(let f=0;f{l=!0;const[p,b]=bu(f,e,!0);wt(a,p),b&&o.push(...b)};!r&&e.mixins.length&&e.mixins.forEach(d),t.extends&&d(t.extends),t.mixins&&t.mixins.forEach(d)}if(!s&&!l)return lt(t)&&n.set(t,Mn),Mn;if(Me(s))for(let d=0;dt==="_"||t==="_ctx"||t==="$stable",Ba=t=>Me(t)?t.map(dr):[dr(t)],Zh=(t,e,r)=>{if(e._n)return e;const n=Sh((...i)=>Ba(e(...i)),r);return n._c=!1,n},yu=(t,e,r)=>{const n=t._ctx;for(const i in t){if($a(i))continue;const s=t[i];if(De(s))e[i]=Zh(i,s,n);else if(s!=null){const a=Ba(s);e[i]=()=>a}}},wu=(t,e)=>{const r=Ba(e);t.slots.default=()=>r},xu=(t,e,r)=>{for(const n in e)(r||!$a(n))&&(t[n]=e[n])},Jh=(t,e,r)=>{const n=t.slots=mu();if(t.vnode.shapeFlag&32){const i=e._;i?(xu(n,e,r),r&&Fc(n,"_",i,!0)):yu(e,n)}else e&&wu(t,e)},Qh=(t,e,r)=>{const{vnode:n,slots:i}=t;let s=!0,a=Ye;if(n.shapeFlag&32){const o=e._;o?r&&o===1?s=!1:xu(i,e,r):(s=!e.$stable,yu(e,i)),a=e}else e&&(wu(t,e),a={default:1});if(s)for(const o in i)!$a(o)&&a[o]==null&&delete i[o]},Ft=pf;function ef(t){return tf(t)}function tf(t,e){const r=Li();r.__VUE__=!0;const{insert:n,remove:i,patchProp:s,createElement:a,createText:o,createComment:l,setText:c,setElementText:d,parentNode:f,nextSibling:p,setScopeId:b=rr,insertStaticContent:v}=t,k=(S,D,F,K=null,q=null,P=null,Z=void 0,re=null,ie=!!D.dynamicChildren)=>{if(S===D)return;S&&!Un(S,D)&&(K=te(S),Ie(S,q,P,!0),S=null),D.patchFlag===-2&&(ie=!1,D.dynamicChildren=null);const{type:J,ref:ge,shapeFlag:le}=D;switch(J){case Pi:w(S,D,F,K);break;case Kr:M(S,D,F,K);break;case J0:S==null&&x(D,F,K,Z);break;case tr:Ae(S,D,F,K,q,P,Z,re,ie);break;default:le&1?_(S,D,F,K,q,P,Z,re,ie):le&6?st(S,D,F,K,q,P,Z,re,ie):(le&64||le&128)&&J.process(S,D,F,K,q,P,Z,re,ie,me)}ge!=null&&q?r0(ge,S&&S.ref,P,D||S,!D):ge==null&&S&&S.ref!=null&&r0(S.ref,null,P,S,!0)},w=(S,D,F,K)=>{if(S==null)n(D.el=o(D.children),F,K);else{const q=D.el=S.el;D.children!==S.children&&c(q,D.children)}},M=(S,D,F,K)=>{S==null?n(D.el=l(D.children||""),F,K):D.el=S.el},x=(S,D,F,K)=>{[S.el,S.anchor]=v(S.children,D,F,K,S.el,S.anchor)},A=({el:S,anchor:D},F,K)=>{let q;for(;S&&S!==D;)q=p(S),n(S,F,K),S=q;n(D,F,K)},N=({el:S,anchor:D})=>{let F;for(;S&&S!==D;)F=p(S),i(S),S=F;i(D)},_=(S,D,F,K,q,P,Z,re,ie)=>{D.type==="svg"?Z="svg":D.type==="math"&&(Z="mathml"),S==null?O(D,F,K,q,P,Z,re,ie):W(S,D,q,P,Z,re,ie)},O=(S,D,F,K,q,P,Z,re)=>{let ie,J;const{props:ge,shapeFlag:le,transition:fe,dirs:Se}=S;if(ie=S.el=a(S.type,P,ge&&ge.is,ge),le&8?d(ie,S.children):le&16&&Y(S.children,ie,null,K,q,hs(S,P),Z,re),Se&&nn(S,null,K,"created"),z(ie,S,S.scopeId,Z,K),ge){for(const y in ge)y!=="value"&&!Qn(y)&&s(ie,y,null,ge[y],P,K);"value"in ge&&s(ie,"value",null,ge.value,P),(J=ge.onVnodeBeforeMount)&&or(J,K,S)}Se&&nn(S,null,K,"beforeMount");const Le=rf(q,fe);Le&&fe.beforeEnter(ie),n(ie,D,F),((J=ge&&ge.onVnodeMounted)||Le||Se)&&Ft(()=>{J&&or(J,K,S),Le&&fe.enter(ie),Se&&nn(S,null,K,"mounted")},q)},z=(S,D,F,K,q)=>{if(F&&b(S,F),K)for(let P=0;P{for(let J=ie;J{const re=D.el=S.el;let{patchFlag:ie,dynamicChildren:J,dirs:ge}=D;ie|=S.patchFlag&16;const le=S.props||Ye,fe=D.props||Ye;let Se;if(F&&sn(F,!1),(Se=fe.onVnodeBeforeUpdate)&&or(Se,F,D,S),ge&&nn(D,S,F,"beforeUpdate"),F&&sn(F,!0),(le.innerHTML&&fe.innerHTML==null||le.textContent&&fe.textContent==null)&&d(re,""),J?he(S.dynamicChildren,J,re,F,K,hs(D,q),P):Z||ve(S,D,re,null,F,K,hs(D,q),P,!1),ie>0){if(ie&16)pe(re,le,fe,F,q);else if(ie&2&&le.class!==fe.class&&s(re,"class",null,fe.class,q),ie&4&&s(re,"style",le.style,fe.style,q),ie&8){const Le=D.dynamicProps;for(let y=0;y{Se&&or(Se,F,D,S),ge&&nn(D,S,F,"updated")},K)},he=(S,D,F,K,q,P,Z)=>{for(let re=0;re{if(D!==F){if(D!==Ye)for(const P in D)!Qn(P)&&!(P in F)&&s(S,P,D[P],null,q,K);for(const P in F){if(Qn(P))continue;const Z=F[P],re=D[P];Z!==re&&P!=="value"&&s(S,P,re,Z,q,K)}"value"in F&&s(S,"value",D.value,F.value,q)}},Ae=(S,D,F,K,q,P,Z,re,ie)=>{const J=D.el=S?S.el:o(""),ge=D.anchor=S?S.anchor:o("");let{patchFlag:le,dynamicChildren:fe,slotScopeIds:Se}=D;Se&&(re=re?re.concat(Se):Se),S==null?(n(J,F,K),n(ge,F,K),Y(D.children||[],F,ge,q,P,Z,re,ie)):le>0&&le&64&&fe&&S.dynamicChildren?(he(S.dynamicChildren,fe,F,q,P,Z,re),(D.key!=null||q&&D===q.subTree)&&ku(S,D,!0)):ve(S,D,F,ge,q,P,Z,re,ie)},st=(S,D,F,K,q,P,Z,re,ie)=>{D.slotScopeIds=re,S==null?D.shapeFlag&512?q.ctx.activate(D,F,K,Z,ie):Ze(D,F,K,q,P,Z,ie):tt(S,D,ie)},Ze=(S,D,F,K,q,P,Z)=>{const re=S.component=kf(S,K,q);if(cu(S)&&(re.ctx.renderer=me),Tf(re,!1,Z),re.asyncDep){if(q&&q.registerDep(re,$e,Z),!S.el){const ie=re.subTree=qt(Kr);M(null,ie,D,F),S.placeholder=ie.el}}else $e(re,S,D,F,q,P,Z)},tt=(S,D,F)=>{const K=D.component=S.component;if(hf(S,D,F))if(K.asyncDep&&!K.asyncResolved){Oe(K,D,F);return}else K.next=D,K.update();else D.el=S.el,K.vnode=D},$e=(S,D,F,K,q,P,Z)=>{const re=()=>{if(S.isMounted){let{next:le,bu:fe,u:Se,parent:Le,vnode:y}=S;{const ne=Su(S);if(ne){le&&(le.el=y.el,Oe(S,le,Z)),ne.asyncDep.then(()=>{S.isUnmounted||re()});return}}let E=le,I;sn(S,!1),le?(le.el=y.el,Oe(S,le,Z)):le=y,fe&&Y0(fe),(I=le.props&&le.props.onVnodeBeforeUpdate)&&or(I,Le,le,y),sn(S,!0);const H=fs(S),U=S.subTree;S.subTree=H,k(U,H,f(U.el),te(U),S,q,P),le.el=H.el,E===null&&ff(S,H.el),Se&&Ft(Se,q),(I=le.props&&le.props.onVnodeUpdated)&&Ft(()=>or(I,Le,le,y),q)}else{let le;const{el:fe,props:Se}=D,{bm:Le,m:y,parent:E,root:I,type:H}=S,U=n0(D);if(sn(S,!1),Le&&Y0(Le),!U&&(le=Se&&Se.onVnodeBeforeMount)&&or(le,E,D),sn(S,!0),fe&&Ue){const ne=()=>{S.subTree=fs(S),Ue(fe,S.subTree,S,q,null)};U&&H.__asyncHydrate?H.__asyncHydrate(fe,S,ne):ne()}else{I.ce&&I.ce._def.shadowRoot!==!1&&I.ce._injectChildStyle(H);const ne=S.subTree=fs(S);k(null,ne,F,K,S,q,P),D.el=ne.el}if(y&&Ft(y,q),!U&&(le=Se&&Se.onVnodeMounted)){const ne=D;Ft(()=>or(le,E,ne),q)}(D.shapeFlag&256||E&&n0(E.vnode)&&E.vnode.shapeFlag&256)&&S.a&&Ft(S.a,q),S.isMounted=!0,D=F=K=null}};S.scope.on();const ie=S.effect=new Hc(re);S.scope.off();const J=S.update=ie.run.bind(ie),ge=S.job=ie.runIfDirty.bind(ie);ge.i=S,ge.id=S.uid,ie.scheduler=()=>_a(ge),sn(S,!0),J()},Oe=(S,D,F)=>{D.component=S;const K=S.vnode.props;S.vnode=D,S.next=null,Yh(S,D.props,K,F),Qh(S,D.children,F),Rr(),Po(S),Ir()},ve=(S,D,F,K,q,P,Z,re,ie=!1)=>{const J=S&&S.children,ge=S?S.shapeFlag:0,le=D.children,{patchFlag:fe,shapeFlag:Se}=D;if(fe>0){if(fe&128){rt(J,le,F,K,q,P,Z,re,ie);return}else if(fe&256){Ee(J,le,F,K,q,P,Z,re,ie);return}}Se&8?(ge&16&&G(J,q,P),le!==J&&d(F,le)):ge&16?Se&16?rt(J,le,F,K,q,P,Z,re,ie):G(J,q,P,!0):(ge&8&&d(F,""),Se&16&&Y(le,F,K,q,P,Z,re,ie))},Ee=(S,D,F,K,q,P,Z,re,ie)=>{S=S||Mn,D=D||Mn;const J=S.length,ge=D.length,le=Math.min(J,ge);let fe;for(fe=0;fege?G(S,q,P,!0,!1,le):Y(D,F,K,q,P,Z,re,ie,le)},rt=(S,D,F,K,q,P,Z,re,ie)=>{let J=0;const ge=D.length;let le=S.length-1,fe=ge-1;for(;J<=le&&J<=fe;){const Se=S[J],Le=D[J]=ie?jr(D[J]):dr(D[J]);if(Un(Se,Le))k(Se,Le,F,null,q,P,Z,re,ie);else break;J++}for(;J<=le&&J<=fe;){const Se=S[le],Le=D[fe]=ie?jr(D[fe]):dr(D[fe]);if(Un(Se,Le))k(Se,Le,F,null,q,P,Z,re,ie);else break;le--,fe--}if(J>le){if(J<=fe){const Se=fe+1,Le=Sefe)for(;J<=le;)Ie(S[J],q,P,!0),J++;else{const Se=J,Le=J,y=new Map;for(J=Le;J<=fe;J++){const ue=D[J]=ie?jr(D[J]):dr(D[J]);ue.key!=null&&y.set(ue.key,J)}let E,I=0;const H=fe-Le+1;let U=!1,ne=0;const B=new Array(H);for(J=0;J=H){Ie(ue,q,P,!0);continue}let ke;if(ue.key!=null)ke=y.get(ue.key);else for(E=Le;E<=fe;E++)if(B[E-Le]===0&&Un(ue,D[E])){ke=E;break}ke===void 0?Ie(ue,q,P,!0):(B[ke-Le]=J+1,ke>=ne?ne=ke:U=!0,k(ue,D[ke],F,null,q,P,Z,re,ie),I++)}const be=U?nf(B):Mn;for(E=be.length-1,J=H-1;J>=0;J--){const ue=Le+J,ke=D[ue],Fe=D[ue+1],_e=ue+1{const{el:P,type:Z,transition:re,children:ie,shapeFlag:J}=S;if(J&6){Ve(S.component.subTree,D,F,K);return}if(J&128){S.suspense.move(D,F,K);return}if(J&64){Z.move(S,D,F,me);return}if(Z===tr){n(P,D,F);for(let le=0;lere.enter(P),q);else{const{leave:le,delayLeave:fe,afterLeave:Se}=re,Le=()=>{S.ctx.isUnmounted?i(P):n(P,D,F)},y=()=>{P._isLeaving&&P[Eh](!0),le(P,()=>{Le(),Se&&Se()})};fe?fe(P,Le,y):y()}else n(P,D,F)},Ie=(S,D,F,K=!1,q=!1)=>{const{type:P,props:Z,ref:re,children:ie,dynamicChildren:J,shapeFlag:ge,patchFlag:le,dirs:fe,cacheIndex:Se}=S;if(le===-2&&(q=!1),re!=null&&(Rr(),r0(re,null,F,S,!0),Ir()),Se!=null&&(D.renderCache[Se]=void 0),ge&256){D.ctx.deactivate(S);return}const Le=ge&1&&fe,y=!n0(S);let E;if(y&&(E=Z&&Z.onVnodeBeforeUnmount)&&or(E,D,S),ge&6)j(S.component,F,K);else{if(ge&128){S.suspense.unmount(F,K);return}Le&&nn(S,null,D,"beforeUnmount"),ge&64?S.type.remove(S,D,F,me,K):J&&!J.hasOnce&&(P!==tr||le>0&&le&64)?G(J,D,F,!1,!0):(P===tr&&le&384||!q&&ge&16)&&G(ie,D,F),K&&Rt(S)}(y&&(E=Z&&Z.onVnodeUnmounted)||Le)&&Ft(()=>{E&&or(E,D,S),Le&&nn(S,null,D,"unmounted")},F)},Rt=S=>{const{type:D,el:F,anchor:K,transition:q}=S;if(D===tr){pt(F,K);return}if(D===J0){N(S);return}const P=()=>{i(F),q&&!q.persisted&&q.afterLeave&&q.afterLeave()};if(S.shapeFlag&1&&q&&!q.persisted){const{leave:Z,delayLeave:re}=q,ie=()=>Z(F,P);re?re(S.el,P,ie):ie()}else P()},pt=(S,D)=>{let F;for(;S!==D;)F=p(S),i(S),S=F;i(D)},j=(S,D,F)=>{const{bum:K,scope:q,job:P,subTree:Z,um:re,m:ie,a:J}=S;Wo(ie),Wo(J),K&&Y0(K),q.stop(),P&&(P.flags|=8,Ie(Z,S,D,F)),re&&Ft(re,D),Ft(()=>{S.isUnmounted=!0},D)},G=(S,D,F,K=!1,q=!1,P=0)=>{for(let Z=P;Z{if(S.shapeFlag&6)return te(S.component.subTree);if(S.shapeFlag&128)return S.suspense.next();const D=p(S.anchor||S.el),F=D&&D[Th];return F?p(F):D};let se=!1;const Ce=(S,D,F)=>{S==null?D._vnode&&Ie(D._vnode,null,null,!0):k(D._vnode||null,S,D,null,null,null,F),D._vnode=S,se||(se=!0,Po(),su(),se=!1)},me={p:k,um:Ie,m:Ve,r:Rt,mt:Ze,mc:Y,pc:ve,pbc:he,n:te,o:t};let de,Ue;return e&&([de,Ue]=e(me)),{render:Ce,hydrate:de,createApp:Wh(Ce,de)}}function hs({type:t,props:e},r){return r==="svg"&&t==="foreignObject"||r==="mathml"&&t==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:r}function sn({effect:t,job:e},r){r?(t.flags|=32,e.flags|=4):(t.flags&=-33,e.flags&=-5)}function rf(t,e){return(!t||t&&!t.pendingBranch)&&e&&!e.persisted}function ku(t,e,r=!1){const n=t.children,i=e.children;if(Me(n)&&Me(i))for(let s=0;s>1,t[r[o]]0&&(e[n]=r[s-1]),r[s]=n)}}for(s=r.length,a=r[s-1];s-- >0;)r[s]=a,a=e[a];return r}function Su(t){const e=t.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Su(e)}function Wo(t){if(t)for(let e=0;eZ0(sf);function s0(t,e,r){return Tu(t,e,r)}function Tu(t,e,r=Ye){const{immediate:n,deep:i,flush:s,once:a}=r,o=wt({},r),l=e&&n||!e&&s!=="post";let c;if(f0){if(s==="sync"){const b=af();c=b.__watcherHandles||(b.__watcherHandles=[])}else if(!l){const b=()=>{};return b.stop=rr,b.resume=rr,b.pause=rr,b}}const d=Ct;o.call=(b,v,k)=>mr(b,d,v,k);let f=!1;s==="post"?o.scheduler=b=>{Ft(b,d&&d.suspense)}:s!=="sync"&&(f=!0,o.scheduler=(b,v)=>{v?b():_a(b)}),o.augmentJob=b=>{e&&(b.flags|=4),f&&(b.flags|=2,d&&(b.id=d.uid,b.i=d))};const p=yh(t,e,o);return f0&&(c?c.push(p):l&&p()),p}function of(t,e,r){const n=this.proxy,i=dt(t)?t.includes(".")?Au(n,t):()=>n[t]:t.bind(n,n);let s;De(e)?s=e:(s=e.handler,r=e);const a=b0(this),o=Tu(i,s.bind(n),r);return a(),o}function Au(t,e){const r=e.split(".");return()=>{let n=t;for(let i=0;ie==="modelValue"||e==="model-value"?t.modelModifiers:t[`${e}Modifiers`]||t[`${Wr(e)}Modifiers`]||t[`${Qr(e)}Modifiers`];function cf(t,e,...r){if(t.isUnmounted)return;const n=t.vnode.props||Ye;let i=r;const s=e.startsWith("update:"),a=s&&lf(n,e.slice(7));a&&(a.trim&&(i=r.map(d=>dt(d)?d.trim():d)),a.number&&(i=r.map(Bs)));let o,l=n[o=as(e)]||n[o=as(Wr(e))];!l&&s&&(l=n[o=as(Qr(e))]),l&&mr(l,t,6,i);const c=n[o+"Once"];if(c){if(!t.emitted)t.emitted={};else if(t.emitted[o])return;t.emitted[o]=!0,mr(c,t,6,i)}}function Eu(t,e,r=!1){const n=e.emitsCache,i=n.get(t);if(i!==void 0)return i;const s=t.emits;let a={},o=!1;if(!De(t)){const l=c=>{const d=Eu(c,e,!0);d&&(o=!0,wt(a,d))};!r&&e.mixins.length&&e.mixins.forEach(l),t.extends&&l(t.extends),t.mixins&&t.mixins.forEach(l)}return!s&&!o?(lt(t)&&n.set(t,null),null):(Me(s)?s.forEach(l=>a[l]=null):wt(a,s),lt(t)&&n.set(t,a),a)}function Bi(t,e){return!t||!Ii(e)?!1:(e=e.slice(2).replace(/Once$/,""),He(t,e[0].toLowerCase()+e.slice(1))||He(t,Qr(e))||He(t,e))}function fs(t){const{type:e,vnode:r,proxy:n,withProxy:i,propsOptions:[s],slots:a,attrs:o,emit:l,render:c,renderCache:d,props:f,data:p,setupState:b,ctx:v,inheritAttrs:k}=t,w=di(t);let M,x;try{if(r.shapeFlag&4){const N=i||n,_=N;M=dr(c.call(_,N,d,f,b,p,v)),x=o}else{const N=e;M=dr(N.length>1?N(f,{attrs:o,slots:a,emit:l}):N(f,null)),x=e.props?o:uf(o)}}catch(N){a0.length=0,Fi(N,t,1),M=qt(Kr)}let A=M;if(x&&k!==!1){const N=Object.keys(x),{shapeFlag:_}=A;N.length&&_&7&&(s&&N.some(ka)&&(x=df(x,s)),A=zn(A,x,!1,!0))}return r.dirs&&(A=zn(A,null,!1,!0),A.dirs=A.dirs?A.dirs.concat(r.dirs):r.dirs),r.transition&&Oa(A,r.transition),M=A,di(w),M}const uf=t=>{let e;for(const r in t)(r==="class"||r==="style"||Ii(r))&&((e||(e={}))[r]=t[r]);return e},df=(t,e)=>{const r={};for(const n in t)(!ka(n)||!(n.slice(9)in e))&&(r[n]=t[n]);return r};function hf(t,e,r){const{props:n,children:i,component:s}=t,{props:a,children:o,patchFlag:l}=e,c=s.emitsOptions;if(e.dirs||e.transition)return!0;if(r&&l>=0){if(l&1024)return!0;if(l&16)return n?Go(n,a,c):!!a;if(l&8){const d=e.dynamicProps;for(let f=0;ft.__isSuspense;function pf(t,e){e&&e.pendingBranch?Me(t)?e.effects.push(...t):e.effects.push(t):kh(t)}const tr=Symbol.for("v-fgt"),Pi=Symbol.for("v-txt"),Kr=Symbol.for("v-cmt"),J0=Symbol.for("v-stc"),a0=[];let Ht=null;function We(t=!1){a0.push(Ht=t?null:[])}function mf(){a0.pop(),Ht=a0[a0.length-1]||null}let h0=1;function Ko(t,e=!1){h0+=t,t<0&&Ht&&e&&(Ht.hasOnce=!0)}function Mu(t){return t.dynamicChildren=h0>0?Ht||Mn:null,mf(),h0>0&&Ht&&Ht.push(t),t}function Ke(t,e,r,n,i,s){return Mu(V(t,e,r,n,i,s,!0))}function gf(t,e,r,n,i){return Mu(qt(t,e,r,n,i,!0))}function Nu(t){return t?t.__v_isVNode===!0:!1}function Un(t,e){return t.type===e.type&&t.key===e.key}const Du=({key:t})=>t??null,Q0=({ref:t,ref_key:e,ref_for:r})=>(typeof t=="number"&&(t=""+t),t!=null?dt(t)||St(t)||De(t)?{i:Vt,r:t,k:e,f:!!r}:t:null);function V(t,e=null,r=null,n=0,i=null,s=t===tr?0:1,a=!1,o=!1){const l={__v_isVNode:!0,__v_skip:!0,type:t,props:e,key:e&&Du(e),ref:e&&Q0(e),scopeId:ou,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:n,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Vt};return o?(Pa(l,r),s&128&&t.normalize(l)):r&&(l.shapeFlag|=dt(r)?8:16),h0>0&&!a&&Ht&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Ht.push(l),l}const qt=vf;function vf(t,e=null,r=null,n=0,i=null,s=!1){if((!t||t===$h)&&(t=Kr),Nu(t)){const o=zn(t,e,!0);return r&&Pa(o,r),h0>0&&!s&&Ht&&(o.shapeFlag&6?Ht[Ht.indexOf(t)]=o:Ht.push(o)),o.patchFlag=-2,o}if(Mf(t)&&(t=t.__vccOpts),e){e=bf(e);let{class:o,style:l}=e;o&&!dt(o)&&(e.class=pn(o)),lt(l)&&(Ia(l)&&!Me(l)&&(l=wt({},l)),e.style=Ln(l))}const a=dt(t)?1:Cu(t)?128:Ah(t)?64:lt(t)?4:De(t)?2:0;return V(t,e,r,n,i,a,s,!0)}function bf(t){return t?Ia(t)||gu(t)?wt({},t):t:null}function zn(t,e,r=!1,n=!1){const{props:i,ref:s,patchFlag:a,children:o,transition:l}=t,c=e?yf(i||{},e):i,d={__v_isVNode:!0,__v_skip:!0,type:t.type,props:c,key:c&&Du(c),ref:e&&e.ref?r&&s?Me(s)?s.concat(Q0(e)):[s,Q0(e)]:Q0(e):s,scopeId:t.scopeId,slotScopeIds:t.slotScopeIds,children:o,target:t.target,targetStart:t.targetStart,targetAnchor:t.targetAnchor,staticCount:t.staticCount,shapeFlag:t.shapeFlag,patchFlag:e&&t.type!==tr?a===-1?16:a|16:a,dynamicProps:t.dynamicProps,dynamicChildren:t.dynamicChildren,appContext:t.appContext,dirs:t.dirs,transition:l,component:t.component,suspense:t.suspense,ssContent:t.ssContent&&zn(t.ssContent),ssFallback:t.ssFallback&&zn(t.ssFallback),placeholder:t.placeholder,el:t.el,anchor:t.anchor,ctx:t.ctx,ce:t.ce};return l&&n&&Oa(d,l.clone(d)),d}function Ru(t=" ",e=0){return qt(Pi,null,t,e)}function I0(t,e){const r=qt(J0,null,t);return r.staticCount=e,r}function Sr(t="",e=!1){return e?(We(),gf(Kr,null,t)):qt(Kr,null,t)}function dr(t){return t==null||typeof t=="boolean"?qt(Kr):Me(t)?qt(tr,null,t.slice()):Nu(t)?jr(t):qt(Pi,null,String(t))}function jr(t){return t.el===null&&t.patchFlag!==-1||t.memo?t:zn(t)}function Pa(t,e){let r=0;const{shapeFlag:n}=t;if(e==null)e=null;else if(Me(e))r=16;else if(typeof e=="object")if(n&65){const i=e.default;i&&(i._c&&(i._d=!1),Pa(t,i()),i._c&&(i._d=!0));return}else{r=32;const i=e._;!i&&!gu(e)?e._ctx=Vt:i===3&&Vt&&(Vt.slots._===1?e._=1:(e._=2,t.patchFlag|=1024))}else De(e)?(e={default:e,_ctx:Vt},r=32):(e=String(e),n&64?(r=16,e=[Ru(e)]):r=8);t.children=e,t.shapeFlag|=r}function yf(...t){const e={};for(let r=0;rCt||Vt;let pi,Ks;{const t=Li(),e=(r,n)=>{let i;return(i=t[r])||(i=t[r]=[]),i.push(n),s=>{i.length>1?i.forEach(a=>a(s)):i[0](s)}};pi=e("__VUE_INSTANCE_SETTERS__",r=>Ct=r),Ks=e("__VUE_SSR_SETTERS__",r=>f0=r)}const b0=t=>{const e=Ct;return pi(t),t.scope.on(),()=>{t.scope.off(),pi(e)}},Yo=()=>{Ct&&Ct.scope.off(),pi(null)};function Iu(t){return t.vnode.shapeFlag&4}let f0=!1;function Tf(t,e=!1,r=!1){e&&Ks(e);const{props:n,children:i}=t.vnode,s=Iu(t);Kh(t,n,s,e),Jh(t,i,r||e);const a=s?Af(t,e):void 0;return e&&Ks(!1),a}function Af(t,e){const r=t.type;t.accessCache=Object.create(null),t.proxy=new Proxy(t.ctx,Bh);const{setup:n}=r;if(n){Rr();const i=t.setupContext=n.length>1?Cf(t):null,s=b0(t),a=v0(n,t,0,[t.props,i]),o=_c(a);if(Ir(),s(),(o||t.sp)&&!n0(t)&&lu(t),o){if(a.then(Yo,Yo),e)return a.then(l=>{Xo(t,l,e)}).catch(l=>{Fi(l,t,0)});t.asyncDep=a}else Xo(t,a,e)}else _u(t,e)}function Xo(t,e,r){De(e)?t.type.__ssrInlineRender?t.ssrRender=e:t.render=e:lt(e)&&(t.setupState=ru(e)),_u(t,r)}let Zo;function _u(t,e,r){const n=t.type;if(!t.render){if(!e&&Zo&&!n.render){const i=n.template||Fa(t).template;if(i){const{isCustomElement:s,compilerOptions:a}=t.appContext.config,{delimiters:o,compilerOptions:l}=n,c=wt(wt({isCustomElement:s,delimiters:o},a),l);n.render=Zo(i,c)}}t.render=n.render||rr}{const i=b0(t);Rr();try{Ph(t)}finally{Ir(),i()}}}const Ef={get(t,e){return xt(t,"get",""),t[e]}};function Cf(t){const e=r=>{t.exposed=r||{}};return{attrs:new Proxy(t.attrs,Ef),slots:t.slots,emit:t.emit,expose:e}}function Hi(t){return t.exposed?t.exposeProxy||(t.exposeProxy=new Proxy(ru(dh(t.exposed)),{get(e,r){if(r in e)return e[r];if(r in i0)return i0[r](t)},has(e,r){return r in e||r in i0}})):t.proxy}function Mf(t){return De(t)&&"__vccOpts"in t}const Ou=(t,e)=>vh(t,e,f0),Nf="3.5.20";/** -* @vue/runtime-dom v3.5.20 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ys;const Jo=typeof window<"u"&&window.trustedTypes;if(Jo)try{Ys=Jo.createPolicy("vue",{createHTML:t=>t})}catch{}const Lu=Ys?t=>Ys.createHTML(t):t=>t,Df="http://www.w3.org/2000/svg",Rf="http://www.w3.org/1998/Math/MathML",kr=typeof document<"u"?document:null,Qo=kr&&kr.createElement("template"),If={insert:(t,e,r)=>{e.insertBefore(t,r||null)},remove:t=>{const e=t.parentNode;e&&e.removeChild(t)},createElement:(t,e,r,n)=>{const i=e==="svg"?kr.createElementNS(Df,t):e==="mathml"?kr.createElementNS(Rf,t):r?kr.createElement(t,{is:r}):kr.createElement(t);return t==="select"&&n&&n.multiple!=null&&i.setAttribute("multiple",n.multiple),i},createText:t=>kr.createTextNode(t),createComment:t=>kr.createComment(t),setText:(t,e)=>{t.nodeValue=e},setElementText:(t,e)=>{t.textContent=e},parentNode:t=>t.parentNode,nextSibling:t=>t.nextSibling,querySelector:t=>kr.querySelector(t),setScopeId(t,e){t.setAttribute(e,"")},insertStaticContent(t,e,r,n,i,s){const a=r?r.previousSibling:e.lastChild;if(i&&(i===s||i.nextSibling))for(;e.insertBefore(i.cloneNode(!0),r),!(i===s||!(i=i.nextSibling)););else{Qo.innerHTML=Lu(n==="svg"?`${t}`:n==="mathml"?`${t}`:t);const o=Qo.content;if(n==="svg"||n==="mathml"){const l=o.firstChild;for(;l.firstChild;)o.appendChild(l.firstChild);o.removeChild(l)}e.insertBefore(o,r)}return[a?a.nextSibling:e.firstChild,r?r.previousSibling:e.lastChild]}},_f=Symbol("_vtc");function Of(t,e,r){const n=t[_f];n&&(e=(e?[e,...n]:[...n]).join(" ")),e==null?t.removeAttribute("class"):r?t.setAttribute("class",e):t.className=e}const mi=Symbol("_vod"),zu=Symbol("_vsh"),Lf={name:"show",beforeMount(t,{value:e},{transition:r}){t[mi]=t.style.display==="none"?"":t.style.display,r&&e?r.beforeEnter(t):Vn(t,e)},mounted(t,{value:e},{transition:r}){r&&e&&r.enter(t)},updated(t,{value:e,oldValue:r},{transition:n}){!e!=!r&&(n?e?(n.beforeEnter(t),Vn(t,!0),n.enter(t)):n.leave(t,()=>{Vn(t,!1)}):Vn(t,e))},beforeUnmount(t,{value:e}){Vn(t,e)}};function Vn(t,e){t.style.display=e?t[mi]:"none",t[zu]=!e}const zf=Symbol(""),Ff=/(^|;)\s*display\s*:/;function $f(t,e,r){const n=t.style,i=dt(r);let s=!1;if(r&&!i){if(e)if(dt(e))for(const a of e.split(";")){const o=a.slice(0,a.indexOf(":")).trim();r[o]==null&&ei(n,o,"")}else for(const a in e)r[a]==null&&ei(n,a,"");for(const a in r)a==="display"&&(s=!0),ei(n,a,r[a])}else if(i){if(e!==r){const a=n[zf];a&&(r+=";"+a),n.cssText=r,s=Ff.test(r)}}else e&&t.removeAttribute("style");mi in t&&(t[mi]=s?n.display:"",t[zu]&&(n.display="none"))}const el=/\s*!important$/;function ei(t,e,r){if(Me(r))r.forEach(n=>ei(t,e,n));else if(r==null&&(r=""),e.startsWith("--"))t.setProperty(e,r);else{const n=Bf(t,e);el.test(r)?t.setProperty(Qr(n),r.replace(el,""),"important"):t[n]=r}}const tl=["Webkit","Moz","ms"],ps={};function Bf(t,e){const r=ps[e];if(r)return r;let n=Wr(e);if(n!=="filter"&&n in t)return ps[e]=n;n=zc(n);for(let i=0;ims||(jf.then(()=>ms=0),ms=Date.now());function Vf(t,e){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;mr(Wf(n,r.value),e,5,[n])};return r.value=t,r.attached=Uf(),r}function Wf(t,e){if(Me(e)){const r=t.stopImmediatePropagation;return t.stopImmediatePropagation=()=>{r.call(t),t._stopped=!0},e.map(n=>i=>!i._stopped&&n&&n(i))}else return e}const ol=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&t.charCodeAt(2)>96&&t.charCodeAt(2)<123,Gf=(t,e,r,n,i,s)=>{const a=i==="svg";e==="class"?Of(t,n,a):e==="style"?$f(t,r,n):Ii(e)?ka(e)||Hf(t,e,r,n,s):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):Kf(t,e,n,a))?(il(t,e,n),!t.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&nl(t,e,n,a,s,e!=="value")):t._isVueCE&&(/[A-Z]/.test(e)||!dt(n))?il(t,Wr(e),n,s,e):(e==="true-value"?t._trueValue=n:e==="false-value"&&(t._falseValue=n),nl(t,e,n,a))};function Kf(t,e,r,n){if(n)return!!(e==="innerHTML"||e==="textContent"||e in t&&ol(e)&&De(r));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="form"||e==="list"&&t.tagName==="INPUT"||e==="type"&&t.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const i=t.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return ol(e)&&dt(r)?!1:e in t}const ll=t=>{const e=t.props["onUpdate:modelValue"]||!1;return Me(e)?r=>Y0(e,r):e};function Yf(t){t.target.composing=!0}function cl(t){const e=t.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const gs=Symbol("_assign"),Ha={created(t,{modifiers:{lazy:e,trim:r,number:n}},i){t[gs]=ll(i);const s=n||i.props&&i.props.type==="number";En(t,e?"change":"input",a=>{if(a.target.composing)return;let o=t.value;r&&(o=o.trim()),s&&(o=Bs(o)),t[gs](o)}),r&&En(t,"change",()=>{t.value=t.value.trim()}),e||(En(t,"compositionstart",Yf),En(t,"compositionend",cl),En(t,"change",cl))},mounted(t,{value:e}){t.value=e??""},beforeUpdate(t,{value:e,oldValue:r,modifiers:{lazy:n,trim:i,number:s}},a){if(t[gs]=ll(a),t.composing)return;const o=(s||t.type==="number")&&!/^0\d/.test(t.value)?Bs(t.value):t.value,l=e??"";o!==l&&(document.activeElement===t&&t.type!=="range"&&(n&&e===r||i&&t.value.trim()===l)||(t.value=l))}},Xf=["ctrl","shift","alt","meta"],Zf={stop:t=>t.stopPropagation(),prevent:t=>t.preventDefault(),self:t=>t.target!==t.currentTarget,ctrl:t=>!t.ctrlKey,shift:t=>!t.shiftKey,alt:t=>!t.altKey,meta:t=>!t.metaKey,left:t=>"button"in t&&t.button!==0,middle:t=>"button"in t&&t.button!==1,right:t=>"button"in t&&t.button!==2,exact:(t,e)=>Xf.some(r=>t[`${r}Key`]&&!e.includes(r))},vs=(t,e)=>{const r=t._withMods||(t._withMods={}),n=e.join(".");return r[n]||(r[n]=(i,...s)=>{for(let a=0;a{const r=t._withKeys||(t._withKeys={}),n=e.join(".");return r[n]||(r[n]=i=>{if(!("key"in i))return;const s=Qr(i.key);if(e.some(a=>a===s||Jf[a]===s))return t(i)})},Qf=wt({patchProp:Gf},If);let ul;function ep(){return ul||(ul=ef(Qf))}const tp=(...t)=>{const e=ep().createApp(...t),{mount:r}=e;return e.mount=n=>{const i=np(n);if(!i)return;const s=e._component;!De(s)&&!s.render&&!s.template&&(s.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const a=r(i,!1,rp(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),a},e};function rp(t){if(t instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&t instanceof MathMLElement)return"mathml"}function np(t){return dt(t)?document.querySelector(t):t}var ip=Object.defineProperty,sp=(t,e,r)=>e in t?ip(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,_0=(t,e,r)=>(sp(t,typeof e!="symbol"?e+"":e,r),r);const qa={name:"Latte",type:"light",palette:["#dd7878","#ea76cb","#8839ef","#e64553","#fe640b","#df8e1d","#40a02b","#209fb5","#1e66f5","#7287fd"],cssVar:{"--node-gap-x":"30px","--node-gap-y":"10px","--main-gap-x":"65px","--main-gap-y":"45px","--root-radius":"30px","--main-radius":"20px","--root-color":"#ffffff","--root-bgcolor":"#4c4f69","--root-border-color":"rgba(0, 0, 0, 0)","--main-color":"#444446","--main-bgcolor":"#ffffff","--topic-padding":"3px","--color":"#777777","--bgcolor":"#f6f6f6","--selected":"#4dc4ff","--accent-color":"#e64553","--panel-color":"#444446","--panel-bgcolor":"#ffffff","--panel-border-color":"#eaeaea","--map-padding":"50px"}},ja={name:"Dark",type:"dark",palette:["#848FA0","#748BE9","#D2F9FE","#4145A5","#789AFA","#706CF4","#EF987F","#775DD5","#FCEECF","#DA7FBC"],cssVar:{"--node-gap-x":"30px","--node-gap-y":"10px","--main-gap-x":"65px","--main-gap-y":"45px","--root-radius":"30px","--main-radius":"20px","--root-color":"#ffffff","--root-bgcolor":"#2d3748","--root-border-color":"rgba(255, 255, 255, 0.1)","--main-color":"#ffffff","--main-bgcolor":"#4c4f69","--topic-padding":"3px","--color":"#cccccc","--bgcolor":"#252526","--selected":"#4dc4ff","--accent-color":"#789AFA","--panel-color":"#ffffff","--panel-bgcolor":"#2d3748","--panel-border-color":"#696969","--map-padding":"50px 80px"}};function Xs(t){return t.replace(/&/g,"&").replace(/{if(t.parent=e,t.children)for(let r=0;r{if(t.expanded=e,t.children)if(r===void 0||r>0){const n=r!==void 0?r-1:void 0;t.children.forEach(i=>{_n(i,e,n)})}else t.children.forEach(n=>{_n(n,!1)})};function Ua(t){if(t.id=vn(),t.children)for(let e=0;e0&&(a=180-a),s<0&&i<0&&(a=180+a),s>0&&i<0&&(a=360-a);const o=12,l=30,c=a+l,d=a-l;return{x1:r+Math.cos(Math.PI*c/180)*o,y1:n-Math.sin(Math.PI*c/180)*o,x2:r+Math.cos(Math.PI*d/180)*o,y2:n-Math.sin(Math.PI*d/180)*o}}function vn(){return(new Date().getTime().toString(16)+Math.random().toString(16).substr(2)).substr(2,16)}const ap=function(){const t=vn();return{topic:this.newTopicName,id:t}};function Va(t){return JSON.parse(JSON.stringify(t,(e,r)=>{if(e!=="parent")return r}))}const tn=(t,e)=>{let r=0,n=0;for(;e&&e!==t;)r+=e.offsetLeft,n+=e.offsetTop,e=e.offsetParent;return{offsetLeft:r,offsetTop:n}},gt=(t,e)=>{for(const r in e)t.setAttribute(r,e[r])},Zs=t=>t?t.tagName==="ME-TPC":!1,qi=t=>t.filter(e=>e.nodeObj.parent).filter((e,r,n)=>{for(let i=0;i{const e=/translate\(([^,]+),\s*([^)]+)\)/,r=t.match(e);return r?{x:parseFloat(r[1]),y:parseFloat(r[2])}:{x:0,y:0}},Wa=function(t){for(let e=0;e(t.LHS="lhs",t.RHS="rhs",t))(sr||{});const op=t=>{const e=t.map.querySelectorAll(".lhs>me-wrapper>me-parent>me-tpc");t.selectNode(e[Math.ceil(e.length/2)-1])},lp=t=>{const e=t.map.querySelectorAll(".rhs>me-wrapper>me-parent>me-tpc");t.selectNode(e[Math.ceil(e.length/2)-1])},cp=t=>{t.selectNode(t.map.querySelector("me-root>me-tpc"))},up=function(t,e){const r=e.parentElement.parentElement.parentElement.previousSibling;if(r){const n=r.firstChild;t.selectNode(n)}},dp=function(t,e){const r=e.parentElement.nextSibling;if(r&&r.firstChild){const n=r.firstChild.firstChild.firstChild;t.selectNode(n)}},dl=function(t,e){var r,n;const i=t.currentNode||((r=t.currentNodes)==null?void 0:r[0]);if(!i)return;const s=i.nodeObj,a=i.offsetParent.offsetParent.parentElement;s.parent?a.className===e?dp(t,i):(n=s.parent)!=null&&n.parent?up(t,i):cp(t):e===sr.LHS?op(t):lp(t)},hl=function(t,e){const r=t.currentNode;if(!r||!r.nodeObj.parent)return;const n=e+"Sibling",i=r.parentElement.parentElement[n];i?t.selectNode(i.firstChild.firstChild):t.selectNode(r)},bi=function(t,e,r){const{scaleVal:n,scaleSensitivity:i}=t;switch(e){case"in":t.scale(n+i,r);break;case"out":t.scale(n-i,r)}};function hp(t,e){e=e===!0?{}:e;const r=()=>{t.currentArrow?t.removeArrow():t.currentSummary?t.removeSummary(t.currentSummary.summaryObj.id):t.currentNodes&&t.removeNodes(t.currentNodes)};let n=!1,i=null;const s=o=>{const l=t.nodeData;if(o.key==="0")for(const c of l.children)_n(c,!1);if(o.key==="=")for(const c of l.children)_n(c,!0);if(["1","2","3","4","5","6","7","8","9"].includes(o.key))for(const c of l.children)_n(c,!0,Number(o.key)-1);t.refresh(),t.toCenter(),n=!1,i&&(clearTimeout(i),i=null,t.container.removeEventListener("keydown",s))},a={Enter:o=>{o.shiftKey?t.insertSibling("before"):o.ctrlKey||o.metaKey?t.insertParent():t.insertSibling("after")},Tab:()=>{t.addChild()},F1:()=>{t.toCenter()},F2:()=>{t.beginEdit()},ArrowUp:o=>{if(o.altKey)t.moveUpNode();else{if(o.metaKey||o.ctrlKey)return t.initSide();hl(t,"previous")}},ArrowDown:o=>{o.altKey?t.moveDownNode():hl(t,"next")},ArrowLeft:o=>{if(o.metaKey||o.ctrlKey)return t.initLeft();dl(t,sr.LHS)},ArrowRight:o=>{if(o.metaKey||o.ctrlKey)return t.initRight();dl(t,sr.RHS)},PageUp:()=>t.moveUpNode(),PageDown:()=>{t.moveDownNode()},c:o=>{(o.metaKey||o.ctrlKey)&&(t.waitCopy=t.currentNodes)},x:o=>{(o.metaKey||o.ctrlKey)&&(t.waitCopy=t.currentNodes,r())},v:o=>{!t.waitCopy||!t.currentNode||(o.metaKey||o.ctrlKey)&&(t.waitCopy.length===1?t.copyNode(t.waitCopy[0],t.currentNode):t.copyNodes(t.waitCopy,t.currentNode))},"=":o=>{(o.metaKey||o.ctrlKey)&&bi(t,"in")},"-":o=>{(o.metaKey||o.ctrlKey)&&bi(t,"out")},0:o=>{if(o.metaKey||o.ctrlKey){if(n)return;t.scale(1)}},k:o=>{(o.metaKey||o.ctrlKey)&&(n=!0,i&&(clearTimeout(i),t.container.removeEventListener("keydown",s)),i=window.setTimeout(()=>{n=!1,i=null},2e3),t.container.addEventListener("keydown",s))},Delete:r,Backspace:r,...e};t.container.onkeydown=o=>{if(o.preventDefault(),!t.editable)return;const l=a[o.key];l&&l(o)}}function fp(t){const{dragMoveHelper:e}=t,r=p=>{var b,v,k;if(p.button!==0)return;if((b=t.helper1)!=null&&b.moved){t.helper1.clear();return}if((v=t.helper2)!=null&&v.moved){t.helper2.clear();return}if(e.moved){e.clear();return}const w=p.target;if(w.tagName==="ME-EPD")p.ctrlKey||p.metaKey?t.expandNodeAll(w.previousSibling):t.expandNode(w.previousSibling);else if(w.tagName==="ME-TPC"&&t.currentNodes.length>1)t.selectNode(w);else if(!t.editable)return;const M=(k=w.parentElement)==null?void 0:k.parentElement;M.getAttribute("class")==="topiclinks"?t.selectArrow(w.parentElement):M.getAttribute("class")==="summary"&&t.selectSummary(w.parentElement)},n=p=>{var b;if(!t.editable)return;const v=p.target;Zs(v)&&t.beginEdit(v);const k=(b=v.parentElement)==null?void 0:b.parentElement;k.getAttribute("class")==="topiclinks"?t.editArrowLabel(v.parentElement):k.getAttribute("class")==="summary"&&t.editSummary(v.parentElement)};let i=0;const s=p=>{if(p.pointerType==="mouse")return;const b=new Date().getTime(),v=b-i;v<300&&v>0&&n(p),i=b},a=p=>{e.moved=!1;const b=t.mouseSelectionButton===0?2:0;if(p.button!==b&&p.pointerType==="mouse")return;e.x=p.clientX,e.y=p.clientY;const v=p.target;v.className!=="circle"&&v.contentEditable!=="plaintext-only"&&(e.mousedown=!0,v.setPointerCapture(p.pointerId))},o=p=>{if(p.target.contentEditable!=="plaintext-only"){const b=p.clientX-e.x,v=p.clientY-e.y;e.onMove(b,v)}e.x=p.clientX,e.y=p.clientY},l=p=>{const b=t.mouseSelectionButton===0?2:0;if(p.button!==b&&p.pointerType==="mouse")return;const v=p.target;v.hasPointerCapture&&v.hasPointerCapture(p.pointerId)&&v.releasePointerCapture(p.pointerId),e.clear()},c=p=>{if(p.preventDefault(),p.button!==2||!t.editable)return;const b=p.target;Zs(b)&&!b.classList.contains("selected")&&t.selectNode(b),setTimeout(()=>{t.dragMoveHelper.moved||t.bus.fire("showContextMenu",p)},200)},d=p=>{p.stopPropagation(),p.preventDefault(),p.ctrlKey||p.metaKey?p.deltaY<0?bi(t,"in",t.dragMoveHelper):t.scaleVal-t.scaleSensitivity>0&&bi(t,"out",t.dragMoveHelper):p.shiftKey?t.move(-p.deltaY,0):t.move(-p.deltaX,-p.deltaY)},{container:f}=t;return Wa([{dom:f,evt:"pointerdown",func:a},{dom:f,evt:"pointermove",func:o},{dom:f,evt:"pointerup",func:l},{dom:f,evt:"pointerup",func:s},{dom:f,evt:"click",func:r},{dom:f,evt:"dblclick",func:n},{dom:f,evt:"contextmenu",func:c},{dom:f,evt:"wheel",func:typeof t.handleWheel=="function"?t.handleWheel:d}])}function pp(){return{handlers:{},addListener:function(t,e){this.handlers[t]===void 0&&(this.handlers[t]=[]),this.handlers[t].push(e)},fire:function(t,...e){if(this.handlers[t]instanceof Array){const r=this.handlers[t];for(let n=0;n{s.direction===0?n+=1:s.direction===1?i+=1:n<=i?(s.direction=0,n+=1):(s.direction=1,i+=1)})}gp(this,r,e)},gp=function(t,e,r){const n=yi.createElement("me-main");n.className=sr.LHS;const i=yi.createElement("me-main");i.className=sr.RHS;for(let s=0;s`${Xs(n)}`).join(""),t.appendChild(r),t.icons=r}else t.icons&&(t.icons=void 0);if(e.tags&&e.tags.length){const r=Bt.createElement("div");r.className="tags",e.tags.forEach(n=>{const i=Bt.createElement("span");typeof n=="string"?i.textContent=n:(i.textContent=n.text,n.className&&(i.className=n.className),n.style&&Object.assign(i.style,n.style)),r.appendChild(i)}),t.appendChild(r),t.tags=r}else t.tags&&(t.tags=void 0)},bp=function(t,e){const r=Bt.createElement("me-wrapper"),{p:n,tpc:i}=this.createParent(t);if(r.appendChild(n),!e&&t.children&&t.children.length>0){const s=Ka(t.expanded);if(n.appendChild(s),t.expanded!==!1){const a=vp(this,t.children);r.appendChild(a)}}return{grp:r,top:n,tpc:i}},yp=function(t){const e=Bt.createElement("me-parent"),r=this.createTopic(t);return Ga.call(this,r,t),e.appendChild(r),{p:e,tpc:r}},wp=function(t){const e=Bt.createElement("me-children");return e.append(...t),e},xp=function(t){const e=Bt.createElement("me-tpc");return e.nodeObj=t,e.dataset.nodeid="me"+t.id,e.draggable=this.draggable,e};function Bu(t){const e=Bt.createRange();e.selectNodeContents(t);const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(e))}const kp=function(t){if(!t)return;const e=Bt.createElement("div"),r=t.nodeObj,n=r.topic;t.appendChild(e),e.id="input-box",e.textContent=n,e.contentEditable="plaintext-only",e.spellcheck=!1;const i=getComputedStyle(t);e.style.cssText=`min-width:${t.offsetWidth-8}px; - color:${i.color}; - padding:${i.padding}; - margin:${i.margin}; - font:${i.font}; - background-color:${i.backgroundColor!=="rgba(0, 0, 0, 0)"&&i.backgroundColor}; - border-radius:${i.borderRadius};`,this.direction===0&&(e.style.right="0"),Bu(e),this.bus.fire("operation",{name:"beginEdit",obj:t.nodeObj}),e.addEventListener("keydown",s=>{s.stopPropagation();const a=s.key;if(a==="Enter"||a==="Tab"){if(s.shiftKey)return;s.preventDefault(),e.blur(),this.container.focus()}}),e.addEventListener("blur",()=>{var s;if(!e)return;const a=((s=e.textContent)==null?void 0:s.trim())||"";a===""?r.topic=n:(r.topic=a,this.markdown?t.text.innerHTML=this.markdown(r.topic,r):t.text.textContent=a),e.remove(),a!==n&&(this.linkDiv(),this.bus.fire("operation",{name:"finishEdit",obj:r,origin:n}))})},Ka=function(t){const e=Bt.createElement("me-epd");return e.expanded=t!==!1,e.className=t!==!1?"minus":"",e},fn=document,Kt="http://www.w3.org/2000/svg",Js=function(t,e,r,n={}){const{anchor:i="middle",color:s,dataType:a}=n,o=document.createElementNS(Kt,"text");return gt(o,{"text-anchor":i,x:e+"",y:r+"",fill:s||(i==="middle"?"rgb(235, 95, 82)":"#666")}),a&&(o.dataset.type=a),o.innerHTML=t,o},Pu=function(t,e,r){const n=fn.createElementNS(Kt,"path");return gt(n,{d:t,stroke:e||"#666",fill:"none","stroke-width":r}),n},Zn=function(t){const e=fn.createElementNS(Kt,"svg");return e.setAttribute("class",t),e.setAttribute("overflow","visible"),e},fl=function(){const t=fn.createElementNS(Kt,"line");return t.setAttribute("stroke","#4dc4ff"),t.setAttribute("fill","none"),t.setAttribute("stroke-width","2"),t.setAttribute("opacity","0.45"),t},Sp=function(t,e,r,n){const i=fn.createElementNS(Kt,"g");return[{name:"line",d:t},{name:"arrow1",d:e},{name:"arrow2",d:r}].forEach((s,a)=>{const o=s.d,l=fn.createElementNS(Kt,"path"),c={d:o,stroke:(n==null?void 0:n.stroke)||"rgb(235, 95, 82)",fill:"none","stroke-linecap":(n==null?void 0:n.strokeLinecap)||"cap","stroke-width":String((n==null?void 0:n.strokeWidth)||"2")};(n==null?void 0:n.opacity)!==void 0&&(c.opacity=String(n.opacity)),gt(l,c),a===0&&l.setAttribute("stroke-dasharray",(n==null?void 0:n.strokeDasharray)||"8,2");const d=fn.createElementNS(Kt,"path");gt(d,{d:o,stroke:"transparent",fill:"none","stroke-width":"15"}),i.appendChild(d),i.appendChild(l),i[s.name]=l}),i},Hu=function(t,e,r){if(!e)return;const n=fn.createElement("div");t.nodes.appendChild(n);const i=e.innerHTML;n.id="input-box",n.textContent=i,n.contentEditable="plaintext-only",n.spellcheck=!1;const s=e.getBBox();n.style.cssText=` - min-width:${Math.max(88,s.width)}px; - position:absolute; - left:${s.x}px; - top:${s.y}px; - padding: 2px 4px; - margin: -2px -4px; - `,Bu(n),t.scrollIntoView(n),n.addEventListener("keydown",a=>{a.stopPropagation();const o=a.key;if(o==="Enter"||o==="Tab"){if(a.shiftKey)return;a.preventDefault(),n.blur(),t.container.focus()}}),n.addEventListener("blur",()=>{var a;if(!n)return;const o=((a=n.textContent)==null?void 0:a.trim())||"";o===""?r.label=i:r.label=o,n.remove(),o!==i&&(e.innerHTML=r.label,"parent"in r?t.bus.fire("operation",{name:"finishEditSummary",obj:r}):t.bus.fire("operation",{name:"finishEditArrowLabel",obj:r}))})},Tp=function(t){const e=this.map.querySelector("me-root"),r=e.offsetTop,n=e.offsetLeft,i=e.offsetWidth,s=e.offsetHeight,a=this.map.querySelectorAll("me-main > me-wrapper");this.lines.innerHTML="";for(let o=0;o{const z=document.createElement("div");return z.innerText=O,z.className="tips",z},n=(O,z,Y)=>{const W=document.createElement("li");return W.id=O,W.innerHTML=`${Xs(z)}${Xs(Y)}`,W},i=ml[t.locale]?t.locale:"en",s=ml[i],a=n("cm-add_child",s.addChild,"Tab"),o=n("cm-add_parent",s.addParent,"Ctrl + Enter"),l=n("cm-add_sibling",s.addSibling,"Enter"),c=n("cm-remove_child",s.removeNode,"Delete"),d=n("cm-fucus",s.focus,""),f=n("cm-unfucus",s.cancelFocus,""),p=n("cm-up",s.moveUp,"PgUp"),b=n("cm-down",s.moveDown,"Pgdn"),v=n("cm-link",s.link,""),k=n("cm-link-bidirectional",s.linkBidirectional,""),w=n("cm-summary",s.summary,""),M=document.createElement("ul");if(M.className="menu-list",M.appendChild(a),M.appendChild(o),M.appendChild(l),M.appendChild(c),e.focus&&(M.appendChild(d),M.appendChild(f)),M.appendChild(p),M.appendChild(b),M.appendChild(w),e.link&&(M.appendChild(v),M.appendChild(k)),e&&e.extend)for(let O=0;O{z.onclick(W)}}const x=document.createElement("div");x.className="context-menu",x.appendChild(M),x.hidden=!0,t.container.append(x);let A=!0;const N=O=>{const z=O.target;if(Zs(z)){z.parentElement.tagName==="ME-ROOT"?A=!0:A=!1,A?(d.className="disabled",p.className="disabled",b.className="disabled",o.className="disabled",l.className="disabled",c.className="disabled"):(d.className="",p.className="",b.className="",o.className="",l.className="",c.className=""),x.hidden=!1,M.style.top="",M.style.bottom="",M.style.left="",M.style.right="";const Y=M.getBoundingClientRect(),W=M.offsetHeight,he=M.offsetWidth,pe=O.clientY-Y.top,Ae=O.clientX-Y.left;W+pe>window.innerHeight?(M.style.top="",M.style.bottom="0px"):(M.style.bottom="",M.style.top=pe+15+"px"),he+Ae>window.innerWidth?(M.style.left="",M.style.right="0px"):(M.style.right="",M.style.left=Ae+10+"px")}};t.bus.addListener("showContextMenu",N),x.onclick=O=>{O.target===x&&(x.hidden=!0)},a.onclick=()=>{t.addChild(),x.hidden=!0},o.onclick=()=>{t.insertParent(),x.hidden=!0},l.onclick=()=>{A||(t.insertSibling("after"),x.hidden=!0)},c.onclick=()=>{A||(t.removeNodes(t.currentNodes||[]),x.hidden=!0)},d.onclick=()=>{A||(t.focusNode(t.currentNode),x.hidden=!0)},f.onclick=()=>{t.cancelFocus(),x.hidden=!0},p.onclick=()=>{A||(t.moveUpNode(),x.hidden=!0)},b.onclick=()=>{A||(t.moveDownNode(),x.hidden=!0)};const _=O=>{x.hidden=!0;const z=t.currentNode,Y=r(s.clickTips);t.container.appendChild(Y),t.map.addEventListener("click",W=>{W.preventDefault(),Y.remove();const he=W.target;(he.parentElement.tagName==="ME-PARENT"||he.parentElement.tagName==="ME-ROOT")&&t.createArrow(z,he,O)},{once:!0})};return v.onclick=()=>_(),k.onclick=()=>_({bidirectional:!0}),w.onclick=()=>{x.hidden=!0,t.createSummary(),t.unselectNodes(t.currentNodes)},()=>{a.onclick=null,o.onclick=null,l.onclick=null,c.onclick=null,d.onclick=null,f.onclick=null,p.onclick=null,b.onclick=null,v.onclick=null,w.onclick=null,x.onclick=null,t.container.oncontextmenu=null}}const Qs=document,Ep=function(t,e){if(!e)return ea(t),t;let r=t.querySelector(".insert-preview");const n=`insert-preview ${e} show`;return r||(r=Qs.createElement("div"),t.appendChild(r)),r.className=n,t},ea=function(t){if(!t)return;const e=t.querySelectorAll(".insert-preview");for(const r of e||[])r.remove()},gl=function(t,e){for(const r of e){const n=r.parentElement.parentElement.contains(t);if(!(t&&t.tagName==="ME-TPC"&&t!==r&&!n&&t.nodeObj.parent))return!1}return!0},Cp=function(t){const e=document.createElement("div");return e.className="mind-elixir-ghost",t.container.appendChild(e),e};class Mp{constructor(e){_0(this,"mind"),_0(this,"isMoving",!1),_0(this,"interval",null),_0(this,"speed",20),this.mind=e}move(e,r){this.isMoving||(this.isMoving=!0,this.interval=setInterval(()=>{this.mind.move(e*this.speed*this.mind.scaleVal,r*this.speed*this.mind.scaleVal)},100))}stop(){this.isMoving=!1,clearInterval(this.interval)}}function Np(t){let e=null,r=null;const n=Cp(t),i=new Mp(t),s=l=>{t.selection.cancel();const c=l.target;if((c==null?void 0:c.tagName)!=="ME-TPC"){l.preventDefault();return}let d=t.currentNodes;d!=null&&d.includes(c)||(t.selectNode(c),d=t.currentNodes),t.dragged=d,d.length>1?n.innerHTML=d.length+"":n.innerHTML=c.innerHTML;for(const f of d)f.parentElement.parentElement.style.opacity="0.5";l.dataTransfer.setDragImage(n,0,0),l.dataTransfer.dropEffect="move",t.dragMoveHelper.clear()},a=l=>{const{dragged:c}=t;if(!c)return;i.stop();for(const f of c)f.parentElement.parentElement.style.opacity="1";const d=l.target;d.style.opacity="",r&&(ea(r),e==="before"?t.moveNodeBefore(c,r):e==="after"?t.moveNodeAfter(c,r):e==="in"&&t.moveNodeIn(c,r),t.dragged=null,n.innerHTML="")},o=l=>{l.preventDefault();const c=12*t.scaleVal,{dragged:d}=t;if(!d)return;const f=t.container.getBoundingClientRect();l.clientXf.x+f.width-50?i.move(-1,0):l.clientYf.y+f.height-50?i.move(0,-1):i.stop(),ea(r);const p=Qs.elementFromPoint(l.clientX,l.clientY-c);if(gl(p,d)){r=p;const b=p.getBoundingClientRect(),v=b.y;l.clientY>v+b.height?e="after":e="in"}else{const b=Qs.elementFromPoint(l.clientX,l.clientY+c),v=b.getBoundingClientRect();if(gl(b,d)){r=b;const k=v.y;l.clientYe.id)}:{type:"nodes",value:[t.obj.id]}};function Rp(t){let e=[],r=-1,n=t.getData(),i=[];t.undo=function(){if(r>-1){const l=e[r];n=l.prev,t.refresh(l.prev);try{l.currentTarget.type==="nodes"&&(l.operation==="removeNodes"?t.selectNodes(l.currentTarget.value.map(c=>this.findEle(c))):t.selectNodes(l.currentSelected.map(c=>this.findEle(c))))}catch{}finally{r--}}},t.redo=function(){if(rthis.findEle(c))):t.selectNodes(l.currentTarget.value.map(c=>this.findEle(c))))}catch{}}};const s=function(l){if(l.name==="beginEdit")return;e=e.slice(0,r+1);const c=t.getData(),d={prev:n,operation:l.name,currentSelected:i.map(f=>f.id),currentTarget:Dp(l),next:c};e.push(d),n=c,r=e.length-1},a=function(l){(l.metaKey||l.ctrlKey)&&(l.shiftKey&&l.key==="Z"||l.key==="y")?t.redo():(l.metaKey||l.ctrlKey)&&l.key==="z"&&t.undo()},o=function(l){i=t.currentNodes.map(c=>c.nodeObj)};return t.bus.addListener("operation",s),t.bus.addListener("selectNodes",o),t.container.addEventListener("keydown",a),()=>{t.bus.removeListener("operation",s),t.bus.removeListener("selectNodes",o),t.container.removeEventListener("keydown",a)}}const Ip='',_p='',Op='',Lp='',zp='',Fp='',$p='',Bp={side:Ip,left:_p,right:Op,full:Lp,living:zp,zoomin:Fp,zoomout:$p},un=(t,e)=>{const r=document.createElement("span");return r.id=t,r.innerHTML=Bp[e],r};function Pp(t){const e=document.createElement("div"),r=un("fullscreen","full"),n=un("toCenter","living"),i=un("zoomout","zoomout"),s=un("zoomin","zoomin"),a=document.createElement("span");return a.innerText="100%",e.appendChild(r),e.appendChild(n),e.appendChild(i),e.appendChild(s),e.className="mind-elixir-toolbar rb",r.onclick=()=>{document.fullscreenElement===t.el?document.exitFullscreen():t.el.requestFullscreen()},n.onclick=()=>{t.toCenter()},i.onclick=()=>{t.scale(t.scaleVal-t.scaleSensitivity)},s.onclick=()=>{t.scale(t.scaleVal+t.scaleSensitivity)},e}function Hp(t){const e=document.createElement("div"),r=un("tbltl","left"),n=un("tbltr","right"),i=un("tblts","side");return e.appendChild(r),e.appendChild(n),e.appendChild(i),e.className="mind-elixir-toolbar lt",r.onclick=()=>{t.initLeft()},n.onclick=()=>{t.initRight()},i.onclick=()=>{t.initSide()},e}function qp(t){t.container.append(Pp(t)),t.container.append(Hp(t))}/*! @viselect/vanilla v3.9.0 MIT | https://github.com/Simonwep/selection/tree/master/packages/vanilla */class jp{constructor(){this._listeners=new Map,this.on=this.addEventListener,this.off=this.removeEventListener,this.emit=this.dispatchEvent}addEventListener(e,r){const n=this._listeners.get(e)??new Set;return this._listeners.set(e,n),n.add(r),this}removeEventListener(e,r){var n;return(n=this._listeners.get(e))==null||n.delete(r),this}dispatchEvent(e,...r){let n=!0;for(const i of this._listeners.get(e)??[])n=i(...r)!==!1&&n;return n}unbindAllListeners(){this._listeners.clear()}}const vl=(t,e="px")=>typeof t=="number"?t+e:t,$r=({style:t},e,r)=>{if(typeof e=="object")for(const[n,i]of Object.entries(e))i!==void 0&&(t[n]=vl(i));else r!==void 0&&(t[e]=vl(r))},bl=(t=0,e=0,r=0,n=0)=>{const i={x:t,y:e,width:r,height:n,top:e,left:t,right:t+r,bottom:e+n};return{...i,toJSON:()=>JSON.stringify(i)}},Up=t=>{let e,r=-1,n=!1;return{next:(...i)=>{e=i,n||(n=!0,r=requestAnimationFrame(()=>{t(...e),n=!1}))},cancel:()=>{cancelAnimationFrame(r),n=!1}}},yl=(t,e,r="touch")=>{switch(r){case"center":{const n=e.left+e.width/2,i=e.top+e.height/2;return n>=t.left&&n<=t.right&&i>=t.top&&i<=t.bottom}case"cover":return e.left>=t.left&&e.top>=t.top&&e.right<=t.right&&e.bottom<=t.bottom;case"touch":return t.right>=e.left&&t.left<=e.right&&t.bottom>=e.top&&t.top<=e.bottom}},Vp=()=>matchMedia("(hover: none), (pointer: coarse)").matches,Wp=()=>"safari"in window,ta=t=>Array.isArray(t)?t:[t],ju=t=>(e,r,n,i={})=>{(e instanceof HTMLCollection||e instanceof NodeList)&&(e=Array.from(e)),r=ta(r),e=ta(e);for(const s of e)if(s)for(const a of r)s[t](a,n,{capture:!1,...i})},Br=ju("addEventListener"),Jt=ju("removeEventListener"),O0=t=>{var e;const{clientX:r,clientY:n,target:i}=((e=t.touches)==null?void 0:e[0])??t;return{x:r,y:n,target:i}},kn=(t,e=document)=>ta(t).map(r=>typeof r=="string"?Array.from(e.querySelectorAll(r)):r instanceof Element?r:null).flat().filter(Boolean),Gp=(t,e)=>e.some(r=>typeof r=="number"?t.button===r:typeof r=="object"?r.button!==t.button?!1:r.modifiers.every(n=>{switch(n){case"alt":return t.altKey;case"ctrl":return t.ctrlKey||t.metaKey;case"shift":return t.shiftKey}}):!1),{abs:an,max:wl,min:xl,ceil:kl}=Math,Sl=(t=[])=>({stored:t,selected:[],touched:[],changed:{added:[],removed:[]}}),Uu=class extends jp{constructor(e){var r,n,i,s,a;super(),this._selection=Sl(),this._targetBoundaryScrolled=!0,this._selectables=[],this._areaLocation={y1:0,x2:0,y2:0,x1:0},this._areaRect=bl(),this._singleClick=!0,this._scrollAvailable=!0,this._scrollingActive=!1,this._scrollSpeed={x:0,y:0},this._scrollDelta={x:0,y:0},this._lastMousePosition={x:0,y:0},this.enable=this._toggleStartEvents,this.disable=this._toggleStartEvents.bind(this,!1),this._options={selectionAreaClass:"selection-area",selectionContainerClass:void 0,selectables:[],document:window.document,startAreas:["html"],boundaries:["html"],container:"body",...e,behaviour:{overlap:"invert",intersect:"touch",triggers:[0],...e.behaviour,startThreshold:(r=e.behaviour)!=null&&r.startThreshold?typeof e.behaviour.startThreshold=="number"?e.behaviour.startThreshold:{x:10,y:10,...e.behaviour.startThreshold}:{x:10,y:10},scrolling:{speedDivider:10,manualSpeed:750,...(n=e.behaviour)==null?void 0:n.scrolling,startScrollMargins:{x:0,y:0,...(s=(i=e.behaviour)==null?void 0:i.scrolling)==null?void 0:s.startScrollMargins}}},features:{range:!0,touch:!0,deselectOnBlur:!1,...e.features,singleTap:{allow:!0,intersect:"native",...(a=e.features)==null?void 0:a.singleTap}}};for(const d of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))typeof this[d]=="function"&&(this[d]=this[d].bind(this));const{document:o,selectionAreaClass:l,selectionContainerClass:c}=this._options;this._area=o.createElement("div"),this._clippingElement=o.createElement("div"),this._clippingElement.appendChild(this._area),this._area.classList.add(l),c&&this._clippingElement.classList.add(c),$r(this._area,{willChange:"top, left, bottom, right, width, height",top:0,left:0,position:"fixed"}),$r(this._clippingElement,{overflow:"hidden",position:"fixed",transform:"translate3d(0, 0, 0)",pointerEvents:"none",zIndex:"1"}),this._frame=Up(d=>{this._recalculateSelectionAreaRect(),this._updateElementSelection(),this._emitEvent("move",d),this._redrawSelectionArea()}),this.enable()}_toggleStartEvents(e=!0){const{document:r,features:n}=this._options,i=e?Br:Jt;i(r,"mousedown",this._onTapStart),n.touch&&i(r,"touchstart",this._onTapStart,{passive:!1})}_onTapStart(e,r=!1){const{x:n,y:i,target:s}=O0(e),{document:a,startAreas:o,boundaries:l,features:c,behaviour:d}=this._options,f=s.getBoundingClientRect();if(e instanceof MouseEvent&&!Gp(e,d.triggers))return;const p=kn(o,a),b=kn(l,a);this._targetElement=b.find(M=>yl(M.getBoundingClientRect(),f));const v=e.composedPath(),k=p.find(M=>v.includes(M));if(this._targetBoundary=b.find(M=>v.includes(M)),!this._targetElement||!k||!this._targetBoundary||!r&&this._emitEvent("beforestart",e)===!1)return;this._areaLocation={x1:n,y1:i,x2:0,y2:0};const w=a.scrollingElement??a.body;this._scrollDelta={x:w.scrollLeft,y:w.scrollTop},this._singleClick=!0,this.clearSelection(!1,!0),Br(a,["touchmove","mousemove"],this._delayedTapMove,{passive:!1}),Br(a,["mouseup","touchcancel","touchend"],this._onTapStop),Br(a,"scroll",this._onScroll),c.deselectOnBlur&&(this._targetBoundaryScrolled=!1,Br(this._targetBoundary,"scroll",this._onStartAreaScroll))}_onSingleTap(e){const{singleTap:{intersect:r},range:n}=this._options.features,i=O0(e);let s;if(r==="native")s=i.target;else if(r==="touch"){this.resolveSelectables();const{x:o,y:l}=i;s=this._selectables.find(c=>{const{right:d,left:f,top:p,bottom:b}=c.getBoundingClientRect();return of&&lp})}if(!s)return;for(this.resolveSelectables();!this._selectables.includes(s);)if(s.parentElement)s=s.parentElement;else{this._targetBoundaryScrolled||this.clearSelection();return}const{stored:a}=this._selection;if(this._emitEvent("start",e),e.shiftKey&&n&&this._latestElement){const o=this._latestElement,[l,c]=o.compareDocumentPosition(s)&4?[s,o]:[o,s],d=[...this._selectables.filter(f=>f.compareDocumentPosition(l)&4&&f.compareDocumentPosition(c)&2),l,c];this.select(d),this._latestElement=o}else a.includes(s)&&(a.length===1||e.ctrlKey||a.every(o=>this._selection.stored.includes(o)))?this.deselect(s):(this.select(s),this._latestElement=s)}_delayedTapMove(e){const{container:r,document:n,behaviour:{startThreshold:i}}=this._options,{x1:s,y1:a}=this._areaLocation,{x:o,y:l}=O0(e);if(typeof i=="number"&&an(o+l-(s+a))>=i||typeof i=="object"&&an(o-s)>=i.x||an(l-a)>=i.y){if(Jt(n,["mousemove","touchmove"],this._delayedTapMove,{passive:!1}),this._emitEvent("beforedrag",e)===!1){Jt(n,["mouseup","touchcancel","touchend"],this._onTapStop);return}Br(n,["mousemove","touchmove"],this._onTapMove,{passive:!1}),$r(this._area,"display","block"),kn(r,n)[0].appendChild(this._clippingElement),this.resolveSelectables(),this._singleClick=!1,this._targetRect=this._targetElement.getBoundingClientRect(),this._scrollAvailable=this._targetElement.scrollHeight!==this._targetElement.clientHeight||this._targetElement.scrollWidth!==this._targetElement.clientWidth,this._scrollAvailable&&(Br(this._targetElement,"wheel",this._wheelScroll,{passive:!1}),Br(this._options.document,"keydown",this._keyboardScroll,{passive:!1}),this._selectables=this._selectables.filter(c=>this._targetElement.contains(c))),this._setupSelectionArea(),this._emitEvent("start",e),this._onTapMove(e)}this._handleMoveEvent(e)}_setupSelectionArea(){const{_clippingElement:e,_targetElement:r,_area:n}=this,i=this._targetRect=r.getBoundingClientRect();this._scrollAvailable?($r(e,{top:i.top,left:i.left,width:i.width,height:i.height}),$r(n,{marginTop:-i.top,marginLeft:-i.left})):($r(e,{top:0,left:0,width:"100%",height:"100%"}),$r(n,{marginTop:0,marginLeft:0}))}_onTapMove(e){const{_scrollSpeed:r,_areaLocation:n,_options:i,_frame:s}=this,{speedDivider:a}=i.behaviour.scrolling,o=this._targetElement,{x:l,y:c}=O0(e);if(n.x2=l,n.y2=c,this._lastMousePosition.x=l,this._lastMousePosition.y=c,this._scrollAvailable&&!this._scrollingActive&&(r.y||r.x)){this._scrollingActive=!0;const d=()=>{if(!r.x&&!r.y){this._scrollingActive=!1;return}const{scrollTop:f,scrollLeft:p}=o;r.y&&(o.scrollTop+=kl(r.y/a),n.y1-=o.scrollTop-f),r.x&&(o.scrollLeft+=kl(r.x/a),n.x1-=o.scrollLeft-p),s.next(e),requestAnimationFrame(d)};requestAnimationFrame(d)}else s.next(e);this._handleMoveEvent(e)}_handleMoveEvent(e){const{features:r}=this._options;(r.touch&&Vp()||this._scrollAvailable&&Wp())&&e.preventDefault()}_onScroll(){const{_scrollDelta:e,_options:{document:r}}=this,{scrollTop:n,scrollLeft:i}=r.scrollingElement??r.body;this._areaLocation.x1+=e.x-i,this._areaLocation.y1+=e.y-n,e.x=i,e.y=n,this._setupSelectionArea(),this._frame.next(null)}_onStartAreaScroll(){this._targetBoundaryScrolled=!0,Jt(this._targetElement,"scroll",this._onStartAreaScroll)}_wheelScroll(e){const{manualSpeed:r}=this._options.behaviour.scrolling,n=e.deltaY?e.deltaY>0?1:-1:0,i=e.deltaX?e.deltaX>0?1:-1:0;this._scrollSpeed.y+=n*r,this._scrollSpeed.x+=i*r,this._onTapMove(e),e.preventDefault()}_keyboardScroll(e){const{manualSpeed:r}=this._options.behaviour.scrolling,n=e.key==="ArrowLeft"?-1:e.key==="ArrowRight"?1:0,i=e.key==="ArrowUp"?-1:e.key==="ArrowDown"?1:0;this._scrollSpeed.x+=Math.sign(n)*r,this._scrollSpeed.y+=Math.sign(i)*r,e.preventDefault(),this._onTapMove({clientX:this._lastMousePosition.x,clientY:this._lastMousePosition.y,preventDefault:()=>{}})}_recalculateSelectionAreaRect(){const{_scrollSpeed:e,_areaLocation:r,_targetElement:n,_options:i}=this,{scrollTop:s,scrollHeight:a,clientHeight:o,scrollLeft:l,scrollWidth:c,clientWidth:d}=n,f=this._targetRect,{x1:p,y1:b}=r;let{x2:v,y2:k}=r;const{behaviour:{scrolling:{startScrollMargins:w}}}=i;vf.right-w.x?(e.x=c-l-d?an(f.left+f.width-v-w.x):0,v=v>f.right?f.right:v):e.x=0,kf.bottom-w.y?(e.y=a-s-o?an(f.top+f.height-k-w.y):0,k=k>f.bottom?f.bottom:k):e.y=0;const M=xl(p,v),x=xl(b,k),A=wl(p,v),N=wl(b,k);this._areaRect=bl(M,x,A-M,N-x)}_redrawSelectionArea(){const{x:e,y:r,width:n,height:i}=this._areaRect,{style:s}=this._area;s.left=`${e}px`,s.top=`${r}px`,s.width=`${n}px`,s.height=`${i}px`}_onTapStop(e,r){var n;const{document:i,features:s}=this._options,{_singleClick:a}=this;Jt(this._targetElement,"scroll",this._onStartAreaScroll),Jt(i,["mousemove","touchmove"],this._delayedTapMove),Jt(i,["touchmove","mousemove"],this._onTapMove),Jt(i,["mouseup","touchcancel","touchend"],this._onTapStop),Jt(i,"scroll",this._onScroll),this._keepSelection(),e&&a&&s.singleTap.allow?this._onSingleTap(e):!a&&!r&&(this._updateElementSelection(),this._emitEvent("stop",e)),this._scrollSpeed.x=0,this._scrollSpeed.y=0,Jt(this._targetElement,"wheel",this._wheelScroll,{passive:!0}),Jt(this._options.document,"keydown",this._keyboardScroll,{passive:!0}),this._clippingElement.remove(),(n=this._frame)==null||n.cancel(),$r(this._area,"display","none")}_updateElementSelection(){const{_selectables:e,_options:r,_selection:n,_areaRect:i}=this,{stored:s,selected:a,touched:o}=n,{intersect:l,overlap:c}=r.behaviour,d=c==="invert",f=[],p=[],b=[];for(let k=0;k!a.includes(k)));const v=c==="keep";for(let k=0;k!a.includes(l));switch(e.behaviour.overlap){case"drop":{r.stored=[...o,...a.filter(l=>!s.includes(l))];break}case"invert":{r.stored=[...o,...a.filter(l=>!i.removed.includes(l))];break}case"keep":{r.stored=[...a,...n.filter(l=>!a.includes(l))];break}}}trigger(e,r=!0){this._onTapStart(e,r)}resolveSelectables(){this._selectables=kn(this._options.selectables,this._options.document)}clearSelection(e=!0,r=!1){const{selected:n,stored:i,changed:s}=this._selection;s.added=[],s.removed.push(...n,...e?i:[]),r||(this._emitEvent("move",null),this._emitEvent("stop",null)),this._selection=Sl(e?[]:i)}getSelection(){return this._selection.stored}getSelectionArea(){return this._area}getSelectables(){return this._selectables}setAreaLocation(e){Object.assign(this._areaLocation,e),this._redrawSelectionArea()}getAreaLocation(){return this._areaLocation}cancel(e=!1){this._onTapStop(null,!e)}destroy(){this.cancel(),this.disable(),this._clippingElement.remove(),super.unbindAllListeners()}select(e,r=!1){const{changed:n,selected:i,stored:s}=this._selection,a=kn(e,this._options.document).filter(o=>!i.includes(o)&&!s.includes(o));return s.push(...a),i.push(...a),n.added.push(...a),n.removed=[],this._latestElement=void 0,r||(this._emitEvent("move",null),this._emitEvent("stop",null)),a}deselect(e,r=!1){const{selected:n,stored:i,changed:s}=this._selection,a=kn(e,this._options.document).filter(o=>n.includes(o)||i.includes(o));this._selection.stored=i.filter(o=>!a.includes(o)),this._selection.selected=n.filter(o=>!a.includes(o)),this._selection.changed.added=[],this._selection.changed.removed.push(...a.filter(o=>!s.removed.includes(o))),this._latestElement=void 0,r||(this._emitEvent("move",null),this._emitEvent("stop",null))}};Uu.version="3.9.0";let Kp=Uu;function Yp(t){const e=t.mouseSelectionButton===2?[2]:[0],r=new Kp({selectables:[".map-container me-tpc"],boundaries:[t.container],container:t.selectionContainer,features:{touch:!1},behaviour:{triggers:e,scrolling:{speedDivider:10,manualSpeed:750,startScrollMargins:{x:10,y:10}}}}).on("beforestart",({event:n})=>{var i;const s=n.target;if(s.id==="input-box"||s.className==="circle"||(i=t.container.querySelector(".context-menu"))!=null&&i.contains(s))return!1;if(!n.ctrlKey&&!n.metaKey){if(s.tagName==="ME-TPC"&&s.classList.contains("selected"))return!1;t.clearSelection()}const a=r.getSelectionArea();return a.style.background="#4f90f22d",a.style.border="1px solid #4f90f2",a.parentElement&&(a.parentElement.style.zIndex="9999"),!0}).on("move",({store:{changed:{added:n,removed:i}}})=>{if(n.length>0||i.length>0,n.length>0){for(const s of n)s.className="selected";t.currentNodes=[...t.currentNodes,...n],t.bus.fire("selectNodes",n.map(s=>s.nodeObj))}if(i.length>0){for(const s of i)s.classList.remove("selected");t.currentNodes=t.currentNodes.filter(s=>!(i!=null&&i.includes(s))),t.bus.fire("unselectNodes",i.map(s=>s.nodeObj))}});t.selection=r}const Xp=function(t,e=!0){this.theme=t;const r={...(t.type==="dark"?ja:qa).cssVar,...t.cssVar},n=Object.keys(r);for(let i=0;i{var e;const r=(e=t.parent)==null?void 0:e.children,n=(r==null?void 0:r.indexOf(t))??0;return{siblings:r,index:n}};function Zp(t){const{siblings:e,index:r}=$n(t);if(e===void 0)return;const n=e[r];r===0?(e[r]=e[e.length-1],e[e.length-1]=n):(e[r]=e[r-1],e[r-1]=n)}function Jp(t){const{siblings:e,index:r}=$n(t);if(e===void 0)return;const n=e[r];r===e.length-1?(e[r]=e[0],e[0]=n):(e[r]=e[r+1],e[r+1]=n)}function Vu(t){const{siblings:e,index:r}=$n(t);return e===void 0?0:(e.splice(r,1),e.length)}function Qp(t,e,r){const{siblings:n,index:i}=$n(r);n!==void 0&&(e==="before"?n.splice(i,0,t):n.splice(i+1,0,t))}function e4(t,e){const{siblings:r,index:n}=$n(t);r!==void 0&&(r[n]=e,e.children=[t])}function Wu(t,e,r){var n;if(Vu(e),(n=r.parent)!=null&&n.parent||(e.direction=r.direction),t==="in")r.children?r.children.push(e):r.children=[e];else{e.direction!==void 0&&(e.direction=r.direction);const{siblings:i,index:s}=$n(r);if(i===void 0)return;t==="before"?i.splice(s,0,e):i.splice(s+1,0,e)}}const t4=function({map:t,direction:e},r){var n,i;if(e===0)return 0;if(e===1)return 1;if(e===2){const s=((n=t.querySelector(".lhs"))==null?void 0:n.childElementCount)||0,a=((i=t.querySelector(".rhs"))==null?void 0:i.childElementCount)||0;return s<=a?(r.direction=0,0):(r.direction=1,1)}},Gu=function(t,e,r){var n,i;const s=r.children[0].children[0],a=e.parentElement;if(a.tagName==="ME-PARENT"){if(y0(s),a.children[1])a.nextSibling.appendChild(r);else{const o=t.createChildren([r]);a.appendChild(Ka(!0)),a.insertAdjacentElement("afterend",o)}t.linkDiv(r.offsetParent)}else a.tagName==="ME-ROOT"&&(t4(t,s.nodeObj)===0?(n=t.container.querySelector(".lhs"))==null||n.appendChild(r):(i=t.container.querySelector(".rhs"))==null||i.appendChild(r),t.linkDiv())},r4=function(t,e){const r=t.parentNode;if(e===0){const n=r.parentNode.parentNode;n.tagName!=="ME-MAIN"&&(n.previousSibling.children[1].remove(),n.remove())}r.parentNode.remove()},Ku={before:"beforebegin",after:"afterend"},y0=function(t){const e=t.parentElement.parentElement.lastElementChild;(e==null?void 0:e.tagName)==="svg"&&(e==null||e.remove())},n4=function(t,e){const r=t.nodeObj,n=Va(r);n.style&&e.style&&(e.style=Object.assign(n.style,e.style));const i=Object.assign(r,e);Ga.call(this,t,i),this.linkDiv(),this.bus.fire("operation",{name:"reshapeNode",obj:i,origin:n})},Ya=function(t,e,r){if(!e)return null;const n=e.nodeObj;n.expanded===!1&&(t.expandNode(e,!0),e=t.findEle(n.id));const i=r||t.generateNewObj();n.children?n.children.push(i):n.children=[i],en(t.nodeData);const{grp:s,top:a}=t.createWrapper(i);return Gu(t,e,s),{newTop:a,newNodeObj:i}},i4=function(t,e,r){var n,i,s,a;const o=e||this.currentNode;if(!o)return;const l=o.nodeObj;if(l.parent){if(!((n=l.parent)!=null&&n.parent)&&((s=(i=l.parent)==null?void 0:i.children)==null?void 0:s.length)===1&&this.direction===2){this.addChild(this.findEle(l.parent.id),r);return}}else{this.addChild();return}const c=r||this.generateNewObj();if(!((a=l.parent)!=null&&a.parent)){const b=o.closest("me-main").className===sr.LHS?0:1;c.direction=b}Qp(c,t,l),en(this.nodeData);const d=o.parentElement,{grp:f,top:p}=this.createWrapper(c);d.parentElement.insertAdjacentElement(Ku[t],f),this.linkDiv(f.offsetParent),r||this.editTopic(p.firstChild),this.bus.fire("operation",{name:"insertSibling",type:t,obj:c}),this.selectNode(p.firstChild,!0)},s4=function(t,e){const r=t||this.currentNode;if(!r)return;y0(r);const n=r.nodeObj;if(!n.parent)return;const i=e||this.generateNewObj();e4(n,i),en(this.nodeData);const s=r.parentElement.parentElement,{grp:a,top:o}=this.createWrapper(i,!0);o.appendChild(Ka(!0)),s.insertAdjacentElement("afterend",a);const l=this.createChildren([s]);o.insertAdjacentElement("afterend",l),this.linkDiv(),e||this.editTopic(o.firstChild),this.selectNode(o.firstChild,!0),this.bus.fire("operation",{name:"insertParent",obj:i})},a4=function(t,e){const r=t||this.currentNode;if(!r)return;const n=Ya(this,r,e);if(!n)return;const{newTop:i,newNodeObj:s}=n;this.bus.fire("operation",{name:"addChild",obj:s}),e||this.editTopic(i.firstChild),this.selectNode(i.firstChild,!0)},o4=function(t,e){const r=Va(t.nodeObj);Ua(r);const n=Ya(this,e,r);if(!n)return;const{newNodeObj:i}=n;this.selectNode(this.findEle(i.id)),this.bus.fire("operation",{name:"copyNode",obj:i})},l4=function(t,e){t=qi(t);const r=[];for(let n=0;nthis.findEle(n.id))),this.bus.fire("operation",{name:"copyNodes",objs:r})},c4=function(t){const e=t||this.currentNode;if(!e)return;const r=e.nodeObj;Zp(r);const n=e.parentNode.parentNode;n.parentNode.insertBefore(n,n.previousSibling),this.linkDiv(),this.bus.fire("operation",{name:"moveUpNode",obj:r})},u4=function(t){const e=t||this.currentNode;if(!e)return;const r=e.nodeObj;Jp(r);const n=e.parentNode.parentNode;n.nextSibling?n.nextSibling.insertAdjacentElement("afterend",n):n.parentNode.prepend(n),this.linkDiv(),this.bus.fire("operation",{name:"moveDownNode",obj:r})},d4=function(t){if(t.length===0)return;t=qi(t);for(const r of t){const n=r.nodeObj,i=Vu(n);r4(r,i)}const e=t[t.length-1];this.selectNode(this.findEle(e.nodeObj.parent.id)),this.linkDiv(),this.bus.fire("operation",{name:"removeNodes",objs:t.map(r=>r.nodeObj)})},h4=function(t,e){t=qi(t);const r=e.nodeObj;r.expanded===!1&&(this.expandNode(e,!0),e=this.findEle(r.id));for(const n of t){const i=n.nodeObj;Wu("in",i,r),en(this.nodeData);const s=n.parentElement;Gu(this,e,s.parentElement)}this.linkDiv(),this.bus.fire("operation",{name:"moveNodeIn",objs:t.map(n=>n.nodeObj),toObj:r})},Yu=(t,e,r,n)=>{t=qi(t),e==="after"&&(t=t.reverse());const i=r.nodeObj,s=[];for(const a of t){const o=a.nodeObj;Wu(e,o,i),en(n.nodeData),y0(a);const l=a.parentElement.parentNode;s.includes(l.parentElement)||s.push(l.parentElement),r.parentElement.parentNode.insertAdjacentElement(Ku[e],l)}for(const a of s)a.childElementCount===0&&a.tagName!=="ME-MAIN"&&(a.previousSibling.children[1].remove(),a.remove());n.linkDiv(),n.bus.fire("operation",{name:e==="before"?"moveNodeBefore":"moveNodeAfter",objs:t.map(a=>a.nodeObj),toObj:i})},f4=function(t,e){Yu(t,"before",e,this)},p4=function(t,e){Yu(t,"after",e,this)},m4=function(t){const e=t||this.currentNode;e&&(e.nodeObj.dangerouslySetInnerHTML||this.editTopic(e))},g4=function(t,e){t.text.textContent=e,t.nodeObj.topic=e,this.linkDiv()},Xu=Object.freeze(Object.defineProperty({__proto__:null,addChild:a4,beginEdit:m4,copyNode:o4,copyNodes:l4,insertParent:s4,insertSibling:i4,moveDownNode:u4,moveNodeAfter:p4,moveNodeBefore:f4,moveNodeIn:h4,moveUpNode:c4,removeNodes:d4,reshapeNode:n4,rmSubline:y0,setNodeTopic:g4},Symbol.toStringTag,{value:"Module"}));function v4(t){return{nodeData:t.isFocusMode?t.nodeDataBackup:t.nodeData,arrows:t.arrows,summaries:t.summaries,direction:t.direction,theme:t.theme}}const b4=function(t){const e=this.container,r=t.getBoundingClientRect(),n=e.getBoundingClientRect();if(r.top>n.bottom||r.bottomn.right||r.right{if(!(e==="parent"&&typeof r!="string"))return r})},T4=function(){return JSON.parse(this.getDataString())},A4=function(){this.editable=!0},E4=function(){this.editable=!1},C4=function(t,e={x:0,y:0}){if(tthis.scaleMax)return;const r=this.container.getBoundingClientRect(),n=e.x?e.x-r.left-r.width/2:0,i=e.y?e.y-r.top-r.height/2:0,{dx:s,dy:a}=Zu(this),o=this.map.style.transform,{x:l,y:c}=Fu(o),d=l-s,f=c-a,p=this.scaleVal,b=(-n+d)*(1-t/p),v=(-i+f)*(1-t/p);this.map.style.transform=`translate(${l-b}px, ${c-v}px) scale(${t})`,this.scaleVal=t,this.bus.fire("scale",t)},M4=function(){const t=this.nodes.offsetHeight/this.container.offsetHeight,e=this.nodes.offsetWidth/this.container.offsetWidth,r=1/Math.max(1,Math.max(t,e));this.scaleVal=r,this.map.style.transform="scale("+r+")",this.bus.fire("scale",r)},N4=function(t,e,r=!1){const{map:n,scaleVal:i,bus:s}=this,a=n.style.transform;let{x:o,y:l}=Fu(a);o+=t,l+=e,r&&(n.style.transition="transform 0.3s",setTimeout(()=>{n.style.transition="none"},300)),n.style.transform=`translate(${o}px, ${l}px) scale(${i})`,s.fire("move",{dx:t,dy:e})},Zu=t=>{const{container:e,map:r,nodes:n}=t,i=r.querySelector("me-root"),s=i.offsetTop,a=i.offsetLeft,o=i.offsetWidth,l=i.offsetHeight;let c,d;return t.alignment==="root"?(c=e.offsetWidth/2-a-o/2,d=e.offsetHeight/2-s-l/2,r.style.transformOrigin=`${a+o/2}px 50%`):(c=(e.offsetWidth-n.offsetWidth)/2,d=(e.offsetHeight-n.offsetHeight)/2,r.style.transformOrigin="50% 50%"),{dx:c,dy:d}},D4=function(){const{map:t}=this,{dx:e,dy:r}=Zu(this);t.style.transform=`translate(${e}px, ${r}px) scale(${this.scaleVal})`},R4=function(t){t(this)},I4=function(t){t.nodeObj.parent&&(this.clearSelection(),this.tempDirection===null&&(this.tempDirection=this.direction),this.isFocusMode||(this.nodeDataBackup=this.nodeData,this.isFocusMode=!0),this.nodeData=t.nodeObj,this.initRight(),this.toCenter())},_4=function(){this.isFocusMode=!1,this.tempDirection!==null&&(this.nodeData=this.nodeDataBackup,this.direction=this.tempDirection,this.tempDirection=null,this.refresh(),this.toCenter())},O4=function(){this.direction=0,this.refresh(),this.toCenter()},L4=function(){this.direction=1,this.refresh(),this.toCenter()},z4=function(){this.direction=2,this.refresh(),this.toCenter()},F4=function(t){this.locale=t,this.refresh()},$4=function(t,e){const r=t.nodeObj;typeof e=="boolean"?r.expanded=e:r.expanded!==!1?r.expanded=!1:r.expanded=!0;const n=t.getBoundingClientRect(),i={x:n.left,y:n.top},s=t.parentNode,a=s.children[1];if(a.expanded=r.expanded,a.className=r.expanded?"minus":"",y0(t),r.expanded){const f=this.createChildren(r.children.map(p=>this.createWrapper(p).grp));s.parentNode.appendChild(f)}else s.parentNode.children[1].remove();this.linkDiv(t.closest("me-main > me-wrapper"));const o=t.getBoundingClientRect(),l={x:o.left,y:o.top},c=i.x-l.x,d=i.y-l.y;this.move(c,d),this.bus.fire("expandNode",r)},B4=function(t,e){const r=t.nodeObj,n=t.getBoundingClientRect(),i={x:n.left,y:n.top};_n(r,e??!r.expanded),this.refresh();const s=this.findEle(r.id).getBoundingClientRect(),a={x:s.left,y:s.top},o=i.x-a.x,l=i.y-a.y;this.move(o,l)},P4=function(t){this.clearSelection(),t&&(t=JSON.parse(JSON.stringify(t)),this.nodeData=t.nodeData,this.arrows=t.arrows||[],this.summaries=t.summaries||[],t.theme&&this.changeTheme(t.theme)),en(this.nodeData),this.layout(),this.linkDiv()},H4=Object.freeze(Object.defineProperty({__proto__:null,cancelFocus:_4,clearSelection:k4,disableEdit:E4,enableEdit:A4,expandNode:$4,expandNodeAll:B4,focusNode:I4,getData:T4,getDataString:S4,initLeft:O4,initRight:L4,initSide:z4,install:R4,move:N4,refresh:P4,scale:C4,scaleFit:M4,scrollIntoView:b4,selectNode:y4,selectNodes:w4,setLocale:F4,toCenter:D4,unselectNodes:x4},Symbol.toStringTag,{value:"Module"})),q4=function(t){return{dom:t,moved:!1,pointerdown:!1,lastX:0,lastY:0,handlePointerMove(e){if(this.pointerdown){this.moved=!0;const r=e.clientX-this.lastX,n=e.clientY-this.lastY;this.lastX=e.clientX,this.lastY=e.clientY,this.cb&&this.cb(r,n)}},handlePointerDown(e){e.button===0&&(this.pointerdown=!0,this.lastX=e.clientX,this.lastY=e.clientY,this.dom.setPointerCapture(e.pointerId))},handleClear(e){this.pointerdown=!1,e.pointerId!==void 0&&this.dom.releasePointerCapture(e.pointerId)},cb:null,init(e,r){this.cb=r,this.handleClear=this.handleClear.bind(this),this.handlePointerMove=this.handlePointerMove.bind(this),this.handlePointerDown=this.handlePointerDown.bind(this),this.destroy=Wa([{dom:e,evt:"pointermove",func:this.handlePointerMove},{dom:e,evt:"pointerleave",func:this.handleClear},{dom:e,evt:"pointerup",func:this.handleClear},{dom:this.dom,evt:"pointerdown",func:this.handlePointerDown}])},destroy:null,clear(){this.moved=!1,this.pointerdown=!1}}},Tl={create:q4},j4="#4dc4ff";function Ju(t,e,r,n,i,s,a,o){return{x:t/8+r*3/8+i*3/8+a/8,y:e/8+n*3/8+s*3/8+o/8}}function U4(t,e,r){gt(t,{x:e+"",y:r+""})}function L0(t,e,r,n,i){gt(t,{x1:e+"",y1:r+"",x2:n+"",y2:i+""})}function Al(t,e,r,n,i,s,a,o,l,c){var d;const f=`M ${e} ${r} C ${n} ${i} ${s} ${a} ${o} ${l}`;if(t.line.setAttribute("d",f),c.style){const w=c.style;w.stroke&&t.line.setAttribute("stroke",w.stroke),w.strokeWidth&&t.line.setAttribute("stroke-width",String(w.strokeWidth)),w.strokeDasharray&&t.line.setAttribute("stroke-dasharray",w.strokeDasharray),w.strokeLinecap&&t.line.setAttribute("stroke-linecap",w.strokeLinecap),w.opacity!==void 0&&t.line.setAttribute("opacity",String(w.opacity))}const p=t.querySelectorAll('path[stroke="transparent"]');p.length>0&&p[0].setAttribute("d",f);const b=vi(s,a,o,l);if(b){const w=`M ${b.x1} ${b.y1} L ${o} ${l} L ${b.x2} ${b.y2}`;if(t.arrow1.setAttribute("d",w),p.length>1&&p[1].setAttribute("d",w),c.style){const M=c.style;M.stroke&&t.arrow1.setAttribute("stroke",M.stroke),M.strokeWidth&&t.arrow1.setAttribute("stroke-width",String(M.strokeWidth)),M.strokeLinecap&&t.arrow1.setAttribute("stroke-linecap",M.strokeLinecap),M.opacity!==void 0&&t.arrow1.setAttribute("opacity",String(M.opacity))}}if(c.bidirectional){const w=vi(n,i,e,r);if(w){const M=`M ${w.x1} ${w.y1} L ${e} ${r} L ${w.x2} ${w.y2}`;if(t.arrow2.setAttribute("d",M),p.length>2&&p[2].setAttribute("d",M),c.style){const x=c.style;x.stroke&&t.arrow2.setAttribute("stroke",x.stroke),x.strokeWidth&&t.arrow2.setAttribute("stroke-width",String(x.strokeWidth)),x.strokeLinecap&&t.arrow2.setAttribute("stroke-linecap",x.strokeLinecap),x.opacity!==void 0&&t.arrow2.setAttribute("opacity",String(x.opacity))}}}const{x:v,y:k}=Ju(e,r,n,i,s,a,o,l);U4(t.label,v,k),(d=c.style)!=null&&d.labelColor&&t.label.setAttribute("fill",c.style.labelColor),J4(t)}function wi(t,e,r){const{offsetLeft:n,offsetTop:i}=tn(t.nodes,e),s=e.offsetWidth,a=e.offsetHeight,o=n+s/2,l=i+a/2,c=o+r.x,d=l+r.y;return{w:s,h:a,cx:o,cy:l,ctrlX:c,ctrlY:d}}function Cn(t){let e,r;const n=(t.cy-t.ctrlY)/(t.ctrlX-t.cx);return n>t.h/t.w||n<-t.h/t.w?t.cy-t.ctrlY<0?(e=t.cx-t.h/2/n,r=t.cy+t.h/2):(e=t.cx+t.h/2/n,r=t.cy-t.h/2):t.cx-t.ctrlX<0?(e=t.cx+t.w/2,r=t.cy-t.w*n/2):(e=t.cx-t.w/2,r=t.cy+t.w*n/2),{x:e,y:r}}const Xa=function(t,e,r,n,i){var s;if(!e||!r)return;const a=wi(t,e,n.delta1),o=wi(t,r,n.delta2),{x:l,y:c}=Cn(a),{ctrlX:d,ctrlY:f}=a,{ctrlX:p,ctrlY:b}=o,{x:v,y:k}=Cn(o),w=vi(p,b,v,k);if(!w)return;const M=`M ${w.x1} ${w.y1} L ${v} ${k} L ${w.x2} ${w.y2}`;let x="";if(n.bidirectional){const Y=vi(d,f,l,c);if(!Y)return;x=`M ${Y.x1} ${Y.y1} L ${l} ${c} L ${Y.x2} ${Y.y2}`}const A=Sp(`M ${l} ${c} C ${d} ${f} ${p} ${b} ${v} ${k}`,M,x,n.style),{x:N,y:_}=Ju(l,c,d,f,p,b,v,k),O=(s=n.style)==null?void 0:s.labelColor,z=Js(n.label,N,_,{anchor:"middle",color:O,dataType:"custom-link"});A.appendChild(z),A.label=z,A.arrowObj=n,A.dataset.linkid=n.id,t.linkSvgGroup.appendChild(A),i||(t.arrows.push(n),t.currentArrow=A,Qu(t,n,a,o))},V4=function(t,e,r={}){const n={id:vn(),label:"Custom Link",from:t.nodeObj.id,to:e.nodeObj.id,delta1:{x:t.offsetWidth/2+100,y:0},delta2:{x:e.offsetWidth/2+100,y:0},...r};Xa(this,t,e,n),this.bus.fire("operation",{name:"createArrow",obj:n})},W4=function(t){ji(this);const e={...t,id:vn()};Xa(this,this.findEle(e.from),this.findEle(e.to),e),this.bus.fire("operation",{name:"createArrow",obj:e})},G4=function(t){let e;if(t?e=t:e=this.currentArrow,!e)return;ji(this);const r=e.arrowObj.id;this.arrows=this.arrows.filter(n=>n.id!==r),e.remove(),this.bus.fire("operation",{name:"removeArrow",obj:{id:r}})},K4=function(t){this.currentArrow=t;const e=t.arrowObj,r=this.findEle(e.from),n=this.findEle(e.to),i=wi(this,r,e.delta1),s=wi(this,n,e.delta2);Qu(this,e,i,s)},Y4=function(){ji(this),this.currentArrow=null},ys=function(t,e){const r=document.createElementNS(Kt,"path");return gt(r,{d:t,stroke:e,fill:"none","stroke-width":"6","stroke-linecap":"round","stroke-linejoin":"round"}),r},X4=function(t,e){const r=document.createElementNS(Kt,"g");r.setAttribute("class","arrow-highlight"),r.setAttribute("opacity","0.45");const n=ys(t.line.getAttribute("d"),e);r.appendChild(n);const i=ys(t.arrow1.getAttribute("d"),e);if(r.appendChild(i),t.arrow2.getAttribute("d")){const s=ys(t.arrow2.getAttribute("d"),e);r.appendChild(s)}t.insertBefore(r,t.firstChild)},Z4=function(t){const e=t.querySelector(".arrow-highlight");e&&e.remove()},J4=function(t){const e=t.querySelector(".arrow-highlight");if(!e)return;const r=e.querySelectorAll("path");r.length>=1&&r[0].setAttribute("d",t.line.getAttribute("d")),r.length>=2&&r[1].setAttribute("d",t.arrow1.getAttribute("d")),r.length>=3&&t.arrow2.getAttribute("d")&&r[2].setAttribute("d",t.arrow2.getAttribute("d"))},ji=function(t){var e,r;(e=t.helper1)==null||e.destroy(),(r=t.helper2)==null||r.destroy(),t.linkController.style.display="none",t.P2.style.display="none",t.P3.style.display="none",t.currentArrow&&Z4(t.currentArrow)},Qu=function(t,e,r,n){const{linkController:i,P2:s,P3:a,line1:o,line2:l,nodes:c,map:d,currentArrow:f,bus:p}=t;if(!f)return;i.style.display="initial",s.style.display="initial",a.style.display="initial",c.appendChild(i),c.appendChild(s),c.appendChild(a),X4(f,j4);let{x:b,y:v}=Cn(r),{ctrlX:k,ctrlY:w}=r,{ctrlX:M,ctrlY:x}=n,{x:A,y:N}=Cn(n);s.style.cssText=`top:${w}px;left:${k}px;`,a.style.cssText=`top:${x}px;left:${M}px;`,L0(o,b,v,k,w),L0(l,M,x,A,N),t.helper1=Tl.create(s),t.helper2=Tl.create(a),t.helper1.init(d,(_,O)=>{k=k+_/t.scaleVal,w=w+O/t.scaleVal;const z=Cn({...r,ctrlX:k,ctrlY:w});b=z.x,v=z.y,s.style.top=w+"px",s.style.left=k+"px",Al(f,b,v,k,w,M,x,A,N,e),L0(o,b,v,k,w),e.delta1.x=k-r.cx,e.delta1.y=w-r.cy,p.fire("updateArrowDelta",e)}),t.helper2.init(d,(_,O)=>{M=M+_/t.scaleVal,x=x+O/t.scaleVal;const z=Cn({...n,ctrlX:M,ctrlY:x});A=z.x,N=z.y,a.style.top=x+"px",a.style.left=M+"px",Al(f,b,v,k,w,M,x,A,N,e),L0(l,M,x,A,N),e.delta2.x=M-n.cx,e.delta2.y=x-n.cy,p.fire("updateArrowDelta",e)})};function Q4(){this.linkSvgGroup.innerHTML="";for(let t=0;tgi(t.from,this.nodeData)&&gi(t.to,this.nodeData))}const rm=Object.freeze(Object.defineProperty({__proto__:null,createArrow:V4,createArrowFrom:W4,editArrowLabel:em,removeArrow:G4,renderArrow:Q4,selectArrow:K4,tidyArrow:tm,unselectArrow:Y4},Symbol.toStringTag,{value:"Module"})),nm=function(t){var e,r;if(t.length===0)throw new Error("No selected node.");if(t.length===1){const d=t[0].nodeObj,f=t[0].nodeObj.parent;if(!f)throw new Error("Can not select root node.");const p=f.children.findIndex(b=>d===b);return{parent:f.id,start:p,end:p}}let n=0;const i=t.map(d=>{let f=d.nodeObj;const p=[];for(;f.parent;){const b=f.parent,v=b.children,k=v==null?void 0:v.indexOf(f);f=b,p.unshift({node:f,index:k})}return p.length>n&&(n=p.length),p});let s=0;e:for(;sd[s-1].index).sort(),o=a[0]||0,l=a[a.length-1]||0,c=i[0][s-1].node;if(!c.parent)throw new Error("Please select nodes in the same main topic.");return{parent:c.id,start:o,end:l}},im=function(t){const e=document.createElementNS(Kt,"g");return e.setAttribute("id",t),e},El=function(t,e){const r=document.createElementNS(Kt,"path");return gt(r,{d:t,stroke:e||"#666",fill:"none","stroke-linecap":"round","stroke-width":"2"}),r},sm=t=>t.parentElement.parentElement,am=function(t,{parent:e,start:r}){const n=t.findEle(e),i=n.nodeObj;let s;return i.parent?s=n.closest("me-main").className:s=t.findEle(i.children[r].id).closest("me-main").className,s},Za=function(t,e){var r;const{id:n,label:i,parent:s,start:a,end:o}=e,{nodes:l,theme:c,summarySvg:d}=t,f=t.findEle(s).nodeObj,p=am(t,e);let b=1/0,v=0,k=0,w=0;for(let Y=a;Y<=o;Y++){const W=(r=f.children)==null?void 0:r[Y];if(!W)return t.removeSummary(n),null;const he=sm(t.findEle(W.id)),{offsetLeft:pe,offsetTop:Ae}=tn(l,he),st=a===o?10:20;Y===a&&(k=Ae+st),Y===o&&(w=Ae+he.offsetHeight-st),pev&&(v=he.offsetWidth+pe)}let M,x;const A=k+10,N=w+10,_=(A+N)/2,O=c.cssVar["--color"];p===sr.LHS?(M=El(`M ${b+10} ${A} c -5 0 -10 5 -10 10 L ${b} ${N-10} c 0 5 5 10 10 10 M ${b} ${_} h -10`,O),x=Js(i,b-20,_+6,{anchor:"end",color:O})):(M=El(`M ${v-10} ${A} c 5 0 10 5 10 10 L ${v} ${N-10} c 0 5 -5 10 -10 10 M ${v} ${_} h 10`,O),x=Js(i,v+20,_+6,{anchor:"start",color:O}));const z=im("s-"+n);return z.appendChild(M),z.appendChild(x),z.summaryObj=e,d.appendChild(z),z},om=function(){if(!this.currentNodes)return;const{currentNodes:t,summaries:e,bus:r}=this,{parent:n,start:i,end:s}=nm(t),a={id:vn(),parent:n,start:i,end:s,label:"summary"},o=Za(this,a);e.push(a),this.editSummary(o),r.fire("operation",{name:"createSummary",obj:a})},lm=function(t){const e=vn(),r={...t,id:e};Za(this,r),this.summaries.push(r),this.bus.fire("operation",{name:"createSummary",obj:r})},cm=function(t){var e;const r=this.summaries.findIndex(n=>n.id===t);r>-1&&(this.summaries.splice(r,1),(e=document.querySelector("#s-"+t))==null||e.remove()),this.bus.fire("operation",{name:"removeSummary",obj:{id:t}})},um=function(t){const e=t.children[1].getBBox(),r=6,n=3,i=document.createElementNS(Kt,"rect");gt(i,{x:e.x-r+"",y:e.y-r+"",width:e.width+r*2+"",height:e.height+r*2+"",rx:n+"",stroke:this.theme.cssVar["--selected"]||"#4dc4ff","stroke-width":"2",fill:"none"}),t.appendChild(i),this.currentSummary=t},dm=function(){var t,e;(e=(t=this.currentSummary)==null?void 0:t.querySelector("rect"))==null||e.remove(),this.currentSummary=null},hm=function(){this.summarySvg.innerHTML="",this.summaries.forEach(t=>{try{Za(this,t)}catch{}}),this.nodes.insertAdjacentElement("beforeend",this.summarySvg)},fm=function(t){if(!t)return;const e=t.childNodes[1];Hu(this,e,t.summaryObj)},pm=Object.freeze(Object.defineProperty({__proto__:null,createSummary:om,createSummaryFrom:lm,editSummary:fm,removeSummary:cm,renderSummary:hm,selectSummary:um,unselectSummary:dm},Symbol.toStringTag,{value:"Module"})),jt="http://www.w3.org/2000/svg";function mm(t,e){const r=document.createElementNS(jt,"svg");return gt(r,{version:"1.1",xmlns:jt,height:t,width:e}),r}function gm(t,e){return(parseInt(t)-parseInt(e))/2}function vm(t,e,r,n){const i=document.createElementNS(jt,"g");let s="";return t.text?s=t.text.textContent:s=t.childNodes[0].textContent,s.split(` -`).forEach((a,o)=>{const l=document.createElementNS(jt,"text");gt(l,{x:r+parseInt(e.paddingLeft)+"",y:n+parseInt(e.paddingTop)+gm(e.lineHeight,e.fontSize)*(o+1)+parseFloat(e.fontSize)*(o+1)+"","text-anchor":"start","font-family":e.fontFamily,"font-size":`${e.fontSize}`,"font-weight":`${e.fontWeight}`,fill:`${e.color}`}),l.innerHTML=a,i.appendChild(l)}),i}function bm(t,e,r,n){var i;let s="";(i=t.nodeObj)!=null&&i.dangerouslySetInnerHTML?s=t.nodeObj.dangerouslySetInnerHTML:t.text?s=t.text.textContent:s=t.childNodes[0].textContent;const a=document.createElementNS(jt,"foreignObject");gt(a,{x:r+parseInt(e.paddingLeft)+"",y:n+parseInt(e.paddingTop)+"",width:e.width,height:e.height});const o=document.createElement("div");return gt(o,{xmlns:"http://www.w3.org/1999/xhtml",style:`font-family: ${e.fontFamily}; font-size: ${e.fontSize}; font-weight: ${e.fontWeight}; color: ${e.color}; white-space: pre-wrap;`}),o.innerHTML=s,a.appendChild(o),a}function ym(t,e){const r=getComputedStyle(e),{offsetLeft:n,offsetTop:i}=tn(t.nodes,e),s=document.createElementNS(jt,"rect");return gt(s,{x:n+"",y:i+"",rx:r.borderRadius,ry:r.borderRadius,width:r.width,height:r.height,fill:r.backgroundColor,stroke:r.borderColor,"stroke-width":r.borderWidth}),s}function z0(t,e,r=!1){const n=getComputedStyle(e),{offsetLeft:i,offsetTop:s}=tn(t.nodes,e),a=document.createElementNS(jt,"rect");gt(a,{x:i+"",y:s+"",rx:n.borderRadius,ry:n.borderRadius,width:n.width,height:n.height,fill:n.backgroundColor,stroke:n.borderColor,"stroke-width":n.borderWidth});const o=document.createElementNS(jt,"g");o.appendChild(a);let l;return r?l=bm(e,n,i,s):l=vm(e,n,i,s),o.appendChild(l),o}function wm(t,e){const r=getComputedStyle(e),{offsetLeft:n,offsetTop:i}=tn(t.nodes,e),s=document.createElementNS(jt,"a"),a=document.createElementNS(jt,"text");return gt(a,{x:n+"",y:i+parseInt(r.fontSize)+"","text-anchor":"start","font-family":r.fontFamily,"font-size":`${r.fontSize}`,"font-weight":`${r.fontWeight}`,fill:`${r.color}`}),a.innerHTML=e.textContent,s.appendChild(a),s.setAttribute("href",e.href),s}function xm(t,e){const r=getComputedStyle(e),{offsetLeft:n,offsetTop:i}=tn(t.nodes,e),s=document.createElementNS(jt,"image");return gt(s,{x:n+"",y:i+"",width:r.width+"",height:r.height+"",href:e.src}),s}const F0=100,km='',Sm=(t,e=!1)=>{var r,n,i;const s=t.nodes,a=s.offsetHeight+F0*2,o=s.offsetWidth+F0*2,l=mm(a+"px",o+"px"),c=document.createElementNS(jt,"svg"),d=document.createElementNS(jt,"rect");gt(d,{x:"0",y:"0",width:`${o}`,height:`${a}`,fill:t.theme.cssVar["--bgcolor"]}),l.appendChild(d),s.querySelectorAll(".subLines").forEach(v=>{const k=v.cloneNode(!0),{offsetLeft:w,offsetTop:M}=tn(s,v.parentElement);k.setAttribute("x",`${w}`),k.setAttribute("y",`${M}`),c.appendChild(k)});const f=(r=s.querySelector(".lines"))==null?void 0:r.cloneNode(!0);f&&c.appendChild(f);const p=(n=s.querySelector(".topiclinks"))==null?void 0:n.cloneNode(!0);p&&c.appendChild(p);const b=(i=s.querySelector(".summary"))==null?void 0:i.cloneNode(!0);return b&&c.appendChild(b),s.querySelectorAll("me-tpc").forEach(v=>{v.nodeObj.dangerouslySetInnerHTML?c.appendChild(z0(t,v,!e)):(c.appendChild(ym(t,v)),c.appendChild(z0(t,v.text,!e)))}),s.querySelectorAll(".tags > span").forEach(v=>{c.appendChild(z0(t,v))}),s.querySelectorAll(".icons > span").forEach(v=>{c.appendChild(z0(t,v))}),s.querySelectorAll(".hyper-link").forEach(v=>{c.appendChild(wm(t,v))}),s.querySelectorAll("img").forEach(v=>{c.appendChild(xm(t,v))}),gt(c,{x:F0+"",y:F0+"",overflow:"visible"}),l.appendChild(c),l},Tm=(t,e)=>(e&&t.insertAdjacentHTML("afterbegin",""),km+t.outerHTML);function Am(t){return new Promise((e,r)=>{const n=new FileReader;n.onload=i=>{e(i.target.result)},n.onerror=i=>{r(i)},n.readAsDataURL(t)})}const Em=function(t=!1,e){const r=Sm(this,t),n=Tm(r,e);return new Blob([n],{type:"image/svg+xml"})},Cm=async function(t=!1,e){const r=this.exportSvg(t,e),n=await Am(r);return new Promise((i,s)=>{const a=new Image;a.setAttribute("crossOrigin","anonymous"),a.onload=()=>{const o=document.createElement("canvas");o.width=a.width,o.height=a.height,o.getContext("2d").drawImage(a,0,0),o.toBlob(i,"image/png",1)},a.src=n,a.onerror=s})},Mm=Object.freeze(Object.defineProperty({__proto__:null,exportPng:Cm,exportSvg:Em},Symbol.toStringTag,{value:"Module"}));function Nm(t,e){return async function(...r){const n=this.before[e];n&&!await n.apply(this,r)||t.apply(this,r)}}const Cl=Object.keys(Xu),e1={};for(let t=0;te()),this.el&&(this.el.innerHTML=""),this.el=void 0,this.nodeData=void 0,this.arrows=void 0,this.summaries=void 0,this.currentArrow=void 0,this.currentNodes=void 0,this.currentSummary=void 0,this.waitCopy=void 0,this.theme=void 0,this.direction=void 0,this.bus=void 0,this.container=void 0,this.map=void 0,this.lines=void 0,this.linkController=void 0,this.linkSvgGroup=void 0,this.P2=void 0,this.P3=void 0,this.line1=void 0,this.line2=void 0,this.nodes=void 0,(t=this.selection)==null||t.destroy(),this.selection=void 0}};function Rm({pT:t,pL:e,pW:r,pH:n,cT:i,cL:s,cW:a,cH:o,direction:l,containerHeight:c}){let d=e+r/2;const f=t+n/2;let p;l===sr.LHS?p=s+a:p=s;const b=i+o/2,v=(1-Math.abs(b-f)/c)*.25*(r/2);return l===sr.LHS?d=d-r/10-v:d=d+r/10+v,`M ${d} ${f} Q ${d} ${b} ${p} ${b}`}function Im({pT:t,pL:e,pW:r,pH:n,cT:i,cL:s,cW:a,cH:o,direction:l,isFirst:c}){const d=parseInt(this.container.style.getPropertyValue("--node-gap-x"));let f=0,p=0;c?f=t+n/2:f=t+n;const b=i+o;let v=0,k=0,w=0;const M=Math.abs(f-b)/300*d;return l===sr.LHS?(w=e,v=w+d,k=w-d,p=s+d,`M ${v} ${f} C ${w} ${f} ${w+M} ${b} ${k} ${b} H ${p}`):(w=e+r,v=w-d,k=w+d,p=s+a-d,`M ${v} ${f} C ${w} ${f} ${w-M} ${b} ${k} ${b} H ${p}`)}const _m="5.1.1";function Om(t){return{x:0,y:0,moved:!1,mousedown:!1,onMove(e,r){this.mousedown&&(this.moved=!0,t.move(e,r))},clear(){this.mousedown=!1}}}const Wn=document;function bt({el:t,direction:e,locale:r,draggable:n,editable:i,contextMenu:s,toolBar:a,keypress:o,mouseSelectionButton:l,selectionContainer:c,before:d,newTopicName:f,allowUndo:p,generateMainBranch:b,generateSubBranch:v,overflowHidden:k,theme:w,alignment:M,scaleSensitivity:x,scaleMax:A,scaleMin:N,handleWheel:_,markdown:O,imageProxy:z}){let Y=null;const W=Object.prototype.toString.call(t);if(W==="[object HTMLDivElement]"?Y=t:W==="[object String]"&&(Y=document.querySelector(t)),!Y)throw new Error("MindElixir: el is not a valid element");Y.style.position="relative",Y.innerHTML="",this.el=Y,this.disposable=[],this.before=d||{},this.locale=r||"en",this.newTopicName=f||"New Node",this.contextMenu=s??!0,this.toolBar=a??!0,this.keypress=o??!0,this.mouseSelectionButton=l??0,this.direction=e??1,this.draggable=n??!0,this.editable=i??!0,this.allowUndo=p??!0,this.scaleSensitivity=x??.1,this.scaleMax=A??1.4,this.scaleMin=N??.2,this.generateMainBranch=b||Rm,this.generateSubBranch=v||Im,this.overflowHidden=k??!1,this.alignment=M??"root",this.handleWheel=_??!0,this.markdown=O||void 0,this.imageProxy=z||void 0,this.currentNodes=[],this.currentArrow=null,this.scaleVal=1,this.tempDirection=null,this.dragMoveHelper=Om(this),this.bus=pp(),this.container=Wn.createElement("div"),this.selectionContainer=c||this.container,this.container.className="map-container";const he=window.matchMedia("(prefers-color-scheme: dark)");this.theme=w||(he.matches?ja:qa);const pe=Wn.createElement("div");pe.className="map-canvas",this.map=pe,this.container.setAttribute("tabindex","0"),this.container.appendChild(this.map),this.el.appendChild(this.container),this.nodes=Wn.createElement("me-nodes"),this.lines=Zn("lines"),this.summarySvg=Zn("summary"),this.linkController=Zn("linkcontroller"),this.P2=Wn.createElement("div"),this.P3=Wn.createElement("div"),this.P2.className=this.P3.className="circle",this.P2.style.display=this.P3.style.display="none",this.line1=fl(),this.line2=fl(),this.linkController.appendChild(this.line1),this.linkController.appendChild(this.line2),this.linkSvgGroup=Zn("topiclinks"),this.map.appendChild(this.nodes),this.overflowHidden?this.container.style.overflow="hidden":this.disposable.push(fp(this))}bt.prototype=Dm;Object.defineProperty(bt.prototype,"currentNode",{get(){return this.currentNodes[this.currentNodes.length-1]},enumerable:!0});bt.LEFT=0;bt.RIGHT=1;bt.SIDE=2;bt.THEME=qa;bt.DARK_THEME=ja;bt.version=_m;bt.E=$u;bt.new=t=>({nodeData:{id:vn(),topic:t||"new topic",children:[]}});function t1(t,e){return function(){return t.apply(e,arguments)}}const{toString:Lm}=Object.prototype,{getPrototypeOf:Ja}=Object,{iterator:Ui,toStringTag:r1}=Symbol,Vi=(t=>e=>{const r=Lm.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),ar=t=>(t=t.toLowerCase(),e=>Vi(e)===t),Wi=t=>e=>typeof e===t,{isArray:Bn}=Array,p0=Wi("undefined");function w0(t){return t!==null&&!p0(t)&&t.constructor!==null&&!p0(t.constructor)&&Lt(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const n1=ar("ArrayBuffer");function zm(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&n1(t.buffer),e}const Fm=Wi("string"),Lt=Wi("function"),i1=Wi("number"),x0=t=>t!==null&&typeof t=="object",$m=t=>t===!0||t===!1,ti=t=>{if(Vi(t)!=="object")return!1;const e=Ja(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(r1 in t)&&!(Ui in t)},Bm=t=>{if(!x0(t)||w0(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},Pm=ar("Date"),Hm=ar("File"),qm=ar("Blob"),jm=ar("FileList"),Um=t=>x0(t)&&Lt(t.pipe),Vm=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||Lt(t.append)&&((e=Vi(t))==="formdata"||e==="object"&&Lt(t.toString)&&t.toString()==="[object FormData]"))},Wm=ar("URLSearchParams"),[Gm,Km,Ym,Xm]=["ReadableStream","Request","Response","Headers"].map(ar),Zm=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function k0(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t>"u")return;let n,i;if(typeof t!="object"&&(t=[t]),Bn(t))for(n=0,i=t.length;n0;)if(i=r[n],e===i.toLowerCase())return i;return null}const dn=(()=>typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global)(),a1=t=>!p0(t)&&t!==dn;function ra(){const{caseless:t}=a1(this)&&this||{},e={},r=(n,i)=>{const s=t&&s1(e,i)||i;ti(e[s])&&ti(n)?e[s]=ra(e[s],n):ti(n)?e[s]=ra({},n):Bn(n)?e[s]=n.slice():e[s]=n};for(let n=0,i=arguments.length;n(k0(e,(i,s)=>{r&&Lt(i)?t[s]=t1(i,r):t[s]=i},{allOwnKeys:n}),t),Qm=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),e2=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),r&&Object.assign(t.prototype,r)},t2=(t,e,r,n)=>{let i,s,a;const o={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),s=i.length;s-- >0;)a=i[s],(!n||n(a,t,e))&&!o[a]&&(e[a]=t[a],o[a]=!0);t=r!==!1&&Ja(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},r2=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return n!==-1&&n===r},n2=t=>{if(!t)return null;if(Bn(t))return t;let e=t.length;if(!i1(e))return null;const r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},i2=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Ja(Uint8Array)),s2=(t,e)=>{const n=(t&&t[Ui]).call(t);let i;for(;(i=n.next())&&!i.done;){const s=i.value;e.call(t,s[0],s[1])}},a2=(t,e)=>{let r;const n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},o2=ar("HTMLFormElement"),l2=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),Ml=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),c2=ar("RegExp"),o1=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};k0(r,(i,s)=>{let a;(a=e(i,s,t))!==!1&&(n[s]=a||i)}),Object.defineProperties(t,n)},u2=t=>{o1(t,(e,r)=>{if(Lt(t)&&["arguments","caller","callee"].indexOf(r)!==-1)return!1;const n=t[r];if(Lt(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},d2=(t,e)=>{const r={},n=i=>{i.forEach(s=>{r[s]=!0})};return Bn(t)?n(t):n(String(t).split(e)),r},h2=()=>{},f2=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function p2(t){return!!(t&&Lt(t.append)&&t[r1]==="FormData"&&t[Ui])}const m2=t=>{const e=new Array(10),r=(n,i)=>{if(x0(n)){if(e.indexOf(n)>=0)return;if(w0(n))return n;if(!("toJSON"in n)){e[i]=n;const s=Bn(n)?[]:{};return k0(n,(a,o)=>{const l=r(a,i+1);!p0(l)&&(s[o]=l)}),e[i]=void 0,s}}return n};return r(t,0)},g2=ar("AsyncFunction"),v2=t=>t&&(x0(t)||Lt(t))&&Lt(t.then)&&Lt(t.catch),l1=((t,e)=>t?setImmediate:e?((r,n)=>(dn.addEventListener("message",({source:i,data:s})=>{i===dn&&s===r&&n.length&&n.shift()()},!1),i=>{n.push(i),dn.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",Lt(dn.postMessage)),b2=typeof queueMicrotask<"u"?queueMicrotask.bind(dn):typeof process<"u"&&process.nextTick||l1,y2=t=>t!=null&&Lt(t[Ui]),$={isArray:Bn,isArrayBuffer:n1,isBuffer:w0,isFormData:Vm,isArrayBufferView:zm,isString:Fm,isNumber:i1,isBoolean:$m,isObject:x0,isPlainObject:ti,isEmptyObject:Bm,isReadableStream:Gm,isRequest:Km,isResponse:Ym,isHeaders:Xm,isUndefined:p0,isDate:Pm,isFile:Hm,isBlob:qm,isRegExp:c2,isFunction:Lt,isStream:Um,isURLSearchParams:Wm,isTypedArray:i2,isFileList:jm,forEach:k0,merge:ra,extend:Jm,trim:Zm,stripBOM:Qm,inherits:e2,toFlatObject:t2,kindOf:Vi,kindOfTest:ar,endsWith:r2,toArray:n2,forEachEntry:s2,matchAll:a2,isHTMLForm:o2,hasOwnProperty:Ml,hasOwnProp:Ml,reduceDescriptors:o1,freezeMethods:u2,toObjectSet:d2,toCamelCase:l2,noop:h2,toFiniteNumber:f2,findKey:s1,global:dn,isContextDefined:a1,isSpecCompliantForm:p2,toJSONObject:m2,isAsyncFn:g2,isThenable:v2,setImmediate:l1,asap:b2,isIterable:y2};function Ne(t,e,r,n,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i,this.status=i.status?i.status:null)}$.inherits(Ne,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:$.toJSONObject(this.config),code:this.code,status:this.status}}});const c1=Ne.prototype,u1={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{u1[t]={value:t}});Object.defineProperties(Ne,u1);Object.defineProperty(c1,"isAxiosError",{value:!0});Ne.from=(t,e,r,n,i,s)=>{const a=Object.create(c1);return $.toFlatObject(t,a,function(l){return l!==Error.prototype},o=>o!=="isAxiosError"),Ne.call(a,t.message,e,r,n,i),a.cause=t,a.name=t.name,s&&Object.assign(a,s),a};const w2=null;function na(t){return $.isPlainObject(t)||$.isArray(t)}function d1(t){return $.endsWith(t,"[]")?t.slice(0,-2):t}function Nl(t,e,r){return t?t.concat(e).map(function(i,s){return i=d1(i),!r&&s?"["+i+"]":i}).join(r?".":""):e}function x2(t){return $.isArray(t)&&!t.some(na)}const k2=$.toFlatObject($,{},null,function(e){return/^is[A-Z]/.test(e)});function Gi(t,e,r){if(!$.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,r=$.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(k,w){return!$.isUndefined(w[k])});const n=r.metaTokens,i=r.visitor||d,s=r.dots,a=r.indexes,l=(r.Blob||typeof Blob<"u"&&Blob)&&$.isSpecCompliantForm(e);if(!$.isFunction(i))throw new TypeError("visitor must be a function");function c(v){if(v===null)return"";if($.isDate(v))return v.toISOString();if($.isBoolean(v))return v.toString();if(!l&&$.isBlob(v))throw new Ne("Blob is not supported. Use a Buffer instead.");return $.isArrayBuffer(v)||$.isTypedArray(v)?l&&typeof Blob=="function"?new Blob([v]):Buffer.from(v):v}function d(v,k,w){let M=v;if(v&&!w&&typeof v=="object"){if($.endsWith(k,"{}"))k=n?k:k.slice(0,-2),v=JSON.stringify(v);else if($.isArray(v)&&x2(v)||($.isFileList(v)||$.endsWith(k,"[]"))&&(M=$.toArray(v)))return k=d1(k),M.forEach(function(A,N){!($.isUndefined(A)||A===null)&&e.append(a===!0?Nl([k],N,s):a===null?k:k+"[]",c(A))}),!1}return na(v)?!0:(e.append(Nl(w,k,s),c(v)),!1)}const f=[],p=Object.assign(k2,{defaultVisitor:d,convertValue:c,isVisitable:na});function b(v,k){if(!$.isUndefined(v)){if(f.indexOf(v)!==-1)throw Error("Circular reference detected in "+k.join("."));f.push(v),$.forEach(v,function(M,x){(!($.isUndefined(M)||M===null)&&i.call(e,M,$.isString(x)?x.trim():x,k,p))===!0&&b(M,k?k.concat(x):[x])}),f.pop()}}if(!$.isObject(t))throw new TypeError("data must be an object");return b(t),e}function Dl(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(n){return e[n]})}function Qa(t,e){this._pairs=[],t&&Gi(t,this,e)}const h1=Qa.prototype;h1.append=function(e,r){this._pairs.push([e,r])};h1.toString=function(e){const r=e?function(n){return e.call(this,n,Dl)}:Dl;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};function S2(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function f1(t,e,r){if(!e)return t;const n=r&&r.encode||S2;$.isFunction(r)&&(r={serialize:r});const i=r&&r.serialize;let s;if(i?s=i(e,r):s=$.isURLSearchParams(e)?e.toString():new Qa(e,r).toString(n),s){const a=t.indexOf("#");a!==-1&&(t=t.slice(0,a)),t+=(t.indexOf("?")===-1?"?":"&")+s}return t}class T2{constructor(){this.handlers=[]}use(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){$.forEach(this.handlers,function(n){n!==null&&e(n)})}}const Rl=T2,p1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},A2=typeof URLSearchParams<"u"?URLSearchParams:Qa,E2=typeof FormData<"u"?FormData:null,C2=typeof Blob<"u"?Blob:null,M2={isBrowser:!0,classes:{URLSearchParams:A2,FormData:E2,Blob:C2},protocols:["http","https","file","blob","url","data"]},eo=typeof window<"u"&&typeof document<"u",ia=typeof navigator=="object"&&navigator||void 0,N2=eo&&(!ia||["ReactNative","NativeScript","NS"].indexOf(ia.product)<0),D2=(()=>typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function")(),R2=eo&&window.location.href||"http://localhost",I2=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:eo,hasStandardBrowserEnv:N2,hasStandardBrowserWebWorkerEnv:D2,navigator:ia,origin:R2},Symbol.toStringTag,{value:"Module"})),kt={...I2,...M2};function _2(t,e){return Gi(t,new kt.classes.URLSearchParams,{visitor:function(r,n,i,s){return kt.isNode&&$.isBuffer(r)?(this.append(n,r.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}function O2(t){return $.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function L2(t){const e={},r=Object.keys(t);let n;const i=r.length;let s;for(n=0;n=r.length;return a=!a&&$.isArray(i)?i.length:a,l?($.hasOwnProp(i,a)?i[a]=[i[a],n]:i[a]=n,!o):((!i[a]||!$.isObject(i[a]))&&(i[a]=[]),e(r,n,i[a],s)&&$.isArray(i[a])&&(i[a]=L2(i[a])),!o)}if($.isFormData(t)&&$.isFunction(t.entries)){const r={};return $.forEachEntry(t,(n,i)=>{e(O2(n),i,r,0)}),r}return null}function z2(t,e,r){if($.isString(t))try{return(e||JSON.parse)(t),$.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}const to={transitional:p1,adapter:["xhr","http","fetch"],transformRequest:[function(e,r){const n=r.getContentType()||"",i=n.indexOf("application/json")>-1,s=$.isObject(e);if(s&&$.isHTMLForm(e)&&(e=new FormData(e)),$.isFormData(e))return i?JSON.stringify(m1(e)):e;if($.isArrayBuffer(e)||$.isBuffer(e)||$.isStream(e)||$.isFile(e)||$.isBlob(e)||$.isReadableStream(e))return e;if($.isArrayBufferView(e))return e.buffer;if($.isURLSearchParams(e))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let o;if(s){if(n.indexOf("application/x-www-form-urlencoded")>-1)return _2(e,this.formSerializer).toString();if((o=$.isFileList(e))||n.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Gi(o?{"files[]":e}:e,l&&new l,this.formSerializer)}}return s||i?(r.setContentType("application/json",!1),z2(e)):e}],transformResponse:[function(e){const r=this.transitional||to.transitional,n=r&&r.forcedJSONParsing,i=this.responseType==="json";if($.isResponse(e)||$.isReadableStream(e))return e;if(e&&$.isString(e)&&(n&&!this.responseType||i)){const a=!(r&&r.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(o){if(a)throw o.name==="SyntaxError"?Ne.from(o,Ne.ERR_BAD_RESPONSE,this,null,this.response):o}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:kt.classes.FormData,Blob:kt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};$.forEach(["delete","get","head","post","put","patch"],t=>{to.headers[t]={}});const ro=to,F2=$.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),$2=t=>{const e={};let r,n,i;return t&&t.split(` -`).forEach(function(a){i=a.indexOf(":"),r=a.substring(0,i).trim().toLowerCase(),n=a.substring(i+1).trim(),!(!r||e[r]&&F2[r])&&(r==="set-cookie"?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+", "+n:n)}),e},Il=Symbol("internals");function Gn(t){return t&&String(t).trim().toLowerCase()}function ri(t){return t===!1||t==null?t:$.isArray(t)?t.map(ri):String(t)}function B2(t){const e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}const P2=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function ws(t,e,r,n,i){if($.isFunction(n))return n.call(this,e,r);if(i&&(e=r),!!$.isString(e)){if($.isString(n))return e.indexOf(n)!==-1;if($.isRegExp(n))return n.test(e)}}function H2(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,r,n)=>r.toUpperCase()+n)}function q2(t,e){const r=$.toCamelCase(" "+e);["get","set","has"].forEach(n=>{Object.defineProperty(t,n+r,{value:function(i,s,a){return this[n].call(this,e,i,s,a)},configurable:!0})})}class Ki{constructor(e){e&&this.set(e)}set(e,r,n){const i=this;function s(o,l,c){const d=Gn(l);if(!d)throw new Error("header name must be a non-empty string");const f=$.findKey(i,d);(!f||i[f]===void 0||c===!0||c===void 0&&i[f]!==!1)&&(i[f||l]=ri(o))}const a=(o,l)=>$.forEach(o,(c,d)=>s(c,d,l));if($.isPlainObject(e)||e instanceof this.constructor)a(e,r);else if($.isString(e)&&(e=e.trim())&&!P2(e))a($2(e),r);else if($.isObject(e)&&$.isIterable(e)){let o={},l,c;for(const d of e){if(!$.isArray(d))throw TypeError("Object iterator must return a key-value pair");o[c=d[0]]=(l=o[c])?$.isArray(l)?[...l,d[1]]:[l,d[1]]:d[1]}a(o,r)}else e!=null&&s(r,e,n);return this}get(e,r){if(e=Gn(e),e){const n=$.findKey(this,e);if(n){const i=this[n];if(!r)return i;if(r===!0)return B2(i);if($.isFunction(r))return r.call(this,i,n);if($.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,r){if(e=Gn(e),e){const n=$.findKey(this,e);return!!(n&&this[n]!==void 0&&(!r||ws(this,this[n],n,r)))}return!1}delete(e,r){const n=this;let i=!1;function s(a){if(a=Gn(a),a){const o=$.findKey(n,a);o&&(!r||ws(n,n[o],o,r))&&(delete n[o],i=!0)}}return $.isArray(e)?e.forEach(s):s(e),i}clear(e){const r=Object.keys(this);let n=r.length,i=!1;for(;n--;){const s=r[n];(!e||ws(this,this[s],s,e,!0))&&(delete this[s],i=!0)}return i}normalize(e){const r=this,n={};return $.forEach(this,(i,s)=>{const a=$.findKey(n,s);if(a){r[a]=ri(i),delete r[s];return}const o=e?H2(s):String(s).trim();o!==s&&delete r[s],r[o]=ri(i),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const r=Object.create(null);return $.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=e&&$.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,r])=>e+": "+r).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...r){const n=new this(e);return r.forEach(i=>n.set(i)),n}static accessor(e){const n=(this[Il]=this[Il]={accessors:{}}).accessors,i=this.prototype;function s(a){const o=Gn(a);n[o]||(q2(i,a),n[o]=!0)}return $.isArray(e)?e.forEach(s):s(e),this}}Ki.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);$.reduceDescriptors(Ki.prototype,({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(n){this[r]=n}}});$.freezeMethods(Ki);const ir=Ki;function xs(t,e){const r=this||ro,n=e||r,i=ir.from(n.headers);let s=n.data;return $.forEach(t,function(o){s=o.call(r,s,i.normalize(),e?e.status:void 0)}),i.normalize(),s}function g1(t){return!!(t&&t.__CANCEL__)}function Pn(t,e,r){Ne.call(this,t??"canceled",Ne.ERR_CANCELED,e,r),this.name="CanceledError"}$.inherits(Pn,Ne,{__CANCEL__:!0});function v1(t,e,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?t(r):e(new Ne("Request failed with status code "+r.status,[Ne.ERR_BAD_REQUEST,Ne.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}function j2(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function U2(t,e){t=t||10;const r=new Array(t),n=new Array(t);let i=0,s=0,a;return e=e!==void 0?e:1e3,function(l){const c=Date.now(),d=n[s];a||(a=c),r[i]=l,n[i]=c;let f=s,p=0;for(;f!==i;)p+=r[f++],f=f%t;if(i=(i+1)%t,i===s&&(s=(s+1)%t),c-a{r=d,i=null,s&&(clearTimeout(s),s=null),t(...c)};return[(...c)=>{const d=Date.now(),f=d-r;f>=n?a(c,d):(i=c,s||(s=setTimeout(()=>{s=null,a(i)},n-f)))},()=>i&&a(i)]}const xi=(t,e,r=3)=>{let n=0;const i=U2(50,250);return V2(s=>{const a=s.loaded,o=s.lengthComputable?s.total:void 0,l=a-n,c=i(l),d=a<=o;n=a;const f={loaded:a,total:o,progress:o?a/o:void 0,bytes:l,rate:c||void 0,estimated:c&&o&&d?(o-a)/c:void 0,event:s,lengthComputable:o!=null,[e?"download":"upload"]:!0};t(f)},r)},_l=(t,e)=>{const r=t!=null;return[n=>e[0]({lengthComputable:r,total:t,loaded:n}),e[1]]},Ol=t=>(...e)=>$.asap(()=>t(...e)),W2=kt.hasStandardBrowserEnv?((t,e)=>r=>(r=new URL(r,kt.origin),t.protocol===r.protocol&&t.host===r.host&&(e||t.port===r.port)))(new URL(kt.origin),kt.navigator&&/(msie|trident)/i.test(kt.navigator.userAgent)):()=>!0,G2=kt.hasStandardBrowserEnv?{write(t,e,r,n,i,s){const a=[t+"="+encodeURIComponent(e)];$.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),$.isString(n)&&a.push("path="+n),$.isString(i)&&a.push("domain="+i),s===!0&&a.push("secure"),document.cookie=a.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function K2(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Y2(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function b1(t,e,r){let n=!K2(e);return t&&(n||r==!1)?Y2(t,e):e}const Ll=t=>t instanceof ir?{...t}:t;function mn(t,e){e=e||{};const r={};function n(c,d,f,p){return $.isPlainObject(c)&&$.isPlainObject(d)?$.merge.call({caseless:p},c,d):$.isPlainObject(d)?$.merge({},d):$.isArray(d)?d.slice():d}function i(c,d,f,p){if($.isUndefined(d)){if(!$.isUndefined(c))return n(void 0,c,f,p)}else return n(c,d,f,p)}function s(c,d){if(!$.isUndefined(d))return n(void 0,d)}function a(c,d){if($.isUndefined(d)){if(!$.isUndefined(c))return n(void 0,c)}else return n(void 0,d)}function o(c,d,f){if(f in e)return n(c,d);if(f in t)return n(void 0,c)}const l={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:o,headers:(c,d,f)=>i(Ll(c),Ll(d),f,!0)};return $.forEach(Object.keys({...t,...e}),function(d){const f=l[d]||i,p=f(t[d],e[d],d);$.isUndefined(p)&&f!==o||(r[d]=p)}),r}const y1=t=>{const e=mn({},t);let{data:r,withXSRFToken:n,xsrfHeaderName:i,xsrfCookieName:s,headers:a,auth:o}=e;e.headers=a=ir.from(a),e.url=f1(b1(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),o&&a.set("Authorization","Basic "+btoa((o.username||"")+":"+(o.password?unescape(encodeURIComponent(o.password)):"")));let l;if($.isFormData(r)){if(kt.hasStandardBrowserEnv||kt.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if((l=a.getContentType())!==!1){const[c,...d]=l?l.split(";").map(f=>f.trim()).filter(Boolean):[];a.setContentType([c||"multipart/form-data",...d].join("; "))}}if(kt.hasStandardBrowserEnv&&(n&&$.isFunction(n)&&(n=n(e)),n||n!==!1&&W2(e.url))){const c=i&&s&&G2.read(s);c&&a.set(i,c)}return e},X2=typeof XMLHttpRequest<"u",Z2=X2&&function(t){return new Promise(function(r,n){const i=y1(t);let s=i.data;const a=ir.from(i.headers).normalize();let{responseType:o,onUploadProgress:l,onDownloadProgress:c}=i,d,f,p,b,v;function k(){b&&b(),v&&v(),i.cancelToken&&i.cancelToken.unsubscribe(d),i.signal&&i.signal.removeEventListener("abort",d)}let w=new XMLHttpRequest;w.open(i.method.toUpperCase(),i.url,!0),w.timeout=i.timeout;function M(){if(!w)return;const A=ir.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),_={data:!o||o==="text"||o==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:A,config:t,request:w};v1(function(z){r(z),k()},function(z){n(z),k()},_),w=null}"onloadend"in w?w.onloadend=M:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(M)},w.onabort=function(){w&&(n(new Ne("Request aborted",Ne.ECONNABORTED,t,w)),w=null)},w.onerror=function(){n(new Ne("Network Error",Ne.ERR_NETWORK,t,w)),w=null},w.ontimeout=function(){let N=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const _=i.transitional||p1;i.timeoutErrorMessage&&(N=i.timeoutErrorMessage),n(new Ne(N,_.clarifyTimeoutError?Ne.ETIMEDOUT:Ne.ECONNABORTED,t,w)),w=null},s===void 0&&a.setContentType(null),"setRequestHeader"in w&&$.forEach(a.toJSON(),function(N,_){w.setRequestHeader(_,N)}),$.isUndefined(i.withCredentials)||(w.withCredentials=!!i.withCredentials),o&&o!=="json"&&(w.responseType=i.responseType),c&&([p,v]=xi(c,!0),w.addEventListener("progress",p)),l&&w.upload&&([f,b]=xi(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",b)),(i.cancelToken||i.signal)&&(d=A=>{w&&(n(!A||A.type?new Pn(null,t,w):A),w.abort(),w=null)},i.cancelToken&&i.cancelToken.subscribe(d),i.signal&&(i.signal.aborted?d():i.signal.addEventListener("abort",d)));const x=j2(i.url);if(x&&kt.protocols.indexOf(x)===-1){n(new Ne("Unsupported protocol "+x+":",Ne.ERR_BAD_REQUEST,t));return}w.send(s||null)})},J2=(t,e)=>{const{length:r}=t=t?t.filter(Boolean):[];if(e||r){let n=new AbortController,i;const s=function(c){if(!i){i=!0,o();const d=c instanceof Error?c:this.reason;n.abort(d instanceof Ne?d:new Pn(d instanceof Error?d.message:d))}};let a=e&&setTimeout(()=>{a=null,s(new Ne(`timeout ${e} of ms exceeded`,Ne.ETIMEDOUT))},e);const o=()=>{t&&(a&&clearTimeout(a),a=null,t.forEach(c=>{c.unsubscribe?c.unsubscribe(s):c.removeEventListener("abort",s)}),t=null)};t.forEach(c=>c.addEventListener("abort",s));const{signal:l}=n;return l.unsubscribe=()=>$.asap(o),l}},Q2=J2,e3=function*(t,e){let r=t.byteLength;if(!e||r{const i=t3(t,e);let s=0,a,o=l=>{a||(a=!0,n&&n(l))};return new ReadableStream({async pull(l){try{const{done:c,value:d}=await i.next();if(c){o(),l.close();return}let f=d.byteLength;if(r){let p=s+=f;r(p)}l.enqueue(new Uint8Array(d))}catch(c){throw o(c),c}},cancel(l){return o(l),i.return()}},{highWaterMark:2})},Yi=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",w1=Yi&&typeof ReadableStream=="function",n3=Yi&&(typeof TextEncoder=="function"?(t=>e=>t.encode(e))(new TextEncoder):async t=>new Uint8Array(await new Response(t).arrayBuffer())),x1=(t,...e)=>{try{return!!t(...e)}catch{return!1}},i3=w1&&x1(()=>{let t=!1;const e=new Request(kt.origin,{body:new ReadableStream,method:"POST",get duplex(){return t=!0,"half"}}).headers.has("Content-Type");return t&&!e}),Fl=64*1024,sa=w1&&x1(()=>$.isReadableStream(new Response("").body)),ki={stream:sa&&(t=>t.body)};Yi&&(t=>{["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!ki[e]&&(ki[e]=$.isFunction(t[e])?r=>r[e]():(r,n)=>{throw new Ne(`Response type '${e}' is not supported`,Ne.ERR_NOT_SUPPORT,n)})})})(new Response);const s3=async t=>{if(t==null)return 0;if($.isBlob(t))return t.size;if($.isSpecCompliantForm(t))return(await new Request(kt.origin,{method:"POST",body:t}).arrayBuffer()).byteLength;if($.isArrayBufferView(t)||$.isArrayBuffer(t))return t.byteLength;if($.isURLSearchParams(t)&&(t=t+""),$.isString(t))return(await n3(t)).byteLength},a3=async(t,e)=>{const r=$.toFiniteNumber(t.getContentLength());return r??s3(e)},o3=Yi&&(async t=>{let{url:e,method:r,data:n,signal:i,cancelToken:s,timeout:a,onDownloadProgress:o,onUploadProgress:l,responseType:c,headers:d,withCredentials:f="same-origin",fetchOptions:p}=y1(t);c=c?(c+"").toLowerCase():"text";let b=Q2([i,s&&s.toAbortSignal()],a),v;const k=b&&b.unsubscribe&&(()=>{b.unsubscribe()});let w;try{if(l&&i3&&r!=="get"&&r!=="head"&&(w=await a3(d,n))!==0){let _=new Request(e,{method:"POST",body:n,duplex:"half"}),O;if($.isFormData(n)&&(O=_.headers.get("content-type"))&&d.setContentType(O),_.body){const[z,Y]=_l(w,xi(Ol(l)));n=zl(_.body,Fl,z,Y)}}$.isString(f)||(f=f?"include":"omit");const M="credentials"in Request.prototype;v=new Request(e,{...p,signal:b,method:r.toUpperCase(),headers:d.normalize().toJSON(),body:n,duplex:"half",credentials:M?f:void 0});let x=await fetch(v,p);const A=sa&&(c==="stream"||c==="response");if(sa&&(o||A&&k)){const _={};["status","statusText","headers"].forEach(W=>{_[W]=x[W]});const O=$.toFiniteNumber(x.headers.get("content-length")),[z,Y]=o&&_l(O,xi(Ol(o),!0))||[];x=new Response(zl(x.body,Fl,z,()=>{Y&&Y(),k&&k()}),_)}c=c||"text";let N=await ki[$.findKey(ki,c)||"text"](x,t);return!A&&k&&k(),await new Promise((_,O)=>{v1(_,O,{data:N,headers:ir.from(x.headers),status:x.status,statusText:x.statusText,config:t,request:v})})}catch(M){throw k&&k(),M&&M.name==="TypeError"&&/Load failed|fetch/i.test(M.message)?Object.assign(new Ne("Network Error",Ne.ERR_NETWORK,t,v),{cause:M.cause||M}):Ne.from(M,M&&M.code,t,v)}}),aa={http:w2,xhr:Z2,fetch:o3};$.forEach(aa,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const $l=t=>`- ${t}`,l3=t=>$.isFunction(t)||t===null||t===!1,k1={getAdapter:t=>{t=$.isArray(t)?t:[t];const{length:e}=t;let r,n;const i={};for(let s=0;s`adapter ${o} `+(l===!1?"is not supported by the environment":"is not available in the build"));let a=e?s.length>1?`since : -`+s.map($l).join(` -`):" "+$l(s[0]):"as no adapter specified";throw new Ne("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return n},adapters:aa};function ks(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Pn(null,t)}function Bl(t){return ks(t),t.headers=ir.from(t.headers),t.data=xs.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),k1.getAdapter(t.adapter||ro.adapter)(t).then(function(n){return ks(t),n.data=xs.call(t,t.transformResponse,n),n.headers=ir.from(n.headers),n},function(n){return g1(n)||(ks(t),n&&n.response&&(n.response.data=xs.call(t,t.transformResponse,n.response),n.response.headers=ir.from(n.response.headers))),Promise.reject(n)})}const S1="1.11.0",Xi={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Xi[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const Pl={};Xi.transitional=function(e,r,n){function i(s,a){return"[Axios v"+S1+"] Transitional option '"+s+"'"+a+(n?". "+n:"")}return(s,a,o)=>{if(e===!1)throw new Ne(i(a," has been removed"+(r?" in "+r:"")),Ne.ERR_DEPRECATED);return r&&!Pl[a]&&(Pl[a]=!0,console.warn(i(a," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(s,a,o):!0}};Xi.spelling=function(e){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function c3(t,e,r){if(typeof t!="object")throw new Ne("options must be an object",Ne.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let i=n.length;for(;i-- >0;){const s=n[i],a=e[s];if(a){const o=t[s],l=o===void 0||a(o,s,t);if(l!==!0)throw new Ne("option "+s+" must be "+l,Ne.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new Ne("Unknown option "+s,Ne.ERR_BAD_OPTION)}}const ni={assertOptions:c3,validators:Xi},lr=ni.validators;class Si{constructor(e){this.defaults=e||{},this.interceptors={request:new Rl,response:new Rl}}async request(e,r){try{return await this._request(e,r)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const s=i.stack?i.stack.replace(/^.+\n/,""):"";try{n.stack?s&&!String(n.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(n.stack+=` -`+s):n.stack=s}catch{}}throw n}}_request(e,r){typeof e=="string"?(r=r||{},r.url=e):r=e||{},r=mn(this.defaults,r);const{transitional:n,paramsSerializer:i,headers:s}=r;n!==void 0&&ni.assertOptions(n,{silentJSONParsing:lr.transitional(lr.boolean),forcedJSONParsing:lr.transitional(lr.boolean),clarifyTimeoutError:lr.transitional(lr.boolean)},!1),i!=null&&($.isFunction(i)?r.paramsSerializer={serialize:i}:ni.assertOptions(i,{encode:lr.function,serialize:lr.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),ni.assertOptions(r,{baseUrl:lr.spelling("baseURL"),withXsrfToken:lr.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let a=s&&$.merge(s.common,s[r.method]);s&&$.forEach(["delete","get","head","post","put","patch","common"],v=>{delete s[v]}),r.headers=ir.concat(a,s);const o=[];let l=!0;this.interceptors.request.forEach(function(k){typeof k.runWhen=="function"&&k.runWhen(r)===!1||(l=l&&k.synchronous,o.unshift(k.fulfilled,k.rejected))});const c=[];this.interceptors.response.forEach(function(k){c.push(k.fulfilled,k.rejected)});let d,f=0,p;if(!l){const v=[Bl.bind(this),void 0];for(v.unshift(...o),v.push(...c),p=v.length,d=Promise.resolve(r);f{if(!n._listeners)return;let s=n._listeners.length;for(;s-- >0;)n._listeners[s](i);n._listeners=null}),this.promise.then=i=>{let s;const a=new Promise(o=>{n.subscribe(o),s=o}).then(i);return a.cancel=function(){n.unsubscribe(s)},a},e(function(s,a,o){n.reason||(n.reason=new Pn(s,a,o),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const e=new AbortController,r=n=>{e.abort(n)};return this.subscribe(r),e.signal.unsubscribe=()=>this.unsubscribe(r),e.signal}static source(){let e;return{token:new no(function(i){e=i}),cancel:e}}}const u3=no;function d3(t){return function(r){return t.apply(null,r)}}function h3(t){return $.isObject(t)&&t.isAxiosError===!0}const oa={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(oa).forEach(([t,e])=>{oa[e]=t});const f3=oa;function T1(t){const e=new ii(t),r=t1(ii.prototype.request,e);return $.extend(r,ii.prototype,e,{allOwnKeys:!0}),$.extend(r,e,null,{allOwnKeys:!0}),r.create=function(i){return T1(mn(t,i))},r}const ht=T1(ro);ht.Axios=ii;ht.CanceledError=Pn;ht.CancelToken=u3;ht.isCancel=g1;ht.VERSION=S1;ht.toFormData=Gi;ht.AxiosError=Ne;ht.Cancel=ht.CanceledError;ht.all=function(e){return Promise.all(e)};ht.spread=d3;ht.isAxiosError=h3;ht.mergeConfig=mn;ht.AxiosHeaders=ir;ht.formToJSON=t=>m1($.isHTMLForm(t)?new FormData(t):t);ht.getAdapter=k1.getAdapter;ht.HttpStatusCode=f3;ht.default=ht;const p3=ht,m3="http://127.0.0.1:8000/api",Sn=p3.create({baseURL:m3,timeout:1e4,headers:{"Content-Type":"application/json"}}),nt={createMindmap:(t="思维导图",e=null)=>Sn.post("/mindMaps",{title:t,data:e}),getMindmap:t=>Sn.get(`/mindMaps/${t}`),getAllMindmaps:()=>Sn.get("/mindmaps"),addNodes:(t,e)=>Sn.post("/mindMaps/addNodes",{mindMapId:t,nodes:e}),updateNode:(t,e)=>Sn.patch("/mindMaps/updateNode",{id:t,...e}),deleteNodes:t=>Sn.delete("/mindMaps/deleteNodes",{data:{nodeIds:t}})};function io(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var bn=io();function A1(t){bn=t}var o0={exec:()=>null};function je(t,e=""){let r=typeof t=="string"?t:t.source,n={replace:(i,s)=>{let a=typeof s=="string"?s:s.source;return a=a.replace(Mt.caret,"$1"),r=r.replace(i,a),n},getRegex:()=>new RegExp(r,e)};return n}var Mt={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i")},g3=/^(?:[ \t]*(?:\n|$))+/,v3=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,b3=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,S0=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,y3=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,so=/(?:[*+-]|\d{1,9}[.)])/,E1=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,C1=je(E1).replace(/bull/g,so).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),w3=je(E1).replace(/bull/g,so).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),ao=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,x3=/^[^\n]+/,oo=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,k3=je(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",oo).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),S3=je(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,so).getRegex(),Zi="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",lo=/|$))/,T3=je("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",lo).replace("tag",Zi).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),M1=je(ao).replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Zi).getRegex(),A3=je(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",M1).getRegex(),co={blockquote:A3,code:v3,def:k3,fences:b3,heading:y3,hr:S0,html:T3,lheading:C1,list:S3,newline:g3,paragraph:M1,table:o0,text:x3},Hl=je("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Zi).getRegex(),E3={...co,lheading:w3,table:Hl,paragraph:je(ao).replace("hr",S0).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",Hl).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",Zi).getRegex()},C3={...co,html:je(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",lo).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:o0,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:je(ao).replace("hr",S0).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",C1).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},M3=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,N3=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,N1=/^( {2,}|\\)\n(?!\s*$)/,D3=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,I1=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,L3=je(I1,"u").replace(/punct/g,Ji).getRegex(),z3=je(I1,"u").replace(/punct/g,R1).getRegex(),_1="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",F3=je(_1,"gu").replace(/notPunctSpace/g,D1).replace(/punctSpace/g,uo).replace(/punct/g,Ji).getRegex(),$3=je(_1,"gu").replace(/notPunctSpace/g,_3).replace(/punctSpace/g,I3).replace(/punct/g,R1).getRegex(),B3=je("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,D1).replace(/punctSpace/g,uo).replace(/punct/g,Ji).getRegex(),P3=je(/\\(punct)/,"gu").replace(/punct/g,Ji).getRegex(),H3=je(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),q3=je(lo).replace("(?:-->|$)","-->").getRegex(),j3=je("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",q3).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Ti=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,U3=je(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Ti).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),O1=je(/^!?\[(label)\]\[(ref)\]/).replace("label",Ti).replace("ref",oo).getRegex(),L1=je(/^!?\[(ref)\](?:\[\])?/).replace("ref",oo).getRegex(),V3=je("reflink|nolink(?!\\()","g").replace("reflink",O1).replace("nolink",L1).getRegex(),ho={_backpedal:o0,anyPunctuation:P3,autolink:H3,blockSkip:O3,br:N1,code:N3,del:o0,emStrongLDelim:L3,emStrongRDelimAst:F3,emStrongRDelimUnd:B3,escape:M3,link:U3,nolink:L1,punctuation:R3,reflink:O1,reflinkSearch:V3,tag:j3,text:D3,url:o0},W3={...ho,link:je(/^!?\[(label)\]\((.*?)\)/).replace("label",Ti).getRegex(),reflink:je(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",Ti).getRegex()},la={...ho,emStrongRDelimAst:$3,emStrongLDelim:z3,url:je(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},ql=t=>K3[t];function cr(t,e){if(e){if(Mt.escapeTest.test(t))return t.replace(Mt.escapeReplace,ql)}else if(Mt.escapeTestNoEncode.test(t))return t.replace(Mt.escapeReplaceNoEncode,ql);return t}function jl(t){try{t=encodeURI(t).replace(Mt.percentDecode,"%")}catch{return null}return t}function Ul(t,e){var s;let r=t.replace(Mt.findPipe,(a,o,l)=>{let c=!1,d=o;for(;--d>=0&&l[d]==="\\";)c=!c;return c?"|":" |"}),n=r.split(Mt.splitPipe),i=0;if(n[0].trim()||n.shift(),n.length>0&&!((s=n.at(-1))!=null&&s.trim())&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function Vl(t,e,r,n,i){let s=e.href,a=e.title||null,o=t[1].replace(i.other.outputLinkReplace,"$1");n.state.inLink=!0;let l={type:t[0].charAt(0)==="!"?"image":"link",raw:r,href:s,title:a,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,l}function X3(t,e,r){let n=t.match(r.other.indentCodeCompensation);if(n===null)return e;let i=n[1];return e.split(` -`).map(s=>{let a=s.match(r.other.beginningSpace);if(a===null)return s;let[o]=a;return o.length>=i.length?s.slice(i.length):s}).join(` -`)}var Ai=class{constructor(t){Ge(this,"options");Ge(this,"rules");Ge(this,"lexer");this.options=t||bn}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let r=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?r:Yn(r,` -`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let r=e[0],n=X3(r,e[3]||"",this.rules);return{type:"code",raw:r,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:n}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let r=e[2].trim();if(this.rules.other.endingHash.test(r)){let n=Yn(r,"#");(this.options.pedantic||!n||this.rules.other.endingSpaceChar.test(n))&&(r=n.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:Yn(e[0],` -`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let r=Yn(e[0],` -`).split(` -`),n="",i="",s=[];for(;r.length>0;){let a=!1,o=[],l;for(l=0;l1,i={type:"list",raw:"",ordered:n,start:n?+r.slice(0,-1):"",loose:!1,items:[]};r=n?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=n?r:"[*+-]");let s=this.rules.other.listItemRegex(r),a=!1;for(;t;){let l=!1,c="",d="";if(!(e=s.exec(t))||this.rules.block.hr.test(t))break;c=e[0],t=t.substring(c.length);let f=e[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,M=>" ".repeat(3*M.length)),p=t.split(` -`,1)[0],b=!f.trim(),v=0;if(this.options.pedantic?(v=2,d=f.trimStart()):b?v=e[1].length+1:(v=e[2].search(this.rules.other.nonSpaceChar),v=v>4?1:v,d=f.slice(v),v+=e[1].length),b&&this.rules.other.blankLine.test(p)&&(c+=p+` -`,t=t.substring(p.length+1),l=!0),!l){let M=this.rules.other.nextBulletRegex(v),x=this.rules.other.hrRegex(v),A=this.rules.other.fencesBeginRegex(v),N=this.rules.other.headingBeginRegex(v),_=this.rules.other.htmlBeginRegex(v);for(;t;){let O=t.split(` -`,1)[0],z;if(p=O,this.options.pedantic?(p=p.replace(this.rules.other.listReplaceNesting," "),z=p):z=p.replace(this.rules.other.tabCharGlobal," "),A.test(p)||N.test(p)||_.test(p)||M.test(p)||x.test(p))break;if(z.search(this.rules.other.nonSpaceChar)>=v||!p.trim())d+=` -`+z.slice(v);else{if(b||f.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||A.test(f)||N.test(f)||x.test(f))break;d+=` -`+p}!b&&!p.trim()&&(b=!0),c+=O+` -`,t=t.substring(O.length+1),f=z.slice(v)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(a=!0));let k=null,w;this.options.gfm&&(k=this.rules.other.listIsTask.exec(d),k&&(w=k[0]!=="[ ] ",d=d.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:c,task:!!k,checked:w,loose:!1,text:d,tokens:[]}),i.raw+=c}let o=i.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l=0;lf.type==="space"),d=c.length>0&&c.some(f=>this.rules.other.anyLine.test(f.raw));i.loose=d}if(i.loose)for(let l=0;l({text:l,tokens:this.lexer.inline(l),header:!1,align:s.align[c]})));return s}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let r=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:r,tokens:this.lexer.inline(r)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let r=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(r)){if(!this.rules.other.endAngleBracket.test(r))return;let s=Yn(r.slice(0,-1),"\\");if((r.length-s.length)%2===0)return}else{let s=Y3(e[2],"()");if(s===-2)return;if(s>-1){let a=(e[0].indexOf("!")===0?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,a).trim(),e[3]=""}}let n=e[2],i="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(n);s&&(n=s[1],i=s[3])}else i=e[3]?e[3].slice(1,-1):"";return n=n.trim(),this.rules.other.startAngleBracket.test(n)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(r)?n=n.slice(1):n=n.slice(1,-1)),Vl(e,{href:n&&n.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let r;if((r=this.rules.inline.reflink.exec(t))||(r=this.rules.inline.nolink.exec(t))){let n=(r[2]||r[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=e[n.toLowerCase()];if(!i){let s=r[0].charAt(0);return{type:"text",raw:s,text:s}}return Vl(r,i,r[0],this.lexer,this.rules)}}emStrong(t,e,r=""){let n=this.rules.inline.emStrongLDelim.exec(t);if(!(!n||n[3]&&r.match(this.rules.other.unicodeAlphaNumeric))&&(!(n[1]||n[2])||!r||this.rules.inline.punctuation.exec(r))){let i=[...n[0]].length-1,s,a,o=i,l=0,c=n[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*t.length+i);(n=c.exec(e))!=null;){if(s=n[1]||n[2]||n[3]||n[4]||n[5]||n[6],!s)continue;if(a=[...s].length,n[3]||n[4]){o+=a;continue}else if((n[5]||n[6])&&i%3&&!((i+a)%3)){l+=a;continue}if(o-=a,o>0)continue;a=Math.min(a,a+o+l);let d=[...n[0]][0].length,f=t.slice(0,i+n.index+d+a);if(Math.min(i,a)%2){let b=f.slice(1,-1);return{type:"em",raw:f,text:b,tokens:this.lexer.inlineTokens(b)}}let p=f.slice(2,-2);return{type:"strong",raw:f,text:p,tokens:this.lexer.inlineTokens(p)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let r=e[2].replace(this.rules.other.newLineCharGlobal," "),n=this.rules.other.nonSpaceChar.test(r),i=this.rules.other.startingSpaceChar.test(r)&&this.rules.other.endingSpaceChar.test(r);return n&&i&&(r=r.substring(1,r.length-1)),{type:"codespan",raw:e[0],text:r}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t){let e=this.rules.inline.del.exec(t);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let r,n;return e[2]==="@"?(r=e[1],n="mailto:"+r):(r=e[1],n=r),{type:"link",raw:e[0],text:r,href:n,tokens:[{type:"text",raw:r,text:r}]}}}url(t){var r;let e;if(e=this.rules.inline.url.exec(t)){let n,i;if(e[2]==="@")n=e[0],i="mailto:"+n;else{let s;do s=e[0],e[0]=((r=this.rules.inline._backpedal.exec(e[0]))==null?void 0:r[0])??"";while(s!==e[0]);n=e[0],e[1]==="www."?i="http://"+e[0]:i=e[0]}return{type:"link",raw:e[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let r=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:r}}}},Cr=class ca{constructor(e){Ge(this,"tokens");Ge(this,"options");Ge(this,"state");Ge(this,"tokenizer");Ge(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||bn,this.options.tokenizer=this.options.tokenizer||new Ai,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let r={other:Mt,block:$0.normal,inline:Kn.normal};this.options.pedantic?(r.block=$0.pedantic,r.inline=Kn.pedantic):this.options.gfm&&(r.block=$0.gfm,this.options.breaks?r.inline=Kn.breaks:r.inline=Kn.gfm),this.tokenizer.rules=r}static get rules(){return{block:$0,inline:Kn}}static lex(e,r){return new ca(r).lex(e)}static lexInline(e,r){return new ca(r).inlineTokens(e)}lex(e){e=e.replace(Mt.carriageReturn,` -`),this.blockTokens(e,this.tokens);for(let r=0;r(o=c.call({lexer:this},e,r))?(e=e.substring(o.raw.length),r.push(o),!0):!1))continue;if(o=this.tokenizer.space(e)){e=e.substring(o.raw.length);let c=r.at(-1);o.raw.length===1&&c!==void 0?c.raw+=` -`:r.push(o);continue}if(o=this.tokenizer.code(e)){e=e.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` -`)?"":` -`)+o.raw,c.text+=` -`+o.text,this.inlineQueue.at(-1).src=c.text):r.push(o);continue}if(o=this.tokenizer.fences(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.heading(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.hr(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.blockquote(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.list(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.html(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.def(e)){e=e.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="paragraph"||(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` -`)?"":` -`)+o.raw,c.text+=` -`+o.raw,this.inlineQueue.at(-1).src=c.text):this.tokens.links[o.tag]||(this.tokens.links[o.tag]={href:o.href,title:o.title},r.push(o));continue}if(o=this.tokenizer.table(e)){e=e.substring(o.raw.length),r.push(o);continue}if(o=this.tokenizer.lheading(e)){e=e.substring(o.raw.length),r.push(o);continue}let l=e;if((a=this.options.extensions)!=null&&a.startBlock){let c=1/0,d=e.slice(1),f;this.options.extensions.startBlock.forEach(p=>{f=p.call({lexer:this},d),typeof f=="number"&&f>=0&&(c=Math.min(c,f))}),c<1/0&&c>=0&&(l=e.substring(0,c+1))}if(this.state.top&&(o=this.tokenizer.paragraph(l))){let c=r.at(-1);n&&(c==null?void 0:c.type)==="paragraph"?(c.raw+=(c.raw.endsWith(` -`)?"":` -`)+o.raw,c.text+=` -`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(o),n=l.length!==e.length,e=e.substring(o.raw.length);continue}if(o=this.tokenizer.text(e)){e=e.substring(o.raw.length);let c=r.at(-1);(c==null?void 0:c.type)==="text"?(c.raw+=(c.raw.endsWith(` -`)?"":` -`)+o.raw,c.text+=` -`+o.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=c.text):r.push(o);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,r}inline(e,r=[]){return this.inlineQueue.push({src:e,tokens:r}),r}inlineTokens(e,r=[]){var o,l,c;let n=e,i=null;if(this.tokens.links){let d=Object.keys(this.tokens.links);if(d.length>0)for(;(i=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)d.includes(i[0].slice(i[0].lastIndexOf("[")+1,-1))&&(n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(i=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,i.index)+"++"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(i=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)n=n.slice(0,i.index)+"["+"a".repeat(i[0].length-2)+"]"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let s=!1,a="";for(;e;){s||(a=""),s=!1;let d;if((l=(o=this.options.extensions)==null?void 0:o.inline)!=null&&l.some(p=>(d=p.call({lexer:this},e,r))?(e=e.substring(d.raw.length),r.push(d),!0):!1))continue;if(d=this.tokenizer.escape(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.tag(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.link(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(d.raw.length);let p=r.at(-1);d.type==="text"&&(p==null?void 0:p.type)==="text"?(p.raw+=d.raw,p.text+=d.text):r.push(d);continue}if(d=this.tokenizer.emStrong(e,n,a)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.codespan(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.br(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.del(e)){e=e.substring(d.raw.length),r.push(d);continue}if(d=this.tokenizer.autolink(e)){e=e.substring(d.raw.length),r.push(d);continue}if(!this.state.inLink&&(d=this.tokenizer.url(e))){e=e.substring(d.raw.length),r.push(d);continue}let f=e;if((c=this.options.extensions)!=null&&c.startInline){let p=1/0,b=e.slice(1),v;this.options.extensions.startInline.forEach(k=>{v=k.call({lexer:this},b),typeof v=="number"&&v>=0&&(p=Math.min(p,v))}),p<1/0&&p>=0&&(f=e.substring(0,p+1))}if(d=this.tokenizer.inlineText(f)){e=e.substring(d.raw.length),d.raw.slice(-1)!=="_"&&(a=d.raw.slice(-1)),s=!0;let p=r.at(-1);(p==null?void 0:p.type)==="text"?(p.raw+=d.raw,p.text+=d.text):r.push(d);continue}if(e){let p="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return r}},Ei=class{constructor(t){Ge(this,"options");Ge(this,"parser");this.options=t||bn}space(t){return""}code({text:t,lang:e,escaped:r}){var s;let n=(s=(e||"").match(Mt.notSpaceStart))==null?void 0:s[0],i=t.replace(Mt.endingNewline,"")+` -`;return n?'
    '+(r?i:cr(i,!0))+`
    -`:"
    "+(r?i:cr(i,!0))+`
    -`}blockquote({tokens:t}){return`
    -${this.parser.parse(t)}
    -`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`${this.parser.parseInline(t)} -`}hr(t){return`
    -`}list(t){let e=t.ordered,r=t.start,n="";for(let a=0;a -`+n+" -`}listitem(t){var r;let e="";if(t.task){let n=this.checkbox({checked:!!t.checked});t.loose?((r=t.tokens[0])==null?void 0:r.type)==="paragraph"?(t.tokens[0].text=n+" "+t.tokens[0].text,t.tokens[0].tokens&&t.tokens[0].tokens.length>0&&t.tokens[0].tokens[0].type==="text"&&(t.tokens[0].tokens[0].text=n+" "+cr(t.tokens[0].tokens[0].text),t.tokens[0].tokens[0].escaped=!0)):t.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):e+=n+" "}return e+=this.parser.parse(t.tokens,!!t.loose),`
  • ${e}
  • -`}checkbox({checked:t}){return"'}paragraph({tokens:t}){return`

    ${this.parser.parseInline(t)}

    -`}table(t){let e="",r="";for(let i=0;i${n}`),`
    - -`+e+` -`+n+`
    -`}tablerow({text:t}){return` -${t} -`}tablecell(t){let e=this.parser.parseInline(t.tokens),r=t.header?"th":"td";return(t.align?`<${r} align="${t.align}">`:`<${r}>`)+e+` -`}strong({tokens:t}){return`${this.parser.parseInline(t)}`}em({tokens:t}){return`${this.parser.parseInline(t)}`}codespan({text:t}){return`${cr(t,!0)}`}br(t){return"
    "}del({tokens:t}){return`${this.parser.parseInline(t)}`}link({href:t,title:e,tokens:r}){let n=this.parser.parseInline(r),i=jl(t);if(i===null)return n;t=i;let s='
    ",s}image({href:t,title:e,text:r,tokens:n}){n&&(r=this.parser.parseInline(n,this.parser.textRenderer));let i=jl(t);if(i===null)return cr(r);t=i;let s=`${r}{let l=a[o].flat(1/0);r=r.concat(this.walkTokens(l,e))}):a.tokens&&(r=r.concat(this.walkTokens(a.tokens,e)))}}return r}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(r=>{let n={...r};if(n.async=this.defaults.async||n.async||!1,r.extensions&&(r.extensions.forEach(i=>{if(!i.name)throw new Error("extension name required");if("renderer"in i){let s=e.renderers[i.name];s?e.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:e.renderers[i.name]=i.renderer}if("tokenizer"in i){if(!i.level||i.level!=="block"&&i.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=e[i.level];s?s.unshift(i.tokenizer):e[i.level]=[i.tokenizer],i.start&&(i.level==="block"?e.startBlock?e.startBlock.push(i.start):e.startBlock=[i.start]:i.level==="inline"&&(e.startInline?e.startInline.push(i.start):e.startInline=[i.start]))}"childTokens"in i&&i.childTokens&&(e.childTokens[i.name]=i.childTokens)}),n.extensions=e),r.renderer){let i=this.defaults.renderer||new Ei(this.defaults);for(let s in r.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let a=s,o=r.renderer[a],l=i[a];i[a]=(...c)=>{let d=o.apply(i,c);return d===!1&&(d=l.apply(i,c)),d||""}}n.renderer=i}if(r.tokenizer){let i=this.defaults.tokenizer||new Ai(this.defaults);for(let s in r.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let a=s,o=r.tokenizer[a],l=i[a];i[a]=(...c)=>{let d=o.apply(i,c);return d===!1&&(d=l.apply(i,c)),d}}n.tokenizer=i}if(r.hooks){let i=this.defaults.hooks||new si;for(let s in r.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let a=s,o=r.hooks[a],l=i[a];si.passThroughHooks.has(s)?i[a]=c=>{if(this.defaults.async)return Promise.resolve(o.call(i,c)).then(f=>l.call(i,f));let d=o.call(i,c);return l.call(i,d)}:i[a]=(...c)=>{let d=o.apply(i,c);return d===!1&&(d=l.apply(i,c)),d}}n.hooks=i}if(r.walkTokens){let i=this.defaults.walkTokens,s=r.walkTokens;n.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...n}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return Cr.lex(t,e??this.defaults)}parser(t,e){return Mr.parse(t,e??this.defaults)}parseMarkdown(t){return(e,r)=>{let n={...r},i={...this.defaults,...n},s=this.onError(!!i.silent,!!i.async);if(this.defaults.async===!0&&n.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=t);let a=i.hooks?i.hooks.provideLexer():t?Cr.lex:Cr.lexInline,o=i.hooks?i.hooks.provideParser():t?Mr.parse:Mr.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(e):e).then(l=>a(l,i)).then(l=>i.hooks?i.hooks.processAllTokens(l):l).then(l=>i.walkTokens?Promise.all(this.walkTokens(l,i.walkTokens)).then(()=>l):l).then(l=>o(l,i)).then(l=>i.hooks?i.hooks.postprocess(l):l).catch(s);try{i.hooks&&(e=i.hooks.preprocess(e));let l=a(e,i);i.hooks&&(l=i.hooks.processAllTokens(l)),i.walkTokens&&this.walkTokens(l,i.walkTokens);let c=o(l,i);return i.hooks&&(c=i.hooks.postprocess(c)),c}catch(l){return s(l)}}}onError(t,e){return r=>{if(r.message+=` -Please report this to https://github.com/markedjs/marked.`,t){let n="

    An error occurred:

    "+cr(r.message+"",!0)+"
    ";return e?Promise.resolve(n):n}if(e)return Promise.reject(r);throw r}}},gn=new Z3;function qe(t,e){return gn.parse(t,e)}qe.options=qe.setOptions=function(t){return gn.setOptions(t),qe.defaults=gn.defaults,A1(qe.defaults),qe};qe.getDefaults=io;qe.defaults=bn;qe.use=function(...t){return gn.use(...t),qe.defaults=gn.defaults,A1(qe.defaults),qe};qe.walkTokens=function(t,e){return gn.walkTokens(t,e)};qe.parseInline=gn.parseInline;qe.Parser=Mr;qe.parser=Mr.parse;qe.Renderer=Ei;qe.TextRenderer=fo;qe.Lexer=Cr;qe.lexer=Cr.lex;qe.Tokenizer=Ai;qe.Hooks=si;qe.parse=qe;qe.options;qe.setOptions;qe.use;qe.walkTokens;qe.parseInline;Mr.parse;Cr.lex;var Wl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function J3(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function b8(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var r=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};r.prototype=e.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(t).forEach(function(n){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}),r}var z1={exports:{}};(function(t){var e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT - * @author Lea Verou - * @namespace - * @public - */var r=function(n){var i=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,s=0,a={},o={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function x(A){return A instanceof l?new l(A.type,x(A.content),A.alias):Array.isArray(A)?A.map(x):A.replace(/&/g,"&").replace(/"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT"&&1<2)return document.currentScript;try{throw new Error}catch(_){var x=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(_.stack)||[])[1];if(x){var A=document.getElementsByTagName("script");for(var N in A)if(A[N].src==x)return A[N]}return null}},isActive:function(x,A,N){for(var _="no-"+A;x;){var O=x.classList;if(O.contains(A))return!0;if(O.contains(_))return!1;x=x.parentElement}return!!N}},languages:{plain:a,plaintext:a,text:a,txt:a,extend:function(x,A){var N=o.util.clone(o.languages[x]);for(var _ in A)N[_]=A[_];return N},insertBefore:function(x,A,N,_){_=_||o.languages;var O=_[x],z={};for(var Y in O)if(O.hasOwnProperty(Y)){if(Y==A)for(var W in N)N.hasOwnProperty(W)&&(z[W]=N[W]);N.hasOwnProperty(Y)||(z[Y]=O[Y])}var he=_[x];return _[x]=z,o.languages.DFS(o.languages,function(pe,Ae){Ae===he&&pe!=x&&(this[pe]=z)}),z},DFS:function x(A,N,_,O){O=O||{};var z=o.util.objId;for(var Y in A)if(A.hasOwnProperty(Y)){N.call(A,Y,A[Y],_||Y);var W=A[Y],he=o.util.type(W);he==="Object"&&!O[z(W)]?(O[z(W)]=!0,x(W,N,null,O)):he==="Array"&&!O[z(W)]&&(O[z(W)]=!0,x(W,N,Y,O))}}},plugins:{},highlightAll:function(x,A){o.highlightAllUnder(document,x,A)},highlightAllUnder:function(x,A,N){var _={callback:N,container:x,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};o.hooks.run("before-highlightall",_),_.elements=Array.prototype.slice.apply(_.container.querySelectorAll(_.selector)),o.hooks.run("before-all-elements-highlight",_);for(var O=0,z;z=_.elements[O++];)o.highlightElement(z,A===!0,_.callback)},highlightElement:function(x,A,N){var _=o.util.getLanguage(x),O=o.languages[_];o.util.setLanguage(x,_);var z=x.parentElement;z&&z.nodeName.toLowerCase()==="pre"&&o.util.setLanguage(z,_);var Y=x.textContent,W={element:x,language:_,grammar:O,code:Y};function he(Ae){W.highlightedCode=Ae,o.hooks.run("before-insert",W),W.element.innerHTML=W.highlightedCode,o.hooks.run("after-highlight",W),o.hooks.run("complete",W),N&&N.call(W.element)}if(o.hooks.run("before-sanity-check",W),z=W.element.parentElement,z&&z.nodeName.toLowerCase()==="pre"&&!z.hasAttribute("tabindex")&&z.setAttribute("tabindex","0"),!W.code){o.hooks.run("complete",W),N&&N.call(W.element);return}if(o.hooks.run("before-highlight",W),!W.grammar){he(o.util.encode(W.code));return}if(A&&n.Worker){var pe=new Worker(o.filename);pe.onmessage=function(Ae){he(Ae.data)},pe.postMessage(JSON.stringify({language:W.language,code:W.code,immediateClose:!0}))}else he(o.highlight(W.code,W.grammar,W.language))},highlight:function(x,A,N){var _={code:x,grammar:A,language:N};if(o.hooks.run("before-tokenize",_),!_.grammar)throw new Error('The language "'+_.language+'" has no grammar.');return _.tokens=o.tokenize(_.code,_.grammar),o.hooks.run("after-tokenize",_),l.stringify(o.util.encode(_.tokens),_.language)},tokenize:function(x,A){var N=A.rest;if(N){for(var _ in N)A[_]=N[_];delete A.rest}var O=new f;return p(O,O.head,x),d(x,O,A,O.head,0),v(O)},hooks:{all:{},add:function(x,A){var N=o.hooks.all;N[x]=N[x]||[],N[x].push(A)},run:function(x,A){var N=o.hooks.all[x];if(!(!N||!N.length))for(var _=0,O;O=N[_++];)O(A)}},Token:l};n.Prism=o;function l(x,A,N,_){this.type=x,this.content=A,this.alias=N,this.length=(_||"").length|0}l.stringify=function x(A,N){if(typeof A=="string")return A;if(Array.isArray(A)){var _="";return A.forEach(function(he){_+=x(he,N)}),_}var O={type:A.type,content:x(A.content,N),tag:"span",classes:["token",A.type],attributes:{},language:N},z=A.alias;z&&(Array.isArray(z)?Array.prototype.push.apply(O.classes,z):O.classes.push(z)),o.hooks.run("wrap",O);var Y="";for(var W in O.attributes)Y+=" "+W+'="'+(O.attributes[W]||"").replace(/"/g,""")+'"';return"<"+O.tag+' class="'+O.classes.join(" ")+'"'+Y+">"+O.content+""};function c(x,A,N,_){x.lastIndex=A;var O=x.exec(N);if(O&&_&&O[1]){var z=O[1].length;O.index+=z,O[0]=O[0].slice(z)}return O}function d(x,A,N,_,O,z){for(var Y in N)if(!(!N.hasOwnProperty(Y)||!N[Y])){var W=N[Y];W=Array.isArray(W)?W:[W];for(var he=0;he=z.reach);Ee+=ve.value.length,ve=ve.next){var rt=ve.value;if(A.length>x.length)return;if(!(rt instanceof l)){var Ve=1,Ie;if(Ze){if(Ie=c(Oe,Ee,x,st),!Ie||Ie.index>=x.length)break;var G=Ie.index,Rt=Ie.index+Ie[0].length,pt=Ee;for(pt+=ve.value.length;G>=pt;)ve=ve.next,pt+=ve.value.length;if(pt-=ve.value.length,Ee=pt,ve.value instanceof l)continue;for(var j=ve;j!==A.tail&&(ptz.reach&&(z.reach=me);var de=ve.prev;se&&(de=p(A,de,se),Ee+=se.length),b(A,de,Ve);var Ue=new l(Y,Ae?o.tokenize(te,Ae):te,tt,te);if(ve=p(A,de,Ue),Ce&&p(A,ve,Ce),Ve>1){var S={cause:Y+","+he,reach:me};d(x,A,N,ve.prev,Ee,S),z&&S.reach>z.reach&&(z.reach=S.reach)}}}}}}function f(){var x={value:null,prev:null,next:null},A={value:null,prev:x,next:null};x.next=A,this.head=x,this.tail=A,this.length=0}function p(x,A,N){var _=A.next,O={value:N,prev:A,next:_};return A.next=O,_.prev=O,x.length++,O}function b(x,A,N){for(var _=A.next,O=0;O/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},r.languages.markup.tag.inside["attr-value"].inside.entity=r.languages.markup.entity,r.languages.markup.doctype.inside["internal-subset"].inside=r.languages.markup,r.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&/,"&"))}),Object.defineProperty(r.languages.markup.tag,"addInlined",{value:function(i,s){var a={};a["language-"+s]={pattern:/(^$)/i,lookbehind:!0,inside:r.languages[s]},a.cdata=/^$/i;var o={"included-cdata":{pattern://i,inside:a}};o["language-"+s]={pattern:/[\s\S]+/,inside:r.languages[s]};var l={};l[i]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,function(){return i}),"i"),lookbehind:!0,greedy:!0,inside:o},r.languages.insertBefore("markup","cdata",l)}}),Object.defineProperty(r.languages.markup.tag,"addAttribute",{value:function(n,i){r.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[i,"language-"+i],inside:r.languages[i]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),r.languages.html=r.languages.markup,r.languages.mathml=r.languages.markup,r.languages.svg=r.languages.markup,r.languages.xml=r.languages.extend("markup",{}),r.languages.ssml=r.languages.xml,r.languages.atom=r.languages.xml,r.languages.rss=r.languages.xml,function(n){var i=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+i.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+i.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+i.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+i.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:i,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var s=n.languages.markup;s&&(s.tag.addInlined("style","css"),s.tag.addAttribute("style","css"))}(r),r.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},r.languages.javascript=r.languages.extend("clike",{"class-name":[r.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),r.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,r.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:r.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:r.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:r.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:r.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:r.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),r.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:r.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),r.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),r.languages.markup&&(r.languages.markup.tag.addInlined("script","javascript"),r.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),r.languages.js=r.languages.javascript,function(){if(typeof r>"u"||typeof document>"u")return;Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);var n="Loading…",i=function(k,w){return"✖ Error "+k+" while fetching file: "+w},s="✖ Error: File does not exist or is empty",a={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"},o="data-src-status",l="loading",c="loaded",d="failed",f="pre[data-src]:not(["+o+'="'+c+'"]):not(['+o+'="'+l+'"])';function p(k,w,M){var x=new XMLHttpRequest;x.open("GET",k,!0),x.onreadystatechange=function(){x.readyState==4&&(x.status<400&&x.responseText?w(x.responseText):x.status>=400?M(i(x.status,x.statusText)):M(s))},x.send(null)}function b(k){var w=/^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(k||"");if(w){var M=Number(w[1]),x=w[2],A=w[3];return x?A?[M,Number(A)]:[M,void 0]:[M,M]}}r.hooks.add("before-highlightall",function(k){k.selector+=", "+f}),r.hooks.add("before-sanity-check",function(k){var w=k.element;if(w.matches(f)){k.code="",w.setAttribute(o,l);var M=w.appendChild(document.createElement("CODE"));M.textContent=n;var x=w.getAttribute("data-src"),A=k.language;if(A==="none"){var N=(/\.(\w+)$/.exec(x)||[,"none"])[1];A=a[N]||N}r.util.setLanguage(M,A),r.util.setLanguage(w,A);var _=r.plugins.autoloader;_&&_.loadLanguages(A),p(x,function(O){w.setAttribute(o,c);var z=b(w.getAttribute("data-range"));if(z){var Y=O.split(/\r\n?|\n/g),W=z[0],he=z[1]==null?Y.length:z[1];W<0&&(W+=Y.length),W=Math.max(0,Math.min(W-1,Y.length)),he<0&&(he+=Y.length),he=Math.max(0,Math.min(he,Y.length)),O=Y.slice(W,he).join(` -`),w.hasAttribute("data-start")||w.setAttribute("data-start",String(W+1))}M.textContent=O,r.highlightElement(M)},function(O){w.setAttribute(o,d),M.textContent=O})}}),r.plugins.fileHighlight={highlight:function(w){for(var M=(w||document).querySelectorAll(f),x=0,A;A=M[x++];)r.highlightElement(A)}};var v=!1;r.fileHighlight=function(){v||(console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead."),v=!0),r.plugins.fileHighlight.highlight.apply(this,arguments)}}()})(z1);var Q3=z1.exports;const Gl=J3(Q3);class $t{constructor(e,r,n){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=r,this.end=n}static range(e,r){return r?!e||!e.loc||!r.loc||e.loc.lexer!==r.loc.lexer?null:new $t(e.loc.lexer,e.loc.start,r.loc.end):e&&e.loc}}class Yt{constructor(e,r){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=r}range(e,r){return new Yt(r,$t.range(this,e))}}class ee{constructor(e,r){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var n="KaTeX parse error: "+e,i,s,a=r&&r.loc;if(a&&a.start<=a.end){var o=a.lexer.input;i=a.start,s=a.end,i===o.length?n+=" at end of input: ":n+=" at position "+(i+1)+": ";var l=o.slice(i,s).replace(/[^]/g,"$&̲"),c;i>15?c="…"+o.slice(i-15,i):c=o.slice(0,i);var d;s+15":">","<":"<",'"':""","'":"'"},s6=/[&><"']/g;function a6(t){return String(t).replace(s6,e=>i6[e])}var F1=function t(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?t(e.body[0]):e:e.type==="font"?t(e.body):e},o6=function(e){var r=F1(e);return r.type==="mathord"||r.type==="textord"||r.type==="atom"},l6=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},c6=function(e){var r=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return r?r[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(r[1])?null:r[1].toLowerCase():"_relative"},ye={contains:e6,deflt:t6,escape:a6,hyphenate:n6,getBaseElem:F1,isCharacterBox:o6,protocolFromUrl:c6},ai={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:t=>"#"+t},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(t,e)=>(e.push(t),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:t=>Math.max(0,t),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:t=>Math.max(0,t),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:t=>Math.max(0,t),cli:"-e, --max-expand ",cliProcessor:t=>t==="Infinity"?1/0:parseInt(t)},globalGroup:{type:"boolean",cli:!1}};function u6(t){if(t.default)return t.default;var e=t.type,r=Array.isArray(e)?e[0]:e;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class po{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var r in ai)if(ai.hasOwnProperty(r)){var n=ai[r];this[r]=e[r]!==void 0?n.processor?n.processor(e[r]):e[r]:u6(n)}}reportNonstrict(e,r,n){var i=this.strict;if(typeof i=="function"&&(i=i(e,r,n)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new ee("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+e+"]"),n);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]"))}}useStrictBehavior(e,r,n){var i=this.strict;if(typeof i=="function")try{i=i(e,r,n)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+e+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+r+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var r=ye.protocolFromUrl(e.url);if(r==null)return!1;e.protocol=r}var n=typeof this.trust=="function"?this.trust(e):this.trust;return!!n}}class Pr{constructor(e,r,n){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=r,this.cramped=n}sup(){return hr[d6[this.id]]}sub(){return hr[h6[this.id]]}fracNum(){return hr[f6[this.id]]}fracDen(){return hr[p6[this.id]]}cramp(){return hr[m6[this.id]]}text(){return hr[g6[this.id]]}isTight(){return this.size>=2}}var mo=0,Ci=1,On=2,Nr=3,m0=4,Wt=5,Fn=6,Nt=7,hr=[new Pr(mo,0,!1),new Pr(Ci,0,!0),new Pr(On,1,!1),new Pr(Nr,1,!0),new Pr(m0,2,!1),new Pr(Wt,2,!0),new Pr(Fn,3,!1),new Pr(Nt,3,!0)],d6=[m0,Wt,m0,Wt,Fn,Nt,Fn,Nt],h6=[Wt,Wt,Wt,Wt,Nt,Nt,Nt,Nt],f6=[On,Nr,m0,Wt,Fn,Nt,Fn,Nt],p6=[Nr,Nr,Wt,Wt,Nt,Nt,Nt,Nt],m6=[Ci,Ci,Nr,Nr,Wt,Wt,Nt,Nt],g6=[mo,Ci,On,Nr,On,Nr,On,Nr],xe={DISPLAY:hr[mo],TEXT:hr[On],SCRIPT:hr[m0],SCRIPTSCRIPT:hr[Fn]},da=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function v6(t){for(var e=0;e=i[0]&&t<=i[1])return r.name}return null}var oi=[];da.forEach(t=>t.blocks.forEach(e=>oi.push(...e)));function $1(t){for(var e=0;e=oi[e]&&t<=oi[e+1])return!0;return!1}var Tn=80,b6=function(e,r){return"M95,"+(622+e+r)+` -c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 -c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 -c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 -s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 -c69,-144,104.5,-217.7,106.5,-221 -l`+e/2.075+" -"+e+` -c5.3,-9.3,12,-14,20,-14 -H400000v`+(40+e)+`H845.2724 -s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 -c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z -M`+(834+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},y6=function(e,r){return"M263,"+(601+e+r)+`c0.7,0,18,39.7,52,119 -c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 -c340,-704.7,510.7,-1060.3,512,-1067 -l`+e/2.084+" -"+e+` -c4.7,-7.3,11,-11,19,-11 -H40000v`+(40+e)+`H1012.3 -s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 -c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 -s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 -c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z -M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},w6=function(e,r){return"M983 "+(10+e+r)+` -l`+e/3.13+" -"+e+` -c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` -H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 -s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 -c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 -c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 -c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 -c53.7,-170.3,84.5,-266.8,92.5,-289.5z -M`+(1001+e)+" "+r+"h400000v"+(40+e)+"h-400000z"},x6=function(e,r){return"M424,"+(2398+e+r)+` -c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 -c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 -s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 -s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 -l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 -v`+(40+e)+`H1014.6 -s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 -c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+r+` -h400000v`+(40+e)+"h-400000z"},k6=function(e,r){return"M473,"+(2713+e+r)+` -c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` -c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 -s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 -c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 -s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, -606zM`+(1001+e)+" "+r+"h400000v"+(40+e)+"H1017.7z"},S6=function(e){var r=e/2;return"M400000 "+e+" H0 L"+r+" 0 l65 45 L145 "+(e-80)+" H400000z"},T6=function(e,r,n){var i=n-54-r-e;return"M702 "+(e+r)+"H400000"+(40+e)+` -H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 -h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 -c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 -219 661 l218 661zM702 `+r+"H400000v"+(40+e)+"H742z"},A6=function(e,r,n){r=1e3*r;var i="";switch(e){case"sqrtMain":i=b6(r,Tn);break;case"sqrtSize1":i=y6(r,Tn);break;case"sqrtSize2":i=w6(r,Tn);break;case"sqrtSize3":i=x6(r,Tn);break;case"sqrtSize4":i=k6(r,Tn);break;case"sqrtTall":i=T6(r,Tn,n)}return i},E6=function(e,r){switch(e){case"⎜":return"M291 0 H417 V"+r+" H291z M291 0 H417 V"+r+" H291z";case"∣":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z";case"∥":return"M145 0 H188 V"+r+" H145z M145 0 H188 V"+r+" H145z"+("M367 0 H410 V"+r+" H367z M367 0 H410 V"+r+" H367z");case"⎟":return"M457 0 H583 V"+r+" H457z M457 0 H583 V"+r+" H457z";case"⎢":return"M319 0 H403 V"+r+" H319z M319 0 H403 V"+r+" H319z";case"⎥":return"M263 0 H347 V"+r+" H263z M263 0 H347 V"+r+" H263z";case"⎪":return"M384 0 H504 V"+r+" H384z M384 0 H504 V"+r+" H384z";case"⏐":return"M312 0 H355 V"+r+" H312z M312 0 H355 V"+r+" H312z";case"‖":return"M257 0 H300 V"+r+" H257z M257 0 H300 V"+r+" H257z"+("M478 0 H521 V"+r+" H478z M478 0 H521 V"+r+" H478z");default:return""}},Kl={doubleleftarrow:`M262 157 -l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 - 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 - 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 -c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 - 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 --86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 --2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z -m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l --10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 - 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 --33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 --17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 --13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 -c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 --107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 - 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 --5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 -c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 - 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 - 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 - l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 --45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 - 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 - 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 - 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 --331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 -H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 - 435 0h399565z`,leftgroupunder:`M400000 262 -H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 - 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 --3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 --18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 --196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 - 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 --4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 --10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z -m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 - 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 - 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 --152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 - 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 --2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 -v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 --83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 --68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 - 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z -M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z -M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 --.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 -c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 - 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z -M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 -c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 --53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 - 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 - 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 -c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 - 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 - 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 --5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 --320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z -m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 -60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 --451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z -m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 -c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 --480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z -m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 -85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 --707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z -m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 -c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 --16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 - 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 - 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 --40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 - 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l --6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 -s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 -c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 - 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 --174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 - 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 - 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 --3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 --10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 - 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 --18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 - 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z -m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 - 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 --7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 --27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 - 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 - 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 --64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z -m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 - 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 --13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 - 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z -M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 - 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 --52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 --167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 - 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 --70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 --40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 --37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 - 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 -c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 - 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 - 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 --19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 - 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 --2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 - 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 - 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 --68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 --8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 - 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 -c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 - 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 --11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 - 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 - 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 - -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 --11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 - 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 - 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 - -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 -3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 -10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 --1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 --7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 -H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 -c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 -c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 --11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, --5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, --11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 -c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 -c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 -s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 -121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 -s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 -c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z -M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 --27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 -13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 --84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 --119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 --12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 -151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 -c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 -c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 -c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z -M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 -c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, -1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, --152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z -M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 -c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, --231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 -c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},C6=function(e,r){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v1759 h347 v-84 -H403z M403 1759 V0 H319 V1759 v`+r+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v1759 H0 v84 H347z -M347 1759 V0 H263 V1759 v`+r+" v1759 h84z";case"vert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+" v585 h43z";case"doublevert":return"M145 15 v585 v"+r+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+r+` v585 h43z -M367 15 v585 v`+r+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-r+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+r+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+r+` v1715 h263 v84 H319z -MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+r+` v1799 H0 v-84 H319z -MM319 602 V0 H403 V602 v`+r+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+r+` v602 h84z -M403 1759 V0 H319 V1759 v`+r+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+r+` v602 h84z -M347 1759 V0 h-84 V1759 v`+r+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 -c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, --36,557 l0,`+(r+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, -949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 -c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, --544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 -l0,-`+(r+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, --210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, -63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 -c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(r+9)+` -c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 -c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 -c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 -c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 -l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, --470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class T0{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return ye.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),r=0;rr.toText();return this.children.map(e).join("")}}var fr={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},B0={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Yl={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function M6(t,e){fr[t]=e}function go(t,e,r){if(!fr[e])throw new Error("Font metrics not found for font: "+e+".");var n=t.charCodeAt(0),i=fr[e][n];if(!i&&t[0]in Yl&&(n=Yl[t[0]].charCodeAt(0),i=fr[e][n]),!i&&r==="text"&&$1(n)&&(i=fr[e][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}var Ss={};function N6(t){var e;if(t>=5?e=0:t>=3?e=1:e=2,!Ss[e]){var r=Ss[e]={cssEmPerMu:B0.quad[e]/18};for(var n in B0)B0.hasOwnProperty(n)&&(r[n]=B0[n][e])}return Ss[e]}var D6=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Xl=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Zl=function(e,r){return r.size<2?e:D6[e-1][r.size-1]};class Tr{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||Tr.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=Xl[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return new Tr(r)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Zl(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:Xl[e-1]})}havingBaseStyle(e){e=e||this.style.text();var r=Zl(Tr.BASESIZE,e);return this.size===r&&this.textSize===Tr.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==Tr.BASESIZE?["sizing","reset-size"+this.size,"size"+Tr.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=N6(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}Tr.BASESIZE=6;var ha={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},R6={ex:!0,em:!0,mu:!0},B1=function(e){return typeof e!="string"&&(e=e.unit),e in ha||e in R6||e==="ex"},ot=function(e,r){var n;if(e.unit in ha)n=ha[e.unit]/r.fontMetrics().ptPerEm/r.sizeMultiplier;else if(e.unit==="mu")n=r.fontMetrics().cssEmPerMu;else{var i;if(r.style.isTight()?i=r.havingStyle(r.style.text()):i=r,e.unit==="ex")n=i.fontMetrics().xHeight;else if(e.unit==="em")n=i.fontMetrics().quad;else throw new ee("Invalid unit: '"+e.unit+"'");i!==r&&(n*=i.sizeMultiplier/r.sizeMultiplier)}return Math.min(e.number*n,r.maxSize)},ae=function(e){return+e.toFixed(4)+"em"},Yr=function(e){return e.filter(r=>r).join(" ")},P1=function(e,r,n){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=n||{},r){r.style.isTight()&&this.classes.push("mtight");var i=r.getColor();i&&(this.style.color=i)}},H1=function(e){var r=document.createElement(e);r.className=Yr(this.classes);for(var n in this.style)this.style.hasOwnProperty(n)&&(r.style[n]=this.style[n]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&r.setAttribute(i,this.attributes[i]);for(var s=0;s/=\x00-\x1f]/,q1=function(e){var r="<"+e;this.classes.length&&(r+=' class="'+ye.escape(Yr(this.classes))+'"');var n="";for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=ye.hyphenate(i)+":"+this.style[i]+";");n&&(r+=' style="'+ye.escape(n)+'"');for(var s in this.attributes)if(this.attributes.hasOwnProperty(s)){if(I6.test(s))throw new ee("Invalid attribute name '"+s+"'");r+=" "+s+'="'+ye.escape(this.attributes[s])+'"'}r+=">";for(var a=0;a",r};class A0{constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,P1.call(this,e,n,i),this.children=r||[]}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return ye.contains(this.classes,e)}toNode(){return H1.call(this,"span")}toMarkup(){return q1.call(this,"span")}}class vo{constructor(e,r,n,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,P1.call(this,r,i),this.children=n||[],this.setAttribute("href",e)}setAttribute(e,r){this.attributes[e]=r}hasClass(e){return ye.contains(this.classes,e)}toNode(){return H1.call(this,"a")}toMarkup(){return q1.call(this,"a")}}class _6{constructor(e,r,n){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=r,this.src=e,this.classes=["mord"],this.style=n}hasClass(e){return ye.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var r in this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);return e}toMarkup(){var e=''+ye.escape(this.alt)+'0&&(r=document.createElement("span"),r.style.marginRight=ae(this.italic)),this.classes.length>0&&(r=r||document.createElement("span"),r.className=Yr(this.classes));for(var n in this.style)this.style.hasOwnProperty(n)&&(r=r||document.createElement("span"),r.style[n]=this.style[n]);return r?(r.appendChild(e),r):e}toMarkup(){var e=!1,r="0&&(n+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(n+=ye.hyphenate(i)+":"+this.style[i]+";");n&&(e=!0,r+=' style="'+ye.escape(n)+'"');var s=ye.escape(this.text);return e?(r+=">",r+=s,r+="",r):s}}class _r{constructor(e,r){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=r||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"svg");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);for(var i=0;i':''}}class fa{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",r=document.createElementNS(e,"line");for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&r.setAttribute(n,this.attributes[n]);return r}toMarkup(){var e=" but got "+String(t)+".")}var z6={bin:1,close:1,inner:1,open:1,punct:1,rel:1},F6={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},Qe={math:{},text:{}};function u(t,e,r,n,i,s){Qe[t][i]={font:e,group:r,replace:n},s&&n&&(Qe[t][n]=Qe[t][i])}var h="math",X="text",m="main",T="ams",it="accent-token",ce="bin",Dt="close",Hn="inner",we="mathord",ft="op-token",Ut="open",Qi="punct",C="rel",Fr="spacing",R="textord";u(h,m,C,"≡","\\equiv",!0);u(h,m,C,"≺","\\prec",!0);u(h,m,C,"≻","\\succ",!0);u(h,m,C,"∼","\\sim",!0);u(h,m,C,"⊥","\\perp");u(h,m,C,"⪯","\\preceq",!0);u(h,m,C,"⪰","\\succeq",!0);u(h,m,C,"≃","\\simeq",!0);u(h,m,C,"∣","\\mid",!0);u(h,m,C,"≪","\\ll",!0);u(h,m,C,"≫","\\gg",!0);u(h,m,C,"≍","\\asymp",!0);u(h,m,C,"∥","\\parallel");u(h,m,C,"⋈","\\bowtie",!0);u(h,m,C,"⌣","\\smile",!0);u(h,m,C,"⊑","\\sqsubseteq",!0);u(h,m,C,"⊒","\\sqsupseteq",!0);u(h,m,C,"≐","\\doteq",!0);u(h,m,C,"⌢","\\frown",!0);u(h,m,C,"∋","\\ni",!0);u(h,m,C,"∝","\\propto",!0);u(h,m,C,"⊢","\\vdash",!0);u(h,m,C,"⊣","\\dashv",!0);u(h,m,C,"∋","\\owns");u(h,m,Qi,".","\\ldotp");u(h,m,Qi,"⋅","\\cdotp");u(h,m,R,"#","\\#");u(X,m,R,"#","\\#");u(h,m,R,"&","\\&");u(X,m,R,"&","\\&");u(h,m,R,"ℵ","\\aleph",!0);u(h,m,R,"∀","\\forall",!0);u(h,m,R,"ℏ","\\hbar",!0);u(h,m,R,"∃","\\exists",!0);u(h,m,R,"∇","\\nabla",!0);u(h,m,R,"♭","\\flat",!0);u(h,m,R,"ℓ","\\ell",!0);u(h,m,R,"♮","\\natural",!0);u(h,m,R,"♣","\\clubsuit",!0);u(h,m,R,"℘","\\wp",!0);u(h,m,R,"♯","\\sharp",!0);u(h,m,R,"♢","\\diamondsuit",!0);u(h,m,R,"ℜ","\\Re",!0);u(h,m,R,"♡","\\heartsuit",!0);u(h,m,R,"ℑ","\\Im",!0);u(h,m,R,"♠","\\spadesuit",!0);u(h,m,R,"§","\\S",!0);u(X,m,R,"§","\\S");u(h,m,R,"¶","\\P",!0);u(X,m,R,"¶","\\P");u(h,m,R,"†","\\dag");u(X,m,R,"†","\\dag");u(X,m,R,"†","\\textdagger");u(h,m,R,"‡","\\ddag");u(X,m,R,"‡","\\ddag");u(X,m,R,"‡","\\textdaggerdbl");u(h,m,Dt,"⎱","\\rmoustache",!0);u(h,m,Ut,"⎰","\\lmoustache",!0);u(h,m,Dt,"⟯","\\rgroup",!0);u(h,m,Ut,"⟮","\\lgroup",!0);u(h,m,ce,"∓","\\mp",!0);u(h,m,ce,"⊖","\\ominus",!0);u(h,m,ce,"⊎","\\uplus",!0);u(h,m,ce,"⊓","\\sqcap",!0);u(h,m,ce,"∗","\\ast");u(h,m,ce,"⊔","\\sqcup",!0);u(h,m,ce,"◯","\\bigcirc",!0);u(h,m,ce,"∙","\\bullet",!0);u(h,m,ce,"‡","\\ddagger");u(h,m,ce,"≀","\\wr",!0);u(h,m,ce,"⨿","\\amalg");u(h,m,ce,"&","\\And");u(h,m,C,"⟵","\\longleftarrow",!0);u(h,m,C,"⇐","\\Leftarrow",!0);u(h,m,C,"⟸","\\Longleftarrow",!0);u(h,m,C,"⟶","\\longrightarrow",!0);u(h,m,C,"⇒","\\Rightarrow",!0);u(h,m,C,"⟹","\\Longrightarrow",!0);u(h,m,C,"↔","\\leftrightarrow",!0);u(h,m,C,"⟷","\\longleftrightarrow",!0);u(h,m,C,"⇔","\\Leftrightarrow",!0);u(h,m,C,"⟺","\\Longleftrightarrow",!0);u(h,m,C,"↦","\\mapsto",!0);u(h,m,C,"⟼","\\longmapsto",!0);u(h,m,C,"↗","\\nearrow",!0);u(h,m,C,"↩","\\hookleftarrow",!0);u(h,m,C,"↪","\\hookrightarrow",!0);u(h,m,C,"↘","\\searrow",!0);u(h,m,C,"↼","\\leftharpoonup",!0);u(h,m,C,"⇀","\\rightharpoonup",!0);u(h,m,C,"↙","\\swarrow",!0);u(h,m,C,"↽","\\leftharpoondown",!0);u(h,m,C,"⇁","\\rightharpoondown",!0);u(h,m,C,"↖","\\nwarrow",!0);u(h,m,C,"⇌","\\rightleftharpoons",!0);u(h,T,C,"≮","\\nless",!0);u(h,T,C,"","\\@nleqslant");u(h,T,C,"","\\@nleqq");u(h,T,C,"⪇","\\lneq",!0);u(h,T,C,"≨","\\lneqq",!0);u(h,T,C,"","\\@lvertneqq");u(h,T,C,"⋦","\\lnsim",!0);u(h,T,C,"⪉","\\lnapprox",!0);u(h,T,C,"⊀","\\nprec",!0);u(h,T,C,"⋠","\\npreceq",!0);u(h,T,C,"⋨","\\precnsim",!0);u(h,T,C,"⪹","\\precnapprox",!0);u(h,T,C,"≁","\\nsim",!0);u(h,T,C,"","\\@nshortmid");u(h,T,C,"∤","\\nmid",!0);u(h,T,C,"⊬","\\nvdash",!0);u(h,T,C,"⊭","\\nvDash",!0);u(h,T,C,"⋪","\\ntriangleleft");u(h,T,C,"⋬","\\ntrianglelefteq",!0);u(h,T,C,"⊊","\\subsetneq",!0);u(h,T,C,"","\\@varsubsetneq");u(h,T,C,"⫋","\\subsetneqq",!0);u(h,T,C,"","\\@varsubsetneqq");u(h,T,C,"≯","\\ngtr",!0);u(h,T,C,"","\\@ngeqslant");u(h,T,C,"","\\@ngeqq");u(h,T,C,"⪈","\\gneq",!0);u(h,T,C,"≩","\\gneqq",!0);u(h,T,C,"","\\@gvertneqq");u(h,T,C,"⋧","\\gnsim",!0);u(h,T,C,"⪊","\\gnapprox",!0);u(h,T,C,"⊁","\\nsucc",!0);u(h,T,C,"⋡","\\nsucceq",!0);u(h,T,C,"⋩","\\succnsim",!0);u(h,T,C,"⪺","\\succnapprox",!0);u(h,T,C,"≆","\\ncong",!0);u(h,T,C,"","\\@nshortparallel");u(h,T,C,"∦","\\nparallel",!0);u(h,T,C,"⊯","\\nVDash",!0);u(h,T,C,"⋫","\\ntriangleright");u(h,T,C,"⋭","\\ntrianglerighteq",!0);u(h,T,C,"","\\@nsupseteqq");u(h,T,C,"⊋","\\supsetneq",!0);u(h,T,C,"","\\@varsupsetneq");u(h,T,C,"⫌","\\supsetneqq",!0);u(h,T,C,"","\\@varsupsetneqq");u(h,T,C,"⊮","\\nVdash",!0);u(h,T,C,"⪵","\\precneqq",!0);u(h,T,C,"⪶","\\succneqq",!0);u(h,T,C,"","\\@nsubseteqq");u(h,T,ce,"⊴","\\unlhd");u(h,T,ce,"⊵","\\unrhd");u(h,T,C,"↚","\\nleftarrow",!0);u(h,T,C,"↛","\\nrightarrow",!0);u(h,T,C,"⇍","\\nLeftarrow",!0);u(h,T,C,"⇏","\\nRightarrow",!0);u(h,T,C,"↮","\\nleftrightarrow",!0);u(h,T,C,"⇎","\\nLeftrightarrow",!0);u(h,T,C,"△","\\vartriangle");u(h,T,R,"ℏ","\\hslash");u(h,T,R,"▽","\\triangledown");u(h,T,R,"◊","\\lozenge");u(h,T,R,"Ⓢ","\\circledS");u(h,T,R,"®","\\circledR");u(X,T,R,"®","\\circledR");u(h,T,R,"∡","\\measuredangle",!0);u(h,T,R,"∄","\\nexists");u(h,T,R,"℧","\\mho");u(h,T,R,"Ⅎ","\\Finv",!0);u(h,T,R,"⅁","\\Game",!0);u(h,T,R,"‵","\\backprime");u(h,T,R,"▲","\\blacktriangle");u(h,T,R,"▼","\\blacktriangledown");u(h,T,R,"■","\\blacksquare");u(h,T,R,"⧫","\\blacklozenge");u(h,T,R,"★","\\bigstar");u(h,T,R,"∢","\\sphericalangle",!0);u(h,T,R,"∁","\\complement",!0);u(h,T,R,"ð","\\eth",!0);u(X,m,R,"ð","ð");u(h,T,R,"╱","\\diagup");u(h,T,R,"╲","\\diagdown");u(h,T,R,"□","\\square");u(h,T,R,"□","\\Box");u(h,T,R,"◊","\\Diamond");u(h,T,R,"¥","\\yen",!0);u(X,T,R,"¥","\\yen",!0);u(h,T,R,"✓","\\checkmark",!0);u(X,T,R,"✓","\\checkmark");u(h,T,R,"ℶ","\\beth",!0);u(h,T,R,"ℸ","\\daleth",!0);u(h,T,R,"ℷ","\\gimel",!0);u(h,T,R,"ϝ","\\digamma",!0);u(h,T,R,"ϰ","\\varkappa");u(h,T,Ut,"┌","\\@ulcorner",!0);u(h,T,Dt,"┐","\\@urcorner",!0);u(h,T,Ut,"└","\\@llcorner",!0);u(h,T,Dt,"┘","\\@lrcorner",!0);u(h,T,C,"≦","\\leqq",!0);u(h,T,C,"⩽","\\leqslant",!0);u(h,T,C,"⪕","\\eqslantless",!0);u(h,T,C,"≲","\\lesssim",!0);u(h,T,C,"⪅","\\lessapprox",!0);u(h,T,C,"≊","\\approxeq",!0);u(h,T,ce,"⋖","\\lessdot");u(h,T,C,"⋘","\\lll",!0);u(h,T,C,"≶","\\lessgtr",!0);u(h,T,C,"⋚","\\lesseqgtr",!0);u(h,T,C,"⪋","\\lesseqqgtr",!0);u(h,T,C,"≑","\\doteqdot");u(h,T,C,"≓","\\risingdotseq",!0);u(h,T,C,"≒","\\fallingdotseq",!0);u(h,T,C,"∽","\\backsim",!0);u(h,T,C,"⋍","\\backsimeq",!0);u(h,T,C,"⫅","\\subseteqq",!0);u(h,T,C,"⋐","\\Subset",!0);u(h,T,C,"⊏","\\sqsubset",!0);u(h,T,C,"≼","\\preccurlyeq",!0);u(h,T,C,"⋞","\\curlyeqprec",!0);u(h,T,C,"≾","\\precsim",!0);u(h,T,C,"⪷","\\precapprox",!0);u(h,T,C,"⊲","\\vartriangleleft");u(h,T,C,"⊴","\\trianglelefteq");u(h,T,C,"⊨","\\vDash",!0);u(h,T,C,"⊪","\\Vvdash",!0);u(h,T,C,"⌣","\\smallsmile");u(h,T,C,"⌢","\\smallfrown");u(h,T,C,"≏","\\bumpeq",!0);u(h,T,C,"≎","\\Bumpeq",!0);u(h,T,C,"≧","\\geqq",!0);u(h,T,C,"⩾","\\geqslant",!0);u(h,T,C,"⪖","\\eqslantgtr",!0);u(h,T,C,"≳","\\gtrsim",!0);u(h,T,C,"⪆","\\gtrapprox",!0);u(h,T,ce,"⋗","\\gtrdot");u(h,T,C,"⋙","\\ggg",!0);u(h,T,C,"≷","\\gtrless",!0);u(h,T,C,"⋛","\\gtreqless",!0);u(h,T,C,"⪌","\\gtreqqless",!0);u(h,T,C,"≖","\\eqcirc",!0);u(h,T,C,"≗","\\circeq",!0);u(h,T,C,"≜","\\triangleq",!0);u(h,T,C,"∼","\\thicksim");u(h,T,C,"≈","\\thickapprox");u(h,T,C,"⫆","\\supseteqq",!0);u(h,T,C,"⋑","\\Supset",!0);u(h,T,C,"⊐","\\sqsupset",!0);u(h,T,C,"≽","\\succcurlyeq",!0);u(h,T,C,"⋟","\\curlyeqsucc",!0);u(h,T,C,"≿","\\succsim",!0);u(h,T,C,"⪸","\\succapprox",!0);u(h,T,C,"⊳","\\vartriangleright");u(h,T,C,"⊵","\\trianglerighteq");u(h,T,C,"⊩","\\Vdash",!0);u(h,T,C,"∣","\\shortmid");u(h,T,C,"∥","\\shortparallel");u(h,T,C,"≬","\\between",!0);u(h,T,C,"⋔","\\pitchfork",!0);u(h,T,C,"∝","\\varpropto");u(h,T,C,"◀","\\blacktriangleleft");u(h,T,C,"∴","\\therefore",!0);u(h,T,C,"∍","\\backepsilon");u(h,T,C,"▶","\\blacktriangleright");u(h,T,C,"∵","\\because",!0);u(h,T,C,"⋘","\\llless");u(h,T,C,"⋙","\\gggtr");u(h,T,ce,"⊲","\\lhd");u(h,T,ce,"⊳","\\rhd");u(h,T,C,"≂","\\eqsim",!0);u(h,m,C,"⋈","\\Join");u(h,T,C,"≑","\\Doteq",!0);u(h,T,ce,"∔","\\dotplus",!0);u(h,T,ce,"∖","\\smallsetminus");u(h,T,ce,"⋒","\\Cap",!0);u(h,T,ce,"⋓","\\Cup",!0);u(h,T,ce,"⩞","\\doublebarwedge",!0);u(h,T,ce,"⊟","\\boxminus",!0);u(h,T,ce,"⊞","\\boxplus",!0);u(h,T,ce,"⋇","\\divideontimes",!0);u(h,T,ce,"⋉","\\ltimes",!0);u(h,T,ce,"⋊","\\rtimes",!0);u(h,T,ce,"⋋","\\leftthreetimes",!0);u(h,T,ce,"⋌","\\rightthreetimes",!0);u(h,T,ce,"⋏","\\curlywedge",!0);u(h,T,ce,"⋎","\\curlyvee",!0);u(h,T,ce,"⊝","\\circleddash",!0);u(h,T,ce,"⊛","\\circledast",!0);u(h,T,ce,"⋅","\\centerdot");u(h,T,ce,"⊺","\\intercal",!0);u(h,T,ce,"⋒","\\doublecap");u(h,T,ce,"⋓","\\doublecup");u(h,T,ce,"⊠","\\boxtimes",!0);u(h,T,C,"⇢","\\dashrightarrow",!0);u(h,T,C,"⇠","\\dashleftarrow",!0);u(h,T,C,"⇇","\\leftleftarrows",!0);u(h,T,C,"⇆","\\leftrightarrows",!0);u(h,T,C,"⇚","\\Lleftarrow",!0);u(h,T,C,"↞","\\twoheadleftarrow",!0);u(h,T,C,"↢","\\leftarrowtail",!0);u(h,T,C,"↫","\\looparrowleft",!0);u(h,T,C,"⇋","\\leftrightharpoons",!0);u(h,T,C,"↶","\\curvearrowleft",!0);u(h,T,C,"↺","\\circlearrowleft",!0);u(h,T,C,"↰","\\Lsh",!0);u(h,T,C,"⇈","\\upuparrows",!0);u(h,T,C,"↿","\\upharpoonleft",!0);u(h,T,C,"⇃","\\downharpoonleft",!0);u(h,m,C,"⊶","\\origof",!0);u(h,m,C,"⊷","\\imageof",!0);u(h,T,C,"⊸","\\multimap",!0);u(h,T,C,"↭","\\leftrightsquigarrow",!0);u(h,T,C,"⇉","\\rightrightarrows",!0);u(h,T,C,"⇄","\\rightleftarrows",!0);u(h,T,C,"↠","\\twoheadrightarrow",!0);u(h,T,C,"↣","\\rightarrowtail",!0);u(h,T,C,"↬","\\looparrowright",!0);u(h,T,C,"↷","\\curvearrowright",!0);u(h,T,C,"↻","\\circlearrowright",!0);u(h,T,C,"↱","\\Rsh",!0);u(h,T,C,"⇊","\\downdownarrows",!0);u(h,T,C,"↾","\\upharpoonright",!0);u(h,T,C,"⇂","\\downharpoonright",!0);u(h,T,C,"⇝","\\rightsquigarrow",!0);u(h,T,C,"⇝","\\leadsto");u(h,T,C,"⇛","\\Rrightarrow",!0);u(h,T,C,"↾","\\restriction");u(h,m,R,"‘","`");u(h,m,R,"$","\\$");u(X,m,R,"$","\\$");u(X,m,R,"$","\\textdollar");u(h,m,R,"%","\\%");u(X,m,R,"%","\\%");u(h,m,R,"_","\\_");u(X,m,R,"_","\\_");u(X,m,R,"_","\\textunderscore");u(h,m,R,"∠","\\angle",!0);u(h,m,R,"∞","\\infty",!0);u(h,m,R,"′","\\prime");u(h,m,R,"△","\\triangle");u(h,m,R,"Γ","\\Gamma",!0);u(h,m,R,"Δ","\\Delta",!0);u(h,m,R,"Θ","\\Theta",!0);u(h,m,R,"Λ","\\Lambda",!0);u(h,m,R,"Ξ","\\Xi",!0);u(h,m,R,"Π","\\Pi",!0);u(h,m,R,"Σ","\\Sigma",!0);u(h,m,R,"Υ","\\Upsilon",!0);u(h,m,R,"Φ","\\Phi",!0);u(h,m,R,"Ψ","\\Psi",!0);u(h,m,R,"Ω","\\Omega",!0);u(h,m,R,"A","Α");u(h,m,R,"B","Β");u(h,m,R,"E","Ε");u(h,m,R,"Z","Ζ");u(h,m,R,"H","Η");u(h,m,R,"I","Ι");u(h,m,R,"K","Κ");u(h,m,R,"M","Μ");u(h,m,R,"N","Ν");u(h,m,R,"O","Ο");u(h,m,R,"P","Ρ");u(h,m,R,"T","Τ");u(h,m,R,"X","Χ");u(h,m,R,"¬","\\neg",!0);u(h,m,R,"¬","\\lnot");u(h,m,R,"⊤","\\top");u(h,m,R,"⊥","\\bot");u(h,m,R,"∅","\\emptyset");u(h,T,R,"∅","\\varnothing");u(h,m,we,"α","\\alpha",!0);u(h,m,we,"β","\\beta",!0);u(h,m,we,"γ","\\gamma",!0);u(h,m,we,"δ","\\delta",!0);u(h,m,we,"ϵ","\\epsilon",!0);u(h,m,we,"ζ","\\zeta",!0);u(h,m,we,"η","\\eta",!0);u(h,m,we,"θ","\\theta",!0);u(h,m,we,"ι","\\iota",!0);u(h,m,we,"κ","\\kappa",!0);u(h,m,we,"λ","\\lambda",!0);u(h,m,we,"μ","\\mu",!0);u(h,m,we,"ν","\\nu",!0);u(h,m,we,"ξ","\\xi",!0);u(h,m,we,"ο","\\omicron",!0);u(h,m,we,"π","\\pi",!0);u(h,m,we,"ρ","\\rho",!0);u(h,m,we,"σ","\\sigma",!0);u(h,m,we,"τ","\\tau",!0);u(h,m,we,"υ","\\upsilon",!0);u(h,m,we,"ϕ","\\phi",!0);u(h,m,we,"χ","\\chi",!0);u(h,m,we,"ψ","\\psi",!0);u(h,m,we,"ω","\\omega",!0);u(h,m,we,"ε","\\varepsilon",!0);u(h,m,we,"ϑ","\\vartheta",!0);u(h,m,we,"ϖ","\\varpi",!0);u(h,m,we,"ϱ","\\varrho",!0);u(h,m,we,"ς","\\varsigma",!0);u(h,m,we,"φ","\\varphi",!0);u(h,m,ce,"∗","*",!0);u(h,m,ce,"+","+");u(h,m,ce,"−","-",!0);u(h,m,ce,"⋅","\\cdot",!0);u(h,m,ce,"∘","\\circ",!0);u(h,m,ce,"÷","\\div",!0);u(h,m,ce,"±","\\pm",!0);u(h,m,ce,"×","\\times",!0);u(h,m,ce,"∩","\\cap",!0);u(h,m,ce,"∪","\\cup",!0);u(h,m,ce,"∖","\\setminus",!0);u(h,m,ce,"∧","\\land");u(h,m,ce,"∨","\\lor");u(h,m,ce,"∧","\\wedge",!0);u(h,m,ce,"∨","\\vee",!0);u(h,m,R,"√","\\surd");u(h,m,Ut,"⟨","\\langle",!0);u(h,m,Ut,"∣","\\lvert");u(h,m,Ut,"∥","\\lVert");u(h,m,Dt,"?","?");u(h,m,Dt,"!","!");u(h,m,Dt,"⟩","\\rangle",!0);u(h,m,Dt,"∣","\\rvert");u(h,m,Dt,"∥","\\rVert");u(h,m,C,"=","=");u(h,m,C,":",":");u(h,m,C,"≈","\\approx",!0);u(h,m,C,"≅","\\cong",!0);u(h,m,C,"≥","\\ge");u(h,m,C,"≥","\\geq",!0);u(h,m,C,"←","\\gets");u(h,m,C,">","\\gt",!0);u(h,m,C,"∈","\\in",!0);u(h,m,C,"","\\@not");u(h,m,C,"⊂","\\subset",!0);u(h,m,C,"⊃","\\supset",!0);u(h,m,C,"⊆","\\subseteq",!0);u(h,m,C,"⊇","\\supseteq",!0);u(h,T,C,"⊈","\\nsubseteq",!0);u(h,T,C,"⊉","\\nsupseteq",!0);u(h,m,C,"⊨","\\models");u(h,m,C,"←","\\leftarrow",!0);u(h,m,C,"≤","\\le");u(h,m,C,"≤","\\leq",!0);u(h,m,C,"<","\\lt",!0);u(h,m,C,"→","\\rightarrow",!0);u(h,m,C,"→","\\to");u(h,T,C,"≱","\\ngeq",!0);u(h,T,C,"≰","\\nleq",!0);u(h,m,Fr," ","\\ ");u(h,m,Fr," ","\\space");u(h,m,Fr," ","\\nobreakspace");u(X,m,Fr," ","\\ ");u(X,m,Fr," "," ");u(X,m,Fr," ","\\space");u(X,m,Fr," ","\\nobreakspace");u(h,m,Fr,null,"\\nobreak");u(h,m,Fr,null,"\\allowbreak");u(h,m,Qi,",",",");u(h,m,Qi,";",";");u(h,T,ce,"⊼","\\barwedge",!0);u(h,T,ce,"⊻","\\veebar",!0);u(h,m,ce,"⊙","\\odot",!0);u(h,m,ce,"⊕","\\oplus",!0);u(h,m,ce,"⊗","\\otimes",!0);u(h,m,R,"∂","\\partial",!0);u(h,m,ce,"⊘","\\oslash",!0);u(h,T,ce,"⊚","\\circledcirc",!0);u(h,T,ce,"⊡","\\boxdot",!0);u(h,m,ce,"△","\\bigtriangleup");u(h,m,ce,"▽","\\bigtriangledown");u(h,m,ce,"†","\\dagger");u(h,m,ce,"⋄","\\diamond");u(h,m,ce,"⋆","\\star");u(h,m,ce,"◃","\\triangleleft");u(h,m,ce,"▹","\\triangleright");u(h,m,Ut,"{","\\{");u(X,m,R,"{","\\{");u(X,m,R,"{","\\textbraceleft");u(h,m,Dt,"}","\\}");u(X,m,R,"}","\\}");u(X,m,R,"}","\\textbraceright");u(h,m,Ut,"{","\\lbrace");u(h,m,Dt,"}","\\rbrace");u(h,m,Ut,"[","\\lbrack",!0);u(X,m,R,"[","\\lbrack",!0);u(h,m,Dt,"]","\\rbrack",!0);u(X,m,R,"]","\\rbrack",!0);u(h,m,Ut,"(","\\lparen",!0);u(h,m,Dt,")","\\rparen",!0);u(X,m,R,"<","\\textless",!0);u(X,m,R,">","\\textgreater",!0);u(h,m,Ut,"⌊","\\lfloor",!0);u(h,m,Dt,"⌋","\\rfloor",!0);u(h,m,Ut,"⌈","\\lceil",!0);u(h,m,Dt,"⌉","\\rceil",!0);u(h,m,R,"\\","\\backslash");u(h,m,R,"∣","|");u(h,m,R,"∣","\\vert");u(X,m,R,"|","\\textbar",!0);u(h,m,R,"∥","\\|");u(h,m,R,"∥","\\Vert");u(X,m,R,"∥","\\textbardbl");u(X,m,R,"~","\\textasciitilde");u(X,m,R,"\\","\\textbackslash");u(X,m,R,"^","\\textasciicircum");u(h,m,C,"↑","\\uparrow",!0);u(h,m,C,"⇑","\\Uparrow",!0);u(h,m,C,"↓","\\downarrow",!0);u(h,m,C,"⇓","\\Downarrow",!0);u(h,m,C,"↕","\\updownarrow",!0);u(h,m,C,"⇕","\\Updownarrow",!0);u(h,m,ft,"∐","\\coprod");u(h,m,ft,"⋁","\\bigvee");u(h,m,ft,"⋀","\\bigwedge");u(h,m,ft,"⨄","\\biguplus");u(h,m,ft,"⋂","\\bigcap");u(h,m,ft,"⋃","\\bigcup");u(h,m,ft,"∫","\\int");u(h,m,ft,"∫","\\intop");u(h,m,ft,"∬","\\iint");u(h,m,ft,"∭","\\iiint");u(h,m,ft,"∏","\\prod");u(h,m,ft,"∑","\\sum");u(h,m,ft,"⨂","\\bigotimes");u(h,m,ft,"⨁","\\bigoplus");u(h,m,ft,"⨀","\\bigodot");u(h,m,ft,"∮","\\oint");u(h,m,ft,"∯","\\oiint");u(h,m,ft,"∰","\\oiiint");u(h,m,ft,"⨆","\\bigsqcup");u(h,m,ft,"∫","\\smallint");u(X,m,Hn,"…","\\textellipsis");u(h,m,Hn,"…","\\mathellipsis");u(X,m,Hn,"…","\\ldots",!0);u(h,m,Hn,"…","\\ldots",!0);u(h,m,Hn,"⋯","\\@cdots",!0);u(h,m,Hn,"⋱","\\ddots",!0);u(h,m,R,"⋮","\\varvdots");u(X,m,R,"⋮","\\varvdots");u(h,m,it,"ˊ","\\acute");u(h,m,it,"ˋ","\\grave");u(h,m,it,"¨","\\ddot");u(h,m,it,"~","\\tilde");u(h,m,it,"ˉ","\\bar");u(h,m,it,"˘","\\breve");u(h,m,it,"ˇ","\\check");u(h,m,it,"^","\\hat");u(h,m,it,"⃗","\\vec");u(h,m,it,"˙","\\dot");u(h,m,it,"˚","\\mathring");u(h,m,we,"","\\@imath");u(h,m,we,"","\\@jmath");u(h,m,R,"ı","ı");u(h,m,R,"ȷ","ȷ");u(X,m,R,"ı","\\i",!0);u(X,m,R,"ȷ","\\j",!0);u(X,m,R,"ß","\\ss",!0);u(X,m,R,"æ","\\ae",!0);u(X,m,R,"œ","\\oe",!0);u(X,m,R,"ø","\\o",!0);u(X,m,R,"Æ","\\AE",!0);u(X,m,R,"Œ","\\OE",!0);u(X,m,R,"Ø","\\O",!0);u(X,m,it,"ˊ","\\'");u(X,m,it,"ˋ","\\`");u(X,m,it,"ˆ","\\^");u(X,m,it,"˜","\\~");u(X,m,it,"ˉ","\\=");u(X,m,it,"˘","\\u");u(X,m,it,"˙","\\.");u(X,m,it,"¸","\\c");u(X,m,it,"˚","\\r");u(X,m,it,"ˇ","\\v");u(X,m,it,"¨",'\\"');u(X,m,it,"˝","\\H");u(X,m,it,"◯","\\textcircled");var j1={"--":!0,"---":!0,"``":!0,"''":!0};u(X,m,R,"–","--",!0);u(X,m,R,"–","\\textendash");u(X,m,R,"—","---",!0);u(X,m,R,"—","\\textemdash");u(X,m,R,"‘","`",!0);u(X,m,R,"‘","\\textquoteleft");u(X,m,R,"’","'",!0);u(X,m,R,"’","\\textquoteright");u(X,m,R,"“","``",!0);u(X,m,R,"“","\\textquotedblleft");u(X,m,R,"”","''",!0);u(X,m,R,"”","\\textquotedblright");u(h,m,R,"°","\\degree",!0);u(X,m,R,"°","\\degree");u(X,m,R,"°","\\textdegree",!0);u(h,m,R,"£","\\pounds");u(h,m,R,"£","\\mathsterling",!0);u(X,m,R,"£","\\pounds");u(X,m,R,"£","\\textsterling",!0);u(h,T,R,"✠","\\maltese");u(X,T,R,"✠","\\maltese");var Ql='0123456789/@."';for(var Ts=0;Ts0)return er(s,c,i,r,a.concat(d));if(l){var f,p;if(l==="boldsymbol"){var b=P6(s,i,r,a,n);f=b.fontName,p=[b.fontClass]}else o?(f=W1[l].fontName,p=[l]):(f=j0(l,r.fontWeight,r.fontShape),p=[l,r.fontWeight,r.fontShape]);if(es(s,f,i).metrics)return er(s,f,i,r,a.concat(p));if(j1.hasOwnProperty(s)&&f.slice(0,10)==="Typewriter"){for(var v=[],k=0;k{if(Yr(t.classes)!==Yr(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;if(t.classes.length===1){var r=t.classes[0];if(r==="mbin"||r==="mord")return!1}for(var n in t.style)if(t.style.hasOwnProperty(n)&&t.style[n]!==e.style[n])return!1;for(var i in e.style)if(e.style.hasOwnProperty(i)&&t.style[i]!==e.style[i])return!1;return!0},j6=t=>{for(var e=0;er&&(r=a.height),a.depth>n&&(n=a.depth),a.maxFontSize>i&&(i=a.maxFontSize)}e.height=r,e.depth=n,e.maxFontSize=i},Ot=function(e,r,n,i){var s=new A0(e,r,n,i);return bo(s),s},U1=(t,e,r,n)=>new A0(t,e,r,n),U6=function(e,r,n){var i=Ot([e],[],r);return i.height=Math.max(n||r.fontMetrics().defaultRuleThickness,r.minRuleThickness),i.style.borderBottomWidth=ae(i.height),i.maxFontSize=1,i},V6=function(e,r,n,i){var s=new vo(e,r,n,i);return bo(s),s},V1=function(e){var r=new T0(e);return bo(r),r},W6=function(e,r){return e instanceof T0?Ot([],[e],r):e},G6=function(e){if(e.positionType==="individualShift"){for(var r=e.children,n=[r[0]],i=-r[0].shift-r[0].elem.depth,s=i,a=1;a{var r=Ot(["mspace"],[],e),n=ot(t,e);return r.style.marginRight=ae(n),r},j0=function(e,r,n){var i="";switch(e){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=e}var s;return r==="textbf"&&n==="textit"?s="BoldItalic":r==="textbf"?s="Bold":r==="textit"?s="Italic":s="Regular",i+"-"+s},W1={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},G1={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},X6=function(e,r){var[n,i,s]=G1[e],a=new Xr(n),o=new _r([a],{width:ae(i),height:ae(s),style:"width:"+ae(i),viewBox:"0 0 "+1e3*i+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),l=U1(["overlay"],[o],r);return l.height=s,l.style.height=ae(s),l.style.width=ae(i),l},L={fontMap:W1,makeSymbol:er,mathsym:B6,makeSpan:Ot,makeSvgSpan:U1,makeLineSpan:U6,makeAnchor:V6,makeFragment:V1,wrapFragment:W6,makeVList:K6,makeOrd:H6,makeGlue:Y6,staticSvg:X6,svgData:G1,tryCombineChars:j6},at={number:3,unit:"mu"},ln={number:4,unit:"mu"},xr={number:5,unit:"mu"},Z6={mord:{mop:at,mbin:ln,mrel:xr,minner:at},mop:{mord:at,mop:at,mrel:xr,minner:at},mbin:{mord:ln,mop:ln,mopen:ln,minner:ln},mrel:{mord:xr,mop:xr,mopen:xr,minner:xr},mopen:{},mclose:{mop:at,mbin:ln,mrel:xr,minner:at},mpunct:{mord:at,mop:at,mrel:xr,mopen:at,mclose:at,mpunct:at,minner:at},minner:{mord:at,mop:at,mbin:ln,mrel:xr,mopen:at,mpunct:at,minner:at}},J6={mord:{mop:at},mop:{mord:at,mop:at},mbin:{},mrel:{},mopen:{},mclose:{mop:at},mpunct:{},minner:{mop:at}},K1={},Ni={},Di={};function oe(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:s,mathmlBuilder:a}=t,o={type:e,numArgs:n.numArgs,argTypes:n.argTypes,allowedInArgument:!!n.allowedInArgument,allowedInText:!!n.allowedInText,allowedInMath:n.allowedInMath===void 0?!0:n.allowedInMath,numOptionalArgs:n.numOptionalArgs||0,infix:!!n.infix,primitive:!!n.primitive,handler:i},l=0;l{var w=k.classes[0],M=v.classes[0];w==="mbin"&&ye.contains(e5,M)?k.classes[0]="mord":M==="mbin"&&ye.contains(Q6,w)&&(v.classes[0]="mord")},{node:f},p,b),ic(s,(v,k)=>{var w=ma(k),M=ma(v),x=w&&M?v.hasClass("mtight")?J6[w][M]:Z6[w][M]:null;if(x)return L.makeGlue(x,c)},{node:f},p,b),s},ic=function t(e,r,n,i,s){i&&e.push(i);for(var a=0;ap=>{e.splice(f+1,0,p),a++})(a)}i&&e.pop()},Y1=function(e){return e instanceof T0||e instanceof vo||e instanceof A0&&e.hasClass("enclosing")?e:null},n5=function t(e,r){var n=Y1(e);if(n){var i=n.children;if(i.length){if(r==="right")return t(i[i.length-1],"right");if(r==="left")return t(i[0],"left")}}return e},ma=function(e,r){return e?(r&&(e=n5(e,r)),r5[e.classes[0]]||null):null},g0=function(e,r){var n=["nulldelimiter"].concat(e.baseSizingClasses());return Or(r.concat(n))},Be=function(e,r,n){if(!e)return Or();if(Ni[e.type]){var i=Ni[e.type](e,r);if(n&&r.size!==n.size){i=Or(r.sizingClasses(n),[i],r);var s=r.sizeMultiplier/n.sizeMultiplier;i.height*=s,i.depth*=s}return i}else throw new ee("Got group of unknown type: '"+e.type+"'")};function U0(t,e){var r=Or(["base"],t,e),n=Or(["strut"]);return n.style.height=ae(r.height+r.depth),r.depth&&(n.style.verticalAlign=ae(-r.depth)),r.children.unshift(n),r}function ga(t,e){var r=null;t.length===1&&t[0].type==="tag"&&(r=t[0].tag,t=t[0].body);var n=vt(t,e,"root"),i;n.length===2&&n[1].hasClass("tag")&&(i=n.pop());for(var s=[],a=[],o=0;o0&&(s.push(U0(a,e)),a=[]),s.push(n[o]));a.length>0&&s.push(U0(a,e));var c;r?(c=U0(vt(r,e,!0)),c.classes=["tag"],s.push(c)):i&&s.push(i);var d=Or(["katex-html"],s);if(d.setAttribute("aria-hidden","true"),c){var f=c.children[0];f.style.height=ae(d.height+d.depth),d.depth&&(f.style.verticalAlign=ae(-d.depth))}return d}function X1(t){return new T0(t)}class Pt{constructor(e,r,n){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=r||[],this.classes=n||[]}setAttribute(e,r){this.attributes[e]=r}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&e.setAttribute(r,this.attributes[r]);this.classes.length>0&&(e.className=Yr(this.classes));for(var n=0;n0&&(e+=' class ="'+ye.escape(Yr(this.classes))+'"'),e+=">";for(var n=0;n",e}toText(){return this.children.map(e=>e.toText()).join("")}}class pr{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return ye.escape(this.toText())}toText(){return this.text}}class i5{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character=" ":e>=.1666&&e<=.1667?this.character=" ":e>=.2222&&e<=.2223?this.character=" ":e>=.2777&&e<=.2778?this.character="  ":e>=-.05556&&e<=-.05555?this.character=" ⁣":e>=-.1667&&e<=-.1666?this.character=" ⁣":e>=-.2223&&e<=-.2222?this.character=" ⁣":e>=-.2778&&e<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",ae(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var Q={MathNode:Pt,TextNode:pr,SpaceNode:i5,newDocumentFragment:X1},Zt=function(e,r,n){return Qe[r][e]&&Qe[r][e].replace&&e.charCodeAt(0)!==55349&&!(j1.hasOwnProperty(e)&&n&&(n.fontFamily&&n.fontFamily.slice(4,6)==="tt"||n.font&&n.font.slice(4,6)==="tt"))&&(e=Qe[r][e].replace),new Q.TextNode(e)},yo=function(e){return e.length===1?e[0]:new Q.MathNode("mrow",e)},wo=function(e,r){if(r.fontFamily==="texttt")return"monospace";if(r.fontFamily==="textsf")return r.fontShape==="textit"&&r.fontWeight==="textbf"?"sans-serif-bold-italic":r.fontShape==="textit"?"sans-serif-italic":r.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(r.fontShape==="textit"&&r.fontWeight==="textbf")return"bold-italic";if(r.fontShape==="textit")return"italic";if(r.fontWeight==="textbf")return"bold";var n=r.font;if(!n||n==="mathnormal")return null;var i=e.mode;if(n==="mathit")return"italic";if(n==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(n==="mathbf")return"bold";if(n==="mathbb")return"double-struck";if(n==="mathsfit")return"sans-serif-italic";if(n==="mathfrak")return"fraktur";if(n==="mathscr"||n==="mathcal")return"script";if(n==="mathsf")return"sans-serif";if(n==="mathtt")return"monospace";var s=e.text;if(ye.contains(["\\imath","\\jmath"],s))return null;Qe[i][s]&&Qe[i][s].replace&&(s=Qe[i][s].replace);var a=L.fontMap[n].fontName;return go(s,a,i)?L.fontMap[n].variant:null};function Ms(t){if(!t)return!1;if(t.type==="mi"&&t.children.length===1){var e=t.children[0];return e instanceof pr&&e.text==="."}else if(t.type==="mo"&&t.children.length===1&&t.getAttribute("separator")==="true"&&t.getAttribute("lspace")==="0em"&&t.getAttribute("rspace")==="0em"){var r=t.children[0];return r instanceof pr&&r.text===","}else return!1}var zt=function(e,r,n){if(e.length===1){var i=Xe(e[0],r);return n&&i instanceof Pt&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var s=[],a,o=0;o=1&&(a.type==="mn"||Ms(a))){var c=l.children[0];c instanceof Pt&&c.type==="mn"&&(c.children=[...a.children,...c.children],s.pop())}else if(a.type==="mi"&&a.children.length===1){var d=a.children[0];if(d instanceof pr&&d.text==="̸"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var f=l.children[0];f instanceof pr&&f.text.length>0&&(f.text=f.text.slice(0,1)+"̸"+f.text.slice(1),s.pop())}}}s.push(l),a=l}return s},Zr=function(e,r,n){return yo(zt(e,r,n))},Xe=function(e,r){if(!e)return new Q.MathNode("mrow");if(Di[e.type]){var n=Di[e.type](e,r);return n}else throw new ee("Got group of unknown type: '"+e.type+"'")};function sc(t,e,r,n,i){var s=zt(t,r),a;s.length===1&&s[0]instanceof Pt&&ye.contains(["mrow","mtable"],s[0].type)?a=s[0]:a=new Q.MathNode("mrow",s);var o=new Q.MathNode("annotation",[new Q.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var l=new Q.MathNode("semantics",[a,o]),c=new Q.MathNode("math",[l]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");var d=i?"katex":"katex-mathml";return L.makeSpan([d],[c])}var Z1=function(e){return new Tr({style:e.displayMode?xe.DISPLAY:xe.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},J1=function(e,r){if(r.displayMode){var n=["katex-display"];r.leqno&&n.push("leqno"),r.fleqn&&n.push("fleqn"),e=L.makeSpan(n,[e])}return e},s5=function(e,r,n){var i=Z1(n),s;if(n.output==="mathml")return sc(e,r,i,n.displayMode,!0);if(n.output==="html"){var a=ga(e,i);s=L.makeSpan(["katex"],[a])}else{var o=sc(e,r,i,n.displayMode,!1),l=ga(e,i);s=L.makeSpan(["katex"],[o,l])}return J1(s,n)},a5=function(e,r,n){var i=Z1(n),s=ga(e,i),a=L.makeSpan(["katex"],[s]);return J1(a,n)},o5={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},l5=function(e){var r=new Q.MathNode("mo",[new Q.TextNode(o5[e.replace(/^\\/,"")])]);return r.setAttribute("stretchy","true"),r},c5={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},u5=function(e){return e.type==="ordgroup"?e.body.length:1},d5=function(e,r){function n(){var o=4e5,l=e.label.slice(1);if(ye.contains(["widehat","widecheck","widetilde","utilde"],l)){var c=e,d=u5(c.base),f,p,b;if(d>5)l==="widehat"||l==="widecheck"?(f=420,o=2364,b=.42,p=l+"4"):(f=312,o=2340,b=.34,p="tilde4");else{var v=[1,1,2,2,3,3][d];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][v],f=[0,239,300,360,420][v],b=[0,.24,.3,.3,.36,.42][v],p=l+v):(o=[0,600,1033,2339,2340][v],f=[0,260,286,306,312][v],b=[0,.26,.286,.3,.306,.34][v],p="tilde"+v)}var k=new Xr(p),w=new _r([k],{width:"100%",height:ae(b),viewBox:"0 0 "+o+" "+f,preserveAspectRatio:"none"});return{span:L.makeSvgSpan([],[w],r),minWidth:0,height:b}}else{var M=[],x=c5[l],[A,N,_]=x,O=_/1e3,z=A.length,Y,W;if(z===1){var he=x[3];Y=["hide-tail"],W=[he]}else if(z===2)Y=["halfarrow-left","halfarrow-right"],W=["xMinYMin","xMaxYMin"];else if(z===3)Y=["brace-left","brace-center","brace-right"],W=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support - `+z+" children.");for(var pe=0;pe0&&(i.style.minWidth=ae(s)),i},h5=function(e,r,n,i,s){var a,o=e.height+e.depth+n+i;if(/fbox|color|angl/.test(r)){if(a=L.makeSpan(["stretchy",r],[],s),r==="fbox"){var l=s.color&&s.getColor();l&&(a.style.borderColor=l)}}else{var c=[];/^[bx]cancel$/.test(r)&&c.push(new fa({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(r)&&c.push(new fa({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var d=new _r(c,{width:"100%",height:ae(o)});a=L.makeSvgSpan([],[d],s)}return a.height=o,a.style.height=ae(o),a},Lr={encloseSpan:h5,mathMLnode:l5,svgSpan:d5};function Re(t,e){if(!t||t.type!==e)throw new Error("Expected node of type "+e+", but got "+(t?"node of type "+t.type:String(t)));return t}function xo(t){var e=ts(t);if(!e)throw new Error("Expected node of symbol group type, but got "+(t?"node of type "+t.type:String(t)));return e}function ts(t){return t&&(t.type==="atom"||F6.hasOwnProperty(t.type))?t:null}var ko=(t,e)=>{var r,n,i;t&&t.type==="supsub"?(n=Re(t.base,"accent"),r=n.base,t.base=r,i=L6(Be(t,e)),t.base=n):(n=Re(t,"accent"),r=n.base);var s=Be(r,e.havingCrampedStyle()),a=n.isShifty&&ye.isCharacterBox(r),o=0;if(a){var l=ye.getBaseElem(r),c=Be(l,e.havingCrampedStyle());o=Jl(c).skew}var d=n.label==="\\c",f=d?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),p;if(n.isStretchy)p=Lr.svgSpan(n,e),p=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:p,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+ae(2*o)+")",marginLeft:ae(2*o)}:void 0}]},e);else{var b,v;n.label==="\\vec"?(b=L.staticSvg("vec",e),v=L.svgData.vec[1]):(b=L.makeOrd({mode:n.mode,text:n.label},e,"textord"),b=Jl(b),b.italic=0,v=b.width,d&&(f+=b.depth)),p=L.makeSpan(["accent-body"],[b]);var k=n.label==="\\textcircled";k&&(p.classes.push("accent-full"),f=s.height);var w=o;k||(w-=v/2),p.style.left=ae(w),n.label==="\\textcircled"&&(p.style.top=".2em"),p=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-f},{type:"elem",elem:p}]},e)}var M=L.makeSpan(["mord","accent"],[p],e);return i?(i.children[0]=M,i.height=Math.max(M.height,i.height),i.classes[0]="mord",i):M},Q1=(t,e)=>{var r=t.isStretchy?Lr.mathMLnode(t.label):new Q.MathNode("mo",[Zt(t.label,t.mode)]),n=new Q.MathNode("mover",[Xe(t.base,e),r]);return n.setAttribute("accent","true"),n},f5=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(t=>"\\"+t).join("|"));oe({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(t,e)=>{var r=Ri(e[0]),n=!f5.test(t.funcName),i=!n||t.funcName==="\\widehat"||t.funcName==="\\widetilde"||t.funcName==="\\widecheck";return{type:"accent",mode:t.parser.mode,label:t.funcName,isStretchy:n,isShifty:i,base:r}},htmlBuilder:ko,mathmlBuilder:Q1});oe({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(t,e)=>{var r=e[0],n=t.parser.mode;return n==="math"&&(t.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+t.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:ko,mathmlBuilder:Q1});oe({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"accentUnder",mode:r.mode,label:n,base:i}},htmlBuilder:(t,e)=>{var r=Be(t.base,e),n=Lr.svgSpan(t,e),i=t.label==="\\utilde"?.12:0,s=L.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:r}]},e);return L.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(t,e)=>{var r=Lr.mathMLnode(t.label),n=new Q.MathNode("munder",[Xe(t.base,e),r]);return n.setAttribute("accentunder","true"),n}});var V0=t=>{var e=new Q.MathNode("mpadded",t?[t]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};oe({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n,funcName:i}=t;return{type:"xArrow",mode:n.mode,label:i,body:e[0],below:r[0]}},htmlBuilder(t,e){var r=e.style,n=e.havingStyle(r.sup()),i=L.wrapFragment(Be(t.body,n,e),e),s=t.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(s+"-arrow-pad");var a;t.below&&(n=e.havingStyle(r.sub()),a=L.wrapFragment(Be(t.below,n,e),e),a.classes.push(s+"-arrow-pad"));var o=Lr.svgSpan(t,e),l=-e.fontMetrics().axisHeight+.5*o.height,c=-e.fontMetrics().axisHeight-.5*o.height-.111;(i.depth>.25||t.label==="\\xleftequilibrium")&&(c-=i.depth);var d;if(a){var f=-e.fontMetrics().axisHeight+a.height+.5*o.height+.111;d=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:o,shift:l},{type:"elem",elem:a,shift:f}]},e)}else d=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:o,shift:l}]},e);return d.children[0].children[0].children[1].classes.push("svg-align"),L.makeSpan(["mrel","x-arrow"],[d],e)},mathmlBuilder(t,e){var r=Lr.mathMLnode(t.label);r.setAttribute("minsize",t.label.charAt(0)==="x"?"1.75em":"3.0em");var n;if(t.body){var i=V0(Xe(t.body,e));if(t.below){var s=V0(Xe(t.below,e));n=new Q.MathNode("munderover",[r,s,i])}else n=new Q.MathNode("mover",[r,i])}else if(t.below){var a=V0(Xe(t.below,e));n=new Q.MathNode("munder",[r,a])}else n=V0(),n=new Q.MathNode("mover",[r,n]);return n}});var p5=L.makeSpan;function ed(t,e){var r=vt(t.body,e,!0);return p5([t.mclass],r,e)}function td(t,e){var r,n=zt(t.body,e);return t.mclass==="minner"?r=new Q.MathNode("mpadded",n):t.mclass==="mord"?t.isCharacterBox?(r=n[0],r.type="mi"):r=new Q.MathNode("mi",n):(t.isCharacterBox?(r=n[0],r.type="mo"):r=new Q.MathNode("mo",n),t.mclass==="mbin"?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):t.mclass==="mpunct"?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):t.mclass==="mopen"||t.mclass==="mclose"?(r.attributes.lspace="0em",r.attributes.rspace="0em"):t.mclass==="minner"&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}oe({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:ut(i),isCharacterBox:ye.isCharacterBox(i)}},htmlBuilder:ed,mathmlBuilder:td});var rs=t=>{var e=t.type==="ordgroup"&&t.body.length?t.body[0]:t;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};oe({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(t,e){var{parser:r}=t;return{type:"mclass",mode:r.mode,mclass:rs(e[0]),body:ut(e[1]),isCharacterBox:ye.isCharacterBox(e[1])}}});oe({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(t,e){var{parser:r,funcName:n}=t,i=e[1],s=e[0],a;n!=="\\stackrel"?a=rs(i):a="mrel";var o={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:n!=="\\stackrel",body:ut(i)},l={type:"supsub",mode:s.mode,base:o,sup:n==="\\underset"?null:s,sub:n==="\\underset"?s:null};return{type:"mclass",mode:r.mode,mclass:a,body:[l],isCharacterBox:ye.isCharacterBox(l)}},htmlBuilder:ed,mathmlBuilder:td});oe({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"pmb",mode:r.mode,mclass:rs(e[0]),body:ut(e[0])}},htmlBuilder(t,e){var r=vt(t.body,e,!0),n=L.makeSpan([t.mclass],r,e);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder(t,e){var r=zt(t.body,e),n=new Q.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});var m5={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},ac=()=>({type:"styling",body:[],mode:"math",style:"display"}),oc=t=>t.type==="textord"&&t.text==="@",g5=(t,e)=>(t.type==="mathord"||t.type==="atom")&&t.text===e;function v5(t,e,r){var n=m5[t];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var i=r.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:n,mode:"math",family:"rel"},a=r.callFunction("\\Big",[s],[]),o=r.callFunction("\\\\cdright",[e[1]],[]),l={type:"ordgroup",mode:"math",body:[i,a,o]};return r.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var c={type:"textord",text:"\\Vert",mode:"math"};return r.callFunction("\\Big",[c],[])}default:return{type:"textord",text:" ",mode:"math"}}}function b5(t){var e=[];for(t.gullet.beginGroup(),t.gullet.macros.set("\\cr","\\\\\\relax"),t.gullet.beginGroup();;){e.push(t.parseExpression(!1,"\\\\")),t.gullet.endGroup(),t.gullet.beginGroup();var r=t.fetch().text;if(r==="&"||r==="\\\\")t.consume();else if(r==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new ee("Expected \\\\ or \\cr or \\end",t.nextToken)}for(var n=[],i=[n],s=0;s-1))if("<>AV".indexOf(c)>-1)for(var f=0;f<2;f++){for(var p=!0,b=l+1;bAV=|." after @',a[l]);var v=v5(c,d,t),k={type:"styling",body:[v],mode:"math",style:"display"};n.push(k),o=ac()}s%2===0?n.push(o):n.shift(),n=[],i.push(n)}t.gullet.endGroup(),t.gullet.endGroup();var w=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:w,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}oe({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:e[0]}},htmlBuilder(t,e){var r=e.havingStyle(e.style.sup()),n=L.wrapFragment(Be(t.label,r,e),e);return n.classes.push("cd-label-"+t.side),n.style.bottom=ae(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder(t,e){var r=new Q.MathNode("mrow",[Xe(t.label,e)]);return r=new Q.MathNode("mpadded",[r]),r.setAttribute("width","0"),t.side==="left"&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),r=new Q.MathNode("mstyle",[r]),r.setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}});oe({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(t,e){var{parser:r}=t;return{type:"cdlabelparent",mode:r.mode,fragment:e[0]}},htmlBuilder(t,e){var r=L.wrapFragment(Be(t.fragment,e),e);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder(t,e){return new Q.MathNode("mrow",[Xe(t.fragment,e)])}});oe({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(t,e){for(var{parser:r}=t,n=Re(e[0],"ordgroup"),i=n.body,s="",a=0;a=1114111)throw new ee("\\@char with invalid code point "+s);return l<=65535?c=String.fromCharCode(l):(l-=65536,c=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:r.mode,text:c}}});var rd=(t,e)=>{var r=vt(t.body,e.withColor(t.color),!1);return L.makeFragment(r)},nd=(t,e)=>{var r=zt(t.body,e.withColor(t.color)),n=new Q.MathNode("mstyle",r);return n.setAttribute("mathcolor",t.color),n};oe({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(t,e){var{parser:r}=t,n=Re(e[0],"color-token").color,i=e[1];return{type:"color",mode:r.mode,color:n,body:ut(i)}},htmlBuilder:rd,mathmlBuilder:nd});oe({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(t,e){var{parser:r,breakOnTokenText:n}=t,i=Re(e[0],"color-token").color;r.gullet.macros.set("\\current@color",i);var s=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:i,body:s}},htmlBuilder:rd,mathmlBuilder:nd});oe({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(t,e,r){var{parser:n}=t,i=n.gullet.future().text==="["?n.parseSizeGroup(!0):null,s=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:s,size:i&&Re(i,"size").value}},htmlBuilder(t,e){var r=L.makeSpan(["mspace"],[],e);return t.newLine&&(r.classes.push("newline"),t.size&&(r.style.marginTop=ae(ot(t.size,e)))),r},mathmlBuilder(t,e){var r=new Q.MathNode("mspace");return t.newLine&&(r.setAttribute("linebreak","newline"),t.size&&r.setAttribute("height",ae(ot(t.size,e)))),r}});var va={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},id=t=>{var e=t.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new ee("Expected a control sequence",t);return e},y5=t=>{var e=t.gullet.popToken();return e.text==="="&&(e=t.gullet.popToken(),e.text===" "&&(e=t.gullet.popToken())),e},sd=(t,e,r,n)=>{var i=t.gullet.macros.get(r.text);i==null&&(r.noexpand=!0,i={tokens:[r],numArgs:0,unexpandable:!t.gullet.isExpandable(r.text)}),t.gullet.macros.set(e,i,n)};oe({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(t){var{parser:e,funcName:r}=t;e.consumeSpaces();var n=e.fetch();if(va[n.text])return(r==="\\global"||r==="\\\\globallong")&&(n.text=va[n.text]),Re(e.parseFunction(),"internal");throw new ee("Invalid token after macro prefix",n)}});oe({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=e.gullet.popToken(),i=n.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new ee("Expected a control sequence",n);for(var s=0,a,o=[[]];e.gullet.future().text!=="{";)if(n=e.gullet.popToken(),n.text==="#"){if(e.gullet.future().text==="{"){a=e.gullet.future(),o[s].push("{");break}if(n=e.gullet.popToken(),!/^[1-9]$/.test(n.text))throw new ee('Invalid argument number "'+n.text+'"');if(parseInt(n.text)!==s+1)throw new ee('Argument number "'+n.text+'" out of order');s++,o.push([])}else{if(n.text==="EOF")throw new ee("Expected a macro definition");o[s].push(n.text)}var{tokens:l}=e.gullet.consumeArg();return a&&l.unshift(a),(r==="\\edef"||r==="\\xdef")&&(l=e.gullet.expandTokens(l),l.reverse()),e.gullet.macros.set(i,{tokens:l,numArgs:s,delimiters:o},r===va[r]),{type:"internal",mode:e.mode}}});oe({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=id(e.gullet.popToken());e.gullet.consumeSpaces();var i=y5(e);return sd(e,n,i,r==="\\\\globallet"),{type:"internal",mode:e.mode}}});oe({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t){var{parser:e,funcName:r}=t,n=id(e.gullet.popToken()),i=e.gullet.popToken(),s=e.gullet.popToken();return sd(e,n,s,r==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(i),{type:"internal",mode:e.mode}}});var Jn=function(e,r,n){var i=Qe.math[e]&&Qe.math[e].replace,s=go(i||e,r,n);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+r+".");return s},So=function(e,r,n,i){var s=n.havingBaseStyle(r),a=L.makeSpan(i.concat(s.sizingClasses(n)),[e],n),o=s.sizeMultiplier/n.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=s.sizeMultiplier,a},ad=function(e,r,n){var i=r.havingBaseStyle(n),s=(1-r.sizeMultiplier/i.sizeMultiplier)*r.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=ae(s),e.height-=s,e.depth+=s},w5=function(e,r,n,i,s,a){var o=L.makeSymbol(e,"Main-Regular",s,i),l=So(o,r,i,a);return n&&ad(l,i,r),l},x5=function(e,r,n,i){return L.makeSymbol(e,"Size"+r+"-Regular",n,i)},od=function(e,r,n,i,s,a){var o=x5(e,r,s,i),l=So(L.makeSpan(["delimsizing","size"+r],[o],i),xe.TEXT,i,a);return n&&ad(l,i,xe.TEXT),l},Ns=function(e,r,n){var i;r==="Size1-Regular"?i="delim-size1":i="delim-size4";var s=L.makeSpan(["delimsizinginner",i],[L.makeSpan([],[L.makeSymbol(e,r,n)])]);return{type:"elem",elem:s}},Ds=function(e,r,n){var i=fr["Size4-Regular"][e.charCodeAt(0)]?fr["Size4-Regular"][e.charCodeAt(0)][4]:fr["Size1-Regular"][e.charCodeAt(0)][4],s=new Xr("inner",E6(e,Math.round(1e3*r))),a=new _r([s],{width:ae(i),height:ae(r),style:"width:"+ae(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*r),preserveAspectRatio:"xMinYMin"}),o=L.makeSvgSpan([],[a],n);return o.height=r,o.style.height=ae(r),o.style.width=ae(i),{type:"elem",elem:o}},ba=.008,W0={type:"kern",size:-1*ba},k5=["|","\\lvert","\\rvert","\\vert"],S5=["\\|","\\lVert","\\rVert","\\Vert"],ld=function(e,r,n,i,s,a){var o,l,c,d,f="",p=0;o=c=d=e,l=null;var b="Size1-Regular";e==="\\uparrow"?c=d="⏐":e==="\\Uparrow"?c=d="‖":e==="\\downarrow"?o=c="⏐":e==="\\Downarrow"?o=c="‖":e==="\\updownarrow"?(o="\\uparrow",c="⏐",d="\\downarrow"):e==="\\Updownarrow"?(o="\\Uparrow",c="‖",d="\\Downarrow"):ye.contains(k5,e)?(c="∣",f="vert",p=333):ye.contains(S5,e)?(c="∥",f="doublevert",p=556):e==="["||e==="\\lbrack"?(o="⎡",c="⎢",d="⎣",b="Size4-Regular",f="lbrack",p=667):e==="]"||e==="\\rbrack"?(o="⎤",c="⎥",d="⎦",b="Size4-Regular",f="rbrack",p=667):e==="\\lfloor"||e==="⌊"?(c=o="⎢",d="⎣",b="Size4-Regular",f="lfloor",p=667):e==="\\lceil"||e==="⌈"?(o="⎡",c=d="⎢",b="Size4-Regular",f="lceil",p=667):e==="\\rfloor"||e==="⌋"?(c=o="⎥",d="⎦",b="Size4-Regular",f="rfloor",p=667):e==="\\rceil"||e==="⌉"?(o="⎤",c=d="⎥",b="Size4-Regular",f="rceil",p=667):e==="("||e==="\\lparen"?(o="⎛",c="⎜",d="⎝",b="Size4-Regular",f="lparen",p=875):e===")"||e==="\\rparen"?(o="⎞",c="⎟",d="⎠",b="Size4-Regular",f="rparen",p=875):e==="\\{"||e==="\\lbrace"?(o="⎧",l="⎨",d="⎩",c="⎪",b="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(o="⎫",l="⎬",d="⎭",c="⎪",b="Size4-Regular"):e==="\\lgroup"||e==="⟮"?(o="⎧",d="⎩",c="⎪",b="Size4-Regular"):e==="\\rgroup"||e==="⟯"?(o="⎫",d="⎭",c="⎪",b="Size4-Regular"):e==="\\lmoustache"||e==="⎰"?(o="⎧",d="⎭",c="⎪",b="Size4-Regular"):(e==="\\rmoustache"||e==="⎱")&&(o="⎫",d="⎩",c="⎪",b="Size4-Regular");var v=Jn(o,b,s),k=v.height+v.depth,w=Jn(c,b,s),M=w.height+w.depth,x=Jn(d,b,s),A=x.height+x.depth,N=0,_=1;if(l!==null){var O=Jn(l,b,s);N=O.height+O.depth,_=2}var z=k+A+N,Y=Math.max(0,Math.ceil((r-z)/(_*M))),W=z+Y*_*M,he=i.fontMetrics().axisHeight;n&&(he*=i.sizeMultiplier);var pe=W/2-he,Ae=[];if(f.length>0){var st=W-k-A,Ze=Math.round(W*1e3),tt=C6(f,Math.round(st*1e3)),$e=new Xr(f,tt),Oe=(p/1e3).toFixed(3)+"em",ve=(Ze/1e3).toFixed(3)+"em",Ee=new _r([$e],{width:Oe,height:ve,viewBox:"0 0 "+p+" "+Ze}),rt=L.makeSvgSpan([],[Ee],i);rt.height=Ze/1e3,rt.style.width=Oe,rt.style.height=ve,Ae.push({type:"elem",elem:rt})}else{if(Ae.push(Ns(d,b,s)),Ae.push(W0),l===null){var Ve=W-k-A+2*ba;Ae.push(Ds(c,Ve,i))}else{var Ie=(W-k-A-N)/2+2*ba;Ae.push(Ds(c,Ie,i)),Ae.push(W0),Ae.push(Ns(l,b,s)),Ae.push(W0),Ae.push(Ds(c,Ie,i))}Ae.push(W0),Ae.push(Ns(o,b,s))}var Rt=i.havingBaseStyle(xe.TEXT),pt=L.makeVList({positionType:"bottom",positionData:pe,children:Ae},Rt);return So(L.makeSpan(["delimsizing","mult"],[pt],Rt),xe.TEXT,i,a)},Rs=80,Is=.08,_s=function(e,r,n,i,s){var a=A6(e,i,n),o=new Xr(e,a),l=new _r([o],{width:"400em",height:ae(r),viewBox:"0 0 400000 "+n,preserveAspectRatio:"xMinYMin slice"});return L.makeSvgSpan(["hide-tail"],[l],s)},T5=function(e,r){var n=r.havingBaseSizing(),i=hd("\\surd",e*n.sizeMultiplier,dd,n),s=n.sizeMultiplier,a=Math.max(0,r.minRuleThickness-r.fontMetrics().sqrtRuleThickness),o,l=0,c=0,d=0,f;return i.type==="small"?(d=1e3+1e3*a+Rs,e<1?s=1:e<1.4&&(s=.7),l=(1+a+Is)/s,c=(1+a)/s,o=_s("sqrtMain",l,d,a,r),o.style.minWidth="0.853em",f=.833/s):i.type==="large"?(d=(1e3+Rs)*l0[i.size],c=(l0[i.size]+a)/s,l=(l0[i.size]+a+Is)/s,o=_s("sqrtSize"+i.size,l,d,a,r),o.style.minWidth="1.02em",f=1/s):(l=e+a+Is,c=e+a,d=Math.floor(1e3*e+a)+Rs,o=_s("sqrtTall",l,d,a,r),o.style.minWidth="0.742em",f=1.056),o.height=c,o.style.height=ae(l),{span:o,advanceWidth:f,ruleWidth:(r.fontMetrics().sqrtRuleThickness+a)*s}},cd=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],A5=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],ud=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],l0=[0,1.2,1.8,2.4,3],E5=function(e,r,n,i,s){if(e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle"),ye.contains(cd,e)||ye.contains(ud,e))return od(e,r,!1,n,i,s);if(ye.contains(A5,e))return ld(e,l0[r],!1,n,i,s);throw new ee("Illegal delimiter: '"+e+"'")},C5=[{type:"small",style:xe.SCRIPTSCRIPT},{type:"small",style:xe.SCRIPT},{type:"small",style:xe.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],M5=[{type:"small",style:xe.SCRIPTSCRIPT},{type:"small",style:xe.SCRIPT},{type:"small",style:xe.TEXT},{type:"stack"}],dd=[{type:"small",style:xe.SCRIPTSCRIPT},{type:"small",style:xe.SCRIPT},{type:"small",style:xe.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],N5=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},hd=function(e,r,n,i){for(var s=Math.min(2,3-i.style.size),a=s;ar)return n[a]}return n[n.length-1]},fd=function(e,r,n,i,s,a){e==="<"||e==="\\lt"||e==="⟨"?e="\\langle":(e===">"||e==="\\gt"||e==="⟩")&&(e="\\rangle");var o;ye.contains(ud,e)?o=C5:ye.contains(cd,e)?o=dd:o=M5;var l=hd(e,r,o,i);return l.type==="small"?w5(e,l.style,n,i,s,a):l.type==="large"?od(e,l.size,n,i,s,a):ld(e,r,n,i,s,a)},D5=function(e,r,n,i,s,a){var o=i.fontMetrics().axisHeight*i.sizeMultiplier,l=901,c=5/i.fontMetrics().ptPerEm,d=Math.max(r-o,n+o),f=Math.max(d/500*l,2*d-c);return fd(e,f,!0,i,s,a)},Dr={sqrtImage:T5,sizedDelim:E5,sizeToMaxHeight:l0,customSizedDelim:fd,leftRightDelim:D5},lc={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},R5=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function ns(t,e){var r=ts(t);if(r&&ye.contains(R5,r.text))return r;throw r?new ee("Invalid delimiter '"+r.text+"' after '"+e.funcName+"'",t):new ee("Invalid delimiter type '"+t.type+"'",t)}oe({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(t,e)=>{var r=ns(e[0],t);return{type:"delimsizing",mode:t.parser.mode,size:lc[t.funcName].size,mclass:lc[t.funcName].mclass,delim:r.text}},htmlBuilder:(t,e)=>t.delim==="."?L.makeSpan([t.mclass]):Dr.sizedDelim(t.delim,t.size,e,t.mode,[t.mclass]),mathmlBuilder:t=>{var e=[];t.delim!=="."&&e.push(Zt(t.delim,t.mode));var r=new Q.MathNode("mo",e);t.mclass==="mopen"||t.mclass==="mclose"?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=ae(Dr.sizeToMaxHeight[t.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}});function cc(t){if(!t.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}oe({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var r=t.parser.gullet.macros.get("\\current@color");if(r&&typeof r!="string")throw new ee("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:t.parser.mode,delim:ns(e[0],t).text,color:r}}});oe({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var r=ns(e[0],t),n=t.parser;++n.leftrightDepth;var i=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var s=Re(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:i,left:r.text,right:s.delim,rightColor:s.color}},htmlBuilder:(t,e)=>{cc(t);for(var r=vt(t.body,e,!0,["mopen","mclose"]),n=0,i=0,s=!1,a=0;a{cc(t);var r=zt(t.body,e);if(t.left!=="."){var n=new Q.MathNode("mo",[Zt(t.left,t.mode)]);n.setAttribute("fence","true"),r.unshift(n)}if(t.right!=="."){var i=new Q.MathNode("mo",[Zt(t.right,t.mode)]);i.setAttribute("fence","true"),t.rightColor&&i.setAttribute("mathcolor",t.rightColor),r.push(i)}return yo(r)}});oe({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var r=ns(e[0],t);if(!t.parser.leftrightDepth)throw new ee("\\middle without preceding \\left",r);return{type:"middle",mode:t.parser.mode,delim:r.text}},htmlBuilder:(t,e)=>{var r;if(t.delim===".")r=g0(e,[]);else{r=Dr.sizedDelim(t.delim,1,e,t.mode,[]);var n={delim:t.delim,options:e};r.isMiddle=n}return r},mathmlBuilder:(t,e)=>{var r=t.delim==="\\vert"||t.delim==="|"?Zt("|","text"):Zt(t.delim,t.mode),n=new Q.MathNode("mo",[r]);return n.setAttribute("fence","true"),n.setAttribute("lspace","0.05em"),n.setAttribute("rspace","0.05em"),n}});var To=(t,e)=>{var r=L.wrapFragment(Be(t.body,e),e),n=t.label.slice(1),i=e.sizeMultiplier,s,a=0,o=ye.isCharacterBox(t.body);if(n==="sout")s=L.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/i,a=-.5*e.fontMetrics().xHeight;else if(n==="phase"){var l=ot({number:.6,unit:"pt"},e),c=ot({number:.35,unit:"ex"},e),d=e.havingBaseSizing();i=i/d.sizeMultiplier;var f=r.height+r.depth+l+c;r.style.paddingLeft=ae(f/2+l);var p=Math.floor(1e3*f*i),b=S6(p),v=new _r([new Xr("phase",b)],{width:"400em",height:ae(p/1e3),viewBox:"0 0 400000 "+p,preserveAspectRatio:"xMinYMin slice"});s=L.makeSvgSpan(["hide-tail"],[v],e),s.style.height=ae(f),a=r.depth+l+c}else{/cancel/.test(n)?o||r.classes.push("cancel-pad"):n==="angl"?r.classes.push("anglpad"):r.classes.push("boxpad");var k=0,w=0,M=0;/box/.test(n)?(M=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),k=e.fontMetrics().fboxsep+(n==="colorbox"?0:M),w=k):n==="angl"?(M=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),k=4*M,w=Math.max(0,.25-r.depth)):(k=o?.2:0,w=k),s=Lr.encloseSpan(r,n,k,w,e),/fbox|boxed|fcolorbox/.test(n)?(s.style.borderStyle="solid",s.style.borderWidth=ae(M)):n==="angl"&&M!==.049&&(s.style.borderTopWidth=ae(M),s.style.borderRightWidth=ae(M)),a=r.depth+w,t.backgroundColor&&(s.style.backgroundColor=t.backgroundColor,t.borderColor&&(s.style.borderColor=t.borderColor))}var x;if(t.backgroundColor)x=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:a},{type:"elem",elem:r,shift:0}]},e);else{var A=/cancel|phase/.test(n)?["svg-align"]:[];x=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:r,shift:0},{type:"elem",elem:s,shift:a,wrapperClasses:A}]},e)}return/cancel/.test(n)&&(x.height=r.height,x.depth=r.depth),/cancel/.test(n)&&!o?L.makeSpan(["mord","cancel-lap"],[x],e):L.makeSpan(["mord"],[x],e)},Ao=(t,e)=>{var r=0,n=new Q.MathNode(t.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Xe(t.body,e)]);switch(t.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),t.label==="\\fcolorbox"){var i=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);n.setAttribute("style","border: "+i+"em solid "+String(t.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return t.backgroundColor&&n.setAttribute("mathbackground",t.backgroundColor),n};oe({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,s=Re(e[0],"color-token").color,a=e[1];return{type:"enclose",mode:n.mode,label:i,backgroundColor:s,body:a}},htmlBuilder:To,mathmlBuilder:Ao});oe({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(t,e,r){var{parser:n,funcName:i}=t,s=Re(e[0],"color-token").color,a=Re(e[1],"color-token").color,o=e[2];return{type:"enclose",mode:n.mode,label:i,backgroundColor:a,borderColor:s,body:o}},htmlBuilder:To,mathmlBuilder:Ao});oe({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\fbox",body:e[0]}}});oe({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"enclose",mode:r.mode,label:n,body:i}},htmlBuilder:To,mathmlBuilder:Ao});oe({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"enclose",mode:r.mode,label:"\\angl",body:e[0]}}});var pd={};function gr(t){for(var{type:e,names:r,props:n,handler:i,htmlBuilder:s,mathmlBuilder:a}=t,o={type:e,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},l=0;l{var e=t.parser.settings;if(!e.displayMode)throw new ee("{"+t.envName+"} can be used only in display mode.")};function Eo(t){if(t.indexOf("ed")===-1)return t.indexOf("*")===-1}function rn(t,e,r){var{hskipBeforeAndAfter:n,addJot:i,cols:s,arraystretch:a,colSeparationType:o,autoTag:l,singleRow:c,emptySingleRow:d,maxNumCols:f,leqno:p}=e;if(t.gullet.beginGroup(),c||t.gullet.macros.set("\\cr","\\\\\\relax"),!a){var b=t.gullet.expandMacroAsText("\\arraystretch");if(b==null)a=1;else if(a=parseFloat(b),!a||a<0)throw new ee("Invalid \\arraystretch: "+b)}t.gullet.beginGroup();var v=[],k=[v],w=[],M=[],x=l!=null?[]:void 0;function A(){l&&t.gullet.macros.set("\\@eqnsw","1",!0)}function N(){x&&(t.gullet.macros.get("\\df@tag")?(x.push(t.subparse([new Yt("\\df@tag")])),t.gullet.macros.set("\\df@tag",void 0,!0)):x.push(!!l&&t.gullet.macros.get("\\@eqnsw")==="1"))}for(A(),M.push(uc(t));;){var _=t.parseExpression(!1,c?"\\end":"\\\\");t.gullet.endGroup(),t.gullet.beginGroup(),_={type:"ordgroup",mode:t.mode,body:_},r&&(_={type:"styling",mode:t.mode,style:r,body:[_]}),v.push(_);var O=t.fetch().text;if(O==="&"){if(f&&v.length===f){if(c||o)throw new ee("Too many tab characters: &",t.nextToken);t.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}t.consume()}else if(O==="\\end"){N(),v.length===1&&_.type==="styling"&&_.body[0].body.length===0&&(k.length>1||!d)&&k.pop(),M.length0&&(A+=.25),c.push({pos:A,isDashed:P[Z]})}for(N(a[0]),n=0;n0&&(pe+=x,zP))for(n=0;n=o)){var te=void 0;(i>0||e.hskipBeforeAndAfter)&&(te=ye.deflt(Ie.pregap,p),te!==0&&(tt=L.makeSpan(["arraycolsep"],[]),tt.style.width=ae(te),Ze.push(tt)));var se=[];for(n=0;n0){for(var Ue=L.makeLineSpan("hline",r,d),S=L.makeLineSpan("hdashline",r,d),D=[{type:"elem",elem:l,shift:0}];c.length>0;){var F=c.pop(),K=F.pos-Ae;F.isDashed?D.push({type:"elem",elem:S,shift:K}):D.push({type:"elem",elem:Ue,shift:K})}l=L.makeVList({positionType:"individualShift",children:D},r)}if(Oe.length===0)return L.makeSpan(["mord"],[l],r);var q=L.makeVList({positionType:"individualShift",children:Oe},r);return q=L.makeSpan(["tag"],[q],r),L.makeFragment([l,q])},I5={c:"center ",l:"left ",r:"right "},br=function(e,r){for(var n=[],i=new Q.MathNode("mtd",[],["mtr-glue"]),s=new Q.MathNode("mtd",[],["mml-eqn-num"]),a=0;a0){var v=e.cols,k="",w=!1,M=0,x=v.length;v[0].type==="separator"&&(p+="top ",M=1),v[v.length-1].type==="separator"&&(p+="bottom ",x-=1);for(var A=M;A0?"left ":"",p+=Y[Y.length-1].length>0?"right ":"";for(var W=1;W-1?"alignat":"align",s=e.envName==="split",a=rn(e.parser,{cols:n,addJot:!0,autoTag:s?void 0:Eo(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),o,l=0,c={type:"ordgroup",mode:e.mode,body:[]};if(r[0]&&r[0].type==="ordgroup"){for(var d="",f=0;f0&&b&&(w=1),n[v]={type:"align",align:k,pregap:w,postgap:0}}return a.colSeparationType=b?"align":"alignat",a};gr({type:"array",names:["array","darray"],props:{numArgs:1},handler(t,e){var r=ts(e[0]),n=r?[e[0]]:Re(e[0],"ordgroup").body,i=n.map(function(a){var o=xo(a),l=o.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new ee("Unknown column alignment: "+l,a)}),s={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return rn(t.parser,s,Co(t.envName))},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(t){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[t.envName.replace("*","")],r="c",n={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if(t.envName.charAt(t.envName.length-1)==="*"){var i=t.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,"lcr".indexOf(r)===-1)throw new ee("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),n.cols=[{type:"align",align:r}]}}var s=rn(t.parser,n,Co(t.envName)),a=Math.max(0,...s.body.map(o=>o.length));return s.cols=new Array(a).fill({type:"align",align:r}),e?{type:"leftright",mode:t.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(t){var e={arraystretch:.5},r=rn(t.parser,e,"script");return r.colSeparationType="small",r},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["subarray"],props:{numArgs:1},handler(t,e){var r=ts(e[0]),n=r?[e[0]]:Re(e[0],"ordgroup").body,i=n.map(function(a){var o=xo(a),l=o.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new ee("Unknown column alignment: "+l,a)});if(i.length>1)throw new ee("{subarray} can contain only one column");var s={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=rn(t.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new ee("{subarray} can contain only one column");return s},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(t){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},r=rn(t.parser,e,Co(t.envName));return{type:"leftright",mode:t.mode,body:[r],left:t.envName.indexOf("r")>-1?".":"\\{",right:t.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:gd,htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(t){ye.contains(["gather","gather*"],t.envName)&&is(t);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Eo(t.envName),emptySingleRow:!0,leqno:t.parser.settings.leqno};return rn(t.parser,e,"display")},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:gd,htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(t){is(t);var e={autoTag:Eo(t.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:t.parser.settings.leqno};return rn(t.parser,e,"display")},htmlBuilder:vr,mathmlBuilder:br});gr({type:"array",names:["CD"],props:{numArgs:0},handler(t){return is(t),b5(t.parser)},htmlBuilder:vr,mathmlBuilder:br});g("\\nonumber","\\gdef\\@eqnsw{0}");g("\\notag","\\nonumber");oe({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(t,e){throw new ee(t.funcName+" valid only within array environment")}});var dc=pd;oe({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];if(i.type!=="ordgroup")throw new ee("Invalid environment name",i);for(var s="",a=0;a{var r=t.font,n=e.withFont(r);return Be(t.body,n)},bd=(t,e)=>{var r=t.font,n=e.withFont(r);return Xe(t.body,n)},hc={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};oe({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=Ri(e[0]),s=n;return s in hc&&(s=hc[s]),{type:"font",mode:r.mode,font:s.slice(1),body:i}},htmlBuilder:vd,mathmlBuilder:bd});oe({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(t,e)=>{var{parser:r}=t,n=e[0],i=ye.isCharacterBox(n);return{type:"mclass",mode:r.mode,mclass:rs(n),body:[{type:"font",mode:r.mode,font:"boldsymbol",body:n}],isCharacterBox:i}}});oe({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(t,e)=>{var{parser:r,funcName:n,breakOnTokenText:i}=t,{mode:s}=r,a=r.parseExpression(!0,i),o="math"+n.slice(1);return{type:"font",mode:s,font:o,body:{type:"ordgroup",mode:r.mode,body:a}}},htmlBuilder:vd,mathmlBuilder:bd});var yd=(t,e)=>{var r=e;return t==="display"?r=r.id>=xe.SCRIPT.id?r.text():xe.DISPLAY:t==="text"&&r.size===xe.DISPLAY.size?r=xe.TEXT:t==="script"?r=xe.SCRIPT:t==="scriptscript"&&(r=xe.SCRIPTSCRIPT),r},Mo=(t,e)=>{var r=yd(t.size,e.style),n=r.fracNum(),i=r.fracDen(),s;s=e.havingStyle(n);var a=Be(t.numer,s,e);if(t.continued){var o=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;a.height=a.height0?v=3*p:v=7*p,k=e.fontMetrics().denom1):(f>0?(b=e.fontMetrics().num2,v=p):(b=e.fontMetrics().num3,v=3*p),k=e.fontMetrics().denom2);var w;if(d){var x=e.fontMetrics().axisHeight;b-a.depth-(x+.5*f){var r=new Q.MathNode("mfrac",[Xe(t.numer,e),Xe(t.denom,e)]);if(!t.hasBarLine)r.setAttribute("linethickness","0px");else if(t.barSize){var n=ot(t.barSize,e);r.setAttribute("linethickness",ae(n))}var i=yd(t.size,e.style);if(i.size!==e.style.size){r=new Q.MathNode("mstyle",[r]);var s=i.size===xe.DISPLAY.size?"true":"false";r.setAttribute("displaystyle",s),r.setAttribute("scriptlevel","0")}if(t.leftDelim!=null||t.rightDelim!=null){var a=[];if(t.leftDelim!=null){var o=new Q.MathNode("mo",[new Q.TextNode(t.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),a.push(o)}if(a.push(r),t.rightDelim!=null){var l=new Q.MathNode("mo",[new Q.TextNode(t.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),a.push(l)}return yo(a)}return r};oe({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=e[0],s=e[1],a,o=null,l=null,c="auto";switch(n){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,o="(",l=")";break;case"\\\\bracefrac":a=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":a=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(n){case"\\dfrac":case"\\dbinom":c="display";break;case"\\tfrac":case"\\tbinom":c="text";break}return{type:"genfrac",mode:r.mode,continued:!1,numer:i,denom:s,hasBarLine:a,leftDelim:o,rightDelim:l,size:c,barSize:null}},htmlBuilder:Mo,mathmlBuilder:No});oe({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=e[0],s=e[1];return{type:"genfrac",mode:r.mode,continued:!0,numer:i,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});oe({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(t){var{parser:e,funcName:r,token:n}=t,i;switch(r){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:i,token:n}}});var fc=["display","text","script","scriptscript"],pc=function(e){var r=null;return e.length>0&&(r=e,r=r==="."?null:r),r};oe({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(t,e){var{parser:r}=t,n=e[4],i=e[5],s=Ri(e[0]),a=s.type==="atom"&&s.family==="open"?pc(s.text):null,o=Ri(e[1]),l=o.type==="atom"&&o.family==="close"?pc(o.text):null,c=Re(e[2],"size"),d,f=null;c.isBlank?d=!0:(f=c.value,d=f.number>0);var p="auto",b=e[3];if(b.type==="ordgroup"){if(b.body.length>0){var v=Re(b.body[0],"textord");p=fc[Number(v.text)]}}else b=Re(b,"textord"),p=fc[Number(b.text)];return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:d,barSize:f,leftDelim:a,rightDelim:l,size:p}},htmlBuilder:Mo,mathmlBuilder:No});oe({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(t,e){var{parser:r,funcName:n,token:i}=t;return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Re(e[0],"size").value,token:i}}});oe({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=e[0],s=l6(Re(e[1],"infix").size),a=e[2],o=s.number>0;return{type:"genfrac",mode:r.mode,numer:i,denom:a,continued:!1,hasBarLine:o,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:Mo,mathmlBuilder:No});var wd=(t,e)=>{var r=e.style,n,i;t.type==="supsub"?(n=t.sup?Be(t.sup,e.havingStyle(r.sup()),e):Be(t.sub,e.havingStyle(r.sub()),e),i=Re(t.base,"horizBrace")):i=Re(t,"horizBrace");var s=Be(i.base,e.havingBaseStyle(xe.DISPLAY)),a=Lr.svgSpan(i,e),o;if(i.isOver?(o=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),o.children[0].children[0].children[1].classes.push("svg-align")):(o=L.makeVList({positionType:"bottom",positionData:s.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),o.children[0].children[0].children[0].classes.push("svg-align")),n){var l=L.makeSpan(["mord",i.isOver?"mover":"munder"],[o],e);i.isOver?o=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:n}]},e):o=L.makeVList({positionType:"bottom",positionData:l.depth+.2+n.height+n.depth,children:[{type:"elem",elem:n},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return L.makeSpan(["mord",i.isOver?"mover":"munder"],[o],e)},_5=(t,e)=>{var r=Lr.mathMLnode(t.label);return new Q.MathNode(t.isOver?"mover":"munder",[Xe(t.base,e),r])};oe({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(t,e){var{parser:r,funcName:n}=t;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:e[0]}},htmlBuilder:wd,mathmlBuilder:_5});oe({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[1],i=Re(e[0],"url").url;return r.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:r.mode,href:i,body:ut(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:(t,e)=>{var r=vt(t.body,e,!1);return L.makeAnchor(t.href,[],r,e)},mathmlBuilder:(t,e)=>{var r=Zr(t.body,e);return r instanceof Pt||(r=new Pt("mrow",[r])),r.setAttribute("href",t.href),r}});oe({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=Re(e[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var i=[],s=0;s{var{parser:r,funcName:n,token:i}=t,s=Re(e[0],"raw").string,a=e[1];r.settings.strict&&r.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(n){case"\\htmlClass":l.class=s,o={command:"\\htmlClass",class:s};break;case"\\htmlId":l.id=s,o={command:"\\htmlId",id:s};break;case"\\htmlStyle":l.style=s,o={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var c=s.split(","),d=0;d{var r=vt(t.body,e,!1),n=["enclosing"];t.attributes.class&&n.push(...t.attributes.class.trim().split(/\s+/));var i=L.makeSpan(n,r,e);for(var s in t.attributes)s!=="class"&&t.attributes.hasOwnProperty(s)&&i.setAttribute(s,t.attributes[s]);return i},mathmlBuilder:(t,e)=>Zr(t.body,e)});oe({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t;return{type:"htmlmathml",mode:r.mode,html:ut(e[0]),mathml:ut(e[1])}},htmlBuilder:(t,e)=>{var r=vt(t.html,e,!1);return L.makeFragment(r)},mathmlBuilder:(t,e)=>Zr(t.mathml,e)});var Os=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var r=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!r)throw new ee("Invalid size: '"+e+"' in \\includegraphics");var n={number:+(r[1]+r[2]),unit:r[3]};if(!B1(n))throw new ee("Invalid unit: '"+n.unit+"' in \\includegraphics.");return n};oe({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(t,e,r)=>{var{parser:n}=t,i={number:0,unit:"em"},s={number:.9,unit:"em"},a={number:0,unit:"em"},o="";if(r[0])for(var l=Re(r[0],"raw").string,c=l.split(","),d=0;d{var r=ot(t.height,e),n=0;t.totalheight.number>0&&(n=ot(t.totalheight,e)-r);var i=0;t.width.number>0&&(i=ot(t.width,e));var s={height:ae(r+n)};i>0&&(s.width=ae(i)),n>0&&(s.verticalAlign=ae(-n));var a=new _6(t.src,t.alt,s);return a.height=r,a.depth=n,a},mathmlBuilder:(t,e)=>{var r=new Q.MathNode("mglyph",[]);r.setAttribute("alt",t.alt);var n=ot(t.height,e),i=0;if(t.totalheight.number>0&&(i=ot(t.totalheight,e)-n,r.setAttribute("valign",ae(-i))),r.setAttribute("height",ae(n+i)),t.width.number>0){var s=ot(t.width,e);r.setAttribute("width",ae(s))}return r.setAttribute("src",t.src),r}});oe({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=Re(e[0],"size");if(r.settings.strict){var s=n[1]==="m",a=i.value.unit==="mu";s?(a||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, "+("not "+i.value.unit+" units")),r.mode!=="math"&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):a&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:i.value}},htmlBuilder(t,e){return L.makeGlue(t.dimension,e)},mathmlBuilder(t,e){var r=ot(t.dimension,e);return new Q.SpaceNode(r)}});oe({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:i}},htmlBuilder:(t,e)=>{var r;t.alignment==="clap"?(r=L.makeSpan([],[Be(t.body,e)]),r=L.makeSpan(["inner"],[r],e)):r=L.makeSpan(["inner"],[Be(t.body,e)]);var n=L.makeSpan(["fix"],[]),i=L.makeSpan([t.alignment],[r,n],e),s=L.makeSpan(["strut"]);return s.style.height=ae(i.height+i.depth),i.depth&&(s.style.verticalAlign=ae(-i.depth)),i.children.unshift(s),i=L.makeSpan(["thinbox"],[i],e),L.makeSpan(["mord","vbox"],[i],e)},mathmlBuilder:(t,e)=>{var r=new Q.MathNode("mpadded",[Xe(t.body,e)]);if(t.alignment!=="rlap"){var n=t.alignment==="llap"?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}});oe({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){var{funcName:r,parser:n}=t,i=n.mode;n.switchMode("math");var s=r==="\\("?"\\)":"$",a=n.parseExpression(!1,s);return n.expect(s),n.switchMode(i),{type:"styling",mode:n.mode,style:"text",body:a}}});oe({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(t,e){throw new ee("Mismatched "+t.funcName)}});var mc=(t,e)=>{switch(e.style.size){case xe.DISPLAY.size:return t.display;case xe.TEXT.size:return t.text;case xe.SCRIPT.size:return t.script;case xe.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};oe({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(t,e)=>{var{parser:r}=t;return{type:"mathchoice",mode:r.mode,display:ut(e[0]),text:ut(e[1]),script:ut(e[2]),scriptscript:ut(e[3])}},htmlBuilder:(t,e)=>{var r=mc(t,e),n=vt(r,e,!1);return L.makeFragment(n)},mathmlBuilder:(t,e)=>{var r=mc(t,e);return Zr(r,e)}});var xd=(t,e,r,n,i,s,a)=>{t=L.makeSpan([],[t]);var o=r&&ye.isCharacterBox(r),l,c;if(e){var d=Be(e,n.havingStyle(i.sup()),n);c={elem:d,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-d.depth)}}if(r){var f=Be(r,n.havingStyle(i.sub()),n);l={elem:f,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-f.height)}}var p;if(c&&l){var b=n.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+t.depth+a;p=L.makeVList({positionType:"bottom",positionData:b,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:ae(-s)},{type:"kern",size:l.kern},{type:"elem",elem:t},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:ae(s)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(l){var v=t.height-a;p=L.makeVList({positionType:"top",positionData:v,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:ae(-s)},{type:"kern",size:l.kern},{type:"elem",elem:t}]},n)}else if(c){var k=t.depth+a;p=L.makeVList({positionType:"bottom",positionData:k,children:[{type:"elem",elem:t},{type:"kern",size:c.kern},{type:"elem",elem:c.elem,marginLeft:ae(s)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else return t;var w=[p];if(l&&s!==0&&!o){var M=L.makeSpan(["mspace"],[],n);M.style.marginRight=ae(s),w.unshift(M)}return L.makeSpan(["mop","op-limits"],w,n)},kd=["\\smallint"],qn=(t,e)=>{var r,n,i=!1,s;t.type==="supsub"?(r=t.sup,n=t.sub,s=Re(t.base,"op"),i=!0):s=Re(t,"op");var a=e.style,o=!1;a.size===xe.DISPLAY.size&&s.symbol&&!ye.contains(kd,s.name)&&(o=!0);var l;if(s.symbol){var c=o?"Size2-Regular":"Size1-Regular",d="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(d=s.name.slice(1),s.name=d==="oiint"?"\\iint":"\\iiint"),l=L.makeSymbol(s.name,c,"math",e,["mop","op-symbol",o?"large-op":"small-op"]),d.length>0){var f=l.italic,p=L.staticSvg(d+"Size"+(o?"2":"1"),e);l=L.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:p,shift:o?.08:0}]},e),s.name="\\"+d,l.classes.unshift("mop"),l.italic=f}}else if(s.body){var b=vt(s.body,e,!0);b.length===1&&b[0]instanceof Xt?(l=b[0],l.classes[0]="mop"):l=L.makeSpan(["mop"],b,e)}else{for(var v=[],k=1;k{var r;if(t.symbol)r=new Pt("mo",[Zt(t.name,t.mode)]),ye.contains(kd,t.name)&&r.setAttribute("largeop","false");else if(t.body)r=new Pt("mo",zt(t.body,e));else{r=new Pt("mi",[new pr(t.name.slice(1))]);var n=new Pt("mo",[Zt("⁡","text")]);t.parentIsSupSub?r=new Pt("mrow",[r,n]):r=X1([r,n])}return r},O5={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};oe({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=n;return i.length===1&&(i=O5[i]),{type:"op",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},htmlBuilder:qn,mathmlBuilder:E0});oe({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"op",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:ut(n)}},htmlBuilder:qn,mathmlBuilder:E0});var L5={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};oe({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:qn,mathmlBuilder:E0});oe({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:qn,mathmlBuilder:E0});oe({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(t){var{parser:e,funcName:r}=t,n=r;return n.length===1&&(n=L5[n]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:qn,mathmlBuilder:E0});var Sd=(t,e)=>{var r,n,i=!1,s;t.type==="supsub"?(r=t.sup,n=t.sub,s=Re(t.base,"operatorname"),i=!0):s=Re(t,"operatorname");var a;if(s.body.length>0){for(var o=s.body.map(f=>{var p=f.text;return typeof p=="string"?{type:"textord",mode:f.mode,text:p}:f}),l=vt(o,e.withFont("mathrm"),!0),c=0;c{for(var r=zt(t.body,e.withFont("mathrm")),n=!0,i=0;id.toText()).join("");r=[new Q.TextNode(o)]}var l=new Q.MathNode("mi",r);l.setAttribute("mathvariant","normal");var c=new Q.MathNode("mo",[Zt("⁡","text")]);return t.parentIsSupSub?new Q.MathNode("mrow",[l,c]):Q.newDocumentFragment([l,c])};oe({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(t,e)=>{var{parser:r,funcName:n}=t,i=e[0];return{type:"operatorname",mode:r.mode,body:ut(i),alwaysHandleSupSub:n==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Sd,mathmlBuilder:z5});g("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");yn({type:"ordgroup",htmlBuilder(t,e){return t.semisimple?L.makeFragment(vt(t.body,e,!1)):L.makeSpan(["mord"],vt(t.body,e,!0),e)},mathmlBuilder(t,e){return Zr(t.body,e,!0)}});oe({type:"overline",names:["\\overline"],props:{numArgs:1},handler(t,e){var{parser:r}=t,n=e[0];return{type:"overline",mode:r.mode,body:n}},htmlBuilder(t,e){var r=Be(t.body,e.havingCrampedStyle()),n=L.makeLineSpan("overline-line",e),i=e.fontMetrics().defaultRuleThickness,s=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n},{type:"kern",size:i}]},e);return L.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(t,e){var r=new Q.MathNode("mo",[new Q.TextNode("‾")]);r.setAttribute("stretchy","true");var n=new Q.MathNode("mover",[Xe(t.body,e),r]);return n.setAttribute("accent","true"),n}});oe({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"phantom",mode:r.mode,body:ut(n)}},htmlBuilder:(t,e)=>{var r=vt(t.body,e.withPhantom(),!1);return L.makeFragment(r)},mathmlBuilder:(t,e)=>{var r=zt(t.body,e);return new Q.MathNode("mphantom",r)}});oe({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"hphantom",mode:r.mode,body:n}},htmlBuilder:(t,e)=>{var r=L.makeSpan([],[Be(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var n=0;n{var r=zt(ut(t.body),e),n=new Q.MathNode("mphantom",r),i=new Q.MathNode("mpadded",[n]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i}});oe({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(t,e)=>{var{parser:r}=t,n=e[0];return{type:"vphantom",mode:r.mode,body:n}},htmlBuilder:(t,e)=>{var r=L.makeSpan(["inner"],[Be(t.body,e.withPhantom())]),n=L.makeSpan(["fix"],[]);return L.makeSpan(["mord","rlap"],[r,n],e)},mathmlBuilder:(t,e)=>{var r=zt(ut(t.body),e),n=new Q.MathNode("mphantom",r),i=new Q.MathNode("mpadded",[n]);return i.setAttribute("width","0px"),i}});oe({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(t,e){var{parser:r}=t,n=Re(e[0],"size").value,i=e[1];return{type:"raisebox",mode:r.mode,dy:n,body:i}},htmlBuilder(t,e){var r=Be(t.body,e),n=ot(t.dy,e);return L.makeVList({positionType:"shift",positionData:-n,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){var r=new Q.MathNode("mpadded",[Xe(t.body,e)]),n=t.dy.number+t.dy.unit;return r.setAttribute("voffset",n),r}});oe({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(t){var{parser:e}=t;return{type:"internal",mode:e.mode}}});oe({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(t,e,r){var{parser:n}=t,i=r[0],s=Re(e[0],"size"),a=Re(e[1],"size");return{type:"rule",mode:n.mode,shift:i&&Re(i,"size").value,width:s.value,height:a.value}},htmlBuilder(t,e){var r=L.makeSpan(["mord","rule"],[],e),n=ot(t.width,e),i=ot(t.height,e),s=t.shift?ot(t.shift,e):0;return r.style.borderRightWidth=ae(n),r.style.borderTopWidth=ae(i),r.style.bottom=ae(s),r.width=n,r.height=i+s,r.depth=-s,r.maxFontSize=i*1.125*e.sizeMultiplier,r},mathmlBuilder(t,e){var r=ot(t.width,e),n=ot(t.height,e),i=t.shift?ot(t.shift,e):0,s=e.color&&e.getColor()||"black",a=new Q.MathNode("mspace");a.setAttribute("mathbackground",s),a.setAttribute("width",ae(r)),a.setAttribute("height",ae(n));var o=new Q.MathNode("mpadded",[a]);return i>=0?o.setAttribute("height",ae(i)):(o.setAttribute("height",ae(i)),o.setAttribute("depth",ae(-i))),o.setAttribute("voffset",ae(i)),o}});function Td(t,e,r){for(var n=vt(t,e,!1),i=e.sizeMultiplier/r.sizeMultiplier,s=0;s{var r=e.havingSize(t.size);return Td(t.body,r,e)};oe({type:"sizing",names:gc,props:{numArgs:0,allowedInText:!0},handler:(t,e)=>{var{breakOnTokenText:r,funcName:n,parser:i}=t,s=i.parseExpression(!1,r);return{type:"sizing",mode:i.mode,size:gc.indexOf(n)+1,body:s}},htmlBuilder:F5,mathmlBuilder:(t,e)=>{var r=e.havingSize(t.size),n=zt(t.body,r),i=new Q.MathNode("mstyle",n);return i.setAttribute("mathsize",ae(r.sizeMultiplier)),i}});oe({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(t,e,r)=>{var{parser:n}=t,i=!1,s=!1,a=r[0]&&Re(r[0],"ordgroup");if(a)for(var o="",l=0;l{var r=L.makeSpan([],[Be(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var n=0;n{var r=new Q.MathNode("mpadded",[Xe(t.body,e)]);return t.smashHeight&&r.setAttribute("height","0px"),t.smashDepth&&r.setAttribute("depth","0px"),r}});oe({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(t,e,r){var{parser:n}=t,i=r[0],s=e[0];return{type:"sqrt",mode:n.mode,body:s,index:i}},htmlBuilder(t,e){var r=Be(t.body,e.havingCrampedStyle());r.height===0&&(r.height=e.fontMetrics().xHeight),r=L.wrapFragment(r,e);var n=e.fontMetrics(),i=n.defaultRuleThickness,s=i;e.style.idr.height+r.depth+a&&(a=(a+f-r.height-r.depth)/2);var p=l.height-r.height-a-c;r.style.paddingLeft=ae(d);var b=L.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+p)},{type:"elem",elem:l},{type:"kern",size:c}]},e);if(t.index){var v=e.havingStyle(xe.SCRIPTSCRIPT),k=Be(t.index,v,e),w=.6*(b.height-b.depth),M=L.makeVList({positionType:"shift",positionData:-w,children:[{type:"elem",elem:k}]},e),x=L.makeSpan(["root"],[M]);return L.makeSpan(["mord","sqrt"],[x,b],e)}else return L.makeSpan(["mord","sqrt"],[b],e)},mathmlBuilder(t,e){var{body:r,index:n}=t;return n?new Q.MathNode("mroot",[Xe(r,e),Xe(n,e)]):new Q.MathNode("msqrt",[Xe(r,e)])}});var vc={display:xe.DISPLAY,text:xe.TEXT,script:xe.SCRIPT,scriptscript:xe.SCRIPTSCRIPT};oe({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(t,e){var{breakOnTokenText:r,funcName:n,parser:i}=t,s=i.parseExpression(!0,r),a=n.slice(1,n.length-5);return{type:"styling",mode:i.mode,style:a,body:s}},htmlBuilder(t,e){var r=vc[t.style],n=e.havingStyle(r).withFont("");return Td(t.body,n,e)},mathmlBuilder(t,e){var r=vc[t.style],n=e.havingStyle(r),i=zt(t.body,n),s=new Q.MathNode("mstyle",i),a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=a[t.style];return s.setAttribute("scriptlevel",o[0]),s.setAttribute("displaystyle",o[1]),s}});var $5=function(e,r){var n=e.base;if(n)if(n.type==="op"){var i=n.limits&&(r.style.size===xe.DISPLAY.size||n.alwaysHandleSupSub);return i?qn:null}else if(n.type==="operatorname"){var s=n.alwaysHandleSupSub&&(r.style.size===xe.DISPLAY.size||n.limits);return s?Sd:null}else{if(n.type==="accent")return ye.isCharacterBox(n.base)?ko:null;if(n.type==="horizBrace"){var a=!e.sub;return a===n.isOver?wd:null}else return null}else return null};yn({type:"supsub",htmlBuilder(t,e){var r=$5(t,e);if(r)return r(t,e);var{base:n,sup:i,sub:s}=t,a=Be(n,e),o,l,c=e.fontMetrics(),d=0,f=0,p=n&&ye.isCharacterBox(n);if(i){var b=e.havingStyle(e.style.sup());o=Be(i,b,e),p||(d=a.height-b.fontMetrics().supDrop*b.sizeMultiplier/e.sizeMultiplier)}if(s){var v=e.havingStyle(e.style.sub());l=Be(s,v,e),p||(f=a.depth+v.fontMetrics().subDrop*v.sizeMultiplier/e.sizeMultiplier)}var k;e.style===xe.DISPLAY?k=c.sup1:e.style.cramped?k=c.sup3:k=c.sup2;var w=e.sizeMultiplier,M=ae(.5/c.ptPerEm/w),x=null;if(l){var A=t.base&&t.base.type==="op"&&t.base.name&&(t.base.name==="\\oiint"||t.base.name==="\\oiiint");(a instanceof Xt||A)&&(x=ae(-a.italic))}var N;if(o&&l){d=Math.max(d,k,o.depth+.25*c.xHeight),f=Math.max(f,c.sub2);var _=c.defaultRuleThickness,O=4*_;if(d-o.depth-(l.height-f)0&&(d+=z,f-=z)}var Y=[{type:"elem",elem:l,shift:f,marginRight:M,marginLeft:x},{type:"elem",elem:o,shift:-d,marginRight:M}];N=L.makeVList({positionType:"individualShift",children:Y},e)}else if(l){f=Math.max(f,c.sub1,l.height-.8*c.xHeight);var W=[{type:"elem",elem:l,marginLeft:x,marginRight:M}];N=L.makeVList({positionType:"shift",positionData:f,children:W},e)}else if(o)d=Math.max(d,k,o.depth+.25*c.xHeight),N=L.makeVList({positionType:"shift",positionData:-d,children:[{type:"elem",elem:o,marginRight:M}]},e);else throw new Error("supsub must have either sup or sub.");var he=ma(a,"right")||"mord";return L.makeSpan([he],[a,L.makeSpan(["msupsub"],[N])],e)},mathmlBuilder(t,e){var r=!1,n,i;t.base&&t.base.type==="horizBrace"&&(i=!!t.sup,i===t.base.isOver&&(r=!0,n=t.base.isOver)),t.base&&(t.base.type==="op"||t.base.type==="operatorname")&&(t.base.parentIsSupSub=!0);var s=[Xe(t.base,e)];t.sub&&s.push(Xe(t.sub,e)),t.sup&&s.push(Xe(t.sup,e));var a;if(r)a=n?"mover":"munder";else if(t.sub)if(t.sup){var c=t.base;c&&c.type==="op"&&c.limits&&e.style===xe.DISPLAY||c&&c.type==="operatorname"&&c.alwaysHandleSupSub&&(e.style===xe.DISPLAY||c.limits)?a="munderover":a="msubsup"}else{var l=t.base;l&&l.type==="op"&&l.limits&&(e.style===xe.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===xe.DISPLAY)?a="munder":a="msub"}else{var o=t.base;o&&o.type==="op"&&o.limits&&(e.style===xe.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===xe.DISPLAY)?a="mover":a="msup"}return new Q.MathNode(a,s)}});yn({type:"atom",htmlBuilder(t,e){return L.mathsym(t.text,t.mode,e,["m"+t.family])},mathmlBuilder(t,e){var r=new Q.MathNode("mo",[Zt(t.text,t.mode)]);if(t.family==="bin"){var n=wo(t,e);n==="bold-italic"&&r.setAttribute("mathvariant",n)}else t.family==="punct"?r.setAttribute("separator","true"):(t.family==="open"||t.family==="close")&&r.setAttribute("stretchy","false");return r}});var Ad={mi:"italic",mn:"normal",mtext:"normal"};yn({type:"mathord",htmlBuilder(t,e){return L.makeOrd(t,e,"mathord")},mathmlBuilder(t,e){var r=new Q.MathNode("mi",[Zt(t.text,t.mode,e)]),n=wo(t,e)||"italic";return n!==Ad[r.type]&&r.setAttribute("mathvariant",n),r}});yn({type:"textord",htmlBuilder(t,e){return L.makeOrd(t,e,"textord")},mathmlBuilder(t,e){var r=Zt(t.text,t.mode,e),n=wo(t,e)||"normal",i;return t.mode==="text"?i=new Q.MathNode("mtext",[r]):/[0-9]/.test(t.text)?i=new Q.MathNode("mn",[r]):t.text==="\\prime"?i=new Q.MathNode("mo",[r]):i=new Q.MathNode("mi",[r]),n!==Ad[i.type]&&i.setAttribute("mathvariant",n),i}});var Ls={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},zs={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};yn({type:"spacing",htmlBuilder(t,e){if(zs.hasOwnProperty(t.text)){var r=zs[t.text].className||"";if(t.mode==="text"){var n=L.makeOrd(t,e,"textord");return n.classes.push(r),n}else return L.makeSpan(["mspace",r],[L.mathsym(t.text,t.mode,e)],e)}else{if(Ls.hasOwnProperty(t.text))return L.makeSpan(["mspace",Ls[t.text]],[],e);throw new ee('Unknown type of space "'+t.text+'"')}},mathmlBuilder(t,e){var r;if(zs.hasOwnProperty(t.text))r=new Q.MathNode("mtext",[new Q.TextNode(" ")]);else{if(Ls.hasOwnProperty(t.text))return new Q.MathNode("mspace");throw new ee('Unknown type of space "'+t.text+'"')}return r}});var bc=()=>{var t=new Q.MathNode("mtd",[]);return t.setAttribute("width","50%"),t};yn({type:"tag",mathmlBuilder(t,e){var r=new Q.MathNode("mtable",[new Q.MathNode("mtr",[bc(),new Q.MathNode("mtd",[Zr(t.body,e)]),bc(),new Q.MathNode("mtd",[Zr(t.tag,e)])])]);return r.setAttribute("width","100%"),r}});var yc={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},wc={"\\textbf":"textbf","\\textmd":"textmd"},B5={"\\textit":"textit","\\textup":"textup"},xc=(t,e)=>{var r=t.font;if(r){if(yc[r])return e.withTextFontFamily(yc[r]);if(wc[r])return e.withTextFontWeight(wc[r]);if(r==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(B5[r])};oe({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(t,e){var{parser:r,funcName:n}=t,i=e[0];return{type:"text",mode:r.mode,body:ut(i),font:n}},htmlBuilder(t,e){var r=xc(t,e),n=vt(t.body,r,!0);return L.makeSpan(["mord","text"],n,r)},mathmlBuilder(t,e){var r=xc(t,e);return Zr(t.body,r)}});oe({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(t,e){var{parser:r}=t;return{type:"underline",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Be(t.body,e),n=L.makeLineSpan("underline-line",e),i=e.fontMetrics().defaultRuleThickness,s=L.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:i},{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r}]},e);return L.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(t,e){var r=new Q.MathNode("mo",[new Q.TextNode("‾")]);r.setAttribute("stretchy","true");var n=new Q.MathNode("munder",[Xe(t.body,e),r]);return n.setAttribute("accentunder","true"),n}});oe({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(t,e){var{parser:r}=t;return{type:"vcenter",mode:r.mode,body:e[0]}},htmlBuilder(t,e){var r=Be(t.body,e),n=e.fontMetrics().axisHeight,i=.5*(r.height-n-(r.depth+n));return L.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:r}]},e)},mathmlBuilder(t,e){return new Q.MathNode("mpadded",[Xe(t.body,e)],["vcenter"])}});oe({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(t,e,r){throw new ee("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(t,e){for(var r=kc(t),n=[],i=e.havingStyle(e.style.text()),s=0;st.body.replace(/ /g,t.star?"␣":" "),Ur=K1,Ed=`[ \r - ]`,P5="\\\\[a-zA-Z@]+",H5="\\\\[^\uD800-\uDFFF]",q5="("+P5+")"+Ed+"*",j5=`\\\\( -|[ \r ]+ -?)[ \r ]*`,ya="[̀-ͯ]",U5=new RegExp(ya+"+$"),V5="("+Ed+"+)|"+(j5+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(ya+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(ya+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+q5)+("|"+H5+")");class Sc{constructor(e,r){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=r,this.tokenRegex=new RegExp(V5,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,r){this.catcodes[e]=r}lex(){var e=this.input,r=this.tokenRegex.lastIndex;if(r===e.length)return new Yt("EOF",new $t(this,r,r));var n=this.tokenRegex.exec(e);if(n===null||n.index!==r)throw new ee("Unexpected character: '"+e[r]+"'",new Yt(e[r],new $t(this,r,r+1)));var i=n[6]||n[3]||(n[2]?"\\ ":" ");if(this.catcodes[i]===14){var s=e.indexOf(` -`,this.tokenRegex.lastIndex);return s===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=s+1,this.lex()}return new Yt(i,new $t(this,r,this.tokenRegex.lastIndex))}}class W5{constructor(e,r){e===void 0&&(e={}),r===void 0&&(r={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=r,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new ee("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var r in e)e.hasOwnProperty(r)&&(e[r]==null?delete this.current[r]:this.current[r]=e[r])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,r,n){if(n===void 0&&(n=!1),n){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][e]=r)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}r==null?delete this.current[e]:this.current[e]=r}}var G5=md;g("\\noexpand",function(t){var e=t.popToken();return t.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});g("\\expandafter",function(t){var e=t.popToken();return t.expandOnce(!0),{tokens:[e],numArgs:0}});g("\\@firstoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[0],numArgs:0}});g("\\@secondoftwo",function(t){var e=t.consumeArgs(2);return{tokens:e[1],numArgs:0}});g("\\@ifnextchar",function(t){var e=t.consumeArgs(3);t.consumeSpaces();var r=t.future();return e[0].length===1&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});g("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");g("\\TextOrMath",function(t){var e=t.consumeArgs(2);return t.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var Tc={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};g("\\char",function(t){var e=t.popToken(),r,n="";if(e.text==="'")r=8,e=t.popToken();else if(e.text==='"')r=16,e=t.popToken();else if(e.text==="`")if(e=t.popToken(),e.text[0]==="\\")n=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new ee("\\char` missing argument");n=e.text.charCodeAt(0)}else r=10;if(r){if(n=Tc[e.text],n==null||n>=r)throw new ee("Invalid base-"+r+" digit "+e.text);for(var i;(i=Tc[t.future().text])!=null&&i{var i=t.consumeArg().tokens;if(i.length!==1)throw new ee("\\newcommand's first argument must be a macro name");var s=i[0].text,a=t.isDefined(s);if(a&&!e)throw new ee("\\newcommand{"+s+"} attempting to redefine "+(s+"; use \\renewcommand"));if(!a&&!r)throw new ee("\\renewcommand{"+s+"} when command "+s+" does not yet exist; use \\newcommand");var o=0;if(i=t.consumeArg().tokens,i.length===1&&i[0].text==="["){for(var l="",c=t.expandNextToken();c.text!=="]"&&c.text!=="EOF";)l+=c.text,c=t.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new ee("Invalid number of arguments: "+l);o=parseInt(l),i=t.consumeArg().tokens}return a&&n||t.macros.set(s,{tokens:i,numArgs:o}),""};g("\\newcommand",t=>Do(t,!1,!0,!1));g("\\renewcommand",t=>Do(t,!0,!1,!1));g("\\providecommand",t=>Do(t,!0,!0,!0));g("\\message",t=>{var e=t.consumeArgs(1)[0];return console.log(e.reverse().map(r=>r.text).join("")),""});g("\\errmessage",t=>{var e=t.consumeArgs(1)[0];return console.error(e.reverse().map(r=>r.text).join("")),""});g("\\show",t=>{var e=t.popToken(),r=e.text;return console.log(e,t.macros.get(r),Ur[r],Qe.math[r],Qe.text[r]),""});g("\\bgroup","{");g("\\egroup","}");g("~","\\nobreakspace");g("\\lq","`");g("\\rq","'");g("\\aa","\\r a");g("\\AA","\\r A");g("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");g("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");g("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");g("ℬ","\\mathscr{B}");g("ℰ","\\mathscr{E}");g("ℱ","\\mathscr{F}");g("ℋ","\\mathscr{H}");g("ℐ","\\mathscr{I}");g("ℒ","\\mathscr{L}");g("ℳ","\\mathscr{M}");g("ℛ","\\mathscr{R}");g("ℭ","\\mathfrak{C}");g("ℌ","\\mathfrak{H}");g("ℨ","\\mathfrak{Z}");g("\\Bbbk","\\Bbb{k}");g("·","\\cdotp");g("\\llap","\\mathllap{\\textrm{#1}}");g("\\rlap","\\mathrlap{\\textrm{#1}}");g("\\clap","\\mathclap{\\textrm{#1}}");g("\\mathstrut","\\vphantom{(}");g("\\underbar","\\underline{\\text{#1}}");g("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');g("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");g("\\ne","\\neq");g("≠","\\neq");g("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");g("∉","\\notin");g("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");g("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");g("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");g("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");g("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");g("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");g("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");g("⟂","\\perp");g("‼","\\mathclose{!\\mkern-0.8mu!}");g("∌","\\notni");g("⌜","\\ulcorner");g("⌝","\\urcorner");g("⌞","\\llcorner");g("⌟","\\lrcorner");g("©","\\copyright");g("®","\\textregistered");g("️","\\textregistered");g("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');g("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');g("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');g("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');g("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");g("⋮","\\vdots");g("\\varGamma","\\mathit{\\Gamma}");g("\\varDelta","\\mathit{\\Delta}");g("\\varTheta","\\mathit{\\Theta}");g("\\varLambda","\\mathit{\\Lambda}");g("\\varXi","\\mathit{\\Xi}");g("\\varPi","\\mathit{\\Pi}");g("\\varSigma","\\mathit{\\Sigma}");g("\\varUpsilon","\\mathit{\\Upsilon}");g("\\varPhi","\\mathit{\\Phi}");g("\\varPsi","\\mathit{\\Psi}");g("\\varOmega","\\mathit{\\Omega}");g("\\substack","\\begin{subarray}{c}#1\\end{subarray}");g("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");g("\\boxed","\\fbox{$\\displaystyle{#1}$}");g("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");g("\\implies","\\DOTSB\\;\\Longrightarrow\\;");g("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");g("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");g("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var Ac={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};g("\\dots",function(t){var e="\\dotso",r=t.expandAfterFuture().text;return r in Ac?e=Ac[r]:(r.slice(0,4)==="\\not"||r in Qe.math&&ye.contains(["bin","rel"],Qe.math[r].group))&&(e="\\dotsb"),e});var Ro={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};g("\\dotso",function(t){var e=t.future().text;return e in Ro?"\\ldots\\,":"\\ldots"});g("\\dotsc",function(t){var e=t.future().text;return e in Ro&&e!==","?"\\ldots\\,":"\\ldots"});g("\\cdots",function(t){var e=t.future().text;return e in Ro?"\\@cdots\\,":"\\@cdots"});g("\\dotsb","\\cdots");g("\\dotsm","\\cdots");g("\\dotsi","\\!\\cdots");g("\\dotsx","\\ldots\\,");g("\\DOTSI","\\relax");g("\\DOTSB","\\relax");g("\\DOTSX","\\relax");g("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");g("\\,","\\tmspace+{3mu}{.1667em}");g("\\thinspace","\\,");g("\\>","\\mskip{4mu}");g("\\:","\\tmspace+{4mu}{.2222em}");g("\\medspace","\\:");g("\\;","\\tmspace+{5mu}{.2777em}");g("\\thickspace","\\;");g("\\!","\\tmspace-{3mu}{.1667em}");g("\\negthinspace","\\!");g("\\negmedspace","\\tmspace-{4mu}{.2222em}");g("\\negthickspace","\\tmspace-{5mu}{.277em}");g("\\enspace","\\kern.5em ");g("\\enskip","\\hskip.5em\\relax");g("\\quad","\\hskip1em\\relax");g("\\qquad","\\hskip2em\\relax");g("\\tag","\\@ifstar\\tag@literal\\tag@paren");g("\\tag@paren","\\tag@literal{({#1})}");g("\\tag@literal",t=>{if(t.macros.get("\\df@tag"))throw new ee("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});g("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");g("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");g("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");g("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");g("\\newline","\\\\\\relax");g("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Cd=ae(fr["Main-Regular"]["T".charCodeAt(0)][1]-.7*fr["Main-Regular"]["A".charCodeAt(0)][1]);g("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+Cd+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");g("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+Cd+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");g("\\hspace","\\@ifstar\\@hspacer\\@hspace");g("\\@hspace","\\hskip #1\\relax");g("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");g("\\ordinarycolon",":");g("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");g("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');g("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');g("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');g("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');g("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');g("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');g("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');g("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');g("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');g("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');g("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');g("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');g("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');g("∷","\\dblcolon");g("∹","\\eqcolon");g("≔","\\coloneqq");g("≕","\\eqqcolon");g("⩴","\\Coloneqq");g("\\ratio","\\vcentcolon");g("\\coloncolon","\\dblcolon");g("\\colonequals","\\coloneqq");g("\\coloncolonequals","\\Coloneqq");g("\\equalscolon","\\eqqcolon");g("\\equalscoloncolon","\\Eqqcolon");g("\\colonminus","\\coloneq");g("\\coloncolonminus","\\Coloneq");g("\\minuscolon","\\eqcolon");g("\\minuscoloncolon","\\Eqcolon");g("\\coloncolonapprox","\\Colonapprox");g("\\coloncolonsim","\\Colonsim");g("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");g("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");g("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");g("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");g("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");g("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");g("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");g("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");g("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");g("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");g("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");g("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");g("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");g("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");g("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");g("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");g("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");g("\\nleqq","\\html@mathml{\\@nleqq}{≰}");g("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");g("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");g("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");g("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");g("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");g("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");g("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");g("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");g("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");g("\\imath","\\html@mathml{\\@imath}{ı}");g("\\jmath","\\html@mathml{\\@jmath}{ȷ}");g("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");g("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");g("⟦","\\llbracket");g("⟧","\\rrbracket");g("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");g("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");g("⦃","\\lBrace");g("⦄","\\rBrace");g("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");g("⦵","\\minuso");g("\\darr","\\downarrow");g("\\dArr","\\Downarrow");g("\\Darr","\\Downarrow");g("\\lang","\\langle");g("\\rang","\\rangle");g("\\uarr","\\uparrow");g("\\uArr","\\Uparrow");g("\\Uarr","\\Uparrow");g("\\N","\\mathbb{N}");g("\\R","\\mathbb{R}");g("\\Z","\\mathbb{Z}");g("\\alef","\\aleph");g("\\alefsym","\\aleph");g("\\Alpha","\\mathrm{A}");g("\\Beta","\\mathrm{B}");g("\\bull","\\bullet");g("\\Chi","\\mathrm{X}");g("\\clubs","\\clubsuit");g("\\cnums","\\mathbb{C}");g("\\Complex","\\mathbb{C}");g("\\Dagger","\\ddagger");g("\\diamonds","\\diamondsuit");g("\\empty","\\emptyset");g("\\Epsilon","\\mathrm{E}");g("\\Eta","\\mathrm{H}");g("\\exist","\\exists");g("\\harr","\\leftrightarrow");g("\\hArr","\\Leftrightarrow");g("\\Harr","\\Leftrightarrow");g("\\hearts","\\heartsuit");g("\\image","\\Im");g("\\infin","\\infty");g("\\Iota","\\mathrm{I}");g("\\isin","\\in");g("\\Kappa","\\mathrm{K}");g("\\larr","\\leftarrow");g("\\lArr","\\Leftarrow");g("\\Larr","\\Leftarrow");g("\\lrarr","\\leftrightarrow");g("\\lrArr","\\Leftrightarrow");g("\\Lrarr","\\Leftrightarrow");g("\\Mu","\\mathrm{M}");g("\\natnums","\\mathbb{N}");g("\\Nu","\\mathrm{N}");g("\\Omicron","\\mathrm{O}");g("\\plusmn","\\pm");g("\\rarr","\\rightarrow");g("\\rArr","\\Rightarrow");g("\\Rarr","\\Rightarrow");g("\\real","\\Re");g("\\reals","\\mathbb{R}");g("\\Reals","\\mathbb{R}");g("\\Rho","\\mathrm{P}");g("\\sdot","\\cdot");g("\\sect","\\S");g("\\spades","\\spadesuit");g("\\sub","\\subset");g("\\sube","\\subseteq");g("\\supe","\\supseteq");g("\\Tau","\\mathrm{T}");g("\\thetasym","\\vartheta");g("\\weierp","\\wp");g("\\Zeta","\\mathrm{Z}");g("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");g("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");g("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");g("\\bra","\\mathinner{\\langle{#1}|}");g("\\ket","\\mathinner{|{#1}\\rangle}");g("\\braket","\\mathinner{\\langle{#1}\\rangle}");g("\\Bra","\\left\\langle#1\\right|");g("\\Ket","\\left|#1\\right\\rangle");var Md=t=>e=>{var r=e.consumeArg().tokens,n=e.consumeArg().tokens,i=e.consumeArg().tokens,s=e.consumeArg().tokens,a=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var l=f=>p=>{t&&(p.macros.set("|",a),i.length&&p.macros.set("\\|",o));var b=f;if(!f&&i.length){var v=p.future();v.text==="|"&&(p.popToken(),b=!0)}return{tokens:b?i:n,numArgs:0}};e.macros.set("|",l(!1)),i.length&&e.macros.set("\\|",l(!0));var c=e.consumeArg().tokens,d=e.expandTokens([...s,...c,...r]);return e.macros.endGroup(),{tokens:d.reverse(),numArgs:0}};g("\\bra@ket",Md(!1));g("\\bra@set",Md(!0));g("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");g("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");g("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");g("\\angln","{\\angl n}");g("\\blue","\\textcolor{##6495ed}{#1}");g("\\orange","\\textcolor{##ffa500}{#1}");g("\\pink","\\textcolor{##ff00af}{#1}");g("\\red","\\textcolor{##df0030}{#1}");g("\\green","\\textcolor{##28ae7b}{#1}");g("\\gray","\\textcolor{gray}{#1}");g("\\purple","\\textcolor{##9d38bd}{#1}");g("\\blueA","\\textcolor{##ccfaff}{#1}");g("\\blueB","\\textcolor{##80f6ff}{#1}");g("\\blueC","\\textcolor{##63d9ea}{#1}");g("\\blueD","\\textcolor{##11accd}{#1}");g("\\blueE","\\textcolor{##0c7f99}{#1}");g("\\tealA","\\textcolor{##94fff5}{#1}");g("\\tealB","\\textcolor{##26edd5}{#1}");g("\\tealC","\\textcolor{##01d1c1}{#1}");g("\\tealD","\\textcolor{##01a995}{#1}");g("\\tealE","\\textcolor{##208170}{#1}");g("\\greenA","\\textcolor{##b6ffb0}{#1}");g("\\greenB","\\textcolor{##8af281}{#1}");g("\\greenC","\\textcolor{##74cf70}{#1}");g("\\greenD","\\textcolor{##1fab54}{#1}");g("\\greenE","\\textcolor{##0d923f}{#1}");g("\\goldA","\\textcolor{##ffd0a9}{#1}");g("\\goldB","\\textcolor{##ffbb71}{#1}");g("\\goldC","\\textcolor{##ff9c39}{#1}");g("\\goldD","\\textcolor{##e07d10}{#1}");g("\\goldE","\\textcolor{##a75a05}{#1}");g("\\redA","\\textcolor{##fca9a9}{#1}");g("\\redB","\\textcolor{##ff8482}{#1}");g("\\redC","\\textcolor{##f9685d}{#1}");g("\\redD","\\textcolor{##e84d39}{#1}");g("\\redE","\\textcolor{##bc2612}{#1}");g("\\maroonA","\\textcolor{##ffbde0}{#1}");g("\\maroonB","\\textcolor{##ff92c6}{#1}");g("\\maroonC","\\textcolor{##ed5fa6}{#1}");g("\\maroonD","\\textcolor{##ca337c}{#1}");g("\\maroonE","\\textcolor{##9e034e}{#1}");g("\\purpleA","\\textcolor{##ddd7ff}{#1}");g("\\purpleB","\\textcolor{##c6b9fc}{#1}");g("\\purpleC","\\textcolor{##aa87ff}{#1}");g("\\purpleD","\\textcolor{##7854ab}{#1}");g("\\purpleE","\\textcolor{##543b78}{#1}");g("\\mintA","\\textcolor{##f5f9e8}{#1}");g("\\mintB","\\textcolor{##edf2df}{#1}");g("\\mintC","\\textcolor{##e0e5cc}{#1}");g("\\grayA","\\textcolor{##f6f7f7}{#1}");g("\\grayB","\\textcolor{##f0f1f2}{#1}");g("\\grayC","\\textcolor{##e3e5e6}{#1}");g("\\grayD","\\textcolor{##d6d8da}{#1}");g("\\grayE","\\textcolor{##babec2}{#1}");g("\\grayF","\\textcolor{##888d93}{#1}");g("\\grayG","\\textcolor{##626569}{#1}");g("\\grayH","\\textcolor{##3b3e40}{#1}");g("\\grayI","\\textcolor{##21242c}{#1}");g("\\kaBlue","\\textcolor{##314453}{#1}");g("\\kaGreen","\\textcolor{##71B307}{#1}");var Nd={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class K5{constructor(e,r,n){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=r,this.expansionCount=0,this.feed(e),this.macros=new W5(G5,r.macros),this.mode=n,this.stack=[]}feed(e){this.lexer=new Sc(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var r,n,i;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;r=this.popToken(),{tokens:i,end:n}=this.consumeArg(["]"])}else({tokens:i,start:r,end:n}=this.consumeArg());return this.pushToken(new Yt("EOF",n.loc)),this.pushTokens(i),r.range(n,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var r=[],n=e&&e.length>0;n||this.consumeSpaces();var i=this.future(),s,a=0,o=0;do{if(s=this.popToken(),r.push(s),s.text==="{")++a;else if(s.text==="}"){if(--a,a===-1)throw new ee("Extra }",s)}else if(s.text==="EOF")throw new ee("Unexpected end of input in a macro argument, expected '"+(e&&n?e[o]:"}")+"'",s);if(e&&n)if((a===0||a===1&&e[o]==="{")&&s.text===e[o]){if(++o,o===e.length){r.splice(-o,o);break}}else o=0}while(a!==0||n);return i.text==="{"&&r[r.length-1].text==="}"&&(r.pop(),r.shift()),r.reverse(),{tokens:r,start:i,end:s}}consumeArgs(e,r){if(r){if(r.length!==e+1)throw new ee("The length of delimiters doesn't match the number of args!");for(var n=r[0],i=0;ithis.settings.maxExpand)throw new ee("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var r=this.popToken(),n=r.text,i=r.noexpand?null:this._getExpansion(n);if(i==null||e&&i.unexpandable){if(e&&i==null&&n[0]==="\\"&&!this.isDefined(n))throw new ee("Undefined control sequence: "+n);return this.pushToken(r),!1}this.countExpansion(1);var s=i.tokens,a=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){s=s.slice();for(var o=s.length-1;o>=0;--o){var l=s[o];if(l.text==="#"){if(o===0)throw new ee("Incomplete placeholder at end of macro body",l);if(l=s[--o],l.text==="#")s.splice(o+1,1);else if(/^[1-9]$/.test(l.text))s.splice(o,2,...a[+l.text-1]);else throw new ee("Not a valid argument number",l)}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new Yt(e)]):void 0}expandTokens(e){var r=[],n=this.stack.length;for(this.pushTokens(e);this.stack.length>n;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),r.push(i)}return this.countExpansion(r.length),r}expandMacroAsText(e){var r=this.expandMacro(e);return r&&r.map(n=>n.text).join("")}_getExpansion(e){var r=this.macros.get(e);if(r==null)return r;if(e.length===1){var n=this.lexer.catcodes[e];if(n!=null&&n!==13)return}var i=typeof r=="function"?r(this):r;if(typeof i=="string"){var s=0;if(i.indexOf("#")!==-1)for(var a=i.replace(/##/g,"");a.indexOf("#"+(s+1))!==-1;)++s;for(var o=new Sc(i,this.settings),l=[],c=o.lex();c.text!=="EOF";)l.push(c),c=o.lex();l.reverse();var d={tokens:l,numArgs:s};return d}return i}isDefined(e){return this.macros.has(e)||Ur.hasOwnProperty(e)||Qe.math.hasOwnProperty(e)||Qe.text.hasOwnProperty(e)||Nd.hasOwnProperty(e)}isExpandable(e){var r=this.macros.get(e);return r!=null?typeof r=="string"||typeof r=="function"||!r.unexpandable:Ur.hasOwnProperty(e)&&!Ur[e].primitive}}var Ec=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,G0=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),Fs={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},Cc={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class ss{constructor(e,r){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new K5(e,r,this.mode),this.settings=r,this.leftrightDepth=0}expect(e,r){if(r===void 0&&(r=!0),this.fetch().text!==e)throw new ee("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());r&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var r=this.nextToken;this.consume(),this.gullet.pushToken(new Yt("}")),this.gullet.pushTokens(e);var n=this.parseExpression(!1);return this.expect("}"),this.nextToken=r,n}parseExpression(e,r){for(var n=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(ss.endOfExpression.indexOf(i.text)!==-1||r&&i.text===r||e&&Ur[i.text]&&Ur[i.text].infix)break;var s=this.parseAtom(r);if(s){if(s.type==="internal")continue}else break;n.push(s)}return this.mode==="text"&&this.formLigatures(n),this.handleInfixNodes(n)}handleInfixNodes(e){for(var r=-1,n,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+r[0]+'" used in math mode',e);var o=Qe[this.mode][r].group,l=$t.range(e),c;if(z6.hasOwnProperty(o)){var d=o;c={type:"atom",mode:this.mode,family:d,loc:l,text:r}}else c={type:o,mode:this.mode,loc:l,text:r};a=c}else if(r.charCodeAt(0)>=128)this.settings.strict&&($1(r.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+r[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+r[0]+'"'+(" ("+r.charCodeAt(0)+")"),e)),a={type:"textord",mode:"text",loc:$t.range(e),text:r};else return null;if(this.consume(),s)for(var f=0;f|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript;(function(t){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},t.languages.css.atrule.inside.rest=t.languages.css;var r=t.languages.markup;r&&(r.tag.addInlined("style","css"),r.tag.addAttribute("style","css"))})(Prism);Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json;Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python;Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};qe.setOptions({breaks:!0,gfm:!0,tables:!0,sanitize:!1});const wa=t=>{if(!t||typeof t!="string")return"";try{const e=e7(t),r=qe.parse(e);return t7(r)}catch(e){return console.error("Markdown渲染失败:",e),`
    渲染失败: ${e.message}
    `}},e7=t=>t.replace(/\$\$([\s\S]*?)\$\$/g,(e,r)=>{try{return`
    ${Mc.renderToString(r.trim(),{displayMode:!0,throwOnError:!1})}
    `}catch(n){return console.warn("数学公式渲染失败:",n),`
    数学公式错误: ${r}
    `}}).replace(/\$([^$\n]+?)\$/g,(e,r)=>{if(r.includes("\\")||r.includes("{")||r.includes("}")||r.includes("^")||r.includes("_")||r.includes("=")||r.includes("+")||r.includes("-")||r.includes("*")||r.includes("/")||r.includes("(")||r.includes(")"))try{return`${Mc.renderToString(r.trim(),{displayMode:!1,throwOnError:!1})}`}catch(n){return console.warn("数学公式渲染失败:",n),`数学公式错误: ${r}`}return e}),t7=t=>{let e=t.replace(//g,'
    ').replace(/
    {const s=i.className.match(/language-(\w+)/);if(s)try{i.innerHTML=Gl.highlight(i.textContent,Gl.languages[s[1]],s[1])}catch(a){console.warn("语法高亮失败:",a)}}),r.innerHTML},r7=t=>{if(!t||typeof t!="string")return!1;const e=t.split(`
    -`);let r=!1,n=!1;for(const a of e){const o=a.trim();o.includes("|")&&o.split("|").length>=3&&(r=!0),o.includes("|")&&o.includes("-")&&/^[\s\|\-\:]+$/.test(o)&&(n=!0)}const i=(t.match(/\|/g)||[]).length,s=i>=6;return r&&n||r&&s||r&&i>=4},n7=t=>!t||typeof t!="string"?!1:r7(t)?!0:[/#{1,6}\s+/,/\*\*.*?\*\*/,/\*.*?\*/,/`.*?`/,/```[\s\S]*?```/,/^\s*[-*+]\s+/m,/^\s*\d+\.\s+/m,/\[.*?\]\(.*?\)/,/!\[.*?\]\(.*?\)/,/\$\$.*?\$\$/,/\$.*?\$/].some(r=>r.test(t)),K0=t=>!t||typeof t!="string"?t||"":n7(t)||t.includes("|")?wa(t):t;const Oo=(t,e)=>{const r=t.__vccOpts||t;for(const[n,i]of e)r[n]=i;return r},i7={class:"mindmap-container"},s7={class:"zoom-level"},a7={key:0,class:"welcome-page"},o7={class:"ai-input-content"},l7=["disabled","onKeydown"],c7={class:"ai-input-actions"},u7=["disabled"],d7=["disabled"],h7={key:0},f7={key:1},p7={key:3,class:"save-controls"},m7={__name:"MindMap",setup(t,{expose:e}){const r=ze(null),n=ze(null),i=ze(null),s=ze({}),a=ze({}),o=ze(null),l=ze(1),c=ze(!0),d=ze(!1),f=ze(!1),p=ze(null),b=ze(""),v=ze(!1);ze(new Map),ze(!1),ze({x:0,y:0}),ze(null);const k=()=>{c.value=!0,r.value&&(r.value.innerHTML=""),n.value&&(n.value=null)},w=()=>{c.value=!1},M=()=>{c.value=!1},x=()=>{if(!n.value||!r.value)return null;try{const y=r.value.querySelector("canvas");if(y)return{transform:y.style.transform}}catch(y){console.warn("保存位置失败:",y)}return null},A=y=>{if(!(!y||!r.value))try{const E=r.value.querySelector("canvas");E&&y.transform&&(E.style.transform=y.transform)}catch(E){console.warn("恢复位置失败:",E)}},N=async(y,E=!1)=>{try{const I=E?x():null;console.log("🔍 loadMindmapData 被调用,数据:",y),console.log("🔍 数据字段:",Object.keys(y||{})),y&&y.id?(o.value=y.id,console.log("🔍 设置当前思维导图ID (data.id):",y.id)):y&&y.mindmapId?(o.value=y.mindmapId,console.log("🔍 设置当前思维导图ID (data.mindmapId):",y.mindmapId)):y&&y.nodeData&&y.nodeData.mindmapId?(o.value=y.nodeData.mindmapId,console.log("🔍 设置当前思维导图ID (data.nodeData.mindmapId):",y.nodeData.mindmapId)):y&&y.nodeData&&y.nodeData.mindmap_id?(o.value=y.nodeData.mindmap_id,console.log("🔍 设置当前思维导图ID (data.nodeData.mindmap_id):",y.nodeData.mindmap_id)):(console.warn("⚠️ 数据中没有找到 id 或 mindmapId 字段"),console.log("🔍 可用的字段:",Object.keys(y||{})),y&&y.nodeData&&console.log("🔍 nodeData字段:",Object.keys(y.nodeData||{}))),console.log("🔍 设置后的 currentMindmapId.value:",o.value),w(),await X0(),r.value||(console.warn("⚠️ 思维导图容器未准备好,等待DOM更新..."),await new Promise(H=>setTimeout(H,100)),r.value||console.warn("⚠️ 思维导图容器仍未准备好,尝试继续执行..."));try{if(r.value){console.log("🔍 创建Mind Elixir实例,设置markdown函数"),n.value=new bt({el:r.value,direction:bt.RIGHT,draggable:!0,contextMenu:!0,toolBar:!0,nodeMenu:!1,keypress:!0,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:(U,ne)=>{if(console.log("🔍 Mind Elixir markdown函数被调用:",U.substring(0,100)+"..."),U.includes("|")||U.includes("**")||U.includes("`")||U.includes("#")){console.log("🎨 检测到markdown内容,开始渲染:",U.substring(0,100)+"...");const B=K0(U);return console.log("🎨 渲染结果:",B.substring(0,200)+"..."),B}return console.log("🔍 内容不包含markdown语法,返回原文本"),U}}),console.log("✅ Mind Elixir实例创建完成,markdown函数已设置"),console.log("🔍 初始化Mind Elixir数据:",y);const H=n.value.init(y);console.log("✅ Mind Elixir实例创建成功,初始化结果:",H)}else{console.warn("⚠️ 容器未准备好,延迟创建Mind Elixir实例..."),setTimeout(()=>{if(r.value){n.value=new bt({el:r.value,direction:bt.RIGHT,draggable:!0,contextMenu:!0,toolBar:!0,nodeMenu:!1,keypress:!0,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:(U,ne)=>U.includes("|")||U.includes("**")||U.includes("`")||U.includes("#")?K0(U):U});const H=n.value.init(y);console.log("✅ Mind Elixir实例延迟创建成功"),setTimeout(()=>{E&&I?A(I):O(),K(),_()},300)}},200);return}}catch{setTimeout(()=>{try{if(r.value){n.value=new bt({el:r.value,direction:bt.RIGHT,draggable:!0,contextMenu:!0,toolBar:!0,nodeMenu:!1,keypress:!0,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:(ne,B)=>ne.includes("|")||ne.includes("**")||ne.includes("`")||ne.includes("#")?K0(ne):ne});const U=n.value.init(y);setTimeout(()=>{E&&I?A(I):O(),K(),_()},300)}}catch(U){console.error("❌ Mind Elixir实例重试创建失败:",U)}},500);return}setTimeout(()=>{E&&I?A(I):O(),w(),K(),setTimeout(E&&I?()=>{A(I),_()}:()=>{O(),_()},500)},100)}catch{}},_=()=>{n.value&&r.value&&setTimeout(()=>{r.value.querySelectorAll("me-tpc, .topic, [data-id]").forEach((E,I)=>{var B;const H=E.getAttribute("data-id")||E.id||E.getAttribute("nodeid")||((B=E.querySelector("[data-id]"))==null?void 0:B.getAttribute("data-id"));if(!H)return;const U=(be,ue)=>{for(const ke of be){if(ke.id===ue)return ke;if(ke.children){const Fe=U(ke.children,ue);if(Fe)return Fe}}return null},ne=U(n.value.data.nodeData,H);if(ne&&ne.data&&ne.data.des){let be=E.querySelector(".node-description");be||(be=document.createElement("div"),be.className="node-description",be.style.cssText=`
    -            font-size: 11px;
    -            color: #666;
    -            margin-top: 6px;
    -            padding: 6px 8px;
    -            background: rgba(0, 0, 0, 0.03);
    -            border-radius: 4px;
    -            max-width: 250px;
    -            word-wrap: break-word;
    -            line-height: 1.3;
    -            border-left: 3px solid #e0e0e0;
    -            display: block;
    -          `,E.appendChild(be));const ue=ne.data.des;ue.length>150?(be.textContent=ue.substring(0,150)+"...",be.title=ue):be.textContent=ue}})},1e3)},O=()=>{try{const y=r.value;if(!y)return;const E=y.querySelector(".map-canvas");if(!E)return;const I=E.querySelectorAll("me-tpc");if(I.length===0)return;let H=1/0,U=-1/0,ne=1/0,B=-1/0;I.forEach(C0=>{const wn=C0.getBoundingClientRect(),M0=y.getBoundingClientRect(),Lo=wn.left-M0.left,zo=wn.top-M0.top;H=Math.min(H,Lo),U=Math.max(U,Lo+wn.width),ne=Math.min(ne,zo),B=Math.max(B,zo+wn.height)});const be=(H+U)/2,ue=(ne+B)/2,ke=y.clientWidth/2,Fe=y.clientHeight/2,_e=ke-be,et=Fe-ue;E.style.transform=`translate(${_e}px, ${et}px)`,E.style.opacity="1",E.style.transition="opacity 0.3s ease";const mt=100,It=Math.max(_e,mt),yr=Math.max(et,mt);E.style.transform=`translate(${It}px, ${yr}px)`,E.style.opacity="1",E.style.visibility="visible"}catch{}},z=()=>{if(!i.value)return;if(n.value&&n.value.getNodeById)try{const E=n.value.getNodeById(i.value.id);if(E){const I=E.getBoundingClientRect(),H=r.value.getBoundingClientRect(),U=I.left-H.left+I.width/2,ne=I.bottom-H.top+10;s.value={left:`${U}px`,top:`${ne}px`};return}}catch{}let y=document.querySelector(`[data-id="${i.value.id}"]`);if(y||(y=document.querySelector(`.topic[data-id="${i.value.id}"]`)),y||(y=document.querySelector(`[data-node-id="${i.value.id}"]`)),y||(y=document.querySelector(`[data-nodeid="me${i.value.id}"]`)),!y){const E=document.querySelectorAll("me-tpc");for(const I of E)if(I.getAttribute("data-nodeid")===`me${i.value.id}`){y=I;break}}if(!y){const E=document.querySelectorAll(".topic");for(const I of E)if(I.textContent.trim()===i.value.topic){y=I;break}}if(!y){const E=document.querySelectorAll("*");for(const I of E)if(I.textContent&&I.textContent.trim()===i.value.topic){if(I.tagName==="ME-TPC"){y=I;break}if(I.closest("me-tpc")){y=I;break}if(I.classList.contains("topic")||I.closest(".topic")){y=I.closest(".topic")||I;break}}}if(y){const E=y.getBoundingClientRect(),I=r.value.getBoundingClientRect(),H=E.left-I.left+E.width/2,U=E.bottom-I.top+10;s.value={left:`${H}px`,top:`${U}px`}}else s.value={left:"50%",top:"50%",transform:"translate(-50%, -50%)"}},Y=async()=>{i.value&&(await Ce(i.value),i.value=null)},W=async()=>{i.value&&(await me(i.value),i.value=null)},he=async()=>{i.value&&(await de(i.value),i.value=null)},pe=async()=>{if(!i.value)return;console.log("Ask AI for node:",i.value);const y=parseFloat(s.value.left)||0,E=parseFloat(s.value.top)||0;a.value={left:`${y}px`,top:`${E+60}px`,transform:"translateX(-50%)"},f.value=!0,p.value=i.value},Ae=()=>{f.value=!1,p.value=null,b.value="",v.value=!1,i.value=null},st=y=>{if(!y)return"";const E=[];return y.parent&&y.parent.topic&&E.push(`父节点: ${y.parent.topic}`),y.parent&&y.parent.parent&&y.parent.parent.topic&&E.push(`祖父节点: ${y.parent.parent.topic}`),E.join(" | ")},Ze=y=>{y.ctrlKey||y.metaKey||(y.preventDefault(),tt())},tt=async()=>{if(!(!b.value.trim()||!p.value||v.value)){v.value=!0;try{const y="你是一个专业的思维导图分析助手。请根据用户的问题和提供的节点信息,给出专业、有用的回答。",E=`节点信息:
    -当前节点:${p.value.topic}
    -上下文:${st(p.value)}
    -
    -用户问题:${b.value}
    -
    -请给出详细的回答,回答应该:
    -1. 直接回答用户的问题
    -2. 提供具体的建议或改进方案
    -3. 保持专业和有用的语调
    -4. 回答长度适中,便于在思维导图中展示`;console.log("发送AI请求:",{systemPrompt:y,userPrompt:E});const I=await fetch("http://127.0.0.1:8000/api/ai/generate-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({system_prompt:y,user_prompt:E,model:"glm-4.5",base_url:"https://open.bigmodel.cn/api/paas/v4/",api_key:"ce39bdd4fcf34ec0aec75072bc9ff988.hAp7HZTVUwy7vImn"})});if(!I.ok)throw new Error(`HTTP error! status: ${I.status}`);let H="";const U=I.body.getReader(),ne=new TextDecoder;let B="";for(;;){const{done:be,value:ue}=await U.read();if(be)break;B+=ne.decode(ue,{stream:!0});const ke=B.split(`
    -`);B=ke.pop()||"";for(const Fe of ke)if(Fe.startsWith("data: "))try{const _e=JSON.parse(Fe.slice(6));if(_e.type==="chunk")H+=_e.content;else if(_e.type==="error")throw new Error(_e.content)}catch(_e){console.warn("解析流式数据失败:",_e)}}await Ee(p.value,b.value,H),Ae()}catch(y){console.error("AI请求失败:",y),alert("AI请求失败,请稍后重试")}finally{v.value=!1}}},$e=y=>y.replace(/^### (.*$)/gim,"📋 $1").replace(/^## (.*$)/gim,"📌 $1").replace(/^# (.*$)/gim,"🎯 $1").replace(/\*\*(.*?)\*\*/g,(E,I)=>{if(I.includes(":")){const H=I.split(":");if(H.length>1)return`【${H[0]}】: ${H.slice(1).join(":")}`}return`【${I}】`}).replace(/\*(.*?)\*/g,"《$1》").replace(/^- (.*$)/gim,"  • $1").replace(/^\d+\. (.*$)/gim,"  $&").replace(/```(.*?)```/gims,"💻 $1").replace(/`(.*?)`/g,"「$1」").replace(/\[([^\]]+)\]\([^)]+\)/g,"🔗 $1").replace(/\n\n/g,`
    -`).replace(/\n/g,`
    -  `),Oe=(y,E,I)=>{const H=y.split(`
    -`);let U=I,ne=[];for(let B=0;B0){const It=$e(et.join(`
    -`));_e.topic=_e.topic+`
    -
    -`+It}E.children.push(_e),B=mt-1}else ue&&ne.push(ue)}if(ne.length>0){const B=ne.join(`
    -`).trim();B&&B.split(`
    -
    -`).filter(ue=>ue.trim()).forEach(ue=>{const ke=$e(ue.trim());if(ke){const Fe={id:`node_${U++}`,topic:ke,children:[],level:(E.level||0)+1,data:{}};E.children.push(Fe)}})}return{nodeCounter:U}},ve=y=>{const E=y.split(`
    -`);let I=null;const H=[];let U=0,ne=[];if(E.forEach((B,be)=>{const ue=B.trim(),ke=ue.match(/^(#{1,6})\s+(.+)$/);if(ke){if(ne.length>0&&H.length>0){const It=ne.join(`
    -`).trim();It&&(U=Oe(It,H[H.length-1],U).nodeCounter),ne=[]}const Fe=ke[1].length,_e=ke[2].trim(),et=$e(_e),mt={id:`node_${U++}`,topic:et,children:[],level:Fe,data:{}};if(Fe===1&&!I)I=mt,H.length=0,H.push(I);else{for(;H.length>1&&H[H.length-1].level>=Fe;)H.pop();H.length>0&&H[H.length-1].children.push(mt),H.push(mt)}}else ue&&ne.push(ue)}),ne.length>0&&H.length>0){const B=ne.join(`
    -`).trim();B&&(U=Oe(B,H[H.length-1],U).nodeCounter)}return I||(I={id:"root",topic:"根节点",children:[],data:{}}),I},Ee=async(y,E,I)=>{var H,U,ne;try{const be=(yr=>yr.replace(/^#+\s*/gm,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/^\s*[-*+]\s*(?![|])/gm,"• ").replace(/\n{3,}/g,`
    -
    -`).trim())(I),ue=`# ${E}
    -
    -${be}`,ke=ve(ue),Fe={title:E,des:`AI追问产生的节点 - ${new Date().toLocaleString()}`,parentId:y.id,isRoot:!1},_e=[];if(ke.children&&ke.children.length>0&&ke.children.forEach(yr=>{_e.push({title:yr.topic,des:"",parentId:null,isRoot:!1})}),console.log("当前思维导图ID:",o.value),!o.value)throw new Error("没有找到当前思维导图ID,无法创建节点");const et=await nt.addNodes(o.value,[Fe]);if(!et.data||!et.data.success)throw new Error("AI父节点创建失败");const mt=(ne=(U=(H=et.data.data)==null?void 0:H.nodes)==null?void 0:U[0])==null?void 0:ne.id;if(!mt)throw new Error("无法获取创建的父节点ID");_e.forEach(yr=>{yr.parentId=mt});let It=null;if(_e.length>0&&(It=await nt.addNodes(o.value,_e)),et.data&&et.data.success)await ge();else throw new Error("AI父节点创建失败")}catch(B){console.error("创建AI节点失败:",B),alert("创建AI回答节点失败: "+B.message)}},rt=async()=>{if(i.value){try{const y=i.value.topic||i.value.title||"无标题";if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(y),Ve();else{const E=document.createElement("textarea");E.value=y,E.style.position="fixed",E.style.left="-999999px",E.style.top="-999999px",document.body.appendChild(E),E.focus(),E.select();const I=document.execCommand("copy");document.body.removeChild(E),I?Ve():Ie()}}catch{Ie()}i.value=null}},Ve=()=>{const y=document.createElement("div");y.textContent="文本已复制到剪贴板",y.style.cssText=`
    -    position: fixed;
    -    top: 20px;
    -    right: 20px;
    -    background: #4CAF50;
    -    color: white;
    -    padding: 12px 20px;
    -    border-radius: 6px;
    -    font-size: 14px;
    -    z-index: 10000;
    -    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    -    animation: slideIn 0.3s ease;
    -  `;const E=document.createElement("style");E.textContent=`
    -    @keyframes slideIn {
    -      from { transform: translateX(100%); opacity: 0; }
    -      to { transform: translateX(0); opacity: 1; }
    -    }
    -  `,document.head.appendChild(E),document.body.appendChild(y),setTimeout(()=>{y.parentNode&&y.parentNode.removeChild(y),E.parentNode&&E.parentNode.removeChild(E)},3e3)},Ie=()=>{const y=document.createElement("div");y.textContent="复制失败,请手动复制",y.style.cssText=`
    -    position: fixed;
    -    top: 20px;
    -    right: 20px;
    -    background: #f44336;
    -    color: white;
    -    padding: 12px 20px;
    -    border-radius: 6px;
    -    font-size: 14px;
    -    z-index: 10000;
    -    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    -    animation: slideIn 0.3s ease;
    -  `,document.body.appendChild(y),setTimeout(()=>{y.parentNode&&y.parentNode.removeChild(y)},3e3)},Rt=()=>{const y=document.createElement("div");y.textContent="✅ 节点编辑已保存",y.style.cssText=`
    -    position: fixed;
    -    top: 20px;
    -    right: 20px;
    -    background: #4CAF50;
    -    color: white;
    -    padding: 12px 20px;
    -    border-radius: 6px;
    -    font-size: 14px;
    -    z-index: 10000;
    -    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    -    animation: slideIn 0.3s ease;
    -  `,document.body.appendChild(y),setTimeout(()=>{y.parentNode&&y.parentNode.removeChild(y)},2e3)},pt=()=>{const y=document.createElement("div");y.textContent="❌ 节点编辑保存失败",y.style.cssText=`
    -    position: fixed;
    -    top: 20px;
    -    right: 20px;
    -    background: #f44336;
    -    color: white;
    -    padding: 12px 20px;
    -    border-radius: 6px;
    -    font-size: 14px;
    -    z-index: 10000;
    -    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    -    animation: slideIn 0.3s ease;
    -  `,document.body.appendChild(y),setTimeout(()=>{y.parentNode&&y.parentNode.removeChild(y)},3e3)},j=async y=>{try{const E=y.obj,I=y.toObj,H=y.originParentId;if(E&&I){const U=E,ne=I.id;await se(U,ne)}}catch{}},G=async y=>{try{const E=y.obj;E?await te(E):console.error("无法解析编辑操作:",y)}catch(E){console.error("处理编辑完成失败:",E)}},te=async y=>{var E,I;try{if(!o.value){console.error("无法获取思维导图ID");return}const H=await nt.updateNode(y.id,{newTitle:y.topic,newDes:((E=y.data)==null?void 0:E.des)||"",newParentId:y.parentId||((I=y.parent)==null?void 0:I.id)});H.data&&H.data.success?Rt():(console.error("更新节点编辑失败:",H.data),pt())}catch(H){console.error("更新节点编辑失败:",H),pt()}},se=async(y,E)=>{var I;try{if(!(y.mindmapId||y.mindmap_id)){console.error("无法获取思维导图ID");return}const U=await nt.updateNode(y.id,{newTitle:y.topic,newDes:((I=y.data)==null?void 0:I.des)||"",newParentId:E});U.data&&U.data.success||console.error("更新节点父节点失败:",U.data)}catch(H){console.error("更新节点父节点失败:",H)}},Ce=async y=>{var E;try{await Ue();const I=o.value||y.mindmap_id||y.mindmapId;if(!I){console.error("无法获取思维导图ID");return}const H=await nt.addNodes(I,[{title:"新子节点",des:"子节点描述",parentId:y.id}]);if(H.data&&H.data.success){const U=((E=H.data.data)==null?void 0:E.nodes)||[];if(U.length>0){const ne=U[0];try{const B=x();await new Promise(ue=>setTimeout(ue,800));const be=await nt.getMindmap(I);if(be.data&&be.data.nodeData)await N(be.data,!0),setTimeout(async()=>{try{const ue=await nt.getMindmap(I);if(ue.data&&ue.data.nodeData){const ke=_e=>{if(_e.id===ne.id)return _e;if(_e.children)for(const et of _e.children){const mt=ke(et);if(mt)return mt}return null},Fe=ke(ue.data.nodeData);Fe&&n.value&&n.value.editText(Fe)}}catch(ue){console.error("查找新节点失败:",ue)}},1e3);else throw new Error("无法获取思维导图数据")}catch(B){console.error("刷新思维导图失败:",B)}}}}catch(I){console.error("添加子节点失败:",I)}},me=async y=>{var E;try{await Ue(),console.log("添加兄弟节点到API:",y.id),console.log("节点信息:",{id:y.id,parentId:y.parentId,parent:y.parent,mindmap_id:y.mindmap_id,mindmapId:y.mindmapId});const I=o.value||y.mindmap_id||y.mindmapId;if(!I){console.error("无法获取思维导图ID");return}let H=y.parentId;!H&&y.parent&&(H=y.parent.id);const U=await nt.addNodes(I,[{title:"新兄弟节点",des:"兄弟节点描述",parentId:H}]);if(console.log("添加兄弟节点响应:",U),U.data&&U.data.success){const ne=((E=U.data.data)==null?void 0:E.nodes)||[];if(ne.length>0){const B=ne[0];console.log("新创建的兄弟节点:",B),console.log("🎯 使用MindElixir init方法重新初始化数据...");try{const be=x(),ue=await nt.getMindmap(I);if(ue.data&&ue.data.nodeData)await N(ue.data,!0),console.log("✅ 思维导图刷新成功"),setTimeout(async()=>{try{const ke=await nt.getMindmap(I);if(ke.data&&ke.data.nodeData){const Fe=et=>{if(et.id===B.id)return et;if(et.children)for(const mt of et.children){const It=Fe(mt);if(It)return It}return null},_e=Fe(ke.data.nodeData);_e&&n.value&&(console.log("找到新节点,进入编辑模式:",_e),n.value.editText(_e))}}catch(ke){console.error("查找新节点失败:",ke)}},1e3);else throw new Error("无法获取思维导图数据")}catch(be){console.error("重新初始化失败,使用完整重新加载:",be);const ue=await nt.getMindmap(I);ue.data&&ue.data.nodeData&&await N(ue.data,!0)}}}}catch(I){console.error("添加兄弟节点失败:",I)}},de=async y=>{try{await Ue(),console.log("删除节点从API:",y.id);const E=await nt.deleteNodes([y.id]);if(console.log("删除节点响应:",E),E.data&&E.data.success){const I=o.value||y.mindmap_id||y.mindmapId;if(I){const H=await nt.getMindmap(I);H.data&&H.data.nodeData&&(await N(H.data,!0),setTimeout(async()=>{try{console.log("重新加载思维导图数据...");const U=await nt.getMindmap(I);U.data&&U.data.nodeData&&(await N(U.data,!0),console.log("思维导图数据重新加载成功"))}catch(U){console.error("重新加载思维导图失败:",U)}},1500))}}}catch(E){console.error("删除节点失败:",E)}},Ue=async()=>{const y=r.value;if(y){const E=y.querySelector("input:focus");if(E&&i.value){const I=E.value;I!==i.value.topic&&I.trim()!==""&&(console.log("保存当前编辑:",I),i.value.topic=I,await S(i.value))}}},S=async y=>{var E,I,H,U,ne;try{console.log("保存Mind Elixir编辑,节点ID:",y.id),console.log("编辑内容:",{newTitle:y.topic,newDes:((E=y.data)==null?void 0:E.des)||""});const B=String(y.id),be=await nt.updateNode(B,{newTitle:y.topic,newDes:((I=y.data)==null?void 0:I.des)||""});console.log("更新节点API响应:",be),console.log("节点编辑已保存到后端"),console.log("✅ 节点编辑已保存,无需重新加载")}catch(B){console.error("保存Mind Elixir编辑失败:",B),console.error("错误详情:",(H=B.response)==null?void 0:H.data),alert("保存编辑失败: "+(((ne=(U=B.response)==null?void 0:U.data)==null?void 0:ne.detail)||B.message))}},D=y=>{console.log("打开编辑模态框:",y),n.value.editText(y)},F=async(y,E,I)=>{var H,U,ne;try{console.log("开始创建节点:",y.topic,"父节点ID:",I);const B=await nt.addNodes(E,{title:y.topic||y.title||"无标题",des:((H=y.data)==null?void 0:H.des)||"",parentId:I});if(console.log("创建节点响应:",B),B.data&&B.data.success){const ue=(ne=(((U=B.data.data)==null?void 0:U.nodes)||[])[0])==null?void 0:ne.id;if(console.log("当前节点ID:",ue),y.children&&y.children.length>0){console.log("开始创建子节点,数量:",y.children.length);for(const ke of y.children)await F(ke,E,ue)}else console.log("节点没有子节点,创建完成")}else console.error("创建节点失败,响应:",B)}catch(B){console.error("创建节点失败:",B)}},K=()=>{if(!n.value)return;console.log("绑定事件监听器..."),r.value.addEventListener("wheel",I=>{if(I.ctrlKey||I.metaKey){I.preventDefault();const H=I.deltaY>0?.9:1.1,U=Math.max(.3,Math.min(3,l.value*H));if(n.value){const ne=r.value.querySelector(".map-container");ne&&(ne.style.transform=`scale(${U})`,l.value=U,localStorage.setItem("mindmap-zoom-level",U.toString()))}}}),n.value.bus.addListener("select",I=>{console.log("select事件触发:",I),i.value=I,setTimeout(()=>{(!s.value.left||s.value.left==="50%")&&z()},200)}),n.value.bus.addListener("selectNode",I=>{console.log("selectNode事件触发:",I),i.value=I,setTimeout(()=>{(!s.value.left||s.value.left==="50%")&&z()},200)}),n.value.bus.addListener("scale",I=>{Math.abs(I-1)<.01&&Math.abs(l.value-1)>.01&&setTimeout(()=>{re()},50)});const y=setInterval(()=>{l.value!==1&&r.value&&ie()},100);window.zoomIntervalId=y;let E=0;r.value.addEventListener("click",I=>{const H=Date.now();if(H-E<100)return;E=H;const U=I.target,ne=U.closest("me-tpc")||U.closest(".topic")||U.classList.contains("topic")||U.tagName==="ME-TPC";if(i.value&&ne){const B=r.value.getBoundingClientRect(),be=I.clientX-B.left,ue=I.clientY-B.top+50;s.value={left:`${be}px`,top:`${ue}px`}}else ne||(i.value=null,f.value&&(f.value=!1,p.value=null,b.value="",v.value=!1))}),n.value.bus.addListener("edit",I=>{console.log("edit事件触发:",I),D(I)}),n.value.bus.addListener("editFinish",I=>{console.log("editFinish事件触发:",I),G(I)}),n.value.bus.addListener("operation",I=>{console.log("Mind Elixir操作事件:",I),I.name==="moveNode"?(console.log("检测到节点移动操作:",I),j(I)):I.name==="finishEdit"&&(console.log("检测到编辑完成操作:",I),G(I))}),n.value.bus.addListener("addChild",I=>{console.log("添加子节点:",I),Ce(I)}),n.value.bus.addListener("addSibling",I=>{console.log("添加兄弟节点:",I),me(I)}),n.value.bus.addListener("removeNode",I=>{console.log("删除节点:",I),de(I)})},q=()=>{if(n.value){const y=Math.min(l.value*1.2,3),E=r.value.querySelector(".map-container");E&&(E.style.transform=`scale(${y})`,l.value=y,localStorage.setItem("mindmap-zoom-level",y.toString()))}},P=()=>{if(n.value){const y=Math.max(l.value/1.2,.3),E=r.value.querySelector(".map-container");E&&(E.style.transform=`scale(${y})`,l.value=y,localStorage.setItem("mindmap-zoom-level",y.toString()))}},Z=()=>{if(n.value){const y=r.value.querySelector(".map-container");y&&(y.style.transform="scale(1)",l.value=1,localStorage.setItem("mindmap-zoom-level","1"))}},re=()=>{if(n.value){const y=localStorage.getItem("mindmap-zoom-level");if(y){const E=parseFloat(y);if(E>=.3&&E<=3){const I=r.value.querySelector(".map-container");I&&(I.style.transform=`scale(${E})`,l.value=E)}}}},ie=()=>{if(n.value&&l.value!==1&&r.value){const y=r.value.querySelector(".map-container");y&&(y.style.transform=`scale(${l.value})`)}},J=async()=>{var y;if(console.log("🚀🚀🚀 保存函数被调用 🚀🚀🚀"),console.log("🔍 mindElixir.value:",n.value),console.log("🔍 currentMindmapId.value:",o.value),console.log("🔍 mindmapEl.value:",r.value),console.log("🔍🔍🔍 全局状态检查开始 🔍🔍🔍"),console.log("🔍 - showWelcome:",c.value),console.log("🔍 - 是否有思维导图容器:",!!r.value),console.log("🔍 - MindElixir实例状态:",!!n.value),console.log("🔍🔍🔍 全局状态检查结束 🔍🔍🔍"),n.value&&n.value.data?(console.log("🔍🔍🔍 MindElixir数据检查开始 🔍🔍🔍"),console.log("🔍 - 数据对象:",n.value.data),console.log("🔍 - 数据字段:",Object.keys(n.value.data)),console.log("🔍 - 是否有nodeData:",!!n.value.data.nodeData),console.log("🔍 - 是否有nodes:",!!n.value.data.nodes),console.log("🔍🔍🔍 MindElixir数据检查结束 🔍🔍🔍")):console.log("⚠️ MindElixir数据不存在或为空"),!n.value||!o.value){if(console.warn("⚠️ 没有可保存的思维导图数据"),console.warn("🔍 mindElixir.value 状态:",!!n.value),console.warn("🔍 currentMindmapId.value 状态:",!!o.value),n.value&&n.value.data&&(console.log("🔍 尝试从MindElixir数据中获取ID"),console.log("🔍 MindElixir数据:",n.value.data),n.value.data.mindmapId?(o.value=n.value.data.mindmapId,console.log("🔍 从MindElixir数据中获取到mindmapId:",n.value.data.mindmapId)):n.value.data.mindmap_id&&(o.value=n.value.data.mindmap_id,console.log("🔍 从MindElixir数据中获取到mindmap_id:",n.value.data.mindmap_id))),!o.value&&n.value){if(console.log("🔍 尝试重新初始化MindElixir数据..."),console.log("🔍 MindElixir实例属性:",Object.keys(n.value)),console.log("🔍 MindElixir实例方法:",Object.getOwnPropertyNames(Object.getPrototypeOf(n.value))),n.value.getData){const E=n.value.getData();console.log("🔍 通过getData()获取的数据:",E),E&&E.nodeData&&(console.log("🔍 nodeData详情:",E.nodeData),E.nodeData.mindmapId?(o.value=E.nodeData.mindmapId,console.log("🔍 从nodeData.mindmapId获取到ID:",E.nodeData.mindmapId)):E.nodeData.mindmap_id?(o.value=E.nodeData.mindmap_id,console.log("🔍 从nodeData.mindmap_id获取到ID:",E.nodeData.mindmap_id)):(console.log("🔍 nodeData中没有找到mindmapId字段"),console.log("🔍 nodeData字段:",Object.keys(E.nodeData)))),!o.value&&E&&(console.log("🔍 检查其他可能的ID字段..."),E.id?(o.value=E.id,console.log("🔍 从data.id获取到ID:",E.id)):E.mindmapId&&(o.value=E.mindmapId,console.log("🔍 从data.mindmapId获取到ID:",E.mindmapId)))}n.value.mindElixirData&&(console.log("🔍 mindElixirData:",n.value.mindElixirData),n.value.mindElixirData.id&&(o.value=n.value.mindElixirData.id,console.log("🔍 从mindElixirData获取到ID:",n.value.mindElixirData.id)))}if(!o.value){console.warn("⚠️ 仍然无法获取思维导图ID,无法保存"),console.warn("🔍 建议:请先加载一个思维导图,然后再尝试保存");return}}try{console.log("💾 开始保存思维导图..."),console.log("🔍 当前思维导图ID:",o.value),console.log("🔍 MindElixir实例:",n.value);let E=null;if(n.value&&n.value.getData?(E=n.value.getData(),console.log("🔍 通过getData()获取的数据:",E)):(E=n.value.data,console.log("🔍 通过data属性获取的数据:",E)),!E){console.warn("⚠️ MindElixir数据为空");return}let I=[];console.log("🔍 数据结构分析:"),console.log("🔍 - currentData.nodeData:",E.nodeData),console.log("🔍 - currentData.nodes:",E.nodes),console.log("🔍 - currentData.nodeData.children:",(y=E.nodeData)==null?void 0:y.children);const H=B=>{B&&B.id&&(I.push(B),console.log(`🔍 收集节点: ${B.id} - ${B.topic||B.content||"无标题"}`),B.children&&B.children.length>0&&B.children.forEach(be=>H(be)))};if(E.nodeData)H(E.nodeData),console.log("🔍 从根节点收集到节点数量:",I.length);else if(E.nodes&&Array.isArray(E.nodes))E.nodes.forEach(B=>H(B)),console.log("🔍 从nodes数组收集到节点数量:",I.length);else if(Array.isArray(E))E.forEach(B=>H(B)),console.log("🔍 从currentData数组收集到节点数量:",I.length);else{console.warn("⚠️ 无法找到节点数据"),console.log("🔍 可用的数据字段:",Object.keys(E));return}if(I.length===0){console.warn("⚠️ 没有收集到任何节点");return}console.log("🔍 找到节点数据:",I),console.log("🔍 节点数量:",I.length),console.log("🔍 节点数据类型:",Array.isArray(I)?"数组":typeof I);const U=[];if(I.forEach((B,be)=>{if(console.log(`🔍 处理节点 ${be}:`,B),B&&B.id){const ue=B.topic||B.content||B.text||"",ke=B.x||B.offsetX||0,Fe=B.y||B.offsetY||0;console.log(`🔍 节点 ${B.id} 内容:`,ue,"位置:",{x:ke,y:Fe});const _e={content:ue,position:{x:ke,y:Fe}};(B.parentId||B.parent)&&(_e.parentId=B.parentId||B.parent,console.log(`🔍 节点 ${B.id} 父节点:`,_e.parentId)),console.log(`🔍 准备保存节点 ${B.id}:`,_e),U.push(nt.updateNode(B.id,_e).then(et=>{console.log(`✅ 节点 ${B.id} 保存成功:`,et)}).catch(et=>{console.error(`❌ 节点 ${B.id} 保存失败:`,et)}))}else console.warn(`⚠️ 节点 ${be} 缺少ID:`,B)}),console.log("🔍 准备保存的节点数量:",U.length),U.length===0){console.warn("⚠️ 没有找到需要保存的节点");return}const ne=await Promise.all(U);console.log("🔍 保存结果:",ne),console.log("🎉 思维导图保存完成!"),console.log("🔄 保存完成,开始自动刷新..."),await ge()}catch(E){console.error("❌ 保存思维导图失败:",E)}},ge=async()=>{if(!o.value){console.warn("⚠️ 没有当前思维导图ID,无法刷新");return}try{console.log("🔄 开始刷新思维导图...");const y=await nt.getMindmap(o.value);y.data&&y.data.nodeData?(console.log("✅ 获取到最新数据,开始刷新显示..."),await N(y.data,!0),console.log("🎉 思维导图刷新完成!")):console.warn("⚠️ 无法获取思维导图数据")}catch(y){console.error("❌ 刷新思维导图失败:",y)}},le=async(y,E)=>{try{const I=String(o.value||"");if(n.value&&I&&I.startsWith("temp-")){console.log("🔄 检测到实时渲染的思维导图,将保存到数据库并更新ID");const ne=x();console.log("📍 保存当前位置:",ne);const B=await nt.createMindmap(E||"预览思维导图",y);if(console.log("🔄 创建思维导图响应:",B),B.data&&B.data.id){const be=B.data.id;console.log("🎉 创建思维导图成功,新思维导图的ID是:",be);const ue=o.value;if(o.value=be,n.value&&n.value.data){n.value.data.mindmapId=be,n.value.data.id=be;const ke=Fe=>{Fe&&(Fe.mindmapId=be,Fe.children&&Fe.children.forEach(_e=>ke(_e)))};n.value.data.nodeData&&ke(n.value.data.nodeData)}console.log("✅ 已更新思维导图ID,保持视图状态"),console.log("🔄 从临时ID",ue,"更新为正式ID",be),ne&&setTimeout(()=>{A(ne),console.log("📍 已恢复位置和缩放状态")},100),window.dispatchEvent(new CustomEvent("mindmap-saved",{detail:{mindmapId:be,title:E,timestamp:Date.now(),fromRealtime:!0}}));return}}console.log("🔄 没有检测到实时渲染的思维导图,使用标准保存流程");const U=await nt.createMindmap(E||"预览思维导图",y);if(console.log("🔄 创建思维导图响应:",U),U.data&&U.data.id){const ne=U.data.id;if(console.log("🎉 创建思维导图成功,新思维导图的ID是:",ne),console.log("📊 响应数据详情:",U.data),U.data.nodeData)console.log("✅ 思维导图创建时已包含节点数据,直接加载"),o.value=ne,w(),await N(U.data),window.dispatchEvent(new CustomEvent("mindmap-saved",{detail:{mindmapId:ne,title:E,timestamp:Date.now()}})),setTimeout(async()=>{try{console.log("🔄 重新加载思维导图数据...");const B=await nt.getMindmap(ne);B.data&&B.data.nodeData&&(await N(B.data),console.log("✅ 思维导图数据重新加载成功"))}catch(B){console.error("❌ 重新加载思维导图失败:",B)}},1500);else{console.log("🔧 需要递归创建节点"),await F(y,ne,null),console.log("📥 开始加载新创建的思维导图,ID:",ne);const B=await nt.getMindmap(ne);console.log("🔄 加载思维导图响应:",B),B.data&&B.data.nodeData?(console.log("✅ 成功获取思维导图数据,开始加载显示"),o.value=ne,w(),await N(B.data),window.dispatchEvent(new CustomEvent("mindmap-saved",{detail:{mindmapId:ne,title:E,timestamp:Date.now()}})),setTimeout(async()=>{try{console.log("🔄 重新加载思维导图数据...");const be=await nt.getMindmap(ne);be.data&&be.data.nodeData&&(await N(be.data),console.log("✅ 思维导图数据重新加载成功"))}catch(be){console.error("❌ 重新加载思维导图失败:",be)}},1500)):console.error("❌ 获取思维导图数据失败:",B)}}}catch(I){console.error("❌ 保存预览数据到数据库失败:",I)}},fe=async y=>{try{if(console.log("📚 开始从历史记录加载思维导图:",y.title),w(),y.mindmapId){console.log("🎯 使用思维导图ID加载:",y.mindmapId);const E=await nt.getMindmap(y.mindmapId);if(E.data&&E.data.nodeData)await N(E.data);else throw new Error("无法获取思维导图数据")}else if(y.json)console.log("📊 使用历史记录中的JSON数据"),await N(y.json);else if(y.markdown){console.log("📝 使用历史记录中的Markdown数据,尝试转换为JSON");try{const E=await convertMarkdownToJSON(y.markdown);if(E)await N(E);else throw new Error("Markdown转换失败")}catch(E){console.error("Markdown转换失败:",E)}}}catch(E){console.error("❌ 从历史记录加载思维导图失败:",E)}};La(async()=>{window.addEventListener("save-preview-to-database",y=>{console.log("🎯 收到保存到数据库事件:",y.detail),console.log("📋 事件详情 - 标题:",y.detail.title,"来源:",y.detail.source,"时间戳:",new Date(y.detail.timestamp).toLocaleString()),le(y.detail.data,y.detail.title)}),window.addEventListener("realtime-mindmap-update",y=>{console.log("🔄 收到实时思维导图更新事件:",y.detail),Le(y.detail.data,y.detail.title)}),window.addEventListener("loadMindmapFromHistory",y=>{console.log("📚 收到从历史记录加载思维导图事件:",y.detail),console.log("🔍 事件数据详情:",y.detail),fe(y.detail)}),window.addEventListener("ai-sidebar-toggle",y=>{console.log("🤖 AI侧边栏折叠状态变化:",y.detail.isCollapsed),d.value=y.detail.isCollapsed}),k()});const Se=()=>{window.zoomIntervalId&&(clearInterval(window.zoomIntervalId),window.zoomIntervalId=null)};za(()=>{Se()}),e({showMindMapPage:M,cleanupIntervals:Se});const Le=async(y,E)=>{try{if(n.value){console.log("🔄 更新现有思维导图数据");try{const I=x(),H=String(o.value||""),U=H&&H.startsWith("temp-")?H:`temp-${Date.now()}`,ne={nodeData:y,mindmapId:U,id:U,title:E||"AI生成中..."};(!H||!H.startsWith("temp-"))&&(o.value=U,console.log("🆔 更新临时思维导图ID:",U));const B=n.value.init(ne);I&&setTimeout(()=>{A(I)},100)}catch(I){console.error("❌ 更新思维导图数据失败:",I)}}else{w(),await X0();let I=0;for(;!r.value&&I<20;)await new Promise(B=>setTimeout(B,50)),await X0(),I++;if(!r.value){console.error("❌ 思维导图容器仍未准备好,跳过此次更新");return}n.value=new bt({el:r.value,direction:bt.RIGHT,draggable:!0,contextMenu:!0,toolBar:!0,nodeMenu:!1,keypress:!0,autoCenter:!1,infinite:!0,maxScale:5,minScale:.1,markdown:(B,be)=>{if(B.includes("|")||B.includes("**")||B.includes("`")||B.includes("#")||B.includes("$")){console.log("🎨 实时更新 检测到markdown内容,开始渲染:",B.substring(0,100)+"...");const ue=K0(B);return console.log("🎨 实时更新 渲染结果:",ue.substring(0,200)+"..."),ue}return console.log("🔍 实时更新 内容不包含markdown语法,返回原文本"),B}});const H=`temp-${Date.now()}`,U={nodeData:y,mindmapId:H,id:H,title:E||"AI生成中..."};o.value=H,console.log("🆔 设置临时思维导图ID:",H);const ne=n.value.init(U);console.log("✅ 实时思维导图实例创建成功"),K(),O()}}catch(I){console.error("❌ 实时更新思维导图失败:",I)}};return(y,E)=>(We(),Ke("div",i7,[V("div",{class:pn(["zoom-controls",{"welcome-mode":c.value}])},[V("button",{onClick:q,class:"zoom-btn",title:"放大"},[...E[1]||(E[1]=[I0('',1)])]),V("button",{onClick:P,class:"zoom-btn",title:"缩小"},[...E[2]||(E[2]=[V("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[V("circle",{cx:"11",cy:"11",r:"8"}),V("path",{d:"m21 21-4.35-4.35"}),V("path",{d:"M8 11h6"})],-1)])]),V("button",{onClick:Z,class:"zoom-btn",title:"重置缩放"},[...E[3]||(E[3]=[I0('',1)])]),V("span",s7,Qt(Math.round(l.value*100))+"%",1)],2),c.value?(We(),Ke("div",a7,[V("div",{class:pn(["welcome-content",{"ai-sidebar-collapsed":d.value}])},[...E[4]||(E[4]=[I0('

    🧠 思维导图工具

    可视化您的想法,构建知识体系

    🎯

    智能AI生成

    上传文档,AI自动生成思维导图结构

    ✏️

    灵活编辑

    拖拽节点,自由调整思维导图布局

    💾

    云端存储

    自动保存,多设备同步访问

    💡 提示:使用左侧AI侧边栏可以快速生成思维导图内容

    ',3)])],2)])):Sr("",!0),f.value?(We(),Ke("div",{key:1,class:"ai-input-area",style:Ln(a.value)},[V("div",{class:"ai-input-header"},[E[5]||(E[5]=V("span",{class:"ai-input-title"},"🤖 询问AI",-1)),V("button",{onClick:Ae,class:"ai-close-btn"},"×")]),V("div",o7,[hi(V("textarea",{"onUpdate:modelValue":E[0]||(E[0]=I=>b.value=I),placeholder:"请输入您的问题...",rows:"2",disabled:v.value,onKeydown:[bs(vs(Ze,["exact"]),["enter"]),bs(vs(tt,["ctrl"]),["enter"]),bs(vs(tt,["meta"]),["enter"])]},null,40,l7),[[Ha,b.value]]),V("div",c7,[V("button",{onClick:Ae,class:"btn-cancel",disabled:v.value}," 取消 ",8,u7),V("button",{onClick:tt,class:"btn-submit",disabled:!b.value.trim()||v.value},[v.value?(We(),Ke("span",h7,"AI思考中...")):(We(),Ke("span",f7,"询问AI"))],8,d7)])])],4)):Sr("",!0),c.value?Sr("",!0):(We(),Ke("div",{key:2,ref_key:"mindmapEl",ref:r,class:"mindmap-el"},null,512)),c.value?Sr("",!0):(We(),Ke("div",p7,[V("button",{onClick:J,class:"save-btn",title:"保存思维导图"},[...E[6]||(E[6]=[V("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[V("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),V("polyline",{points:"17,21 17,13 7,13 7,21"}),V("polyline",{points:"7,3 7,8 15,8"})],-1),V("span",null,"保存",-1)])]),V("button",{onClick:ge,class:"refresh-btn",title:"刷新思维导图"},[...E[7]||(E[7]=[V("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[V("path",{d:"M1 4v6h6"}),V("path",{d:"M23 20v-6h-6"}),V("path",{d:"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15"})],-1),V("span",null,"刷新",-1)])])])),i.value?(We(),Ke("div",{key:4,class:"context-menu",style:Ln(s.value)},[i.value.parentId||i.value.parent?(We(),Ke("div",{key:0,class:"context-menu-item",onClick:W,title:"Add a sibling card"},[...E[8]||(E[8]=[V("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 18 18",fill:"none"},[V("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.9001 4.5C9.9001 5.74264 8.89274 6.75 7.6501 6.75C6.64263 6.75 5.78981 6.08785 5.5031 5.175H2.7001V11.025H5.4001V9.9C5.4001 8.90589 6.11644 8.1 7.0001 8.1H15.0501C15.9338 8.1 16.6501 8.90589 16.6501 9.9V13.95C16.6501 14.9441 15.9338 15.75 15.0501 15.75H7.0001C6.11644 15.75 5.4001 14.9441 5.4001 13.95V12.375H2.2501C1.75304 12.375 1.3501 11.7471 1.3501 11.475V4.725C1.3501 4.22794 1.75304 3.825 2.2501 3.825H5.5031C5.78981 2.91215 6.64263 2.25 7.6501 2.25C8.89274 2.25 9.9001 3.25736 9.9001 4.5ZM15.0501 9.9H7.0001V13.95H15.0501V9.9Z",fill:"currentColor","fill-opacity":"1"})],-1)])])):Sr("",!0),V("div",{class:"context-menu-item",onClick:Y,title:"Add a child card"},[...E[9]||(E[9]=[V("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 18 18",fill:"none"},[V("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M15.9501 6.63691H8.35014V11.3619H15.9501V6.63691ZM8.35014 4.83691C7.46649 4.83691 6.75014 5.6428 6.75014 6.63691V8.32441H4.84719C4.56048 7.41157 3.70766 6.74941 2.7002 6.74941C1.45755 6.74941 0.450195 7.75677 0.450195 8.99941C0.450195 10.2421 1.45755 11.2494 2.7002 11.2494C3.70766 11.2494 4.56048 10.5873 4.84719 9.67441H6.75014V11.3619C6.75014 12.356 7.46649 13.1619 8.35014 13.1619H15.9501C16.8338 13.1619 17.5501 12.356 17.5501 11.3619V6.63691C17.5501 5.6428 16.8338 4.83691 15.9501 4.83691H8.35014Z",fill:"currentColor","fill-opacity":"1"})],-1)])]),V("div",{class:"context-menu-item",onClick:rt,title:"Copy text"},[...E[10]||(E[10]=[V("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 18 18",fill:"none"},[V("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M16.4503 2.99952C16.4016 2.18908 15.7289 1.54688 14.9062 1.54688H6.46875L6.37452 1.5497C5.56408 1.5984 4.92188 2.27108 4.92188 3.09375V3.54688C4.92188 3.68495 5.0338 3.79688 5.17188 3.79688H6.35938C6.49745 3.79688 6.60938 3.68495 6.60938 3.54688V3.375L6.61309 3.34276C6.62766 3.28063 6.68343 3.23438 6.75 3.23438H14.625L14.6572 3.23809C14.7261 3.23438 14.7656 3.30029 14.7656 3.375V11.25L14.7619 11.2822C14.7473 11.3444 14.6916 11.3906 14.625 11.3906H14.4531C14.3151 11.3906 14.2031 11.5026 14.2031 11.6406V12.8281C14.2031 12.9662 14.3151 13.0781 14.4531 13.0781H14.9062L15.0005 13.0753C15.8109 13.0266 16.4531 12.3539 16.4531 11.5312V3.09375L16.4503 2.99952ZM11.5312 4.92188H3.09375C2.23943 4.92188 1.54688 5.61443 1.54688 6.46875V14.9062C1.54688 15.7606 2.23943 16.4531 3.09375 16.4531H11.5312C12.3856 16.4531 13.0781 15.7606 13.0781 14.9062V6.46875C13.0781 5.61443 12.3856 4.92188 11.5312 4.92188ZM3.37032 6.615H11.2635C11.3361 6.615 11.395 6.6739 11.395 6.74655V14.6397C11.395 14.7124 11.3361 14.7712 11.2635 14.7712H3.37032C3.29767 14.7712 3.23877 14.7124 3.23877 14.6397V6.74655C3.23877 6.6739 3.29767 6.615 3.37032 6.615ZM4.5 8.5C4.5 8.27909 4.67909 8.1 4.9 8.1H9.725C9.94591 8.1 10.125 8.27909 10.125 8.5V9.5C10.125 9.72091 9.94591 9.9 9.725 9.9H4.9C4.67909 9.9 4.5 9.72091 4.5 9.5V8.5ZM4.9 11.475C4.67909 11.475 4.5 11.6541 4.5 11.875V12.875C4.5 13.0959 4.67909 13.275 4.9 13.275H9.725C9.94591 13.275 10.125 13.0959 10.125 12.875V11.875C10.125 11.6541 9.94591 11.475 9.725 11.475H4.9Z",fill:"currentColor","fill-opacity":"1"})],-1)])]),V("div",{class:"context-menu-item ask-ai",onClick:pe,title:"Ask AI"},[...E[11]||(E[11]=[I0('',1)])]),V("div",{class:"context-menu-item delete",onClick:he,title:"Delete"},[...E[12]||(E[12]=[V("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},[V("path",{d:"M5.5 5.5A.5.5 0 0 1 6 6v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm2.5 0a.5.5 0 0 1 .5.5v6a.5.5 0 0 1-1 0V6a.5.5 0 0 1 .5-.5zm3 .5a.5.5 0 0 0-1 0v6a.5.5 0 0 0 1 0V6z",fill:"currentColor"}),V("path",{"fill-rule":"evenodd",d:"M14.5 3a1 1 0 0 1-1 1H13v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V4h-.5a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1H6a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1h3.5a1 1 0 0 1 1 1v1zM4.118 4 4 4.059V13a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z",fill:"currentColor"})],-1)])])],4)):Sr("",!0)]))}},g7=Oo(m7,[["__scopeId","data-v-7ae591fd"]]),v7="modulepreload",b7=function(t){return"/"+t},Nc={},Dc=function(e,r,n){if(!r||r.length===0)return e();const i=document.getElementsByTagName("link");return Promise.all(r.map(s=>{if(s=b7(s),s in Nc)return;Nc[s]=!0;const a=s.endsWith(".css"),o=a?'[rel="stylesheet"]':"";if(!!n)for(let d=i.length-1;d>=0;d--){const f=i[d];if(f.href===s&&(!a||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${o}`))return;const c=document.createElement("link");if(c.rel=a?"stylesheet":v7,a||(c.as="script",c.crossOrigin=""),c.href=s,document.head.appendChild(c),a)return new Promise((d,f)=>{c.addEventListener("load",d),c.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>e()).catch(s=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s})};const y7={class:"ai-sidebar-wrapper"},w7=["title"],x7={key:0,width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5"},k7={key:1,width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5"},S7={class:"sidebar-content"},T7={class:"section"},A7={class:"input-group"},E7={key:0,class:"file-info"},C7={class:"file-details"},M7={class:"file-info-left"},N7={class:"file-name"},D7={class:"file-size"},R7={class:"button-group file-action-buttons"},I7=["disabled"],_7={key:0},O7={key:1},L7={key:0,class:"section"},z7={class:"history-list"},F7=["onClick"],$7={class:"history-title"},B7={class:"history-time"},P7={class:"section"},H7={class:"input-group"},q7={class:"button-group"},j7=["disabled"],U7={key:0},V7={key:1},W7={class:"section"},G7={key:0,class:"processing-status"},K7={class:"result-container"},Y7={class:"json-result"},X7={class:"button-group"},Z7=["disabled"],J7={__name:"AISidebar",emits:["start-realtime-generation"],setup(t,{emit:e}){const r=e,n=ze(!1),i=ze(""),s=ze(""),a=ze(""),o=ze(!1),l=ze(!1),c=ze([]),d=ze(!1);ze(""),ze("");const f=ze(!1),p=ze(""),b=ze(null),v=ze(null),k=()=>{n.value=!n.value,window.dispatchEvent(new CustomEvent("ai-sidebar-toggle",{detail:{isCollapsed:n.value}}))},w=j=>{const G=j.target.files[0];G&&(v.value=G,Ee("文件上传成功!","success"))},M=j=>{j.preventDefault(),d.value=!1;const G=j.dataTransfer.files;if(G.length>0){const te=G[0],se=[".txt",".md",".doc",".docx",".pdf"],Ce="."+te.name.split(".").pop().toLowerCase();se.includes(Ce)?(v.value=te,Ee("文件拖拽上传成功!","success")):Ee("不支持的文件格式!请上传 .txt, .md, .doc, .docx, .pdf 格式的文件","error")}},x=j=>{j.preventDefault(),d.value=!0},A=j=>{j.preventDefault(),d.value=!1},N=()=>{v.value=null,b.value&&(b.value.value="")},_=j=>{if(j===0)return"0 Bytes";const G=1024,te=["Bytes","KB","MB","GB"],se=Math.floor(Math.log(j)/Math.log(G));return parseFloat((j/Math.pow(G,se)).toFixed(2))+" "+te[se]},O=async()=>{if(!v.value){Ee("请先上传文件","error");return}o.value=!0,r("start-realtime-generation");try{const j=await z(v.value);s.value="";const G="你是一个专业的文档分析专家。请分析上传的文档内容,生成结构化的Markdown格式思维导图。要求:1. 提取主要主题和关键概念 2. 组织成层次分明的结构 3. 使用清晰的标题和子标题 4. 保持内容的逻辑性和完整性",te=`请分析以下文档内容并生成结构化Markdown: - -${j}`;await he(G,te),await Ae(),Ve("AI生成: "+v.value.name,s.value),Ee("AI生成Markdown成功!正在自动保存...","success"),setTimeout(async()=>{try{await ve()}catch(se){console.error("自动保存失败:",se)}},1500)}catch(j){console.error("从文件生成Markdown失败:",j),Ee("生成失败: "+j.message,"error")}finally{o.value=!1}},z=j=>new Promise(async(G,te)=>{try{const se=j.type.includes("text")||j.name.endsWith(".txt")||j.name.endsWith(".md"),Ce=j.type==="application/vnd.openxmlformats-officedocument.wordprocessingml.document"||j.type==="application/msword"||j.name.endsWith(".docx")||j.name.endsWith(".doc"),me=j.type==="application/pdf"||j.name.endsWith(".pdf");if(se){const de=new FileReader;de.onload=Ue=>G(Ue.target.result),de.onerror=()=>te(new Error("文本文件读取失败")),de.readAsText(j)}else if(Ce){const de=await Y(j);G(de)}else if(me){const de=await W(j);G(de)}else{const de=new FileReader;de.onload=Ue=>G(Ue.target.result),de.onerror=()=>te(new Error("文件读取失败")),de.readAsText(j)}}catch(se){te(se)}}),Y=async j=>{try{if(j.name.endsWith(".docx")){const G=await Dc(()=>import("./index-a46c0a22.js").then(Ce=>Ce.i),[]),te=await j.arrayBuffer();return(await G.extractRawText({arrayBuffer:te})).value}else if(j.name.endsWith(".doc"))throw new Error("请将.doc文件转换为.docx格式,或安装相应的解析库")}catch(G){throw new Error(`Office文档解析失败: ${G.message}`)}},W=async j=>{try{const G=await Dc(()=>import("./pdf-e6f26e66.js"),[]);G.GlobalWorkerOptions.workerSrc="/pdf.worker.min.mjs";const te=await j.arrayBuffer(),se=await G.getDocument({data:te}).promise;let Ce="";for(let me=1;me<=se.numPages;me++){const S=(await(await se.getPage(me)).getTextContent()).items.map(D=>D.str).join(" ");Ce+=S+` -`}return Ce}catch(G){throw new Error(`PDF文件解析失败: ${G.message}`)}},he=async(j,G)=>{const se=j||`你是一位Markdown格式转换专家。你的任务是将用户提供的文章内容精确转换为结构化的Markdown格式。请遵循以下步骤: - -提取主标题: 识别文章最顶层的主标题(通常为文章题目或书名),并使用Markdown的 # 级别表示。 - -识别层级标题: 从文章内容中提取所有层级的内容标题(从主标题后的第一个标题开始,Level 1 至 Level 4)。判断层级依据: - -视觉与结构特征: 如独立成行/段、位置(行首)、格式(加粗、编号如 1., 1.1, (1), - 等)。 - -语义逻辑: 标题之间的包含和并列关系。 - -在Markdown中,使用相应标题级别: - -Level 1 标题用 ## - -Level 2 标题用 ### - -Level 3 标题用 #### - -Level 4 标题用 ##### - -精确保留原文标题文字,不得修改、概括或润色。 - -处理正文内容: 对于每个标题下的正文内容区块(从该标题后开始,直到下一个同级或更高级别标题前): - -直接保留原文文本,但根据内容结构适当格式化为Markdown。 - -如果内容是列表(如项目符号或编号列表),使用Markdown列表语法(例如 - 用于无序列表,1. 用于有序列表)。 - -保持段落和换行不变。 - -输出格式: 输出必须是纯Markdown格式的文本,不得包含任何额外说明、JSON或非Markdown元素。确保输出与示例风格一致。`,Ce=G||"请将以下内容转换为结构化的Markdown格式:";try{const me=await fetch("http://127.0.0.1:8000/api/ai/generate-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({system_prompt:se,user_prompt:Ce,model:"glm-4.5",base_url:"https://open.bigmodel.cn/api/paas/v4/",api_key:"ce39bdd4fcf34ec0aec75072bc9ff988.hAp7HZTVUwy7vImn"})});if(!me.ok)throw new Error(`HTTP error! status: ${me.status}`);const de=me.body.getReader(),Ue=new TextDecoder;let S="",D=0;for(;;){const{done:F,value:K}=await de.read();if(F)break;S+=Ue.decode(K,{stream:!0});const q=S.split(` -`);S=q.pop()||"";for(const P of q)if(P.startsWith("data: "))try{const Z=JSON.parse(P.slice(6));if(Z.type==="start")Ee("AI开始生成内容...","info");else if(Z.type==="chunk"){D++,s.value+=Z.content;try{const re=st(s.value);a.value=JSON.stringify(re,null,2),window.dispatchEvent(new CustomEvent("realtime-mindmap-update",{detail:{data:re,title:re.topic||"AI生成中...",source:"ai-streaming",chunkCount:D}}))}catch(re){console.warn("⚠️ 实时转换JSON失败:",re),console.warn("⚠️ 当前Markdown内容:",s.value)}}else if(Z.type==="end")Ee("AI内容生成完成!","success");else if(Z.type==="error")throw new Error(Z.content)}catch(Z){console.warn("解析流式数据失败:",Z)}}}catch(me){throw console.error("流式AI API调用失败:",me),me}},pe=j=>{if(j.includes("|")&&j.includes("-")){const G=j.split(` -`);let te=!1,se=!1;for(const Ce of G){const me=Ce.trim();me.includes("|")&&me.split("|").length>=3&&(te=!0),me.includes("|")&&me.includes("-")&&/^[\s\|\-\:]+$/.test(me)&&(se=!0)}if(te&&se)return console.log("🚫 formatMarkdownToText: 检测到表格内容,跳过转换"),j}return j.replace(/^### (.*$)/gim,"📋 $1").replace(/^## (.*$)/gim,"📌 $1").replace(/^# (.*$)/gim,"🎯 $1").replace(/\*\*(.*?)\*\*/g,(G,te)=>{if(te.includes(":")){const se=te.split(":");if(se.length>1)return`【${se[0]}】: ${se.slice(1).join(":")}`}return`【${te}】`}).replace(/\*(.*?)\*/g,"《$1》").replace(/^- (.*$)/gim," • $1").replace(/^\d+\. (.*$)/gim," $&").replace(/```(.*?)```/gims,"💻 $1").replace(/`(.*?)`/g,"「$1」").replace(/\[([^\]]+)\]\([^)]+\)/g,"🔗 $1").replace(/\n\n/g,` -`).replace(/\n/g,` - `)},Ae=async()=>{if(!s.value.trim()){Ee("请输入Markdown内容","error");return}l.value=!0;try{const j=st(s.value);a.value=JSON.stringify(j,null,2)}catch(j){console.error("转换失败:",j),Ee("转换失败,请检查Markdown格式","error")}finally{l.value=!1}},st=j=>{const G=j.split(` -`);let te=null;const se=[];let Ce=0,me=[];if(G.forEach((de,Ue)=>{const S=de.trim(),D=S.match(/^(#{1,6})\s+(.+)$/);if(D){if(me.length>0&&se.length>0){const Z=me.join(` -`).trim();Z&&(Ce=Ze(Z,se[se.length-1],Ce).nodeCounter),me=[]}const F=D[1].length,K=D[2].trim(),q=pe(K),P={id:`node_${Ce++}`,topic:q,children:[],level:F,data:{}};if(F===1&&!te)te=P,se.length=0,se.push(te);else{for(;se.length>1&&se[se.length-1].level>=F;)se.pop();se.length>0&&se[se.length-1].children.push(P),se.push(P)}}else S&&me.push(S)}),me.length>0&&se.length>0){const de=me.join(` -`).trim();de&&(de.includes("|")&&console.log("🔍 处理最后的内容(包含表格):",de.substring(0,200)+"..."),Ce=Ze(de,se[se.length-1],Ce).nodeCounter)}return te||(te={id:"root",topic:"根节点",children:[],data:{}}),te},Ze=(j,G,te)=>{if(tt(j)){console.log("🎯 检测到表格内容,创建表格节点");const de={id:`node_${te++}`,topic:j,children:[],level:(G.level||0)+1,data:{}};return G.children.push(de),{nodeCounter:te}}const se=j.split(` -`);let Ce=te,me=[];for(let de=0;de0){const Z=pe(q.join(` -`));K.topic=K.topic+` - -`+Z}G.children.push(K),de=P-1}else S&&me.push(S)}if(me.length>0){const de=me.join(` -`).trim();if(de)if(tt(de)){console.log("🎯 检测到表格内容,创建表格节点");const Ue={id:`node_${Ce++}`,topic:de,children:[],level:(G.level||0)+1,data:{}};G.children.push(Ue)}else de.split(` - -`).filter(S=>S.trim()).forEach(S=>{const D=pe(S.trim());if(D){const F={id:`node_${Ce++}`,topic:D,children:[],level:(G.level||0)+1,data:{}};G.children.push(F)}})}return{nodeCounter:Ce}},tt=j=>{if(!j||typeof j!="string")return!1;j.includes("|")&&console.log("🔍 检查表格内容:",j.substring(0,200)+"...");const G=j.split(` -`);let te=!1,se=!1;for(const Ue of G){const S=Ue.trim();S.includes("|")&&S.split("|").length>=3&&(te=!0,console.log("✅ 找到表格行:",S)),S.includes("|")&&S.includes("-")&&/^[\s\|\-\:]+$/.test(S)&&(se=!0,console.log("✅ 找到分隔符行:",S))}const Ce=(j.match(/\|/g)||[]).length,me=Ce>=4,de=te&&se||te&&me;return console.log("🔍 表格检测结果:",{hasTableRow:te,hasSeparator:se,pipeCount:Ce,hasMultiplePipes:me,result:de}),de},$e=async()=>{if(!s.value){Ee("没有Markdown内容可复制","error");return}try{await navigator.clipboard.writeText(s.value),Ee("Markdown已复制到剪贴板","success")}catch{const G=document.createElement("textarea");G.value=s.value,document.body.appendChild(G),G.select(),document.execCommand("copy"),G.remove(),Ee("Markdown已复制到剪贴板","success")}},Oe=async()=>{try{await navigator.clipboard.writeText(a.value),Ee("JSON已复制到剪贴板","success")}catch(j){console.error("复制失败:",j),Ee("复制失败","error")}},ve=async()=>{if(!a.value){Ee("请先生成或转换JSON数据","error");return}f.value=!0,p.value="正在保存思维导图...";try{const j=JSON.parse(a.value),G=j.topic||j.title||`AI生成的思维导图_${new Date().toLocaleString()}`,te=new CustomEvent("save-preview-to-database",{detail:{data:j,title:G,source:"ai-generated",timestamp:Date.now()}});window.dispatchEvent(te),setTimeout(()=>{f.value=!1,p.value="",Ee("思维导图已保存成功!","success"),v.value=null,b.value&&(b.value.value="")},2e3)}catch(j){f.value=!1,p.value="",console.error("JSON解析失败:",j),Ee("JSON格式错误,请检查数据","error")}},Ee=(j,G="info")=>{const te=document.createElement("div");switch(te.className=`notification notification-${G}`,te.textContent=j,te.style.cssText=` - position: fixed; - top: 20px; - right: 20px; - padding: 12px 20px; - border-radius: 8px; - font-size: 14px; - font-weight: 500; - z-index: 10000; - box-shadow: 0 4px 12px rgba(0,0,0,0.15); - animation: slideIn 0.3s ease; - max-width: 300px; - word-wrap: break-word; - `,G){case"success":te.style.background="#4CAF50",te.style.color="white";break;case"error":te.style.background="#f44336",te.style.color="white";break;case"info":default:te.style.background="#2196F3",te.style.color="white";break}if(!document.querySelector("#notification-styles")){const se=document.createElement("style");se.id="notification-styles",se.textContent=` - @keyframes slideIn { - from { transform: translateX(100%); opacity: 0; } - to { transform: translateX(0); opacity: 1; } - } - @keyframes slideOut { - from { transform: translateX(0); opacity: 1; } - to { transform: translateX(100%); opacity: 0; } - } - `,document.head.appendChild(se)}document.body.appendChild(te),setTimeout(()=>{te.style.animation="slideOut 0.3s ease",setTimeout(()=>{te.parentNode&&te.parentNode.removeChild(te)},300)},3e3)},rt=()=>{s.value="",a.value="",Ee("内容已清空","info")},Ve=(j,G,te=null)=>{const se={title:j,content:G,mindmapId:te,timestamp:new Date};c.value.unshift(se),c.value.length>10&&(c.value=c.value.slice(0,10)),localStorage.setItem("ai-sidebar-history",JSON.stringify(c.value))},Ie=async j=>{j.mindmapId?(window.dispatchEvent(new CustomEvent("loadMindmapFromHistory",{detail:{mindmapId:j.mindmapId,title:j.title}})),Ee(`正在加载: ${j.title}`,"info")):(s.value=j.content,await Ae(),window.dispatchEvent(new CustomEvent("loadMindmapFromHistory",{detail:{markdown:j.content,json:a.value,title:j.title}})),Ee(`正在加载: ${j.title}`,"info"))},Rt=j=>new Date(j).toLocaleString("zh-CN");La(()=>{const j=localStorage.getItem("ai-sidebar-history");if(j)try{c.value=JSON.parse(j)}catch(G){console.error("加载历史记录失败:",G)}window.addEventListener("add-to-history",G=>{const{title:te,content:se,timestamp:Ce}=G.detail;Ve(te,se,null)}),window.addEventListener("mindmap-saved",G=>{const{mindmapId:te,title:se,timestamp:Ce}=G.detail,me=c.value.find(de=>de.title===se||de.timestamp&&Math.abs(de.timestamp-Ce)<5e3);me?(me.mindmapId=te,localStorage.setItem("ai-sidebar-history",JSON.stringify(c.value))):Ve(se,"",te)}),s0(i,(G,te)=>{}),s0(s,(G,te)=>{})});const pt=async()=>{try{const j=await fetch("http://127.0.0.1:8000/api/ai/test-stream",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({test:"data"})});if(!j.ok)throw new Error(`HTTP error! status: ${j.status}`);const G=j.body.getReader(),te=new TextDecoder;let se="";for(;;){const{done:Ce,value:me}=await G.read();if(Ce)break;se+=te.decode(me,{stream:!0});const de=se.split(` -`);se=de.pop()||"";for(const Ue of de)if(Ue.startsWith("data: "))try{const S=JSON.parse(Ue.slice(6))}catch(S){console.warn("解析测试数据失败:",S)}}}catch(j){console.error("❌ 测试流式API失败:",j)}};return window.testStreamAPI=pt,(j,G)=>(We(),Ke("div",y7,[V("div",{class:"sidebar-toggle",onClick:k,title:n.value?"展开AI助手":"折叠AI助手",style:Ln({left:n.value?"10px":"420px"})},[n.value?(We(),Ke("svg",x7,[...G[1]||(G[1]=[V("path",{d:"M9 18l6-6-6-6"},null,-1)])])):(We(),Ke("svg",k7,[...G[2]||(G[2]=[V("path",{d:"M15 18l-6-6 6-6"},null,-1)])]))],12,w7),V("div",{class:pn(["ai-sidebar",{"sidebar-collapsed":n.value}])},[hi(V("div",S7,[G[12]||(G[12]=V("div",{class:"sidebar-header"},[V("h3",null,"🤖 AI 助手"),V("p",null,"文档转思维导图工具"),V("div",{class:"collapse-hint"},[V("small",null,"💡 点击右侧按钮可折叠侧边栏")])],-1)),V("div",T7,[G[6]||(G[6]=V("h4",null,"📁 生成思维导图",-1)),V("div",A7,[G[4]||(G[4]=V("label",null,"上传文件:",-1)),V("div",{class:"file-upload-area",onDrop:M,onDragover:x,onDragleave:A},[V("input",{type:"file",ref_key:"fileInput",ref:b,onChange:w,accept:".txt,.md,.doc,.docx,.pdf",class:"file-input"},null,544),V("div",{class:pn(["file-upload-placeholder",{"drag-over":d.value}])},[...G[3]||(G[3]=[V("span",{class:"upload-icon"},"📎",-1),V("span",{class:"upload-text"},"点击选择文件或拖拽文件到此处",-1),V("span",{class:"upload-hint"},"支持 .txt, .md, .doc, .docx, .pdf 格式",-1)])],2)],32)]),v.value?(We(),Ke("div",E7,[V("div",C7,[V("div",M7,[V("span",N7,"📄 "+Qt(v.value.name),1),V("span",D7,"("+Qt(_(v.value.size))+")",1)]),V("button",{onClick:N,class:"btn-remove",title:"删除文件"},[...G[5]||(G[5]=[V("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[V("path",{d:"M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M10 11v6M14 11v6"})],-1)])])])])):Sr("",!0),V("div",R7,[V("button",{onClick:O,disabled:!v.value||o.value,class:"btn-primary"},[o.value?(We(),Ke("span",_7,"AI生成中...")):(We(),Ke("span",O7,"AI生成思维导图"))],8,I7)])]),c.value.length>0?(We(),Ke("div",L7,[G[7]||(G[7]=V("h4",null,"📚 历史记录",-1)),V("div",z7,[(We(!0),Ke(tr,null,du(c.value,(te,se)=>(We(),Ke("div",{key:se,class:"history-item",onClick:Ce=>Ie(te)},[V("div",$7,Qt(te.title),1),V("div",B7,Qt(Rt(te.timestamp)),1)],8,F7))),128))])])):Sr("",!0),V("div",P7,[G[9]||(G[9]=V("h4",null,"📝 AI生成的Markdown结果",-1)),V("div",H7,[G[8]||(G[8]=V("label",null,"Markdown内容:",-1)),hi(V("textarea",{"onUpdate:modelValue":G[0]||(G[0]=te=>s.value=te),placeholder:"AI生成的Markdown内容将显示在这里",rows:"6",readonly:"",class:"markdown-result"},null,512),[[Ha,s.value]])]),V("div",q7,[V("button",{onClick:Ae,disabled:l.value,class:"btn-secondary"},[l.value?(We(),Ke("span",U7,"转换中...")):(We(),Ke("span",V7,"🔄 转换为JSON"))],8,j7),V("button",{onClick:rt,class:"btn-clear"},"清空"),V("button",{onClick:$e,class:"btn-copy"},"📋 复制Markdown")])]),V("div",W7,[G[11]||(G[11]=V("h4",null,"📊 Markdown转JSON结果",-1)),f.value?(We(),Ke("div",G7,[G[10]||(G[10]=V("div",{class:"spinner"},null,-1)),V("span",null,Qt(p.value),1)])):Sr("",!0),V("div",K7,[V("pre",Y7,Qt(a.value||"JSON转换结果将显示在这里"),1),V("div",X7,[V("button",{onClick:Oe,class:"btn-copy"},"📋 复制JSON"),V("button",{onClick:ve,disabled:f.value,class:"btn-copy"},Qt(f.value?"处理中...":"👁️ 预览"),9,Z7)])])])],512),[[Lf,!n.value]])],2)]))}},Q7=Oo(J7,[["__scopeId","data-v-9bdaf8f5"]]);const e8={class:"markdown-test"},t8={class:"test-section"},r8={class:"test-section"},n8=["innerHTML"],i8={class:"test-section"},s8={class:"test-cases"},a8=["onClick"],o8={__name:"MarkdownTest",setup(t){const e=ze(`# 测试标题 - -这是一个**粗体**和*斜体*的测试。 - -## 表格测试 - -| 产品 | 价格 | 库存 | -|------|------|------| -| 苹果 | 4元 | 100个 | -| 香蕉 | 2元 | 50个 | - -## 代码测试 - -\`\`\`javascript -function hello() { - console.log('Hello World!'); -} -\`\`\` - -行内代码:\`const name = 'test'\` - -## 列表测试 - -- 项目1 -- 项目2 - - 子项目2.1 - - 子项目2.2 -- 项目3 - -## 链接测试 - -- [GitHub](https://github.com) -- [Vue.js](https://vuejs.org)`),r=ze([{name:"基础表格",content:`# 产品价格表 - -| 产品 | 价格 | -|------|------| -| 苹果 | 4元 | -| 香蕉 | 2元 |`},{name:"复杂表格",content:`# 技术栈对比 - -| 技术 | 前端 | 后端 | 数据库 | -|------|------|------|--------| -| Vue.js | ✅ | ❌ | ❌ | -| Django | ❌ | ✅ | ❌ | -| PostgreSQL | ❌ | ❌ | ✅ |`},{name:"代码块",content:`# 代码示例 - -\`\`\`javascript -function markdownToJSON(markdown) { - const lines = markdown.split('\\n'); - // 处理逻辑... - return result; -} -\`\`\``},{name:"混合内容",content:`# 混合内容测试 - -这是一个包含**粗体**、*斜体*和\`行内代码\`的段落。 - -## 表格 - -| 功能 | 状态 | 说明 | -|------|------|------| -| 表格渲染 | ✅ | 支持markdown表格 | -| 代码高亮 | ✅ | 支持代码块 | - -## 代码 - -\`\`\`python -def hello_world(): - print("Hello, World!") -\`\`\``}]),n=Ou(()=>{if(!e.value)return"";try{return wa(e.value)}catch(a){return`
    渲染失败: ${a.message}
    `}}),i=()=>{},s=a=>{e.value=a.content};return(a,o)=>(We(),Ke("div",e8,[o[4]||(o[4]=V("h2",null,"Markdown渲染测试",-1)),V("div",t8,[o[1]||(o[1]=V("h3",null,"输入Markdown内容",-1)),hi(V("textarea",{"onUpdate:modelValue":o[0]||(o[0]=l=>e.value=l),placeholder:"输入markdown内容...",rows:"10",class:"markdown-input"},null,512),[[Ha,e.value]])]),V("div",r8,[o[2]||(o[2]=V("h3",null,"渲染结果",-1)),V("div",{class:"rendered-content",innerHTML:n.value},null,8,n8)]),V("div",i8,[o[3]||(o[3]=V("h3",null,"测试用例",-1)),V("button",{onClick:i,class:"test-btn"},"加载测试用例"),V("div",s8,[(We(!0),Ke(tr,null,du(r.value,(l,c)=>(We(),Ke("button",{key:c,onClick:d=>s(l),class:"test-case-btn"},Qt(l.name),9,a8))),128))])])]))}},l8=Oo(o8,[["__scopeId","data-v-68a00828"]]);const c8={id:"app"},u8={class:"test-mode-toggle"},d8={key:0,class:"test-mode"},h8={key:1},f8={class:"main-content"},p8={__name:"App",setup(t){const e=ze(null),r=ze(!1),n=()=>{r.value=!r.value},i=()=>{e.value&&e.value.showMindMapPage()};return(s,a)=>(We(),Ke("div",c8,[a[0]||(a[0]=Ru("« ",-1)),V("div",u8,[V("button",{onClick:n,class:"test-btn"},Qt(r.value?"切换到思维导图":"测试Markdown渲染"),1)]),r.value?(We(),Ke("div",d8,[qt(l8)])):(We(),Ke("div",h8,[qt(Q7,{onStartRealtimeGeneration:i}),V("div",f8,[qt(g7,{ref_key:"mindMapRef",ref:e},null,512)])]))]))}};tp(p8).mount("#app");export{Dc as _,Wl as c,b8 as g}; diff --git a/frontend/dist/assets/index-a46c0a22.js b/frontend/dist/assets/index-c6bfb612.js similarity index 99% rename from frontend/dist/assets/index-a46c0a22.js rename to frontend/dist/assets/index-c6bfb612.js index c959a45..b1c39e6 100644 --- a/frontend/dist/assets/index-a46c0a22.js +++ b/frontend/dist/assets/index-c6bfb612.js @@ -1,4 +1,4 @@ -import{g as jl,c as he}from"./index-a09f7810.js";function Xl(e,n){for(var t=0;ti[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var en={},la="1.13.7",Wo=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||Function("return this")()||{},oi=Array.prototype,fa=Object.prototype,Ro=typeof Symbol<"u"?Symbol.prototype:null,Vl=oi.push,Ft=oi.slice,gt=fa.toString,Hl=fa.hasOwnProperty,Su=typeof ArrayBuffer<"u",$l=typeof DataView<"u",Gl=Array.isArray,No=Object.keys,Oo=Object.create,Io=Su&&ArrayBuffer.isView,Zl=isNaN,Yl=isFinite,Bu=!{toString:null}.propertyIsEnumerable("toString"),Lo=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Kl=Math.pow(2,53)-1;function Ie(e,n){return n=n==null?e.length-1:+n,function(){for(var t=Math.max(arguments.length-n,0),i=Array(t),r=0;r=0&&t<=Kl}}function zu(e){return function(n){return n==null?void 0:n[e]}}const Gt=zu("byteLength"),nf=Pu(Gt);var tf=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function rf(e){return Io?Io(e)&&!mt(e):nf(e)&&tf.test(gt.call(e))}const xa=Su?rf:va(!1),qe=zu("length");function af(e){for(var n={},t=e.length,i=0;i":">",'"':""","'":"'","`":"`"},fs=ds(ls),sf=Ea(ls),hs=ds(sf),ps=ye.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var Gi=/(.)^/,df={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},lf=/\\|'|\r|\n|\u2028|\u2029/g;function ff(e){return"\\"+df[e]}var hf=/^\s*(\w|\$)+\s*$/;function gs(e,n,t){!n&&t&&(n=t),n=Ca({},n,ye.templateSettings);var i=RegExp([(n.escape||Gi).source,(n.interpolate||Gi).source,(n.evaluate||Gi).source].join("|")+"|$","g"),r=0,a="__p+='";e.replace(i,function(s,d,g,b,m){return a+=e.slice(r,m).replace(lf,ff),r=m+s.length,d?a+=`'+ +import{g as jl,c as he}from"./index-7802977e.js";function Xl(e,n){for(var t=0;ti[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var en={},la="1.13.7",Wo=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global||Function("return this")()||{},oi=Array.prototype,fa=Object.prototype,Ro=typeof Symbol<"u"?Symbol.prototype:null,Vl=oi.push,Ft=oi.slice,gt=fa.toString,Hl=fa.hasOwnProperty,Su=typeof ArrayBuffer<"u",$l=typeof DataView<"u",Gl=Array.isArray,No=Object.keys,Oo=Object.create,Io=Su&&ArrayBuffer.isView,Zl=isNaN,Yl=isFinite,Bu=!{toString:null}.propertyIsEnumerable("toString"),Lo=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],Kl=Math.pow(2,53)-1;function Ie(e,n){return n=n==null?e.length-1:+n,function(){for(var t=Math.max(arguments.length-n,0),i=Array(t),r=0;r=0&&t<=Kl}}function zu(e){return function(n){return n==null?void 0:n[e]}}const Gt=zu("byteLength"),nf=Pu(Gt);var tf=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;function rf(e){return Io?Io(e)&&!mt(e):nf(e)&&tf.test(gt.call(e))}const xa=Su?rf:va(!1),qe=zu("length");function af(e){for(var n={},t=e.length,i=0;i":">",'"':""","'":"'","`":"`"},fs=ds(ls),sf=Ea(ls),hs=ds(sf),ps=ye.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var Gi=/(.)^/,df={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},lf=/\\|'|\r|\n|\u2028|\u2029/g;function ff(e){return"\\"+df[e]}var hf=/^\s*(\w|\$)+\s*$/;function gs(e,n,t){!n&&t&&(n=t),n=Ca({},n,ye.templateSettings);var i=RegExp([(n.escape||Gi).source,(n.interpolate||Gi).source,(n.evaluate||Gi).source].join("|")+"|$","g"),r=0,a="__p+='";e.replace(i,function(s,d,g,b,m){return a+=e.slice(r,m).replace(lf,ff),r=m+s.length,d?a+=`'+ ((__t=(`+d+`))==null?'':_.escape(__t))+ '`:g?a+=`'+ ((__t=(`+g+`))==null?'':__t)+ diff --git a/frontend/dist/assets/pdf-e6f26e66.js b/frontend/dist/assets/pdf-869d0c0b.js similarity index 99% rename from frontend/dist/assets/pdf-e6f26e66.js rename to frontend/dist/assets/pdf-869d0c0b.js index 031aad4..30af7de 100644 --- a/frontend/dist/assets/pdf-e6f26e66.js +++ b/frontend/dist/assets/pdf-869d0c0b.js @@ -1,4 +1,4 @@ -var FA=Object.defineProperty;var NA=(u,t,e)=>t in u?FA(u,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):u[t]=e;var k=(u,t,e)=>(NA(u,typeof t!="symbol"?t+"":t,e),e),dp=(u,t,e)=>{if(!t.has(u))throw TypeError("Cannot "+e)};var n=(u,t,e)=>(dp(u,t,"read from private field"),e?e.call(u):t.get(u)),d=(u,t,e)=>{if(t.has(u))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(u):t.set(u,e)},p=(u,t,e,s)=>(dp(u,t,"write to private field"),s?s.call(u,e):t.set(u,e),e);var St=(u,t,e,s)=>({set _(i){p(u,t,i,e)},get _(){return n(u,t,s)}}),b=(u,t,e)=>(dp(u,t,"access private method"),e);import{_ as OA}from"./index-a09f7810.js";const ie=typeof process=="object"&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser"),wp=[.001,0,0,.001,0,0],up=1.35,Pe={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},ki={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},Em="pdfjs_internal_editor_",$={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,POPUP:16,SIGNATURE:101,COMMENT:102},X={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_THICKNESS:32,HIGHLIGHT_FREE:33,HIGHLIGHT_SHOW_ALL:34,DRAW_STEP:41},BA={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},Ot={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},wd={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},wt={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},da={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},ep={ERRORS:0,WARNINGS:1,INFOS:5},Fl={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},ud={moveTo:0,lineTo:1,curveTo:2,closePath:3},HA={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let sp=ep.WARNINGS;function $A(u){Number.isInteger(u)&&(sp=u)}function zA(){return sp}function ip(u){sp>=ep.INFOS&&console.log(`Info: ${u}`)}function z(u){sp>=ep.WARNINGS&&console.log(`Warning: ${u}`)}function st(u){throw new Error(u)}function _t(u,t){u||st(t)}function GA(u){switch(u==null?void 0:u.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function Cm(u,t=null,e=null){if(!u)return null;if(e&&typeof u=="string"){if(e.addDefaultProtocol&&u.startsWith("www.")){const i=u.match(/\./g);(i==null?void 0:i.length)>=2&&(u=`http://${u}`)}if(e.tryConvertEncoding)try{u=XA(u)}catch{}}const s=t?URL.parse(u,t):URL.parse(u);return GA(s)?s:null}function Tm(u,t,e=!1){const s=URL.parse(u);return s?(s.hash=t,s.href):e&&Cm(u,"http://example.com")?u.split("#",1)[0]+`${t?`#${t}`:""}`:""}function V(u,t,e,s=!1){return Object.defineProperty(u,t,{value:e,enumerable:!s,configurable:!0,writable:!1}),e}const la=function(){function t(e,s){this.message=e,this.name=s}return t.prototype=new Error,t.constructor=t,t}();class sm extends la{constructor(t,e){super(t,"PasswordException"),this.code=e}}class fp extends la{constructor(t,e){super(t,"UnknownErrorException"),this.details=e}}class vp extends la{constructor(t){super(t,"InvalidPDFException")}}class Kd extends la{constructor(t,e,s){super(t,"ResponseException"),this.status=e,this.missing=s}}class UA extends la{constructor(t){super(t,"FormatError")}}class kn extends la{constructor(t){super(t,"AbortException")}}function xm(u){(typeof u!="object"||(u==null?void 0:u.length)===void 0)&&st("Invalid argument for bytesToString");const t=u.length,e=8192;if(t>24&255,u>>16&255,u>>8&255,u&255)}function VA(){const u=new Uint8Array(4);return u[0]=1,new Uint32Array(u.buffer,0,1)[0]===1}function WA(){try{return new Function(""),!0}catch{return!1}}class Wt{static get isLittleEndian(){return V(this,"isLittleEndian",VA())}static get isEvalSupported(){return V(this,"isEvalSupported",WA())}static get isOffscreenCanvasSupported(){return V(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas<"u")}static get isImageDecoderSupported(){return V(this,"isImageDecoderSupported",typeof ImageDecoder<"u")}static get platform(){const{platform:t,userAgent:e}=navigator;return V(this,"platform",{isAndroid:e.includes("Android"),isLinux:t.includes("Linux"),isMac:t.includes("Mac"),isWindows:t.includes("Win"),isFirefox:e.includes("Firefox")})}static get isCSSRoundSupported(){var t,e;return V(this,"isCSSRoundSupported",(e=(t=globalThis.CSS)==null?void 0:t.supports)==null?void 0:e.call(t,"width: round(1.5px, 1px)"))}}const pp=Array.from(Array(256).keys(),u=>u.toString(16).padStart(2,"0"));var Sa,vd,Hl,_p;class I{static makeHexColor(t,e,s){return`#${pp[t]}${pp[e]}${pp[s]}`}static domMatrixToTransform(t){return[t.a,t.b,t.c,t.d,t.e,t.f]}static scaleMinMax(t,e){let s;t[0]?(t[0]<0&&(s=e[0],e[0]=e[2],e[2]=s),e[0]*=t[0],e[2]*=t[0],t[3]<0&&(s=e[1],e[1]=e[3],e[3]=s),e[1]*=t[3],e[3]*=t[3]):(s=e[0],e[0]=e[1],e[1]=s,s=e[2],e[2]=e[3],e[3]=s,t[1]<0&&(s=e[1],e[1]=e[3],e[3]=s),e[1]*=t[1],e[3]*=t[1],t[2]<0&&(s=e[0],e[0]=e[2],e[2]=s),e[0]*=t[2],e[2]*=t[2]),e[0]+=t[4],e[1]+=t[5],e[2]+=t[4],e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static multiplyByDOMMatrix(t,e){return[t[0]*e.a+t[2]*e.b,t[1]*e.a+t[3]*e.b,t[0]*e.c+t[2]*e.d,t[1]*e.c+t[3]*e.d,t[0]*e.e+t[2]*e.f+t[4],t[1]*e.e+t[3]*e.f+t[5]]}static applyTransform(t,e,s=0){const i=t[s],r=t[s+1];t[s]=i*e[0]+r*e[2]+e[4],t[s+1]=i*e[1]+r*e[3]+e[5]}static applyTransformToBezier(t,e,s=0){const i=e[0],r=e[1],a=e[2],o=e[3],l=e[4],h=e[5];for(let c=0;c<6;c+=2){const f=t[s+c],g=t[s+c+1];t[s+c]=f*i+g*a+l,t[s+c+1]=f*r+g*o+h}}static applyInverseTransform(t,e){const s=t[0],i=t[1],r=e[0]*e[3]-e[1]*e[2];t[0]=(s*e[3]-i*e[2]+e[2]*e[5]-e[4]*e[3])/r,t[1]=(-s*e[1]+i*e[0]+e[4]*e[1]-e[5]*e[0])/r}static axialAlignedBoundingBox(t,e,s){const i=e[0],r=e[1],a=e[2],o=e[3],l=e[4],h=e[5],c=t[0],f=t[1],g=t[2],m=t[3];let A=i*c+l,y=A,v=i*g+l,w=v,S=o*f+h,_=S,E=o*m+h,C=E;if(r!==0||a!==0){const T=r*c,x=r*g,P=a*f,M=a*m;A+=P,w+=P,v+=M,y+=M,S+=T,C+=T,E+=x,_+=x}s[0]=Math.min(s[0],A,v,y,w),s[1]=Math.min(s[1],S,E,_,C),s[2]=Math.max(s[2],A,v,y,w),s[3]=Math.max(s[3],S,E,_,C)}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t,e){const s=t[0],i=t[1],r=t[2],a=t[3],o=s**2+i**2,l=s*r+i*a,h=r**2+a**2,c=(o+h)/2,f=Math.sqrt(c**2-(o*h-l**2));e[0]=Math.sqrt(c+f||1),e[1]=Math.sqrt(c-f||1)}static normalizeRect(t){const e=t.slice(0);return t[0]>t[2]&&(e[0]=t[2],e[2]=t[0]),t[1]>t[3]&&(e[1]=t[3],e[3]=t[1]),e}static intersect(t,e){const s=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),i=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(s>i)return null;const r=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return r>a?null:[s,r,i,a]}static pointBoundingBox(t,e,s){s[0]=Math.min(s[0],t),s[1]=Math.min(s[1],e),s[2]=Math.max(s[2],t),s[3]=Math.max(s[3],e)}static rectBoundingBox(t,e,s,i,r){r[0]=Math.min(r[0],t,s),r[1]=Math.min(r[1],e,i),r[2]=Math.max(r[2],t,s),r[3]=Math.max(r[3],e,i)}static bezierBoundingBox(t,e,s,i,r,a,o,l,h){h[0]=Math.min(h[0],t,o),h[1]=Math.min(h[1],e,l),h[2]=Math.max(h[2],t,o),h[3]=Math.max(h[3],e,l),b(this,Hl,_p).call(this,t,s,r,o,e,i,a,l,3*(-t+3*(s-r)+o),6*(t-2*s+r),3*(s-t),h),b(this,Hl,_p).call(this,t,s,r,o,e,i,a,l,3*(-e+3*(i-a)+l),6*(e-2*i+a),3*(i-e),h)}}Sa=new WeakSet,vd=function(t,e,s,i,r,a,o,l,h,c){if(h<=0||h>=1)return;const f=1-h,g=h*h,m=g*h,A=f*(f*(f*t+3*h*e)+3*g*s)+m*i,y=f*(f*(f*r+3*h*a)+3*g*o)+m*l;c[0]=Math.min(c[0],A),c[1]=Math.min(c[1],y),c[2]=Math.max(c[2],A),c[3]=Math.max(c[3],y)},Hl=new WeakSet,_p=function(t,e,s,i,r,a,o,l,h,c,f,g){if(Math.abs(h)<1e-12){Math.abs(c)>=1e-12&&b(this,Sa,vd).call(this,t,e,s,i,r,a,o,l,-f/c,g);return}const m=c**2-4*f*h;if(m<0)return;const A=Math.sqrt(m),y=2*h;b(this,Sa,vd).call(this,t,e,s,i,r,a,o,l,(-c+A)/y,g),b(this,Sa,vd).call(this,t,e,s,i,r,a,o,l,(-c-A)/y,g)},d(I,Sa),d(I,Hl);function XA(u){return decodeURIComponent(escape(u))}let gp=null,im=null;function qA(u){return gp||(gp=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,im=new Map([["ſt","ſt"]])),u.replaceAll(gp,(t,e,s)=>e?e.normalize("NFKC"):im.get(s))}function km(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const u=new Uint8Array(32);return crypto.getRandomValues(u),xm(u)}const Hg="pdfjs_internal_id_";function YA(u,t,e){if(!Array.isArray(e)||e.length<2)return!1;const[s,i,...r]=e;if(!u(s)&&!Number.isInteger(s)||!t(i))return!1;const a=r.length;let o=!0;switch(i.name){case"XYZ":if(a<2||a>3)return!1;break;case"Fit":case"FitB":return a===0;case"FitH":case"FitBH":case"FitV":case"FitBV":if(a>1)return!1;break;case"FitR":if(a!==4)return!1;o=!1;break;default:return!1}for(const l of r)if(!(typeof l=="number"||o&&l===null))return!1;return!0}function ne(u,t,e){return Math.min(Math.max(u,t),e)}function Pm(u){return Uint8Array.prototype.toBase64?u.toBase64():btoa(xm(u))}function KA(u){return Uint8Array.fromBase64?Uint8Array.fromBase64(u):ad(atob(u))}typeof Promise.try!="function"&&(Promise.try=function(u,...t){return new Promise(e=>{e(u(...t))})});typeof Math.sumPrecise!="function"&&(Math.sumPrecise=function(u){return u.reduce((t,e)=>t+e,0)});const Is="http://www.w3.org/2000/svg",Fn=class Fn{};k(Fn,"CSS",96),k(Fn,"PDF",72),k(Fn,"PDF_TO_CSS_UNITS",Fn.CSS/Fn.PDF);let Pn=Fn;async function od(u,t="text"){if(gl(u,document.baseURI)){const e=await fetch(u);if(!e.ok)throw new Error(e.statusText);switch(t){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"json":return e.json()}return e.text()}return new Promise((e,s)=>{const i=new XMLHttpRequest;i.open("GET",u,!0),i.responseType=t,i.onreadystatechange=()=>{if(i.readyState===XMLHttpRequest.DONE){if(i.status===200||i.status===0){switch(t){case"arraybuffer":case"blob":case"json":e(i.response);return}e(i.responseText);return}s(new Error(i.statusText))}},i.send(null)})}class ld{constructor({viewBox:t,userUnit:e,scale:s,rotation:i,offsetX:r=0,offsetY:a=0,dontFlip:o=!1}){this.viewBox=t,this.userUnit=e,this.scale=s,this.rotation=i,this.offsetX=r,this.offsetY=a,s*=e;const l=(t[2]+t[0])/2,h=(t[3]+t[1])/2;let c,f,g,m;switch(i%=360,i<0&&(i+=360),i){case 180:c=-1,f=0,g=0,m=1;break;case 90:c=0,f=1,g=1,m=0;break;case 270:c=0,f=-1,g=-1,m=0;break;case 0:c=1,f=0,g=0,m=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}o&&(g=-g,m=-m);let A,y,v,w;c===0?(A=Math.abs(h-t[1])*s+r,y=Math.abs(l-t[0])*s+a,v=(t[3]-t[1])*s,w=(t[2]-t[0])*s):(A=Math.abs(l-t[0])*s+r,y=Math.abs(h-t[1])*s+a,v=(t[2]-t[0])*s,w=(t[3]-t[1])*s),this.transform=[c*s,f*s,g*s,m*s,A-c*s*l-g*s*h,y-f*s*l-m*s*h],this.width=v,this.height=w}get rawDims(){const t=this.viewBox;return V(this,"rawDims",{pageWidth:t[2]-t[0],pageHeight:t[3]-t[1],pageX:t[0],pageY:t[1]})}clone({scale:t=this.scale,rotation:e=this.rotation,offsetX:s=this.offsetX,offsetY:i=this.offsetY,dontFlip:r=!1}={}){return new ld({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:t,rotation:e,offsetX:s,offsetY:i,dontFlip:r})}convertToViewportPoint(t,e){const s=[t,e];return I.applyTransform(s,this.transform),s}convertToViewportRectangle(t){const e=[t[0],t[1]];I.applyTransform(e,this.transform);const s=[t[2],t[3]];return I.applyTransform(s,this.transform),[e[0],e[1],s[0],s[1]]}convertToPdfPoint(t,e){const s=[t,e];return I.applyInverseTransform(s,this.transform),s}}class $g extends la{constructor(t,e=0){super(t,"RenderingCancelledException"),this.extraDelay=e}}function np(u){const t=u.length;let e=0;for(;e{try{return new URL(o)}catch{try{return new URL(decodeURIComponent(o))}catch{try{return new URL(o,"https://foo.bar")}catch{try{return new URL(decodeURIComponent(o),"https://foo.bar")}catch{return null}}}}})(u);if(!s)return t;const i=o=>{try{let l=decodeURIComponent(o);return l.includes("/")?(l=l.split("/").at(-1),l.test(/^\.pdf$/i)?l:o):l}catch{return o}},r=/\.pdf$/i,a=s.pathname.split("/").at(-1);if(r.test(a))return i(a);if(s.searchParams.size>0){const o=Array.from(s.searchParams.values()).reverse();for(const h of o)if(r.test(h))return i(h);const l=Array.from(s.searchParams.keys()).reverse();for(const h of l)if(r.test(h))return i(h)}if(s.hash){const l=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i.exec(s.hash);if(l)return i(l[0])}return t}class nm{constructor(){k(this,"started",Object.create(null));k(this,"times",[])}time(t){t in this.started&&z(`Timer is already running for ${t}`),this.started[t]=Date.now()}timeEnd(t){t in this.started||z(`Timer has not been started for ${t}`),this.times.push({name:t,start:this.started[t],end:Date.now()}),delete this.started[t]}toString(){const t=[];let e=0;for(const{name:s}of this.times)e=Math.max(s.length,e);for(const{name:s,start:i,end:r}of this.times)t.push(`${s.padEnd(e)} ${r-i}ms +var FA=Object.defineProperty;var NA=(u,t,e)=>t in u?FA(u,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):u[t]=e;var k=(u,t,e)=>(NA(u,typeof t!="symbol"?t+"":t,e),e),dp=(u,t,e)=>{if(!t.has(u))throw TypeError("Cannot "+e)};var n=(u,t,e)=>(dp(u,t,"read from private field"),e?e.call(u):t.get(u)),d=(u,t,e)=>{if(t.has(u))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(u):t.set(u,e)},p=(u,t,e,s)=>(dp(u,t,"write to private field"),s?s.call(u,e):t.set(u,e),e);var St=(u,t,e,s)=>({set _(i){p(u,t,i,e)},get _(){return n(u,t,s)}}),b=(u,t,e)=>(dp(u,t,"access private method"),e);import{_ as OA}from"./index-7802977e.js";const ie=typeof process=="object"&&process+""=="[object process]"&&!process.versions.nw&&!(process.versions.electron&&process.type&&process.type!=="browser"),wp=[.001,0,0,.001,0,0],up=1.35,Pe={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,IS_EDITING:128,OPLIST:256},ki={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},Em="pdfjs_internal_editor_",$={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15,POPUP:16,SIGNATURE:101,COMMENT:102},X={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_THICKNESS:32,HIGHLIGHT_FREE:33,HIGHLIGHT_SHOW_ALL:34,DRAW_STEP:41},BA={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},Ot={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},wd={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},wt={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},da={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},ep={ERRORS:0,WARNINGS:1,INFOS:5},Fl={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91,setStrokeTransparent:92,setFillTransparent:93,rawFillPath:94},ud={moveTo:0,lineTo:1,curveTo:2,closePath:3},HA={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let sp=ep.WARNINGS;function $A(u){Number.isInteger(u)&&(sp=u)}function zA(){return sp}function ip(u){sp>=ep.INFOS&&console.log(`Info: ${u}`)}function z(u){sp>=ep.WARNINGS&&console.log(`Warning: ${u}`)}function st(u){throw new Error(u)}function _t(u,t){u||st(t)}function GA(u){switch(u==null?void 0:u.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function Cm(u,t=null,e=null){if(!u)return null;if(e&&typeof u=="string"){if(e.addDefaultProtocol&&u.startsWith("www.")){const i=u.match(/\./g);(i==null?void 0:i.length)>=2&&(u=`http://${u}`)}if(e.tryConvertEncoding)try{u=XA(u)}catch{}}const s=t?URL.parse(u,t):URL.parse(u);return GA(s)?s:null}function Tm(u,t,e=!1){const s=URL.parse(u);return s?(s.hash=t,s.href):e&&Cm(u,"http://example.com")?u.split("#",1)[0]+`${t?`#${t}`:""}`:""}function V(u,t,e,s=!1){return Object.defineProperty(u,t,{value:e,enumerable:!s,configurable:!0,writable:!1}),e}const la=function(){function t(e,s){this.message=e,this.name=s}return t.prototype=new Error,t.constructor=t,t}();class sm extends la{constructor(t,e){super(t,"PasswordException"),this.code=e}}class fp extends la{constructor(t,e){super(t,"UnknownErrorException"),this.details=e}}class vp extends la{constructor(t){super(t,"InvalidPDFException")}}class Kd extends la{constructor(t,e,s){super(t,"ResponseException"),this.status=e,this.missing=s}}class UA extends la{constructor(t){super(t,"FormatError")}}class kn extends la{constructor(t){super(t,"AbortException")}}function xm(u){(typeof u!="object"||(u==null?void 0:u.length)===void 0)&&st("Invalid argument for bytesToString");const t=u.length,e=8192;if(t>24&255,u>>16&255,u>>8&255,u&255)}function VA(){const u=new Uint8Array(4);return u[0]=1,new Uint32Array(u.buffer,0,1)[0]===1}function WA(){try{return new Function(""),!0}catch{return!1}}class Wt{static get isLittleEndian(){return V(this,"isLittleEndian",VA())}static get isEvalSupported(){return V(this,"isEvalSupported",WA())}static get isOffscreenCanvasSupported(){return V(this,"isOffscreenCanvasSupported",typeof OffscreenCanvas<"u")}static get isImageDecoderSupported(){return V(this,"isImageDecoderSupported",typeof ImageDecoder<"u")}static get platform(){const{platform:t,userAgent:e}=navigator;return V(this,"platform",{isAndroid:e.includes("Android"),isLinux:t.includes("Linux"),isMac:t.includes("Mac"),isWindows:t.includes("Win"),isFirefox:e.includes("Firefox")})}static get isCSSRoundSupported(){var t,e;return V(this,"isCSSRoundSupported",(e=(t=globalThis.CSS)==null?void 0:t.supports)==null?void 0:e.call(t,"width: round(1.5px, 1px)"))}}const pp=Array.from(Array(256).keys(),u=>u.toString(16).padStart(2,"0"));var Sa,vd,Hl,_p;class I{static makeHexColor(t,e,s){return`#${pp[t]}${pp[e]}${pp[s]}`}static domMatrixToTransform(t){return[t.a,t.b,t.c,t.d,t.e,t.f]}static scaleMinMax(t,e){let s;t[0]?(t[0]<0&&(s=e[0],e[0]=e[2],e[2]=s),e[0]*=t[0],e[2]*=t[0],t[3]<0&&(s=e[1],e[1]=e[3],e[3]=s),e[1]*=t[3],e[3]*=t[3]):(s=e[0],e[0]=e[1],e[1]=s,s=e[2],e[2]=e[3],e[3]=s,t[1]<0&&(s=e[1],e[1]=e[3],e[3]=s),e[1]*=t[1],e[3]*=t[1],t[2]<0&&(s=e[0],e[0]=e[2],e[2]=s),e[0]*=t[2],e[2]*=t[2]),e[0]+=t[4],e[1]+=t[5],e[2]+=t[4],e[3]+=t[5]}static transform(t,e){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],t[0]*e[4]+t[2]*e[5]+t[4],t[1]*e[4]+t[3]*e[5]+t[5]]}static multiplyByDOMMatrix(t,e){return[t[0]*e.a+t[2]*e.b,t[1]*e.a+t[3]*e.b,t[0]*e.c+t[2]*e.d,t[1]*e.c+t[3]*e.d,t[0]*e.e+t[2]*e.f+t[4],t[1]*e.e+t[3]*e.f+t[5]]}static applyTransform(t,e,s=0){const i=t[s],r=t[s+1];t[s]=i*e[0]+r*e[2]+e[4],t[s+1]=i*e[1]+r*e[3]+e[5]}static applyTransformToBezier(t,e,s=0){const i=e[0],r=e[1],a=e[2],o=e[3],l=e[4],h=e[5];for(let c=0;c<6;c+=2){const f=t[s+c],g=t[s+c+1];t[s+c]=f*i+g*a+l,t[s+c+1]=f*r+g*o+h}}static applyInverseTransform(t,e){const s=t[0],i=t[1],r=e[0]*e[3]-e[1]*e[2];t[0]=(s*e[3]-i*e[2]+e[2]*e[5]-e[4]*e[3])/r,t[1]=(-s*e[1]+i*e[0]+e[4]*e[1]-e[5]*e[0])/r}static axialAlignedBoundingBox(t,e,s){const i=e[0],r=e[1],a=e[2],o=e[3],l=e[4],h=e[5],c=t[0],f=t[1],g=t[2],m=t[3];let A=i*c+l,y=A,v=i*g+l,w=v,S=o*f+h,_=S,E=o*m+h,C=E;if(r!==0||a!==0){const T=r*c,x=r*g,P=a*f,M=a*m;A+=P,w+=P,v+=M,y+=M,S+=T,C+=T,E+=x,_+=x}s[0]=Math.min(s[0],A,v,y,w),s[1]=Math.min(s[1],S,E,_,C),s[2]=Math.max(s[2],A,v,y,w),s[3]=Math.max(s[3],S,E,_,C)}static inverseTransform(t){const e=t[0]*t[3]-t[1]*t[2];return[t[3]/e,-t[1]/e,-t[2]/e,t[0]/e,(t[2]*t[5]-t[4]*t[3])/e,(t[4]*t[1]-t[5]*t[0])/e]}static singularValueDecompose2dScale(t,e){const s=t[0],i=t[1],r=t[2],a=t[3],o=s**2+i**2,l=s*r+i*a,h=r**2+a**2,c=(o+h)/2,f=Math.sqrt(c**2-(o*h-l**2));e[0]=Math.sqrt(c+f||1),e[1]=Math.sqrt(c-f||1)}static normalizeRect(t){const e=t.slice(0);return t[0]>t[2]&&(e[0]=t[2],e[2]=t[0]),t[1]>t[3]&&(e[1]=t[3],e[3]=t[1]),e}static intersect(t,e){const s=Math.max(Math.min(t[0],t[2]),Math.min(e[0],e[2])),i=Math.min(Math.max(t[0],t[2]),Math.max(e[0],e[2]));if(s>i)return null;const r=Math.max(Math.min(t[1],t[3]),Math.min(e[1],e[3])),a=Math.min(Math.max(t[1],t[3]),Math.max(e[1],e[3]));return r>a?null:[s,r,i,a]}static pointBoundingBox(t,e,s){s[0]=Math.min(s[0],t),s[1]=Math.min(s[1],e),s[2]=Math.max(s[2],t),s[3]=Math.max(s[3],e)}static rectBoundingBox(t,e,s,i,r){r[0]=Math.min(r[0],t,s),r[1]=Math.min(r[1],e,i),r[2]=Math.max(r[2],t,s),r[3]=Math.max(r[3],e,i)}static bezierBoundingBox(t,e,s,i,r,a,o,l,h){h[0]=Math.min(h[0],t,o),h[1]=Math.min(h[1],e,l),h[2]=Math.max(h[2],t,o),h[3]=Math.max(h[3],e,l),b(this,Hl,_p).call(this,t,s,r,o,e,i,a,l,3*(-t+3*(s-r)+o),6*(t-2*s+r),3*(s-t),h),b(this,Hl,_p).call(this,t,s,r,o,e,i,a,l,3*(-e+3*(i-a)+l),6*(e-2*i+a),3*(i-e),h)}}Sa=new WeakSet,vd=function(t,e,s,i,r,a,o,l,h,c){if(h<=0||h>=1)return;const f=1-h,g=h*h,m=g*h,A=f*(f*(f*t+3*h*e)+3*g*s)+m*i,y=f*(f*(f*r+3*h*a)+3*g*o)+m*l;c[0]=Math.min(c[0],A),c[1]=Math.min(c[1],y),c[2]=Math.max(c[2],A),c[3]=Math.max(c[3],y)},Hl=new WeakSet,_p=function(t,e,s,i,r,a,o,l,h,c,f,g){if(Math.abs(h)<1e-12){Math.abs(c)>=1e-12&&b(this,Sa,vd).call(this,t,e,s,i,r,a,o,l,-f/c,g);return}const m=c**2-4*f*h;if(m<0)return;const A=Math.sqrt(m),y=2*h;b(this,Sa,vd).call(this,t,e,s,i,r,a,o,l,(-c+A)/y,g),b(this,Sa,vd).call(this,t,e,s,i,r,a,o,l,(-c-A)/y,g)},d(I,Sa),d(I,Hl);function XA(u){return decodeURIComponent(escape(u))}let gp=null,im=null;function qA(u){return gp||(gp=/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu,im=new Map([["ſt","ſt"]])),u.replaceAll(gp,(t,e,s)=>e?e.normalize("NFKC"):im.get(s))}function km(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID();const u=new Uint8Array(32);return crypto.getRandomValues(u),xm(u)}const Hg="pdfjs_internal_id_";function YA(u,t,e){if(!Array.isArray(e)||e.length<2)return!1;const[s,i,...r]=e;if(!u(s)&&!Number.isInteger(s)||!t(i))return!1;const a=r.length;let o=!0;switch(i.name){case"XYZ":if(a<2||a>3)return!1;break;case"Fit":case"FitB":return a===0;case"FitH":case"FitBH":case"FitV":case"FitBV":if(a>1)return!1;break;case"FitR":if(a!==4)return!1;o=!1;break;default:return!1}for(const l of r)if(!(typeof l=="number"||o&&l===null))return!1;return!0}function ne(u,t,e){return Math.min(Math.max(u,t),e)}function Pm(u){return Uint8Array.prototype.toBase64?u.toBase64():btoa(xm(u))}function KA(u){return Uint8Array.fromBase64?Uint8Array.fromBase64(u):ad(atob(u))}typeof Promise.try!="function"&&(Promise.try=function(u,...t){return new Promise(e=>{e(u(...t))})});typeof Math.sumPrecise!="function"&&(Math.sumPrecise=function(u){return u.reduce((t,e)=>t+e,0)});const Is="http://www.w3.org/2000/svg",Fn=class Fn{};k(Fn,"CSS",96),k(Fn,"PDF",72),k(Fn,"PDF_TO_CSS_UNITS",Fn.CSS/Fn.PDF);let Pn=Fn;async function od(u,t="text"){if(gl(u,document.baseURI)){const e=await fetch(u);if(!e.ok)throw new Error(e.statusText);switch(t){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"json":return e.json()}return e.text()}return new Promise((e,s)=>{const i=new XMLHttpRequest;i.open("GET",u,!0),i.responseType=t,i.onreadystatechange=()=>{if(i.readyState===XMLHttpRequest.DONE){if(i.status===200||i.status===0){switch(t){case"arraybuffer":case"blob":case"json":e(i.response);return}e(i.responseText);return}s(new Error(i.statusText))}},i.send(null)})}class ld{constructor({viewBox:t,userUnit:e,scale:s,rotation:i,offsetX:r=0,offsetY:a=0,dontFlip:o=!1}){this.viewBox=t,this.userUnit=e,this.scale=s,this.rotation=i,this.offsetX=r,this.offsetY=a,s*=e;const l=(t[2]+t[0])/2,h=(t[3]+t[1])/2;let c,f,g,m;switch(i%=360,i<0&&(i+=360),i){case 180:c=-1,f=0,g=0,m=1;break;case 90:c=0,f=1,g=1,m=0;break;case 270:c=0,f=-1,g=-1,m=0;break;case 0:c=1,f=0,g=0,m=-1;break;default:throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.")}o&&(g=-g,m=-m);let A,y,v,w;c===0?(A=Math.abs(h-t[1])*s+r,y=Math.abs(l-t[0])*s+a,v=(t[3]-t[1])*s,w=(t[2]-t[0])*s):(A=Math.abs(l-t[0])*s+r,y=Math.abs(h-t[1])*s+a,v=(t[2]-t[0])*s,w=(t[3]-t[1])*s),this.transform=[c*s,f*s,g*s,m*s,A-c*s*l-g*s*h,y-f*s*l-m*s*h],this.width=v,this.height=w}get rawDims(){const t=this.viewBox;return V(this,"rawDims",{pageWidth:t[2]-t[0],pageHeight:t[3]-t[1],pageX:t[0],pageY:t[1]})}clone({scale:t=this.scale,rotation:e=this.rotation,offsetX:s=this.offsetX,offsetY:i=this.offsetY,dontFlip:r=!1}={}){return new ld({viewBox:this.viewBox.slice(),userUnit:this.userUnit,scale:t,rotation:e,offsetX:s,offsetY:i,dontFlip:r})}convertToViewportPoint(t,e){const s=[t,e];return I.applyTransform(s,this.transform),s}convertToViewportRectangle(t){const e=[t[0],t[1]];I.applyTransform(e,this.transform);const s=[t[2],t[3]];return I.applyTransform(s,this.transform),[e[0],e[1],s[0],s[1]]}convertToPdfPoint(t,e){const s=[t,e];return I.applyInverseTransform(s,this.transform),s}}class $g extends la{constructor(t,e=0){super(t,"RenderingCancelledException"),this.extraDelay=e}}function np(u){const t=u.length;let e=0;for(;e{try{return new URL(o)}catch{try{return new URL(decodeURIComponent(o))}catch{try{return new URL(o,"https://foo.bar")}catch{try{return new URL(decodeURIComponent(o),"https://foo.bar")}catch{return null}}}}})(u);if(!s)return t;const i=o=>{try{let l=decodeURIComponent(o);return l.includes("/")?(l=l.split("/").at(-1),l.test(/^\.pdf$/i)?l:o):l}catch{return o}},r=/\.pdf$/i,a=s.pathname.split("/").at(-1);if(r.test(a))return i(a);if(s.searchParams.size>0){const o=Array.from(s.searchParams.values()).reverse();for(const h of o)if(r.test(h))return i(h);const l=Array.from(s.searchParams.keys()).reverse();for(const h of l)if(r.test(h))return i(h)}if(s.hash){const l=/[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i.exec(s.hash);if(l)return i(l[0])}return t}class nm{constructor(){k(this,"started",Object.create(null));k(this,"times",[])}time(t){t in this.started&&z(`Timer is already running for ${t}`),this.started[t]=Date.now()}timeEnd(t){t in this.started||z(`Timer has not been started for ${t}`),this.times.push({name:t,start:this.started[t],end:Date.now()}),delete this.started[t]}toString(){const t=[];let e=0;for(const{name:s}of this.times)e=Math.max(s.length,e);for(const{name:s,start:i,end:r}of this.times)t.push(`${s.padEnd(e)} ${r-i}ms `);return t.join("")}}function gl(u,t){const e=t?URL.parse(u,t):URL.parse(u);return(e==null?void 0:e.protocol)==="http:"||(e==null?void 0:e.protocol)==="https:"}function je(u){u.preventDefault()}function vt(u){u.preventDefault(),u.stopPropagation()}function ZA(u){console.log("Deprecated API usage: "+u)}var $l;class Qd{static toDateObject(t){if(t instanceof Date)return t;if(!t||typeof t!="string")return null;n(this,$l)||p(this,$l,new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?"));const e=n(this,$l).exec(t);if(!e)return null;const s=parseInt(e[1],10);let i=parseInt(e[2],10);i=i>=1&&i<=12?i-1:0;let r=parseInt(e[3],10);r=r>=1&&r<=31?r:1;let a=parseInt(e[4],10);a=a>=0&&a<=23?a:0;let o=parseInt(e[5],10);o=o>=0&&o<=59?o:0;let l=parseInt(e[6],10);l=l>=0&&l<=59?l:0;const h=e[7]||"Z";let c=parseInt(e[8],10);c=c>=0&&c<=23?c:0;let f=parseInt(e[9],10)||0;return f=f>=0&&f<=59?f:0,h==="-"?(a+=c,o+=f):h==="+"&&(a-=c,o-=f),new Date(Date.UTC(s,i,r,a,o,l))}}$l=new WeakMap,d(Qd,$l,void 0);function ty(u,{scale:t=1,rotation:e=0}){const{width:s,height:i}=u.attributes.style,r=[0,0,parseInt(s),parseInt(i)];return new ld({viewBox:r,userUnit:1,scale:t,rotation:e})}function rp(u){if(u.startsWith("#")){const t=parseInt(u.slice(1),16);return[(t&16711680)>>16,(t&65280)>>8,t&255]}return u.startsWith("rgb(")?u.slice(4,-1).split(",").map(t=>parseInt(t)):u.startsWith("rgba(")?u.slice(5,-1).split(",").map(t=>parseInt(t)).slice(0,3):(z(`Not a valid color format: "${u}"`),[0,0,0])}function ey(u){const t=document.createElement("span");t.style.visibility="hidden",t.style.colorScheme="only light",document.body.append(t);for(const e of u.keys()){t.style.color=e;const s=window.getComputedStyle(t).color;u.set(e,rp(s))}t.remove()}function dt(u){const{a:t,b:e,c:s,d:i,e:r,f:a}=u.getTransform();return[t,e,s,i,r,a]}function os(u){const{a:t,b:e,c:s,d:i,e:r,f:a}=u.getTransform().invertSelf();return[t,e,s,i,r,a]}function ra(u,t,e=!1,s=!0){if(t instanceof ld){const{pageWidth:i,pageHeight:r}=t.rawDims,{style:a}=u,o=Wt.isCSSRoundSupported,l=`var(--total-scale-factor) * ${i}px`,h=`var(--total-scale-factor) * ${r}px`,c=o?`round(down, ${l}, var(--scale-round-x))`:`calc(${l})`,f=o?`round(down, ${h}, var(--scale-round-y))`:`calc(${h})`;!e||t.rotation%180===0?(a.width=c,a.height=f):(a.width=f,a.height=c)}s&&u.setAttribute("data-main-rotation",t.rotation)}class Ds{constructor(){const{pixelRatio:t}=Ds;this.sx=t,this.sy=t}get scaled(){return this.sx!==1||this.sy!==1}get symmetric(){return this.sx===this.sy}limitCanvas(t,e,s,i,r=-1){let a=1/0,o=1/0,l=1/0;s=Ds.capPixels(s,r),s>0&&(a=Math.sqrt(s/(t*e))),i!==-1&&(o=i/t,l=i/e);const h=Math.min(a,o,l);return this.sx>h||this.sy>h?(this.sx=h,this.sy=h,!0):!1}static get pixelRatio(){return globalThis.devicePixelRatio||1}static capPixels(t,e){if(e>=0){const s=Math.ceil(window.screen.availWidth*window.screen.availHeight*this.pixelRatio**2*(1+e/100));return t>0?Math.min(t,s):s}return t}}const Sp=["image/apng","image/avif","image/bmp","image/gif","image/jpeg","image/png","image/svg+xml","image/webp","image/x-icon"];var Pi,Mi,Ie,Hs,zl,Ea,Ca,Gl,ou,Mm,lu,Rm,hu,Dm,Ri,ua,Bn,ml;const Os=class Os{constructor(t){d(this,lu);d(this,hu);d(this,Ri);d(this,Bn);d(this,Pi,null);d(this,Mi,null);d(this,Ie,void 0);d(this,Hs,null);d(this,zl,null);d(this,Ea,null);d(this,Ca,null);p(this,Ie,t),n(Os,Gl)||p(Os,Gl,Object.freeze({freetext:"pdfjs-editor-remove-freetext-button",highlight:"pdfjs-editor-remove-highlight-button",ink:"pdfjs-editor-remove-ink-button",stamp:"pdfjs-editor-remove-stamp-button",signature:"pdfjs-editor-remove-signature-button"}))}render(){const t=p(this,Pi,document.createElement("div"));t.classList.add("editToolbar","hidden"),t.setAttribute("role","toolbar");const e=n(this,Ie)._uiManager._signal;e instanceof AbortSignal&&!e.aborted&&(t.addEventListener("contextmenu",je,{signal:e}),t.addEventListener("pointerdown",b(Os,ou,Mm),{signal:e}));const s=p(this,Hs,document.createElement("div"));s.className="buttons",t.append(s);const i=n(this,Ie).toolbarPosition;if(i){const{style:r}=t,a=n(this,Ie)._uiManager.direction==="ltr"?1-i[0]:i[0];r.insetInlineEnd=`${100*a}%`,r.top=`calc(${100*i[1]}% + var(--editor-toolbar-vert-offset))`}return t}get div(){return n(this,Pi)}hide(){var t;n(this,Pi).classList.add("hidden"),(t=n(this,Mi))==null||t.hideDropdown()}show(){var t,e;n(this,Pi).classList.remove("hidden"),(t=n(this,zl))==null||t.shown(),(e=n(this,Ea))==null||e.shown()}addDeleteButton(){const{editorType:t,_uiManager:e}=n(this,Ie),s=document.createElement("button");s.classList.add("basic","deleteButton"),s.tabIndex=0,s.setAttribute("data-l10n-id",n(Os,Gl)[t]),b(this,Ri,ua).call(this,s)&&s.addEventListener("click",i=>{e.delete()},{signal:e._signal}),n(this,Hs).append(s)}async addAltText(t){const e=await t.render();b(this,Ri,ua).call(this,e),n(this,Hs).append(e,n(this,Bn,ml)),p(this,zl,t)}addComment(t){if(n(this,Ea))return;const e=t.render();e&&(b(this,Ri,ua).call(this,e),n(this,Hs).append(e,n(this,Bn,ml)),p(this,Ea,t),t.toolbar=this)}addColorPicker(t){if(n(this,Mi))return;p(this,Mi,t);const e=t.renderButton();b(this,Ri,ua).call(this,e),n(this,Hs).append(e,n(this,Bn,ml))}async addEditSignatureButton(t){const e=p(this,Ca,await t.renderEditButton(n(this,Ie)));b(this,Ri,ua).call(this,e),n(this,Hs).append(e,n(this,Bn,ml))}async addButton(t,e){switch(t){case"colorPicker":this.addColorPicker(e);break;case"altText":await this.addAltText(e);break;case"editSignature":await this.addEditSignatureButton(e);break;case"delete":this.addDeleteButton();break;case"comment":this.addComment(e);break}}updateEditSignatureButton(t){n(this,Ca)&&(n(this,Ca).title=t)}remove(){var t;n(this,Pi).remove(),(t=n(this,Mi))==null||t.destroy(),p(this,Mi,null)}};Pi=new WeakMap,Mi=new WeakMap,Ie=new WeakMap,Hs=new WeakMap,zl=new WeakMap,Ea=new WeakMap,Ca=new WeakMap,Gl=new WeakMap,ou=new WeakSet,Mm=function(t){t.stopPropagation()},lu=new WeakSet,Rm=function(t){n(this,Ie)._focusEventsAllowed=!1,vt(t)},hu=new WeakSet,Dm=function(t){n(this,Ie)._focusEventsAllowed=!0,vt(t)},Ri=new WeakSet,ua=function(t){const e=n(this,Ie)._uiManager._signal;return!(e instanceof AbortSignal)||e.aborted?!1:(t.addEventListener("focusin",b(this,lu,Rm).bind(this),{capture:!0,signal:e}),t.addEventListener("focusout",b(this,hu,Dm).bind(this),{capture:!0,signal:e}),t.addEventListener("contextmenu",je,{signal:e}),!0)},Bn=new WeakSet,ml=function(){const t=document.createElement("div");return t.className="divider",t},d(Os,ou),d(Os,Gl,null);let Ep=Os;var Ul,Hn,$s,cu,Lm,du,Im,jl,Cp;class sy{constructor(t){d(this,cu);d(this,du);d(this,jl);d(this,Ul,null);d(this,Hn,null);d(this,$s,void 0);p(this,$s,t)}show(t,e,s){const[i,r]=b(this,du,Im).call(this,e,s),{style:a}=n(this,Hn)||p(this,Hn,b(this,cu,Lm).call(this));t.append(n(this,Hn)),a.insetInlineEnd=`${100*i}%`,a.top=`calc(${100*r}% + var(--editor-toolbar-vert-offset))`}hide(){n(this,Hn).remove()}}Ul=new WeakMap,Hn=new WeakMap,$s=new WeakMap,cu=new WeakSet,Lm=function(){const t=p(this,Hn,document.createElement("div"));t.className="editToolbar",t.setAttribute("role","toolbar");const e=n(this,$s)._signal;e instanceof AbortSignal&&!e.aborted&&t.addEventListener("contextmenu",je,{signal:e});const s=p(this,Ul,document.createElement("div"));return s.className="buttons",t.append(s),n(this,$s).hasCommentManager()&&b(this,jl,Cp).call(this,"commentButton","pdfjs-comment-floating-button","pdfjs-comment-floating-button-label",()=>{n(this,$s).commentSelection("floating_button")}),b(this,jl,Cp).call(this,"highlightButton","pdfjs-highlight-floating-button1","pdfjs-highlight-floating-button-label",()=>{n(this,$s).highlightSelection("floating_button")}),t},du=new WeakSet,Im=function(t,e){let s=0,i=0;for(const r of t){const a=r.y+r.height;if(as){i=o,s=a;continue}e?o>i&&(i=o):o(s.drawImage(i,0,0,1,1,0,0,1,3),new Uint32Array(s.getImageData(0,0,1,1).data.buffer)[0]===0));return V(this,"_isSVGFittingCanvas",r)}async getFromFile(t){const{lastModified:e,name:s,size:i,type:r}=t;return b(this,xa,_d).call(this,`${e}_${s}_${i}_${r}`,t)}async getFromUrl(t){return b(this,xa,_d).call(this,t,t)}async getFromBlob(t,e){const s=await e;return b(this,xa,_d).call(this,t,s)}async getFromId(t){n(this,qt)||p(this,qt,new Map);const e=n(this,qt).get(t);if(!e)return null;if(e.bitmap)return e.refCounter+=1,e;if(e.file)return this.getFromFile(e.file);if(e.blobPromise){const{blobPromise:s}=e;return delete e.blobPromise,this.getFromBlob(e.id,s)}return this.getFromUrl(e.url)}getFromCanvas(t,e){n(this,qt)||p(this,qt,new Map);let s=n(this,qt).get(t);if(s!=null&&s.bitmap)return s.refCounter+=1,s;const i=new OffscreenCanvas(e.width,e.height);return i.getContext("2d").drawImage(e,0,0),s={bitmap:i.transferToImageBitmap(),id:`image_${n(this,Ta)}_${St(this,Vl)._++}`,refCounter:1,isSvg:!1},n(this,qt).set(t,s),n(this,qt).set(s.id,s),s}getSvgUrl(t){const e=n(this,qt).get(t);return e!=null&&e.isSvg?e.svgUrl:null}deleteId(t){var i;n(this,qt)||p(this,qt,new Map);const e=n(this,qt).get(t);if(!e||(e.refCounter-=1,e.refCounter!==0))return;const{bitmap:s}=e;if(!e.url&&!e.file){const r=new OffscreenCanvas(s.width,s.height);r.getContext("bitmaprenderer").transferFromImageBitmap(s),e.blobPromise=r.convertToBlob()}(i=s.close)==null||i.call(s),e.bitmap=null}isValidId(t){return t.startsWith(`image_${n(this,Ta)}_`)}};Ta=new WeakMap,Vl=new WeakMap,qt=new WeakMap,xa=new WeakSet,_d=async function(t,e){n(this,qt)||p(this,qt,new Map);let s=n(this,qt).get(t);if(s===null)return null;if(s!=null&&s.bitmap)return s.refCounter+=1,s;try{s||(s={bitmap:null,id:`image_${n(this,Ta)}_${St(this,Vl)._++}`,refCounter:0,isSvg:!1});let i;if(typeof e=="string"?(s.url=e,i=await od(e,"blob")):e instanceof File?i=s.file=e:e instanceof Blob&&(i=e),i.type==="image/svg+xml"){const r=Yg._isSVGFittingCanvas,a=new FileReader,o=new Image,l=new Promise((h,c)=>{o.onload=()=>{s.bitmap=o,s.isSvg=!0,h()},a.onload=async()=>{const f=s.svgUrl=a.result;o.src=await r?`${f}#svgView(preserveAspectRatio(none))`:f},o.onerror=a.onerror=c});a.readAsDataURL(i),await l}else s.bitmap=await createImageBitmap(i);s.refCounter=1}catch(i){z(i),s=null}return n(this,qt).set(t,s),s&&n(this,qt).set(s.id,s),s};let Tp=Yg;var gt,Di,Wl,ht;class ny{constructor(t=128){d(this,gt,[]);d(this,Di,!1);d(this,Wl,void 0);d(this,ht,-1);p(this,Wl,t)}add({cmd:t,undo:e,post:s,mustExec:i,type:r=NaN,overwriteIfSameType:a=!1,keepUndo:o=!1}){if(i&&t(),n(this,Di))return;const l={cmd:t,undo:e,post:s,type:r};if(n(this,ht)===-1){n(this,gt).length>0&&(n(this,gt).length=0),p(this,ht,0),n(this,gt).push(l);return}if(a&&n(this,gt)[n(this,ht)].type===r){o&&(l.undo=n(this,gt)[n(this,ht)].undo),n(this,gt)[n(this,ht)]=l;return}const h=n(this,ht)+1;h===n(this,Wl)?n(this,gt).splice(0,1):(p(this,ht,h),h=0;e--)if(n(this,gt)[e].type!==t){n(this,gt).splice(e+1,n(this,ht)-e),p(this,ht,e);return}n(this,gt).length=0,p(this,ht,-1)}}destroy(){p(this,gt,null)}}gt=new WeakMap,Di=new WeakMap,Wl=new WeakMap,ht=new WeakMap;var fu,Nm;class hd{constructor(t){d(this,fu);this.buffer=[],this.callbacks=new Map,this.allKeys=new Set;const{isMac:e}=Wt.platform;for(const[s,i,r={}]of t)for(const a of s){const o=a.startsWith("mac+");e&&o?(this.callbacks.set(a.slice(4),{callback:i,options:r}),this.allKeys.add(a.split("+").at(-1))):!e&&!o&&(this.callbacks.set(a,{callback:i,options:r}),this.allKeys.add(a.split("+").at(-1)))}}exec(t,e){if(!this.allKeys.has(e.key))return;const s=this.callbacks.get(b(this,fu,Nm).call(this,e));if(!s)return;const{callback:i,options:{bubbles:r=!1,args:a=[],checker:o=null}}=s;o&&!o(t,e)||(i.bind(t,...a,e)(),r||vt(e))}}fu=new WeakSet,Nm=function(t){t.altKey&&this.buffer.push("alt"),t.ctrlKey&&this.buffer.push("ctrl"),t.metaKey&&this.buffer.push("meta"),t.shiftKey&&this.buffer.push("shift"),this.buffer.push(t.key);const e=this.buffer.join("+");return this.buffer.length=0,e};const pu=class pu{get _colors(){const t=new Map([["CanvasText",null],["Canvas",null]]);return ey(t),V(this,"_colors",t)}convert(t){const e=rp(t);if(!window.matchMedia("(forced-colors: active)").matches)return e;for(const[s,i]of this._colors)if(i.every((r,a)=>r===e[a]))return pu._colorsMapping.get(s);return e}getHexCode(t){const e=this._colors.get(t);return e?I.makeHexColor(...e):t}};k(pu,"_colorsMapping",new Map([["CanvasText",[0,0,0]],["Canvas",[255,255,255]]]));let xp=pu;var ka,ue,Pa,Ct,Bt,Ma,zs,Ra,Fe,Gs,Li,Ii,Da,$n,cs,Ne,zn,Xl,ql,La,Yl,ds,Fi,Ia,Ni,us,gu,Oi,Fa,Kl,Bi,Gn,Na,Hi,Ql,Tt,Q,Us,$i,zi,Jl,Oa,Zl,Gi,fs,js,th,eh,Oe,Ba,Sd,sh,kp,mu,Om,bu,Bm,Un,bl,Au,Hm,yu,$m,wu,zm,ih,Pp,vu,Gm,nh,Mp,rh,Rp,_u,Um,Ht,Qt,qe,Fs,Su,jm,Eu,Vm,ah,Dp,Cu,Wm,jn,Al,oh,Lp;const wa=class wa{constructor(t,e,s,i,r,a,o,l,h,c,f,g,m,A,y,v){d(this,Ba);d(this,sh);d(this,mu);d(this,bu);d(this,Un);d(this,Au);d(this,yu);d(this,wu);d(this,ih);d(this,vu);d(this,nh);d(this,rh);d(this,_u);d(this,Ht);d(this,qe);d(this,Su);d(this,Eu);d(this,ah);d(this,Cu);d(this,jn);d(this,oh);d(this,ka,new AbortController);d(this,ue,null);d(this,Pa,null);d(this,Ct,new Map);d(this,Bt,new Map);d(this,Ma,null);d(this,zs,null);d(this,Ra,null);d(this,Fe,new ny);d(this,Gs,null);d(this,Li,null);d(this,Ii,null);d(this,Da,0);d(this,$n,new Set);d(this,cs,null);d(this,Ne,null);d(this,zn,new Set);k(this,"_editorUndoBar",null);d(this,Xl,!1);d(this,ql,!1);d(this,La,!1);d(this,Yl,null);d(this,ds,null);d(this,Fi,null);d(this,Ia,null);d(this,Ni,!1);d(this,us,null);d(this,gu,new iy);d(this,Oi,!1);d(this,Fa,!1);d(this,Kl,!1);d(this,Bi,null);d(this,Gn,null);d(this,Na,null);d(this,Hi,null);d(this,Ql,null);d(this,Tt,$.NONE);d(this,Q,new Set);d(this,Us,null);d(this,$i,null);d(this,zi,null);d(this,Jl,null);d(this,Oa,null);d(this,Zl,{isEditing:!1,isEmpty:!0,hasSomethingToUndo:!1,hasSomethingToRedo:!1,hasSelectedEditor:!1,hasSelectedText:!1});d(this,Gi,[0,0]);d(this,fs,null);d(this,js,null);d(this,th,null);d(this,eh,null);d(this,Oe,null);const w=this._signal=n(this,ka).signal;p(this,js,t),p(this,th,e),p(this,eh,s),p(this,Ma,i),p(this,Gs,r),p(this,$i,a),p(this,Oa,l),this._eventBus=o,o._on("editingaction",this.onEditingAction.bind(this),{signal:w}),o._on("pagechanging",this.onPageChanging.bind(this),{signal:w}),o._on("scalechanging",this.onScaleChanging.bind(this),{signal:w}),o._on("rotationchanging",this.onRotationChanging.bind(this),{signal:w}),o._on("setpreference",this.onSetPreference.bind(this),{signal:w}),o._on("switchannotationeditorparams",S=>this.updateParams(S.type,S.value),{signal:w}),window.addEventListener("pointerdown",()=>{p(this,Fa,!0)},{capture:!0,signal:w}),window.addEventListener("pointerup",()=>{p(this,Fa,!1)},{capture:!0,signal:w}),b(this,Au,Hm).call(this),b(this,_u,Um).call(this),b(this,ih,Pp).call(this),p(this,zs,l.annotationStorage),p(this,Yl,l.filterFactory),p(this,zi,h),p(this,Ia,c||null),p(this,Xl,f),p(this,ql,g),p(this,La,m),p(this,Ql,A||null),this.viewParameters={realScale:Pn.PDF_TO_CSS_UNITS,rotation:0},this.isShiftKeyDown=!1,this._editorUndoBar=y||null,this._supportsPinchToZoom=v!==!1}static get _keyboardManager(){const t=wa.prototype,e=a=>n(a,js).contains(document.activeElement)&&document.activeElement.tagName!=="BUTTON"&&a.hasSomethingToControl(),s=(a,{target:o})=>{if(o instanceof HTMLInputElement){const{type:l}=o;return l!=="text"&&l!=="number"}return!0},i=this.TRANSLATE_SMALL,r=this.TRANSLATE_BIG;return V(this,"_keyboardManager",new hd([[["ctrl+a","mac+meta+a"],t.selectAll,{checker:s}],[["ctrl+z","mac+meta+z"],t.undo,{checker:s}],[["ctrl+y","ctrl+shift+z","mac+meta+shift+z","ctrl+shift+Z","mac+meta+shift+Z"],t.redo,{checker:s}],[["Backspace","alt+Backspace","ctrl+Backspace","shift+Backspace","mac+Backspace","mac+alt+Backspace","mac+ctrl+Backspace","Delete","ctrl+Delete","shift+Delete","mac+Delete"],t.delete,{checker:s}],[["Enter","mac+Enter"],t.addNewEditorFromKeyboard,{checker:(a,{target:o})=>!(o instanceof HTMLButtonElement)&&n(a,js).contains(o)&&!a.isEnterHandled}],[[" ","mac+ "],t.addNewEditorFromKeyboard,{checker:(a,{target:o})=>!(o instanceof HTMLButtonElement)&&n(a,js).contains(document.activeElement)}],[["Escape","mac+Escape"],t.unselectAll],[["ArrowLeft","mac+ArrowLeft"],t.translateSelectedEditors,{args:[-i,0],checker:e}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t.translateSelectedEditors,{args:[-r,0],checker:e}],[["ArrowRight","mac+ArrowRight"],t.translateSelectedEditors,{args:[i,0],checker:e}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t.translateSelectedEditors,{args:[r,0],checker:e}],[["ArrowUp","mac+ArrowUp"],t.translateSelectedEditors,{args:[0,-i],checker:e}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t.translateSelectedEditors,{args:[0,-r],checker:e}],[["ArrowDown","mac+ArrowDown"],t.translateSelectedEditors,{args:[0,i],checker:e}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t.translateSelectedEditors,{args:[0,r],checker:e}]]))}destroy(){var t,e,s,i,r,a,o,l,h;(t=n(this,Oe))==null||t.resolve(),p(this,Oe,null),(e=n(this,ka))==null||e.abort(),p(this,ka,null),this._signal=null;for(const c of n(this,Bt).values())c.destroy();n(this,Bt).clear(),n(this,Ct).clear(),n(this,zn).clear(),(s=n(this,Hi))==null||s.clear(),p(this,ue,null),n(this,Q).clear(),n(this,Fe).destroy(),(i=n(this,Ma))==null||i.destroy(),(r=n(this,Gs))==null||r.destroy(),(a=n(this,$i))==null||a.destroy(),(o=n(this,us))==null||o.hide(),p(this,us,null),(l=n(this,Na))==null||l.destroy(),p(this,Na,null),p(this,Pa,null),n(this,ds)&&(clearTimeout(n(this,ds)),p(this,ds,null)),n(this,fs)&&(clearTimeout(n(this,fs)),p(this,fs,null)),(h=this._editorUndoBar)==null||h.destroy(),p(this,Oa,null)}combinedSignal(t){return AbortSignal.any([this._signal,t.signal])}get mlManager(){return n(this,Ql)}get useNewAltTextFlow(){return n(this,ql)}get useNewAltTextWhenAddingImage(){return n(this,La)}get hcmFilter(){return V(this,"hcmFilter",n(this,zi)?n(this,Yl).addHCMFilter(n(this,zi).foreground,n(this,zi).background):"none")}get direction(){return V(this,"direction",getComputedStyle(n(this,js)).direction)}get _highlightColors(){return V(this,"_highlightColors",n(this,Ia)?new Map(n(this,Ia).split(",").map(t=>(t=t.split("=").map(e=>e.trim()),t[1]=t[1].toUpperCase(),t))):null)}get highlightColors(){const{_highlightColors:t}=this;if(!t)return V(this,"highlightColors",null);const e=new Map,s=!!n(this,zi);for(const[i,r]of t){const a=i.endsWith("_HCM");if(s&&a){e.set(i.replace("_HCM",""),r);continue}!s&&!a&&e.set(i,r)}return V(this,"highlightColors",e)}get highlightColorNames(){return V(this,"highlightColorNames",this.highlightColors?new Map(Array.from(this.highlightColors,t=>t.reverse())):null)}getNonHCMColor(t){if(!this._highlightColors)return t;const e=this.highlightColorNames.get(t);return this._highlightColors.get(e)||t}getNonHCMColorName(t){return this.highlightColorNames.get(t)||t}setCurrentDrawingSession(t){t?(this.unselectAll(),this.disableUserSelect(!0)):this.disableUserSelect(!1),p(this,Ii,t)}setMainHighlightColorPicker(t){p(this,Na,t)}editAltText(t,e=!1){var s;(s=n(this,Ma))==null||s.editAltText(this,t,e)}hasCommentManager(){return!!n(this,Gs)}editComment(t,e){var s;(s=n(this,Gs))==null||s.open(this,t,e)}getSignature(t){var e;(e=n(this,$i))==null||e.getSignature({uiManager:this,editor:t})}get signatureManager(){return n(this,$i)}switchToMode(t,e){this._eventBus.on("annotationeditormodechanged",e,{once:!0,signal:this._signal}),this._eventBus.dispatch("showannotationeditorui",{source:this,mode:t})}setPreference(t,e){this._eventBus.dispatch("setpreference",{source:this,name:t,value:e})}onSetPreference({name:t,value:e}){switch(t){case"enableNewAltTextWhenAddingImage":p(this,La,e);break}}onPageChanging({pageNumber:t}){p(this,Da,t-1)}focusMainContainer(){n(this,js).focus()}findParent(t,e){for(const s of n(this,Bt).values()){const{x:i,y:r,width:a,height:o}=s.div.getBoundingClientRect();if(t>=i&&t<=i+a&&e>=r&&e<=r+o)return s}return null}disableUserSelect(t=!1){n(this,th).classList.toggle("noUserSelect",t)}addShouldRescale(t){n(this,zn).add(t)}removeShouldRescale(t){n(this,zn).delete(t)}onScaleChanging({scale:t}){var e;this.commitOrRemove(),this.viewParameters.realScale=t*Pn.PDF_TO_CSS_UNITS;for(const s of n(this,zn))s.onScaleChanging();(e=n(this,Ii))==null||e.onScaleChanging()}onRotationChanging({pagesRotation:t}){this.commitOrRemove(),this.viewParameters.rotation=t}highlightSelection(t="",e=!1){const s=document.getSelection();if(!s||s.isCollapsed)return;const{anchorNode:i,anchorOffset:r,focusNode:a,focusOffset:o}=s,l=s.toString(),c=b(this,Ba,Sd).call(this,s).closest(".textLayer"),f=this.getSelectionBoxes(c);if(!f)return;s.empty();const g=b(this,sh,kp).call(this,c),m=n(this,Tt)===$.NONE,A=()=>{const y=g==null?void 0:g.createAndAddNewEditor({x:0,y:0},!1,{methodOfCreation:t,boxes:f,anchorNode:i,anchorOffset:r,focusNode:a,focusOffset:o,text:l});m&&this.showAllEditors("highlight",!0,!0),e&&(y==null||y.editComment())};if(m){this.switchToMode($.HIGHLIGHT,A);return}A()}commentSelection(t=""){this.highlightSelection(t,!0)}addToAnnotationStorage(t){!t.isEmpty()&&n(this,zs)&&!n(this,zs).has(t.id)&&n(this,zs).setValue(t.id,t)}a11yAlert(t,e=null){const s=n(this,eh);s&&(s.setAttribute("data-l10n-id",t),e?s.setAttribute("data-l10n-args",JSON.stringify(e)):s.removeAttribute("data-l10n-args"))}blur(){if(this.isShiftKeyDown=!1,n(this,Ni)&&(p(this,Ni,!1),b(this,Un,bl).call(this,"main_toolbar")),!this.hasSelection)return;const{activeElement:t}=document;for(const e of n(this,Q))if(e.div.contains(t)){p(this,Gn,[e,t]),e._focusEventsAllowed=!1;break}}focus(){if(!n(this,Gn))return;const[t,e]=n(this,Gn);p(this,Gn,null),e.addEventListener("focusin",()=>{t._focusEventsAllowed=!0},{once:!0,signal:this._signal}),e.focus()}addEditListeners(){b(this,ih,Pp).call(this),b(this,nh,Mp).call(this)}removeEditListeners(){b(this,vu,Gm).call(this),b(this,rh,Rp).call(this)}dragOver(t){for(const{type:e}of t.dataTransfer.items)for(const s of n(this,Ne))if(s.isHandlingMimeForPasting(e)){t.dataTransfer.dropEffect="copy",t.preventDefault();return}}drop(t){for(const e of t.dataTransfer.items)for(const s of n(this,Ne))if(s.isHandlingMimeForPasting(e.type)){s.paste(e,this.currentLayer),t.preventDefault();return}}copy(t){var s;if(t.preventDefault(),(s=n(this,ue))==null||s.commitOrRemove(),!this.hasSelection)return;const e=[];for(const i of n(this,Q)){const r=i.serialize(!0);r&&e.push(r)}e.length!==0&&t.clipboardData.setData("application/pdfjs",JSON.stringify(e))}cut(t){this.copy(t),this.delete()}async paste(t){t.preventDefault();const{clipboardData:e}=t;for(const r of e.items)for(const a of n(this,Ne))if(a.isHandlingMimeForPasting(r.type)){a.paste(r,this.currentLayer);return}let s=e.getData("application/pdfjs");if(!s)return;try{s=JSON.parse(s)}catch(r){z(`paste: "${r.message}".`);return}if(!Array.isArray(s))return;this.unselectAll();const i=this.currentLayer;try{const r=[];for(const l of s){const h=await i.deserialize(l);if(!h)return;r.push(h)}const a=()=>{for(const l of r)b(this,ah,Dp).call(this,l);b(this,oh,Lp).call(this,r)},o=()=>{for(const l of r)l.remove()};this.addCommands({cmd:a,undo:o,mustExec:!0})}catch(r){z(`paste: "${r.message}".`)}}keydown(t){!this.isShiftKeyDown&&t.key==="Shift"&&(this.isShiftKeyDown=!0),n(this,Tt)!==$.NONE&&!this.isEditorHandlingKeyboard&&wa._keyboardManager.exec(this,t)}keyup(t){this.isShiftKeyDown&&t.key==="Shift"&&(this.isShiftKeyDown=!1,n(this,Ni)&&(p(this,Ni,!1),b(this,Un,bl).call(this,"main_toolbar")))}onEditingAction({name:t}){switch(t){case"undo":case"redo":case"delete":case"selectAll":this[t]();break;case"highlightSelection":this.highlightSelection("context_menu");break;case"commentSelection":this.commentSelection("context_menu");break}}setEditingState(t){t?(b(this,yu,$m).call(this),b(this,nh,Mp).call(this),b(this,Ht,Qt).call(this,{isEditing:n(this,Tt)!==$.NONE,isEmpty:b(this,jn,Al).call(this),hasSomethingToUndo:n(this,Fe).hasSomethingToUndo(),hasSomethingToRedo:n(this,Fe).hasSomethingToRedo(),hasSelectedEditor:!1})):(b(this,wu,zm).call(this),b(this,rh,Rp).call(this),b(this,Ht,Qt).call(this,{isEditing:!1}),this.disableUserSelect(!1))}registerEditorTypes(t){if(!n(this,Ne)){p(this,Ne,t);for(const e of n(this,Ne))b(this,qe,Fs).call(this,e.defaultPropertiesToUpdate)}}getId(){return n(this,gu).id}get currentLayer(){return n(this,Bt).get(n(this,Da))}getLayer(t){return n(this,Bt).get(t)}get currentPageIndex(){return n(this,Da)}addLayer(t){n(this,Bt).set(t.pageIndex,t),n(this,Oi)?t.enable():t.disable()}removeLayer(t){n(this,Bt).delete(t.pageIndex)}async updateMode(t,e=null,s=!1,i=!1,r=!1){var a,o,l,h,c;if(n(this,Tt)!==t&&!(n(this,Oe)&&(await n(this,Oe).promise,!n(this,Oe)))){if(p(this,Oe,Promise.withResolvers()),(a=n(this,Ii))==null||a.commitOrRemove(),n(this,Tt)===$.POPUP&&((o=n(this,Gs))==null||o.hideSidebar()),p(this,Tt,t),t===$.NONE){this.setEditingState(!1),b(this,Eu,Vm).call(this),(l=this._editorUndoBar)==null||l.hide(),n(this,Oe).resolve();return}t===$.SIGNATURE&&await((h=n(this,$i))==null?void 0:h.loadSignatures()),t===$.POPUP&&(n(this,Pa)||p(this,Pa,await n(this,Oa).getAnnotationsByType(new Set(n(this,Ne).map(f=>f._editorType)))),(c=n(this,Gs))==null||c.showSidebar(n(this,Pa))),this.setEditingState(!0),await b(this,Su,jm).call(this),this.unselectAll();for(const f of n(this,Bt).values())f.updateMode(t);if(!e){s&&this.addNewEditorFromKeyboard(),n(this,Oe).resolve();return}for(const f of n(this,Ct).values())f.annotationElementId===e||f.id===e?(this.setSelected(f),r?f.editComment():i&&f.enterInEditMode()):f.unselect();n(this,Oe).resolve()}}addNewEditorFromKeyboard(){this.currentLayer.canCreateNewEmptyEditor()&&this.currentLayer.addNewEditor()}updateToolbar(t){t.mode!==n(this,Tt)&&this._eventBus.dispatch("switchannotationeditormode",{source:this,...t})}updateParams(t,e){if(n(this,Ne)){switch(t){case X.CREATE:this.currentLayer.addNewEditor(e);return;case X.HIGHLIGHT_SHOW_ALL:this._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:{type:"highlight",action:"toggle_visibility"}}}),(n(this,Jl)||p(this,Jl,new Map)).set(t,e),this.showAllEditors("highlight",e);break}if(this.hasSelection)for(const s of n(this,Q))s.updateParams(t,e);else for(const s of n(this,Ne))s.updateDefaultParams(t,e)}}showAllEditors(t,e,s=!1){var r;for(const a of n(this,Ct).values())a.editorType===t&&a.show(e);(((r=n(this,Jl))==null?void 0:r.get(X.HIGHLIGHT_SHOW_ALL))??!0)!==e&&b(this,qe,Fs).call(this,[[X.HIGHLIGHT_SHOW_ALL,e]])}enableWaiting(t=!1){if(n(this,Kl)!==t){p(this,Kl,t);for(const e of n(this,Bt).values())t?e.disableClick():e.enableClick(),e.div.classList.toggle("waiting",t)}}getEditors(t){const e=[];for(const s of n(this,Ct).values())s.pageIndex===t&&e.push(s);return e}getEditor(t){return n(this,Ct).get(t)}addEditor(t){n(this,Ct).set(t.id,t)}removeEditor(t){var e,s;t.div.contains(document.activeElement)&&(n(this,ds)&&clearTimeout(n(this,ds)),p(this,ds,setTimeout(()=>{this.focusMainContainer(),p(this,ds,null)},0))),n(this,Ct).delete(t.id),t.annotationElementId&&((e=n(this,Hi))==null||e.delete(t.annotationElementId)),this.unselect(t),(!t.annotationElementId||!n(this,$n).has(t.annotationElementId))&&((s=n(this,zs))==null||s.remove(t.id))}addDeletedAnnotationElement(t){n(this,$n).add(t.annotationElementId),this.addChangedExistingAnnotation(t),t.deleted=!0}isDeletedAnnotationElement(t){return n(this,$n).has(t)}removeDeletedAnnotationElement(t){n(this,$n).delete(t.annotationElementId),this.removeChangedExistingAnnotation(t),t.deleted=!1}setActiveEditor(t){n(this,ue)!==t&&(p(this,ue,t),t&&b(this,qe,Fs).call(this,t.propertiesToUpdate))}updateUI(t){n(this,Cu,Wm)===t&&b(this,qe,Fs).call(this,t.propertiesToUpdate)}updateUIForDefaultProperties(t){b(this,qe,Fs).call(this,t.defaultPropertiesToUpdate)}toggleSelected(t){if(n(this,Q).has(t)){n(this,Q).delete(t),t.unselect(),b(this,Ht,Qt).call(this,{hasSelectedEditor:this.hasSelection});return}n(this,Q).add(t),t.select(),b(this,qe,Fs).call(this,t.propertiesToUpdate),b(this,Ht,Qt).call(this,{hasSelectedEditor:!0})}setSelected(t){var e;this.updateToolbar({mode:t.mode,editId:t.id}),(e=n(this,Ii))==null||e.commitOrRemove();for(const s of n(this,Q))s!==t&&s.unselect();n(this,Q).clear(),n(this,Q).add(t),t.select(),b(this,qe,Fs).call(this,t.propertiesToUpdate),b(this,Ht,Qt).call(this,{hasSelectedEditor:!0})}isSelected(t){return n(this,Q).has(t)}get firstSelectedEditor(){return n(this,Q).values().next().value}unselect(t){t.unselect(),n(this,Q).delete(t),b(this,Ht,Qt).call(this,{hasSelectedEditor:this.hasSelection})}get hasSelection(){return n(this,Q).size!==0}get isEnterHandled(){return n(this,Q).size===1&&this.firstSelectedEditor.isEnterHandled}undo(){var t;n(this,Fe).undo(),b(this,Ht,Qt).call(this,{hasSomethingToUndo:n(this,Fe).hasSomethingToUndo(),hasSomethingToRedo:!0,isEmpty:b(this,jn,Al).call(this)}),(t=this._editorUndoBar)==null||t.hide()}redo(){n(this,Fe).redo(),b(this,Ht,Qt).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:n(this,Fe).hasSomethingToRedo(),isEmpty:b(this,jn,Al).call(this)})}addCommands(t){n(this,Fe).add(t),b(this,Ht,Qt).call(this,{hasSomethingToUndo:!0,hasSomethingToRedo:!1,isEmpty:b(this,jn,Al).call(this)})}cleanUndoStack(t){n(this,Fe).cleanType(t)}delete(){var r;this.commitOrRemove();const t=(r=this.currentLayer)==null?void 0:r.endDrawingSession(!0);if(!this.hasSelection&&!t)return;const e=t?[t]:[...n(this,Q)],s=()=>{var a;(a=this._editorUndoBar)==null||a.show(i,e.length===1?e[0].editorType:e.length);for(const o of e)o.remove()},i=()=>{for(const a of e)b(this,ah,Dp).call(this,a)};this.addCommands({cmd:s,undo:i,mustExec:!0})}commitOrRemove(){var t;(t=n(this,ue))==null||t.commitOrRemove()}hasSomethingToControl(){return n(this,ue)||this.hasSelection}selectAll(){for(const t of n(this,Q))t.commit();b(this,oh,Lp).call(this,n(this,Ct).values())}unselectAll(){var t;if(!(n(this,ue)&&(n(this,ue).commitOrRemove(),n(this,Tt)!==$.NONE))&&!((t=n(this,Ii))!=null&&t.commitOrRemove())&&this.hasSelection){for(const e of n(this,Q))e.unselect();n(this,Q).clear(),b(this,Ht,Qt).call(this,{hasSelectedEditor:!1})}}translateSelectedEditors(t,e,s=!1){if(s||this.commitOrRemove(),!this.hasSelection)return;n(this,Gi)[0]+=t,n(this,Gi)[1]+=e;const[i,r]=n(this,Gi),a=[...n(this,Q)],o=1e3;n(this,fs)&&clearTimeout(n(this,fs)),p(this,fs,setTimeout(()=>{p(this,fs,null),n(this,Gi)[0]=n(this,Gi)[1]=0,this.addCommands({cmd:()=>{for(const l of a)n(this,Ct).has(l.id)&&(l.translateInPage(i,r),l.translationDone())},undo:()=>{for(const l of a)n(this,Ct).has(l.id)&&(l.translateInPage(-i,-r),l.translationDone())},mustExec:!1})},o));for(const l of a)l.translateInPage(t,e),l.translationDone()}setUpDragSession(){if(this.hasSelection){this.disableUserSelect(!0),p(this,cs,new Map);for(const t of n(this,Q))n(this,cs).set(t,{savedX:t.x,savedY:t.y,savedPageIndex:t.pageIndex,newX:0,newY:0,newPageIndex:-1})}}endDragSession(){if(!n(this,cs))return!1;this.disableUserSelect(!1);const t=n(this,cs);p(this,cs,null);let e=!1;for(const[{x:i,y:r,pageIndex:a},o]of t)o.newX=i,o.newY=r,o.newPageIndex=a,e||(e=i!==o.savedX||r!==o.savedY||a!==o.savedPageIndex);if(!e)return!1;const s=(i,r,a,o)=>{if(n(this,Ct).has(i.id)){const l=n(this,Bt).get(o);l?i._setParentAndPosition(l,r,a):(i.pageIndex=o,i.x=r,i.y=a)}};return this.addCommands({cmd:()=>{for(const[i,{newX:r,newY:a,newPageIndex:o}]of t)s(i,r,a,o)},undo:()=>{for(const[i,{savedX:r,savedY:a,savedPageIndex:o}]of t)s(i,r,a,o)},mustExec:!0}),!0}dragSelectedEditors(t,e){if(n(this,cs))for(const s of n(this,cs).keys())s.drag(t,e)}rebuild(t){if(t.parent===null){const e=this.getLayer(t.pageIndex);e?(e.changeParent(t),e.addOrRebuild(t)):(this.addEditor(t),this.addToAnnotationStorage(t),t.rebuild())}else t.parent.addOrRebuild(t)}get isEditorHandlingKeyboard(){var t;return((t=this.getActive())==null?void 0:t.shouldGetKeyboardEvents())||n(this,Q).size===1&&this.firstSelectedEditor.shouldGetKeyboardEvents()}isActive(t){return n(this,ue)===t}getActive(){return n(this,ue)}getMode(){return n(this,Tt)}get imageManager(){return V(this,"imageManager",new Tp)}getSelectionBoxes(t){if(!t)return null;const e=document.getSelection();for(let h=0,c=e.rangeCount;h({x:(c-i)/a,y:1-(h+f-s)/r,width:g/a,height:f/r});break;case"180":o=(h,c,f,g)=>({x:1-(h+f-s)/r,y:1-(c+g-i)/a,width:f/r,height:g/a});break;case"270":o=(h,c,f,g)=>({x:1-(c+g-i)/a,y:(h-s)/r,width:g/a,height:f/r});break;default:o=(h,c,f,g)=>({x:(h-s)/r,y:(c-i)/a,width:f/r,height:g/a});break}const l=[];for(let h=0,c=e.rangeCount;h{g.type==="pointerup"&&g.button!==0||(h.abort(),l==null||l.toggleDrawing(!0),g.type==="pointerup"&&b(this,Un,bl).call(this,"main_toolbar"))};window.addEventListener("pointerup",f,{signal:c}),window.addEventListener("blur",f,{signal:c})}else l==null||l.toggleDrawing(!0),b(this,Un,bl).call(this,"main_toolbar")}},Un=new WeakSet,bl=function(t=""){n(this,Tt)===$.HIGHLIGHT?this.highlightSelection(t):n(this,Xl)&&b(this,mu,Om).call(this)},Au=new WeakSet,Hm=function(){document.addEventListener("selectionchange",b(this,bu,Bm).bind(this),{signal:this._signal})},yu=new WeakSet,$m=function(){if(n(this,Fi))return;p(this,Fi,new AbortController);const t=this.combinedSignal(n(this,Fi));window.addEventListener("focus",this.focus.bind(this),{signal:t}),window.addEventListener("blur",this.blur.bind(this),{signal:t})},wu=new WeakSet,zm=function(){var t;(t=n(this,Fi))==null||t.abort(),p(this,Fi,null)},ih=new WeakSet,Pp=function(){if(n(this,Bi))return;p(this,Bi,new AbortController);const t=this.combinedSignal(n(this,Bi));window.addEventListener("keydown",this.keydown.bind(this),{signal:t}),window.addEventListener("keyup",this.keyup.bind(this),{signal:t})},vu=new WeakSet,Gm=function(){var t;(t=n(this,Bi))==null||t.abort(),p(this,Bi,null)},nh=new WeakSet,Mp=function(){if(n(this,Li))return;p(this,Li,new AbortController);const t=this.combinedSignal(n(this,Li));document.addEventListener("copy",this.copy.bind(this),{signal:t}),document.addEventListener("cut",this.cut.bind(this),{signal:t}),document.addEventListener("paste",this.paste.bind(this),{signal:t})},rh=new WeakSet,Rp=function(){var t;(t=n(this,Li))==null||t.abort(),p(this,Li,null)},_u=new WeakSet,Um=function(){const t=this._signal;document.addEventListener("dragover",this.dragOver.bind(this),{signal:t}),document.addEventListener("drop",this.drop.bind(this),{signal:t})},Ht=new WeakSet,Qt=function(t){Object.entries(t).some(([s,i])=>n(this,Zl)[s]!==i)&&(this._eventBus.dispatch("annotationeditorstateschanged",{source:this,details:Object.assign(n(this,Zl),t)}),n(this,Tt)===$.HIGHLIGHT&&t.hasSelectedEditor===!1&&b(this,qe,Fs).call(this,[[X.HIGHLIGHT_FREE,!0]]))},qe=new WeakSet,Fs=function(t){this._eventBus.dispatch("annotationeditorparamschanged",{source:this,details:t})},Su=new WeakSet,jm=async function(){if(!n(this,Oi)){p(this,Oi,!0);const t=[];for(const e of n(this,Bt).values())t.push(e.enable());await Promise.all(t);for(const e of n(this,Ct).values())e.enable()}},Eu=new WeakSet,Vm=function(){if(this.unselectAll(),n(this,Oi)){p(this,Oi,!1);for(const t of n(this,Bt).values())t.disable();for(const t of n(this,Ct).values())t.disable()}},ah=new WeakSet,Dp=function(t){const e=n(this,Bt).get(t.pageIndex);e?e.addOrRebuild(t):(this.addEditor(t),this.addToAnnotationStorage(t))},Cu=new WeakSet,Wm=function(){let t=null;for(t of n(this,Q));return t},jn=new WeakSet,Al=function(){if(n(this,Ct).size===0)return!0;if(n(this,Ct).size===1)for(const t of n(this,Ct).values())return t.isEmpty();return!1},oh=new WeakSet,Lp=function(t){for(const e of n(this,Q))e.unselect();n(this,Q).clear();for(const e of t)e.isEmpty()||(n(this,Q).add(e),e.select());b(this,Ht,Qt).call(this,{hasSelectedEditor:this.hasSelection})},k(wa,"TRANSLATE_SMALL",1),k(wa,"TRANSLATE_BIG",10);let aa=wa;var Mt,ps,Ye,Ha,gs,fe,$a,ms,oe,Vs,Vn,bs,Ui,Wn,yl,za,Ed;const Jt=class Jt{constructor(t){d(this,Wn);d(this,za);d(this,Mt,null);d(this,ps,!1);d(this,Ye,null);d(this,Ha,null);d(this,gs,null);d(this,fe,null);d(this,$a,!1);d(this,ms,null);d(this,oe,null);d(this,Vs,null);d(this,Vn,null);d(this,bs,!1);p(this,oe,t),p(this,bs,t._uiManager.useNewAltTextFlow),n(Jt,Ui)||p(Jt,Ui,Object.freeze({added:"pdfjs-editor-new-alt-text-added-button","added-label":"pdfjs-editor-new-alt-text-added-button-label",missing:"pdfjs-editor-new-alt-text-missing-button","missing-label":"pdfjs-editor-new-alt-text-missing-button-label",review:"pdfjs-editor-new-alt-text-to-review-button","review-label":"pdfjs-editor-new-alt-text-to-review-button-label"}))}static initialize(t){Jt._l10n??(Jt._l10n=t)}async render(){const t=p(this,Ye,document.createElement("button"));t.className="altText",t.tabIndex="0";const e=p(this,Ha,document.createElement("span"));t.append(e),n(this,bs)?(t.classList.add("new"),t.setAttribute("data-l10n-id",n(Jt,Ui).missing),e.setAttribute("data-l10n-id",n(Jt,Ui)["missing-label"])):(t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button"),e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-button-label"));const s=n(this,oe)._uiManager._signal;t.addEventListener("contextmenu",je,{signal:s}),t.addEventListener("pointerdown",r=>r.stopPropagation(),{signal:s});const i=r=>{r.preventDefault(),n(this,oe)._uiManager.editAltText(n(this,oe)),n(this,bs)&&n(this,oe)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_clicked",data:{label:n(this,Wn,yl)}})};return t.addEventListener("click",i,{capture:!0,signal:s}),t.addEventListener("keydown",r=>{r.target===t&&r.key==="Enter"&&(p(this,$a,!0),i(r))},{signal:s}),await b(this,za,Ed).call(this),t}finish(){n(this,Ye)&&(n(this,Ye).focus({focusVisible:n(this,$a)}),p(this,$a,!1))}isEmpty(){return n(this,bs)?n(this,Mt)===null:!n(this,Mt)&&!n(this,ps)}hasData(){return n(this,bs)?n(this,Mt)!==null||!!n(this,Vs):this.isEmpty()}get guessedText(){return n(this,Vs)}async setGuessedText(t){n(this,Mt)===null&&(p(this,Vs,t),p(this,Vn,await Jt._l10n.get("pdfjs-editor-new-alt-text-generated-alt-text-with-disclaimer",{generatedAltText:t})),b(this,za,Ed).call(this))}toggleAltTextBadge(t=!1){var e;if(!n(this,bs)||n(this,Mt)){(e=n(this,ms))==null||e.remove(),p(this,ms,null);return}if(!n(this,ms)){const s=p(this,ms,document.createElement("div"));s.className="noAltTextBadge",n(this,oe).div.append(s)}n(this,ms).classList.toggle("hidden",!t)}serialize(t){let e=n(this,Mt);return!t&&n(this,Vs)===e&&(e=n(this,Vn)),{altText:e,decorative:n(this,ps),guessedText:n(this,Vs),textWithDisclaimer:n(this,Vn)}}get data(){return{altText:n(this,Mt),decorative:n(this,ps)}}set data({altText:t,decorative:e,guessedText:s,textWithDisclaimer:i,cancel:r=!1}){s&&(p(this,Vs,s),p(this,Vn,i)),!(n(this,Mt)===t&&n(this,ps)===e)&&(r||(p(this,Mt,t),p(this,ps,e)),b(this,za,Ed).call(this))}toggle(t=!1){n(this,Ye)&&(!t&&n(this,fe)&&(clearTimeout(n(this,fe)),p(this,fe,null)),n(this,Ye).disabled=!t)}shown(){n(this,oe)._reportTelemetry({action:"pdfjs.image.alt_text.image_status_label_displayed",data:{label:n(this,Wn,yl)}})}destroy(){var t,e;(t=n(this,Ye))==null||t.remove(),p(this,Ye,null),p(this,Ha,null),p(this,gs,null),(e=n(this,ms))==null||e.remove(),p(this,ms,null)}};Mt=new WeakMap,ps=new WeakMap,Ye=new WeakMap,Ha=new WeakMap,gs=new WeakMap,fe=new WeakMap,$a=new WeakMap,ms=new WeakMap,oe=new WeakMap,Vs=new WeakMap,Vn=new WeakMap,bs=new WeakMap,Ui=new WeakMap,Wn=new WeakSet,yl=function(){return n(this,Mt)&&"added"||n(this,Mt)===null&&this.guessedText&&"review"||"missing"},za=new WeakSet,Ed=async function(){var i,r,a;const t=n(this,Ye);if(!t)return;if(n(this,bs)){if(t.classList.toggle("done",!!n(this,Mt)),t.setAttribute("data-l10n-id",n(Jt,Ui)[n(this,Wn,yl)]),(i=n(this,Ha))==null||i.setAttribute("data-l10n-id",n(Jt,Ui)[`${n(this,Wn,yl)}-label`]),!n(this,Mt)){(r=n(this,gs))==null||r.remove();return}}else{if(!n(this,Mt)&&!n(this,ps)){t.classList.remove("done"),(a=n(this,gs))==null||a.remove();return}t.classList.add("done"),t.setAttribute("data-l10n-id","pdfjs-editor-alt-text-edit-button")}let e=n(this,gs);if(!e){p(this,gs,e=document.createElement("span")),e.className="tooltip",e.setAttribute("role","tooltip"),e.id=`alt-text-tooltip-${n(this,oe).id}`;const o=100,l=n(this,oe)._uiManager._signal;l.addEventListener("abort",()=>{clearTimeout(n(this,fe)),p(this,fe,null)},{once:!0}),t.addEventListener("mouseenter",()=>{p(this,fe,setTimeout(()=>{p(this,fe,null),n(this,gs).classList.add("show"),n(this,oe)._reportTelemetry({action:"alt_text_tooltip"})},o))},{signal:l}),t.addEventListener("mouseleave",()=>{var h;n(this,fe)&&(clearTimeout(n(this,fe)),p(this,fe,null)),(h=n(this,gs))==null||h.classList.remove("show")},{signal:l})}n(this,ps)?e.setAttribute("data-l10n-id","pdfjs-editor-alt-text-decorative-tooltip"):(e.removeAttribute("data-l10n-id"),e.textContent=n(this,Mt)),e.parentNode||t.append(e);const s=n(this,oe).getElementForAltText();s==null||s.setAttribute("aria-describedby",e.id)},d(Jt,Ui,null),k(Jt,"_l10n",null);let Jd=Jt;var As,Xn,Ke,lh,Ws,Ga,ji;class fd{constructor(t){d(this,As,null);d(this,Xn,!1);d(this,Ke,null);d(this,lh,null);d(this,Ws,null);d(this,Ga,null);d(this,ji,!1);p(this,Ke,t),this.toolbar=null}render(){if(!n(this,Ke)._uiManager.hasCommentManager())return null;const t=p(this,As,document.createElement("button"));t.className="comment",t.tabIndex="0",t.setAttribute("data-l10n-id","pdfjs-editor-edit-comment-button");const e=n(this,Ke)._uiManager._signal;if(!(e instanceof AbortSignal)||e.aborted)return t;t.addEventListener("contextmenu",je,{signal:e}),t.addEventListener("pointerdown",i=>i.stopPropagation(),{signal:e});const s=i=>{i.preventDefault(),this.edit()};return t.addEventListener("click",s,{capture:!0,signal:e}),t.addEventListener("keydown",i=>{i.target===t&&i.key==="Enter"&&(p(this,Xn,!0),s(i))},{signal:e}),t}edit(){const{bottom:t,left:e,right:s}=n(this,Ke).getClientDimensions(),i={top:t};n(this,Ke)._uiManager.direction==="ltr"?i.right=s:i.left=e,n(this,Ke)._uiManager.editComment(n(this,Ke),i)}finish(){n(this,As)&&(n(this,As).focus({focusVisible:n(this,Xn)}),p(this,Xn,!1))}isDeleted(){return n(this,ji)||n(this,Ws)===""}hasBeenEdited(){return this.isDeleted()||n(this,Ws)!==n(this,lh)}serialize(){return this.data}get data(){return{text:n(this,Ws),date:n(this,Ga),deleted:n(this,ji)}}set data(t){if(t===null){p(this,Ws,""),p(this,ji,!0);return}p(this,Ws,t),p(this,Ga,new Date),p(this,ji,!1)}setInitialText(t){p(this,lh,t),this.data=t}toggle(t=!1){n(this,As)&&(n(this,As).disabled=!t)}shown(){}destroy(){var t;(t=n(this,As))==null||t.remove(),p(this,As,null),p(this,Ws,""),p(this,Ga,null),p(this,Ke,null),p(this,Xn,!1),p(this,ji,!1)}}As=new WeakMap,Xn=new WeakMap,Ke=new WeakMap,lh=new WeakMap,Ws=new WeakMap,Ga=new WeakMap,ji=new WeakMap;var Ua,qn,hh,ch,dh,uh,fh,Xs,Yn,qs,Kn,Ys,Tu,Xm,xu,qm,ku,Ym;const Kg=class Kg{constructor({container:t,isPinchingDisabled:e=null,isPinchingStopped:s=null,onPinchStart:i=null,onPinching:r=null,onPinchEnd:a=null,signal:o}){d(this,Tu);d(this,xu);d(this,ku);d(this,Ua,void 0);d(this,qn,!1);d(this,hh,null);d(this,ch,void 0);d(this,dh,void 0);d(this,uh,void 0);d(this,fh,void 0);d(this,Xs,null);d(this,Yn,void 0);d(this,qs,null);d(this,Kn,void 0);d(this,Ys,null);p(this,Ua,t),p(this,hh,s),p(this,ch,e),p(this,dh,i),p(this,uh,r),p(this,fh,a),p(this,Kn,new AbortController),p(this,Yn,AbortSignal.any([o,n(this,Kn).signal])),t.addEventListener("touchstart",b(this,Tu,Xm).bind(this),{passive:!1,signal:n(this,Yn)})}get MIN_TOUCH_DISTANCE_TO_PINCH(){return 35/Ds.pixelRatio}destroy(){var t,e;(t=n(this,Kn))==null||t.abort(),p(this,Kn,null),(e=n(this,Xs))==null||e.abort(),p(this,Xs,null)}};Ua=new WeakMap,qn=new WeakMap,hh=new WeakMap,ch=new WeakMap,dh=new WeakMap,uh=new WeakMap,fh=new WeakMap,Xs=new WeakMap,Yn=new WeakMap,qs=new WeakMap,Kn=new WeakMap,Ys=new WeakMap,Tu=new WeakSet,Xm=function(t){var i,r,a;if((i=n(this,ch))!=null&&i.call(this))return;if(t.touches.length===1){if(n(this,Xs))return;const o=p(this,Xs,new AbortController),l=AbortSignal.any([n(this,Yn),o.signal]),h=n(this,Ua),c={capture:!0,signal:l,passive:!1},f=g=>{var m;g.pointerType==="touch"&&((m=n(this,Xs))==null||m.abort(),p(this,Xs,null))};h.addEventListener("pointerdown",g=>{g.pointerType==="touch"&&(vt(g),f(g))},c),h.addEventListener("pointerup",f,c),h.addEventListener("pointercancel",f,c);return}if(!n(this,Ys)){p(this,Ys,new AbortController);const o=AbortSignal.any([n(this,Yn),n(this,Ys).signal]),l=n(this,Ua),h={signal:o,capture:!1,passive:!1};l.addEventListener("touchmove",b(this,xu,qm).bind(this),h);const c=b(this,ku,Ym).bind(this);l.addEventListener("touchend",c,h),l.addEventListener("touchcancel",c,h),h.capture=!0,l.addEventListener("pointerdown",vt,h),l.addEventListener("pointermove",vt,h),l.addEventListener("pointercancel",vt,h),l.addEventListener("pointerup",vt,h),(r=n(this,dh))==null||r.call(this)}if(vt(t),t.touches.length!==2||(a=n(this,hh))!=null&&a.call(this)){p(this,qs,null);return}let[e,s]=t.touches;e.identifier>s.identifier&&([e,s]=[s,e]),p(this,qs,{touch0X:e.screenX,touch0Y:e.screenY,touch1X:s.screenX,touch1Y:s.screenY})},xu=new WeakSet,qm=function(t){var E;if(!n(this,qs)||t.touches.length!==2)return;vt(t);let[e,s]=t.touches;e.identifier>s.identifier&&([e,s]=[s,e]);const{screenX:i,screenY:r}=e,{screenX:a,screenY:o}=s,l=n(this,qs),{touch0X:h,touch0Y:c,touch1X:f,touch1Y:g}=l,m=f-h,A=g-c,y=a-i,v=o-r,w=Math.hypot(y,v)||1,S=Math.hypot(m,A)||1;if(!n(this,qn)&&Math.abs(S-w)<=Kg.MIN_TOUCH_DISTANCE_TO_PINCH)return;if(l.touch0X=i,l.touch0Y=r,l.touch1X=a,l.touch1Y=o,!n(this,qn)){p(this,qn,!0);return}const _=[(i+a)/2,(r+o)/2];(E=n(this,uh))==null||E.call(this,_,S,w)},ku=new WeakSet,Ym=function(t){var e;t.touches.length>=2||(n(this,Ys)&&(n(this,Ys).abort(),p(this,Ys,null),(e=n(this,fh))==null||e.call(this)),n(this,qs)&&(vt(t),p(this,qs,null),p(this,qn,!1)))};let Zd=Kg;var Qn,Qe,ot,$t,ja,Vi,ph,Jn,zt,Zn,Ks,Wi,gh,tr,pe,mh,er,Qs,ys,Va,Wa,Be,sr,bh,Pu,Ah,Ip,yh,Fp,Xa,Cd,Mu,Km,Ru,Qm,wh,Np,qa,Td,vh,Op,Du,Jm,Lu,Zm,Iu,tb,_h,Bp,Fu,eb,Sh,Hp,Nu,sb,Ou,ib,Bu,nb,Eh,$p,ir,wl;const G=class G{constructor(t){d(this,Ah);d(this,Xa);d(this,Mu);d(this,Ru);d(this,wh);d(this,qa);d(this,vh);d(this,Du);d(this,Lu);d(this,Iu);d(this,_h);d(this,Fu);d(this,Sh);d(this,Nu);d(this,Ou);d(this,Bu);d(this,Eh);d(this,ir);d(this,Qn,null);d(this,Qe,null);d(this,ot,null);d(this,$t,null);d(this,ja,!1);d(this,Vi,null);d(this,ph,"");d(this,Jn,!1);d(this,zt,null);d(this,Zn,null);d(this,Ks,null);d(this,Wi,null);d(this,gh,"");d(this,tr,!1);d(this,pe,null);d(this,mh,!1);d(this,er,!1);d(this,Qs,!1);d(this,ys,null);d(this,Va,0);d(this,Wa,0);d(this,Be,null);d(this,sr,null);k(this,"isSelected",!1);k(this,"_isCopy",!1);k(this,"_editToolbar",null);k(this,"_initialOptions",Object.create(null));k(this,"_initialData",null);k(this,"_isVisible",!0);k(this,"_uiManager",null);k(this,"_focusEventsAllowed",!0);d(this,bh,!1);d(this,Pu,G._zIndex++);this.parent=t.parent,this.id=t.id,this.width=this.height=null,this.pageIndex=t.parent.pageIndex,this.name=t.name,this.div=null,this._uiManager=t.uiManager,this.annotationElementId=null,this._willKeepAspectRatio=!1,this._initialOptions.isCentered=t.isCentered,this._structTreeParentId=null,this.annotationElementId=t.annotationElementId||null;const{rotation:e,rawDims:{pageWidth:s,pageHeight:i,pageX:r,pageY:a}}=this.parent.viewport;this.rotation=e,this.pageRotation=(360+e-this._uiManager.viewParameters.rotation)%360,this.pageDimensions=[s,i],this.pageTranslation=[r,a];const[o,l]=this.parentDimensions;this.x=t.x/o,this.y=t.y/l,this.isAttachedToDOM=!1,this.deleted=!1}static get _resizerKeyboardManager(){const t=G.prototype._resizeWithKeyboard,e=aa.TRANSLATE_SMALL,s=aa.TRANSLATE_BIG;return V(this,"_resizerKeyboardManager",new hd([[["ArrowLeft","mac+ArrowLeft"],t,{args:[-e,0]}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],t,{args:[-s,0]}],[["ArrowRight","mac+ArrowRight"],t,{args:[e,0]}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],t,{args:[s,0]}],[["ArrowUp","mac+ArrowUp"],t,{args:[0,-e]}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],t,{args:[0,-s]}],[["ArrowDown","mac+ArrowDown"],t,{args:[0,e]}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],t,{args:[0,s]}],[["Escape","mac+Escape"],G.prototype._stopResizingWithKeyboard]]))}get editorType(){return Object.getPrototypeOf(this).constructor._type}get mode(){return Object.getPrototypeOf(this).constructor._editorType}static get isDrawer(){return!1}static get _defaultLineColor(){return V(this,"_defaultLineColor",this._colorManager.getHexCode("CanvasText"))}static deleteAnnotationElement(t){const e=new ry({id:t.parent.getNextId(),parent:t.parent,uiManager:t._uiManager});e.annotationElementId=t.annotationElementId,e.deleted=!0,e._uiManager.addToAnnotationStorage(e)}static initialize(t,e){if(G._l10n??(G._l10n=t),G._l10nResizer||(G._l10nResizer=Object.freeze({topLeft:"pdfjs-editor-resizer-top-left",topMiddle:"pdfjs-editor-resizer-top-middle",topRight:"pdfjs-editor-resizer-top-right",middleRight:"pdfjs-editor-resizer-middle-right",bottomRight:"pdfjs-editor-resizer-bottom-right",bottomMiddle:"pdfjs-editor-resizer-bottom-middle",bottomLeft:"pdfjs-editor-resizer-bottom-left",middleLeft:"pdfjs-editor-resizer-middle-left"})),G._borderLineWidth!==-1)return;const s=getComputedStyle(document.documentElement);G._borderLineWidth=parseFloat(s.getPropertyValue("--outline-width"))||0}static updateDefaultParams(t,e){}static get defaultPropertiesToUpdate(){return[]}static isHandlingMimeForPasting(t){return!1}static paste(t,e){st("Not implemented")}get propertiesToUpdate(){return[]}get _isDraggable(){return n(this,bh)}set _isDraggable(t){var e;p(this,bh,t),(e=this.div)==null||e.classList.toggle("draggable",t)}get isEnterHandled(){return!0}center(){const[t,e]=this.pageDimensions;switch(this.parentRotation){case 90:this.x-=this.height*e/(t*2),this.y+=this.width*t/(e*2);break;case 180:this.x+=this.width/2,this.y+=this.height/2;break;case 270:this.x+=this.height*e/(t*2),this.y-=this.width*t/(e*2);break;default:this.x-=this.width/2,this.y-=this.height/2;break}this.fixAndSetPosition()}addCommands(t){this._uiManager.addCommands(t)}get currentLayer(){return this._uiManager.currentLayer}setInBackground(){this.div.style.zIndex=0}setInForeground(){this.div.style.zIndex=n(this,Pu)}setParent(t){t!==null?(this.pageIndex=t.pageIndex,this.pageDimensions=t.pageDimensions):b(this,ir,wl).call(this),this.parent=t}focusin(t){this._focusEventsAllowed&&(n(this,tr)?p(this,tr,!1):this.parent.setSelected(this))}focusout(t){var s;if(!this._focusEventsAllowed||!this.isAttachedToDOM)return;const e=t.relatedTarget;e!=null&&e.closest(`#${this.id}`)||(t.preventDefault(),(s=this.parent)!=null&&s.isMultipleSelection||this.commitOrRemove())}commitOrRemove(){this.isEmpty()?this.remove():this.commit()}commit(){this.isInEditMode()&&this.addToAnnotationStorage()}addToAnnotationStorage(){this._uiManager.addToAnnotationStorage(this)}setAt(t,e,s,i){const[r,a]=this.parentDimensions;[s,i]=this.screenToPageTranslation(s,i),this.x=(t+s)/r,this.y=(e+i)/a,this.fixAndSetPosition()}_moveAfterPaste(t,e){const[s,i]=this.parentDimensions;this.setAt(t*s,e*i,this.width*s,this.height*i),this._onTranslated()}translate(t,e){b(this,Ah,Ip).call(this,this.parentDimensions,t,e)}translateInPage(t,e){n(this,pe)||p(this,pe,[this.x,this.y,this.width,this.height]),b(this,Ah,Ip).call(this,this.pageDimensions,t,e),this.div.scrollIntoView({block:"nearest"})}translationDone(){this._onTranslated(this.x,this.y)}drag(t,e){n(this,pe)||p(this,pe,[this.x,this.y,this.width,this.height]);const{div:s,parentDimensions:[i,r]}=this;if(this.x+=t/i,this.y+=e/r,this.parent&&(this.x<0||this.x>1||this.y<0||this.y>1)){const{x:f,y:g}=this.div.getBoundingClientRect();this.parent.findNewParent(this,f,g)&&(this.x-=Math.floor(this.x),this.y-=Math.floor(this.y))}let{x:a,y:o}=this;const[l,h]=this.getBaseTranslation();a+=l,o+=h;const{style:c}=s;c.left=`${(100*a).toFixed(2)}%`,c.top=`${(100*o).toFixed(2)}%`,this._onTranslating(a,o),s.scrollIntoView({block:"nearest"})}_onTranslating(t,e){}_onTranslated(t,e){}get _hasBeenMoved(){return!!n(this,pe)&&(n(this,pe)[0]!==this.x||n(this,pe)[1]!==this.y)}get _hasBeenResized(){return!!n(this,pe)&&(n(this,pe)[2]!==this.width||n(this,pe)[3]!==this.height)}getBaseTranslation(){const[t,e]=this.parentDimensions,{_borderLineWidth:s}=G,i=s/t,r=s/e;switch(this.rotation){case 90:return[-i,r];case 180:return[i,r];case 270:return[i,-r];default:return[-i,-r]}}get _mustFixPosition(){return!0}fixAndSetPosition(t=this.rotation){const{div:{style:e},pageDimensions:[s,i]}=this;let{x:r,y:a,width:o,height:l}=this;if(o*=s,l*=i,r*=s,a*=i,this._mustFixPosition)switch(t){case 0:r=ne(r,0,s-o),a=ne(a,0,i-l);break;case 90:r=ne(r,0,s-l),a=ne(a,o,i);break;case 180:r=ne(r,o,s),a=ne(a,l,i);break;case 270:r=ne(r,l,s),a=ne(a,0,i-o);break}this.x=r/=s,this.y=a/=i;const[h,c]=this.getBaseTranslation();r+=h,a+=c,e.left=`${(100*r).toFixed(2)}%`,e.top=`${(100*a).toFixed(2)}%`,this.moveInDOM()}screenToPageTranslation(t,e){var s;return b(s=G,yh,Fp).call(s,t,e,this.parentRotation)}pageTranslationToScreen(t,e){var s;return b(s=G,yh,Fp).call(s,t,e,360-this.parentRotation)}get parentScale(){return this._uiManager.viewParameters.realScale}get parentRotation(){return(this._uiManager.viewParameters.rotation+this.pageRotation)%360}get parentDimensions(){const{parentScale:t,pageDimensions:[e,s]}=this;return[e*t,s*t]}setDims(t,e){const[s,i]=this.parentDimensions,{style:r}=this.div;r.width=`${(100*t/s).toFixed(2)}%`,n(this,Jn)||(r.height=`${(100*e/i).toFixed(2)}%`)}fixDims(){const{style:t}=this.div,{height:e,width:s}=t,i=s.endsWith("%"),r=!n(this,Jn)&&e.endsWith("%");if(i&&r)return;const[a,o]=this.parentDimensions;i||(t.width=`${(100*parseFloat(s)/a).toFixed(2)}%`),!n(this,Jn)&&!r&&(t.height=`${(100*parseFloat(e)/o).toFixed(2)}%`)}getInitialTranslation(){return[0,0]}_onResized(){}static _round(t){return Math.round(t*1e4)/1e4}_onResizing(){}altTextFinish(){var t;(t=n(this,ot))==null||t.finish()}get toolbarButtons(){return null}async addEditToolbar(){if(this._editToolbar||n(this,er))return this._editToolbar;this._editToolbar=new Ep(this),this.div.append(this._editToolbar.render());const{toolbarButtons:t}=this;if(t)for(const[e,s]of t)await this._editToolbar.addButton(e,s);return this._editToolbar.addButton("comment",this.addCommentButton()),this._editToolbar.addButton("delete"),this._editToolbar}removeEditToolbar(){var t;this._editToolbar&&(this._editToolbar.remove(),this._editToolbar=null,(t=n(this,ot))==null||t.destroy())}addContainer(t){var s;const e=(s=this._editToolbar)==null?void 0:s.div;e?e.before(t):this.div.append(t)}getClientDimensions(){return this.div.getBoundingClientRect()}createAltText(){return n(this,ot)||(Jd.initialize(G._l10n),p(this,ot,new Jd(this)),n(this,Qn)&&(n(this,ot).data=n(this,Qn),p(this,Qn,null))),n(this,ot)}get altTextData(){var t;return(t=n(this,ot))==null?void 0:t.data}set altTextData(t){n(this,ot)&&(n(this,ot).data=t)}get guessedAltText(){var t;return(t=n(this,ot))==null?void 0:t.guessedText}async setGuessedAltText(t){var e;await((e=n(this,ot))==null?void 0:e.setGuessedText(t))}serializeAltText(t){var e;return(e=n(this,ot))==null?void 0:e.serialize(t)}hasAltText(){return!!n(this,ot)&&!n(this,ot).isEmpty()}hasAltTextData(){var t;return((t=n(this,ot))==null?void 0:t.hasData())??!1}addCommentButton(){return n(this,$t)?n(this,$t):p(this,$t,new fd(this))}get commentColor(){return null}get comment(){const t=n(this,$t);return{text:t.data.text,date:t.data.date,deleted:t.isDeleted(),color:this.commentColor}}set comment(t){n(this,$t)||p(this,$t,new fd(this)),n(this,$t).data=t}setCommentData(t){n(this,$t)||p(this,$t,new fd(this)),n(this,$t).setInitialText(t)}get hasEditedComment(){var t;return(t=n(this,$t))==null?void 0:t.hasBeenEdited()}async editComment(){n(this,$t)||p(this,$t,new fd(this)),n(this,$t).edit()}addComment(t){if(this.hasEditedComment){const[,,,i]=t.rect,[r]=this.pageDimensions,[a]=this.pageTranslation,o=a+r+1,l=i-100,h=o+180;t.popup={contents:this.comment.text,deleted:this.comment.deleted,rect:[o,l,h,i]}}}render(){var a;const t=this.div=document.createElement("div");t.setAttribute("data-editor-rotation",(360-this.rotation)%360),t.className=this.name,t.setAttribute("id",this.id),t.tabIndex=n(this,ja)?-1:0,t.setAttribute("role","application"),this.defaultL10nId&&t.setAttribute("data-l10n-id",this.defaultL10nId),this._isVisible||t.classList.add("hidden"),this.setInForeground(),b(this,Sh,Hp).call(this);const[e,s]=this.parentDimensions;this.parentRotation%180!==0&&(t.style.maxWidth=`${(100*s/e).toFixed(2)}%`,t.style.maxHeight=`${(100*e/s).toFixed(2)}%`);const[i,r]=this.getInitialTranslation();return this.translate(i,r),Fm(this,t,["keydown","pointerdown","dblclick"]),this.isResizable&&this._uiManager._supportsPinchToZoom&&(n(this,sr)||p(this,sr,new Zd({container:t,isPinchingDisabled:()=>!this.isSelected,onPinchStart:b(this,Du,Jm).bind(this),onPinching:b(this,Lu,Zm).bind(this),onPinchEnd:b(this,Iu,tb).bind(this),signal:this._uiManager._signal}))),(a=this._uiManager._editorUndoBar)==null||a.hide(),t}pointerdown(t){const{isMac:e}=Wt.platform;if(t.button!==0||t.ctrlKey&&e){t.preventDefault();return}if(p(this,tr,!0),this._isDraggable){b(this,Fu,eb).call(this,t);return}b(this,_h,Bp).call(this,t)}_onStartDragging(){}_onStopDragging(){}moveInDOM(){n(this,ys)&&clearTimeout(n(this,ys)),p(this,ys,setTimeout(()=>{var t;p(this,ys,null),(t=this.parent)==null||t.moveEditorInDOM(this)},0))}_setParentAndPosition(t,e,s){t.changeParent(this),this.x=e,this.y=s,this.fixAndSetPosition(),this._onTranslated()}getRect(t,e,s=this.rotation){const i=this.parentScale,[r,a]=this.pageDimensions,[o,l]=this.pageTranslation,h=t/i,c=e/i,f=this.x*r,g=this.y*a,m=this.width*r,A=this.height*a;switch(s){case 0:return[f+h+o,a-g-c-A+l,f+h+m+o,a-g-c+l];case 90:return[f+c+o,a-g+h+l,f+c+A+o,a-g+h+m+l];case 180:return[f-h-m+o,a-g+c+l,f-h+o,a-g+c+A+l];case 270:return[f-c-A+o,a-g-h-m+l,f-c+o,a-g-h+l];default:throw new Error("Invalid rotation")}}getRectInCurrentCoords(t,e){const[s,i,r,a]=t,o=r-s,l=a-i;switch(this.rotation){case 0:return[s,e-a,o,l];case 90:return[s,e-i,l,o];case 180:return[r,e-i,o,l];case 270:return[r,e-a,l,o];default:throw new Error("Invalid rotation")}}getPDFRect(){return this.getRect(0,0)}onceAdded(t){}isEmpty(){return!1}enableEditMode(){return this.isInEditMode()?!1:(this.parent.setEditingState(!1),p(this,er,!0),!0)}disableEditMode(){return this.isInEditMode()?(this.parent.setEditingState(!0),p(this,er,!1),!0):!1}isInEditMode(){return n(this,er)}shouldGetKeyboardEvents(){return n(this,Qs)}needsToBeRebuilt(){return this.div&&!this.isAttachedToDOM}get isOnScreen(){const{top:t,left:e,bottom:s,right:i}=this.getClientDimensions(),{innerHeight:r,innerWidth:a}=window;return e0&&t0}rebuild(){b(this,Sh,Hp).call(this)}rotate(t){}resize(){}serializeDeleted(){var t;return{id:this.annotationElementId,deleted:!0,pageIndex:this.pageIndex,popupRef:((t=this._initialData)==null?void 0:t.popupRef)||""}}serialize(t=!1,e=null){st("An editor must be serializable")}static async deserialize(t,e,s){const i=new this.prototype.constructor({parent:e,id:e.getNextId(),uiManager:s,annotationElementId:t.annotationElementId});i.rotation=t.rotation,p(i,Qn,t.accessibilityData),i._isCopy=t.isCopy||!1;const[r,a]=i.pageDimensions,[o,l,h,c]=i.getRectInCurrentCoords(t.rect,a);return i.x=o/r,i.y=l/a,i.width=h/r,i.height=c/a,i}get hasBeenModified(){return!!this.annotationElementId&&(this.deleted||this.serialize()!==null)}remove(){var t,e;if((t=n(this,Wi))==null||t.abort(),p(this,Wi,null),this.isEmpty()||this.commit(),this.parent?this.parent.remove(this):this._uiManager.removeEditor(this),n(this,ys)&&(clearTimeout(n(this,ys)),p(this,ys,null)),b(this,ir,wl).call(this),this.removeEditToolbar(),n(this,Be)){for(const s of n(this,Be).values())clearTimeout(s);p(this,Be,null)}this.parent=null,(e=n(this,sr))==null||e.destroy(),p(this,sr,null)}get isResizable(){return!1}makeResizable(){this.isResizable&&(b(this,Mu,Km).call(this),n(this,zt).classList.remove("hidden"))}get toolbarPosition(){return null}keydown(t){if(!this.isResizable||t.target!==this.div||t.key!=="Enter")return;this._uiManager.setSelected(this),p(this,Ks,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const e=n(this,zt).children;if(!n(this,Qe)){p(this,Qe,Array.from(e));const a=b(this,Nu,sb).bind(this),o=b(this,Ou,ib).bind(this),l=this._uiManager._signal;for(const h of n(this,Qe)){const c=h.getAttribute("data-resizer-name");h.setAttribute("role","spinbutton"),h.addEventListener("keydown",a,{signal:l}),h.addEventListener("blur",o,{signal:l}),h.addEventListener("focus",b(this,Bu,nb).bind(this,c),{signal:l}),h.setAttribute("data-l10n-id",G._l10nResizer[c])}}const s=n(this,Qe)[0];let i=0;for(const a of e){if(a===s)break;i++}const r=(360-this.rotation+this.parentRotation)%360/90*(n(this,Qe).length/4);if(r!==i){if(ri)for(let o=0;o{var i,r;(i=this.div)!=null&&i.classList.contains("selectedEditor")&&((r=this._editToolbar)==null||r.show())});return}(e=this._editToolbar)==null||e.show(),(s=n(this,ot))==null||s.toggleAltTextBadge(!1)}}unselect(){var t,e,s,i,r;this.isSelected&&(this.isSelected=!1,(t=n(this,zt))==null||t.classList.add("hidden"),(e=this.div)==null||e.classList.remove("selectedEditor"),(s=this.div)!=null&&s.contains(document.activeElement)&&this._uiManager.currentLayer.div.focus({preventScroll:!0}),(i=this._editToolbar)==null||i.hide(),(r=n(this,ot))==null||r.toggleAltTextBadge(!0))}updateParams(t,e){}disableEditing(){}enableEditing(){}get canChangeContent(){return!1}enterInEditMode(){this.canChangeContent&&(this.enableEditMode(),this.div.focus())}dblclick(t){this.enterInEditMode(),this.parent.updateToolbar({mode:this.constructor._editorType,editId:this.id})}getElementForAltText(){return this.div}get contentDiv(){return this.div}get isEditing(){return n(this,mh)}set isEditing(t){p(this,mh,t),this.parent&&(t?(this.parent.setSelected(this),this.parent.setActiveEditor(this)):this.parent.setActiveEditor(null))}setAspectRatio(t,e){p(this,Jn,!0);const s=t/e,{style:i}=this.div;i.aspectRatio=s,i.height="auto"}static get MIN_SIZE(){return 16}static canCreateNewEmptyEditor(){return!0}get telemetryInitialData(){return{action:"added"}}get telemetryFinalData(){return null}_reportTelemetry(t,e=!1){if(e){n(this,Be)||p(this,Be,new Map);const{action:s}=t;let i=n(this,Be).get(s);i&&clearTimeout(i),i=setTimeout(()=>{this._reportTelemetry(t),n(this,Be).delete(s),n(this,Be).size===0&&p(this,Be,null)},G._telemetryTimeout),n(this,Be).set(s,i);return}t.type||(t.type=this.editorType),this._uiManager._eventBus.dispatch("reporttelemetry",{source:this,details:{type:"editing",data:t}})}show(t=this._isVisible){this.div.classList.toggle("hidden",!t),this._isVisible=t}enable(){this.div&&(this.div.tabIndex=0),p(this,ja,!1)}disable(){this.div&&(this.div.tabIndex=-1),p(this,ja,!0)}renderAnnotationElement(t){if(this.deleted)return t.hide(),null;let e=t.container.querySelector(".annotationContent");if(!e)e=document.createElement("div"),e.classList.add("annotationContent",this.editorType),t.container.prepend(e);else if(e.nodeName==="CANVAS"){const s=e;e=document.createElement("div"),e.classList.add("annotationContent",this.editorType),s.before(e)}return e}resetAnnotationElement(t){const{firstChild:e}=t.container;(e==null?void 0:e.nodeName)==="DIV"&&e.classList.contains("annotationContent")&&e.remove()}};Qn=new WeakMap,Qe=new WeakMap,ot=new WeakMap,$t=new WeakMap,ja=new WeakMap,Vi=new WeakMap,ph=new WeakMap,Jn=new WeakMap,zt=new WeakMap,Zn=new WeakMap,Ks=new WeakMap,Wi=new WeakMap,gh=new WeakMap,tr=new WeakMap,pe=new WeakMap,mh=new WeakMap,er=new WeakMap,Qs=new WeakMap,ys=new WeakMap,Va=new WeakMap,Wa=new WeakMap,Be=new WeakMap,sr=new WeakMap,bh=new WeakMap,Pu=new WeakMap,Ah=new WeakSet,Ip=function([t,e],s,i){[s,i]=this.screenToPageTranslation(s,i),this.x+=s/t,this.y+=i/e,this._onTranslating(this.x,this.y),this.fixAndSetPosition()},yh=new WeakSet,Fp=function(t,e,s){switch(s){case 90:return[e,-t];case 180:return[-t,-e];case 270:return[-e,t];default:return[t,e]}},Xa=new WeakSet,Cd=function(t){switch(t){case 90:{const[e,s]=this.pageDimensions;return[0,-e/s,s/e,0]}case 180:return[-1,0,0,-1];case 270:{const[e,s]=this.pageDimensions;return[0,e/s,-s/e,0]}default:return[1,0,0,1]}},Mu=new WeakSet,Km=function(){if(n(this,zt))return;p(this,zt,document.createElement("div")),n(this,zt).classList.add("resizers");const t=this._willKeepAspectRatio?["topLeft","topRight","bottomRight","bottomLeft"]:["topLeft","topMiddle","topRight","middleRight","bottomRight","bottomMiddle","bottomLeft","middleLeft"],e=this._uiManager._signal;for(const s of t){const i=document.createElement("div");n(this,zt).append(i),i.classList.add("resizer",s),i.setAttribute("data-resizer-name",s),i.addEventListener("pointerdown",b(this,Ru,Qm).bind(this,s),{signal:e}),i.addEventListener("contextmenu",je,{signal:e}),i.tabIndex=-1}this.div.prepend(n(this,zt))},Ru=new WeakSet,Qm=function(t,e){var c;e.preventDefault();const{isMac:s}=Wt.platform;if(e.button!==0||e.ctrlKey&&s)return;(c=n(this,ot))==null||c.toggle(!1);const i=this._isDraggable;this._isDraggable=!1,p(this,Zn,[e.screenX,e.screenY]);const r=new AbortController,a=this._uiManager.combinedSignal(r);this.parent.togglePointerEvents(!1),window.addEventListener("pointermove",b(this,vh,Op).bind(this,t),{passive:!0,capture:!0,signal:a}),window.addEventListener("touchmove",vt,{passive:!1,signal:a}),window.addEventListener("contextmenu",je,{signal:a}),p(this,Ks,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height});const o=this.parent.div.style.cursor,l=this.div.style.cursor;this.div.style.cursor=this.parent.div.style.cursor=window.getComputedStyle(e.target).cursor;const h=()=>{var f;r.abort(),this.parent.togglePointerEvents(!0),(f=n(this,ot))==null||f.toggle(!0),this._isDraggable=i,this.parent.div.style.cursor=o,this.div.style.cursor=l,b(this,qa,Td).call(this)};window.addEventListener("pointerup",h,{signal:a}),window.addEventListener("blur",h,{signal:a})},wh=new WeakSet,Np=function(t,e,s,i){this.width=s,this.height=i,this.x=t,this.y=e;const[r,a]=this.parentDimensions;this.setDims(r*s,a*i),this.fixAndSetPosition(),this._onResized()},qa=new WeakSet,Td=function(){if(!n(this,Ks))return;const{savedX:t,savedY:e,savedWidth:s,savedHeight:i}=n(this,Ks);p(this,Ks,null);const r=this.x,a=this.y,o=this.width,l=this.height;r===t&&a===e&&o===s&&l===i||this.addCommands({cmd:b(this,wh,Np).bind(this,r,a,o,l),undo:b(this,wh,Np).bind(this,t,e,s,i),mustExec:!0})},vh=new WeakSet,Op=function(t,e){const[s,i]=this.parentDimensions,r=this.x,a=this.y,o=this.width,l=this.height,h=G.MIN_SIZE/s,c=G.MIN_SIZE/i,f=b(this,Xa,Cd).call(this,this.rotation),g=(B,N)=>[f[0]*B+f[2]*N,f[1]*B+f[3]*N],m=b(this,Xa,Cd).call(this,360-this.rotation),A=(B,N)=>[m[0]*B+m[2]*N,m[1]*B+m[3]*N];let y,v,w=!1,S=!1;switch(t){case"topLeft":w=!0,y=(B,N)=>[0,0],v=(B,N)=>[B,N];break;case"topMiddle":y=(B,N)=>[B/2,0],v=(B,N)=>[B/2,N];break;case"topRight":w=!0,y=(B,N)=>[B,0],v=(B,N)=>[0,N];break;case"middleRight":S=!0,y=(B,N)=>[B,N/2],v=(B,N)=>[0,N/2];break;case"bottomRight":w=!0,y=(B,N)=>[B,N],v=(B,N)=>[0,0];break;case"bottomMiddle":y=(B,N)=>[B/2,N],v=(B,N)=>[B/2,0];break;case"bottomLeft":w=!0,y=(B,N)=>[0,N],v=(B,N)=>[B,0];break;case"middleLeft":S=!0,y=(B,N)=>[0,N/2],v=(B,N)=>[B,N/2];break}const _=y(o,l),E=v(o,l);let C=g(...E);const T=G._round(r+C[0]),x=G._round(a+C[1]);let P=1,M=1,D,R;if(e.fromKeyboard)({deltaX:D,deltaY:R}=e);else{const{screenX:B,screenY:N}=e,[Pt,At]=n(this,Zn);[D,R]=this.screenToPageTranslation(B-Pt,N-At),n(this,Zn)[0]=B,n(this,Zn)[1]=N}if([D,R]=A(D/s,R/i),w){const B=Math.hypot(o,l);P=M=Math.max(Math.min(Math.hypot(E[0]-_[0]-D,E[1]-_[1]-R)/B,1/o,1/l),h/o,c/l)}else S?P=ne(Math.abs(E[0]-_[0]-D),h,1)/o:M=ne(Math.abs(E[1]-_[1]-R),c,1)/l;const H=G._round(o*P),U=G._round(l*M);C=g(...v(H,U));const W=T-C[0],Y=x-C[1];n(this,pe)||p(this,pe,[this.x,this.y,this.width,this.height]),this.width=H,this.height=U,this.x=W,this.y=Y,this.setDims(s*H,i*U),this.fixAndSetPosition(),this._onResizing()},Du=new WeakSet,Jm=function(){var t;p(this,Ks,{savedX:this.x,savedY:this.y,savedWidth:this.width,savedHeight:this.height}),(t=n(this,ot))==null||t.toggle(!1),this.parent.togglePointerEvents(!1)},Lu=new WeakSet,Zm=function(t,e,s){let r=.7*(s/e)+1-.7;if(r===1)return;const a=b(this,Xa,Cd).call(this,this.rotation),o=(T,x)=>[a[0]*T+a[2]*x,a[1]*T+a[3]*x],[l,h]=this.parentDimensions,c=this.x,f=this.y,g=this.width,m=this.height,A=G.MIN_SIZE/l,y=G.MIN_SIZE/h;r=Math.max(Math.min(r,1/g,1/m),A/g,y/m);const v=G._round(g*r),w=G._round(m*r);if(v===g&&w===m)return;n(this,pe)||p(this,pe,[c,f,g,m]);const S=o(g/2,m/2),_=G._round(c+S[0]),E=G._round(f+S[1]),C=o(v/2,w/2);this.x=_-C[0],this.y=E-C[1],this.width=v,this.height=w,this.setDims(l*v,h*w),this.fixAndSetPosition(),this._onResizing()},Iu=new WeakSet,tb=function(){var t;(t=n(this,ot))==null||t.toggle(!0),this.parent.togglePointerEvents(!0),b(this,qa,Td).call(this)},_h=new WeakSet,Bp=function(t){const{isMac:e}=Wt.platform;t.ctrlKey&&!e||t.shiftKey||t.metaKey&&e?this.parent.toggleSelected(this):this.parent.setSelected(this)},Fu=new WeakSet,eb=function(t){const{isSelected:e}=this;this._uiManager.setUpDragSession();let s=!1;const i=new AbortController,r=this._uiManager.combinedSignal(i),a={capture:!0,passive:!1,signal:r},o=h=>{i.abort(),p(this,Vi,null),p(this,tr,!1),this._uiManager.endDragSession()||b(this,_h,Bp).call(this,h),s&&this._onStopDragging()};e&&(p(this,Va,t.clientX),p(this,Wa,t.clientY),p(this,Vi,t.pointerId),p(this,ph,t.pointerType),window.addEventListener("pointermove",h=>{s||(s=!0,this._onStartDragging());const{clientX:c,clientY:f,pointerId:g}=h;if(g!==n(this,Vi)){vt(h);return}const[m,A]=this.screenToPageTranslation(c-n(this,Va),f-n(this,Wa));p(this,Va,c),p(this,Wa,f),this._uiManager.dragSelectedEditors(m,A)},a),window.addEventListener("touchmove",vt,a),window.addEventListener("pointerdown",h=>{h.pointerType===n(this,ph)&&(n(this,sr)||h.isPrimary)&&o(h),vt(h)},a));const l=h=>{if(!n(this,Vi)||n(this,Vi)===h.pointerId){o(h);return}vt(h)};window.addEventListener("pointerup",l,{signal:r}),window.addEventListener("blur",l,{signal:r})},Sh=new WeakSet,Hp=function(){if(n(this,Wi)||!this.div)return;p(this,Wi,new AbortController);const t=this._uiManager.combinedSignal(n(this,Wi));this.div.addEventListener("focusin",this.focusin.bind(this),{signal:t}),this.div.addEventListener("focusout",this.focusout.bind(this),{signal:t})},Nu=new WeakSet,sb=function(t){G._resizerKeyboardManager.exec(this,t)},Ou=new WeakSet,ib=function(t){var e;n(this,Qs)&&((e=t.relatedTarget)==null?void 0:e.parentNode)!==n(this,zt)&&b(this,ir,wl).call(this)},Bu=new WeakSet,nb=function(t){p(this,gh,n(this,Qs)?t:"")},Eh=new WeakSet,$p=function(t){if(n(this,Qe))for(const e of n(this,Qe))e.tabIndex=t},ir=new WeakSet,wl=function(){p(this,Qs,!1),b(this,Eh,$p).call(this,-1),b(this,qa,Td).call(this)},d(G,yh),k(G,"_l10n",null),k(G,"_l10nResizer",null),k(G,"_borderLineWidth",-1),k(G,"_colorManager",new xp),k(G,"_zIndex",1),k(G,"_telemetryTimeout",1e3);let rt=G;class ry extends rt{constructor(t){super(t),this.annotationElementId=t.annotationElementId,this.deleted=!0}serialize(){return this.serializeDeleted()}}const rm=3285377520,De=4294901760,ls=65535;class rb{constructor(t){this.h1=t?t&4294967295:rm,this.h2=t?t&4294967295:rm}update(t){let e,s;if(typeof t=="string"){e=new Uint8Array(t.length*2),s=0;for(let y=0,v=t.length;y>>8,e[s++]=w&255)}}else if(ArrayBuffer.isView(t))e=t.slice(),s=e.byteLength;else throw new Error("Invalid data format, must be a string or TypedArray.");const i=s>>2,r=s-i*4,a=new Uint32Array(e.buffer,0,i);let o=0,l=0,h=this.h1,c=this.h2;const f=3432918353,g=461845907,m=f&ls,A=g&ls;for(let y=0;y>>17,o=o*g&De|o*A&ls,h^=o,h=h<<13|h>>>19,h=h*5+3864292196):(l=a[y],l=l*f&De|l*m&ls,l=l<<15|l>>>17,l=l*g&De|l*A&ls,c^=l,c=c<<13|c>>>19,c=c*5+3864292196);switch(o=0,r){case 3:o^=e[i*4+2]<<16;case 2:o^=e[i*4+1]<<8;case 1:o^=e[i*4],o=o*f&De|o*m&ls,o=o<<15|o>>>17,o=o*g&De|o*A&ls,i&1?h^=o:c^=o}this.h1=h,this.h2=c}hexdigest(){let t=this.h1,e=this.h2;return t^=e>>>1,t=t*3981806797&De|t*36045&ls,e=e*4283543511&De|((e<<16|t>>>16)*2950163797&De)>>>16,t^=e>>>1,t=t*444984403&De|t*60499&ls,e=e*3301882366&De|((e<<16|t>>>16)*3120437893&De)>>>16,t^=e>>>1,(t>>>0).toString(16).padStart(8,"0")+(e>>>0).toString(16).padStart(8,"0")}}const zp=Object.freeze({map:null,hash:"",transfer:void 0});var nr,rr,Gt,Hu,ab;class Gg{constructor(){d(this,Hu);d(this,nr,!1);d(this,rr,null);d(this,Gt,new Map);this.onSetModified=null,this.onResetModified=null,this.onAnnotationEditor=null}getValue(t,e){const s=n(this,Gt).get(t);return s===void 0?e:Object.assign(e,s)}getRawValue(t){return n(this,Gt).get(t)}remove(t){if(n(this,Gt).delete(t),n(this,Gt).size===0&&this.resetModified(),typeof this.onAnnotationEditor=="function"){for(const e of n(this,Gt).values())if(e instanceof rt)return;this.onAnnotationEditor(null)}}setValue(t,e){const s=n(this,Gt).get(t);let i=!1;if(s!==void 0)for(const[r,a]of Object.entries(e))s[r]!==a&&(i=!0,s[r]=a);else i=!0,n(this,Gt).set(t,e);i&&b(this,Hu,ab).call(this),e instanceof rt&&typeof this.onAnnotationEditor=="function"&&this.onAnnotationEditor(e.constructor._type)}has(t){return n(this,Gt).has(t)}get size(){return n(this,Gt).size}resetModified(){n(this,nr)&&(p(this,nr,!1),typeof this.onResetModified=="function"&&this.onResetModified())}get print(){return new ob(this)}get serializable(){if(n(this,Gt).size===0)return zp;const t=new Map,e=new rb,s=[],i=Object.create(null);let r=!1;for(const[a,o]of n(this,Gt)){const l=o instanceof rt?o.serialize(!1,i):o;l&&(t.set(a,l),e.update(`${a}:${JSON.stringify(l)}`),r||(r=!!l.bitmap))}if(r)for(const a of t.values())a.bitmap&&s.push(a.bitmap);return t.size>0?{map:t,hash:e.hexdigest(),transfer:s}:zp}get editorStats(){let t=null;const e=new Map;for(const s of n(this,Gt).values()){if(!(s instanceof rt))continue;const i=s.telemetryFinalData;if(!i)continue;const{type:r}=i;e.has(r)||e.set(r,Object.getPrototypeOf(s).constructor),t||(t=Object.create(null));const a=t[r]||(t[r]=new Map);for(const[o,l]of Object.entries(i)){if(o==="type")continue;let h=a.get(o);h||(h=new Map,a.set(o,h));const c=h.get(l)??0;h.set(l,c+1)}}for(const[s,i]of e)t[s]=i.computeTelemetryFinalData(t[s]);return t}resetModifiedIds(){p(this,rr,null)}get modifiedIds(){if(n(this,rr))return n(this,rr);const t=[];for(const e of n(this,Gt).values())!(e instanceof rt)||!e.annotationElementId||!e.serialize()||t.push(e.annotationElementId);return p(this,rr,{ids:new Set(t),hash:t.join(",")})}[Symbol.iterator](){return n(this,Gt).entries()}}nr=new WeakMap,rr=new WeakMap,Gt=new WeakMap,Hu=new WeakSet,ab=function(){n(this,nr)||(p(this,nr,!0),typeof this.onSetModified=="function"&&this.onSetModified())};var Ch;class ob extends Gg{constructor(e){super();d(this,Ch,void 0);const{map:s,hash:i,transfer:r}=e.serializable,a=structuredClone(s,r?{transfer:r}:null);p(this,Ch,{map:a,hash:i,transfer:r})}get print(){st("Should not call PrintAnnotationStorage.print")}get serializable(){return n(this,Ch)}get modifiedIds(){return V(this,"modifiedIds",{ids:new Set,hash:""})}}Ch=new WeakMap;var Ya;class ay{constructor({ownerDocument:t=globalThis.document,styleElement:e=null}){d(this,Ya,new Set);this._document=t,this.nativeFontFaces=new Set,this.styleElement=null,this.loadingRequests=[],this.loadTestFontId=0}addNativeFontFace(t){this.nativeFontFaces.add(t),this._document.fonts.add(t)}removeNativeFontFace(t){this.nativeFontFaces.delete(t),this._document.fonts.delete(t)}insertRule(t){this.styleElement||(this.styleElement=this._document.createElement("style"),this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement));const e=this.styleElement.sheet;e.insertRule(t,e.cssRules.length)}clear(){for(const t of this.nativeFontFaces)this._document.fonts.delete(t);this.nativeFontFaces.clear(),n(this,Ya).clear(),this.styleElement&&(this.styleElement.remove(),this.styleElement=null)}async loadSystemFont({systemFontInfo:t,disableFontFace:e,_inspectFont:s}){if(!(!t||n(this,Ya).has(t.loadedName))){if(_t(!e,"loadSystemFont shouldn't be called when `disableFontFace` is set."),this.isFontLoadingAPISupported){const{loadedName:i,src:r,style:a}=t,o=new FontFace(i,r,a);this.addNativeFontFace(o);try{await o.load(),n(this,Ya).add(i),s==null||s(t)}catch{z(`Cannot load system font: ${t.baseFontName}, installing it could help to improve PDF rendering.`),this.removeNativeFontFace(o)}return}st("Not implemented: loadSystemFont without the Font Loading API.")}}async bind(t){if(t.attached||t.missingFile&&!t.systemFontInfo)return;if(t.attached=!0,t.systemFontInfo){await this.loadSystemFont(t);return}if(this.isFontLoadingAPISupported){const s=t.createNativeFontFace();if(s){this.addNativeFontFace(s);try{await s.loaded}catch(i){throw z(`Failed to load font '${s.family}': '${i}'.`),t.disableFontFace=!0,i}}return}const e=t.createFontFaceRule();if(e){if(this.insertRule(e),this.isSyncFontLoadingSupported)return;await new Promise(s=>{const i=this._queueLoadingCallback(s);this._prepareFontLoadEvent(t,i)})}}get isFontLoadingAPISupported(){var e;const t=!!((e=this._document)!=null&&e.fonts);return V(this,"isFontLoadingAPISupported",t)}get isSyncFontLoadingSupported(){return V(this,"isSyncFontLoadingSupported",ie||Wt.platform.isFirefox)}_queueLoadingCallback(t){function e(){for(_t(!i.done,"completeRequest() cannot be called twice."),i.done=!0;s.length>0&&s[0].done;){const r=s.shift();setTimeout(r.callback,0)}}const{loadingRequests:s}=this,i={done:!1,complete:e,callback:t};return s.push(i),i}get _loadTestFont(){const t=atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");return V(this,"_loadTestFont",t)}_prepareFontLoadEvent(t,e){function s(E,C){return E.charCodeAt(C)<<24|E.charCodeAt(C+1)<<16|E.charCodeAt(C+2)<<8|E.charCodeAt(C+3)&255}function i(E,C,T,x){const P=E.substring(0,C),M=E.substring(C+T);return P+x+M}let r,a;const o=this._document.createElement("canvas");o.width=1,o.height=1;const l=o.getContext("2d");let h=0;function c(E,C){if(++h>30){z("Load test font never loaded."),C();return}if(l.font="30px "+E,l.fillText(".",0,20),l.getImageData(0,0,1,1).data[3]>0){C();return}setTimeout(c.bind(null,E,C))}const f=`lt${Date.now()}${this.loadTestFontId++}`;let g=this._loadTestFont;g=i(g,976,f.length,f);const A=16,y=1482184792;let v=s(g,A);for(r=0,a=f.length-3;r{_.remove(),e.complete()})}}Ya=new WeakMap;class oy{constructor(t,e=null){this.compiledGlyphs=Object.create(null);for(const s in t)this[s]=t[s];this._inspectFont=e}createNativeFontFace(){var e;if(!this.data||this.disableFontFace)return null;let t;if(!this.cssFontInfo)t=new FontFace(this.loadedName,this.data,{});else{const s={weight:this.cssFontInfo.fontWeight};this.cssFontInfo.italicAngle&&(s.style=`oblique ${this.cssFontInfo.italicAngle}deg`),t=new FontFace(this.cssFontInfo.fontFamily,this.data,s)}return(e=this._inspectFont)==null||e.call(this,this),t}createFontFaceRule(){var s;if(!this.data||this.disableFontFace)return null;const t=`url(data:${this.mimetype};base64,${Pm(this.data)});`;let e;if(!this.cssFontInfo)e=`@font-face {font-family:"${this.loadedName}";src:${t}}`;else{let i=`font-weight: ${this.cssFontInfo.fontWeight};`;this.cssFontInfo.italicAngle&&(i+=`font-style: oblique ${this.cssFontInfo.italicAngle}deg;`),e=`@font-face {font-family:"${this.cssFontInfo.fontFamily}";${i}src:${t}}`}return(s=this._inspectFont)==null||s.call(this,this,t),e}getPathGenerator(t,e){if(this.compiledGlyphs[e]!==void 0)return this.compiledGlyphs[e];const s=this.loadedName+"_path_"+e;let i;try{i=t.get(s)}catch(a){z(`getPathGenerator - ignoring character: "${a}".`)}const r=new Path2D(i||"");return this.fontExtraProperties||t.delete(s),this.compiledGlyphs[e]=r}}function ly(u){if(u instanceof URL)return u.href;if(typeof u=="string"){if(ie)return u;const t=URL.parse(u,window.location);if(t)return t.href}throw new Error("Invalid PDF url data: either string or URL-object is expected in the url property.")}function hy(u){if(ie&&typeof Buffer<"u"&&u instanceof Buffer)throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`.");if(u instanceof Uint8Array&&u.byteLength===u.buffer.byteLength)return u;if(typeof u=="string")return ad(u);if(u instanceof ArrayBuffer||ArrayBuffer.isView(u)||typeof u=="object"&&!isNaN(u==null?void 0:u.length))return new Uint8Array(u);throw new Error("Invalid PDF binary data: either TypedArray, string, or array-like object is expected in the data property.")}function pd(u){if(typeof u!="string")return null;if(u.endsWith("/"))return u;throw new Error(`Invalid factory url: "${u}" must include trailing slash.`)}const Gp=u=>typeof u=="object"&&Number.isInteger(u==null?void 0:u.num)&&u.num>=0&&Number.isInteger(u==null?void 0:u.gen)&&u.gen>=0,cy=u=>typeof u=="object"&&typeof(u==null?void 0:u.name)=="string",dy=YA.bind(null,Gp,cy);var Js,$u;class uy{constructor(){d(this,Js,new Map);d(this,$u,Promise.resolve())}postMessage(t,e){const s={data:structuredClone(t,e?{transfer:e}:null)};n(this,$u).then(()=>{for(const[i]of n(this,Js))i.call(this,s)})}addEventListener(t,e,s=null){let i=null;if((s==null?void 0:s.signal)instanceof AbortSignal){const{signal:r}=s;if(r.aborted){z("LoopbackPort - cannot use an `aborted` signal.");return}const a=()=>this.removeEventListener(t,e);i=()=>r.removeEventListener("abort",a),r.addEventListener("abort",a)}n(this,Js).set(e,i)}removeEventListener(t,e){const s=n(this,Js).get(e);s==null||s(),n(this,Js).delete(e)}terminate(){for(const[,t]of n(this,Js))t==null||t();n(this,Js).clear()}}Js=new WeakMap,$u=new WeakMap;const gd={DATA:1,ERROR:2},yt={CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function am(){}function re(u){if(u instanceof kn||u instanceof vp||u instanceof sm||u instanceof Kd||u instanceof fp)return u;switch(u instanceof Error||typeof u=="object"&&u!==null||st('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),u.name){case"AbortException":return new kn(u.message);case"InvalidPDFException":return new vp(u.message);case"PasswordException":return new sm(u.message,u.code);case"ResponseException":return new Kd(u.message,u.status,u.missing);case"UnknownErrorException":return new fp(u.message,u.details)}return new fp(u.message,u.toString())}var Ka,zu,lb,Gu,hb,Uu,cb,Qa,xd;class vl{constructor(t,e,s){d(this,zu);d(this,Gu);d(this,Uu);d(this,Qa);d(this,Ka,new AbortController);this.sourceName=t,this.targetName=e,this.comObj=s,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),s.addEventListener("message",b(this,zu,lb).bind(this),{signal:n(this,Ka).signal})}on(t,e){const s=this.actionHandler;if(s[t])throw new Error(`There is already an actionName called "${t}"`);s[t]=e}send(t,e,s){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,data:e},s)}sendWithPromise(t,e,s){const i=this.callbackId++,r=Promise.withResolvers();this.callbackCapabilities[i]=r;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:t,callbackId:i,data:e},s)}catch(a){r.reject(a)}return r.promise}sendWithStream(t,e,s,i){const r=this.streamId++,a=this.sourceName,o=this.targetName,l=this.comObj;return new ReadableStream({start:h=>{const c=Promise.withResolvers();return this.streamControllers[r]={controller:h,startCall:c,pullCall:null,cancelCall:null,isClosed:!1},l.postMessage({sourceName:a,targetName:o,action:t,streamId:r,data:e,desiredSize:h.desiredSize},i),c.promise},pull:h=>{const c=Promise.withResolvers();return this.streamControllers[r].pullCall=c,l.postMessage({sourceName:a,targetName:o,stream:yt.PULL,streamId:r,desiredSize:h.desiredSize}),c.promise},cancel:h=>{_t(h instanceof Error,"cancel must have a valid reason");const c=Promise.withResolvers();return this.streamControllers[r].cancelCall=c,this.streamControllers[r].isClosed=!0,l.postMessage({sourceName:a,targetName:o,stream:yt.CANCEL,streamId:r,reason:re(h)}),c.promise}},s)}destroy(){var t;(t=n(this,Ka))==null||t.abort(),p(this,Ka,null)}}Ka=new WeakMap,zu=new WeakSet,lb=function({data:t}){if(t.targetName!==this.sourceName)return;if(t.stream){b(this,Uu,cb).call(this,t);return}if(t.callback){const s=t.callbackId,i=this.callbackCapabilities[s];if(!i)throw new Error(`Cannot resolve callback ${s}`);if(delete this.callbackCapabilities[s],t.callback===gd.DATA)i.resolve(t.data);else if(t.callback===gd.ERROR)i.reject(re(t.reason));else throw new Error("Unexpected callback case");return}const e=this.actionHandler[t.action];if(!e)throw new Error(`Unknown action from worker: ${t.action}`);if(t.callbackId){const s=this.sourceName,i=t.sourceName,r=this.comObj;Promise.try(e,t.data).then(function(a){r.postMessage({sourceName:s,targetName:i,callback:gd.DATA,callbackId:t.callbackId,data:a})},function(a){r.postMessage({sourceName:s,targetName:i,callback:gd.ERROR,callbackId:t.callbackId,reason:re(a)})});return}if(t.streamId){b(this,Gu,hb).call(this,t);return}e(t.data)},Gu=new WeakSet,hb=function(t){const e=t.streamId,s=this.sourceName,i=t.sourceName,r=this.comObj,a=this,o=this.actionHandler[t.action],l={enqueue(h,c=1,f){if(this.isCancelled)return;const g=this.desiredSize;this.desiredSize-=c,g>0&&this.desiredSize<=0&&(this.sinkCapability=Promise.withResolvers(),this.ready=this.sinkCapability.promise),r.postMessage({sourceName:s,targetName:i,stream:yt.ENQUEUE,streamId:e,chunk:h},f)},close(){this.isCancelled||(this.isCancelled=!0,r.postMessage({sourceName:s,targetName:i,stream:yt.CLOSE,streamId:e}),delete a.streamSinks[e])},error(h){_t(h instanceof Error,"error must have a valid reason"),!this.isCancelled&&(this.isCancelled=!0,r.postMessage({sourceName:s,targetName:i,stream:yt.ERROR,streamId:e,reason:re(h)}))},sinkCapability:Promise.withResolvers(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:t.desiredSize,ready:null};l.sinkCapability.resolve(),l.ready=l.sinkCapability.promise,this.streamSinks[e]=l,Promise.try(o,t.data,l).then(function(){r.postMessage({sourceName:s,targetName:i,stream:yt.START_COMPLETE,streamId:e,success:!0})},function(h){r.postMessage({sourceName:s,targetName:i,stream:yt.START_COMPLETE,streamId:e,reason:re(h)})})},Uu=new WeakSet,cb=function(t){const e=t.streamId,s=this.sourceName,i=t.sourceName,r=this.comObj,a=this.streamControllers[e],o=this.streamSinks[e];switch(t.stream){case yt.START_COMPLETE:t.success?a.startCall.resolve():a.startCall.reject(re(t.reason));break;case yt.PULL_COMPLETE:t.success?a.pullCall.resolve():a.pullCall.reject(re(t.reason));break;case yt.PULL:if(!o){r.postMessage({sourceName:s,targetName:i,stream:yt.PULL_COMPLETE,streamId:e,success:!0});break}o.desiredSize<=0&&t.desiredSize>0&&o.sinkCapability.resolve(),o.desiredSize=t.desiredSize,Promise.try(o.onPull||am).then(function(){r.postMessage({sourceName:s,targetName:i,stream:yt.PULL_COMPLETE,streamId:e,success:!0})},function(h){r.postMessage({sourceName:s,targetName:i,stream:yt.PULL_COMPLETE,streamId:e,reason:re(h)})});break;case yt.ENQUEUE:if(_t(a,"enqueue should have stream controller"),a.isClosed)break;a.controller.enqueue(t.chunk);break;case yt.CLOSE:if(_t(a,"close should have stream controller"),a.isClosed)break;a.isClosed=!0,a.controller.close(),b(this,Qa,xd).call(this,a,e);break;case yt.ERROR:_t(a,"error should have stream controller"),a.controller.error(re(t.reason)),b(this,Qa,xd).call(this,a,e);break;case yt.CANCEL_COMPLETE:t.success?a.cancelCall.resolve():a.cancelCall.reject(re(t.reason)),b(this,Qa,xd).call(this,a,e);break;case yt.CANCEL:if(!o)break;const l=re(t.reason);Promise.try(o.onCancel||am,l).then(function(){r.postMessage({sourceName:s,targetName:i,stream:yt.CANCEL_COMPLETE,streamId:e,success:!0})},function(h){r.postMessage({sourceName:s,targetName:i,stream:yt.CANCEL_COMPLETE,streamId:e,reason:re(h)})}),o.sinkCapability.reject(l),o.isCancelled=!0,delete this.streamSinks[e];break;default:throw new Error("Unexpected stream case")}},Qa=new WeakSet,xd=async function(t,e){var s,i,r;await Promise.allSettled([(s=t.startCall)==null?void 0:s.promise,(i=t.pullCall)==null?void 0:i.promise,(r=t.cancelCall)==null?void 0:r.promise]),delete this.streamControllers[e]};var Th;class db{constructor({enableHWA:t=!1}){d(this,Th,!1);p(this,Th,t)}create(t,e){if(t<=0||e<=0)throw new Error("Invalid canvas size");const s=this._createCanvas(t,e);return{canvas:s,context:s.getContext("2d",{willReadFrequently:!n(this,Th)})}}reset(t,e,s){if(!t.canvas)throw new Error("Canvas is not specified");if(e<=0||s<=0)throw new Error("Invalid canvas size");t.canvas.width=e,t.canvas.height=s}destroy(t){if(!t.canvas)throw new Error("Canvas is not specified");t.canvas.width=0,t.canvas.height=0,t.canvas=null,t.context=null}_createCanvas(t,e){st("Abstract method `_createCanvas` called.")}}Th=new WeakMap;class fy extends db{constructor({ownerDocument:t=globalThis.document,enableHWA:e=!1}){super({enableHWA:e}),this._document=t}_createCanvas(t,e){const s=this._document.createElement("canvas");return s.width=t,s.height=e,s}}class ub{constructor({baseUrl:t=null,isCompressed:e=!0}){this.baseUrl=t,this.isCompressed=e}async fetch({name:t}){if(!this.baseUrl)throw new Error("Ensure that the `cMapUrl` and `cMapPacked` API parameters are provided.");if(!t)throw new Error("CMap name must be specified.");const e=this.baseUrl+t+(this.isCompressed?".bcmap":"");return this._fetch(e).then(s=>({cMapData:s,isCompressed:this.isCompressed})).catch(s=>{throw new Error(`Unable to load ${this.isCompressed?"binary ":""}CMap at: ${e}`)})}async _fetch(t){st("Abstract method `_fetch` called.")}}class om extends ub{async _fetch(t){const e=await od(t,this.isCompressed?"arraybuffer":"text");return e instanceof ArrayBuffer?new Uint8Array(e):ad(e)}}class fb{addFilter(t){return"none"}addHCMFilter(t,e){return"none"}addAlphaFilter(t){return"none"}addLuminosityFilter(t){return"none"}addHighlightHCMFilter(t,e,s,i,r){return"none"}destroy(t=!1){}}var ar,Ja,Zs,ti,Yt,or,lr,Rt,Xt,hr,_l,Xi,fa,Za,kd,qi,pa,ju,pb,xh,Up,Yi,ga,cr,Sl,dr,El,kh,jp,ur,Cl;class py extends fb{constructor({docId:e,ownerDocument:s=globalThis.document}){super();d(this,Rt);d(this,hr);d(this,Xi);d(this,Za);d(this,qi);d(this,ju);d(this,xh);d(this,Yi);d(this,cr);d(this,dr);d(this,kh);d(this,ur);d(this,ar,void 0);d(this,Ja,void 0);d(this,Zs,void 0);d(this,ti,void 0);d(this,Yt,void 0);d(this,or,void 0);d(this,lr,0);p(this,ti,e),p(this,Yt,s)}addFilter(e){if(!e)return"none";let s=n(this,Rt,Xt).get(e);if(s)return s;const[i,r,a]=b(this,Za,kd).call(this,e),o=e.length===1?i:`${i}${r}${a}`;if(s=n(this,Rt,Xt).get(o),s)return n(this,Rt,Xt).set(e,s),s;const l=`g_${n(this,ti)}_transfer_map_${St(this,lr)._++}`,h=b(this,qi,pa).call(this,l);n(this,Rt,Xt).set(e,h),n(this,Rt,Xt).set(o,h);const c=b(this,Yi,ga).call(this,l);return b(this,dr,El).call(this,i,r,a,c),h}addHCMFilter(e,s){var A;const i=`${e}-${s}`,r="base";let a=n(this,hr,_l).get(r);if((a==null?void 0:a.key)===i||(a?((A=a.filter)==null||A.remove(),a.key=i,a.url="none",a.filter=null):(a={key:i,url:"none",filter:null},n(this,hr,_l).set(r,a)),!e||!s))return a.url;const o=b(this,ur,Cl).call(this,e);e=I.makeHexColor(...o);const l=b(this,ur,Cl).call(this,s);if(s=I.makeHexColor(...l),n(this,Xi,fa).style.color="",e==="#000000"&&s==="#ffffff"||e===s)return a.url;const h=new Array(256);for(let y=0;y<=255;y++){const v=y/255;h[y]=v<=.03928?v/12.92:((v+.055)/1.055)**2.4}const c=h.join(","),f=`g_${n(this,ti)}_hcm_filter`,g=a.filter=b(this,Yi,ga).call(this,f);b(this,dr,El).call(this,c,c,c,g),b(this,xh,Up).call(this,g);const m=(y,v)=>{const w=o[y]/255,S=l[y]/255,_=new Array(v+1);for(let E=0;E<=v;E++)_[E]=w+E/v*(S-w);return _.join(",")};return b(this,dr,El).call(this,m(0,5),m(1,5),m(2,5),g),a.url=b(this,qi,pa).call(this,f),a.url}addAlphaFilter(e){let s=n(this,Rt,Xt).get(e);if(s)return s;const[i]=b(this,Za,kd).call(this,[e]),r=`alpha_${i}`;if(s=n(this,Rt,Xt).get(r),s)return n(this,Rt,Xt).set(e,s),s;const a=`g_${n(this,ti)}_alpha_map_${St(this,lr)._++}`,o=b(this,qi,pa).call(this,a);n(this,Rt,Xt).set(e,o),n(this,Rt,Xt).set(r,o);const l=b(this,Yi,ga).call(this,a);return b(this,kh,jp).call(this,i,l),o}addLuminosityFilter(e){let s=n(this,Rt,Xt).get(e||"luminosity");if(s)return s;let i,r;if(e?([i]=b(this,Za,kd).call(this,[e]),r=`luminosity_${i}`):r="luminosity",s=n(this,Rt,Xt).get(r),s)return n(this,Rt,Xt).set(e,s),s;const a=`g_${n(this,ti)}_luminosity_map_${St(this,lr)._++}`,o=b(this,qi,pa).call(this,a);n(this,Rt,Xt).set(e,o),n(this,Rt,Xt).set(r,o);const l=b(this,Yi,ga).call(this,a);return b(this,ju,pb).call(this,l),e&&b(this,kh,jp).call(this,i,l),o}addHighlightHCMFilter(e,s,i,r,a){var S;const o=`${s}-${i}-${r}-${a}`;let l=n(this,hr,_l).get(e);if((l==null?void 0:l.key)===o||(l?((S=l.filter)==null||S.remove(),l.key=o,l.url="none",l.filter=null):(l={key:o,url:"none",filter:null},n(this,hr,_l).set(e,l)),!s||!i))return l.url;const[h,c]=[s,i].map(b(this,ur,Cl).bind(this));let f=Math.round(.2126*h[0]+.7152*h[1]+.0722*h[2]),g=Math.round(.2126*c[0]+.7152*c[1]+.0722*c[2]),[m,A]=[r,a].map(b(this,ur,Cl).bind(this));g{const T=new Array(256),x=(g-f)/C,P=_/255,M=(E-_)/(255*C);let D=0;for(let R=0;R<=C;R++){const H=Math.round(f+R*x),U=P+R*M;for(let W=D;W<=H;W++)T[W]=U;D=H+1}for(let R=D;R<256;R++)T[R]=T[D-1];return T.join(",")},v=`g_${n(this,ti)}_hcm_${e}_filter`,w=l.filter=b(this,Yi,ga).call(this,v);return b(this,xh,Up).call(this,w),b(this,dr,El).call(this,y(m[0],A[0],5),y(m[1],A[1],5),y(m[2],A[2],5),w),l.url=b(this,qi,pa).call(this,v),l.url}destroy(e=!1){var s,i,r,a;e&&((s=n(this,or))!=null&&s.size)||((i=n(this,Zs))==null||i.parentNode.parentNode.remove(),p(this,Zs,null),(r=n(this,Ja))==null||r.clear(),p(this,Ja,null),(a=n(this,or))==null||a.clear(),p(this,or,null),p(this,lr,0))}}ar=new WeakMap,Ja=new WeakMap,Zs=new WeakMap,ti=new WeakMap,Yt=new WeakMap,or=new WeakMap,lr=new WeakMap,Rt=new WeakSet,Xt=function(){return n(this,Ja)||p(this,Ja,new Map)},hr=new WeakSet,_l=function(){return n(this,or)||p(this,or,new Map)},Xi=new WeakSet,fa=function(){if(!n(this,Zs)){const e=n(this,Yt).createElement("div"),{style:s}=e;s.visibility="hidden",s.contain="strict",s.width=s.height=0,s.position="absolute",s.top=s.left=0,s.zIndex=-1;const i=n(this,Yt).createElementNS(Is,"svg");i.setAttribute("width",0),i.setAttribute("height",0),p(this,Zs,n(this,Yt).createElementNS(Is,"defs")),e.append(i),i.append(n(this,Zs)),n(this,Yt).body.append(e)}return n(this,Zs)},Za=new WeakSet,kd=function(e){if(e.length===1){const h=e[0],c=new Array(256);for(let g=0;g<256;g++)c[g]=h[g]/255;const f=c.join(",");return[f,f,f]}const[s,i,r]=e,a=new Array(256),o=new Array(256),l=new Array(256);for(let h=0;h<256;h++)a[h]=s[h]/255,o[h]=i[h]/255,l[h]=r[h]/255;return[a.join(","),o.join(","),l.join(",")]},qi=new WeakSet,pa=function(e){if(n(this,ar)===void 0){p(this,ar,"");const s=n(this,Yt).URL;s!==n(this,Yt).baseURI&&(np(s)?z('#createUrl: ignore "data:"-URL for performance reasons.'):p(this,ar,Tm(s,"")))}return`url(${n(this,ar)}#${e})`},ju=new WeakSet,pb=function(e){const s=n(this,Yt).createElementNS(Is,"feColorMatrix");s.setAttribute("type","matrix"),s.setAttribute("values","0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0.59 0.11 0 0"),e.append(s)},xh=new WeakSet,Up=function(e){const s=n(this,Yt).createElementNS(Is,"feColorMatrix");s.setAttribute("type","matrix"),s.setAttribute("values","0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"),e.append(s)},Yi=new WeakSet,ga=function(e){const s=n(this,Yt).createElementNS(Is,"filter");return s.setAttribute("color-interpolation-filters","sRGB"),s.setAttribute("id",e),n(this,Xi,fa).append(s),s},cr=new WeakSet,Sl=function(e,s,i){const r=n(this,Yt).createElementNS(Is,s);r.setAttribute("type","discrete"),r.setAttribute("tableValues",i),e.append(r)},dr=new WeakSet,El=function(e,s,i,r){const a=n(this,Yt).createElementNS(Is,"feComponentTransfer");r.append(a),b(this,cr,Sl).call(this,a,"feFuncR",e),b(this,cr,Sl).call(this,a,"feFuncG",s),b(this,cr,Sl).call(this,a,"feFuncB",i)},kh=new WeakSet,jp=function(e,s){const i=n(this,Yt).createElementNS(Is,"feComponentTransfer");s.append(i),b(this,cr,Sl).call(this,i,"feFuncA",e)},ur=new WeakSet,Cl=function(e){return n(this,Xi,fa).style.color=e,rp(getComputedStyle(n(this,Xi,fa)).getPropertyValue("color"))};class gb{constructor({baseUrl:t=null}){this.baseUrl=t}async fetch({filename:t}){if(!this.baseUrl)throw new Error("Ensure that the `standardFontDataUrl` API parameter is provided.");if(!t)throw new Error("Font filename must be specified.");const e=`${this.baseUrl}${t}`;return this._fetch(e).catch(s=>{throw new Error(`Unable to load font data at: ${e}`)})}async _fetch(t){st("Abstract method `_fetch` called.")}}class lm extends gb{async _fetch(t){const e=await od(t,"arraybuffer");return new Uint8Array(e)}}class mb{constructor({baseUrl:t=null}){this.baseUrl=t}async fetch({filename:t}){if(!this.baseUrl)throw new Error("Ensure that the `wasmUrl` API parameter is provided.");if(!t)throw new Error("Wasm filename must be specified.");const e=`${this.baseUrl}${t}`;return this._fetch(e).catch(s=>{throw new Error(`Unable to load wasm data at: ${e}`)})}async _fetch(t){st("Abstract method `_fetch` called.")}}class hm extends mb{async _fetch(t){const e=await od(t,"arraybuffer");return new Uint8Array(e)}}ie&&z("Please use the `legacy` build in Node.js environments.");async function Ug(u){const e=await process.getBuiltinModule("fs").promises.readFile(u);return new Uint8Array(e)}class gy extends fb{}class my extends db{_createCanvas(t,e){return process.getBuiltinModule("module").createRequire(import.meta.url)("@napi-rs/canvas").createCanvas(t,e)}}class by extends ub{async _fetch(t){return Ug(t)}}class Ay extends gb{async _fetch(t){return Ug(t)}}class yy extends mb{async _fetch(t){return Ug(t)}}const ca="__forcedDependency";var ge,Zt,to,ws,eo,ei,J,tt,si,me,Ki,so,Qi,Ji;class wy{constructor(t){d(this,ge,{__proto__:null});d(this,Zt,{__proto__:null,transform:[],moveText:[],sameLineText:[],[ca]:[]});d(this,to,new Map);d(this,ws,[]);d(this,eo,[]);d(this,ei,[[1,0,0,1,0,0]]);d(this,J,[-1/0,-1/0,1/0,1/0]);d(this,tt,new Float64Array([1/0,1/0,-1/0,-1/0]));d(this,si,-1);d(this,me,new Set);d(this,Ki,new Map);d(this,so,new Map);d(this,Qi,void 0);d(this,Ji,void 0);p(this,Qi,t.width),p(this,Ji,t.height)}save(t){return p(this,ge,{__proto__:n(this,ge)}),p(this,Zt,{__proto__:n(this,Zt),transform:{__proto__:n(this,Zt).transform},moveText:{__proto__:n(this,Zt).moveText},sameLineText:{__proto__:n(this,Zt).sameLineText},[ca]:{__proto__:n(this,Zt)[ca]}}),p(this,J,{__proto__:n(this,J)}),n(this,ws).push([t,null]),this}restore(t){const e=Object.getPrototypeOf(n(this,ge));if(e===null)return this;p(this,ge,e),p(this,Zt,Object.getPrototypeOf(n(this,Zt))),p(this,J,Object.getPrototypeOf(n(this,J)));const s=n(this,ws).pop();return s!==void 0&&(s[1]=t),this}recordOpenMarker(t){return n(this,ws).push([t,null]),this}getOpenMarker(){return n(this,ws).length===0?null:n(this,ws).at(-1)[0]}recordCloseMarker(t){const e=n(this,ws).pop();return e!==void 0&&(e[1]=t),this}beginMarkedContent(t){return n(this,eo).push([t,null]),this}endMarkedContent(t){const e=n(this,eo).pop();return e!==void 0&&(e[1]=t),this}pushBaseTransform(t){return n(this,ei).push(I.multiplyByDOMMatrix(n(this,ei).at(-1),t.getTransform())),this}popBaseTransform(){return n(this,ei).length>1&&n(this,ei).pop(),this}recordSimpleData(t,e){return n(this,ge)[t]=e,this}recordIncrementalData(t,e){return n(this,Zt)[t].push(e),this}resetIncrementalData(t,e){return n(this,Zt)[t].length=0,this}recordNamedData(t,e){return n(this,to).set(t,e),this}recordFutureForcedDependency(t,e){return this.recordIncrementalData(ca,e),this}inheritSimpleDataAsFutureForcedDependencies(t){for(const e of t)e in n(this,ge)&&this.recordFutureForcedDependency(e,n(this,ge)[e]);return this}inheritPendingDependenciesAsFutureForcedDependencies(){for(const t of n(this,me))this.recordFutureForcedDependency(ca,t);return this}resetBBox(t){return p(this,si,t),n(this,tt)[0]=1/0,n(this,tt)[1]=1/0,n(this,tt)[2]=-1/0,n(this,tt)[3]=-1/0,this}get hasPendingBBox(){return n(this,si)!==-1}recordClipBox(t,e,s,i,r,a){const o=I.multiplyByDOMMatrix(n(this,ei).at(-1),e.getTransform()),l=[1/0,1/0,-1/0,-1/0];I.axialAlignedBoundingBox([s,r,i,a],o,l);const h=I.intersect(n(this,J),l);return h?(n(this,J)[0]=h[0],n(this,J)[1]=h[1],n(this,J)[2]=h[2],n(this,J)[3]=h[3]):(n(this,J)[0]=n(this,J)[1]=1/0,n(this,J)[2]=n(this,J)[3]=-1/0),this}recordBBox(t,e,s,i,r,a){const o=n(this,J);if(o[0]===1/0)return this;const l=I.multiplyByDOMMatrix(n(this,ei).at(-1),e.getTransform());if(o[0]===-1/0)return I.axialAlignedBoundingBox([s,r,i,a],l,n(this,tt)),this;const h=[1/0,1/0,-1/0,-1/0];return I.axialAlignedBoundingBox([s,r,i,a],l,h),n(this,tt)[0]=Math.min(n(this,tt)[0],Math.max(h[0],o[0])),n(this,tt)[1]=Math.min(n(this,tt)[1],Math.max(h[1],o[1])),n(this,tt)[2]=Math.max(n(this,tt)[2],Math.min(h[2],o[2])),n(this,tt)[3]=Math.max(n(this,tt)[3],Math.min(h[3],o[3])),this}recordCharacterBBox(t,e,s,i=1,r=0,a=0,o){const l=s.bbox;let h,c;if(l&&(h=l[2]!==l[0]&&l[3]!==l[1]&&n(this,so).get(s),h!==!1&&(c=[0,0,0,0],I.axialAlignedBoundingBox(l,s.fontMatrix,c),(i!==1||r!==0||a!==0)&&I.scaleMinMax([i,0,0,-i,r,a],c),h)))return this.recordBBox(t,e,c[0],c[2],c[1],c[3]);if(!o)return this.recordFullPageBBox(t);const f=o();return l&&c&&h===void 0&&(h=c[0]<=r-f.actualBoundingBoxLeft&&c[2]>=r+f.actualBoundingBoxRight&&c[1]<=a-f.actualBoundingBoxAscent&&c[3]>=a+f.actualBoundingBoxDescent,n(this,so).set(s,h),h)?this.recordBBox(t,e,c[0],c[2],c[1],c[3]):this.recordBBox(t,e,r-f.actualBoundingBoxLeft,r+f.actualBoundingBoxRight,a-f.actualBoundingBoxAscent,a+f.actualBoundingBoxDescent)}recordFullPageBBox(t){return n(this,tt)[0]=Math.max(0,n(this,J)[0]),n(this,tt)[1]=Math.max(0,n(this,J)[1]),n(this,tt)[2]=Math.min(n(this,Qi),n(this,J)[2]),n(this,tt)[3]=Math.min(n(this,Ji),n(this,J)[3]),this}getSimpleIndex(t){return n(this,ge)[t]}recordDependencies(t,e){const s=n(this,me),i=n(this,ge),r=n(this,Zt);for(const a of e)a in n(this,ge)?s.add(i[a]):a in r&&r[a].forEach(s.add,s);return this}copyDependenciesFromIncrementalOperation(t,e){const s=n(this,Ki),i=n(this,me);for(const r of n(this,Zt)[e])s.get(r).dependencies.forEach(i.add,i.add(r));return this}recordNamedDependency(t,e){return n(this,to).has(e)&&n(this,me).add(n(this,to).get(e)),this}recordOperation(t,e=!1){this.recordDependencies(t,[ca]);const s=new Set(n(this,me)),i=n(this,ws).concat(n(this,eo)),r=n(this,si)===t?{minX:n(this,tt)[0],minY:n(this,tt)[1],maxX:n(this,tt)[2],maxY:n(this,tt)[3]}:null;return n(this,Ki).set(t,{bbox:r,pairs:i,dependencies:s}),e||p(this,si,-1),n(this,me).clear(),this}bboxToClipBoxDropOperation(t){return n(this,si)!==-1&&(p(this,si,-1),n(this,J)[0]=Math.max(n(this,J)[0],n(this,tt)[0]),n(this,J)[1]=Math.max(n(this,J)[1],n(this,tt)[1]),n(this,J)[2]=Math.min(n(this,J)[2],n(this,tt)[2]),n(this,J)[3]=Math.min(n(this,J)[3],n(this,tt)[3])),n(this,me).clear(),this}_takePendingDependencies(){const t=n(this,me);return p(this,me,new Set),t}_extractOperation(t){const e=n(this,Ki).get(t);return n(this,Ki).delete(t),e}_pushPendingDependencies(t){for(const e of t)n(this,me).add(e)}take(){return n(this,so).clear(),Array.from(n(this,Ki),([t,{bbox:e,pairs:s,dependencies:i}])=>(s.forEach(r=>r.forEach(i.add,i)),i.delete(t),{minX:((e==null?void 0:e.minX)??0)/n(this,Qi),maxX:((e==null?void 0:e.maxX)??n(this,Qi))/n(this,Qi),minY:((e==null?void 0:e.minY)??0)/n(this,Ji),maxY:((e==null?void 0:e.maxY)??n(this,Ji))/n(this,Ji),dependencies:Array.from(i).sort((r,a)=>r-a),idx:t}))}}ge=new WeakMap,Zt=new WeakMap,to=new WeakMap,ws=new WeakMap,eo=new WeakMap,ei=new WeakMap,J=new WeakMap,tt=new WeakMap,si=new WeakMap,me=new WeakMap,Ki=new WeakMap,so=new WeakMap,Qi=new WeakMap,Ji=new WeakMap;var K,ct,io,Zi,no;const Qg=class Qg{constructor(t,e){d(this,K,void 0);d(this,ct,void 0);d(this,io,0);d(this,Zi,void 0);d(this,no,0);if(t instanceof Qg)return t;p(this,K,t),p(this,Zi,t._takePendingDependencies()),p(this,ct,e)}save(t){return St(this,no)._++,n(this,K).save(n(this,ct)),this}restore(t){return n(this,no)>0&&(n(this,K).restore(n(this,ct)),St(this,no)._--),this}recordOpenMarker(t){return St(this,io)._++,this}getOpenMarker(){return n(this,io)>0?n(this,ct):n(this,K).getOpenMarker()}recordCloseMarker(t){return St(this,io)._--,this}beginMarkedContent(t){return this}endMarkedContent(t){return this}pushBaseTransform(t){return n(this,K).pushBaseTransform(t),this}popBaseTransform(){return n(this,K).popBaseTransform(),this}recordSimpleData(t,e){return n(this,K).recordSimpleData(t,n(this,ct)),this}recordIncrementalData(t,e){return n(this,K).recordIncrementalData(t,n(this,ct)),this}resetIncrementalData(t,e){return n(this,K).resetIncrementalData(t,n(this,ct)),this}recordNamedData(t,e){return this}recordFutureForcedDependency(t,e){return n(this,K).recordFutureForcedDependency(t,n(this,ct)),this}inheritSimpleDataAsFutureForcedDependencies(t){return n(this,K).inheritSimpleDataAsFutureForcedDependencies(t),this}inheritPendingDependenciesAsFutureForcedDependencies(){return n(this,K).inheritPendingDependenciesAsFutureForcedDependencies(),this}resetBBox(t){return n(this,K).hasPendingBBox||n(this,K).resetBBox(n(this,ct)),this}get hasPendingBBox(){return n(this,K).hasPendingBBox}recordClipBox(t,e,s,i,r,a){return n(this,K).recordClipBox(n(this,ct),e,s,i,r,a),this}recordBBox(t,e,s,i,r,a){return n(this,K).recordBBox(n(this,ct),e,s,i,r,a),this}recordCharacterBBox(t,e,s,i,r,a,o){return n(this,K).recordCharacterBBox(n(this,ct),e,s,i,r,a,o),this}recordFullPageBBox(t){return n(this,K).recordFullPageBBox(n(this,ct)),this}getSimpleIndex(t){return n(this,K).getSimpleIndex(t)}recordDependencies(t,e){return n(this,K).recordDependencies(n(this,ct),e),this}copyDependenciesFromIncrementalOperation(t,e){return n(this,K).copyDependenciesFromIncrementalOperation(n(this,ct),e),this}recordNamedDependency(t,e){return n(this,K).recordNamedDependency(n(this,ct),e),this}recordOperation(t){n(this,K).recordOperation(n(this,ct),!0);const e=n(this,K)._extractOperation(n(this,ct));for(const s of e.dependencies)n(this,Zi).add(s);return n(this,Zi).delete(n(this,ct)),n(this,Zi).delete(null),this}bboxToClipBoxDropOperation(t){return n(this,K).bboxToClipBoxDropOperation(n(this,ct)),this}recordNestedDependencies(){n(this,K)._pushPendingDependencies(n(this,Zi))}take(){throw new Error("Unreachable")}};K=new WeakMap,ct=new WeakMap,io=new WeakMap,Zi=new WeakMap,no=new WeakMap;let tu=Qg;const Le={stroke:["path","transform","filter","strokeColor","strokeAlpha","lineWidth","lineCap","lineJoin","miterLimit","dash"],fill:["path","transform","filter","fillColor","fillAlpha","globalCompositeOperation","SMask"],imageXObject:["transform","SMask","filter","fillAlpha","strokeAlpha","globalCompositeOperation"],rawFillPath:["filter","fillColor","fillAlpha"],showText:["transform","leading","charSpacing","wordSpacing","hScale","textRise","moveText","textMatrix","font","filter","fillColor","textRenderingMode","SMask","fillAlpha","strokeAlpha","globalCompositeOperation"],transform:["transform"],transformAndFill:["transform","fillColor"]},Vt={FILL:"Fill",STROKE:"Stroke",SHADING:"Shading"};function Vp(u,t){if(!t)return;const e=t[2]-t[0],s=t[3]-t[1],i=new Path2D;i.rect(t[0],t[1],e,s),u.clip(i)}class jg{isModifyingCurrentTransform(){return!1}getPattern(){st("Abstract method `getPattern` called.")}}class vy extends jg{constructor(t){super(),this._type=t[1],this._bbox=t[2],this._colorStops=t[3],this._p0=t[4],this._p1=t[5],this._r0=t[6],this._r1=t[7],this.matrix=null}_createGradient(t){let e;this._type==="axial"?e=t.createLinearGradient(this._p0[0],this._p0[1],this._p1[0],this._p1[1]):this._type==="radial"&&(e=t.createRadialGradient(this._p0[0],this._p0[1],this._r0,this._p1[0],this._p1[1],this._r1));for(const s of this._colorStops)e.addColorStop(s[0],s[1]);return e}getPattern(t,e,s,i){let r;if(i===Vt.STROKE||i===Vt.FILL){const a=e.current.getClippedPathBoundingBox(i,dt(t))||[0,0,0,0],o=Math.ceil(a[2]-a[0])||1,l=Math.ceil(a[3]-a[1])||1,h=e.cachedCanvases.getCanvas("pattern",o,l),c=h.context;c.clearRect(0,0,c.canvas.width,c.canvas.height),c.beginPath(),c.rect(0,0,c.canvas.width,c.canvas.height),c.translate(-a[0],-a[1]),s=I.transform(s,[1,0,0,1,a[0],a[1]]),c.transform(...e.baseTransform),this.matrix&&c.transform(...this.matrix),Vp(c,this._bbox),c.fillStyle=this._createGradient(c),c.fill(),r=t.createPattern(h.canvas,"no-repeat");const f=new DOMMatrix(s);r.setTransform(f)}else Vp(t,this._bbox),r=this._createGradient(t);return r}}function mp(u,t,e,s,i,r,a,o){const l=t.coords,h=t.colors,c=u.data,f=u.width*4;let g;l[e+1]>l[s+1]&&(g=e,e=s,s=g,g=r,r=a,a=g),l[s+1]>l[i+1]&&(g=s,s=i,i=g,g=a,a=o,o=g),l[e+1]>l[s+1]&&(g=e,e=s,s=g,g=r,r=a,a=g);const m=(l[e]+t.offsetX)*t.scaleX,A=(l[e+1]+t.offsetY)*t.scaleY,y=(l[s]+t.offsetX)*t.scaleX,v=(l[s+1]+t.offsetY)*t.scaleY,w=(l[i]+t.offsetX)*t.scaleX,S=(l[i+1]+t.offsetY)*t.scaleY;if(A>=S)return;const _=h[r],E=h[r+1],C=h[r+2],T=h[a],x=h[a+1],P=h[a+2],M=h[o],D=h[o+1],R=h[o+2],H=Math.round(A),U=Math.round(S);let W,Y,B,N,Pt,At,Re,as;for(let it=H;it<=U;it++){if(itS?pt=1:v===S?pt=0:pt=(v-it)/(v-S),W=y-(y-w)*pt,Y=T-(T-M)*pt,B=x-(x-D)*pt,N=P-(P-R)*pt}let Z;itS?Z=1:Z=(A-it)/(A-S),Pt=m-(m-w)*Z,At=_-(_-M)*Z,Re=E-(E-D)*Z,as=C-(C-R)*Z;const Ls=Math.round(Math.min(W,Pt)),Ve=Math.round(Math.max(W,Pt));let We=f*it+Ls*4;for(let pt=Ls;pt<=Ve;pt++)Z=(W-pt)/(W-Pt),Z<0?Z=0:Z>1&&(Z=1),c[We++]=Y-(Y-At)*Z|0,c[We++]=B-(B-Re)*Z|0,c[We++]=N-(N-as)*Z|0,c[We++]=255}}function _y(u,t,e){const s=t.coords,i=t.colors;let r,a;switch(t.type){case"lattice":const o=t.verticesPerRow,l=Math.floor(s.length/o)-1,h=o-1;for(r=0;r=R?C=l:x=!0,D>=H?T=h:P=!0;const U=this.getSizeAndScale(C,this.ctx.canvas.width,_),W=this.getSizeAndScale(T,this.ctx.canvas.height,E),Y=t.cachedCanvases.getCanvas("pattern",U.size,W.size),B=Y.context,N=o.createCanvasGraphics(B);if(N.groupLevel=t.groupLevel,this.setFillAndStrokeStyleToContext(N,i,a),B.translate(-U.scale*c,-W.scale*f),N.transform(0,U.scale,0,0,W.scale,0,0),B.save(),(Pt=N.dependencyTracker)==null||Pt.save(),this.clipBbox(N,c,f,g,m),N.baseTransform=dt(N.ctx),N.executeOperatorList(s),N.endDrawing(),(as=(At=N.dependencyTracker)==null?void 0:(Re=At.restore()).recordNestedDependencies)==null||as.call(Re),B.restore(),x||P){const it=Y.canvas;x&&(C=l),P&&(T=h);const Z=this.getSizeAndScale(C,this.ctx.canvas.width,_),Ls=this.getSizeAndScale(T,this.ctx.canvas.height,E),Ve=Z.size,We=Ls.size,pt=t.cachedCanvases.getCanvas("pattern-workaround",Ve,We),lp=pt.context,hp=x?Math.floor(A/l):0,cp=P?Math.floor(y/h):0;for(let Mn=0;Mn<=hp;Mn++)for(let Rn=0;Rn<=cp;Rn++)lp.drawImage(it,Ve*Mn,We*Rn,Ve,We,0,0,Ve,We);return{canvas:pt.canvas,scaleX:Z.scale,scaleY:Ls.scale,offsetX:c,offsetY:f}}return{canvas:Y.canvas,scaleX:U.scale,scaleY:W.scale,offsetX:c,offsetY:f}}getSizeAndScale(t,e,s){const i=Math.max(Vu.MAX_PATTERN_SIZE,e);let r=Math.ceil(t*s);return r>=i?r=i:s=r/t,{scale:s,size:r}}clipBbox(t,e,s,i,r){const a=i-e,o=r-s;t.ctx.rect(e,s,a,o),I.axialAlignedBoundingBox([e,s,i,r],dt(t.ctx),t.current.minMax),t.clip(),t.endPath()}setFillAndStrokeStyleToContext(t,e,s){const i=t.ctx,r=t.current;switch(e){case cm.COLORED:const{fillStyle:a,strokeStyle:o}=this.ctx;i.fillStyle=r.fillColor=a,i.strokeStyle=r.strokeColor=o;break;case cm.UNCOLORED:i.fillStyle=i.strokeStyle=s,r.fillColor=r.strokeColor=s;break;default:throw new UA(`Unsupported paint type: ${e}`)}}isModifyingCurrentTransform(){return!1}getPattern(t,e,s,i){let r=s;i!==Vt.SHADING&&(r=I.transform(r,e.baseTransform),this.matrix&&(r=I.transform(r,this.matrix)));const a=this.createPatternCanvas(e);let o=new DOMMatrix(r);o=o.translate(a.offsetX,a.offsetY),o=o.scale(1/a.scaleX,1/a.scaleY);const l=t.createPattern(a.canvas,"repeat");return l.setTransform(o),l}};k(Vu,"MAX_PATTERN_SIZE",3e3);let Wp=Vu;function Ty({src:u,srcPos:t=0,dest:e,width:s,height:i,nonBlackColor:r=4294967295,inverseDecode:a=!1}){const o=Wt.isLittleEndian?4278190080:255,[l,h]=a?[r,o]:[o,r],c=s>>3,f=s&7,g=u.length;e=new Uint32Array(e.buffer);let m=0;for(let A=0;A{u.save=u.__originalSave,u.restore=u.__originalRestore,u.rotate=u.__originalRotate,u.scale=u.__originalScale,u.translate=u.__originalTranslate,u.transform=u.__originalTransform,u.setTransform=u.__originalSetTransform,u.resetTransform=u.__originalResetTransform,u.clip=u.__originalClip,u.moveTo=u.__originalMoveTo,u.lineTo=u.__originalLineTo,u.bezierCurveTo=u.__originalBezierCurveTo,u.rect=u.__originalRect,u.closePath=u.__originalClosePath,u.beginPath=u.__originalBeginPath,delete u._removeMirroring},u.save=function(){t.save(),this.__originalSave()},u.restore=function(){t.restore(),this.__originalRestore()},u.translate=function(e,s){t.translate(e,s),this.__originalTranslate(e,s)},u.scale=function(e,s){t.scale(e,s),this.__originalScale(e,s)},u.transform=function(e,s,i,r,a,o){t.transform(e,s,i,r,a,o),this.__originalTransform(e,s,i,r,a,o)},u.setTransform=function(e,s,i,r,a,o){t.setTransform(e,s,i,r,a,o),this.__originalSetTransform(e,s,i,r,a,o)},u.resetTransform=function(){t.resetTransform(),this.__originalResetTransform()},u.rotate=function(e){t.rotate(e),this.__originalRotate(e)},u.clip=function(e){t.clip(e),this.__originalClip(e)},u.moveTo=function(e,s){t.moveTo(e,s),this.__originalMoveTo(e,s)},u.lineTo=function(e,s){t.lineTo(e,s),this.__originalLineTo(e,s)},u.bezierCurveTo=function(e,s,i,r,a,o){t.bezierCurveTo(e,s,i,r,a,o),this.__originalBezierCurveTo(e,s,i,r,a,o)},u.rect=function(e,s,i,r){t.rect(e,s,i,r),this.__originalRect(e,s,i,r)},u.closePath=function(){t.closePath(),this.__originalClosePath()},u.beginPath=function(){t.beginPath(),this.__originalBeginPath()}}class Py{constructor(t){this.canvasFactory=t,this.cache=Object.create(null)}getCanvas(t,e,s){let i;return this.cache[t]!==void 0?(i=this.cache[t],this.canvasFactory.reset(i,e,s)):(i=this.canvasFactory.create(e,s),this.cache[t]=i),i}delete(t){delete this.cache[t]}clear(){for(const t in this.cache){const e=this.cache[t];this.canvasFactory.destroy(e),delete this.cache[t]}}}function md(u,t,e,s,i,r,a,o,l,h){const[c,f,g,m,A,y]=dt(u);if(f===0&&g===0){const S=a*c+A,_=Math.round(S),E=o*m+y,C=Math.round(E),T=(a+l)*c+A,x=Math.abs(Math.round(T)-_)||1,P=(o+h)*m+y,M=Math.abs(Math.round(P)-C)||1;return u.setTransform(Math.sign(c),0,0,Math.sign(m),_,C),u.drawImage(t,e,s,i,r,0,0,x,M),u.setTransform(c,f,g,m,A,y),[x,M]}if(c===0&&m===0){const S=o*g+A,_=Math.round(S),E=a*f+y,C=Math.round(E),T=(o+h)*g+A,x=Math.abs(Math.round(T)-_)||1,P=(a+l)*f+y,M=Math.abs(Math.round(P)-C)||1;return u.setTransform(0,Math.sign(f),Math.sign(g),0,_,C),u.drawImage(t,e,s,i,r,0,0,M,x),u.setTransform(c,f,g,m,A,y),[M,x]}u.drawImage(t,e,s,i,r,a,o,l,h);const v=Math.hypot(c,f),w=Math.hypot(g,m);return[v*l,w*h]}class pm{constructor(t,e,s){k(this,"alphaIsShape",!1);k(this,"fontSize",0);k(this,"fontSizeScale",1);k(this,"textMatrix",null);k(this,"textMatrixScale",1);k(this,"fontMatrix",wp);k(this,"leading",0);k(this,"x",0);k(this,"y",0);k(this,"lineX",0);k(this,"lineY",0);k(this,"charSpacing",0);k(this,"wordSpacing",0);k(this,"textHScale",1);k(this,"textRenderingMode",Ot.FILL);k(this,"textRise",0);k(this,"fillColor","#000000");k(this,"strokeColor","#000000");k(this,"patternFill",!1);k(this,"patternStroke",!1);k(this,"fillAlpha",1);k(this,"strokeAlpha",1);k(this,"lineWidth",1);k(this,"activeSMask",null);k(this,"transferMaps","none");s==null||s(this),this.clipBox=new Float32Array([0,0,t,e]),this.minMax=ya.slice()}clone(){const t=Object.create(this);return t.clipBox=this.clipBox.slice(),t.minMax=this.minMax.slice(),t}getPathBoundingBox(t=Vt.FILL,e=null){const s=this.minMax.slice();if(t===Vt.STROKE){e||st("Stroke bounding box must include transform."),I.singularValueDecompose2dScale(e,Me);const i=Me[0]*this.lineWidth/2,r=Me[1]*this.lineWidth/2;s[0]-=i,s[1]-=r,s[2]+=i,s[3]+=r}return s}updateClipFromPath(){const t=I.intersect(this.clipBox,this.getPathBoundingBox());this.startNewPathAndClipBox(t||[0,0,0,0])}isEmptyClip(){return this.minMax[0]===1/0}startNewPathAndClipBox(t){this.clipBox.set(t,0),this.minMax.set(ya,0)}getClippedPathBoundingBox(t=Vt.FILL,e=null){return I.intersect(this.clipBox,this.getPathBoundingBox(t,e))}}function gm(u,t){if(t instanceof ImageData){u.putImageData(t,0,0);return}const e=t.height,s=t.width,i=e%ce,r=(e-i)/ce,a=i===0?r:r+1,o=u.createImageData(s,ce);let l=0,h;const c=t.data,f=o.data;let g,m,A,y;if(t.kind===wd.GRAYSCALE_1BPP){const v=c.byteLength,w=new Uint32Array(f.buffer,0,f.byteLength>>2),S=w.length,_=s+7>>3,E=4294967295,C=Wt.isLittleEndian?4278190080:255;for(g=0;g_?s:T*8-7,M=P&-8;let D=0,R=0;for(;x>=1}for(;h=r&&(A=i,y=s*A),h=0,m=y;m--;)f[h++]=c[l++],f[h++]=c[l++],f[h++]=c[l++],f[h++]=255;u.putImageData(o,0,g*ce)}else throw new Error(`bad image kind: ${t.kind}`)}function mm(u,t){if(t.bitmap){u.drawImage(t.bitmap,0,0);return}const e=t.height,s=t.width,i=e%ce,r=(e-i)/ce,a=i===0?r:r+1,o=u.createImageData(s,ce);let l=0;const h=t.data,c=o.data;for(let f=0;ffm&&typeof s=="function",f=c?Date.now()+xy:0;let g=0;const m=this.commonObjs,A=this.objs;let y,v;for(;;){if(i!==void 0&&l===i.nextBreakPoint)return i.breakIt(l,s),l;if(!r||r.has(l))if(y=o[l],v=a[l]??null,y!==Fl.dependency)v===null?this[y](l):this[y](l,...v);else for(const S of v){(w=this.dependencyTracker)==null||w.recordNamedData(S,l);const _=S.startsWith("g_")?m:A;if(!_.has(S))return _.get(S,s),l}if(l++,l===h)return l;if(c&&++g>fm){if(Date.now()>f)return s(),l;g=0}}}endDrawing(){b(this,Ph,Xp).call(this),this.cachedCanvases.clear(),this.cachedPatterns.clear();for(const t of this._cachedBitmapsMap.values()){for(const e of t.values())typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement&&(e.width=e.height=0);t.clear()}this._cachedBitmapsMap.clear(),b(this,Mh,qp).call(this)}_scaleImage(t,e){const s=t.width??t.displayWidth,i=t.height??t.displayHeight;let r=Math.max(Math.hypot(e[0],e[1]),1),a=Math.max(Math.hypot(e[2],e[3]),1),o=s,l=i,h="prescale1",c,f;for(;r>2&&o>1||a>2&&l>1;){let g=o,m=l;r>2&&o>1&&(g=o>=16384?Math.floor(o/2)-1||1:Math.ceil(o/2),r/=o/g),a>2&&l>1&&(m=l>=16384?Math.floor(l/2)-1||1:Math.ceil(l)/2,a/=l/m),c=this.cachedCanvases.getCanvas(h,g,m),f=c.context,f.clearRect(0,0,g,m),f.drawImage(t,0,0,o,l,0,0,g,m),t=c.canvas,o=g,l=m,h=h==="prescale1"?"prescale2":"prescale1"}return{img:t,paintWidth:o,paintHeight:l}}_createMaskCanvas(t,e){var D,R;const s=this.ctx,{width:i,height:r}=e,a=this.current.fillColor,o=this.current.patternFill,l=dt(s);let h,c,f,g;if((e.bitmap||e.data)&&e.count>1){const H=e.bitmap||e.data.buffer;c=JSON.stringify(o?l:[l.slice(0,4),a]),h=this._cachedBitmapsMap.get(H),h||(h=new Map,this._cachedBitmapsMap.set(H,h));const U=h.get(c);if(U&&!o){const W=Math.round(Math.min(l[0],l[2])+l[4]),Y=Math.round(Math.min(l[1],l[3])+l[5]);return(D=this.dependencyTracker)==null||D.recordDependencies(t,Le.transformAndFill),{canvas:U,offsetX:W,offsetY:Y}}f=U}f||(g=this.cachedCanvases.getCanvas("maskCanvas",i,r),mm(g.context,e));let m=I.transform(l,[1/i,0,0,-1/r,0,0]);m=I.transform(m,[1,0,0,1,0,-r]);const A=ya.slice();I.axialAlignedBoundingBox([0,0,i,r],m,A);const[y,v,w,S]=A,_=Math.round(w-y)||1,E=Math.round(S-v)||1,C=this.cachedCanvases.getCanvas("fillCanvas",_,E),T=C.context,x=y,P=v;T.translate(-x,-P),T.transform(...m),f||(f=this._scaleImage(g.canvas,os(T)),f=f.img,h&&o&&h.set(c,f)),T.imageSmoothingEnabled=bm(dt(T),e.interpolate),md(T,f,0,0,f.width,f.height,0,0,i,r),T.globalCompositeOperation="source-in";const M=I.transform(os(T),[1,0,0,1,-x,-P]);return T.fillStyle=o?a.getPattern(s,this,M,Vt.FILL):a,T.fillRect(0,0,i,r),h&&!o&&(this.cachedCanvases.delete("fillCanvas"),h.set(c,C.canvas)),(R=this.dependencyTracker)==null||R.recordDependencies(t,Le.transformAndFill),{canvas:C.canvas,offsetX:Math.round(x),offsetY:Math.round(P)}}setLineWidth(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("lineWidth",t),e!==this.current.lineWidth&&(this._cachedScaleForStroking[0]=-1),this.current.lineWidth=e,this.ctx.lineWidth=e}setLineCap(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("lineCap",t),this.ctx.lineCap=My[e]}setLineJoin(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("lineJoin",t),this.ctx.lineJoin=Ry[e]}setMiterLimit(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("miterLimit",t),this.ctx.miterLimit=e}setDash(t,e,s){var r;(r=this.dependencyTracker)==null||r.recordSimpleData("dash",t);const i=this.ctx;i.setLineDash!==void 0&&(i.setLineDash(e),i.lineDashOffset=s)}setRenderingIntent(t,e){}setFlatness(t,e){}setGState(t,e){var s,i,r,a,o;for(const[l,h]of e)switch(l){case"LW":this.setLineWidth(t,h);break;case"LC":this.setLineCap(t,h);break;case"LJ":this.setLineJoin(t,h);break;case"ML":this.setMiterLimit(t,h);break;case"D":this.setDash(t,h[0],h[1]);break;case"RI":this.setRenderingIntent(t,h);break;case"FL":this.setFlatness(t,h);break;case"Font":this.setFont(t,h[0],h[1]);break;case"CA":(s=this.dependencyTracker)==null||s.recordSimpleData("strokeAlpha",t),this.current.strokeAlpha=h;break;case"ca":(i=this.dependencyTracker)==null||i.recordSimpleData("fillAlpha",t),this.ctx.globalAlpha=this.current.fillAlpha=h;break;case"BM":(r=this.dependencyTracker)==null||r.recordSimpleData("globalCompositeOperation",t),this.ctx.globalCompositeOperation=h;break;case"SMask":(a=this.dependencyTracker)==null||a.recordSimpleData("SMask",t),this.current.activeSMask=h?this.tempSMask:null,this.tempSMask=null,this.checkSMaskState();break;case"TR":(o=this.dependencyTracker)==null||o.recordSimpleData("filter",t),this.ctx.filter=this.current.transferMaps=this.filterFactory.addFilter(h);break}}get inSMaskMode(){return!!this.suspendedCtx}checkSMaskState(){const t=this.inSMaskMode;this.current.activeSMask&&!t?this.beginSMaskMode():!this.current.activeSMask&&t&&this.endSMaskMode()}beginSMaskMode(t){if(this.inSMaskMode)throw new Error("beginSMaskMode called while already in smask mode");const e=this.ctx.canvas.width,s=this.ctx.canvas.height,i="smaskGroupAt"+this.groupLevel,r=this.cachedCanvases.getCanvas(i,e,s);this.suspendedCtx=this.ctx;const a=this.ctx=r.context;a.setTransform(this.suspendedCtx.getTransform()),dl(this.suspendedCtx,a),ky(a,this.suspendedCtx),this.setGState(t,[["BM","source-over"]])}endSMaskMode(){if(!this.inSMaskMode)throw new Error("endSMaskMode called while not in smask mode");this.ctx._removeMirroring(),dl(this.ctx,this.suspendedCtx),this.ctx=this.suspendedCtx,this.suspendedCtx=null}compose(t){if(!this.current.activeSMask)return;t?(t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.ceil(t[2]),t[3]=Math.ceil(t[3])):t=[0,0,this.ctx.canvas.width,this.ctx.canvas.height];const e=this.current.activeSMask,s=this.suspendedCtx;this.composeSMask(s,e,this.ctx,t),this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.ctx.canvas.width,this.ctx.canvas.height),this.ctx.restore()}composeSMask(t,e,s,i){const r=i[0],a=i[1],o=i[2]-r,l=i[3]-a;o===0||l===0||(this.genericComposeSMask(e.context,s,o,l,e.subtype,e.backdrop,e.transferMap,r,a,e.offsetX,e.offsetY),t.save(),t.globalAlpha=1,t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0),t.drawImage(s.canvas,0,0),t.restore())}genericComposeSMask(t,e,s,i,r,a,o,l,h,c,f){let g=t.canvas,m=l-c,A=h-f;if(a)if(m<0||A<0||m+s>g.width||A+i>g.height){const v=this.cachedCanvases.getCanvas("maskExtension",s,i),w=v.context;w.drawImage(g,-m,-A),w.globalCompositeOperation="destination-atop",w.fillStyle=a,w.fillRect(0,0,s,i),w.globalCompositeOperation="source-over",g=v.canvas,m=A=0}else{t.save(),t.globalAlpha=1,t.setTransform(1,0,0,1,0,0);const v=new Path2D;v.rect(m,A,s,i),t.clip(v),t.globalCompositeOperation="destination-atop",t.fillStyle=a,t.fillRect(m,A,s,i),t.restore()}e.save(),e.globalAlpha=1,e.setTransform(1,0,0,1,0,0),r==="Alpha"&&o?e.filter=this.filterFactory.addAlphaFilter(o):r==="Luminosity"&&(e.filter=this.filterFactory.addLuminosityFilter(o));const y=new Path2D;y.rect(l,h,s,i),e.clip(y),e.globalCompositeOperation="destination-in",e.drawImage(g,m,A,s,i,l,h,s,i),e.restore()}save(t){var s;this.inSMaskMode&&dl(this.ctx,this.suspendedCtx),this.ctx.save();const e=this.current;this.stateStack.push(e),this.current=e.clone(),(s=this.dependencyTracker)==null||s.save(t)}restore(t){var e;if((e=this.dependencyTracker)==null||e.restore(t),this.stateStack.length===0){this.inSMaskMode&&this.endSMaskMode();return}this.current=this.stateStack.pop(),this.ctx.restore(),this.inSMaskMode&&dl(this.suspendedCtx,this.ctx),this.checkSMaskState(),this.pendingClip=null,this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}transform(t,e,s,i,r,a,o){var l;(l=this.dependencyTracker)==null||l.recordIncrementalData("transform",t),this.ctx.transform(e,s,i,r,a,o),this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null}constructPath(t,e,s,i){let[r]=s;if(!i){r||(r=s[0]=new Path2D),this[e](t,r);return}if(this.dependencyTracker!==null){const a=e===Fl.stroke?this.current.lineWidth/2:0;this.dependencyTracker.resetBBox(t).recordBBox(t,this.ctx,i[0]-a,i[2]+a,i[1]-a,i[3]+a).recordDependencies(t,["transform"])}if(!(r instanceof Path2D)){const a=s[0]=new Path2D;for(let o=0,l=r.length;oum&&(c=um),this.current.fontSizeScale=s/c,this.ctx.font=`${h} ${l} ${c}px ${o}`}setTextRenderingMode(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("textRenderingMode",t),this.current.textRenderingMode=e}setTextRise(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("textRise",t),this.current.textRise=e}moveText(t,e,s){var i;(i=this.dependencyTracker)==null||i.resetIncrementalData("sameLineText").recordIncrementalData("moveText",t),this.current.x=this.current.lineX+=e,this.current.y=this.current.lineY+=s}setLeadingMoveText(t,e,s){this.setLeading(t,-s),this.moveText(t,e,s)}setTextMatrix(t,e){var i;(i=this.dependencyTracker)==null||i.recordSimpleData("textMatrix",t);const{current:s}=this;s.textMatrix=e,s.textMatrixScale=Math.hypot(e[0],e[1]),s.x=s.lineX=0,s.y=s.lineY=0}nextLine(t){var e;this.moveText(t,0,this.current.leading),(e=this.dependencyTracker)==null||e.recordIncrementalData("moveText",this.dependencyTracker.getSimpleIndex("leading")??t)}paintChar(t,e,s,i,r,a){var w,S,_,E;const o=this.ctx,l=this.current,h=l.font,c=l.textRenderingMode,f=l.fontSize/l.fontSizeScale,g=c&Ot.FILL_STROKE_MASK,m=!!(c&Ot.ADD_TO_PATH_FLAG),A=l.patternFill&&!h.missingFile,y=l.patternStroke&&!h.missingFile;let v;if((h.disableFontFace||m||A||y)&&!h.missingFile&&(v=h.getPathGenerator(this.commonObjs,e)),v&&(h.disableFontFace||A||y)){o.save(),o.translate(s,i),o.scale(f,-f),(w=this.dependencyTracker)==null||w.recordCharacterBBox(t,o,h);let C;if(g===Ot.FILL||g===Ot.FILL_STROKE)if(r){C=o.getTransform(),o.setTransform(...r);const T=b(this,Rh,Yp).call(this,v,C,r);o.fill(T)}else o.fill(v);if(g===Ot.STROKE||g===Ot.FILL_STROKE)if(a){C||(C=o.getTransform()),o.setTransform(...a);const{a:T,b:x,c:P,d:M}=C,D=I.inverseTransform(a),R=I.transform([T,x,P,M,0,0],D);I.singularValueDecompose2dScale(R,Me),o.lineWidth*=Math.max(Me[0],Me[1])/f,o.stroke(b(this,Rh,Yp).call(this,v,C,a))}else o.lineWidth/=f,o.stroke(v);o.restore()}else(g===Ot.FILL||g===Ot.FILL_STROKE)&&(o.fillText(e,s,i),(S=this.dependencyTracker)==null||S.recordCharacterBBox(t,o,h,f,s,i,()=>o.measureText(e))),(g===Ot.STROKE||g===Ot.FILL_STROKE)&&(this.dependencyTracker&&((_=this.dependencyTracker)==null||_.recordCharacterBBox(t,o,h,f,s,i,()=>o.measureText(e)).recordDependencies(t,Le.stroke)),o.strokeText(e,s,i));m&&((this.pendingTextPaths||(this.pendingTextPaths=[])).push({transform:dt(o),x:s,y:i,fontSize:f,path:v}),(E=this.dependencyTracker)==null||E.recordCharacterBBox(t,o,h,f,s,i))}get isFontSubpixelAAEnabled(){const{context:t}=this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled",10,10);t.scale(1.5,1),t.fillText("I",0,10);const e=t.getImageData(0,0,10,10).data;let s=!1;for(let i=3;i0&&e[i]<255){s=!0;break}return V(this,"isFontSubpixelAAEnabled",s)}showText(t,e){var P,M,D,R;this.dependencyTracker&&(this.dependencyTracker.recordDependencies(t,Le.showText).copyDependenciesFromIncrementalOperation(t,"sameLineText").resetBBox(t),this.current.textRenderingMode&Ot.ADD_TO_PATH_FLAG&&this.dependencyTracker.recordFutureForcedDependency("textClip",t).inheritPendingDependenciesAsFutureForcedDependencies());const s=this.current,i=s.font;if(i.isType3Font){this.showType3Text(t,e),(P=this.dependencyTracker)==null||P.recordOperation(t).recordIncrementalData("sameLineText",t);return}const r=s.fontSize;if(r===0){(M=this.dependencyTracker)==null||M.recordOperation(t);return}const a=this.ctx,o=s.fontSizeScale,l=s.charSpacing,h=s.wordSpacing,c=s.fontDirection,f=s.textHScale*c,g=e.length,m=i.vertical,A=m?1:-1,y=i.defaultVMetrics,v=r*s.fontMatrix[0],w=s.textRenderingMode===Ot.FILL&&!i.disableFontFace&&!s.patternFill;a.save(),s.textMatrix&&a.transform(...s.textMatrix),a.translate(s.x,s.y+s.textRise),c>0?a.scale(f,-1):a.scale(f,1);let S,_;if(s.patternFill){a.save();const H=s.fillColor.getPattern(a,this,os(a),Vt.FILL);S=dt(a),a.restore(),a.fillStyle=H}if(s.patternStroke){a.save();const H=s.strokeColor.getPattern(a,this,os(a),Vt.STROKE);_=dt(a),a.restore(),a.strokeStyle=H}let E=s.lineWidth;const C=s.textMatrixScale;if(C===0||E===0){const H=s.textRenderingMode&Ot.FILL_STROKE_MASK;(H===Ot.STROKE||H===Ot.FILL_STROKE)&&(E=this.getSinglePixelWidth())}else E/=C;if(o!==1&&(a.scale(o,o),E/=o),a.lineWidth=E,i.isInvalidPDFjsFont){const H=[];let U=0;for(const Y of e)H.push(Y.unicode),U+=Y.width;const W=H.join("");if(a.fillText(W,0,0),this.dependencyTracker!==null){const Y=a.measureText(W);this.dependencyTracker.recordBBox(t,this.ctx,-Y.actualBoundingBoxLeft,Y.actualBoundingBoxRight,-Y.actualBoundingBoxAscent,Y.actualBoundingBoxDescent).recordOperation(t).recordIncrementalData("sameLineText",t)}s.x+=U*v*f,a.restore(),this.compose();return}let T=0,x;for(x=0;x0){Re=a.measureText(Y);const it=Re.width*1e3/r*o;if(AtRe??a.measureText(Y));else if(this.paintChar(t,Y,N,Pt,S,_),B){const it=N+r*B.offset.x/o,Z=Pt-r*B.offset.y/o;this.paintChar(t,B.fontChar,it,Z,S,_)}}const as=m?At*v-W*c:At*v+W*c;T+=as,U&&a.restore()}m?s.y-=T:s.x+=T*f,a.restore(),this.compose(),(R=this.dependencyTracker)==null||R.recordOperation(t).recordIncrementalData("sameLineText",t)}showType3Text(t,e){const s=this.ctx,i=this.current,r=i.font,a=i.fontSize,o=i.fontDirection,l=r.vertical?1:-1,h=i.charSpacing,c=i.wordSpacing,f=i.textHScale*o,g=i.fontMatrix||wp,m=e.length,A=i.textRenderingMode===Ot.INVISIBLE;let y,v,w,S;if(A||a===0)return;this._cachedScaleForStroking[0]=-1,this._cachedGetSinglePixelWidth=null,s.save(),i.textMatrix&&s.transform(...i.textMatrix),s.translate(i.x,i.y+i.textRise),s.scale(f,o);const _=this.dependencyTracker;for(this.dependencyTracker=_?new tu(_,t):null,y=0;ynew Jg(a,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:this.optionalContentConfig,markedContentStack:this.markedContentStack},void 0,void 0,this.dependencyTracker?new tu(this.dependencyTracker,t):null)};s=new Wp(e,this.ctx,r,i)}else s=this._getPattern(t,e[1],e[2]);return s}setStrokeColorN(t,...e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("strokeColor",t),this.current.strokeColor=this.getColorN_Pattern(t,e),this.current.patternStroke=!0}setFillColorN(t,...e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("fillColor",t),this.current.fillColor=this.getColorN_Pattern(t,e),this.current.patternFill=!0}setStrokeRGBColor(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("strokeColor",t),this.ctx.strokeStyle=this.current.strokeColor=e,this.current.patternStroke=!1}setStrokeTransparent(t){var e;(e=this.dependencyTracker)==null||e.recordSimpleData("strokeColor",t),this.ctx.strokeStyle=this.current.strokeColor="transparent",this.current.patternStroke=!1}setFillRGBColor(t,e){var s;(s=this.dependencyTracker)==null||s.recordSimpleData("fillColor",t),this.ctx.fillStyle=this.current.fillColor=e,this.current.patternFill=!1}setFillTransparent(t){var e;(e=this.dependencyTracker)==null||e.recordSimpleData("fillColor",t),this.ctx.fillStyle=this.current.fillColor="transparent",this.current.patternFill=!1}_getPattern(t,e,s=null){let i;return this.cachedPatterns.has(e)?i=this.cachedPatterns.get(e):(i=Cy(this.getObject(t,e)),this.cachedPatterns.set(e,i)),s&&(i.matrix=s),i}shadingFill(t,e){var a;if(!this.contentVisible)return;const s=this.ctx;this.save(t);const i=this._getPattern(t,e);s.fillStyle=i.getPattern(s,this,os(s),Vt.SHADING);const r=os(s);if(r){const{width:o,height:l}=s.canvas,h=ya.slice();I.axialAlignedBoundingBox([0,0,o,l],r,h);const[c,f,g,m]=h;this.ctx.fillRect(c,f,g-c,m-f)}else this.ctx.fillRect(-1e10,-1e10,2e10,2e10);(a=this.dependencyTracker)==null||a.resetBBox(t).recordFullPageBBox(t).recordDependencies(t,Le.transform).recordDependencies(t,Le.fill).recordOperation(t),this.compose(this.current.getClippedPathBoundingBox()),this.restore(t)}beginInlineImage(){st("Should not call beginInlineImage")}beginImageData(){st("Should not call beginImageData")}paintFormXObjectBegin(t,e,s){var i;if(this.contentVisible&&(this.save(t),this.baseTransformStack.push(this.baseTransform),e&&this.transform(t,...e),this.baseTransform=dt(this.ctx),s)){I.axialAlignedBoundingBox(s,this.baseTransform,this.current.minMax);const[r,a,o,l]=s,h=new Path2D;h.rect(r,a,o-r,l-a),this.ctx.clip(h),(i=this.dependencyTracker)==null||i.recordClipBox(t,this.ctx,r,o,a,l),this.endPath(t)}}paintFormXObjectEnd(t){this.contentVisible&&(this.restore(t),this.baseTransform=this.baseTransformStack.pop())}beginGroup(t,e){var _;if(!this.contentVisible)return;this.save(t),this.inSMaskMode&&(this.endSMaskMode(),this.current.activeSMask=null);const s=this.ctx;e.isolated||ip("TODO: Support non-isolated groups."),e.knockout&&z("Knockout groups not supported.");const i=dt(s);if(e.matrix&&s.transform(...e.matrix),!e.bbox)throw new Error("Bounding box is required.");let r=ya.slice();I.axialAlignedBoundingBox(e.bbox,dt(s),r);const a=[0,0,s.canvas.width,s.canvas.height];r=I.intersect(r,a)||[0,0,0,0];const o=Math.floor(r[0]),l=Math.floor(r[1]),h=Math.max(Math.ceil(r[2])-o,1),c=Math.max(Math.ceil(r[3])-l,1);this.current.startNewPathAndClipBox([0,0,h,c]);let f="groupAt"+this.groupLevel;e.smask&&(f+="_smask_"+this.smaskCounter++%2);const g=this.cachedCanvases.getCanvas(f,h,c),m=g.context;m.translate(-o,-l),m.transform(...i);let A=new Path2D;const[y,v,w,S]=e.bbox;if(A.rect(y,v,w-y,S-v),e.matrix){const E=new Path2D;E.addPath(A,new DOMMatrix(e.matrix)),A=E}m.clip(A),e.smask&&this.smaskStack.push({canvas:g.canvas,context:m,offsetX:o,offsetY:l,subtype:e.smask.subtype,backdrop:e.smask.backdrop,transferMap:e.smask.transferMap||null,startTransformInverse:null}),(!e.smask||this.dependencyTracker)&&(s.setTransform(1,0,0,1,0,0),s.translate(o,l),s.save()),dl(s,m),this.ctx=m,(_=this.dependencyTracker)==null||_.inheritSimpleDataAsFutureForcedDependencies(["fillAlpha","strokeAlpha","globalCompositeOperation"]).pushBaseTransform(s),this.setGState(t,[["BM","source-over"],["ca",1],["CA",1]]),this.groupStack.push(s),this.groupLevel++}endGroup(t,e){var r;if(!this.contentVisible)return;this.groupLevel--;const s=this.ctx,i=this.groupStack.pop();if(this.ctx=i,this.ctx.imageSmoothingEnabled=!1,(r=this.dependencyTracker)==null||r.popBaseTransform(),e.smask)this.tempSMask=this.smaskStack.pop(),this.restore(t),this.dependencyTracker&&this.ctx.restore();else{this.ctx.restore();const a=dt(this.ctx);this.restore(t),this.ctx.save(),this.ctx.setTransform(...a);const o=ya.slice();I.axialAlignedBoundingBox([0,0,s.canvas.width,s.canvas.height],a,o),this.ctx.drawImage(s.canvas,0,0),this.ctx.restore(),this.compose(o)}}beginAnnotation(t,e,s,i,r,a){if(b(this,Ph,Xp).call(this),bd(this.ctx),this.ctx.save(),this.save(t),this.baseTransform&&this.ctx.setTransform(...this.baseTransform),s){const o=s[2]-s[0],l=s[3]-s[1];if(a&&this.annotationCanvasMap){i=i.slice(),i[4]-=s[0],i[5]-=s[1],s=s.slice(),s[0]=s[1]=0,s[2]=o,s[3]=l,I.singularValueDecompose2dScale(dt(this.ctx),Me);const{viewportScale:h}=this,c=Math.ceil(o*this.outputScaleX*h),f=Math.ceil(l*this.outputScaleY*h);this.annotationCanvas=this.canvasFactory.create(c,f);const{canvas:g,context:m}=this.annotationCanvas;this.annotationCanvasMap.set(e,g),this.annotationCanvas.savedCtx=this.ctx,this.ctx=m,this.ctx.save(),this.ctx.setTransform(Me[0],0,0,-Me[1],0,l*Me[1]),bd(this.ctx)}else{bd(this.ctx),this.endPath(t);const h=new Path2D;h.rect(s[0],s[1],o,l),this.ctx.clip(h)}}this.current=new pm(this.ctx.canvas.width,this.ctx.canvas.height),this.transform(t,...i),this.transform(t,...r)}endAnnotation(t){this.annotationCanvas&&(this.ctx.restore(),b(this,Mh,qp).call(this),this.ctx=this.annotationCanvas.savedCtx,delete this.annotationCanvas.savedCtx,delete this.annotationCanvas)}paintImageMaskXObject(t,e){var o;if(!this.contentVisible)return;const s=e.count;e=this.getObject(t,e.data,e),e.count=s;const i=this.ctx,r=this._createMaskCanvas(t,e),a=r.canvas;i.save(),i.setTransform(1,0,0,1,0,0),i.drawImage(a,r.offsetX,r.offsetY),(o=this.dependencyTracker)==null||o.resetBBox(t).recordBBox(t,this.ctx,r.offsetX,r.offsetX+a.width,r.offsetY,r.offsetY+a.height).recordOperation(t),i.restore(),this.compose()}paintImageMaskXObjectRepeat(t,e,s,i=0,r=0,a,o){var f,g,m;if(!this.contentVisible)return;e=this.getObject(t,e.data,e);const l=this.ctx;l.save();const h=dt(l);l.transform(s,i,r,a,0,0);const c=this._createMaskCanvas(t,e);l.setTransform(1,0,0,1,c.offsetX-h[4],c.offsetY-h[5]),(f=this.dependencyTracker)==null||f.resetBBox(t);for(let A=0,y=o.length;Af?c/f:1,o=h>f?h/f:1}}this._cachedScaleForStroking[0]=a,this._cachedScaleForStroking[1]=o}return this._cachedScaleForStroking}rescaleAndStroke(t,e){const{ctx:s,current:{lineWidth:i}}=this,[r,a]=this.getScaleForStroking();if(r===a){s.lineWidth=(i||1)*r,s.stroke(t);return}const o=s.getLineDash();e&&s.save(),s.scale(r,a),bp.a=1/r,bp.d=1/a;const l=new Path2D;if(l.addPath(t,bp),o.length>0){const h=Math.max(r,a);s.setLineDash(o.map(c=>c/h)),s.lineDashOffset/=h}s.lineWidth=i||1,s.stroke(l),e&&s.restore()}isContentVisible(){for(let t=this.markedContentStack.length-1;t>=0;t--)if(!this.markedContentStack[t].visible)return!1;return!0}};Ph=new WeakSet,Xp=function(){for(;this.stateStack.length||this.inSMaskMode;)this.restore();this.current.activeSMask=null,this.ctx.restore(),this.transparentCanvas&&(this.ctx=this.compositeCtx,this.ctx.save(),this.ctx.setTransform(1,0,0,1,0,0),this.ctx.drawImage(this.transparentCanvas,0,0),this.ctx.restore(),this.transparentCanvas=null)},Mh=new WeakSet,qp=function(){if(this.pageColors){const t=this.filterFactory.addHCMFilter(this.pageColors.foreground,this.pageColors.background);if(t!=="none"){const e=this.ctx.filter;this.ctx.filter=t,this.ctx.drawImage(this.ctx.canvas,0,0),this.ctx.filter=e}}},Rh=new WeakSet,Yp=function(t,e,s){const i=new Path2D;return i.addPath(t,new DOMMatrix(s).invertSelf().multiplySelf(e)),i};let _a=Jg;for(const u in Fl)_a.prototype[u]!==void 0&&(_a.prototype[Fl[u]]=_a.prototype[u]);var Dh,Lh;class Ti{static get workerPort(){return n(this,Dh)}static set workerPort(t){if(!(typeof Worker<"u"&&t instanceof Worker)&&t!==null)throw new Error("Invalid `workerPort` type.");p(this,Dh,t)}static get workerSrc(){return n(this,Lh)}static set workerSrc(t){if(typeof t!="string")throw new Error("Invalid `workerSrc` type.");p(this,Lh,t)}}Dh=new WeakMap,Lh=new WeakMap,d(Ti,Dh,null),d(Ti,Lh,"");var ro,Ih;class Ly{constructor({parsedData:t,rawData:e}){d(this,ro,void 0);d(this,Ih,void 0);p(this,ro,t),p(this,Ih,e)}getRaw(){return n(this,Ih)}get(t){return n(this,ro).get(t)??null}[Symbol.iterator](){return n(this,ro).entries()}}ro=new WeakMap,Ih=new WeakMap;const ma=Symbol("INTERNAL");var Fh,Nh,Oh,ao;class Iy{constructor(t,{name:e,intent:s,usage:i,rbGroups:r}){d(this,Fh,!1);d(this,Nh,!1);d(this,Oh,!1);d(this,ao,!0);p(this,Fh,!!(t&Pe.DISPLAY)),p(this,Nh,!!(t&Pe.PRINT)),this.name=e,this.intent=s,this.usage=i,this.rbGroups=r}get visible(){if(n(this,Oh))return n(this,ao);if(!n(this,ao))return!1;const{print:t,view:e}=this.usage;return n(this,Fh)?(e==null?void 0:e.viewState)!=="OFF":n(this,Nh)?(t==null?void 0:t.printState)!=="OFF":!0}_setVisible(t,e,s=!1){t!==ma&&st("Internal method `_setVisible` called."),p(this,Oh,s),p(this,ao,e)}}Fh=new WeakMap,Nh=new WeakMap,Oh=new WeakMap,ao=new WeakMap;var tn,et,oo,lo,Bh,Kp;class Fy{constructor(t,e=Pe.DISPLAY){d(this,Bh);d(this,tn,null);d(this,et,new Map);d(this,oo,null);d(this,lo,null);if(this.renderingIntent=e,this.name=null,this.creator=null,t!==null){this.name=t.name,this.creator=t.creator,p(this,lo,t.order);for(const s of t.groups)n(this,et).set(s.id,new Iy(e,s));if(t.baseState==="OFF")for(const s of n(this,et).values())s._setVisible(ma,!1);for(const s of t.on)n(this,et).get(s)._setVisible(ma,!0);for(const s of t.off)n(this,et).get(s)._setVisible(ma,!1);p(this,oo,this.getHash())}}isVisible(t){if(n(this,et).size===0)return!0;if(!t)return ip("Optional content group not defined."),!0;if(t.type==="OCG")return n(this,et).has(t.id)?n(this,et).get(t.id).visible:(z(`Optional content group not found: ${t.id}`),!0);if(t.type==="OCMD"){if(t.expression)return b(this,Bh,Kp).call(this,t.expression);if(!t.policy||t.policy==="AnyOn"){for(const e of t.ids){if(!n(this,et).has(e))return z(`Optional content group not found: ${e}`),!0;if(n(this,et).get(e).visible)return!0}return!1}else if(t.policy==="AllOn"){for(const e of t.ids){if(!n(this,et).has(e))return z(`Optional content group not found: ${e}`),!0;if(!n(this,et).get(e).visible)return!1}return!0}else if(t.policy==="AnyOff"){for(const e of t.ids){if(!n(this,et).has(e))return z(`Optional content group not found: ${e}`),!0;if(!n(this,et).get(e).visible)return!0}return!1}else if(t.policy==="AllOff"){for(const e of t.ids){if(!n(this,et).has(e))return z(`Optional content group not found: ${e}`),!0;if(n(this,et).get(e).visible)return!1}return!0}return z(`Unknown optional content policy ${t.policy}.`),!0}return z(`Unknown group type ${t.type}.`),!0}setVisibility(t,e=!0,s=!0){var r;const i=n(this,et).get(t);if(!i){z(`Optional content group not found: ${t}`);return}if(s&&e&&i.rbGroups.length)for(const a of i.rbGroups)for(const o of a)o!==t&&((r=n(this,et).get(o))==null||r._setVisible(ma,!1,!0));i._setVisible(ma,!!e,!0),p(this,tn,null)}setOCGState({state:t,preserveRB:e}){let s;for(const i of t){switch(i){case"ON":case"OFF":case"Toggle":s=i;continue}const r=n(this,et).get(i);if(r)switch(s){case"ON":this.setVisibility(i,!0,e);break;case"OFF":this.setVisibility(i,!1,e);break;case"Toggle":this.setVisibility(i,!r.visible,e);break}}p(this,tn,null)}get hasInitialVisibility(){return n(this,oo)===null||this.getHash()===n(this,oo)}getOrder(){return n(this,et).size?n(this,lo)?n(this,lo).slice():[...n(this,et).keys()]:null}getGroup(t){return n(this,et).get(t)||null}getHash(){if(n(this,tn)!==null)return n(this,tn);const t=new rb;for(const[e,s]of n(this,et))t.update(`${e}:${s.visible}`);return p(this,tn,t.hexdigest())}[Symbol.iterator](){return n(this,et).entries()}}tn=new WeakMap,et=new WeakMap,oo=new WeakMap,lo=new WeakMap,Bh=new WeakSet,Kp=function(t){const e=t.length;if(e<2)return!0;const s=t[0];for(let i=1;i0){const l=r instanceof Uint8Array&&r.byteLength===r.buffer.byteLength?r.buffer:new Uint8Array(r).buffer;this._queuedChunks.push(l)}this._pdfDataRangeTransport=t,this._isStreamingSupported=!s,this._isRangeSupported=!e,this._contentLength=i,this._fullRequestReader=null,this._rangeReaders=[],t.addRangeListener((l,h)=>{this._onReceiveData({begin:l,chunk:h})}),t.addProgressListener((l,h)=>{this._onProgress({loaded:l,total:h})}),t.addProgressiveReadListener(l=>{this._onReceiveData({chunk:l})}),t.addProgressiveDoneListener(()=>{this._onProgressiveDone()}),t.transportReady()}_onReceiveData({begin:t,chunk:e}){const s=e instanceof Uint8Array&&e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer;if(t===void 0)this._fullRequestReader?this._fullRequestReader._enqueue(s):this._queuedChunks.push(s);else{const i=this._rangeReaders.some(function(r){return r._begin!==t?!1:(r._enqueue(s),!0)});_t(i,"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.")}}get _progressiveDataLength(){var t;return((t=this._fullRequestReader)==null?void 0:t._loaded)??0}_onProgress(t){var e,s,i,r;t.total===void 0?(s=(e=this._rangeReaders[0])==null?void 0:e.onProgress)==null||s.call(e,{loaded:t.loaded}):(r=(i=this._fullRequestReader)==null?void 0:i.onProgress)==null||r.call(i,{loaded:t.loaded,total:t.total})}_onProgressiveDone(){var t;(t=this._fullRequestReader)==null||t.progressiveDone(),this._progressiveDone=!0}_removeRangeReader(t){const e=this._rangeReaders.indexOf(t);e>=0&&this._rangeReaders.splice(e,1)}getFullReader(){_t(!this._fullRequestReader,"PDFDataTransportStream.getFullReader can only be called once.");const t=this._queuedChunks;return this._queuedChunks=null,new Oy(this,t,this._progressiveDone,this._contentDispositionFilename)}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=new By(this,t,e);return this._pdfDataRangeTransport.requestDataRange(t,e),this._rangeReaders.push(s),s}cancelAllRequests(t){var e;(e=this._fullRequestReader)==null||e.cancel(t);for(const s of this._rangeReaders.slice(0))s.cancel(t);this._pdfDataRangeTransport.abort()}}class Oy{constructor(t,e,s=!1,i=null){this._stream=t,this._done=s||!1,this._filename=zg(i)?i:null,this._queuedChunks=e||[],this._loaded=0;for(const r of this._queuedChunks)this._loaded+=r.byteLength;this._requests=[],this._headersReady=Promise.resolve(),t._fullRequestReader=this,this.onProgress=null}_enqueue(t){this._done||(this._requests.length>0?this._requests.shift().resolve({value:t,done:!1}):this._queuedChunks.push(t),this._loaded+=t.byteLength)}get headersReady(){return this._headersReady}get filename(){return this._filename}get isRangeSupported(){return this._stream._isRangeSupported}get isStreamingSupported(){return this._stream._isStreamingSupported}get contentLength(){return this._stream._contentLength}async read(){if(this._queuedChunks.length>0)return{value:this._queuedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0;for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}progressiveDone(){this._done||(this._done=!0)}}class By{constructor(t,e,s){this._stream=t,this._begin=e,this._end=s,this._queuedChunk=null,this._requests=[],this._done=!1,this.onProgress=null}_enqueue(t){if(!this._done){if(this._requests.length===0)this._queuedChunk=t;else{this._requests.shift().resolve({value:t,done:!1});for(const s of this._requests)s.resolve({value:void 0,done:!0});this._requests.length=0}this._done=!0,this._stream._removeRangeReader(this)}}get isStreamingSupported(){return!1}async read(){if(this._queuedChunk){const e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0;for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0,this._stream._removeRangeReader(this)}}function Hy(u){let t=!0,e=s("filename\\*","i").exec(u);if(e){e=e[1];let c=o(e);return c=unescape(c),c=l(c),c=h(c),r(c)}if(e=a(u),e){const c=h(e);return r(c)}if(e=s("filename","i").exec(u),e){e=e[1];let c=o(e);return c=h(c),r(c)}function s(c,f){return new RegExp("(?:^|;)\\s*"+c+'\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',f)}function i(c,f){if(c){if(!/^[\x00-\xFF]+$/.test(f))return f;try{const g=new TextDecoder(c,{fatal:!0}),m=ad(f);f=g.decode(m),t=!1}catch{}}return f}function r(c){return t&&/[\x80-\xff]/.test(c)&&(c=i("utf-8",c),t&&(c=i("iso-8859-1",c))),c}function a(c){const f=[];let g;const m=s("filename\\*((?!0\\d)\\d+)(\\*?)","ig");for(;(g=m.exec(c))!==null;){let[,y,v,w]=g;if(y=parseInt(y,10),y in f){if(y===0)break;continue}f[y]=[v,w]}const A=[];for(let y=0;y{if(t._responseOrigin=ap(r.url),!wb(r.status))throw cd(r.status,i);this._reader=r.body.getReader(),this._headersCapability.resolve();const a=r.headers,{allowRangeRequests:o,suggestedLength:l}=Ab({responseHeaders:a,isHttp:t.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});this._isRangeSupported=o,this._contentLength=l||this._contentLength,this._filename=yb(a),!this._isStreamingSupported&&this._isRangeSupported&&this.cancel(new kn("Streaming is disabled."))}).catch(this._headersCapability.reject),this.onProgress=null}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;await this._headersCapability.promise;const{value:t,done:e}=await this._reader.read();return e?{value:t,done:e}:(this._loaded+=t.byteLength,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded,total:this._contentLength}),{value:_b(t),done:!1})}cancel(t){var e;(e=this._reader)==null||e.cancel(t),this._abortController.abort()}}class Gy{constructor(t,e,s){this._stream=t,this._reader=null,this._loaded=0;const i=t.source;this._withCredentials=i.withCredentials||!1,this._readCapability=Promise.withResolvers(),this._isStreamingSupported=!i.disableStream,this._abortController=new AbortController;const r=new Headers(t.headers);r.append("Range",`bytes=${e}-${s-1}`);const a=i.url;fetch(a,vb(r,this._withCredentials,this._abortController)).then(o=>{const l=ap(o.url);if(l!==t._responseOrigin)throw new Error(`Expected range response-origin "${l}" to match "${t._responseOrigin}".`);if(!wb(o.status))throw cd(o.status,a);this._readCapability.resolve(),this._reader=o.body.getReader()}).catch(this._readCapability.reject),this.onProgress=null}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;await this._readCapability.promise;const{value:t,done:e}=await this._reader.read();return e?{value:t,done:e}:(this._loaded+=t.byteLength,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded}),{value:_b(t),done:!1})}cancel(t){var e;(e=this._reader)==null||e.cancel(t),this._abortController.abort()}}const Ap=200,yp=206;function Uy(u){const t=u.response;return typeof t!="string"?t:ad(t).buffer}class jy{constructor({url:t,httpHeaders:e,withCredentials:s}){k(this,"_responseOrigin",null);this.url=t,this.isHttp=/^https?:/i.test(t),this.headers=bb(this.isHttp,e),this.withCredentials=s||!1,this.currXhrId=0,this.pendingRequests=Object.create(null)}request(t){const e=new XMLHttpRequest,s=this.currXhrId++,i=this.pendingRequests[s]={xhr:e};e.open("GET",this.url),e.withCredentials=this.withCredentials;for(const[r,a]of this.headers)e.setRequestHeader(r,a);return this.isHttp&&"begin"in t&&"end"in t?(e.setRequestHeader("Range",`bytes=${t.begin}-${t.end-1}`),i.expectedStatus=yp):i.expectedStatus=Ap,e.responseType="arraybuffer",_t(t.onError,"Expected `onError` callback to be provided."),e.onerror=()=>{t.onError(e.status)},e.onreadystatechange=this.onStateChange.bind(this,s),e.onprogress=this.onProgress.bind(this,s),i.onHeadersReceived=t.onHeadersReceived,i.onDone=t.onDone,i.onError=t.onError,i.onProgress=t.onProgress,e.send(null),s}onProgress(t,e){var i;const s=this.pendingRequests[t];s&&((i=s.onProgress)==null||i.call(s,e))}onStateChange(t,e){const s=this.pendingRequests[t];if(!s)return;const i=s.xhr;if(i.readyState>=2&&s.onHeadersReceived&&(s.onHeadersReceived(),delete s.onHeadersReceived),i.readyState!==4||!(t in this.pendingRequests))return;if(delete this.pendingRequests[t],i.status===0&&this.isHttp){s.onError(i.status);return}const r=i.status||Ap;if(!(r===Ap&&s.expectedStatus===yp)&&r!==s.expectedStatus){s.onError(i.status);return}const o=Uy(i);if(r===yp){const l=i.getResponseHeader("Content-Range"),h=/bytes (\d+)-(\d+)\/(\d+)/.exec(l);h?s.onDone({begin:parseInt(h[1],10),chunk:o}):(z('Missing or invalid "Content-Range" header.'),s.onError(0))}else o?s.onDone({begin:0,chunk:o}):s.onError(i.status)}getRequestXhr(t){return this.pendingRequests[t].xhr}isPendingRequest(t){return t in this.pendingRequests}abortRequest(t){const e=this.pendingRequests[t].xhr;delete this.pendingRequests[t],e.abort()}}class Vy{constructor(t){this._source=t,this._manager=new jy(t),this._rangeChunkSize=t.rangeChunkSize,this._fullRequestReader=null,this._rangeRequestReaders=[]}_onRangeRequestReaderClosed(t){const e=this._rangeRequestReaders.indexOf(t);e>=0&&this._rangeRequestReaders.splice(e,1)}getFullReader(){return _t(!this._fullRequestReader,"PDFNetworkStream.getFullReader can only be called once."),this._fullRequestReader=new Wy(this._manager,this._source),this._fullRequestReader}getRangeReader(t,e){const s=new Xy(this._manager,t,e);return s.onClosed=this._onRangeRequestReaderClosed.bind(this),this._rangeRequestReaders.push(s),s}cancelAllRequests(t){var e;(e=this._fullRequestReader)==null||e.cancel(t);for(const s of this._rangeRequestReaders.slice(0))s.cancel(t)}}class Wy{constructor(t,e){this._manager=t,this._url=e.url,this._fullRequestId=t.request({onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._headersCapability=Promise.withResolvers(),this._disableRange=e.disableRange||!1,this._contentLength=e.length,this._rangeChunkSize=e.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!1,this._isRangeSupported=!1,this._cachedChunks=[],this._requests=[],this._done=!1,this._storedError=void 0,this._filename=null,this.onProgress=null}_onHeadersReceived(){const t=this._fullRequestId,e=this._manager.getRequestXhr(t);this._manager._responseOrigin=ap(e.responseURL);const s=e.getAllResponseHeaders(),i=new Headers(s?s.trimStart().replace(/[^\S ]+$/,"").split(/[\r\n]+/).map(o=>{const[l,...h]=o.split(": ");return[l,h.join(": ")]}):[]),{allowRangeRequests:r,suggestedLength:a}=Ab({responseHeaders:i,isHttp:this._manager.isHttp,rangeChunkSize:this._rangeChunkSize,disableRange:this._disableRange});r&&(this._isRangeSupported=!0),this._contentLength=a||this._contentLength,this._filename=yb(i),this._isRangeSupported&&this._manager.abortRequest(t),this._headersCapability.resolve()}_onDone(t){if(t&&(this._requests.length>0?this._requests.shift().resolve({value:t.chunk,done:!1}):this._cachedChunks.push(t.chunk)),this._done=!0,!(this._cachedChunks.length>0)){for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0}}_onError(t){this._storedError=cd(t,this._url),this._headersCapability.reject(this._storedError);for(const e of this._requests)e.reject(this._storedError);this._requests.length=0,this._cachedChunks.length=0}_onProgress(t){var e;(e=this.onProgress)==null||e.call(this,{loaded:t.loaded,total:t.lengthComputable?t.total:this._contentLength})}get filename(){return this._filename}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}get contentLength(){return this._contentLength}get headersReady(){return this._headersCapability.promise}async read(){if(await this._headersCapability.promise,this._storedError)throw this._storedError;if(this._cachedChunks.length>0)return{value:this._cachedChunks.shift(),done:!1};if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0,this._headersCapability.reject(t);for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._fullRequestId)&&this._manager.abortRequest(this._fullRequestId),this._fullRequestReader=null}}class Xy{constructor(t,e,s){this._manager=t,this._url=t.url,this._requestId=t.request({begin:e,end:s,onHeadersReceived:this._onHeadersReceived.bind(this),onDone:this._onDone.bind(this),onError:this._onError.bind(this),onProgress:this._onProgress.bind(this)}),this._requests=[],this._queuedChunk=null,this._done=!1,this._storedError=void 0,this.onProgress=null,this.onClosed=null}_onHeadersReceived(){var e;const t=ap((e=this._manager.getRequestXhr(this._requestId))==null?void 0:e.responseURL);t!==this._manager._responseOrigin&&(this._storedError=new Error(`Expected range response-origin "${t}" to match "${this._manager._responseOrigin}".`),this._onError(0))}_close(){var t;(t=this.onClosed)==null||t.call(this,this)}_onDone(t){const e=t.chunk;this._requests.length>0?this._requests.shift().resolve({value:e,done:!1}):this._queuedChunk=e,this._done=!0;for(const s of this._requests)s.resolve({value:void 0,done:!0});this._requests.length=0,this._close()}_onError(t){this._storedError??(this._storedError=cd(t,this._url));for(const e of this._requests)e.reject(this._storedError);this._requests.length=0,this._queuedChunk=null}_onProgress(t){var e;this.isStreamingSupported||(e=this.onProgress)==null||e.call(this,{loaded:t.loaded})}get isStreamingSupported(){return!1}async read(){if(this._storedError)throw this._storedError;if(this._queuedChunk!==null){const e=this._queuedChunk;return this._queuedChunk=null,{value:e,done:!1}}if(this._done)return{value:void 0,done:!0};const t=Promise.withResolvers();return this._requests.push(t),t.promise}cancel(t){this._done=!0;for(const e of this._requests)e.resolve({value:void 0,done:!0});this._requests.length=0,this._manager.isPendingRequest(this._requestId)&&this._manager.abortRequest(this._requestId),this._close()}}const qy=/^[a-z][a-z0-9\-+.]+:/i;function Yy(u){if(qy.test(u))return new URL(u);const t=process.getBuiltinModule("url");return new URL(t.pathToFileURL(u))}class Ky{constructor(t){this.source=t,this.url=Yy(t.url),_t(this.url.protocol==="file:","PDFNodeStream only supports file:// URLs."),this._fullRequestReader=null,this._rangeRequestReaders=[]}get _progressiveDataLength(){var t;return((t=this._fullRequestReader)==null?void 0:t._loaded)??0}getFullReader(){return _t(!this._fullRequestReader,"PDFNodeStream.getFullReader can only be called once."),this._fullRequestReader=new Qy(this),this._fullRequestReader}getRangeReader(t,e){if(e<=this._progressiveDataLength)return null;const s=new Jy(this,t,e);return this._rangeRequestReaders.push(s),s}cancelAllRequests(t){var e;(e=this._fullRequestReader)==null||e.cancel(t);for(const s of this._rangeRequestReaders.slice(0))s.cancel(t)}}class Qy{constructor(t){this._url=t.url,this._done=!1,this._storedError=null,this.onProgress=null;const e=t.source;this._contentLength=e.length,this._loaded=0,this._filename=null,this._disableRange=e.disableRange||!1,this._rangeChunkSize=e.rangeChunkSize,!this._rangeChunkSize&&!this._disableRange&&(this._disableRange=!0),this._isStreamingSupported=!e.disableStream,this._isRangeSupported=!e.disableRange,this._readableStream=null,this._readCapability=Promise.withResolvers(),this._headersCapability=Promise.withResolvers();const s=process.getBuiltinModule("fs");s.promises.lstat(this._url).then(i=>{this._contentLength=i.size,this._setReadableStream(s.createReadStream(this._url)),this._headersCapability.resolve()},i=>{i.code==="ENOENT"&&(i=cd(0,this._url.href)),this._storedError=i,this._headersCapability.reject(i)})}get headersReady(){return this._headersCapability.promise}get filename(){return this._filename}get contentLength(){return this._contentLength}get isRangeSupported(){return this._isRangeSupported}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();return t===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=t.length,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded,total:this._contentLength}),{value:new Uint8Array(t).buffer,done:!1})}cancel(t){if(!this._readableStream){this._error(t);return}this._readableStream.destroy(t)}_error(t){this._storedError=t,this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t,t.on("readable",()=>{this._readCapability.resolve()}),t.on("end",()=>{t.destroy(),this._done=!0,this._readCapability.resolve()}),t.on("error",e=>{this._error(e)}),!this._isStreamingSupported&&this._isRangeSupported&&this._error(new kn("streaming is disabled")),this._storedError&&this._readableStream.destroy(this._storedError)}}class Jy{constructor(t,e,s){this._url=t.url,this._done=!1,this._storedError=null,this.onProgress=null,this._loaded=0,this._readableStream=null,this._readCapability=Promise.withResolvers();const i=t.source;this._isStreamingSupported=!i.disableStream;const r=process.getBuiltinModule("fs");this._setReadableStream(r.createReadStream(this._url,{start:e,end:s-1}))}get isStreamingSupported(){return this._isStreamingSupported}async read(){var s;if(await this._readCapability.promise,this._done)return{value:void 0,done:!0};if(this._storedError)throw this._storedError;const t=this._readableStream.read();return t===null?(this._readCapability=Promise.withResolvers(),this.read()):(this._loaded+=t.length,(s=this.onProgress)==null||s.call(this,{loaded:this._loaded}),{value:new Uint8Array(t).buffer,done:!1})}cancel(t){if(!this._readableStream){this._error(t);return}this._readableStream.destroy(t)}_error(t){this._storedError=t,this._readCapability.resolve()}_setReadableStream(t){this._readableStream=t,t.on("readable",()=>{this._readCapability.resolve()}),t.on("end",()=>{t.destroy(),this._done=!0,this._readCapability.resolve()}),t.on("error",e=>{this._error(e)}),this._storedError&&this._readableStream.destroy(this._storedError)}}const ul=Symbol("INITIAL_DATA");var be,Hh,Qp;class Sb{constructor(){d(this,Hh);d(this,be,Object.create(null))}get(t,e=null){if(e){const i=b(this,Hh,Qp).call(this,t);return i.promise.then(()=>e(i.data)),null}const s=n(this,be)[t];if(!s||s.data===ul)throw new Error(`Requesting object that isn't resolved yet ${t}.`);return s.data}has(t){const e=n(this,be)[t];return!!e&&e.data!==ul}delete(t){const e=n(this,be)[t];return!e||e.data===ul?!1:(delete n(this,be)[t],!0)}resolve(t,e=null){const s=b(this,Hh,Qp).call(this,t);s.data=e,s.resolve()}clear(){var t;for(const e in n(this,be)){const{data:s}=n(this,be)[e];(t=s==null?void 0:s.bitmap)==null||t.close()}p(this,be,Object.create(null))}*[Symbol.iterator](){for(const t in n(this,be)){const{data:e}=n(this,be)[t];e!==ul&&(yield[t,e])}}}be=new WeakMap,Hh=new WeakSet,Qp=function(t){var e;return(e=n(this,be))[t]||(e[t]={...Promise.withResolvers(),data:ul})};const Zy=1e5,ym=30;var Sm,en,le,$h,zh,fr,ii,Gh,Uh,pr,ho,co,sn,uo,jh,fo,gr,Vh,Wh,po,mr,Xh,nn,go,Wu,Eb,Xu,Cb,qh,Jp,mo,Pd,Yh,Zp,qu,Tb,Yu,xb;const ut=class ut{constructor({textContentSource:t,container:e,viewport:s}){d(this,Wu);d(this,Xu);d(this,qh);d(this,en,Promise.withResolvers());d(this,le,null);d(this,$h,!1);d(this,zh,!!((Sm=globalThis.FontInspector)!=null&&Sm.enabled));d(this,fr,null);d(this,ii,null);d(this,Gh,0);d(this,Uh,0);d(this,pr,null);d(this,ho,null);d(this,co,0);d(this,sn,0);d(this,uo,Object.create(null));d(this,jh,[]);d(this,fo,null);d(this,gr,[]);d(this,Vh,new WeakMap);d(this,Wh,null);var l;if(t instanceof ReadableStream)p(this,fo,t);else if(typeof t=="object")p(this,fo,new ReadableStream({start(h){h.enqueue(t),h.close()}}));else throw new Error('No "textContentSource" parameter specified.');p(this,le,p(this,ho,e)),p(this,sn,s.scale*Ds.pixelRatio),p(this,co,s.rotation),p(this,ii,{div:null,properties:null,ctx:null});const{pageWidth:i,pageHeight:r,pageX:a,pageY:o}=s.rawDims;p(this,Wh,[1,0,0,-1,-a,o+r]),p(this,Uh,i),p(this,Gh,r),b(l=ut,qu,Tb).call(l),ra(e,s),n(this,en).promise.finally(()=>{n(ut,go).delete(this),p(this,ii,null),p(this,uo,null)}).catch(()=>{})}static get fontFamilyMap(){const{isWindows:t,isFirefox:e}=Wt.platform;return V(this,"fontFamilyMap",new Map([["sans-serif",`${t&&e?"Calibri, ":""}sans-serif`],["monospace",`${t&&e?"Lucida Console, ":""}monospace`]]))}render(){const t=()=>{n(this,pr).read().then(({value:e,done:s})=>{if(s){n(this,en).resolve();return}n(this,fr)??p(this,fr,e.lang),Object.assign(n(this,uo),e.styles),b(this,Wu,Eb).call(this,e.items),t()},n(this,en).reject)};return p(this,pr,n(this,fo).getReader()),n(ut,go).add(this),t(),n(this,en).promise}update({viewport:t,onBefore:e=null}){var r;const s=t.scale*Ds.pixelRatio,i=t.rotation;if(i!==n(this,co)&&(e==null||e(),p(this,co,i),ra(n(this,ho),{rotation:i})),s!==n(this,sn)){e==null||e(),p(this,sn,s);const a={div:null,properties:null,ctx:b(r=ut,mo,Pd).call(r,n(this,fr))};for(const o of n(this,gr))a.properties=n(this,Vh).get(o),a.div=o,b(this,qh,Jp).call(this,a)}}cancel(){var e;const t=new kn("TextLayer task cancelled.");(e=n(this,pr))==null||e.cancel(t).catch(()=>{}),p(this,pr,null),n(this,en).reject(t)}get textDivs(){return n(this,gr)}get textContentItemsStr(){return n(this,jh)}static cleanup(){if(!(n(this,go).size>0)){n(this,po).clear();for(const{canvas:t}of n(this,mr).values())t.remove();n(this,mr).clear()}}};en=new WeakMap,le=new WeakMap,$h=new WeakMap,zh=new WeakMap,fr=new WeakMap,ii=new WeakMap,Gh=new WeakMap,Uh=new WeakMap,pr=new WeakMap,ho=new WeakMap,co=new WeakMap,sn=new WeakMap,uo=new WeakMap,jh=new WeakMap,fo=new WeakMap,gr=new WeakMap,Vh=new WeakMap,Wh=new WeakMap,po=new WeakMap,mr=new WeakMap,Xh=new WeakMap,nn=new WeakMap,go=new WeakMap,Wu=new WeakSet,Eb=function(t){var i,r;if(n(this,$h))return;(r=n(this,ii)).ctx??(r.ctx=b(i=ut,mo,Pd).call(i,n(this,fr)));const e=n(this,gr),s=n(this,jh);for(const a of t){if(e.length>Zy){z("Ignoring additional textDivs for performance reasons."),p(this,$h,!0);return}if(a.str===void 0){if(a.type==="beginMarkedContentProps"||a.type==="beginMarkedContent"){const o=n(this,le);p(this,le,document.createElement("span")),n(this,le).classList.add("markedContent"),a.id&&n(this,le).setAttribute("id",`${a.id}`),o.append(n(this,le))}else a.type==="endMarkedContent"&&p(this,le,n(this,le).parentNode);continue}s.push(a.str),b(this,Xu,Cb).call(this,a)}},Xu=new WeakSet,Cb=function(t){var y;const e=document.createElement("span"),s={angle:0,canvasWidth:0,hasText:t.str!=="",hasEOL:t.hasEOL,fontSize:0};n(this,gr).push(e);const i=I.transform(n(this,Wh),t.transform);let r=Math.atan2(i[1],i[0]);const a=n(this,uo)[t.fontName];a.vertical&&(r+=Math.PI/2);let o=n(this,zh)&&a.fontSubstitution||a.fontFamily;o=ut.fontFamilyMap.get(o)||o;const l=Math.hypot(i[2],i[3]),h=l*b(y=ut,Yu,xb).call(y,o,a,n(this,fr));let c,f;r===0?(c=i[4],f=i[5]-h):(c=i[4]+h*Math.sin(r),f=i[5]-h*Math.cos(r));const g="calc(var(--total-scale-factor) *",m=e.style;n(this,le)===n(this,ho)?(m.left=`${(100*c/n(this,Uh)).toFixed(2)}%`,m.top=`${(100*f/n(this,Gh)).toFixed(2)}%`):(m.left=`${g}${c.toFixed(2)}px)`,m.top=`${g}${f.toFixed(2)}px)`),m.fontSize=`${g}${(n(ut,nn)*l).toFixed(2)}px)`,m.fontFamily=o,s.fontSize=l,e.setAttribute("role","presentation"),e.textContent=t.str,e.dir=t.dir,n(this,zh)&&(e.dataset.fontName=a.fontSubstitutionLoadedName||t.fontName),r!==0&&(s.angle=r*(180/Math.PI));let A=!1;if(t.str.length>1)A=!0;else if(t.str!==" "&&t.transform[0]!==t.transform[3]){const v=Math.abs(t.transform[0]),w=Math.abs(t.transform[3]);v!==w&&Math.max(v,w)/Math.min(v,w)>1.5&&(A=!0)}if(A&&(s.canvasWidth=a.vertical?t.height:t.width),n(this,Vh).set(e,s),n(this,ii).div=e,n(this,ii).properties=s,b(this,qh,Jp).call(this,n(this,ii)),s.hasText&&n(this,le).append(e),s.hasEOL){const v=document.createElement("br");v.setAttribute("role","presentation"),n(this,le).append(v)}},qh=new WeakSet,Jp=function(t){var o;const{div:e,properties:s,ctx:i}=t,{style:r}=e;let a="";if(n(ut,nn)>1&&(a=`scale(${1/n(ut,nn)})`),s.canvasWidth!==0&&s.hasText){const{fontFamily:l}=r,{canvasWidth:h,fontSize:c}=s;b(o=ut,Yh,Zp).call(o,i,c*n(this,sn),l);const{width:f}=i.measureText(e.textContent);f>0&&(a=`scaleX(${h*n(this,sn)/f}) ${a}`)}s.angle!==0&&(a=`rotate(${s.angle}deg) ${a}`),a.length>0&&(r.transform=a)},mo=new WeakSet,Pd=function(t=null){let e=n(this,mr).get(t||(t=""));if(!e){const s=document.createElement("canvas");s.className="hiddenCanvasElement",s.lang=t,document.body.append(s),e=s.getContext("2d",{alpha:!1,willReadFrequently:!0}),n(this,mr).set(t,e),n(this,Xh).set(e,{size:0,family:""})}return e},Yh=new WeakSet,Zp=function(t,e,s){const i=n(this,Xh).get(t);e===i.size&&s===i.family||(t.font=`${e}px ${s}`,i.size=e,i.family=s)},qu=new WeakSet,Tb=function(){if(n(this,nn)!==null)return;const t=document.createElement("div");t.style.opacity=0,t.style.lineHeight=1,t.style.fontSize="1px",t.style.position="absolute",t.textContent="X",document.body.append(t),p(this,nn,t.getBoundingClientRect().height),t.remove()},Yu=new WeakSet,xb=function(t,e,s){const i=n(this,po).get(t);if(i)return i;const r=b(this,mo,Pd).call(this,s);r.canvas.width=r.canvas.height=ym,b(this,Yh,Zp).call(this,r,ym,t);const a=r.measureText(""),o=a.fontBoundingBoxAscent,l=Math.abs(a.fontBoundingBoxDescent);r.canvas.width=r.canvas.height=0;let h=.8;return o?h=o/(o+l):(Wt.platform.isFirefox&&z("Enable the `dom.textMetrics.fontBoundingBox.enabled` preference in `about:config` to improve TextLayer rendering."),e.ascent?h=e.ascent:e.descent&&(h=1+e.descent)),n(this,po).set(t,h),h},d(ut,mo),d(ut,Yh),d(ut,qu),d(ut,Yu),d(ut,po,new Map),d(ut,mr,new Map),d(ut,Xh,new WeakMap),d(ut,nn,null),d(ut,go,new Set);let Nl=ut;class Ol{static textContent(t){const e=[],s={items:e,styles:Object.create(null)};function i(r){var l;if(!r)return;let a=null;const o=r.name;if(o==="#text")a=r.value;else if(Ol.shouldBuildText(o))(l=r==null?void 0:r.attributes)!=null&&l.textContent?a=r.attributes.textContent:r.value&&(a=r.value);else return;if(a!==null&&e.push({str:a}),!!r.children)for(const h of r.children)i(h)}return i(t),s}static shouldBuildText(t){return!(t==="textarea"||t==="input"||t==="option"||t==="select")}}const tw=100;function ew(u={}){typeof u=="string"||u instanceof URL?u={url:u}:(u instanceof ArrayBuffer||ArrayBuffer.isView(u))&&(u={data:u});const t=new tg,{docId:e}=t,s=u.url?ly(u.url):null,i=u.data?hy(u.data):null,r=u.httpHeaders||null,a=u.withCredentials===!0,o=u.password??null,l=u.range instanceof kb?u.range:null,h=Number.isInteger(u.rangeChunkSize)&&u.rangeChunkSize>0?u.rangeChunkSize:2**16;let c=u.worker instanceof Bl?u.worker:null;const f=u.verbosity,g=typeof u.docBaseUrl=="string"&&!np(u.docBaseUrl)?u.docBaseUrl:null,m=pd(u.cMapUrl),A=u.cMapPacked!==!1,y=u.CMapReaderFactory||(ie?by:om),v=pd(u.iccUrl),w=pd(u.standardFontDataUrl),S=u.StandardFontDataFactory||(ie?Ay:lm),_=pd(u.wasmUrl),E=u.WasmFactory||(ie?yy:hm),C=u.stopAtErrors!==!0,T=Number.isInteger(u.maxImageSize)&&u.maxImageSize>-1?u.maxImageSize:-1,x=u.isEvalSupported!==!1,P=typeof u.isOffscreenCanvasSupported=="boolean"?u.isOffscreenCanvasSupported:!ie,M=typeof u.isImageDecoderSupported=="boolean"?u.isImageDecoderSupported:!ie&&(Wt.platform.isFirefox||!globalThis.chrome),D=Number.isInteger(u.canvasMaxAreaInBytes)?u.canvasMaxAreaInBytes:-1,R=typeof u.disableFontFace=="boolean"?u.disableFontFace:ie,H=u.fontExtraProperties===!0,U=u.enableXfa===!0,W=u.ownerDocument||globalThis.document,Y=u.disableRange===!0,B=u.disableStream===!0,N=u.disableAutoFetch===!0,Pt=u.pdfBug===!0,At=u.CanvasFactory||(ie?my:fy),Re=u.FilterFactory||(ie?gy:py),as=u.enableHWA===!0,it=u.useWasm!==!1,Z=l?l.length:u.length??NaN,Ls=typeof u.useSystemFonts=="boolean"?u.useSystemFonts:!ie&&!R,Ve=typeof u.useWorkerFetch=="boolean"?u.useWorkerFetch:!!(y===om&&S===lm&&E===hm&&m&&w&&_&&gl(m,document.baseURI)&&gl(w,document.baseURI)&&gl(_,document.baseURI)),We=null;$A(f);const pt={canvasFactory:new At({ownerDocument:W,enableHWA:as}),filterFactory:new Re({docId:e,ownerDocument:W}),cMapReaderFactory:Ve?null:new y({baseUrl:m,isCompressed:A}),standardFontDataFactory:Ve?null:new S({baseUrl:w}),wasmFactory:Ve?null:new E({baseUrl:_})};c||(c=Bl.create({verbosity:f,port:Ti.workerPort}),t._worker=c);const lp={docId:e,apiVersion:"5.4.149",data:i,password:o,disableAutoFetch:N,rangeChunkSize:h,length:Z,docBaseUrl:g,enableXfa:U,evaluatorOptions:{maxImageSize:T,disableFontFace:R,ignoreErrors:C,isEvalSupported:x,isOffscreenCanvasSupported:P,isImageDecoderSupported:M,canvasMaxAreaInBytes:D,fontExtraProperties:H,useSystemFonts:Ls,useWasm:it,useWorkerFetch:Ve,cMapUrl:m,iccUrl:v,standardFontDataUrl:w,wasmUrl:_}},hp={ownerDocument:W,pdfBug:Pt,styleElement:We,loadingParams:{disableAutoFetch:N,enableXfa:U}};return c.promise.then(function(){if(t.destroyed)throw new Error("Loading aborted");if(c.destroyed)throw new Error("Worker was destroyed");const cp=c.messageHandler.sendWithPromise("GetDocRequest",lp,i?[i.buffer]:null);let Mn;if(l)Mn=new Ny(l,{disableRange:Y,disableStream:B});else if(!i){if(!s)throw new Error("getDocument - no `url` parameter provided.");const Rn=gl(s)?$y:ie?Ky:Vy;Mn=new Rn({url:s,length:Z,httpHeaders:r,withCredentials:a,rangeChunkSize:h,disableRange:Y,disableStream:B})}return cp.then(Rn=>{if(t.destroyed)throw new Error("Loading aborted");if(c.destroyed)throw new Error("Worker was destroyed");const em=new vl(e,Rn,c.port),IA=new nw(em,t,Mn,hp,pt,as);t._transport=IA,em.send("Ready",null)})}).catch(t._capability.reject),t}var Ku;const Qu=class Qu{constructor(){k(this,"_capability",Promise.withResolvers());k(this,"_transport",null);k(this,"_worker",null);k(this,"docId",`d${St(Qu,Ku)._++}`);k(this,"destroyed",!1);k(this,"onPassword",null);k(this,"onProgress",null)}get promise(){return this._capability.promise}async destroy(){var t,e,s,i;this.destroyed=!0;try{(t=this._worker)!=null&&t.port&&(this._worker._pendingDestroy=!0),await((e=this._transport)==null?void 0:e.destroy())}catch(r){throw(s=this._worker)!=null&&s.port&&delete this._worker._pendingDestroy,r}this._transport=null,(i=this._worker)==null||i.destroy(),this._worker=null}async getData(){return this._transport.getData()}};Ku=new WeakMap,d(Qu,Ku,0);let tg=Qu;var br,Kh,Qh,Jh,Zh;class kb{constructor(t,e,s=!1,i=null){d(this,br,Promise.withResolvers());d(this,Kh,[]);d(this,Qh,[]);d(this,Jh,[]);d(this,Zh,[]);this.length=t,this.initialData=e,this.progressiveDone=s,this.contentDispositionFilename=i}addRangeListener(t){n(this,Zh).push(t)}addProgressListener(t){n(this,Jh).push(t)}addProgressiveReadListener(t){n(this,Qh).push(t)}addProgressiveDoneListener(t){n(this,Kh).push(t)}onDataRange(t,e){for(const s of n(this,Zh))s(t,e)}onDataProgress(t,e){n(this,br).promise.then(()=>{for(const s of n(this,Jh))s(t,e)})}onDataProgressiveRead(t){n(this,br).promise.then(()=>{for(const e of n(this,Qh))e(t)})}onDataProgressiveDone(){n(this,br).promise.then(()=>{for(const t of n(this,Kh))t()})}transportReady(){n(this,br).resolve()}requestDataRange(t,e){st("Abstract method PDFDataRangeTransport.requestDataRange")}abort(){}}br=new WeakMap,Kh=new WeakMap,Qh=new WeakMap,Jh=new WeakMap,Zh=new WeakMap;class sw{constructor(t,e){this._pdfInfo=t,this._transport=e}get annotationStorage(){return this._transport.annotationStorage}get canvasFactory(){return this._transport.canvasFactory}get filterFactory(){return this._transport.filterFactory}get numPages(){return this._pdfInfo.numPages}get fingerprints(){return this._pdfInfo.fingerprints}get isPureXfa(){return V(this,"isPureXfa",!!this._transport._htmlForXfa)}get allXfaHtml(){return this._transport._htmlForXfa}getPage(t){return this._transport.getPage(t)}getPageIndex(t){return this._transport.getPageIndex(t)}getDestinations(){return this._transport.getDestinations()}getDestination(t){return this._transport.getDestination(t)}getPageLabels(){return this._transport.getPageLabels()}getPageLayout(){return this._transport.getPageLayout()}getPageMode(){return this._transport.getPageMode()}getViewerPreferences(){return this._transport.getViewerPreferences()}getOpenAction(){return this._transport.getOpenAction()}getAttachments(){return this._transport.getAttachments()}getAnnotationsByType(t,e){return this._transport.getAnnotationsByType(t,e)}getJSActions(){return this._transport.getDocJSActions()}getOutline(){return this._transport.getOutline()}getOptionalContentConfig({intent:t="display"}={}){const{renderingIntent:e}=this._transport.getRenderingIntent(t);return this._transport.getOptionalContentConfig(e)}getPermissions(){return this._transport.getPermissions()}getMetadata(){return this._transport.getMetadata()}getMarkInfo(){return this._transport.getMarkInfo()}getData(){return this._transport.getData()}saveDocument(){return this._transport.saveDocument()}getDownloadInfo(){return this._transport.downloadInfoCapability.promise}cleanup(t=!1){return this._transport.startCleanup(t||this.isPureXfa)}destroy(){return this.loadingTask.destroy()}cachedPageNumber(t){return this._transport.cachedPageNumber(t)}get loadingParams(){return this._transport.loadingParams}get loadingTask(){return this._transport.loadingTask}getFieldObjects(){return this._transport.getFieldObjects()}hasJSActions(){return this._transport.hasJSActions()}getCalculationOrderIds(){return this._transport.getCalculationOrderIds()}}var ni,Ar,Tl;class iw{constructor(t,e,s,i=!1){d(this,Ar);d(this,ni,!1);this._pageIndex=t,this._pageInfo=e,this._transport=s,this._stats=i?new nm:null,this._pdfBug=i,this.commonObjs=s.commonObjs,this.objs=new Sb,this._intentStates=new Map,this.destroyed=!1,this.recordedGroups=null}get pageNumber(){return this._pageIndex+1}get rotate(){return this._pageInfo.rotate}get ref(){return this._pageInfo.ref}get userUnit(){return this._pageInfo.userUnit}get view(){return this._pageInfo.view}getViewport({scale:t,rotation:e=this.rotate,offsetX:s=0,offsetY:i=0,dontFlip:r=!1}={}){return new ld({viewBox:this.view,userUnit:this.userUnit,scale:t,rotation:e,offsetX:s,offsetY:i,dontFlip:r})}getAnnotations({intent:t="display"}={}){const{renderingIntent:e}=this._transport.getRenderingIntent(t);return this._transport.getAnnotations(this._pageIndex,e)}getJSActions(){return this._transport.getPageJSActions(this._pageIndex)}get filterFactory(){return this._transport.filterFactory}get isPureXfa(){return V(this,"isPureXfa",!!this._transport._htmlForXfa)}async getXfa(){var t;return((t=this._transport._htmlForXfa)==null?void 0:t.children[this._pageIndex])||null}render({canvasContext:t,canvas:e=t.canvas,viewport:s,intent:i="display",annotationMode:r=ki.ENABLE,transform:a=null,background:o=null,optionalContentConfigPromise:l=null,annotationCanvasMap:h=null,pageColors:c=null,printAnnotationStorage:f=null,isEditing:g=!1,recordOperations:m=!1,filteredOperationIndexes:A=null}){var P,M,D;(P=this._stats)==null||P.time("Overall");const y=this._transport.getRenderingIntent(i,r,f,g),{renderingIntent:v,cacheKey:w}=y;p(this,ni,!1),l||(l=this._transport.getOptionalContentConfig(v));let S=this._intentStates.get(w);S||(S=Object.create(null),this._intentStates.set(w,S)),S.streamReaderCancelTimeout&&(clearTimeout(S.streamReaderCancelTimeout),S.streamReaderCancelTimeout=null);const _=!!(v&Pe.PRINT);S.displayReadyCapability||(S.displayReadyCapability=Promise.withResolvers(),S.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(M=this._stats)==null||M.time("Page Request"),this._pumpOperatorList(y));const E=!this.recordedGroups&&(m||this._pdfBug&&((D=globalThis.StepperManager)==null?void 0:D.enabled)),C=R=>{var H,U,W;if(S.renderTasks.delete(T),E){const Y=(H=T.gfx)==null?void 0:H.dependencyTracker.take();Y?((U=T.stepper)==null||U.setOperatorGroups(Y),m&&(this.recordedGroups=Y)):m&&(this.recordedGroups=[])}_&&p(this,ni,!0),b(this,Ar,Tl).call(this),R?(T.capability.reject(R),this._abortOperatorList({intentState:S,reason:R instanceof Error?R:new Error(R)})):T.capability.resolve(),this._stats&&(this._stats.timeEnd("Rendering"),this._stats.timeEnd("Overall"),(W=globalThis.Stats)!=null&&W.enabled&&globalThis.Stats.add(this.pageNumber,this._stats))},T=new eg({callback:C,params:{canvas:e,canvasContext:t,dependencyTracker:E?new wy(e):null,viewport:s,transform:a,background:o},objs:this.objs,commonObjs:this.commonObjs,annotationCanvasMap:h,operatorList:S.operatorList,pageIndex:this._pageIndex,canvasFactory:this._transport.canvasFactory,filterFactory:this._transport.filterFactory,useRequestAnimationFrame:!_,pdfBug:this._pdfBug,pageColors:c,enableHWA:this._transport.enableHWA,filteredOperationIndexes:A});(S.renderTasks||(S.renderTasks=new Set)).add(T);const x=T.task;return Promise.all([S.displayReadyCapability.promise,l]).then(([R,H])=>{var U;if(this.destroyed){C();return}if((U=this._stats)==null||U.time("Rendering"),!(H.renderingIntent&v))throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` and `PDFDocumentProxy.getOptionalContentConfig` methods.");T.initializeGraphics({transparency:R,optionalContentConfig:H}),T.operatorListChanged()}).catch(C),x}getOperatorList({intent:t="display",annotationMode:e=ki.ENABLE,printAnnotationStorage:s=null,isEditing:i=!1}={}){var h;function r(){o.operatorList.lastChunk&&(o.opListReadCapability.resolve(o.operatorList),o.renderTasks.delete(l))}const a=this._transport.getRenderingIntent(t,e,s,i,!0);let o=this._intentStates.get(a.cacheKey);o||(o=Object.create(null),this._intentStates.set(a.cacheKey,o));let l;return o.opListReadCapability||(l=Object.create(null),l.operatorListChanged=r,o.opListReadCapability=Promise.withResolvers(),(o.renderTasks||(o.renderTasks=new Set)).add(l),o.operatorList={fnArray:[],argsArray:[],lastChunk:!1,separateAnnots:null},(h=this._stats)==null||h.time("Page Request"),this._pumpOperatorList(a)),o.opListReadCapability.promise}streamTextContent({includeMarkedContent:t=!1,disableNormalization:e=!1}={}){return this._transport.messageHandler.sendWithStream("GetTextContent",{pageIndex:this._pageIndex,includeMarkedContent:t===!0,disableNormalization:e===!0},{highWaterMark:100,size(i){return i.items.length}})}getTextContent(t={}){if(this._transport._htmlForXfa)return this.getXfa().then(s=>Ol.textContent(s));const e=this.streamTextContent(t);return new Promise(function(s,i){function r(){a.read().then(function({value:l,done:h}){if(h){s(o);return}o.lang??(o.lang=l.lang),Object.assign(o.styles,l.styles),o.items.push(...l.items),r()},i)}const a=e.getReader(),o={items:[],styles:Object.create(null),lang:null};r()})}getStructTree(){return this._transport.getStructTree(this._pageIndex)}_destroy(){this.destroyed=!0;const t=[];for(const e of this._intentStates.values())if(this._abortOperatorList({intentState:e,reason:new Error("Page was destroyed."),force:!0}),!e.opListReadCapability)for(const s of e.renderTasks)t.push(s.completed),s.cancel();return this.objs.clear(),p(this,ni,!1),Promise.all(t)}cleanup(t=!1){p(this,ni,!0);const e=b(this,Ar,Tl).call(this);return t&&e&&this._stats&&(this._stats=new nm),e}_startRenderPage(t,e){var i,r;const s=this._intentStates.get(e);s&&((i=this._stats)==null||i.timeEnd("Page Request"),(r=s.displayReadyCapability)==null||r.resolve(t))}_renderPageChunk(t,e){for(let s=0,i=t.length;s{l.read().then(({value:f,done:g})=>{if(g){h.streamReader=null;return}this._transport.destroyed||(this._renderPageChunk(f,h),c())},f=>{if(h.streamReader=null,!this._transport.destroyed){if(h.operatorList){h.operatorList.lastChunk=!0;for(const g of h.renderTasks)g.operatorListChanged();b(this,Ar,Tl).call(this)}if(h.displayReadyCapability)h.displayReadyCapability.reject(f);else if(h.opListReadCapability)h.opListReadCapability.reject(f);else throw f}})};c()}_abortOperatorList({intentState:t,reason:e,force:s=!1}){if(t.streamReader){if(t.streamReaderCancelTimeout&&(clearTimeout(t.streamReaderCancelTimeout),t.streamReaderCancelTimeout=null),!s){if(t.renderTasks.size>0)return;if(e instanceof $g){let i=tw;e.extraDelay>0&&e.extraDelay<1e3&&(i+=e.extraDelay),t.streamReaderCancelTimeout=setTimeout(()=>{t.streamReaderCancelTimeout=null,this._abortOperatorList({intentState:t,reason:e,force:!0})},i);return}}if(t.streamReader.cancel(new kn(e.message)).catch(()=>{}),t.streamReader=null,!this._transport.destroyed){for(const[i,r]of this._intentStates)if(r===t){this._intentStates.delete(i);break}this.cleanup()}}}get stats(){return this._stats}}ni=new WeakMap,Ar=new WeakSet,Tl=function(){if(!n(this,ni)||this.destroyed)return!1;for(const{renderTasks:t,operatorList:e}of this._intentStates.values())if(t.size>0||!e.lastChunk)return!1;return this._intentStates.clear(),this.objs.clear(),p(this,ni,!1),!0};var rn,Je,ri,yr,Ju,wr,vr,bo,Md,Zu,Pb,tf,Mb,_r,xl,Ao,Rd;const at=class at{constructor({name:t=null,port:e=null,verbosity:s=zA()}={}){d(this,bo);d(this,Zu);d(this,tf);d(this,_r);d(this,rn,Promise.withResolvers());d(this,Je,null);d(this,ri,null);d(this,yr,null);if(this.name=t,this.destroyed=!1,this.verbosity=s,e){if(n(at,vr).has(e))throw new Error("Cannot use more than one PDFWorker per port.");n(at,vr).set(e,this),b(this,Zu,Pb).call(this,e)}else b(this,tf,Mb).call(this)}get promise(){return n(this,rn).promise}get port(){return n(this,ri)}get messageHandler(){return n(this,Je)}destroy(){var t,e;this.destroyed=!0,(t=n(this,yr))==null||t.terminate(),p(this,yr,null),n(at,vr).delete(n(this,ri)),p(this,ri,null),(e=n(this,Je))==null||e.destroy(),p(this,Je,null)}static create(t){const e=n(this,vr).get(t==null?void 0:t.port);if(e){if(e._pendingDestroy)throw new Error("PDFWorker.create - the worker is being destroyed.\nPlease remember to await `PDFDocumentLoadingTask.destroy()`-calls.");return e}return new at(t)}static get workerSrc(){if(Ti.workerSrc)return Ti.workerSrc;throw new Error('No "GlobalWorkerOptions.workerSrc" specified.')}static get _setupFakeWorkerGlobal(){return V(this,"_setupFakeWorkerGlobal",(async()=>n(this,Ao,Rd)?n(this,Ao,Rd):(await OA(()=>import(this.workerSrc),[])).WorkerMessageHandler)())}};rn=new WeakMap,Je=new WeakMap,ri=new WeakMap,yr=new WeakMap,Ju=new WeakMap,wr=new WeakMap,vr=new WeakMap,bo=new WeakSet,Md=function(){n(this,rn).resolve(),n(this,Je).send("configure",{verbosity:this.verbosity})},Zu=new WeakSet,Pb=function(t){p(this,ri,t),p(this,Je,new vl("main","worker",t)),n(this,Je).on("ready",()=>{}),b(this,bo,Md).call(this)},tf=new WeakSet,Mb=function(){if(n(at,wr)||n(at,Ao,Rd)){b(this,_r,xl).call(this);return}let{workerSrc:t}=at;try{at._isSameOrigin(window.location,t)||(t=at._createCDNWrapper(new URL(t,window.location).href));const e=new Worker(t,{type:"module"}),s=new vl("main","worker",e),i=()=>{r.abort(),s.destroy(),e.terminate(),this.destroyed?n(this,rn).reject(new Error("Worker was destroyed")):b(this,_r,xl).call(this)},r=new AbortController;e.addEventListener("error",()=>{n(this,yr)||i()},{signal:r.signal}),s.on("test",o=>{if(r.abort(),this.destroyed||!o){i();return}p(this,Je,s),p(this,ri,e),p(this,yr,e),b(this,bo,Md).call(this)}),s.on("ready",o=>{if(r.abort(),this.destroyed){i();return}try{a()}catch{b(this,_r,xl).call(this)}});const a=()=>{const o=new Uint8Array;s.send("test",o,[o.buffer])};a();return}catch{ip("The worker has been disabled.")}b(this,_r,xl).call(this)},_r=new WeakSet,xl=function(){n(at,wr)||(z("Setting up fake worker."),p(at,wr,!0)),at._setupFakeWorkerGlobal.then(t=>{if(this.destroyed){n(this,rn).reject(new Error("Worker was destroyed"));return}const e=new uy;p(this,ri,e);const s=`fake${St(at,Ju)._++}`,i=new vl(s+"_worker",s,e);t.setup(i,e),p(this,Je,new vl(s,s+"_worker",e)),b(this,bo,Md).call(this)}).catch(t=>{n(this,rn).reject(new Error(`Setting up fake worker failed: "${t.message}".`))})},Ao=new WeakSet,Rd=function(){var t;try{return((t=globalThis.pdfjsWorker)==null?void 0:t.WorkerMessageHandler)||null}catch{return null}},d(at,Ao),d(at,Ju,0),d(at,wr,!1),d(at,vr,new WeakMap),ie&&(p(at,wr,!0),Ti.workerSrc||(Ti.workerSrc="./pdf.worker.mjs")),at._isSameOrigin=(t,e)=>{const s=URL.parse(t);if(!(s!=null&&s.origin)||s.origin==="null")return!1;const i=new URL(e,s);return s.origin===i.origin},at._createCDNWrapper=t=>{const e=`await import("${t}");`;return URL.createObjectURL(new Blob([e],{type:"text/javascript"}))},at.fromPort=t=>{if(ZA("`PDFWorker.fromPort` - please use `PDFWorker.create` instead."),!(t!=null&&t.port))throw new Error("PDFWorker.fromPort - invalid method signature.");return at.create(t)};let Bl=at;var ai,vs,yo,wo,oi,Sr,kl;class nw{constructor(t,e,s,i,r,a){d(this,Sr);d(this,ai,new Map);d(this,vs,new Map);d(this,yo,new Map);d(this,wo,new Map);d(this,oi,null);this.messageHandler=t,this.loadingTask=e,this.commonObjs=new Sb,this.fontLoader=new ay({ownerDocument:i.ownerDocument,styleElement:i.styleElement}),this.loadingParams=i.loadingParams,this._params=i,this.canvasFactory=r.canvasFactory,this.filterFactory=r.filterFactory,this.cMapReaderFactory=r.cMapReaderFactory,this.standardFontDataFactory=r.standardFontDataFactory,this.wasmFactory=r.wasmFactory,this.destroyed=!1,this.destroyCapability=null,this._networkStream=s,this._fullReader=null,this._lastProgress=null,this.downloadInfoCapability=Promise.withResolvers(),this.enableHWA=a,this.setupMessageHandler()}get annotationStorage(){return V(this,"annotationStorage",new Gg)}getRenderingIntent(t,e=ki.ENABLE,s=null,i=!1,r=!1){let a=Pe.DISPLAY,o=zp;switch(t){case"any":a=Pe.ANY;break;case"display":break;case"print":a=Pe.PRINT;break;default:z(`getRenderingIntent - invalid intent: ${t}`)}const l=a&Pe.PRINT&&s instanceof ob?s:this.annotationStorage;switch(e){case ki.DISABLE:a+=Pe.ANNOTATIONS_DISABLE;break;case ki.ENABLE:break;case ki.ENABLE_FORMS:a+=Pe.ANNOTATIONS_FORMS;break;case ki.ENABLE_STORAGE:a+=Pe.ANNOTATIONS_STORAGE,o=l.serializable;break;default:z(`getRenderingIntent - invalid annotationMode: ${e}`)}i&&(a+=Pe.IS_EDITING),r&&(a+=Pe.OPLIST);const{ids:h,hash:c}=l.modifiedIds,f=[a,o.hash,c];return{renderingIntent:a,cacheKey:f.join("_"),annotationStorageSerializable:o,modifiedIds:h}}destroy(){var s;if(this.destroyCapability)return this.destroyCapability.promise;this.destroyed=!0,this.destroyCapability=Promise.withResolvers(),(s=n(this,oi))==null||s.reject(new Error("Worker was destroyed during onPassword callback"));const t=[];for(const i of n(this,vs).values())t.push(i._destroy());n(this,vs).clear(),n(this,yo).clear(),n(this,wo).clear(),this.hasOwnProperty("annotationStorage")&&this.annotationStorage.resetModified();const e=this.messageHandler.sendWithPromise("Terminate",null);return t.push(e),Promise.all(t).then(()=>{var i,r;this.commonObjs.clear(),this.fontLoader.clear(),n(this,ai).clear(),this.filterFactory.destroy(),Nl.cleanup(),(i=this._networkStream)==null||i.cancelAllRequests(new kn("Worker was terminated.")),(r=this.messageHandler)==null||r.destroy(),this.messageHandler=null,this.destroyCapability.resolve()},this.destroyCapability.reject),this.destroyCapability.promise}setupMessageHandler(){const{messageHandler:t,loadingTask:e}=this;t.on("GetReader",(s,i)=>{_t(this._networkStream,"GetReader - no `IPDFStream` instance available."),this._fullReader=this._networkStream.getFullReader(),this._fullReader.onProgress=r=>{this._lastProgress={loaded:r.loaded,total:r.total}},i.onPull=()=>{this._fullReader.read().then(function({value:r,done:a}){if(a){i.close();return}_t(r instanceof ArrayBuffer,"GetReader - expected an ArrayBuffer."),i.enqueue(new Uint8Array(r),1,[r])}).catch(r=>{i.error(r)})},i.onCancel=r=>{this._fullReader.cancel(r),i.ready.catch(a=>{if(!this.destroyed)throw a})}}),t.on("ReaderHeadersReady",async s=>{var o;await this._fullReader.headersReady;const{isStreamingSupported:i,isRangeSupported:r,contentLength:a}=this._fullReader;return(!i||!r)&&(this._lastProgress&&((o=e.onProgress)==null||o.call(e,this._lastProgress)),this._fullReader.onProgress=l=>{var h;(h=e.onProgress)==null||h.call(e,{loaded:l.loaded,total:l.total})}),{isStreamingSupported:i,isRangeSupported:r,contentLength:a}}),t.on("GetRangeReader",(s,i)=>{_t(this._networkStream,"GetRangeReader - no `IPDFStream` instance available.");const r=this._networkStream.getRangeReader(s.begin,s.end);if(!r){i.close();return}i.onPull=()=>{r.read().then(function({value:a,done:o}){if(o){i.close();return}_t(a instanceof ArrayBuffer,"GetRangeReader - expected an ArrayBuffer."),i.enqueue(new Uint8Array(a),1,[a])}).catch(a=>{i.error(a)})},i.onCancel=a=>{r.cancel(a),i.ready.catch(o=>{if(!this.destroyed)throw o})}}),t.on("GetDoc",({pdfInfo:s})=>{this._numPages=s.numPages,this._htmlForXfa=s.htmlForXfa,delete s.htmlForXfa,e._capability.resolve(new sw(s,this))}),t.on("DocException",s=>{e._capability.reject(re(s))}),t.on("PasswordRequest",s=>{p(this,oi,Promise.withResolvers());try{if(!e.onPassword)throw re(s);const i=r=>{r instanceof Error?n(this,oi).reject(r):n(this,oi).resolve({password:r})};e.onPassword(i,s.code)}catch(i){n(this,oi).reject(i)}return n(this,oi).promise}),t.on("DataLoaded",s=>{var i;(i=e.onProgress)==null||i.call(e,{loaded:s.length,total:s.length}),this.downloadInfoCapability.resolve(s)}),t.on("StartRenderPage",s=>{if(this.destroyed)return;n(this,vs).get(s.pageIndex)._startRenderPage(s.transparency,s.cacheKey)}),t.on("commonobj",([s,i,r])=>{var a;if(this.destroyed||this.commonObjs.has(s))return null;switch(i){case"Font":if("error"in r){const c=r.error;z(`Error during font loading: ${c}`),this.commonObjs.resolve(s,c);break}const o=this._params.pdfBug&&((a=globalThis.FontInspector)!=null&&a.enabled)?(c,f)=>globalThis.FontInspector.fontAdded(c,f):null,l=new oy(r,o);this.fontLoader.bind(l).catch(()=>t.sendWithPromise("FontFallback",{id:s})).finally(()=>{!l.fontExtraProperties&&l.data&&(l.data=null),this.commonObjs.resolve(s,l)});break;case"CopyLocalImage":const{imageRef:h}=r;_t(h,"The imageRef must be defined.");for(const c of n(this,vs).values())for(const[,f]of c.objs)if((f==null?void 0:f.ref)===h)return f.dataLen?(this.commonObjs.resolve(s,structuredClone(f)),f.dataLen):null;break;case"FontPath":case"Image":case"Pattern":this.commonObjs.resolve(s,r);break;default:throw new Error(`Got unknown common object type ${i}`)}return null}),t.on("obj",([s,i,r,a])=>{var l;if(this.destroyed)return;const o=n(this,vs).get(i);if(!o.objs.has(s)){if(o._intentStates.size===0){(l=a==null?void 0:a.bitmap)==null||l.close();return}switch(r){case"Image":case"Pattern":o.objs.resolve(s,a);break;default:throw new Error(`Got unknown object type ${r}`)}}}),t.on("DocProgress",s=>{var i;this.destroyed||(i=e.onProgress)==null||i.call(e,{loaded:s.loaded,total:s.total})}),t.on("FetchBinaryData",async s=>{if(this.destroyed)throw new Error("Worker was destroyed.");const i=this[s.type];if(!i)throw new Error(`${s.type} not initialized, see the \`useWorkerFetch\` parameter.`);return i.fetch(s)})}getData(){return this.messageHandler.sendWithPromise("GetData",null)}saveDocument(){var s;this.annotationStorage.size<=0&&z("saveDocument called while `annotationStorage` is empty, please use the getData-method instead.");const{map:t,transfer:e}=this.annotationStorage.serializable;return this.messageHandler.sendWithPromise("SaveDocument",{isPureXfa:!!this._htmlForXfa,numPages:this._numPages,annotationStorage:t,filename:((s=this._fullReader)==null?void 0:s.filename)??null},e).finally(()=>{this.annotationStorage.resetModified()})}getPage(t){if(!Number.isInteger(t)||t<=0||t>this._numPages)return Promise.reject(new Error("Invalid page request."));const e=t-1,s=n(this,yo).get(e);if(s)return s;const i=this.messageHandler.sendWithPromise("GetPage",{pageIndex:e}).then(r=>{if(this.destroyed)throw new Error("Transport destroyed");r.refStr&&n(this,wo).set(r.refStr,t);const a=new iw(e,r,this,this._params.pdfBug);return n(this,vs).set(e,a),a});return n(this,yo).set(e,i),i}getPageIndex(t){return Gp(t)?this.messageHandler.sendWithPromise("GetPageIndex",{num:t.num,gen:t.gen}):Promise.reject(new Error("Invalid pageIndex request."))}getAnnotations(t,e){return this.messageHandler.sendWithPromise("GetAnnotations",{pageIndex:t,intent:e})}getFieldObjects(){return b(this,Sr,kl).call(this,"GetFieldObjects")}hasJSActions(){return b(this,Sr,kl).call(this,"HasJSActions")}getCalculationOrderIds(){return this.messageHandler.sendWithPromise("GetCalculationOrderIds",null)}getDestinations(){return this.messageHandler.sendWithPromise("GetDestinations",null)}getDestination(t){return typeof t!="string"?Promise.reject(new Error("Invalid destination request.")):this.messageHandler.sendWithPromise("GetDestination",{id:t})}getPageLabels(){return this.messageHandler.sendWithPromise("GetPageLabels",null)}getPageLayout(){return this.messageHandler.sendWithPromise("GetPageLayout",null)}getPageMode(){return this.messageHandler.sendWithPromise("GetPageMode",null)}getViewerPreferences(){return this.messageHandler.sendWithPromise("GetViewerPreferences",null)}getOpenAction(){return this.messageHandler.sendWithPromise("GetOpenAction",null)}getAttachments(){return this.messageHandler.sendWithPromise("GetAttachments",null)}getAnnotationsByType(t,e){return this.messageHandler.sendWithPromise("GetAnnotationsByType",{types:t,pageIndexesToSkip:e})}getDocJSActions(){return b(this,Sr,kl).call(this,"GetDocJSActions")}getPageJSActions(t){return this.messageHandler.sendWithPromise("GetPageJSActions",{pageIndex:t})}getStructTree(t){return this.messageHandler.sendWithPromise("GetStructTree",{pageIndex:t})}getOutline(){return this.messageHandler.sendWithPromise("GetOutline",null)}getOptionalContentConfig(t){return b(this,Sr,kl).call(this,"GetOptionalContentConfig").then(e=>new Fy(e,t))}getPermissions(){return this.messageHandler.sendWithPromise("GetPermissions",null)}getMetadata(){const t="GetMetadata",e=n(this,ai).get(t);if(e)return e;const s=this.messageHandler.sendWithPromise(t,null).then(i=>{var r,a;return{info:i[0],metadata:i[1]?new Ly(i[1]):null,contentDispositionFilename:((r=this._fullReader)==null?void 0:r.filename)??null,contentLength:((a=this._fullReader)==null?void 0:a.contentLength)??null}});return n(this,ai).set(t,s),s}getMarkInfo(){return this.messageHandler.sendWithPromise("GetMarkInfo",null)}async startCleanup(t=!1){if(!this.destroyed){await this.messageHandler.sendWithPromise("Cleanup",null);for(const e of n(this,vs).values())if(!e.cleanup())throw new Error(`startCleanup: Page ${e.pageNumber} is currently rendering.`);this.commonObjs.clear(),t||this.fontLoader.clear(),n(this,ai).clear(),this.filterFactory.destroy(!0),Nl.cleanup()}}cachedPageNumber(t){if(!Gp(t))return null;const e=t.gen===0?`${t.num}R`:`${t.num}R${t.gen}`;return n(this,wo).get(e)??null}}ai=new WeakMap,vs=new WeakMap,yo=new WeakMap,wo=new WeakMap,oi=new WeakMap,Sr=new WeakSet,kl=function(t,e=null){const s=n(this,ai).get(t);if(s)return s;const i=this.messageHandler.sendWithPromise(t,e);return n(this,ai).set(t,i),i};var an;class rw{constructor(t){d(this,an,null);k(this,"onContinue",null);k(this,"onError",null);p(this,an,t)}get promise(){return n(this,an).capability.promise}cancel(t=0){n(this,an).cancel(null,t)}get separateAnnots(){const{separateAnnots:t}=n(this,an).operatorList;if(!t)return!1;const{annotationCanvasMap:e}=n(this,an);return t.form||t.canvas&&(e==null?void 0:e.size)>0}}an=new WeakMap;var on,Er;const Nn=class Nn{constructor({callback:t,params:e,objs:s,commonObjs:i,annotationCanvasMap:r,operatorList:a,pageIndex:o,canvasFactory:l,filterFactory:h,useRequestAnimationFrame:c=!1,pdfBug:f=!1,pageColors:g=null,enableHWA:m=!1,filteredOperationIndexes:A=null}){d(this,on,null);this.callback=t,this.params=e,this.objs=s,this.commonObjs=i,this.annotationCanvasMap=r,this.operatorListIdx=null,this.operatorList=a,this._pageIndex=o,this.canvasFactory=l,this.filterFactory=h,this._pdfBug=f,this.pageColors=g,this.running=!1,this.graphicsReadyCallback=null,this.graphicsReady=!1,this._useRequestAnimationFrame=c===!0&&typeof window<"u",this.cancelled=!1,this.capability=Promise.withResolvers(),this.task=new rw(this),this._cancelBound=this.cancel.bind(this),this._continueBound=this._continue.bind(this),this._scheduleNextBound=this._scheduleNext.bind(this),this._nextBound=this._next.bind(this),this._canvas=e.canvas,this._canvasContext=e.canvas?null:e.canvasContext,this._enableHWA=m,this._dependencyTracker=e.dependencyTracker,this._filteredOperationIndexes=A}get completed(){return this.capability.promise.catch(function(){})}initializeGraphics({transparency:t=!1,optionalContentConfig:e}){var l,h;if(this.cancelled)return;if(this._canvas){if(n(Nn,Er).has(this._canvas))throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed.");n(Nn,Er).add(this._canvas)}this._pdfBug&&((l=globalThis.StepperManager)!=null&&l.enabled)&&(this.stepper=globalThis.StepperManager.create(this._pageIndex),this.stepper.init(this.operatorList),this.stepper.nextBreakPoint=this.stepper.getNextBreakPoint());const{viewport:s,transform:i,background:r,dependencyTracker:a}=this.params,o=this._canvasContext||this._canvas.getContext("2d",{alpha:!1,willReadFrequently:!this._enableHWA});this.gfx=new _a(o,this.commonObjs,this.objs,this.canvasFactory,this.filterFactory,{optionalContentConfig:e},this.annotationCanvasMap,this.pageColors,a),this.gfx.beginDrawing({transform:i,viewport:s,transparency:t,background:r}),this.operatorListIdx=0,this.graphicsReady=!0,(h=this.graphicsReadyCallback)==null||h.call(this)}cancel(t=null,e=0){var s,i,r;this.running=!1,this.cancelled=!0,(s=this.gfx)==null||s.endDrawing(),n(this,on)&&(window.cancelAnimationFrame(n(this,on)),p(this,on,null)),n(Nn,Er).delete(this._canvas),t||(t=new $g(`Rendering cancelled, page ${this._pageIndex+1}`,e)),this.callback(t),(r=(i=this.task).onError)==null||r.call(i,t)}operatorListChanged(){var t;if(!this.graphicsReady){this.graphicsReadyCallback||(this.graphicsReadyCallback=this._continueBound);return}(t=this.stepper)==null||t.updateOperatorList(this.operatorList),!this.running&&this._continue()}_continue(){this.running=!0,!this.cancelled&&(this.task.onContinue?this.task.onContinue(this._scheduleNextBound):this._scheduleNext())}_scheduleNext(){this._useRequestAnimationFrame?p(this,on,window.requestAnimationFrame(()=>{p(this,on,null),this._nextBound().catch(this._cancelBound)})):Promise.resolve().then(this._nextBound).catch(this._cancelBound)}async _next(){this.cancelled||(this.operatorListIdx=this.gfx.executeOperatorList(this.operatorList,this.operatorListIdx,this._continueBound,this.stepper,this._filteredOperationIndexes),this.operatorListIdx===this.operatorList.argsArray.length&&(this.running=!1,this.operatorList.lastChunk&&(this.gfx.endDrawing(),n(Nn,Er).delete(this._canvas),this.callback())))}};on=new WeakMap,Er=new WeakMap,d(Nn,Er,new WeakSet);let eg=Nn;const aw="5.4.149",ow="9e2e9e209";var Ae,Cr,vo,xt,tc,_o,li,ec,ln,Ze,sc,ic,sg,nc,ig,rc,ng,hi,Dn,ef,Rb,_s,xi;const ae=class ae{constructor({editor:t=null,uiManager:e=null}){d(this,ic);d(this,nc);d(this,rc);d(this,hi);d(this,ef);d(this,_s);d(this,Ae,null);d(this,Cr,null);d(this,vo,void 0);d(this,xt,null);d(this,tc,!1);d(this,_o,!1);d(this,li,null);d(this,ec,void 0);d(this,ln,null);d(this,Ze,null);var s,i;t?(p(this,_o,!1),p(this,li,t)):p(this,_o,!0),p(this,Ze,(t==null?void 0:t._uiManager)||e),p(this,ec,n(this,Ze)._eventBus),p(this,vo,((s=t==null?void 0:t.color)==null?void 0:s.toUpperCase())||((i=n(this,Ze))==null?void 0:i.highlightColors.values().next().value)||"#FFFF98"),n(ae,sc)||p(ae,sc,Object.freeze({blue:"pdfjs-editor-colorpicker-blue",green:"pdfjs-editor-colorpicker-green",pink:"pdfjs-editor-colorpicker-pink",red:"pdfjs-editor-colorpicker-red",yellow:"pdfjs-editor-colorpicker-yellow"}))}static get _keyboardManager(){return V(this,"_keyboardManager",new hd([[["Escape","mac+Escape"],ae.prototype._hideDropdownFromKeyboard],[[" ","mac+ "],ae.prototype._colorSelectFromKeyboard],[["ArrowDown","ArrowRight","mac+ArrowDown","mac+ArrowRight"],ae.prototype._moveToNext],[["ArrowUp","ArrowLeft","mac+ArrowUp","mac+ArrowLeft"],ae.prototype._moveToPrevious],[["Home","mac+Home"],ae.prototype._moveToBeginning],[["End","mac+End"],ae.prototype._moveToEnd]]))}renderButton(){const t=p(this,Ae,document.createElement("button"));t.className="colorPicker",t.tabIndex="0",t.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-button"),t.ariaHasPopup="true",n(this,li)&&(t.ariaControls=`${n(this,li).id}_colorpicker_dropdown`);const e=n(this,Ze)._signal;t.addEventListener("click",b(this,hi,Dn).bind(this),{signal:e}),t.addEventListener("keydown",b(this,rc,ng).bind(this),{signal:e});const s=p(this,Cr,document.createElement("span"));return s.className="swatch",s.ariaHidden="true",s.style.backgroundColor=n(this,vo),t.append(s),t}renderMainDropdown(){const t=p(this,xt,b(this,ic,sg).call(this));return t.ariaOrientation="horizontal",t.ariaLabelledBy="highlightColorPickerLabel",t}_colorSelectFromKeyboard(t){if(t.target===n(this,Ae)){b(this,hi,Dn).call(this,t);return}const e=t.target.getAttribute("data-color");e&&b(this,nc,ig).call(this,e,t)}_moveToNext(t){var e,s;if(!n(this,_s,xi)){b(this,hi,Dn).call(this,t);return}if(t.target===n(this,Ae)){(e=n(this,xt).firstChild)==null||e.focus();return}(s=t.target.nextSibling)==null||s.focus()}_moveToPrevious(t){var e,s;if(t.target===((e=n(this,xt))==null?void 0:e.firstChild)||t.target===n(this,Ae)){n(this,_s,xi)&&this._hideDropdownFromKeyboard();return}n(this,_s,xi)||b(this,hi,Dn).call(this,t),(s=t.target.previousSibling)==null||s.focus()}_moveToBeginning(t){var e;if(!n(this,_s,xi)){b(this,hi,Dn).call(this,t);return}(e=n(this,xt).firstChild)==null||e.focus()}_moveToEnd(t){var e;if(!n(this,_s,xi)){b(this,hi,Dn).call(this,t);return}(e=n(this,xt).lastChild)==null||e.focus()}hideDropdown(){var t,e;(t=n(this,xt))==null||t.classList.add("hidden"),n(this,Ae).ariaExpanded="false",(e=n(this,ln))==null||e.abort(),p(this,ln,null)}_hideDropdownFromKeyboard(){var t;if(!n(this,_o)){if(!n(this,_s,xi)){(t=n(this,li))==null||t.unselect();return}this.hideDropdown(),n(this,Ae).focus({preventScroll:!0,focusVisible:n(this,tc)})}}updateColor(t){if(n(this,Cr)&&(n(this,Cr).style.backgroundColor=t),!n(this,xt))return;const e=n(this,Ze).highlightColors.values();for(const s of n(this,xt).children)s.ariaSelected=e.next().value===t.toUpperCase()}destroy(){var t,e;(t=n(this,Ae))==null||t.remove(),p(this,Ae,null),p(this,Cr,null),(e=n(this,xt))==null||e.remove(),p(this,xt,null)}};Ae=new WeakMap,Cr=new WeakMap,vo=new WeakMap,xt=new WeakMap,tc=new WeakMap,_o=new WeakMap,li=new WeakMap,ec=new WeakMap,ln=new WeakMap,Ze=new WeakMap,sc=new WeakMap,ic=new WeakSet,sg=function(){const t=document.createElement("div"),e=n(this,Ze)._signal;t.addEventListener("contextmenu",je,{signal:e}),t.className="dropdown",t.role="listbox",t.ariaMultiSelectable="false",t.ariaOrientation="vertical",t.setAttribute("data-l10n-id","pdfjs-editor-colorpicker-dropdown"),n(this,li)&&(t.id=`${n(this,li).id}_colorpicker_dropdown`);for(const[s,i]of n(this,Ze).highlightColors){const r=document.createElement("button");r.tabIndex="0",r.role="option",r.setAttribute("data-color",i),r.title=s,r.setAttribute("data-l10n-id",n(ae,sc)[s]);const a=document.createElement("span");r.append(a),a.className="swatch",a.style.backgroundColor=i,r.ariaSelected=i===n(this,vo),r.addEventListener("click",b(this,nc,ig).bind(this,i),{signal:e}),t.append(r)}return t.addEventListener("keydown",b(this,rc,ng).bind(this),{signal:e}),t},nc=new WeakSet,ig=function(t,e){e.stopPropagation(),n(this,ec).dispatch("switchannotationeditorparams",{source:this,type:X.HIGHLIGHT_COLOR,value:t}),this.updateColor(t)},rc=new WeakSet,ng=function(t){ae._keyboardManager.exec(this,t)},hi=new WeakSet,Dn=function(t){if(n(this,_s,xi)){this.hideDropdown();return}if(p(this,tc,t.detail===0),n(this,ln)||(p(this,ln,new AbortController),window.addEventListener("pointerdown",b(this,ef,Rb).bind(this),{signal:n(this,Ze).combinedSignal(n(this,ln))})),n(this,Ae).ariaExpanded="true",n(this,xt)){n(this,xt).classList.remove("hidden");return}const e=p(this,xt,b(this,ic,sg).call(this));n(this,Ae).append(e)},ef=new WeakSet,Rb=function(t){var e;(e=n(this,xt))!=null&&e.contains(t.target)||this.hideDropdown()},_s=new WeakSet,xi=function(){return n(this,xt)&&!n(this,xt).classList.contains("hidden")},d(ae,sc,null);let eu=ae;var Ss,ac,So,oc;const On=class On{constructor(t){d(this,Ss,null);d(this,ac,null);d(this,So,null);p(this,ac,t),p(this,So,t._uiManager),n(On,oc)||p(On,oc,Object.freeze({freetext:"pdfjs-editor-color-picker-free-text-input",ink:"pdfjs-editor-color-picker-ink-input"}))}renderButton(){if(n(this,Ss))return n(this,Ss);const{editorType:t,colorType:e,colorValue:s}=n(this,ac),i=p(this,Ss,document.createElement("input"));return i.type="color",i.value=s||"#000000",i.className="basicColorPicker",i.tabIndex=0,i.setAttribute("data-l10n-id",n(On,oc)[t]),i.addEventListener("input",()=>{n(this,So).updateParams(e,i.value)},{signal:n(this,So)._signal}),i}update(t){n(this,Ss)&&(n(this,Ss).value=t)}destroy(){var t;(t=n(this,Ss))==null||t.remove(),p(this,Ss,null)}hideDropdown(){}};Ss=new WeakMap,ac=new WeakMap,So=new WeakMap,oc=new WeakMap,d(On,oc,null);let su=On;function wm(u){return Math.floor(Math.max(0,Math.min(1,u))*255).toString(16).padStart(2,"0")}function fl(u){return Math.max(0,Math.min(255,255*u))}class vm{static CMYK_G([t,e,s,i]){return["G",1-Math.min(1,.3*t+.59*s+.11*e+i)]}static G_CMYK([t]){return["CMYK",0,0,0,1-t]}static G_RGB([t]){return["RGB",t,t,t]}static G_rgb([t]){return t=fl(t),[t,t,t]}static G_HTML([t]){const e=wm(t);return`#${e}${e}${e}`}static RGB_G([t,e,s]){return["G",.3*t+.59*e+.11*s]}static RGB_rgb(t){return t.map(fl)}static RGB_HTML(t){return`#${t.map(wm).join("")}`}static T_HTML(){return"#00000000"}static T_rgb(){return[null]}static CMYK_RGB([t,e,s,i]){return["RGB",1-Math.min(1,t+i),1-Math.min(1,s+i),1-Math.min(1,e+i)]}static CMYK_rgb([t,e,s,i]){return[fl(1-Math.min(1,t+i)),fl(1-Math.min(1,s+i)),fl(1-Math.min(1,e+i))]}static CMYK_HTML(t){const e=this.CMYK_RGB(t).slice(1);return this.RGB_HTML(e)}static RGB_CMYK([t,e,s]){const i=1-t,r=1-e,a=1-s,o=Math.min(i,r,a);return["CMYK",i,r,a,o]}}class lw{create(t,e,s=!1){if(t<=0||e<=0)throw new Error("Invalid SVG dimensions");const i=this._createSVG("svg:svg");return i.setAttribute("version","1.1"),s||(i.setAttribute("width",`${t}px`),i.setAttribute("height",`${e}px`)),i.setAttribute("preserveAspectRatio","none"),i.setAttribute("viewBox",`0 0 ${t} ${e}`),i}createElement(t){if(typeof t!="string")throw new Error("Invalid SVG element type");return this._createSVG(t)}_createSVG(t){st("Abstract method `_createSVG` called.")}}class iu extends lw{_createSVG(t){return document.createElementNS(Is,t)}}class Db{static setupStorage(t,e,s,i,r){const a=i.getValue(e,{value:null});switch(s.name){case"textarea":if(a.value!==null&&(t.textContent=a.value),r==="print")break;t.addEventListener("input",o=>{i.setValue(e,{value:o.target.value})});break;case"input":if(s.attributes.type==="radio"||s.attributes.type==="checkbox"){if(a.value===s.attributes.xfaOn?t.setAttribute("checked",!0):a.value===s.attributes.xfaOff&&t.removeAttribute("checked"),r==="print")break;t.addEventListener("change",o=>{i.setValue(e,{value:o.target.checked?o.target.getAttribute("xfaOn"):o.target.getAttribute("xfaOff")})})}else{if(a.value!==null&&t.setAttribute("value",a.value),r==="print")break;t.addEventListener("input",o=>{i.setValue(e,{value:o.target.value})})}break;case"select":if(a.value!==null){t.setAttribute("value",a.value);for(const o of s.children)o.attributes.value===a.value?o.attributes.selected=!0:o.attributes.hasOwnProperty("selected")&&delete o.attributes.selected}t.addEventListener("input",o=>{const l=o.target.options,h=l.selectedIndex===-1?"":l[l.selectedIndex].value;i.setValue(e,{value:h})});break}}static setAttributes({html:t,element:e,storage:s=null,intent:i,linkService:r}){const{attributes:a}=e,o=t instanceof HTMLAnchorElement;a.type==="radio"&&(a.name=`${a.name}-${i}`);for(const[l,h]of Object.entries(a))if(h!=null)switch(l){case"class":h.length&&t.setAttribute(l,h.join(" "));break;case"dataId":break;case"id":t.setAttribute("data-element-id",h);break;case"style":Object.assign(t.style,h);break;case"textContent":t.textContent=h;break;default:(!o||l!=="href"&&l!=="newWindow")&&t.setAttribute(l,h)}o&&r.addLinkAttributes(t,a.href,a.newWindow),s&&a.dataId&&this.setupStorage(t,a.dataId,e,s)}static render(t){var f,g;const e=t.annotationStorage,s=t.linkService,i=t.xfaHtml,r=t.intent||"display",a=document.createElement(i.name);i.attributes&&this.setAttributes({html:a,element:i,intent:r,linkService:s});const o=r!=="richText",l=t.div;if(l.append(a),t.viewport){const m=`matrix(${t.viewport.transform.join(",")})`;l.style.transform=m}o&&l.setAttribute("class","xfaLayer xfaFont");const h=[];if(i.children.length===0){if(i.value){const m=document.createTextNode(i.value);a.append(m),o&&Ol.shouldBuildText(i.name)&&h.push(m)}return{textDivs:h}}const c=[[i,-1,a]];for(;c.length>0;){const[m,A,y]=c.at(-1);if(A+1===m.children.length){c.pop();continue}const v=m.children[++c.at(-1)[1]];if(v===null)continue;const{name:w}=v;if(w==="#text"){const _=document.createTextNode(v.value);h.push(_),y.append(_);continue}const S=(f=v==null?void 0:v.attributes)!=null&&f.xmlns?document.createElementNS(v.attributes.xmlns,w):document.createElement(w);if(y.append(S),v.attributes&&this.setAttributes({html:S,element:v,storage:e,intent:r,linkService:s}),((g=v.children)==null?void 0:g.length)>0)c.push([v,-1,S]);else if(v.value){const _=document.createTextNode(v.value);o&&Ol.shouldBuildText(w)&&h.push(_),S.append(_)}}for(const m of l.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea"))m.setAttribute("readOnly",!0);return{textDivs:h}}static update(t){const e=`matrix(${t.viewport.transform.join(",")})`;t.div.style.transform=e,t.div.hidden=!1}}const hw=9,oa=new WeakSet,cw=new Date().getTimezoneOffset()*60*1e3;class _m{static create(t){switch(t.data.annotationType){case wt.LINK:return new Vg(t);case wt.TEXT:return new dw(t);case wt.WIDGET:switch(t.data.fieldType){case"Tx":return new uw(t);case"Btn":return t.data.radioButton?new Nb(t):t.data.checkBox?new pw(t):new gw(t);case"Ch":return new mw(t);case"Sig":return new fw(t)}return new ha(t);case wt.POPUP:return new ag(t);case wt.FREETEXT:return new Ub(t);case wt.LINE:return new Aw(t);case wt.SQUARE:return new yw(t);case wt.CIRCLE:return new ww(t);case wt.POLYLINE:return new jb(t);case wt.CARET:return new _w(t);case wt.INK:return new Wg(t);case wt.POLYGON:return new vw(t);case wt.HIGHLIGHT:return new Vb(t);case wt.UNDERLINE:return new Sw(t);case wt.SQUIGGLY:return new Ew(t);case wt.STRIKEOUT:return new Cw(t);case wt.STAMP:return new Wb(t);case wt.FILEATTACHMENT:return new Tw(t);default:return new bt(t)}}}var Tr,Eo,ci,sf,Lb,lc,rg;const Zg=class Zg{constructor(t,{isRenderable:e=!1,ignoreBorder:s=!1,createQuadrilaterals:i=!1}={}){d(this,sf);d(this,lc);d(this,Tr,null);d(this,Eo,!1);d(this,ci,null);this.isRenderable=e,this.data=t.data,this.layer=t.layer,this.linkService=t.linkService,this.downloadManager=t.downloadManager,this.imageResourcesPath=t.imageResourcesPath,this.renderForms=t.renderForms,this.svgFactory=t.svgFactory,this.annotationStorage=t.annotationStorage,this.enableComment=t.enableComment,this.enableScripting=t.enableScripting,this.hasJSActions=t.hasJSActions,this._fieldObjects=t.fieldObjects,this.parent=t.parent,e&&(this.container=this._createContainer(s)),i&&this._createQuadrilaterals()}static _hasPopupData({contentsObj:t,richText:e}){return!!(t!=null&&t.str||e!=null&&e.str)}get _isEditable(){return this.data.isEditable}get hasPopupData(){return Zg._hasPopupData(this.data)}get hasCommentButton(){return this.enableComment&&this._isEditable&&this.hasPopupElement}get commentButtonPosition(){const{quadPoints:t,rect:e}=this.data;let s=-1/0,i=-1/0;if((t==null?void 0:t.length)>=8){for(let r=0;ri?(i=t[r+1],s=t[r+2]):t[r+1]===i&&(s=Math.max(s,t[r+2]));return[s,i]}return e?[e[2],e[3]]:null}get commentButtonColor(){if(!this.data.color)return null;const[t,e,s]=this.data.color,r=255*(1-(this.data.opacity??1));return b(this,sf,Lb).call(this,Math.min(t+r,255),Math.min(e+r,255),Math.min(s+r,255))}_normalizePoint(t){const{page:{view:e},viewport:{rawDims:{pageWidth:s,pageHeight:i,pageX:r,pageY:a}}}=this.parent;return t[1]=e[3]-t[1]+e[1],t[0]=100*(t[0]-r)/s,t[1]=100*(t[1]-a)/i,t}updateEdited(t){var r;if(!this.container)return;t.rect&&(n(this,Tr)||p(this,Tr,{rect:this.data.rect.slice(0)}));const{rect:e,popup:s}=t;e&&b(this,lc,rg).call(this,e);let i=((r=n(this,ci))==null?void 0:r.popup)||this.popup;!i&&(s!=null&&s.text)&&(this._createPopup(s),i=n(this,ci).popup),i&&(i.updateEdited(t),s!=null&&s.deleted&&(i.remove(),p(this,ci,null),this.popup=null))}resetEdited(){var t;n(this,Tr)&&(b(this,lc,rg).call(this,n(this,Tr).rect),(t=n(this,ci))==null||t.popup.resetEdited(),p(this,Tr,null))}_createContainer(t){const{data:e,parent:{page:s,viewport:i}}=this,r=document.createElement("section");r.setAttribute("data-annotation-id",e.id),!(this instanceof ha)&&!(this instanceof Vg)&&(r.tabIndex=0);const{style:a}=r;if(a.zIndex=this.parent.zIndex,this.parent.zIndex+=2,e.alternativeText&&(r.title=e.alternativeText),e.noRotate&&r.classList.add("norotate"),!e.rect||this instanceof ag){const{rotation:y}=e;return!e.hasOwnCanvas&&y!==0&&this.setRotation(y,r),r}const{width:o,height:l}=this;if(!t&&e.borderStyle.width>0){a.borderWidth=`${e.borderStyle.width}px`;const y=e.borderStyle.horizontalCornerRadius,v=e.borderStyle.verticalCornerRadius;if(y>0||v>0){const S=`calc(${y}px * var(--total-scale-factor)) / calc(${v}px * var(--total-scale-factor))`;a.borderRadius=S}else if(this instanceof Nb){const S=`calc(${o}px * var(--total-scale-factor)) / calc(${l}px * var(--total-scale-factor))`;a.borderRadius=S}switch(e.borderStyle.style){case da.SOLID:a.borderStyle="solid";break;case da.DASHED:a.borderStyle="dashed";break;case da.BEVELED:z("Unimplemented border style: beveled");break;case da.INSET:z("Unimplemented border style: inset");break;case da.UNDERLINE:a.borderBottomStyle="solid";break}const w=e.borderColor||null;w?(p(this,Eo,!0),a.borderColor=I.makeHexColor(w[0]|0,w[1]|0,w[2]|0)):a.borderWidth=0}const h=I.normalizeRect([e.rect[0],s.view[3]-e.rect[1]+s.view[1],e.rect[2],s.view[3]-e.rect[3]+s.view[1]]),{pageWidth:c,pageHeight:f,pageX:g,pageY:m}=i.rawDims;a.left=`${100*(h[0]-g)/c}%`,a.top=`${100*(h[1]-m)/f}%`;const{rotation:A}=e;return e.hasOwnCanvas||A===0?(a.width=`${100*o/c}%`,a.height=`${100*l/f}%`):this.setRotation(A,r),r}setRotation(t,e=this.container){if(!this.data.rect)return;const{pageWidth:s,pageHeight:i}=this.parent.viewport.rawDims;let{width:r,height:a}=this;t%180!==0&&([r,a]=[a,r]),e.style.width=`${100*r/s}%`,e.style.height=`${100*a/i}%`,e.setAttribute("data-main-rotation",(360-t)%360)}get _commonActions(){const t=(e,s,i)=>{const r=i.detail[e],a=r[0],o=r.slice(1);i.target.style[s]=vm[`${a}_HTML`](o),this.annotationStorage.setValue(this.data.id,{[s]:vm[`${a}_rgb`](o)})};return V(this,"_commonActions",{display:e=>{const{display:s}=e.detail,i=s%2===1;this.container.style.visibility=i?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noView:i,noPrint:s===1||s===2})},print:e=>{this.annotationStorage.setValue(this.data.id,{noPrint:!e.detail.print})},hidden:e=>{const{hidden:s}=e.detail;this.container.style.visibility=s?"hidden":"visible",this.annotationStorage.setValue(this.data.id,{noPrint:s,noView:s})},focus:e=>{setTimeout(()=>e.target.focus({preventScroll:!1}),0)},userName:e=>{e.target.title=e.detail.userName},readonly:e=>{e.target.disabled=e.detail.readonly},required:e=>{this._setRequired(e.target,e.detail.required)},bgColor:e=>{t("bgColor","backgroundColor",e)},fillColor:e=>{t("fillColor","backgroundColor",e)},fgColor:e=>{t("fgColor","color",e)},textColor:e=>{t("textColor","color",e)},borderColor:e=>{t("borderColor","borderColor",e)},strokeColor:e=>{t("strokeColor","borderColor",e)},rotation:e=>{const s=e.detail.rotation;this.setRotation(s),this.annotationStorage.setValue(this.data.id,{rotation:s})}})}_dispatchEventFromSandbox(t,e){const s=this._commonActions;for(const i of Object.keys(e.detail)){const r=t[i]||s[i];r==null||r(e)}}_setDefaultPropertiesFromJS(t){if(!this.enableScripting)return;const e=this.annotationStorage.getRawValue(this.data.id);if(!e)return;const s=this._commonActions;for(const[i,r]of Object.entries(e)){const a=s[i];if(a){const o={detail:{[i]:r},target:t};a(o),delete e[i]}}}_createQuadrilaterals(){if(!this.container)return;const{quadPoints:t}=this.data;if(!t)return;const[e,s,i,r]=this.data.rect.map(y=>Math.fround(y));if(t.length===8){const[y,v,w,S]=t.subarray(2,6);if(i===y&&r===v&&e===w&&s===S)return}const{style:a}=this.container;let o;if(n(this,Eo)){const{borderColor:y,borderWidth:v}=a;a.borderWidth=0,o=["url('data:image/svg+xml;utf8,",'',``],this.container.classList.add("hasBorder")}const l=i-e,h=r-s,{svgFactory:c}=this,f=c.createElement("svg");f.classList.add("quadrilateralsContainer"),f.setAttribute("width",0),f.setAttribute("height",0),f.role="none";const g=c.createElement("defs");f.append(g);const m=c.createElement("clipPath"),A=`clippath_${this.data.id}`;m.setAttribute("id",A),m.setAttribute("clipPathUnits","objectBoundingBox"),g.append(m);for(let y=2,v=t.length;y`)}n(this,Eo)&&(o.push("')"),a.backgroundImage=o.join("")),this.container.append(f),this.container.style.clipPath=`url(#${A})`}_createPopup(t=null){const{data:e}=this;let s,i;t?(s={str:t.text},i=t.date):(s=e.contentsObj,i=e.modificationDate);const r=p(this,ci,new ag({data:{color:e.color,titleObj:e.titleObj,modificationDate:i,contentsObj:s,richText:e.richText,parentRect:e.rect,borderStyle:0,id:`popup_${e.id}`,rotation:e.rotation,noRotate:!0},linkService:this.linkService,parent:this.parent,elements:[this]}));this.parent.div.append(r.render())}get hasPopupElement(){return!!(n(this,ci)||this.popup||this.data.popupRef)}render(){st("Abstract method `AnnotationElement.render` called")}_getElementsByName(t,e=null){const s=[];if(this._fieldObjects){const i=this._fieldObjects[t];if(i)for(const{page:r,id:a,exportValues:o}of i){if(r===-1||a===e)continue;const l=typeof o=="string"?o:null,h=document.querySelector(`[data-element-id="${a}"]`);if(h&&!oa.has(h)){z(`_getElementsByName - element not allowed: ${a}`);continue}s.push({id:a,exportValue:l,domElement:h})}return s}for(const i of document.getElementsByName(t)){const{exportValue:r}=i,a=i.getAttribute("data-element-id");a!==e&&oa.has(i)&&s.push({id:a,exportValue:r,domElement:i})}return s}show(){var t;this.container&&(this.container.hidden=!1),(t=this.popup)==null||t.maybeShow()}hide(){var t;this.container&&(this.container.hidden=!0),(t=this.popup)==null||t.forceHide()}getElementsToTriggerPopup(){return this.container}addHighlightArea(){const t=this.getElementsToTriggerPopup();if(Array.isArray(t))for(const e of t)e.classList.add("highlightArea");else t.classList.add("highlightArea")}_editOnDoubleClick(){if(!this._isEditable)return;const{annotationEditorType:t,data:{id:e}}=this;this.container.addEventListener("dblclick",()=>{var s;(s=this.linkService.eventBus)==null||s.dispatch("switchannotationeditormode",{source:this,mode:t,editId:e,mustEnterInEditMode:!0})})}get width(){return this.data.rect[2]-this.data.rect[0]}get height(){return this.data.rect[3]-this.data.rect[1]}};Tr=new WeakMap,Eo=new WeakMap,ci=new WeakMap,sf=new WeakSet,Lb=function(t,e,s){t/=255,e/=255,s/=255;const i=Math.max(t,e,s),r=Math.min(t,e,s),a=(i+r)/2,o=((1+Math.sqrt(a))/2*100).toFixed(2);if(i===r)return`hsl(0, 0%, ${o}%)`;const l=i-r;let h;i===t?h=(e-s)/l+(e(s&&this.linkService.goToDestination(s),!1),(s||s==="")&&b(this,di,Ln).call(this),i&&(e.title=i)}_bindNamedAction(e,s,i=""){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeNamedAction(s),!1),i&&(e.title=i),b(this,di,Ln).call(this)}_bindJSAction(e,s){e.href=this.linkService.getAnchorUrl("");const i=new Map([["Action","onclick"],["Mouse Up","onmouseup"],["Mouse Down","onmousedown"]]);for(const r of Object.keys(s.actions)){const a=i.get(r);a&&(e[a]=()=>{var o;return(o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:s.id,name:r}}),!1})}s.overlaidText&&(e.title=s.overlaidText),e.onclick||(e.onclick=()=>!1),b(this,di,Ln).call(this)}_bindResetFormAction(e,s){const i=e.onclick;if(i||(e.href=this.linkService.getAnchorUrl("")),b(this,di,Ln).call(this),!this._fieldObjects){z('_bindResetFormAction - "resetForm" action not supported, ensure that the `fieldObjects` parameter is provided.'),i||(e.onclick=()=>!1);return}e.onclick=()=>{var f;i==null||i();const{fields:r,refs:a,include:o}=s,l=[];if(r.length!==0||a.length!==0){const g=new Set(a);for(const m of r){const A=this._fieldObjects[m]||[];for(const{id:y}of A)g.add(y)}for(const m of Object.values(this._fieldObjects))for(const A of m)g.has(A.id)===o&&l.push(A)}else for(const g of Object.values(this._fieldObjects))l.push(...g);const h=this.annotationStorage,c=[];for(const g of l){const{id:m}=g;switch(c.push(m),g.type){case"text":{const y=g.defaultValue||"";h.setValue(m,{value:y});break}case"checkbox":case"radiobutton":{const y=g.defaultValue===g.exportValues;h.setValue(m,{value:y});break}case"combobox":case"listbox":{const y=g.defaultValue||"";h.setValue(m,{value:y});break}default:continue}const A=document.querySelector(`[data-element-id="${m}"]`);if(A){if(!oa.has(A)){z(`_bindResetFormAction - element not allowed: ${m}`);continue}}else continue;A.dispatchEvent(new Event("resetform"))}return this.enableScripting&&((f=this.linkService.eventBus)==null||f.dispatch("dispatcheventinsandbox",{source:this,detail:{id:"app",ids:c,name:"ResetForm"}})),!1}}}di=new WeakSet,Ln=function(){this.container.setAttribute("data-internal-link","")},nf=new WeakSet,Ib=function(e,s,i="",r=null){e.href=this.linkService.getAnchorUrl(""),s.description?e.title=s.description:i&&(e.title=i),e.onclick=()=>{var a;return(a=this.downloadManager)==null||a.openOrDownloadData(s.content,s.filename,r),!1},b(this,di,Ln).call(this)},rf=new WeakSet,Fb=function(e,s,i=""){e.href=this.linkService.getAnchorUrl(""),e.onclick=()=>(this.linkService.executeSetOCGState(s),!1),i&&(e.title=i),b(this,di,Ln).call(this)};class dw extends bt{constructor(t){super(t,{isRenderable:!0})}render(){this.container.classList.add("textAnnotation");const t=document.createElement("img");return t.src=this.imageResourcesPath+"annotation-"+this.data.name.toLowerCase()+".svg",t.setAttribute("data-l10n-id","pdfjs-text-annotation-type"),t.setAttribute("data-l10n-args",JSON.stringify({type:this.data.name})),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this.container.append(t),this.container}}class ha extends bt{render(){return this.container}showElementAndHideCanvas(t){var e;this.data.hasOwnCanvas&&(((e=t.previousSibling)==null?void 0:e.nodeName)==="CANVAS"&&(t.previousSibling.hidden=!0),t.hidden=!1)}_getKeyModifier(t){return Wt.platform.isMac?t.metaKey:t.ctrlKey}_setEventListener(t,e,s,i,r){s.includes("mouse")?t.addEventListener(s,a=>{var o;(o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:i,value:r(a),shift:a.shiftKey,modifier:this._getKeyModifier(a)}})}):t.addEventListener(s,a=>{var o;if(s==="blur"){if(!e.focused||!a.relatedTarget)return;e.focused=!1}else if(s==="focus"){if(e.focused)return;e.focused=!0}r&&((o=this.linkService.eventBus)==null||o.dispatch("dispatcheventinsandbox",{source:this,detail:{id:this.data.id,name:i,value:r(a)}}))})}_setEventListeners(t,e,s,i){var r,a,o;for(const[l,h]of s)(h==="Action"||(r=this.data.actions)!=null&&r[h])&&((h==="Focus"||h==="Blur")&&(e||(e={focused:!1})),this._setEventListener(t,e,l,h,i),h==="Focus"&&!((a=this.data.actions)!=null&&a.Blur)?this._setEventListener(t,e,"blur","Blur",null):h==="Blur"&&!((o=this.data.actions)!=null&&o.Focus)&&this._setEventListener(t,e,"focus","Focus",null))}_setBackgroundColor(t){const e=this.data.backgroundColor||null;t.style.backgroundColor=e===null?"transparent":I.makeHexColor(e[0],e[1],e[2])}_setTextStyle(t){const e=["left","center","right"],{fontColor:s}=this.data.defaultAppearanceData,i=this.data.defaultAppearanceData.fontSize||hw,r=t.style;let a;const o=2,l=h=>Math.round(10*h)/10;if(this.data.multiLine){const h=Math.abs(this.data.rect[3]-this.data.rect[1]-o),c=Math.round(h/(up*i))||1,f=h/c;a=Math.min(i,l(f/up))}else{const h=Math.abs(this.data.rect[3]-this.data.rect[1]-o);a=Math.min(i,l(h/up))}r.fontSize=`calc(${a}px * var(--total-scale-factor))`,r.color=I.makeHexColor(s[0],s[1],s[2]),this.data.textAlignment!==null&&(r.textAlign=e[this.data.textAlignment])}_setRequired(t,e){e?t.setAttribute("required",!0):t.removeAttribute("required"),t.setAttribute("aria-required",e)}}class uw extends ha{constructor(t){const e=t.renderForms||t.data.hasOwnCanvas||!t.data.hasAppearance&&!!t.data.fieldValue;super(t,{isRenderable:e})}setPropertyOnSiblings(t,e,s,i){const r=this.annotationStorage;for(const a of this._getElementsByName(t.name,t.id))a.domElement&&(a.domElement[e]=s),r.setValue(a.id,{[i]:s})}render(){var i,r;const t=this.annotationStorage,e=this.data.id;this.container.classList.add("textWidgetAnnotation");let s=null;if(this.renderForms){const a=t.getValue(e,{value:this.data.fieldValue});let o=a.value||"";const l=t.getValue(e,{charLimit:this.data.maxLen}).charLimit;l&&o.length>l&&(o=o.slice(0,l));let h=a.formattedValue||((i=this.data.textContent)==null?void 0:i.join(` `))||null;h&&this.data.comb&&(h=h.replaceAll(/\s+/g,""));const c={userValue:o,formattedValue:h,lastCommittedValue:null,commitKey:1,focused:!1};this.data.multiLine?(s=document.createElement("textarea"),s.textContent=h??o,this.data.doNotScroll&&(s.style.overflowY="hidden")):(s=document.createElement("input"),s.type=this.data.password?"password":"text",s.setAttribute("value",h??o),this.data.doNotScroll&&(s.style.overflowX="hidden")),this.data.hasOwnCanvas&&(s.hidden=!0),oa.add(s),s.setAttribute("data-element-id",e),s.disabled=this.data.readOnly,s.name=this.data.fieldName,s.tabIndex=0;const{datetimeFormat:f,datetimeType:g,timeStep:m}=this.data,A=!!g&&this.enableScripting;f&&(s.title=f),this._setRequired(s,this.data.required),l&&(s.maxLength=l),s.addEventListener("input",v=>{t.setValue(e,{value:v.target.value}),this.setPropertyOnSiblings(s,"value",v.target.value,"value"),c.formattedValue=null}),s.addEventListener("resetform",v=>{const w=this.data.defaultFieldValue??"";s.value=c.userValue=w,c.formattedValue=null});let y=v=>{const{formattedValue:w}=c;w!=null&&(v.target.value=w),v.target.scrollLeft=0};if(this.enableScripting&&this.hasJSActions){s.addEventListener("focus",w=>{var _;if(c.focused)return;const{target:S}=w;if(A&&(S.type=g,m&&(S.step=m)),c.userValue){const E=c.userValue;if(A)if(g==="time"){const C=new Date(E),T=[C.getHours(),C.getMinutes(),C.getSeconds()];S.value=T.map(x=>x.toString().padStart(2,"0")).join(":")}else S.value=new Date(E-cw).toISOString().split(g==="date"?"T":".",1)[0];else S.value=E}c.lastCommittedValue=S.value,c.commitKey=1,(_=this.data.actions)!=null&&_.Focus||(c.focused=!0)}),s.addEventListener("updatefromsandbox",w=>{this.showElementAndHideCanvas(w.target);const S={value(_){c.userValue=_.detail.value??"",A||t.setValue(e,{value:c.userValue.toString()}),_.target.value=c.userValue},formattedValue(_){const{formattedValue:E}=_.detail;c.formattedValue=E,E!=null&&_.target!==document.activeElement&&(_.target.value=E);const C={formattedValue:E};A&&(C.value=E),t.setValue(e,C)},selRange(_){_.target.setSelectionRange(..._.detail.selRange)},charLimit:_=>{var x;const{charLimit:E}=_.detail,{target:C}=_;if(E===0){C.removeAttribute("maxLength");return}C.setAttribute("maxLength",E);let T=c.userValue;!T||T.length<=E||(T=T.slice(0,E),C.value=c.userValue=T,t.setValue(e,{value:T}),(x=this.linkService.eventBus)==null||x.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:T,willCommit:!0,commitKey:1,selStart:C.selectionStart,selEnd:C.selectionEnd}}))}};this._dispatchEventFromSandbox(S,w)}),s.addEventListener("keydown",w=>{var E;c.commitKey=1;let S=-1;if(w.key==="Escape"?S=0:w.key==="Enter"&&!this.data.multiLine?S=2:w.key==="Tab"&&(c.commitKey=3),S===-1)return;const{value:_}=w.target;c.lastCommittedValue!==_&&(c.lastCommittedValue=_,c.userValue=_,(E=this.linkService.eventBus)==null||E.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:_,willCommit:!0,commitKey:S,selStart:w.target.selectionStart,selEnd:w.target.selectionEnd}}))});const v=y;y=null,s.addEventListener("blur",w=>{var E,C;if(!c.focused||!w.relatedTarget)return;(E=this.data.actions)!=null&&E.Blur||(c.focused=!1);const{target:S}=w;let{value:_}=S;if(A){if(_&&g==="time"){const T=_.split(":").map(x=>parseInt(x,10));_=new Date(2e3,0,1,T[0],T[1],T[2]||0).valueOf(),S.step=""}else _=new Date(_).valueOf();S.type="text"}c.userValue=_,c.lastCommittedValue!==_&&((C=this.linkService.eventBus)==null||C.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:_,willCommit:!0,commitKey:c.commitKey,selStart:w.target.selectionStart,selEnd:w.target.selectionEnd}})),v(w)}),(r=this.data.actions)!=null&&r.Keystroke&&s.addEventListener("beforeinput",w=>{var M;c.lastCommittedValue=null;const{data:S,target:_}=w,{value:E,selectionStart:C,selectionEnd:T}=_;let x=C,P=T;switch(w.inputType){case"deleteWordBackward":{const D=E.substring(0,C).match(/\w*[^\w]*$/);D&&(x-=D[0].length);break}case"deleteWordForward":{const D=E.substring(C).match(/^[^\w]*\w*/);D&&(P+=D[0].length);break}case"deleteContentBackward":C===T&&(x-=1);break;case"deleteContentForward":C===T&&(P+=1);break}w.preventDefault(),(M=this.linkService.eventBus)==null||M.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:E,change:S||"",willCommit:!1,selStart:x,selEnd:P}})}),this._setEventListeners(s,c,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],w=>w.target.value)}if(y&&s.addEventListener("blur",y),this.data.comb){const w=(this.data.rect[2]-this.data.rect[0])/l;s.classList.add("comb"),s.style.letterSpacing=`calc(${w}px * var(--total-scale-factor) - 1ch)`}}else s=document.createElement("div"),s.textContent=this.data.fieldValue,s.style.verticalAlign="middle",s.style.display="table-cell",this.data.hasOwnCanvas&&(s.hidden=!0);return this._setTextStyle(s),this._setBackgroundColor(s),this._setDefaultPropertiesFromJS(s),this.container.append(s),this.container}}class fw extends ha{constructor(t){super(t,{isRenderable:!!t.data.hasOwnCanvas})}}class pw extends ha{constructor(t){super(t,{isRenderable:t.renderForms})}render(){const t=this.annotationStorage,e=this.data,s=e.id;let i=t.getValue(s,{value:e.exportValue===e.fieldValue}).value;typeof i=="string"&&(i=i!=="Off",t.setValue(s,{value:i})),this.container.classList.add("buttonWidgetAnnotation","checkBox");const r=document.createElement("input");return oa.add(r),r.setAttribute("data-element-id",s),r.disabled=e.readOnly,this._setRequired(r,this.data.required),r.type="checkbox",r.name=e.fieldName,i&&r.setAttribute("checked",!0),r.setAttribute("exportValue",e.exportValue),r.tabIndex=0,r.addEventListener("change",a=>{const{name:o,checked:l}=a.target;for(const h of this._getElementsByName(o,s)){const c=l&&h.exportValue===e.exportValue;h.domElement&&(h.domElement.checked=c),t.setValue(h.id,{value:c})}t.setValue(s,{value:l})}),r.addEventListener("resetform",a=>{const o=e.defaultFieldValue||"Off";a.target.checked=o===e.exportValue}),this.enableScripting&&this.hasJSActions&&(r.addEventListener("updatefromsandbox",a=>{const o={value(l){l.target.checked=l.detail.value!=="Off",t.setValue(s,{value:l.target.checked})}};this._dispatchEventFromSandbox(o,a)}),this._setEventListeners(r,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],a=>a.target.checked)),this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class Nb extends ha{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("buttonWidgetAnnotation","radioButton");const t=this.annotationStorage,e=this.data,s=e.id;let i=t.getValue(s,{value:e.fieldValue===e.buttonValue}).value;if(typeof i=="string"&&(i=i!==e.buttonValue,t.setValue(s,{value:i})),i)for(const a of this._getElementsByName(e.fieldName,s))t.setValue(a.id,{value:!1});const r=document.createElement("input");if(oa.add(r),r.setAttribute("data-element-id",s),r.disabled=e.readOnly,this._setRequired(r,this.data.required),r.type="radio",r.name=e.fieldName,i&&r.setAttribute("checked",!0),r.tabIndex=0,r.addEventListener("change",a=>{const{name:o,checked:l}=a.target;for(const h of this._getElementsByName(o,s))t.setValue(h.id,{value:!1});t.setValue(s,{value:l})}),r.addEventListener("resetform",a=>{const o=e.defaultFieldValue;a.target.checked=o!=null&&o===e.buttonValue}),this.enableScripting&&this.hasJSActions){const a=e.buttonValue;r.addEventListener("updatefromsandbox",o=>{const l={value:h=>{const c=a===h.detail.value;for(const f of this._getElementsByName(h.target.name)){const g=c&&f.id===s;f.domElement&&(f.domElement.checked=g),t.setValue(f.id,{value:g})}}};this._dispatchEventFromSandbox(l,o)}),this._setEventListeners(r,null,[["change","Validate"],["change","Action"],["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"]],o=>o.target.checked)}return this._setBackgroundColor(r),this._setDefaultPropertiesFromJS(r),this.container.append(r),this.container}}class gw extends Vg{constructor(t){super(t,{ignoreBorder:t.data.hasAppearance})}render(){const t=super.render();t.classList.add("buttonWidgetAnnotation","pushButton");const e=t.lastChild;return this.enableScripting&&this.hasJSActions&&e&&(this._setDefaultPropertiesFromJS(e),e.addEventListener("updatefromsandbox",s=>{this._dispatchEventFromSandbox({},s)})),t}}class mw extends ha{constructor(t){super(t,{isRenderable:t.renderForms})}render(){this.container.classList.add("choiceWidgetAnnotation");const t=this.annotationStorage,e=this.data.id,s=t.getValue(e,{value:this.data.fieldValue}),i=document.createElement("select");oa.add(i),i.setAttribute("data-element-id",e),i.disabled=this.data.readOnly,this._setRequired(i,this.data.required),i.name=this.data.fieldName,i.tabIndex=0;let r=this.data.combo&&this.data.options.length>0;this.data.combo||(i.size=this.data.options.length,this.data.multiSelect&&(i.multiple=!0)),i.addEventListener("resetform",c=>{const f=this.data.defaultFieldValue;for(const g of i.options)g.selected=g.value===f});for(const c of this.data.options){const f=document.createElement("option");f.textContent=c.displayValue,f.value=c.exportValue,s.value.includes(c.exportValue)&&(f.setAttribute("selected",!0),r=!1),i.append(f)}let a=null;if(r){const c=document.createElement("option");c.value=" ",c.setAttribute("hidden",!0),c.setAttribute("selected",!0),i.prepend(c),a=()=>{c.remove(),i.removeEventListener("input",a),a=null},i.addEventListener("input",a)}const o=c=>{const f=c?"value":"textContent",{options:g,multiple:m}=i;return m?Array.prototype.filter.call(g,A=>A.selected).map(A=>A[f]):g.selectedIndex===-1?null:g[g.selectedIndex][f]};let l=o(!1);const h=c=>{const f=c.target.options;return Array.prototype.map.call(f,g=>({displayValue:g.textContent,exportValue:g.value}))};return this.enableScripting&&this.hasJSActions?(i.addEventListener("updatefromsandbox",c=>{const f={value(g){a==null||a();const m=g.detail.value,A=new Set(Array.isArray(m)?m:[m]);for(const y of i.options)y.selected=A.has(y.value);t.setValue(e,{value:o(!0)}),l=o(!1)},multipleSelection(g){i.multiple=!0},remove(g){const m=i.options,A=g.detail.remove;m[A].selected=!1,i.remove(A),m.length>0&&Array.prototype.findIndex.call(m,v=>v.selected)===-1&&(m[0].selected=!0),t.setValue(e,{value:o(!0),items:h(g)}),l=o(!1)},clear(g){for(;i.length!==0;)i.remove(0);t.setValue(e,{value:null,items:[]}),l=o(!1)},insert(g){const{index:m,displayValue:A,exportValue:y}=g.detail.insert,v=i.children[m],w=document.createElement("option");w.textContent=A,w.value=y,v?v.before(w):i.append(w),t.setValue(e,{value:o(!0),items:h(g)}),l=o(!1)},items(g){const{items:m}=g.detail;for(;i.length!==0;)i.remove(0);for(const A of m){const{displayValue:y,exportValue:v}=A,w=document.createElement("option");w.textContent=y,w.value=v,i.append(w)}i.options.length>0&&(i.options[0].selected=!0),t.setValue(e,{value:o(!0),items:h(g)}),l=o(!1)},indices(g){const m=new Set(g.detail.indices);for(const A of g.target.options)A.selected=m.has(A.index);t.setValue(e,{value:o(!0)}),l=o(!1)},editable(g){g.target.disabled=!g.detail.editable}};this._dispatchEventFromSandbox(f,c)}),i.addEventListener("input",c=>{var m;const f=o(!0),g=o(!1);t.setValue(e,{value:f}),c.preventDefault(),(m=this.linkService.eventBus)==null||m.dispatch("dispatcheventinsandbox",{source:this,detail:{id:e,name:"Keystroke",value:l,change:g,changeEx:f,willCommit:!1,commitKey:1,keyDown:!1}})}),this._setEventListeners(i,null,[["focus","Focus"],["blur","Blur"],["mousedown","Mouse Down"],["mouseenter","Mouse Enter"],["mouseleave","Mouse Exit"],["mouseup","Mouse Up"],["input","Action"],["input","Validate"]],c=>c.target.value)):i.addEventListener("input",function(c){t.setValue(e,{value:o(!0)})}),this.data.combo&&this._setTextStyle(i),this._setBackgroundColor(i),this._setDefaultPropertiesFromJS(i),this.container.append(i),this.container}}class ag extends bt{constructor(t){const{data:e,elements:s}=t;super(t,{isRenderable:bt._hasPopupData(e)}),this.elements=s,this.popup=null}render(){const{container:t}=this;t.classList.add("popupAnnotation"),t.role="comment";const e=this.popup=new bw({container:this.container,color:this.data.color,titleObj:this.data.titleObj,modificationDate:this.data.modificationDate||this.data.creationDate,contentsObj:this.data.contentsObj,richText:this.data.richText,rect:this.data.rect,parentRect:this.data.parentRect||null,parent:this.parent,elements:this.elements,open:this.data.open,eventBus:this.linkService.eventBus}),s=[];for(const i of this.elements)i.popup=e,i.container.ariaHasPopup="dialog",s.push(i.data.id),i.addHighlightArea();return this.container.setAttribute("aria-controls",s.map(i=>`${Hg}${i}`).join(",")),this.container}}var xr,af,of,kr,Co,ft,ui,hn,fi,hc,cc,To,Es,ye,pi,gi,dc,cn,xo,uc,mi,ko,Pr,dn,Po,Dd,lf,Ob,hf,Bb,Mo,Ld,fc,og,cf,Hb,df,$b,uf,zb,ff,Gb,Ro,Id,Do,Fd,pc,lg;class bw{constructor({container:t,color:e,elements:s,titleObj:i,modificationDate:r,contentsObj:a,richText:o,parent:l,rect:h,parentRect:c,open:f,eventBus:g=null}){d(this,Po);d(this,lf);d(this,hf);d(this,Mo);d(this,fc);d(this,cf);d(this,df);d(this,uf);d(this,ff);d(this,Ro);d(this,Do);d(this,pc);d(this,xr,b(this,uf,zb).bind(this));d(this,af,b(this,pc,lg).bind(this));d(this,of,b(this,Do,Fd).bind(this));d(this,kr,b(this,Ro,Id).bind(this));d(this,Co,null);d(this,ft,null);d(this,ui,null);d(this,hn,null);d(this,fi,null);d(this,hc,null);d(this,cc,null);d(this,To,null);d(this,Es,!1);d(this,ye,null);d(this,pi,null);d(this,gi,null);d(this,dc,null);d(this,cn,null);d(this,xo,null);d(this,uc,null);d(this,mi,null);d(this,ko,null);d(this,Pr,null);d(this,dn,!1);p(this,ft,t),p(this,ko,i),p(this,ui,a),p(this,mi,o),p(this,cc,l),p(this,Co,e),p(this,uc,h),p(this,To,c),p(this,fi,s),p(this,hc,g),p(this,hn,Qd.toDateObject(r)),this.trigger=s.flatMap(m=>m.getElementsToTriggerPopup()),b(this,Po,Dd).call(this),n(this,ft).hidden=!0,f&&b(this,Ro,Id).call(this)}render(){var i;if(n(this,ye))return;const t=p(this,ye,document.createElement("div"));if(t.className="popup",n(this,Co)){const r=t.style.outlineColor=I.makeHexColor(...n(this,Co));t.style.backgroundColor=`color-mix(in srgb, ${r} 30%, white)`}const e=document.createElement("span");if(e.className="header",(i=n(this,ko))!=null&&i.str){const r=document.createElement("span");r.className="title",e.append(r),{dir:r.dir,str:r.textContent}=n(this,ko)}if(t.append(e),n(this,hn)){const r=document.createElement("time");r.className="popupDate",r.setAttribute("data-l10n-id","pdfjs-annotation-date-time-string"),r.setAttribute("data-l10n-args",JSON.stringify({dateObj:n(this,hn).valueOf()})),r.dateTime=n(this,hn).toISOString(),e.append(r)}const s=n(this,Mo,Ld);if(s)Db.render({xfaHtml:s,intent:"richText",div:t}),t.lastChild.classList.add("richText","popupContent");else{const r=this._formatContents(n(this,ui));t.append(r)}n(this,ft).append(t)}_formatContents({str:t,dir:e}){const s=document.createElement("p");s.classList.add("popupContent"),s.dir=e;const i=t.split(/(?:\r\n?|\n)/);for(let r=0,a=i.length;re.hasCommentButton);t&&(p(this,cn,t._normalizePoint(t.commentButtonPosition)),p(this,xo,t.commentButtonColor))},hf=new WeakSet,Bb=function(){if(n(this,dc)||(n(this,cn)||b(this,lf,Ob).call(this),!n(this,cn)))return;const t=p(this,dc,document.createElement("button"));t.className="annotationCommentButton";const e=n(this,fi)[0].container;t.style.zIndex=e.style.zIndex+1,t.tabIndex=0;const{signal:s}=n(this,pi);t.addEventListener("hover",n(this,kr),{signal:s}),t.addEventListener("keydown",n(this,xr),{signal:s}),t.addEventListener("click",()=>{var o;const[{data:{id:r},annotationEditorType:a}]=n(this,fi);(o=n(this,hc))==null||o.dispatch("switchannotationeditormode",{source:this,editId:r,mode:a,editComment:!0})},{signal:s});const{style:i}=t;i.left=`calc(${n(this,cn)[0]}%)`,i.top=`calc(${n(this,cn)[1]}% - var(--comment-button-dim))`,n(this,xo)&&(i.backgroundColor=n(this,xo)),e.after(t)},Mo=new WeakSet,Ld=function(){const t=n(this,mi),e=n(this,ui);return t!=null&&t.str&&(!(e!=null&&e.str)||e.str===t.str)&&n(this,mi).html||null},fc=new WeakSet,og=function(){var t,e,s;return((s=(e=(t=n(this,Mo,Ld))==null?void 0:t.attributes)==null?void 0:e.style)==null?void 0:s.fontSize)||0},cf=new WeakSet,Hb=function(){var t,e,s;return((s=(e=(t=n(this,Mo,Ld))==null?void 0:t.attributes)==null?void 0:e.style)==null?void 0:s.color)||null},df=new WeakSet,$b=function(t){const e=[],s={str:t,html:{name:"div",attributes:{dir:"auto"},children:[{name:"p",children:e}]}},i={style:{color:n(this,cf,Hb),fontSize:n(this,fc,og)?`calc(${n(this,fc,og)}px * var(--total-scale-factor))`:""}};for(const r of t.split(` `))e.push({name:"span",value:r,attributes:i});return s},uf=new WeakSet,zb=function(t){t.altKey||t.shiftKey||t.ctrlKey||t.metaKey||(t.key==="Enter"||t.key==="Escape"&&n(this,Es))&&b(this,Ro,Id).call(this)},ff=new WeakSet,Gb=function(){if(n(this,gi)!==null)return;const{page:{view:t},viewport:{rawDims:{pageWidth:e,pageHeight:s,pageX:i,pageY:r}}}=n(this,cc);let a=!!n(this,To),o=a?n(this,To):n(this,uc);for(const A of n(this,fi))if(!o||I.intersect(A.data.rect,o)!==null){o=A.data.rect,a=!0;break}const l=I.normalizeRect([o[0],t[3]-o[1]+t[1],o[2],t[3]-o[3]+t[1]]),h=5,c=a?o[2]-o[0]+h:0,f=l[0]+c,g=l[1];p(this,gi,[100*(f-i)/e,100*(g-r)/s]);const{style:m}=n(this,ft);m.left=`${n(this,gi)[0]}%`,m.top=`${n(this,gi)[1]}%`},Ro=new WeakSet,Id=function(){p(this,Es,!n(this,Es)),n(this,Es)?(b(this,Do,Fd).call(this),n(this,ft).addEventListener("click",n(this,kr)),n(this,ft).addEventListener("keydown",n(this,xr))):(b(this,pc,lg).call(this),n(this,ft).removeEventListener("click",n(this,kr)),n(this,ft).removeEventListener("keydown",n(this,xr)))},Do=new WeakSet,Fd=function(){n(this,ye)||this.render(),this.isVisible?n(this,Es)&&n(this,ft).classList.add("focused"):(b(this,ff,Gb).call(this),n(this,ft).hidden=!1,n(this,ft).style.zIndex=parseInt(n(this,ft).style.zIndex)+1e3)},pc=new WeakSet,lg=function(){n(this,ft).classList.remove("focused"),!(n(this,Es)||!this.isVisible)&&(n(this,ft).hidden=!0,n(this,ft).style.zIndex=parseInt(n(this,ft).style.zIndex)-1e3)};class Ub extends bt{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0}),this.textContent=t.data.textContent,this.textPosition=t.data.textPosition,this.annotationEditorType=$.FREETEXT}render(){if(this.container.classList.add("freeTextAnnotation"),this.textContent){const t=document.createElement("div");t.classList.add("annotationTextContent"),t.setAttribute("role","comment");for(const e of this.textContent){const s=document.createElement("span");s.textContent=e,t.append(s)}this.container.append(t)}return!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this._editOnDoubleClick(),this.container}}var gc;class Aw extends bt{constructor(e){super(e,{isRenderable:!0,ignoreBorder:!0});d(this,gc,null)}render(){this.container.classList.add("lineAnnotation");const{data:e,width:s,height:i}=this,r=this.svgFactory.create(s,i,!0),a=p(this,gc,this.svgFactory.createElement("svg:line"));return a.setAttribute("x1",e.rect[2]-e.lineCoordinates[0]),a.setAttribute("y1",e.rect[3]-e.lineCoordinates[1]),a.setAttribute("x2",e.rect[2]-e.lineCoordinates[2]),a.setAttribute("y2",e.rect[3]-e.lineCoordinates[3]),a.setAttribute("stroke-width",e.borderStyle.width||1),a.setAttribute("stroke","transparent"),a.setAttribute("fill","transparent"),r.append(a),this.container.append(r),!e.popupRef&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return n(this,gc)}addHighlightArea(){this.container.classList.add("highlightArea")}}gc=new WeakMap;var mc;class yw extends bt{constructor(e){super(e,{isRenderable:!0,ignoreBorder:!0});d(this,mc,null)}render(){this.container.classList.add("squareAnnotation");const{data:e,width:s,height:i}=this,r=this.svgFactory.create(s,i,!0),a=e.borderStyle.width,o=p(this,mc,this.svgFactory.createElement("svg:rect"));return o.setAttribute("x",a/2),o.setAttribute("y",a/2),o.setAttribute("width",s-a),o.setAttribute("height",i-a),o.setAttribute("stroke-width",a||1),o.setAttribute("stroke","transparent"),o.setAttribute("fill","transparent"),r.append(o),this.container.append(r),!e.popupRef&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return n(this,mc)}addHighlightArea(){this.container.classList.add("highlightArea")}}mc=new WeakMap;var bc;class ww extends bt{constructor(e){super(e,{isRenderable:!0,ignoreBorder:!0});d(this,bc,null)}render(){this.container.classList.add("circleAnnotation");const{data:e,width:s,height:i}=this,r=this.svgFactory.create(s,i,!0),a=e.borderStyle.width,o=p(this,bc,this.svgFactory.createElement("svg:ellipse"));return o.setAttribute("cx",s/2),o.setAttribute("cy",i/2),o.setAttribute("rx",s/2-a/2),o.setAttribute("ry",i/2-a/2),o.setAttribute("stroke-width",a||1),o.setAttribute("stroke","transparent"),o.setAttribute("fill","transparent"),r.append(o),this.container.append(r),!e.popupRef&&this.hasPopupData&&this._createPopup(),this.container}getElementsToTriggerPopup(){return n(this,bc)}addHighlightArea(){this.container.classList.add("highlightArea")}}bc=new WeakMap;var Ac;class jb extends bt{constructor(e){super(e,{isRenderable:!0,ignoreBorder:!0});d(this,Ac,null);this.containerClassName="polylineAnnotation",this.svgElementName="svg:polyline"}render(){this.container.classList.add(this.containerClassName);const{data:{rect:e,vertices:s,borderStyle:i,popupRef:r},width:a,height:o}=this;if(!s)return this.container;const l=this.svgFactory.create(a,o,!0);let h=[];for(let f=0,g=s.length;f=0&&a.setAttribute("stroke-width",s||1),i)for(let o=0,l=n(this,Mr).length;o=1){let i=-1/0,r=-1/0;for(const a of e)for(let o=0,l=a.length;or?(r=a[o+1],i=a[o]):a[o+1]===r&&(i=Math.max(i,a[o]));if(i!==1/0)return[i,r]}return s?[s[2],s[3]]:null}}yc=new WeakMap,Mr=new WeakMap,wc=new WeakSet,hg=function(e,s){switch(e){case 90:return{transform:`rotate(90) translate(${-s[0]},${s[1]}) scale(1,-1)`,width:s[3]-s[1],height:s[2]-s[0]};case 180:return{transform:`rotate(180) translate(${-s[2]},${s[1]}) scale(1,-1)`,width:s[2]-s[0],height:s[3]-s[1]};case 270:return{transform:`rotate(270) translate(${-s[2]},${s[3]}) scale(1,-1)`,width:s[3]-s[1],height:s[2]-s[0]};default:return{transform:`translate(${-s[0]},${s[3]}) scale(1,-1)`,width:s[2]-s[0],height:s[3]-s[1]}}};class Vb extends bt{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0}),this.annotationEditorType=$.HIGHLIGHT}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData&&this._createPopup(),this.container.classList.add("highlightAnnotation"),this._editOnDoubleClick(),t){const s=document.createElement("mark");s.classList.add("overlaidText"),s.textContent=t,this.container.append(s)}return this.container}}class Sw extends bt{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData&&this._createPopup(),this.container.classList.add("underlineAnnotation"),t){const s=document.createElement("u");s.classList.add("overlaidText"),s.textContent=t,this.container.append(s)}return this.container}}class Ew extends bt{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData&&this._createPopup(),this.container.classList.add("squigglyAnnotation"),t){const s=document.createElement("u");s.classList.add("overlaidText"),s.textContent=t,this.container.append(s)}return this.container}}class Cw extends bt{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0,createQuadrilaterals:!0})}render(){const{data:{overlaidText:t,popupRef:e}}=this;if(!e&&this.hasPopupData&&this._createPopup(),this.container.classList.add("strikeoutAnnotation"),t){const s=document.createElement("s");s.classList.add("overlaidText"),s.textContent=t,this.container.append(s)}return this.container}}class Wb extends bt{constructor(t){super(t,{isRenderable:!0,ignoreBorder:!0}),this.annotationEditorType=$.STAMP}render(){return this.container.classList.add("stampAnnotation"),this.container.setAttribute("role","img"),!this.data.popupRef&&this.hasPopupData&&this._createPopup(),this._editOnDoubleClick(),this.container}}var vc,_c,cg;class Tw extends bt{constructor(e){var i;super(e,{isRenderable:!0});d(this,_c);d(this,vc,null);const{file:s}=this.data;this.filename=s.filename,this.content=s.content,(i=this.linkService.eventBus)==null||i.dispatch("fileattachmentannotation",{source:this,...s})}render(){this.container.classList.add("fileAttachmentAnnotation");const{container:e,data:s}=this;let i;s.hasAppearance||s.fillAlpha===0?i=document.createElement("div"):(i=document.createElement("img"),i.src=`${this.imageResourcesPath}annotation-${/paperclip/i.test(s.name)?"paperclip":"pushpin"}.svg`,s.fillAlpha&&s.fillAlpha<1&&(i.style=`filter: opacity(${Math.round(s.fillAlpha*100)}%);`)),i.addEventListener("dblclick",b(this,_c,cg).bind(this)),p(this,vc,i);const{isMac:r}=Wt.platform;return e.addEventListener("keydown",a=>{a.key==="Enter"&&(r?a.metaKey:a.ctrlKey)&&b(this,_c,cg).call(this)}),!s.popupRef&&this.hasPopupData?this._createPopup():i.classList.add("popupTriggerArea"),e.append(i),e}getElementsToTriggerPopup(){return n(this,vc)}addHighlightArea(){this.container.classList.add("highlightArea")}}vc=new WeakMap,_c=new WeakSet,cg=function(){var e;(e=this.downloadManager)==null||e.openOrDownloadData(this.content,this.filename)};var Sc,Rr,un,Ec,Cc,ug,Tc,fg;const tm=class tm{constructor({div:t,accessibilityManager:e,annotationCanvasMap:s,annotationEditorUIManager:i,page:r,viewport:a,structTreeLayer:o}){d(this,Cc);d(this,Tc);d(this,Sc,null);d(this,Rr,null);d(this,un,new Map);d(this,Ec,null);this.div=t,p(this,Sc,e),p(this,Rr,s),p(this,Ec,o||null),this.page=r,this.viewport=a,this.zIndex=0,this._annotationEditorUIManager=i}hasEditableAnnotations(){return n(this,un).size>0}async render(t){var a;const{annotations:e}=t,s=this.div;ra(s,this.viewport);const i=new Map,r={data:null,layer:s,linkService:t.linkService,downloadManager:t.downloadManager,imageResourcesPath:t.imageResourcesPath||"",renderForms:t.renderForms!==!1,svgFactory:new iu,annotationStorage:t.annotationStorage||new Gg,enableComment:t.enableComment===!0,enableScripting:t.enableScripting===!0,hasJSActions:t.hasJSActions,fieldObjects:t.fieldObjects,parent:this,elements:null};for(const o of e){if(o.noHTML)continue;const l=o.annotationType===wt.POPUP;if(l){const f=i.get(o.id);if(!f)continue;r.elements=f}else if(o.rect[2]===o.rect[0]||o.rect[3]===o.rect[1])continue;r.data=o;const h=_m.create(r);if(!h.isRenderable)continue;if(!l&&o.popupRef){const f=i.get(o.popupRef);f?f.push(h):i.set(o.popupRef,[h])}const c=h.render();o.hidden&&(c.style.visibility="hidden"),await b(this,Cc,ug).call(this,c,o.id,r.elements),h._isEditable&&(n(this,un).set(h.data.id,h),(a=this._annotationEditorUIManager)==null||a.renderAnnotationElement(h))}b(this,Tc,fg).call(this)}async addLinkAnnotations(t,e){const s={data:null,layer:this.div,linkService:e,svgFactory:new iu,parent:this};for(const i of t){i.borderStyle||(i.borderStyle=tm._defaultBorderStyle),s.data=i;const r=_m.create(s);if(!r.isRenderable)continue;const a=r.render();await b(this,Cc,ug).call(this,a,i.id,null)}}update({viewport:t}){const e=this.div;this.viewport=t,ra(e,{rotation:t.rotation}),b(this,Tc,fg).call(this),e.hidden=!1}getEditableAnnotations(){return Array.from(n(this,un).values())}getEditableAnnotation(t){return n(this,un).get(t)}static get _defaultBorderStyle(){return V(this,"_defaultBorderStyle",Object.freeze({width:1,rawWidth:1,style:da.SOLID,dashArray:[3],horizontalCornerRadius:0,verticalCornerRadius:0}))}};Sc=new WeakMap,Rr=new WeakMap,un=new WeakMap,Ec=new WeakMap,Cc=new WeakSet,ug=async function(t,e,s){var o,l;const i=t.firstChild||t,r=i.id=`${Hg}${e}`,a=await((o=n(this,Ec))==null?void 0:o.getAriaAttributes(r));if(a)for(const[h,c]of a)i.setAttribute(h,c);s?s.at(-1).container.after(t):(this.div.append(t),(l=n(this,Sc))==null||l.moveElementInDOM(this.div,t,i,!1))},Tc=new WeakSet,fg=function(){var e;if(!n(this,Rr))return;const t=this.div;for(const[s,i]of n(this,Rr)){const r=t.querySelector(`[data-annotation-id="${s}"]`);if(!r)continue;i.className="annotationContent";const{firstChild:a}=r;a?a.nodeName==="CANVAS"?a.replaceWith(i):a.classList.contains("annotationContent")?a.after(i):a.before(i):r.append(i);const o=n(this,un).get(s);o&&(o._hasNoCanvas?((e=this._annotationEditorUIManager)==null||e.setMissingCanvas(s,r.id,i),o._hasNoCanvas=!1):o.canvas=i)}n(this,Rr).clear()};let dg=tm;const Ad=/\r\n?|\n/g;var He,we,xc,Dr,ve,pf,Xb,gf,qb,mf,Yb,Lo,Nd,Io,Od,Fo,Bd,bf,Kb,kc,gg,Af,Qb;const nt=class nt extends rt{constructor(e){super({...e,name:"freeTextEditor"});d(this,pf);d(this,gf);d(this,mf);d(this,Lo);d(this,Fo);d(this,bf);d(this,Af);d(this,He,void 0);d(this,we,"");d(this,xc,`${this.id}-editor`);d(this,Dr,null);d(this,ve,void 0);k(this,"_colorPicker",null);p(this,He,e.color||nt._defaultColor||rt._defaultLineColor),p(this,ve,e.fontSize||nt._defaultFontSize),this.annotationElementId||this._uiManager.a11yAlert("pdfjs-editor-freetext-added-alert")}static get _keyboardManager(){const e=nt.prototype,s=a=>a.isEmpty(),i=aa.TRANSLATE_SMALL,r=aa.TRANSLATE_BIG;return V(this,"_keyboardManager",new hd([[["ctrl+s","mac+meta+s","ctrl+p","mac+meta+p"],e.commitOrRemove,{bubbles:!0}],[["ctrl+Enter","mac+meta+Enter","Escape","mac+Escape"],e.commitOrRemove],[["ArrowLeft","mac+ArrowLeft"],e._translateEmpty,{args:[-i,0],checker:s}],[["ctrl+ArrowLeft","mac+shift+ArrowLeft"],e._translateEmpty,{args:[-r,0],checker:s}],[["ArrowRight","mac+ArrowRight"],e._translateEmpty,{args:[i,0],checker:s}],[["ctrl+ArrowRight","mac+shift+ArrowRight"],e._translateEmpty,{args:[r,0],checker:s}],[["ArrowUp","mac+ArrowUp"],e._translateEmpty,{args:[0,-i],checker:s}],[["ctrl+ArrowUp","mac+shift+ArrowUp"],e._translateEmpty,{args:[0,-r],checker:s}],[["ArrowDown","mac+ArrowDown"],e._translateEmpty,{args:[0,i],checker:s}],[["ctrl+ArrowDown","mac+shift+ArrowDown"],e._translateEmpty,{args:[0,r],checker:s}]]))}static initialize(e,s){rt.initialize(e,s);const i=getComputedStyle(document.documentElement);this._internalPadding=parseFloat(i.getPropertyValue("--freetext-padding"))}static updateDefaultParams(e,s){switch(e){case X.FREETEXT_SIZE:nt._defaultFontSize=s;break;case X.FREETEXT_COLOR:nt._defaultColor=s;break}}updateParams(e,s){switch(e){case X.FREETEXT_SIZE:b(this,pf,Xb).call(this,s);break;case X.FREETEXT_COLOR:b(this,gf,qb).call(this,s);break}}static get defaultPropertiesToUpdate(){return[[X.FREETEXT_SIZE,nt._defaultFontSize],[X.FREETEXT_COLOR,nt._defaultColor||rt._defaultLineColor]]}get propertiesToUpdate(){return[[X.FREETEXT_SIZE,n(this,ve)],[X.FREETEXT_COLOR,n(this,He)]]}get toolbarButtons(){return this._colorPicker||(this._colorPicker=new su(this)),[["colorPicker",this._colorPicker]]}get colorType(){return X.FREETEXT_COLOR}get colorValue(){return n(this,He)}_translateEmpty(e,s){this._uiManager.translateSelectedEditors(e,s,!0)}getInitialTranslation(){const e=this.parentScale;return[-nt._internalPadding*e,-(nt._internalPadding+n(this,ve))*e]}rebuild(){this.parent&&(super.rebuild(),this.div!==null&&(this.isAttachedToDOM||this.parent.add(this)))}enableEditMode(){if(!super.enableEditMode())return!1;this.overlayDiv.classList.remove("enabled"),this.editorDiv.contentEditable=!0,this._isDraggable=!1,this.div.removeAttribute("aria-activedescendant"),p(this,Dr,new AbortController);const e=this._uiManager.combinedSignal(n(this,Dr));return this.editorDiv.addEventListener("keydown",this.editorDivKeydown.bind(this),{signal:e}),this.editorDiv.addEventListener("focus",this.editorDivFocus.bind(this),{signal:e}),this.editorDiv.addEventListener("blur",this.editorDivBlur.bind(this),{signal:e}),this.editorDiv.addEventListener("input",this.editorDivInput.bind(this),{signal:e}),this.editorDiv.addEventListener("paste",this.editorDivPaste.bind(this),{signal:e}),!0}disableEditMode(){var e;return super.disableEditMode()?(this.overlayDiv.classList.add("enabled"),this.editorDiv.contentEditable=!1,this.div.setAttribute("aria-activedescendant",n(this,xc)),this._isDraggable=!0,(e=n(this,Dr))==null||e.abort(),p(this,Dr,null),this.div.focus({preventScroll:!0}),this.isEditing=!1,this.parent.div.classList.add("freetextEditing"),!0):!1}focusin(e){this._focusEventsAllowed&&(super.focusin(e),e.target!==this.editorDiv&&this.editorDiv.focus())}onceAdded(e){var s;this.width||(this.enableEditMode(),e&&this.editorDiv.focus(),(s=this._initialOptions)!=null&&s.isCentered&&this.center(),this._initialOptions=null)}isEmpty(){return!this.editorDiv||this.editorDiv.innerText.trim()===""}remove(){this.isEditing=!1,this.parent&&(this.parent.setEditingState(!0),this.parent.div.classList.add("freetextEditing")),super.remove()}commit(){if(!this.isInEditMode())return;super.commit(),this.disableEditMode();const e=n(this,we),s=p(this,we,b(this,mf,Yb).call(this).trimEnd());if(e===s)return;const i=r=>{if(p(this,we,r),!r){this.remove();return}b(this,Fo,Bd).call(this),this._uiManager.rebuild(this),b(this,Lo,Nd).call(this)};this.addCommands({cmd:()=>{i(s)},undo:()=>{i(e)},mustExec:!1}),b(this,Lo,Nd).call(this)}shouldGetKeyboardEvents(){return this.isInEditMode()}enterInEditMode(){this.enableEditMode(),this.editorDiv.focus()}keydown(e){e.target===this.div&&e.key==="Enter"&&(this.enterInEditMode(),e.preventDefault())}editorDivKeydown(e){nt._keyboardManager.exec(this,e)}editorDivFocus(e){this.isEditing=!0}editorDivBlur(e){this.isEditing=!1}editorDivInput(e){this.parent.div.classList.toggle("freetextEditing",this.isEmpty())}disableEditing(){this.editorDiv.setAttribute("role","comment"),this.editorDiv.removeAttribute("aria-multiline")}enableEditing(){this.editorDiv.setAttribute("role","textbox"),this.editorDiv.setAttribute("aria-multiline",!0)}get canChangeContent(){return!0}render(){if(this.div)return this.div;let e,s;(this._isCopy||this.annotationElementId)&&(e=this.x,s=this.y),super.render(),this.editorDiv=document.createElement("div"),this.editorDiv.className="internal",this.editorDiv.setAttribute("id",n(this,xc)),this.editorDiv.setAttribute("data-l10n-id","pdfjs-free-text2"),this.editorDiv.setAttribute("data-l10n-attrs","default-content"),this.enableEditing(),this.editorDiv.contentEditable=!0;const{style:i}=this.editorDiv;if(i.fontSize=`calc(${n(this,ve)}px * var(--total-scale-factor))`,i.color=n(this,He),this.div.append(this.editorDiv),this.overlayDiv=document.createElement("div"),this.overlayDiv.classList.add("overlay","enabled"),this.div.append(this.overlayDiv),this._isCopy||this.annotationElementId){const[r,a]=this.parentDimensions;if(this.annotationElementId){const{position:o}=this._initialData;let[l,h]=this.getInitialTranslation();[l,h]=this.pageTranslationToScreen(l,h);const[c,f]=this.pageDimensions,[g,m]=this.pageTranslation;let A,y;switch(this.rotation){case 0:A=e+(o[0]-g)/c,y=s+this.height-(o[1]-m)/f;break;case 90:A=e+(o[0]-g)/c,y=s-(o[1]-m)/f,[l,h]=[h,-l];break;case 180:A=e-this.width+(o[0]-g)/c,y=s-(o[1]-m)/f,[l,h]=[-l,-h];break;case 270:A=e+(o[0]-g-this.height*f)/c,y=s+(o[1]-m-this.width*c)/f,[l,h]=[-h,l];break}this.setAt(A*r,y*a,l,h)}else this._moveAfterPaste(e,s);b(this,Fo,Bd).call(this),this._isDraggable=!0,this.editorDiv.contentEditable=!1}else this._isDraggable=!1,this.editorDiv.contentEditable=!0;return this.div}editorDivPaste(e){var A,y,v;const s=e.clipboardData||window.clipboardData,{types:i}=s;if(i.length===1&&i[0]==="text/plain")return;e.preventDefault();const r=b(A=nt,kc,gg).call(A,s.getData("text")||"").replaceAll(Ad,` diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 60bed75..8c63621 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -23,8 +23,8 @@ flex-direction: column; } - - + +
    diff --git a/frontend/src/components/AISidebar.vue b/frontend/src/components/AISidebar.vue index 28a89b5..5be1371 100644 --- a/frontend/src/components/AISidebar.vue +++ b/frontend/src/components/AISidebar.vue @@ -292,7 +292,27 @@ const generateMarkdownFromFile = async () => { markdownContent.value = ''; // 调用流式AI API生成Markdown - const systemPrompt = '你是一个专业的文档分析专家。请分析上传的文档内容,生成结构化的Markdown格式思维导图。要求:1. 提取主要主题和关键概念 2. 组织成层次分明的结构 3. 使用清晰的标题和子标题 4. 保持内容的逻辑性和完整性'; + const systemPrompt = `你是一个专业的文档分析专家。请分析上传的文档内容,生成结构化的Markdown格式思维导图。要求: +1. 提取主要主题和关键概念 +2. 组织成层次分明的结构 +3. 使用清晰的标题和子标题 +4. 保持内容的逻辑性和完整性 +5. 对于长文档,请确保完整处理所有内容,不要截断 +6. **重要:如果原文档中包含图片,请按以下方式处理: + - 识别图片在文档中的位置和上下文 + - 根据图片内容生成准确的描述文字 + - 在相应位置插入图片占位符:![图片描述](图片路径) + - 图片描述要准确反映图片内容,图片路径可以是相对路径或占位符 + - 确保图片占位符放在逻辑上合适的位置** +7. **重要:如果原文档中包含表格,请完整保留表格结构: + - 保持表格的Markdown格式 + - 确保所有表格行都被包含 + - 不要省略任何表格内容** +8. **重要:确保内容完整性: + - 不要截断任何内容 + - 保持原文的完整性 + - 所有重要信息都要包含在思维导图中** +9. 输出格式:直接输出Markdown内容,不要添加任何说明文字或代码块标记`; const userPrompt = `请分析以下文档内容并生成结构化Markdown:\n\n${fileContent}`; // 关键修改:使用流式API而不是非流式API @@ -464,6 +484,55 @@ const generateMarkdown = async () => { } }; +// 清理AI返回的内容,移除多余的说明文字 +const cleanAIResponse = (content) => { + if (!content) return content; + + let cleaned = content + // 移除常见的AI开头说明文字 - 更全面的匹配 + .replace(/^好的[,,]?作为.*?专家[,,]?我已.*?分析.*?内容.*?生成了以下.*?思维导图[::]\s*/i, '') + .replace(/^好的[,,]?作为.*?专业的.*?专家[,,]?我已.*?分析.*?内容.*?生成了以下.*?思维导图[::]\s*/i, '') + .replace(/^以下是.*?结构化的.*?思维导图[::]\s*/i, '') + .replace(/^以下是.*?Markdown.*?思维导图[::]\s*/i, '') + .replace(/^以下是.*?Markdown.*?格式.*?思维导图[::]\s*/i, '') + // 移除代码块标记 + .replace(/^```(?:markdown)?\s*/gm, '') + .replace(/```\s*$/gm, '') + // 移除多余的引号和标记 - 更精确的匹配 + .replace(/^「」`markdown\s*/gm, '') + .replace(/^「」`\s*/gm, '') + .replace(/^\s*「」`markdown\s*/gm, '') + .replace(/^\s*「」`\s*/gm, '') + // 移除其他可能的AI开头模式 + .replace(/^作为.*?专家[,,]?我已.*?分析.*?内容.*?生成了以下.*?思维导图[::]\s*/i, '') + .replace(/^我已.*?分析.*?内容.*?生成了以下.*?思维导图[::]\s*/i, '') + .replace(/^根据.*?文档内容.*?生成了以下.*?思维导图[::]\s*/i, '') + .replace(/^基于.*?文档.*?生成了以下.*?思维导图[::]\s*/i, '') + // 移除更多可能的开头模式 + .replace(/^以下是.*?分析.*?结果[::]\s*/i, '') + .replace(/^以下是.*?整理.*?结果[::]\s*/i, '') + .replace(/^以下是.*?结构化.*?内容[::]\s*/i, '') + // 移除多余的换行 + .replace(/\n{3,}/g, '\n\n') + // 清理开头和结尾的空白 + .trim(); + + return cleaned; +}; + +// 防抖函数 +const debounce = (func, wait) => { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +}; + // 调用AI API生成Markdown // 流式AI API调用 const callAIStreamAPI = async (systemPrompt, userPrompt) => { @@ -497,7 +566,14 @@ Level 4 标题用 ##### 保持段落和换行不变。 -输出格式: 输出必须是纯Markdown格式的文本,不得包含任何额外说明、JSON或非Markdown元素。确保输出与示例风格一致。`; +**重要:如果原文档中包含图片,请按以下方式处理: +1. 识别图片在文档中的位置和上下文 +2. 根据图片内容生成准确的描述文字 +3. 在相应位置插入图片占位符:![图片描述](图片路径) +4. 图片描述要准确反映图片内容,图片路径可以是相对路径或占位符 +5. 确保图片占位符放在逻辑上合适的位置** + +输出格式: 输出必须是纯Markdown格式的文本,不得包含任何额外说明、JSON或非Markdown元素。确保输出与示例风格一致。直接输出Markdown内容,不要添加任何说明文字。`; const finalSystemPrompt = systemPrompt || defaultSystemPrompt; const finalUserPrompt = userPrompt || `请将以下内容转换为结构化的Markdown格式:`; @@ -548,28 +624,57 @@ Level 4 标题用 ##### // 实时更新Markdown内容 markdownContent.value += data.content; - // 实时转换为JSON并更新显示 - try { - const tempJSON = markdownToJSON(markdownContent.value); - convertedJSON.value = JSON.stringify(tempJSON, null, 2); - - // 🎯 关键:实时更新思维导图显示 - window.dispatchEvent(new CustomEvent('realtime-mindmap-update', { - detail: { - data: tempJSON, - title: tempJSON.topic || 'AI生成中...', - source: 'ai-streaming', - chunkCount: chunkCount - } - })); - - } catch (e) { - // 忽略转换错误,继续接收数据 - console.warn('⚠️ 实时转换JSON失败:', e); - console.warn('⚠️ 当前Markdown内容:', markdownContent.value); + // 优化:减少实时更新频率,每5个chunk更新一次 + if (chunkCount % 5 === 0) { + try { + // 清理AI返回的多余内容 + const cleanedContent = cleanAIResponse(markdownContent.value); + const tempJSON = markdownToJSON(cleanedContent); + convertedJSON.value = JSON.stringify(tempJSON, null, 2); + + // 🎯 关键:实时更新思维导图显示 + window.dispatchEvent(new CustomEvent('realtime-mindmap-update', { + detail: { + data: tempJSON, + title: tempJSON.topic || 'AI生成中...', + source: 'ai-streaming', + chunkCount: chunkCount + } + })); + + } catch (e) { + // 忽略转换错误,继续接收数据 + console.warn('⚠️ 实时转换JSON失败:', e); + } } } else if (data.type === 'end') { showNotification('AI内容生成完成!', 'success'); + + // 最终处理:确保所有内容都被正确处理 + try { + const finalCleanedContent = cleanAIResponse(markdownContent.value); + console.log('🎯 最终内容长度:', finalCleanedContent.length); + console.log('🎯 最终内容预览:', finalCleanedContent.substring(0, 500) + '...'); + + // 统计图片数量 + const allImages = extractImageFromContent(finalCleanedContent); + console.log(`🖼️ 最终统计:共发现 ${allImages.length} 张图片`); + + const finalJSON = markdownToJSON(finalCleanedContent); + convertedJSON.value = JSON.stringify(finalJSON, null, 2); + + // 最终更新思维导图 + window.dispatchEvent(new CustomEvent('realtime-mindmap-update', { + detail: { + data: finalJSON, + title: finalJSON.topic || 'AI生成完成', + source: 'ai-final', + chunkCount: chunkCount + } + })); + } catch (e) { + console.error('⚠️ 最终处理失败:', e); + } } else if (data.type === 'error') { throw new Error(data.content); } @@ -616,7 +721,14 @@ Level 4 标题用 ##### 保持段落和换行不变。 -输出格式: 输出必须是纯Markdown格式的文本,不得包含任何额外说明、JSON或非Markdown元素。确保输出与示例风格一致。`; +**重要:如果原文档中包含图片,请按以下方式处理: +1. 识别图片在文档中的位置和上下文 +2. 根据图片内容生成准确的描述文字 +3. 在相应位置插入图片占位符:![图片描述](图片路径) +4. 图片描述要准确反映图片内容,图片路径可以是相对路径或占位符 +5. 确保图片占位符放在逻辑上合适的位置** + +输出格式: 输出必须是纯Markdown格式的文本,不得包含任何额外说明、JSON或非Markdown元素。确保输出与示例风格一致。直接输出Markdown内容,不要添加任何说明文字。`; // 如果没有提供系统提示词,使用默认的 const finalSystemPrompt = systemPrompt || defaultSystemPrompt; @@ -631,7 +743,7 @@ Level 4 标题用 ##### // 添加超时处理 - 增加超时时间,处理复杂文档 const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), 60000); // 减少到1分钟超时 + const timeoutId = setTimeout(() => controller.abort(), 300000); // 增加到5分钟超时 const response = await fetch('http://127.0.0.1:8000/api/ai/generate-markdown', { method: 'POST', @@ -732,6 +844,8 @@ const formatMarkdownToText = (markdown) => { } } + // 图片现在通过MindElixir原生image属性处理,不需要特殊处理 + return markdown // 处理标题 .replace(/^### (.*$)/gim, '📋 $1') // 三级标题 @@ -759,9 +873,22 @@ const formatMarkdownToText = (markdown) => { .replace(/`(.*?)`/g, '「$1」') // 处理链接 .replace(/\[([^\]]+)\]\([^)]+\)/g, '🔗 $1') - // 处理换行 + // 图片通过MindElixir原生image属性处理,保留图片占位符用于后续处理 + .replace(/!\[([^\]]*)\]\(([^)]+)\)/g, '[图片: $1]') + // 处理换行 - 优化换行处理,避免错位 .replace(/\n\n/g, '\n') - .replace(/\n/g, '\n '); + .replace(/\n/g, '\n ') + // 限制单行长度,避免节点过宽导致错位 + .split('\n') + .map(line => { + // 如果行太长,进行智能截断 + if (line.length > 80) { + return line.substring(0, 77) + '...'; + } + return line; + }) + .join('\n') + .trim(); }; // Markdown转JSON @@ -773,7 +900,9 @@ const convertToJSON = async () => { isConverting.value = true; try { - const json = markdownToJSON(markdownContent.value); + // 清理AI返回的多余内容 + const cleanedContent = cleanAIResponse(markdownContent.value); + const json = markdownToJSON(cleanedContent); convertedJSON.value = JSON.stringify(json, null, 2); } catch (error) { console.error('转换失败:', error); @@ -795,6 +924,29 @@ const countNodes = (node) => { return count; }; +// 提取图片信息的辅助函数 +const extractImageFromContent = (content) => { + const imageRegex = /!\[([^\]]*)\]\(([^)]+)\)/g; + const images = []; + let match; + + while ((match = imageRegex.exec(content)) !== null) { + images.push({ + alt: match[1] || '', + url: match[2], + fullMatch: match[0] + }); + } + + console.log(`🔍 从内容中提取到 ${images.length} 张图片:`, images); + return images; +}; + +// 从内容中移除图片Markdown语法 +const removeImageMarkdown = (content) => { + return content.replace(/!\[([^\]]*)\]\(([^)]+)\)/g, '').trim(); +}; + // Markdown转JSON的核心逻辑 - 智能层次化版本 const markdownToJSON = (markdown) => { const lines = markdown.split('\n'); @@ -823,8 +975,13 @@ const markdownToJSON = (markdown) => { const level = match[1].length; const title = match[2].trim(); - // 清理标题中的Markdown语法 - const cleanTitle = formatMarkdownToText(title); + // 检查标题中是否包含图片 + const titleImages = extractImageFromContent(title); + const cleanTitle = removeImageMarkdown(formatMarkdownToText(title)); + + if (titleImages.length > 0) { + console.log(`🖼️ 在标题中发现 ${titleImages.length} 张图片: ${title}`); + } // 创建节点 const node = { @@ -835,6 +992,17 @@ const markdownToJSON = (markdown) => { data: {}, }; + // 如果标题中有图片,使用第一个图片作为节点图片 + if (titleImages.length > 0) { + node.image = { + url: titleImages[0].url, + width: 120, + height: 80, + fit: 'contain' + }; + console.log(`🖼️ 为标题节点设置图片: ${titleImages[0].url}`); + } + // 如果是第一个节点(最高级别),设为根节点 if (level === 1 && !root) { root = node; @@ -888,7 +1056,42 @@ const markdownToJSON = (markdown) => { // 智能处理内容,检测是否需要创建子节点 const processContentIntelligently = (content, parentNode, nodeCounter) => { - // 首先检查整个内容是否是表格 + // 首先检查是否包含图片内容 + const images = extractImageFromContent(content); + if (images.length > 0) { + console.log(`🖼️ 在内容中发现 ${images.length} 张图片`); + + // 为每个图片创建单独的节点 + images.forEach((image, index) => { + const imageNode = { + id: `node_${nodeCounter++}`, + topic: image.alt || `图片 ${index + 1}`, + children: [], + level: (parentNode.level || 0) + 1, + image: { + url: image.url, + width: 120, + height: 80, + fit: 'contain' + }, + data: {} + }; + parentNode.children.push(imageNode); + console.log(`🖼️ 创建图片节点: ${imageNode.topic} - ${image.url}`); + }); + + // 移除图片后的内容 + const contentWithoutImages = removeImageMarkdown(content); + if (contentWithoutImages.trim()) { + // 递归处理剩余内容 + const processedContent = processContentIntelligently(contentWithoutImages, parentNode, nodeCounter); + nodeCounter = processedContent.nodeCounter; + } + + return { nodeCounter }; + } + + // 然后检查整个内容是否是表格 if (hasTableContent(content)) { console.log('🎯 检测到表格内容,创建表格节点'); const tableNode = { @@ -1005,6 +1208,7 @@ const processContentIntelligently = (content, parentNode, nodeCounter) => { return { nodeCounter: currentNodeCounter }; }; + // 检测内容是否包含表格 const hasTableContent = (content) => { if (!content || typeof content !== 'string') { diff --git a/frontend/src/components/MindMap.vue b/frontend/src/components/MindMap.vue index 7e68cb9..e6ea6cb 100644 --- a/frontend/src/components/MindMap.vue +++ b/frontend/src/components/MindMap.vue @@ -367,15 +367,11 @@ const loadMindmapData = async (data, keepPosition = false, shouldCenterRoot = tr maxScale: 5, minScale: 0.1, markdown: (text, nodeObj) => { - console.log('🔍 Mind Elixir markdown函数被调用:', text.substring(0, 100) + '...'); - // 直接检查内容是否包含表格或其他markdown语法 - if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#')) { - console.log('🎨 检测到markdown内容,开始渲染:', text.substring(0, 100) + '...'); + // 检查内容是否包含markdown语法(包括图片) + if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#') || text.includes('![')) { const result = smartRenderNodeContent(text); - console.log('🎨 渲染结果:', result.substring(0, 200) + '...'); return result; } - console.log('🔍 内容不包含markdown语法,返回原文本'); return text; } }); @@ -422,8 +418,8 @@ const loadMindmapData = async (data, keepPosition = false, shouldCenterRoot = tr maxScale: 5, minScale: 0.1, markdown: (text, nodeObj) => { - // 直接检查内容是否包含表格或其他markdown语法 - if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#')) { + // 检查内容是否包含markdown语法(包括图片) + if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#') || text.includes('![')) { return smartRenderNodeContent(text); } return text; @@ -484,8 +480,8 @@ const loadMindmapData = async (data, keepPosition = false, shouldCenterRoot = tr maxScale: 5, minScale: 0.1, markdown: (text, nodeObj) => { - // 直接检查内容是否包含表格或其他markdown语法 - if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#')) { + // 检查内容是否包含markdown语法(包括图片) + if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#') || text.includes('![')) { return smartRenderNodeContent(text); } return text; @@ -3494,15 +3490,11 @@ const updateMindMapRealtime = async (data, title) => { maxScale: 5, minScale: 0.1, markdown: (text, nodeObj) => { - // console.log('🔍 实时更新 Mind Elixir markdown函数被调用:', text.substring(0, 100) + '...'); - // 直接检查内容是否包含表格、数学公式或其他markdown语法 - if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#') || text.includes('$')) { - console.log('🎨 实时更新 检测到markdown内容,开始渲染:', text.substring(0, 100) + '...'); + // 检查内容是否包含markdown语法(包括图片和数学公式) + if (text.includes('|') || text.includes('**') || text.includes('`') || text.includes('#') || text.includes('$') || text.includes('![')) { const result = smartRenderNodeContent(text); - console.log('🎨 实时更新 渲染结果:', result.substring(0, 200) + '...'); return result; } - console.log('🔍 实时更新 内容不包含markdown语法,返回原文本'); return text; } }); diff --git a/frontend/src/lib/mind-elixir/src/utils/dom.ts b/frontend/src/lib/mind-elixir/src/utils/dom.ts index c5063bc..dad5fb4 100644 --- a/frontend/src/lib/mind-elixir/src/utils/dom.ts +++ b/frontend/src/lib/mind-elixir/src/utils/dom.ts @@ -3,6 +3,7 @@ import type { Topic, Wrapper, Parent, Children, Expander } from '../types/dom' import type { MindElixirInstance, NodeObj } from '../types/index' import { encodeHTML } from '../utils/index' import { layoutChildren } from './layout' +// 移除imageProcessor引用,使用MindElixir原生image属性 // DOM manipulation const $d = document @@ -55,7 +56,8 @@ export const shapeTpc = function (this: MindElixirInstance, tpc: Topic, nodeObj: if (this.markdown) { textEl.innerHTML = this.markdown(nodeObj.topic, nodeObj) } else { - textEl.textContent = nodeObj.topic + // 直接设置文本内容,图片通过MindElixir原生image属性处理 + textEl.innerHTML = nodeObj.topic || '' } tpc.appendChild(textEl) diff --git a/frontend/src/utils/markdownRenderer.js b/frontend/src/utils/markdownRenderer.js index 2d21c19..1a6f4ee 100644 --- a/frontend/src/utils/markdownRenderer.js +++ b/frontend/src/utils/markdownRenderer.js @@ -14,12 +14,16 @@ import 'prismjs/components/prism-python'; import 'prismjs/components/prism-sql'; import 'katex/dist/katex.min.css'; +// 自定义渲染器(移除图片处理,使用MindElixir原生image属性) +const renderer = new marked.Renderer(); + // 配置marked选项 marked.setOptions({ breaks: true, gfm: true, // GitHub Flavored Markdown tables: true, // 支持表格 sanitize: false, // 允许HTML(用于数学公式等) + renderer: renderer // 使用自定义渲染器 }); /** @@ -40,7 +44,9 @@ export const renderMarkdownToHTML = (markdown) => { const html = marked.parse(processedMarkdown); // 后处理HTML - return postprocessHTML(html); + const finalHTML = postprocessHTML(html); + + return finalHTML; } catch (error) { console.error('Markdown渲染失败:', error); return `
    渲染失败: ${error.message}
    `; @@ -166,6 +172,11 @@ const addMarkdownStyles = (container) => { .markdown-content { max-width: 100%; overflow: hidden; + word-wrap: break-word; + word-break: break-word; + line-height: 1.4; + text-align: left; + display: block; } .markdown-content h1, @@ -196,12 +207,15 @@ const addMarkdownStyles = (container) => { .markdown-content ol { margin: 2px 0; padding-left: 16px; + list-style-position: inside; } .markdown-content li { margin: 1px 0; line-height: 1.3; color: #666; + display: list-item; + text-align: left; } .markdown-content strong, diff --git a/mind-elixir-core-master/.eslintignore b/mind-elixir-core-master/.eslintignore deleted file mode 100644 index 2600bcd..0000000 --- a/mind-elixir-core-master/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -dist -src/__tests__ -index.html -test.html \ No newline at end of file diff --git a/mind-elixir-core-master/.eslintrc.cjs b/mind-elixir-core-master/.eslintrc.cjs deleted file mode 100644 index 7168db0..0000000 --- a/mind-elixir-core-master/.eslintrc.cjs +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - env: { - browser: true, - node: true, - }, - extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'], - plugins: ['@typescript-eslint'], - parser: '@typescript-eslint/parser', - parserOptions: { - sourceType: 'module', - }, - rules: { - '@typescript-eslint/consistent-type-imports': 'error', - '@typescript-eslint/no-non-null-assertion': 'off', - }, -} diff --git a/mind-elixir-core-master/.github/FUNDING.yml b/mind-elixir-core-master/.github/FUNDING.yml deleted file mode 100644 index 73a3bab..0000000 --- a/mind-elixir-core-master/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ssshooter] -patreon: # Replace with a single Patreon username -open_collective: ssshooter -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/mind-elixir-core-master/.github/ISSUE_TEMPLATE/bug_report.md b/mind-elixir-core-master/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index dd84ea7..0000000 --- a/mind-elixir-core-master/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/mind-elixir-core-master/.github/ISSUE_TEMPLATE/feature_request.md b/mind-elixir-core-master/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index bbcbbe7..0000000 --- a/mind-elixir-core-master/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/mind-elixir-core-master/.github/workflows/npm-publish.yml b/mind-elixir-core-master/.github/workflows/npm-publish.yml deleted file mode 100644 index 59543e1..0000000 --- a/mind-elixir-core-master/.github/workflows/npm-publish.yml +++ /dev/null @@ -1,60 +0,0 @@ -# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created -# For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages - -name: Node.js Package - -on: - release: - types: [created] - workflow_dispatch: - -jobs: - publish: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v2 - with: - version: 8 - - uses: actions/setup-node@v3 - with: - node-version: 18 - registry-url: 'https://registry.npmjs.org' - cache: 'pnpm' - - run: pnpm i - - run: npm run build - - run: npm publish - env: - NODE_AUTH_TOKEN: ${{secrets.npm_token}} - - - name: Checkout docs repository - uses: actions/checkout@v3 - with: - repository: mind-elixir/docs - token: ${{ secrets.PAT }} - path: me-docs - - - name: Generate API documentation - run: | - npm run doc - npm run doc:md - - - name: Copy build results to docs repository - run: | - cp -r ./md/* ./me-docs/docs/api - cp -r ./md/* ./me-docs/i18n/ja/docusaurus-plugin-content-docs/current/api - cp -r ./md/* ./me-docs/i18n/zh-Hans/docusaurus-plugin-content-docs/current/api - - - name: Push changes to docs repository - run: | - cd me-docs - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add . - if git diff-index --quiet HEAD; then - echo "No changes to commit" - else - git commit -m "Update API documentation" - git push - fi - diff --git a/mind-elixir-core-master/.gitignore b/mind-elixir-core-master/.gitignore deleted file mode 100644 index 14cf869..0000000 --- a/mind-elixir-core-master/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -.DS_Store -node_modules -dist -doc -.nyc_output -coverage -api -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -.eslintcache -/test-results/ -/playwright-report/ -/blob-report/ -/playwright/.cache/ - -/md \ No newline at end of file diff --git a/mind-elixir-core-master/.husky/commit-msg b/mind-elixir-core-master/.husky/commit-msg deleted file mode 100644 index c160a77..0000000 --- a/mind-elixir-core-master/.husky/commit-msg +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npx --no -- commitlint --edit ${1} diff --git a/mind-elixir-core-master/.husky/pre-commit b/mind-elixir-core-master/.husky/pre-commit deleted file mode 100644 index d24fdfc..0000000 --- a/mind-elixir-core-master/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npx lint-staged diff --git a/mind-elixir-core-master/.husky/pre-push b/mind-elixir-core-master/.husky/pre-push deleted file mode 100644 index 879e935..0000000 --- a/mind-elixir-core-master/.husky/pre-push +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run test diff --git a/mind-elixir-core-master/.npmignore b/mind-elixir-core-master/.npmignore deleted file mode 100644 index 39837ef..0000000 --- a/mind-elixir-core-master/.npmignore +++ /dev/null @@ -1,74 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Typescript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# dotenv environment variables file -.env - -# gatsby files -.cache/ -public - -# Mac files -.DS_Store - -# Yarn -yarn-error.log -.pnp/ -.pnp.js -# Yarn Integrity file -.yarn-integrity - -src/ -webpack.config.js -out/ -doc/ \ No newline at end of file diff --git a/mind-elixir-core-master/.prettierrc.json b/mind-elixir-core-master/.prettierrc.json deleted file mode 100644 index bdb655a..0000000 --- a/mind-elixir-core-master/.prettierrc.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "trailingComma": "es5", - "tabWidth": 2, - "semi": false, - "singleQuote": true, - "arrowParens": "avoid", - "printWidth": 150, - "endOfLine": "auto" -} \ No newline at end of file diff --git a/mind-elixir-core-master/LICENSE b/mind-elixir-core-master/LICENSE deleted file mode 100644 index a31bf25..0000000 --- a/mind-elixir-core-master/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 DjZhou - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/mind-elixir-core-master/api-extractor.json b/mind-elixir-core-master/api-extractor.json deleted file mode 100644 index fe35a20..0000000 --- a/mind-elixir-core-master/api-extractor.json +++ /dev/null @@ -1,396 +0,0 @@ -/** - * Config file for API Extractor. For more info, please visit: https://api-extractor.com - */ -{ - "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - /** - * Optionally specifies another JSON config file that this file extends from. This provides a way for - * standard settings to be shared across multiple projects. - * - * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains - * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be - * resolved using NodeJS require(). - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "extends": "./shared/api-extractor-base.json" - // "extends": "my-package/include/api-extractor-base.json" - /** - * Determines the "" token that can be used with other config file settings. The project folder - * typically contains the tsconfig.json and package.json config files, but the path is user-defined. - * - * The path is resolved relative to the folder of the config file that contains the setting. - * - * The default value for "projectFolder" is the token "", which means the folder is determined by traversing - * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder - * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error - * will be reported. - * - * SUPPORTED TOKENS: - * DEFAULT VALUE: "" - */ - // "projectFolder": "..", - /** - * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor - * analyzes the symbols exported by this module. - * - * The file extension must be ".d.ts" and not ".ts". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - */ - "mainEntryPointFilePath": "/dist/types/docs.d.ts", - /** - * A list of NPM package names whose exports should be treated as part of this package. - * - * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", - * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part - * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly - * imports library2. To avoid this, we can specify: - * - * "bundledPackages": [ "library2" ], - * - * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been - * local files for library1. - */ - "bundledPackages": [], - /** - * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files - * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. - * To use the OS's default newline kind, specify "os". - * - * DEFAULT VALUE: "crlf" - */ - // "newlineKind": "crlf", - /** - * Set to true when invoking API Extractor's test harness. When `testMode` is true, the `toolVersion` field in the - * .api.json file is assigned an empty string to prevent spurious diffs in output files tracked for tests. - * - * DEFAULT VALUE: "false" - */ - // "testMode": false, - /** - * Specifies how API Extractor sorts members of an enum when generating the .api.json file. By default, the output - * files will be sorted alphabetically, which is "by-name". To keep the ordering in the source code, specify - * "preserve". - * - * DEFAULT VALUE: "by-name" - */ - // "enumMemberOrder": "by-name", - /** - * Determines how the TypeScript compiler engine will be invoked by API Extractor. - */ - "compiler": { - /** - * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * Note: This setting will be ignored if "overrideTsconfig" is used. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/tsconfig.json" - */ - // "tsconfigFilePath": "/tsconfig.json", - /** - * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. - * The object must conform to the TypeScript tsconfig schema: - * - * http://json.schemastore.org/tsconfig - * - * If omitted, then the tsconfig.json file will be read from the "projectFolder". - * - * DEFAULT VALUE: no overrideTsconfig section - */ - // "overrideTsconfig": { - // . . . - // } - /** - * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended - * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when - * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses - * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. - * - * DEFAULT VALUE: false - */ - // "skipLibCheck": true, - }, - /** - * Configures how the API report file (*.api.md) will be generated. - */ - "apiReport": { - /** - * (REQUIRED) Whether to generate an API report. - */ - "enabled": true, - /** - * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce - * a full file path. - * - * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". - * - * SUPPORTED TOKENS: , - * DEFAULT VALUE: ".api.md" - */ - // "reportFileName": ".api.md", - /** - * Specifies the folder where the API report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, - * e.g. for an API review. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - "reportFolder": "/api/", - /** - * Specifies the folder where the temporary report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * After the temporary file is written to disk, it is compared with the file in the "reportFolder". - * If they are different, a production build will fail. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - "reportTempFolder": "/api/", - /** - * Whether "forgotten exports" should be included in the API report file. Forgotten exports are declarations - * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to - * learn more. - * - * DEFAULT VALUE: "false" - */ - "includeForgottenExports": false - }, - /** - * Configures how the doc model file (*.api.json) will be generated. - */ - "docModel": { - /** - * (REQUIRED) Whether to generate a doc model file. - */ - "enabled": true, - /** - * The output path for the doc model file. The file extension should be ".api.json". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/.api.json" - */ - "apiJsonFilePath": "/api/.api.json" - /** - * Whether "forgotten exports" should be included in the doc model file. Forgotten exports are declarations - * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to - * learn more. - * - * DEFAULT VALUE: "false" - */ - // "includeForgottenExports": false, - /** - * The base URL where the project's source code can be viewed on a website such as GitHub or - * Azure DevOps. This URL path corresponds to the `` path on disk. - * - * This URL is concatenated with the file paths serialized to the doc model to produce URL file paths to individual API items. - * For example, if the `projectFolderUrl` is "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor" and an API - * item's file path is "api/ExtractorConfig.ts", the full URL file path would be - * "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor/api/ExtractorConfig.js". - * - * Can be omitted if you don't need source code links in your API documentation reference. - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "projectFolderUrl": "http://github.com/path/to/your/projectFolder" - }, - /** - * Configures how the .d.ts rollup file will be generated. - */ - "dtsRollup": { - /** - * (REQUIRED) Whether to generate the .d.ts rollup file. - */ - "enabled": true - /** - * Specifies the output path for a .d.ts rollup file to be generated without any trimming. - * This file will include all declarations that are exported by the main entry point. - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/dist/.d.ts" - */ - // "untrimmedFilePath": "/dist/.d.ts", - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release. - * This file will include only declarations that are marked as "@public", "@beta", or "@alpha". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "alphaTrimmedFilePath": "/dist/-alpha.d.ts", - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. - * This file will include only declarations that are marked as "@public" or "@beta". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "betaTrimmedFilePath": "/dist/-beta.d.ts", - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. - * This file will include only declarations that are marked as "@public". - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "publicTrimmedFilePath": "/dist/-public.d.ts", - /** - * When a declaration is trimmed, by default it will be replaced by a code comment such as - * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the - * declaration completely. - * - * DEFAULT VALUE: false - */ - // "omitTrimmingComments": true - }, - /** - * Configures how the tsdoc-metadata.json file will be generated. - */ - "tsdocMetadata": { - /** - * Whether to generate the tsdoc-metadata.json file. - * - * DEFAULT VALUE: true - */ - // "enabled": true, - /** - * Specifies where the TSDoc metadata file should be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", - * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup - * falls back to "tsdoc-metadata.json" in the package folder. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" - }, - /** - * Configures how API Extractor reports error and warning messages produced during analysis. - * - * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. - */ - "messages": { - /** - * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing - * the input .d.ts files. - * - * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "compilerMessageReporting": { - /** - * Configures the default routing for messages that don't match an explicit rule in this table. - */ - "default": { - /** - * Specifies whether the message should be written to the the tool's output log. Note that - * the "addToApiReportFile" property may supersede this option. - * - * Possible values: "error", "warning", "none" - * - * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail - * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes - * the "--local" option), the warning is displayed but the build will not fail. - * - * DEFAULT VALUE: "warning" - */ - "logLevel": "warning" - /** - * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), - * then the message will be written inside that file; otherwise, the message is instead logged according to - * the "logLevel" option. - * - * DEFAULT VALUE: false - */ - // "addToApiReportFile": false - } - // "TS2551": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - /** - * Configures handling of messages reported by API Extractor during its analysis. - * - * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" - * - * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings - */ - "extractorMessageReporting": { - "default": { - "logLevel": "warning" - // "addToApiReportFile": false - } - // "ae-extra-release-tag": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - /** - * Configures handling of messages reported by the TSDoc parser when analyzing code comments. - * - * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "tsdocMessageReporting": { - "default": { - "logLevel": "warning" - // "addToApiReportFile": false - } - // "tsdoc-link-tag-unescaped-text": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - } - } -} \ No newline at end of file diff --git a/mind-elixir-core-master/build.js b/mind-elixir-core-master/build.js deleted file mode 100644 index 9c2e30f..0000000 --- a/mind-elixir-core-master/build.js +++ /dev/null @@ -1,47 +0,0 @@ -import { fileURLToPath } from 'url' -import { build } from 'vite' -import strip from '@rollup/plugin-strip' - -const __dirname = fileURLToPath(new URL('.', import.meta.url)) -const buildList = [ - { - name: 'MindElixir', - enrty: __dirname + './src/index.ts', - }, - { - name: 'MindElixirLite', - enrty: __dirname + './src/index.ts', - mode: 'lite', - }, - { - name: 'example', - enrty: __dirname + './src/exampleData/1.ts', - }, - { - name: 'LayoutSsr', - enrty: __dirname + './src/utils/layout-ssr.ts', - }, -] -for (let i = 0; i < buildList.length; i++) { - const info = buildList[i] - console.log(`\n\nBuilding ${info.name}...\n\n`) - await build({ - build: { - emptyOutDir: i === 0, - lib: { - entry: info.enrty, - fileName: info.name, - name: info.name, - formats: ['iife', 'es'], - }, - rollupOptions: { - plugins: [ - strip({ - include: ['**/*.ts', '**/*.js'], - }), - ], - }, - }, - mode: info.mode, - }) -} diff --git a/mind-elixir-core-master/commitlint.config.js b/mind-elixir-core-master/commitlint.config.js deleted file mode 100644 index 277b4b0..0000000 --- a/mind-elixir-core-master/commitlint.config.js +++ /dev/null @@ -1,107 +0,0 @@ -export default { - parserPreset: 'conventional-changelog-conventionalcommits', - rules: { - 'body-leading-blank': [1, 'always'], - 'body-max-line-length': [2, 'always', 120], - 'footer-leading-blank': [1, 'always'], - 'footer-max-line-length': [2, 'always', 100], - 'header-max-length': [2, 'always', 100], - 'subject-case': [2, 'never', ['sentence-case', 'start-case', 'pascal-case', 'upper-case']], - 'subject-empty': [2, 'never'], - 'subject-full-stop': [2, 'never', '.'], - 'type-case': [2, 'always', 'lower-case'], - 'type-empty': [2, 'never'], - 'type-enum': [2, 'always', ['build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'style', 'test']], - }, - prompt: { - questions: { - type: { - description: "Select the type of change that you're committing", - enum: { - feat: { - description: 'A new feature', - title: 'Features', - emoji: '✨', - }, - fix: { - description: 'A bug fix', - title: 'Bug Fixes', - emoji: '🐛', - }, - docs: { - description: 'Documentation only changes', - title: 'Documentation', - emoji: '📚', - }, - style: { - description: 'Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)', - title: 'Styles', - emoji: '💎', - }, - refactor: { - description: 'A code change that neither fixes a bug nor adds a feature', - title: 'Code Refactoring', - emoji: '📦', - }, - perf: { - description: 'A code change that improves performance', - title: 'Performance Improvements', - emoji: '🚀', - }, - test: { - description: 'Adding missing tests or correcting existing tests', - title: 'Tests', - emoji: '🚨', - }, - build: { - description: 'Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)', - title: 'Builds', - emoji: '🛠', - }, - ci: { - description: 'Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)', - title: 'Continuous Integrations', - emoji: '⚙️', - }, - chore: { - description: "Other changes that don't modify src or test files", - title: 'Chores', - emoji: '♻️', - }, - revert: { - description: 'Reverts a previous commit', - title: 'Reverts', - emoji: '🗑', - }, - }, - }, - scope: { - description: 'What is the scope of this change (e.g. component or file name)', - }, - subject: { - description: 'Write a short, imperative tense description of the change', - }, - body: { - description: 'Provide a longer description of the change', - }, - isBreaking: { - description: 'Are there any breaking changes?', - }, - breakingBody: { - description: 'A BREAKING CHANGE commit requires a body. Please enter a longer description of the commit itself', - }, - breaking: { - description: 'Describe the breaking changes', - }, - isIssueAffected: { - description: 'Does this change affect any open issues?', - }, - issuesBody: { - description: 'If issues are closed, the commit requires a body. Please enter a longer description of the commit itself', - }, - issues: { - description: 'Add issue references (e.g. "fix #123", "re #123".)', - }, - }, - }, -} diff --git a/mind-elixir-core-master/index.css b/mind-elixir-core-master/index.css deleted file mode 100644 index 6dd98df..0000000 --- a/mind-elixir-core-master/index.css +++ /dev/null @@ -1,177 +0,0 @@ -code[class*='language-'], -pre[class*='language-'] { - color: black; - background: none; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -/* Code blocks */ -pre[class*='language-'] { - position: relative; - margin: 0.5em 0; - overflow: visible; - padding: 0; -} - -pre[class*='language-']>code { - position: relative; -} - -code[class*='language'] { - border-radius: 3px; - background: #faf8f5; - max-height: inherit; - height: inherit; - padding: 1em; - display: block; - overflow: auto; - margin: 0; -} - -/* Inline code */ -:not(pre)>code[class*='language-'] { - display: inline; - position: relative; - color: #c92c2c; - padding: 0.15em; - white-space: normal; -} - -.token.comment, -.token.block-comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: #7d8b99; -} - -.token.punctuation { - color: #5f6364; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.function-name, -.token.constant, -.token.symbol, -.token.deleted { - color: #c92c2c; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.function, -.token.builtin, -.token.inserted { - color: #2f9c0a; -} - -.token.operator, -.token.entity, -.token.url, -.token.variable { - color: #a67f59; - background: rgba(255, 255, 255, 0.5); -} - -.token.atrule, -.token.attr-value, -.token.keyword, -.token.class-name { - color: #1990b8; -} - -.token.regex, -.token.important { - color: #e90; -} - -.language-css .token.string, -.style .token.string { - color: #a67f59; - background: rgba(255, 255, 255, 0.5); -} - -.token.important { - font-weight: normal; -} - -.token.bold { - font-weight: bold; -} - -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -.namespace { - opacity: 0.7; -} - -@media screen and (max-width: 767px) { - - pre[class*='language-']:before, - pre[class*='language-']:after { - bottom: 14px; - box-shadow: none; - } -} - -/* Plugin styles */ -.token.tab:not(:empty):before, -.token.cr:before, -.token.lf:before { - color: #e0d7d1; -} - -/* Plugin styles: Line Numbers */ -pre[class*='language-'].line-numbers.line-numbers { - padding-left: 0; -} - -pre[class*='language-'].line-numbers.line-numbers code { - padding-left: 3.8em; -} - -pre[class*='language-'].line-numbers.line-numbers .line-numbers-rows { - left: 0; -} - -/* Plugin styles: Line Highlight */ -pre[class*='language-'][data-line] { - padding-top: 0; - padding-bottom: 0; - padding-left: 0; -} - -pre[data-line] code { - position: relative; - padding-left: 4em; -} - -pre .line-highlight { - margin-top: 0; -} \ No newline at end of file diff --git a/mind-elixir-core-master/index.html b/mind-elixir-core-master/index.html deleted file mode 100644 index 63e4de6..0000000 --- a/mind-elixir-core-master/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - Mind Elixir - - - - - -
    - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/mind-elixir-core-master/katex.css b/mind-elixir-core-master/katex.css deleted file mode 100644 index 5787cbd..0000000 --- a/mind-elixir-core-master/katex.css +++ /dev/null @@ -1 +0,0 @@ -.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.9"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} \ No newline at end of file diff --git a/mind-elixir-core-master/package-lock.json b/mind-elixir-core-master/package-lock.json deleted file mode 100644 index 41a1b2b..0000000 --- a/mind-elixir-core-master/package-lock.json +++ /dev/null @@ -1,7715 +0,0 @@ -{ - "name": "mind-elixir", - "version": "5.1.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "mind-elixir", - "version": "5.1.1", - "license": "MIT", - "devDependencies": { - "@commitlint/cli": "^17.8.1", - "@commitlint/config-conventional": "^17.8.1", - "@microsoft/api-documenter": "^7.25.21", - "@microsoft/api-extractor": "^7.47.11", - "@playwright/test": "^1.55.0", - "@rollup/plugin-strip": "^3.0.4", - "@types/node": "^20.14.2", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "@viselect/vanilla": "3.9.0", - "@zumer/snapdom": "^1.3.0", - "eslint": "^8.57.0", - "eslint-config-prettier": "^8.10.0", - "eslint-plugin-prettier": "^4.2.1", - "husky": "^8.0.3", - "katex": "^0.16.22", - "less": "^4.2.0", - "lint-staged": "^13.3.0", - "marked": "^16.2.0", - "nyc": "^17.1.0", - "prettier": "2.8.4", - "rimraf": "^6.0.1", - "simple-markdown-to-html": "^1.0.0", - "typescript": "^5.4.5", - "vite": "^4.5.3", - "vite-plugin-istanbul": "^7.1.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", - "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.4", - "@babel/types": "^7.28.4", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", - "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.28.4" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", - "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.4", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", - "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@commitlint/cli": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz", - "integrity": "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/format": "^17.8.1", - "@commitlint/lint": "^17.8.1", - "@commitlint/load": "^17.8.1", - "@commitlint/read": "^17.8.1", - "@commitlint/types": "^17.8.1", - "execa": "^5.0.0", - "lodash.isfunction": "^3.0.9", - "resolve-from": "5.0.0", - "resolve-global": "1.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "commitlint": "cli.js" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/config-conventional": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz", - "integrity": "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "conventional-changelog-conventionalcommits": "^6.1.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/config-validator": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz", - "integrity": "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.8.1", - "ajv": "^8.11.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/ensure": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz", - "integrity": "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.8.1", - "lodash.camelcase": "^4.3.0", - "lodash.kebabcase": "^4.1.1", - "lodash.snakecase": "^4.1.1", - "lodash.startcase": "^4.4.0", - "lodash.upperfirst": "^4.3.1" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/execute-rule": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz", - "integrity": "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/format": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz", - "integrity": "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.8.1", - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/is-ignored": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz", - "integrity": "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.8.1", - "semver": "7.5.4" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/lint": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz", - "integrity": "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/is-ignored": "^17.8.1", - "@commitlint/parse": "^17.8.1", - "@commitlint/rules": "^17.8.1", - "@commitlint/types": "^17.8.1" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/load": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz", - "integrity": "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/config-validator": "^17.8.1", - "@commitlint/execute-rule": "^17.8.1", - "@commitlint/resolve-extends": "^17.8.1", - "@commitlint/types": "^17.8.1", - "@types/node": "20.5.1", - "chalk": "^4.1.0", - "cosmiconfig": "^8.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "lodash.uniq": "^4.5.0", - "resolve-from": "^5.0.0", - "ts-node": "^10.8.1", - "typescript": "^4.6.4 || ^5.2.2" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/load/node_modules/@types/node": { - "version": "20.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", - "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@commitlint/message": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz", - "integrity": "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/parse": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz", - "integrity": "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/types": "^17.8.1", - "conventional-changelog-angular": "^6.0.0", - "conventional-commits-parser": "^4.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/read": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz", - "integrity": "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/top-level": "^17.8.1", - "@commitlint/types": "^17.8.1", - "fs-extra": "^11.0.0", - "git-raw-commits": "^2.0.11", - "minimist": "^1.2.6" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/resolve-extends": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz", - "integrity": "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/config-validator": "^17.8.1", - "@commitlint/types": "^17.8.1", - "import-fresh": "^3.0.0", - "lodash.mergewith": "^4.6.2", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/rules": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz", - "integrity": "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@commitlint/ensure": "^17.8.1", - "@commitlint/message": "^17.8.1", - "@commitlint/to-lines": "^17.8.1", - "@commitlint/types": "^17.8.1", - "execa": "^5.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/to-lines": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz", - "integrity": "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/top-level": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz", - "integrity": "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@commitlint/types": { - "version": "17.8.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", - "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0" - }, - "engines": { - "node": ">=v14" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@microsoft/api-documenter": { - "version": "7.26.32", - "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.26.32.tgz", - "integrity": "sha512-OnfyOuiOQMvIkzh7TK8RyPHDwtkZs7Dzu48XwzUyNHc3tyrLnlZcMNvh6XxUvPsTi/jOoe9alJezESnuGKIQYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/api-extractor-model": "7.30.7", - "@microsoft/tsdoc": "~0.15.1", - "@rushstack/node-core-library": "5.14.0", - "@rushstack/terminal": "0.15.4", - "@rushstack/ts-command-line": "5.0.2", - "js-yaml": "~3.13.1", - "resolve": "~1.22.1" - }, - "bin": { - "api-documenter": "bin/api-documenter" - } - }, - "node_modules/@microsoft/api-extractor": { - "version": "7.52.11", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.52.11.tgz", - "integrity": "sha512-IKQ7bHg6f/Io3dQds6r9QPYk4q0OlR9A4nFDtNhUt3UUIhyitbxAqRN1CLjUVtk6IBk3xzyCMOdwwtIXQ7AlGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/api-extractor-model": "7.30.7", - "@microsoft/tsdoc": "~0.15.1", - "@microsoft/tsdoc-config": "~0.17.1", - "@rushstack/node-core-library": "5.14.0", - "@rushstack/rig-package": "0.5.3", - "@rushstack/terminal": "0.15.4", - "@rushstack/ts-command-line": "5.0.2", - "lodash": "~4.17.15", - "minimatch": "10.0.3", - "resolve": "~1.22.1", - "semver": "~7.5.4", - "source-map": "~0.6.1", - "typescript": "5.8.2" - }, - "bin": { - "api-extractor": "bin/api-extractor" - } - }, - "node_modules/@microsoft/api-extractor-model": { - "version": "7.30.7", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.30.7.tgz", - "integrity": "sha512-TBbmSI2/BHpfR9YhQA7nH0nqVmGgJ0xH0Ex4D99/qBDAUpnhA2oikGmdXanbw9AWWY/ExBYIpkmY8dBHdla3YQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "~0.15.1", - "@microsoft/tsdoc-config": "~0.17.1", - "@rushstack/node-core-library": "5.14.0" - } - }, - "node_modules/@microsoft/api-extractor/node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@microsoft/tsdoc": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz", - "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.1.tgz", - "integrity": "sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.15.1", - "ajv": "~8.12.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@playwright/test": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.55.0.tgz", - "integrity": "sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.55.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@rollup/plugin-strip": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@rollup/plugin-strip/-/plugin-strip-3.0.4.tgz", - "integrity": "sha512-LDRV49ZaavxUo2YoKKMQjCxzCxugu1rCPQa0lDYBOWLj6vtzBMr8DcoJjsmg+s450RbKbe3qI9ZLaSO+O1oNbg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.3" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/pluginutils": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", - "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rushstack/node-core-library": { - "version": "5.14.0", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.14.0.tgz", - "integrity": "sha512-eRong84/rwQUlATGFW3TMTYVyqL1vfW9Lf10PH+mVGfIb9HzU3h5AASNIw+axnBLjnD0n3rT5uQBwu9fvzATrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "~8.13.0", - "ajv-draft-04": "~1.0.0", - "ajv-formats": "~3.0.1", - "fs-extra": "~11.3.0", - "import-lazy": "~4.0.0", - "jju": "~1.4.0", - "resolve": "~1.22.1", - "semver": "~7.5.4" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/node-core-library/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@rushstack/rig-package": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", - "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "~1.22.1", - "strip-json-comments": "~3.1.1" - } - }, - "node_modules/@rushstack/terminal": { - "version": "0.15.4", - "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.15.4.tgz", - "integrity": "sha512-OQSThV0itlwVNHV6thoXiAYZlQh4Fgvie2CzxFABsbO2MWQsI4zOh3LRNigYSTrmS+ba2j0B3EObakPzf/x6Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rushstack/node-core-library": "5.14.0", - "supports-color": "~8.1.1" - }, - "peerDependencies": { - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@rushstack/ts-command-line": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.0.2.tgz", - "integrity": "sha512-+AkJDbu1GFMPIU8Sb7TLVXDv/Q7Mkvx+wAjEl8XiXVVq+p1FmWW6M3LYpJMmoHNckSofeMecgWg5lfMwNAAsEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rushstack/terminal": "0.15.4", - "@types/argparse": "1.0.38", - "argparse": "~1.0.9", - "string-argv": "~0.3.1" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/argparse": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", - "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.19.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.13.tgz", - "integrity": "sha512-yCAeZl7a0DxgNVteXFHt9+uyFbqXGy/ShC4BlcHkoE0AfGXYv/BUiplV72DjMYXHDBXFjhvr6DD1NiRVfB4j8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@viselect/vanilla": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/@viselect/vanilla/-/vanilla-3.9.0.tgz", - "integrity": "sha512-E9eBgoi/crJ0SlZMAc+Yst7nU324LZ5LLvcXjzWEcrfllscdpTml2OLOKHC7O8Bbz19OybSLv6VexxnjlJrLxQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@zumer/snapdom": { - "version": "1.9.11", - "resolved": "https://registry.npmjs.org/@zumer/snapdom/-/snapdom-1.9.11.tgz", - "integrity": "sha512-7yEDRCz9AaksPaKEZxH6BlIZ2tpNN0/gI/8coCYgRIYE1ZIDQ8f5KsMPADtupcdj4t3et97+BP9AQYifGOvYdw==", - "dev": true, - "license": "MIT" - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", - "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/append-transform": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz", - "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "default-require-extensions": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-ify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", - "dev": true, - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.25.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", - "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001737", - "electron-to-chromium": "^1.5.211", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/caching-transform": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz", - "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasha": "^5.0.0", - "make-dir": "^3.0.0", - "package-hash": "^4.0.0", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/caching-transform/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caching-transform/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-keys": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^5.3.1", - "map-obj": "^4.0.0", - "quick-lru": "^4.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001741", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001741.tgz", - "integrity": "sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/compare-func": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-ify": "^1.0.0", - "dot-prop": "^5.1.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/conventional-changelog-angular": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", - "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-changelog-conventionalcommits": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", - "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", - "dev": true, - "license": "ISC", - "dependencies": { - "compare-func": "^2.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/conventional-commits-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-text-path": "^1.0.1", - "JSONStream": "^1.3.5", - "meow": "^8.1.2", - "split2": "^3.2.2" - }, - "bin": { - "conventional-commits-parser": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/copy-anything": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", - "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-what": "^3.14.1" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cosmiconfig-typescript-loader": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", - "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=v14.21.3" - }, - "peerDependencies": { - "@types/node": "*", - "cosmiconfig": ">=7", - "ts-node": ">=10", - "typescript": ">=4" - } - }, - "node_modules/cosmiconfig/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/cosmiconfig/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dargs": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decamelize-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", - "dev": true, - "license": "MIT", - "dependencies": { - "decamelize": "^1.1.0", - "map-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decamelize-keys/node_modules/map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/default-require-extensions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz", - "integrity": "sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "strip-bom": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true, - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.215", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.215.tgz", - "integrity": "sha512-TIvGp57UpeNetj/wV/xpFNpWGb0b/ROw372lHPx5Aafx02gjTBtWnEEcaSX3W2dLM3OSdGGyHX/cHl01JQsLaQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.10.2", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", - "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-prettier": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.5.tgz", - "integrity": "sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true, - "license": "MIT" - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fromentries": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", - "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/fs-extra": { - "version": "11.3.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.1.tgz", - "integrity": "sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/git-raw-commits": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", - "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", - "dev": true, - "license": "MIT", - "dependencies": { - "dargs": "^7.0.0", - "lodash": "^4.17.15", - "meow": "^8.0.0", - "split2": "^3.0.0", - "through2": "^4.0.0" - }, - "bin": { - "git-raw-commits": "cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/hard-rejection": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasha": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", - "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasha/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "license": "MIT", - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-text-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "text-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-what": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", - "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz", - "integrity": "sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "append-transform": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-processinfo": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz", - "integrity": "sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==", - "dev": true, - "license": "ISC", - "dependencies": { - "archy": "^1.0.0", - "cross-spawn": "^7.0.3", - "istanbul-lib-coverage": "^3.2.0", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-processinfo/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/katex": { - "version": "0.16.22", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", - "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", - "dev": true, - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "license": "MIT", - "dependencies": { - "commander": "^8.3.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/less": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/less/-/less-4.4.1.tgz", - "integrity": "sha512-X9HKyiXPi0f/ed0XhgUlBeFfxrlDP3xR4M7768Zl+WXLUViuL9AOPPJP4nCV0tgRWvTYvpNmN0SFhZOQzy16PA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "copy-anything": "^2.0.1", - "parse-node-version": "^1.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "make-dir": "^2.1.0", - "mime": "^1.4.1", - "needle": "^3.1.0", - "source-map": "~0.6.0" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.3.0.tgz", - "integrity": "sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "5.3.0", - "commander": "11.0.0", - "debug": "4.3.4", - "execa": "7.2.0", - "lilconfig": "2.1.0", - "listr2": "6.6.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.1" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - } - }, - "node_modules/lint-staged/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/lint-staged/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/lint-staged/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/lint-staged/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", - "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^5.0.1", - "rfdc": "^1.3.0", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isfunction": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", - "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.mergewith": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", - "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.startcase": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", - "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.upperfirst": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", - "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", - "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/marked": { - "version": "16.2.1", - "resolved": "https://registry.npmjs.org/marked/-/marked-16.2.1.tgz", - "integrity": "sha512-r3UrXED9lMlHF97jJByry90cwrZBBvZmjG1L68oYfuPMW+uDTnuMbyJDymCWwbTE+f+3LhpNDKfpR3a3saFyjA==", - "dev": true, - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/meow": { - "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimist": "^1.2.0", - "camelcase-keys": "^6.2.2", - "decamelize-keys": "^1.1.0", - "hard-rejection": "^2.1.0", - "minimist-options": "4.1.0", - "normalize-package-data": "^3.0.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.18.0", - "yargs-parser": "^20.2.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/meow/node_modules/type-fest": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "license": "MIT", - "optional": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz", - "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minimist-options": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.1", - "is-plain-obj": "^1.1.0", - "kind-of": "^6.0.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true, - "license": "MIT" - }, - "node_modules/needle": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", - "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.3", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "node_modules/node-preload": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz", - "integrity": "sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "process-on-spawn": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-releases": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.20.tgz", - "integrity": "sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^4.0.1", - "is-core-module": "^2.5.0", - "semver": "^7.3.4", - "validate-npm-package-license": "^3.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-17.1.0.tgz", - "integrity": "sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^3.3.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^6.0.2", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/nyc/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/nyc/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/nyc/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/nyc/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/nyc/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/nyc/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/nyc/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nyc/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/package-hash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", - "integrity": "sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.15", - "hasha": "^5.0.0", - "lodash.flattendeep": "^4.4.0", - "release-zalgo": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.1.tgz", - "integrity": "sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "license": "MIT", - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/playwright": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.55.0.tgz", - "integrity": "sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright-core": "1.55.0" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/playwright-core": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.55.0.tgz", - "integrity": "sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/process-on-spawn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.1.0.tgz", - "integrity": "sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "fromentries": "^1.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true, - "license": "ISC" - }, - "node_modules/read-pkg/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/read-pkg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/release-zalgo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz", - "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==", - "dev": true, - "license": "ISC", - "dependencies": { - "es6-error": "^4.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "license": "ISC" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", - "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^11.0.0", - "package-json-from-dist": "^1.0.0" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz", - "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.0.3", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", - "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", - "dev": true, - "license": "MIT", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "license": "ISC" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/simple-markdown-to-html": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-markdown-to-html/-/simple-markdown-to-html-1.0.0.tgz", - "integrity": "sha512-oU7mq0DjDur4O3myYbwCFXLyJEpDKrqZkUJGaHFhvWgH97OoB8rZyTMU467pxAYueH/o6qW57sd7i4WI6dVxFw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/spawn-wrap": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", - "integrity": "sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^2.0.0", - "is-windows": "^1.0.2", - "make-dir": "^3.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "which": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/spawn-wrap/node_modules/foreground-child": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", - "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", - "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/spawn-wrap/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/spawn-wrap/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/spawn-wrap/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.22", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", - "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/text-extensions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/trim-newlines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vite": { - "version": "4.5.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", - "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/vite-plugin-istanbul/-/vite-plugin-istanbul-7.1.0.tgz", - "integrity": "sha512-md0774bPYfSrMbAMMy3Xui2+xqmEVwulCGN2ImGm4E4s+0VfO7TjFyJ4ITFIFyEmBhWoMM0sOOX0Yg0I1SsncQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.1.0", - "espree": "^10.3.0", - "istanbul-lib-instrument": "^6.0.3", - "picocolors": "^1.1.1", - "source-map": "^0.7.4", - "test-exclude": "^7.0.1" - }, - "peerDependencies": { - "vite": ">=4 <=7" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/vite-plugin-istanbul/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/source-map": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", - "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, - "node_modules/vite-plugin-istanbul/node_modules/test-exclude": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz", - "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^10.4.1", - "minimatch": "^9.0.4" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/mind-elixir-core-master/package.json b/mind-elixir-core-master/package.json deleted file mode 100644 index b49fd55..0000000 --- a/mind-elixir-core-master/package.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "name": "mind-elixir", - "version": "5.1.1", - "type": "module", - "description": "Mind elixir is a free open source mind map core.", - "keywords": [ - "mind-elixir", - "mindmap", - "dom", - "visualization" - ], - "scripts": { - "prepare": "husky install", - "lint": "eslint --cache --max-warnings 0 \"src/**/*.{js,json,ts}\" --fix", - "dev": "vite", - "build": "node build.js && tsc", - "tsc": "tsc", - "preview": "vite preview", - "test": "playwright test", - "test:ui": "playwright test --ui", - "test:clean": "rimraf .nyc_output coverage", - "test:coverage": "pnpm test:clean && pnpm test && pnpm nyc && npx http-server ./coverage", - "nyc": "nyc report --reporter=html", - "doc": "api-extractor run --local --verbose", - "doc:md": "api-documenter markdown --input-folder ./api --output-folder ./md", - "beta": "npm run build && npm publish --tag beta" - }, - "exports": { - ".": { - "types": "./dist/types/index.d.ts", - "import": "./dist/MindElixir.js", - "require": "./dist/MindElixir.js" - }, - "./lite": { - "import": "./dist/MindElixirLite.iife.js" - }, - "./example": { - "types": "./dist/types/exampleData/1.d.ts", - "import": "./dist/example.js", - "require": "./dist/example.js" - }, - "./LayoutSsr": { - "types": "./dist/types/utils/LayoutSsr.d.ts", - "import": "./dist/LayoutSsr.js", - "require": "./dist/LayoutSsr.js" - }, - "./readme.md": "./readme.md", - "./package.json": "./package.json", - "./style": "./dist/style.css", - "./style.css": "./dist/style.css" - }, - "typesVersions": { - "*": { - "example": [ - "./dist/types/exampleData/1.d.ts" - ] - } - }, - "main": "dist/MindElixir.js", - "types": "dist/types/index.d.ts", - "lint-staged": { - "src/**/*.{ts,js}": [ - "eslint --cache --fix" - ], - "src/**/*.{json,less}": [ - "prettier --write" - ] - }, - "files": [ - "package.json", - "dist" - ], - "repository": { - "type": "git", - "url": "https://github.com/ssshooter/mind-elixir-core" - }, - "homepage": "https://mind-elixir.com/", - "author": "ssshooter", - "license": "MIT", - "devDependencies": { - "@commitlint/cli": "^17.8.1", - "@commitlint/config-conventional": "^17.8.1", - "@microsoft/api-documenter": "^7.25.21", - "@microsoft/api-extractor": "^7.47.11", - "@playwright/test": "^1.55.0", - "@rollup/plugin-strip": "^3.0.4", - "@types/node": "^20.14.2", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", - "@viselect/vanilla": "3.9.0", - "@zumer/snapdom": "^1.3.0", - "eslint": "^8.57.0", - "eslint-config-prettier": "^8.10.0", - "eslint-plugin-prettier": "^4.2.1", - "husky": "^8.0.3", - "katex": "^0.16.22", - "less": "^4.2.0", - "lint-staged": "^13.3.0", - "marked": "^16.2.0", - "nyc": "^17.1.0", - "prettier": "2.8.4", - "rimraf": "^6.0.1", - "simple-markdown-to-html": "^1.0.0", - "typescript": "^5.4.5", - "vite": "^4.5.3", - "vite-plugin-istanbul": "^7.1.0" - } -} \ No newline at end of file diff --git a/mind-elixir-core-master/playwright.config.ts b/mind-elixir-core-master/playwright.config.ts deleted file mode 100644 index 7605e1f..0000000 --- a/mind-elixir-core-master/playwright.config.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { defineConfig, devices } from '@playwright/test' - -/** - * Read environment variables from file. - * https://github.com/motdotla/dotenv - */ -// require('dotenv').config(); - -/** - * See https://playwright.dev/docs/test-configuration. - */ -export default defineConfig({ - timeout: 10000, - testDir: './tests', - /* Run tests in files in parallel */ - fullyParallel: true, - /* Fail the build on CI if you accidentally left test.only in the source code. */ - forbidOnly: !!process.env.CI, - /* Retry on CI only */ - retries: process.env.CI ? 2 : 0, - /* Opt out of parallel tests on CI. */ - workers: process.env.CI ? 1 : undefined, - /* Reporter to use. See https://playwright.dev/docs/test-reporters */ - reporter: 'html', - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - /* Base URL to use in actions like `await page.goto('/')`. */ - // baseURL: 'http://127.0.0.1:3000', - - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - - /* Configure projects for major browsers */ - projects: [ - { - name: 'chromium', - use: { ...devices['Desktop Chrome'] }, - }, - - // { - // name: 'firefox', - // use: { ...devices['Desktop Firefox'] }, - // }, - - // { - // name: 'webkit', - // use: { ...devices['Desktop Safari'] }, - // }, - - /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { ...devices['Pixel 5'] }, - // }, - // { - // name: 'Mobile Safari', - // use: { ...devices['iPhone 12'] }, - // }, - - /* Test against branded browsers. */ - // { - // name: 'Microsoft Edge', - // use: { ...devices['Desktop Edge'], channel: 'msedge' }, - // }, - // { - // name: 'Google Chrome', - // use: { ...devices['Desktop Chrome'], channel: 'chrome' }, - // }, - ], - - /* Run your local dev server before starting the tests */ - webServer: { - command: 'pnpm dev --port 23334', - url: 'http://127.0.0.1:23334', - reuseExistingServer: true, - env: { - VITE_COVERAGE: 'true' - }, - }, -}) diff --git a/mind-elixir-core-master/pnpm-lock.yaml b/mind-elixir-core-master/pnpm-lock.yaml deleted file mode 100644 index 52bcdc2..0000000 --- a/mind-elixir-core-master/pnpm-lock.yaml +++ /dev/null @@ -1,4550 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - devDependencies: - '@commitlint/cli': - specifier: ^17.8.1 - version: 17.8.1 - '@commitlint/config-conventional': - specifier: ^17.8.1 - version: 17.8.1 - '@microsoft/api-documenter': - specifier: ^7.25.21 - version: 7.25.21(@types/node@20.14.2) - '@microsoft/api-extractor': - specifier: ^7.47.11 - version: 7.47.11(@types/node@20.14.2) - '@playwright/test': - specifier: ^1.55.0 - version: 1.55.0 - '@rollup/plugin-strip': - specifier: ^3.0.4 - version: 3.0.4(rollup@3.29.4) - '@types/node': - specifier: ^20.14.2 - version: 20.14.2 - '@typescript-eslint/eslint-plugin': - specifier: ^5.62.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': - specifier: ^5.62.0 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@viselect/vanilla': - specifier: 3.9.0 - version: 3.9.0 - '@zumer/snapdom': - specifier: ^1.3.0 - version: 1.3.0 - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-config-prettier: - specifier: ^8.10.0 - version: 8.10.0(eslint@8.57.0) - eslint-plugin-prettier: - specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.4) - husky: - specifier: ^8.0.3 - version: 8.0.3 - katex: - specifier: ^0.16.22 - version: 0.16.22 - less: - specifier: ^4.2.0 - version: 4.2.0 - lint-staged: - specifier: ^13.3.0 - version: 13.3.0 - marked: - specifier: ^16.2.0 - version: 16.2.0 - nyc: - specifier: ^17.1.0 - version: 17.1.0 - prettier: - specifier: 2.8.4 - version: 2.8.4 - rimraf: - specifier: ^6.0.1 - version: 6.0.1 - simple-markdown-to-html: - specifier: ^1.0.0 - version: 1.0.0 - typescript: - specifier: ^5.4.5 - version: 5.4.5 - vite: - specifier: ^4.5.3 - version: 4.5.3(@types/node@20.14.2)(less@4.2.0) - vite-plugin-istanbul: - specifier: ^7.1.0 - version: 7.1.0(vite@4.5.3(@types/node@20.14.2)(less@4.2.0)) - -packages: - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.28.0': - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.28.0': - resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} - engines: {node: '>=6.9.0'} - - '@babel/generator@7.28.0': - resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} - - '@babel/helpers@7.28.2': - resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==} - engines: {node: '>=6.9.0'} - - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - - '@babel/parser@7.28.0': - resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} - - '@babel/traverse@7.28.0': - resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} - - '@commitlint/cli@17.8.1': - resolution: {integrity: sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==} - engines: {node: '>=v14'} - hasBin: true - - '@commitlint/config-conventional@17.8.1': - resolution: {integrity: sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==} - engines: {node: '>=v14'} - - '@commitlint/config-validator@17.8.1': - resolution: {integrity: sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==} - engines: {node: '>=v14'} - - '@commitlint/ensure@17.8.1': - resolution: {integrity: sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==} - engines: {node: '>=v14'} - - '@commitlint/execute-rule@17.8.1': - resolution: {integrity: sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==} - engines: {node: '>=v14'} - - '@commitlint/format@17.8.1': - resolution: {integrity: sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==} - engines: {node: '>=v14'} - - '@commitlint/is-ignored@17.8.1': - resolution: {integrity: sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==} - engines: {node: '>=v14'} - - '@commitlint/lint@17.8.1': - resolution: {integrity: sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==} - engines: {node: '>=v14'} - - '@commitlint/load@17.8.1': - resolution: {integrity: sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==} - engines: {node: '>=v14'} - - '@commitlint/message@17.8.1': - resolution: {integrity: sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==} - engines: {node: '>=v14'} - - '@commitlint/parse@17.8.1': - resolution: {integrity: sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==} - engines: {node: '>=v14'} - - '@commitlint/read@17.8.1': - resolution: {integrity: sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==} - engines: {node: '>=v14'} - - '@commitlint/resolve-extends@17.8.1': - resolution: {integrity: sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==} - engines: {node: '>=v14'} - - '@commitlint/rules@17.8.1': - resolution: {integrity: sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==} - engines: {node: '>=v14'} - - '@commitlint/to-lines@17.8.1': - resolution: {integrity: sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==} - engines: {node: '>=v14'} - - '@commitlint/top-level@17.8.1': - resolution: {integrity: sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==} - engines: {node: '>=v14'} - - '@commitlint/types@17.8.1': - resolution: {integrity: sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==} - engines: {node: '>=v14'} - - '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.10.1': - resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} - - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - - '@istanbuljs/load-nyc-config@1.1.0': - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jridgewell/gen-mapping@0.3.12': - resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - '@jridgewell/sourcemap-codec@1.5.4': - resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} - - '@jridgewell/trace-mapping@0.3.29': - resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} - - '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - - '@microsoft/api-documenter@7.25.21': - resolution: {integrity: sha512-Nyfidxbi9wIZ1H7VjVqw3nUhRM1fUJuGqvt2iDEI91Z4k8X+BqxSaLOsnn8n65YaAZhUJRkh1Ouxt90r7cnmjA==} - hasBin: true - - '@microsoft/api-extractor-model@7.29.8': - resolution: {integrity: sha512-t3Z/xcO6TRbMcnKGVMs4uMzv/gd5j0NhMiJIGjD4cJMeFJ1Hf8wnLSx37vxlRlL0GWlGJhnFgxvnaL6JlS+73g==} - - '@microsoft/api-extractor@7.47.11': - resolution: {integrity: sha512-lrudfbPub5wzBhymfFtgZKuBvXxoSIAdrvS2UbHjoMT2TjIEddq6Z13pcve7A03BAouw0x8sW8G4txdgfiSwpQ==} - hasBin: true - - '@microsoft/tsdoc-config@0.17.0': - resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} - - '@microsoft/tsdoc@0.15.0': - resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} - - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@playwright/test@1.55.0': - resolution: {integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==} - engines: {node: '>=18'} - hasBin: true - - '@rollup/plugin-strip@3.0.4': - resolution: {integrity: sha512-LDRV49ZaavxUo2YoKKMQjCxzCxugu1rCPQa0lDYBOWLj6vtzBMr8DcoJjsmg+s450RbKbe3qI9ZLaSO+O1oNbg==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - - '@rushstack/node-core-library@5.9.0': - resolution: {integrity: sha512-MMsshEWkTbXqxqFxD4gcIUWQOCeBChlGczdZbHfqmNZQFLHB3yWxDFSMHFUdu2/OB9NUk7Awn5qRL+rws4HQNg==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/rig-package@0.5.3': - resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} - - '@rushstack/terminal@0.14.2': - resolution: {integrity: sha512-2fC1wqu1VCExKC0/L+0noVcFQEXEnoBOtCIex1TOjBzEDWcw8KzJjjj7aTP6mLxepG0XIyn9OufeFb6SFsa+sg==} - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - - '@rushstack/ts-command-line@4.23.0': - resolution: {integrity: sha512-jYREBtsxduPV6ptNq8jOKp9+yx0ld1Tb/Tkdnlj8gTjazl1sF3DwX2VbluyYrNd0meWIL0bNeer7WDf5tKFjaQ==} - - '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} - - '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - - '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - - '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - - '@types/argparse@1.0.38': - resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - '@types/minimist@1.2.5': - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - - '@types/node@20.14.2': - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} - - '@types/node@20.5.1': - resolution: {integrity: sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==} - - '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - - '@typescript-eslint/eslint-plugin@5.62.0': - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/parser@5.62.0': - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/type-utils@5.62.0': - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - '@viselect/vanilla@3.9.0': - resolution: {integrity: sha512-E9eBgoi/crJ0SlZMAc+Yst7nU324LZ5LLvcXjzWEcrfllscdpTml2OLOKHC7O8Bbz19OybSLv6VexxnjlJrLxQ==} - - '@zumer/snapdom@1.3.0': - resolution: {integrity: sha512-JUJ1a4URTwboxwvQ01tvXgxQaPkq3TdORnpAUAe0r+d1rInndhO3Rnxb6nCGG0zCYkYoUbc9VcQjatzLX7t7Hg==} - - JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - - aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} - - ajv-draft-04@1.0.0: - resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} - peerDependencies: - ajv: ^8.5.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv-formats@3.0.1: - resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - - ajv@8.16.0: - resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} - - ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - - append-transform@2.0.0: - resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==} - engines: {node: '>=8'} - - archy@1.0.0: - resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} - - arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - - browserslist@4.25.1: - resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - caching-transform@4.0.0: - resolution: {integrity: sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==} - engines: {node: '>=8'} - - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - caniuse-lite@1.0.30001731: - resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - - chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - - clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - - commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} - engines: {node: '>=16'} - - commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - - compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - - concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - - conventional-changelog-angular@6.0.0: - resolution: {integrity: sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==} - engines: {node: '>=14'} - - conventional-changelog-conventionalcommits@6.1.0: - resolution: {integrity: sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==} - engines: {node: '>=14'} - - conventional-commits-parser@4.0.0: - resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} - engines: {node: '>=14'} - hasBin: true - - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - - convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - - cosmiconfig-typescript-loader@4.4.0: - resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} - engines: {node: '>=v14.21.3'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=7' - ts-node: '>=10' - typescript: '>=4' - - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - - create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - - cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - - cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - - debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - default-require-extensions@3.0.1: - resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} - engines: {node: '>=8'} - - diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - - dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - - electron-to-chromium@1.5.195: - resolution: {integrity: sha512-URclP0iIaDUzqcAyV1v2PgduJ9N0IdXmWsnPzPfelvBmjmZzEy6xJcjb1cXj+TbYqXgtLrjHEoaSIdTYhw4ezg==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - - errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} - hasBin: true - - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - - es6-error@4.1.1: - resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - - escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-prettier@8.10.0: - resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-plugin-prettier@4.2.1: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - - fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - - foreground-child@2.0.0: - resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} - engines: {node: '>=8.0.0'} - - foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} - - fromentries@1.3.2: - resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} - - fs-extra@11.2.0: - resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} - engines: {node: '>=14.14'} - - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - git-raw-commits@2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true - - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - - glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} - engines: {node: 20 || >=22} - hasBin: true - - glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - - global-dirs@0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} - engines: {node: '>=4'} - - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - hasha@5.2.2: - resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} - engines: {node: '>=8'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - - hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - - hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - - husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} - hasBin: true - - iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - - import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} - engines: {node: '>=8'} - - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - - inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - - is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-text-path@1.0.1: - resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} - engines: {node: '>=0.10.0'} - - is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - - is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - - isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-hook@3.0.0: - resolution: {integrity: sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==} - engines: {node: '>=8'} - - istanbul-lib-instrument@6.0.3: - resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} - engines: {node: '>=10'} - - istanbul-lib-processinfo@2.0.3: - resolution: {integrity: sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} - engines: {node: 20 || >=22} - - jju@1.4.0: - resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - - js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - js-yaml@3.13.1: - resolution: {integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==} - hasBin: true - - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} - - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - - jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - - katex@0.16.22: - resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} - hasBin: true - - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - - less@4.2.0: - resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} - engines: {node: '>=6'} - hasBin: true - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - - lint-staged@13.3.0: - resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} - engines: {node: ^16.14.0 || >=18.0.0} - hasBin: true - - listr2@6.6.1: - resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} - engines: {node: '>=16.0.0'} - peerDependencies: - enquirer: '>= 2.3.0 < 3' - peerDependenciesMeta: - enquirer: - optional: true - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.flattendeep@4.4.0: - resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==} - - lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - - lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - - lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - - lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - - lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - - lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} - engines: {node: 20 || >=22} - - lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - - lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} - - make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - - map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - - map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - - marked@16.2.0: - resolution: {integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==} - engines: {node: '>= 20'} - hasBin: true - - meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - - minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} - - minimatch@3.0.8: - resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} - - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - - minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - needle@3.3.1: - resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} - engines: {node: '>= 4.4.x'} - hasBin: true - - node-preload@0.2.1: - resolution: {integrity: sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==} - engines: {node: '>=8'} - - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - - normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - - normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - nyc@17.1.0: - resolution: {integrity: sha512-U42vQ4czpKa0QdI1hu950XuNhYqgoM+ZF1HT+VuUHL9hPfDPVvNQyltmMqdE9bUHMVa+8yNbc3QKTj8zQhlVxQ==} - engines: {node: '>=18'} - hasBin: true - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - - p-map@3.0.0: - resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-hash@4.0.0: - resolution: {integrity: sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==} - engines: {node: '>=8'} - - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - - parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - - path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} - - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - - pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - - playwright-core@1.55.0: - resolution: {integrity: sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==} - engines: {node: '>=18'} - hasBin: true - - playwright@1.55.0: - resolution: {integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==} - engines: {node: '>=18'} - hasBin: true - - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier@2.8.4: - resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==} - engines: {node: '>=10.13.0'} - hasBin: true - - process-on-spawn@1.1.0: - resolution: {integrity: sha512-JOnOPQ/8TZgjs1JIH/m9ni7FfimjNa/PRx7y/Wb5qdItsnhO0jE4AT7fC0HjC28DUQWDr50dwSYZLdRMlqDq3Q==} - engines: {node: '>=8'} - - prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - - punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - - read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - - read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - - redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - - release-zalgo@1.0.0: - resolution: {integrity: sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==} - engines: {node: '>=4'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - resolve-global@1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} - - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rfdc@1.3.1: - resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} - - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} - hasBin: true - - rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - sax@1.4.1: - resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - - semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - - shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-markdown-to-html@1.0.0: - resolution: {integrity: sha512-oU7mq0DjDur4O3myYbwCFXLyJEpDKrqZkUJGaHFhvWgH97OoB8rZyTMU467pxAYueH/o6qW57sd7i4WI6dVxFw==} - engines: {node: '>=14.0.0'} - - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} - - spawn-wrap@2.0.0: - resolution: {integrity: sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==} - engines: {node: '>=8'} - - spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - - spdx-license-ids@3.0.18: - resolution: {integrity: sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==} - - split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - - string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - - supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - - supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - - test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} - - text-extensions@1.9.0: - resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} - engines: {node: '>=0.10'} - - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - - through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - - ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - - type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - - type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - - typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - - typescript@5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} - engines: {node: '>=14.17'} - hasBin: true - - typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - - v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - - validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - - vite-plugin-istanbul@7.1.0: - resolution: {integrity: sha512-md0774bPYfSrMbAMMy3Xui2+xqmEVwulCGN2ImGm4E4s+0VfO7TjFyJ4ITFIFyEmBhWoMM0sOOX0Yg0I1SsncQ==} - peerDependencies: - vite: '>=4 <=7' - - vite@4.5.3: - resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - - yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - - yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} - engines: {node: '>= 14'} - - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - - yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - - yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - -snapshots: - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - - '@babel/code-frame@7.24.7': - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 - - '@babel/code-frame@7.27.1': - dependencies: - '@babel/helper-validator-identifier': 7.27.1 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/compat-data@7.28.0': {} - - '@babel/core@7.28.0': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) - '@babel/helpers': 7.28.2 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/generator@7.28.0': - dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 - '@jridgewell/gen-mapping': 0.3.12 - '@jridgewell/trace-mapping': 0.3.29 - jsesc: 3.1.0 - - '@babel/helper-compilation-targets@7.27.2': - dependencies: - '@babel/compat-data': 7.28.0 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-globals@7.28.0': {} - - '@babel/helper-module-imports@7.27.1': - dependencies: - '@babel/traverse': 7.28.0 - '@babel/types': 7.28.2 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': - dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 - transitivePeerDependencies: - - supports-color - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-identifier@7.27.1': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.2': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - - '@babel/parser@7.28.0': - dependencies: - '@babel/types': 7.28.2 - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.0 - '@babel/types': 7.28.2 - - '@babel/traverse@7.28.0': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.0 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.0 - '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.3.5 - transitivePeerDependencies: - - supports-color - - '@babel/types@7.28.2': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - - '@commitlint/cli@17.8.1': - dependencies: - '@commitlint/format': 17.8.1 - '@commitlint/lint': 17.8.1 - '@commitlint/load': 17.8.1 - '@commitlint/read': 17.8.1 - '@commitlint/types': 17.8.1 - execa: 5.1.1 - lodash.isfunction: 3.0.9 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@commitlint/config-conventional@17.8.1': - dependencies: - conventional-changelog-conventionalcommits: 6.1.0 - - '@commitlint/config-validator@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - ajv: 8.16.0 - - '@commitlint/ensure@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - - '@commitlint/execute-rule@17.8.1': {} - - '@commitlint/format@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - chalk: 4.1.2 - - '@commitlint/is-ignored@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - semver: 7.5.4 - - '@commitlint/lint@17.8.1': - dependencies: - '@commitlint/is-ignored': 17.8.1 - '@commitlint/parse': 17.8.1 - '@commitlint/rules': 17.8.1 - '@commitlint/types': 17.8.1 - - '@commitlint/load@17.8.1': - dependencies: - '@commitlint/config-validator': 17.8.1 - '@commitlint/execute-rule': 17.8.1 - '@commitlint/resolve-extends': 17.8.1 - '@commitlint/types': 17.8.1 - '@types/node': 20.5.1 - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.4.5) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.4.5))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.4.5))(typescript@5.4.5) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - '@swc/core' - - '@swc/wasm' - - '@commitlint/message@17.8.1': {} - - '@commitlint/parse@17.8.1': - dependencies: - '@commitlint/types': 17.8.1 - conventional-changelog-angular: 6.0.0 - conventional-commits-parser: 4.0.0 - - '@commitlint/read@17.8.1': - dependencies: - '@commitlint/top-level': 17.8.1 - '@commitlint/types': 17.8.1 - fs-extra: 11.2.0 - git-raw-commits: 2.0.11 - minimist: 1.2.8 - - '@commitlint/resolve-extends@17.8.1': - dependencies: - '@commitlint/config-validator': 17.8.1 - '@commitlint/types': 17.8.1 - import-fresh: 3.3.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - - '@commitlint/rules@17.8.1': - dependencies: - '@commitlint/ensure': 17.8.1 - '@commitlint/message': 17.8.1 - '@commitlint/to-lines': 17.8.1 - '@commitlint/types': 17.8.1 - execa: 5.1.1 - - '@commitlint/to-lines@17.8.1': {} - - '@commitlint/top-level@17.8.1': - dependencies: - find-up: 5.0.0 - - '@commitlint/types@17.8.1': - dependencies: - chalk: 4.1.2 - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@esbuild/android-arm64@0.18.20': - optional: true - - '@esbuild/android-arm@0.18.20': - optional: true - - '@esbuild/android-x64@0.18.20': - optional: true - - '@esbuild/darwin-arm64@0.18.20': - optional: true - - '@esbuild/darwin-x64@0.18.20': - optional: true - - '@esbuild/freebsd-arm64@0.18.20': - optional: true - - '@esbuild/freebsd-x64@0.18.20': - optional: true - - '@esbuild/linux-arm64@0.18.20': - optional: true - - '@esbuild/linux-arm@0.18.20': - optional: true - - '@esbuild/linux-ia32@0.18.20': - optional: true - - '@esbuild/linux-loong64@0.18.20': - optional: true - - '@esbuild/linux-mips64el@0.18.20': - optional: true - - '@esbuild/linux-ppc64@0.18.20': - optional: true - - '@esbuild/linux-riscv64@0.18.20': - optional: true - - '@esbuild/linux-s390x@0.18.20': - optional: true - - '@esbuild/linux-x64@0.18.20': - optional: true - - '@esbuild/netbsd-x64@0.18.20': - optional: true - - '@esbuild/openbsd-x64@0.18.20': - optional: true - - '@esbuild/sunos-x64@0.18.20': - optional: true - - '@esbuild/win32-arm64@0.18.20': - optional: true - - '@esbuild/win32-ia32@0.18.20': - optional: true - - '@esbuild/win32-x64@0.18.20': - optional: true - - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.10.1': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.0': {} - - '@humanwhocodes/config-array@0.11.14': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.0': - dependencies: - '@isaacs/balanced-match': 4.0.1 - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.13.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jridgewell/gen-mapping@0.3.12': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.4 - '@jridgewell/trace-mapping': 0.3.29 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.4.15': {} - - '@jridgewell/sourcemap-codec@1.5.4': {} - - '@jridgewell/trace-mapping@0.3.29': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - '@microsoft/api-documenter@7.25.21(@types/node@20.14.2)': - dependencies: - '@microsoft/api-extractor-model': 7.29.8(@types/node@20.14.2) - '@microsoft/tsdoc': 0.15.0 - '@rushstack/node-core-library': 5.9.0(@types/node@20.14.2) - '@rushstack/terminal': 0.14.2(@types/node@20.14.2) - '@rushstack/ts-command-line': 4.23.0(@types/node@20.14.2) - js-yaml: 3.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor-model@7.29.8(@types/node@20.14.2)': - dependencies: - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@20.14.2) - transitivePeerDependencies: - - '@types/node' - - '@microsoft/api-extractor@7.47.11(@types/node@20.14.2)': - dependencies: - '@microsoft/api-extractor-model': 7.29.8(@types/node@20.14.2) - '@microsoft/tsdoc': 0.15.0 - '@microsoft/tsdoc-config': 0.17.0 - '@rushstack/node-core-library': 5.9.0(@types/node@20.14.2) - '@rushstack/rig-package': 0.5.3 - '@rushstack/terminal': 0.14.2(@types/node@20.14.2) - '@rushstack/ts-command-line': 4.23.0(@types/node@20.14.2) - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - - '@microsoft/tsdoc-config@0.17.0': - dependencies: - '@microsoft/tsdoc': 0.15.0 - ajv: 8.12.0 - jju: 1.4.0 - resolve: 1.22.8 - - '@microsoft/tsdoc@0.15.0': {} - - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - - '@pkgjs/parseargs@0.11.0': - optional: true - - '@playwright/test@1.55.0': - dependencies: - playwright: 1.55.0 - - '@rollup/plugin-strip@3.0.4(rollup@3.29.4)': - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@3.29.4) - estree-walker: 2.0.2 - magic-string: 0.30.10 - optionalDependencies: - rollup: 3.29.4 - - '@rollup/pluginutils@5.1.0(rollup@3.29.4)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - optionalDependencies: - rollup: 3.29.4 - - '@rushstack/node-core-library@5.9.0(@types/node@20.14.2)': - dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - optionalDependencies: - '@types/node': 20.14.2 - - '@rushstack/rig-package@0.5.3': - dependencies: - resolve: 1.22.8 - strip-json-comments: 3.1.1 - - '@rushstack/terminal@0.14.2(@types/node@20.14.2)': - dependencies: - '@rushstack/node-core-library': 5.9.0(@types/node@20.14.2) - supports-color: 8.1.1 - optionalDependencies: - '@types/node': 20.14.2 - - '@rushstack/ts-command-line@4.23.0(@types/node@20.14.2)': - dependencies: - '@rushstack/terminal': 0.14.2(@types/node@20.14.2) - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - - '@tsconfig/node10@1.0.11': {} - - '@tsconfig/node12@1.0.11': {} - - '@tsconfig/node14@1.0.3': {} - - '@tsconfig/node16@1.0.4': {} - - '@types/argparse@1.0.38': {} - - '@types/estree@1.0.5': {} - - '@types/json-schema@7.0.15': {} - - '@types/minimist@1.2.5': {} - - '@types/node@20.14.2': - dependencies: - undici-types: 5.26.5 - - '@types/node@20.5.1': {} - - '@types/normalize-package-data@2.4.4': {} - - '@types/semver@7.5.8': {} - - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/regexpp': 4.10.1 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.5 - eslint: 8.57.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare-lite: 1.4.0 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - debug: 4.3.5 - eslint: 8.57.0 - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - - '@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.5 - eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@5.62.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.4.5) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - - '@ungap/structured-clone@1.2.0': {} - - '@viselect/vanilla@3.9.0': {} - - '@zumer/snapdom@1.3.0': {} - - JSONStream@1.3.5: - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - - acorn-jsx@5.3.2(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - - acorn-jsx@5.3.2(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - - acorn-walk@8.3.2: {} - - acorn@8.11.3: {} - - acorn@8.15.0: {} - - aggregate-error@3.1.0: - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - - ajv-draft-04@1.0.0(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv-formats@3.0.1(ajv@8.13.0): - optionalDependencies: - ajv: 8.13.0 - - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.16.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ansi-escapes@5.0.0: - dependencies: - type-fest: 1.4.0 - - ansi-regex@5.0.1: {} - - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - ansi-styles@6.2.1: {} - - append-transform@2.0.0: - dependencies: - default-require-extensions: 3.0.1 - - archy@1.0.0: {} - - arg@4.1.3: {} - - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-ify@1.0.0: {} - - array-union@2.1.0: {} - - arrify@1.0.1: {} - - balanced-match@1.0.2: {} - - brace-expansion@1.1.11: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - - browserslist@4.25.1: - dependencies: - caniuse-lite: 1.0.30001731 - electron-to-chromium: 1.5.195 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.1) - - caching-transform@4.0.0: - dependencies: - hasha: 5.2.2 - make-dir: 3.1.0 - package-hash: 4.0.0 - write-file-atomic: 3.0.3 - - callsites@3.1.0: {} - - camelcase-keys@6.2.2: - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - - camelcase@5.3.1: {} - - caniuse-lite@1.0.30001731: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - chalk@4.1.2: - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - chalk@5.3.0: {} - - clean-stack@2.2.0: {} - - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-truncate@3.1.0: - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - - cliui@6.0.0: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.3: {} - - color-name@1.1.4: {} - - colorette@2.0.20: {} - - commander@11.0.0: {} - - commander@8.3.0: {} - - commondir@1.0.1: {} - - compare-func@2.0.0: - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - - concat-map@0.0.1: {} - - conventional-changelog-angular@6.0.0: - dependencies: - compare-func: 2.0.0 - - conventional-changelog-conventionalcommits@6.1.0: - dependencies: - compare-func: 2.0.0 - - conventional-commits-parser@4.0.0: - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 - - convert-source-map@1.9.0: {} - - convert-source-map@2.0.0: {} - - copy-anything@2.0.6: - dependencies: - is-what: 3.14.1 - - cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6(typescript@5.4.5))(ts-node@10.9.2(@types/node@20.5.1)(typescript@5.4.5))(typescript@5.4.5): - dependencies: - '@types/node': 20.5.1 - cosmiconfig: 8.3.6(typescript@5.4.5) - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.4.5) - typescript: 5.4.5 - - cosmiconfig@8.3.6(typescript@5.4.5): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.4.5 - - create-require@1.1.1: {} - - cross-spawn@7.0.3: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - cross-spawn@7.0.6: - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - dargs@7.0.0: {} - - debug@4.3.4: - dependencies: - ms: 2.1.2 - - debug@4.3.5: - dependencies: - ms: 2.1.2 - - decamelize-keys@1.1.1: - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - - decamelize@1.2.0: {} - - deep-is@0.1.4: {} - - default-require-extensions@3.0.1: - dependencies: - strip-bom: 4.0.0 - - diff@4.0.2: {} - - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - doctrine@3.0.0: - dependencies: - esutils: 2.0.3 - - dot-prop@5.3.0: - dependencies: - is-obj: 2.0.0 - - eastasianwidth@0.2.0: {} - - electron-to-chromium@1.5.195: {} - - emoji-regex@8.0.0: {} - - emoji-regex@9.2.2: {} - - errno@0.1.8: - dependencies: - prr: 1.0.1 - optional: true - - error-ex@1.3.2: - dependencies: - is-arrayish: 0.2.1 - - es6-error@4.1.1: {} - - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - - escalade@3.1.2: {} - - escalade@3.2.0: {} - - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - - eslint-config-prettier@8.10.0(eslint@8.57.0): - dependencies: - eslint: 8.57.0 - - eslint-plugin-prettier@4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.0))(eslint@8.57.0)(prettier@2.8.4): - dependencies: - eslint: 8.57.0 - prettier: 2.8.4 - prettier-linter-helpers: 1.0.0 - optionalDependencies: - eslint-config-prettier: 8.10.0(eslint@8.57.0) - - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint@8.57.0: - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.1 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.5 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - - espree@9.6.1: - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 - - esprima@4.0.1: {} - - esquery@1.5.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-walker@2.0.2: {} - - esutils@2.0.3: {} - - eventemitter3@5.0.1: {} - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@7.2.0: - dependencies: - cross-spawn: 7.0.6 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - - fast-deep-equal@3.1.3: {} - - fast-diff@1.3.0: {} - - fast-glob@3.3.2: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.7 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - - fastq@1.17.1: - dependencies: - reusify: 1.0.4 - - file-entry-cache@6.0.1: - dependencies: - flat-cache: 3.2.0 - - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-cache-dir@3.3.2: - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - - flatted@3.3.1: {} - - foreground-child@2.0.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 3.0.7 - - foreground-child@3.3.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - fromentries@1.3.2: {} - - fs-extra@11.2.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs.realpath@1.0.0: {} - - fsevents@2.3.2: - optional: true - - fsevents@2.3.3: - optional: true - - function-bind@1.1.2: {} - - gensync@1.0.0-beta.2: {} - - get-caller-file@2.0.5: {} - - get-package-type@0.1.0: {} - - get-stream@6.0.1: {} - - git-raw-commits@2.0.11: - dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - - glob@10.4.5: - dependencies: - foreground-child: 3.3.1 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - - glob@11.0.3: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.1.1 - minimatch: 10.0.3 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - - glob@7.2.3: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - global-dirs@0.1.1: - dependencies: - ini: 1.3.8 - - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - hard-rejection@2.1.0: {} - - has-flag@3.0.0: {} - - has-flag@4.0.0: {} - - hasha@5.2.2: - dependencies: - is-stream: 2.0.1 - type-fest: 0.8.1 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - - hosted-git-info@2.8.9: {} - - hosted-git-info@4.1.0: - dependencies: - lru-cache: 6.0.0 - - html-escaper@2.0.2: {} - - human-signals@2.1.0: {} - - human-signals@4.3.1: {} - - husky@8.0.3: {} - - iconv-lite@0.6.3: - dependencies: - safer-buffer: 2.1.2 - optional: true - - ignore@5.3.1: {} - - image-size@0.5.5: - optional: true - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-lazy@4.0.0: {} - - imurmurhash@0.1.4: {} - - indent-string@4.0.0: {} - - inflight@1.0.6: - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - inherits@2.0.4: {} - - ini@1.3.8: {} - - is-arrayish@0.2.1: {} - - is-core-module@2.13.1: - dependencies: - hasown: 2.0.2 - - is-extglob@2.1.1: {} - - is-fullwidth-code-point@3.0.0: {} - - is-fullwidth-code-point@4.0.0: {} - - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - - is-obj@2.0.0: {} - - is-path-inside@3.0.3: {} - - is-plain-obj@1.1.0: {} - - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - - is-text-path@1.0.1: - dependencies: - text-extensions: 1.9.0 - - is-typedarray@1.0.0: {} - - is-what@3.14.1: {} - - is-windows@1.0.2: {} - - isexe@2.0.0: {} - - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-hook@3.0.0: - dependencies: - append-transform: 2.0.0 - - istanbul-lib-instrument@6.0.3: - dependencies: - '@babel/core': 7.28.0 - '@babel/parser': 7.28.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.2 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - istanbul-lib-processinfo@2.0.3: - dependencies: - archy: 1.0.0 - cross-spawn: 7.0.6 - istanbul-lib-coverage: 3.2.2 - p-map: 3.0.0 - rimraf: 3.0.2 - uuid: 8.3.2 - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@4.0.1: - dependencies: - debug: 4.3.5 - istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jackspeak@4.1.1: - dependencies: - '@isaacs/cliui': 8.0.2 - - jju@1.4.0: {} - - js-tokens@4.0.0: {} - - js-yaml@3.13.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.0: - dependencies: - argparse: 2.0.1 - - jsesc@3.1.0: {} - - json-buffer@3.0.1: {} - - json-parse-even-better-errors@2.3.1: {} - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} - - json5@2.2.3: {} - - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 - - jsonfile@6.1.0: - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 - - jsonparse@1.3.1: {} - - katex@0.16.22: - dependencies: - commander: 8.3.0 - - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - - kind-of@6.0.3: {} - - less@4.2.0: - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.6.3 - optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.11 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 3.3.1 - source-map: 0.6.1 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - lilconfig@2.1.0: {} - - lines-and-columns@1.2.4: {} - - lint-staged@13.3.0: - dependencies: - chalk: 5.3.0 - commander: 11.0.0 - debug: 4.3.4 - execa: 7.2.0 - lilconfig: 2.1.0 - listr2: 6.6.1 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.1 - transitivePeerDependencies: - - enquirer - - supports-color - - listr2@6.6.1: - dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 5.0.1 - rfdc: 1.3.1 - wrap-ansi: 8.1.0 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - - lodash.camelcase@4.3.0: {} - - lodash.flattendeep@4.4.0: {} - - lodash.isfunction@3.0.9: {} - - lodash.isplainobject@4.0.6: {} - - lodash.kebabcase@4.1.1: {} - - lodash.merge@4.6.2: {} - - lodash.mergewith@4.6.2: {} - - lodash.snakecase@4.1.1: {} - - lodash.startcase@4.4.0: {} - - lodash.uniq@4.5.0: {} - - lodash.upperfirst@4.3.1: {} - - lodash@4.17.21: {} - - log-update@5.0.1: - dependencies: - ansi-escapes: 5.0.0 - cli-cursor: 4.0.0 - slice-ansi: 5.0.0 - strip-ansi: 7.1.0 - wrap-ansi: 8.1.0 - - lru-cache@10.4.3: {} - - lru-cache@11.1.0: {} - - lru-cache@5.1.1: - dependencies: - yallist: 3.1.1 - - lru-cache@6.0.0: - dependencies: - yallist: 4.0.0 - - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - - make-dir@2.1.0: - dependencies: - pify: 4.0.1 - semver: 5.7.2 - optional: true - - make-dir@3.1.0: - dependencies: - semver: 6.3.1 - - make-dir@4.0.0: - dependencies: - semver: 7.6.2 - - make-error@1.3.6: {} - - map-obj@1.0.1: {} - - map-obj@4.3.0: {} - - marked@16.2.0: {} - - meow@8.1.2: - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.5: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - - mime@1.6.0: - optional: true - - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} - - min-indent@1.0.1: {} - - minimatch@10.0.3: - dependencies: - '@isaacs/brace-expansion': 5.0.0 - - minimatch@3.0.8: - dependencies: - brace-expansion: 1.1.11 - - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 - - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - - minimist-options@4.1.0: - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - - minimist@1.2.8: {} - - minipass@7.1.2: {} - - ms@2.1.2: {} - - nanoid@3.3.7: {} - - natural-compare-lite@1.4.0: {} - - natural-compare@1.4.0: {} - - needle@3.3.1: - dependencies: - iconv-lite: 0.6.3 - sax: 1.4.1 - optional: true - - node-preload@0.2.1: - dependencies: - process-on-spawn: 1.1.0 - - node-releases@2.0.19: {} - - normalize-package-data@2.5.0: - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - - normalize-package-data@3.0.3: - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.6.2 - validate-npm-package-license: 3.0.4 - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - - nyc@17.1.0: - dependencies: - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - caching-transform: 4.0.0 - convert-source-map: 1.9.0 - decamelize: 1.2.0 - find-cache-dir: 3.3.2 - find-up: 4.1.0 - foreground-child: 3.3.1 - get-package-type: 0.1.0 - glob: 7.2.3 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-hook: 3.0.0 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-processinfo: 2.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.7 - make-dir: 3.1.0 - node-preload: 0.2.1 - p-map: 3.0.0 - process-on-spawn: 1.1.0 - resolve-from: 5.0.0 - rimraf: 3.0.2 - signal-exit: 3.0.7 - spawn-wrap: 2.0.0 - test-exclude: 6.0.0 - yargs: 15.4.1 - transitivePeerDependencies: - - supports-color - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - - p-map@3.0.0: - dependencies: - aggregate-error: 3.1.0 - - p-try@2.2.0: {} - - package-hash@4.0.0: - dependencies: - graceful-fs: 4.2.11 - hasha: 5.2.2 - lodash.flattendeep: 4.4.0 - release-zalgo: 1.0.0 - - package-json-from-dist@1.0.1: {} - - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.24.7 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - - parse-node-version@1.0.1: {} - - path-exists@4.0.0: {} - - path-is-absolute@1.0.1: {} - - path-key@3.1.1: {} - - path-key@4.0.0: {} - - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - - path-scurry@2.0.0: - dependencies: - lru-cache: 11.1.0 - minipass: 7.1.2 - - path-type@4.0.0: {} - - picocolors@1.0.1: {} - - picocolors@1.1.1: {} - - picomatch@2.3.1: {} - - pidtree@0.6.0: {} - - pify@4.0.1: - optional: true - - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - - playwright-core@1.55.0: {} - - playwright@1.55.0: - dependencies: - playwright-core: 1.55.0 - optionalDependencies: - fsevents: 2.3.2 - - postcss@8.4.38: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - - prettier@2.8.4: {} - - process-on-spawn@1.1.0: - dependencies: - fromentries: 1.3.2 - - prr@1.0.1: - optional: true - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - quick-lru@4.0.1: {} - - read-pkg-up@7.0.1: - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - - read-pkg@5.2.0: - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - - redent@3.0.0: - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - - release-zalgo@1.0.0: - dependencies: - es6-error: 4.1.1 - - require-directory@2.1.1: {} - - require-from-string@2.0.2: {} - - require-main-filename@2.0.0: {} - - resolve-from@4.0.0: {} - - resolve-from@5.0.0: {} - - resolve-global@1.0.0: - dependencies: - global-dirs: 0.1.1 - - resolve@1.22.8: - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - - reusify@1.0.4: {} - - rfdc@1.3.1: {} - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - - rimraf@6.0.1: - dependencies: - glob: 11.0.3 - package-json-from-dist: 1.0.1 - - rollup@3.29.4: - optionalDependencies: - fsevents: 2.3.3 - - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - safe-buffer@5.2.1: {} - - safer-buffer@2.1.2: - optional: true - - sax@1.4.1: - optional: true - - semver@5.7.2: {} - - semver@6.3.1: {} - - semver@7.5.4: - dependencies: - lru-cache: 6.0.0 - - semver@7.6.2: {} - - set-blocking@2.0.0: {} - - shebang-command@2.0.0: - dependencies: - shebang-regex: 3.0.0 - - shebang-regex@3.0.0: {} - - signal-exit@3.0.7: {} - - signal-exit@4.1.0: {} - - simple-markdown-to-html@1.0.0: {} - - slash@3.0.0: {} - - slice-ansi@5.0.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - - source-map-js@1.2.0: {} - - source-map@0.6.1: {} - - source-map@0.7.6: {} - - spawn-wrap@2.0.0: - dependencies: - foreground-child: 2.0.0 - is-windows: 1.0.2 - make-dir: 3.1.0 - rimraf: 3.0.2 - signal-exit: 3.0.7 - which: 2.0.2 - - spdx-correct@3.2.0: - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.18 - - spdx-exceptions@2.5.0: {} - - spdx-expression-parse@3.0.1: - dependencies: - spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.18 - - spdx-license-ids@3.0.18: {} - - split2@3.2.2: - dependencies: - readable-stream: 3.6.2 - - sprintf-js@1.0.3: {} - - string-argv@0.3.2: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - string-width@5.1.2: - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - strip-ansi@7.1.0: - dependencies: - ansi-regex: 6.0.1 - - strip-bom@4.0.0: {} - - strip-final-newline@2.0.0: {} - - strip-final-newline@3.0.0: {} - - strip-indent@3.0.0: - dependencies: - min-indent: 1.0.1 - - strip-json-comments@3.1.1: {} - - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - - supports-color@7.2.0: - dependencies: - has-flag: 4.0.0 - - supports-color@8.1.1: - dependencies: - has-flag: 4.0.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - - test-exclude@7.0.1: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 10.4.5 - minimatch: 9.0.5 - - text-extensions@1.9.0: {} - - text-table@0.2.0: {} - - through2@4.0.2: - dependencies: - readable-stream: 3.6.2 - - through@2.3.8: {} - - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - trim-newlines@3.0.1: {} - - ts-node@10.9.2(@types/node@20.5.1)(typescript@5.4.5): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.11 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.5.1 - acorn: 8.11.3 - acorn-walk: 8.3.2 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.4.5 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - - tslib@1.14.1: {} - - tslib@2.6.3: {} - - tsutils@3.21.0(typescript@5.4.5): - dependencies: - tslib: 1.14.1 - typescript: 5.4.5 - - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - - type-fest@0.18.1: {} - - type-fest@0.20.2: {} - - type-fest@0.6.0: {} - - type-fest@0.8.1: {} - - type-fest@1.4.0: {} - - typedarray-to-buffer@3.1.5: - dependencies: - is-typedarray: 1.0.0 - - typescript@5.4.2: {} - - typescript@5.4.5: {} - - undici-types@5.26.5: {} - - universalify@0.1.2: {} - - universalify@2.0.1: {} - - update-browserslist-db@1.1.3(browserslist@4.25.1): - dependencies: - browserslist: 4.25.1 - escalade: 3.2.0 - picocolors: 1.1.1 - - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - - util-deprecate@1.0.2: {} - - uuid@8.3.2: {} - - v8-compile-cache-lib@3.0.1: {} - - validate-npm-package-license@3.0.4: - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - - vite-plugin-istanbul@7.1.0(vite@4.5.3(@types/node@20.14.2)(less@4.2.0)): - dependencies: - '@istanbuljs/load-nyc-config': 1.1.0 - espree: 10.4.0 - istanbul-lib-instrument: 6.0.3 - picocolors: 1.1.1 - source-map: 0.7.6 - test-exclude: 7.0.1 - vite: 4.5.3(@types/node@20.14.2)(less@4.2.0) - transitivePeerDependencies: - - supports-color - - vite@4.5.3(@types/node@20.14.2)(less@4.2.0): - dependencies: - esbuild: 0.18.20 - postcss: 8.4.38 - rollup: 3.29.4 - optionalDependencies: - '@types/node': 20.14.2 - fsevents: 2.3.3 - less: 4.2.0 - - which-module@2.0.1: {} - - which@2.0.2: - dependencies: - isexe: 2.0.0 - - word-wrap@1.2.5: {} - - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@7.0.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - wrap-ansi@8.1.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrappy@1.0.2: {} - - write-file-atomic@3.0.3: - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - - y18n@4.0.3: {} - - y18n@5.0.8: {} - - yallist@3.1.1: {} - - yallist@4.0.0: {} - - yaml@2.3.1: {} - - yargs-parser@18.1.3: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - - yargs-parser@20.2.9: {} - - yargs-parser@21.1.1: {} - - yargs@15.4.1: - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.1.2 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - - yn@3.1.1: {} - - yocto-queue@0.1.0: {} diff --git a/mind-elixir-core-master/readme.md b/mind-elixir-core-master/readme.md deleted file mode 100644 index c14d29f..0000000 --- a/mind-elixir-core-master/readme.md +++ /dev/null @@ -1,432 +0,0 @@ -

    - - mindelixir logo2 - -

    Mind Elixir

    -

    - -

    - - version - - - license - - - code quality - - - dependency-count - - - package size - -

    - -[English](/readme.md) | -[中文](/readme/zh.md) | -[Español](/readme/es.md) | -[Français](/readme/fr.md) | -[Português](/readme/pt.md) | -[Русский](/readme/ru.md) | -[日本語](/readme/ja.md) | -[한국어](/readme/ko.md) - -Mind elixir is a open source JavaScript mind map core. You can use it with any frontend framework you like. - -## Features - -### 🎨 **User Experience** - -- **Fluent UX** - Smooth and intuitive interactions -- **Well designed** - Clean and modern interface -- **Mobile friendly** - Touch events for mobile devices -- **Efficient shortcuts** - Keyboard shortcuts for power users - -### ⚡ **Performance & Architecture** - -- **Lightweight** - Minimal bundle size -- **High performance** - Optimized for large mind maps -- **Framework agnostic** - Works with any frontend framework -- **Pluginable** - Extensible architecture - -### 🛠️ **Core Features** - -- **Interactive editing** - Built-in drag and drop / node edit capabilities -- **Bulk operations** - Multi-node selection and operations -- **Undo / Redo** - Complete operation history -- **Node connections & summarization** - Custom node linking and content summarization - -### 📤 **Export & Customization** - -- **Multiple export formats** - SVG / PNG / HTML export -- **Easy styling** - Customize mindmap with CSS variables -- **Theme support** - Built-in themes and custom styling - -[v5 Breaking Changes](https://github.com/SSShooter/mind-elixir-core/wiki/Breaking-Change#500) - -
    -Table of Contents - -- [Features](#features) - - [🎨 **User Experience**](#-user-experience) - - [⚡ **Performance \& Architecture**](#-performance--architecture) - - [🛠️ **Core Features**](#️-core-features) - - [📤 **Export \& Customization**](#-export--customization) -- [Try now](#try-now) - - [Playground](#playground) -- [Documentation](#documentation) -- [Usage](#usage) - - [Install](#install) - - [NPM](#npm) - - [Script tag](#script-tag) - - [Init](#init) - - [Data Structure](#data-structure) - - [Event Handling](#event-handling) - - [Data Export And Import](#data-export-and-import) - - [Operation Guards](#operation-guards) -- [Export as a Image](#export-as-a-image) -- [Theme](#theme) -- [Shortcuts](#shortcuts) -- [Who's using](#whos-using) -- [Ecosystem](#ecosystem) -- [Development](#development) -- [Thanks](#thanks) -- [Contributors](#contributors) - -
    - -## Try now - -![mindelixir](https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/screenshot5.jpg) - -https://mind-elixir.com/ - -### Playground - -- Vanilla JS - https://codepen.io/ssshooter/pen/vEOqWjE -- React - https://codesandbox.io/p/devbox/mind-elixir-3-x-react-18-x-forked-f3mtcd -- Vue3 - https://codesandbox.io/p/sandbox/mind-elixir-3-x-vue3-lth484 - -## Documentation - -https://docs.mind-elixir.com/ - -## Usage - -### Install - -#### NPM - -```bash -npm i mind-elixir -S -``` - -```javascript -import MindElixir from 'mind-elixir' -import 'mind-elixir/style.css' -``` - -#### Script tag - -```html - -``` - -And in your CSS file: - -```css -@import 'https://cdn.jsdelivr.net/npm/mind-elixir/dist/style.css'; -``` - -### Init - -```html -
    - -``` - -```javascript -import MindElixir from 'mind-elixir' -import 'mind-elixir/style.css' -import example from 'mind-elixir/dist/example1' - -let options = { - el: '#map', // or HTMLDivElement - direction: MindElixir.LEFT, - draggable: true, // default true - toolBar: true, // default true - nodeMenu: true, // default true - keypress: true, // default true - locale: 'en', // [zh_CN,zh_TW,en,ja,pt,ru] waiting for PRs - overflowHidden: false, // default false - mainLinkStyle: 2, // [1,2] default 1 - mouseSelectionButton: 0, // 0 for left button, 2 for right button, default 0 - contextMenu: { - focus: true, - link: true, - extend: [ - { - name: 'Node edit', - onclick: () => { - alert('extend menu') - }, - }, - ], - }, // default true - before: { - insertSibling(type, obj) { - return true - }, - }, - // Custom markdown parser (optional) - // markdown: (text) => customMarkdownParser(text), // provide your own markdown parser function -} - -let mind = new MindElixir(options) - -mind.install(plugin) // install your plugin - -// create new map data -const data = MindElixir.new('new topic') -// or `example` -// or the data return from `.getData()` -mind.init(data) - -// get a node -MindElixir.E('node-id') -``` - -### Data Structure - -```javascript -// whole node data structure up to now -const nodeData = { - topic: 'node topic', - id: 'bd1c24420cd2c2f5', - style: { fontSize: '32', color: '#3298db', background: '#ecf0f1' }, - expanded: true, - parent: null, - tags: ['Tag'], - icons: ['😀'], - hyperLink: 'https://github.com/ssshooter/mind-elixir-core', - image: { - url: 'https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png', // required - // you need to query the height and width of the image and calculate the appropriate value to display the image - height: 90, // required - width: 90, // required - }, - children: [ - { - topic: 'child', - id: 'xxxx', - // ... - }, - ], -} -``` - -### Event Handling - -```javascript -mind.bus.addListener('operation', operation => { - console.log(operation) - // return { - // name: action name, - // obj: target object - // } - - // name: [insertSibling|addChild|removeNode|beginEdit|finishEdit] - // obj: target - - // name: moveNode - // obj: {from:target1,to:target2} -}) - -mind.bus.addListener('selectNodes', nodes => { - console.log(nodes) -}) - -mind.bus.addListener('expandNode', node => { - console.log('expandNode: ', node) -}) -``` - -### Data Export And Import - -```javascript -// data export -const data = mind.getData() // javascript object, see src/example.js -mind.getDataString() // stringify object - -// data import -// initiate -let mind = new MindElixir(options) -mind.init(data) -// data update -mind.refresh(data) -``` - -### Markdown Support - -Mind Elixir supports custom markdown parsing: - -```javascript -// Disable markdown (default) -let mind = new MindElixir({ - // markdown option omitted - no markdown processing -}) - -// Use custom markdown parser -let mind = new MindElixir({ - markdown: (text) => { - // Your custom markdown implementation - return text - .replace(/\*\*(.*?)\*\*/g, '$1') - .replace(/\*(.*?)\*/g, '$1') - .replace(/`(.*?)`/g, '$1') - }, -}) - -// Use any markdown library (e.g., marked, markdown-it, etc.) -import { marked } from 'marked' -let mind = new MindElixir({ - markdown: (text) => marked(text), -}) -``` - -For detailed markdown configuration examples, see [docs/markdown-configuration.md](docs/markdown-configuration.md). - -### Operation Guards - -```javascript -let mind = new MindElixir({ - // ... - before: { - async addChild(el, obj) { - await saveDataToDb() - return true - }, - }, -}) -``` - -## Export as a Image - -Install `@ssshooter/modern-screenshot`, then: - -```typescript -import { domToPng } from '@ssshooter/modern-screenshot' - -const download = async () => { - const dataUrl = await domToPng(mind.nodes, { - padding: 300, - quality: 1, - }) - const link = document.createElement('a') - link.download = 'screenshot.png' - link.href = dataUrl - link.click() -} -``` - -## Theme - -```javascript -const options = { - // ... - theme: { - name: 'Dark', - // main lines color palette - palette: ['#848FA0', '#748BE9', '#D2F9FE', '#4145A5', '#789AFA', '#706CF4', '#EF987F', '#775DD5', '#FCEECF', '#DA7FBC'], - // overwrite css variables - cssVar: { - '--main-color': '#ffffff', - '--main-bgcolor': '#4c4f69', - '--color': '#cccccc', - '--bgcolor': '#252526', - '--panel-color': '255, 255, 255', - '--panel-bgcolor': '45, 55, 72', - }, - // all variables see /src/index.less - }, - // ... -} - -// ... - -mind.changeTheme({ - name: 'Latte', - palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'], - cssVar: { - '--main-color': '#444446', - '--main-bgcolor': '#ffffff', - '--color': '#777777', - '--bgcolor': '#f6f6f6', - }, -}) -``` - -Be aware that Mind Elixir will not observe the change of `prefers-color-scheme`. Please change the theme **manually** when the scheme changes. - -## Shortcuts - -See [Shortcuts Guide](https://docs.mind-elixir.com/docs/guides/shortcuts) for detailed information. - -## Who's using - -- [Mind Elixir Desktop](https://desktop.mind-elixir.com/) - -## Ecosystem - -- [@mind-elixir/node-menu](https://github.com/ssshooter/node-menu) -- [@mind-elixir/node-menu-neo](https://github.com/ssshooter/node-menu-neo) -- [@mind-elixir/export-xmind](https://github.com/ssshooter/export-xmind) -- [@mind-elixir/export-html](https://github.com/ssshooter/export-html) -- [mind-elixir-react](https://github.com/ssshooter/mind-elixir-react) - -PRs are welcome! - -## Development - -``` -pnpm i -pnpm dev -``` - -Test generated files with `dev.dist.ts`: - -``` -pnpm build -pnpm link ./ -``` - -Update docs: - -``` -# Install api-extractor -pnpm install -g @microsoft/api-extractor -# Maintain /src/docs.ts -# Generate docs -pnpm doc -pnpm doc:md -``` - -Use [DeepWiki](https://deepwiki.com/SSShooter/mind-elixir-core) to learn more about Mind Elixir - -## Thanks - -- [@viselect/vanilla](https://github.com/simonwep/selection/tree/master/packages/vanilla) - -## Contributors - -Thanks for your contributions to Mind Elixir! Your support and dedication make this project better. - - - - diff --git a/mind-elixir-core-master/refs/scale-calc.excalidraw b/mind-elixir-core-master/refs/scale-calc.excalidraw deleted file mode 100644 index 5d63ed3..0000000 --- a/mind-elixir-core-master/refs/scale-calc.excalidraw +++ /dev/null @@ -1,1720 +0,0 @@ -{ - "type": "excalidraw", - "version": 2, - "source": "https://excalidraw.com", - "elements": [ - { - "id": "fftsa4MU7xMIsISzw-9iN", - "type": "line", - "x": 14188.00819958561, - "y": 9038.419185734798, - "width": 387, - "height": 2, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "a5", - "roundness": { - "type": 2 - }, - "seed": 847805816, - "version": 93, - "versionNonce": 413580040, - "isDeleted": false, - "boundElements": null, - "updated": 1750388362786, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 387, - -2 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "7tjFyvoY4iF52CDI-assf", - "type": "line", - "x": 14019.00819958561, - "y": 9175.419185734798, - "width": 716, - "height": 7, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "a6", - "roundness": { - "type": 2 - }, - "seed": 1844882808, - "version": 115, - "versionNonce": 235524616, - "isDeleted": false, - "boundElements": null, - "updated": 1750389998164, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 716, - -7 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "IJRz4hicvZlRATHv6a30D", - "type": "text", - "x": 14650.00819958561, - "y": 9028.419185734798, - "width": 70.05595397949219, - "height": 35, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "a7", - "roundness": null, - "seed": 823744888, - "version": 7, - "versionNonce": 408629368, - "isDeleted": false, - "boundElements": null, - "updated": 1750388102956, - "link": null, - "locked": false, - "text": "front", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "front", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "nq9hO7J2vXqNbqIFniHwj", - "type": "text", - "x": 14783.00819958561, - "y": 9135.419185734798, - "width": 50.2039794921875, - "height": 35, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "a8", - "roundness": null, - "seed": 571368312, - "version": 35, - "versionNonce": 950240264, - "isDeleted": false, - "boundElements": null, - "updated": 1750389784075, - "link": null, - "locked": false, - "text": "map", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "map", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "qpLIZzhNf2zq0tbWbXSbp", - "type": "line", - "x": 14026.00819958561, - "y": 8964.419185734798, - "width": 1, - "height": 233, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "aB", - "roundness": { - "type": 2 - }, - "seed": 1185229832, - "version": 53, - "versionNonce": 1131620472, - "isDeleted": false, - "boundElements": null, - "updated": 1750393267007, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -1, - 233 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "DySj58Eb20jvSib3e1zGI", - "type": "line", - "x": 14182.00819958561, - "y": 8932.419185734798, - "width": 2, - "height": 265, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "aC", - "roundness": { - "type": 2 - }, - "seed": 368721784, - "version": 73, - "versionNonce": 1057733384, - "isDeleted": false, - "boundElements": null, - "updated": 1750393267007, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2, - 265 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "62ktAiD7KTu_nhulDVAjv", - "type": "text", - "x": 14044.00819958561, - "y": 8983.419185734798, - "width": 132.55194091796875, - "height": 35, - "angle": 0, - "strokeColor": "#2f9e44", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "aD", - "roundness": null, - "seed": 1467723896, - "version": 35, - "versionNonce": 1424447864, - "isDeleted": false, - "boundElements": null, - "updated": 1750393267007, - "link": null, - "locked": false, - "text": "d default", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "d default", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "3yE4gfSMobvLq205bqSPF", - "type": "line", - "x": 13894.906209839517, - "y": 9341.919185734798, - "width": 721, - "height": 11, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aF", - "roundness": { - "type": 2 - }, - "seed": 490312456, - "version": 252, - "versionNonce": 1754864136, - "isDeleted": false, - "boundElements": [], - "updated": 1750389709434, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 721, - -11 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "wzpOz4jRkvtuZXbMeXz_e", - "type": "text", - "x": 14638.906209839517, - "y": 9293.919185734798, - "width": 50.2039794921875, - "height": 35, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aG", - "roundness": null, - "seed": 1570894344, - "version": 189, - "versionNonce": 1714441848, - "isDeleted": false, - "boundElements": [], - "updated": 1750389789497, - "link": null, - "locked": false, - "text": "map", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "map", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "rlZzzIpoDj38omaaHNXg7", - "type": "line", - "x": 14254.629979486843, - "y": 9126.20148489247, - "width": 0.8301982632606513, - "height": 234.9461085027643, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aI", - "roundness": { - "type": 2 - }, - "seed": 1125722376, - "version": 166, - "versionNonce": 479436808, - "isDeleted": false, - "boundElements": null, - "updated": 1750393219811, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8301982632606513, - 234.9461085027643 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "G7sgZl422Y8_79Tq4VMnX", - "type": "line", - "x": 14379.217674095693, - "y": 9366.392636813718, - "width": 5.8113878428245584, - "height": 227.47432413341843, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aJ", - "roundness": { - "type": 2 - }, - "seed": 853598584, - "version": 432, - "versionNonce": 1829796616, - "isDeleted": false, - "boundElements": null, - "updated": 1750393227117, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.8113878428245584, - -227.47432413341843 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "YnnXtQJohAbuZqNR3TgPk", - "type": "text", - "x": 14270.40425444161, - "y": 9260.919836538742, - "width": 96.25978860360448, - "height": 29.056939214122796, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aK", - "roundness": null, - "seed": 1960306808, - "version": 214, - "versionNonce": 597718136, - "isDeleted": false, - "boundElements": null, - "updated": 1750393229087, - "link": null, - "locked": false, - "text": "d before", - "fontSize": 23.245551371298234, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "d before", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "1faWHtFW4zVYNACcMQaBc", - "type": "text", - "x": 14841.00819958561, - "y": 9297.419185734798, - "width": 78.2039794921875, - "height": 35, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aL", - "roundness": null, - "seed": 1189664264, - "version": 28, - "versionNonce": 823115640, - "isDeleted": false, - "boundElements": null, - "updated": 1750389789497, - "link": null, - "locked": false, - "text": "scale1", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "scale1", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "pw8bByjEDjdIDG3An5TEd", - "type": "text", - "x": 14786.00819958561, - "y": 9452.419185734798, - "width": 90.55197143554688, - "height": 35, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aN", - "roundness": null, - "seed": 119394568, - "version": 56, - "versionNonce": 246797832, - "isDeleted": false, - "boundElements": null, - "updated": 1750389792517, - "link": null, - "locked": false, - "text": "scale2", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "scale2", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "HbLD8fPTrK2kCTA7hJ1Zt", - "type": "line", - "x": 14104.906209839517, - "y": 9497.919185734798, - "width": 465, - "height": 7, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aO", - "roundness": { - "type": 2 - }, - "seed": 19345272, - "version": 752, - "versionNonce": 1266742024, - "isDeleted": false, - "boundElements": [], - "updated": 1750390891916, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 465, - -7 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "7nrG0repC7BcZsLZ4la2c", - "type": "text", - "x": 14705.906209839517, - "y": 9446.919185734798, - "width": 50.2039794921875, - "height": 35, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 0, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aP", - "roundness": null, - "seed": 1820491896, - "version": 229, - "versionNonce": 1833976184, - "isDeleted": false, - "boundElements": [], - "updated": 1750389789497, - "link": null, - "locked": false, - "text": "map", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "map", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "Ynsh7VzQ3CHz6ovfEt1gn", - "type": "arrow", - "x": 14258.00819958561, - "y": 9363.419185734798, - "width": 2, - "height": 31, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "aS", - "roundness": { - "type": 2 - }, - "seed": 1603517304, - "version": 21, - "versionNonce": 1743323512, - "isDeleted": false, - "boundElements": null, - "updated": 1750389973998, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2, - -31 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "-V114Haw0sd-SivHGD-fP", - "type": "arrow", - "x": 14343.00819958561, - "y": 9524.419185734798, - "width": 3, - "height": 28, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "aT", - "roundness": { - "type": 2 - }, - "seed": 928206856, - "version": 371, - "versionNonce": 201150984, - "isDeleted": false, - "boundElements": null, - "updated": 1750390891916, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3, - -28 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "zDk1zE1CuXR9QowFTSmC_", - "type": "line", - "x": 14489.00819958561, - "y": 8875.419185734798, - "width": 12, - "height": 694, - "angle": 0, - "strokeColor": "#f08c00", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aU", - "roundness": { - "type": 2 - }, - "seed": 1738346360, - "version": 75, - "versionNonce": 181814280, - "isDeleted": false, - "boundElements": null, - "updated": 1750393545719, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 12, - 694 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "eTJ9ysy9BvhwfmIpRUID2", - "type": "text", - "x": 14528.00819958561, - "y": 8875.419185734798, - "width": 199.94789123535156, - "height": 35, - "angle": 0, - "strokeColor": "#f08c00", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aV", - "roundness": null, - "seed": 713929080, - "version": 17, - "versionNonce": 1504784904, - "isDeleted": false, - "boundElements": null, - "updated": 1750389779812, - "link": null, - "locked": false, - "text": "cursor position", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "cursor position", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "rMQ33fZlPvy7mrsOg-gud", - "type": "line", - "x": 14336.00819958561, - "y": 9385.419185734798, - "width": 3, - "height": 216, - "angle": 0, - "strokeColor": "#c2255c", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aX", - "roundness": { - "type": 2 - }, - "seed": 878793848, - "version": 181, - "versionNonce": 1168038008, - "isDeleted": false, - "boundElements": null, - "updated": 1750393242566, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 3, - 216 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "SawmKUbsNiZSWYvIsCAic", - "type": "line", - "x": 14381.00819958561, - "y": 9380.419185734798, - "width": 6, - "height": 223, - "angle": 0, - "strokeColor": "#c2255c", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aZ", - "roundness": { - "type": 2 - }, - "seed": 2043778168, - "version": 135, - "versionNonce": 877566072, - "isDeleted": false, - "boundElements": null, - "updated": 1750393235459, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 6, - 223 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "h1BBl2iU_UfygBqYkbkwK", - "type": "text", - "x": 14313.00819958561, - "y": 9424.419185734798, - "width": 105.39195251464844, - "height": 35, - "angle": 0, - "strokeColor": "#c2255c", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aa", - "roundness": null, - "seed": 1782899576, - "version": 137, - "versionNonce": 248686200, - "isDeleted": false, - "boundElements": null, - "updated": 1750393878268, - "link": null, - "locked": false, - "text": "d after", - "fontSize": 28, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "d after", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "TckGkPuj__HLpfAIhU-jA", - "type": "arrow", - "x": 14377.00819958561, - "y": 9204.419185734798, - "width": 3, - "height": 32, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "ac", - "roundness": { - "type": 2 - }, - "seed": 668351608, - "version": 20, - "versionNonce": 2044086392, - "isDeleted": false, - "boundElements": null, - "updated": 1750390571876, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3, - -32 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "JiKYAm_VjoeLLDgCU9Imb", - "type": "arrow", - "x": 14384.952519707009, - "y": 9075.981474695613, - "width": 3, - "height": 32, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "ad", - "roundness": { - "type": 2 - }, - "seed": 1873877000, - "version": 34, - "versionNonce": 1006262392, - "isDeleted": false, - "boundElements": [], - "updated": 1750390580454, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -3, - -32 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "IB8IGab0ltP78jhpKiDoP", - "type": "line", - "x": 14386.00819958561, - "y": 8863.419185734798, - "width": 2, - "height": 178, - "angle": 0, - "strokeColor": "#f08c00", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "af", - "roundness": { - "type": 2 - }, - "seed": 1759198984, - "version": 42, - "versionNonce": 1473366536, - "isDeleted": false, - "boundElements": null, - "updated": 1750393520427, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 2, - 178 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "AlaW_kW_Uw5pPmXsBl1yp", - "type": "text", - "x": 14380.00819958561, - "y": 9055.419185734798, - "width": 107.32791137695312, - "height": 20, - "angle": 0, - "strokeColor": "#f08c00", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ag", - "roundness": null, - "seed": 639322376, - "version": 89, - "versionNonce": 642109192, - "isDeleted": false, - "boundElements": null, - "updated": 1750393533791, - "link": null, - "locked": false, - "text": "cursor offset", - "fontSize": 16, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "cursor offset", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "7DCL4zn03YTmIu8pVNf96", - "type": "text", - "x": 14182.00819958561, - "y": 9295.919185734798, - "width": 216.83981323242188, - "height": 25, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ah", - "roundness": null, - "seed": 999432824, - "version": 143, - "versionNonce": 695819384, - "isDeleted": false, - "boundElements": [ - { - "id": "mPKfdGj03qjEnHgjgGQq3", - "type": "arrow" - } - ], - "updated": 1750399269779, - "link": null, - "locked": false, - "text": "db = before - default", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "db = before - default", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "7jaOlsfaw7IjuJFQrh1dK", - "type": "text", - "x": 14329.00819958561, - "y": 9519.419185734798, - "width": 191.91989135742188, - "height": 25, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ai", - "roundness": null, - "seed": 2043097464, - "version": 147, - "versionNonce": 2043309688, - "isDeleted": false, - "boundElements": null, - "updated": 1750393870327, - "link": null, - "locked": false, - "text": "(db + co) / s1 * s2", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "(db + co) / s1 * s2", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "bs3tF5j6n1zcKMP1SKViR", - "type": "line", - "x": 14255.00819958561, - "y": 9394.419185734798, - "width": 6, - "height": 208, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "aj", - "roundness": { - "type": 2 - }, - "seed": 1102478600, - "version": 47, - "versionNonce": 420568696, - "isDeleted": false, - "boundElements": null, - "updated": 1750393685442, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 6, - 208 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "oWijyV3L7O1pwcRXujKHA", - "type": "text", - "x": 14271.865342442754, - "y": 9672.704900020512, - "width": 316.59979248046875, - "height": 25, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ak", - "roundness": null, - "seed": 1466041352, - "version": 304, - "versionNonce": 906305544, - "isDeleted": false, - "boundElements": [ - { - "id": "FDzfnoKseh2oIgEZHcTFf", - "type": "arrow" - } - ], - "updated": 1750398615105, - "link": null, - "locked": false, - "text": "res = (db + co) * (1 - s2 / s1)", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "res = (db + co) * (1 - s2 / s1)", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "FDzfnoKseh2oIgEZHcTFf", - "type": "arrow", - "x": 14293.715586509019, - "y": 9662.847757163368, - "width": 4.292613076591806, - "height": 58.42857142857065, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "am", - "roundness": { - "type": 2 - }, - "seed": 1094624632, - "version": 284, - "versionNonce": 1332993800, - "isDeleted": false, - "boundElements": null, - "updated": 1750398615105, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 4.292613076591806, - -58.42857142857065 - ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "oWijyV3L7O1pwcRXujKHA", - "focus": -0.86731380739671, - "gap": 9.857142857143117 - }, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "URFQsZz-3OzfBQ-EcLBTB", - "type": "line", - "x": 13897.640080891812, - "y": 9125.870936054285, - "width": 0.8301982632606513, - "height": 234.9461085027643, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "an", - "roundness": { - "type": 2 - }, - "seed": 205602936, - "version": 211, - "versionNonce": 901672456, - "isDeleted": false, - "boundElements": [], - "updated": 1750396271228, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 0.8301982632606513, - 234.9461085027643 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "RNbxNe542ywEY-xoQ3d1u", - "type": "line", - "x": 14022.227775500662, - "y": 9366.062087975533, - "width": 5.8113878428245584, - "height": 227.47432413341843, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ao", - "roundness": { - "type": 2 - }, - "seed": 204632440, - "version": 477, - "versionNonce": 1725132040, - "isDeleted": false, - "boundElements": [], - "updated": 1750396271228, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -5.8113878428245584, - -227.47432413341843 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": null, - "polygon": false - }, - { - "id": "lR3YWmzvq4DAfPyfzSLdZ", - "type": "text", - "x": 13913.41435584658, - "y": 9260.589287700557, - "width": 96.25978860360448, - "height": 29.056939214122796, - "angle": 0, - "strokeColor": "#1971c2", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "ap", - "roundness": null, - "seed": 953516664, - "version": 259, - "versionNonce": 1257278472, - "isDeleted": false, - "boundElements": [], - "updated": 1750396271228, - "link": null, - "locked": false, - "text": "d before", - "fontSize": 23.245551371298234, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "d before", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "ePiM1l7Bywnn31qZbSbBj", - "type": "arrow", - "x": 13901.018300990581, - "y": 9363.088636896613, - "width": 2, - "height": 31, - "angle": 0, - "strokeColor": "#e03131", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 4, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 10, - "groupIds": [], - "frameId": null, - "index": "aq", - "roundness": { - "type": 2 - }, - "seed": 1626239864, - "version": 66, - "versionNonce": 202492680, - "isDeleted": false, - "boundElements": [], - "updated": 1750396271228, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - -2, - -31 - ] - ], - "lastCommittedPoint": null, - "startBinding": null, - "endBinding": null, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "6M3jUpC20SDn4YgyEkbtb", - "type": "text", - "x": 14250.865342442754, - "y": 9717.419185734798, - "width": 343.379638671875, - "height": 25, - "angle": 0, - "strokeColor": "#f08c00", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "as", - "roundness": null, - "seed": 684619640, - "version": 122, - "versionNonce": 2083143176, - "isDeleted": false, - "boundElements": null, - "updated": 1750398702867, - "link": null, - "locked": false, - "text": "remember to reverse cursor offset", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "remember to reverse cursor offset", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "mPKfdGj03qjEnHgjgGQq3", - "type": "arrow", - "x": 14023.17142240768, - "y": 9400.27632859194, - "width": 142.33677717792852, - "height": 93.70701364718298, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "at", - "roundness": { - "type": 2 - }, - "seed": 3545096, - "version": 100, - "versionNonce": 118273400, - "isDeleted": false, - "boundElements": null, - "updated": 1750399302460, - "link": null, - "locked": false, - "points": [ - [ - 0, - 0 - ], - [ - 142.33677717792852, - -93.70701364718298 - ] - ], - "lastCommittedPoint": null, - "startBinding": { - "elementId": "5zfRs5XdDX2m9StT1L5L2", - "focus": -0.2036827307099071, - "gap": 14.285714285715585 - }, - "endBinding": { - "elementId": "7DCL4zn03YTmIu8pVNf96", - "focus": 1.0025346236179729, - "gap": 14 - }, - "startArrowhead": null, - "endArrowhead": "arrow", - "elbowed": false - }, - { - "id": "5zfRs5XdDX2m9StT1L5L2", - "type": "text", - "x": 13849.436771014181, - "y": 9414.562042877655, - "width": 311.19976806640625, - "height": 25, - "angle": 0, - "strokeColor": "#1e1e1e", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "au", - "roundness": null, - "seed": 752403464, - "version": 90, - "versionNonce": 100081272, - "isDeleted": false, - "boundElements": [ - { - "id": "mPKfdGj03qjEnHgjgGQq3", - "type": "arrow" - } - ], - "updated": 1750399297136, - "link": null, - "locked": false, - "text": "data from transform translate", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "data from transform translate", - "autoResize": true, - "lineHeight": 1.25 - }, - { - "id": "JD2a2uahYF-uAcIhK05JJ", - "type": "text", - "x": 14572.293913871325, - "y": 8921.70490002051, - "width": 174.63986206054688, - "height": 25, - "angle": 0, - "strokeColor": "#f08c00", - "backgroundColor": "#b2f2bb", - "fillStyle": "hachure", - "strokeWidth": 2, - "strokeStyle": "solid", - "roughness": 2, - "opacity": 100, - "groupIds": [], - "frameId": null, - "index": "av", - "roundness": null, - "seed": 940853880, - "version": 30, - "versionNonce": 1615519608, - "isDeleted": false, - "boundElements": null, - "updated": 1750399354435, - "link": null, - "locked": false, - "text": "data from clientX", - "fontSize": 20, - "fontFamily": 1, - "textAlign": "left", - "verticalAlign": "top", - "containerId": null, - "originalText": "data from clientX", - "autoResize": true, - "lineHeight": 1.25 - } - ], - "appState": { - "gridSize": 20, - "gridStep": 5, - "gridModeEnabled": false, - "viewBackgroundColor": "#ffffff", - "lockedMultiSelections": {} - }, - "files": {} -} \ No newline at end of file diff --git a/mind-elixir-core-master/src/arrow.ts b/mind-elixir-core-master/src/arrow.ts deleted file mode 100644 index bc7c937..0000000 --- a/mind-elixir-core-master/src/arrow.ts +++ /dev/null @@ -1,556 +0,0 @@ -import { generateUUID, getArrowPoints, getObjById, getOffsetLT, setAttributes } from './utils/index' -import LinkDragMoveHelper from './utils/LinkDragMoveHelper' -import { createSvgGroup, createSvgText, editSvgText, svgNS } from './utils/svg' -import type { CustomSvg, Topic } from './types/dom' -import type { MindElixirInstance, Uid } from './index' - -const highlightColor = '#4dc4ff' - -export interface Arrow { - id: string - /** - * label of arrow - */ - label: string - /** - * id of start node - */ - from: Uid - /** - * id of end node - */ - to: Uid - /** - * offset of control point from start point - */ - delta1: { - x: number - y: number - } - /** - * offset of control point from end point - */ - delta2: { - x: number - y: number - } - /** - * whether the arrow is bidirectional - */ - bidirectional?: boolean - /** - * style properties for the arrow - */ - style?: { - /** - * stroke color of the arrow - */ - stroke?: string - /** - * stroke width of the arrow - */ - strokeWidth?: string | number - /** - * stroke dash array for dashed lines - */ - strokeDasharray?: string - /** - * stroke line cap style - */ - strokeLinecap?: 'butt' | 'round' | 'square' - /** - * opacity of the arrow - */ - opacity?: string | number - /** - * color of the arrow label - */ - labelColor?: string - } -} -export type DivData = { - cx: number // center x - cy: number // center y - w: number // div width - h: number // div height - ctrlX: number // control point x - ctrlY: number // control point y -} -export type ArrowOptions = { - bidirectional?: boolean - style?: { - stroke?: string - strokeWidth?: string | number - strokeDasharray?: string - strokeLinecap?: 'butt' | 'round' | 'square' - opacity?: string | number - labelColor?: string - } -} - -/** - * Calculate bezier curve midpoint position - */ -function calcBezierMidPoint(p1x: number, p1y: number, p2x: number, p2y: number, p3x: number, p3y: number, p4x: number, p4y: number) { - return { - x: p1x / 8 + (p2x * 3) / 8 + (p3x * 3) / 8 + p4x / 8, - y: p1y / 8 + (p2y * 3) / 8 + (p3y * 3) / 8 + p4y / 8, - } -} - -/** - * Update arrow label position - */ -function updateArrowLabel(label: SVGTextElement, x: number, y: number) { - setAttributes(label, { - x: x + '', - y: y + '', - }) -} - -/** - * Update control line position - */ -function updateControlLine(line: SVGElement, x1: number, y1: number, x2: number, y2: number) { - setAttributes(line, { - x1: x1 + '', - y1: y1 + '', - x2: x2 + '', - y2: y2 + '', - }) -} - -/** - * Update arrow path and related elements - */ -function updateArrowPath( - arrow: CustomSvg, - p1x: number, - p1y: number, - p2x: number, - p2y: number, - p3x: number, - p3y: number, - p4x: number, - p4y: number, - linkItem: Arrow -) { - const mainPath = `M ${p1x} ${p1y} C ${p2x} ${p2y} ${p3x} ${p3y} ${p4x} ${p4y}` - - // Update main path - arrow.line.setAttribute('d', mainPath) - - // Apply styles to the main line if they exist - if (linkItem.style) { - const style = linkItem.style - if (style.stroke) arrow.line.setAttribute('stroke', style.stroke) - if (style.strokeWidth) arrow.line.setAttribute('stroke-width', String(style.strokeWidth)) - if (style.strokeDasharray) arrow.line.setAttribute('stroke-dasharray', style.strokeDasharray) - if (style.strokeLinecap) arrow.line.setAttribute('stroke-linecap', style.strokeLinecap) - if (style.opacity !== undefined) arrow.line.setAttribute('opacity', String(style.opacity)) - } - - // Update hotzone for main path (find the first hotzone path which corresponds to the main line) - const hotzones = arrow.querySelectorAll('path[stroke="transparent"]') - if (hotzones.length > 0) { - hotzones[0].setAttribute('d', mainPath) - } - - // Update arrow head - const arrowPoint = getArrowPoints(p3x, p3y, p4x, p4y) - if (arrowPoint) { - const arrowPath1 = `M ${arrowPoint.x1} ${arrowPoint.y1} L ${p4x} ${p4y} L ${arrowPoint.x2} ${arrowPoint.y2}` - arrow.arrow1.setAttribute('d', arrowPath1) - - // Update hotzone for arrow1 - if (hotzones.length > 1) { - hotzones[1].setAttribute('d', arrowPath1) - } - - // Apply styles to arrow head - if (linkItem.style) { - const style = linkItem.style - if (style.stroke) arrow.arrow1.setAttribute('stroke', style.stroke) - if (style.strokeWidth) arrow.arrow1.setAttribute('stroke-width', String(style.strokeWidth)) - if (style.strokeLinecap) arrow.arrow1.setAttribute('stroke-linecap', style.strokeLinecap) - if (style.opacity !== undefined) arrow.arrow1.setAttribute('opacity', String(style.opacity)) - } - } - - // Update start arrow if bidirectional - if (linkItem.bidirectional) { - const arrowPointStart = getArrowPoints(p2x, p2y, p1x, p1y) - if (arrowPointStart) { - const arrowPath2 = `M ${arrowPointStart.x1} ${arrowPointStart.y1} L ${p1x} ${p1y} L ${arrowPointStart.x2} ${arrowPointStart.y2}` - arrow.arrow2.setAttribute('d', arrowPath2) - - // Update hotzone for arrow2 - if (hotzones.length > 2) { - hotzones[2].setAttribute('d', arrowPath2) - } - - // Apply styles to start arrow head - if (linkItem.style) { - const style = linkItem.style - if (style.stroke) arrow.arrow2.setAttribute('stroke', style.stroke) - if (style.strokeWidth) arrow.arrow2.setAttribute('stroke-width', String(style.strokeWidth)) - if (style.strokeLinecap) arrow.arrow2.setAttribute('stroke-linecap', style.strokeLinecap) - if (style.opacity !== undefined) arrow.arrow2.setAttribute('opacity', String(style.opacity)) - } - } - } - - // Update label position and color - const { x: halfx, y: halfy } = calcBezierMidPoint(p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) - updateArrowLabel(arrow.label, halfx, halfy) - - // Apply label color if specified - if (linkItem.style?.labelColor) { - arrow.label.setAttribute('fill', linkItem.style.labelColor) - } - - // Update highlight layer - updateArrowHighlight(arrow) -} - -/** - * calc control point, center point and div size - */ -function calcCtrlP(mei: MindElixirInstance, tpc: Topic, delta: { x: number; y: number }) { - const { offsetLeft: x, offsetTop: y } = getOffsetLT(mei.nodes, tpc) - const w = tpc.offsetWidth - const h = tpc.offsetHeight - const cx = x + w / 2 - const cy = y + h / 2 - const ctrlX = cx + delta.x - const ctrlY = cy + delta.y - return { - w, - h, - cx, - cy, - ctrlX, - ctrlY, - } -} - -/** - * calc start and end point using control point and div status - */ -function calcP(data: DivData) { - let x, y - const k = (data.cy - data.ctrlY) / (data.ctrlX - data.cx) - if (k > data.h / data.w || k < -data.h / data.w) { - if (data.cy - data.ctrlY < 0) { - x = data.cx - data.h / 2 / k - y = data.cy + data.h / 2 - } else { - x = data.cx + data.h / 2 / k - y = data.cy - data.h / 2 - } - } else { - if (data.cx - data.ctrlX < 0) { - x = data.cx + data.w / 2 - y = data.cy - (data.w * k) / 2 - } else { - x = data.cx - data.w / 2 - y = data.cy + (data.w * k) / 2 - } - } - return { - x, - y, - } -} - -/** - * FYI - * p1: start point - * p2: control point of start point - * p3: control point of end point - * p4: end point - */ -const drawArrow = function (mei: MindElixirInstance, from: Topic, to: Topic, obj: Arrow, isInitPaint?: boolean) { - if (!from || !to) { - return // not expand - } - - const fromData = calcCtrlP(mei, from, obj.delta1) - const toData = calcCtrlP(mei, to, obj.delta2) - - const { x: p1x, y: p1y } = calcP(fromData) - const { ctrlX: p2x, ctrlY: p2y } = fromData - const { ctrlX: p3x, ctrlY: p3y } = toData - const { x: p4x, y: p4y } = calcP(toData) - - const arrowT = getArrowPoints(p3x, p3y, p4x, p4y) - if (!arrowT) return - - const toArrow = `M ${arrowT.x1} ${arrowT.y1} L ${p4x} ${p4y} L ${arrowT.x2} ${arrowT.y2}` - let fromArrow = '' - if (obj.bidirectional) { - const arrowF = getArrowPoints(p2x, p2y, p1x, p1y) - if (!arrowF) return - fromArrow = `M ${arrowF.x1} ${arrowF.y1} L ${p1x} ${p1y} L ${arrowF.x2} ${arrowF.y2}` - } - const newSvgGroup = createSvgGroup(`M ${p1x} ${p1y} C ${p2x} ${p2y} ${p3x} ${p3y} ${p4x} ${p4y}`, toArrow, fromArrow, obj.style) - - // Use extracted common function to calculate midpoint - const { x: halfx, y: halfy } = calcBezierMidPoint(p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) - const labelColor = obj.style?.labelColor - const label = createSvgText(obj.label, halfx, halfy, { - anchor: 'middle', - color: labelColor, - dataType: 'custom-link', - }) - newSvgGroup.appendChild(label) - newSvgGroup.label = label - - newSvgGroup.arrowObj = obj - newSvgGroup.dataset.linkid = obj.id - mei.linkSvgGroup.appendChild(newSvgGroup) - if (!isInitPaint) { - mei.arrows.push(obj) - mei.currentArrow = newSvgGroup - showLinkController(mei, obj, fromData, toData) - } -} - -export const createArrow = function (this: MindElixirInstance, from: Topic, to: Topic, options: ArrowOptions = {}) { - const arrowObj = { - id: generateUUID(), - label: 'Custom Link', - from: from.nodeObj.id, - to: to.nodeObj.id, - delta1: { - x: from.offsetWidth / 2 + 100, - y: 0, - }, - delta2: { - x: to.offsetWidth / 2 + 100, - y: 0, - }, - ...options, - } - drawArrow(this, from, to, arrowObj) - - this.bus.fire('operation', { - name: 'createArrow', - obj: arrowObj, - }) -} - -export const createArrowFrom = function (this: MindElixirInstance, arrow: Omit) { - hideLinkController(this) - const arrowObj = { ...arrow, id: generateUUID() } - drawArrow(this, this.findEle(arrowObj.from), this.findEle(arrowObj.to), arrowObj) - - this.bus.fire('operation', { - name: 'createArrow', - obj: arrowObj, - }) -} - -export const removeArrow = function (this: MindElixirInstance, linkSvg?: CustomSvg) { - let link - if (linkSvg) { - link = linkSvg - } else { - link = this.currentArrow - } - if (!link) return - hideLinkController(this) - const id = link.arrowObj!.id - this.arrows = this.arrows.filter(arrow => arrow.id !== id) - link.remove() - this.bus.fire('operation', { - name: 'removeArrow', - obj: { - id, - }, - }) -} - -export const selectArrow = function (this: MindElixirInstance, link: CustomSvg) { - this.currentArrow = link - const obj = link.arrowObj - - const from = this.findEle(obj.from) - const to = this.findEle(obj.to) - - const fromData = calcCtrlP(this, from, obj.delta1) - const toData = calcCtrlP(this, to, obj.delta2) - - showLinkController(this, obj, fromData, toData) -} - -export const unselectArrow = function (this: MindElixirInstance) { - hideLinkController(this) - this.currentArrow = null -} - -/** - * Create a highlight path element with common attributes - */ -const createHighlightPath = function (d: string, highlightColor: string): SVGPathElement { - const path = document.createElementNS(svgNS, 'path') - setAttributes(path, { - d, - stroke: highlightColor, - fill: 'none', - 'stroke-width': '6', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - }) - return path -} - -const addArrowHighlight = function (arrow: CustomSvg, highlightColor: string) { - const highlightGroup = document.createElementNS(svgNS, 'g') - highlightGroup.setAttribute('class', 'arrow-highlight') - highlightGroup.setAttribute('opacity', '0.45') - - const highlightLine = createHighlightPath(arrow.line.getAttribute('d')!, highlightColor) - highlightGroup.appendChild(highlightLine) - - const highlightArrow1 = createHighlightPath(arrow.arrow1.getAttribute('d')!, highlightColor) - highlightGroup.appendChild(highlightArrow1) - - if (arrow.arrow2.getAttribute('d')) { - const highlightArrow2 = createHighlightPath(arrow.arrow2.getAttribute('d')!, highlightColor) - highlightGroup.appendChild(highlightArrow2) - } - - arrow.insertBefore(highlightGroup, arrow.firstChild) -} - -const removeArrowHighlight = function (arrow: CustomSvg) { - const highlightGroup = arrow.querySelector('.arrow-highlight') - if (highlightGroup) { - highlightGroup.remove() - } -} - -const updateArrowHighlight = function (arrow: CustomSvg) { - const highlightGroup = arrow.querySelector('.arrow-highlight') - if (!highlightGroup) return - - const highlightPaths = highlightGroup.querySelectorAll('path') - if (highlightPaths.length >= 1) { - highlightPaths[0].setAttribute('d', arrow.line.getAttribute('d')!) - } - if (highlightPaths.length >= 2) { - highlightPaths[1].setAttribute('d', arrow.arrow1.getAttribute('d')!) - } - if (highlightPaths.length >= 3 && arrow.arrow2.getAttribute('d')) { - highlightPaths[2].setAttribute('d', arrow.arrow2.getAttribute('d')!) - } -} - -const hideLinkController = function (mei: MindElixirInstance) { - mei.helper1?.destroy!() - mei.helper2?.destroy!() - mei.linkController.style.display = 'none' - mei.P2.style.display = 'none' - mei.P3.style.display = 'none' - if (mei.currentArrow) { - removeArrowHighlight(mei.currentArrow) - } -} - -const showLinkController = function (mei: MindElixirInstance, linkItem: Arrow, fromData: DivData, toData: DivData) { - const { linkController, P2, P3, line1, line2, nodes, map, currentArrow, bus } = mei - if (!currentArrow) return - linkController.style.display = 'initial' - P2.style.display = 'initial' - P3.style.display = 'initial' - nodes.appendChild(linkController) - nodes.appendChild(P2) - nodes.appendChild(P3) - - addArrowHighlight(currentArrow, highlightColor) - - // init points - let { x: p1x, y: p1y } = calcP(fromData) - let { ctrlX: p2x, ctrlY: p2y } = fromData - let { ctrlX: p3x, ctrlY: p3y } = toData - let { x: p4x, y: p4y } = calcP(toData) - - P2.style.cssText = `top:${p2y}px;left:${p2x}px;` - P3.style.cssText = `top:${p3y}px;left:${p3x}px;` - updateControlLine(line1, p1x, p1y, p2x, p2y) - updateControlLine(line2, p3x, p3y, p4x, p4y) - - mei.helper1 = LinkDragMoveHelper.create(P2) - mei.helper2 = LinkDragMoveHelper.create(P3) - - mei.helper1.init(map, (deltaX, deltaY) => { - // recalc key points - p2x = p2x + deltaX / mei.scaleVal // scale should keep the latest value - p2y = p2y + deltaY / mei.scaleVal - const p1 = calcP({ ...fromData, ctrlX: p2x, ctrlY: p2y }) - p1x = p1.x - p1y = p1.y - - // update dom position - P2.style.top = p2y + 'px' - P2.style.left = p2x + 'px' - - // Use extracted common function to update arrow - updateArrowPath(currentArrow, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y, linkItem) - updateControlLine(line1, p1x, p1y, p2x, p2y) - - linkItem.delta1.x = p2x - fromData.cx - linkItem.delta1.y = p2y - fromData.cy - - bus.fire('updateArrowDelta', linkItem) - }) - - mei.helper2.init(map, (deltaX, deltaY) => { - p3x = p3x + deltaX / mei.scaleVal - p3y = p3y + deltaY / mei.scaleVal - const p4 = calcP({ ...toData, ctrlX: p3x, ctrlY: p3y }) - p4x = p4.x - p4y = p4.y - - P3.style.top = p3y + 'px' - P3.style.left = p3x + 'px' - - // Use extracted common function to update arrow - updateArrowPath(currentArrow, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y, linkItem) - updateControlLine(line2, p3x, p3y, p4x, p4y) - - linkItem.delta2.x = p3x - toData.cx - linkItem.delta2.y = p3y - toData.cy - - bus.fire('updateArrowDelta', linkItem) - }) -} - -export function renderArrow(this: MindElixirInstance) { - this.linkSvgGroup.innerHTML = '' - for (let i = 0; i < this.arrows.length; i++) { - const link = this.arrows[i] - try { - drawArrow(this, this.findEle(link.from), this.findEle(link.to), link, true) - } catch (e) { - console.warn('Node may not be expanded') - } - } - this.nodes.appendChild(this.linkSvgGroup) -} - -export function editArrowLabel(this: MindElixirInstance, el: CustomSvg) { - hideLinkController(this) - console.time('editSummary') - if (!el) return - const textEl = el.label - editSvgText(this, textEl, el.arrowObj) - console.timeEnd('editSummary') -} - -export function tidyArrow(this: MindElixirInstance) { - this.arrows = this.arrows.filter(arrow => { - return getObjById(arrow.from, this.nodeData) && getObjById(arrow.to, this.nodeData) - }) -} diff --git a/mind-elixir-core-master/src/const.ts b/mind-elixir-core-master/src/const.ts deleted file mode 100644 index 35129e9..0000000 --- a/mind-elixir-core-master/src/const.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type { Theme } from '.' - -export const LEFT = 0 -export const RIGHT = 1 -export const SIDE = 2 -export const DOWN = 3 - -export const THEME: Theme = { - name: 'Latte', - type: 'light', - palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'], - cssVar: { - '--node-gap-x': '30px', - '--node-gap-y': '10px', - '--main-gap-x': '65px', - '--main-gap-y': '45px', - '--root-radius': '30px', - '--main-radius': '20px', - '--root-color': '#ffffff', - '--root-bgcolor': '#4c4f69', - '--root-border-color': 'rgba(0, 0, 0, 0)', - '--main-color': '#444446', - '--main-bgcolor': '#ffffff', - '--topic-padding': '3px', - '--color': '#777777', - '--bgcolor': '#f6f6f6', - '--selected': '#4dc4ff', - '--accent-color': '#e64553', - '--panel-color': '#444446', - '--panel-bgcolor': '#ffffff', - '--panel-border-color': '#eaeaea', - '--map-padding': '50px', - }, -} - -export const DARK_THEME: Theme = { - name: 'Dark', - type: 'dark', - palette: ['#848FA0', '#748BE9', '#D2F9FE', '#4145A5', '#789AFA', '#706CF4', '#EF987F', '#775DD5', '#FCEECF', '#DA7FBC'], - cssVar: { - '--node-gap-x': '30px', - '--node-gap-y': '10px', - '--main-gap-x': '65px', - '--main-gap-y': '45px', - '--root-radius': '30px', - '--main-radius': '20px', - '--root-color': '#ffffff', - '--root-bgcolor': '#2d3748', - '--root-border-color': 'rgba(255, 255, 255, 0.1)', - '--main-color': '#ffffff', - '--main-bgcolor': '#4c4f69', - '--topic-padding': '3px', - '--color': '#cccccc', - '--bgcolor': '#252526', - '--selected': '#4dc4ff', - '--accent-color': '#789AFA', - '--panel-color': '#ffffff', - '--panel-bgcolor': '#2d3748', - '--panel-border-color': '#696969', - '--map-padding': '50px 80px', - }, -} diff --git a/mind-elixir-core-master/src/dev.dist.ts b/mind-elixir-core-master/src/dev.dist.ts deleted file mode 100644 index daf7ac8..0000000 --- a/mind-elixir-core-master/src/dev.dist.ts +++ /dev/null @@ -1,68 +0,0 @@ -import MindElixir from 'mind-elixir' -import example from 'mind-elixir/example' -import type { Options } from 'mind-elixir' - -const E = MindElixir.E -const options: Options = { - el: '#map', - newTopicName: '子节点', - // direction: MindElixir.LEFT, - direction: MindElixir.RIGHT, - // data: MindElixir.new('new topic'), - locale: 'en', - draggable: true, - editable: true, - contextMenu: { - focus: true, - link: true, - extend: [ - { - name: 'Node edit', - onclick: () => { - alert('extend menu') - }, - }, - ], - }, - toolBar: true, - keypress: true, - allowUndo: false, - before: { - moveDownNode() { - return false - }, - insertSibling(el, obj) { - console.log('insertSibling', el, obj) - return true - }, - async addChild(el, obj) { - return true - }, - }, - scaleSensitivity: 0.2, -} -const mind = new MindElixir(options) -mind.init(example) -function sleep() { - return new Promise(res => { - setTimeout(() => res(), 1000) - }) -} -console.log('test E function', E('bd4313fbac40284b')) -// let mind2 = new MindElixir({ -// el: '#map2', -// direction: 2, -// data: MindElixir.example2, -// draggable: false, -// // overflowHidden: true, -// nodeMenu: true, -// }) -// mind2.init() - -mind.bus.addListener('operation', operation => { - console.log(operation) -}) - -mind.bus.addListener('selectNodes', nodes => { - console.log(nodes) -}) diff --git a/mind-elixir-core-master/src/dev.ts b/mind-elixir-core-master/src/dev.ts deleted file mode 100644 index 8bce31b..0000000 --- a/mind-elixir-core-master/src/dev.ts +++ /dev/null @@ -1,192 +0,0 @@ -import type { MindElixirCtor } from './index' -import MindElixir from './index' -import example from './exampleData/1' -import example2 from './exampleData/2' -import example3 from './exampleData/3' -import type { Options, MindElixirInstance, NodeObj } from './types/index' -import type { Operation } from './utils/pubsub' -import 'katex/dist/katex.min.css' -import katex from 'katex' -import { layoutSSR, renderSSRHTML } from './utils/layout-ssr' -import { snapdom } from '@zumer/snapdom' -import type { Tokens } from 'marked' -import { marked } from 'marked' -import { md2html } from 'simple-markdown-to-html' - -interface Window { - m?: MindElixirInstance - M: MindElixirCtor - E: typeof MindElixir.E - downloadPng: () => void - downloadSvg: () => void - destroy: () => void - testMarkdown: () => void - addMarkdownNode: () => void -} - -declare let window: Window - -const E = MindElixir.E -const options: Options = { - el: '#map', - newTopicName: '子节点', - locale: 'en', - // mouseSelectionButton: 2, - draggable: true, - editable: true, - markdown: (text: string, obj: NodeObj & { useMd?: boolean }) => { - if (!text) return '' - if (!obj.useMd) return text - try { - // Configure marked renderer to add target="_blank" to links and table classes - const renderer = { - link(token: Tokens.Link) { - const href = token.href || '' - const title = token.title ? ` title="${token.title}"` : '' - const text = token.text || '' - return `${text}` - }, - table(token: Tokens.Table) { - const header = token.header.map(cell => `
    `).join('') - const rows = token.rows.map(row => - `${row.map(cell => ``).join('')}` - ).join('') - return `
    ${cell.text}
    ${cell.text}
    ${header}${rows}
    ` - }, - } - - marked.use({ renderer, gfm: true }) - let html = marked(text) as string - // let html = md2html(text) - - // Process KaTeX math expressions - // Handle display math ($$...$$) - html = html.replace(/\$\$([^$]+)\$\$/g, (_, math) => { - return katex.renderToString(math.trim(), { displayMode: true }) - }) - - // Handle inline math ($...$) - html = html.replace(/\$([^$]+)\$/g, (_, math) => { - return katex.renderToString(math.trim(), { displayMode: false }) - }) - - return html.trim().replace(/\n/g, '') - } catch (error) { - return text - } - }, - // To disable markdown, simply omit the markdown option or set it to undefined - // if you set contextMenu to false, you should handle contextmenu event by yourself, e.g. preventDefault - contextMenu: { - focus: true, - link: true, - extend: [ - { - name: 'Node edit', - onclick: () => { - alert('extend menu') - }, - }, - ], - }, - toolBar: true, - keypress: { - e(e) { - if (!mind.currentNode) return - if (e.metaKey || e.ctrlKey) { - mind.expandNode(mind.currentNode) - } - }, - f(e) { - if (!mind.currentNode) return - if (e.altKey) { - if (mind.isFocusMode) { - mind.cancelFocus() - } else { - mind.focusNode(mind.currentNode) - } - } - }, - }, - allowUndo: true, - before: { - insertSibling(el, obj) { - console.log('insertSibling', el, obj) - return true - }, - async addChild(el, obj) { - console.log('addChild', el, obj) - // await sleep() - return true - }, - }, - // scaleMin:0.1 - // alignment: 'nodes', -} - -let mind = new MindElixir(options) - -const data = MindElixir.new('new topic') -mind.init(example) - -const m2 = new MindElixir({ - el: '#map2', - selectionContainer: 'body', // use body to make selection usable when transform is not 0 - direction: MindElixir.RIGHT, - theme: MindElixir.DARK_THEME, - // alignment: 'nodes', -}) -m2.init(data) - -function sleep() { - return new Promise(res => { - setTimeout(() => res(), 1000) - }) -} -// console.log('test E function', E('bd4313fbac40284b')) - -mind.bus.addListener('operation', (operation: Operation) => { - console.log(operation) - // return { - // name: action name, - // obj: target object - // } - - // name: [insertSibling|addChild|removeNode|beginEdit|finishEdit] - // obj: target - - // name: moveNodeIn - // obj: {from:target1,to:target2} -}) -mind.bus.addListener('selectNodes', nodes => { - console.log('selectNodes', nodes) -}) -mind.bus.addListener('unselectNodes', nodes => { - console.log('unselectNodes', nodes) -}) -mind.bus.addListener('expandNode', node => { - console.log('expandNode: ', node) -}) - -const dl2 = async () => { - const result = await snapdom(mind.nodes) - await result.download({ format: 'jpg', filename: 'my-capture' }) -} - -window.downloadPng = dl2 -window.m = mind -// window.m2 = mind2 -window.M = MindElixir -window.E = MindElixir.E - -console.log('MindElixir Version', MindElixir.version) - -window.destroy = () => { - mind.destroy() - // @ts-expect-error remove reference - mind = null - // @ts-expect-error remove reference - window.m = null -} - -document.querySelector('#ssr')!.innerHTML = renderSSRHTML(layoutSSR(window.m.nodeData)) diff --git a/mind-elixir-core-master/src/docs.ts b/mind-elixir-core-master/src/docs.ts deleted file mode 100644 index 40dbdf1..0000000 --- a/mind-elixir-core-master/src/docs.ts +++ /dev/null @@ -1,26 +0,0 @@ -import type { Arrow } from './arrow' -import type methods from './methods' -import type { MindElixirMethods } from './methods' -import type { Summary, SummarySvgGroup } from './summary' -import type { MindElixirData, MindElixirInstance, NodeObj, NodeObjExport, Options, Theme } from './types' -import type { MainLineParams, SubLineParams } from './utils/generateBranch' -import type { Locale } from './i18n' -export { - methods, - Theme, - Options, - MindElixirMethods, - MindElixirInstance, - MindElixirData, - NodeObj, - NodeObjExport, - Summary, - SummarySvgGroup, - Arrow, - MainLineParams, - SubLineParams, - Locale, -} - -export type * from './types/dom' -export type * from './utils/pubsub' diff --git a/mind-elixir-core-master/src/exampleData/1.cn.ts b/mind-elixir-core-master/src/exampleData/1.cn.ts deleted file mode 100644 index 6b7e529..0000000 --- a/mind-elixir-core-master/src/exampleData/1.cn.ts +++ /dev/null @@ -1,544 +0,0 @@ -import type { MindElixirData } from '../index' -import { codeBlock, katexHTML, styledDiv } from './htmlText' - -const aboutMindElixir: MindElixirData = { - nodeData: { - id: 'me-root', - topic: 'Mind Elixir', - tags: ['思维导图内核'], - children: [ - { - topic: 'logo2', - id: '56dae51a90d350a8', - direction: 0, - expanded: true, - children: [ - { - id: 'use-image', - topic: 'mind-elixir', - image: { - url: 'https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png', - height: 100, - width: 90, - fit: 'contain', - }, - }, - ], - }, - { - topic: '什么是 Mind Elixir', - id: 'bd4313fbac40284b', - direction: 0, - expanded: true, - children: [ - { - topic: '一个思维导图内核', - id: 'beeb823afd6d2114', - }, - { - topic: '免费', - id: 'c1f068377de9f3a0', - }, - { - topic: '开源', - id: 'c1f06d38a09f23ca', - }, - { - topic: '无框架依赖', - id: 'c1f06e4cbcf16463', - expanded: true, - children: [ - { - topic: '无需 JavaScript 框架即可使用', - id: 'c1f06e4cbcf16464', - }, - { - topic: '可插件化', - id: 'c1f06e4cbcf16465', - }, - ], - }, - { - topic: '在你的项目中使用', - id: 'c1f1f11a7fbf7550', - children: [ - { - topic: "import MindElixir from 'mind-elixir'", - id: 'c1f1e245b0a89f9b', - }, - { - topic: 'new MindElixir({...}).init(data)', - id: 'c1f1ebc7072c8928', - }, - ], - }, - { - topic: '核心特性', - id: 'c1f0723c07b408d7', - expanded: true, - children: [ - { - topic: '流畅的用户体验', - id: 'c1f09612fd89920d', - }, - { - topic: '精心设计', - id: 'c1f09612fd89920e', - }, - { - topic: '移动端友好', - id: 'c1f09612fd89920f', - }, - { - topic: '轻量级 & 高性能', - id: 'c1f09612fd899210', - }, - ], - }, - ], - }, - { - topic: '高效快捷键', - id: 'bd1b66c4b56754d9', - direction: 0, - expanded: true, - children: [ - { - topic: 'Tab - 创建子节点', - id: 'bd1b6892bcab126a', - }, - { - topic: 'Enter - 创建同级节点', - id: 'bd1b6b632a434b27', - }, - { - topic: 'F1 - 居中地图', - id: 'bd1b983085187c0a', - }, - { - topic: 'F2 - 开始编辑', - id: 'bd1b983085187c0b', - }, - { - topic: 'Ctrl + C/V - 复制/粘贴', - id: 'bd1b983085187c0c', - }, - { - topic: 'Ctrl + +/- - 放大/缩小', - id: 'bd1b983085187c0d', - }, - ], - }, - { - topic: '高级功能', - id: 'bd1b66c4b56754da', - direction: 0, - expanded: true, - children: [ - { - topic: '支持批量操作', - id: 'bd1b6892bcab126b', - tags: ['新功能'], - }, - { - topic: '撤销 / 重做', - id: 'bd1b6b632a434b28', - tags: ['新功能'], - }, - { - topic: '节点总结', - id: 'bd1b983085187c0e', - }, - { - topic: '使用 CSS 变量轻松样式化', - id: 'bd1b983085187c0f', - tags: ['新功能'], - }, - ], - }, - { - topic: '专注模式', - id: 'bd1b9b94a9a7a913', - direction: 1, - expanded: true, - children: [ - { - topic: '右键点击并选择专注模式', - id: 'bd1bb2ac4bbab458', - }, - { - topic: '右键点击并选择取消专注模式', - id: 'bd1bb4b14d6697c3', - }, - ], - }, - { - topic: '左侧菜单', - id: 'bd1b9d1816ede134', - direction: 0, - expanded: true, - children: [ - { - topic: '节点分布', - id: 'bd1ba11e620c3c1a', - expanded: true, - children: [ - { - topic: '左侧', - id: 'bd1c1cb51e6745d3', - }, - { - topic: '右侧', - id: 'bd1c1e12fd603ff6', - }, - { - topic: '左右两侧', - id: 'bd1c1f03def5c97b', - }, - ], - }, - ], - }, - { - topic: '底部菜单', - id: 'bd1ba66996df4ba4', - direction: 1, - expanded: true, - children: [ - { - topic: '全屏', - id: 'bd1ba81d9bc95a7e', - }, - { - topic: '回到中心', - id: 'bd1babdd5c18a7a2', - }, - { - topic: '放大', - id: 'bd1bae68e0ab186e', - }, - { - topic: '缩小', - id: 'bd1bb06377439977', - }, - ], - }, - { - topic: '连接', - id: 'bd1beff607711025', - direction: 0, - expanded: true, - children: [ - { - topic: '右键点击并选择连接', - id: 'bd1bf320da90046a', - }, - { - topic: '点击要连接的目标', - id: 'bd1bf6f94ff2e642', - }, - { - topic: '使用控制点修改连接', - id: 'bd1c0c4a487bd036', - }, - { - topic: '双向连接', - id: '4da8dbbc7b71be99', - }, - { - topic: '也可用。', - id: '4da8ded27033a710', - }, - ], - }, - { - topic: '节点样式', - id: 'bd1c217f9d0b20bd', - direction: 0, - expanded: true, - children: [ - { - topic: '字体大小', - id: 'bd1c24420cd2c2f5', - style: { - fontSize: '32px', - color: '#3298db', - }, - }, - { - topic: '字体颜色', - id: 'bd1c2a59b9a2739c', - style: { - color: '#c0392c', - }, - }, - { - topic: '背景颜色', - id: 'bd1c2de33f057eb4', - style: { - color: '#bdc3c7', - background: '#2c3e50', - }, - }, - { - topic: '添加标签', - id: 'bd1cff58364436d0', - tags: ['已完成'], - }, - { - topic: '添加图标', - id: 'bd1d0317f7e8a61a', - icons: ['😂'], - tags: ['www'], - }, - { - topic: '加粗', - id: 'bd41fd4ca32322a4', - style: { - fontWeight: 'bold', - }, - }, - { - topic: '超链接', - id: 'bd41fd4ca32322a5', - hyperLink: 'https://github.com/ssshooter/mind-elixir-core', - }, - ], - }, - { - topic: '可拖拽', - id: 'bd1f03fee1f63bc6', - direction: 1, - expanded: true, - children: [ - { - topic: '将一个节点拖拽到另一个节点\n前者将成为后者的子节点', - id: 'bd1f07c598e729dc', - }, - ], - }, - { - topic: '导出 & 导入', - id: 'beeb7586973430db', - direction: 1, - expanded: true, - children: [ - { - topic: '导出为 SVG', - id: 'beeb7a6bec2d68e6', - }, - { - topic: '导出为 PNG', - id: 'beeb7a6bec2d68e7', - tags: ['新功能'], - }, - { - topic: '导出 JSON 数据', - id: 'beeb784cc189375f', - }, - { - topic: '导出为 HTML', - id: 'beeb7a6bec2d68f5', - }, - ], - }, - { - topic: '生态系统', - id: 'beeb7586973430dc', - direction: 1, - expanded: true, - children: [ - { - topic: '@mind-elixir/node-menu', - id: 'beeb7586973430dd', - hyperLink: 'https://github.com/ssshooter/node-menu', - }, - { - topic: '@mind-elixir/export-xmind', - id: 'beeb7586973430de', - hyperLink: 'https://github.com/ssshooter/export-xmind', - }, - { - topic: 'mind-elixir-react', - id: 'beeb7586973430df', - hyperLink: 'https://github.com/ssshooter/mind-elixir-react', - }, - ], - }, - { - topic: 'dangerouslySetInnerHTML', - id: 'c00a1cf60baa44f0', - style: { - background: '#f1c40e', - }, - children: [ - { - topic: 'Katex', - id: 'c00a2264f4532611', - children: [ - { - topic: '', - id: 'c00a2264f4532612', - dangerouslySetInnerHTML: - '
    ', - }, - ], - }, - { - topic: '代码块', - id: 'c00a2264fdaw32612', - children: [ - { - topic: '', - id: 'c00a2264f4532613', - dangerouslySetInnerHTML: - '
    let message = "Hello world"\nalert(message)
    ', - }, - ], - }, - { - topic: '自定义 Div', - id: 'c00a2264f4532615', - children: [ - { - topic: '', - id: 'c00a2264f4532614', - dangerouslySetInnerHTML: - '
    标题
    你好世界
    ', - }, - ], - }, - ], - direction: 1, - }, - { - topic: '主题系统', - id: 'bd42dad21aaf6baf', - direction: 1, - expanded: true, - children: [ - { - topic: '内置主题', - id: 'bd42e1d0163ebf05', - expanded: true, - children: [ - { - topic: 'Latte (浅色)', - id: 'bd42e619051878b4', - style: { - background: '#ffffff', - color: '#444446', - }, - }, - { - topic: '深色主题', - id: 'bd42e97d7ac35e9a', - style: { - background: '#252526', - color: '#ffffff', - }, - }, - ], - }, - { - topic: '自定义 CSS 变量', - id: 'bd42e1d0163ebf06', - tags: ['灵活'], - }, - { - topic: '调色板自定义', - id: 'bd42e1d0163ebf07', - tags: ['10 种颜色'], - }, - ], - }, - ], - expanded: true, - }, - arrows: [ - { - id: 'ac5fb1df7345e9c4', - label: '渲染', - from: 'beeb784cc189375f', - to: 'beeb7a6bec2d68f5', - delta1: { - x: 142.8828125, - y: -57, - }, - delta2: { - x: 146.1171875, - y: 45, - }, - bidirectional: false, - }, - { - id: '4da8e3367b63b640', - label: '双向!', - from: '4da8dbbc7b71be99', - to: '4da8ded27033a710', - delta1: { - x: -186, - y: 7, - }, - delta2: { - x: -155, - y: 28, - }, - bidirectional: true, - style: { - stroke: '#8839ef', - labelColor: '#8839ef', - strokeWidth: '2', - strokeDasharray: '2,5', - opacity: '1', - }, - }, - ], - summaries: [ - { - id: 'a5e68e6a2ce1b648', - parent: 'bd42e1d0163ebf04', - start: 0, - end: 1, - label: '总结', - }, - { - id: 'a5e6978f1bc69f4a', - parent: 'bd4313fbac40284b', - start: 3, - end: 5, - label: '总结', - }, - ], - direction: 2, - theme: { - name: 'Latte', - // 更新的调色板,颜色更鲜艳 - palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'], - // 增强的 CSS 变量,更好的样式控制 - cssVar: { - '--node-gap-x': '30px', - '--node-gap-y': '10px', - '--main-gap-x': '32px', - '--main-gap-y': '12px', - '--root-radius': '30px', - '--main-radius': '20px', - '--root-color': '#ffffff', - '--root-bgcolor': '#4c4f69', - '--root-border-color': 'rgba(0, 0, 0, 0)', - '--main-color': '#444446', - '--main-bgcolor': '#ffffff', - '--topic-padding': '3px', - '--color': '#777777', - '--bgcolor': '#f6f6f6', - '--selected': '#4dc4ff', - '--accent-color': '#e64553', - '--panel-color': '#444446', - '--panel-bgcolor': '#ffffff', - '--panel-border-color': '#eaeaea', - '--map-padding': '50px 80px', - }, - }, -} - -export default aboutMindElixir diff --git a/mind-elixir-core-master/src/exampleData/1.ts b/mind-elixir-core-master/src/exampleData/1.ts deleted file mode 100644 index 04ddcbc..0000000 --- a/mind-elixir-core-master/src/exampleData/1.ts +++ /dev/null @@ -1,623 +0,0 @@ -import type { MindElixirData, NodeObj } from '../index' -import { codeBlock, katexHTML, styledDiv } from './htmlText' - -type NodeObjWithUseMd = NodeObj & { useMd?: boolean } -type MindElixirDataWithUseMd = Omit & { - nodeData: NodeObjWithUseMd & { - children?: NodeObjWithUseMd[] - } -} - -const aboutMindElixir: MindElixirDataWithUseMd = { - nodeData: { - id: 'me-root', - topic: 'Mind Elixir', - tags: ['Mind Map Core'], - children: [ - { - topic: 'logo2', - id: '56dae51a90d350a8', - direction: 0, - expanded: true, - children: [ - { - id: 'use-image', - topic: 'mind-elixir', - image: { - url: 'https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png', - height: 100, - width: 90, - fit: 'contain', - }, - }, - ], - }, - { - topic: 'What is Mind Elixir', - id: 'bd4313fbac40284b', - direction: 0, - expanded: true, - children: [ - { - topic: 'A mind map core', - id: 'beeb823afd6d2114', - }, - { - topic: 'Free', - id: 'c1f068377de9f3a0', - }, - { - topic: 'Open-Source', - id: 'c1f06d38a09f23ca', - }, - { - topic: 'Framework agnostic', - id: 'c1f06e4cbcf16463', - expanded: true, - children: [ - { - topic: 'Use without JavaScript framework', - id: 'c1f06e4cbcf16464', - }, - { - topic: 'Pluginable', - id: 'c1f06e4cbcf16465', - }, - ], - }, - { - topic: 'Use in your own project', - id: 'c1f1f11a7fbf7550', - children: [ - { - topic: "import MindElixir from 'mind-elixir'", - id: 'c1f1e245b0a89f9b', - }, - { - topic: 'new MindElixir({...}).init(data)', - id: 'c1f1ebc7072c8928', - }, - ], - }, - { - topic: 'Key Features', - id: 'c1f0723c07b408d7', - expanded: true, - children: [ - { - topic: 'Fluent UX', - id: 'c1f09612fd89920d', - }, - { - topic: 'Well designed', - id: 'c1f09612fd89920e', - }, - { - topic: 'Mobile friendly', - id: 'c1f09612fd89920f', - }, - { - topic: 'Lightweight & High performance', - id: 'c1f09612fd899210', - }, - ], - }, - ], - }, - { - topic: 'Efficient Shortcuts', - id: 'bd1b66c4b56754d9', - direction: 0, - expanded: true, - children: [ - { - topic: 'Tab - Create a child node', - id: 'bd1b6892bcab126a', - }, - { - topic: 'Enter - Create a sibling node', - id: 'bd1b6b632a434b27', - }, - { - topic: 'F1 - Center the Map', - id: 'bd1b983085187c0a', - }, - { - topic: 'F2 - Begin Editing', - id: 'bd1b983085187c0b', - }, - { - topic: 'Ctrl + C/V - Copy/Paste', - id: 'bd1b983085187c0c', - }, - { - topic: 'Ctrl + +/- - Zoom In/Out', - id: 'bd1b983085187c0d', - }, - ], - }, - { - topic: 'Advanced Features', - id: 'bd1b66c4b56754da', - direction: 0, - expanded: true, - children: [ - { - topic: 'Bulk operations supported', - id: 'bd1b6892bcab126b', - tags: ['New'], - }, - { - topic: 'Undo / Redo', - id: 'bd1b6b632a434b28', - tags: ['New'], - }, - { - topic: 'Summarize nodes', - id: 'bd1b983085187c0e', - }, - { - topic: 'Easily Styling with CSS variables', - id: 'bd1b983085187c0f', - tags: ['New'], - }, - ], - }, - { - topic: 'Focus mode', - id: 'bd1b9b94a9a7a913', - direction: 1, - expanded: true, - children: [ - { - topic: 'Right click and select Focus Mode', - id: 'bd1bb2ac4bbab458', - }, - { - topic: 'Right click and select Cancel Focus Mode', - id: 'bd1bb4b14d6697c3', - }, - ], - }, - { - topic: 'Left menu', - id: 'bd1b9d1816ede134', - direction: 0, - expanded: true, - children: [ - { - topic: 'Node distribution', - id: 'bd1ba11e620c3c1a', - expanded: true, - children: [ - { - topic: 'Left', - id: 'bd1c1cb51e6745d3', - }, - { - topic: 'Right', - id: 'bd1c1e12fd603ff6', - }, - { - topic: 'Both l & r', - id: 'bd1c1f03def5c97b', - }, - ], - }, - ], - }, - { - topic: 'Bottom menu', - id: 'bd1ba66996df4ba4', - direction: 1, - expanded: true, - children: [ - { - topic: 'Full screen', - id: 'bd1ba81d9bc95a7e', - }, - { - topic: 'Return to Center', - id: 'bd1babdd5c18a7a2', - }, - { - topic: 'Zoom in', - id: 'bd1bae68e0ab186e', - }, - { - topic: 'Zoom out', - id: 'bd1bb06377439977', - }, - ], - }, - { - topic: 'Link', - id: 'bd1beff607711025', - direction: 0, - expanded: true, - children: [ - { - topic: 'Right click and select Link', - id: 'bd1bf320da90046a', - }, - { - topic: 'Click the target you want to link', - id: 'bd1bf6f94ff2e642', - }, - { - topic: 'Modify link with control points', - id: 'bd1c0c4a487bd036', - }, - { - topic: 'Bidirectional link is', - id: '4da8dbbc7b71be99', - }, - { - topic: 'Also available.', - id: '4da8ded27033a710', - }, - ], - }, - { - topic: 'Node style', - id: 'bd1c217f9d0b20bd', - direction: 0, - expanded: true, - children: [ - { - topic: 'Font Size', - id: 'bd1c24420cd2c2f5', - style: { - fontSize: '32px', - color: '#3298db', - }, - }, - { - topic: 'Font Color', - id: 'bd1c2a59b9a2739c', - style: { - color: '#c0392c', - }, - }, - { - topic: 'Background Color', - id: 'bd1c2de33f057eb4', - style: { - color: '#bdc3c7', - background: '#2c3e50', - }, - }, - { - topic: 'Add tags', - id: 'bd1cff58364436d0', - tags: ['Completed'], - }, - { - topic: 'Add icons', - id: 'bd1d0317f7e8a61a', - icons: ['😂'], - tags: ['www'], - }, - { - topic: 'Bolder', - id: 'bd41fd4ca32322a4', - style: { - fontWeight: 'bold', - }, - }, - { - topic: 'Hyper link', - id: 'bd41fd4ca32322a5', - hyperLink: 'https://github.com/ssshooter/mind-elixir-core', - }, - ], - }, - { - topic: 'Draggable', - id: 'bd1f03fee1f63bc6', - direction: 1, - expanded: true, - children: [ - { - topic: 'Drag a node to another node\nand the former one will become a child node of latter one', - id: 'bd1f07c598e729dc', - }, - ], - }, - { - topic: 'Export & Import', - id: 'beeb7586973430db', - direction: 1, - expanded: true, - children: [ - { - topic: 'Export as SVG', - id: 'beeb7a6bec2d68e6', - }, - { - topic: 'Export as PNG', - id: 'beeb7a6bec2d68e7', - tags: ['New'], - }, - { - topic: 'Export JSON data', - id: 'beeb784cc189375f', - }, - { - topic: 'Export as HTML', - id: 'beeb7a6bec2d68f5', - }, - ], - }, - { - topic: 'Ecosystem', - id: 'beeb7586973430dc', - direction: 1, - expanded: true, - children: [ - { - topic: '@mind-elixir/node-menu', - id: 'beeb7586973430dd', - hyperLink: 'https://github.com/ssshooter/node-menu', - }, - { - topic: '@mind-elixir/export-xmind', - id: 'beeb7586973430de', - hyperLink: 'https://github.com/ssshooter/export-xmind', - }, - { - topic: 'mind-elixir-react', - id: 'beeb7586973430df', - hyperLink: 'https://github.com/ssshooter/mind-elixir-react', - }, - ], - }, - { - topic: 'dangerouslySetInnerHTML', - id: 'c00a1cf60baa44f0', - style: { - background: '#f1c40e', - }, - children: [ - { - topic: 'Code Block', - id: 'c00a2264fdaw32612', - children: [ - { - topic: '', - id: 'c00a2264f4532613', - dangerouslySetInnerHTML: - '
    let message = \'Hello world\'\nalert(message)
    ', - }, - ], - }, - { - topic: 'Customized Div', - id: 'c00a2264f4532615', - children: [ - { - topic: '', - id: 'c00a2264f4532614', - dangerouslySetInnerHTML: - '
    Title
    Hello world
    ', - }, - ], - }, - // { - // topic: 'Video', - // id: 'c00a2264ffadw19', - // children: [ - // { - // topic: '', - // id: 'c00a2264f453fv14', - // dangerouslySetInnerHTML: - // '', - // }, - // ], - // }, - ], - direction: 1, - }, - { - topic: 'KaTeX', - id: 'markdown-complex-math', - direction: 1, - expanded: true, - children: [ - { - topic: 'Normal distribution: $$f(x) = \\frac{1}{\\sqrt{2\\pi\\sigma^2}} e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}$$', - id: 'markdown-normal-dist', - useMd: true, - }, - { - topic: 'Fourier transform: $$F(\\omega) = \\int_{-\\infty}^{\\infty} f(t) e^{-i\\omega t} dt$$', - id: 'markdown-fourier', - useMd: true, - }, - { - topic: 'Taylor series: $$f(x) = \\sum_{n=0}^{\\infty} \\frac{f^{(n)}(a)}{n!}(x-a)^n$$', - id: 'markdown-taylor', - useMd: true, - }, - { - topic: 'Schrödinger equation: $$i\\hbar\\frac{\\partial}{\\partial t}\\Psi = \\hat{H}\\Psi$$', - id: 'markdown-schrodinger', - useMd: true, - }, - ], - }, - { - topic: 'Basic Markdown Examples', - id: 'markdown-basic-examples', - direction: 1, - expanded: true, - children: [ - { - topic: '# Heading 1', - id: 'markdown-headings', - useMd: true, - }, - { - topic: '**Bold text** and *italic text* and ***bold italic***', - id: 'markdown-emphasis', - useMd: true, - }, - { - topic: '- Unordered list item 1\n- Unordered list item 2', - id: 'markdown-lists', - useMd: true, - }, - { - topic: '[Link to GitHub](https://github.com) and `inline code`', - id: 'markdown-links-code', - useMd: true, - }, - { - topic: '> This is a blockquote\n> with multiple lines', - id: 'markdown-blockquote', - useMd: true, - }, - { - topic: '```javascript\nconst greeting = "Hello World!";\nconsole.log(greeting);\n```', - id: 'markdown-code-block', - useMd: true, - }, - { - topic: - '| Column 1 | Column 2 | Column 3 |\n|----------|----------|----------|\n| Row 1 | Data 1 | Info 1 |\n| Row 2 | Data 2 | Info 2 |', - id: 'markdown-table', - useMd: true, - }, - ], - }, - { - topic: 'Theme System', - id: 'bd42dad21aaf6baf', - direction: 1, - expanded: true, - children: [ - { - topic: 'Built-in Themes', - id: 'bd42e1d0163ebf05', - expanded: true, - children: [ - { - topic: 'Latte (Light)', - id: 'bd42e619051878b4', - style: { - background: '#ffffff', - color: '#444446', - }, - }, - { - topic: 'Dark Theme', - id: 'bd42e97d7ac35e9a', - style: { - background: '#252526', - color: '#ffffff', - }, - }, - ], - }, - { - topic: 'Custom CSS Variables', - id: 'bd42e1d0163ebf06', - tags: ['Flexible'], - }, - { - topic: 'Color Palette Customization', - id: 'bd42e1d0163ebf07', - tags: ['10 Colors'], - }, - ], - }, - ], - expanded: true, - }, - arrows: [ - { - id: 'ac5fb1df7345e9c4', - label: 'Render', - from: 'beeb784cc189375f', - to: 'beeb7a6bec2d68f5', - delta1: { - x: 142.8828125, - y: -57, - }, - delta2: { - x: 146.1171875, - y: 45, - }, - bidirectional: false, - }, - { - id: '4da8e3367b63b640', - label: 'Bidirectional!', - from: '4da8dbbc7b71be99', - to: '4da8ded27033a710', - delta1: { - x: -186, - y: 7, - }, - delta2: { - x: -155, - y: 28, - }, - bidirectional: true, - style: { - stroke: '#8839ef', - labelColor: '#8839ef', - strokeWidth: '2', - strokeDasharray: '2,5', - opacity: '1', - }, - }, - ], - summaries: [ - { - id: 'a5e68e6a2ce1b648', - parent: 'bd42e1d0163ebf04', - start: 0, - end: 1, - label: 'summary', - }, - { - id: 'a5e6978f1bc69f4a', - parent: 'bd4313fbac40284b', - start: 3, - end: 5, - label: 'summary', - }, - ], - direction: 2, - theme: { - name: 'Latte', - // Updated color palette with more vibrant colors - palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'], - // Enhanced CSS variables for better styling control - cssVar: { - '--node-gap-x': '30px', - '--node-gap-y': '10px', - '--main-gap-x': '32px', - '--main-gap-y': '12px', - '--root-radius': '30px', - '--main-radius': '20px', - '--root-color': '#ffffff', - '--root-bgcolor': '#4c4f69', - '--root-border-color': 'rgba(0, 0, 0, 0)', - '--main-color': '#444446', - '--main-bgcolor': '#ffffff', - '--topic-padding': '3px', - '--color': '#777777', - '--bgcolor': '#f6f6f6', - '--selected': '#4dc4ff', - '--accent-color': '#e64553', - '--panel-color': '#444446', - '--panel-bgcolor': '#ffffff', - '--panel-border-color': '#eaeaea', - '--map-padding': '50px 80px', - }, - }, -} - -export default aboutMindElixir as MindElixirData diff --git a/mind-elixir-core-master/src/exampleData/2.ts b/mind-elixir-core-master/src/exampleData/2.ts deleted file mode 100644 index c31923c..0000000 --- a/mind-elixir-core-master/src/exampleData/2.ts +++ /dev/null @@ -1,114 +0,0 @@ -import type { MindElixirData } from '../index' -import MindElixir from '../index' - -const mindElixirStruct: MindElixirData = { - direction: 1, - theme: MindElixir.DARK_THEME, - nodeData: { - id: 'me-root', - topic: 'HTML structure', - children: [ - { - topic: 'div.map-container', - id: '33905a6bde6512e4', - expanded: true, - children: [ - { - topic: 'div.map-canvas', - id: '33905d3c66649e8f', - tags: ['A special case of a `grp` tag'], - expanded: true, - children: [ - { - topic: 'me-root', - id: '33906b754897b9b9', - tags: ['A special case of a `t` tag'], - expanded: true, - children: [{ topic: 'ME-TPC', id: '33b5cbc93b9968ab' }], - }, - { - topic: 'children.box', - id: '33906db16ed7f956', - expanded: true, - children: [ - { - topic: 'grp(group)', - id: '33907d9a3664cc8a', - expanded: true, - children: [ - { - topic: 't(top)', - id: '3390856d09415b95', - expanded: true, - children: [ - { - topic: 'tpc(topic)', - id: '33908dd36c7d32c5', - expanded: true, - children: [ - { topic: 'text', id: '3391630d4227e248' }, - { topic: 'icons', id: '33916d74224b141f' }, - { topic: 'tags', id: '33916421bfff1543' }, - ], - tags: ['E() function return'], - }, - { - topic: 'epd(expander)', - id: '33909032ed7b5e8e', - tags: ['If had child'], - }, - ], - tags: ['createParent retun'], - }, - { - topic: 'me-children', - id: '339087e1a8a5ea68', - expanded: true, - children: [ - { - topic: 'me-wrapper', - id: '3390930112ea7367', - tags: ['what add node actually do is to append grp tag to children'], - }, - { topic: 'grp...', id: '3390940a8c8380a6' }, - ], - tags: ['layoutChildren return'], - }, - { topic: 'svg.subLines', id: '33908986b6336a4f' }, - ], - tags: ['have child'], - }, - { - topic: 'me-wrapper', - id: '339081c3c5f57756', - expanded: true, - children: [ - { - topic: 'ME-PARENT', - id: '33b6160ec048b997', - expanded: true, - children: [{ topic: 'ME-TPC', id: '33b616f9fe7763fc' }], - }, - ], - tags: ['no child'], - }, - { topic: 'grp...', id: '33b61346707af71a' }, - ], - }, - { topic: 'svg.lines', id: '3390707d68c0779d' }, - { topic: 'svg.linkcontroller', id: '339072cb6cf95295' }, - { topic: 'svg.topiclinks', id: '3390751acbdbdb9f' }, - ], - }, - { topic: 'cmenu', id: '33905f95aeab942d' }, - { topic: 'toolbar.rb', id: '339060ac0343f0d7' }, - { topic: 'toolbar.lt', id: '3390622b29323de9' }, - { topic: 'nmenu', id: '3390645e6d7c2b4e' }, - ], - }, - ], - }, - arrows: [], -} - -export default mindElixirStruct diff --git a/mind-elixir-core-master/src/exampleData/3.ts b/mind-elixir-core-master/src/exampleData/3.ts deleted file mode 100644 index 62ee613..0000000 --- a/mind-elixir-core-master/src/exampleData/3.ts +++ /dev/null @@ -1,2646 +0,0 @@ -import type { MindElixirData } from '../index' - -const frontEndSkill: MindElixirData = { - nodeData: { - topic: 'web前端能力地图', - id: 'me-root', - children: [ - { - topic: '专业能力', - id: '31674e797740932bd85937f60a271ce9', - children: [ - { - topic: '初阶', - id: '8aac6fd006f93acc92108dde88bbb371', - children: [ - { - topic: '前端基础', - id: '878fbc7deac7d928fce359900cf81fef', - children: [ - { - topic: '客户端', - id: 'da26d49270305392815cea3f8b6f0796', - children: [ - { - topic: '浏览器', - id: 'eec82aa0f673b7ffc6ea68fe24078309', - children: [ - { - topic: 'Chrome', - id: '660f7cd083cef15a0a38c74cc9fde4f2', - }, - { - topic: '微信内置浏览器', - id: 'e6cfa2b46b842d3899c08d73ed0b4a43', - }, - ], - }, - { - topic: 'APP', - id: '3f472c19c6dff87242e5c6aacaa7afd2', - children: [ - { - topic: '小程序', - id: '7abc617cff7a076041b8d38362c9a67c', - }, - { - topic: 'WebView', - id: 'bbbfba5924bd3f0c55bb37c8081d4ebd', - }, - ], - }, - ], - }, - { - topic: '网络', - id: '2fa503c93c56ab4b8a764df08cc57abb', - children: [ - { - topic: 'Domain', - id: '50cf1b9c278606cd47a5a3817adc638a', - }, - { - topic: 'TCP/IP', - id: 'e8e7bc4206eabc59624e17498f58249c', - }, - { - topic: 'DNS', - id: '595c0850a64785b537287eb2b468eec4', - }, - { - topic: 'HTTP', - id: '2aef90d1b0fd75713b08e2df3ff28f46', - }, - ], - }, - { - topic: '服务端', - id: 'ee6b09e9ce7be6f2742d3ffccc65a1d4', - children: [ - { - topic: 'WebServer', - id: 'bc557882b7c313b1980cbe680a14c985', - children: [ - { - topic: 'Nginx', - id: 'f3feafa53304e8a3143ed0e9f3e1fac9', - }, - { - topic: 'Apache HTTP Server', - id: '0ad21d131b8a8283f63e7a4ebf8defe1', - }, - { - topic: 'CDN', - id: 'af0bdd4b91061ebedb4a523f918bd47e', - }, - ], - }, - { - topic: '服务端语言', - id: 'f1fa46104b01102db269d1909d208ff7', - children: [ - { - topic: 'Java', - id: 'd9b2627ab5875b4c7b1b17d0a2e4b010', - }, - { - topic: 'Golang', - id: 'bc12d81e717be8059be2394788440137', - }, - { - topic: 'Python', - id: '78831f7ccaa673617adefb88250dd9de', - }, - ], - }, - { - topic: '数据库', - id: 'b8621ccd3a037349098125ebb5ed932e', - children: [ - { - topic: 'MySQL', - id: '7f4e8c09c1f19698449cb1ec8f4fea4a', - }, - { - topic: 'MongoDB', - id: '16710cea5cfb50712c8832676b87d2cc', - }, - ], - }, - { - topic: '操作系统', - id: 'a3d072a89b06377d3e27937fee021cff', - children: [ - { - topic: 'Linux', - id: 'e72c34d6886dd4dcecf2d5df342f3c4e', - }, - ], - }, - ], - }, - { - topic: '行业标准', - id: '6595463e8a33b2faf3d13bff312bfb5f', - children: [ - { - topic: 'W3C/WHATWG', - id: 'e941274d59b2a3f6fd48f15fefeb30e7', - children: [ - { - topic: 'CSS标准', - id: 'ad84cd730a702498f54b040c050c5d32', - }, - { - topic: 'HTML、XHTML、XML、HTML5标准', - id: '79dc813fb90805d518946c26424cfeb1', - }, - { - topic: 'DOM标准', - id: 'e3a3d011765a4d11a9dd73f9b4d540d4', - }, - { - topic: 'SVG标准', - id: '6b0774c945df07be86f79fb5b00bdd32', - }, - { - topic: '小程序标准', - id: '70cfcbedebae12ebd92cd2555e8d04b4', - }, - ], - }, - { - topic: 'ECMA-TC39', - id: '5c7bdc4d497f1f28ed6644a4dd2a9910', - children: [ - { - topic: 'EcmaScript标准', - id: '22a562e41becc77095c039092c4d92b7', - }, - { - topic: 'JavaScript标准', - id: 'abf39a44037669f5980a6ce807e2af72', - }, - ], - }, - ], - }, - ], - }, - { - topic: '研发工具', - id: 'a9d4061ae43393fbd00cdd19e7606215', - children: [ - { - topic: '编辑器', - id: '279efaf9e60aac9bbf99ba03cdbc2326', - children: [ - { - topic: 'Visual Studio Code', - id: 'cb07f954f6deeac8cdc8b7332e852592', - }, - { - topic: 'WebStorm', - id: '25314a128c82e73a9a77b013477c5de1', - }, - { - topic: 'Sublime Text', - id: '9e1f252caaea4b414890f03594f5aefd', - }, - ], - }, - { - topic: '调试预览', - id: 'ac6c91e905bc11c3c99b92188d0d7e33', - children: [ - { - topic: '浏览器调试工具', - id: '1ce51746dc86d04c1ea313d1db68a15d', - children: [ - { - topic: 'Chrome DevTools', - id: '72e3db2365908f96c51b3e4857060576', - }, - { - topic: '微信开发者工具', - id: '9ea4f48e0c5382940ffa388a68281e74', - }, - { - topic: 'vConsole', - id: '763e15cd76798903155c3965d961cec8', - }, - ], - }, - { - topic: '本地服务', - id: '75fceaf637f8fad547e183e3f8ab1472', - children: [ - { - topic: 'file://', - id: 'c4ff4bd9c4c0997de5f100c90d0d89a8', - }, - { - topic: 'http://、SimpleHTTPServer', - id: 'ed1698058fd5ae49d36d518d3a80a115', - }, - ], - }, - { - topic: '在线服务', - id: '93e195bb7cdf12f666b239bfb7f72ab7', - children: [ - { - topic: 'CodePen', - id: 'f91d2158ce4546b64b1b07d70f0856f3', - }, - { - topic: 'JSFiddle', - id: '5afe735ffa45d26c8470d0ab385f2f07', - }, - { - topic: 'github1s', - id: '8d6dec6609322cc20c4fec74c188319c', - }, - ], - }, - { - topic: '网络调试', - id: 'cac051fea196400dd0d43f0a4cd568f3', - children: [ - { - topic: 'hosts、Switchhosts', - id: '4eb2b342b8ed94d34ca3d56c4ac80851', - }, - { - topic: 'Debugging Proxy、Charles、wireshark', - id: '750ea29ab40d3928c73fe49d5591b698', - }, - ], - }, - ], - }, - { - topic: '图片编辑器', - id: '0f2f00568333c2408bbb7886db69d2ca', - children: [ - { - topic: 'Photoshop', - id: 'f4464dea35369505b68446c56f7ddfd6', - }, - { - topic: 'Sketch', - id: 'd2dad47f7ff75750a540daf7efe60b23', - }, - { - topic: '蓝湖', - id: '1f368c8d993b89416fc78ce437bbe746', - }, - { - topic: '摹客', - id: 'd18a47cd36ebad761d8d0464207c39d7', - }, - { - topic: 'figma', - id: '473bcb154547a41a002718b7baf8a413', - }, - ], - }, - { - topic: '版本管理', - id: 'bfe3e81cd4d8ca5258150247e7991171', - children: [ - { - topic: 'git', - id: 'bf06e9d6ce20a6e39f33fc316ef59d2c', - }, - { - topic: 'SVN', - id: '68eee02d166735e798a544960b5e6f61', - }, - ], - }, - ], - }, - { - topic: 'HTML', - id: '224d1a9501485d063e295e4734a929f2', - children: [ - { - topic: '元素', - id: '9bd8a0a2194fb18b6156e3777921c47f', - children: [ - { - topic: '根元素', - id: '11b56bf6f8a6eaf94c1041b86bd9f56f', - children: [ - { - topic: '主根元素html', - id: '35d5af054234d66be64d4051ec7782e7', - }, - { - topic: '分区根元素body', - id: '42bde3da38a0a5b860155dd1e89cec7b', - }, - ], - }, - { - topic: '元数据', - id: '8c5be907330aecb85e1739b6f213d432', - children: [ - { - topic: 'base', - id: 'be420b6f068eaf12e60f46b1e8d99636', - }, - { - topic: 'head', - id: '814836dde3998eb919a01a82c8de81a6', - }, - ], - }, - { - topic: '内容分区', - id: '20d975e504ae04130beb374dff1a10fd', - children: [ - { - topic: 'header', - id: '651ebebfd8064edd02b7eaddb6877db3', - }, - { - topic: 'footer', - id: '1482d802c366557aa742d7618955d454', - }, - ], - }, - { - topic: '内容', - id: '982c2e623f7807fbcf22f11b7b3f3da4', - children: [ - { - topic: '块级内容div、dir', - id: '551f3a84c00fb6f555aeff605fc8deb8', - }, - { - topic: '文字内容a、b、strong', - id: '7471517921b78db7ef2a01905361e35b', - }, - ], - }, - { - topic: '图片和多媒体', - id: '9a1f340cf9fedf52ceaf9b91396011ee', - children: [ - { - topic: 'audio', - id: '7bf41be43ffa20b5eee603bde38f3848', - }, - { - topic: 'img', - id: 'd4ec18739d6ce88a85bbb7d6559cc48e', - }, - ], - }, - { - topic: '内嵌内容', - id: 'dd0379bc81586da5c83a617e3e909953', - children: [ - { - topic: 'iframe', - id: '0d20c30697c4f8dbda8e99669c1c6123', - }, - { - topic: 'object', - id: '650f22160a8e58109fc0387fb2264bc1', - }, - ], - }, - { - topic: '脚本', - id: '4ddde8fbe2161af6deacc013fda0f687', - children: [ - { - topic: 'canvas', - id: 'e258a6e0d0c7d22053519d254287c1ff', - }, - { - topic: 'script', - id: '8dc66fc7802dfa72b395ab1a2dc468c9', - }, - ], - }, - { - topic: '表格', - id: 'fa8a188b2ce2774d899439c2250c0d3d', - children: [ - { - topic: 'table', - id: 'b844737e83330c6eae1aaa33e9880fa8', - }, - { - topic: 'tbody', - id: 'ac9f26165d7111a5803e5a624416af3e', - }, - ], - }, - { - topic: '表单', - id: 'b40fd0c94f641907e8748f586775eec4', - children: [ - { - topic: 'button', - id: '87aa4bbf4d73a0dab525a852a6b3a2b7', - }, - { - topic: 'input', - id: '1acb0ac6530120202106faf8d7dc8c04', - }, - ], - }, - { - topic: '可交互元素', - id: '5d0210b9bc5bbdd780d8886e78acd4f8', - children: [ - { - topic: 'menu', - id: 'a217787ad9659b6aa290995c9cb70996', - }, - { - topic: 'menuitem', - id: '2db6ffcc9338a5b458e51e79d5e9275d', - }, - ], - }, - ], - }, - { - topic: '属性', - id: '7c974d57cf5176ad7e8724be4e3c8aa2', - children: [ - { - topic: '常用属性', - id: '2a19af9139885de6c257ee0a27bcc4f6', - children: [ - { - topic: 'class', - id: '1a4c07c5e74cea4ccdbe829d5b2ff430', - }, - { - topic: 'id', - id: 'd5d612cbdeecbca87c8527557927efce', - }, - { - topic: 'style', - id: '02b9d58b26e2fb97f2477e23e4840917', - }, - { - topic: 'title', - id: 'f40981a62f1ce5351c02c5731a8535e8', - }, - ], - }, - { - topic: '全局属性', - id: '7e94765996dc13e45dadf93196e49eef', - }, - ], - }, - { - topic: '事件', - id: 'e82e8caa7030a2e2799f945c5033ba06', - children: [ - { - topic: '窗口事件', - id: '657f82ec314496b90e2528ddf48ded73', - }, - { - topic: '表单事件', - id: '954e38edebb2772a26ce90a07a179ec3', - }, - { - topic: '键盘事件', - id: 'd570b0f6fa26d87479e80fed7202197b', - }, - { - topic: '鼠标事件', - id: '1e968f11315d5090ae5f6cf3e90f83bd', - }, - { - topic: '多媒体事件', - id: '2c7dbadfc7840b430cb53f7eb3ce6989', - }, - ], - }, - { - topic: '编码', - id: '206b18c2aec8fa440f6c9a1c43084b5d', - children: [ - { - topic: 'URL编码', - id: '46a92523cd4a3eca0dcb6fc6654aaf35', - }, - { - topic: '语言编码', - id: '848c2aa695564789bc14171324c74164', - }, - { - topic: '字符集', - id: '5f250e4d0e8e7aaf6f05ebb93cf930c3', - }, - ], - }, - ], - }, - { - topic: 'CSS', - id: '2738390f5a5b5a2592e289251e153eae', - children: [ - { - topic: '语法', - id: '955e835f979dbe12402d464aae79df19', - children: [ - { - topic: '@规则', - id: '4d533b76c0b659132a87dd7a20f2348e', - }, - { - topic: '层叠', - id: '9c29d90fb30f9c36393a5f01192d61c0', - }, - { - topic: '注释', - id: '9ce4b1f6aba05533ffd7fa1e85541aee', - }, - { - topic: '解释器', - id: '276f1c16a7f3cfd1b1498ad247b53bfe', - }, - { - topic: '继承', - id: '6f47acb14c875668f5531b8c96ada1e2', - }, - { - topic: '简写', - id: 'f91c0e7332471d6ffdd3c5bf845f423c', - }, - { - topic: '优先级', - id: '2be9c9398583519e3212c4258acf8f32', - }, - { - topic: '值定义', - id: '0a37a9481ef4cb110d73ae82dc098ad5', - }, - { - topic: '单位与取值类型', - id: '96a6f5df2b0c7a426b14dc9ed1fb2574', - }, - ], - }, - { - topic: '选择器', - id: '75130ee37d2046a76ede404e5150569e', - children: [ - { - topic: '元素选择器', - id: '3241f2e67169ddef34521e2be2d608fe', - }, - { - topic: '选择器分组', - id: '800f1843d3347ef2028baa13bd40994b', - }, - { - topic: '类选择器', - id: '5eaa3f46592944d4298dfa16e1a48d06', - }, - { - topic: 'ID选择器', - id: '138492d495d99381e42535416cbadd5f', - }, - { - topic: '属性选择器', - id: '3e1ecdeef855c5d04f0c693d1576541f', - }, - { - topic: '后代选择器', - id: '5627038331a7c9130057f20b09fb9313', - }, - { - topic: '子元素选择器', - id: '477eb83f5facb7b6ca62d3a07d4aeb55', - }, - { - topic: '相邻选择器', - id: 'b3b30c773d035bdaad436c66ad1d6fbf', - }, - { - topic: '伪类', - id: 'a87eeff261316d81f9d83661bb08af9c', - }, - { - topic: '伪元素', - id: '430c8aa651b788d205f7b8eca0c3a04e', - }, - ], - }, - { - topic: '定位', - id: 'cc6ad1bac45557a7a6636609b34ff59a', - children: [ - { - topic: 'position', - id: '571b56b1dfb52ad8eb37a08741f99a90', - }, - { - topic: 'top、left、bottom、right', - id: '639d68d10450fcac5115e2a057a2f352', - }, - { - topic: 'z-index', - id: 'a932ae00fd65919839b5d4ed5d82285e', - }, - ], - }, - { - topic: '布局', - id: '2415b6e6af4966a4ed0f12e80a4b3877', - children: [ - { - topic: 'Box Model', - id: 'c49b5742280ccd61b59586d1151ff747', - }, - { - topic: 'FlexBox', - id: 'aa6ad40e1d530795cdace747ccab3863', - }, - { - topic: 'Grid', - id: 'bfcff8726f64fd823336ab22835a678c', - }, - { - topic: 'Column', - id: 'e72e8b3297a7587eda12cb357857ddb0', - }, - ], - }, - { - topic: '样式', - id: 'f39148af0020e26960a3a9978b7502b0', - children: [ - { - topic: '背景', - id: '50703eafb8d64142584d6fe070760626', - }, - { - topic: '文本', - id: 'eeba72ca38825bb15109462afd3f625c', - }, - { - topic: '轮廓', - id: 'ca27e160020891310cc7a5be616f651c', - }, - { - topic: '列表', - id: '88a829ae37794d2653f306616a59b98e', - }, - ], - }, - { - topic: '动画', - id: '9f2a9bbc90eb6a2d13d48ac6aa6d791b', - children: [ - { - topic: 'Animation', - id: '910a1ab848cb2f50524b56366d5834e9', - }, - { - topic: 'transition', - id: '1c47b503c9b774acaac991a1ed977f77', - }, - ], - }, - { - topic: '应用', - id: 'c7566490b49b837e1b9df20d8151006d', - children: [ - { - topic: '响应式', - id: '737f2adb0d9f32741ad2dc3394451822', - children: [ - { - topic: 'em', - id: '0560b062a18ac7ad28435807c8959242', - }, - { - topic: 'vh/vw', - id: 'ae98d378740b9b6289114c6d752bd30e', - }, - { - topic: '%', - id: '841ff3b9a82a41b78ff884669b091ba8', - }, - ], - }, - { - topic: '自适应', - id: '3a8b7f0eda3acb895a21464a89376835', - children: [ - { - topic: '@media', - id: '34bacf7b89b3b38a904a210f904a85c3', - }, - { - topic: 'rem', - id: 'a18a86af33a57b198125acbcaa9b6e02', - }, - ], - }, - ], - }, - ], - }, - { - topic: 'JavaScript', - id: '99557e3b804ca1ec5f184e8ba13f2134', - children: [ - { - topic: '语法', - id: '9d9492cfa118aad0b086f925b591e565', - children: [ - { - topic: '值、变量', - id: 'b6fbf7a702394a59b23257fa5e69f6d6', - }, - { - topic: '数据类型', - id: '6c7867ace5b6415619790352987ef43b', - children: [ - { - topic: '基本类型', - id: 'b2dddd77d4a130ed46165e0281fff8a1', - }, - { - topic: '类型判断', - id: 'e180f01b186d26e6acd9f00ea39bfd81', - }, - { - topic: '类型转换', - id: '2f4f77b47893f477f46513ebe6bf39f0', - }, - ], - }, - { - topic: '流程控制', - id: '2b4e5a5192cb038082c89e6c87cf36c5', - }, - { - topic: '运算(表达式、运算符)', - id: '8c94d19915fe55e5ac9fe43470780974', - children: [ - { - topic: '数学', - id: 'f5d1082326f3c4f9b05188477b63d4b7', - }, - { - topic: '比较', - id: '20c521d6aaae55d571a869876fad041b', - }, - { - topic: '逻辑', - id: 'dc4a8011779f5708c172d42d43447abf', - }, - ], - }, - { - topic: '函数', - id: 'ae9581f1332c372db5fb37f83c70e95d', - children: [ - { - topic: '函数声明', - id: 'f9a1027b72d7c50daaa6cb666f6dfe8e', - }, - { - topic: '函数表达式', - id: '963a50442a603514111581d9dd2d9eb2', - }, - { - topic: '回调函数', - id: 'acc027399883761e276b6e0befbfda8d', - }, - { - topic: '箭头函数', - id: 'af9e8393844ae895aee9a31bcd863c87', - }, - ], - }, - ], - }, - { - topic: '数据类型深入', - id: '14a7654de6e2a9f58e20f7df18263c30', - children: [ - { - topic: '原始类型的方法', - id: 'ef562f2d5f09d1f873224732c7cb25bf', - }, - { - topic: '数字类型', - id: 'ac16fa44442bdc817ad99fa116c9fd99', - }, - { - topic: '字符串', - id: '46097f6242a03e3a38493aedba106ec2', - }, - { - topic: '数组', - id: '131d8286c9e4626c7564b81abcc6c3fb', - }, - { - topic: '数组方法', - id: '13a2985a38e9e16b23beeac6231b4043', - }, - { - topic: 'Iterable object(可迭代对象)', - id: '2b277a220f58fec704e69cddd4770a03', - }, - { - topic: 'Map and Set(映射和集合)', - id: '471dbf49c97f6a5d3ee5ce175487f15f', - }, - { - topic: 'WeakMap and WeakSet(弱映射和弱集合)', - id: '18b47319c37dee157fdd512be58632c5', - }, - { - topic: 'Object.keys,values,entries', - id: '9e1e9b0f2f3cffa33f0af9821035076d', - }, - { - topic: '解构赋值', - id: '1acf6f71562b8c7f916b19218bd53bb4', - }, - { - topic: '日期和时间', - id: '0a54024c5b25d44337ee936da303cf76', - }, - { - topic: 'JSON序列化、反序列化', - id: '6b469d7db067f6b8d7de2974dd34db87', - }, - ], - }, - { - topic: '对象', - id: 'eb21dd3b6e7024f41ab41cb7e438d513', - children: [ - { - topic: '属性/字面量', - id: 'aa25bee0e7804b3a64a3993d2a4ad641', - }, - { - topic: 'in、for…in', - id: '93558df1d5a4c9e0fd35603697ef6c8e', - }, - { - topic: '对象引用', - id: '768611c858dcb9acf444583504743862', - }, - { - topic: '深拷贝、浅拷贝', - id: 'db2f67e46dd08b79bb7298954c9ea735', - }, - { - topic: 'symbol', - id: 'c5fd1fbc454d7f98b40f89f27e376179', - }, - { - topic: '垃圾收集机制', - id: 'e555428d9ad5907ae5e606e0e586e929', - }, - { - topic: 'new', - id: 'e132ec0560e2e29149d3282f3a8ddace', - }, - { - topic: "Optional chainang '?.'", - id: 'dceee85ccb695c21abe70838b751310e', - }, - { - topic: '类型转换 Symbol.toPrimitive', - id: '5a20cedb58c5c05720305c8de129ff11', - }, - { - topic: 'Property flags、descriptors', - id: 'be6dd2a5a34c8274f5dab17a16d68e02', - }, - { - topic: 'getters、setters', - id: '58948107e951adc4bd193d312d05de3c', - }, - ], - }, - { - topic: '函数', - id: 'f5d245a990c6a95e1dac54cbac802252', - children: [ - { - topic: '调用栈', - id: '3f3611484a07c9ff93b7641d4e924755', - }, - { - topic: '递归、尾递归', - id: '593d5c64df0d49404c4975f975a3759e', - }, - { - topic: 'arguments、params spread', - id: 'd0d5dfdd07a5bf8d9033231fee874e0a', - }, - { - topic: '作用域、闭包', - id: '12a32a38ef411518163c7d068c2b5a79', - }, - { - topic: 'var、变量提升', - id: 'a10f2b814fc50661b933c2eaee5ec03a', - }, - { - topic: 'IIFE、匿名自执行函数', - id: '61144140504e5f2c9c9371a4617d0405', - }, - { - topic: 'NFE、函数命名表达式', - id: '0d99c8755f14d990a22e95b691bae6c6', - }, - { - topic: '箭头函数', - id: '2a060e2129ee0a48ced08ff406595b77', - }, - { - topic: 'new Function', - id: 'af5bac9a9c4bfbc1f8cda0208a00bf66', - }, - { - topic: 'setTimeout、setInterval', - id: '995d24f7421f9bfed77087906f63ea9b', - }, - { - topic: 'call、apply、bind', - id: '5cec2a7aaac28f03a0b99622592deecb', - }, - { - topic: '部分施用、柯里化', - id: '6727ab9aca260648d519617b63ec774e', - }, - ], - }, - { - topic: '原型', - id: 'a57c1ac925998d3a1709af867145f3ba', - children: [ - { - topic: '原型链、继承', - id: 'ff4a651f8082f8760c48fcf0ca195d07', - }, - { - topic: 'F.prototype', - id: 'ffd2544ac8383b5187a19c4a7bcb532b', - }, - { - topic: 'Object.prototype', - id: 'b298a6e7c0f6984bef37d42207c0569d', - }, - ], - }, - { - topic: '类', - id: 'b55ea652d3ac3f9b49b0376a0bf0c8a6', - children: [ - { - topic: 'extend继承', - id: 'eb437075af507cfd88efb88b65823750', - }, - { - topic: '方法重载', - id: '24c7bec35e06690fd645d865cf0789c1', - }, - { - topic: '构造函数', - id: 'e35b16c68b2ee8ee7de1f7abf9564949', - }, - { - topic: 'Super', - id: 'cdfe600b9871a95cdb6a44c8682f6421', - }, - { - topic: '静态属性、静态函数', - id: '2e2202de29086e6031afbb981e4a8bd6', - }, - { - topic: '私有属性、私有函数', - id: '41a5751a2dad06920f4059e27d528034', - }, - { - topic: '混合、Mixins', - id: '7a3f1a0bae895ab2ef916fcff9b3c06a', - }, - ], - }, - { - topic: '异步流程控制', - id: '9635b8e8b6839609350edc6fbfdf037a', - children: [ - { - topic: 'Callback', - id: 'a32aaf62e735e949d56be3a559c8efd1', - }, - { - topic: 'Promise', - id: '311117b9552bab053eabe8078420f18a', - children: [ - { - topic: 'Promises/A+、Promisification、Thenable', - id: '8dcdec27e7348ec2d1aeadea3348541d', - }, - ], - }, - { - topic: 'async/await', - id: 'f3fd49874948d4631999d4e8f3a01084', - }, - { - topic: 'generator', - id: '4614cd8e445a46065a461ee1a00a0f65', - }, - { - topic: 'iterable', - id: '6a6fe61d80a8a4d4eb54ad1737619d67', - }, - ], - }, - { - topic: '模块化', - id: '84c969871d91cd733be52d993a4ecfca', - children: [ - { - topic: 'commonJS', - id: '85d3564e62a319503fe0567a649a1a4f', - }, - { - topic: 'amd、cmd、umd、es-module', - id: '8d11665e6de762ad3ef9650cf7592a11', - }, - ], - }, - { - topic: '异常捕获', - id: 'faa8788b7212148c8a52e32fa054c1be', - children: [ - { - topic: 'try…catch…finally', - id: '5176c9d386faa08451a3576fa650270d', - }, - { - topic: 'throw', - id: 'c237269343481a4c94caa74add720831', - }, - { - topic: 'Error', - id: '8190a0e4f99d854dd9d8778524dd7603', - }, - ], - }, - ], - }, - { - topic: '浏览器', - id: '7f19816c5e19cf86230e5b226e5c9903', - children: [ - { - topic: 'DOM', - id: '50fb0ac8bda54a167800753e2c9ede64', - children: [ - { - topic: 'DOM Tree', - id: '8554e27faf9ff46f06a1c358efe13f65', - }, - { - topic: 'DOM Node', - id: 'b860f58b50b0d8ce79bbdf4d328d40f9', - }, - { - topic: 'DOM Query', - id: 'ad858b6e6e34ca35ff5e0ed3167a9a4c', - }, - { - topic: 'DOM Properties', - id: '69ef5006e88ceea8396a9ea48e8a8f60', - }, - { - topic: 'DOM Modify', - id: 'eaf5537bcd7527895cd2dce509dc3a1d', - }, - { - topic: 'Styles', - id: 'ed3af5bd2dbb9a8705cc4f0b9bc70c51', - }, - { - topic: 'Coordinates、Element Scrolling', - id: '9abcdab601b97f1b6cd5f192239f6fd2', - }, - { - topic: 'DOM Events', - id: '3fd53adf82a0249470adf92a98ccdc6c', - children: [ - { - topic: 'UI Event', - id: '3dce9de8b79aa24336dd78a1e8459548', - }, - { - topic: 'Bubbling and Capturing', - id: '2b91f8f03a56aeee4bf5f4edf00d2d74', - }, - { - topic: 'Event Delegate', - id: 'eff3c7a9e6b24b8c3ca9468134f6a257', - }, - ], - }, - ], - }, - { - topic: '浏览器API', - id: 'a83b86afddaf3acfab38b1b548a8b5b9', - children: [ - { - topic: 'location', - id: 'c85eb54b437e83bec467979ee254285f', - }, - { - topic: 'history', - id: '4aa1e2d8fb13191af97c498af5dc72dd', - }, - { - topic: 'navigator', - id: '040cb2a9a0f165a58808573deb18fadf', - }, - { - topic: 'Default Actions', - id: '76be27391d41ce7c92f4301a293ea8ae', - children: [ - { - topic: 'event.preventDefault()', - id: 'a38977899b13db542e83a3678540401a', - }, - ], - }, - { - topic: 'Form', - id: '057c635a775a8f3b788486ab26979648', - children: [ - { - topic: 'change', - id: '02f28f4e87a1c0f129383f7502caa6a9', - }, - { - topic: 'focus', - id: '33e83ab232b9c47a7a3fcfdb280ea46f', - }, - { - topic: 'blur', - id: '2f6cdbcb173c7ede90c779ef370b03d6', - }, - { - topic: 'submit', - id: '1e50adf7bd97e0fb66eaa37a4e9c8701', - }, - ], - }, - ], - }, - { - topic: '网络', - id: '647f828031265ccb7d014fb189e85fde', - children: [ - { - topic: 'XHR', - id: 'e964900fab3b3d5aece93934516f974b', - }, - { - topic: 'Fetch', - id: '702d3c50dd7025bb16de3415cccec6b2', - }, - { - topic: 'JSONP', - id: 'dbe3ef65f80d932f5a4fac86713a944d', - }, - { - topic: 'WebSocket', - id: '66255d2ff5cf5b3cfd59ca60b5c8a95e', - }, - ], - }, - { - topic: '权限', - id: '79ed95a09a79212c5fba03b90db5e4de', - children: [ - { - topic: 'Cookie', - id: 'f4a471b142737acd0c0d335273545790', - }, - { - topic: 'Session', - id: 'b09520ab4683e67812e674592fe7c8e8', - }, - { - topic: 'OAuth', - id: 'b29ac332a04e751f5f5e7016e4d6c760', - }, - { - topic: 'SSO', - id: '567b341317da97fd2f96e57fcf7ab629', - }, - { - topic: 'JWT', - id: '8915f30e8652f65e5641b10bdf732387', - }, - ], - }, - { - topic: '安全与隐私', - id: '0561a37ca4bdf90af1b4e28c4dab09fe', - children: [ - { - topic: 'Content Security Policy(CSP)', - id: '62dc832240ea38fd7e735df3d2b85ae5', - }, - { - topic: 'CORS', - id: '0c0edc5e50d855f59b93dcf43cdb454a', - }, - { - topic: 'XSS', - id: '41b3977744930437487a51af2e5d57cf', - }, - { - topic: 'CSRF', - id: '341d42efc06186f3e661061091b28753', - }, - { - topic: 'MITM', - id: '26d84d37dc2bd25609b84ecb774aae62', - }, - { - topic: 'Samesite', - id: '9568b3941ad9f1aafdb426555366c308', - }, - ], - }, - { - topic: '兼容性', - id: '5e75065d21cafeccc7d96250a9053f12', - children: [ - { - topic: 'Can I Use', - id: '31e989d52093100e430bd8a2021eb23c', - }, - { - topic: 'polyfill', - id: 'eed7069c257fbe0d2a1e66a867816471', - }, - { - topic: 'shim', - id: '838f4d98c56e6fb2f12ecef617968de3', - }, - { - topic: 'browserslist', - id: 'c603f00c20df4a146b2f1f283728d606', - }, - { - topic: 'Autoprefixer', - id: '72ba8a6ab9743df1afee275b45fcc3d7', - }, - ], - }, - { - topic: '开发者工具', - id: 'b57be7204ee4a49d9bb0ccce74b54cb4', - children: [ - { - topic: '设备模式', - id: '248d6c05787fca135ac5a0df01477678', - }, - { - topic: '元素面板', - id: '83621ba6019b0e4bb843f0b249406f4e', - }, - { - topic: '控制台面板', - id: '8416c48149eb927c996747695e425198', - }, - { - topic: '源代码面板', - id: '61eca01c459db4cc5bfc507e6431bd28', - }, - { - topic: '网络面板', - id: '3f27665f18496ab0ada8aaaa22a421c1', - }, - { - topic: '性能面板', - id: 'ad642f8dd2c8f57467a550c29564c239', - }, - { - topic: '内存面板', - id: 'db0ba2995224f12098fc8fa34cae79fa', - }, - { - topic: '应用面板', - id: '87ec9ef16c68e85ddec0cd2be2a581b3', - }, - { - topic: '安全面板', - id: 'ba5567a6f9296fe63c9554ab2f76dc3a', - }, - ], - }, - ], - }, - ], - }, - { - topic: '中阶', - id: '3dab1ad6cc0a304a63b2fd2e736d4861', - children: [ - { - topic: '研发链路(工程化基础)', - id: '2ae299b85b670554cfce102177e66498', - children: [ - { - topic: '脚手架(Scaffold)', - id: 'ae967d0b7db430d4f2500b1a45e5b810', - children: [ - { - topic: 'CLI(command-line interface)', - id: 'a4e1b207e07f3b92f797ff18b3514823', - children: [ - { - topic: 'commander', - id: '2b911b6446423721f1d2b1e634d544ad', - }, - { - topic: 'inquirer', - id: '7ff61b7d790f1d33d8d98f4d97a67d15', - }, - { - topic: 'ora', - id: 'f4f3d645ce19d43eb91a32d10a624953', - }, - { - topic: 'chalk', - id: '36049a32603132d40089215d070ff7c4', - }, - { - topic: 'emoji', - id: '2e1b20b69bc2f974b66ddc2eee58a929', - }, - ], - }, - { - topic: '初始化(Boilerplate)', - id: '784c8e54adf535d95078bfcf258e36db', - children: [ - { - topic: 'web-cli', - id: 'c10442e7e2be234a10d8e568c7ee5df2', - }, - ], - }, - ], - }, - { - topic: '包管理', - id: '9b42b61be6eff55092546bb67cf3730b', - children: [ - { - topic: 'ttnpm', - id: '360dc236fc03d03aa81988ba1caa79e2', - }, - { - topic: 'NPM', - id: '572a4d7d15073762aea72014040f777a', - }, - ], - }, - { - topic: '开发', - id: 'f9a0f97795a18ffced53f8c4694fcd63', - children: [ - { - topic: 'dev-server', - id: '10375b9ff9c08af47d4898a9509a8511', - }, - { - topic: 'hot-reload', - id: '8adaffd0b7d59d357149914760ccd73c', - }, - { - topic: 'mock', - id: '2b00b2e870d7163a91499a4b8e346eee', - }, - { - topic: 'proxy', - id: '95daf738dd16cc9d7739415f7dacfb3c', - }, - ], - }, - { - topic: '构建', - id: '519ce842acb7cd2cf5f605e6f9dfec2d', - children: [ - { - topic: '构建器', - id: 'a86498be1fbc7c4ab90869e34c0d4174', - children: [ - { - topic: 'webpack4、webpack5', - id: 'c547e824103e8843ddd95875f0d885af', - }, - ], - }, - { - topic: 'JS编译', - id: '3cc185a71adb3e24f16b916c74915c6e', - children: [ - { - topic: 'babel', - id: '50f530a5967f5d5c0edb5e5b57adc706', - }, - { - topic: 'esbuild', - id: '59cdf6329433e00ead52e2f69160391f', - }, - ], - }, - { - topic: 'CSS编译', - id: '2c093b47f06831df1ab239d840834ed7', - children: [ - { - topic: 'Less', - id: 'b0e1e4e7c28dc43587ab4ca06b1ab62a', - }, - ], - }, - ], - }, - { - topic: '代码规范', - id: '1bb398caadd2920445208550ebe590ba', - children: [ - { - topic: 'TT前端组-前端规范', - id: 'ae37e760a1e441a01cbedcb972ad9ee4', - }, - { - topic: '工具', - id: 'a9c319f5418cbfff14128d9423069254', - children: [ - { - topic: 'ESLint', - id: '339eb46d1e67634fb4b41867fb4225c4', - }, - { - topic: 'commitlint', - id: '428a9e031cb7ca5995bbd8b736de780d', - }, - { - topic: 'Prettier(代码格式化)', - id: '43ed1b59190fcc52b307d8a104bc3c57', - }, - { - topic: 'husky和lint-staged(流程控制)', - id: '7600d19bfc422beae7d446f53ded1607', - }, - { - topic: 'CI-ESLint', - id: '290c4d7379de26244c011c6b9c9992cc', - }, - ], - }, - { - topic: '开发分支规范', - id: '20147645846e4f6671ef6e3ae5637cf6', - }, - ], - }, - { - topic: '测试', - id: 'ffbc34ceb328a27c8c1153ca421edb5f', - children: [ - { - topic: '单元测试', - id: '1425b3f6e4cb79ff48106f8183c483fd', - children: [ - { - topic: 'jasmine', - id: '7a2d127bdf9d6cf6b71a0e839c6dd5ec', - }, - { - topic: 'mocha', - id: '58d289eaba7e388386d40de596897f80', - }, - { - topic: 'jest', - id: '892a99e973240c35b6f9a32584582a54', - }, - { - topic: 'enzyme', - id: 'c01406cb50c9d3ed1d6b0c74b3e8c9a9', - }, - ], - }, - { - topic: 'E2E测试', - id: 'd730ba6c2322e065813e814683a2c815', - children: [ - { - topic: 'Selenium', - id: '3015ac3d28939964079b23f46849356b', - }, - { - topic: 'karma', - id: '56d6e18fcc39af3f7b635385811615e3', - }, - { - topic: 'cypress', - id: '4b2543a176c33c16149b8b4937e12cd5', - }, - { - topic: 'Puppeteer', - id: '81514e7bcbd7a369c66f1a16abd1b2ca', - }, - { - topic: 'Appium', - id: '5d067c85e90064e84f3672135fb6a9f9', - }, - ], - }, - { - topic: '覆盖率测试', - id: '5cb2fd430495f8020f24b678a4a9b7b8', - children: [ - { - topic: 'istanbul', - id: '6797e27599396f0251e289c33249f2df', - }, - ], - }, - ], - }, - { - topic: 'CI/CD', - id: 'b191b7ea48234abb1a63b1f2779dcaa8', - children: [ - { - topic: 'gitlabCI', - id: '621ea561869a20cc81c14c14377b875b', - }, - ], - }, - ], - }, - { - topic: '库', - id: '1e82b5f5ab531e1073719e975f33429a', - children: [ - { - topic: '原则', - id: 'faaeffd9d67802fc22d9d1f81d1e01ad', - children: [ - { - topic: 'DRY', - id: '62f0d13aff117601c6ddc48b46181833', - }, - ], - }, - { - topic: 'CSS', - id: '177ed00834e2011f9c5c2b707506c323', - children: [ - { - topic: '作用域', - id: '99562e5cf75b554be4226c60a6f525e3', - children: [ - { - topic: 'scoped css', - id: '93b43cb55ff303fb3493825f104b006b', - }, - { - topic: 'css modules', - id: '478e64c435a812d0be70f100c74c86db', - }, - { - topic: 'css-in-js', - id: '5840ef7506ded776617110ff721b4ab9', - }, - ], - }, - { - topic: '样式库', - id: 'de12748b366de01957d4428f47b78c3b', - children: [ - { - topic: 'normalize.css', - id: '537244e9ac9cecb2bdf964fbe6e14e91', - }, - { - topic: 'Bootstrap', - id: 'fa8d61fb035c3e5bdfb93a9194456d92', - }, - { - topic: 'Tailwind', - id: '38c81c9026fe9b0d929e10e704d75e47', - }, - { - topic: 'Bulma', - id: '6ff2a187b2906ce4e3c0c0881460385e', - }, - ], - }, - ], - }, - { - topic: 'JS', - id: '9eb5f339684546659e43c37fa84b94d9', - children: [ - { - topic: '工具类', - id: 'a74d8d8ddef62914230d265f96551a5b', - children: [ - { - topic: 'history', - id: '29249c36dc58e342317b2f6cc851d8e6', - }, - { - topic: 'path-to-regexp', - id: 'acf5213db738b84f688f084894779fb3', - }, - { - topic: 'lodash', - id: 'f4a7852a40a2aff345e0790efc2c5319', - }, - { - topic: 'fastclick', - id: '85b17cf44c8916c2b796839e4caf2b22', - }, - { - topic: 'date-fns', - id: '9209eaab16f9544415c2d388b799b78d', - }, - ], - }, - { - topic: '网络', - id: '8bbf8c792114a9faf945646911d0267a', - children: [ - { - topic: 'axios', - id: '20c5fd823f78d651d612ed3c498e67f3', - }, - { - topic: 'got', - id: '040d53150f620e84f8998ebf86744a5a', - }, - ], - }, - { - topic: '数据流', - id: '9e4c9d13ada866de825693b2755033e3', - }, - { - topic: '模板引擎', - id: 'a37f5f767d7c9a6c0abfc62d7cb3eecc', - }, - ], - }, - { - topic: '动画', - id: '815e6e8a893a0d8fa8c1e980684c60b8', - children: [ - { - topic: 'CSS动画', - id: '0796d1461805d65c54dc7262670d746e', - }, - { - topic: 'JS动画', - id: 'e35945635420a2017514d831ca5a0f70', - }, - { - topic: 'Lottie', - id: '1a69ba89ba00d653afd8a583cb69df3d', - }, - ], - }, - { - topic: '设计规范/组件', - id: '89cf39097e4964081615e4b07793108c', - children: [ - { - topic: 'Material Design', - id: '0ae21932ffcb23a5277521e3ef4e7711', - }, - { - topic: 'Apple Human Interface Guidelines', - id: 'ace744986fbb79d24c9bc8ba40355609', - }, - { - topic: 'Ant Design', - id: '75a835435d3bdb49abb9df7f4667366e', - }, - { - topic: 'WeUI', - id: 'cb28b53ac9d0eda9dc3bd2eecbabea08', - }, - ], - }, - { - topic: '文档', - id: '5c9dd0f1a7745281547d3d048742a870', - children: [ - { - topic: 'jsdoc', - id: '1e7e0c6315c4691db24d7fad108fd479', - }, - { - topic: 'bisheng', - id: '4b17d1b2c39cfec00d6a865035b90d65', - }, - { - topic: 'dumi', - id: '0bb6376505ec4e878e34bcee5cad9ff4', - }, - { - topic: 'Storybook', - id: 'd1be68dcb7cf7ac978dc9d0f73664d40', - }, - ], - }, - ], - }, - { - topic: '框架', - id: 'fedfca839fe630f15e208234fbb4efd1', - children: [ - { - topic: 'Vue2', - id: 'dcd03a8e504486de38e05eefeaf80015', - }, - ], - }, - { - topic: '性能优化', - id: '51ca35304e8d0cc20349cf95fdd00578', - children: [ - { - topic: '指标', - id: '0b0487fa55b13f889ec82c6d9a6949ff', - children: [ - { - topic: '真实指标', - id: '2a27f76a97e70cce8a2276ee5dba4bd2', - children: [ - { - topic: 'First Contentful Paint (FCP)', - id: '9b6f6151a03868ab7fea73afe4fd2d3b', - }, - { - topic: 'Largest Contentful Paint (LCP)', - id: '0732c25579333b74b1adac9caa0acb3f', - }, - { - topic: 'First Input Delay (FID)', - id: 'f4c8e18b9bed53370ca4c53d85de8b20', - }, - { - topic: 'Cumulative Layout Shift (CLS)', - id: '10ffd1bc12012bb0dc5963fdd2b4cee9', - }, - ], - }, - { - topic: '实验室指标', - id: '6daf73b6ab9b9dbf157b4a77fa4ca701', - children: [ - { - topic: 'Total Blocking Time (TBT)', - id: '811cd2448dd68094a115e2b73f75600e', - }, - { - topic: 'Time to Interactive (TTI)', - id: '1eb9219a52a81a9ed483b33d6e655801', - }, - ], - }, - ], - }, - { - topic: '评估工具', - id: '2c33f9fd71e7a7679ebfbad2baef23db', - children: [ - { - topic: 'Chrome DevTools', - id: '45f118578ce1cf703cfa1fe77ef411d4', - }, - { - topic: 'LightHouse', - id: '82f10acd96224e425778339de88b5933', - }, - { - topic: 'PageSpeed Insights', - id: '053826ca4ed651379f3d41540fe9e165', - }, - { - topic: 'WebPageTest', - id: 'e3157f88f1de5957d5b02295209e452c', - }, - ], - }, - { - topic: '优化方案', - id: 'a5080132452fa769fc21812a28894407', - children: [ - { - topic: '压缩', - id: '29ab185cc63d297acd830021be38ef54', - children: [ - { - topic: '代码压缩', - id: 'a7020c0259a0029dc333b7e1f50f7804', - }, - { - topic: '文本压缩(gzip、Brotli、Zopfli等)', - id: 'fa82f5357a83b265da79d0036a6dfe08', - }, - { - topic: 'Tree-shaking', - id: 'bb5511548ff87c19eb13b2515cacdc4c', - }, - { - topic: 'Code-splitting', - id: '7e2482c5f9a0bbf3268fe50ce1113a13', - }, - ], - }, - { - topic: '图片优化', - id: '95313d4d58011c7ae746bd65ee76b85c', - children: [ - { - topic: '小图优化(css sprite、iconfont、dataURI、svg)', - id: '084d8b04cec493c748de7a31453e1162', - }, - { - topic: '图片格式选择', - id: 'ffbe4b15921508d7cd048605dcf0f094', - }, - { - topic: '压缩(如tinypng)', - id: '794306da6f9761f10cb84adf4a9fc262', - }, - { - topic: '响应式', - id: '6488f4a87096005deac5c73c74f65c56', - }, - ], - }, - { - topic: '加载策略', - id: 'ee3bf09993748edb68b09318558e57cc', - children: [ - { - topic: '懒加载', - id: '21f0a42128f0feba272accedec8afc40', - }, - { - topic: 'DNS预解析、预加载、预渲染', - id: '96adfb2a34ee1eb1a1d24f3cc56e5451', - }, - { - topic: '离线化(ServiceWorker、AppCache、离线包等)', - id: '2da2cd04f2f347bf6c6894faba1f53ea', - }, - { - topic: 'HTTP缓存', - id: '4744297336c2984ab847a4b1b9e95770', - }, - { - topic: '数据缓存(localStorage、sessionStorage)', - id: '4ca3771548ba02ced11b41fc95403236', - }, - { - topic: '资源加载(顺序、位置、异步等)', - id: '503cafbf035aea23fce763bf14efcbc6', - }, - { - topic: '请求合并', - id: 'caadd3076a0b5a61543329c963e45a93', - }, - { - topic: 'HTTP2', - id: '0075b823d291aed1438e4cd050a7d2dc', - }, - { - topic: 'CDN', - id: 'f624f142e817c764306aa95aed7271f0', - }, - { - topic: '服务端渲染', - id: 'e324249eef67a08b1796e53a0cbb09d1', - }, - ], - }, - { - topic: '执行渲染', - id: 'b75fc104a026f22f7d72d9e9c9cf37d7', - children: [ - { - topic: 'CSS代码优化(选择器、启用GPU、避免表达式等)', - id: '4fd87681f0a8457a8fb6dfe054ae1742', - }, - { - topic: 'JS代码优化及评估', - id: 'fcf23b177efe6d89cff34038938865ec', - }, - ], - }, - { - topic: '感官体验优化', - id: 'cabef7a1790745be388bb65731fde91d', - children: [ - { - topic: '骨架屏', - id: '73ee0a67aff6ef6f4b24c5b5b93e25b1', - }, - { - topic: 'Snapshot', - id: '008054d0d8cf52009d1bb5056f86d330', - }, - { - topic: 'Loading', - id: 'cdb6a058e9f136a47dc7d83be4a6364d', - }, - ], - }, - ], - }, - ], - }, - { - topic: '工作原理', - id: 'ad56aaeccc79d3fe46143fd8c3465a7d', - children: [ - { - topic: '浏览器', - id: '365c48febbd3ae0aaeeac97365ab27b0', - children: [ - { - topic: 'DOM Tree、CSSOM', - id: 'b8c63ab9f1d34f3b6d1c2b64e204889e', - }, - { - topic: '渲染、绘制', - id: '0fea40acc0c8f55cbef6a7d7970132d1', - }, - { - topic: '会话', - id: '0590d71564588164d9306483f987e452', - }, - { - topic: '事件循环', - id: '681a3c21166d96ee3e8dd8fc4350360d', - }, - { - topic: '垃圾回收', - id: '1ba061f8fd7a89280cdd6753e6891164', - }, - { - topic: 'Webkit深入', - id: 'c37283e0af6974be953858937e218ba3', - }, - ], - }, - { - topic: 'JavaScript引擎', - id: 'aa74256a4aec487dcfe538f3bbb5239d', - children: [ - { - topic: 'V8', - id: '674e91625a1d029024dacdc672a52877', - }, - { - topic: 'SpiderMonkey', - id: 'da40ba12af5405b19ccd745a1f5bf527', - }, - { - topic: 'JavaScriptCore', - id: 'a37ba000ef7fe729c38ae4914ebefe59', - }, - ], - }, - ], - }, - { - topic: '综合能力', - id: '0f703794664149ee6926c0b18423a219', - children: [ - { - topic: '知识管理', - id: '9ce178358ae5a94454723ac547b9237a', - children: [ - { - topic: 'Markdown', - id: 'f6ad905c127f0efecd2cf1892cd5fa57', - }, - { - topic: '脑图', - id: '2fc4fb72eaebe23e27ab1212e0bead26', - }, - { - topic: 'wiki', - id: '893d4cf7f49ee7e81e9e39b804277b27', - }, - { - topic: 'GitBook', - id: '43dd4578d4201ae1154cc8aa11bc2762', - }, - ], - }, - { - topic: '软件工程', - id: '56935896bf29a34f2f1cd9cca32493fb', - children: [ - { - topic: '过程模型', - id: '78f9a3cad498a4fedd4df213a724dc75', - }, - { - topic: '需求分析', - id: 'ab6fedc0cae7fc302b5580510eb01cee', - }, - { - topic: '功能拆解', - id: 'dc99b5db199760b90fb5aa6cc9719db5', - }, - { - topic: '概念设计', - id: 'd28e544a006c44f51cf6ccd386cb7ed4', - }, - { - topic: '体系结构设计', - id: '691fc73598cf0aa2577de1a6570b9109', - }, - { - topic: '项目管理', - id: '37e7405289a8db9200d849d71f8c7cfa', - }, - ], - }, - { - topic: '交互设计', - id: '6de8ad4326ed1cfdd93de62aed9a7566', - children: [ - { - topic: '交互原型', - id: '02e0790d3269fbf4db0a8889cbb9d400', - }, - { - topic: '视觉还原', - id: '899c98c045bb6308394e17db614d93a9', - }, - ], - }, - { - topic: '开源项目', - id: '6853b82065bf562d614e907465fbc774', - children: [ - { - topic: 'GitHub', - id: '38f8580f5a829dbf3ee4309536555201', - }, - { - topic: 'OpenJS', - id: '42c78c964ad07fa3e0419442fcedd572', - }, - { - topic: 'Apache', - id: 'a2b1bef6566c6730fa5c07b8b51553ff', - }, - ], - }, - ], - }, - ], - }, - { - topic: '高阶', - id: '6527c324e340362ad18e4104676f6199', - children: [ - { - topic: '跨端技术', - id: '3549da5e57adb71515c7c38327f8a7db', - children: [ - { - topic: '跨端解决方案', - id: '81dab7d787faf1351e584bf77ab24f00', - children: [ - { - topic: '跨平台', - id: 'e2abeed2788cfbc980a8864b93f66841', - children: [ - { - topic: 'Web', - id: 'a5b15aa73142d70481d76ae53d755feb', - }, - { - topic: 'Electron', - id: 'e9e4b52c3f602751935b127955a8a7ab', - }, - ], - }, - ], - }, - { - topic: '跨端API', - id: '24c470a6493ad8f518b3776cdb7bf7ce', - children: [ - { - topic: '桥接与通信', - id: '0e3290a8c2ac52d822392cbf64611686', - children: [ - { - topic: 'JSBridge', - id: 'cd40ae824180818229d9e82b392de19a', - }, - ], - }, - ], - }, - { - topic: '跨端组件', - id: '13596ca21b764ee0e8a5599c25d487f5', - children: [ - { - topic: '跨容器(H5/小程序)', - id: 'c03dfe8d5e863a44e7b41268caf16b77', - }, - { - topic: '跨平台(PC/移动)', - id: '83a29ee9001712927d64b64f84274443', - }, - { - topic: '视觉交互', - id: '6e0d506f9f54711bb93010c14c42f11a', - children: [ - { - topic: '自适应', - id: '7c5a93d376ef9a21629fa63a3a5b2a49', - }, - { - topic: '平台特性', - id: 'd24d1e3dc997faea79c0f1a6d9c6bccb', - }, - ], - }, - { - topic: '标准与规范', - id: 'c11d704799c96d5e59e9c3229f492ddd', - children: [ - { - topic: '脚手架', - id: '0f689aed294224b4f68ff74848720ab0', - }, - { - topic: '文件结构', - id: '54c6565ba12d98aa163eb238d7a89422', - }, - { - topic: '属性与API', - id: 'db78621bc0d94608faaa29a93e0cd220', - }, - { - topic: '发布于引用', - id: '2c201e010f8852ed4591fa6922365f36', - }, - ], - }, - ], - }, - { - topic: '跨端搭建', - id: '36690d347154cd0840879d1280d52628', - children: [ - { - topic: '一码多搭', - id: 'fc690f5154bfba078064192b00f3dcfc', - children: [ - { - topic: 'web', - id: 'ca789e447d0328fd3ac69b95272e496d', - }, - { - topic: '小程序', - id: '6b01e6b617f91afe33c8e33f8a39554c', - }, - { - topic: 'Native', - id: 'd93b9e06fee8d48643d462c5a338601c', - }, - ], - }, - { - topic: '统一发布', - id: '0d30c0f2656b5cec10aeafe6c2cf0601', - }, - ], - }, - ], - }, - { - topic: 'Node.js', - id: 'c2261c54738566922c813975db535159', - children: [ - { - topic: '分布式服务', - id: '2c2c878fd1e253e307e4162ba7b9616b', - children: [ - { - topic: 'rpc', - id: 'eccfe890dc85a9ad83e941606f0ef873', - children: [ - { - topic: 'grpc', - id: 'd8cdcbb0cfe15cbfb1f35a4bf13b66ae', - }, - ], - }, - ], - }, - { - topic: '常用API', - id: 'b1350d56ba4e76e0ca1936f7367d5660', - }, - ], - }, - { - topic: '多媒体', - id: '839ee6335a18164b309d3d5e7d93adae', - children: [ - { - topic: '音视频基础', - id: '4076b24b33ff293d8a0855ed5047a609', - children: [ - { - topic: '基础概念', - id: '8c9ad408d51007d63deaaf9c987ab36a', - }, - { - topic: '容器格式', - id: 'bb6bee0681624319c07aced9f7e00c82', - }, - { - topic: '编码格式', - id: '915f0871f5eb321622b15754ecddaaba', - }, - ], - }, - { - topic: '直播技术', - id: '10d82739b3b32cf0e425ede164967be5', - children: [ - { - topic: '推流', - id: '47cb6fb60a92923b7c77f1c9e98c89b9', - }, - { - topic: '流媒体协议', - id: '20cedcae59f41321d933c1dc545e71e6', - }, - { - topic: '流媒体服务', - id: '75991e70828d220b0420629f53cbcbd1', - }, - ], - }, - { - topic: '播放器技术', - id: '1a61194a3cb1fa3ce5e60d4ecaa22ca9', - children: [ - { - topic: '拉流', - id: 'ecfe1785fae0bcbcc71c62fa87605cb2', - }, - { - topic: '解码', - id: '1ca0119a12f15e7859e12f3cb5832b9a', - }, - { - topic: '渲染', - id: 'fc644eabfab13c4e6aaaf20d369b81e4', - }, - ], - }, - { - topic: 'web媒体技术', - id: '976838b00e93bccb24620cb6465a1f2f', - children: [ - { - topic: '流操作基础', - id: '522221bc1e20c1baf233a0430aad39da', - }, - { - topic: 'webRTC', - id: '89d488a88be4e55bcc2d398e25ea386d', - }, - ], - }, - { - topic: '开源产品和框架', - id: 'f4ddb04d444c13d2eae67a9877650954', - children: [ - { - topic: 'FFmpeg', - id: 'ab832d8f16548a33c90e35927fb1db62', - }, - { - topic: 'video.js', - id: '7c98ff619e7d92486d4a032a61e443b9', - }, - { - topic: 'OBS', - id: '752aca34a3c3e0b483dae0780e568ee4', - }, - ], - }, - ], - }, - { - topic: '互动技术', - id: '32b1123a7edc479f057186cca17b435d', - children: [ - { - topic: '基础知识', - id: '86e9651fc995018f78664a6b235029b1', - children: [ - { - topic: '图形学', - id: '7b4dfa79449abc1e72eadec495c3e7f1', - }, - { - topic: '数学', - id: '1de64d571ac18c822729f321fd813bd0', - }, - { - topic: '物理学', - id: 'c1d07d6b320e8d74ed18c6efe00b8832', - }, - ], - }, - { - topic: '技术标准', - id: '021a216bab28643c7ae3eb66fdedb3ce', - children: [ - { - topic: 'canvas', - id: '9ed359eecfce8d886dd0ddd49ef129ad', - }, - { - topic: 'svg', - id: '92c9518bc8baae37b8cb36a9e0908bcf', - }, - { - topic: 'css', - id: '21c116e1e4ec16df225de7fc1e133934', - }, - { - topic: 'webGL', - id: '5ccc3acc657a3151462a543528110d89', - }, - { - topic: 'webGPU', - id: '533ee82fe926eb8b370c5290be58c206', - }, - { - topic: 'webAssembly', - id: '7ddb090acb799793423641b7a1f54feb', - }, - ], - }, - ], - }, - { - topic: '智能化', - id: '02440f45cc67563592131daf8d74f0f9', - children: [ - { - topic: '低代码/无代码', - id: 'a27b2dec76370106ba5a5ddce1962118', - }, - ], - }, - ], - }, - ], - }, - { - topic: '通用能力', - id: '343e0f14c8ee44637cd86cde48d25e05', - children: [ - { - topic: '项目管理', - id: 'e5e9de48e2f902435bada49db9d24741', - children: [ - { - topic: '项目范围说明', - id: 'd372b41bcb8d4138a9a23c1d0b62628f', - children: [ - { - topic: '目标', - id: '430853ecd916c0b87568da04ab2af99a', - }, - { - topic: '主要范围', - id: '5cb19cfc83498f4280c1ba4101bf7cec', - }, - { - topic: '灵活性矩阵', - id: '19001933fb274382c9361c86b1c2354c', - }, - { - topic: '风险范围及应对', - id: 'f1d68ac1080bbb9735eb494914937525', - }, - { - topic: '核心成员', - id: 'd8e71b52e857aa891cf89db2f47af471', - }, - { - topic: '里程碑、交付物、时间节点', - id: '06f2484f01377b17b9b218163f9f7184', - }, - { - topic: '交付检查及复盘', - id: 'fc898637e0b84235ef2946684847694e', - }, - ], - }, - { - topic: '关键能力', - id: 'aa495048cd155b233f74f7ab3a1c2c56', - children: [ - { - topic: '在他人指导下进行计划跟踪和监控', - id: '520bacbda2c4f1e229ab0bcf3755a2bd', - }, - { - topic: '组织实施小型项目', - id: 'c63dd05343f3982b57688e1a6ef2c36c', - }, - { - topic: '独立负责中型项目的实施和运作,预见部分潜在问题', - id: 'ac2db536111b625871f508996b8ec74b', - }, - { - topic: '独立负责中大型项目,充分预见潜在问题', - id: '5aa50996e821a5897042a228d285a1fe', - }, - { - topic: '独立负责过多个中大项目的实施和运作,进行风险控制', - id: '80c8aa9b0f417efac7caa6113311550d', - }, - ], - }, - { - topic: '管理者', - id: '91262d97aa6873bae0baa6b730d90d5c', - children: [ - { - topic: '时间观', - id: '7471702dfa2da8656fd542674746f46b', - }, - { - topic: '人际能力', - id: '2129aab6ba98832fa6c2e9bd7ac46b44', - }, - { - topic: '灵活性', - id: 'd76b430dab23c397d1d95b5431273359', - }, - ], - }, - ], - }, - { - topic: '沟通协作能力', - id: 'bf11d24c53f642429e1dc6b61105f130', - children: [ - { - topic: '清晰表述,参与交流', - id: '61e03b790366d19805da16dac5f5a657', - }, - { - topic: '简练表达,达成共识,赢得合作、沟通反馈', - id: '320012f3c84a1fe4bc31d034a57a5456', - }, - { - topic: '换位思考,跨业务线沟通', - id: 'aa89fd4a320a02c8f816bcfca65d7f39', - }, - { - topic: '解决分歧,获取资源,跨越合作', - id: '2374ce1512bbcbe30519e9c37fc2d610', - }, - { - topic: '提升团队沟通能力,重大问题有效沟通', - id: '57334267eaa0d11b5d6c6c49444b467f', - }, - ], - }, - { - topic: '解决问题能力', - id: '293ebf83c2c57a09ff98a4dd3127c5f5', - children: [ - { - topic: '发现问题,避免重复犯同样错误', - id: '7a6181347559ac9bb354c705636a3ccb', - }, - { - topic: '发现核心问题,协助解决问题', - id: 'b50d03cf086e1a35d7bc3ac853d81ab7', - }, - { - topic: '独立解决问题,提供解决方案', - id: '4e0db9aa9caca411f3d1e338f1c3a33d', - }, - { - topic: '拆解复杂问题,理清因果逻辑', - id: 'dd6ce6a6d695075e89ce5c43cc54577f', - }, - { - topic: '多维度思考,规避潜在风险', - id: '91087753f66e557a32d2c3349997a2f9', - }, - ], - }, - { - topic: '学习与发展能力', - id: '61248e9229d37600ae2a4efabc723497', - children: [ - { - topic: '在他人指导下学习', - id: 'de50dab04874e5da2ed9e9157c15ab5a', - }, - { - topic: '主动寻找学习机会,注意学以致用', - id: '40f9f1b3c84c8624c6f11961e6a7614a', - }, - { - topic: '高效学习技巧,乐于分享辅导', - id: '4669d40e60a880c74833238f092907e2', - }, - { - topic: '了解前沿技术,沉淀知识体系', - id: '6307dfc630e00f2abd46e5095c764c9a', - }, - { - topic: '营造学习氛围,培养接班人', - id: '54db81bab8959d9634f37a37ab5a3eb3', - }, - ], - }, - { - topic: '业务导向', - id: '2c7d19a08a59693576d4d013b490a712', - children: [ - { - topic: '清楚岗位角色、了解业务流程', - id: 'fd53f7ae68fc287389820bc3a60c2f38', - }, - { - topic: '熟悉业务逻辑,识别核心关键', - id: '718c1f3d937e07f27b5869a48b181272', - }, - { - topic: '熟悉商业模式,推动业务发展', - id: '4a4c55c9897a6f00aaed11741d4a41e1', - }, - { - topic: '了解行业趋势,未来发展建议', - id: '71eecdc4bd46e4d7eb03550f2627d847', - }, - ], - }, - ], - }, - ], - }, -} - -export default frontEndSkill diff --git a/mind-elixir-core-master/src/exampleData/htmlText.ts b/mind-elixir-core-master/src/exampleData/htmlText.ts deleted file mode 100644 index 83994b4..0000000 --- a/mind-elixir-core-master/src/exampleData/htmlText.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const katexHTML = `
    ` - -export const codeBlock = `
    let message = 'Hello world'
    -alert(message)
    ` - -export const styledDiv = `
    Title
    Hello world
    ` diff --git a/mind-elixir-core-master/src/i18n.ts b/mind-elixir-core-master/src/i18n.ts deleted file mode 100644 index 02b1217..0000000 --- a/mind-elixir-core-master/src/i18n.ts +++ /dev/null @@ -1,165 +0,0 @@ -type LangPack = { - addChild: string - addParent: string - addSibling: string - removeNode: string - focus: string - cancelFocus: string - moveUp: string - moveDown: string - link: string - linkBidirectional: string - clickTips: string - summary: string -} - -/** - * @public - */ -export type Locale = 'cn' | 'zh_CN' | 'zh_TW' | 'en' | 'ru' | 'ja' | 'pt' | 'it' | 'es' | 'fr' | 'ko' -const cn = { - addChild: '插入子节点', - addParent: '插入父节点', - addSibling: '插入同级节点', - removeNode: '删除节点', - focus: '专注', - cancelFocus: '取消专注', - moveUp: '上移', - moveDown: '下移', - link: '连接', - linkBidirectional: '双向连接', - clickTips: '请点击目标节点', - summary: '摘要', -} -const i18n: Record = { - cn, - zh_CN: cn, - zh_TW: { - addChild: '插入子節點', - addParent: '插入父節點', - addSibling: '插入同級節點', - removeNode: '刪除節點', - focus: '專注', - cancelFocus: '取消專注', - moveUp: '上移', - moveDown: '下移', - link: '連接', - linkBidirectional: '雙向連接', - clickTips: '請點擊目標節點', - summary: '摘要', - }, - en: { - addChild: 'Add child', - addParent: 'Add parent', - addSibling: 'Add sibling', - removeNode: 'Remove node', - focus: 'Focus Mode', - cancelFocus: 'Cancel Focus Mode', - moveUp: 'Move up', - moveDown: 'Move down', - link: 'Link', - linkBidirectional: 'Bidirectional Link', - clickTips: 'Please click the target node', - summary: 'Summary', - }, - ru: { - addChild: 'Добавить дочерний элемент', - addParent: 'Добавить родительский элемент', - addSibling: 'Добавить на этом уровне', - removeNode: 'Удалить узел', - focus: 'Режим фокусировки', - cancelFocus: 'Отменить режим фокусировки', - moveUp: 'Поднять выше', - moveDown: 'Опустить ниже', - link: 'Ссылка', - linkBidirectional: 'Двунаправленная ссылка', - clickTips: 'Пожалуйста, нажмите на целевой узел', - summary: 'Описание', - }, - ja: { - addChild: '子ノードを追加する', - addParent: '親ノードを追加します', - addSibling: '兄弟ノードを追加する', - removeNode: 'ノードを削除', - focus: '集中', - cancelFocus: '集中解除', - moveUp: '上へ移動', - moveDown: '下へ移動', - link: 'コネクト', - linkBidirectional: '双方向リンク', - clickTips: 'ターゲットノードをクリックしてください', - summary: '概要', - }, - pt: { - addChild: 'Adicionar item filho', - addParent: 'Adicionar item pai', - addSibling: 'Adicionar item irmao', - removeNode: 'Remover item', - focus: 'Modo Foco', - cancelFocus: 'Cancelar Modo Foco', - moveUp: 'Mover para cima', - moveDown: 'Mover para baixo', - link: 'Link', - linkBidirectional: 'Link bidirecional', - clickTips: 'Favor clicar no item alvo', - summary: 'Resumo', - }, - it: { - addChild: 'Aggiungi figlio', - addParent: 'Aggiungi genitore', - addSibling: 'Aggiungi fratello', - removeNode: 'Rimuovi nodo', - focus: 'Modalità Focus', - cancelFocus: 'Annulla Modalità Focus', - moveUp: 'Sposta su', - moveDown: 'Sposta giù', - link: 'Collega', - linkBidirectional: 'Collegamento bidirezionale', - clickTips: 'Si prega di fare clic sul nodo di destinazione', - summary: 'Unisci nodi', - }, - es: { - addChild: 'Agregar hijo', - addParent: 'Agregar padre', - addSibling: 'Agregar hermano', - removeNode: 'Eliminar nodo', - focus: 'Modo Enfoque', - cancelFocus: 'Cancelar Modo Enfoque', - moveUp: 'Mover hacia arriba', - moveDown: 'Mover hacia abajo', - link: 'Enlace', - linkBidirectional: 'Enlace bidireccional', - clickTips: 'Por favor haga clic en el nodo de destino', - summary: 'Resumen', - }, - fr: { - addChild: 'Ajout enfant', - addParent: 'Ajout parent', - addSibling: 'Ajout voisin', - removeNode: 'Supprimer', - focus: 'Cibler', - cancelFocus: 'Retour', - moveUp: 'Monter', - moveDown: 'Descendre', - link: 'Lier', - linkBidirectional: 'Lien bidirectionnel', - clickTips: 'Cliquer sur le noeud cible', - summary: 'Annoter', - }, - ko: { - addChild: '자식 추가', - addParent: '부모 추가', - addSibling: '형제 추가', - removeNode: '노드 삭제', - focus: '포커스 모드', - cancelFocus: '포커스 모드 취소', - moveUp: '위로 이동', - moveDown: '아래로 이동', - link: '연결', - linkBidirectional: '양방향 연결', - clickTips: '대상 노드를 클릭하십시오', - summary: '요약', - }, -} - -export default i18n diff --git a/mind-elixir-core-master/src/icons/add-circle.svg b/mind-elixir-core-master/src/icons/add-circle.svg deleted file mode 100644 index 245d5d9..0000000 --- a/mind-elixir-core-master/src/icons/add-circle.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/full.svg b/mind-elixir-core-master/src/icons/full.svg deleted file mode 100644 index dd44575..0000000 --- a/mind-elixir-core-master/src/icons/full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/left.svg b/mind-elixir-core-master/src/icons/left.svg deleted file mode 100644 index 4938eb0..0000000 --- a/mind-elixir-core-master/src/icons/left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/living.svg b/mind-elixir-core-master/src/icons/living.svg deleted file mode 100644 index 93e4632..0000000 --- a/mind-elixir-core-master/src/icons/living.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/minus-circle.svg b/mind-elixir-core-master/src/icons/minus-circle.svg deleted file mode 100644 index 2152dfa..0000000 --- a/mind-elixir-core-master/src/icons/minus-circle.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/right.svg b/mind-elixir-core-master/src/icons/right.svg deleted file mode 100644 index 218f094..0000000 --- a/mind-elixir-core-master/src/icons/right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/side.svg b/mind-elixir-core-master/src/icons/side.svg deleted file mode 100644 index 8c74372..0000000 --- a/mind-elixir-core-master/src/icons/side.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/zoomin.svg b/mind-elixir-core-master/src/icons/zoomin.svg deleted file mode 100644 index 754d294..0000000 --- a/mind-elixir-core-master/src/icons/zoomin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/icons/zoomout.svg b/mind-elixir-core-master/src/icons/zoomout.svg deleted file mode 100644 index 07f9e5e..0000000 --- a/mind-elixir-core-master/src/icons/zoomout.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/mind-elixir-core-master/src/index.less b/mind-elixir-core-master/src/index.less deleted file mode 100644 index 4243e26..0000000 --- a/mind-elixir-core-master/src/index.less +++ /dev/null @@ -1,374 +0,0 @@ -.map-container { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, - WenQuanYi Micro Hei, sans-serif; - user-select: none; - height: 100%; - width: 100%; - overflow: hidden; // prevent browser scroll container while dragging - font-size: 15px; - outline: none; // prevent browser default focus outline - touch-action: none; // use pointer events instead of touch events - * { - box-sizing: border-box; // must have, to make getComputedStyle work right - } - &::-webkit-scrollbar { - width: 0px; - height: 0px; - } - .selected { - outline: 2px solid var(--selected); - outline-offset: 1px; - } - .hyper-link { - text-decoration: none; - margin-left: 0.3em; - } - me-main > me-wrapper > me-parent > me-epd { - top: 50%; - transform: translateY(-50%); - } - me-epd { - top: 100%; - transform: translateY(-50%); - } - .lhs { - direction: rtl; - & > me-wrapper > me-parent > me-epd { - left: -10px; - } - me-epd { - left: 5px; - } - me-tpc { - direction: ltr; - } - } - .rhs { - & > me-wrapper > me-parent > me-epd { - right: -10px; - } - me-epd { - right: 5px; - } - } - background-color: var(--bgcolor); - .map-canvas { - position: relative; - user-select: none; - width: fit-content; // 100% width if not set - transform: scale(1); - me-nodes { - position: relative; - display: flex; - justify-content: center; - align-items: center; - height: max-content; - width: max-content; - padding: var(--map-padding); - } - } - me-main { - // primary node / main node - & > me-wrapper { - position: relative; // make subline svg's offsetParent be the main node - margin: var(--main-gap-y) var(--main-gap-x); - & > me-parent { - margin: 10px; - padding: 0; - & > me-tpc { - border-radius: var(--main-radius); - background-color: var(--main-bgcolor); - border: 2px solid var(--main-color); - color: var(--main-color); - padding: 8px 25px; - } - } - } - } - me-wrapper { - display: block; - pointer-events: none; - width: fit-content; - // position: relative; - } - me-children, - me-parent { - display: inline-block; - vertical-align: middle; - } - me-root { - position: relative; - margin: 45px 0; - z-index: 10; - me-tpc { - font-size: 25px; - color: var(--root-color); - padding: 10px 30px; - border-radius: var(--root-radius); - border: var(--root-border-color) 2px solid; - background-color: var(--root-bgcolor); - } - } - me-parent { - position: relative; // for locating expand button - cursor: pointer; - padding: 6px var(--node-gap-x); - margin-top: var(--node-gap-y); - z-index: 10; - me-tpc { - position: relative; - border-radius: 3px; - color: var(--color); - padding: var(--topic-padding); - - // drag preview - .insert-preview { - position: absolute; - width: 100%; - left: 0px; - z-index: 9; - } - .show { - background: #7ad5ff; - pointer-events: none; - opacity: 0.7; - border-radius: 3px; - } - .before { - height: 14px; - top: -14px; - } - .in { - height: 100%; - top: 0px; - } - .after { - height: 14px; - bottom: -14px; - } - } - me-epd { - position: absolute; - height: 18px; - width: 18px; - opacity: 0.8; - background-image: url('./icons/add-circle.svg'); - background-repeat: no-repeat; - background-size: contain; - background-position: center; - - pointer-events: all; - z-index: 9; - &.minus { - background-image: url('./icons/minus-circle.svg') !important; - transition: opacity 0.3s; - opacity: 0; - @media (hover: hover) { - &:hover { - opacity: 0.8; - } - } - @media (hover: none) { - & { - opacity: 0.8; - } - } - } - } - } - - // iconfont - .icon { - width: 1em; - height: 1em; - vertical-align: -0.15em; - fill: currentColor; - overflow: hidden; - } - .lines, - .summary, - .subLines, - .topiclinks, - .linkcontroller { - position: absolute; - height: 102%; - width: 100%; - top: 0; - left: 0; - } - .topiclinks, - .linkcontroller, - .summary { - pointer-events: none; - z-index: 20; - } - - .summary > g, - .topiclinks > g { - cursor: pointer; - pointer-events: stroke; - z-index: 20; - } - - .lines, - .subLines { - pointer-events: none; - } - - #input-box { - position: absolute; - top: 0; - left: 0; - width: max-content; // let words expand the div and keep max length at the same time - max-width: 35em; - direction: ltr; - user-select: auto; - pointer-events: auto; - color: var(--color); - background-color: var(--bgcolor); - z-index: 100; - } - - me-tpc { - display: block; - max-width: 35em; - white-space: pre-wrap; - pointer-events: all; - & > * { - // tags,icons,images should not response to click event - pointer-events: none; - } - & > a, - & > iframe { - pointer-events: auto; - } - & > .text { - display: inline-block; - // Allow links inside markdown text to be clickable - a { - pointer-events: auto; - } - } - & > img { - display: block; - margin-bottom: 8px; - object-fit: cover; - } - } - .circle { - position: absolute; - height: 10px; - width: 10px; - margin-top: -5px; - margin-left: -5px; - border-radius: 100%; - background: #757575; - border: 2px solid #ffffff; - z-index: 50; - - cursor: pointer; - } - - .tags { - direction: ltr; - span { - display: inline-block; - border-radius: 3px; - padding: 2px 4px; - background: #d6f0f8; - color: #276f86; - margin: 0px; - font-size: 12px; - line-height: 1.3em; - margin-right: 4px; - margin-top: 2px; - } - } - .icons { - display: inline-block; - direction: ltr; - margin-left: 5px; - span { - display: inline-block; - line-height: 1.3em; - } - } - - .mind-elixir-ghost { - position: fixed; - top: -100%; - left: -100%; - box-sizing: content-box; - opacity: 0.5; - background-color: var(--main-bgcolor); - border: 2px solid var(--main-color); - color: var(--main-color); - max-width: 200px; - width: fit-content; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - padding: 8px 16px; - border-radius: 6px; - } - - .selection-area { - background: #4f90f22d; - border: 1px solid #4f90f2; - } - - /* Markdown表格样式 */ - .markdown-table { - border-collapse: collapse; - width: 100%; - margin: 4px 0; - font-size: 11px; - border: 1px solid #e0e0e0; - border-radius: 6px; - box-shadow: 0 2px 8px rgba(0,0,0,0.08); - background-color: #fafafa; - overflow: hidden; - white-space: normal !important; /* 覆盖MindElixir的pre-wrap */ - } - - .markdown-table th, - .markdown-table td { - border: 1px solid #e0e0e0; - padding: 8px 12px; - text-align: left; - vertical-align: top; - position: relative; - white-space: normal !important; /* 覆盖MindElixir的pre-wrap */ - } - - .markdown-table th { - background-color: #f5f5f5; - font-weight: 600; - color: #333; - text-align: center; - border-bottom: 1px solid #d0d0d0; - } - - .markdown-table td { - background-color: #fff; - } - - .markdown-table tr:nth-child(even) td { - background-color: #f8f8f8; - } - - .markdown-table tr:hover td { - background-color: #f0f8ff; - } - - /* 移除多余的边框,保持简洁 */ - .markdown-table th:not(:last-child), - .markdown-table td:not(:last-child) { - border-right: 1px solid #e0e0e0; - } - - .markdown-table tr:not(:last-child) td { - border-bottom: 1px solid #e0e0e0; - } -} diff --git a/mind-elixir-core-master/src/index.ts b/mind-elixir-core-master/src/index.ts deleted file mode 100644 index 99c8b79..0000000 --- a/mind-elixir-core-master/src/index.ts +++ /dev/null @@ -1,198 +0,0 @@ -import './index.less' -import { LEFT, RIGHT, SIDE, DARK_THEME, THEME } from './const' -import { generateUUID } from './utils/index' -import initMouseEvent from './mouse' -import { createBus } from './utils/pubsub' -import { findEle } from './utils/dom' -import { createLinkSvg, createLine } from './utils/svg' -import type { MindElixirData, MindElixirInstance, MindElixirMethods, Options } from './types/index' -import methods from './methods' -import { sub, main } from './utils/generateBranch' -import { version } from '../package.json' -import { createDragMoveHelper } from './utils/dragMoveHelper' -import type { Topic } from './docs' - -// TODO show up animation -const $d = document - -function MindElixir( - this: MindElixirInstance, - { - el, - direction, - locale, - draggable, - editable, - contextMenu, - toolBar, - keypress, - mouseSelectionButton, - selectionContainer, - before, - newTopicName, - allowUndo, - generateMainBranch, - generateSubBranch, - overflowHidden, - theme, - alignment, - scaleSensitivity, - scaleMax, - scaleMin, - handleWheel, - markdown, - imageProxy, - }: Options -): void { - let ele: HTMLElement | null = null - const elType = Object.prototype.toString.call(el) - if (elType === '[object HTMLDivElement]') { - ele = el as HTMLElement - } else if (elType === '[object String]') { - ele = document.querySelector(el as string) as HTMLElement - } - if (!ele) throw new Error('MindElixir: el is not a valid element') - - ele.style.position = 'relative' - ele.innerHTML = '' - this.el = ele as HTMLElement - this.disposable = [] - this.before = before || {} - this.locale = locale || 'en' - this.newTopicName = newTopicName || 'New Node' - this.contextMenu = contextMenu ?? true - this.toolBar = toolBar ?? true - this.keypress = keypress ?? true - this.mouseSelectionButton = mouseSelectionButton ?? 0 - this.direction = direction ?? 1 - this.draggable = draggable ?? true - this.editable = editable ?? true - this.allowUndo = allowUndo ?? true - this.scaleSensitivity = scaleSensitivity ?? 0.1 - this.scaleMax = scaleMax ?? 1.4 - this.scaleMin = scaleMin ?? 0.2 - this.generateMainBranch = generateMainBranch || main - this.generateSubBranch = generateSubBranch || sub - this.overflowHidden = overflowHidden ?? false - this.alignment = alignment ?? 'root' - this.handleWheel = handleWheel ?? true - this.markdown = markdown || undefined // Custom markdown parser function - this.imageProxy = imageProxy || undefined // Image proxy function - // this.parentMap = {} // deal with large amount of nodes - this.currentNodes = [] // selected elements - this.currentArrow = null // the selected link svg element - this.scaleVal = 1 - this.tempDirection = null - - this.dragMoveHelper = createDragMoveHelper(this) - this.bus = createBus() - - this.container = $d.createElement('div') // map container - this.selectionContainer = selectionContainer || this.container - - this.container.className = 'map-container' - - const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)') - this.theme = theme || (mediaQuery.matches ? DARK_THEME : THEME) - - // infrastructure - const canvas = $d.createElement('div') // map-canvas Element - canvas.className = 'map-canvas' - this.map = canvas - this.container.setAttribute('tabindex', '0') - this.container.appendChild(this.map) - this.el.appendChild(this.container) - - this.nodes = $d.createElement('me-nodes') - - this.lines = createLinkSvg('lines') // main link container - this.summarySvg = createLinkSvg('summary') // summary container - - this.linkController = createLinkSvg('linkcontroller') // bezier controller container - this.P2 = $d.createElement('div') // bezier P2 - this.P3 = $d.createElement('div') // bezier P3 - this.P2.className = this.P3.className = 'circle' - this.P2.style.display = this.P3.style.display = 'none' - this.line1 = createLine() // bezier auxiliary line1 - this.line2 = createLine() // bezier auxiliary line2 - this.linkController.appendChild(this.line1) - this.linkController.appendChild(this.line2) - this.linkSvgGroup = createLinkSvg('topiclinks') // storage user custom link svg - - this.map.appendChild(this.nodes) - - if (this.overflowHidden) { - this.container.style.overflow = 'hidden' - } else { - this.disposable.push(initMouseEvent(this)) - } -} - -MindElixir.prototype = methods - -Object.defineProperty(MindElixir.prototype, 'currentNode', { - get() { - return this.currentNodes[this.currentNodes.length - 1] - }, - enumerable: true, -}) - -MindElixir.LEFT = LEFT -MindElixir.RIGHT = RIGHT -MindElixir.SIDE = SIDE - -MindElixir.THEME = THEME -MindElixir.DARK_THEME = DARK_THEME - -/** - * @memberof MindElixir - * @static - */ -MindElixir.version = version -/** - * @function - * @memberof MindElixir - * @static - * @name E - * @param {string} id Node id. - * @return {TargetElement} Target element. - * @example - * E('bd4313fbac40284b') - */ -MindElixir.E = findEle - -/** - * @function new - * @memberof MindElixir - * @static - * @param {String} topic root topic - */ -if (import.meta.env.MODE !== 'lite') { - MindElixir.new = (topic: string): MindElixirData => ({ - nodeData: { - id: generateUUID(), - topic: topic || 'new topic', - children: [], - }, - }) -} - -export interface MindElixirCtor { - new (options: Options): MindElixirInstance - E: (id: string, el?: HTMLElement) => Topic - new: typeof MindElixir.new - version: string - LEFT: typeof LEFT - RIGHT: typeof RIGHT - SIDE: typeof SIDE - THEME: typeof THEME - DARK_THEME: typeof DARK_THEME - prototype: MindElixirMethods -} - -export default MindElixir as unknown as MindElixirCtor - -// types -export type * from './utils/pubsub' -export type * from './types/index' -export type * from './types/dom' diff --git a/mind-elixir-core-master/src/interact.ts b/mind-elixir-core-master/src/interact.ts deleted file mode 100644 index 5f99836..0000000 --- a/mind-elixir-core-master/src/interact.ts +++ /dev/null @@ -1,407 +0,0 @@ -import type { Locale } from './i18n' -import { rmSubline } from './nodeOperation' -import type { Topic, Wrapper } from './types/dom' -import type { MindElixirData, MindElixirInstance, NodeObj } from './types/index' -import { fillParent, getTranslate, setExpand } from './utils/index' - -function collectData(instance: MindElixirInstance) { - return { - nodeData: instance.isFocusMode ? instance.nodeDataBackup : instance.nodeData, - arrows: instance.arrows, - summaries: instance.summaries, - direction: instance.direction, - theme: instance.theme, - } -} - -export const scrollIntoView = function (this: MindElixirInstance, el: HTMLElement) { - // scrollIntoView needs to be implemented manually because native scrollIntoView behaves incorrectly after transform - const container = this.container - const rect = el.getBoundingClientRect() - const containerRect = container.getBoundingClientRect() - const isOutOfView = - rect.top > containerRect.bottom || rect.bottom < containerRect.top || rect.left > containerRect.right || rect.right < containerRect.left - if (isOutOfView) { - // Calculate the offset between container center and element center - const elCenterX = rect.left + rect.width / 2 - const elCenterY = rect.top + rect.height / 2 - const containerCenterX = containerRect.left + containerRect.width / 2 - const containerCenterY = containerRect.top + containerRect.height / 2 - const offsetX = elCenterX - containerCenterX - const offsetY = elCenterY - containerCenterY - this.move(-offsetX, -offsetY, true) - } -} - -export const selectNode = function (this: MindElixirInstance, tpc: Topic, isNewNode?: boolean, e?: MouseEvent): void { - // selectNode clears all selected nodes by default - this.clearSelection() - this.scrollIntoView(tpc) - this.selection.select(tpc) - if (isNewNode) { - this.bus.fire('selectNewNode', tpc.nodeObj) - } -} - -export const selectNodes = function (this: MindElixirInstance, tpc: Topic[]): void { - // update currentNodes in selection.ts to keep sync with SelectionArea cache - this.selection.select(tpc) -} - -export const unselectNodes = function (this: MindElixirInstance, tpc: Topic[]) { - this.selection.deselect(tpc) -} - -export const clearSelection = function (this: MindElixirInstance) { - this.unselectNodes(this.currentNodes) - this.unselectSummary() - this.unselectArrow() -} - -/** - * @function - * @instance - * @name getDataString - * @description Get all node data as string. - * @memberof MapInteraction - * @return {string} - */ -export const getDataString = function (this: MindElixirInstance) { - const data = collectData(this) - return JSON.stringify(data, (k, v) => { - if (k === 'parent' && typeof v !== 'string') return undefined - return v - }) -} -/** - * @function - * @instance - * @name getData - * @description Get all node data as object. - * @memberof MapInteraction - * @return {Object} - */ -export const getData = function (this: MindElixirInstance) { - return JSON.parse(this.getDataString()) as MindElixirData -} - -/** - * @function - * @instance - * @name enableEdit - * @memberof MapInteraction - */ -export const enableEdit = function (this: MindElixirInstance) { - this.editable = true -} - -/** - * @function - * @instance - * @name disableEdit - * @memberof MapInteraction - */ -export const disableEdit = function (this: MindElixirInstance) { - this.editable = false -} - -/** - * @function - * @instance - * @name scale - * @description Change the scale of the mind map. - * @memberof MapInteraction - * @param {number} - */ -export const scale = function (this: MindElixirInstance, scaleVal: number, offset: { x: number; y: number } = { x: 0, y: 0 }) { - if (scaleVal < this.scaleMin || scaleVal > this.scaleMax) return - const rect = this.container.getBoundingClientRect() - // refer to /refs/scale-calc.excalidraw for the process - // remove coordinate system influence and calculate quantities directly - // cursor xy - const xc = offset.x ? offset.x - rect.left - rect.width / 2 : 0 - const yc = offset.y ? offset.y - rect.top - rect.height / 2 : 0 - - const { dx, dy } = getCenterDefault(this) - const oldTransform = this.map.style.transform - const { x: xCurrent, y: yCurrent } = getTranslate(oldTransform) // current offset - // before xy - const xb = xCurrent - dx - const yb = yCurrent - dy - - const oldScale = this.scaleVal - // Note: cursor needs to be reversed, probably because transform itself is reversed - const xres = (-xc + xb) * (1 - scaleVal / oldScale) - const yres = (-yc + yb) * (1 - scaleVal / oldScale) - - this.map.style.transform = `translate(${xCurrent - xres}px, ${yCurrent - yres}px) scale(${scaleVal})` - this.scaleVal = scaleVal - this.bus.fire('scale', scaleVal) -} - -/** - * Better to use with option `alignment: 'nodes'`. - */ -export const scaleFit = function (this: MindElixirInstance) { - const heightPercent = this.nodes.offsetHeight / this.container.offsetHeight - const widthPercent = this.nodes.offsetWidth / this.container.offsetWidth - const scale = 1 / Math.max(1, Math.max(heightPercent, widthPercent)) - this.scaleVal = scale - this.map.style.transform = 'scale(' + scale + ')' - this.bus.fire('scale', scale) -} - -/** - * Move the map by `dx` and `dy`. - */ -export const move = function (this: MindElixirInstance, dx: number, dy: number, smooth = false) { - const { map, scaleVal, bus } = this - const transform = map.style.transform - let { x, y } = getTranslate(transform) - x += dx - y += dy - - if (smooth) { - map.style.transition = 'transform 0.3s' - setTimeout(() => { - map.style.transition = 'none' - }, 300) - } - map.style.transform = `translate(${x}px, ${y}px) scale(${scaleVal})` - - bus.fire('move', { dx, dy }) -} - -/** - * 获取默认居中的偏移 - */ -const getCenterDefault = (mei: MindElixirInstance) => { - const { container, map, nodes } = mei - - const root = map.querySelector('me-root') as HTMLElement - const pT = root.offsetTop - const pL = root.offsetLeft - const pW = root.offsetWidth - const pH = root.offsetHeight - - let dx, dy - if (mei.alignment === 'root') { - dx = container.offsetWidth / 2 - pL - pW / 2 - dy = container.offsetHeight / 2 - pT - pH / 2 - map.style.transformOrigin = `${pL + pW / 2}px 50%` - } else { - dx = (container.offsetWidth - nodes.offsetWidth) / 2 - dy = (container.offsetHeight - nodes.offsetHeight) / 2 - map.style.transformOrigin = `50% 50%` - } - return { dx, dy } -} - -/** - * @function - * @instance - * @name toCenter - * @description Reset position of the map to center. - * @memberof MapInteraction - */ -export const toCenter = function (this: MindElixirInstance) { - const { map } = this - const { dx, dy } = getCenterDefault(this) - map.style.transform = `translate(${dx}px, ${dy}px) scale(${this.scaleVal})` -} - -/** - * @function - * @instance - * @name install - * @description Install plugin. - * @memberof MapInteraction - */ -export const install = function (this: MindElixirInstance, plugin: (instance: MindElixirInstance) => void) { - plugin(this) -} - -/** - * @function - * @instance - * @name focusNode - * @description Enter focus mode, set the target element as root. - * @memberof MapInteraction - * @param {TargetElement} el - Target element return by E('...'), default value: currentTarget. - */ -export const focusNode = function (this: MindElixirInstance, el: Topic) { - if (!el.nodeObj.parent) return - this.clearSelection() - if (this.tempDirection === null) { - this.tempDirection = this.direction - } - if (!this.isFocusMode) { - this.nodeDataBackup = this.nodeData // help reset focus mode - this.isFocusMode = true - } - this.nodeData = el.nodeObj - this.initRight() - this.toCenter() -} -/** - * @function - * @instance - * @name cancelFocus - * @description Exit focus mode. - * @memberof MapInteraction - */ -export const cancelFocus = function (this: MindElixirInstance) { - this.isFocusMode = false - if (this.tempDirection !== null) { - this.nodeData = this.nodeDataBackup - this.direction = this.tempDirection - this.tempDirection = null - this.refresh() - this.toCenter() - } -} -/** - * @function - * @instance - * @name initLeft - * @description Child nodes will distribute on the left side of the root node. - * @memberof MapInteraction - */ -export const initLeft = function (this: MindElixirInstance) { - this.direction = 0 - this.refresh() - this.toCenter() -} -/** - * @function - * @instance - * @name initRight - * @description Child nodes will distribute on the right side of the root node. - * @memberof MapInteraction - */ -export const initRight = function (this: MindElixirInstance) { - this.direction = 1 - this.refresh() - this.toCenter() -} -/** - * @function - * @instance - * @name initSide - * @description Child nodes will distribute on both left and right side of the root node. - * @memberof MapInteraction - */ -export const initSide = function (this: MindElixirInstance) { - this.direction = 2 - this.refresh() - this.toCenter() -} - -/** - * @function - * @instance - * @name setLocale - * @memberof MapInteraction - */ -export const setLocale = function (this: MindElixirInstance, locale: Locale) { - this.locale = locale - this.refresh() -} - -export const expandNode = function (this: MindElixirInstance, el: Topic, isExpand?: boolean) { - const node = el.nodeObj - if (typeof isExpand === 'boolean') { - node.expanded = isExpand - } else if (node.expanded !== false) { - node.expanded = false - } else { - node.expanded = true - } - - // Calculate position before expansion - const expanderRect = el.getBoundingClientRect() - const beforePosition = { - x: expanderRect.left, - y: expanderRect.top, - } - - const parent = el.parentNode - const expander = parent.children[1]! - expander.expanded = node.expanded - expander.className = node.expanded ? 'minus' : '' - - rmSubline(el) - if (node.expanded) { - const children = this.createChildren( - node.children!.map(child => { - const wrapper = this.createWrapper(child) - return wrapper.grp - }) - ) - parent.parentNode.appendChild(children) - } else { - const children = parent.parentNode.children[1] - children.remove() - } - - this.linkDiv(el.closest('me-main > me-wrapper') as Wrapper) - - // Calculate position after expansion and compensate for drift - const afterRect = el.getBoundingClientRect() - const afterPosition = { - x: afterRect.left, - y: afterRect.top, - } - - // Calculate the drift and move to compensate - const driftX = beforePosition.x - afterPosition.x - const driftY = beforePosition.y - afterPosition.y - - this.move(driftX, driftY) - - this.bus.fire('expandNode', node) -} - -export const expandNodeAll = function (this: MindElixirInstance, el: Topic, isExpand?: boolean) { - const node = el.nodeObj - const beforeRect = el.getBoundingClientRect() - const beforePosition = { - x: beforeRect.left, - y: beforeRect.top, - } - setExpand(node, isExpand ?? !node.expanded) - this.refresh() - const afterRect = this.findEle(node.id).getBoundingClientRect() - const afterPosition = { - x: afterRect.left, - y: afterRect.top, - } - const driftX = beforePosition.x - afterPosition.x - const driftY = beforePosition.y - afterPosition.y - - this.move(driftX, driftY) -} - -/** - * @function - * @instance - * @name refresh - * @description Refresh mind map, you can use it after modified `this.nodeData` - * @memberof MapInteraction - * @param {TargetElement} data mind elixir data - */ -export const refresh = function (this: MindElixirInstance, data?: MindElixirData) { - this.clearSelection() - if (data) { - data = JSON.parse(JSON.stringify(data)) as MindElixirData // it shouldn't contanimate the original data - this.nodeData = data.nodeData - this.arrows = data.arrows || [] - this.summaries = data.summaries || [] - data.theme && this.changeTheme(data.theme) - } - fillParent(this.nodeData) - // create dom element for every node - this.layout() - // generate links between nodes - this.linkDiv() -} diff --git a/mind-elixir-core-master/src/linkDiv.ts b/mind-elixir-core-master/src/linkDiv.ts deleted file mode 100644 index 85388da..0000000 --- a/mind-elixir-core-master/src/linkDiv.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { createPath, createLinkSvg } from './utils/svg' -import { getOffsetLT } from './utils/index' -import type { Wrapper, Topic } from './types/dom' -import type { DirectionClass, MindElixirInstance } from './types/index' - -/** - * Link nodes with svg, - * only link specific node if `mainNode` is present - * - * procedure: - * 1. generate main link - * 2. generate links inside main node, if `mainNode` is presented, only generate the link of the specific main node - * 3. generate custom link - * 4. generate summary - * @param mainNode regenerate sublink of the specific main node - */ -const linkDiv = function (this: MindElixirInstance, mainNode?: Wrapper) { - console.time('linkDiv') - - const root = this.map.querySelector('me-root') as HTMLElement - const pT = root.offsetTop - const pL = root.offsetLeft - const pW = root.offsetWidth - const pH = root.offsetHeight - - const mainNodeList = this.map.querySelectorAll('me-main > me-wrapper') - this.lines.innerHTML = '' - - for (let i = 0; i < mainNodeList.length; i++) { - const el = mainNodeList[i] as Wrapper - const tpc = el.querySelector('me-tpc') as Topic - const { offsetLeft: cL, offsetTop: cT } = getOffsetLT(this.nodes, tpc) - const cW = tpc.offsetWidth - const cH = tpc.offsetHeight - const direction = el.parentNode.className as DirectionClass - - const mainPath = this.generateMainBranch({ pT, pL, pW, pH, cT, cL, cW, cH, direction, containerHeight: this.nodes.offsetHeight }) - const palette = this.theme.palette - const branchColor = tpc.nodeObj.branchColor || palette[i % palette.length] - tpc.style.borderColor = branchColor - this.lines.appendChild(createPath(mainPath, branchColor, '3')) - - // generate link inside main node - if (mainNode && mainNode !== el) { - continue - } - - const svg = createLinkSvg('subLines') - // svg tag name is lower case - const svgLine = el.lastChild as SVGSVGElement - if (svgLine.tagName === 'svg') svgLine.remove() - el.appendChild(svg) - - traverseChildren(this, svg, branchColor, el, direction, true) - } - - this.renderArrow() - this.renderSummary() - console.timeEnd('linkDiv') - this.bus.fire('linkDiv') -} - -// core function of generate subLines - -const traverseChildren = function ( - mei: MindElixirInstance, - svgContainer: SVGSVGElement, - branchColor: string, - wrapper: Wrapper, - direction: DirectionClass, - isFirst?: boolean -) { - const parent = wrapper.firstChild - const children = wrapper.children[1].children - if (children.length === 0) return - - const pT = parent.offsetTop - const pL = parent.offsetLeft - const pW = parent.offsetWidth - const pH = parent.offsetHeight - for (let i = 0; i < children.length; i++) { - const child = children[i] - const childP = child.firstChild - const cT = childP.offsetTop - const cL = childP.offsetLeft - const cW = childP.offsetWidth - const cH = childP.offsetHeight - - const bc = childP.firstChild.nodeObj.branchColor || branchColor - const path = mei.generateSubBranch({ pT, pL, pW, pH, cT, cL, cW, cH, direction, isFirst }) - svgContainer.appendChild(createPath(path, bc, '2')) - - const expander = childP.children[1] - - if (expander) { - // this property is added in the layout phase - if (!expander.expanded) continue - } else { - // expander not exist - continue - } - - traverseChildren(mei, svgContainer, bc, child, direction) - } -} - -export default linkDiv diff --git a/mind-elixir-core-master/src/methods.ts b/mind-elixir-core-master/src/methods.ts deleted file mode 100644 index 10d713c..0000000 --- a/mind-elixir-core-master/src/methods.ts +++ /dev/null @@ -1,131 +0,0 @@ -import type { MindElixirInstance, MindElixirData } from './index' -import linkDiv from './linkDiv' -import contextMenu from './plugin/contextMenu' -import keypressInit from './plugin/keypress' -import nodeDraggable from './plugin/nodeDraggable' -import operationHistory from './plugin/operationHistory' -import toolBar from './plugin/toolBar' -import selection from './plugin/selection' -import { editTopic, createWrapper, createParent, createChildren, createTopic, findEle } from './utils/dom' -import { getObjById, generateNewObj, fillParent } from './utils/index' -import { layout } from './utils/layout' -import { changeTheme } from './utils/theme' -import * as interact from './interact' -import * as nodeOperation from './nodeOperation' -import * as arrow from './arrow' -import * as summary from './summary' -import * as exportImage from './plugin/exportImage' - -export type OperationMap = typeof nodeOperation -export type Operations = keyof OperationMap -type NodeOperation = { - [K in Operations]: ReturnType> -} - -function beforeHook( - fn: OperationMap[T], - fnName: T -): (this: MindElixirInstance, ...args: Parameters) => Promise { - return async function (this: MindElixirInstance, ...args: Parameters) { - const hook = this.before[fnName] - if (hook) { - const res = await hook.apply(this, args) - if (!res) return - } - ;(fn as any).apply(this, args) - } -} - -const operations = Object.keys(nodeOperation) as Array -const nodeOperationHooked = {} as NodeOperation -if (import.meta.env.MODE !== 'lite') { - for (let i = 0; i < operations.length; i++) { - const operation = operations[i] - nodeOperationHooked[operation] = beforeHook(nodeOperation[operation], operation) - } -} - -export type MindElixirMethods = typeof methods - -/** - * Methods that mind-elixir instance can use - * - * @public - */ -const methods = { - getObjById, - generateNewObj, - layout, - linkDiv, - editTopic, - createWrapper, - createParent, - createChildren, - createTopic, - findEle, - changeTheme, - ...interact, - ...(nodeOperationHooked as NodeOperation), - ...arrow, - ...summary, - ...exportImage, - init(this: MindElixirInstance, data: MindElixirData) { - data = JSON.parse(JSON.stringify(data)) - if (!data || !data.nodeData) return new Error('MindElixir: `data` is required') - if (data.direction !== undefined) { - this.direction = data.direction - } - this.changeTheme(data.theme || this.theme, false) - this.nodeData = data.nodeData - fillParent(this.nodeData) - this.arrows = data.arrows || [] - this.summaries = data.summaries || [] - this.tidyArrow() - // plugins - this.toolBar && toolBar(this) - if (import.meta.env.MODE !== 'lite') { - this.keypress && keypressInit(this, this.keypress) - - if (this.editable) { - selection(this) - } - if (this.contextMenu) { - this.disposable.push(contextMenu(this, this.contextMenu)) - } - this.draggable && this.disposable.push(nodeDraggable(this)) - this.allowUndo && this.disposable.push(operationHistory(this)) - } - this.layout() - this.linkDiv() - this.toCenter() - }, - destroy(this: Partial) { - this.disposable!.forEach(fn => fn()) - if (this.el) this.el.innerHTML = '' - this.el = undefined - this.nodeData = undefined - this.arrows = undefined - this.summaries = undefined - this.currentArrow = undefined - this.currentNodes = undefined - this.currentSummary = undefined - this.waitCopy = undefined - this.theme = undefined - this.direction = undefined - this.bus = undefined - this.container = undefined - this.map = undefined - this.lines = undefined - this.linkController = undefined - this.linkSvgGroup = undefined - this.P2 = undefined - this.P3 = undefined - this.line1 = undefined - this.line2 = undefined - this.nodes = undefined - this.selection?.destroy() - this.selection = undefined - }, -} - -export default methods diff --git a/mind-elixir-core-master/src/mouse.ts b/mind-elixir-core-master/src/mouse.ts deleted file mode 100644 index 9bba19f..0000000 --- a/mind-elixir-core-master/src/mouse.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { handleZoom } from './plugin/keypress' -import type { SummarySvgGroup } from './summary' -import type { Expander, CustomSvg, Topic } from './types/dom' -import type { MindElixirInstance } from './types/index' -import { isTopic, on } from './utils' - -export default function (mind: MindElixirInstance) { - const { dragMoveHelper } = mind - - const handleClick = (e: MouseEvent) => { - console.log('handleClick', e) - // Only handle primary button clicks - if (e.button !== 0) return - if (mind.helper1?.moved) { - mind.helper1.clear() - return - } - if (mind.helper2?.moved) { - mind.helper2.clear() - return - } - if (dragMoveHelper.moved) { - dragMoveHelper.clear() - return - } - const target = e.target as HTMLElement - if (target.tagName === 'ME-EPD') { - if (e.ctrlKey || e.metaKey) { - mind.expandNodeAll((target as Expander).previousSibling) - } else { - mind.expandNode((target as Expander).previousSibling) - } - } else if (target.tagName === 'ME-TPC' && mind.currentNodes.length > 1) { - // This is a bit complex, intertwined with selection and nodeDraggable - // The main conflict is between multi-node dragging and selecting a single node when multiple nodes are already selected - mind.selectNode(target as Topic) - } else if (!mind.editable) { - return - } - const trySvg = target.parentElement?.parentElement as unknown as SVGElement - if (trySvg.getAttribute('class') === 'topiclinks') { - mind.selectArrow(target.parentElement as unknown as CustomSvg) - } else if (trySvg.getAttribute('class') === 'summary') { - mind.selectSummary(target.parentElement as unknown as SummarySvgGroup) - } - } - - const handleDblClick = (e: MouseEvent) => { - if (!mind.editable) return - const target = e.target as HTMLElement - if (isTopic(target)) { - mind.beginEdit(target) - } - const trySvg = target.parentElement?.parentElement as unknown as SVGElement - if (trySvg.getAttribute('class') === 'topiclinks') { - mind.editArrowLabel(target.parentElement as unknown as CustomSvg) - } else if (trySvg.getAttribute('class') === 'summary') { - mind.editSummary(target.parentElement as unknown as SummarySvgGroup) - } - } - - let lastTap = 0 - const handleTouchDblClick = (e: PointerEvent) => { - if (e.pointerType === 'mouse') return - const currentTime = new Date().getTime() - const tapLength = currentTime - lastTap - console.log('tapLength', tapLength) - if (tapLength < 300 && tapLength > 0) { - handleDblClick(e) - } - - lastTap = currentTime - } - - const handlePointerDown = (e: PointerEvent) => { - dragMoveHelper.moved = false - const mouseMoveButton = mind.mouseSelectionButton === 0 ? 2 : 0 - if (e.button !== mouseMoveButton && e.pointerType === 'mouse') return - - // Store initial position for movement calculation - dragMoveHelper.x = e.clientX - dragMoveHelper.y = e.clientY - - const target = e.target as HTMLElement - if (target.className === 'circle') return - if (target.contentEditable !== 'plaintext-only') { - dragMoveHelper.mousedown = true - // Capture pointer to ensure we receive all pointer events even if pointer moves outside the element - target.setPointerCapture(e.pointerId) - } - } - - const handlePointerMove = (e: PointerEvent) => { - // click trigger pointermove in windows chrome - if ((e.target as HTMLElement).contentEditable !== 'plaintext-only') { - // drag and move the map - // Calculate movement delta manually since pointer events don't have movementX/Y - const movementX = e.clientX - dragMoveHelper.x - const movementY = e.clientY - dragMoveHelper.y - - dragMoveHelper.onMove(movementX, movementY) - } - - dragMoveHelper.x = e.clientX - dragMoveHelper.y = e.clientY - } - - const handlePointerUp = (e: PointerEvent) => { - const mouseMoveButton = mind.mouseSelectionButton === 0 ? 2 : 0 - if (e.button !== mouseMoveButton && e.pointerType === 'mouse') return - const target = e.target as HTMLElement - // Release pointer capture - if (target.hasPointerCapture && target.hasPointerCapture(e.pointerId)) { - target.releasePointerCapture(e.pointerId) - } - dragMoveHelper.clear() - } - - const handleContextMenu = (e: MouseEvent) => { - console.log('handleContextMenu', e) - e.preventDefault() - // Only handle right-click for context menu - if (e.button !== 2) return - if (!mind.editable) return - const target = e.target as HTMLElement - if (isTopic(target) && !target.classList.contains('selected')) { - mind.selectNode(target) - } - setTimeout(() => { - // delay to avoid conflict with click event on Mac - if (mind.dragMoveHelper.moved) return - mind.bus.fire('showContextMenu', e) - }, 200) - } - - const handleWheel = (e: WheelEvent) => { - e.stopPropagation() - e.preventDefault() - if (e.ctrlKey || e.metaKey) { - if (e.deltaY < 0) handleZoom(mind, 'in', mind.dragMoveHelper) - else if (mind.scaleVal - mind.scaleSensitivity > 0) handleZoom(mind, 'out', mind.dragMoveHelper) - } else if (e.shiftKey) { - mind.move(-e.deltaY, 0) - } else { - mind.move(-e.deltaX, -e.deltaY) - } - } - - const { container } = mind - const off = on([ - { dom: container, evt: 'pointerdown', func: handlePointerDown }, - { dom: container, evt: 'pointermove', func: handlePointerMove }, - { dom: container, evt: 'pointerup', func: handlePointerUp }, - { dom: container, evt: 'pointerup', func: handleTouchDblClick }, - { dom: container, evt: 'click', func: handleClick }, - { dom: container, evt: 'dblclick', func: handleDblClick }, - { dom: container, evt: 'contextmenu', func: handleContextMenu }, - { dom: container, evt: 'wheel', func: typeof mind.handleWheel === 'function' ? mind.handleWheel : handleWheel }, - ]) - return off -} diff --git a/mind-elixir-core-master/src/nodeOperation.ts b/mind-elixir-core-master/src/nodeOperation.ts deleted file mode 100644 index 7ba44fa..0000000 --- a/mind-elixir-core-master/src/nodeOperation.ts +++ /dev/null @@ -1,314 +0,0 @@ -import { fillParent, refreshIds, unionTopics } from './utils/index' -import { createExpander, shapeTpc } from './utils/dom' -import { deepClone } from './utils/index' -import type { Children, Topic } from './types/dom' -import { DirectionClass, type MindElixirInstance, type NodeObj } from './types/index' -import { insertNodeObj, insertParentNodeObj, moveUpObj, moveDownObj, removeNodeObj, moveNodeObj } from './utils/objectManipulation' -import { addChildDom, removeNodeDom } from './utils/domManipulation' -import { LEFT, RIGHT } from './const' - -const typeMap: Record = { - before: 'beforebegin', - after: 'afterend', -} - -export const rmSubline = function (tpc: Topic) { - const mainNode = tpc.parentElement.parentElement - const lc = mainNode.lastElementChild - if (lc?.tagName === 'svg') lc?.remove() // clear svg group of main node -} - -export const reshapeNode = function (this: MindElixirInstance, tpc: Topic, patchData: Partial) { - const nodeObj = tpc.nodeObj - const origin = deepClone(nodeObj) - // merge styles - if (origin.style && patchData.style) { - patchData.style = Object.assign(origin.style, patchData.style) - } - const newObj = Object.assign(nodeObj, patchData) - shapeTpc.call(this, tpc, newObj) - this.linkDiv() - this.bus.fire('operation', { - name: 'reshapeNode', - obj: newObj, - origin, - }) -} - -const addChildFunc = function (mei: MindElixirInstance, tpc: Topic, node?: NodeObj) { - if (!tpc) return null - const nodeObj = tpc.nodeObj - if (nodeObj.expanded === false) { - mei.expandNode(tpc, true) - // dom had resetted - tpc = mei.findEle(nodeObj.id) as Topic - } - const newNodeObj = node || mei.generateNewObj() - if (nodeObj.children) nodeObj.children.push(newNodeObj) - else nodeObj.children = [newNodeObj] - fillParent(mei.nodeData) - - const { grp, top: newTop } = mei.createWrapper(newNodeObj) - addChildDom(mei, tpc, grp) - return { newTop, newNodeObj } -} - -export const insertSibling = function (this: MindElixirInstance, type: 'before' | 'after', el?: Topic, node?: NodeObj) { - const nodeEle = el || this.currentNode - if (!nodeEle) return - const nodeObj = nodeEle.nodeObj - if (!nodeObj.parent) { - this.addChild() - return - } else if (!nodeObj.parent?.parent && nodeObj.parent?.children?.length === 1 && this.direction === 2) { - // add at least one node to another side - this.addChild(this.findEle(nodeObj.parent!.id), node) - return - } - const newNodeObj = node || this.generateNewObj() - if (!nodeObj.parent?.parent) { - const direction = nodeEle.closest('me-main')!.className === DirectionClass.LHS ? LEFT : RIGHT - newNodeObj.direction = direction - } - insertNodeObj(newNodeObj, type, nodeObj) - fillParent(this.nodeData) - const t = nodeEle.parentElement - console.time('insertSibling_DOM') - - const { grp, top } = this.createWrapper(newNodeObj) - - t.parentElement.insertAdjacentElement(typeMap[type], grp) - - this.linkDiv(grp.offsetParent) - - if (!node) { - this.editTopic(top.firstChild) - } - console.timeEnd('insertSibling_DOM') - this.bus.fire('operation', { - name: 'insertSibling', - type, - obj: newNodeObj, - }) - this.selectNode(top.firstChild, true) -} - -export const insertParent = function (this: MindElixirInstance, el?: Topic, node?: NodeObj) { - const nodeEle = el || this.currentNode - if (!nodeEle) return - rmSubline(nodeEle) - const nodeObj = nodeEle.nodeObj - if (!nodeObj.parent) { - return - } - const newNodeObj = node || this.generateNewObj() - insertParentNodeObj(nodeObj, newNodeObj) - fillParent(this.nodeData) - - const grp0 = nodeEle.parentElement.parentElement - console.time('insertParent_DOM') - const { grp, top } = this.createWrapper(newNodeObj, true) - top.appendChild(createExpander(true)) - grp0.insertAdjacentElement('afterend', grp) - - const c = this.createChildren([grp0]) - top.insertAdjacentElement('afterend', c) - - this.linkDiv() - - if (!node) { - this.editTopic(top.firstChild) - } - this.selectNode(top.firstChild, true) - console.timeEnd('insertParent_DOM') - this.bus.fire('operation', { - name: 'insertParent', - obj: newNodeObj, - }) -} - -export const addChild = function (this: MindElixirInstance, el?: Topic, node?: NodeObj) { - console.time('addChild') - const nodeEle = el || this.currentNode - if (!nodeEle) return - const res = addChildFunc(this, nodeEle, node) - if (!res) return - const { newTop, newNodeObj } = res - // 添加节点关注添加节点前选择的节点,所以先触发事件再选择节点 - this.bus.fire('operation', { - name: 'addChild', - obj: newNodeObj, - }) - console.timeEnd('addChild') - if (!node) { - this.editTopic(newTop.firstChild) - } - this.selectNode(newTop.firstChild, true) -} - -export const copyNode = function (this: MindElixirInstance, node: Topic, to: Topic) { - console.time('copyNode') - const deepCloneObj = deepClone(node.nodeObj) - refreshIds(deepCloneObj) - const res = addChildFunc(this, to, deepCloneObj) - if (!res) return - const { newNodeObj } = res - console.timeEnd('copyNode') - this.selectNode(this.findEle(newNodeObj.id)) - this.bus.fire('operation', { - name: 'copyNode', - obj: newNodeObj, - }) -} - -export const copyNodes = function (this: MindElixirInstance, tpcs: Topic[], to: Topic) { - tpcs = unionTopics(tpcs) - const objs = [] - for (let i = 0; i < tpcs.length; i++) { - const node = tpcs[i] - const deepCloneObj = deepClone(node.nodeObj) - refreshIds(deepCloneObj) - const res = addChildFunc(this, to, deepCloneObj) - if (!res) return - const { newNodeObj } = res - objs.push(newNodeObj) - } - this.unselectNodes(this.currentNodes) - this.selectNodes(objs.map(obj => this.findEle(obj.id))) - this.bus.fire('operation', { - name: 'copyNodes', - objs, - }) -} - -export const moveUpNode = function (this: MindElixirInstance, el?: Topic) { - const nodeEle = el || this.currentNode - if (!nodeEle) return - const obj = nodeEle.nodeObj - moveUpObj(obj) - const grp = nodeEle.parentNode.parentNode - grp.parentNode.insertBefore(grp, grp.previousSibling) - this.linkDiv() - this.bus.fire('operation', { - name: 'moveUpNode', - obj, - }) -} - -export const moveDownNode = function (this: MindElixirInstance, el?: Topic) { - const nodeEle = el || this.currentNode - if (!nodeEle) return - const obj = nodeEle.nodeObj - moveDownObj(obj) - const grp = nodeEle.parentNode.parentNode - if (grp.nextSibling) { - grp.nextSibling.insertAdjacentElement('afterend', grp) - } else { - grp.parentNode.prepend(grp) - } - this.linkDiv() - this.bus.fire('operation', { - name: 'moveDownNode', - obj, - }) -} - -export const removeNodes = function (this: MindElixirInstance, tpcs: Topic[]) { - if (tpcs.length === 0) return - tpcs = unionTopics(tpcs) - for (const tpc of tpcs) { - const nodeObj = tpc.nodeObj - const siblingLength = removeNodeObj(nodeObj) - removeNodeDom(tpc, siblingLength) - } - const last = tpcs[tpcs.length - 1] - this.selectNode(this.findEle(last.nodeObj.parent!.id)) - this.linkDiv() - // 删除关注的是删除后选择的节点,所以先选择节点再触发 removeNodes 事件可以在事件中通过 currentNodes 获取之后选择的节点 - this.bus.fire('operation', { - name: 'removeNodes', - objs: tpcs.map(tpc => tpc.nodeObj), - }) -} - -export const moveNodeIn = function (this: MindElixirInstance, from: Topic[], to: Topic) { - from = unionTopics(from) - const toObj = to.nodeObj - if (toObj.expanded === false) { - // TODO - this.expandNode(to, true) - to = this.findEle(toObj.id) as Topic - } - console.time('moveNodeIn') - for (const f of from) { - const obj = f.nodeObj - moveNodeObj('in', obj, toObj) - fillParent(this.nodeData) // update parent property - const fromTop = f.parentElement - addChildDom(this, to, fromTop.parentElement) - } - this.linkDiv() - this.bus.fire('operation', { - name: 'moveNodeIn', - objs: from.map(f => f.nodeObj), - toObj, - }) - console.timeEnd('moveNodeIn') -} - -const moveNode = (from: Topic[], type: 'before' | 'after', to: Topic, mei: MindElixirInstance) => { - from = unionTopics(from) - if (type === 'after') { - from = from.reverse() - } - const toObj = to.nodeObj - const c: Children[] = [] - for (const f of from) { - const obj = f.nodeObj - moveNodeObj(type, obj, toObj) - fillParent(mei.nodeData) - rmSubline(f) - const fromWrp = f.parentElement.parentNode - if (!c.includes(fromWrp.parentElement)) { - c.push(fromWrp.parentElement) - } - const toWrp = to.parentElement.parentNode - toWrp.insertAdjacentElement(typeMap[type], fromWrp) - } - // When nodes are moved away, the original parent node may become childless - // In this case, we need to clean up the related DOM structure: - // remove expander buttons and empty wrapper containers - for (const item of c) { - if (item.childElementCount === 0 && item.tagName !== 'ME-MAIN') { - item.previousSibling.children[1]!.remove() - item.remove() - } - } - mei.linkDiv() - mei.bus.fire('operation', { - name: type === 'before' ? 'moveNodeBefore' : 'moveNodeAfter', - objs: from.map(f => f.nodeObj), - toObj, - }) -} - -export const moveNodeBefore = function (this: MindElixirInstance, from: Topic[], to: Topic) { - moveNode(from, 'before', to, this) -} - -export const moveNodeAfter = function (this: MindElixirInstance, from: Topic[], to: Topic) { - moveNode(from, 'after', to, this) -} - -export const beginEdit = function (this: MindElixirInstance, el?: Topic) { - const nodeEle = el || this.currentNode - if (!nodeEle) return - if (nodeEle.nodeObj.dangerouslySetInnerHTML) return - this.editTopic(nodeEle) -} - -export const setNodeTopic = function (this: MindElixirInstance, el: Topic, topic: string) { - el.text.textContent = topic - el.nodeObj.topic = topic - this.linkDiv() -} diff --git a/mind-elixir-core-master/src/plugin/contextMenu.less b/mind-elixir-core-master/src/plugin/contextMenu.less deleted file mode 100644 index d4377b8..0000000 --- a/mind-elixir-core-master/src/plugin/contextMenu.less +++ /dev/null @@ -1,66 +0,0 @@ -.map-container .context-menu { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 99; - .menu-list { - position: fixed; - list-style: none; - margin: 0; - padding: 0; - color: var(--panel-color); - box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.2); - border-radius: 5px; - overflow: hidden; - li { - min-width: 200px; - overflow: hidden; - white-space: nowrap; - padding: 6px 10px; - background: var(--panel-bgcolor); - border-bottom: 1px solid var(--panel-border-color); - cursor: pointer; - span { - line-height: 20px; - } - a { - color: #333; - text-decoration: none; - } - &.disabled { - display: none; - } - &:hover { - filter: brightness(0.95); - } - &:last-child { - border-bottom: 0; - } - span:last-child { - float: right; - } - } - } - .key { - font-size: 10px; - background-color: #f1f1f1; - color: #333; - padding: 2px 5px; - border-radius: 3px; - } -} - -.map-container .tips { - position: absolute; - bottom: 28px; - left: 50%; - transform: translateX(-50%); - color: var(--panel-color); - background: var(--panel-bgcolor); - opacity: 0.8; - padding: 5px 10px; - border-radius: 5px; - font-weight: bold; -} diff --git a/mind-elixir-core-master/src/plugin/contextMenu.ts b/mind-elixir-core-master/src/plugin/contextMenu.ts deleted file mode 100644 index 99e324a..0000000 --- a/mind-elixir-core-master/src/plugin/contextMenu.ts +++ /dev/null @@ -1,229 +0,0 @@ -import i18n from '../i18n' -import type { Topic } from '../types/dom' -import type { MindElixirInstance } from '../types/index' -import { encodeHTML, isTopic } from '../utils/index' -import './contextMenu.less' -import type { ArrowOptions } from '../arrow' - -export type ContextMenuOption = { - focus?: boolean - link?: boolean - extend?: { - name: string - key?: string - onclick: (e: MouseEvent) => void - }[] -} - -export default function (mind: MindElixirInstance, option: true | ContextMenuOption) { - option = - option === true - ? { - focus: true, - link: true, - } - : option - const createTips = (words: string) => { - const div = document.createElement('div') - div.innerText = words - div.className = 'tips' - return div - } - const createLi = (id: string, name: string, keyname: string) => { - const li = document.createElement('li') - li.id = id - li.innerHTML = `${encodeHTML(name)}${encodeHTML(keyname)}` - return li - } - const locale = i18n[mind.locale] ? mind.locale : 'en' - const lang = i18n[locale] - const add_child = createLi('cm-add_child', lang.addChild, 'Tab') - const add_parent = createLi('cm-add_parent', lang.addParent, 'Ctrl + Enter') - const add_sibling = createLi('cm-add_sibling', lang.addSibling, 'Enter') - const remove_child = createLi('cm-remove_child', lang.removeNode, 'Delete') - const focus = createLi('cm-fucus', lang.focus, '') - const unfocus = createLi('cm-unfucus', lang.cancelFocus, '') - const up = createLi('cm-up', lang.moveUp, 'PgUp') - const down = createLi('cm-down', lang.moveDown, 'Pgdn') - const link = createLi('cm-link', lang.link, '') - const linkBidirectional = createLi('cm-link-bidirectional', lang.linkBidirectional, '') - const summary = createLi('cm-summary', lang.summary, '') - - const menuUl = document.createElement('ul') - menuUl.className = 'menu-list' - menuUl.appendChild(add_child) - menuUl.appendChild(add_parent) - menuUl.appendChild(add_sibling) - menuUl.appendChild(remove_child) - if (option.focus) { - menuUl.appendChild(focus) - menuUl.appendChild(unfocus) - } - menuUl.appendChild(up) - menuUl.appendChild(down) - menuUl.appendChild(summary) - if (option.link) { - menuUl.appendChild(link) - menuUl.appendChild(linkBidirectional) - } - if (option && option.extend) { - for (let i = 0; i < option.extend.length; i++) { - const item = option.extend[i] - const dom = createLi(item.name, item.name, item.key || '') - menuUl.appendChild(dom) - dom.onclick = e => { - item.onclick(e) - } - } - } - const menuContainer = document.createElement('div') - menuContainer.className = 'context-menu' - menuContainer.appendChild(menuUl) - menuContainer.hidden = true - - mind.container.append(menuContainer) - let isRoot = true - // Helper function to actually render and position context menu. - const showMenu = (e: MouseEvent) => { - console.log('showContextMenu', e) - const target = e.target as HTMLElement - if (isTopic(target)) { - if (target.parentElement!.tagName === 'ME-ROOT') { - isRoot = true - } else { - isRoot = false - } - if (isRoot) { - focus.className = 'disabled' - up.className = 'disabled' - down.className = 'disabled' - add_parent.className = 'disabled' - add_sibling.className = 'disabled' - remove_child.className = 'disabled' - } else { - focus.className = '' - up.className = '' - down.className = '' - add_parent.className = '' - add_sibling.className = '' - remove_child.className = '' - } - menuContainer.hidden = false - - menuUl.style.top = '' - menuUl.style.bottom = '' - menuUl.style.left = '' - menuUl.style.right = '' - const rect = menuUl.getBoundingClientRect() - const height = menuUl.offsetHeight - const width = menuUl.offsetWidth - - const relativeY = e.clientY - rect.top - const relativeX = e.clientX - rect.left - - if (height + relativeY > window.innerHeight) { - menuUl.style.top = '' - menuUl.style.bottom = '0px' - } else { - menuUl.style.bottom = '' - menuUl.style.top = relativeY + 15 + 'px' - } - - if (width + relativeX > window.innerWidth) { - menuUl.style.left = '' - menuUl.style.right = '0px' - } else { - menuUl.style.right = '' - menuUl.style.left = relativeX + 10 + 'px' - } - } - } - - mind.bus.addListener('showContextMenu', showMenu) - - menuContainer.onclick = e => { - if (e.target === menuContainer) menuContainer.hidden = true - } - - add_child.onclick = () => { - mind.addChild() - menuContainer.hidden = true - } - add_parent.onclick = () => { - mind.insertParent() - menuContainer.hidden = true - } - add_sibling.onclick = () => { - if (isRoot) return - mind.insertSibling('after') - menuContainer.hidden = true - } - remove_child.onclick = () => { - if (isRoot) return - mind.removeNodes(mind.currentNodes || []) - menuContainer.hidden = true - } - focus.onclick = () => { - if (isRoot) return - mind.focusNode(mind.currentNode as Topic) - menuContainer.hidden = true - } - unfocus.onclick = () => { - mind.cancelFocus() - menuContainer.hidden = true - } - up.onclick = () => { - if (isRoot) return - mind.moveUpNode() - menuContainer.hidden = true - } - down.onclick = () => { - if (isRoot) return - mind.moveDownNode() - menuContainer.hidden = true - } - const linkFunc = (options?: ArrowOptions) => { - menuContainer.hidden = true - const from = mind.currentNode as Topic - const tips = createTips(lang.clickTips) - mind.container.appendChild(tips) - mind.map.addEventListener( - 'click', - e => { - e.preventDefault() - tips.remove() - const target = e.target as Topic - if (target.parentElement.tagName === 'ME-PARENT' || target.parentElement.tagName === 'ME-ROOT') { - mind.createArrow(from, target, options) - } else { - console.log('link cancel') - } - }, - { - once: true, - } - ) - } - link.onclick = () => linkFunc() - linkBidirectional.onclick = () => linkFunc({ bidirectional: true }) - summary.onclick = () => { - menuContainer.hidden = true - mind.createSummary() - mind.unselectNodes(mind.currentNodes) - } - return () => { - // maybe useful? - add_child.onclick = null - add_parent.onclick = null - add_sibling.onclick = null - remove_child.onclick = null - focus.onclick = null - unfocus.onclick = null - up.onclick = null - down.onclick = null - link.onclick = null - summary.onclick = null - menuContainer.onclick = null - mind.container.oncontextmenu = null - } -} diff --git a/mind-elixir-core-master/src/plugin/exportImage.ts b/mind-elixir-core-master/src/plugin/exportImage.ts deleted file mode 100644 index 7a41465..0000000 --- a/mind-elixir-core-master/src/plugin/exportImage.ts +++ /dev/null @@ -1,263 +0,0 @@ -import type { Topic } from '../types/dom' -import type { MindElixirInstance } from '../types' -import { setAttributes } from '../utils' -import { getOffsetLT, isTopic } from '../utils' - -const ns = 'http://www.w3.org/2000/svg' -function createSvgDom(height: string, width: string) { - const svg = document.createElementNS(ns, 'svg') - setAttributes(svg, { - version: '1.1', - xmlns: ns, - height, - width, - }) - return svg -} - -function lineHightToPadding(lineHeight: string, fontSize: string) { - return (parseInt(lineHeight) - parseInt(fontSize)) / 2 -} - -function generateSvgText(tpc: HTMLElement, tpcStyle: CSSStyleDeclaration, x: number, y: number) { - const g = document.createElementNS(ns, 'g') - let content = '' - if ((tpc as Topic).text) { - content = (tpc as Topic).text.textContent! - } else { - content = tpc.childNodes[0].textContent! - } - const lines = content!.split('\n') - lines.forEach((line, index) => { - const text = document.createElementNS(ns, 'text') - setAttributes(text, { - x: x + parseInt(tpcStyle.paddingLeft) + '', - y: - y + - parseInt(tpcStyle.paddingTop) + - lineHightToPadding(tpcStyle.lineHeight, tpcStyle.fontSize) * (index + 1) + - parseFloat(tpcStyle.fontSize) * (index + 1) + - '', - 'text-anchor': 'start', - 'font-family': tpcStyle.fontFamily, - 'font-size': `${tpcStyle.fontSize}`, - 'font-weight': `${tpcStyle.fontWeight}`, - fill: `${tpcStyle.color}`, - }) - text.innerHTML = line - g.appendChild(text) - }) - return g -} - -function generateSvgTextUsingForeignObject(tpc: HTMLElement, tpcStyle: CSSStyleDeclaration, x: number, y: number) { - let content = '' - if ((tpc as Topic).nodeObj?.dangerouslySetInnerHTML) { - content = (tpc as Topic).nodeObj.dangerouslySetInnerHTML! - } else if ((tpc as Topic).text) { - content = (tpc as Topic).text.textContent! - } else { - content = tpc.childNodes[0].textContent! - } - const foreignObject = document.createElementNS(ns, 'foreignObject') - setAttributes(foreignObject, { - x: x + parseInt(tpcStyle.paddingLeft) + '', - y: y + parseInt(tpcStyle.paddingTop) + '', - width: tpcStyle.width, - height: tpcStyle.height, - }) - const div = document.createElement('div') - setAttributes(div, { - xmlns: 'http://www.w3.org/1999/xhtml', - style: `font-family: ${tpcStyle.fontFamily}; font-size: ${tpcStyle.fontSize}; font-weight: ${tpcStyle.fontWeight}; color: ${tpcStyle.color}; white-space: pre-wrap;`, - }) - div.innerHTML = content - foreignObject.appendChild(div) - return foreignObject -} - -function createElBox(mei: MindElixirInstance, tpc: Topic) { - const tpcStyle = getComputedStyle(tpc) - const { offsetLeft: x, offsetTop: y } = getOffsetLT(mei.nodes, tpc) - - const bg = document.createElementNS(ns, 'rect') - setAttributes(bg, { - x: x + '', - y: y + '', - rx: tpcStyle.borderRadius, - ry: tpcStyle.borderRadius, - width: tpcStyle.width, - height: tpcStyle.height, - fill: tpcStyle.backgroundColor, - stroke: tpcStyle.borderColor, - 'stroke-width': tpcStyle.borderWidth, - }) - return bg -} -function convertDivToSvg(mei: MindElixirInstance, tpc: HTMLElement, useForeignObject = false) { - const tpcStyle = getComputedStyle(tpc) - const { offsetLeft: x, offsetTop: y } = getOffsetLT(mei.nodes, tpc) - - const bg = document.createElementNS(ns, 'rect') - setAttributes(bg, { - x: x + '', - y: y + '', - rx: tpcStyle.borderRadius, - ry: tpcStyle.borderRadius, - width: tpcStyle.width, - height: tpcStyle.height, - fill: tpcStyle.backgroundColor, - stroke: tpcStyle.borderColor, - 'stroke-width': tpcStyle.borderWidth, - }) - const g = document.createElementNS(ns, 'g') - g.appendChild(bg) - let text: SVGGElement | null - if (useForeignObject) { - text = generateSvgTextUsingForeignObject(tpc, tpcStyle, x, y) - } else text = generateSvgText(tpc, tpcStyle, x, y) - g.appendChild(text) - return g -} - -function convertAToSvg(mei: MindElixirInstance, a: HTMLAnchorElement) { - const aStyle = getComputedStyle(a) - const { offsetLeft: x, offsetTop: y } = getOffsetLT(mei.nodes, a) - const svgA = document.createElementNS(ns, 'a') - const text = document.createElementNS(ns, 'text') - setAttributes(text, { - x: x + '', - y: y + parseInt(aStyle.fontSize) + '', - 'text-anchor': 'start', - 'font-family': aStyle.fontFamily, - 'font-size': `${aStyle.fontSize}`, - 'font-weight': `${aStyle.fontWeight}`, - fill: `${aStyle.color}`, - }) - text.innerHTML = a.textContent! - svgA.appendChild(text) - svgA.setAttribute('href', a.href) - return svgA -} - -function convertImgToSvg(mei: MindElixirInstance, a: HTMLImageElement) { - const aStyle = getComputedStyle(a) - const { offsetLeft: x, offsetTop: y } = getOffsetLT(mei.nodes, a) - const svgI = document.createElementNS(ns, 'image') - setAttributes(svgI, { - x: x + '', - y: y + '', - width: aStyle.width + '', - height: aStyle.height + '', - href: a.src, - }) - return svgI -} - -const padding = 100 - -const head = `` - -const generateSvg = (mei: MindElixirInstance, noForeignObject = false) => { - const mapDiv = mei.nodes - const height = mapDiv.offsetHeight + padding * 2 - const width = mapDiv.offsetWidth + padding * 2 - const svg = createSvgDom(height + 'px', width + 'px') - const g = document.createElementNS(ns, 'svg') - const bgColor = document.createElementNS(ns, 'rect') - setAttributes(bgColor, { - x: '0', - y: '0', - width: `${width}`, - height: `${height}`, - fill: mei.theme.cssVar['--bgcolor'] as string, - }) - svg.appendChild(bgColor) - mapDiv.querySelectorAll('.subLines').forEach(item => { - const clone = item.cloneNode(true) as SVGSVGElement - const { offsetLeft, offsetTop } = getOffsetLT(mapDiv, item.parentElement as HTMLElement) - clone.setAttribute('x', `${offsetLeft}`) - clone.setAttribute('y', `${offsetTop}`) - g.appendChild(clone) - }) - - const mainLine = mapDiv.querySelector('.lines')?.cloneNode(true) - mainLine && g.appendChild(mainLine) - const topiclinks = mapDiv.querySelector('.topiclinks')?.cloneNode(true) - topiclinks && g.appendChild(topiclinks) - const summaries = mapDiv.querySelector('.summary')?.cloneNode(true) - summaries && g.appendChild(summaries) - - mapDiv.querySelectorAll('me-tpc').forEach(tpc => { - if (tpc.nodeObj.dangerouslySetInnerHTML) { - g.appendChild(convertDivToSvg(mei, tpc, noForeignObject ? false : true)) - } else { - g.appendChild(createElBox(mei, tpc)) - g.appendChild(convertDivToSvg(mei, tpc.text, noForeignObject ? false : true)) - } - }) - mapDiv.querySelectorAll('.tags > span').forEach(tag => { - g.appendChild(convertDivToSvg(mei, tag as HTMLElement)) - }) - mapDiv.querySelectorAll('.icons > span').forEach(icon => { - g.appendChild(convertDivToSvg(mei, icon as HTMLElement)) - }) - mapDiv.querySelectorAll('.hyper-link').forEach(hl => { - g.appendChild(convertAToSvg(mei, hl as HTMLAnchorElement)) - }) - mapDiv.querySelectorAll('img').forEach(img => { - g.appendChild(convertImgToSvg(mei, img)) - }) - setAttributes(g, { - x: padding + '', - y: padding + '', - overflow: 'visible', - }) - svg.appendChild(g) - return svg -} - -const generateSvgStr = (svgEl: SVGSVGElement, injectCss?: string) => { - if (injectCss) svgEl.insertAdjacentHTML('afterbegin', '') - return head + svgEl.outerHTML -} - -function blobToUrl(blob: Blob): Promise { - return new Promise((resolve, reject) => { - const reader = new FileReader() - reader.onload = evt => { - resolve(evt.target!.result as string) - } - reader.onerror = err => { - reject(err) - } - reader.readAsDataURL(blob) - }) -} - -export const exportSvg = function (this: MindElixirInstance, noForeignObject = false, injectCss?: string) { - const svgEl = generateSvg(this, noForeignObject) - const svgString = generateSvgStr(svgEl, injectCss) - const blob = new Blob([svgString], { type: 'image/svg+xml' }) - return blob -} - -export const exportPng = async function (this: MindElixirInstance, noForeignObject = false, injectCss?: string): Promise { - const blob = this.exportSvg(noForeignObject, injectCss) - // use base64 to bypass canvas taint - const url = await blobToUrl(blob) - return new Promise((resolve, reject) => { - const img = new Image() - img.setAttribute('crossOrigin', 'anonymous') - img.onload = () => { - const canvas = document.createElement('canvas') - canvas.width = img.width - canvas.height = img.height - const ctx = canvas.getContext('2d')! - ctx.drawImage(img, 0, 0) - canvas.toBlob(resolve, 'image/png', 1) - } - img.src = url - img.onerror = reject - }) -} diff --git a/mind-elixir-core-master/src/plugin/keypress.ts b/mind-elixir-core-master/src/plugin/keypress.ts deleted file mode 100644 index 512b949..0000000 --- a/mind-elixir-core-master/src/plugin/keypress.ts +++ /dev/null @@ -1,242 +0,0 @@ -import type { Topic } from '../types/dom' -import type { KeypressOptions, MindElixirInstance } from '../types/index' -import { DirectionClass } from '../types/index' -import { setExpand } from '../utils' - -const selectRootLeft = (mei: MindElixirInstance) => { - const tpcs = mei.map.querySelectorAll('.lhs>me-wrapper>me-parent>me-tpc') - mei.selectNode(tpcs[Math.ceil(tpcs.length / 2) - 1] as Topic) -} -const selectRootRight = (mei: MindElixirInstance) => { - const tpcs = mei.map.querySelectorAll('.rhs>me-wrapper>me-parent>me-tpc') - mei.selectNode(tpcs[Math.ceil(tpcs.length / 2) - 1] as Topic) -} -const selectRoot = (mei: MindElixirInstance) => { - mei.selectNode(mei.map.querySelector('me-root>me-tpc') as Topic) -} -const selectParent = function (mei: MindElixirInstance, currentNode: Topic) { - const parent = currentNode.parentElement.parentElement.parentElement.previousSibling - if (parent) { - const target = parent.firstChild - mei.selectNode(target) - } -} -const selectFirstChild = function (mei: MindElixirInstance, currentNode: Topic) { - const children = currentNode.parentElement.nextSibling - if (children && children.firstChild) { - const target = children.firstChild.firstChild.firstChild - mei.selectNode(target) - } -} -const handleLeftRight = function (mei: MindElixirInstance, direction: DirectionClass) { - const current = mei.currentNode || mei.currentNodes?.[0] - if (!current) return - const nodeObj = current.nodeObj - const main = current.offsetParent.offsetParent.parentElement - if (!nodeObj.parent) { - direction === DirectionClass.LHS ? selectRootLeft(mei) : selectRootRight(mei) - } else if (main.className === direction) { - selectFirstChild(mei, current) - } else { - if (!nodeObj.parent?.parent) { - selectRoot(mei) - } else { - selectParent(mei, current) - } - } -} -const handlePrevNext = function (mei: MindElixirInstance, direction: 'previous' | 'next') { - const current = mei.currentNode - if (!current) return - const nodeObj = current.nodeObj - if (!nodeObj.parent) return - const s = (direction + 'Sibling') as 'previousSibling' | 'nextSibling' - const sibling = current.parentElement.parentElement[s] - if (sibling) { - mei.selectNode(sibling.firstChild.firstChild) - } else { - // handle multiple nodes including last node - mei.selectNode(current) - } -} -export const handleZoom = function ( - mei: MindElixirInstance, - direction: 'in' | 'out', - offset?: { - x: number - y: number - } -) { - const { scaleVal, scaleSensitivity } = mei - switch (direction) { - case 'in': - mei.scale(scaleVal + scaleSensitivity, offset) - break - case 'out': - mei.scale(scaleVal - scaleSensitivity, offset) - } -} - -export default function (mind: MindElixirInstance, options: boolean | KeypressOptions) { - options = options === true ? {} : options - const handleRemove = () => { - if (mind.currentArrow) mind.removeArrow() - else if (mind.currentSummary) mind.removeSummary(mind.currentSummary.summaryObj.id) - else if (mind.currentNodes) { - mind.removeNodes(mind.currentNodes) - } - } - - // Track key sequence for Ctrl+K+Ctrl+0 - let ctrlKPressed = false - let ctrlKTimeout: number | null = null - const handleControlKPlusX = (e: KeyboardEvent) => { - const nodeData = mind.nodeData - if (e.key === '0') { - // Ctrl+K+Ctrl+0: Collapse all nodes - for (const node of nodeData.children!) { - setExpand(node, false) - } - } - if (e.key === '=') { - // Ctrl+K+Ctrl+1: Expand all nodes - for (const node of nodeData.children!) { - setExpand(node, true) - } - } - if (['1', '2', '3', '4', '5', '6', '7', '8', '9'].includes(e.key)) { - for (const node of nodeData.children!) { - setExpand(node, true, Number(e.key) - 1) - } - } - mind.refresh() - mind.toCenter() - - ctrlKPressed = false - if (ctrlKTimeout) { - clearTimeout(ctrlKTimeout) - ctrlKTimeout = null - mind.container.removeEventListener('keydown', handleControlKPlusX) - } - } - const key2func: Record void> = { - Enter: e => { - if (e.shiftKey) { - mind.insertSibling('before') - } else if (e.ctrlKey || e.metaKey) { - mind.insertParent() - } else { - mind.insertSibling('after') - } - }, - Tab: () => { - mind.addChild() - }, - F1: () => { - mind.toCenter() - }, - F2: () => { - mind.beginEdit() - }, - ArrowUp: e => { - if (e.altKey) { - mind.moveUpNode() - } else if (e.metaKey || e.ctrlKey) { - return mind.initSide() - } else { - handlePrevNext(mind, 'previous') - } - }, - ArrowDown: e => { - if (e.altKey) { - mind.moveDownNode() - } else { - handlePrevNext(mind, 'next') - } - }, - ArrowLeft: e => { - if (e.metaKey || e.ctrlKey) { - return mind.initLeft() - } - handleLeftRight(mind, DirectionClass.LHS) - }, - ArrowRight: e => { - if (e.metaKey || e.ctrlKey) { - return mind.initRight() - } - handleLeftRight(mind, DirectionClass.RHS) - }, - PageUp: () => { - return mind.moveUpNode() - }, - PageDown: () => { - mind.moveDownNode() - }, - c: (e: KeyboardEvent) => { - if (e.metaKey || e.ctrlKey) { - mind.waitCopy = mind.currentNodes - } - }, - x: (e: KeyboardEvent) => { - if (e.metaKey || e.ctrlKey) { - mind.waitCopy = mind.currentNodes - handleRemove() - } - }, - v: (e: KeyboardEvent) => { - if (!mind.waitCopy || !mind.currentNode) return - if (e.metaKey || e.ctrlKey) { - if (mind.waitCopy.length === 1) { - mind.copyNode(mind.waitCopy[0], mind.currentNode) - } else { - mind.copyNodes(mind.waitCopy, mind.currentNode) - } - } - }, - '=': (e: KeyboardEvent) => { - if (e.metaKey || e.ctrlKey) { - handleZoom(mind, 'in') - } - }, - '-': (e: KeyboardEvent) => { - if (e.metaKey || e.ctrlKey) { - handleZoom(mind, 'out') - } - }, - '0': (e: KeyboardEvent) => { - if (e.metaKey || e.ctrlKey) { - if (ctrlKPressed) { - return - } else { - // Regular Ctrl+0: Reset zoom - mind.scale(1) - } - } - }, - k: (e: KeyboardEvent) => { - if (e.metaKey || e.ctrlKey) { - ctrlKPressed = true - // Reset the flag after 2 seconds if no follow-up key is pressed - if (ctrlKTimeout) { - clearTimeout(ctrlKTimeout) - mind.container.removeEventListener('keydown', handleControlKPlusX) - } - ctrlKTimeout = window.setTimeout(() => { - ctrlKPressed = false - ctrlKTimeout = null - }, 2000) - mind.container.addEventListener('keydown', handleControlKPlusX) - } - }, - Delete: handleRemove, - Backspace: handleRemove, - ...options, - } - mind.container.onkeydown = e => { - // it will prevent all input in children node, so we have to stop propagation in input element - e.preventDefault() - if (!mind.editable) return - const keyHandler = key2func[e.key] - keyHandler && keyHandler(e) - } -} diff --git a/mind-elixir-core-master/src/plugin/nodeDraggable.ts b/mind-elixir-core-master/src/plugin/nodeDraggable.ts deleted file mode 100644 index 9dc0a00..0000000 --- a/mind-elixir-core-master/src/plugin/nodeDraggable.ts +++ /dev/null @@ -1,174 +0,0 @@ -import type { Topic } from '../types/dom' -import type { MindElixirInstance } from '../types/index' -import { on } from '../utils' -// https://html.spec.whatwg.org/multipage/dnd.html#drag-and-drop-processing-model -type InsertType = 'before' | 'after' | 'in' | null -const $d = document -const insertPreview = function (tpc: Topic, insertTpye: InsertType) { - if (!insertTpye) { - clearPreview(tpc) - return tpc - } - let el = tpc.querySelector('.insert-preview') - const className = `insert-preview ${insertTpye} show` - if (!el) { - el = $d.createElement('div') - tpc.appendChild(el) - } - el.className = className - return tpc -} - -const clearPreview = function (el: Element | null) { - if (!el) return - const query = el.querySelectorAll('.insert-preview') - for (const queryElement of query || []) { - queryElement.remove() - } -} - -const canMove = function (el: Element, dragged: Topic[]) { - for (const node of dragged) { - const isContain = node.parentElement.parentElement.contains(el) - const ok = el && el.tagName === 'ME-TPC' && el !== node && !isContain && (el as Topic).nodeObj.parent - if (!ok) return false - } - return true -} - -const createGhost = function (mei: MindElixirInstance) { - const ghost = document.createElement('div') - ghost.className = 'mind-elixir-ghost' - mei.container.appendChild(ghost) - return ghost -} - -class EdgeMoveController { - private mind: MindElixirInstance - private isMoving = false - private interval: NodeJS.Timeout | null = null - private speed = 20 - constructor(mind: MindElixirInstance) { - this.mind = mind - } - move(dx: number, dy: number) { - if (this.isMoving) return - this.isMoving = true - this.interval = setInterval(() => { - this.mind.move(dx * this.speed * this.mind.scaleVal, dy * this.speed * this.mind.scaleVal) - }, 100) - } - stop() { - this.isMoving = false - clearInterval(this.interval!) - } -} - -export default function (mind: MindElixirInstance) { - let insertTpye: InsertType = null - let meet: Topic | null = null - const ghost = createGhost(mind) - const edgeMoveController = new EdgeMoveController(mind) - - const handleDragStart = (e: DragEvent) => { - mind.selection.cancel() - const target = e.target as Topic - if (target?.tagName !== 'ME-TPC') { - // it should be a topic element, return if not - e.preventDefault() - return - } - let nodes = mind.currentNodes - if (!nodes?.includes(target)) { - mind.selectNode(target) - nodes = mind.currentNodes - } - mind.dragged = nodes - if (nodes.length > 1) ghost.innerHTML = nodes.length + '' - else ghost.innerHTML = target.innerHTML - - for (const node of nodes) { - node.parentElement.parentElement.style.opacity = '0.5' - } - e.dataTransfer!.setDragImage(ghost, 0, 0) - e.dataTransfer!.dropEffect = 'move' - mind.dragMoveHelper.clear() - } - const handleDragEnd = (e: DragEvent) => { - const { dragged } = mind - if (!dragged) return - edgeMoveController.stop() - for (const node of dragged) { - node.parentElement.parentElement.style.opacity = '1' - } - const target = e.target as Topic - target.style.opacity = '' - if (!meet) return - clearPreview(meet) - if (insertTpye === 'before') { - mind.moveNodeBefore(dragged, meet) - } else if (insertTpye === 'after') { - mind.moveNodeAfter(dragged, meet) - } else if (insertTpye === 'in') { - mind.moveNodeIn(dragged, meet) - } - mind.dragged = null - ghost.innerHTML = '' - } - const handleDragOver = (e: DragEvent) => { - e.preventDefault() - const threshold = 12 * mind.scaleVal - const { dragged } = mind - - if (!dragged) return - - // border detection - const rect = mind.container.getBoundingClientRect() - if (e.clientX < rect.x + 50) { - edgeMoveController.move(1, 0) - } else if (e.clientX > rect.x + rect.width - 50) { - edgeMoveController.move(-1, 0) - } else if (e.clientY < rect.y + 50) { - edgeMoveController.move(0, 1) - } else if (e.clientY > rect.y + rect.height - 50) { - edgeMoveController.move(0, -1) - } else { - edgeMoveController.stop() - } - - clearPreview(meet) - // minus threshold infer that postion of the cursor is above topic - const topMeet = $d.elementFromPoint(e.clientX, e.clientY - threshold) as Topic - if (canMove(topMeet, dragged)) { - meet = topMeet - const rect = topMeet.getBoundingClientRect() - const y = rect.y - if (e.clientY > y + rect.height) { - insertTpye = 'after' - } else { - insertTpye = 'in' - } - } else { - const bottomMeet = $d.elementFromPoint(e.clientX, e.clientY + threshold) as Topic - const rect = bottomMeet.getBoundingClientRect() - if (canMove(bottomMeet, dragged)) { - meet = bottomMeet - const y = rect.y - if (e.clientY < y) { - insertTpye = 'before' - } else { - insertTpye = 'in' - } - } else { - insertTpye = meet = null - } - } - if (meet) insertPreview(meet, insertTpye) - } - const off = on([ - { dom: mind.map, evt: 'dragstart', func: handleDragStart }, - { dom: mind.map, evt: 'dragend', func: handleDragEnd }, - { dom: mind.map, evt: 'dragover', func: handleDragOver }, - ]) - return off -} diff --git a/mind-elixir-core-master/src/plugin/operationHistory.ts b/mind-elixir-core-master/src/plugin/operationHistory.ts deleted file mode 100644 index cd1815b..0000000 --- a/mind-elixir-core-master/src/plugin/operationHistory.ts +++ /dev/null @@ -1,124 +0,0 @@ -import type { MindElixirData, NodeObj, OperationType } from '../index' -import { type MindElixirInstance } from '../index' -import type { Operation } from '../utils/pubsub' - -type History = { - prev: MindElixirData - next: MindElixirData - currentSelected: string[] - operation: OperationType - currentTarget: - | { - type: 'summary' | 'arrow' - value: string - } - | { - type: 'nodes' - value: string[] - } -} - -const calcCurentObject = function (operation: Operation): History['currentTarget'] { - if (['createSummary', 'removeSummary', 'finishEditSummary'].includes(operation.name)) { - return { - type: 'summary', - value: (operation as any).obj.id, - } - } else if (['createArrow', 'removeArrow', 'finishEditArrowLabel'].includes(operation.name)) { - return { - type: 'arrow', - value: (operation as any).obj.id, - } - } else if (['removeNodes', 'copyNodes', 'moveNodeBefore', 'moveNodeAfter', 'moveNodeIn'].includes(operation.name)) { - return { - type: 'nodes', - value: (operation as any).objs.map((obj: NodeObj) => obj.id), - } - } else { - return { - type: 'nodes', - value: [(operation as any).obj.id], - } - } -} - -export default function (mei: MindElixirInstance) { - let history = [] as History[] - let currentIndex = -1 - let current = mei.getData() - let currentSelectedNodes: NodeObj[] = [] - mei.undo = function () { - // 操作是删除时,undo 恢复内容,应选中操作的目标 - // 操作是新增时,undo 删除内容,应选中当前选中节点 - if (currentIndex > -1) { - const h = history[currentIndex] - current = h.prev - mei.refresh(h.prev) - try { - if (h.currentTarget.type === 'nodes') { - if (h.operation === 'removeNodes') { - mei.selectNodes(h.currentTarget.value.map(id => this.findEle(id))) - } else { - mei.selectNodes(h.currentSelected.map(id => this.findEle(id))) - } - } - } catch (e) { - // undo add node cause node not found - } finally { - currentIndex-- - } - } - } - mei.redo = function () { - if (currentIndex < history.length - 1) { - currentIndex++ - const h = history[currentIndex] - current = h.next - mei.refresh(h.next) - try { - if (h.currentTarget.type === 'nodes') { - if (h.operation === 'removeNodes') { - mei.selectNodes(h.currentSelected.map(id => this.findEle(id))) - } else { - mei.selectNodes(h.currentTarget.value.map(id => this.findEle(id))) - } - } - } catch (e) { - // redo delete node cause node not found - } - } - } - const handleOperation = function (operation: Operation) { - if (operation.name === 'beginEdit') return - history = history.slice(0, currentIndex + 1) - const next = mei.getData() - const item = { - prev: current, - operation: operation.name, - currentSelected: currentSelectedNodes.map(n => n.id), - currentTarget: calcCurentObject(operation), - next, - } - history.push(item) - current = next - currentIndex = history.length - 1 - console.log('operation', item.currentSelected, item.currentTarget.value) - } - const handleKeyDown = function (e: KeyboardEvent) { - // console.log(`mei.map.addEventListener('keydown', handleKeyDown)`, e.key, history.length, currentIndex) - if ((e.metaKey || e.ctrlKey) && ((e.shiftKey && e.key === 'Z') || e.key === 'y')) mei.redo() - else if ((e.metaKey || e.ctrlKey) && e.key === 'z') mei.undo() - } - const handleSelectNodes = function (nodes: NodeObj[]) { - console.log('selectNodes', nodes) - currentSelectedNodes = mei.currentNodes.map(n => n.nodeObj) - } - mei.bus.addListener('operation', handleOperation) - mei.bus.addListener('selectNodes', handleSelectNodes) - mei.container.addEventListener('keydown', handleKeyDown) - return () => { - mei.bus.removeListener('operation', handleOperation) - mei.bus.removeListener('selectNodes', handleSelectNodes) - mei.container.removeEventListener('keydown', handleKeyDown) - } -} diff --git a/mind-elixir-core-master/src/plugin/selection.ts b/mind-elixir-core-master/src/plugin/selection.ts deleted file mode 100644 index 0cbcc17..0000000 --- a/mind-elixir-core-master/src/plugin/selection.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { Behaviour } from '@viselect/vanilla' -import SelectionArea from '@viselect/vanilla' -import type { MindElixirInstance, Topic } from '..' - -// TODO: boundaries move missing -export default function (mei: MindElixirInstance) { - const triggers: Behaviour['triggers'] = mei.mouseSelectionButton === 2 ? [2] : [0] - const selection = new SelectionArea({ - selectables: ['.map-container me-tpc'], - boundaries: [mei.container], - container: mei.selectionContainer, - features: { - // deselectOnBlur: true, - touch: false, - }, - behaviour: { - triggers, - // Scroll configuration. - scrolling: { - // On scrollable areas the number on px per frame is devided by this amount. - // Default is 10 to provide a enjoyable scroll experience. - speedDivider: 10, - // Browsers handle mouse-wheel events differently, this number will be used as - // numerator to calculate the mount of px while scrolling manually: manualScrollSpeed / scrollSpeedDivider. - manualSpeed: 750, - // This property defines the virtual inset margins from the borders of the container - // component that, when crossed by the mouse/touch, trigger the scrolling. Useful for - // fullscreen containers. - startScrollMargins: { x: 10, y: 10 }, - }, - }, - }) - .on('beforestart', ({ event }) => { - const target = event!.target as HTMLElement - if (target.id === 'input-box') return false - if (target.className === 'circle') return false - if (mei.container.querySelector('.context-menu')?.contains(target)) { - // prevent context menu click clear selection - return false - } - if (!(event as MouseEvent).ctrlKey && !(event as MouseEvent).metaKey) { - if (target.tagName === 'ME-TPC' && target.classList.contains('selected')) { - // Normal click cannot deselect - // Also, deselection CANNOT be triggered before dragging, otherwise we can't drag multiple targets!! - return false - } - // trigger `move` event here - mei.clearSelection() - } - // console.log('beforestart') - const selectionAreaElement = selection.getSelectionArea() - selectionAreaElement.style.background = '#4f90f22d' - selectionAreaElement.style.border = '1px solid #4f90f2' - if (selectionAreaElement.parentElement) { - selectionAreaElement.parentElement.style.zIndex = '9999' - } - return true - }) - // .on('beforedrag', ({ event }) => {}) - .on( - 'move', - ({ - store: { - changed: { added, removed }, - }, - }) => { - if (added.length > 0 || removed.length > 0) { - // console.log('added ', added) - // console.log('removed ', removed) - } - if (added.length > 0) { - for (const el of added) { - el.className = 'selected' - } - mei.currentNodes = [...mei.currentNodes, ...(added as Topic[])] - mei.bus.fire( - 'selectNodes', - (added as Topic[]).map(el => el.nodeObj) - ) - } - if (removed.length > 0) { - for (const el of removed) { - el.classList.remove('selected') - } - mei.currentNodes = mei.currentNodes!.filter(el => !removed?.includes(el)) - mei.bus.fire( - 'unselectNodes', - (removed as Topic[]).map(el => el.nodeObj) - ) - } - } - ) - mei.selection = selection -} diff --git a/mind-elixir-core-master/src/plugin/toolBar.less b/mind-elixir-core-master/src/plugin/toolBar.less deleted file mode 100644 index daa46fb..0000000 --- a/mind-elixir-core-master/src/plugin/toolBar.less +++ /dev/null @@ -1,40 +0,0 @@ -.mind-elixir-toolbar { - position: absolute; - color: var(--panel-color); - background: var(--panel-bgcolor); - padding: 10px; - border-radius: 5px; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2); - - svg { - display: inline-block; // overwrite tailwindcss - } - span { - &:active { - opacity: 0.5; - } - } -} - -.mind-elixir-toolbar.rb { - right: 20px; - bottom: 20px; - - span + span { - margin-left: 10px; - } -} - -.mind-elixir-toolbar.lt { - font-size: 20px; - left: 20px; - top: 20px; - - span { - display: block; - } - - span + span { - margin-top: 10px; - } -} diff --git a/mind-elixir-core-master/src/plugin/toolBar.ts b/mind-elixir-core-master/src/plugin/toolBar.ts deleted file mode 100644 index 5844485..0000000 --- a/mind-elixir-core-master/src/plugin/toolBar.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { MindElixirInstance } from '../types/index' -import side from '../icons/side.svg?raw' -import left from '../icons/left.svg?raw' -import right from '../icons/right.svg?raw' -import full from '../icons/full.svg?raw' -import living from '../icons/living.svg?raw' -import zoomin from '../icons/zoomin.svg?raw' -import zoomout from '../icons/zoomout.svg?raw' - -import './toolBar.less' - -const map: Record = { - side, - left, - right, - full, - living, - zoomin, - zoomout, -} -const createButton = (id: string, name: string) => { - const button = document.createElement('span') - button.id = id - button.innerHTML = map[name] - return button -} - -function createToolBarRBContainer(mind: MindElixirInstance) { - const toolBarRBContainer = document.createElement('div') - const fc = createButton('fullscreen', 'full') - const gc = createButton('toCenter', 'living') - const zo = createButton('zoomout', 'zoomout') - const zi = createButton('zoomin', 'zoomin') - const percentage = document.createElement('span') - percentage.innerText = '100%' - toolBarRBContainer.appendChild(fc) - toolBarRBContainer.appendChild(gc) - toolBarRBContainer.appendChild(zo) - toolBarRBContainer.appendChild(zi) - // toolBarRBContainer.appendChild(percentage) - toolBarRBContainer.className = 'mind-elixir-toolbar rb' - fc.onclick = () => { - if (document.fullscreenElement === mind.el) { - document.exitFullscreen() - } else { - mind.el.requestFullscreen() - } - } - gc.onclick = () => { - mind.toCenter() - } - zo.onclick = () => { - mind.scale(mind.scaleVal - mind.scaleSensitivity) - } - zi.onclick = () => { - mind.scale(mind.scaleVal + mind.scaleSensitivity) - } - return toolBarRBContainer -} -function createToolBarLTContainer(mind: MindElixirInstance) { - const toolBarLTContainer = document.createElement('div') - const l = createButton('tbltl', 'left') - const r = createButton('tbltr', 'right') - const s = createButton('tblts', 'side') - - toolBarLTContainer.appendChild(l) - toolBarLTContainer.appendChild(r) - toolBarLTContainer.appendChild(s) - toolBarLTContainer.className = 'mind-elixir-toolbar lt' - l.onclick = () => { - mind.initLeft() - } - r.onclick = () => { - mind.initRight() - } - s.onclick = () => { - mind.initSide() - } - return toolBarLTContainer -} - -export default function (mind: MindElixirInstance) { - mind.container.append(createToolBarRBContainer(mind)) - mind.container.append(createToolBarLTContainer(mind)) -} diff --git a/mind-elixir-core-master/src/summary.ts b/mind-elixir-core-master/src/summary.ts deleted file mode 100644 index ec10a61..0000000 --- a/mind-elixir-core-master/src/summary.ts +++ /dev/null @@ -1,241 +0,0 @@ -import type { MindElixirInstance, Topic } from '.' -import { DirectionClass } from './types/index' -import { generateUUID, getOffsetLT, setAttributes } from './utils' -import { createSvgText, editSvgText, svgNS } from './utils/svg' - -/** - * @public - */ -export interface Summary { - id: string - label: string - /** - * parent node id of the summary - */ - parent: string - /** - * start index of the summary - */ - start: number - /** - * end index of the summary - */ - end: number -} - -export type SummarySvgGroup = SVGGElement & { - children: [SVGPathElement, SVGTextElement] - summaryObj: Summary -} - -const calcRange = function (nodes: Topic[]) { - if (nodes.length === 0) throw new Error('No selected node.') - if (nodes.length === 1) { - const obj = nodes[0].nodeObj - const parent = nodes[0].nodeObj.parent - if (!parent) throw new Error('Can not select root node.') - const i = parent.children!.findIndex(child => obj === child) - return { - parent: parent.id, - start: i, - end: i, - } - } - let maxLen = 0 - const parentChains = nodes.map(item => { - let node = item.nodeObj - const parentChain = [] - while (node.parent) { - const parent = node.parent - const siblings = parent.children - const index = siblings?.indexOf(node) - node = parent - parentChain.unshift({ node, index }) - } - if (parentChain.length > maxLen) maxLen = parentChain.length - return parentChain - }) - let index = 0 - // find minimum common parent - findMcp: for (; index < maxLen; index++) { - const base = parentChains[0][index]?.node - for (let i = 1; i < parentChains.length; i++) { - const parentChain = parentChains[i] - if (parentChain[index]?.node !== base) { - break findMcp - } - } - } - if (!index) throw new Error('Can not select root node.') - const range = parentChains.map(chain => chain[index - 1].index).sort() - const min = range[0] || 0 - const max = range[range.length - 1] || 0 - const parent = parentChains[0][index - 1].node - if (!parent.parent) throw new Error('Please select nodes in the same main topic.') - - return { - parent: parent.id, - start: min, - end: max, - } -} - -const creatGroup = function (id: string) { - const group = document.createElementNS(svgNS, 'g') as SummarySvgGroup - group.setAttribute('id', id) - return group -} - -const createPath = function (d: string, color?: string) { - const path = document.createElementNS(svgNS, 'path') - setAttributes(path, { - d, - stroke: color || '#666', - fill: 'none', - 'stroke-linecap': 'round', - 'stroke-width': '2', - }) - return path -} - -const getWrapper = (tpc: Topic) => tpc.parentElement.parentElement - -const getDirection = function (mei: MindElixirInstance, { parent, start }: Summary) { - const parentEl = mei.findEle(parent) - const parentObj = parentEl.nodeObj - let side: DirectionClass - if (parentObj.parent) { - side = parentEl.closest('me-main')!.className as DirectionClass - } else { - side = mei.findEle(parentObj.children![start].id).closest('me-main')!.className as DirectionClass - } - return side -} - -const drawSummary = function (mei: MindElixirInstance, summary: Summary) { - const { id, label: summaryText, parent, start, end } = summary - const { nodes, theme, summarySvg } = mei - const parentEl = mei.findEle(parent) - const parentObj = parentEl.nodeObj - const side = getDirection(mei, summary) - let left = Infinity - let right = 0 - let startTop = 0 - let endBottom = 0 - for (let i = start; i <= end; i++) { - const child = parentObj.children?.[i] - if (!child) { - console.warn('Child not found') - mei.removeSummary(id) - return null - } - const wrapper = getWrapper(mei.findEle(child.id)) - const { offsetLeft, offsetTop } = getOffsetLT(nodes, wrapper) - const offset = start === end ? 10 : 20 - if (i === start) startTop = offsetTop + offset - if (i === end) endBottom = offsetTop + wrapper.offsetHeight - offset - if (offsetLeft < left) left = offsetLeft - if (wrapper.offsetWidth + offsetLeft > right) right = wrapper.offsetWidth + offsetLeft - } - let path - let text - const top = startTop + 10 - const bottom = endBottom + 10 - const md = (top + bottom) / 2 - const color = theme.cssVar['--color'] - if (side === DirectionClass.LHS) { - path = createPath(`M ${left + 10} ${top} c -5 0 -10 5 -10 10 L ${left} ${bottom - 10} c 0 5 5 10 10 10 M ${left} ${md} h -10`, color) - text = createSvgText(summaryText, left - 20, md + 6, { anchor: 'end', color }) - } else { - path = createPath(`M ${right - 10} ${top} c 5 0 10 5 10 10 L ${right} ${bottom - 10} c 0 5 -5 10 -10 10 M ${right} ${md} h 10`, color) - text = createSvgText(summaryText, right + 20, md + 6, { anchor: 'start', color }) - } - const group = creatGroup('s-' + id) - group.appendChild(path) - group.appendChild(text) - group.summaryObj = summary - summarySvg.appendChild(group) - return group -} - -export const createSummary = function (this: MindElixirInstance) { - if (!this.currentNodes) return - const { currentNodes: nodes, summaries, bus } = this - const { parent, start, end } = calcRange(nodes) - const summary = { id: generateUUID(), parent, start, end, label: 'summary' } - const g = drawSummary(this, summary) as SummarySvgGroup - summaries.push(summary) - this.editSummary(g) - bus.fire('operation', { - name: 'createSummary', - obj: summary, - }) -} - -export const createSummaryFrom = function (this: MindElixirInstance, summary: Omit) { - // now I know the goodness of overloading - const id = generateUUID() - const newSummary = { ...summary, id } - drawSummary(this, newSummary) - this.summaries.push(newSummary) - this.bus.fire('operation', { - name: 'createSummary', - obj: newSummary, - }) -} - -export const removeSummary = function (this: MindElixirInstance, id: string) { - const index = this.summaries.findIndex(summary => summary.id === id) - if (index > -1) { - this.summaries.splice(index, 1) - document.querySelector('#s-' + id)?.remove() - } - this.bus.fire('operation', { - name: 'removeSummary', - obj: { id }, - }) -} - -export const selectSummary = function (this: MindElixirInstance, el: SummarySvgGroup) { - const box = el.children[1].getBBox() - const padding = 6 - const radius = 3 - const rect = document.createElementNS(svgNS, 'rect') - setAttributes(rect, { - x: box.x - padding + '', - y: box.y - padding + '', - width: box.width + padding * 2 + '', - height: box.height + padding * 2 + '', - rx: radius + '', - stroke: this.theme.cssVar['--selected'] || '#4dc4ff', - 'stroke-width': '2', - fill: 'none', - }) - el.appendChild(rect) - this.currentSummary = el -} - -export const unselectSummary = function (this: MindElixirInstance) { - this.currentSummary?.querySelector('rect')?.remove() - this.currentSummary = null -} - -export const renderSummary = function (this: MindElixirInstance) { - this.summarySvg.innerHTML = '' - this.summaries.forEach(summary => { - try { - drawSummary(this, summary) - } catch (e) { - console.warn('Node may not be expanded') - } - }) - this.nodes.insertAdjacentElement('beforeend', this.summarySvg) -} - -export const editSummary = function (this: MindElixirInstance, el: SummarySvgGroup) { - console.time('editSummary') - if (!el) return - const textEl = el.childNodes[1] as SVGTextElement - editSvgText(this, textEl, el.summaryObj) - console.timeEnd('editSummary') -} diff --git a/mind-elixir-core-master/src/types/dom.ts b/mind-elixir-core-master/src/types/dom.ts deleted file mode 100644 index 936cb40..0000000 --- a/mind-elixir-core-master/src/types/dom.ts +++ /dev/null @@ -1,61 +0,0 @@ -import type { Arrow } from '../arrow' -import type { NodeObj } from './index' - -export interface Wrapper extends HTMLElement { - firstChild: Parent - children: HTMLCollection & [Parent, Children] - parentNode: Children - parentElement: Children - offsetParent: Wrapper - previousSibling: Wrapper | null - nextSibling: Wrapper | null -} - -export interface Parent extends HTMLElement { - firstChild: Topic - children: HTMLCollection & [Topic, Expander | undefined] - parentNode: Wrapper - parentElement: Wrapper - nextSibling: Children - offsetParent: Wrapper -} - -export interface Children extends HTMLElement { - parentNode: Wrapper - children: HTMLCollection & Wrapper[] - parentElement: Wrapper - firstChild: Wrapper - previousSibling: Parent -} - -export interface Topic extends HTMLElement { - nodeObj: NodeObj - parentNode: Parent - parentElement: Parent - offsetParent: Parent - - text: HTMLSpanElement - expander?: Expander - - link?: HTMLElement - image?: HTMLImageElement - icons?: HTMLSpanElement - tags?: HTMLDivElement -} - -export interface Expander extends HTMLElement { - expanded?: boolean - parentNode: Parent - parentElement: Parent - previousSibling: Topic -} - -export type CustomLine = SVGPathElement -export type CustomArrow = SVGPathElement -export interface CustomSvg extends SVGGElement { - arrowObj: Arrow - label: SVGTextElement - line: SVGPathElement - arrow1: SVGPathElement - arrow2: SVGPathElement -} diff --git a/mind-elixir-core-master/src/types/global.ts b/mind-elixir-core-master/src/types/global.ts deleted file mode 100644 index 2afef43..0000000 --- a/mind-elixir-core-master/src/types/global.ts +++ /dev/null @@ -1,7 +0,0 @@ -export {} -declare global { - interface Element { - setAttribute(name: string, value: boolean): void - setAttribute(name: string, value: number): void - } -} diff --git a/mind-elixir-core-master/src/types/index.ts b/mind-elixir-core-master/src/types/index.ts deleted file mode 100644 index 6d50d10..0000000 --- a/mind-elixir-core-master/src/types/index.ts +++ /dev/null @@ -1,249 +0,0 @@ -import type { Topic, CustomSvg } from './dom' -import type { createBus, EventMap, Operation } from '../utils/pubsub' -import type { MindElixirMethods, OperationMap, Operations } from '../methods' -import type { LinkDragMoveHelperInstance } from '../utils/LinkDragMoveHelper' -import type { Arrow } from '../arrow' -import type { Summary, SummarySvgGroup } from '../summary' -import type { MainLineParams, SubLineParams } from '../utils/generateBranch' -import type { Locale } from '../i18n' -import type { ContextMenuOption } from '../plugin/contextMenu' -import type { createDragMoveHelper } from '../utils/dragMoveHelper' -import type SelectionArea from '@viselect/vanilla' -export { type MindElixirMethods } from '../methods' - -export enum DirectionClass { - LHS = 'lhs', - RHS = 'rhs', -} - -type Before = Partial<{ - [K in Operations]: (...args: Parameters) => Promise | boolean -}> - -/** - * MindElixir Theme - * - * @public - */ -export type Theme = { - name: string - /** - * Hint for developers to use the correct theme - */ - type?: 'light' | 'dark' - /** - * Color palette for main branches - */ - palette: string[] - cssVar: { - '--node-gap-x': string - '--node-gap-y': string - '--main-gap-x': string - '--main-gap-y': string - '--main-color': string - '--main-bgcolor': string - '--color': string - '--bgcolor': string - '--selected': string - '--accent-color': string - '--root-color': string - '--root-bgcolor': string - '--root-border-color': string - '--root-radius': string - '--main-radius': string - '--topic-padding': string - '--panel-color': string - '--panel-bgcolor': string - '--panel-border-color': string - '--map-padding': string - } -} - -export type Alignment = 'root' | 'nodes' - -export interface KeypressOptions { - [key: string]: (e: KeyboardEvent) => void -} - -/** - * The MindElixir instance - * - * @public - */ -export interface MindElixirInstance extends Omit, 'markdown' | 'imageProxy'>, MindElixirMethods { - markdown?: (markdown: string, obj: NodeObj) => string // Keep markdown as optional - imageProxy?: (url: string) => string // Keep imageProxy as optional - dragged: Topic[] | null // currently dragged nodes - el: HTMLElement - disposable: Array<() => void> - isFocusMode: boolean - nodeDataBackup: NodeObj - - nodeData: NodeObj - arrows: Arrow[] - summaries: Summary[] - - readonly currentNode: Topic | null - currentNodes: Topic[] - currentSummary: SummarySvgGroup | null - currentArrow: CustomSvg | null - waitCopy: Topic[] | null - - scaleVal: number - tempDirection: number | null - - container: HTMLElement - map: HTMLElement - root: HTMLElement - nodes: HTMLElement - lines: SVGElement - summarySvg: SVGElement - linkController: SVGElement - P2: HTMLElement - P3: HTMLElement - line1: SVGElement - line2: SVGElement - linkSvgGroup: SVGElement - /** - * @internal - */ - helper1?: LinkDragMoveHelperInstance - /** - * @internal - */ - helper2?: LinkDragMoveHelperInstance - - bus: ReturnType> - history: Operation[] - undo: () => void - redo: () => void - - selection: SelectionArea - dragMoveHelper: ReturnType -} -type PathString = string -/** - * The MindElixir options - * - * @public - */ -export interface Options { - el: string | HTMLElement - direction?: number - locale?: Locale - draggable?: boolean - editable?: boolean - contextMenu?: boolean | ContextMenuOption - toolBar?: boolean - keypress?: boolean | KeypressOptions - mouseSelectionButton?: 0 | 2 - before?: Before - newTopicName?: string - allowUndo?: boolean - overflowHidden?: boolean - generateMainBranch?: (this: MindElixirInstance, params: MainLineParams) => PathString - generateSubBranch?: (this: MindElixirInstance, params: SubLineParams) => PathString - theme?: Theme - selectionContainer?: string | HTMLElement - alignment?: Alignment - scaleSensitivity?: number - scaleMin?: number - scaleMax?: number - handleWheel?: true | ((e: WheelEvent) => void) - /** - * Custom markdown parser function that takes markdown string and returns HTML string - * If not provided, markdown will be disabled - * @default undefined - */ - markdown?: (markdown: string, obj: NodeObj) => string - /** - * Image proxy function to handle image URLs, mainly used to solve CORS issues - * If provided, all image URLs will be processed through this function before setting to img src - * @default undefined - */ - imageProxy?: (url: string) => string -} - -export type Uid = string - -export type Left = 0 -export type Right = 1 - -/** - * Tag object for node tags with optional styling - * - * @public - */ -export interface TagObj { - text: string - style?: Partial | Record - className?: string -} - -/** - * MindElixir node object - * - * @public - */ -export interface NodeObj { - topic: string - id: Uid - style?: Partial<{ - fontSize: string - fontFamily: string - color: string - background: string - fontWeight: string - width: string - border: string - textDecoration: string - }> - children?: NodeObj[] - tags?: (string | TagObj)[] - icons?: string[] - hyperLink?: string - expanded?: boolean - direction?: Left | Right - image?: { - url: string - width: number - height: number - fit?: 'fill' | 'contain' | 'cover' - } - /** - * The color of the branch. - */ - branchColor?: string - /** - * This property is added programatically, do not set it manually. - * - * the Root node has no parent! - */ - parent?: NodeObj - /** - * Render custom HTML in the node. - * - * Everything in the node will be replaced by this property. - */ - dangerouslySetInnerHTML?: string - /** - * Extra data for the node, which can be used to store any custom data. - */ - note?: string - // TODO: checkbox - // checkbox?: boolean | undefined -} -export type NodeObjExport = Omit - -/** - * The exported data of MindElixir - * - * @public - */ -export type MindElixirData = { - nodeData: NodeObj - arrows?: Arrow[] - summaries?: Summary[] - direction?: number - theme?: Theme -} diff --git a/mind-elixir-core-master/src/utils/LinkDragMoveHelper.ts b/mind-elixir-core-master/src/utils/LinkDragMoveHelper.ts deleted file mode 100644 index 89a4e35..0000000 --- a/mind-elixir-core-master/src/utils/LinkDragMoveHelper.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { on } from '.' - -const create = function (dom: HTMLElement) { - return { - dom, - moved: false, // differentiate click and move - pointerdown: false, - lastX: 0, - lastY: 0, - handlePointerMove(e: PointerEvent) { - if (this.pointerdown) { - this.moved = true - // Calculate delta manually since pointer events don't have movementX/Y - const deltaX = e.clientX - this.lastX - const deltaY = e.clientY - this.lastY - this.lastX = e.clientX - this.lastY = e.clientY - this.cb && this.cb(deltaX, deltaY) - } - }, - handlePointerDown(e: PointerEvent) { - if (e.button !== 0) return - this.pointerdown = true - this.lastX = e.clientX - this.lastY = e.clientY - // Set pointer capture for better tracking - this.dom.setPointerCapture(e.pointerId) - }, - handleClear(e: PointerEvent) { - this.pointerdown = false - // Release pointer capture - if (e.pointerId !== undefined) { - this.dom.releasePointerCapture(e.pointerId) - } - }, - cb: null as ((deltaX: number, deltaY: number) => void) | null, - init(map: HTMLElement, cb: (deltaX: number, deltaY: number) => void) { - this.cb = cb - this.handleClear = this.handleClear.bind(this) - this.handlePointerMove = this.handlePointerMove.bind(this) - this.handlePointerDown = this.handlePointerDown.bind(this) - this.destroy = on([ - { dom: map, evt: 'pointermove', func: this.handlePointerMove }, - { dom: map, evt: 'pointerleave', func: this.handleClear }, - { dom: map, evt: 'pointerup', func: this.handleClear }, - { dom: this.dom, evt: 'pointerdown', func: this.handlePointerDown }, - ]) - }, - destroy: null as (() => void) | null, - clear() { - this.moved = false - this.pointerdown = false - }, - } -} -const LinkDragMoveHelper = { - create, -} - -export type LinkDragMoveHelperInstance = ReturnType -export default LinkDragMoveHelper diff --git a/mind-elixir-core-master/src/utils/dom.ts b/mind-elixir-core-master/src/utils/dom.ts deleted file mode 100644 index c5063bc..0000000 --- a/mind-elixir-core-master/src/utils/dom.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { LEFT } from '../const' -import type { Topic, Wrapper, Parent, Children, Expander } from '../types/dom' -import type { MindElixirInstance, NodeObj } from '../types/index' -import { encodeHTML } from '../utils/index' -import { layoutChildren } from './layout' - -// DOM manipulation -const $d = document -export const findEle = function (this: MindElixirInstance, id: string, el?: HTMLElement) { - const scope = this?.el ? this.el : el ? el : document - const ele = scope.querySelector(`[data-nodeid="me${id}"]`) - if (!ele) throw new Error(`FindEle: Node ${id} not found, maybe it's collapsed.`) - return ele -} - -export const shapeTpc = function (this: MindElixirInstance, tpc: Topic, nodeObj: NodeObj) { - tpc.innerHTML = '' - - if (nodeObj.style) { - const style = nodeObj.style - type KeyOfStyle = keyof typeof style - for (const key in style) { - tpc.style[key as KeyOfStyle] = style[key as KeyOfStyle]! - } - } - - if (nodeObj.dangerouslySetInnerHTML) { - tpc.innerHTML = nodeObj.dangerouslySetInnerHTML - return - } - - if (nodeObj.image) { - const img = nodeObj.image - if (img.url && img.width && img.height) { - const imgEl = $d.createElement('img') - // Use imageProxy function if provided, otherwise use original URL - imgEl.src = this.imageProxy ? this.imageProxy(img.url) : img.url - imgEl.style.width = img.width + 'px' - imgEl.style.height = img.height + 'px' - if (img.fit) imgEl.style.objectFit = img.fit - tpc.appendChild(imgEl) - tpc.image = imgEl - } else { - console.warn('Image url/width/height are required') - } - } else if (tpc.image) { - tpc.image = undefined - } - - { - const textEl = $d.createElement('span') - textEl.className = 'text' - - // Check if markdown parser is provided and topic contains markdown syntax - if (this.markdown) { - textEl.innerHTML = this.markdown(nodeObj.topic, nodeObj) - } else { - textEl.textContent = nodeObj.topic - } - - tpc.appendChild(textEl) - tpc.text = textEl - } - - if (nodeObj.hyperLink) { - const linkEl = $d.createElement('a') - linkEl.className = 'hyper-link' - linkEl.target = '_blank' - linkEl.innerText = '🔗' - linkEl.href = nodeObj.hyperLink - tpc.appendChild(linkEl) - tpc.link = linkEl - } else if (tpc.link) { - tpc.link = undefined - } - - if (nodeObj.icons && nodeObj.icons.length) { - const iconsEl = $d.createElement('span') - iconsEl.className = 'icons' - iconsEl.innerHTML = nodeObj.icons.map(icon => `${encodeHTML(icon)}`).join('') - tpc.appendChild(iconsEl) - tpc.icons = iconsEl - } else if (tpc.icons) { - tpc.icons = undefined - } - - if (nodeObj.tags && nodeObj.tags.length) { - const tagsEl = $d.createElement('div') - tagsEl.className = 'tags' - - nodeObj.tags.forEach(tag => { - const span = $d.createElement('span') - - if (typeof tag === 'string') { - span.textContent = tag - } else { - span.textContent = tag.text - if (tag.className) { - span.className = tag.className - } - if (tag.style) { - Object.assign(span.style, tag.style) - } - } - - tagsEl.appendChild(span) - }) - - tpc.appendChild(tagsEl) - tpc.tags = tagsEl - } else if (tpc.tags) { - tpc.tags = undefined - } -} - -// everything start from `Wrapper` -export const createWrapper = function (this: MindElixirInstance, nodeObj: NodeObj, omitChildren?: boolean) { - const grp = $d.createElement('me-wrapper') as Wrapper - const { p, tpc } = this.createParent(nodeObj) - grp.appendChild(p) - if (!omitChildren && nodeObj.children && nodeObj.children.length > 0) { - const expander = createExpander(nodeObj.expanded) - p.appendChild(expander) - // tpc.expander = expander - if (nodeObj.expanded !== false) { - const children = layoutChildren(this, nodeObj.children) - grp.appendChild(children) - } - } - return { grp, top: p, tpc } -} - -export const createParent = function (this: MindElixirInstance, nodeObj: NodeObj) { - const p = $d.createElement('me-parent') as Parent - const tpc = this.createTopic(nodeObj) - shapeTpc.call(this, tpc, nodeObj) - p.appendChild(tpc) - return { p, tpc } -} - -export const createChildren = function (this: MindElixirInstance, wrappers: Wrapper[]) { - const children = $d.createElement('me-children') as Children - children.append(...wrappers) - return children -} - -export const createTopic = function (this: MindElixirInstance, nodeObj: NodeObj) { - const topic = $d.createElement('me-tpc') as Topic - topic.nodeObj = nodeObj - topic.dataset.nodeid = 'me' + nodeObj.id - topic.draggable = this.draggable - return topic -} - -export function selectText(div: HTMLElement) { - const range = $d.createRange() - range.selectNodeContents(div) - const getSelection = window.getSelection() - if (getSelection) { - getSelection.removeAllRanges() - getSelection.addRange(range) - } -} - -export const editTopic = function (this: MindElixirInstance, el: Topic) { - console.time('editTopic') - if (!el) return - const div = $d.createElement('div') - const node = el.nodeObj - - // Get the original content from topic - const originalContent = node.topic - - el.appendChild(div) - div.id = 'input-box' - div.textContent = originalContent - div.contentEditable = 'plaintext-only' - div.spellcheck = false - const style = getComputedStyle(el) - div.style.cssText = `min-width:${el.offsetWidth - 8}px; - color:${style.color}; - padding:${style.padding}; - margin:${style.margin}; - font:${style.font}; - background-color:${style.backgroundColor !== 'rgba(0, 0, 0, 0)' && style.backgroundColor}; - border-radius:${style.borderRadius};` - if (this.direction === LEFT) div.style.right = '0' - - selectText(div) - - this.bus.fire('operation', { - name: 'beginEdit', - obj: el.nodeObj, - }) - - div.addEventListener('keydown', e => { - e.stopPropagation() - const key = e.key - - if (key === 'Enter' || key === 'Tab') { - // keep wrap for shift enter - if (e.shiftKey) return - - e.preventDefault() - div.blur() - this.container.focus() - } - }) - - div.addEventListener('blur', () => { - if (!div) return - const inputContent = div.textContent?.trim() || '' - - if (inputContent === '') { - node.topic = originalContent - } else { - // Update topic content - node.topic = inputContent - - if (this.markdown) { - el.text.innerHTML = this.markdown(node.topic, node) - } else { - // Plain text content - el.text.textContent = inputContent - } - } - - div.remove() - - if (inputContent === originalContent) return - - this.linkDiv() - this.bus.fire('operation', { - name: 'finishEdit', - obj: node, - origin: originalContent, - }) - }) - console.timeEnd('editTopic') -} - -export const createExpander = function (expanded: boolean | undefined): Expander { - const expander = $d.createElement('me-epd') as Expander - // if expanded is undefined, treat as expanded - expander.expanded = expanded !== false - expander.className = expanded !== false ? 'minus' : '' - return expander -} diff --git a/mind-elixir-core-master/src/utils/domManipulation.ts b/mind-elixir-core-master/src/utils/domManipulation.ts deleted file mode 100644 index a6161e4..0000000 --- a/mind-elixir-core-master/src/utils/domManipulation.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { LEFT, RIGHT, SIDE } from '../const' -import { rmSubline } from '../nodeOperation' -import type { MindElixirInstance, NodeObj } from '../types' -import type { Topic, Wrapper } from '../types/dom' -import { createExpander } from './dom' - -// Judge new added node L or R -export const judgeDirection = function ({ map, direction }: MindElixirInstance, obj: NodeObj) { - if (direction === LEFT) { - return LEFT - } else if (direction === RIGHT) { - return RIGHT - } else if (direction === SIDE) { - const l = map.querySelector('.lhs')?.childElementCount || 0 - const r = map.querySelector('.rhs')?.childElementCount || 0 - if (l <= r) { - obj.direction = LEFT - return LEFT - } else { - obj.direction = RIGHT - return RIGHT - } - } -} - -export const addChildDom = function (mei: MindElixirInstance, to: Topic, wrapper: Wrapper) { - const tpc = wrapper.children[0].children[0] - const top = to.parentElement - if (top.tagName === 'ME-PARENT') { - rmSubline(tpc) - if (top.children[1]) { - top.nextSibling.appendChild(wrapper) - } else { - const c = mei.createChildren([wrapper]) - top.appendChild(createExpander(true)) - top.insertAdjacentElement('afterend', c) - } - mei.linkDiv(wrapper.offsetParent as Wrapper) - } else if (top.tagName === 'ME-ROOT') { - const direction = judgeDirection(mei, tpc.nodeObj) - if (direction === LEFT) { - mei.container.querySelector('.lhs')?.appendChild(wrapper) - } else { - mei.container.querySelector('.rhs')?.appendChild(wrapper) - } - mei.linkDiv() - } -} - -export const removeNodeDom = function (tpc: Topic, siblingLength: number) { - const p = tpc.parentNode - if (siblingLength === 0) { - // remove epd when children length === 0 - const c = p.parentNode.parentNode - if (c.tagName !== 'ME-MAIN') { - // Root - c.previousSibling.children[1]!.remove() // remove epd - c.remove() // remove Children div - } - } - p.parentNode.remove() -} diff --git a/mind-elixir-core-master/src/utils/dragMoveHelper.ts b/mind-elixir-core-master/src/utils/dragMoveHelper.ts deleted file mode 100644 index 7a664eb..0000000 --- a/mind-elixir-core-master/src/utils/dragMoveHelper.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { MindElixirInstance } from '../types/index' - -export function createDragMoveHelper(mei: MindElixirInstance) { - return { - x: 0, - y: 0, - moved: false, // diffrentiate click and move - mousedown: false, - onMove(deltaX: number, deltaY: number) { - if (this.mousedown) { - this.moved = true - mei.move(deltaX, deltaY) - } - }, - clear() { - this.mousedown = false - }, - } -} diff --git a/mind-elixir-core-master/src/utils/generateBranch.ts b/mind-elixir-core-master/src/utils/generateBranch.ts deleted file mode 100644 index c4bdbd6..0000000 --- a/mind-elixir-core-master/src/utils/generateBranch.ts +++ /dev/null @@ -1,80 +0,0 @@ -import type { MindElixirInstance } from '..' -import { DirectionClass } from '../types/index' - -export interface MainLineParams { - pT: number - pL: number - pW: number - pH: number - cT: number - cL: number - cW: number - cH: number - direction: DirectionClass - containerHeight: number -} - -export interface SubLineParams { - pT: number - pL: number - pW: number - pH: number - cT: number - cL: number - cW: number - cH: number - direction: DirectionClass - isFirst: boolean | undefined -} - -// https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d#path_commands - -export function main({ pT, pL, pW, pH, cT, cL, cW, cH, direction, containerHeight }: MainLineParams) { - let x1 = pL + pW / 2 - const y1 = pT + pH / 2 - let x2 - if (direction === DirectionClass.LHS) { - x2 = cL + cW - } else { - x2 = cL - } - const y2 = cT + cH / 2 - const pct = Math.abs(y2 - y1) / containerHeight - const offset = (1 - pct) * 0.25 * (pW / 2) - if (direction === DirectionClass.LHS) { - x1 = x1 - pW / 10 - offset - } else { - x1 = x1 + pW / 10 + offset - } - return `M ${x1} ${y1} Q ${x1} ${y2} ${x2} ${y2}` -} - -export function sub(this: MindElixirInstance, { pT, pL, pW, pH, cT, cL, cW, cH, direction, isFirst }: SubLineParams) { - const GAP = parseInt(this.container.style.getPropertyValue('--node-gap-x')) // cache? - // const GAP = 30 - let y1 = 0 - let end = 0 - if (isFirst) { - y1 = pT + pH / 2 - } else { - y1 = pT + pH - } - const y2 = cT + cH - let x1 = 0 - let x2 = 0 - let xMid = 0 - const offset = (Math.abs(y1 - y2) / 300) * GAP - if (direction === DirectionClass.LHS) { - xMid = pL - x1 = xMid + GAP - x2 = xMid - GAP - end = cL + GAP - return `M ${x1} ${y1} C ${xMid} ${y1} ${xMid + offset} ${y2} ${x2} ${y2} H ${end}` - } else { - xMid = pL + pW - x1 = xMid - GAP - x2 = xMid + GAP - end = cL + cW - GAP - return `M ${x1} ${y1} C ${xMid} ${y1} ${xMid - offset} ${y2} ${x2} ${y2} H ${end}` - } -} diff --git a/mind-elixir-core-master/src/utils/index.ts b/mind-elixir-core-master/src/utils/index.ts deleted file mode 100644 index 9314f68..0000000 --- a/mind-elixir-core-master/src/utils/index.ts +++ /dev/null @@ -1,192 +0,0 @@ -import type { Topic } from '../types/dom' -import type { NodeObj, MindElixirInstance, NodeObjExport } from '../types/index' - -export function encodeHTML(s: string) { - return s.replace(/&/g, '&').replace(/ /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) - -export const getObjById = function (id: string, data: NodeObj): NodeObj | null { - if (data.id === id) { - return data - } else if (data.children && data.children.length) { - for (let i = 0; i < data.children.length; i++) { - const res = getObjById(id, data.children[i]) - if (res) return res - } - return null - } else { - return null - } -} - -/** - * Add parent property to every node - */ -export const fillParent = (data: NodeObj, parent?: NodeObj) => { - data.parent = parent - if (data.children) { - for (let i = 0; i < data.children.length; i++) { - fillParent(data.children[i], data) - } - } -} - -export const setExpand = (node: NodeObj, isExpand: boolean, level?: number) => { - node.expanded = isExpand - if (node.children) { - if (level === undefined || level > 0) { - const nextLevel = level !== undefined ? level - 1 : undefined - node.children.forEach(child => { - setExpand(child, isExpand, nextLevel) - }) - } else { - node.children.forEach(child => { - setExpand(child, false) - }) - } - } -} - -export function refreshIds(data: NodeObj) { - data.id = generateUUID() - if (data.children) { - for (let i = 0; i < data.children.length; i++) { - refreshIds(data.children[i]) - } - } -} - -export const throttle = void>(fn: T, wait: number) => { - let pre = Date.now() - return function (...args: Parameters) { - const now = Date.now() - if (now - pre < wait) return - fn(...args) - pre = Date.now() - } -} - -export function getArrowPoints(p3x: number, p3y: number, p4x: number, p4y: number) { - const deltay = p4y - p3y - const deltax = p3x - p4x - let angle = (Math.atan(Math.abs(deltay) / Math.abs(deltax)) / 3.14) * 180 - if (isNaN(angle)) return - if (deltax < 0 && deltay > 0) { - angle = 180 - angle - } - if (deltax < 0 && deltay < 0) { - angle = 180 + angle - } - if (deltax > 0 && deltay < 0) { - angle = 360 - angle - } - const arrowLength = 12 - const arrowAngle = 30 - const a1 = angle + arrowAngle - const a2 = angle - arrowAngle - return { - x1: p4x + Math.cos((Math.PI * a1) / 180) * arrowLength, - y1: p4y - Math.sin((Math.PI * a1) / 180) * arrowLength, - x2: p4x + Math.cos((Math.PI * a2) / 180) * arrowLength, - y2: p4y - Math.sin((Math.PI * a2) / 180) * arrowLength, - } -} - -export function generateUUID(): string { - return (new Date().getTime().toString(16) + Math.random().toString(16).substr(2)).substr(2, 16) -} - -export const generateNewObj = function (this: MindElixirInstance): NodeObjExport { - const id = generateUUID() - return { - topic: this.newTopicName, - id, - } -} - -export function checkMoveValid(from: NodeObj, to: NodeObj) { - let valid = true - while (to.parent) { - if (to.parent === from) { - valid = false - break - } - to = to.parent - } - return valid -} - -export function deepClone(obj: NodeObj) { - const deepCloneObj = JSON.parse( - JSON.stringify(obj, (k, v) => { - if (k === 'parent') return undefined - return v - }) - ) - return deepCloneObj -} - -export const getOffsetLT = (parent: HTMLElement, child: HTMLElement) => { - let offsetLeft = 0 - let offsetTop = 0 - while (child && child !== parent) { - offsetLeft += child.offsetLeft - offsetTop += child.offsetTop - child = child.offsetParent as HTMLElement - } - return { offsetLeft, offsetTop } -} - -export const setAttributes = (el: HTMLElement | SVGElement, attrs: { [key: string]: string }) => { - for (const key in attrs) { - el.setAttribute(key, attrs[key]) - } -} - -export const isTopic = (target?: HTMLElement): target is Topic => { - return target ? target.tagName === 'ME-TPC' : false -} - -export const unionTopics = (nodes: Topic[]) => { - return nodes - .filter(node => node.nodeObj.parent) - .filter((node, _, nodes) => { - for (let i = 0; i < nodes.length; i++) { - if (node === nodes[i]) continue - const { parent } = node.nodeObj - if (parent === nodes[i].nodeObj) { - return false - } - } - return true - }) -} - -export const getTranslate = (styleText: string) => { - const regex = /translate\(([^,]+),\s*([^)]+)\)/ - const match = styleText.match(regex) - return match ? { x: parseFloat(match[1]), y: parseFloat(match[2]) } : { x: 0, y: 0 } -} - -export const on = function ( - list: { - [K in keyof GlobalEventHandlersEventMap]: { - dom: EventTarget - evt: K - func: (this: EventTarget, ev: GlobalEventHandlersEventMap[K]) => void - } - }[keyof GlobalEventHandlersEventMap][] -) { - for (let i = 0; i < list.length; i++) { - const { dom, evt, func } = list[i] - dom.addEventListener(evt, func as EventListener) - } - return function off() { - for (let i = 0; i < list.length; i++) { - const { dom, evt, func } = list[i] - dom.removeEventListener(evt, func as EventListener) - } - } -} diff --git a/mind-elixir-core-master/src/utils/layout-ssr.ts b/mind-elixir-core-master/src/utils/layout-ssr.ts deleted file mode 100644 index 907ad27..0000000 --- a/mind-elixir-core-master/src/utils/layout-ssr.ts +++ /dev/null @@ -1,321 +0,0 @@ -import { LEFT, RIGHT, SIDE } from '../const' -import { DirectionClass, type NodeObj, type TagObj } from '../types/index' - -/** - * Server-side compatible layout data structure - */ -export interface SSRLayoutNode { - id: string - topic: string - direction?: typeof LEFT | typeof RIGHT - style?: { - fontSize?: string - color?: string - background?: string - fontWeight?: string - } - children?: SSRLayoutNode[] - tags?: (string | TagObj)[] - icons?: string[] - hyperLink?: string - expanded?: boolean - image?: { - url: string - width: number - height: number - fit?: 'fill' | 'contain' | 'cover' - } - branchColor?: string - dangerouslySetInnerHTML?: string - note?: string -} - -/** - * SSR Layout result structure - */ -export interface SSRLayoutResult { - root: SSRLayoutNode - leftNodes: SSRLayoutNode[] - rightNodes: SSRLayoutNode[] - direction: number -} - -/** - * SSR Layout options - */ -export interface SSRLayoutOptions { - direction?: number - newTopicName?: string -} - -const nodesWrapper = (nodesString: string) => { - // don't add class="map-canvas" to prevent 20000px height - return `
    ${nodesString}
    ` -} - -/** - * Server-side compatible layout function for SSR - * This function processes the mind map data structure without DOM manipulation - * - * @param nodeData - The root node data - * @param options - Layout options including direction - * @returns Structured layout data for server-side rendering - */ -export const layoutSSR = function (nodeData: NodeObj, options: SSRLayoutOptions = {}): SSRLayoutResult { - const { direction = SIDE } = options - - // Convert NodeObj to SSRLayoutNode (removing parent references for serialization) - const convertToSSRNode = (node: NodeObj): SSRLayoutNode => { - const ssrNode: SSRLayoutNode = { - id: node.id, - topic: node.topic, - direction: node.direction, - style: node.style, - tags: node.tags, - icons: node.icons, - hyperLink: node.hyperLink, - expanded: node.expanded, - image: node.image, - branchColor: node.branchColor, - dangerouslySetInnerHTML: node.dangerouslySetInnerHTML, - note: node.note, - } - - if (node.children && node.children.length > 0) { - ssrNode.children = node.children.map(convertToSSRNode) - } - - return ssrNode - } - - // Create root node - const root = convertToSSRNode(nodeData) - - // Process main nodes (children of root) - const mainNodes = nodeData.children || [] - const leftNodes: SSRLayoutNode[] = [] - const rightNodes: SSRLayoutNode[] = [] - - if (direction === SIDE) { - // Distribute nodes between left and right sides - let lcount = 0 - let rcount = 0 - - mainNodes.forEach(node => { - const ssrNode = convertToSSRNode(node) - - if (node.direction === LEFT) { - ssrNode.direction = LEFT - leftNodes.push(ssrNode) - lcount += 1 - } else if (node.direction === RIGHT) { - ssrNode.direction = RIGHT - rightNodes.push(ssrNode) - rcount += 1 - } else { - // Auto-assign direction based on balance - if (lcount <= rcount) { - ssrNode.direction = LEFT - leftNodes.push(ssrNode) - lcount += 1 - } else { - ssrNode.direction = RIGHT - rightNodes.push(ssrNode) - rcount += 1 - } - } - }) - } else if (direction === LEFT) { - // All nodes go to left side - mainNodes.forEach(node => { - const ssrNode = convertToSSRNode(node) - ssrNode.direction = LEFT - leftNodes.push(ssrNode) - }) - } else { - // All nodes go to right side (RIGHT direction) - mainNodes.forEach(node => { - const ssrNode = convertToSSRNode(node) - ssrNode.direction = RIGHT - rightNodes.push(ssrNode) - }) - } - - return { - root, - leftNodes, - rightNodes, - direction, - } -} - -/** - * Generate HTML string for server-side rendering - * This function creates the HTML structure that would be generated by the DOM-based layout - * - * @param layoutResult - The result from layoutSSR function - * @param options - Additional rendering options - * @returns HTML string for server-side rendering - */ -export const renderSSRHTML = function ( - layoutResult: SSRLayoutResult, - options: { className?: string; imageProxy?: (url: string) => string } = {} -): string { - const { className = '' } = options - - const renderNode = (node: SSRLayoutNode, isRoot = false): string => { - const nodeId = `me${node.id}` - const topicClass = isRoot ? 'me-tpc' : 'me-tpc' - - let styleAttr = '' - if (node.style) { - const styles: string[] = [] - if (node.style.color) styles.push(`color: ${node.style.color}`) - if (node.style.background) styles.push(`background: ${node.style.background}`) - if (node.style.fontSize) styles.push(`font-size: ${node.style.fontSize}px`) - if (node.style.fontWeight) styles.push(`font-weight: ${node.style.fontWeight}`) - if (styles.length > 0) { - styleAttr = ` style="${styles.join('; ')}"` - } - } - - let topicContent = '' - if (node.dangerouslySetInnerHTML) { - topicContent = node.dangerouslySetInnerHTML - } else { - topicContent = escapeHtml(node.topic) - - // Add tags if present - if (node.tags && node.tags.length > 0) { - const tagsHtml = node.tags - .map(tag => { - if (typeof tag === 'string') { - // Compatible with legacy string configuration - return `${escapeHtml(tag)}` - } else { - // Support object configuration - let classAttr = 'me-tag' - if (tag.className) { - classAttr += ` ${tag.className}` - } - - let styleAttr = '' - if (tag.style) { - const styles = Object.entries(tag.style) - .filter(([_, value]) => value !== undefined && value !== null && value !== '') - .map(([key, value]) => { - // Convert camelCase to CSS property name - const cssKey = key.replace(/([A-Z])/g, '-$1').toLowerCase() - return `${cssKey}: ${value}` - }) - - if (styles.length > 0) { - styleAttr = ` style="${styles.join('; ')}"` - } - } - - return `${escapeHtml(tag.text)}` - } - }) - .join('') - topicContent += tagsHtml - } - - // Add icons if present - if (node.icons && node.icons.length > 0) { - const iconsHtml = node.icons.map(icon => `${icon}`).join('') - topicContent += iconsHtml - } - - // Add image if present - if (node.image) { - const { url, width, height, fit = 'cover' } = node.image - // Use imageProxy function if provided, otherwise use original URL - const processedUrl = options.imageProxy ? options.imageProxy(url) : url - topicContent += `` - } - } - - const topicHtml = `${topicContent}` - - if (isRoot) { - return `${topicHtml}` - } - - let childrenHtml = '' - if (node.children && node.children.length > 0 && node.expanded !== false) { - const childWrappers = node.children.map(child => renderWrapper(child)).join('') - childrenHtml = `${childWrappers}` - } - - const parentHtml = `${topicHtml}` - return `${parentHtml}${childrenHtml}` - } - - const renderWrapper = (node: SSRLayoutNode): string => { - return renderNode(node, false) - } - - const rootHtml = renderNode(layoutResult.root, true) - - const leftWrappers = layoutResult.leftNodes.map(node => renderWrapper(node)).join('') - const rightWrappers = layoutResult.rightNodes.map(node => renderWrapper(node)).join('') - - const leftPartHtml = `${leftWrappers}` - const rightPartHtml = `${rightWrappers}` - - return nodesWrapper(`
    ${leftPartHtml}${rootHtml}${rightPartHtml}
    `) -} - -/** - * Utility function to escape HTML characters - */ -function escapeHtml(text: string): string { - const div = typeof document !== 'undefined' ? document.createElement('div') : null - if (div) { - div.textContent = text - return div.innerHTML - } - - // Fallback for server-side - return text.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, ''') -} - -/** - * Generate JSON data structure for client-side hydration - * This can be used to pass the layout data to the client for hydration - * - * @param layoutResult - The result from layoutSSR function - * @returns JSON-serializable data structure - */ -export const getSSRData = function (layoutResult: SSRLayoutResult): string { - return JSON.stringify(layoutResult, null, 2) -} - -/** - * Hydration data structure for client-side initialization - */ -export interface HydrationData { - nodeData: NodeObj - layoutResult: SSRLayoutResult - options: { - direction: number - [key: string]: any - } - timestamp: number -} - -/** - * Generate complete hydration data including original nodeData - */ -export const getHydrationData = function (nodeData: NodeObj, layoutResult: SSRLayoutResult, options: any = {}): HydrationData { - return { - nodeData, - layoutResult, - options: { - direction: layoutResult.direction, - ...options, - }, - timestamp: Date.now(), - } -} diff --git a/mind-elixir-core-master/src/utils/layout.ts b/mind-elixir-core-master/src/utils/layout.ts deleted file mode 100644 index 794c242..0000000 --- a/mind-elixir-core-master/src/utils/layout.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { LEFT, RIGHT, SIDE } from '../const' -import type { Children } from '../types/dom' -import { DirectionClass, type MindElixirInstance, type NodeObj } from '../types/index' -import { shapeTpc } from './dom' - -const $d = document - -// Set main nodes' direction and invoke layoutChildren() -export const layout = function (this: MindElixirInstance) { - console.time('layout') - this.nodes.innerHTML = '' - - const tpc = this.createTopic(this.nodeData) - shapeTpc.call(this, tpc, this.nodeData) // shape root tpc - tpc.draggable = false - const root = $d.createElement('me-root') - root.appendChild(tpc) - - const mainNodes = this.nodeData.children || [] - if (this.direction === SIDE) { - // initiate direction of main nodes - let lcount = 0 - let rcount = 0 - mainNodes.map(node => { - if (node.direction === LEFT) { - lcount += 1 - } else if (node.direction === RIGHT) { - rcount += 1 - } else { - if (lcount <= rcount) { - node.direction = LEFT - lcount += 1 - } else { - node.direction = RIGHT - rcount += 1 - } - } - }) - } - layoutMainNode(this, mainNodes, root) - console.timeEnd('layout') -} - -const layoutMainNode = function (mei: MindElixirInstance, data: NodeObj[], root: HTMLElement) { - const leftPart = $d.createElement('me-main') - leftPart.className = DirectionClass.LHS - const rightPart = $d.createElement('me-main') - rightPart.className = DirectionClass.RHS - for (let i = 0; i < data.length; i++) { - const nodeObj = data[i] - const { grp: w } = mei.createWrapper(nodeObj) - if (mei.direction === SIDE) { - if (nodeObj.direction === LEFT) { - leftPart.appendChild(w) - } else { - rightPart.appendChild(w) - } - } else if (mei.direction === LEFT) { - leftPart.appendChild(w) - } else { - rightPart.appendChild(w) - } - } - - mei.nodes.appendChild(leftPart) - mei.nodes.appendChild(root) - mei.nodes.appendChild(rightPart) - - mei.nodes.appendChild(mei.lines) -} - -export const layoutChildren = function (mei: MindElixirInstance, data: NodeObj[]) { - const chldr = $d.createElement('me-children') as Children - for (let i = 0; i < data.length; i++) { - const nodeObj = data[i] - const { grp } = mei.createWrapper(nodeObj) - chldr.appendChild(grp) - } - return chldr -} diff --git a/mind-elixir-core-master/src/utils/objectManipulation.ts b/mind-elixir-core-master/src/utils/objectManipulation.ts deleted file mode 100644 index c972e60..0000000 --- a/mind-elixir-core-master/src/utils/objectManipulation.ts +++ /dev/null @@ -1,77 +0,0 @@ -import type { NodeObj } from '../types' - -const getSibling = (obj: NodeObj): { siblings: NodeObj[] | undefined; index: number } => { - const siblings = obj.parent?.children as NodeObj[] - const index = siblings?.indexOf(obj) ?? 0 - return { siblings, index } -} - -export function moveUpObj(obj: NodeObj) { - const { siblings, index } = getSibling(obj) - if (siblings === undefined) return - const t = siblings[index] - if (index === 0) { - siblings[index] = siblings[siblings.length - 1] - siblings[siblings.length - 1] = t - } else { - siblings[index] = siblings[index - 1] - siblings[index - 1] = t - } -} - -export function moveDownObj(obj: NodeObj) { - const { siblings, index } = getSibling(obj) - if (siblings === undefined) return - const t = siblings[index] - if (index === siblings.length - 1) { - siblings[index] = siblings[0] - siblings[0] = t - } else { - siblings[index] = siblings[index + 1] - siblings[index + 1] = t - } -} - -export function removeNodeObj(obj: NodeObj) { - const { siblings, index } = getSibling(obj) - if (siblings === undefined) return 0 - siblings.splice(index, 1) - return siblings.length -} - -export function insertNodeObj(newObj: NodeObj, type: 'before' | 'after', obj: NodeObj) { - const { siblings, index } = getSibling(obj) - if (siblings === undefined) return - if (type === 'before') { - siblings.splice(index, 0, newObj) - } else { - siblings.splice(index + 1, 0, newObj) - } -} - -export function insertParentNodeObj(obj: NodeObj, newObj: NodeObj) { - const { siblings, index } = getSibling(obj) - if (siblings === undefined) return - siblings[index] = newObj - newObj.children = [obj] -} - -export function moveNodeObj(type: 'in' | 'before' | 'after', from: NodeObj, to: NodeObj) { - removeNodeObj(from) - if (!to.parent?.parent) { - from.direction = to.direction - } - if (type === 'in') { - if (to.children) to.children.push(from) - else to.children = [from] - } else { - if (from.direction !== undefined) from.direction = to.direction - const { siblings, index } = getSibling(to) - if (siblings === undefined) return - if (type === 'before') { - siblings.splice(index, 0, from) - } else { - siblings.splice(index + 1, 0, from) - } - } -} diff --git a/mind-elixir-core-master/src/utils/pubsub.ts b/mind-elixir-core-master/src/utils/pubsub.ts deleted file mode 100644 index 312c24b..0000000 --- a/mind-elixir-core-master/src/utils/pubsub.ts +++ /dev/null @@ -1,117 +0,0 @@ -import type { Arrow } from '../arrow' -import type { Summary } from '../summary' -import type { NodeObj } from '../types/index' - -type NodeOperation = - | { - name: 'moveNodeIn' | 'moveDownNode' | 'moveUpNode' | 'copyNode' | 'addChild' | 'insertParent' | 'insertBefore' | 'beginEdit' - obj: NodeObj - } - | { - name: 'insertSibling' - type: 'before' | 'after' - obj: NodeObj - } - | { - name: 'reshapeNode' - obj: NodeObj - origin: NodeObj - } - | { - name: 'finishEdit' - obj: NodeObj - origin: string - } - | { - name: 'moveNodeAfter' | 'moveNodeBefore' | 'moveNodeIn' - objs: NodeObj[] - toObj: NodeObj - } - -type MultipleNodeOperation = - | { - name: 'removeNodes' - objs: NodeObj[] - } - | { - name: 'copyNodes' - objs: NodeObj[] - } - -export type SummaryOperation = - | { - name: 'createSummary' - obj: Summary - } - | { - name: 'removeSummary' - obj: { id: string } - } - | { - name: 'finishEditSummary' - obj: Summary - } - -export type ArrowOperation = - | { - name: 'createArrow' - obj: Arrow - } - | { - name: 'removeArrow' - obj: { id: string } - } - | { - name: 'finishEditArrowLabel' - obj: Arrow - } - -export type Operation = NodeOperation | MultipleNodeOperation | SummaryOperation | ArrowOperation -export type OperationType = Operation['name'] - -export type EventMap = { - operation: (info: Operation) => void - selectNewNode: (nodeObj: NodeObj) => void - selectNodes: (nodeObj: NodeObj[]) => void - unselectNodes: (nodeObj: NodeObj[]) => void - expandNode: (nodeObj: NodeObj) => void - linkDiv: () => void - scale: (scale: number) => void - move: (data: { dx: number; dy: number }) => void - /** - * please use throttling to prevent performance degradation - */ - updateArrowDelta: (arrow: Arrow) => void - showContextMenu: (e: MouseEvent) => void -} - -export function createBus void> = EventMap>() { - return { - handlers: {} as Record void)[]>, - addListener: function (type: K, handler: T[K]) { - if (this.handlers[type] === undefined) this.handlers[type] = [] - this.handlers[type].push(handler) - }, - fire: function (type: K, ...payload: Parameters) { - if (this.handlers[type] instanceof Array) { - const handlers = this.handlers[type] - for (let i = 0; i < handlers.length; i++) { - handlers[i](...payload) - } - } - }, - removeListener: function (type: K, handler: T[K]) { - if (!this.handlers[type]) return - const handlers = this.handlers[type] - if (!handler) { - handlers.length = 0 - } else if (handlers.length) { - for (let i = 0; i < handlers.length; i++) { - if (handlers[i] === handler) { - this.handlers[type].splice(i, 1) - } - } - } - }, - } -} diff --git a/mind-elixir-core-master/src/utils/svg.ts b/mind-elixir-core-master/src/utils/svg.ts deleted file mode 100644 index b3af557..0000000 --- a/mind-elixir-core-master/src/utils/svg.ts +++ /dev/null @@ -1,189 +0,0 @@ -import { setAttributes } from '.' -import type { Arrow } from '../arrow' -import type { Summary } from '../summary' -import type { MindElixirInstance } from '../types' -import type { CustomSvg } from '../types/dom' -import { selectText } from './dom' - -const $d = document -export const svgNS = 'http://www.w3.org/2000/svg' - -export interface SvgTextOptions { - anchor?: 'start' | 'middle' | 'end' - color?: string - dataType?: string -} - -/** - * Create an SVG text element with common attributes - */ -export const createSvgText = function (text: string, x: number, y: number, options: SvgTextOptions = {}): SVGTextElement { - const { anchor = 'middle', color, dataType } = options - - const textElement = document.createElementNS(svgNS, 'text') - setAttributes(textElement, { - 'text-anchor': anchor, - x: x + '', - y: y + '', - fill: color || (anchor === 'middle' ? 'rgb(235, 95, 82)' : '#666'), - }) - - if (dataType) { - textElement.dataset.type = dataType - } - - textElement.innerHTML = text - return textElement -} - -export const createPath = function (d: string, color: string, width: string) { - const path = $d.createElementNS(svgNS, 'path') - setAttributes(path, { - d, - stroke: color || '#666', - fill: 'none', - 'stroke-width': width, - }) - return path -} - -export const createLinkSvg = function (klass: string) { - const svg = $d.createElementNS(svgNS, 'svg') - svg.setAttribute('class', klass) - svg.setAttribute('overflow', 'visible') - return svg -} - -export const createLine = function () { - const line = $d.createElementNS(svgNS, 'line') - line.setAttribute('stroke', '#4dc4ff') - line.setAttribute('fill', 'none') - line.setAttribute('stroke-width', '2') - line.setAttribute('opacity', '0.45') - return line -} - -export const createSvgGroup = function ( - d: string, - arrowd1: string, - arrowd2: string, - style?: { - stroke?: string - strokeWidth?: string | number - strokeDasharray?: string - strokeLinecap?: 'butt' | 'round' | 'square' - opacity?: string | number - labelColor?: string - } -): CustomSvg { - const g = $d.createElementNS(svgNS, 'g') as CustomSvg - const svgs = [ - { - name: 'line', - d, - }, - { - name: 'arrow1', - d: arrowd1, - }, - { - name: 'arrow2', - d: arrowd2, - }, - ] as const - svgs.forEach((item, i) => { - const d = item.d - const path = $d.createElementNS(svgNS, 'path') - const attrs: { [key: string]: string } = { - d, - stroke: style?.stroke || 'rgb(235, 95, 82)', - fill: 'none', - 'stroke-linecap': style?.strokeLinecap || 'cap', - 'stroke-width': String(style?.strokeWidth || '2'), - } - - if (style?.opacity !== undefined) { - attrs['opacity'] = String(style.opacity) - } - - setAttributes(path, attrs) - - if (i === 0) { - // Apply stroke-dasharray to the main line - path.setAttribute('stroke-dasharray', style?.strokeDasharray || '8,2') - } - - const hotzone = $d.createElementNS(svgNS, 'path') - const hotzoneAttrs = { - d, - stroke: 'transparent', - fill: 'none', - 'stroke-width': '15', - } - setAttributes(hotzone, hotzoneAttrs) - g.appendChild(hotzone) - - g.appendChild(path) - g[item.name] = path - }) - return g -} - -export const editSvgText = function (mei: MindElixirInstance, textEl: SVGTextElement, node: Summary | Arrow) { - console.time('editSummary') - if (!textEl) return - const div = $d.createElement('div') - mei.nodes.appendChild(div) - const origin = textEl.innerHTML - div.id = 'input-box' - div.textContent = origin - div.contentEditable = 'plaintext-only' - div.spellcheck = false - const bbox = textEl.getBBox() - console.log(bbox) - div.style.cssText = ` - min-width:${Math.max(88, bbox.width)}px; - position:absolute; - left:${bbox.x}px; - top:${bbox.y}px; - padding: 2px 4px; - margin: -2px -4px; - ` - selectText(div) - mei.scrollIntoView(div) - - div.addEventListener('keydown', e => { - e.stopPropagation() - const key = e.key - - if (key === 'Enter' || key === 'Tab') { - // keep wrap for shift enter - if (e.shiftKey) return - - e.preventDefault() - div.blur() - mei.container.focus() - } - }) - div.addEventListener('blur', () => { - if (!div) return - const text = div.textContent?.trim() || '' - if (text === '') node.label = origin - else node.label = text - div.remove() - if (text === origin) return - textEl.innerHTML = node.label - - if ('parent' in node) { - mei.bus.fire('operation', { - name: 'finishEditSummary', - obj: node, - }) - } else { - mei.bus.fire('operation', { - name: 'finishEditArrowLabel', - obj: node, - }) - } - }) -} diff --git a/mind-elixir-core-master/src/utils/theme.ts b/mind-elixir-core-master/src/utils/theme.ts deleted file mode 100644 index 52f9892..0000000 --- a/mind-elixir-core-master/src/utils/theme.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { DARK_THEME, THEME } from '../const' -import type { MindElixirInstance } from '../types/index' -import type { Theme } from '../types/index' - -export const changeTheme = function (this: MindElixirInstance, theme: Theme, shouldRefresh = true) { - this.theme = theme - const base = theme.type === 'dark' ? DARK_THEME : THEME - const cssVar = { - ...base.cssVar, - ...theme.cssVar, - } - const keys = Object.keys(cssVar) - for (let i = 0; i < keys.length; i++) { - const key = keys[i] as keyof typeof cssVar - this.container.style.setProperty(key, cssVar[key] as string) - } - shouldRefresh && this.refresh() -} diff --git a/mind-elixir-core-master/src/vite-env.d.ts b/mind-elixir-core-master/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/mind-elixir-core-master/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/mind-elixir-core-master/tests/MindElixirFixture.ts b/mind-elixir-core-master/tests/MindElixirFixture.ts deleted file mode 100644 index dee5785..0000000 --- a/mind-elixir-core-master/tests/MindElixirFixture.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { type Page, type Locator, expect } from '@playwright/test' -import type { MindElixirCtor, MindElixirData, MindElixirInstance, Options } from '../src' -import type MindElixir from '../src' -interface Window { - m: MindElixirInstance - MindElixir: MindElixirCtor - E: typeof MindElixir.E -} -declare let window: Window - -export class MindElixirFixture { - private m: MindElixirInstance - - constructor(public readonly page: Page) { - // - } - - async goto() { - await this.page.goto('http://localhost:23334/test.html') - } - async init(data: MindElixirData, el = '#map') { - // evaluate return Serializable value - await this.page.evaluate( - ({ data, el }) => { - const MindElixir = window.MindElixir - const options: Options = { - el, - direction: MindElixir.SIDE, - allowUndo: true, // Enable undo/redo functionality for tests - keypress: true, // Enable keyboard shortcuts - editable: true, // Enable editing - } - const mind = new MindElixir(options) - mind.init(JSON.parse(JSON.stringify(data))) - window[el] = mind - return mind - }, - { data, el } - ) - } - async getInstance(el = '#map') { - const instanceHandle = await this.page.evaluateHandle(el => Promise.resolve(window[el] as MindElixirInstance), el) - return instanceHandle - } - async getData(el = '#map') { - const data = await this.page.evaluate(el => { - return window[el].getData() - }, el) - // console.log(a) - // const dataHandle = await this.page.evaluateHandle(() => Promise.resolve(window.m.getData())) - // const data = await dataHandle.jsonValue() - return data - } - async dblclick(topic: string) { - await this.page.getByText(topic, { exact: true }).dblclick({ - force: true, - }) - } - async click(topic: string) { - await this.page.getByText(topic, { exact: true }).click({ - force: true, - }) - } - getByText(topic: string) { - return this.page.getByText(topic, { exact: true }) - } - async dragOver(topic: string, type: 'before' | 'after' | 'in') { - await this.page.getByText(topic).hover({ force: true }) - await this.page.mouse.down() - const target = await this.page.getByText(topic) - const box = (await target.boundingBox())! - const y = type === 'before' ? -12 : type === 'after' ? box.height + 12 : box.height / 2 - // https://playwright.dev/docs/input#dragging-manually - // If your page relies on the dragover event being dispatched, you need at least two mouse moves to trigger it in all browsers. - await this.page.mouse.move(box.x + box.width / 2, box.y + y) - await this.page.waitForTimeout(100) // throttle - await this.page.mouse.move(box.x + box.width / 2, box.y + y) - } - async dragSelect(topic1: string, topic2: string) { - // Get the bounding boxes for both topics - const element1 = this.page.getByText(topic1, { exact: true }) - const element2 = this.page.getByText(topic2, { exact: true }) - - const box1 = await element1.boundingBox() - const box2 = await element2.boundingBox() - - if (!box1 || !box2) { - throw new Error(`Could not find bounding box for topics: ${topic1}, ${topic2}`) - } - - // Calculate the selection area coordinates - // Find the minimum and maximum x, y coordinates - const minX = Math.min(box1.x, box2.x) - 10 - const minY = Math.min(box1.y, box2.y) - 10 - const maxX = Math.max(box1.x + box1.width, box2.x + box2.width) + 10 - const maxY = Math.max(box1.y + box1.height, box2.y + box2.height) + 10 - - // Perform the drag selection - await this.page.mouse.move(minX, minY) - await this.page.mouse.down() - await this.page.waitForTimeout(100) // throttle - await this.page.mouse.move(maxX, maxY) - await this.page.mouse.up() - } - async toHaveScreenshot(locator?: Locator) { - await expect(locator || this.page.locator('me-nodes')).toHaveScreenshot({ - maxDiffPixelRatio: 0.02, - }) - } -} diff --git a/mind-elixir-core-master/tests/arrow.spec.ts b/mind-elixir-core-master/tests/arrow.spec.ts deleted file mode 100644 index afa774c..0000000 --- a/mind-elixir-core-master/tests/arrow.spec.ts +++ /dev/null @@ -1,729 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'Root Topic', - id: 'root', - children: [ - { - id: 'left-main', - topic: 'Left Main', - children: [ - { - id: 'left-child-1', - topic: 'Left Child 1', - }, - { - id: 'left-child-2', - topic: 'Left Child 2', - }, - { - id: 'left-child-3', - topic: 'Left Child 3', - }, - ], - }, - { - id: 'right-main', - topic: 'Right Main', - children: [ - { - id: 'right-child-1', - topic: 'Right Child 1', - }, - { - id: 'right-child-2', - topic: 'Right Child 2', - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Create arrow between two nodes', async ({ page, me }) => { - // Get the MindElixir instance and create arrow programmatically - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create arrow between two nodes - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Verify arrow SVG group appears - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify arrow path is visible - await expect(page.locator('svg g[data-linkid] path').first()).toBeVisible() - - // Verify arrow head is visible - await expect(page.locator('svg g[data-linkid] path').nth(1)).toBeVisible() - - // Verify arrow label is visible - await expect(page.locator('svg g[data-linkid] text')).toBeVisible() - await expect(page.locator('svg g[data-linkid] text')).toHaveText('Custom Link') -}) - -test('Create arrow with custom options', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create arrow with custom style options - instance.createArrow(leftChild1, rightChild1, { - bidirectional: true, - style: { - stroke: '#ff0000', - strokeWidth: '3', - strokeDasharray: '5,5', - labelColor: '#0000ff', - }, - }) - }, instanceHandle) - - // Verify arrow appears - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify arrow appears with bidirectional option - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify multiple paths exist for bidirectional arrow (includes hotzone and highlight paths) - const pathCount = await page.locator('svg g[data-linkid] path').count() - expect(pathCount).toBeGreaterThan(3) // Should have more than 3 paths for bidirectional - - // Verify custom label color - const arrowLabel = page.locator('svg g[data-linkid] text') - await expect(arrowLabel).toHaveAttribute('fill', '#0000ff') -}) - -test('Create arrow from arrow object', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - // Create arrow from arrow object - instance.createArrowFrom({ - label: 'Test Arrow', - from: 'left-child-1', - to: 'right-child-1', - delta1: { x: 50, y: 20 }, - delta2: { x: -50, y: -20 }, - style: { - stroke: '#00ff00', - strokeWidth: '2', - }, - }) - }, instanceHandle) - - // Verify arrow appears - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify custom label - await expect(page.locator('svg g[data-linkid] text')).toHaveText('Test Arrow') - - // Verify arrow appears with custom properties - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify at least one path has the custom style (may be applied to different elements) - const hasCustomStroke = await page.evaluate(() => { - const paths = document.querySelectorAll('svg g[data-linkid] path') - return Array.from(paths).some(path => path.getAttribute('stroke') === '#00ff00' || path.getAttribute('stroke-width') === '2') - }) - expect(hasCustomStroke).toBe(true) -}) - -test('Select and highlight arrow', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Click on the arrow to select it - await page.locator('svg g[data-linkid]').click() - - // Verify highlight appears (highlight group with higher opacity) - await expect(page.locator('svg g[data-linkid] .arrow-highlight')).toBeVisible() - - // Verify control points appear (they are div elements with class 'circle') - await expect(page.locator('.circle').first()).toBeVisible() - await expect(page.locator('.circle').last()).toBeVisible() - - // Verify link controller appears - await expect(page.locator('.linkcontroller')).toBeVisible() -}) - -test('Remove arrow', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Verify arrow exists - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Remove arrow programmatically - await page.evaluate(async instance => { - instance.removeArrow() - }, instanceHandle) - - // Verify arrow is removed - await expect(page.locator('svg g[data-linkid]')).not.toBeVisible() -}) - -test('Edit arrow label', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Double click on arrow label to edit - await page.locator('svg g[data-linkid] text').dblclick() - - // Verify input box appears - await expect(page.locator('#input-box')).toBeVisible() - - // Type new label - await page.keyboard.press('Control+a') - await page.keyboard.insertText('Updated Arrow Label') - await page.keyboard.press('Enter') - - // Verify input box disappears - await expect(page.locator('#input-box')).toBeHidden() - - // Verify new label is displayed - await expect(page.locator('svg g[data-linkid] text')).toHaveText('Updated Arrow Label') -}) - -test('Unselect arrow', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Select arrow - await page.locator('svg g[data-linkid]').click() - await expect(page.locator('svg g[data-linkid] .arrow-highlight')).toBeVisible() - - // Unselect arrow programmatically - await page.evaluate(async instance => { - instance.unselectArrow() - }, instanceHandle) - - // Verify highlight disappears - await expect(page.locator('svg g[data-linkid] .arrow-highlight')).not.toBeVisible() - - // Verify control points disappear - await expect(page.locator('.circle').first()).not.toBeVisible() - await expect(page.locator('.circle').last()).not.toBeVisible() -}) - -test('Render multiple arrows', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create multiple arrows - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const leftChild2 = instance.findEle('left-child-2') - const rightChild1 = instance.findEle('right-child-1') - const rightChild2 = instance.findEle('right-child-2') - - // Create first arrow - instance.createArrow(leftChild1, rightChild1) - - // Create second arrow - instance.createArrow(leftChild2, rightChild2) - }, instanceHandle) - - // Verify both arrows exist - await expect(page.locator('svg g[data-linkid]')).toHaveCount(2) - - // Verify both have labels - await expect(page.locator('svg g[data-linkid] text')).toHaveCount(2) -}) - -test('Arrow positioning and bezier curve', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Get arrow path element - const arrowPath = page.locator('svg g[data-linkid] path').first() - - // Verify path has bezier curve (should contain 'C' command) - const pathData = await arrowPath.getAttribute('d') - expect(pathData).toContain('M') // Move to start point - expect(pathData).toContain('C') // Cubic bezier curve - - // Verify arrow label is positioned at curve midpoint - const arrowLabel = page.locator('svg g[data-linkid] text') - await expect(arrowLabel).toBeVisible() - - // Label should have x and y coordinates - const labelX = await arrowLabel.getAttribute('x') - const labelY = await arrowLabel.getAttribute('y') - expect(labelX).toBeTruthy() - expect(labelY).toBeTruthy() -}) - -test('Arrow style inheritance and defaults', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create arrow without custom styles - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Verify default styles are applied - const arrowPath = page.locator('svg g[data-linkid] path').first() - - // Check default stroke attributes exist - const stroke = await arrowPath.getAttribute('stroke') - const strokeWidth = await arrowPath.getAttribute('stroke-width') - const fill = await arrowPath.getAttribute('fill') - - expect(stroke).toBeTruthy() - expect(strokeWidth).toBeTruthy() - expect(fill).toBe('none') // Arrows should not be filled - - // Verify default label color - const arrowLabel = page.locator('svg g[data-linkid] text') - const labelFill = await arrowLabel.getAttribute('fill') - expect(labelFill).toBeTruthy() -}) - -test('Arrow with opacity style', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create arrow with opacity - instance.createArrow(leftChild1, rightChild1, { - style: { - opacity: '0.5', - }, - }) - }, instanceHandle) - - // Verify arrow appears with opacity style - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify at least one path has opacity applied - const hasOpacity = await page.evaluate(() => { - const paths = document.querySelectorAll('svg g[data-linkid] path') - return Array.from(paths).some(path => path.getAttribute('opacity') === '0.5') - }) - expect(hasOpacity).toBe(true) -}) - -test('Bidirectional arrow rendering', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create bidirectional arrow - instance.createArrow(leftChild1, rightChild1, { - bidirectional: true, - }) - }, instanceHandle) - - // Verify bidirectional arrow appears with multiple paths - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify multiple paths exist (should be more than a simple arrow) - const pathCount = await page.locator('svg g[data-linkid] path').count() - expect(pathCount).toBeGreaterThan(2) // Should have more paths for bidirectional - - // Verify paths have basic stroke attributes - const paths = page.locator('svg g[data-linkid] path') - const firstPath = paths.first() - await expect(firstPath).toHaveAttribute('fill', 'none') -}) - -test('Arrow control point manipulation', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Select arrow to show control points - await page.locator('svg g[data-linkid]').click() - - // Verify control points are visible - const p2Element = page.locator('.circle').first() - const p3Element = page.locator('.circle').last() - await expect(p2Element).toBeVisible() - await expect(p3Element).toBeVisible() - - // Get initial positions - const p2InitialBox = await p2Element.boundingBox() - - // Drag P2 control point - await p2Element.hover() - await page.mouse.down() - await page.mouse.move(p2InitialBox!.x + 50, p2InitialBox!.y + 30) - await page.mouse.up() - - // Verify control point moved - const p2NewBox = await p2Element.boundingBox() - expect(Math.abs(p2NewBox!.x - (p2InitialBox!.x + 50))).toBeLessThan(10) - expect(Math.abs(p2NewBox!.y - (p2InitialBox!.y + 30))).toBeLessThan(10) -}) - -test('Arrow deletion via keyboard', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Select arrow - await page.locator('svg g[data-linkid]').click() - await expect(page.locator('svg g[data-linkid] .arrow-highlight')).toBeVisible() - - // Delete arrow using keyboard - await page.keyboard.press('Delete') - - // Verify arrow is removed - await expect(page.locator('svg g[data-linkid]')).not.toBeVisible() -}) - -test('Arrow with stroke linecap styles', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create arrow with round linecap - instance.createArrow(leftChild1, rightChild1, { - style: { - strokeLinecap: 'round', - }, - }) - }, instanceHandle) - - // Verify arrow appears with linecap style - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify at least one path has the linecap style - const hasLinecap = await page.evaluate(() => { - const paths = document.querySelectorAll('svg g[data-linkid] path') - return Array.from(paths).some(path => path.getAttribute('stroke-linecap') === 'round') - }) - expect(hasLinecap).toBe(true) -}) - -test('Arrow label text anchor positioning', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Verify arrow label has middle text anchor (centered) - const arrowLabel = page.locator('svg g[data-linkid] text') - await expect(arrowLabel).toHaveAttribute('text-anchor', 'middle') - - // Verify label has custom-link data type - await expect(arrowLabel).toHaveAttribute('data-type', 'custom-link') -}) - -test('Arrow rendering after node expansion/collapse', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow between child nodes - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Verify arrow exists - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Collapse left main node by clicking its expander - const leftMainExpander = page.locator('me-tpc[data-nodeid="meleft-main"] me-expander') - if (await leftMainExpander.isVisible()) { - await leftMainExpander.click() - } - - // Arrow should still exist but may not be visible due to collapsed nodes - // This tests the robustness of arrow rendering - - // Expand left main node again - if (await leftMainExpander.isVisible()) { - await leftMainExpander.click() - } - - // Re-render arrows - await page.evaluate(async instance => { - instance.renderArrow() - }, instanceHandle) - - // Verify arrow is visible again - await expect(page.locator('svg g[data-linkid]')).toBeVisible() -}) - -test('Multiple arrow selection state management', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create two arrows - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const leftChild2 = instance.findEle('left-child-2') - const rightChild1 = instance.findEle('right-child-1') - const rightChild2 = instance.findEle('right-child-2') - - instance.createArrow(leftChild1, rightChild1) - instance.createArrow(leftChild2, rightChild2) - }, instanceHandle) - - const arrows = page.locator('svg g[data-linkid]') - const firstArrow = arrows.first() - const secondArrow = arrows.last() - - // Select first arrow - await firstArrow.click() - await expect(page.locator('.arrow-highlight').first()).toBeVisible() - - // Select second arrow - await secondArrow.click() - await expect(page.locator('.arrow-highlight').first()).toBeVisible() - - // Click elsewhere to deselect - await page.locator('#map').click() - - // Wait a bit for deselection to take effect - await page.waitForTimeout(200) - - // Verify that selection state has changed (may still have some highlights due to timing) - // The important thing is that the selection behavior works - const arrowsExist = await page.locator('svg g[data-linkid]').count() - expect(arrowsExist).toBe(2) // Both arrows should still exist -}) - -test('Arrow data persistence and retrieval', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow with specific properties - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - instance.createArrow(leftChild1, rightChild1, { - bidirectional: true, - style: { - stroke: '#ff6600', - strokeWidth: '4', - labelColor: '#333333', - }, - }) - }, instanceHandle) - - // Get arrow data from instance - const arrowData = await page.evaluate(async instance => { - return instance.arrows[0] - }, instanceHandle) - - // Verify arrow properties are correctly stored - expect(arrowData.label).toBe('Custom Link') - expect(arrowData.from).toBe('left-child-1') - expect(arrowData.to).toBe('right-child-1') - expect(arrowData.bidirectional).toBe(true) - expect(arrowData.style?.stroke).toBe('#ff6600') - expect(arrowData.style?.strokeWidth).toBe('4') - expect(arrowData.style?.labelColor).toBe('#333333') - expect(arrowData.id).toBeTruthy() -}) - -test('Arrow tidy function removes invalid arrows', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Verify arrow exists - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Simulate removing a node that the arrow references - await page.evaluate(async instance => { - // Manually corrupt arrow data to simulate invalid reference - instance.arrows[0].to = 'non-existent-node' - - // Run tidy function - instance.tidyArrow() - }, instanceHandle) - - // Verify arrow was removed by tidy function - const arrowCount = await page.evaluate(async instance => { - return instance.arrows.length - }, instanceHandle) - - expect(arrowCount).toBe(0) -}) - -test('Arrow highlight update during control point drag', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Create arrow first - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Select arrow to show control points - await page.locator('svg g[data-linkid]').click() - - // Verify highlight is visible - await expect(page.locator('svg g[data-linkid] .arrow-highlight')).toBeVisible() - - // Get initial highlight path - const initialHighlightPath = await page.locator('svg g[data-linkid] .arrow-highlight path').first().getAttribute('d') - - // Drag control point to change arrow shape - const p2Element = page.locator('.circle').first() - const p2Box = await p2Element.boundingBox() - await p2Element.hover() - await page.mouse.down() - await page.mouse.move(p2Box!.x + 100, p2Box!.y + 50) - await page.mouse.up() - - // Verify highlight path updated - const updatedHighlightPath = await page.locator('svg g[data-linkid] .arrow-highlight path').first().getAttribute('d') - expect(updatedHighlightPath).not.toBe(initialHighlightPath) -}) - -test('Arrow creation with invalid nodes', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - // Try to create arrow with undefined nodes (simulating collapsed/hidden nodes) - await page.evaluate(async instance => { - try { - // Simulate trying to create arrow when nodes are not found - const nonExistentNode1 = instance.findEle('non-existent-1') - const nonExistentNode2 = instance.findEle('non-existent-2') - - // This should not create an arrow since nodes don't exist - if (nonExistentNode1 && nonExistentNode2) { - instance.createArrow(nonExistentNode1, nonExistentNode2) - } - } catch (error) { - // Expected to fail gracefully - console.log('Arrow creation failed as expected:', error.message) - } - }, instanceHandle) - - // Verify no arrow was created - await expect(page.locator('svg g[data-linkid]')).not.toBeVisible() -}) - -test('Arrow bezier midpoint calculation', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - instance.createArrow(leftChild1, rightChild1) - }, instanceHandle) - - // Get arrow label position - const labelX = await page.locator('svg g[data-linkid] text').getAttribute('x') - const labelY = await page.locator('svg g[data-linkid] text').getAttribute('y') - - // Verify label is positioned (should have numeric coordinates) - expect(parseFloat(labelX!)).toBeGreaterThan(0) - expect(parseFloat(labelY!)).toBeGreaterThan(0) - - // Get arrow path to verify label is positioned along the curve - const pathData = await page.locator('svg g[data-linkid] path').first().getAttribute('d') - expect(pathData).toContain('M') // Move command - expect(pathData).toContain('C') // Cubic bezier command -}) - -test('Arrow style application to all elements', async ({ page, me }) => { - const instanceHandle = await me.getInstance() - - await page.evaluate(async instance => { - const leftChild1 = instance.findEle('left-child-1') - const rightChild1 = instance.findEle('right-child-1') - - // Create bidirectional arrow with comprehensive styles - instance.createArrow(leftChild1, rightChild1, { - bidirectional: true, - style: { - stroke: '#purple', - strokeWidth: '5', - strokeDasharray: '10,5', - strokeLinecap: 'square', - opacity: '0.8', - labelColor: '#orange', - }, - }) - }, instanceHandle) - - // Verify arrow appears with comprehensive styles - await expect(page.locator('svg g[data-linkid]')).toBeVisible() - - // Verify styles are applied to arrow elements - const hasStyles = await page.evaluate(() => { - const paths = document.querySelectorAll('svg g[data-linkid] path') - const hasStroke = Array.from(paths).some(path => path.getAttribute('stroke') === '#purple') - const hasWidth = Array.from(paths).some(path => path.getAttribute('stroke-width') === '5') - const hasOpacity = Array.from(paths).some(path => path.getAttribute('opacity') === '0.8') - return hasStroke && hasWidth && hasOpacity - }) - expect(hasStyles).toBe(true) - - // Verify label color - const label = page.locator('svg g[data-linkid] text') - await expect(label).toHaveAttribute('fill', '#orange') -}) diff --git a/mind-elixir-core-master/tests/drag-and-drop.spec.ts b/mind-elixir-core-master/tests/drag-and-drop.spec.ts deleted file mode 100644 index 36ba107..0000000 --- a/mind-elixir-core-master/tests/drag-and-drop.spec.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const m1 = 'm1' -const m2 = 'm2' -const childTopic = 'child-topic' -const data = { - nodeData: { - topic: 'root-topic', - id: 'root-id', - children: [ - { - id: m1, - topic: m1, - children: [ - { - id: 'child', - topic: childTopic, - }, - ], - }, - { - id: m2, - topic: m2, - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('DnD move before', async ({ page, me }) => { - await page.getByText(m2).hover({ force: true }) - await page.mouse.down() - await me.dragOver(m1, 'before') - await expect(page.locator('.insert-preview.before')).toBeVisible() - await page.mouse.up() - await me.toHaveScreenshot() -}) - -test('DnD move after', async ({ page, me }) => { - await page.getByText(m2).hover({ force: true }) - await page.mouse.down() - await me.dragOver(m1, 'after') - await expect(page.locator('.insert-preview.after')).toBeVisible() - await page.mouse.up() - await me.toHaveScreenshot() -}) - -test('DnD move in', async ({ page, me }) => { - await page.getByText(m2).hover({ force: true }) - await page.mouse.down() - await me.dragOver(m1, 'in') - await expect(page.locator('.insert-preview.in')).toBeVisible() - await page.mouse.up() - await me.toHaveScreenshot() -}) diff --git a/mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-after-1-chromium-win32.png b/mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-after-1-chromium-win32.png deleted file mode 100644 index eefc1fb33670b9183478188e5634c3af554b5dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12961 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 -& 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 GH~$A^-&6Vk diff --git a/mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-before-1-chromium-win32.png b/mind-elixir-core-master/tests/drag-and-drop.spec.ts-snapshots/DnD-move-before-1-chromium-win32.png deleted file mode 100644 index e993606c93f62c24abb35a6c17bd707d0843361c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12903 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 diff --git a/mind-elixir-core-master/tests/expand-collapse.spec.ts b/mind-elixir-core-master/tests/expand-collapse.spec.ts deleted file mode 100644 index 99128f7..0000000 --- a/mind-elixir-core-master/tests/expand-collapse.spec.ts +++ /dev/null @@ -1,191 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'root', - id: 'root', - children: [ - { - id: 'branch1', - topic: 'Branch 1', - expanded: true, - children: [ - { - id: 'child1', - topic: 'Child 1', - }, - { - id: 'child2', - topic: 'Child 2', - children: [ - { - id: 'grandchild1', - topic: 'Grandchild 1', - }, - { - id: 'grandchild2', - topic: 'Grandchild 2', - }, - ], - }, - ], - }, - { - id: 'branch2', - topic: 'Branch 2', - expanded: false, // Initially collapsed - children: [ - { - id: 'child3', - topic: 'Child 3', - }, - { - id: 'child4', - topic: 'Child 4', - }, - ], - }, - { - id: 'branch3', - topic: 'Branch 3', - children: [ - { - id: 'child5', - topic: 'Child 5', - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Expand collapsed node', async ({ page, me }) => { - // Verify initial state: Branch 2 is collapsed - const branch2 = page.getByText('Branch 2', { exact: true }) - await expect(branch2).toBeVisible() - - // Child nodes should not be visible - await expect(page.getByText('Child 3', { exact: true })).not.toBeVisible() - await expect(page.getByText('Child 4', { exact: true })).not.toBeVisible() - - // Click expand button - const expandButton = page.locator('me-tpc[data-nodeid="mebranch2"]').locator('..').locator('me-epd') - await expandButton.click() - - // Verify child nodes are now visible - await expect(page.getByText('Child 3', { exact: true })).toBeVisible() - await expect(page.getByText('Child 4', { exact: true })).toBeVisible() - - -}) - -test('Collapse expanded node', async ({ page, me }) => { - // Branch 1 is initially expanded - await expect(page.getByText('Child 1', { exact: true })).toBeVisible() - await expect(page.getByText('Child 2', { exact: true })).toBeVisible() - - // Click collapse button - const collapseButton = page.locator('me-tpc[data-nodeid="mebranch1"]').locator('..').locator('me-epd') - await collapseButton.click() - - // Verify child nodes are now not visible - await expect(page.getByText('Child 1', { exact: true })).not.toBeVisible() - await expect(page.getByText('Child 2', { exact: true })).not.toBeVisible() - - -}) - -test('Expand all children recursively', async ({ page, me }) => { - // First collapse Branch 1 - const branch1Button = page.locator('me-tpc[data-nodeid="mebranch1"]').locator('..').locator('me-epd') - await branch1Button.click() - - // Verify all child nodes are not visible - await expect(page.getByText('Child 1', { exact: true })).not.toBeVisible() - await expect(page.getByText('Child 2', { exact: true })).not.toBeVisible() - await expect(page.getByText('Grandchild 1', { exact: true })).not.toBeVisible() - - // Ctrl click for recursive expansion - await page.keyboard.down("Control"); - await branch1Button.click() - await page.keyboard.up("Control"); - - // Verify all levels of child nodes are visible - await expect(page.getByText('Child 1', { exact: true })).toBeVisible() - await expect(page.getByText('Child 2', { exact: true })).toBeVisible() - await expect(page.getByText('Grandchild 1', { exact: true })).toBeVisible() - await expect(page.getByText('Grandchild 2', { exact: true })).toBeVisible() - - -}) - -test('Auto expand when moving node to collapsed parent', async ({ page, me }) => { - // First ensure Branch 2 is collapsed - const branch2 = page.getByText('Branch 2', { exact: true }) - await expect(page.getByText('Child 3', { exact: true })).not.toBeVisible() - - // Select Child 5 for moving - const child5 = page.getByText('Child 5', { exact: true }) - await child5.hover({ force: true }) - await page.mouse.down() - - // Drag to collapsed Branch 2 - await me.dragOver('Branch 2', 'in') - await expect(page.locator('.insert-preview.in')).toBeVisible() - - // Release mouse to complete move - await page.mouse.up() - - // Verify Branch 2 auto-expands and Child 5 is now in it - await expect(page.getByText('Child 3', { exact: true })).toBeVisible() - await expect(page.getByText('Child 4', { exact: true })).toBeVisible() - await expect(page.getByText('Child 5', { exact: true })).toBeVisible() - - // Verify Child 5 actually moved under Branch 2 - const branch2Container = page.locator('me-tpc[data-nodeid="mebranch2"]').locator('..').locator('..').locator('me-children') - await expect(branch2Container.getByText('Child 5', { exact: true })).toBeVisible() -}) - -test('Auto expand when copying node to collapsed parent', async ({ page, me }) => { - // Ensure Branch 2 is collapsed - await expect(page.getByText('Child 3', { exact: true })).not.toBeVisible() - - // Select Child 1 and copy - await me.click('Child 1') - await page.keyboard.press('Control+c') - - // Select collapsed Branch 2 - await me.click('Branch 2') - - // Paste - await page.keyboard.press('Control+v') - - // Verify Branch 2 auto-expands and contains copied node - await expect(page.getByText('Child 3', { exact: true })).toBeVisible() - await expect(page.getByText('Child 4', { exact: true })).toBeVisible() - - // Should have two "Child 1" (original and copied) - const child1Elements = page.getByText('Child 1', { exact: true }) - await expect(child1Elements).toHaveCount(2) - - -}) - -test('Expand state persistence after layout refresh', async ({ page, me }) => { - // Expand Branch 2 - const expandButton = page.locator('me-tpc[data-nodeid="mebranch2"]').locator('..').locator('me-epd') - await expandButton.click() - await expect(page.getByText('Child 3', { exact: true })).toBeVisible() - - // Get current data and reinitialize - const currentData = await me.getData() - await me.init(currentData) - - // Verify expand state persists - await expect(page.getByText('Child 3', { exact: true })).toBeVisible() - await expect(page.getByText('Child 4', { exact: true })).toBeVisible() -}) diff --git a/mind-elixir-core-master/tests/interaction.spec.ts b/mind-elixir-core-master/tests/interaction.spec.ts deleted file mode 100644 index b2d7fea..0000000 --- a/mind-elixir-core-master/tests/interaction.spec.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const id = 'root-id' -const topic = 'root-topic' -const childTopic = 'child-topic' -const data = { - nodeData: { - topic, - id, - children: [ - { - id: 'middle', - topic: 'middle', - children: [ - { - id: 'child', - topic: childTopic, - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Edit Node', async ({ page, me }) => { - await me.dblclick(topic) - await expect(page.locator('#input-box')).toBeVisible() - await page.keyboard.insertText('update node') - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - await expect(page.getByText('update node')).toBeVisible() - await me.toHaveScreenshot() -}) - -test('Clear and reset', async ({ page, me }) => { - await me.dblclick(topic) - await expect(page.locator('#input-box')).toBeVisible() - await page.keyboard.press('Backspace') - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - await expect(page.getByText(topic)).toBeVisible() - await me.toHaveScreenshot() -}) - -test('Remove Node', async ({ page, me }) => { - await me.click(childTopic) - await page.keyboard.press('Delete') - await expect(page.getByText(childTopic)).toBeHidden() - await me.toHaveScreenshot() -}) - -test('Add Sibling', async ({ page, me }) => { - await me.click(childTopic) - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - await expect(page.getByText('New Node')).toBeVisible() - await me.toHaveScreenshot() -}) - -test('Add Before', async ({ page, me }) => { - await me.click(childTopic) - await page.keyboard.press('Shift+Enter') - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - await expect(page.getByText('New Node')).toBeVisible() - await me.toHaveScreenshot() -}) - -test('Add Parent', async ({ page, me }) => { - await me.click(childTopic) - await page.keyboard.press('Control+Enter') - await page.keyboard.insertText('new node') - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - await expect(page.getByText('new node')).toBeVisible() - await me.toHaveScreenshot() -}) - -test('Add Child', async ({ page, me }) => { - await me.click(childTopic) - await page.keyboard.press('Tab') - await page.keyboard.insertText('new node') - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - await expect(page.getByText('new node')).toBeVisible() - await me.toHaveScreenshot() -}) - -test('Copy and Paste', async ({ page, me }) => { - await me.click('middle') - await page.keyboard.press('Control+c') - await me.click('child-topic') - await page.keyboard.press('Control+v') - // I guess Playwright will auto-scroll before taking screenshots - // After changing the scrolling solution to transform, we can't get complete me-nodes screenshot through scrolling - // This is indeed a very quirky "feature" - await me.toHaveScreenshot(page.locator('.map-container')) -}) diff --git a/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Before-1-chromium-win32.png b/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Before-1-chromium-win32.png deleted file mode 100644 index bbcd4d6c523e0ce9854d833d571f16f760d68622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9602 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 diff --git a/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Child-1-chromium-win32.png b/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Child-1-chromium-win32.png deleted file mode 100644 index 3107f2de64c2b7aa44fb2c4639efd2e3508d7990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9000 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 cW= diff --git a/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Parent-1-chromium-win32.png b/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Parent-1-chromium-win32.png deleted file mode 100644 index 0d4463607996206358405e876ca7f5cda1965be9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8954 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 RmJUIut7WJOfBfp*{{hWf^Gg5# diff --git a/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Sibling-1-chromium-win32.png b/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Add-Sibling-1-chromium-win32.png deleted file mode 100644 index 0ee46c4903c7115e0b8a811e5a8ad6bcc026e23c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9629 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 diff --git a/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Edit-Node-1-chromium-win32.png b/mind-elixir-core-master/tests/interaction.spec.ts-snapshots/Edit-Node-1-chromium-win32.png deleted file mode 100644 index 0552c1716c4d6833c16d61f064d63afa4c74f6fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10221 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 T#hBZjc#a2^SA`&DKLq_Bl@JUc diff --git a/mind-elixir-core-master/tests/keyboard-undo-redo.spec.ts b/mind-elixir-core-master/tests/keyboard-undo-redo.spec.ts deleted file mode 100644 index af1835f..0000000 --- a/mind-elixir-core-master/tests/keyboard-undo-redo.spec.ts +++ /dev/null @@ -1,235 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'Root Node', - id: 'root', - children: [ - { - id: 'left-1', - topic: 'Left Branch 1', - children: [ - { - id: 'left-1-1', - topic: 'Left Child 1', - }, - { - id: 'left-1-2', - topic: 'Left Child 2', - }, - ], - }, - { - id: 'right-1', - topic: 'Right Branch 1', - children: [ - { - id: 'right-1-1', - topic: 'Right Child 1', - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Keyboard Shortcuts - Ctrl+Z for Undo', async ({ page, me }) => { - // Perform an operation that can be undone - await me.click('Left Child 1') - await page.keyboard.press('Delete') - await expect(page.getByText('Left Child 1')).toBeHidden() - - // Test Ctrl+Z - await page.keyboard.press('Control+z') - await expect(page.getByText('Left Child 1')).toBeVisible() -}) - -test('Keyboard Shortcuts - Ctrl+Y for Redo', async ({ page, me }) => { - // Perform and undo an operation - await me.click('Left Child 1') - await page.keyboard.press('Delete') - await page.keyboard.press('Control+z') - await expect(page.getByText('Left Child 1')).toBeVisible() - - // Test Ctrl+Y - await page.keyboard.press('Control+y') - await expect(page.getByText('Left Child 1')).toBeHidden() -}) - -test('Keyboard Shortcuts - Ctrl+Shift+Z for Redo', async ({ page, me }) => { - // Perform and undo an operation - await me.click('Right Child 1') - await page.keyboard.press('Tab') // Add child - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Control+z') // Undo - await expect(page.getByText('New Node')).toBeHidden() - - // Test Ctrl+Shift+Z (alternative redo) - await page.keyboard.press('Control+Shift+Z') - await expect(page.getByText('New Node')).toBeVisible() -}) - -test('Keyboard Shortcuts - Meta+Z for Undo (Mac style)', async ({ page, me }) => { - // This test simulates Mac-style shortcuts - await me.click('Right Branch 1') - await page.keyboard.press('Enter') // Add sibling - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - // Test Meta+Z (Mac style undo) - await page.keyboard.press('Meta+z') - await expect(page.getByText('New Node')).toBeHidden() -}) - -test('Keyboard Shortcuts - Meta+Y for Redo (Mac style)', async ({ page, me }) => { - // Perform and undo an operation - await me.click('Left Branch 1') - await page.keyboard.press('Shift+Enter') // Add before - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Meta+z') // Undo - await expect(page.getByText('New Node')).toBeHidden() - - // Test Meta+Y (Mac style redo) - await page.keyboard.press('Meta+y') - await expect(page.getByText('New Node')).toBeVisible() -}) - -test('Keyboard Shortcuts - Meta+Shift+Z for Redo (Mac style)', async ({ page, me }) => { - // Perform and undo an operation - await me.click('Left Child 2') - await page.keyboard.press('Control+Enter') // Add parent - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Meta+z') // Undo - await expect(page.getByText('New Node')).toBeHidden() - - // Test Meta+Shift+Z (Mac style alternative redo) - await page.keyboard.press('Meta+Shift+Z') - await expect(page.getByText('New Node')).toBeVisible() -}) - -test('Keyboard Shortcuts - Rapid Undo/Redo Sequence', async ({ page, me }) => { - // Perform multiple operations - await me.click('Root Node') - - // Operation 1: Add child - await page.keyboard.press('Tab') - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - // Operation 2: Edit the new node - await me.dblclick('New Node') - await page.keyboard.press('Control+a') - await page.keyboard.insertText('Edited Node') - await page.keyboard.press('Enter') - await expect(page.getByText('Edited Node')).toBeVisible() - - // Operation 3: Add sibling - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - const newNodes = page.getByText('New Node') - await expect(newNodes).toHaveCount(1) - - // Rapid undo sequence - await page.keyboard.press('Control+z') // Undo add sibling - await expect(newNodes).toHaveCount(0) - - await page.keyboard.press('Control+z') // Undo edit - await expect(page.getByText('Edited Node')).toBeHidden() - await expect(page.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Control+z') // Undo add child - await expect(page.getByText('New Node')).toBeHidden() - - // Rapid redo sequence - await page.keyboard.press('Control+y') // Redo add child - await expect(page.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Control+y') // Redo edit - await expect(page.getByText('Edited Node')).toBeVisible() - - await page.keyboard.press('Control+y') // Redo add sibling - await expect(newNodes).toHaveCount(1) -}) - -test('Keyboard Shortcuts - Undo/Redo with Node Movement', async ({ page, me }) => { - // Move a node using keyboard shortcuts - await me.click('Left Child 1') - await page.keyboard.press('Alt+ArrowUp') // Move up - - // Verify the node moved (this depends on the specific implementation) - // We'll check by trying to undo the move - await page.keyboard.press('Control+z') - - // Redo the move - await page.keyboard.press('Control+y') -}) - -test('Keyboard Shortcuts - Undo/Redo Edge Cases', async ({ page, me }) => { - // Test undo when at the beginning of history - await page.keyboard.press('Control+z') - await page.keyboard.press('Control+z') - await page.keyboard.press('Control+z') - // Should not crash or cause issues - await expect(page.getByText('Root Node')).toBeVisible() - - // Perform an operation - await me.click('Right Child 1') - await page.keyboard.press('Delete') - await expect(page.getByText('Right Child 1')).toBeHidden() - - // Test redo when at the end of history - await page.keyboard.press('Control+y') - await page.keyboard.press('Control+y') - await page.keyboard.press('Control+y') - // Should not crash or cause issues - await expect(page.getByText('Right Child 1')).toBeHidden() -}) - -test('Keyboard Shortcuts - Undo/Redo with Complex Node Operations', async ({ page, me }) => { - // Test with copy/paste operations - await me.click('Left Branch 1') - await page.keyboard.press('Control+c') // Copy - - await me.click('Right Branch 1') - await page.keyboard.press('Control+v') // Paste - - // Should have two "Left Branch 1" nodes now - const leftBranchNodes = page.getByText('Left Branch 1') - await expect(leftBranchNodes).toHaveCount(2) - - // Undo the paste - await page.keyboard.press('Control+z') - await expect(leftBranchNodes).toHaveCount(1) - - // Redo the paste - await page.keyboard.press('Control+y') - await expect(leftBranchNodes).toHaveCount(2) -}) - -test('Keyboard Shortcuts - Undo/Redo Preserves Focus', async ({ page, me }) => { - // Select a node and perform an operation - await me.click('Left Child 2') - await page.keyboard.press('Enter') // Add sibling - await page.keyboard.press('Enter') - - // Undo should restore focus to the original node - await page.keyboard.press('Control+z') - - // Test that the original node still has focus by performing an action - await page.keyboard.press('Delete') - await expect(page.getByText('Left Child 2')).toBeHidden() - - // Restore for cleanup - await page.keyboard.press('Control+z') - await expect(page.getByText('Left Child 2')).toBeVisible() -}) diff --git a/mind-elixir-core-master/tests/mind-elixir-test.ts b/mind-elixir-core-master/tests/mind-elixir-test.ts deleted file mode 100644 index 27367a1..0000000 --- a/mind-elixir-core-master/tests/mind-elixir-test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { test as base } from '@playwright/test' -import { MindElixirFixture } from './MindElixirFixture' -import * as fs from 'fs'; -import * as path from 'path'; -import * as crypto from 'crypto'; - -const istanbulCLIOutput = path.join(process.cwd(), '.nyc_output'); - -export function generateUUID(): string { - return crypto.randomBytes(16).toString('hex'); -} - -// Declare the types of your fixtures. -type MyFixtures = { - me: MindElixirFixture -} - -// Extend base test by providing "todoPage" and "settingsPage". -// This new "test" can be used in multiple test files, and each of them will get the fixtures. -export const test = base.extend({ - context: async ({ context }, use) => { - await context.addInitScript(() => - window.addEventListener('beforeunload', () => - (window as any).collectIstanbulCoverage(JSON.stringify((window as any).__coverage__)) - ), - ); - await fs.promises.mkdir(istanbulCLIOutput, { recursive: true }); - await context.exposeFunction('collectIstanbulCoverage', (coverageJSON: string) => { - if (coverageJSON) - fs.writeFileSync(path.join(istanbulCLIOutput, `playwright_coverage_${generateUUID()}.json`), coverageJSON); - }); - await use(context); - for (const page of context.pages()) { - await page.evaluate(() => (window as any).collectIstanbulCoverage(JSON.stringify((window as any).__coverage__))) - } - }, - me: async ({ page }, use) => { - // Set up the fixture. - const me = new MindElixirFixture(page) - await me.goto() - - // Use the fixture value in the test. - await use(me) - }, -}) -export { expect } from '@playwright/test' diff --git a/mind-elixir-core-master/tests/multiple-instance.spec.ts b/mind-elixir-core-master/tests/multiple-instance.spec.ts deleted file mode 100644 index 766433b..0000000 --- a/mind-elixir-core-master/tests/multiple-instance.spec.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { test, expect } from './mind-elixir-test' -import type MindElixir from '../src/index' - -declare let window: { - E: typeof MindElixir.E -} - -const data1 = { - nodeData: { - id: 'data1', - topic: 'new topic', - children: [], - }, -} - -const data2 = { - nodeData: { - id: 'data2', - topic: 'new topic', - children: [ - { - id: 'child', - topic: 'child', - direction: 0 as 0 | 1 | undefined, - }, - ], - }, -} -test.beforeEach(async ({ me, page }) => { - await me.init(data1, '#map') - await me.init(data2, '#map2') -}) - -// fix: https://github.com/SSShooter/mind-elixir-core/issues/247 -test('Add Child To Data2 Correctly', async ({ page, me }) => { - const handle = await me.getInstance('#map2') - handle.evaluateHandle(mei => - mei.addChild(window.E('data2', document.body), { - id: 'child2', - topic: 'child2', - }) - ) - handle.evaluateHandle(mei => - mei.addChild(window.E('child', document.body), { - id: 'child3', - topic: 'child3', - }) - ) - expect(await page.screenshot()).toMatchSnapshot() -}) diff --git a/mind-elixir-core-master/tests/multiple-instance.spec.ts-snapshots/Add-Child-To-Data2-Correctly-1-chromium-win32.png b/mind-elixir-core-master/tests/multiple-instance.spec.ts-snapshots/Add-Child-To-Data2-Correctly-1-chromium-win32.png deleted file mode 100644 index 9f04183aa6b5d4d63be602dad606d9d5daaa553d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24942 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

    5qNgU+ZY#NZnwp7{Grfw8BKERC9H#+z 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 B@O1zH diff --git a/mind-elixir-core-master/tests/multiple-node.spec.ts b/mind-elixir-core-master/tests/multiple-node.spec.ts deleted file mode 100644 index f3d50d5..0000000 --- a/mind-elixir-core-master/tests/multiple-node.spec.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { Page } from '@playwright/test' -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'root', - id: 'root', - children: [ - { - id: 'middle1', - topic: 'middle1', - children: [ - { - id: 'child1', - topic: 'child1', - }, - { - id: 'child2', - topic: 'child2', - }, - ], - }, - { - id: 'middle2', - topic: 'middle2', - children: [ - { - id: 'child3', - topic: 'child3', - }, - { - id: 'child4', - topic: 'child4', - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -const select = async (page: Page) => { - await page.mouse.move(200, 100) - await page.mouse.down() - await page.getByText('child2').hover({ force: true }) - await page.mouse.up() -} - -test('Multiple seletion', async ({ page }) => { - await select(page) - await expect(page.locator('.selected').filter({ hasText: 'child1' })).toBeVisible() - await expect(page.locator('.selected').filter({ hasText: 'child2' })).toBeVisible() -}) - -test('Multiple Move Before', async ({ page, me }) => { - await select(page) - await page.getByText('child1').hover({ force: true }) - await page.mouse.down() - await me.dragOver('child3', 'before') - await expect(page.locator('.insert-preview.before')).toBeVisible() - await page.mouse.up() - await me.toHaveScreenshot() -}) - -test('Multiple Move After', async ({ page, me }) => { - await select(page) - await page.getByText('child1').hover({ force: true }) - await page.mouse.down() - await me.dragOver('child3', 'after') - await expect(page.locator('.insert-preview.after')).toBeVisible() - await page.mouse.up() - await me.toHaveScreenshot() -}) - -test('Multiple Move In', async ({ page, me }) => { - await select(page) - await page.getByText('child1').hover({ force: true }) - await page.mouse.down() - await me.dragOver('child3', 'in') - await expect(page.locator('.insert-preview.in')).toBeVisible() - await page.mouse.up() - await me.toHaveScreenshot() -}) - -test('Multiple Copy', async ({ page, me }) => { - await select(page) - await page.keyboard.press('Control+c') - await me.click('child3') - await page.keyboard.press('Control+v') - await me.toHaveScreenshot() -}) diff --git a/mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Copy-1-chromium-win32.png b/mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Copy-1-chromium-win32.png deleted file mode 100644 index e3b5ad61f2f4311c4701eed914d4d1e6e1b9b6d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16093 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 diff --git a/mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-After-1-chromium-win32.png b/mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-After-1-chromium-win32.png deleted file mode 100644 index a2064a0cfb14416fe4891e800d20ae70c6cfc5d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13398 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 diff --git a/mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-Before-1-chromium-win32.png b/mind-elixir-core-master/tests/multiple-node.spec.ts-snapshots/Multiple-Move-Before-1-chromium-win32.png deleted file mode 100644 index 580f89acfb0a65b6cc2517a782afd3aacff4c510..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13310 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�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 NM+tdI=?8 { - await me.init(complexData) -}) - -test('Operation History - Single Node Operations', async ({ page, me }) => { - // Test createNode operation - await me.click('Leaf A1') - await page.keyboard.press('Tab') // Add child - await page.keyboard.press('Enter') - await expect(me.getByText('New Node')).toBeVisible() - - // Undo createNode - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeHidden() - - // Redo createNode - await page.keyboard.press('Control+y') - await expect(me.getByText('New Node')).toBeVisible() - - // Test removeNode operation - await page.keyboard.press('Delete') - await expect(me.getByText('New Node')).toBeHidden() - - // Undo removeNode - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeVisible() -}) - -test('Operation History - Node Edit Operations', async ({ page, me }) => { - const originalText = 'Leaf A2' - const editedText = 'Modified Leaf A2' - - // Test finishEdit operation - await me.dblclick(originalText) - await page.keyboard.press('Control+a') - await page.keyboard.insertText(editedText) - await page.keyboard.press('Enter') - await expect(me.getByText(editedText)).toBeVisible() - - // Undo edit - await page.keyboard.press('Control+z') - await expect(me.getByText(originalText)).toBeVisible() - await expect(me.getByText(editedText)).toBeHidden() - - // Redo edit - await page.keyboard.press('Control+y') - await expect(me.getByText(editedText)).toBeVisible() - await expect(me.getByText(originalText)).toBeHidden() -}) - -test('Operation History - Multiple Node Operations', async ({ page, me }) => { - // Select multiple nodes using drag selection - await me.dragSelect('Leaf A1', 'Leaf A2') - - // Remove multiple nodes - await page.keyboard.press('Delete') - await expect(me.getByText('Leaf A1')).toBeHidden() - await expect(me.getByText('Leaf A2')).toBeHidden() - - // Undo removeNodes operation - await page.keyboard.press('Control+z') - await expect(me.getByText('Leaf A1')).toBeVisible() - await expect(me.getByText('Leaf A2')).toBeVisible() - - // Redo removeNodes operation - await page.keyboard.press('Control+y') - await expect(me.getByText('Leaf A1')).toBeHidden() - await expect(me.getByText('Leaf A2')).toBeHidden() -}) - -test('Operation History - Copy Multiple Nodes', async ({ page, me }) => { - // Select and copy multiple nodes - await me.dragSelect('Leaf A1', 'Leaf A2') - await page.keyboard.press('Control+c') - - // Paste to another location - await me.click('Branch B') - await page.keyboard.press('Control+v') - - // Should have copied nodes under Branch B - const leafA1Nodes = me.getByText('Leaf A1') - const leafA2Nodes = me.getByText('Leaf A2') - await expect(leafA1Nodes).toHaveCount(2) - await expect(leafA2Nodes).toHaveCount(2) - - // Undo copyNodes operation - await page.keyboard.press('Control+z') - await expect(leafA1Nodes).toHaveCount(1) - await expect(leafA2Nodes).toHaveCount(1) - - // Redo copyNodes operation - await page.keyboard.press('Control+y') - await expect(leafA1Nodes).toHaveCount(2) - await expect(leafA2Nodes).toHaveCount(2) -}) - -test('Operation History - Node Movement Operations', async ({ page, me }) => { - // Test moveNodeBefore operation - await me.click('Leaf A2') - await page.keyboard.press('Alt+ArrowUp') // Move up (before sibling) - - // Undo move operation - await page.keyboard.press('Control+z') - - // Redo move operation - await page.keyboard.press('Control+y') - - // Test moveNodeAfter operation - await page.keyboard.press('Alt+ArrowDown') // Move down (after sibling) - - // Undo move operation - await page.keyboard.press('Control+z') - - // Redo move operation - await page.keyboard.press('Control+y') -}) - -test('Operation History - Complex Operation Sequence', async ({ page, me }) => { - // Perform a complex sequence of operations - - // 1. Edit a node - await me.dblclick('Branch A') - await page.keyboard.press('Control+a') - await page.keyboard.insertText('Modified Branch A') - await page.keyboard.press('Enter') - - // 2. Add a child to the modified node - await page.keyboard.press('Tab') - await page.keyboard.press('Enter') - - // 3. Edit the new child - await me.dblclick('New Node') - await page.keyboard.press('Control+a') - await page.keyboard.insertText('New Child Node') - await page.keyboard.press('Enter') - - // 4. Copy the branch - await me.click('Modified Branch A') - await page.keyboard.press('Control+c') - - // 5. Paste to main topic - await me.click('Main Topic') - await page.keyboard.press('Control+v') - - // Verify all operations completed - await expect(me.getByText('Modified Branch A')).toHaveCount(2) - await expect(me.getByText('New Child Node')).toHaveCount(2) - - // Undo operations step by step - await page.keyboard.press('Control+z') // Undo paste - await expect(me.getByText('Modified Branch A')).toHaveCount(1) - await expect(me.getByText('New Child Node')).toHaveCount(1) - - await page.keyboard.press('Control+z') // Undo edit new child - await expect(me.getByText('New Child Node')).toBeHidden() - await expect(me.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Control+z') // Undo add child - await expect(me.getByText('New Node')).toBeHidden() - - await page.keyboard.press('Control+z') // Undo edit branch - await expect(me.getByText('Modified Branch A')).toBeHidden() - await expect(me.getByText('Branch A')).toBeVisible() - - // Redo all operations - await page.keyboard.press('Control+y') // Redo edit branch - await expect(me.getByText('Modified Branch A')).toBeVisible() - - await page.keyboard.press('Control+y') // Redo add child - await expect(me.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Control+y') // Redo edit new child - await expect(me.getByText('New Child Node')).toBeVisible() - - await page.keyboard.press('Control+y') // Redo paste - await expect(me.getByText('Modified Branch A')).toHaveCount(2) -}) - -test('Operation History - History Branching', async ({ page, me }) => { - // Perform an operation - await me.click('Leaf B1') - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - await expect(me.getByText('New Node')).toBeVisible() - - // Undo the operation - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeHidden() - - // Perform a different operation (this should clear the redo history) - await page.keyboard.press('Tab') // Add child instead - await page.keyboard.press('Enter') - await expect(me.getByText('New Node')).toBeVisible() - - // Try to redo the original operation (should not work) - await page.keyboard.press('Control+y') - // The new child should still be there, not the sibling - await expect(me.getByText('New Node')).toBeVisible() - - // Undo the child operation - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeHidden() -}) - -test('Operation History - Node Selection After Undo/Redo', async ({ page, me }) => { - // Add a node and verify selection - await me.click('Branch B') - await page.keyboard.press('Tab') - await page.keyboard.press('Enter') - - // The new node should be selected - const newNode = me.getByText('New Node') - await expect(newNode).toBeVisible() - - // Undo - should restore selection to Branch B - await page.keyboard.press('Control+z') - await expect(newNode).toBeHidden() - - // Verify Branch B is selected by performing an action - await page.keyboard.press('Enter') // Add sibling - await page.keyboard.press('Enter') - await expect(me.getByText('New Node')).toBeVisible() - - // Clean up - await page.keyboard.press('Control+z') -}) - -test('Operation History - Stress Test Multiple Rapid Operations', async ({ page, me }) => { - // Perform many rapid operations - await me.click('Main Topic') - - for (let i = 0; i < 5; i++) { - await page.keyboard.press('Tab') // Add child - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') // Add sibling - await page.keyboard.press('Enter') - } - - // Should have multiple new nodes - const newNodes = me.getByText('New Node') - await expect(newNodes).toHaveCount(10) - - // Undo all operations - for (let i = 0; i < 10; i++) { - await page.keyboard.press('Control+z') - } - - // Should be back to original state - await expect(newNodes).toHaveCount(0) - - // Redo all operations - for (let i = 0; i < 10; i++) { - await page.keyboard.press('Control+y') - } - - // Should have all nodes back - await expect(newNodes).toHaveCount(10) -}) diff --git a/mind-elixir-core-master/tests/simple-undo-redo.spec.ts b/mind-elixir-core-master/tests/simple-undo-redo.spec.ts deleted file mode 100644 index 0cc5537..0000000 --- a/mind-elixir-core-master/tests/simple-undo-redo.spec.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'Root', - id: 'root', - children: [ - { - id: 'child1', - topic: 'Child 1', - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Simple Undo/Redo - Basic Add Node', async ({ page, me }) => { - // Add a node - await me.click('Child 1') - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - // Test Ctrl+Z (undo) - await page.keyboard.press('Control+z') - await expect(page.getByText('New Node')).toBeHidden() - - // Test Ctrl+Y (redo) - await page.keyboard.press('Control+y') - await expect(page.getByText('New Node')).toBeVisible() -}) - -test('Simple Undo/Redo - Basic Remove Node', async ({ page, me }) => { - // Remove a node - await me.click('Child 1') - await page.keyboard.press('Delete') - await expect(page.getByText('Child 1')).toBeHidden() - - // Test Ctrl+Z (undo) - await page.keyboard.press('Control+z') - await expect(page.getByText('Child 1')).toBeVisible() - - // Test Ctrl+Y (redo) - await page.keyboard.press('Control+y') - await expect(page.getByText('Child 1')).toBeHidden() -}) - -test('Simple Undo/Redo - Test Ctrl+Shift+Z', async ({ page, me }) => { - // Add a node - await me.click('Child 1') - await page.keyboard.press('Tab') // Add child - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - // Undo - await page.keyboard.press('Control+z') - await expect(page.getByText('New Node')).toBeHidden() - - // Try Ctrl+Shift+Z for redo - await page.keyboard.press('Control+Shift+Z') - await page.waitForTimeout(500) - - const nodeVisible = await page.getByText('New Node').isVisible() - console.log('Node visible after Ctrl+Shift+Z:', nodeVisible) - - // If that didn't work, try lowercase z - if (!nodeVisible) { - await page.keyboard.press('Control+Shift+Z') - await page.waitForTimeout(500) - const nodeVisible2 = await page.getByText('New Node').isVisible() - console.log('Node visible after Ctrl+Shift+z:', nodeVisible2) - } -}) - -test('Simple Undo/Redo - Test Meta Keys', async ({ page, me }) => { - // Add a node - await me.click('Root') - await page.keyboard.press('Tab') - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - // Test Meta+Z (Mac style undo) - await page.keyboard.press('Meta+z') - await expect(page.getByText('New Node')).toBeHidden() - - // Test Meta+Y (Mac style redo) - await page.keyboard.press('Meta+y') - await expect(page.getByText('New Node')).toBeVisible() -}) - -test('Simple Undo/Redo - Multiple Operations', async ({ page, me }) => { - // Operation 1: Add child - await me.click('Child 1') - await page.keyboard.press('Tab') - await page.keyboard.press('Enter') - await expect(page.getByText('New Node')).toBeVisible() - - // Operation 2: Add sibling - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - const newNodes = page.getByText('New Node') - await expect(newNodes).toHaveCount(2) - - // Undo twice - await page.keyboard.press('Control+z') - await expect(newNodes).toHaveCount(1) - - await page.keyboard.press('Control+z') - await expect(newNodes).toHaveCount(0) - - // Redo twice - await page.keyboard.press('Control+y') - await expect(newNodes).toHaveCount(1) - - await page.keyboard.press('Control+y') - await expect(newNodes).toHaveCount(2) -}) - -test('Simple Undo/Redo - Edit Node', async ({ page, me }) => { - // Edit a node - await me.dblclick('Child 1') - await page.keyboard.press('Control+a') - await page.keyboard.insertText('Modified Child') - await page.keyboard.press('Enter') - await expect(page.getByText('Modified Child')).toBeVisible() - - // Undo edit - await page.keyboard.press('Control+z') - await expect(page.getByText('Child 1')).toBeVisible() - await expect(page.getByText('Modified Child')).toBeHidden() - - // Redo edit - await page.keyboard.press('Control+y') - await expect(page.getByText('Modified Child')).toBeVisible() - await expect(page.getByText('Child 1')).toBeHidden() -}) diff --git a/mind-elixir-core-master/tests/summary.spec.ts b/mind-elixir-core-master/tests/summary.spec.ts deleted file mode 100644 index 07a82bd..0000000 --- a/mind-elixir-core-master/tests/summary.spec.ts +++ /dev/null @@ -1,310 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'Root Topic', - id: 'root', - children: [ - { - id: 'left-main', - topic: 'Left Main', - children: [ - { - id: 'left-child-1', - topic: 'Left Child 1', - }, - { - id: 'left-child-2', - topic: 'Left Child 2', - }, - { - id: 'left-child-3', - topic: 'Left Child 3', - }, - ], - }, - { - id: 'right-main', - topic: 'Right Main', - children: [ - { - id: 'right-child-1', - topic: 'Right Child 1', - }, - { - id: 'right-child-2', - topic: 'Right Child 2', - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Create summary for single node', async ({ page, me }) => { - // Select a single child node - await me.click('Left Child 1') - - // Get position of the selected node - const leftChild1 = page.getByText('Left Child 1', { exact: true }) - const nodeBox = await leftChild1.boundingBox() - - // Right click to open context menu - await leftChild1.click({ button: 'right', force: true }) - - // Click summary option in context menu - await page.locator('#cm-summary').click() - - // Verify summary SVG group appears - await expect(page.locator('svg g[id^="s-"]')).toBeVisible() - - // Verify summary text label is visible - await expect(page.locator('svg g[id^="s-"] text')).toBeVisible() - await expect(page.locator('svg g[id^="s-"] text')).toHaveText('summary') - - // Verify summary path (bracket shape) is visible - await expect(page.locator('svg g[id^="s-"] path')).toBeVisible() - - // Verify summary is positioned near the selected node - const summaryPath = page.locator('svg g[id^="s-"] path') - const summaryBox = await summaryPath.boundingBox() - - // Summary should be vertically aligned with the selected node (with some tolerance) - expect(Math.abs(summaryBox!.y - nodeBox!.y)).toBeLessThan(50) -}) - -test('Create summary for multiple nodes', async ({ page, me }) => { - // Use drag selection to select multiple child nodes - await me.dragSelect('Left Child 1', 'Left Child 3') - - // Get positions of the selected nodes before creating summary - const leftChild1 = page.getByText('Left Child 1', { exact: true }) - const leftChild2 = page.getByText('Left Child 2', { exact: true }) - const leftChild3 = page.getByText('Left Child 3', { exact: true }) - - const node1Box = await leftChild1.boundingBox() - const node2Box = await leftChild2.boundingBox() - const node3Box = await leftChild3.boundingBox() - - // Right click to open context menu on one of the selected nodes - await leftChild1.click({ button: 'right', force: true }) - - // Click summary option in context menu - await page.locator('#cm-summary').click() - - // Verify summary appears - await expect(page.locator('svg g[id^="s-"]')).toBeVisible() - await expect(page.locator('svg g[id^="s-"] text')).toHaveText('summary') - await expect(page.locator('svg g[id^="s-"] path')).toBeVisible() - - // Verify summary bracket spans across all three selected nodes - const summaryPath = page.locator('svg g[id^="s-"] path') - const summaryBox = await summaryPath.boundingBox() - - // Summary should span from the top of the first node to the bottom of the last node - const topMostNode = Math.min(node1Box!.y, node2Box!.y, node3Box!.y) - const bottomMostNode = Math.max(node1Box!.y + node1Box!.height, node2Box!.y + node2Box!.height, node3Box!.y + node3Box!.height) - - // Summary bracket should cover the vertical range of all selected nodes - // Allow some tolerance for padding and bracket styling - expect(summaryBox!.y).toBeLessThanOrEqual(topMostNode + 10) - expect(summaryBox!.y + summaryBox!.height).toBeGreaterThanOrEqual(bottomMostNode - 10) -}) - -test('Select and highlight summary', async ({ page, me }) => { - // Create a summary first - await me.click('Left Child 1') - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Wait for edit mode to finish (press Enter to complete editing) - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - - // Click on the summary to select it - await page.locator('svg g[id^="s-"]').click() - - // Verify selection rectangle appears - await expect(page.locator('svg g[id^="s-"] rect')).toBeVisible() -}) - -test('Edit summary text', async ({ page, me }) => { - // Create a summary first - await me.click('Left Child 1') - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Summary creation automatically enters edit mode, so input box should already be visible - await expect(page.locator('#input-box')).toBeVisible() - - // Clear existing text and type new text - await page.keyboard.press('Control+a') - await page.keyboard.insertText('Custom Summary') - await page.keyboard.press('Enter') - - // Verify input box disappears - await expect(page.locator('#input-box')).toBeHidden() - - // Verify new text is displayed - await expect(page.locator('svg g[id^="s-"] text')).toHaveText('Custom Summary') -}) - -test('Remove summary', async ({ page, me }) => { - // Create a summary first - await me.click('Left Child 1') - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Wait for edit mode to finish (press Enter to complete editing) - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - - // Verify summary exists - await expect(page.locator('svg g[id^="s-"]')).toBeVisible() - - // Select and delete summary - await page.locator('svg g[id^="s-"]').click() - await page.keyboard.press('Delete') - - // Verify summary is removed - await expect(page.locator('svg g[id^="s-"]')).not.toBeVisible() -}) - -test('Cannot create summary on root node', async ({ page, me }) => { - // Try to select root node - await me.click('Root Topic') - - // Try to create summary via right click menu - await page.getByText('Root Topic', { exact: true }).click({ button: 'right', force: true }) - - // Verify summary option is not available or doesn't work for root - // (The context menu might not show summary option for root, or it might be disabled) - const summaryOption = page.locator('#cm-summary') - if (await summaryOption.isVisible()) { - await summaryOption.click() - } - - // Verify no summary is created - await expect(page.locator('svg g[id^="s-"]')).not.toBeVisible() -}) - -test('Summary appears on correct side for left branch', async ({ page, me }) => { - // Select node on left side - await me.click('Left Child 1') - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Get the summary group - const summaryGroup = page.locator('svg g[id^="s-"]') - await expect(summaryGroup).toBeVisible() - - // Verify text anchor is 'end' for left side (text should be right-aligned) - const summaryText = summaryGroup.locator('text') - await expect(summaryText).toHaveAttribute('text-anchor', 'end') -}) - -test('Summary appears on correct side for right branch', async ({ page, me }) => { - // Select node on right side - await me.click('Right Child 1') - await page.getByText('Right Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Get the summary group - const summaryGroup = page.locator('svg g[id^="s-"]') - await expect(summaryGroup).toBeVisible() - - // Verify text anchor is 'start' for right side (text should be left-aligned) - const summaryText = summaryGroup.locator('text') - await expect(summaryText).toHaveAttribute('text-anchor', 'start') -}) - -test('Multiple summaries can coexist', async ({ page, me }) => { - // Create first summary - await me.click('Left Child 1') - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Create second summary - await me.click('Right Child 1') - await page.getByText('Right Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Verify both summaries exist - const summaryGroups = page.locator('svg g[id^="s-"]') - await expect(summaryGroups).toHaveCount(2) - - // Verify both have text elements - await expect(page.locator('svg g[id^="s-"] text')).toHaveCount(2) -}) - -test('Summary covers exact range of selected nodes', async ({ page, me }) => { - // Use drag selection to select all three child nodes - await me.dragSelect('Left Child 1', 'Left Child 3') - - // Create summary - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - // Finish editing - await page.keyboard.press('Enter') - await expect(page.locator('#input-box')).toBeHidden() - - // Get positions of all child nodes - const child1Box = await page.getByText('Left Child 1', { exact: true }).boundingBox() - const child2Box = await page.getByText('Left Child 2', { exact: true }).boundingBox() - const child3Box = await page.getByText('Left Child 3', { exact: true }).boundingBox() - - // Get summary bracket position - const summaryBox = await page.locator('svg g[id^="s-"] path').boundingBox() - - // Summary should span from Child 1 to Child 3 (including Child 2 in between) - // This verifies that the summary covers the range correctly - const topNode = Math.min(child1Box!.y, child2Box!.y, child3Box!.y) - const bottomNode = Math.max(child1Box!.y + child1Box!.height, child2Box!.y + child2Box!.height, child3Box!.y + child3Box!.height) - - // Summary bracket should cover the range including all selected nodes - expect(summaryBox!.y).toBeLessThanOrEqual(topNode + 10) - expect(summaryBox!.y + summaryBox!.height).toBeGreaterThanOrEqual(bottomNode - 10) - - // Verify that all three children are within the summary range - expect(summaryBox!.y).toBeLessThanOrEqual(child1Box!.y + 10) - expect(summaryBox!.y).toBeLessThanOrEqual(child2Box!.y + 10) - expect(summaryBox!.y).toBeLessThanOrEqual(child3Box!.y + 10) - expect(summaryBox!.y + summaryBox!.height).toBeGreaterThanOrEqual(child1Box!.y + child1Box!.height - 10) - expect(summaryBox!.y + summaryBox!.height).toBeGreaterThanOrEqual(child2Box!.y + child2Box!.height - 10) - expect(summaryBox!.y + summaryBox!.height).toBeGreaterThanOrEqual(child3Box!.y + child3Box!.height - 10) -}) - -test('Summary selection state management', async ({ page, me }) => { - // Create two summaries - await me.click('Left Child 1') - await page.getByText('Left Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - await me.click('Right Child 1') - await page.getByText('Right Child 1', { exact: true }).click({ button: 'right', force: true }) - await page.locator('#cm-summary').click() - - const summaryGroups = page.locator('svg g[id^="s-"]') - const firstSummary = summaryGroups.first() - const secondSummary = summaryGroups.last() - - // Select first summary - await firstSummary.click() - await expect(firstSummary.locator('rect')).toBeVisible() - await expect(secondSummary.locator('rect')).not.toBeVisible() - - // Select second summary - await secondSummary.click() - await expect(firstSummary.locator('rect')).not.toBeVisible() - await expect(secondSummary.locator('rect')).toBeVisible() - - // Click elsewhere to deselect - await page.locator('#map').click() - await expect(firstSummary.locator('rect')).not.toBeVisible() - await expect(secondSummary.locator('rect')).not.toBeVisible() -}) diff --git a/mind-elixir-core-master/tests/topic-select.spec.ts b/mind-elixir-core-master/tests/topic-select.spec.ts deleted file mode 100644 index 2b35834..0000000 --- a/mind-elixir-core-master/tests/topic-select.spec.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { Page } from '@playwright/test' -import { test, expect } from './mind-elixir-test' - -const data = { - nodeData: { - topic: 'root', - id: 'root', - children: [ - { - id: 'middle1', - topic: 'middle1', - children: [ - { - id: 'child1', - topic: 'child1', - }, - { - id: 'child2', - topic: 'child2', - }, - ], - }, - { - id: 'middle2', - topic: 'middle2', - children: [ - { - id: 'child3', - topic: 'child3', - }, - { - id: 'child4', - topic: 'child4', - }, - ], - }, - ], - }, -} - -const select = async (page: Page) => { - await page.mouse.move(200, 100) - await page.mouse.down() - await page.getByText('child2').hover({ force: true }) - await page.mouse.up() -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Select Sibling', async ({ page, me }) => { - await me.click('child2') - await page.keyboard.press('ArrowUp') - await expect(page.locator('.selected')).toHaveText('child1') - await page.keyboard.press('ArrowDown') - await expect(page.locator('.selected')).toHaveText('child2') - - await select(page) - await page.keyboard.press('ArrowDown') - await expect(page.locator('.selected')).toHaveText('child2') - await page.keyboard.press('ArrowUp') - await expect(page.locator('.selected')).toHaveText('child1') -}) - -test('Parent Child', async ({ page, me }) => { - await me.click('child1') - await page.keyboard.press('ArrowRight') - await expect(page.locator('.selected')).toHaveText('middle1') - await page.keyboard.press('ArrowRight') - await expect(page.locator('.selected')).toHaveText('root') - await page.keyboard.press('ArrowRight') - await expect(page.locator('.selected')).toHaveText('middle2') - await page.keyboard.press('ArrowRight') - await expect(page.locator('.selected')).toHaveText('child3') - - await page.keyboard.press('ArrowLeft') - await expect(page.locator('.selected')).toHaveText('middle2') - await page.keyboard.press('ArrowLeft') - await expect(page.locator('.selected')).toHaveText('root') - await page.keyboard.press('ArrowLeft') - await expect(page.locator('.selected')).toHaveText('middle1') - await page.keyboard.press('ArrowLeft') - await expect(page.locator('.selected')).toHaveText('child1') -}) diff --git a/mind-elixir-core-master/tests/undo-redo.spec.ts b/mind-elixir-core-master/tests/undo-redo.spec.ts deleted file mode 100644 index 9dc9491..0000000 --- a/mind-elixir-core-master/tests/undo-redo.spec.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { test, expect } from './mind-elixir-test' - -const id = 'root-id' -const topic = 'root-topic' -const childTopic = 'child-topic' -const middleTopic = 'middle' - -const data = { - nodeData: { - topic, - id, - children: [ - { - id: 'middle', - topic: middleTopic, - children: [ - { - id: 'child', - topic: childTopic, - }, - ], - }, - ], - }, -} - -test.beforeEach(async ({ me }) => { - await me.init(data) -}) - -test('Undo/Redo - Add Node Operations', async ({ page, me }) => { - // Select child node and add a sibling - await me.click(childTopic) - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - await expect(me.getByText('New Node')).toBeVisible() - - // Undo the add operation using Ctrl+Z - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeHidden() - - // Redo the add operation using Ctrl+Y - await page.keyboard.press('Control+y') - await expect(me.getByText('New Node')).toBeVisible() - - // Undo again using Ctrl+Z - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeHidden() - - // Redo using Ctrl+Shift+Z (alternative redo shortcut) - await page.keyboard.press('Control+Shift+Z') - await expect(me.getByText('New Node')).toBeVisible() -}) - -test('Undo/Redo - Remove Node Operations', async ({ page, me }) => { - // Remove child node - await me.click(childTopic) - await page.keyboard.press('Delete') - await expect(me.getByText(childTopic)).toBeHidden() - - // Undo the remove operation - await page.keyboard.press('Control+z') - await expect(me.getByText(childTopic)).toBeVisible() - - // Redo the remove operation - await page.keyboard.press('Control+y') - await expect(me.getByText(childTopic)).toBeHidden() - - // Undo again to restore the node - await page.keyboard.press('Control+z') - await expect(me.getByText(childTopic)).toBeVisible() -}) - -test('Undo/Redo - Edit Node Operations', async ({ page, me }) => { - const originalText = childTopic - const newText = 'updated-child-topic' - - // Edit the child node - await me.dblclick(childTopic) - await expect(page.locator('#input-box')).toBeVisible() - await page.keyboard.insertText(newText) - await page.keyboard.press('Enter') - await expect(me.getByText(newText)).toBeVisible() - - // Undo the edit operation - await page.keyboard.press('Control+z') - await expect(me.getByText(originalText)).toBeVisible() - await expect(me.getByText(newText)).toBeHidden() - - // Redo the edit operation - await page.keyboard.press('Control+y') - await expect(me.getByText(newText)).toBeVisible() - await expect(me.getByText(originalText)).toBeHidden() -}) - -test('Undo/Redo - Multiple Operations Sequence', async ({ page, me }) => { - // Perform multiple operations - // 1. Add a child node - await me.click(childTopic) - await page.keyboard.press('Tab') - await page.keyboard.press('Enter') - await expect(me.getByText('New Node')).toBeVisible() - - // 2. Add a sibling node - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - const newNodes = me.getByText('New Node') - await expect(newNodes).toHaveCount(2) - - // 3. Edit the first new node - await page.keyboard.press('ArrowUp') - await page.keyboard.press('F2') - await expect(page.locator('#input-box')).toBeVisible() - await page.keyboard.insertText('First New Node') - await page.keyboard.press('Enter') - await expect(me.getByText('First New Node')).toBeVisible() - - // Now undo operations step by step - // Undo edit operation - await page.keyboard.press('Control+z') - await expect(me.getByText('First New Node')).toBeHidden() - await expect(me.getByText('New Node')).toHaveCount(2) - - // Undo second add operation - await page.keyboard.press('Control+z') - await expect(newNodes).toHaveCount(1) - - // Undo first add operation - await page.keyboard.press('Control+z') - await expect(me.getByText('New Node')).toBeHidden() - - // Redo all operations - await page.keyboard.press('Control+y') // Redo first add - await expect(me.getByText('New Node')).toBeVisible() - - await page.keyboard.press('Control+y') // Redo second add - await expect(newNodes).toHaveCount(2) - - await page.keyboard.press('Control+y') // Redo edit - await expect(me.getByText('First New Node')).toBeVisible() -}) - -test('Undo/Redo - Copy and Paste Operations', async ({ page, me }) => { - // Copy middle node - await me.click(middleTopic) - await page.keyboard.press('Control+c') - - // Paste to child node - await me.click(childTopic) - await page.keyboard.press('Control+v') - - // Verify the copy was successful (should have two "middle" nodes) - const middleNodes = me.getByText(middleTopic) - await expect(middleNodes).toHaveCount(2) - - // Undo the paste operation - await page.keyboard.press('Control+z') - await expect(middleNodes).toHaveCount(1) - - // Redo the paste operation - await page.keyboard.press('Control+y') - await expect(middleNodes).toHaveCount(2) -}) - -test('Undo/Redo - Cut and Paste Operations', async ({ page, me }) => { - // Cut child node - await me.click(childTopic) - await page.keyboard.press('Control+x') - await expect(me.getByText(childTopic)).toBeHidden() - - // Paste to root node - await me.click(topic) - await page.keyboard.press('Control+v') - await expect(me.getByText(childTopic)).toBeVisible() - - // Undo the paste operation - await page.keyboard.press('Control+z') - // After undo, the node should be back in its original position - - // Undo the cut operation - await page.keyboard.press('Control+z') - await expect(me.getByText(childTopic)).toBeVisible() - - // Redo the cut operation - await page.keyboard.press('Control+y') - await expect(me.getByText(childTopic)).toBeHidden() - - // Redo the paste operation - await page.keyboard.press('Control+y') - await expect(me.getByText(childTopic)).toBeVisible() -}) - -test('Undo/Redo - No Operations Available', async ({ page, me }) => { - // Try to undo when no operations are available - await page.keyboard.press('Control+z') - // Should not crash or change anything - await expect(me.getByText(topic)).toBeVisible() - await expect(me.getByText(middleTopic)).toBeVisible() - await expect(me.getByText(childTopic)).toBeVisible() - - // Try to redo when no operations are available - await page.keyboard.press('Control+y') - // Should not crash or change anything - await expect(me.getByText(topic)).toBeVisible() - await expect(me.getByText(middleTopic)).toBeVisible() - await expect(me.getByText(childTopic)).toBeVisible() -}) - -test('Undo/Redo - Node Selection Restoration', async ({ page, me }) => { - // Add a new node and verify it gets selected - await me.click(childTopic) - await page.keyboard.press('Enter') - await page.keyboard.press('Enter') - - // The new node should be selected (we can verify this by checking if it has focus) - const newNode = me.getByText('New Node') - await expect(newNode).toBeVisible() - - // Undo the operation - await page.keyboard.press('Control+z') - await expect(newNode).toBeHidden() - - // The original child node should be selected again after undo - // We can verify this by trying to perform an action that requires a selected node - await page.keyboard.press('Delete') - await expect(me.getByText(childTopic)).toBeHidden() - - // Undo the delete to restore the node - await page.keyboard.press('Control+z') - await expect(me.getByText(childTopic)).toBeVisible() -}) diff --git a/mind-elixir-core-master/tsconfig.json b/mind-elixir-core-master/tsconfig.json deleted file mode 100644 index a8bfe31..0000000 --- a/mind-elixir-core-master/tsconfig.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "compilerOptions": { - "allowJs": false, - "declaration": true, - "outDir": "dist/types", - - "target": "ES2020", - "useDefineForClassFields": true, - "module": "ESNext", - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "skipLibCheck": true, - - /* Bundler mode */ - "isolatedModules": true, - "emitDeclarationOnly": true, - // "noEmit": true, - - /* Linting */ - "strict": true, - - "noFallthroughCasesInSwitch": true, - "noErrorTruncation": true, - // "moduleResolution": "nodenext" - "moduleResolution": "bundler", - }, - "include": ["src"], - "exclude": ["src/dev.dist.ts"] -} diff --git a/mind-elixir-core-master/vite.config.ts b/mind-elixir-core-master/vite.config.ts deleted file mode 100644 index 226e6d5..0000000 --- a/mind-elixir-core-master/vite.config.ts +++ /dev/null @@ -1,61 +0,0 @@ -// vite.config.js -import { defineConfig } from 'vite' -import istanbul from 'vite-plugin-istanbul' - -export default defineConfig({ - server: { - host: true, - port: 23333, - strictPort: true, - }, - plugins: [ - istanbul({ - include: 'src/*', - exclude: ['node_modules', 'test/', 'src/plugin/exportImage.ts'], - extension: ['.ts'], - requireEnv: true, - }), - ], - // build: { - // cssCodeSplit: false, - // lib: { - // // Could also be a dictionary or array of multiple entry points - // entry: { - // MindElixir: resolve(__dirname, './src/index.ts'), - // MindElixirLite: resolve(__dirname, './src/index.lite.ts'), - // example1: resolve(__dirname, './src/exampleData/1.ts'), - // example2: resolve(__dirname, './src/exampleData/2.ts'), - // }, - // name: 'MindElixir', - // // formats: ['es'], - // }, - // rollupOptions: { - // // make sure to externalize deps that shouldn't be bundled - // // into your library - // // external: ['vue'], - // // output: { - // // // Provide global variables to use in the UMD build - // // // for externalized deps - // // globals: { - // // vue: 'Vue', - // // }, - // // }, - // output: [ - // { - // dir: 'dist', - // // file: 'bundle.js', - // format: 'iife', - // name: 'MyBundle', - // inlineDynamicImports: true, - // }, - // { - // dir: 'dist', - // // file: 'bundle.js', - // format: 'es', - // name: 'MyBundle', - // inlineDynamicImports: true, - // }, - // ], - // }, - // }, -})