[{"data":1,"prerenderedAt":55},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:grip":8,"i-lucide:chevron-right":10,"i-lucide:moon":12,"i-lucide:sun":14,"i-material-symbols:language":16,"i-lucide:chevron-down":18,"i-lucide:shield-check":20,"i-lucide:mail":22,"i-tabler:markdown":24,"i-lucide:code-xml":26,"i-lucide:film":28,"i-lucide:file-text":30,"i-lucide:box":32,"i-lucide:code-2":34,"i-lucide:image":35,"i-lucide:square-sigma":37,"i-lucide:gamepad-2":39,"i-lucide:sparkles":41,"i-lucide:graduation-cap":43,"blog-body-how-latex-runs-in-browser-zh":45,"i-lucide:cpu":46,"i-lucide:code":48,"i-lucide:pen-line":50,"i-lucide:file-code-2":52},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12.013 2t3.875.788t3.175 2.15t2.15 3.175t.787 3.875t-.787 3.887t-2.15 3.188t-3.175 2.15t-3.875.787t-3.888-.787M12 19.95q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M7 15V9l2 2l2-2v6m3-2l2 2l2-2m-2 2V9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18m0-13.5h4m-4 9h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"\u002F>\u003Cpath d=\"m3.3 7l8.7 5l8.7-5M12 22V12\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":38},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8.9V7H8l4 5l-4 5h8v-1.9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":40},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 11h4M8 9v4m7-1h.01M18 10h.01m-.69-5H6.68a4 4 0 0 0-3.978 3.59l-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258q-.01-.075-.017-.151A4 4 0 0 0 17.32 5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":42},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":44},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>","\u003Cblockquote>\n\u003Cp>&quot;不装 TeX，网页里怎么就把 \u003Ccode>.tex\u003C\u002Fcode> 渲染出来了？&quot; 答案是两套完全不同的技术，对应两类需求。混淆它们，是大多数人理解偏差的根源。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cimg src=\"\u002Fblog\u002Fhow-latex-runs-in-browser\u002Fcover.webp\" alt=\"文章核心论点配图\">\u003C\u002Fp>\n\u003Ch2>先分清两类需求\u003C\u002Fh2>\n\u003Cp>&quot;在浏览器里处理 LaTeX&quot;其实是两件事，技术栈不同：\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>只渲染数学公式\u003C\u002Fstrong>：网页内联公式、公式编辑器；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>编译整篇 \u003Ccode>.tex\u003C\u002Fcode> 文档\u003C\u002Fstrong>：含 \u003Ccode>\\documentclass\u003C\u002Fcode>、章节、表格、分页、参考文献，输出 PDF。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>第一类是轻量的&quot;语法转换&quot;，第二类是完整的&quot;排版编译&quot;。下面分别看。\u003C\u002Fp>\n\u003Ch2>一、公式渲染：KaTeX \u002F MathJax\u003C\u002Fh2>\n\u003Cp>把 \u003Ccode>\\frac{a}{b}\u003C\u002Fcode>、积分、矩阵渲染成漂亮公式，靠的是 \u003Cstrong>KaTeX\u003C\u002Fstrong> 或 \u003Cstrong>MathJax\u003C\u002Fstrong> 这类 JavaScript 库。它们做的是把 LaTeX 公式语法\u003Cstrong>解析并转换成 HTML\u002FSVG\u002FMathML\u003C\u002Fstrong>，并不运行真正的 TeX 引擎。两者取舍很实际：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>维度\u003C\u002Fth>\n\u003Cth>KaTeX\u003C\u002Fth>\n\u003Cth>MathJax\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>渲染方式\u003C\u002Ftd>\n\u003Ctd>同步，DOM 一次写入\u003C\u002Ftd>\n\u003Ctd>异步，可能多次排版\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>体积与速度\u003C\u002Ftd>\n\u003Ctd>更轻、更快\u003C\u002Ftd>\n\u003Ctd>更重、更慢\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>TeX 命令覆盖\u003C\u002Ftd>\n\u003Ctd>常用数学命令子集\u003C\u002Ftd>\n\u003Ctd>覆盖更广，扩展更多\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>典型场景\u003C\u002Ftd>\n\u003Ctd>公式密集、实时预览\u003C\u002Ftd>\n\u003Ctd>需要冷门命令或复杂环境\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>这类方案本质是\u003Cstrong>字符串到标记的转换\u003C\u002Fstrong>，通常在毫秒级完成，不涉及分页、交叉引用或参考文献引擎。\u003C\u002Fp>\n\u003Ch2>二、整篇文档编译：WebAssembly 版 TeX\u003C\u002Fh2>\n\u003Cp>要把一份完整 \u003Ccode>.tex\u003C\u002Fcode> 编译成分页 PDF，公式库远远不够，需要\u003Cstrong>真正的 TeX 引擎\u003C\u002Fstrong>。关键技术是 \u003Cstrong>WebAssembly（WASM）\u003C\u002Fstrong>：TeX 引擎原本是 C 语言写的本地程序，编译成 WASM 字节码后，可在浏览器 JS 引擎里以接近原生的速度运行。代表实现有 \u003Cstrong>SwiftLaTeX\u003C\u002Fstrong>、\u003Cstrong>texlive.js\u003C\u002Fstrong> 等，它们把 TeX 排版内核、必要字体和常用宏包一并打进前端资源包。\u003C\u002Fp>\n\u003Cp>典型数据流：\u003Ccode>.tex\u003C\u002Fcode> 源码 → 浏览器内 WASM TeX 运行时 → 本地完成排版与分页 → 输出 PDF。编译算力来自用户设备，不经过远端 TeX 服务。\u003C\u002Fp>\n\u003Ch2>客户端 WASM 与服务端 TeX：架构取舍\u003C\u002Fh2>\n\u003Cp>同一需求（网页里得到 PDF）可以走两条架构路，工程权衡如下：\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>维度\u003C\u002Fth>\n\u003Cth>浏览器 WASM TeX\u003C\u002Fth>\n\u003Cth>远端\u002F自建 TeX 服务\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>首次访问\u003C\u002Ftd>\n\u003Ctd>需下载 WASM + 字体（MB 级，可缓存）\u003C\u002Ftd>\n\u003Ctd>客户端几乎无 TeX 相关下载\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>宏包与字体\u003C\u002Ftd>\n\u003Ctd>打包常用子集，体积受限\u003C\u002Ftd>\n\u003Ctd>可挂载完整 TeX Live\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>算力与扩展\u003C\u002Ftd>\n\u003Ctd>受单用户设备 CPU\u002F内存约束\u003C\u002Ftd>\n\u003Ctd>服务器横向扩展，但需配额与隔离\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>源码路径\u003C\u002Ftd>\n\u003Ctd>默认留在用户浏览器内存\u002F本地 FS 抽象层\u003C\u002Ftd>\n\u003Ctd>需上传 \u003Ccode>.tex\u003C\u002Fcode> 与依赖文件到服务端\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>离线\u003C\u002Ftd>\n\u003Ctd>资源缓存后可离线编译\u003C\u002Ftd>\n\u003Ctd>依赖网络与服务可用性\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>运维\u003C\u002Ftd>\n\u003Ctd>静态资源 + CDN，无编译队列\u003C\u002Ftd>\n\u003Ctd>需防滥用、沙箱、超时与磁盘清理\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>没有绝对更优：轻量文档、宏包需求可预测时，WASM 把编译成本摊到客户端；冷门宏包、大部头工程或需与完整 BibTeX 工具链深度集成时，传统 TeX 发行版仍更可靠。\u003C\u002Fp>\n\u003Ch2>能力边界与已知限制\u003C\u002Fh2>\n\u003Cp>浏览器端完整编译不是 TeX Live 的 1:1 替代，常见边界包括：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>宏包覆盖有限\u003C\u002Fstrong>：前端 bundle 只能带常用子集，\u003Ccode>\\usepackage\u003C\u002Fcode> 指向未打包宏包时会直接失败；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>首次加载体积\u003C\u002Fstrong>：WASM 引擎与字体需一次性下载，弱网或冷启动时延迟明显；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>超大工程\u003C\u002Fstrong>：几百页、多文件 \u003Ccode>\\input\u003C\u002Fcode>、复杂参考文献需多趟编译时，浏览器内存与长任务调度不如本地 TeX 稳定；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>运行时约束\u003C\u002Fstrong>：单线程主线程阻塞、Tab 内存上限、无完整 shell 工具链，极端文档可能卡顿或 OOM；\u003C\u002Fli>\n\u003Cli>\u003Cstrong>公式库边界\u003C\u002Fstrong>：KaTeX\u002FMathJax 不处理 \u003Ccode>\\documentclass\u003C\u002Fcode>、浮动体、目录生成等文档级语义，误用在整篇 \u003Ccode>.tex\u003C\u002Fcode> 上只会得到公式片段而非 PDF。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>判断 workload 是否适合浏览器 WASM，关键看宏包是否在打包列表内、文档规模与编译趟数是否在浏览器可承受范围内。\u003C\u002Fp>\n\u003Ch2>小结\u003C\u002Fh2>\n\u003Cp>浏览器里处理 LaTeX 依赖两套技术：\u003Cstrong>公式渲染\u003C\u002Fstrong>（KaTeX\u002FMathJax，语法→标记）与\u003Cstrong>整篇编译\u003C\u002Fstrong>（WASM TeX，完整排版引擎）。前者轻、覆盖窄；后者重、接近真实 TeX 但受打包与运行时限制。厘清「语法转换 vs 排版编译」的分野，再对照客户端与服务端架构表，就能按文档复杂度与宏包需求选对实现路径。\u003C\u002Fp>\n",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":47},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 20v2m0-20v2m5 16v2m0-20v2M2 12h2m-2 5h2M2 7h2m16 5h2m-2 5h2M20 7h2M7 20v2M7 2v2\"\u002F>\u003Crect width=\"16\" height=\"16\" x=\"4\" y=\"4\" rx=\"2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"8\" y=\"8\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":49},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 18l6-6l-6-6M8 6l-6 6l6 6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":51},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 21h8m.174-14.188a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":53,"hidden":54},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\"\u002F>\u003Cpath d=\"M14 2v4a2 2 0 0 0 2 2h4M5 12l-3 3l3 3m4 0l3-3l-3-3\"\u002F>\u003C\u002Fg>",true,1782539693013]