From 54d220e0f4c39203a6895aafad9147dabc7e36d5 Mon Sep 17 00:00:00 2001 From: treamz Date: Sat, 21 Mar 2026 22:06:15 +0300 Subject: [PATCH] Initial commit: WA Dev Tools service --- .gitignore | 7 + EDITOR-DOC.md | 115 + SVGEDITOR-FEATURES.md | 250 ++ package-lock.json | 3419 +++++++++++++++++++++++ package.json | 29 + public/SVGEDITOR-FEATURES.md | 250 ++ public/compress.html | 515 ++++ public/converter.html | 284 ++ public/editor.css | 170 ++ public/editor.html | 272 ++ public/editor.js | 3601 +++++++++++++++++++++++++ public/formatter.html | 260 ++ public/httpclient.html | 813 ++++++ public/index.html | 355 +++ public/md.html | 401 +++ public/parser.html | 564 ++++ public/password.html | 482 ++++ public/placeholder.html | 412 +++ public/redirects.html | 712 +++++ public/sanitizer.html | 309 +++ public/svgeditor.html | 2455 +++++++++++++++++ public/vendor/fonts.css | 63 + public/vendor/fonts/jetbrains-400.ttf | Bin 0 -> 112172 bytes public/vendor/fonts/jetbrains-500.ttf | Bin 0 -> 112204 bytes public/vendor/fonts/jetbrains-600.ttf | Bin 0 -> 112160 bytes public/vendor/fonts/jetbrains-700.ttf | Bin 0 -> 112092 bytes public/vendor/fonts/manrope-400.ttf | Bin 0 -> 94972 bytes public/vendor/fonts/manrope-500.ttf | Bin 0 -> 95060 bytes public/vendor/fonts/manrope-600.ttf | Bin 0 -> 95096 bytes public/vendor/fonts/manrope-700.ttf | Bin 0 -> 94928 bytes public/vendor/fonts/manrope-800.ttf | Bin 0 -> 95688 bytes public/vendor/highlight.min.js | 1213 +++++++++ public/vendor/hljs-github-dark.css | 10 + public/vendor/hljs-github.css | 10 + public/vendor/marked.min.js | 69 + public/vendor/opentype.min.js | 2 + public/vendor/tailwind.js | 83 + server.js | 1111 ++++++++ 38 files changed, 18236 insertions(+) create mode 100644 .gitignore create mode 100644 EDITOR-DOC.md create mode 100644 SVGEDITOR-FEATURES.md create mode 100644 package-lock.json create mode 100755 package.json create mode 100644 public/SVGEDITOR-FEATURES.md create mode 100644 public/compress.html create mode 100644 public/converter.html create mode 100644 public/editor.css create mode 100644 public/editor.html create mode 100644 public/editor.js create mode 100644 public/formatter.html create mode 100644 public/httpclient.html create mode 100644 public/index.html create mode 100644 public/md.html create mode 100644 public/parser.html create mode 100644 public/password.html create mode 100644 public/placeholder.html create mode 100644 public/redirects.html create mode 100644 public/sanitizer.html create mode 100644 public/svgeditor.html create mode 100644 public/vendor/fonts.css create mode 100644 public/vendor/fonts/jetbrains-400.ttf create mode 100644 public/vendor/fonts/jetbrains-500.ttf create mode 100644 public/vendor/fonts/jetbrains-600.ttf create mode 100644 public/vendor/fonts/jetbrains-700.ttf create mode 100644 public/vendor/fonts/manrope-400.ttf create mode 100644 public/vendor/fonts/manrope-500.ttf create mode 100644 public/vendor/fonts/manrope-600.ttf create mode 100644 public/vendor/fonts/manrope-700.ttf create mode 100644 public/vendor/fonts/manrope-800.ttf create mode 100644 public/vendor/highlight.min.js create mode 100644 public/vendor/hljs-github-dark.css create mode 100644 public/vendor/hljs-github.css create mode 100644 public/vendor/marked.min.js create mode 100644 public/vendor/opentype.min.js create mode 100644 public/vendor/tailwind.js create mode 100755 server.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13055fc --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +node_modules/ +uploads/ +downloads/ +*.log +.idea/ +*.bak +.env diff --git a/EDITOR-DOC.md b/EDITOR-DOC.md new file mode 100644 index 0000000..6bcc198 --- /dev/null +++ b/EDITOR-DOC.md @@ -0,0 +1,115 @@ +# Mini Photoshop — Browser Image Editor + +## Overview +Client-side image editor tool at `/editor` on images.wadevelop.ru. +All processing via Canvas API — images never leave the browser. + +## File +- `/public/editor.html` — standalone page (~600 lines) + +## Layout +- **Sidebar** (56px) — standard site navigation +- **Toolbar** (44px top) — Open, Export, drawing tools, transforms, undo/redo, color, zoom +- **Tool Options Bar** (36px, contextual) — appears when tool selected +- **Canvas Viewport** (center) — checkerboard bg for transparency, 3 stacked canvases +- **Status Bar** (28px bottom) — dimensions, zoom%, cursor coords, history position + +## Canvas Architecture +3 overlaid `` elements: +1. `canvasMain` — final image +2. `canvasOverlay` — preview of drawing/crop/filters (cleared each frame) +3. `canvasUI` — cursors, selection frames + +Zoom/pan via CSS `transform: translate() scale()` on wrapper (GPU-accelerated). + +## Undo/Redo +- History as PNG blobs (`canvas.toBlob()` → `URL.createObjectURL()`) +- Max 30 snapshots +- Ctrl+Z / Ctrl+Shift+Z + +## Image Loading +- File input (Open button) +- Drag & drop on viewport +- Paste from clipboard (Ctrl+V) +- Before loading — dropzone with hint, toolbar disabled + +## Tools + +### Crop +- Presets: Free, 1:1, 4:3, 16:9, 3:2, 2:3, 9:16 +- 8 drag handles (corners + edges) +- Semi-transparent overlay outside crop, rule of thirds +- Apply / Cancel buttons + +### Resize +- Width/height in px, aspect ratio lock (on by default) +- `imageSmoothingQuality = 'high'` +- Max 16384x16384 + +### Rotate 90 CW/CCW +- Two buttons in toolbar +- Via temp canvas with `ctx.translate()` + `ctx.rotate()` + +### Flip H/V +- Two buttons, via `ctx.scale(-1, 1)` / `ctx.scale(1, -1)` + +### Brightness / Contrast / Saturation +- Three sliders -100...+100 +- Preview via CSS `filter` on overlay (instant) +- Commit via pixel-level ImageData processing +- Apply / Cancel + +### Brush +- Sliders: size 1-100px, opacity 0-100% +- `lineCap: 'round'`, `lineJoin: 'round'` +- Drawing on overlay → commit to main on pointerup + +### Eraser +- Like brush but `globalCompositeOperation: 'destination-out'` +- Draws directly on main canvas + +### Line, Rectangle, Circle, Arrow +- Stroke width 1-20px, fill toggle (rect/circle) +- Shift for snap to 45 degrees (line/arrow) and square/circle (rect/circle) +- Arrow: filled triangle arrowhead + +### Text +- Font select (sans-serif, serif, monospace, Manrope, JetBrains Mono) +- Size 8-200px, Bold, Italic, Color +- Click on canvas → ` + + + + + + + + + + + + + diff --git a/public/editor.css b/public/editor.css new file mode 100644 index 0000000..dbe6767 --- /dev/null +++ b/public/editor.css @@ -0,0 +1,170 @@ +*{margin:0;padding:0;box-sizing:border-box} +:root{--bg:#060c18;--surface-800:rgba(9,16,32,0.95);--surface-700:#0d1828;--surface-600:#162040;--text-primary:#fff;--text-secondary:#c0c0c0;--text-muted:#666;--accent:#0054e6;--accent-dim:#0043b8;--accent-bg:rgba(0,84,230,0.08);--danger:#ff5252;--warn:#ffd600} +body{font-family:'Manrope',sans-serif;font-size:13px;background:var(--bg);color:var(--text-secondary);overflow:hidden;height:100vh;width:100vw;user-select:none} +input,select,button,textarea{font-family:inherit;font-size:inherit} + +/* Sidebar */ +.sidebar{position:fixed;top:0;left:0;width:56px;height:100vh;display:flex;flex-direction:column;align-items:center;padding:16px 0 12px;z-index:100;border-right:1px solid var(--surface-600);background:var(--surface-800);backdrop-filter:blur(12px)} +.sidebar-logo{margin-bottom:24px;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.08em;font-family:'JetBrains Mono',monospace} +.sidebar-nav{display:flex;flex-direction:column;gap:6px;flex:1;overflow-y:auto;scrollbar-width:none} +.sidebar-nav::-webkit-scrollbar{display:none} +.sidebar-link{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:all .2s;text-decoration:none;position:relative;flex-shrink:0} +.sidebar-link:hover{color:var(--text-secondary);background:rgba(255,255,255,.04)} +.sidebar-link.active{color:var(--accent);background:var(--accent-bg)} +.sidebar-link.active::before{content:'';position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent)} + +/* Main layout */ +.editor-wrap{margin-left:56px;height:100vh;display:flex;flex-direction:column} + +/* Toolbar */ +.toolbar{height:44px;background:var(--surface-800);border-bottom:1px solid var(--surface-600);display:flex;align-items:center;padding:0 12px;gap:4px;flex-shrink:0;z-index:20} +.toolbar-group{display:flex;align-items:center;gap:2px} +.toolbar-sep{width:1px;height:24px;background:var(--surface-600);margin:0 6px} +.tb{width:34px;height:34px;border:none;border-radius:8px;background:transparent;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;position:relative} +.tb:hover{color:#fff;background:rgba(255,255,255,.08)} +.tb.active{color:var(--accent);background:var(--accent-bg)} +.tb:disabled{opacity:.3;cursor:default;pointer-events:none} +.tb svg{width:18px;height:18px} +.tb-label{font-size:11px;font-weight:500;padding:0 8px;white-space:nowrap} +.toolbar-right{margin-left:auto;display:flex;align-items:center;gap:4px} + +/* Tool Options Bar */ +.tool-options{height:36px;background:var(--surface-700);border-bottom:1px solid var(--surface-600);display:none;align-items:center;padding:0 12px;gap:8px;flex-shrink:0;z-index:19} +.tool-options.visible{display:flex} +.tool-options label{font-size:11px;color:var(--text-muted);white-space:nowrap} +.tool-options input[type="range"]{width:80px;accent-color:var(--accent);height:4px;cursor:pointer} +.tool-options input[type="number"]{width:60px;background:var(--surface-600);border:1px solid transparent;color:var(--text-secondary);padding:3px 6px;border-radius:5px;text-align:center;font-family:'JetBrains Mono',monospace;font-size:11px} +.tool-options input[type="number"]:focus{border-color:var(--accent);outline:none} +.tool-options select{background:var(--surface-600);border:1px solid transparent;color:var(--text-secondary);padding:3px 8px;border-radius:5px;cursor:pointer;font-size:11px} +.tool-options select:focus{border-color:var(--accent);outline:none} +.tool-options .opt-sep{width:1px;height:20px;background:var(--surface-600)} +.opt-btn{padding:3px 10px;border:1px solid var(--surface-600);border-radius:5px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;transition:all .15s} +.opt-btn:hover{border-color:var(--text-muted)} +.opt-btn.primary{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600} +.opt-btn.primary:hover{background:var(--accent-dim)} +.opt-toggle{padding:3px 8px;border:1px solid var(--surface-600);border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;transition:all .15s} +.opt-toggle.on{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)} + +/* Viewport */ +.viewport{flex:1;overflow:hidden;position:relative;background:#2c2c30} +.viewport-checker{display:none} +.canvas-container{position:absolute;transform-origin:0 0;cursor:crosshair;background:#2c2c30} +.canvas-container.has-transparency{background-image:linear-gradient(45deg,#444 25%,transparent 25%),linear-gradient(-45deg,#444 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#444 75%),linear-gradient(-45deg,transparent 75%,#444 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;background-color:#333} +.canvas-container canvas{position:absolute;top:0;left:0} + +/* Drop zone */ +.dropzone{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;cursor:pointer;transition:background .2s} +.dropzone:hover{background:rgba(0,84,230,0.03)} +.dropzone.drag-over{background:rgba(0,84,230,0.06);border:2px dashed var(--accent)} +.dropzone-icon{width:64px;height:64px;border-radius:16px;background:var(--surface-700);border:2px dashed var(--surface-600);display:flex;align-items:center;justify-content:center;margin-bottom:16px;transition:all .3s} +.dropzone:hover .dropzone-icon{border-color:var(--accent);background:var(--accent-bg)} +.dropzone-icon svg{color:var(--text-muted);width:28px;height:28px} +.dropzone-text{font-size:15px;color:var(--text-secondary);margin-bottom:6px;font-weight:500} +.dropzone-hint{font-size:12px;color:var(--text-muted)} +.dropzone.hidden{display:none} + +/* Status Bar */ +.statusbar{height:28px;background:var(--surface-800);border-top:1px solid var(--surface-600);display:flex;align-items:center;padding:0 12px;gap:16px;flex-shrink:0;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-secondary)} +.statusbar span{white-space:nowrap} +.status-accent{color:var(--accent)} + +/* Export Modal */ +.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);z-index:200;display:none;align-items:center;justify-content:center} +.modal-overlay.visible{display:flex} +.modal{background:var(--surface-700);border:1px solid var(--surface-600);border-radius:12px;padding:24px;width:380px;max-width:90vw} +.modal h3{font-size:16px;color:var(--text-primary);margin-bottom:16px;font-weight:600} +.modal-row{display:flex;align-items:center;gap:10px;margin-bottom:12px} +.modal-row label{font-size:12px;color:var(--text-muted);width:70px;flex-shrink:0} +.modal-row input,.modal-row select{flex:1;background:var(--surface-600);border:1px solid transparent;color:var(--text-secondary);padding:6px 10px;border-radius:6px;font-size:12px} +.modal-row input:focus,.modal-row select:focus{border-color:var(--accent);outline:none} +.modal-warning{font-size:11px;color:var(--warn);margin-bottom:12px;display:none} +.modal-warning.visible{display:block} +.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px} +.modal-actions button{padding:6px 16px;border-radius:6px;border:1px solid var(--surface-600);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:500;transition:all .15s} +.modal-actions button:hover{border-color:var(--text-muted)} +.modal-actions button.primary{background:var(--accent);color:#000;border-color:var(--accent)} +.modal-actions button.primary:hover{background:var(--accent-dim)} + +/* Text overlay — Figma-style inline editor */ +.text-overlay{position:absolute;z-index:15;display:none;pointer-events:auto;transform-origin:top left} +.text-editor{background:rgba(0,84,230,0.04);border:1.5px solid rgba(0,84,230,0.5);outline:none;padding:3px 6px;min-width:4px;min-height:1.2em;white-space:pre-wrap;word-break:break-word;cursor:text;caret-color:currentColor;user-select:text;-webkit-user-select:text;line-height:1.4;border-radius:3px;transition:border-color .15s} +.text-editor:focus{border-color:var(--accent);background:rgba(0,84,230,0.07);box-shadow:0 0 0 3px rgba(0,84,230,0.1)} +.text-editor:empty::before{content:'Введите текст…';color:rgba(255,255,255,0.25);pointer-events:none} + +/* Tab Bar */ +.tab-bar{height:30px;background:var(--surface-800);border-bottom:1px solid var(--surface-600);display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;flex-shrink:0;scrollbar-width:none;z-index:18} +.tab-bar::-webkit-scrollbar{display:none} +.tab-item{display:flex;align-items:center;gap:5px;padding:0 8px 0 12px;border-right:1px solid var(--surface-600);white-space:nowrap;cursor:pointer;font-size:11px;color:var(--text-muted);flex-shrink:0;max-width:160px;transition:color .15s;position:relative} +.tab-item:hover{color:var(--text-secondary);background:rgba(255,255,255,.03)} +.tab-item.active{color:var(--text-primary);background:var(--surface-700);border-bottom:2px solid var(--accent)} +.tab-name{flex:1;overflow:hidden;text-overflow:ellipsis;min-width:40px} +.tab-close{width:16px;height:16px;border:none;background:transparent;color:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:3px;flex-shrink:0;font-size:14px;line-height:1;padding:0;transition:all .15s} +.tab-item:hover .tab-close,.tab-item.active .tab-close{color:var(--text-muted)} +.tab-close:hover{color:var(--danger)!important;background:rgba(255,82,82,.12)} +.tab-add{width:32px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;border-right:1px solid var(--surface-600)} +.tab-add:hover{color:var(--text-secondary);background:rgba(255,255,255,.04)} + +/* Color picker in toolbar */ +.color-swatch{width:22px;height:22px;border-radius:6px;border:2px solid var(--surface-600);cursor:pointer;overflow:hidden;position:relative} +.color-swatch input{position:absolute;inset:-8px;width:calc(100% + 16px);height:calc(100% + 16px);cursor:pointer;opacity:0} + +/* Crop overlay */ +.crop-overlay{position:absolute;inset:0;z-index:12;display:none;pointer-events:none} +.crop-overlay.visible{display:block;pointer-events:auto} +.crop-handle{position:absolute;width:10px;height:10px;background:var(--accent);border:1px solid #000;border-radius:2px;cursor:pointer;z-index:13} + +/* Context menu */ +.ctx-menu{position:fixed;z-index:300;background:var(--surface-700);border:1px solid var(--surface-600);border-radius:10px;padding:4px;min-width:180px;box-shadow:0 8px 32px rgba(0,0,0,.5);display:none;backdrop-filter:blur(12px)} +.ctx-menu.visible{display:block} +.ctx-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:6px;cursor:pointer;color:var(--text-secondary);font-size:12px;white-space:nowrap;transition:background .1s} +.ctx-item:hover{background:rgba(255,255,255,.06);color:var(--text-primary)} +.ctx-item.disabled{opacity:.3;pointer-events:none} +.ctx-item svg{width:15px;height:15px;flex-shrink:0;color:var(--text-muted)} +.ctx-item:hover svg{color:var(--text-secondary)} +.ctx-item .ctx-shortcut{margin-left:auto;font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace} +.ctx-sep{height:1px;background:var(--surface-600);margin:4px 8px} + +/* Scrollbar */ +::-webkit-scrollbar{width:6px;height:6px} +::-webkit-scrollbar-track{background:transparent} +::-webkit-scrollbar-thumb{background:var(--surface-600);border-radius:3px} + +/* Layer Panel */ +.layer-panel{position:absolute;right:12px;bottom:40px;width:240px;max-height:400px;background:var(--surface-800);border:1px solid var(--surface-600);border-radius:10px;z-index:15;display:none;flex-direction:column;backdrop-filter:blur(12px);overflow:hidden} +.layer-panel.visible{display:flex} +.layer-panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--surface-600);font-size:11px;font-weight:600;color:var(--text-primary)} +.layer-panel-actions{display:flex;gap:2px} +.lpa-btn{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .15s;padding:0} +.lpa-btn:hover{color:var(--text-secondary);background:rgba(255,255,255,.06)} +.lpa-btn:disabled{opacity:.3;cursor:default;pointer-events:none} +.layer-list{flex:1;overflow-y:auto;padding:4px} +.layer-item{display:flex;align-items:center;gap:6px;padding:5px 6px;border-radius:6px;cursor:pointer;transition:background .1s;user-select:none} +.layer-item:hover{background:rgba(255,255,255,.04)} +.layer-item.active{background:var(--accent-bg);outline:1px solid rgba(0,84,230,.3)} +.layer-item.drag-over-top{box-shadow:0 -2px 0 var(--accent)} +.layer-item.drag-over-bottom{box-shadow:0 2px 0 var(--accent)} +.layer-vis{width:20px;height:20px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0;font-size:12px;padding:0} +.layer-vis:hover{color:var(--text-secondary)} +.layer-vis.off{opacity:.3} +.layer-thumb{width:32px;height:32px;border-radius:4px;border:1px solid var(--surface-600);background-image:linear-gradient(45deg,#333 25%,transparent 25%),linear-gradient(-45deg,#333 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#333 75%),linear-gradient(-45deg,transparent 75%,#333 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0;flex-shrink:0;overflow:hidden;position:relative} +.layer-thumb canvas{width:100%;height:100%;display:block} +.layer-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px} +.layer-name{font-size:11px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} +.layer-name-input{font-size:11px;color:var(--text-secondary);background:var(--surface-600);border:1px solid var(--accent);border-radius:3px;padding:1px 4px;outline:none;width:100%;font-family:inherit} +.layer-meta{font-size:9px;color:var(--text-muted);font-family:'JetBrains Mono',monospace} +.layer-props{padding:6px 10px;border-top:1px solid var(--surface-600);display:flex;flex-direction:column;gap:5px} +.layer-props label{font-size:10px;color:var(--text-muted)} +.layer-props select{background:var(--surface-600);border:1px solid transparent;color:var(--text-secondary);padding:3px 6px;border-radius:4px;font-size:10px;cursor:pointer;width:100%;font-family:inherit} +.layer-props select:focus{border-color:var(--accent);outline:none} +.layer-props input[type="range"]{width:100%;accent-color:var(--accent);height:3px} +.lp-row{display:flex;align-items:center;gap:6px} +.lp-row label{width:55px;flex-shrink:0} +.lp-row span{font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;width:28px;text-align:right;flex-shrink:0} + +@media(max-width:640px){ + .sidebar{position:fixed;top:auto;bottom:0;left:0;width:100%;height:52px;flex-direction:row;justify-content:center;padding:0 8px;border-right:none;border-top:1px solid var(--surface-600);gap:0} + .sidebar-logo{display:none} + .sidebar-nav{flex-direction:row;gap:2px;flex:none} + .sidebar-link.active::before{left:50%;top:auto;bottom:-6px;transform:translateX(-50%);width:20px;height:3px;border-radius:3px 3px 0 0} + .editor-wrap{margin-left:0;height:calc(100vh - 52px)} +} diff --git a/public/editor.html b/public/editor.html new file mode 100644 index 0000000..db12347 --- /dev/null +++ b/public/editor.html @@ -0,0 +1,272 @@ + + + + + +Editor — images.wadevelop.ru + + + + + + + + + +
+ +
+
+ + +
+
+ + +
+ + + + + + + + + + + + + +
+
+ + +
+ + + + + + + + +
+
+ + +
+ + + + +
+
+ + +
+ + +
+ + +
+ +
+
+ +
+
+ + 100% + + +
+
+ + +
+ + +
+ + +
+
+
+ + +
+ + + +
+
+ +
+
Перетащите изображение, вставьте из буфера или нажмите
+
Ctrl+O / Ctrl+V / Drag & Drop
+
+ + +
+
+
+ + +
+
+ Слои +
+ + + + +
+
+
+
+
+ + +
+
+ + + 100% +
+
+
+
+ + +
+ Нет изображения + 100% + 0, 0 + + +
+
+ + + + + +
+
ОтменитьCtrl+Z
+
ПовторитьCtrl+Shift+Z
+
+
Обрезать по выделению
+
+
Изменить размер...
+
Повернуть 90° вправо
+
Повернуть 90° влево
+
Отразить по горизонтали
+
Отразить по вертикали
+
+
Вписать в экранCtrl+0
+
Масштаб 100%Ctrl+1
+
+
Копировать в буфер
+
Вставить из буфераCtrl+V
+
+
Экспорт...Ctrl+S
+
+ + + + + + + diff --git a/public/editor.js b/public/editor.js new file mode 100644 index 0000000..971eb9d --- /dev/null +++ b/public/editor.js @@ -0,0 +1,3601 @@ +(function(){ +'use strict'; + +// ===================== DOM ===================== +const $ = s => document.querySelector(s); +const viewport = $('#viewport'); +const container = $('#canvasContainer'); +const cMain = $('#canvasMain'); +const cOverlay = $('#canvasOverlay'); +const cUI = $('#canvasUI'); +const ctxMain = cMain.getContext('2d'); +const ctxOverlay = cOverlay.getContext('2d'); +const ctxUI = cUI.getContext('2d'); +const dropzone = $('#dropzone'); +const fileInput = $('#fileInput'); +const toolOptions = $('#toolOptions'); +const textOverlay = $('#textOverlay'); +const textArea = $('#textArea'); +const layerPanel = $('#layerPanel'); +const layerList = $('#layerList'); + +// ===================== STATE ===================== +let img = null; +let fileName = 'image'; +let hasTransparency = false; +let canvasW = 0, canvasH = 0; + +// Zoom/Pan +let zoom = 1; +let panX = 0, panY = 0; +let isPanning = false; +let panStart = {x:0,y:0}; +let spaceDown = false; + +// Current tool +let currentTool = null; + +// History (sync ImageData-based) +const MAX_HISTORY = 15; +let history = []; +let historyIndex = -1; + +// Drawing state +let isDrawing = false; +let drawStart = {x:0,y:0}; +let lastDraw = {x:0,y:0}; + +// Tool settings +let brushSize = 8; +let brushOpacity = 100; +let strokeWidth = 2; +let fillShape = false; +let fgColor = '#0054e6'; + +// Crop state +let cropRect = null; +let cropDragging = null; +let cropStart = null; +let cropAspect = 0; + +// Internal clipboard for selection copy/paste +let internalClipboard = null; // { imageData, x, y, w, h } + +// Layer move state +let layerMoving = false; +let layerMoveStart = null; +let layerMoveSnapshot = null; + +// Text state +let textFont = 'sans-serif'; +let textSize = 32; +let textBold = false; +let textItalic = false; + +// Adjustments +let adjBrightness = 0; +let adjContrast = 0; +let adjSaturation = 0; + +// Resize state +let resizeW = 0, resizeH = 0, resizeKeepRatio = true, resizeOrigW = 0, resizeOrigH = 0; + +// Clone stamp state +let cloneSrc = null; +let cloneOffset = null; +let cloneSrcSet = false; + +// Fill tool +let fillTolerance = 30; + +// Blur / Sharpen +let blurRadius = 5; +let sharpenAmount = 50; + +// Selection state +let selRect = null; +let selPath = null; // lasso path: [{x,y}, ...] +let selDragging = false; +let selDragMode = null; +let selStart = {x:0, y:0}; +let selStartRect = null; +// Marching ants animation +let marchRaf = 0; +let marchOffset = 0; + +// Pending shape state +let pendingShape = null; +let pendingDragging = false; +let pendingDragStart = null; +let pendingTransformHandle = null; +let pendingTransformStart = null; + +// Text layer re-editing +let editingTextLayerIndex = -1; + +// Tabs +let tabs = []; +let activeTabId = 0; +let tabIdCounter = 0; + +// Layer system +const MAX_LAYERS = 10; +let layers = []; +let activeLayerIndex = 0; +let layerIdCounter = 0; +let layerPanelVisible = false; +let compositeDirtyRaf = 0; + +// ===================== HELPERS ===================== +function clamp(v, min, max) { return Math.max(min, Math.min(max, v)); } + +function canvasToViewport(cx, cy) { + return { x: cx * zoom + panX, y: cy * zoom + panY }; +} + +function viewportToCanvas(vx, vy) { + return { x: (vx - panX) / zoom, y: (vy - panY) / zoom }; +} + +function getPointerCanvas(e) { + const rect = viewport.getBoundingClientRect(); + const vx = e.clientX - rect.left; + const vy = e.clientY - rect.top; + return viewportToCanvas(vx, vy); +} + +function updateTransform() { + container.style.transform = `translate(${panX}px, ${panY}px) scale(${zoom})`; + $('#zoomLabel').textContent = Math.round(zoom * 100) + '%'; + $('#statusZoom').textContent = Math.round(zoom * 100) + '%'; + redrawUI(); +} + +function redrawUI() { + clearUI(); + drawRulers(); + drawImageBorder(); + if (selPath && selPath.length > 2) drawLassoOutline(); + else if (selRect && selRect.w > 5) drawSelectionRect(false); + else if (cropRect) drawCropOverlay(false); + if (pendingShape) drawPendingBBoxOnUI(); +} + +function fitToViewport() { + if (!canvasW || !canvasH) return; + const vw = viewport.clientWidth; + const vh = viewport.clientHeight; + const scaleX = (vw - 40) / canvasW; + const scaleY = (vh - 40) / canvasH; + zoom = Math.min(scaleX, scaleY, 1); + panX = (vw - canvasW * zoom) / 2; + panY = (vh - canvasH * zoom) / 2; + updateTransform(); +} + +function setCanvasSize(w, h) { + canvasW = w; canvasH = h; + [cMain, cOverlay].forEach(c => { c.width = w; c.height = h; }); + container.style.width = w + 'px'; + container.style.height = h + 'px'; + selRect = null; + selPath = null; + stopMarchingAnts(); + pendingShape = null; + $('#statusDims').textContent = w + ' x ' + h; + resizeUICanvas(); +} + +function resizeUICanvas() { + const dpr = window.devicePixelRatio || 1; + const vw = viewport.clientWidth; + const vh = viewport.clientHeight; + cUI.width = vw * dpr; + cUI.height = vh * dpr; + cUI.style.width = vw + 'px'; + cUI.style.height = vh + 'px'; + ctxUI.setTransform(dpr, 0, 0, dpr, 0, 0); +} + +// Convert canvas coords to screen (viewport-local) coords for UI drawing +function c2s(cx, cy) { + return { x: cx * zoom + panX, y: cy * zoom + panY }; +} + +// ===================== TOOL DISPATCHER ===================== +class ToolDispatcher { + constructor() { + this._tools = new Map(); // toolName → {onDown, onMove, onUp} + this._pendingHandler = null; + this._selectionHandler = null; + } + + registerTool(name, handler) { this._tools.set(name, handler); } + registerPending(handler) { this._pendingHandler = handler; } + registerSelection(handler) { this._selectionHandler = handler; } + + _dispatch(type, e) { + if (!canvasW) return false; + // pendingShape перехватывает первым + if (pendingShape && this._pendingHandler && this._pendingHandler[type]) { + this._pendingHandler[type](e); + return true; + } + // нет инструмента → selection + if (!currentTool && this._selectionHandler && this._selectionHandler[type]) { + this._selectionHandler[type](e); + return true; + } + // инструмент + const h = this._tools.get(currentTool); + if (h && h[type]) { h[type](e); return true; } + return false; + } + + onDown(e) { this._dispatch('onDown', e); } + onMove(e) { this._dispatch('onMove', e); } + onUp(e) { this._dispatch('onUp', e); } +} +const dispatcher = new ToolDispatcher(); + +// ===================== LAYER SYSTEM ===================== +function createLayer(name, w, h) { + if (layers.length >= MAX_LAYERS) return null; + const c = document.createElement('canvas'); + c.width = w || canvasW; + c.height = h || canvasH; + const layer = { + id: ++layerIdCounter, + name: name || ('Слой ' + layerIdCounter), + canvas: c, + ctx: c.getContext('2d'), + visible: true, + opacity: 1, + blendMode: 'source-over' + }; + return layer; +} + +function getActiveLayer() { return layers[activeLayerIndex]; } +function activeCtx() { return layers[activeLayerIndex].ctx; } +function activeCanvas() { return layers[activeLayerIndex].canvas; } + +function compositeLayersToMain() { + ctxMain.clearRect(0, 0, canvasW, canvasH); + for (const layer of layers) { + if (!layer.visible || layer.opacity === 0) continue; + ctxMain.save(); + ctxMain.globalAlpha = layer.opacity; + ctxMain.globalCompositeOperation = layer.blendMode; + ctxMain.drawImage(layer.canvas, 0, 0); + ctxMain.restore(); + } +} + +function markCompositeDirty() { + if (compositeDirtyRaf) return; + compositeDirtyRaf = requestAnimationFrame(() => { + compositeDirtyRaf = 0; + compositeLayersToMain(); + }); +} + +function initLayers(w, h, image) { + layers = []; + layerIdCounter = 0; + activeLayerIndex = 0; + const layer = createLayer('Фон', w, h); + if (image) layer.ctx.drawImage(image, 0, 0, w, h); + layers.push(layer); + compositeLayersToMain(); + renderLayerPanel(); +} + +function addLayer(name) { + if (layers.length >= MAX_LAYERS) return; + const layer = createLayer(name || ('Слой ' + (layerIdCounter + 1)), canvasW, canvasH); + layers.splice(activeLayerIndex + 1, 0, layer); + activeLayerIndex++; + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); +} + +function removeLayer(index) { + if (layers.length <= 1) return; + layers.splice(index, 1); + if (activeLayerIndex >= layers.length) activeLayerIndex = layers.length - 1; + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); +} + +function mergeDown(index) { + if (index <= 0 || index >= layers.length) return; + const upper = layers[index]; + const lower = layers[index - 1]; + lower.ctx.save(); + lower.ctx.globalAlpha = upper.opacity; + lower.ctx.globalCompositeOperation = upper.blendMode; + lower.ctx.drawImage(upper.canvas, 0, 0); + lower.ctx.restore(); + layers.splice(index, 1); + if (activeLayerIndex >= index) activeLayerIndex = Math.max(0, activeLayerIndex - 1); + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); +} + +function flattenLayers() { + if (layers.length <= 1) return; + compositeLayersToMain(); + const flat = createLayer('Фон', canvasW, canvasH); + flat.ctx.drawImage(cMain, 0, 0); + layers = [flat]; + activeLayerIndex = 0; + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); +} + +function moveLayer(fromIndex, toIndex) { + if (fromIndex === toIndex || toIndex < 0 || toIndex >= layers.length) return; + const layer = layers.splice(fromIndex, 1)[0]; + layers.splice(toIndex, 0, layer); + if (activeLayerIndex === fromIndex) { + activeLayerIndex = toIndex; + } else { + if (fromIndex < activeLayerIndex && toIndex >= activeLayerIndex) activeLayerIndex--; + else if (fromIndex > activeLayerIndex && toIndex <= activeLayerIndex) activeLayerIndex++; + } + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); +} + +function updateStatusLayer() { + const el = $('#statusLayer'); + if (layers.length > 0) { + el.textContent = layers[activeLayerIndex].name + ' (' + layers.length + ')'; + } else { + el.textContent = ''; + } +} + +// ===================== HISTORY (sync ImageData) ===================== +// Refactoring B: replaced async toBlob/URL.createObjectURL with sync getImageData/putImageData. +// freeHistoryEntry() removed — no blob URLs to revoke. + +function pushHistory() { + while (history.length > historyIndex + 1) history.pop(); + if (history.length >= MAX_HISTORY) { history.shift(); historyIndex--; } + const snap = { + layers: layers.map(layer => ({ + imageData: layer.ctx.getImageData(0, 0, layer.canvas.width, layer.canvas.height), + id: layer.id, name: layer.name, + visible: layer.visible, opacity: layer.opacity, blendMode: layer.blendMode + })), + activeIndex: activeLayerIndex, + w: canvasW, h: canvasH + }; + history.push(snap); + historyIndex = history.length - 1; + updateHistoryButtons(); +} + +function restoreHistory(index) { + const entry = history[index]; + if (!entry) return; + setCanvasSize(entry.w, entry.h); + layers = []; + activeLayerIndex = entry.activeIndex; + entry.layers.forEach(snap => { + const layer = createLayer(snap.name, entry.w, entry.h); + layer.id = snap.id; + layer.visible = snap.visible; + layer.opacity = snap.opacity; + layer.blendMode = snap.blendMode; + layer.ctx.putImageData(snap.imageData, 0, 0); + layers.push(layer); + }); + compositeLayersToMain(); + clearOverlay(); + redrawUI(); + renderLayerPanel(); + updateStatusLayer(); +} + +function undo() { + if (historyIndex <= 0) return; + historyIndex--; + restoreHistory(historyIndex); + updateHistoryButtons(); +} + +function redo() { + if (historyIndex >= history.length - 1) return; + historyIndex++; + restoreHistory(historyIndex); + updateHistoryButtons(); +} + +function updateHistoryButtons() { + $('#btnUndo').disabled = historyIndex <= 0; + $('#btnRedo').disabled = historyIndex >= history.length - 1; + if (history.length > 0) { + $('#statusHistory').textContent = (historyIndex + 1) + '/' + history.length; + } +} + +// ===================== CLEAR ===================== +function clearOverlay() { ctxOverlay.clearRect(0, 0, canvasW, canvasH); } +function clearUI() { ctxUI.save(); ctxUI.setTransform(1,0,0,1,0,0); ctxUI.clearRect(0, 0, cUI.width, cUI.height); ctxUI.restore(); } + +// ===================== LOAD IMAGE ===================== +function _applyImageToCurrentTab(im, name, transparency) { + img = im; + hasTransparency = transparency; + container.classList.toggle('has-transparency', transparency); + fileName = name; + const w = Math.min(im.width, 16384); + const h = Math.min(im.height, 16384); + setCanvasSize(w, h); + initLayers(w, h, im); + // Refactoring B: removed freeHistoryEntry loop — no blob URLs to revoke + history = []; + historyIndex = -1; + pushHistory(); + fitToViewport(); + enableTools(); + dropzone.classList.add('hidden'); + cancelCurrentTool(); + const tab = tabs.find(t => t.id === activeTabId); + if (tab) { tab.name = name; tab.hasImage = true; } + renderTabBar(); + if (!layerPanelVisible) { + layerPanelVisible = true; + layerPanel.classList.add('visible'); + $('#btnLayers').classList.add('active'); + renderLayerPanel(); + } +} + +function loadImage(file) { + if (!file || !file.type.startsWith('image/')) return; + const name = file.name.replace(/\.[^.]+$/, '') || 'image'; + const transparency = file.type === 'image/png' || file.type === 'image/webp'; + if (canvasW > 0) { + saveCurrentTabState(); + const newTab = createTab(name); + activeTabId = newTab.id; + layers = []; history = []; historyIndex = -1; canvasW = 0; canvasH = 0; + selRect = null; + } + const reader = new FileReader(); + reader.onload = e => { + const im = new Image(); + im.onload = () => _applyImageToCurrentTab(im, name, transparency); + im.src = e.target.result; + }; + reader.readAsDataURL(file); +} + +function loadImageFromDataURL(dataUrl) { + const name = 'pasted'; + if (canvasW > 0) { + saveCurrentTabState(); + const newTab = createTab(name); + activeTabId = newTab.id; + layers = []; history = []; historyIndex = -1; canvasW = 0; canvasH = 0; + selRect = null; + } + const im = new Image(); + im.onload = () => _applyImageToCurrentTab(im, name, true); + im.src = dataUrl; +} + +function enableTools() { + document.querySelectorAll('.tb[disabled]').forEach(b => b.disabled = false); + document.querySelectorAll('#btnExport,#btnRotCCW,#btnRotCW,#btnFlipH,#btnFlipV,#btnResize,#btnAdjust,#btnBlur,#btnSharpen').forEach(b => b.disabled = false); + document.querySelectorAll('#filtersGroup .tb').forEach(b => b.disabled = false); + updateHistoryButtons(); +} + +function disableTools() { + document.querySelectorAll('.tb[data-tool]').forEach(b => b.disabled = true); + document.querySelectorAll('#btnExport,#btnRotCCW,#btnRotCW,#btnFlipH,#btnFlipV,#btnResize,#btnAdjust,#btnBlur,#btnSharpen').forEach(b => b.disabled = true); + document.querySelectorAll('#filtersGroup .tb').forEach(b => b.disabled = true); + updateHistoryButtons(); +} + +// ===================== TABS ===================== +function createTab(name) { + const id = ++tabIdCounter; + const tab = { + id, name: name || 'Новый', + layers: null, activeLayerIndex: 0, + layerIdCounter: 0, + history: [], historyIndex: -1, + canvasW: 0, canvasH: 0, + zoom: 1, panX: 0, panY: 0, + selRect: null, + selPath: null, + fileName: name || 'image', + hasTransparency: false, + hasImage: false, + }; + tabs.push(tab); + return tab; +} + +function saveCurrentTabState() { + const tab = tabs.find(t => t.id === activeTabId); + if (!tab) return; + tab.layers = layers; + tab.activeLayerIndex = activeLayerIndex; + tab.layerIdCounter = layerIdCounter; + tab.history = history; + tab.historyIndex = historyIndex; + tab.canvasW = canvasW; + tab.canvasH = canvasH; + tab.zoom = zoom; + tab.panX = panX; + tab.panY = panY; + tab.selRect = selRect; + tab.selPath = selPath; + tab.fileName = fileName; + tab.hasTransparency = hasTransparency; + tab.hasImage = canvasW > 0; +} + +function loadTabState(tab) { + if (pendingShape) cancelPendingShape(); + cancelCurrentTool(); + hideTextOverlay(); + + activeTabId = tab.id; + + if (!tab.hasImage || !tab.layers || !tab.layers.length) { + layers = []; + activeLayerIndex = 0; + layerIdCounter = 0; + history = []; + historyIndex = -1; + canvasW = 0; canvasH = 0; + zoom = 1; panX = 0; panY = 0; + selRect = null; + fileName = 'image'; + hasTransparency = false; + container.classList.remove('has-transparency'); + [cMain, cOverlay].forEach(c => { c.width = 1; c.height = 1; }); + container.style.width = '1px'; + container.style.height = '1px'; + container.style.transform = 'translate(0px,0px) scale(1)'; + $('#zoomLabel').textContent = '100%'; + $('#statusZoom').textContent = '100%'; + $('#statusDims').textContent = 'Нет изображения'; + disableTools(); + dropzone.classList.remove('hidden'); + clearOverlay(); + clearUI(); + renderLayerPanel(); + renderTabBar(); + return; + } + + layers = tab.layers; + activeLayerIndex = tab.activeLayerIndex; + layerIdCounter = tab.layerIdCounter || 0; + history = tab.history; + historyIndex = tab.historyIndex; + canvasW = tab.canvasW; + canvasH = tab.canvasH; + zoom = tab.zoom; + panX = tab.panX; + panY = tab.panY; + selRect = tab.selRect || null; + selPath = tab.selPath || null; + if (selPath && selPath.length > 2) startMarchingAnts(); else stopMarchingAnts(); + fileName = tab.fileName; + hasTransparency = tab.hasTransparency; + container.classList.toggle('has-transparency', !!hasTransparency); + + [cMain, cOverlay].forEach(c => { c.width = canvasW; c.height = canvasH; }); + container.style.width = canvasW + 'px'; + container.style.height = canvasH + 'px'; + $('#statusDims').textContent = canvasW + ' x ' + canvasH; + + compositeLayersToMain(); + enableTools(); + updateTransform(); + dropzone.classList.add('hidden'); + renderLayerPanel(); + renderTabBar(); +} + +function switchTab(tabId) { + if (tabId === activeTabId) return; + saveCurrentTabState(); + const tab = tabs.find(t => t.id === tabId); + if (tab) loadTabState(tab); +} + +function closeTab(tabId) { + const idx = tabs.findIndex(t => t.id === tabId); + if (idx === -1) return; + + if (tabs.length === 1) { + // Last tab: reset to empty + // Refactoring B: removed freeHistoryEntry calls — ImageData snapshots are GC'd automatically + saveCurrentTabState(); + const tab = tabs[0]; + tab.layers = null; + tab.history = []; + tab.historyIndex = -1; + tab.canvasW = 0; tab.canvasH = 0; + tab.hasImage = false; + tab.name = 'Новый'; + loadTabState(tab); + return; + } + + if (tabId !== activeTabId) { + // Refactoring B: removed freeHistoryEntry — no blob URLs to revoke + tabs.splice(idx, 1); + renderTabBar(); + } else { + // Closing active tab: switch first, then remove old + const newIdx = idx > 0 ? idx - 1 : 1; + const newTab = tabs[newIdx]; + // Refactoring B: removed freeHistoryEntry loop — ImageData GC'd automatically + history = []; + historyIndex = -1; + layers = []; + tabs.splice(idx, 1); + loadTabState(newTab); + } +} + +function renderTabBar() { + const bar = $('#tabBar'); + bar.innerHTML = ''; + tabs.forEach(tab => { + const item = document.createElement('div'); + item.className = 'tab-item' + (tab.id === activeTabId ? ' active' : ''); + item.dataset.tabId = tab.id; + + const name = document.createElement('span'); + name.className = 'tab-name'; + name.textContent = tab.name; + + const close = document.createElement('button'); + close.className = 'tab-close'; + close.innerHTML = '×'; + close.title = 'Закрыть вкладку'; + close.addEventListener('click', e => { e.stopPropagation(); closeTab(tab.id); }); + + item.appendChild(name); + item.appendChild(close); + item.addEventListener('click', () => switchTab(tab.id)); + bar.appendChild(item); + }); + + const addBtn = document.createElement('button'); + addBtn.className = 'tab-add'; + addBtn.title = 'Новая вкладка (Ctrl+T)'; + addBtn.innerHTML = ''; + addBtn.addEventListener('click', () => { + saveCurrentTabState(); + const tab = createTab('Новый'); + activeTabId = tab.id; + loadTabState(tab); + }); + bar.appendChild(addBtn); + + const activeItem = bar.querySelector('.tab-item.active'); + if (activeItem) activeItem.scrollIntoView({ block: 'nearest', inline: 'nearest' }); +} + +// ===================== DROP ZONE ===================== +dropzone.addEventListener('click', () => fileInput.click()); +dropzone.addEventListener('dragover', e => { e.preventDefault(); dropzone.classList.add('drag-over'); }); +dropzone.addEventListener('dragleave', () => dropzone.classList.remove('drag-over')); +dropzone.addEventListener('drop', e => { + e.preventDefault(); + dropzone.classList.remove('drag-over'); + const f = e.dataTransfer.files[0]; + if (f) loadImage(f); +}); + +viewport.addEventListener('dragover', e => e.preventDefault()); +viewport.addEventListener('drop', e => { + e.preventDefault(); + const f = e.dataTransfer.files[0]; + if (f) loadImage(f); +}); + +fileInput.addEventListener('change', e => { + if (e.target.files[0]) loadImage(e.target.files[0]); + e.target.value = ''; +}); + +document.addEventListener('paste', e => { + const items = e.clipboardData.items; + for (const item of items) { + if (item.type.startsWith('image/')) { + e.preventDefault(); + loadImage(item.getAsFile()); + return; + } + } +}); + +$('#btnOpen').addEventListener('click', () => fileInput.click()); + +// ===================== ZOOM / PAN ===================== +viewport.addEventListener('wheel', e => { + if (!canvasW) return; + e.preventDefault(); + const rect = viewport.getBoundingClientRect(); + const mx = e.clientX - rect.left; + const my = e.clientY - rect.top; + const oldZoom = zoom; + const factor = e.deltaY < 0 ? 1.1 : 1 / 1.1; + zoom = clamp(zoom * factor, 0.05, 32); + panX = mx - (mx - panX) * (zoom / oldZoom); + panY = my - (my - panY) * (zoom / oldZoom); + updateTransform(); +}, { passive: false }); + +$('#btnZoomIn').addEventListener('click', () => { zoomCenter(1.25); }); +$('#btnZoomOut').addEventListener('click', () => { zoomCenter(1/1.25); }); +$('#btnFit').addEventListener('click', fitToViewport); +$('#btnUndo').addEventListener('click', () => { if (pendingShape) cancelPendingShape(); else undo(); }); +$('#btnRedo').addEventListener('click', redo); + +function zoomCenter(factor) { + if (!canvasW) return; + const vw = viewport.clientWidth; + const vh = viewport.clientHeight; + const mx = vw / 2, my = vh / 2; + const oldZoom = zoom; + zoom = clamp(zoom * factor, 0.05, 32); + panX = mx - (mx - panX) * (zoom / oldZoom); + panY = my - (my - panY) * (zoom / oldZoom); + updateTransform(); +} + +// Pan: capture phase — space+drag or middle mouse always wins +viewport.addEventListener('pointerdown', e => { + if (!canvasW) return; + if (spaceDown || e.button === 1) { + isPanning = true; + panStart = { x: e.clientX - panX, y: e.clientY - panY }; + viewport.setPointerCapture(e.pointerId); + viewport.style.cursor = 'grabbing'; container.style.cursor = 'grabbing'; + e.preventDefault(); + e.stopPropagation(); + return; + } +}, true); + +// Normal pointerdown — tools, selection, auto-pan outside image +viewport.addEventListener('pointerdown', e => { + if (!canvasW || isPanning) return; + if (e.button === 0 && !currentTool && !pendingShape) { + const p = getPointerCanvas(e); + const outsideImage = p.x < 0 || p.y < 0 || p.x > canvasW || p.y > canvasH; + if (outsideImage) { + isPanning = true; + panStart = { x: e.clientX - panX, y: e.clientY - panY }; + viewport.setPointerCapture(e.pointerId); + viewport.style.cursor = 'grabbing'; + e.preventDefault(); + return; + } + } + dispatcher.onDown(e); +}); + +viewport.addEventListener('pointermove', e => { + if (!canvasW) return; + if (isPanning) { + panX = e.clientX - panStart.x; + panY = e.clientY - panStart.y; + updateTransform(); + return; + } + const p = getPointerCanvas(e); + $('#statusCursor').textContent = Math.round(p.x) + ', ' + Math.round(p.y); + dispatcher.onMove(e); +}); + +viewport.addEventListener('pointerup', e => { + if (isPanning) { + isPanning = false; + viewport.releasePointerCapture(e.pointerId); + const cur = spaceDown ? 'grab' : (currentTool ? 'crosshair' : 'default'); + viewport.style.cursor = cur; + container.style.cursor = cur; + return; + } + dispatcher.onUp(e); +}); + +// ===================== TOOL SELECTION ===================== +function setTool(name) { + if (name === 'select') { + if (pendingShape) commitPendingShape(); + if (currentTool === 'select') { cancelCurrentTool(); return; } + cancelCurrentTool(); + currentTool = 'select'; + document.querySelectorAll('#toolsGroup .tb').forEach(b => { + b.classList.toggle('active', b.dataset.tool === 'select'); + }); + toolOptions.innerHTML = ``; + toolOptions.classList.add('visible'); + viewport.style.cursor = 'move'; + container.style.cursor = 'move'; + return; + } + if (currentTool === name) { + cancelCurrentTool(); + return; + } + if (pendingShape) commitPendingShape(); + cancelCurrentTool(); + currentTool = name; + document.querySelectorAll('#toolsGroup .tb').forEach(b => { + b.classList.toggle('active', b.dataset.tool === name); + }); + $('#btnAdjust').classList.remove('active'); + showToolOptions(name); + viewport.style.cursor = 'crosshair'; + container.style.cursor = 'crosshair'; +} + +function cancelCurrentTool() { + currentTool = null; + document.querySelectorAll('#toolsGroup .tb').forEach(b => { + b.classList.toggle('active', b.dataset.tool === 'select'); + }); + $('#btnAdjust').classList.remove('active'); + $('#btnResize').classList.remove('active'); + $('#btnBlur').classList.remove('active'); + $('#btnSharpen').classList.remove('active'); + cMain.style.opacity = '1'; + cOverlay.style.filter = ''; + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + clearOverlay(); + cropRect = null; + selDragging = false; + hideTextOverlay(); + adjBrightness = 0; adjContrast = 0; adjSaturation = 0; + cOverlay.style.filter = ''; + redrawUI(); + if (selPath && selPath.length > 2) { + showLassoOptions(); + } else if (selRect && selRect.w > 5 && selRect.h > 5) { + showSelectionOptions(); + } + viewport.style.cursor = 'default'; + container.style.cursor = 'default'; +} + +document.querySelectorAll('#toolsGroup .tb').forEach(btn => { + btn.addEventListener('click', () => { + if (btn.disabled) return; + setTool(btn.dataset.tool); + }); +}); + +// ===================== TOOL OPTIONS ===================== +// Refactoring D: helper to build a labelled range row, eliminates repeated slider HTML +function buildRangeRow(id, label, min, max, value) { + return `${value}`; +} + +function showToolOptions(tool) { + toolOptions.innerHTML = ''; + toolOptions.classList.add('visible'); + + if (tool === 'brush' || tool === 'eraser') { + toolOptions.innerHTML = ` + ${buildRangeRow('optSize', 'Размер', 1, 100, brushSize)} +
+ ${buildRangeRow('optOpacity', 'Прозр.', 1, 100, brushOpacity)} + `; + $('#optSize').oninput = e => { brushSize = +e.target.value; $('#optSizeVal').textContent = brushSize; }; + $('#optOpacity').oninput = e => { brushOpacity = +e.target.value; $('#optOpacityVal').textContent = brushOpacity + '%'; }; + } + else if (tool === 'line' || tool === 'arrow') { + toolOptions.innerHTML = ` + ${buildRangeRow('optStroke', 'Толщина', 1, 20, strokeWidth)} + `; + $('#optStroke').oninput = e => { strokeWidth = +e.target.value; $('#optStrokeVal').textContent = strokeWidth; }; + } + else if (tool === 'rect' || tool === 'circle') { + toolOptions.innerHTML = ` + ${buildRangeRow('optStroke', 'Толщина', 1, 20, strokeWidth)} +
+ + `; + $('#optStroke').oninput = e => { strokeWidth = +e.target.value; $('#optStrokeVal').textContent = strokeWidth; }; + $('#optFill').onclick = () => { fillShape = !fillShape; $('#optFill').classList.toggle('on', fillShape); }; + } + else if (tool === 'crop') { + toolOptions.innerHTML = ` + + +
+ + + `; + cropAspect = 0; + initCrop(); + $('#optCropRatio').onchange = e => { + cropAspect = +e.target.value; + if (cropAspect > 0 && cropRect) { + cropRect.h = cropRect.w / cropAspect; + drawCropOverlay(); + } + }; + $('#optCropApply').onclick = applyCrop; + $('#optCropCancel').onclick = () => cancelCurrentTool(); + } + else if (tool === 'text') { + toolOptions.innerHTML = ` + + + +
+ + + `; + const fontSel = $('#optFont'); + fontSel.value = textFont; + fontSel.onchange = e => textFont = e.target.value; + $('#optTextSize').onchange = e => textSize = clamp(+e.target.value, 8, 200); + $('#optBold').onclick = () => { textBold = !textBold; $('#optBold').classList.toggle('on', textBold); }; + $('#optItalic').onclick = () => { textItalic = !textItalic; $('#optItalic').classList.toggle('on', textItalic); }; + } + else if (tool === 'eyedropper') { + toolOptions.innerHTML = ``; + } + else if (tool === 'fill') { + toolOptions.innerHTML = ` + ${buildRangeRow('optTolerance', 'Допуск', 0, 255, fillTolerance)} + `; + $('#optTolerance').oninput = e => { fillTolerance = +e.target.value; $('#optToleranceVal').textContent = fillTolerance; }; + } + else if (tool === 'clone') { + toolOptions.innerHTML = ` + ${buildRangeRow('optSize', 'Размер', 1, 100, brushSize)} +
+ ${buildRangeRow('optOpacity', 'Прозр.', 1, 100, brushOpacity)} +
+ + `; + $('#optSize').oninput = e => { brushSize = +e.target.value; $('#optSizeVal').textContent = brushSize; }; + $('#optOpacity').oninput = e => { brushOpacity = +e.target.value; $('#optOpacityVal').textContent = brushOpacity + '%'; }; + } + else { + toolOptions.classList.remove('visible'); + } +} + +// ===================== ADJUST ===================== +$('#btnAdjust').addEventListener('click', () => { + if ($('#btnAdjust').classList.contains('active')) { + cancelCurrentTool(); + return; + } + cancelCurrentTool(); + currentTool = 'adjust'; + $('#btnAdjust').classList.add('active'); + toolOptions.classList.add('visible'); + toolOptions.innerHTML = ` + 0 +
+ 0 +
+ 0 +
+ + + `; + const update = () => { + const b = 1 + adjBrightness / 100; + const c = 1 + adjContrast / 100; + const s = 1 + adjSaturation / 100; + cOverlay.style.filter = `brightness(${b}) contrast(${c}) saturate(${s})`; + ctxOverlay.clearRect(0, 0, canvasW, canvasH); + ctxOverlay.drawImage(cMain, 0, 0); + cMain.style.opacity = '0'; + }; + $('#optBright').oninput = e => { adjBrightness = +e.target.value; $('#optBrightVal').textContent = adjBrightness; update(); }; + $('#optContrast').oninput = e => { adjContrast = +e.target.value; $('#optContrastVal').textContent = adjContrast; update(); }; + $('#optSatur').oninput = e => { adjSaturation = +e.target.value; $('#optSaturVal').textContent = adjSaturation; update(); }; + $('#optAdjApply').onclick = applyAdjustments; + $('#optAdjCancel').onclick = () => { cMain.style.opacity = '1'; cOverlay.style.filter = ''; clearOverlay(); cancelCurrentTool(); }; +}); + +function applyAdjustments() { + if (adjBrightness === 0 && adjContrast === 0 && adjSaturation === 0) { + cMain.style.opacity = '1'; cOverlay.style.filter = ''; clearOverlay(); + cancelCurrentTool(); + return; + } + const _ctx = activeCtx(); + const { sx, sy, sw, sh } = getSelectionBBox(); + const imageData = _ctx.getImageData(sx, sy, sw, sh); + const d = imageData.data; + const br = adjBrightness / 100; + const co = adjContrast / 100; + const sa = adjSaturation / 100; + const contrastFactor = (1 + co) * (1 + co); + + for (let i = 0; i < d.length; i += 4) { + let r = d[i], g = d[i+1], b = d[i+2]; + r += 255 * br; g += 255 * br; b += 255 * br; + r = ((r / 255 - 0.5) * contrastFactor + 0.5) * 255; + g = ((g / 255 - 0.5) * contrastFactor + 0.5) * 255; + b = ((b / 255 - 0.5) * contrastFactor + 0.5) * 255; + const gray = 0.2126 * r + 0.7152 * g + 0.0722 * b; + r = gray + (r - gray) * (1 + sa); + g = gray + (g - gray) * (1 + sa); + b = gray + (b - gray) * (1 + sa); + d[i] = clamp(Math.round(r), 0, 255); + d[i+1] = clamp(Math.round(g), 0, 255); + d[i+2] = clamp(Math.round(b), 0, 255); + } + putFilteredRegion(_ctx, imageData, sx, sy, sw, sh); + cMain.style.opacity = '1'; + cOverlay.style.filter = ''; + clearOverlay(); + compositeLayersToMain(); + pushHistory(); + cancelCurrentTool(); +} + +// ===================== BLUR ===================== +$('#btnBlur').addEventListener('click', () => { + if ($('#btnBlur').classList.contains('active')) { cancelCurrentTool(); return; } + cancelCurrentTool(); + currentTool = 'blur'; + $('#btnBlur').classList.add('active'); + toolOptions.classList.add('visible'); + toolOptions.innerHTML = ` + ${blurRadius} +
+ + + `; + const updateBlur = () => { + ctxOverlay.clearRect(0, 0, canvasW, canvasH); + ctxOverlay.drawImage(cMain, 0, 0); + cOverlay.style.filter = `blur(${blurRadius}px)`; + cMain.style.opacity = '0'; + }; + updateBlur(); + $('#optBlurR').oninput = e => { blurRadius = +e.target.value; $('#optBlurRVal').textContent = blurRadius; updateBlur(); }; + $('#optBlurApply').onclick = applyBlur; + $('#optBlurCancel').onclick = () => { cMain.style.opacity = '1'; cOverlay.style.filter = ''; clearOverlay(); cancelCurrentTool(); }; +}); + +function applyBlur() { + if (blurRadius === 0) { cMain.style.opacity = '1'; cOverlay.style.filter = ''; clearOverlay(); cancelCurrentTool(); return; } + const _c = activeCanvas(); + const hasSel = hasActiveSelection(); + if (hasSel) { + const { sx, sy, sw, sh } = getSelectionBBox(); + const tmp = document.createElement('canvas'); + tmp.width = sw; tmp.height = sh; + const tctx = tmp.getContext('2d'); + tctx.filter = `blur(${blurRadius}px)`; + tctx.drawImage(_c, sx, sy, sw, sh, 0, 0, sw, sh); + const ac = activeCtx(); + ac.save(); + ac.beginPath(); + if (selPath && selPath.length > 2) { + selPath.forEach((p, i) => i === 0 ? ac.moveTo(p.x, p.y) : ac.lineTo(p.x, p.y)); + ac.closePath(); + } else { ac.rect(sx, sy, sw, sh); } + ac.clip(); + ac.clearRect(sx, sy, sw, sh); + ac.drawImage(tmp, sx, sy); + ac.restore(); + } else { + const tmp = document.createElement('canvas'); + tmp.width = canvasW; tmp.height = canvasH; + const tctx = tmp.getContext('2d'); + tctx.filter = `blur(${blurRadius}px)`; + tctx.drawImage(_c, 0, 0); + activeCtx().clearRect(0, 0, canvasW, canvasH); + activeCtx().drawImage(tmp, 0, 0); + } + cMain.style.opacity = '1'; + cOverlay.style.filter = ''; + clearOverlay(); + compositeLayersToMain(); + pushHistory(); + cancelCurrentTool(); +} + +// ===================== SHARPEN ===================== +$('#btnSharpen').addEventListener('click', () => { + if ($('#btnSharpen').classList.contains('active')) { cancelCurrentTool(); return; } + cancelCurrentTool(); + currentTool = 'sharpen'; + $('#btnSharpen').classList.add('active'); + toolOptions.classList.add('visible'); + toolOptions.innerHTML = ` + ${sharpenAmount} +
+ + + `; + previewSharpen(); + $('#optSharpAmt').oninput = e => { sharpenAmount = +e.target.value; $('#optSharpAmtVal').textContent = sharpenAmount; previewSharpen(); }; + $('#optSharpApply').onclick = applySharpen; + $('#optSharpCancel').onclick = () => { cMain.style.opacity = '1'; clearOverlay(); cancelCurrentTool(); }; +}); + +function previewSharpen() { + ctxOverlay.clearRect(0, 0, canvasW, canvasH); + const tmp = document.createElement('canvas'); + tmp.width = canvasW; tmp.height = canvasH; + const tctx = tmp.getContext('2d'); + tctx.drawImage(cMain, 0, 0); + sharpenCanvas(tctx, canvasW, canvasH, sharpenAmount / 100); + ctxOverlay.drawImage(tmp, 0, 0); + cMain.style.opacity = '0'; +} + +function sharpenCanvas(ctx, w, h, amount) { + const src = ctx.getImageData(0, 0, w, h); + const dst = ctx.createImageData(w, h); + const s = src.data, d = dst.data; + const mix = amount; + for (let y = 1; y < h - 1; y++) { + for (let x = 1; x < w - 1; x++) { + const i = (y * w + x) * 4; + for (let c = 0; c < 3; c++) { + const val = s[i+c] * (1 + 4*mix) + - s[((y-1)*w+x)*4+c] * mix + - s[((y+1)*w+x)*4+c] * mix + - s[(y*w+x-1)*4+c] * mix + - s[(y*w+x+1)*4+c] * mix; + d[i+c] = clamp(Math.round(val), 0, 255); + } + d[i+3] = s[i+3]; + } + } + for (let x = 0; x < w; x++) { for (let c = 0; c < 4; c++) { d[x*4+c] = s[x*4+c]; d[((h-1)*w+x)*4+c] = s[((h-1)*w+x)*4+c]; } } + for (let y = 0; y < h; y++) { for (let c = 0; c < 4; c++) { d[(y*w)*4+c] = s[(y*w)*4+c]; d[(y*w+w-1)*4+c] = s[(y*w+w-1)*4+c]; } } + ctx.putImageData(dst, 0, 0); +} + +function applySharpen() { + const hasSel = hasActiveSelection(); + if (hasSel) { + const { sx, sy, sw, sh } = getSelectionBBox(); + const tmp = document.createElement('canvas'); + tmp.width = sw; tmp.height = sh; + const tctx = tmp.getContext('2d'); + tctx.drawImage(activeCanvas(), sx, sy, sw, sh, 0, 0, sw, sh); + sharpenCanvas(tctx, sw, sh, sharpenAmount / 100); + const ac = activeCtx(); + ac.save(); + ac.beginPath(); + if (selPath && selPath.length > 2) { + selPath.forEach((p, i) => i === 0 ? ac.moveTo(p.x, p.y) : ac.lineTo(p.x, p.y)); + ac.closePath(); + } else { ac.rect(sx, sy, sw, sh); } + ac.clip(); + ac.clearRect(sx, sy, sw, sh); + ac.drawImage(tmp, sx, sy); + ac.restore(); + } else { + sharpenCanvas(activeCtx(), canvasW, canvasH, sharpenAmount / 100); + } + cMain.style.opacity = '1'; + clearOverlay(); + compositeLayersToMain(); + pushHistory(); + cancelCurrentTool(); +} + +// ===================== FILTERS ===================== +function applyFilter(fn) { + const _ctx = activeCtx(); + const { sx, sy, sw, sh } = getSelectionBBox(); + const imageData = _ctx.getImageData(sx, sy, sw, sh); + fn(imageData.data); + putFilteredRegion(_ctx, imageData, sx, sy, sw, sh); + compositeLayersToMain(); + pushHistory(); +} + +$('#btnGrayscale').addEventListener('click', () => { + applyFilter(d => { + for (let i = 0; i < d.length; i += 4) { + const g = Math.round(0.2126 * d[i] + 0.7152 * d[i+1] + 0.0722 * d[i+2]); + d[i] = d[i+1] = d[i+2] = g; + } + }); +}); + +$('#btnSepia').addEventListener('click', () => { + applyFilter(d => { + for (let i = 0; i < d.length; i += 4) { + const r = d[i], g = d[i+1], b = d[i+2]; + d[i] = clamp(Math.round(r * 0.393 + g * 0.769 + b * 0.189), 0, 255); + d[i+1] = clamp(Math.round(r * 0.349 + g * 0.686 + b * 0.168), 0, 255); + d[i+2] = clamp(Math.round(r * 0.272 + g * 0.534 + b * 0.131), 0, 255); + } + }); +}); + +$('#btnInvert').addEventListener('click', () => { + applyFilter(d => { + for (let i = 0; i < d.length; i += 4) { + d[i] = 255 - d[i]; d[i+1] = 255 - d[i+1]; d[i+2] = 255 - d[i+2]; + } + }); +}); + +$('#btnAutoLevels').addEventListener('click', () => { + applyFilter(d => { + let minR = 255, maxR = 0, minG = 255, maxG = 0, minB = 255, maxB = 0; + for (let i = 0; i < d.length; i += 4) { + if (d[i+3] < 10) continue; + minR = Math.min(minR, d[i]); maxR = Math.max(maxR, d[i]); + minG = Math.min(minG, d[i+1]); maxG = Math.max(maxG, d[i+1]); + minB = Math.min(minB, d[i+2]); maxB = Math.max(maxB, d[i+2]); + } + const rng = (v, min, max) => max > min ? clamp(Math.round((v - min) / (max - min) * 255), 0, 255) : v; + for (let i = 0; i < d.length; i += 4) { + d[i] = rng(d[i], minR, maxR); + d[i+1] = rng(d[i+1], minG, maxG); + d[i+2] = rng(d[i+2], minB, maxB); + } + }); +}); + +// ===================== BUCKET FILL / CLONE STAMP ===================== +// Handled via dispatcher.registerTool('fill',...) and dispatcher.registerTool('clone',...) above. + +// ===================== RESIZE ===================== +$('#btnResize').addEventListener('click', () => { + if ($('#btnResize').classList.contains('active')) { + cancelCurrentTool(); + return; + } + cancelCurrentTool(); + currentTool = 'resize'; + $('#btnResize').classList.add('active'); + resizeW = canvasW; resizeH = canvasH; + resizeOrigW = canvasW; resizeOrigH = canvasH; + resizeKeepRatio = true; + toolOptions.classList.add('visible'); + toolOptions.innerHTML = ` + + + +
+ + + `; + $('#optResLink').onclick = () => { + resizeKeepRatio = !resizeKeepRatio; + $('#optResLink').classList.toggle('on', resizeKeepRatio); + }; + $('#optResW').onchange = e => { + resizeW = clamp(+e.target.value, 1, 16384); + if (resizeKeepRatio) { + resizeH = Math.round(resizeW * resizeOrigH / resizeOrigW); + $('#optResH').value = resizeH; + } + }; + $('#optResH').onchange = e => { + resizeH = clamp(+e.target.value, 1, 16384); + if (resizeKeepRatio) { + resizeW = Math.round(resizeH * resizeOrigW / resizeOrigH); + $('#optResW').value = resizeW; + } + }; + $('#optResApply').onclick = applyResize; + $('#optResCancel').onclick = () => cancelCurrentTool(); +}); + +function applyResize() { + if (resizeW === canvasW && resizeH === canvasH) { cancelCurrentTool(); return; } + layers.forEach(layer => { + const tmp = document.createElement('canvas'); + tmp.width = resizeW; tmp.height = resizeH; + const tc = tmp.getContext('2d'); + tc.imageSmoothingEnabled = true; + tc.imageSmoothingQuality = 'high'; + tc.drawImage(layer.canvas, 0, 0, resizeW, resizeH); + layer.canvas = tmp; + layer.ctx = tc; + }); + setCanvasSize(resizeW, resizeH); + compositeLayersToMain(); + pushHistory(); + fitToViewport(); + cancelCurrentTool(); + renderLayerPanel(); +} + +// ===================== ROTATE / FLIP ===================== +$('#btnRotCW').addEventListener('click', () => rotate90(1)); +$('#btnRotCCW').addEventListener('click', () => rotate90(-1)); +$('#btnFlipH').addEventListener('click', () => flip('h')); +$('#btnFlipV').addEventListener('click', () => flip('v')); + +function rotate90(dir) { + const oldW = canvasW, oldH = canvasH; + layers.forEach(layer => { + const tmp = document.createElement('canvas'); + tmp.width = oldH; tmp.height = oldW; + const tc = tmp.getContext('2d'); + tc.save(); + if (dir === 1) { tc.translate(oldH, 0); tc.rotate(Math.PI / 2); } + else { tc.translate(0, oldW); tc.rotate(-Math.PI / 2); } + tc.drawImage(layer.canvas, 0, 0); + tc.restore(); + layer.canvas = tmp; + layer.ctx = tc; + }); + setCanvasSize(oldH, oldW); + compositeLayersToMain(); + pushHistory(); + fitToViewport(); + renderLayerPanel(); +} + +function flip(dir) { + layers.forEach(layer => { + const tmp = document.createElement('canvas'); + tmp.width = canvasW; tmp.height = canvasH; + const tc = tmp.getContext('2d'); + tc.save(); + if (dir === 'h') { tc.translate(canvasW, 0); tc.scale(-1, 1); } + else { tc.translate(0, canvasH); tc.scale(1, -1); } + tc.drawImage(layer.canvas, 0, 0); + tc.restore(); + layer.canvas = tmp; + layer.ctx = tc; + }); + compositeLayersToMain(); + pushHistory(); + renderLayerPanel(); +} + +// ===================== CROP ===================== +function initCrop() { + const margin = Math.min(canvasW, canvasH) * 0.1; + cropRect = { + x: margin, + y: margin, + w: canvasW - margin * 2, + h: canvasH - margin * 2 + }; + drawCropOverlay(); +} + +function drawCropOverlay(full) { + if (!cropRect) return; + if (full !== false) { clearUI(); drawRulers(); drawImageBorder(); } + const ctx = ctxUI; + const vw = viewport.clientWidth; + const vh = viewport.clientHeight; + const tl = c2s(cropRect.x, cropRect.y); + const br = c2s(cropRect.x + cropRect.w, cropRect.y + cropRect.h); + const sx = tl.x, sy = tl.y, sw = br.x - tl.x, sh = br.y - tl.y; + ctx.fillStyle = 'rgba(0,0,0,0.5)'; + ctx.fillRect(0, 0, vw, sy); + ctx.fillRect(0, sy, sx, sh); + ctx.fillRect(sx + sw, sy, vw - sx - sw, sh); + ctx.fillRect(0, sy + sh, vw, vh - sy - sh); + ctx.strokeStyle = '#0054e6'; + ctx.lineWidth = 1.5; + ctx.setLineDash([6, 4]); + ctx.strokeRect(sx, sy, sw, sh); + ctx.setLineDash([]); + ctx.strokeStyle = 'rgba(255,255,255,0.2)'; + ctx.lineWidth = 0.5; + for (let i = 1; i < 3; i++) { + ctx.beginPath(); + ctx.moveTo(sx + sw * i / 3, sy); + ctx.lineTo(sx + sw * i / 3, sy + sh); + ctx.stroke(); + ctx.beginPath(); + ctx.moveTo(sx, sy + sh * i / 3); + ctx.lineTo(sx + sw, sy + sh * i / 3); + ctx.stroke(); + } + const hs = 5; + ctx.fillStyle = '#0054e6'; + const handles = getCropHandles(); + for (const hp of Object.values(handles)) { + const sp = c2s(hp.x, hp.y); + ctx.fillRect(sp.x - hs, sp.y - hs, hs * 2, hs * 2); + } +} + +function getCropHandles() { + if (!cropRect) return {}; + const {x, y, w, h} = cropRect; + return { + tl: {x, y}, tm: {x: x+w/2, y}, tr: {x: x+w, y}, + ml: {x, y: y+h/2}, mr: {x: x+w, y: y+h/2}, + bl: {x, y: y+h}, bm: {x: x+w/2, y: y+h}, br: {x: x+w, y: y+h} + }; +} + +function hitCropHandle(cx, cy) { + const handles = getCropHandles(); + const threshold = 8 / zoom; + for (const [name, hp] of Object.entries(handles)) { + if (Math.abs(cx - hp.x) < threshold && Math.abs(cy - hp.y) < threshold) return name; + } + if (cropRect && cx >= cropRect.x && cx <= cropRect.x + cropRect.w && cy >= cropRect.y && cy <= cropRect.y + cropRect.h) { + return 'move'; + } + return null; +} + +function applyCrop() { + if (!cropRect) return; + const rx = Math.round(cropRect.x); + const ry = Math.round(cropRect.y); + const rw = Math.max(1, Math.round(cropRect.w)); + const rh = Math.max(1, Math.round(cropRect.h)); + layers.forEach(layer => { + const tmp = document.createElement('canvas'); + tmp.width = rw; + tmp.height = rh; + const tc = tmp.getContext('2d'); + // Draw old layer content shifted: source at (rx,ry) maps to (0,0) + tc.drawImage(layer.canvas, -rx, -ry); + layer.canvas.width = rw; + layer.canvas.height = rh; + layer.ctx.clearRect(0, 0, rw, rh); + layer.ctx.drawImage(tmp, 0, 0); + }); + setCanvasSize(rw, rh); + compositeLayersToMain(); + cropRect = null; + pushHistory(); + fitToViewport(); + cancelCurrentTool(); + renderLayerPanel(); +} + +// ===================== TOOL HANDLERS (registered into dispatcher below) ===================== +// Brush handler +dispatcher.registerTool('brush', { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + isDrawing = true; + drawStart = { x: p.x, y: p.y }; + lastDraw = { x: p.x, y: p.y }; + viewport.setPointerCapture(e.pointerId); + applySelectionClip(ctxOverlay); + ctxOverlay.lineCap = 'round'; + ctxOverlay.lineJoin = 'round'; + ctxOverlay.lineWidth = brushSize; + ctxOverlay.globalCompositeOperation = 'source-over'; + ctxOverlay.strokeStyle = fgColor; + ctxOverlay.globalAlpha = brushOpacity / 100; + ctxOverlay.beginPath(); + ctxOverlay.moveTo(p.x, p.y); + ctxOverlay.lineTo(p.x + 0.1, p.y + 0.1); + ctxOverlay.stroke(); + }, + onMove(e) { + if (!isDrawing) return; + const p = getPointerCanvas(e); + ctxOverlay.beginPath(); + ctxOverlay.moveTo(lastDraw.x, lastDraw.y); + ctxOverlay.lineTo(p.x, p.y); + ctxOverlay.stroke(); + lastDraw = { x: p.x, y: p.y }; + }, + onUp(e) { + if (!isDrawing) return; + isDrawing = false; + if (selRect && selRect.w > 5 && selRect.h > 5) ctxOverlay.restore(); + activeCtx().save(); + if (selRect && selRect.w > 5 && selRect.h > 5) { + activeCtx().beginPath(); + activeCtx().rect(selRect.x, selRect.y, selRect.w, selRect.h); + activeCtx().clip(); + } + activeCtx().globalAlpha = 1; + activeCtx().drawImage(cOverlay, 0, 0); + activeCtx().restore(); + ctxOverlay.globalCompositeOperation = 'source-over'; + ctxOverlay.globalAlpha = 1; + clearOverlay(); + compositeLayersToMain(); + pushHistory(); + } +}); + +// Eraser handler — draws directly on activeCtx() with destination-out +dispatcher.registerTool('eraser', (function() { + let eraserDrawing = false; + let eraserLastPoint = null; + return { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + eraserDrawing = true; + eraserLastPoint = { x: p.x, y: p.y }; + viewport.setPointerCapture(e.pointerId); + isDrawing = true; + activeCtx().save(); + if (selRect && selRect.w > 5 && selRect.h > 5) { + activeCtx().beginPath(); + activeCtx().rect(selRect.x, selRect.y, selRect.w, selRect.h); + activeCtx().clip(); + } + activeCtx().globalCompositeOperation = 'destination-out'; + activeCtx().lineCap = 'round'; + activeCtx().lineJoin = 'round'; + activeCtx().lineWidth = brushSize; + activeCtx().globalAlpha = brushOpacity / 100; + activeCtx().strokeStyle = 'rgba(0,0,0,1)'; + activeCtx().beginPath(); + activeCtx().moveTo(p.x, p.y); + activeCtx().lineTo(p.x + 0.1, p.y + 0.1); + activeCtx().stroke(); + compositeLayersToMain(); + }, + onMove(e) { + if (!eraserDrawing) return; + const p = getPointerCanvas(e); + activeCtx().beginPath(); + activeCtx().moveTo(eraserLastPoint.x, eraserLastPoint.y); + activeCtx().lineTo(p.x, p.y); + activeCtx().stroke(); + compositeLayersToMain(); + eraserLastPoint = { x: p.x, y: p.y }; + redrawUI(); + const sp = c2s(p.x, p.y); + ctxUI.save(); + ctxUI.strokeStyle = '#fff'; + ctxUI.lineWidth = 1; + ctxUI.beginPath(); + ctxUI.arc(sp.x, sp.y, brushSize / 2 * zoom, 0, Math.PI * 2); + ctxUI.stroke(); + ctxUI.restore(); + }, + onUp(e) { + if (!eraserDrawing) return; + eraserDrawing = false; + eraserLastPoint = null; + isDrawing = false; + activeCtx().restore(); + compositeLayersToMain(); + pushHistory(); + } + }; +})()); + +const CROP_HANDLE_CURSORS = { + tl:'nwse-resize', tr:'nesw-resize', bl:'nesw-resize', br:'nwse-resize', + tm:'ns-resize', bm:'ns-resize', ml:'ew-resize', mr:'ew-resize', + move:'move' +}; + +// Crop handler +dispatcher.registerTool('crop', { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + const handle = hitCropHandle(p.x, p.y); + if (handle) { + cropDragging = handle; + cropStart = { x: p.x, y: p.y, rect: {...cropRect} }; + viewport.setPointerCapture(e.pointerId); + viewport.style.cursor = CROP_HANDLE_CURSORS[handle] || 'crosshair'; + } + }, + onMove(e) { + if (!cropDragging || !cropStart) { + // Hover: update cursor based on handle under pointer + const p = getPointerCanvas(e); + const hit = hitCropHandle(p.x, p.y); + viewport.style.cursor = hit ? (CROP_HANDLE_CURSORS[hit] || 'crosshair') : 'crosshair'; + return; + } + const p = getPointerCanvas(e); + const dx = p.x - cropStart.x; + const dy = p.y - cropStart.y; + const r = cropStart.rect; + if (cropDragging === 'move') { + cropRect.x = r.x + dx; + cropRect.y = r.y + dy; + } else { + let nx = r.x, ny = r.y, nw = r.w, nh = r.h; + if (cropDragging.includes('l')) { nx = r.x + dx; nw = r.w - dx; } + if (cropDragging.includes('r')) { nw = r.w + dx; } + if (cropDragging.includes('t')) { ny = r.y + dy; nh = r.h - dy; } + if (cropDragging.includes('b')) { nh = r.h + dy; } + if (nw < 10) { nw = 10; if (cropDragging.includes('l')) nx = r.x + r.w - 10; } + if (nh < 10) { nh = 10; if (cropDragging.includes('t')) ny = r.y + r.h - 10; } + if (cropAspect > 0) { + if (cropDragging.includes('l') || cropDragging.includes('r')) { nh = nw / cropAspect; } + else { nw = nh * cropAspect; } + } + cropRect = { x: nx, y: ny, w: nw, h: nh }; + } + drawCropOverlay(); + }, + onUp(e) { + if (cropDragging) { + cropDragging = null; + cropStart = null; + viewport.style.cursor = 'crosshair'; + } + } +}); + +// Select (move layer content) handler +dispatcher.registerTool('select', { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + layerMoving = true; + layerMoveStart = { x: p.x, y: p.y }; + const layer = layers[activeLayerIndex]; + layerMoveSnapshot = layer.ctx.getImageData(0, 0, canvasW, canvasH); + viewport.setPointerCapture(e.pointerId); + }, + onMove(e) { + if (!layerMoving || !layerMoveStart || !layerMoveSnapshot) return; + const p = getPointerCanvas(e); + const dx = Math.round(p.x - layerMoveStart.x); + const dy = Math.round(p.y - layerMoveStart.y); + const layer = layers[activeLayerIndex]; + layer.ctx.clearRect(0, 0, canvasW, canvasH); + layer.ctx.putImageData(layerMoveSnapshot, dx, dy); + compositeLayersToMain(); + }, + onUp(e) { + if (layerMoving) { + layerMoving = false; + layerMoveStart = null; + layerMoveSnapshot = null; + pushHistory(); + } + } +}); + +// Eyedropper handler +dispatcher.registerTool('eyedropper', { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + if (p.x >= 0 && p.x < canvasW && p.y >= 0 && p.y < canvasH) { + const pixel = ctxMain.getImageData(Math.round(p.x), Math.round(p.y), 1, 1).data; + const hex = '#' + [pixel[0],pixel[1],pixel[2]].map(c => c.toString(16).padStart(2,'0')).join(''); + fgColor = hex; + $('#colorPicker').value = hex; + updateColorSwatch(); + } + }, + onMove(e) {}, + onUp(e) {} +}); + +// Text handler +dispatcher.registerTool('text', { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + const hadText = ((textArea.innerText || '').trim()).length > 0; + commitText(); + if (!hadText) { + const textLayerIdx = findTextLayerAt(p.x, p.y); + if (textLayerIdx >= 0) { + const td = layers[textLayerIdx].textData; + textFont = td.font; textSize = td.size; + textBold = td.bold; textItalic = td.italic; + fgColor = td.color; + $('#colorPicker').value = fgColor; + updateColorSwatch(); + editingTextLayerIndex = textLayerIdx; + layers[textLayerIdx].ctx.clearRect(0, 0, canvasW, canvasH); + compositeLayersToMain(); + showTextOverlay(td.x + td.ox, td.y + td.oy); + textArea.textContent = td.content; + textArea.dataset.cx = td.x + td.ox; + textArea.dataset.cy = td.y + td.oy; + textArea.dataset.rotation = td.rotation || 0; + textArea.dataset.scaleX = td.scaleX || 1; + textArea.dataset.scaleY = td.scaleY || 1; + setTimeout(() => { textArea.focus(); selectAllTextEditor(); }, 50); + } else { + showTextOverlay(p.x, p.y); + } + } else { + hideTextOverlay(); + } + }, + onMove(e) {}, + onUp(e) {} +}); + +// Shape handler factory (line, rect, circle, arrow) +function _makeShapeHandler(toolName) { + return { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + isDrawing = true; + drawStart = { x: p.x, y: p.y }; + lastDraw = { x: p.x, y: p.y }; + viewport.setPointerCapture(e.pointerId); + }, + onMove(e) { + if (!isDrawing) return; + const p = getPointerCanvas(e); + clearOverlay(); + ctxOverlay.save(); + if (selRect && selRect.w > 5 && selRect.h > 5) { + ctxOverlay.beginPath(); + ctxOverlay.rect(selRect.x, selRect.y, selRect.w, selRect.h); + ctxOverlay.clip(); + } + ctxOverlay.strokeStyle = fgColor; + ctxOverlay.fillStyle = fgColor; + ctxOverlay.lineWidth = strokeWidth; + ctxOverlay.lineCap = 'round'; + ctxOverlay.lineJoin = 'round'; + ctxOverlay.globalAlpha = 1; + let ex = p.x, ey = p.y; + const shift = e.shiftKey; + if (toolName === 'line') { + if (shift) { const sn = snapAngle(drawStart.x, drawStart.y, ex, ey); ex = sn.x; ey = sn.y; } + ctxOverlay.beginPath(); + ctxOverlay.moveTo(drawStart.x, drawStart.y); + ctxOverlay.lineTo(ex, ey); + ctxOverlay.stroke(); + } else if (toolName === 'arrow') { + if (shift) { const sn = snapAngle(drawStart.x, drawStart.y, ex, ey); ex = sn.x; ey = sn.y; } + drawArrow(ctxOverlay, drawStart.x, drawStart.y, ex, ey, strokeWidth); + } else if (toolName === 'rect') { + let rw = ex - drawStart.x, rh = ey - drawStart.y; + if (shift) { const s = Math.max(Math.abs(rw), Math.abs(rh)); rw = s * Math.sign(rw); rh = s * Math.sign(rh); } + if (fillShape) ctxOverlay.fillRect(drawStart.x, drawStart.y, rw, rh); + ctxOverlay.strokeRect(drawStart.x, drawStart.y, rw, rh); + } else if (toolName === 'circle') { + let rx = Math.abs(ex - drawStart.x) / 2; + let ry = Math.abs(ey - drawStart.y) / 2; + if (shift) { rx = ry = Math.max(rx, ry); } + const cx = (drawStart.x + (shift ? drawStart.x + rx * 2 * Math.sign(ex - drawStart.x) : ex)) / 2; + const cy = (drawStart.y + (shift ? drawStart.y + ry * 2 * Math.sign(ey - drawStart.y) : ey)) / 2; + ctxOverlay.beginPath(); + ctxOverlay.ellipse(cx, cy, rx, ry, 0, 0, Math.PI * 2); + if (fillShape) ctxOverlay.fill(); + ctxOverlay.stroke(); + } + ctxOverlay.restore(); + }, + onUp(e) { + if (!isDrawing) return; + isDrawing = false; + const p = getPointerCanvas(e); + let ex = p.x, ey = p.y; + const shift = e.shiftKey; + const ps = { type: toolName, ox: 0, oy: 0, params: { color: fgColor, strokeWidth: strokeWidth } }; + if (toolName === 'line') { + if (shift) { const sn = snapAngle(drawStart.x, drawStart.y, ex, ey); ex = sn.x; ey = sn.y; } + ps.params.x1 = drawStart.x; ps.params.y1 = drawStart.y; + ps.params.x2 = ex; ps.params.y2 = ey; + } else if (toolName === 'arrow') { + if (shift) { const sn = snapAngle(drawStart.x, drawStart.y, ex, ey); ex = sn.x; ey = sn.y; } + ps.params.x1 = drawStart.x; ps.params.y1 = drawStart.y; + ps.params.x2 = ex; ps.params.y2 = ey; + } else if (toolName === 'rect') { + let rw = ex - drawStart.x, rh = ey - drawStart.y; + if (shift) { const s = Math.max(Math.abs(rw), Math.abs(rh)); rw = s * Math.sign(rw); rh = s * Math.sign(rh); } + ps.params.x = drawStart.x; ps.params.y = drawStart.y; + ps.params.w = rw; ps.params.h = rh; + ps.params.fill = fillShape; + } else if (toolName === 'circle') { + let rx = Math.abs(ex - drawStart.x) / 2; + let ry = Math.abs(ey - drawStart.y) / 2; + if (shift) { rx = ry = Math.max(rx, ry); } + const cx2 = (drawStart.x + (shift ? drawStart.x + rx * 2 * Math.sign(ex - drawStart.x) : ex)) / 2; + const cy2 = (drawStart.y + (shift ? drawStart.y + ry * 2 * Math.sign(ey - drawStart.y) : ey)) / 2; + ps.params.cx = cx2; ps.params.cy = cy2; + ps.params.rx = rx; ps.params.ry = ry; + ps.params.fill = fillShape; + } + pendingShape = ps; + renderPendingOnOverlay(); + showPendingOptions(); + } + }; +} +['line','rect','circle','arrow'].forEach(t => dispatcher.registerTool(t, _makeShapeHandler(t))); + +// Fill handler +dispatcher.registerTool('fill', { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + const px = Math.round(p.x), py = Math.round(p.y); + if (px < 0 || py < 0 || px >= canvasW || py >= canvasH) return; + floodFill(px, py, fgColor, fillTolerance); + pushHistory(); + }, + onMove(e) {}, + onUp(e) {} +}); + +// Clone handler +dispatcher.registerTool('clone', (function() { + let cloneDrawing = false; + return { + onDown(e) { + if (!canvasW) return; + const p = getPointerCanvas(e); + if (e.altKey) { + cloneSrc = { x: p.x, y: p.y }; + cloneOffset = null; + cloneSrcSet = true; + if ($('#cloneHint')) $('#cloneHint').textContent = `Источник: ${Math.round(p.x)}, ${Math.round(p.y)}`; + redrawUI(); + return; + } + if (!cloneSrc) return; + if (!cloneOffset) { + cloneOffset = { dx: cloneSrc.x - p.x, dy: cloneSrc.y - p.y }; + } + cloneDrawing = true; + viewport.setPointerCapture(e.pointerId); + _clonePaint(p.x, p.y); + }, + onMove(e) { + const p = getPointerCanvas(e); + if (cloneDrawing) { + _clonePaint(p.x, p.y); + redrawUI(); + _drawCloneCrosshair(p.x + cloneOffset.dx, p.y + cloneOffset.dy); + return; + } + if (!canvasW) return; + redrawUI(); + if (cloneSrc) { + const off = cloneOffset || { dx: cloneSrc.x - p.x, dy: cloneSrc.y - p.y }; + _drawCloneCrosshair(p.x + off.dx, p.y + off.dy); + } + const sp = c2s(p.x, p.y); + ctxUI.save(); + ctxUI.strokeStyle = '#fff'; + ctxUI.lineWidth = 1; + ctxUI.beginPath(); + ctxUI.arc(sp.x, sp.y, brushSize / 2 * zoom, 0, Math.PI * 2); + ctxUI.stroke(); + ctxUI.restore(); + }, + onUp(e) { + if (cloneDrawing) { cloneDrawing = false; pushHistory(); } + } + }; +})()); + +dispatcher.registerTool('lasso', (function() { + let lassoPoints = [], lassoDrawing = false; + return { + onDown(e) { + if (!canvasW || e.button !== 0) return; + lassoPoints = []; + lassoDrawing = true; + selPath = null; + selRect = null; + stopMarchingAnts(); + const p = getPointerCanvas(e); + lassoPoints.push(p); + viewport.setPointerCapture(e.pointerId); + clearUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + }, + onMove(e) { + if (!lassoDrawing) return; + const p = getPointerCanvas(e); + const last = lassoPoints[lassoPoints.length - 1]; + if (Math.hypot(p.x - last.x, p.y - last.y) > 2) { + lassoPoints.push(p); + drawLassoInProgress(lassoPoints); + } + }, + onUp(e) { + if (!lassoDrawing) return; + lassoDrawing = false; + if (lassoPoints.length < 3) { lassoPoints = []; return; } + selPath = lassoPoints.slice(); + lassoPoints = []; + redrawUI(); + showLassoOptions(); + } + }; +})()); + +function _clonePaint(destX, destY) { + const srcX = destX + cloneOffset.dx; + const srcY = destY + cloneOffset.dy; + const r = brushSize / 2; + const sx = Math.round(srcX - r), sy = Math.round(srcY - r); + const size = Math.round(brushSize); + if (sx < 0 || sy < 0 || sx + size > canvasW || sy + size > canvasH) return; + const srcData = ctxMain.getImageData(sx, sy, size, size); + const tmp = document.createElement('canvas'); + tmp.width = size; tmp.height = size; + const tctx = tmp.getContext('2d'); + tctx.beginPath(); + tctx.arc(size/2, size/2, size/2, 0, Math.PI * 2); + tctx.clip(); + tctx.putImageData(srcData, 0, 0); + activeCtx().save(); + if (selRect && selRect.w > 5 && selRect.h > 5) { + activeCtx().beginPath(); + activeCtx().rect(selRect.x, selRect.y, selRect.w, selRect.h); + activeCtx().clip(); + } + activeCtx().globalAlpha = brushOpacity / 100; + activeCtx().drawImage(tmp, Math.round(destX - r), Math.round(destY - r)); + activeCtx().restore(); + compositeLayersToMain(); +} + +function _drawCloneCrosshair(cx, cy) { + const sp = c2s(cx, cy); + const ctx = ctxUI; + const len = 10; + ctx.save(); + ctx.strokeStyle = '#ff5252'; + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.moveTo(sp.x - len, sp.y); ctx.lineTo(sp.x + len, sp.y); + ctx.moveTo(sp.x, sp.y - len); ctx.lineTo(sp.x, sp.y + len); + ctx.stroke(); + ctx.beginPath(); + ctx.arc(sp.x, sp.y, brushSize / 2 * zoom, 0, Math.PI * 2); + ctx.stroke(); + ctx.restore(); +} + +// ===================== SELECTION + PENDING registered into dispatcher ===================== + +// ===================== SELECTION HELPERS ===================== +function getSelHandles() { + if (!selRect) return {}; + const {x, y, w, h} = selRect; + return { + tl:{x,y}, tm:{x:x+w/2,y}, tr:{x:x+w,y}, + ml:{x,y:y+h/2}, mr:{x:x+w,y:y+h/2}, + bl:{x,y:y+h}, bm:{x:x+w/2,y:y+h}, br:{x:x+w,y:y+h} + }; +} + +function hitSelHandle(cx, cy) { + if (!selRect) return null; + const handles = getSelHandles(); + const threshold = 8 / zoom; + for (const [name, hp] of Object.entries(handles)) { + if (Math.abs(cx - hp.x) < threshold && Math.abs(cy - hp.y) < threshold) return name; + } + if (cx >= selRect.x && cx <= selRect.x + selRect.w && cy >= selRect.y && cy <= selRect.y + selRect.h) return 'move'; + return null; +} + +const SEL_HANDLE_CURSORS = { + tl:'nwse-resize', tr:'nesw-resize', bl:'nesw-resize', br:'nwse-resize', + tm:'ns-resize', bm:'ns-resize', ml:'ew-resize', mr:'ew-resize', + move:'grab' +}; + +dispatcher.registerSelection({ + onDown(e) { + if (!canvasW || e.button !== 0) return; + const p = getPointerCanvas(e); + if (selRect && selRect.w > 5 && selRect.h > 5) { + const hit = hitSelHandle(p.x, p.y); + if (hit) { + selDragging = true; + selDragMode = hit; + selStart = {x: p.x, y: p.y}; + selStartRect = {...selRect}; + viewport.setPointerCapture(e.pointerId); + return; + } + } + selDragging = true; + selDragMode = 'new'; + selStart = {x: p.x, y: p.y}; + selRect = {x: p.x, y: p.y, w: 0, h: 0}; + selStartRect = null; + viewport.setPointerCapture(e.pointerId); + clearUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + }, + onMove(e) { + const p = getPointerCanvas(e); + if (canvasW && selRect && selRect.w > 5 && !selDragging) { + const hit = hitSelHandle(p.x, p.y); + viewport.style.cursor = hit ? (SEL_HANDLE_CURSORS[hit] || 'default') : 'default'; + } + if (!selDragging) return; + viewport.style.cursor = selDragMode === 'move' ? 'grabbing' : (SEL_HANDLE_CURSORS[selDragMode] || 'crosshair'); + if (selDragMode === 'new') { + const x1 = Math.min(selStart.x, p.x); + const y1 = Math.min(selStart.y, p.y); + const x2 = Math.max(selStart.x, p.x); + const y2 = Math.max(selStart.y, p.y); + selRect = {x: x1, y: y1, w: x2 - x1, h: y2 - y1}; + } else if (selDragMode === 'move') { + const dx = p.x - selStart.x; + const dy = p.y - selStart.y; + selRect.x = clamp(selStartRect.x + dx, 0, canvasW - selStartRect.w); + selRect.y = clamp(selStartRect.y + dy, 0, canvasH - selStartRect.h); + } else { + const dx = p.x - selStart.x; + const dy = p.y - selStart.y; + const r = selStartRect; + let nx = r.x, ny = r.y, nw = r.w, nh = r.h; + if (selDragMode.includes('l')) { nx = r.x + dx; nw = r.w - dx; } + if (selDragMode.includes('r')) { nw = r.w + dx; } + if (selDragMode !== 'ml' && selDragMode !== 'mr' && selDragMode.includes('t')) { ny = r.y + dy; nh = r.h - dy; } + if (selDragMode !== 'tm' && selDragMode !== 'bm' && selDragMode.includes('b')) { nh = r.h + dy; } + if (nw < 0) { nx = nx + nw; nw = -nw; } + if (nh < 0) { ny = ny + nh; nh = -nh; } + if (nx < 0) { nw += nx; nx = 0; } + if (ny < 0) { nh += ny; ny = 0; } + if (nx + nw > canvasW) nw = canvasW - nx; + if (ny + nh > canvasH) nh = canvasH - ny; + selRect = {x: nx, y: ny, w: Math.max(nw, 2), h: Math.max(nh, 2)}; + } + drawSelectionRect(); + }, + onUp(e) { + if (!selDragging) return; + selDragging = false; + selDragMode = null; + selStartRect = null; + if (selRect && selRect.w > 5 && selRect.h > 5) { + selRect.x = clamp(selRect.x, 0, canvasW); + selRect.y = clamp(selRect.y, 0, canvasH); + selRect.w = clamp(selRect.w, 0, canvasW - selRect.x); + selRect.h = clamp(selRect.h, 0, canvasH - selRect.y); + drawSelectionRect(); + showSelectionOptions(); + } else { + selRect = null; + clearUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + } + } +}); + +function drawSelectionRect(full) { + if (!selRect) return; + if (full !== false) { clearUI(); drawRulers(); drawImageBorder(); } + const ctx = ctxUI; + const vw = viewport.clientWidth; + const vh = viewport.clientHeight; + const tl = c2s(selRect.x, selRect.y); + const br = c2s(selRect.x + selRect.w, selRect.y + selRect.h); + const sx = tl.x, sy = tl.y, sw = br.x - tl.x, sh = br.y - tl.y; + ctx.fillStyle = 'rgba(0,0,0,0.4)'; + ctx.fillRect(0, 0, vw, sy); + ctx.fillRect(0, sy, sx, sh); + ctx.fillRect(sx + sw, sy, vw - sx - sw, sh); + ctx.fillRect(0, sy + sh, vw, vh - sy - sh); + ctx.strokeStyle = '#0054e6'; + ctx.lineWidth = 1.5; + ctx.setLineDash([6, 4]); + ctx.strokeRect(sx, sy, sw, sh); + ctx.setLineDash([]); + const hs = 4; + ctx.fillStyle = '#0054e6'; + ctx.strokeStyle = '#000'; + ctx.lineWidth = 1; + for (const hp of Object.values(getSelHandles())) { + const sp = c2s(hp.x, hp.y); + ctx.fillRect(sp.x - hs, sp.y - hs, hs * 2, hs * 2); + ctx.strokeRect(sp.x - hs, sp.y - hs, hs * 2, hs * 2); + } + const lw = Math.round(selRect.w); + const lh = Math.round(selRect.h); + ctx.font = '12px JetBrains Mono, monospace'; + ctx.fillStyle = '#0054e6'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'bottom'; + ctx.fillText(lw + ' \u00d7 ' + lh, sx + sw/2, sy - 6); +} + +function showSelectionOptions() { + toolOptions.innerHTML = ` + +
+ + + `; + toolOptions.classList.add('visible'); + $('#optSelCrop').onclick = applySelectionCrop; + $('#optSelCancel').onclick = clearSelection; +} + +function applySelectionCrop() { + if (!selRect) return; + const rx = Math.round(clamp(selRect.x, 0, canvasW)); + const ry = Math.round(clamp(selRect.y, 0, canvasH)); + const rw = Math.round(clamp(selRect.w, 1, canvasW - rx)); + const rh = Math.round(clamp(selRect.h, 1, canvasH - ry)); + layers.forEach(layer => { + const data = layer.ctx.getImageData(rx, ry, rw, rh); + layer.canvas.width = rw; + layer.canvas.height = rh; + layer.ctx.putImageData(data, 0, 0); + }); + setCanvasSize(rw, rh); + compositeLayersToMain(); + selRect = null; + clearUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + pushHistory(); + fitToViewport(); + renderLayerPanel(); +} + +function clearSelection() { + selRect = null; + selPath = null; + selDragMode = null; + selStartRect = null; + stopMarchingAnts(); + redrawUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; +} + +function applySelectionClip(ctx) { + if (selPath && selPath.length > 2) { + ctx.save(); + ctx.beginPath(); + selPath.forEach((p, i) => i === 0 ? ctx.moveTo(p.x, p.y) : ctx.lineTo(p.x, p.y)); + ctx.closePath(); + ctx.clip(); + return true; + } + if (!selRect || selRect.w <= 5 || selRect.h <= 5) return false; + ctx.save(); + ctx.beginPath(); + ctx.rect(selRect.x, selRect.y, selRect.w, selRect.h); + ctx.clip(); + return true; +} + +// ===================== SELECTION HELPERS ===================== + +function hasActiveSelection() { + return (selPath && selPath.length > 2) || (selRect && selRect.w > 5 && selRect.h > 5); +} + +function getSelectionBBox() { + if (selPath && selPath.length > 2) { + const xs = selPath.map(p => p.x), ys = selPath.map(p => p.y); + const sx = Math.max(0, Math.floor(Math.min(...xs))); + const sy = Math.max(0, Math.floor(Math.min(...ys))); + const sw = Math.min(canvasW - sx, Math.ceil(Math.max(...xs)) - sx); + const sh = Math.min(canvasH - sy, Math.ceil(Math.max(...ys)) - sy); + return { sx, sy, sw: Math.max(1, sw), sh: Math.max(1, sh) }; + } + if (selRect && selRect.w > 5 && selRect.h > 5) { + const sx = Math.round(clamp(selRect.x, 0, canvasW)); + const sy = Math.round(clamp(selRect.y, 0, canvasH)); + const sw = Math.round(clamp(selRect.w, 1, canvasW - sx)); + const sh = Math.round(clamp(selRect.h, 1, canvasH - sy)); + return { sx, sy, sw, sh }; + } + return { sx: 0, sy: 0, sw: canvasW, sh: canvasH }; +} + +// Composite filtered temp canvas back to ctx, clipped to active selection. +// Use instead of ctx.putImageData when selection is lasso (putImageData ignores clip). +function putFilteredRegion(ctx, imageData, sx, sy, sw, sh) { + if (selPath && selPath.length > 2) { + const tmp = document.createElement('canvas'); + tmp.width = sw; tmp.height = sh; + tmp.getContext('2d').putImageData(imageData, 0, 0); + ctx.save(); + ctx.beginPath(); + selPath.forEach((p, i) => i === 0 ? ctx.moveTo(p.x, p.y) : ctx.lineTo(p.x, p.y)); + ctx.closePath(); + ctx.clip(); + ctx.clearRect(sx, sy, sw, sh); + ctx.drawImage(tmp, sx, sy); + ctx.restore(); + } else { + ctx.putImageData(imageData, sx, sy); + } +} + +// Point-in-polygon (ray casting) for lasso masking +function pointInPolygon(x, y, pts) { + let inside = false; + for (let i = 0, j = pts.length - 1; i < pts.length; j = i++) { + const xi = pts[i].x, yi = pts[i].y, xj = pts[j].x, yj = pts[j].y; + if ((yi > y) !== (yj > y) && x < (xj - xi) * (y - yi) / (yj - yi) + xi) inside = !inside; + } + return inside; +} + +// ===================== LASSO UI ===================== + +function drawLassoInProgress(pts) { + clearUI(); drawRulers(); drawImageBorder(); + const ctx = ctxUI; + ctx.save(); + ctx.strokeStyle = '#0054e6'; + ctx.lineWidth = 1.5; + ctx.setLineDash([6, 4]); + ctx.beginPath(); + pts.forEach((p, i) => { const s = c2s(p.x, p.y); i === 0 ? ctx.moveTo(s.x, s.y) : ctx.lineTo(s.x, s.y); }); + const s0 = c2s(pts[0].x, pts[0].y); + ctx.lineTo(s0.x, s0.y); + ctx.stroke(); + ctx.setLineDash([]); + ctx.restore(); +} + +function drawLassoOutline() { + if (!selPath || selPath.length < 3) return; + const ctx = ctxUI; + ctx.save(); + const buildPath = () => { + ctx.beginPath(); + selPath.forEach((p, i) => { const s = c2s(p.x, p.y); i === 0 ? ctx.moveTo(s.x, s.y) : ctx.lineTo(s.x, s.y); }); + ctx.closePath(); + }; + // White base stroke + ctx.strokeStyle = 'rgba(255,255,255,0.7)'; + ctx.lineWidth = 1.5; + ctx.setLineDash([6, 4]); + ctx.lineDashOffset = -(marchOffset + 6); + buildPath(); ctx.stroke(); + // Blue top stroke + ctx.strokeStyle = '#0054e6'; + ctx.lineDashOffset = -marchOffset; + buildPath(); ctx.stroke(); + ctx.setLineDash([]); + ctx.restore(); +} + +function startMarchingAnts() { + if (marchRaf) return; + function step() { + if (!selPath || selPath.length < 3) { marchRaf = 0; return; } + marchOffset = (marchOffset + 0.4) % 20; + clearUI(); drawRulers(); drawImageBorder(); + drawLassoOutline(); + marchRaf = requestAnimationFrame(step); + } + marchRaf = requestAnimationFrame(step); +} + +function stopMarchingAnts() { + if (marchRaf) { cancelAnimationFrame(marchRaf); marchRaf = 0; } +} + +function showLassoOptions() { + const { sw, sh } = getSelectionBBox(); + toolOptions.innerHTML = ` + +
+ + + `; + toolOptions.classList.add('visible'); + $('#optLassoCrop').onclick = applyLassoCrop; + $('#optLassoCancel').onclick = clearSelection; + startMarchingAnts(); +} + +function applyLassoCrop() { + if (!selPath || selPath.length < 3) return; + const { sx, sy, sw, sh } = getSelectionBBox(); + layers.forEach(layer => { + const tmp = document.createElement('canvas'); + tmp.width = sw; tmp.height = sh; + const tctx = tmp.getContext('2d'); + tctx.save(); + tctx.beginPath(); + selPath.forEach((p, i) => i === 0 ? tctx.moveTo(p.x - sx, p.y - sy) : tctx.lineTo(p.x - sx, p.y - sy)); + tctx.closePath(); + tctx.clip(); + tctx.drawImage(layer.canvas, sx, sy, sw, sh, 0, 0, sw, sh); + tctx.restore(); + layer.canvas = tmp; + layer.ctx = tctx; + }); + selPath = null; + stopMarchingAnts(); + setCanvasSize(sw, sh); + compositeLayersToMain(); + clearUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + pushHistory(); + fitToViewport(); + renderLayerPanel(); +} + +// fill handler already registered above via dispatcher.registerTool('fill', ...) + +function floodFill(startX, startY, hexColor, tolerance) { + const imageData = activeCtx().getImageData(0, 0, canvasW, canvasH); + const d = imageData.data; + const w = canvasW, h = canvasH; + const fr = parseInt(hexColor.slice(1,3), 16); + const fg = parseInt(hexColor.slice(3,5), 16); + const fb = parseInt(hexColor.slice(5,7), 16); + const idx = (startY * w + startX) * 4; + const tr = d[idx], tg = d[idx+1], tb = d[idx+2], ta = d[idx+3]; + if (tr === fr && tg === fg && tb === fb && ta === 255) return; + const tol2 = tolerance * tolerance; + const visited = new Uint8Array(w * h); + const { sx: selMinX, sy: selMinY, sw: _sw, sh: _sh } = getSelectionBBox(); + const selMaxX = selMinX + _sw, selMaxY = selMinY + _sh; + const useLasso = selPath && selPath.length > 2; + const stack = [startX, startY]; + function match(i) { + const dr = d[i] - tr, dg = d[i+1] - tg, db = d[i+2] - tb, da = d[i+3] - ta; + return (dr*dr + dg*dg + db*db + da*da) <= tol2 * 4; + } + while (stack.length > 0) { + const y = stack.pop(), x = stack.pop(); + const pi = y * w + x; + if (x < selMinX || x >= selMaxX || y < selMinY || y >= selMaxY || visited[pi]) continue; + if (useLasso && !pointInPolygon(x, y, selPath)) continue; + const i4 = pi * 4; + if (!match(i4)) continue; + visited[pi] = 1; + d[i4] = fr; d[i4+1] = fg; d[i4+2] = fb; d[i4+3] = 255; + stack.push(x+1, y, x-1, y, x, y+1, x, y-1); + } + activeCtx().putImageData(imageData, 0, 0); + compositeLayersToMain(); +} + +// clone handler already registered above via dispatcher.registerTool('clone', ...) + +// ===================== ARROW DRAWING ===================== +function drawArrow(ctx, x1, y1, x2, y2, width) { + const angle = Math.atan2(y2 - y1, x2 - x1); + const headLen = Math.max(width * 4, 12); + + ctx.beginPath(); + ctx.moveTo(x1, y1); + ctx.lineTo(x2, y2); + ctx.stroke(); + + ctx.beginPath(); + ctx.moveTo(x2, y2); + ctx.lineTo(x2 - headLen * Math.cos(angle - Math.PI / 6), y2 - headLen * Math.sin(angle - Math.PI / 6)); + ctx.lineTo(x2 - headLen * Math.cos(angle + Math.PI / 6), y2 - headLen * Math.sin(angle + Math.PI / 6)); + ctx.closePath(); + ctx.fill(); +} + +function snapAngle(x1, y1, x2, y2) { + const angle = Math.atan2(y2 - y1, x2 - x1); + const snapped = Math.round(angle / (Math.PI / 4)) * (Math.PI / 4); + const dist = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); + return { x: x1 + dist * Math.cos(snapped), y: y1 + dist * Math.sin(snapped) }; +} + +// ===================== BRUSH CURSOR ===================== +viewport.addEventListener('pointermove', e => { + if (!canvasW) return; + if ((currentTool === 'brush' || currentTool === 'eraser') && !isPanning) { + const p = getPointerCanvas(e); + if (!isDrawing || currentTool === 'brush') { + redrawUI(); + const sp = c2s(p.x, p.y); + ctxUI.save(); + ctxUI.strokeStyle = currentTool === 'eraser' ? '#ff5252' : fgColor; + ctxUI.lineWidth = 1; + ctxUI.beginPath(); + ctxUI.arc(sp.x, sp.y, brushSize / 2 * zoom, 0, Math.PI * 2); + ctxUI.stroke(); + ctxUI.restore(); + } + } +}); + +// ===================== PENDING SHAPE (MOVEABLE + TRANSFORMABLE) ===================== + +function getPendingBBox(ps) { + if (!ps) return null; + const ox = ps.ox || 0, oy = ps.oy || 0; + const sw = ps.params.strokeWidth || 2; + const pad = sw / 2 + 4; + if (ps.type === 'line' || ps.type === 'arrow') { + const p = ps.params; + const headPad = ps.type === 'arrow' ? Math.max(sw * 4, 12) : 0; + const xMin = Math.min(p.x1, p.x2) - pad - headPad; + const yMin = Math.min(p.y1, p.y2) - pad - headPad; + const xMax = Math.max(p.x1, p.x2) + pad + headPad; + const yMax = Math.max(p.y1, p.y2) + pad + headPad; + return { x: xMin + ox, y: yMin + oy, w: xMax - xMin, h: yMax - yMin }; + } + if (ps.type === 'rect') { + const p = ps.params; + const x = Math.min(p.x, p.x + p.w); + const y = Math.min(p.y, p.y + p.h); + return { x: x + ox - pad, y: y + oy - pad, w: Math.abs(p.w) + 2 * pad, h: Math.abs(p.h) + 2 * pad }; + } + if (ps.type === 'circle') { + const p = ps.params; + return { x: p.cx - p.rx + ox - pad, y: p.cy - p.ry + oy - pad, w: 2 * p.rx + 2 * pad, h: 2 * p.ry + 2 * pad }; + } + if (ps.type === 'text') { + const p = ps.params; + ctxOverlay.save(); + const fontStyle = (p.italic ? 'italic ' : '') + (p.bold ? '700 ' : '400 '); + ctxOverlay.font = fontStyle + p.size + 'px ' + p.font; + const lines = p.text.split('\n'); + let maxW = 0; + lines.forEach(line => { maxW = Math.max(maxW, ctxOverlay.measureText(line).width); }); + ctxOverlay.restore(); + const scaleX = ps.scaleX || 1, scaleY = ps.scaleY || 1; + return { x: p.x + ox - 2, y: p.y + oy - 2, w: (maxW + 4) * scaleX, h: (lines.length * p.lineHeight + 4) * scaleY }; + } + return null; +} + +function getPendingPivot(ps) { + const bbox = getPendingBBox(ps); + if (!bbox) return { x: ps.ox || 0, y: ps.oy || 0 }; + return { x: bbox.x + bbox.w / 2, y: bbox.y + bbox.h / 2 }; +} + +function transformPoint(x, y, pivotX, pivotY, rotation, scaleX, scaleY) { + const cos = Math.cos(rotation || 0), sin = Math.sin(rotation || 0); + const dx = (x - pivotX) * (scaleX || 1); + const dy = (y - pivotY) * (scaleY || 1); + return { x: pivotX + dx * cos - dy * sin, y: pivotY + dx * sin + dy * cos }; +} + +function getPendingHandles(ps) { + const bbox = getPendingBBox(ps); + if (!bbox) return []; + const pivot = getPendingPivot(ps); + const rot = ps.rotation || 0; + const L = bbox.x, R = bbox.x + bbox.w, T = bbox.y, B = bbox.y + bbox.h; + const tp = (x, y) => transformPoint(x, y, pivot.x, pivot.y, rot, 1, 1); + const handles = [ + { ...tp(L, T), id: 'tl' }, { ...tp(R, T), id: 'tr' }, + { ...tp(L, B), id: 'bl' }, { ...tp(R, B), id: 'br' }, + ]; + const topMid = tp((L + R) / 2, T); + const rotDist = 30 / zoom; + handles.push({ + x: topMid.x + Math.cos(rot - Math.PI / 2) * rotDist, + y: topMid.y + Math.sin(rot - Math.PI / 2) * rotDist, + id: 'rot' + }); + return handles; +} + +function hitPendingHandle(cx, cy) { + if (!pendingShape) return null; + const handles = getPendingHandles(pendingShape); + const hitR = 12 / zoom; + for (const h of handles) { + if (Math.hypot(cx - h.x, cy - h.y) <= hitR) return h.id; + } + return null; +} + +function hitPendingShape(cx, cy) { + if (!pendingShape) return false; + const bbox = getPendingBBox(pendingShape); + if (!bbox) return false; + const rot = pendingShape.rotation || 0; + if (rot === 0) return cx >= bbox.x && cx <= bbox.x + bbox.w && cy >= bbox.y && cy <= bbox.y + bbox.h; + const pivotX = bbox.x + bbox.w / 2, pivotY = bbox.y + bbox.h / 2; + const cos = Math.cos(-rot), sin = Math.sin(-rot); + const dx = cx - pivotX, dy = cy - pivotY; + const nx = pivotX + dx * cos - dy * sin, ny = pivotY + dx * sin + dy * cos; + return nx >= bbox.x && nx <= bbox.x + bbox.w && ny >= bbox.y && ny <= bbox.y + bbox.h; +} + +function drawPendingShapeOnCtx(ctx, ps) { + if (!ps) return; + const ox = ps.ox || 0, oy = ps.oy || 0; + const rot = ps.rotation || 0; + const scaleX = ps.scaleX || 1, scaleY = ps.scaleY || 1; + ctx.save(); + if (rot !== 0) { + const bbox = getPendingBBox(ps); + if (bbox) { + const pvX = bbox.x + bbox.w / 2, pvY = bbox.y + bbox.h / 2; + ctx.translate(pvX, pvY); + ctx.rotate(rot); + ctx.translate(-pvX, -pvY); + } + } + ctx.strokeStyle = ps.params.color; + ctx.fillStyle = ps.params.color; + ctx.lineWidth = ps.params.strokeWidth || 2; + ctx.lineCap = 'round'; + ctx.lineJoin = 'round'; + if (ps.type === 'line') { + ctx.beginPath(); + ctx.moveTo(ps.params.x1 + ox, ps.params.y1 + oy); + ctx.lineTo(ps.params.x2 + ox, ps.params.y2 + oy); + ctx.stroke(); + } else if (ps.type === 'arrow') { + drawArrow(ctx, ps.params.x1 + ox, ps.params.y1 + oy, ps.params.x2 + ox, ps.params.y2 + oy, ps.params.strokeWidth); + } else if (ps.type === 'rect') { + const p = ps.params; + if (p.fill) ctx.fillRect(p.x + ox, p.y + oy, p.w, p.h); + ctx.strokeRect(p.x + ox, p.y + oy, p.w, p.h); + } else if (ps.type === 'circle') { + const p = ps.params; + ctx.beginPath(); + ctx.ellipse(p.cx + ox, p.cy + oy, p.rx, p.ry, 0, 0, Math.PI * 2); + if (p.fill) ctx.fill(); + ctx.stroke(); + } else if (ps.type === 'text') { + const p = ps.params; + const fontStyle = (p.italic ? 'italic ' : '') + (p.bold ? '700 ' : '400 '); + ctx.font = fontStyle + p.size + 'px ' + p.font; + ctx.textBaseline = 'top'; + const lines = p.text.split('\n'); + if (scaleX !== 1 || scaleY !== 1) { + ctx.translate(p.x + ox, p.y + oy); + ctx.scale(scaleX, scaleY); + ctx.translate(-(p.x + ox), -(p.y + oy)); + } + lines.forEach((line, i) => { + ctx.fillText(line, p.x + ox, p.y + oy + i * p.lineHeight); + }); + } + ctx.restore(); +} + +function renderPendingOnOverlay() { + clearOverlay(); + if (!pendingShape) return; + drawPendingShapeOnCtx(ctxOverlay, pendingShape); + redrawUI(); +} + +function drawPendingBBoxOnUI() { + if (!pendingShape) return; + const bbox = getPendingBBox(pendingShape); + if (!bbox) return; + const rot = pendingShape.rotation || 0; + const pivot = getPendingPivot(pendingShape); + const ctx = ctxUI; + ctx.save(); + + const L = bbox.x, R = bbox.x + bbox.w, T = bbox.y, B = bbox.y + bbox.h; + const tp = (x, y) => { const t = transformPoint(x, y, pivot.x, pivot.y, rot, 1, 1); return c2s(t.x, t.y); }; + const tl = tp(L, T), tr = tp(R, T), bl = tp(L, B), br = tp(R, B); + + ctx.beginPath(); + ctx.moveTo(tl.x, tl.y); ctx.lineTo(tr.x, tr.y); + ctx.lineTo(br.x, br.y); ctx.lineTo(bl.x, bl.y); + ctx.closePath(); + ctx.fillStyle = 'rgba(0,84,230,0.07)'; + ctx.fill(); + ctx.strokeStyle = '#0054e6'; + ctx.lineWidth = 1; + ctx.setLineDash([4, 3]); + ctx.stroke(); + ctx.setLineDash([]); + + const handles = getPendingHandles(pendingShape); + const topMidCanvas = transformPoint((L + R) / 2, T, pivot.x, pivot.y, rot, 1, 1); + const topMidScreen = c2s(topMidCanvas.x, topMidCanvas.y); + + handles.forEach(h => { + const s = c2s(h.x, h.y); + ctx.beginPath(); + if (h.id === 'rot') { + ctx.moveTo(topMidScreen.x, topMidScreen.y); + ctx.lineTo(s.x, s.y); + ctx.strokeStyle = '#0054e6'; + ctx.lineWidth = 1; + ctx.stroke(); + ctx.beginPath(); + ctx.arc(s.x, s.y, 6, 0, Math.PI * 2); + ctx.fillStyle = '#fff'; + ctx.fill(); + ctx.strokeStyle = '#0054e6'; + ctx.lineWidth = 1.5; + ctx.stroke(); + } else { + ctx.rect(s.x - 5, s.y - 5, 10, 10); + ctx.fillStyle = '#0054e6'; + ctx.fill(); + ctx.strokeStyle = '#000'; + ctx.lineWidth = 1; + ctx.stroke(); + } + }); + ctx.restore(); +} + +function commitPendingShape() { + if (!pendingShape) return; + + if (pendingShape.type === 'text') { + let textLayer; + if (editingTextLayerIndex >= 0 && editingTextLayerIndex < layers.length) { + textLayer = layers[editingTextLayerIndex]; + textLayer.ctx.clearRect(0, 0, canvasW, canvasH); + editingTextLayerIndex = -1; + } else { + textLayer = createLayer('Текст', canvasW, canvasH); + layers.splice(activeLayerIndex + 1, 0, textLayer); + activeLayerIndex++; + } + textLayer.textData = { + content: pendingShape.params.text, + x: pendingShape.params.x, y: pendingShape.params.y, + font: pendingShape.params.font, size: pendingShape.params.size, + bold: pendingShape.params.bold, italic: pendingShape.params.italic, + color: pendingShape.params.color, lineHeight: pendingShape.params.lineHeight, + ox: pendingShape.ox || 0, oy: pendingShape.oy || 0, + rotation: pendingShape.rotation || 0, + scaleX: pendingShape.scaleX || 1, scaleY: pendingShape.scaleY || 1, + }; + textLayer.ctx.save(); + if (selRect && selRect.w > 5 && selRect.h > 5) { + textLayer.ctx.beginPath(); + textLayer.ctx.rect(selRect.x, selRect.y, selRect.w, selRect.h); + textLayer.ctx.clip(); + } + drawPendingShapeOnCtx(textLayer.ctx, pendingShape); + textLayer.ctx.restore(); + } else { + const _ctx = activeCtx(); + _ctx.save(); + if (selRect && selRect.w > 5 && selRect.h > 5) { + _ctx.beginPath(); + _ctx.rect(selRect.x, selRect.y, selRect.w, selRect.h); + _ctx.clip(); + } + drawPendingShapeOnCtx(_ctx, pendingShape); + _ctx.restore(); + } + + clearOverlay(); + pendingShape = null; + pendingDragging = false; + pendingDragStart = null; + pendingTransformHandle = null; + pendingTransformStart = null; + compositeLayersToMain(); + pushHistory(); + redrawUI(); + renderLayerPanel(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + if (currentTool) showToolOptions(currentTool); + else if (selRect && selRect.w > 5 && selRect.h > 5) showSelectionOptions(); +} + +function cancelPendingShape() { + if (!pendingShape) return; + if (editingTextLayerIndex >= 0 && editingTextLayerIndex < layers.length) { + const td = layers[editingTextLayerIndex].textData; + if (td) { + const restorePs = { + type: 'text', ox: td.ox, oy: td.oy, rotation: td.rotation, scaleX: td.scaleX, scaleY: td.scaleY, + params: { x: td.x, y: td.y, text: td.content, color: td.color, font: td.font, size: td.size, bold: td.bold, italic: td.italic, lineHeight: td.lineHeight } + }; + layers[editingTextLayerIndex].ctx.clearRect(0, 0, canvasW, canvasH); + drawPendingShapeOnCtx(layers[editingTextLayerIndex].ctx, restorePs); + compositeLayersToMain(); + } + editingTextLayerIndex = -1; + } + pendingShape = null; + pendingDragging = false; + pendingDragStart = null; + pendingTransformHandle = null; + pendingTransformStart = null; + clearOverlay(); + redrawUI(); + toolOptions.classList.remove('visible'); + toolOptions.innerHTML = ''; + if (currentTool) showToolOptions(currentTool); + else if (selRect && selRect.w > 5 && selRect.h > 5) showSelectionOptions(); +} + +function findTextLayerAt(cx, cy) { + for (let i = layers.length - 1; i >= 0; i--) { + const layer = layers[i]; + if (!layer.textData || !layer.visible) continue; + const td = layer.textData; + const tempPs = { + type: 'text', ox: td.ox, oy: td.oy, rotation: td.rotation, scaleX: td.scaleX, scaleY: td.scaleY, + params: { x: td.x, y: td.y, text: td.content, color: td.color, font: td.font, size: td.size, bold: td.bold, italic: td.italic, lineHeight: td.lineHeight } + }; + const bbox = getPendingBBox(tempPs); + if (!bbox) continue; + const rot = td.rotation || 0; + let hit; + if (rot === 0) { + hit = cx >= bbox.x && cx <= bbox.x + bbox.w && cy >= bbox.y && cy <= bbox.y + bbox.h; + } else { + const pvX = bbox.x + bbox.w / 2, pvY = bbox.y + bbox.h / 2; + const cos = Math.cos(-rot), sin = Math.sin(-rot); + const dx = cx - pvX, dy = cy - pvY; + const nx = pvX + dx * cos - dy * sin, ny = pvY + dx * sin + dy * cos; + hit = nx >= bbox.x && nx <= bbox.x + bbox.w && ny >= bbox.y && ny <= bbox.y + bbox.h; + } + if (hit) return i; + } + return -1; +} + +function showPendingOptions() { + toolOptions.innerHTML = ` + +
+ + + `; + toolOptions.classList.add('visible'); + $('#optPendApply').onclick = commitPendingShape; + $('#optPendCancel').onclick = cancelPendingShape; +} + +// Register pending shape handler — intercepts first in dispatcher._dispatch +dispatcher.registerPending({ + onDown(e) { + if (e.button !== 0) return; + const p = getPointerCanvas(e); + const handle = hitPendingHandle(p.x, p.y); + if (handle) { + const pivot = getPendingPivot(pendingShape); + pendingTransformHandle = handle; + pendingTransformStart = { + pivotX: pivot.x, pivotY: pivot.y, + ox: pendingShape.ox, oy: pendingShape.oy, + scaleX: pendingShape.scaleX || 1, scaleY: pendingShape.scaleY || 1, + rotation: pendingShape.rotation || 0, + handles: getPendingHandles(pendingShape), + rotAngle: Math.atan2(p.y - pivot.y, p.x - pivot.x), + }; + try { viewport.setPointerCapture(e.pointerId); } catch(_) {} + viewport.style.cursor = handle === 'rot' ? 'grab' : 'se-resize'; + container.style.cursor = handle === 'rot' ? 'grab' : 'se-resize'; + return; + } + if (hitPendingShape(p.x, p.y)) { + pendingDragging = true; + pendingDragStart = { x: p.x, y: p.y, ox: pendingShape.ox, oy: pendingShape.oy }; + try { viewport.setPointerCapture(e.pointerId); } catch(_) {} + viewport.style.cursor = 'move'; + container.style.cursor = 'move'; + return; + } + // Clicked outside pending shape — commit and re-dispatch + commitPendingShape(); + dispatcher.onDown(e); + }, + onMove(e) { + if (pendingTransformHandle && pendingShape) { + const p = getPointerCanvas(e); + if (pendingTransformHandle === 'rot') { + const currentAngle = Math.atan2(p.y - pendingTransformStart.pivotY, p.x - pendingTransformStart.pivotX); + pendingShape.rotation = pendingTransformStart.rotation + (currentAngle - pendingTransformStart.rotAngle); + } else { + const origH = pendingTransformStart.handles.find(h => h.id === pendingTransformHandle); + const origDist = Math.hypot(origH.x - pendingTransformStart.pivotX, origH.y - pendingTransformStart.pivotY); + const newDist = Math.hypot(p.x - pendingTransformStart.pivotX, p.y - pendingTransformStart.pivotY); + const factor = origDist > 1 ? newDist / origDist : 1; + pendingShape.scaleX = Math.max(0.05, pendingTransformStart.scaleX * factor); + pendingShape.scaleY = Math.max(0.05, pendingTransformStart.scaleY * factor); + } + renderPendingOnOverlay(); + return; + } + if (pendingDragging && pendingShape) { + const p = getPointerCanvas(e); + pendingShape.ox = pendingDragStart.ox + (p.x - pendingDragStart.x); + pendingShape.oy = pendingDragStart.oy + (p.y - pendingDragStart.y); + renderPendingOnOverlay(); + return; + } + if (!isDrawing) { + const p = getPointerCanvas(e); + const handle = hitPendingHandle(p.x, p.y); + const cur = handle ? (handle === 'rot' ? 'grab' : 'se-resize') : (hitPendingShape(p.x, p.y) ? 'move' : (currentTool ? 'crosshair' : 'default')); + viewport.style.cursor = cur; + container.style.cursor = cur; + } + }, + onUp(e) { + if (pendingTransformHandle) { + pendingTransformHandle = null; + pendingTransformStart = null; + viewport.style.cursor = 'move'; + container.style.cursor = 'move'; + return; + } + if (pendingDragging) { + pendingDragging = false; + pendingDragStart = null; + viewport.style.cursor = 'move'; + container.style.cursor = 'move'; + return; + } + } +}); + +// ===================== TEXT TOOL ===================== +function showTextOverlay(cx, cy) { + const vp = canvasToViewport(cx, cy); + textOverlay.style.display = 'block'; + textOverlay.style.left = vp.x + 'px'; + textOverlay.style.top = vp.y + 'px'; + textOverlay.style.transform = `scale(${zoom})`; + const sz = Math.max(8, textSize); + textArea.style.fontSize = sz + 'px'; + textArea.style.fontFamily = textFont === 'sans-serif' ? 'Manrope, sans-serif' : textFont === 'monospace' ? "'JetBrains Mono', monospace" : textFont; + textArea.style.fontWeight = textBold ? '700' : '400'; + textArea.style.fontStyle = textItalic ? 'italic' : 'normal'; + textArea.style.color = fgColor; + textArea.style.caretColor = fgColor; + textArea.style.minWidth = Math.round(textSize * 4) + 'px'; + textArea.textContent = ''; + textArea.dataset.cx = cx; + textArea.dataset.cy = cy; + setTimeout(() => { textArea.focus(); }, 50); +} + +function hideTextOverlay() { + textOverlay.style.display = 'none'; + textArea.textContent = ''; +} + +function selectAllTextEditor() { + const range = document.createRange(); + range.selectNodeContents(textArea); + const sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(range); +} + +function commitText() { + const text = (textArea.innerText || '').trim().replace(/\n$/, ''); + if (!text) { hideTextOverlay(); return; } + + const cx = +textArea.dataset.cx; + const cy = +textArea.dataset.cy; + + const rotation = parseFloat(textArea.dataset.rotation) || 0; + const scaleX = parseFloat(textArea.dataset.scaleX) || 1; + const scaleY = parseFloat(textArea.dataset.scaleY) || 1; + pendingShape = { + type: 'text', ox: 0, oy: 0, rotation, scaleX, scaleY, + params: { + x: cx, y: cy, text: text, + color: fgColor, font: textFont, size: textSize, + bold: textBold, italic: textItalic, + lineHeight: textSize * 1.3 + } + }; + textArea.dataset.rotation = '0'; + textArea.dataset.scaleX = '1'; + textArea.dataset.scaleY = '1'; + hideTextOverlay(); + renderPendingOnOverlay(); + showPendingOptions(); +} + +textArea.addEventListener('keydown', e => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + e.stopPropagation(); + const text = (textArea.innerText || '').trim().replace(/\n$/, ''); + if (text) { + commitText(); + } else { + hideTextOverlay(); + if (pendingShape) commitPendingShape(); + } + return; + } + if (e.key === 'Escape') { + hideTextOverlay(); + if (pendingShape) cancelPendingShape(); + return; + } + e.stopPropagation(); +}); + +textOverlay.addEventListener('pointerdown', e => { e.stopPropagation(); }); +textOverlay.addEventListener('click', e => { e.stopPropagation(); }); + +// ===================== COLOR PICKER ===================== +const colorPicker = $('#colorPicker'); +const colorSwatch = $('#colorSwatch'); + +function updateColorSwatch() { + colorSwatch.style.background = fgColor; +} +updateColorSwatch(); + +colorPicker.addEventListener('input', e => { + fgColor = e.target.value; + updateColorSwatch(); +}); + +// ===================== EXPORT ===================== +$('#btnExport').addEventListener('click', showExportModal); +$('#exportCancel').addEventListener('click', hideExportModal); +$('#exportConfirm').addEventListener('click', doExport); +$('#exportFormat').addEventListener('change', updateExportUI); +$('#exportQuality').addEventListener('input', e => { + $('#exportQualityVal').textContent = e.target.value; +}); + +function showExportModal() { + if (!canvasW) return; + $('#exportName').value = fileName; + updateExportUI(); + $('#exportModal').classList.add('visible'); +} + +function hideExportModal() { + $('#exportModal').classList.remove('visible'); +} + +function updateExportUI() { + const fmt = $('#exportFormat').value; + const showQuality = fmt !== 'png'; + $('#qualityRow').style.display = showQuality ? 'flex' : 'none'; + const warn = fmt === 'jpeg' && hasTransparency; + $('#exportWarning').classList.toggle('visible', warn); +} + +function doExport() { + const fmt = $('#exportFormat').value; + const quality = +$('#exportQuality').value / 100; + const name = $('#exportName').value || 'image'; + const ext = fmt === 'jpeg' ? 'jpg' : fmt; + const mime = fmt === 'jpeg' ? 'image/jpeg' : fmt === 'webp' ? 'image/webp' : 'image/png'; + + let exportCanvas = cMain; + if (fmt === 'jpeg') { + exportCanvas = document.createElement('canvas'); + exportCanvas.width = canvasW; + exportCanvas.height = canvasH; + const ectx = exportCanvas.getContext('2d'); + ectx.fillStyle = '#ffffff'; + ectx.fillRect(0, 0, canvasW, canvasH); + ectx.drawImage(cMain, 0, 0); + } + + exportCanvas.toBlob(blob => { + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = name + '.' + ext; + a.click(); + URL.revokeObjectURL(url); + hideExportModal(); + }, mime, quality); +} + +$('#exportModal').addEventListener('click', e => { + if (e.target === $('#exportModal')) hideExportModal(); +}); + +// ===================== KEYBOARD SHORTCUTS ===================== +document.addEventListener('keydown', e => { + if (e.code === 'Space' && e.target.tagName !== 'TEXTAREA') { + e.preventDefault(); + spaceDown = true; + if (canvasW) { viewport.style.cursor = 'grab'; container.style.cursor = 'grab'; } + return; + } + + if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || e.target.tagName === 'SELECT') return; + + const ctrl = e.ctrlKey || e.metaKey; + + if (ctrl && e.code === 'KeyO') { e.preventDefault(); fileInput.click(); return; } + if (ctrl && e.code === 'KeyT') { e.preventDefault(); saveCurrentTabState(); const _nt = createTab('Новый'); activeTabId = _nt.id; layers = []; history = []; historyIndex = -1; canvasW = 0; canvasH = 0; selRect = null; loadTabState(_nt); return; } + if (ctrl && e.code === 'KeyW') { e.preventDefault(); closeTab(activeTabId); return; } + if (ctrl && e.code === 'KeyS') { e.preventDefault(); showExportModal(); return; } + if (ctrl && e.code === 'KeyZ' && !e.shiftKey) { e.preventDefault(); if (pendingShape) { cancelPendingShape(); } else { undo(); } return; } + if (ctrl && e.code === 'KeyZ' && e.shiftKey) { e.preventDefault(); redo(); return; } + if (ctrl && e.code === 'KeyC' && !e.shiftKey) { + e.preventDefault(); + if (!canvasW) return; + // Copy selection (or whole image) from active layer to internal clipboard + const src = layers[activeLayerIndex]; + if (selRect && selRect.w > 5 && selRect.h > 5) { + const sx = Math.round(clamp(selRect.x, 0, canvasW)); + const sy = Math.round(clamp(selRect.y, 0, canvasH)); + const sw = Math.round(clamp(selRect.w, 1, canvasW - sx)); + const sh = Math.round(clamp(selRect.h, 1, canvasH - sy)); + const data = src.ctx.getImageData(sx, sy, sw, sh); + internalClipboard = { imageData: data, x: sx, y: sy, w: sw, h: sh }; + } else if (selPath && selPath.length > 2) { + // Lasso: use bounding box + let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity; + selPath.forEach(p => { minX = Math.min(minX, p.x); minY = Math.min(minY, p.y); maxX = Math.max(maxX, p.x); maxY = Math.max(maxY, p.y); }); + const sx = Math.round(clamp(minX, 0, canvasW)); + const sy = Math.round(clamp(minY, 0, canvasH)); + const sw = Math.round(clamp(maxX - minX, 1, canvasW - sx)); + const sh = Math.round(clamp(maxY - minY, 1, canvasH - sy)); + // Create masked copy + const tmp = document.createElement('canvas'); tmp.width = sw; tmp.height = sh; + const tc = tmp.getContext('2d'); + tc.beginPath(); + selPath.forEach((p, i) => i === 0 ? tc.moveTo(p.x - sx, p.y - sy) : tc.lineTo(p.x - sx, p.y - sy)); + tc.closePath(); tc.clip(); + tc.drawImage(src.canvas, -sx, -sy); + internalClipboard = { imageData: tc.getImageData(0, 0, sw, sh), x: sx, y: sy, w: sw, h: sh }; + } else { + // No selection: copy whole layer + const data = src.ctx.getImageData(0, 0, canvasW, canvasH); + internalClipboard = { imageData: data, x: 0, y: 0, w: canvasW, h: canvasH }; + } + return; + } + if (ctrl && e.code === 'KeyX' && !e.shiftKey) { + e.preventDefault(); + if (!canvasW) return; + const src = layers[activeLayerIndex]; + if (selRect && selRect.w > 5 && selRect.h > 5) { + const sx = Math.round(clamp(selRect.x, 0, canvasW)); + const sy = Math.round(clamp(selRect.y, 0, canvasH)); + const sw = Math.round(clamp(selRect.w, 1, canvasW - sx)); + const sh = Math.round(clamp(selRect.h, 1, canvasH - sy)); + internalClipboard = { imageData: src.ctx.getImageData(sx, sy, sw, sh), x: sx, y: sy, w: sw, h: sh }; + src.ctx.clearRect(sx, sy, sw, sh); + } else if (selPath && selPath.length > 2) { + let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity; + selPath.forEach(p => { minX = Math.min(minX, p.x); minY = Math.min(minY, p.y); maxX = Math.max(maxX, p.x); maxY = Math.max(maxY, p.y); }); + const sx = Math.round(clamp(minX, 0, canvasW)); + const sy = Math.round(clamp(minY, 0, canvasH)); + const sw = Math.round(clamp(maxX - minX, 1, canvasW - sx)); + const sh = Math.round(clamp(maxY - minY, 1, canvasH - sy)); + const tmp = document.createElement('canvas'); tmp.width = sw; tmp.height = sh; + const tc = tmp.getContext('2d'); + tc.beginPath(); + selPath.forEach((p, i) => i === 0 ? tc.moveTo(p.x - sx, p.y - sy) : tc.lineTo(p.x - sx, p.y - sy)); + tc.closePath(); tc.clip(); + tc.drawImage(src.canvas, -sx, -sy); + internalClipboard = { imageData: tc.getImageData(0, 0, sw, sh), x: sx, y: sy, w: sw, h: sh }; + // Erase lasso area from layer + src.ctx.save(); + src.ctx.beginPath(); + selPath.forEach((p, i) => i === 0 ? src.ctx.moveTo(p.x, p.y) : src.ctx.lineTo(p.x, p.y)); + src.ctx.closePath(); + src.ctx.clip(); + src.ctx.clearRect(sx, sy, sw, sh); + src.ctx.restore(); + } else { + internalClipboard = { imageData: src.ctx.getImageData(0, 0, canvasW, canvasH), x: 0, y: 0, w: canvasW, h: canvasH }; + src.ctx.clearRect(0, 0, canvasW, canvasH); + } + compositeLayersToMain(); + pushHistory(); + clearSelection(); + return; + } + if (ctrl && e.code === 'KeyV' && !e.shiftKey) { + if (internalClipboard) { + e.preventDefault(); + // Paste to new layer + const layer = createLayer('Вставка', canvasW, canvasH); + if (!layer) return; + layer.ctx.putImageData(internalClipboard.imageData, internalClipboard.x, internalClipboard.y); + layers.splice(activeLayerIndex + 1, 0, layer); + activeLayerIndex++; + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); + // Switch to select tool so user can move the pasted content + setTool('select'); + return; + } + // If no internal clipboard, let default paste handler (from clipboard API) work + return; + } + if (ctrl && e.key === '0') { e.preventDefault(); fitToViewport(); return; } + if (ctrl && e.key === '1') { e.preventDefault(); zoom = 1; panX = (viewport.clientWidth - canvasW) / 2; panY = (viewport.clientHeight - canvasH) / 2; updateTransform(); return; } + + if (e.key === 'Escape') { if (pendingShape) { cancelPendingShape(); } else if (currentTool) { cancelCurrentTool(); } clearSelection(); return; } + if (e.key === 'Enter') { + if (pendingShape) { e.preventDefault(); commitPendingShape(); return; } + if (selRect && !currentTool) { e.preventDefault(); applySelectionCrop(); return; } + if (currentTool === 'crop' && cropRect) { e.preventDefault(); applyCrop(); return; } + } + + if (!canvasW) return; + + const toolMap = { v:'select', b:'brush', e:'eraser', t:'text', c:'crop', l:'line', u:'rect', o:'circle', a:'arrow', i:'eyedropper', g:'fill', s:'clone', w:'lasso' }; + if (toolMap[e.key.toLowerCase()] && !ctrl) { + setTool(toolMap[e.key.toLowerCase()]); + return; + } + + if (e.code === 'BracketLeft' || e.code === 'BracketRight') { + const delta = e.code === 'BracketLeft' ? -2 : 2; + if (['brush', 'eraser', 'clone'].includes(currentTool)) { + brushSize = Math.max(1, Math.min(100, brushSize + delta)); + if ($('#optSize')) { $('#optSize').value = brushSize; } + if ($('#optSizeVal')) { $('#optSizeVal').textContent = brushSize; } + } else if (['line', 'rect', 'circle', 'arrow'].includes(currentTool)) { + strokeWidth = Math.max(1, Math.min(20, strokeWidth + (delta > 0 ? 1 : -1))); + if ($('#optStroke')) { $('#optStroke').value = strokeWidth; } + if ($('#optStrokeVal')) { $('#optStrokeVal').textContent = strokeWidth; } + } + return; + } +}); + +document.addEventListener('keyup', e => { + if (e.code === 'Space') { + spaceDown = false; + const cur = currentTool ? 'crosshair' : 'default'; + viewport.style.cursor = cur; + container.style.cursor = cur; + } +}); + +// ===================== IMAGE BORDER ===================== +function drawImageBorder() { + if (!canvasW) return; + const ctx = ctxUI; + const tl = c2s(0, 0); + const br = c2s(canvasW, canvasH); + ctx.save(); + ctx.strokeStyle = 'rgba(255,255,255,0.15)'; + ctx.lineWidth = 1; + ctx.strokeRect(tl.x, tl.y, br.x - tl.x, br.y - tl.y); + ctx.restore(); +} + +// ===================== PIXEL RULERS ===================== +function drawRulers() { + if (!canvasW) return; + const ctx = ctxUI; + const vw = viewport.clientWidth; + const vh = viewport.clientHeight; + const rulerH = 20; + ctx.save(); + ctx.fillStyle = 'rgba(9,16,32,0.85)'; + ctx.fillRect(0, 0, vw, rulerH); + ctx.fillRect(0, rulerH, rulerH, vh - rulerH); + let step = 100; + if (zoom >= 4) step = 10; + else if (zoom >= 1.5) step = 25; + else if (zoom >= 0.5) step = 50; + else if (zoom < 0.2) step = 200; + ctx.font = '9px JetBrains Mono, monospace'; + ctx.fillStyle = '#666'; + ctx.strokeStyle = '#444'; + ctx.lineWidth = 0.5; + const startX = Math.floor(-panX / zoom / step) * step; + const endX = Math.ceil((vw - panX) / zoom / step) * step; + for (let cx = startX; cx <= endX; cx += step) { + const sx = cx * zoom + panX; + if (sx < rulerH || sx > vw) continue; + ctx.beginPath(); ctx.moveTo(sx, rulerH - 6); ctx.lineTo(sx, rulerH); ctx.stroke(); + ctx.textAlign = 'center'; ctx.textBaseline = 'bottom'; + ctx.fillText(cx, sx, rulerH - 7); + } + const minor = step / 5; + if (minor * zoom >= 4) { + const ms = Math.floor(-panX / zoom / minor) * minor; + const me = Math.ceil((vw - panX) / zoom / minor) * minor; + for (let cx = ms; cx <= me; cx += minor) { + const sx = cx * zoom + panX; + if (sx < rulerH || sx > vw) continue; + ctx.beginPath(); ctx.moveTo(sx, rulerH - 3); ctx.lineTo(sx, rulerH); ctx.stroke(); + } + } + const startY = Math.floor(-panY / zoom / step) * step; + const endY = Math.ceil((vh - panY) / zoom / step) * step; + for (let cy = startY; cy <= endY; cy += step) { + const sy = cy * zoom + panY; + if (sy < rulerH || sy > vh) continue; + ctx.beginPath(); ctx.moveTo(rulerH - 6, sy); ctx.lineTo(rulerH, sy); ctx.stroke(); + ctx.save(); ctx.translate(rulerH - 7, sy); ctx.rotate(-Math.PI/2); + ctx.textAlign = 'center'; ctx.textBaseline = 'bottom'; + ctx.fillText(cy, 0, 0); + ctx.restore(); + } + if (minor * zoom >= 4) { + const ms2 = Math.floor(-panY / zoom / minor) * minor; + const me2 = Math.ceil((vh - panY) / zoom / minor) * minor; + for (let cy = ms2; cy <= me2; cy += minor) { + const sy = cy * zoom + panY; + if (sy < rulerH || sy > vh) continue; + ctx.beginPath(); ctx.moveTo(rulerH - 3, sy); ctx.lineTo(rulerH, sy); ctx.stroke(); + } + } + ctx.fillStyle = 'rgba(9,16,32,0.85)'; + ctx.fillRect(0, 0, rulerH, rulerH); + ctx.restore(); +} + +// ===================== WINDOW RESIZE ===================== +window.addEventListener('resize', () => { + resizeUICanvas(); + if (canvasW) fitToViewport(); +}); + +// ===================== CONTEXT MENU ===================== +const ctxMenu = $('#ctxMenu'); + +function showCtxMenu(x, y) { + const hasImage = canvasW > 0; + const hasSel = selRect && selRect.w > 5 && selRect.h > 5; + ctxMenu.querySelector('[data-action="undo"]').classList.toggle('disabled', historyIndex <= 0); + ctxMenu.querySelector('[data-action="redo"]').classList.toggle('disabled', historyIndex >= history.length - 1); + ctxMenu.querySelector('[data-action="crop-sel"]').classList.toggle('disabled', !hasSel); + ctxMenu.querySelector('[data-action="resize"]').classList.toggle('disabled', !hasImage); + ctxMenu.querySelector('[data-action="rot-cw"]').classList.toggle('disabled', !hasImage); + ctxMenu.querySelector('[data-action="rot-ccw"]').classList.toggle('disabled', !hasImage); + ctxMenu.querySelector('[data-action="flip-h"]').classList.toggle('disabled', !hasImage); + ctxMenu.querySelector('[data-action="flip-v"]').classList.toggle('disabled', !hasImage); + ctxMenu.querySelector('[data-action="copy"]').classList.toggle('disabled', !hasImage); + ctxMenu.querySelector('[data-action="export"]').classList.toggle('disabled', !hasImage); + + ctxMenu.style.left = '0'; ctxMenu.style.top = '0'; + ctxMenu.classList.add('visible'); + const mw = ctxMenu.offsetWidth, mh = ctxMenu.offsetHeight; + const vw = window.innerWidth, vh = window.innerHeight; + ctxMenu.style.left = Math.min(x, vw - mw - 8) + 'px'; + ctxMenu.style.top = Math.min(y, vh - mh - 8) + 'px'; +} + +function hideCtxMenu() { + ctxMenu.classList.remove('visible'); +} + +viewport.addEventListener('contextmenu', e => { + e.preventDefault(); + showCtxMenu(e.clientX, e.clientY); +}); + +document.addEventListener('pointerdown', e => { + if (!ctxMenu.contains(e.target)) hideCtxMenu(); +}); +document.addEventListener('keydown', e => { + if (ctxMenu.classList.contains('visible') && e.key === 'Escape') { hideCtxMenu(); e.stopPropagation(); } +}, true); + +ctxMenu.addEventListener('click', e => { + const item = e.target.closest('.ctx-item'); + if (!item || item.classList.contains('disabled')) return; + const action = item.dataset.action; + hideCtxMenu(); + + switch (action) { + case 'undo': undo(); break; + case 'redo': redo(); break; + case 'crop-sel': if (selRect) applySelectionCrop(); break; + case 'resize': $('#btnResize').click(); break; + case 'rot-cw': rotate90(1); break; + case 'rot-ccw': rotate90(-1); break; + case 'flip-h': flip('h'); break; + case 'flip-v': flip('v'); break; + case 'fit': fitToViewport(); break; + case 'zoom100': + zoom = 1; + panX = (viewport.clientWidth - canvasW) / 2; + panY = (viewport.clientHeight - canvasH) / 2; + updateTransform(); + break; + case 'copy': + if (canvasW) cMain.toBlob(b => { + navigator.clipboard.write([new ClipboardItem({'image/png': b})]).catch(()=>{}); + }); + break; + case 'paste': + navigator.clipboard.read().then(items => { + for (const item of items) { + for (const type of item.types) { + if (type.startsWith('image/')) { + item.getType(type).then(blob => { + const f = new File([blob], 'pasted.png', {type}); + loadImage(f); + }); + return; + } + } + } + }).catch(()=>{}); + break; + case 'export': showExportModal(); break; + } +}); + +// ===================== LAYER PANEL ===================== +$('#btnLayers').addEventListener('click', () => { + layerPanelVisible = !layerPanelVisible; + layerPanel.classList.toggle('visible', layerPanelVisible); + $('#btnLayers').classList.toggle('active', layerPanelVisible); + if (layerPanelVisible) renderLayerPanel(); +}); + +function renderLayerPanel() { + if (!layerPanelVisible && !layerPanel.classList.contains('visible')) { updateStatusLayer(); return; } + layerList.innerHTML = ''; + for (let i = layers.length - 1; i >= 0; i--) { + const layer = layers[i]; + const item = document.createElement('div'); + item.className = 'layer-item' + (i === activeLayerIndex ? ' active' : ''); + item.dataset.index = i; + item.draggable = true; + + const vis = document.createElement('button'); + vis.className = 'layer-vis' + (layer.visible ? '' : ' off'); + vis.innerHTML = layer.visible ? '👁' : '○'; + vis.title = 'Видимость'; + vis.addEventListener('click', e => { + e.stopPropagation(); + layer.visible = !layer.visible; + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); + }); + + const thumbWrap = document.createElement('div'); + thumbWrap.className = 'layer-thumb'; + const thumbCanvas = document.createElement('canvas'); + thumbCanvas.width = 32; thumbCanvas.height = 32; + const tc = thumbCanvas.getContext('2d'); + if (layer.canvas.width && layer.canvas.height) { + const scale = Math.min(32 / layer.canvas.width, 32 / layer.canvas.height); + const w = layer.canvas.width * scale; + const h = layer.canvas.height * scale; + tc.drawImage(layer.canvas, (32 - w) / 2, (32 - h) / 2, w, h); + } + thumbWrap.appendChild(thumbCanvas); + + const info = document.createElement('div'); + info.className = 'layer-info'; + const nameEl = document.createElement('div'); + nameEl.className = 'layer-name'; + nameEl.textContent = (layer.textData ? 'T ' : '') + layer.name; + if (layer.textData) nameEl.style.color = 'var(--accent)'; + const meta = document.createElement('div'); + meta.className = 'layer-meta'; + meta.textContent = Math.round(layer.opacity * 100) + '%' + (layer.blendMode !== 'source-over' ? ' ' + layer.blendMode : ''); + info.appendChild(nameEl); + info.appendChild(meta); + + item.appendChild(vis); + item.appendChild(thumbWrap); + item.appendChild(info); + + item.addEventListener('click', () => { + activeLayerIndex = i; + renderLayerPanel(); + }); + + item.addEventListener('dblclick', e => { + e.stopPropagation(); + const input = document.createElement('input'); + input.className = 'layer-name-input'; + input.value = layer.name; + nameEl.replaceWith(input); + input.focus(); + input.select(); + const finish = () => { + layer.name = input.value.trim() || layer.name; + renderLayerPanel(); + }; + input.addEventListener('blur', finish); + input.addEventListener('keydown', ev => { + if (ev.key === 'Enter') { ev.preventDefault(); input.blur(); } + if (ev.key === 'Escape') { input.value = layer.name; input.blur(); } + ev.stopPropagation(); + }); + }); + + item.addEventListener('dragstart', e => { + e.dataTransfer.setData('text/plain', i.toString()); + e.dataTransfer.effectAllowed = 'move'; + item.style.opacity = '0.5'; + }); + item.addEventListener('dragend', () => { item.style.opacity = '1'; }); + item.addEventListener('dragover', e => { + e.preventDefault(); + e.dataTransfer.dropEffect = 'move'; + const rect = item.getBoundingClientRect(); + const mid = rect.top + rect.height / 2; + item.classList.remove('drag-over-top', 'drag-over-bottom'); + item.classList.add(e.clientY < mid ? 'drag-over-top' : 'drag-over-bottom'); + }); + item.addEventListener('dragleave', () => { + item.classList.remove('drag-over-top', 'drag-over-bottom'); + }); + item.addEventListener('drop', e => { + e.preventDefault(); + item.classList.remove('drag-over-top', 'drag-over-bottom'); + const fromIdx = parseInt(e.dataTransfer.getData('text/plain')); + const rect = item.getBoundingClientRect(); + const mid = rect.top + rect.height / 2; + let toIdx = i; + if (e.clientY < mid && fromIdx < i) toIdx = i; + else if (e.clientY >= mid && fromIdx > i) toIdx = i; + else if (e.clientY < mid && fromIdx > i) toIdx = i + 1; + else if (e.clientY >= mid && fromIdx < i) toIdx = i - 1; + if (fromIdx !== toIdx) moveLayer(fromIdx, toIdx); + }); + + layerList.appendChild(item); + } + + if (layers.length > 0) { + const active = layers[activeLayerIndex]; + $('#lpBlend').value = active.blendMode; + $('#lpOpacity').value = Math.round(active.opacity * 100); + $('#lpOpacityVal').textContent = Math.round(active.opacity * 100) + '%'; + } + + $('#lpDel').disabled = layers.length <= 1; + $('#lpMerge').disabled = activeLayerIndex <= 0; + $('#lpAdd').disabled = layers.length >= MAX_LAYERS; + + updateStatusLayer(); +} + +// Layer panel buttons +$('#lpAdd').addEventListener('click', () => addLayer()); +$('#lpDel').addEventListener('click', () => removeLayer(activeLayerIndex)); +$('#lpMerge').addEventListener('click', () => mergeDown(activeLayerIndex)); +$('#lpFlatten').addEventListener('click', () => flattenLayers()); + +$('#lpBlend').addEventListener('change', e => { + if (layers.length === 0) return; + layers[activeLayerIndex].blendMode = e.target.value; + compositeLayersToMain(); + renderLayerPanel(); + pushHistory(); +}); + +$('#lpOpacity').addEventListener('input', e => { + if (layers.length === 0) return; + layers[activeLayerIndex].opacity = +e.target.value / 100; + $('#lpOpacityVal').textContent = e.target.value + '%'; + compositeLayersToMain(); +}); +$('#lpOpacity').addEventListener('change', () => { + renderLayerPanel(); + pushHistory(); +}); + +layerPanel.addEventListener('pointerdown', e => e.stopPropagation()); +layerPanel.addEventListener('keydown', e => e.stopPropagation()); + +// ===================== LAYER SHORTCUTS ===================== +document.addEventListener('keydown', e => { + if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || e.target.tagName === 'SELECT') return; + const ctrl = e.ctrlKey || e.metaKey; + if (ctrl && e.shiftKey && e.code === 'KeyN') { + e.preventDefault(); + if (canvasW) addLayer(); + return; + } + if (ctrl && !e.shiftKey && e.code === 'KeyE') { + e.preventDefault(); + if (canvasW) mergeDown(activeLayerIndex); + return; + } + if (ctrl && e.shiftKey && e.code === 'KeyE') { + e.preventDefault(); + if (canvasW) flattenLayers(); + return; + } +}, true); + +// ===================== SETTINGS PERSISTENCE ===================== +const SETTINGS_KEY = 'editor_settings_v1'; + +function saveSettings() { + try { + localStorage.setItem(SETTINGS_KEY, JSON.stringify({ + brushSize, brushOpacity, strokeWidth, fillShape, + fgColor, textFont, textSize, textBold, textItalic, + fillTolerance, blurRadius, sharpenAmount + })); + } catch(_) {} +} + +function loadSettings() { + try { + const s = JSON.parse(localStorage.getItem(SETTINGS_KEY) || '{}'); + if (s.brushSize) brushSize = s.brushSize; + if (s.brushOpacity) brushOpacity = s.brushOpacity; + if (s.strokeWidth) strokeWidth = s.strokeWidth; + if (typeof s.fillShape === 'boolean') fillShape = s.fillShape; + if (s.fgColor) { fgColor = s.fgColor; $('#colorPicker').value = fgColor; updateColorSwatch(); } + if (s.textFont) textFont = s.textFont; + if (s.textSize) textSize = s.textSize; + if (typeof s.textBold === 'boolean') textBold = s.textBold; + if (typeof s.textItalic === 'boolean') textItalic = s.textItalic; + if (s.fillTolerance !== undefined) fillTolerance = s.fillTolerance; + if (s.blurRadius !== undefined) blurRadius = s.blurRadius; + if (s.sharpenAmount !== undefined) sharpenAmount = s.sharpenAmount; + } catch(_) {} +} + +let _settingsSaveTimer = 0; +function scheduleSaveSettings() { + clearTimeout(_settingsSaveTimer); + _settingsSaveTimer = setTimeout(saveSettings, 500); +} + +colorPicker.addEventListener('input', scheduleSaveSettings); + +const _settingsObserver = new MutationObserver(() => { + ['optSize','optOpacity','optStroke','optTolerance','optBlurR','optSharpAmt'].forEach(id => { + const el = document.getElementById(id); + if (el && !el.dataset.settingsHooked) { + el.dataset.settingsHooked = '1'; + el.addEventListener('change', scheduleSaveSettings); + } + }); +}); +_settingsObserver.observe(toolOptions, { childList: true }); + +loadSettings(); + +// ===================== INIT TABS ===================== +(function initTabs() { + const first = createTab('Новый'); + activeTabId = first.id; + renderTabBar(); +})(); + +})(); diff --git a/public/formatter.html b/public/formatter.html new file mode 100644 index 0000000..9334841 --- /dev/null +++ b/public/formatter.html @@ -0,0 +1,260 @@ + + + + + + Code Formatter — images.wadevelop.ru + + + + + + + + + +
+
+ +
+
+ + CSS · JavaScript +
+

+ Code Formatter +

+

форматирование и beautify кода

+
+ + +
+ + +
+ + +
+ +
+ + +
+ + + + +
+ +
+
+ + + + diff --git a/public/httpclient.html b/public/httpclient.html new file mode 100644 index 0000000..7a1db5a --- /dev/null +++ b/public/httpclient.html @@ -0,0 +1,813 @@ + + + + + + HTTP Client — images.wadevelop.ru + + + + + + + + + + + +
+
+ + +
+
+ + GET · POST · PUT · DELETE +
+

+ HTTP Клиент +

+

тест API запросов

+
+ + +
+ + + +
+ + +
+ + +
+
+ + + + +
+ + +
+
+
+ Добавить параметр
+
+ + + + + + + + + +
+ + +
+ +
+ Нажмите «Отправить» для запроса +
+ +
+ + +
+ +
+
+
+ + Ответ появится здесь +
+ +
+ +
+ + +
+
+ + +
+
+ История запросов +
+ + +
+
+
+
+ +
+
+ + + + + diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..a422ce0 --- /dev/null +++ b/public/index.html @@ -0,0 +1,355 @@ + + + + + + WA Dev Tools — Инструменты + + + + + + + + + + +
+ +
+ + + + diff --git a/public/md.html b/public/md.html new file mode 100644 index 0000000..d81b4f1 --- /dev/null +++ b/public/md.html @@ -0,0 +1,401 @@ + + + + + + Markdown Viewer + + + + + + + + + + + + + +
+
+ + +
+
+ + MD Viewer +
+

+ Просмотр Markdown +

+

drag-drop файл или вставьте текст

+
+ + +
+ + +
+ + +
+ + +
+
+ + + +

+ Перетащите .md файл сюда или выберите +

+ + +
+
+ + + +
+ + + + +
+
+ + + + diff --git a/public/parser.html b/public/parser.html new file mode 100644 index 0000000..46b128e --- /dev/null +++ b/public/parser.html @@ -0,0 +1,564 @@ + + + + + + URL Parser — images.wadevelop.ru + + + + + + + + + + +
+
+ + +
+
+ + URL Article Parser +
+

+ Парсер статей +

+

извлечение контента из любой веб-страницы

+
+ + +
+
+ + +
+ + +
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+
+

API

+
+

/parse?url=URL — полный парсинг (title, content, images, links)

+

/metadata?url=URL — только метаданные

+

/text?url=URL — только plain text

+

/preview?url=URL — превью-карточка (title + image + description)

+

/health — проверка доступности

+
+
+
+ +
+
+ + + + diff --git a/public/password.html b/public/password.html new file mode 100644 index 0000000..3d71be2 --- /dev/null +++ b/public/password.html @@ -0,0 +1,482 @@ + + + + + + Password Generator — images.wadevelop.ru + + + + + + + + + + +
+
+ + +
+
+ + Crypto · Client-side +
+

+ Генератор паролей +

+

криптографически стойкая генерация

+
+ + +
+ + +
+ +
+ + +
+
+ + +
+
+ Верхний регистр (A-Z) +
+
+
+ Нижний регистр (a-z) +
+
+
+ Цифры (0-9) +
+
+
+ Символы (!@#$%^&*...) +
+
+
+ Исключить похожие (l, 1, I, O, 0, o) +
+
+
+ + +
+ + +
+ + + +
+ + +
+
+ + + + + + + + + +
+
+ +
+
+ + + + diff --git a/public/placeholder.html b/public/placeholder.html new file mode 100644 index 0000000..ae92f4c --- /dev/null +++ b/public/placeholder.html @@ -0,0 +1,412 @@ + + + + + + Placeholder — генератор заглушек + + + + + + + + + + +
+
+ + +
+
+ + PNG · JPG · WebP +
+

+ Placeholder генератор +

+

изображения-заглушки любого размера

+
+ + +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+
+ +
+
+
+ +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+
+ + + +
+ + +
+
+
+ Превью + + Скачать + +
+
+ placeholder +
+
+
+ + +
+
+

API

+
+

/placeholder-img/:WxH/:bg/:fg — картинка без текста

+

/placeholder-img/:WxH/:bg/:fg?text=Hello — с текстом

+

?format=png|jpg|webp — формат выходного файла

+

?fontsize=30 — размер шрифта (авто по умолчанию)

+

Цвета: HEX (3B82F6) или имя (red, yellow)

+
+
+
+ +
+
+ + + + diff --git a/public/redirects.html b/public/redirects.html new file mode 100644 index 0000000..729d6cb --- /dev/null +++ b/public/redirects.html @@ -0,0 +1,712 @@ + + + + + + Redirect Analyzer — images.wadevelop.ru + + + + + + + + + + + +
+
+ + +
+
+ + HTTP · HTTPS · 301 · 302 +
+

+ Redirect Анализатор +

+

анализ цепочки HTTP-редиректов

+
+ + +
+
+ + + + +
+
+ + +
+
+ +

Введите URL для анализа цепочки редиректов

+

Пример: http://google.com

+
+
+ + + + + + + +
+
+ + + + \ No newline at end of file diff --git a/public/sanitizer.html b/public/sanitizer.html new file mode 100644 index 0000000..a25b415 --- /dev/null +++ b/public/sanitizer.html @@ -0,0 +1,309 @@ + + + + + + HTML Sanitizer — images.wadevelop.ru + + + + + + + + + +
+
+ +
+
+ + XSS Protection · Client-side +
+

+ HTML Sanitizer +

+

очистка, извлечение текста, entities, минификация

+
+ + +
+ + + + +
+ + +
+ + + +
+ + +
+ + + + +
+ +
+
+ + + + diff --git a/public/svgeditor.html b/public/svgeditor.html new file mode 100644 index 0000000..dbd035f --- /dev/null +++ b/public/svgeditor.html @@ -0,0 +1,2455 @@ + + + + + +SVG Редактор — images.wadevelop.ru + + + + + + + + + + +
+ +
+
+ + + + +
+
+ + +
+ + + + + + +
+
+ + +
+ + + + + + +
+
+ + +
+ + + + + + +
+
+ + +
+ + +
+ + +
+ + + + +
+
+ +
+
+ +
+
+ + 100% + + +
+
+ + +
+ + +
+ + +
+ + + + + + +
+
КопироватьCtrl+C
+
ВырезатьCtrl+X
+
ВставитьCtrl+V
+
+
ДублироватьCtrl+D
+
УдалитьDel
+
+
На передний план
+
На задний план
+
+
ГруппироватьCtrl+G
+
РазгруппироватьCtrl+Shift+G
+
+
Текст → контур
+
+ + + + + +
+ + + + + + + + +
+
Свойства
+
+
+ + +
+
+ Слои +
+ +
+
+
+
+ Новый слой
+
+
+ + +
+ 800 × 600 + 100% + 0, 0 + 0 элементов + Готово +
+
+ + + + + + + + + + + + + + + + + diff --git a/public/vendor/fonts.css b/public/vendor/fonts.css new file mode 100644 index 0000000..5ec777f --- /dev/null +++ b/public/vendor/fonts.css @@ -0,0 +1,63 @@ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(/vendor/fonts/jetbrains-400.ttf) format('truetype'); +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(/vendor/fonts/jetbrains-500.ttf) format('truetype'); +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(/vendor/fonts/jetbrains-600.ttf) format('truetype'); +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(/vendor/fonts/jetbrains-700.ttf) format('truetype'); +} +@font-face { + font-family: 'Manrope'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(/vendor/fonts/manrope-400.ttf) format('truetype'); +} +@font-face { + font-family: 'Manrope'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(/vendor/fonts/manrope-500.ttf) format('truetype'); +} +@font-face { + font-family: 'Manrope'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url(/vendor/fonts/manrope-600.ttf) format('truetype'); +} +@font-face { + font-family: 'Manrope'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(/vendor/fonts/manrope-700.ttf) format('truetype'); +} +@font-face { + font-family: 'Manrope'; + font-style: normal; + font-weight: 800; + font-display: swap; + src: url(/vendor/fonts/manrope-800.ttf) format('truetype'); +} diff --git a/public/vendor/fonts/jetbrains-400.ttf b/public/vendor/fonts/jetbrains-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..129e8825b1c3ef1fbaa96f387716d1f10bcfc94e GIT binary patch literal 112172 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

dFMuC@{U-6YJSSR`8L)qDv@8YH3j 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 Fo6FB}W#*n*pI=mzPrb%l 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 dFMS5+fH4kENC-q8dv}vsgfBc#M?s literal 0 HcmV?d00001 diff --git a/public/vendor/fonts/jetbrains-700.ttf b/public/vendor/fonts/jetbrains-700.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1305efce9d6f3902d0913d5808b0fb49061582e2 GIT binary patch literal 112092 zcmd4430#*|_CJ2_eI7onBKs~PyMXxN10N7XWp~3R#SJ%5P*4O#+|A53v$C>s%&ajh zv(23L#c9mStSPg`oTjmc95XX>%4xAO{J+n=_kjK>MIKf)zM`<=tDJX&5#NG%`RoPN3zKeGk9f}l#=MH=Rxe&i(vThm z-(zmWiaBHdeds;Lo?pvYTV-8sbxqKn-xedi3hCK(K=60nRv?~_czoT0mgQk%mo8&0 z@n*&X(i@s)R}a{*6nSkijCsZ^s9wI%&0REsJ___PjnxZko%c=c&6x25%2cm*S zP>;J98?cwL{j|HkxAGTQBYTF~DCY8K zFhLmOLfa8g?fEJH*9LP_7aC@+ml%<4K0o@vu9-dazh{PVin#p!gPmKY|MB5-KjpU_ zF*g|(Kx+e6^#>i8hl~YDH=c=QbL(12iTal622R=qq16odf}>9HM~N~&w+WO`Oa`0< z&J>l1yCJrLaBQUV`3&aZ1u}~#u=v}~#6>@L{woAMC_bV{B73x5ROK`-@U$4lfB%oa zB3GjL7^yMfOLD0O=})kMh=&3q*fh8^*fO{)@Xy&Qb{*XH>>ap=*k9m&#J+@khMj}^ z0|zJW!F}QSp@(oD!u!L`;)CE8@JVo|@ab@8^7(KZc_Z9~d?DN=d@0;jd^OxPd@bB{ z{93r{Ia+|##s8p3`B2WwX6HY_i1myl!Zx)f#VO@ocgV`+`1Jh0(k| zO!Mcq4xZ?PKFmwg_#wpDIM&1#uxgB$;j9II1FL7V*(6pAe=e&7j-Z7tWQ$oI>yQ7% zNN+~!LSPrObU;0FrGrm1a`b0oSQ#s4Bfz1B6#-X`^hQvP0!1UBAFxfxQNt#Jrdj5v zlo;j!7YED0|E0NO+VjV>=kK5&h#W=e$Cu{2RH`NYQrZp~#n5meMgWyl)dFc}mk`4$ zP$#v}_qRC2u(8P9#O8r=Hfkb<6|yDp>wu#&$FSr}YIZK95ycWV3pFttlnYRwmrCgl zXO*)r+B5<+QO2&oXr2dNYuQccJNL84*-PvVc9{L0on+s#3mCV7d?cU9tNGRZX8tPw zhW~igeN4zXfiVKFj5n%K(l8sEG&?q-18MBN9#&Y8tW214m@u2a6@rm)R z8E^JC^UP9ntU1-3W3D#0nh%*TnQxef&A*!`&2P;MZtiXYZoS-wyH&U~yItw_JGUKf ze{kFD_NLnhZlAh+Z;P`P*+$tW+h*Htv2C%vZTryHYWvFegS+Y8(>=mH!QJjY(7nw4 z3inO!_qy+Lf7<;O_qW`Sxc|eWug7eUMvoO9FM1sFxagVdS>-w3bE)Ump8Gui?0M8H z%`3;N$g9QcQLmT1j(GjU+tWM9+u=RPdzkll?-}0p-Ywo&c|YO(g7<6QhrIvheZu=+ z-aq?f`V96N?o;D)zt7`7&-?86dDrKBkKi6LJyLsQ_bBX9-eXdaSv?l?xTeR(9(VV6 zu*b0;U-UTF<5ypA-w@wEzG=QWzD2&He5d-(@m=J*+V=+EO}_W~?(%)QC-3RgGqmUO zp4aqzq37p4zv=mlUxD99zlnYu{0{s3_z(5J(to}G9sc+EKjQz4|9<~>{Xg>mr~g_1 zp90K)o&ga72?2`()&x8qa5&I6Fg!3muzz4)U}@mkz{P>90&fW16!=i!p1_v_4+Op+ zcr5UA;P*i+$UCSsXl&5bpv6IJf;I=;AM{AjYe9#C{uXp1=$l~w;NijZgO>)c3%(_I zOYj@PheKG1cSuM`pOCbWypYn6u_04K=7cN?Ssiji$bpdeLym=f5ppi%*HDkpz|g6o zcZA*-`bZcL%L!W)wlnO_un)pM3HvfUCEOWa5WXe+f$-hoUq!HpsEEN4vm$;Mu_Iz% z#GfOMMtl}=CgR6P5!oZs8CeiHGIC;Mb!0>2vdDFjFGju|`CjDds6J6?Q8`gXQKO=k zM{SO}KkD(Q=c8VWIu!M{s1s5D>gCqUuUBNR#9r0CZt8VMuNQjl>-Ao*k9&O;?H?T; z9UomDy)k-s^o!B2M!ysNW%RevKlSFl1A9mIj_aM;dsy%By*KsV+WV#6@Ap0xW5z_p z42qc*b5qPKF{fkB^-1V6xldJ}`F$4m+0y6TKHtU0$EL;3h@BJr``GtlKaKq|_UE|X zaY=EGxCwE;i+et9f857$pT`^V_V|+c^7t9?bK)E0uZq7RepCD#@$bf;NiY&360#G@ z6Xqw}obYtQ$wa@zu*BhsD-*9vye;vb!~==vlcJKwCQVMdCF!oDdy^hYI*@cI>1fiY z$sx(n$%)BD$s>}-B`-)`l6+-H8gc>>b%tE)LTJJT~WG;?s~jLf?;U&=g|<(pNQH6p7j>&2{7S>I$`box3&oiWY==S=5T=ZDUd z&L6WqvLmt+vhCS}vP-kaWzWc-lii%XGW)jdo!NV{4`jcW{bi1k6POd1GcadF&h(rm zId|kdl=E87cLTf!^dB&NzV_zS~7 z9)4j&?1&K~nn&C-;?)tSM+S@>IC9O%KaTu*WLtS+`Ka>S%I__Ito+6DH_JaP|7ZEP zLX)QV9zjJj*o1Ec;h>QAE%k2*2x`_Z=1L8DVf4;)i< z#r@;n9(Qtl*!c4COUHjzkzY|>QB!ee#r+k}R_w3%u%fl%y9w?SA}3@|D48&J!t@FA zCtNjQ(}bN9UY_vggbyZsKH-}QzfSa=7&NiZ#LS7M6DLiqpLpZM2PW>F_};{`lWdcs zCpjifpR{_?wn!#l|eb@9?ryrgE)eK`s=!}#Z1v941Xqs`& zjNi@JJ>yR^j?DPyjPocb#a3lil~v8C zT2ysy)y}F{s*YBBS7%iZt*)wmZWfyrIqQa5pU%#l-8_5C?47gs&VFn5C$rDh^sgCN zb5G3&HUF&nxi+BouG&*``p>DIvu4iDIj_t)Fz4*t(z%E0?y38>-mFimudiQMzp?(| z`VZ^R%?qDrpEq^h>UqcJ{WQP#{9*Ig&wqXXNAv&P5Y{lLVM)XGhSwTe7x*rSSdh42 z_<|J+u3NBk!J!48F1XMb(U{eEMPp;*%ErA-X-#{Y4mbU{Fn;0mg?ktEU$kV=?-zaA zESlq+3!3LPZ)|?HxwZMs;vS2gi%S>Z+v3}Dcgr7JepnK};`tj1^ zOTSrWTjskgYFW{;Da+_SA4qS+)86* z(8_)*$FE$y^2U`9tbBgu8!P|5^4pbdtD;urt}0wLeAN}JrmU)7RljP{suioQUUlQD z+gIJU>akUSUG>B2;MFCouUx%(^^>drdZp);DOZlXa>bR;UU}%sFV^_3DO%ICX2+V- zYks`S`>OD(`d!rz`y)DW(T+TbcEZv(z0$GGw;|$=6I~DNx^meXp24r;xAIN=e!hnv z;$QHu`1kyxh!mM3M@$hfiM`@Y@s{{R{9F8Jn1+wh6MLmdBM!TzY-512#8_i&Fm5(( zGwwGYG4>d58Sfc?HGRwoGY-3@Vsnf+&75i8Za!GT*!ebGO~_{9Wag^G@ejfsy* zjIqaL#^lA6#4L6_7@R6(sX4u;6Awkwd3+mxo)Wb&OcH;r#QR5HB+o%U_`kIm0 zISw>S%qz?p=56L~^HlU&)WdevLtso;OjJyat_Md@>c zXM2y&{%pr_^SJG^?>{?p{3TF6czg$ApLw;Ov^car$XM&st#`FP+xl4RBdrg&?zB>X z-`l#obr{7zSpr!6$yJ}=e&&;kPe#Kn`6U07ie&f&FM~NnQzFRuZ%3Fy;$bmF%n@Z`xA?p9s+fz@(kM|X_KSgHqR11&M7|h= zk#Im96otk<)LI0KWPMly%V7i95S&m)<5V~fC-y09CQg^DaE@P#+m&0`cAU?4vWM9o zF;)y0SBS%6syPyOSnuN2mzj5DUV2<+SJ#pI-irFa><8lBm;H7*r?pbEw zmZeUNHr^Iv#38Xu6yRRsY4L=3*7&pWnmOEfoj2fQ_nw$!ykU+v-W2bMbkW}|7k@MM zi(<1v^y3S}Y%u_1I#(320L+qJxE1olJwh0Z#>qF4^~Jn6oE5WDoGxQ=Pc)BJ;iS5Z z)rr?}&b)(dWVf-~*)Fz{55`IJS@uWvHhYb|#s19R$C&sVJI0Q)Hg+Dj9lx*-aaR<} z!*~Sm&tt?JydTb@WqcSP&a1eC&%)gNCT8d7STH+?`;qrpZ}tIZqrb3TIKjrTqqz6@ zE6ZYEuq5^|=BR%%C&pbe&bImN8_ZZ|*)F$|BYTR^<3m^jk7sxBQOpzfKLgpnSPM_Xdh|65 z$35Iqp3bhr{o2jEgze^Y%nY2p$C@KBhfXlZnWM}s(}~-sd~*=im`vP84aN+cZRVOS z=2Cu2JjB1m?EMx0nx7RtaNG3_?y-V!i{&l+gpcSc{BgS#z`x~7`8LdFcj6vyGyfgm z!f(gye>Y#vujjYm7Ox3+c#C)o?(mlJ<$MKSiF>>oF#B!bH}acsmvAe;jc??4@vZzG z+}mx(`niKYgj>5^{1N^re+)NwFYp)n%lsw2m;aIP!`;K5_yPWB{tkZ_>&pZD4cy_q z$q(|k_w}@%Pw6xK-T2E7^m58uMqbvp{x$d9zorV(nwT z>{Z+Z@5fEopK#myJl69Uv8um>Tdm zD*F`oEf?7^_A9IBeb{^+$7b_LR?B;_IXs%p#r$7`yXplzfi>|YwvZ>YMZ7O-~4Mq+senW-|;c*abCk7By%oA4hDPSIA{uJOT3Za;3j~*vllI{~gz}jrjbw z+pVlDse^K*KAro3RqD%^qN8U1PiQ>P6X*X;*DBXZSbH2K*+)H)%-*G*kBR;?F{wK0L_n;0R?Z$l&`1?G6)0Oo_Rt3zn8yC_y$@2b( zt|#mVJg@(4_kZF^y14f3|BK=FRRCJAMGw(yV)yeNw9<1sX{c7-4oXU;{^RPpt~F}L z@YzgxwcBMR0x!q1YH>A|Eez$-?dUpEWIyka2(9GGP8g*RxoSN^sFQA1E-O{hyV6*g zt~`mx%H>Mm9+u^z@`8g)iL7>4_-^`@99g8N%ByQY)+(O!XTvIj^BClYD-z+}C*3-U z$yP35*bOpVAX8(dTPpGABnO*xZ;<%Gl5(&N_mysciRmxH8PdI4(#J}-0M;Iymk|wn zTw!E*rwrFg*Dg6cCEWsvft?R>WgskY!$3A1^z3&Ue6r!Flr|hKxMjEwr*pF5SSxKf z-jFsNf0i~JpGX^y6Vis`J88r53)yhMlm#{%IGe+UgU6E%2hS%P4qiw$9DFp{aPTo? z!@%f7O>&qHk!@)O^4F|u2Y&iIxs7r=B z0R;kedch@b;k)-?69Zx2Tmp=p1|NbGfKPSU!d>3y$kUZyhi={L&>^dPzMT8Y-ZMhF zY08C0{Nfd|U;0XSgmly33T8^H7KVF;GUg_&T7sliOA>68Dgkl-7r_U-2}S{iT?R%1 z?**{@$q4^9VC-e&S$dF8B$s@uhyN3Z20cN!hPm*k0?4-@2;l($OWyyM9}1ZSBrg^~ z@oKSt1{RU(q z%>kf#`YpQuB+cSMezxX$x%wx)V1sz^FYvAQ{Xg-?A)f^_b_lKjM0Npp9j9`VOu)q- zJHoQB{ZDoDpOn2j8Y+7)4U|r8Lb7P?ptKn-K>e!tGC=+N4nS%*K)n82kOW>d4|Iii z;1d4>pmFO8k0Aa8fXYpHDtoO9&{(nNPH%+!0j&OF^#y<6XpB%^O0)P-I2~a1^JIi+ z9OeUvhWd1d4kLc?7lpfc9zMyTd4zZr0<5`|=18)OwF8KT!lWb7kq+dO9xGfR9AT^N zJrQ;SNIn7eM*`wO`3Xm~FI_Dsq4xln61E|i)C%wJ_ zta5>E2v-5%OWu@+_!B?s)1()TODeB5J}Hg(Q@xQML{I%P6F~Jv-wO&qnAt>6ni@;V{5TgdYYh z23Tv(iwNHUXao@ddcYk3(w~6pg8B=Ei5JmWZA1QF0k;E4M*=G!)xl{oxeaaj%Q3(X zgrVcFKdZ3iw|M}c2e@BM{)yl7sAl- zms8Ne1jMRzb|uP8bxZ9)ZAA4Z0lQoBsV=GSBm=Cu#us5qqq-{wP`{=zK|G=WUjs%1 zXw4W47y-bzYF|SL9|@rTNp(L3Py?VbPk?fF0%|kLPe8g*|Be9AxFaB4NG|p7o`7M1 zk$`J4W`6~s%xpV=#-=6v8H9-+#Vs6-Q`D0LDz6pphcLzAU)-bdB*)9#!;%5feg`*+E62_3C@L_<6hx~Ko2cvyOL z^@%6pEZ<6({g>qF^loWLFHIx$vcfLqx6<4By704bm-D;Ut<<4QU0Hdp`e~25$Z_T4 zTDM)xMstDeQ-LU#6VL~c3K#&$1JL*)pfP3j9UAjrYp~`I^1}d_=VZOm+Dc;-`7Hfp zS-uC(rfGJ=UyHf!Ex-lLf6rqc#Q18v3*mR*V@{@dyzPC=iJQdapOH@fh1XqZo^2!=N;VDbcb0D!xDwh|X2e}G@F;Y#?s0Bbe81E22n z4q#m;9Oc~&coy(F;0aiDZGgW7G8O<(&+Gxfe!xmVy#~|`+XYyw0c}NjyVIv#7rKSL zj4qrk$w(K{<4wR5;P+ed*C5?hKI!)%zT{4y>?pVe>Nwr8*4zpZ9TFI*1SELwEr!Mhe+qco8q=C9u;f<3pv5(+ED2 z-40ukC)pm@qI?ZYCMO?-d(|;48)>+o62+6|9P0#x3dsWw*ly@kQ(; zZ-yOIJuGU-hG(g=;(@IT+3~E#J?a`*AYH}g;YRmrz7B6@Er12+HPY&<4NcaB+tuq} zKXn?`Kpd7b3(58eHc>ai{)eo8Zh@WDMt&>oVs4XmLwDdtbvPTr?_xh`Yofbhi3Qsr zye0Nm*fworOW88q58ua@Sk^+Y)_QjO^~)l zufy8w4cMk#fc?>%u+=&U%dfX!aRgf=Sm~|d?_#`P%@4uK>pgi7{Q>_AZlXWrNBLj* zN4Syx7?ymM@>cp2yjM6CckgHTKiEsSnf^@POrL<=*yrpEev;h_%danRL#^zu&X5Hb z*Ky+!>}kK}Kky%MXZ;iZ8F$tf_^-STw#H0wA%r1J;U;XtU3dsj;U&C<5B62Q zu-Ebv{vtrzaD|9a*yM(b2v{gbiC!XF^cFFqkBAjlm?aw5UEc%KRkt)(eKeGN4 zc98)q-b|4toFW^Re*<9qmj`P`vSSE+WF;bA-<7n6! zj)kq_IM~HhhzYQOoP_<}6uh}QRZJ7prFByk?3`wa*`h|&!ftY|s1x;Ko|rEh!~)SM zn#4k}NHmMZqD3qbOT{v=T&%#(eWh3>R*Nge8gZ3aE3Ovn#5LktypwjlxIwHJH{xB` zo5aoH7O_#>3d^q`*a(K;nMWAx;UGwo{yA*NJ~)CHzi&FMbd|iu2+p@w50vToAvCHgOSl zO#i|&j2Bo8yA{@}z1dytPFQz7j5j$SggxaZ*idn{jcsLjvxnFgSXCLYX*vK4D>qnL zxf>par{QII!ydke;R{=EKf@n(@zUnX2r)v9FeBWEfISsiRYe=UjTobk5euvNcq73` zG?HMI)fZM+sj$uJ2V1QEu*%AST~;P6wVbfb%7MLBF6^@g!WL{0Y{rJb8mtiZV#P)Y zdl6P*Wv~((25YhruxTrYecNbQpN)lu+c;ReRlxdeBCO0N!}6>W7Gl$2^)>_6aaFJr zn+1!w8d%89f%RA&tl#Fr60QMOYK^dbTL??HW>~Yez^-j6EZLUB@{H`xR>SUW4eZ#~ z!s=`t?C7qAt=;voJ6jL?x(%?myBQW~8(|lB8*J+~!5;2T*wk%?&D<8)#chR^+&0+6 z-3L3j?XZ#C0o%FR>p*G!I@lay z7MO)*5#F>Y!Mmwt=1_B(IUJUHJI)+$R={?4qB+T&Y)&yN@eb=W zb2{Egm}yp-)#fZ%H6Me`^DVFv{RkGKe}~2B->}2_l(m|(%^I^7Z@kVm>&$v{o;lxa zFc+AOW|O(lTx2$zi(z%U#9WGJWy{SK=1OxF-i^J|Tw`8kt~IYV*O}Lt*P7Rv*PAz( z>&+X@4dzYe&E_rUM)Ov@4RO1<$-Kk7)4a>vZ2r#NV&09nYVWZX&T6h*TI;@~u|A`; zuvGa)+1j^j-=Y01^6eSLB`RJh%~Zc}6J zeD}iA>e)+LYQ2kR*Ei2zvS3a_?Q*Z;nx>ZO*|TdKTWlq>t3eH~xv9FvRw{M1l}e;y zU8Gem)}o8GsA8>hah6wUJ3F04Ygbh0UaGYz)!N8fD3YbIXOv~xhDu4^Lpzis7WNE> z!)s_eS992`>Spg@9W=J#E_GV0>!5gm`*1C7xRPcY-csLCQ|mpVBd6k?nQbeVwPGu8 zFR48vv&bxmOxtLcG}rS=|U>XtOlt!`ejprLw6i~AT|G+8^Ph2CQpH&idKQ<{#`o{PfH zY}N1% z(pv8+9f_(s(UYdgBpsD?Z+B$s+ASMktCVcLD%(4it=gqvg=H#ZQI7UAw4bScC;1qc zx_Js^9OKd&r#fF@uA(n2(!S8LUpYw=M9rS8Ho@A&TTgj*+YDv@F-QQnK}0+1~49$H>Z%vyD9~L+TD+O<7qPssgg?+RwG< z)Y6)jp@wpn-O8utimVJJIZI8C;HSnyR)(C->{)iTXk}%{IzqY?S7RqDLrtey8M5{5 zSq?4Nq2)NVehy1NP4CcpIka95t%pPF<&d*0_-TFY7Jn_@q4jfUz3dj9rMFdHOODpp zuKC-wJiC@-*L)n7ep;Sg>#w#j_AE8)+p{utIWu)R)tn2wE~nFK2P<9ck*W1^T6nEb zrq(A@>yxR=lc~$&)aB09dS+U2U9L>6cc#`mOY4`Vyf4P z%F_B|X?>g)e=R>t>zAeV(sOB+)6&~2uO&z8>(u<6TAowOacVwUmVR2E(`pADFU@r; zY*<)VZ5GwGRJ#qWUa+8A4v@^;Eceodi|a8@n3YH}N|9VqhmbiOyFa&))e9F^V;i(! zR!y}SwM2}@t!F*98TGV#6l3d+adk~@ zE*09XrnaG_+Pzj6c_k7IN^FruuBRf;mql)nMOJ)@ibdlRvAo{BNtN4Zu4~c~9Bzwc z;agDnCA#nnQSjLSMBSQ5Ur*wz3PT}FNq^UfO4cl7q^FKp6 zB)YIN;(@}-fYM(rU5*Sj-8t+79QhXH)qjo`~+0AF@X__CYAm)#P+?3VClw}dad zzr&uRhLycY4F`LX>X!B*%`Zpu%hCLDG`}3pFGuss$@RrC1#>%Aczl_zwmEWPZF7B7 z4INIf>8p_&iQ>YF^x4&mYeTwEqY^uEltzx6Y&l>MS0&BKRs+SZ_G%7$hCQHe1vUqb zGnJR#P(Qaiyc5bbC8Bc*_9E3#OlIn-lduNMc%Y8E(nNN~&2&xk(`gO0ix*1i*z%1+;Y8z_jw9K>=2qM({+Llhpgf2*;o~d!o_4wMI675RWE;`DU zZf4_>1+!|KF)SLD0;)A;Do>)qJE2@tLOZ9lO9;~VMN4WIx70T&&i)!%yJ$&ugJkSC zy9pE7OzBEQhzsI!=#K1xin^1K$j-RVEu+#p7z8MUYwPt?sP>YCEw05RBGqgUsd}ni zJ{yzHOyx03~WbAd8$I%aaKU0J4ict_O4!xE?mEO{>)1P zGEZSh|lb5wtFO`%RCJF3hR>5|8#(<#X=X)Z-`!Mapp zmY5?gB|}F&yXvu|5p&z(*-g#0QbN2-hK{5z zbr>isy1kKPMn8q?5E9~oaOpPz3hml}I;%{OymVF<2A85csH0ucCM*vUjNSfWx8o*T6g7Az}fR5pPsh{nF}&+Q!+n-nGl?(fJ!&>Z==6KDD27 zIPAq1;&Y^bjSQ_Py4~pdY zG}qF7o8shaMKHOwGsbCSas7h&hU#XYg*dVzMN0KpykvG=OI>w~uZ2~aJRxu?h@gCR zb92+OB@3l~8M!%LGA`$HjT+!7Q8i7=>Qc2( zXWG?5o>QhunNy|~@|-f2?$jF!r`}LFv7xAGoQ326d?~}JHxy32p>Ph!anq>_U8t~G zrA6F1K()JbfLg?z14`T*=D5%ekh@~gsXBIIJJQ_ZlAf!ybml58ow-`eT(#YB=BnP} z%+>jGHNRZBi^m0s>RtFknbIe>%)Oxn_iQz_ZqjwHnXi1QZL!w2RQu}g&*4<}2M%Yk z=BloZ5Z782=XlPkZ)m8knbovh$thHu6=$K=OI;v2oVpd9dhj^ai5+-NhZB2CbA9z( z-4UF)Se9|!icWP~>u~CAnNwYGA+F1b%OgqO+@k!3IZ7Yg6sZ#G`Yh7zQ>5!r-3p^b zY8&a)W5B7lgW#`gL|sZboY}hM>XhSfIyFD1+Lk)Ab-OsVUh32YI$bZ>x+c~22KZU| zw0`Oo1$wppbgEOS!>Mis98Ptrb~x?2UDYYw;Z&zWq-%ZEZ35z2AG_8^o#H{S`%|{1 zza?MSLzbq`()@CCJ*v|%^wIjMQ#|z1<mdQNfLwLEodcQ|u2ojMJJ zzeR7AN9(I@L!iG-SGNTyr`AWEdJ)(9tJAr|nQ6s!`P3;Ke02X)r)ac?uGef$uQuJ# zPq$N!mXo9T=*_t^OSh{!<$_-8>(F>Tt2@>03+lzZg z0DoP7IaaweA9d@4`qOcB+kx_H{_2(n>6X5_KdW03(CN6keL!5dtGc~Fed%^mw+yH+ zJ&x3E2Kud)uFI!xKhPeUueybTe5?OzytD284C$DEDeW@Lv^HuK*&SuFSHjN;sBY=HYYD4fK#MLG{F&_`xzmYlk9H(bav zrMVu#Wg!Esl#UZpJ4(uyR1p?cC-r4gkd>r;iEP)!N_6R|?YykC4lz*{s*5jq`pKGc zVHE0uaIJ_SS3EkC%pK;6)a+$KuxkQ^CAO!;cGO9D$y{|;G!sDT-8^#qDF`$Qw8m2$izxHE=R>ni{UFt+DBDLd$f~C zRW}{27AVP7&#(%milA^El)YRiRhny2RC`{ESM90r#6T8P)tYN|rF=Vq(m)DyX(+|3 zLk-DG6+j}}vn#?bw`5V0rUTijT6%X)?4XlURJC;+fmLzU$aXD9NJl=`ULD|qu2$C~ zp)M#_4iPT+j-XT`wj++K0P6~{Q#q7;^=QpymZU|}u9sf;atmO0XzL3HtTQOxfrqlv z*EhMD`aw{pJ;zf%n48_SV3wzR21g;q(_Z8)dE1NAs~cK0PHye&nfgIlrhdSbX)pAY z&j(#{XZ5ISYMNg?t7$0~{dS&mOJUE{5ArfIihOV_Jgc^$X;}x6eoB_9pN?hfr)8P? zDOsl4huJeT2lyxj2gr+K9m$aq-}YjuXnWaQNsC+~4%bMrYb4t>QYa(7?WJ{1%aW0R zPUUt@FLQ}xxXQ~=n)ticg$u32RRf1Apen6H6}^Y`ltE_lZGVa?qh7KqR8Urf4Eno1 z^OcyM9gl4lv3%mJg7PV|40_VjV1<-*AcNlOk+BTBsV5lHm56rbBue+GZ1kZFm$2O> zoa++K)M1AUJ%ufL3S0CP&h%4VLh_g5T@d!Jh}^D-Ojm@I*%i@=hm_uxLh+#SQi|Iy z?aQq);&S|y+KV*4NaNL$72q?C@nee_z8Qi~yWpKkQ-8;9x&Dsb4CYZ-SsKF{@w5cL zWKld0ZsW+pO1PuOl;amT#*G<;Fn&IW+;JmgV8Kq`y)(g&)VYhQvj?yImFK7g;IzJvD+4&%$FM`2a?39Jl1gPr?H zSX`cgo%*-1Q2r6$OZ^pJWKrLK_2ItUAMZJY$Zx0i;xTxSA)Y7lWS)xm6zuqRY8KDN z`v`e>2VpS2-%^D44(Pk8BX~L9FBprr3M%kE!DM`&Wg6ZdsKT2Ai^|_Af2zE)yu5ty z$U`Idl@ErWJ~D><^1&mPj+i`R#PD;&KN^1h@P=W}4BI+v*s%1W$A<17I(g`bq4{O+ zl)W-EAAV(7LFwMoM~CL)oA=435hXX5G#8&P{;0UFxU#ssxV-4+qBBLG7Bv=C!Tq$z zqws9uhQif_jRkE5-xM~&Ut2JzuyM%2A&(B(HY9CGzz}orw80|=eLU#kkZpsq2ZasU zmVY4s@%)PXyn#;*d~k?4Fl%7q5SV!8J(ss7FFDUEcX{p%d?$azfR6_pgxfM;R!&>a ziJX?4%AE4-gW1mw*_IuZ?d4qPoRw3abuQ~fPC5L>tcom=c`9>sW|rd>$AgY+NBj^o zV|&KN(uj=c3}(O0z7)TIVD>-Ve@p)j{a5$*N&mStB7H;p^3sTYpZ0sFUtPb-(ulPE zY0s2Kz%NNlDUC=ykorvOtkkh7Z7F9`)~BpYX-El5vGqOQcYR+9H}nljzL0!#a${0k z(wUToq{^fM(mHW(;-hdUCzjzm)cZ$_NEn-tJz_-s2l4yjr^SzmI}&$b#E7`&xSAo` z@VgX;QA68e*TgQ2ozgGg-X|*N^_b^kcEyy$q~O;s9!F?b@5=i-j`DznI0LHQy%en#8$W| z5n(yy;XA@_3y%r+%_$FiFl<9uP?#4*GcY#LFZ6uC;{lrjVgo!v&-*{;|DgXk{{p|Wenw4Dp z4Dr3-d$Vt&Z_?!C`@hxb_TY_AhuZ+k8Gn&IW+dCqgI z=UUHn&mfOI9-BQ%JW||0!Y{!zxR0|Px4mv_woP`s(+z{$+zY$iD%eTyfL(SzEXZTT z2|X|2%bOVC0&fd=A!LeN*vAhOQNZ}Z);~waBE$fVSHWFn=hY@g{^g-cX^G2#qD5(XU|P_o9l)<(`BA&@YG4_d~D4mwgA} z+rIR@&};A&;eq&$uth3TO{& z>^#^~GF2g|A962lCGB1y8fed{l}v|qog#3?~!!o^$ z1;8qOJPU@cIDRDxw&H8>&IR==6RXEkyusxwdk~eOK$mR}N@61ZGXQfhBiWB9hWKu^vF2Zr~_@Cp*F z=&@CR4LyF-Ow+__84TYuCJOr1Gx|PM0R|w(4SlJc@&l+}dtoFkF*i~Q-Xgj}m#zpa zZHz1(=t_`UmPUE-m1N{CYXC&(5)g)H<}p#`QHHNx5k*O*g3|MfO3U(LhPhGPEu|Td zRxYMWd2U#_%kd6fJVuA)R{9dSImFLWW;JmHCtenfk$JKmCrVG0o&e?ptqIXVlhQTJ zDE$F%?!2OODTTHGP~%-7q)X5xhc>?hhDv^*yONhW7%!muWPGO7q8V{~8@3%o@_d;X zf*%f0(n{J;a=?(YU1f>ebuH(MvhHM+9KeU&_DRmur7X-QS@hN_Nhb`vk{wKBZOfwX z>rpLlQjm4?C9*bYSwk)(3+*$&S8|>zIc;S;2VYWa$B?XSCUQ>aoYt}ufdS;u`>S2+ z5WfT{>(FY=3cSIXg?*cD&Ehl2TO)Z-k&6NMdG7Gc1zs1;)_2LDo4(P3Z!s40@gMLApwb@b2M z5TpJ%wmXSM=m7=SQXYJ@9=aEOfOxaypfDt{k%@w;f+}E%Vupf(v5KmbtXs9L(cQ{I z>lfT9WnCdT%|U#f;)1WKtI}b$vVNrpw)v`YgtEtA&@5P88Y-ZNRij{)&z?sbog}ImbJWceF0UfE&g{eyigpMF|d8$v29d z5fgYnwA)(FM{jYgl@f=O7Sy_qMlFvpke9!k3CA?YG$k$nK41Wj@=IiS>sl`DzLxWM zASZeZSPqr4k`b@avIs-6uw%(D$}iHg8i66uBS@D^)v}MSWt8l4wVZEfV&HcfkPFtO zBy-3!j1O#OJcC+D;lz;bL$(96QfoqVNE-MZGX}npF(+e=(q-Ur;Esde&J3-y)&{Gm zxzYFrF@bkPyRGGc>%bpv3%12li*&?kp0h9{Zw3?gAMDtN5XHdJ3hXBpm5Zz(UCaBs zujPT5y9S0x&V|Hj@P5SAZWNtNmo1EmymNWyv@G<(fq=Z@on)z64%W4dl3lKr^WFxx z2knrHVhoWop?w}^EjwCR+!Fj+0DH)OuNqHNYkymHO=2+>Hw;DL?RP!eGzhw19 zEq@Ju0&nbgTg$m#2TF$Kj zw}5oWCDz0-{}fj6HpbJ@!Wt*?kK`W##@aIw9VI0*W5Ch$t?65}F6bY*Az1NVPhU^z z60DM^>XIK2hr63AX?4p9kP>ksgBG(82ZMGDg<_b?fb;{dGVnD9f%jm$mw}q= z7bIn5NEsL%{e+f57?OdSOZz768!ZDh=MG3~RaB}Rv|q=2wi^)>=r4!5Utw%VnXnyA z+bQMsCwX}<;3w43SJE~~Tsm+Vw|Nf&Lth7>`XwAZ+g4`Swx-QXn}-;3+SW@Dw)JWF zS`$$Mtp2i5EJRG;`vR6GUG{$cuv*y4CI2+3haK@e#fK9H-1^}xYfDb0vx17_EMW_? zg~>SYR|yJ$P0yK1x*MH}H=1#>{5E{)qzb>^l!tGP1SlTa`1KFBBW@TE5YU$-=RU`{ z+dc)rr2r>#chIPGdtB>7bVzdkzznx7Zd+38ERCEefVrOjl}=8qoB-k0;?|<_Dy`HW zz&I}3$3U$dG~VvMg>nke*4L++QokgrAI4=`GZg!#9fuD-wFoey2Qb zM9RUGgG!t1bBqH-+JKbjy3ytT=p-W46l7OIa!}c`s=on!4AZ??PioMpNAw*00(lv3I^wMn-IsV* zNe#kD11DPFVf97AkSy%^9QlrXB`FDWPv00&rKz|h3UTxx__C+=r5pf<59O6W^BVPx zSoBkxV+~r9+vm0}w-gzNu&yjjDv&ybN}bRqSZR1tT02fS2RjD?qidTJ9i(M!Vg}Dj z!iN)-E*WcqTMK@%iL^7bwBh*r`@W7CzImk1*fu=n=u$uU-Vv9;@M~zOpR5CjA6C5Z zKV7~wi>I@+32VYm<8agzRH%6$PK1dTTb<<_uw?Bn+ zv=}ndjLfqJAWS=Z3xkk-Bc$6CfmGVrvHxc=_?Ob{ji3OupN$VuUI5xCdZHXJzjWVQ z6Lv9?lmeGz(H#WOd-x91Mm)YvpV$mn z*GGIS;F&G`G6h`%o}M(W{BdN}rg3r1j~ zkHpd4xNvN9Y=btm{*u0ggBL%G8S%3cP9&Vr^2Y)<7W~F0eBi1<`0LOBb4T}W5g&yd zQP{%}XAh}CI{0{Ct$Rn}+@%H)jtF30&>9d9xL#dOQNSz!j`#-+M1|96^ov9^| zxR&JMw;!Q{eUp6?Fx2-g9O;1BJvAzJa_nTSgBNhvho*YPmMKiXpRppI$GUbtHcRJK zz4I)?jW50&V~vy5tPZonV0`~g@6*yYV1?Y5vab)#Jq*7+Nt&T=raTI6kM=n!u@^|U z{y+5p0eF<44@QBe75!WLw*vE$mP+}daatBLQ|6`2>$9`ZPQ<}8Ek=ToGBIUhpH96e zxPofVjJ!zJiAT{u~j0SaR?P=JH59W2487_QI;A3e!g&BG)Ould(ThZYtR>CIAsl7(%|1xgL$X}Kwpew z;Lb@6CZ=CprYYr^qZ6XhiV;U8Jz%`5HR-ZG z<2#x>X_%Dx1#wH;f_S#(Ll`O#R*$6k=qiL&9P>_6P*RYLb68bKkUJRCU6vjDl6NIn z6~i}=yK7atN07kqeLs?peres5Gn};~w;0#mfOU^x?FLXTOQwjy{3>qHb4-{1(kCUWStbdsIRcjFjp_rdBKexoSAPkBajCF#z8pPXW$aD8bu>lw%3cK$=G1&7Y zp!XqPtCWROCLGsX2t%?^hY5!h4kJvmP=^Ew`w(xJ<&F_5*6Z@PVZQA2G$jVTCqk9z zQ{s{GDdJX%2t!hmnTTjfP$zhbe54eLw_ruN z5HUc;d14JPfY>ucD*UX77FU05Q{DdJXzDz_`gwx(r#uG62 zMV3UC$T&|pi%|rK%+k3!=E75us^-GW+{GlI!&>=#hvSD%6@i2}klVZsWZ|4}~65 z8pMuZJP!NLxbvYj2SKN}lM+PS$xxbq+Dk51#V>SEuHW8g04N;MaCwT%ec!bH%P-qfcVzLHAqaE$RF%muyC z9>Bc}oQOXde-IdJ3=s|zf~GMeXj<=ay~iPjoI$8RfCw7VyMWRqV6@6R5Zr)>tAI1` z#o0pr)a8;LO%P_J@K-`m7UX?VYBQSg@JAUBQDcX2B0euZ4;X9g5DwA;4>2QrT?mY# z@CR)I_ev1q3xhk29KH5poy58bU39&4Sr-G>Lay4qJx|=?4j@j$k~AX>Nt_04{em}2 zc@)QfEF5O0GR^~03W6|w218Et!N7P{(0xk;Vnzz|g-a5il`_ZSy5naBz&!(;h#MR? z7?_iY6W!BFlK{-|0UyvmaL_hjp9B%G4t|LeLdssC2SqbsG%$4F+MR>X&CnS=o!f7~BO zXGha+78L#%r3BH5no7=69y_FrtGktvjaILdG9HmKRwF)9=Ozrv2teDH1nSktUjPFL z%yN~%)=C*`yRSXJ!&t4*N0H-UDJ2B)XLNqTK#JevSmSm??m!qN@!O^#lFqM)N3KKs zX6b`g=A^NU5sACxZ-JrFqE0%OjN3@eF@EFVQoe_XTg+x~Lr=vDO1KAs6EW*zAR{sc zaSMk~ByLFkLLz1F5Jw%rSGtuT4)9y6;!)`JG=KUn zM4Y5ZUHNLM>p5LRU3M+u0;Bl=T%x~Q>WQ__A8ie{#Qc}Tbr4a@k{gRmotqHAB(n6{2!$4J`rF$R_2&K}K*0OX_&xp+Sn6eJNU+}S}1Y104JhgUW*hy3inKyY0z~kJ;0-#j)Cx0+z?ZqLoA_y% zQCw_lL!onMOz=c0>w4l7@gVs4K!YNQyH4UTO9ZEDt`ZY+5<9n(OoW^aj*{}BQ3%ew zAxDC}g1tJ)r=A<4dkdcL%2CqIvyl+AL(n@?<~34g6yh&wPJ|%|&DfRhf=eZ)_$=D> zV(%+!AO!mpf}r*7>39YZv^>;x=O%lvaY5^Ih2FtlX1?`qL0zamb2aG{jFmSJIU*2zfoogh#W7sz2^^ColkyS(-}q z7n0T1-d@VCs+;!mnv9(d+6Z~Cl=4v0K&#~mL-Mki2sj@^eOblh5kKV>-yRP_{G))6 zWSo1M$N>mANO>h-Ch|PP2X;Tpdmd%N^C(=RT}3*Co&x=T1;DKYPJ|u_Jp#;b&2xp) z#1r-`csm9Ez$2$8S{5KY*TZ#{-iSL`n%6JWLp;&n2tct+YJm3lEYKWa1A#iJ04806 zl;nRL;b;lERy=WH@bvXkD==hx;10v1&A+|YJkBD17Ou?i@hK=2bm%E~rCbjieoI%c zWaQi_b!{QdLa;7*+^Kbym;lU8)B+ysq%83F{LZz<1lX+hsR207BN+!+)YG;wuS6Vz-1<(k1l+S8Ha`+P=%gLA<@Y^0< z>n?mhtlm!$U`l)vwN6G>;WKJY{EoPim&}}+J9#Y$=aPuTL%>m#T*PbINqABq9m%QU z0_I(SNh$BAKt7W3HBgS~uZKnXm!!W$i2f%C*1yQx^!uBMnSf=&#(XX*RP(4llXeBL zA*Vs*{4&v@6^MB!T}v-s?{-e#R&aP0IA`%r{Mo@N>`dtdoPNUv=op}Kij7`?b*hvT z2GF_Ua*a00CSLfCRa?T*s70aFWUAC4 z$Lw6xB%tTxUe_k`d$)0FAeV8_;j$8dNy&-H&;auLY8_OLr~&ulZj)b^Ne7@E2^eL# zq`0f)XVj8J4NLG~Plu4-Fi$0+KqDm-;GHPnLO7D39}~a}x&T9D41IV!={T%HzZbh% z)E@t?Mvi}%UZVE+S5f9wjTHYX-h;eg@sG29Ub_yvj(1_lS|{u;i{IakzY}-i!W|oV z{T6(`UcG-%tqI;%{Kc^k@_K+deiGj&@y=TvOSBE~i+|TP;xn`XF8)2f7N5n1dpYJP zH69Qhuqc+@0}-!9`Br|<2BIyIb`ydXzugS-Y*A@3N`VNGxk}Hc10YX8HJai6+Oss$q64zcS(1J(hCWZ@WdUzjUFbYvFLw1cMD@5_w;c3 zfL|IC7ht`BNeO>R_zNI@9YW=Zibh0g9rVICv@EuQUlN`%RzSb=i{#;#pg^lq5Cw1i z>a(K{F&~1@@9}$95w3(o`0k&72?BgEFQa#!;W=I6`&0OS5`9Ls)9(-9`+wlw|NTy^ zU*Duj#~K?^!!Xm*dxl#2Qk1@cUBFATnEkjP7aQkgsXRt^%qBb!F4zw8HgZ)d^Y{8$ z^L9*$Mv5t6x%|GB)Ry?~08<)p$8cB|U{d^T@wegIX|*P!NT|(){WJ9H2SxI z{TBAbZ~b|7xCeA;9>KokAYDQ~$EXt7@L3WWeGD~SsX2ld-QUjXBYkup`e_edey9}p zaU3ixj1@Jj4%rfr$hf!Z1z5dGIbk5mk^h3-&PDvir6D?>+d?vSJE!7>GT{9N{@#Fh z`tH{i*GmWRjj|-pv42U6n2WX*77^VCD-7du6K0SqSQXIbfVBW7#kI$^1LC*F35Hs< zh`DH^qHcpt#OXp5jNy{x)3At$3PA~zf2*lmUX#m+8{$b?&+@WORC_G?MaGDu3->ot z?Xl0rLcV0b-Pa&$mk~F_)4%XiYe!4v1Hg9x@1eDCm59@RS}1NAiEn4E#mhe2j|;!m zaZ1+Wdy$H%R;@D)_|tTE1Ijrd!_LC9*a#nJm(YIo3f8aMBY57P=m)Xl5vD<@MSWB2$4q74M=x%rKGS3aKsPb*U>@Tf}o1ccOR0S|0Hr z?41YkPBm8Z8uufG@D6bSRt1<8y)_!MQUpm9m8%2{pCaH9MqEHId;_f!WBigL#_%af zi-b5kc}UlB3YN7SBFb>5xTBmf!8>GH@(`&uf>3Q3yV~F4o$A7O?Z^23y!LtiooS8( z@*b`y#CPre`1}U0`_=ClDO$QHzC>69x>aehgZ{Hm4|e1n|}3ckiESZ4iOuEO}Q!gEWBW(%hw8<=ph$2rW* zX^7HA0dkj$nP8wn`VcgH$d0q)_y!u-5y0L?o8HDJ4x#;3xFqRiMl*4MFX|fV2|#Gq z?Kz^#(oMi=<9C?|f8?e3p0DB|2+@GK3Fq7-;4?}f_l!xy{I96L58rX&e4JqI4D%zN zlnuyP^D}G{VWAMEMqXzEFsK(``G83gpGJHNO8jy!|!Tq>UGKcVCj}c>+tC+IYI`^aX`vY?PtO^|h zbO@RMf)2<(<@n(WQX!&|@2KNxjp}2DX*jtAl2FJg$mA4A_%7@v4Q6g3hctiik5nQs ze|!*L7i4f6m?WuZ`MRWMaQBnEu5`krMau&xBoG9&OORzeomHKyr7r?PmtWTf^aSdf z<#qL`HbWFv^p0yTMmAty=&Ba=5Kdhp4yW-t3-H;GjUcF#J%BmuK!C%YDwJlj(E#*2 zD)e$dR|TMLDinSLW+4A8r{<0@tSW2r@e+O1iJEW)O8t~m71|=`dbGZ8dG3+*NTUzf zQc)|DG5ZBZ96_k(-wl-toFT>NT1G1Vph`vWIqFKqovpmCWU5R03qJd2dV)}0AE0#~ z_*;kkL&h&Z4?@Y-zJUCHmK zXbFvVqG%I7LoeXk!+%QzRKk;qiE8?-pF>vwD&yJ4c;UO>W+f=KK-jFpYUO=|*3fQJ zvRTP$r810XLom=tpL_65P|}o_L(*teFB7$4lh6~B^y1~?fswJhacw~VY`{BV0Uz*< zG%I6`;sP`lP#MqN#tSh2j1U7T>Sd`o%PdvA@SU&{6rVsGN6OzgeaLF{JPoD0e{ALGR|cTv5#A_WB)V=^v!3634XuSZatJPJ`#)IN^+ zo9+|e1~GpVufntsmoXt{TA~9I5R@~aa;QH-MiE92jiBHt3hG&*@7`1;d$atMS|i0o z@-+!6{e8H1B`%_jYD~uE2~Z9u;(j3=mL>J3p&VU)`QD7r40XtmHVspxQ}`6AiPmWB zNya3zF^MtbCiWl7H&~hS6s}jLQwtWGRDdgV@RUGeSp%?=6q0}<;dHEffErTt>=XwskA`B|1zVa;SV*$Jyf;_>qwEbKS#d{-WzD+?ExIa=pPx}E|QwilW|TW((r&a85zihG%oD6G<|Ahq{-<@6CbQNY}M(om`qOpht+TG zxwx#m+PSXUx4Ub4x4WUiy?e~&_1eayQ#%H#JBzfexX;_L)xN97Zg1G(tf+86nmZRy z<5~Cb;PfuytHqh*aJf)fn%)HD1(EtBa2Pe&Q8}w>-|hA8ZtvLXJM6|;t{%JHeb~1% z#yQf=>RX1L&fyliS^2Tu?Y1|KI?+0gowqK_-@0X>LlMNuPV_QSl1#Iu!QU)&bFPG@ zo1C9R-Sex`b84KX=9HYelFpiCDSe~S5TBa0(JQA~b4<<`19Xoxe;(bNBS>mRYaWFJ zh}H~ny1PNV0euyVQ!qtOrGabcE8ay()JNUFUb(lncJIoeAy;FgYe+if8E;qq-nP>_ zQ|Dw!4vI#^s90o35>gyfoJPG&y?z$17?%F4rRZ4Kz<~1ovyp;gP8;Vx#to!P*u4KA z>VhN?sBtekwLd1R@c@d$b1GkQ?_2&kCR!=Yk!4TnNf z(6^n7iKLUzc7b7BE1=Msyl(|`0Ch61vt#}84~>nN39r?2&&~0JJ%BIU0mjATW@`3k)NP!LlUr0y+$;CEzXMmg6}jK7<9VTu6Lo28;paMZu7z z((Y$ZfIB4ZqBff4nI?DfU%a*?F}mzxQY0=z)3bzqm(0~Wo%Q!J>m{)l?Q+-Gx!Db~ z3k$ms68*SWD&_p{;r!lQOBfMtz;Pj`X#VH2l46%rOtL9y)!e`}SAX-qqhDN)ZvQp2 zD&J5p=RyNat00ZI2ee`IL7R_r+I9j{CNM<^Oh*0AIp%^-C4CVzoHL zJR&AKQabgX$rm5*GrhN9`Gf6(3-%N#-(njrJI_Dh`UCN@6SxyW33>;(Qz|4UjXfE5 zLsI9hKbLjd{kQ&9iqwLZ2lEFu7qCqW7O5v^?S?|-1bD&k<{a86I3#oj;S7QLwL~J- z1P+O^t-J?17gzE6GyQf8uNuQoC54QE)AePxcR<8`L6CR6<>ZCcB~q0j1AQICNs|_8 zYB$>gRFNEtnn(`GMmmj}-a$+A!u2Vc99CFrWN-+(jg__Ubh~%9cZ|E;;~jPf9{%ib z3Tq8o(>cu&)S zK1q06g!U0o(mtXrv=8(%LG5x0th*e<%W;qiS;Ks;GRaFU(q;I6g*hpCyu)|pGTk8U zT%VHIz1r2da053(&($F+Z|uB3CPjbnQAsTWU7%J#gDnd!JNSm5yLOpcCdvv+LbQw| zOhC7BtAn7$A-xZs9FPgp!Gbr#sx%gHX)Gj*U3g_KH)K7WFS>xICNCAxNncw=Sr$u7 z3~1{y3-O}L8WwE6dQmsGvnh~af|o}GWzh#~$8p3%FcDOmhe zYUch{Ij9Sz%wVTEJLo+oNbV)v`hG=AVPQ)}VMV4C$qaYjaKqio|3*rg6%j^@#fU4i zVz7>l)eThU6sPu0JU#i^WPeIY&YsE=Hdb6!Rjk}j=k0Lo!N%vEptnN$$&>_dLwJ;{ z|Jk*-wr;ZPf(slC4UP-oSnOzR8TY_~zoyRa!0aU)Swni|)I(y8n0TbhQa?_+7Ms%j@;X@%a*2QLg{Sw>h51AcouZI;%g- z5)7|6-F#Z@@{G6q<4Ik^R)=qQhtKY;t#ed-^&*=OXL}DjFMQj|>|2|fMw}B34txE` zkG!^pdEyhAL2D3EHEh_6R@VuRmh* zKa$30XBTcGYWyW+%xbFlAi#_ggydJ^pU8k^%S@8FiKPlkLDSe zcd7-B50R{F;^1Ki9xZ(MK+O3&q?m<|96p~zie5Oq<9yK0dCzITE=0z|q2cz7C>ykA z5@oV21T@sPAW8)^XvqkRNI=7F3jxIptV+eK+{tZ=aLXdRjgQ&5E%B2;Q>82X76hKM zy|mH(8GDwu`sO9A&XcG{ix&0*V!!xJLfhf(j^RH5G%f8btfT ztp))d1|<}6B&*>RR@2Y28J2Ww&}v{oJ7L^|p0?W$`|X5K`#_3Y_>d-U`Wv(m0un&+ zTtSD3=L!j+`B^||erAEyg*c2J*`6Z&6gX$UdGyk$=tQkHA!_g8M`5lPn))&_`U=@^ z7AW2gQxWU*r+BOucfs?3Q-i2Z|*O9S@b?yl#LeEqD3@IrpQ5u4PL6c(xS`$*^|eHViL7-V$7DSpZwXeoiRyT zZDPzWWCo6XKh+!)V^00P@-^kEpQT!2V=bw)3J7dGlAl1jDHLncUthm$e|)m6O^V-l z>FX?-{bC{4mze0wT~I2OkI+tjCvWGsLfRP)73~yIYNseG+G&8rj8%jHR9MX67=-K# zC|S$`gOGgzB`a7!hj|YOD9Mq43OVXUOQXR*ijO&&5vCn8>U)`4d7Is>oMP1%vcJz> zs2~X)ZR2Hm+a3sMTR0RtH&B+METZfH?vOMd=*M`e3cY6KRwWDvyIo8$Iuo}c^iako zcPcl1oiy*Hru}{W=;Zcm9OcEXh(pnbw(U6oU~1~70%yxrmI`Ogrd4YOD~rkt^LmDM zY*3C4XVrCXb(OZ16u#jVf3L?;I|-s9U*sI z9H_HS{&t}3TmTx+=MKTC!y(Y*Kv|ng33wt^1)#y&z^MS#@uwiK>jTjGKwILae+8g* z2nxyQmm>HaRfsi~A^%U+x^6>Y`HZipeZIV~w|#B)>h^+c_-D$uKSOv#a4j~snAX=` z{C6a&CqQvcupP2K0IlWiFhR?DZ1<>fuWT)~?7U zwVDznVP8S|@snE}Ao~02x(7QwSy>r5J6AVaY*|vIoLOyY?tMKsBP(ZTUz5d_ffUdj zXL4q)J2N-uk$pK?8M!fi&8~*-)kdQ+w{2ZUVPaxoMt}Qllewnctfn>M`$kjlq%p^p zmHSCgUV%xhF;fe8U;bQ-n_L>bs{y6xeVS?=It?Zsyw%xtyh)%|j9Xzbl6APbwJ$sS z(400WyRUWK*w`1UT&}80mn&vuy9*cFwAX79KN!Bx6ik`eb>eEob0Z$`Fyr2H$GlW@uO?8*f%j$TIseQ zwRecWFUxIW>OJxA80!_=G# zYqGOedk!+ge1_$SUXDIQDFal~=oD?Sa~(@hr0&{yKCFg{0nEZv)dDkN=u81D=Q_-$&(8&@7sFk z)_pzADi4}_c6#kM(~|Pd5L6L$8&r9XdjBnM%a~&q)@~nN*V?Ocyf?kd;i$r6MZ4)qC}lU&fO8czMIG z2~^1oh57>W7z)KuUZ!kNcExNa@QT^29kVSkV7B#WX*LtT36F*3TFhnwDrPf+irGv+ z#cW2#L#q^e3VBZPEf(7TX>-MJSNoQ>%bj`Sd+(uSDV18#STO?Por zwaJ{3fqBpA#InWTF~Q|F=0_)l_i<6Z-YBw4q{!0nzNXnsP+Y50Og`-rX;WhYs>ud| z)tJ5-5-0^ltk>l(sn%VbaB#3=+~XPVa6A7e+CkFh7c-S8LpC|~Wf|5?D_27o(aJ_FXv_s)RZWdJ z2+T-KsC@1fT7bN869wx0tV~V&$~Q|&q^zvomj3PA`&)XmvgEm`;Z&{x9gdT`iY>)E zvs$|Mk4y~j?{3N3y>M#X2y67(hiOO-J3NpSUN;{he-R@jpX4VT>RVV2>RlG<34xx6 z-Vk^jL!czB0%~8N`EoTl7ti$&IET29e?rE(uDZ;!dQL7V=xtjwGUuqQKw8?#-8rqR zCO0czW*Sek;ZR@la%DXs&|vMhWuc&n zYJ)xrQfko>rIFg^kUN5uI6e&4Nn=^iSI^gWMcc?;70^21k%7I4u*0{_3`Pk;^S#9C zF4%x27!qbkA;LiQWS*`yh;`oYa0Y!~DJ!$!5*DdH<4a|mbg9*7w9*yeAB|B#NiA>7 z+Qn7u*VH3SD|!SDCZ0qI=+96x-ajTN&_zRF?Tt3qn{3m8@sqQzYIbyXK^dC`Zj?v< z2{@u+@#GPfKJ<3z3b312fUPEd-`v2J$L_l4hARgU2bg_BIjy|&&O5-;hsYRT{biAy z7DO)rT>~sm$pYEBA5cb_Nm3;w79O^d;*5f{G>mt4#I>g40ak9xy{l}ElYM`B;f-9= zG~wX)kpIabW3=M;u^);EKmh8F<4{lm`~heyUyahC*6UC!F#H7)Ew%8LN&#wQ*m``8 z7#$W$(-=E26rf717>Ck^_Bepq3=IUomaj9Y7P0m0kr)_~j&XgGqqwX(tsve}YOkG2 zH>723N;en`l4WIbg{QNw8te0 zu8&o1>{mmS>k*)p)^k3rE3?@vD;#r&jK-d}HNyy7(}FXr7g|a36MjFIn}ak%{?+=( z<04D_Bh1#7A?wY-$<#kL1@36VuwrY4Mg2`gdCd&~tfl>htw#pt- z*1^}A1qN!BDC@V^&?@rfRcI|=XQr~nA-xG3MWrE`Y&(@NOKrQ5b!K;hL_R&)Al&IE zQz^uxTVje(__*55RwU~JOT1MjrQDpm)8=&As$DKJ=;}=ou~FnG3TZuBGn8!>#vH40 z!;8j(3*M-oau(l4khTY(maZ{}5)lFT*R+RLLwt4 zn|phkMMNaSX5|r)^jx-6+goR)n23~ROV7;7$;`~n{k{l_tZ!qH?fw36$nAS_O*xrO zy@7BDi=;q^@@cN=<6a&Tq1eYN?sM@qU_*!&Bik3`Ar@lLr!48u)#OYg>QTPd!=39L zYVhNvbc(!bc-M{F9NfKTX(8bcS<}6^fv-HM-YjyA^=@9n=R{k&58V_VZh;hjMqGjxw2192V?4u_S!y}6>$N#qy{+p;x36vO&B{LXw%=$DMs=u8cvxD$jPpA#jM`dX?gK32MvjyWi6EjAc@Sv^sG}sKd;~N&V5wH+J zXmv%~#0(8vozk3CX(_9yC@yW?I=E|xWoSw}CzqNmrPcyV$LN;5d!mavsxtEn^Ky(4 zG4U%`u3o>kEiD^!cvfUg!s_n6jnoQG0dECn2x>*qa!@a&V4`dhr#6|7m9uirQ7zWA z|IHS>C|0#wC@|GkllAX3XK9q`rO#>HGHvtl9Vad53-BC$AzIvehI#@KQpAzop`H-y z+9K5XIa^aJP2st|{-YsoP|);fvgLbiD!0#GT_eRdjk+q=*VtDT zuV5AHy+|aOsIl98Bi;&|ug1RcFVuV^Y9_CVa#2b72wyYl#)*xOJWx;~<*(ndx5TvY z7D^(cN=lM`Ox7W+RWeqQyvm)@RI*ri^=`cR=EJYNV!vf@HA|d6abjBez%h+}^WP^^ z{)robAKlq^uVP=hIB@?vqoeOEgTo`!el6f&a4%q+o<+gI{)w&o16ZWV6DJmK3daK( z5^bO?ma}AtG)#EAG)qK98^FI*9^P0|5qiHA{fwH>&y8HNg-zHEjUNwhM9obNUmM?j zV9rrh>6|-+wQ;sVxzFkKI@x;VUcNTY@8x5qO^g+8e}zMZ{S^)s_LqQ?EhI1qTd12> zci@%yp(4r?jzQQ$0!mhczyPZOl0nc(>~PLR|AsV)CIU(nH<7zlVCkN#C@HC&faz1` zogLl2{{^;DxyufdfNc`#b;|tM%nXfxj*qt#_BLq+?%xres0DQkXfyX!!^=8e4`LuX zMOn}pz)Q2RfYt^u2H9b-_2<^7}|5#8hq+7q<3VqH4CTMy6m>Jw6<*J z+h`B3jrXg_lXY?l4u=X^6;P5@QC7%mcv(m#S^*0dr}J1oYyG?MsfVsx9~F81F;k_S@LySuSC3zP(>Z1cxa2Xa*$Z&u*8U+F>JU${4hCHhCxEX$p0#9G=525H(v@j6X5wN` zHQMU!4Gs2sTcbBWqaIdtW_?CJxQW#V#B>lZgv3xC)Lz;RsOBuv&MGqKxrH3q2iSwH zJkLz5oT#mx=$f3Qti?&}!ucLDA)80t6SYX(1ZL8hYywoifl-eoBPVJo9Sh(4;adOAL zy~9QFX4$fh&9ZUj`>cy!CzPXXK)Hu5;48=ML$*^zh!x9?*x-K40_-&w3(e%H`1fV9 zqOPe%?Oa5w)7#qO+dfLWFsmE1hqVop9g|1O*Zb-=+3KfbsyEk_R@YTk`=%SpDr}Cj zh9TRw_4YMoFsU|po3~>Shwo~@e1|MmFpp9c-E!xCZKU+mTlZ^q^3M?_JYm|fHdpF_ zPq4|fX)tf$L2#-QJmHyW>>%gV7S6v_fKn7OlH!jj#lQ2ceC&c2P}H5Ycm^YvcD0H) zlN?ghG!XenL_&H2QYx@cm#`7vNGAb^~FVDy*&(COg4L82kJmP9^M{@C7jl-_?d)QBNoP}?h>^V7h(_4kk z9BN%QT1Ro%NcB7c=vFBT97}=CoFsf?GKr{CvXt1-_=fV)*|`R1VRiHz)62Tq(N8|C z^64bDp69CdV06~uevFw2gsu5d!Qf;+Q!byocdq-`F|httY3IVNi_|}uIWS`gTV7Vn z(miZqbo1yQ6rGbU;}_ETn5G)I+ff>F6M~z{>)EfB!Lh9a+qV074M(IS3;cSQOTpr0 zT;4#F!HHNVf0^`u{o35qb6=aALp8TS7%X!jCXjm`r+T{n9By^PEu39b&)m$)y>)ea zSI$hknwnhG7$I-EN1L0syQgZa>4CG-B3vZQg#n!k$72~h2j)KQ5{SAw2vLW$e^(eL ztdRqg;Eqn`m#8Z8Cq;`1q#${9<^x`79gyS$T7Oqi=A0tg_5g zR;7HKgdVhgjM29ew2{1NbmURc_)}*UWa{&AXeO79$R7K4xFpqpw*p==Pran1uyIgLYipoa2Y zM|Nhf+qP}pWk>#$U5JQLHc0;i%TfNYWzA^c7PdwC=C+c;5uk;c9q1`>bBQ(VtK{;yM zCR9bc86#g>j`V)MnNzkNsb0Yyvrr3;5m$Yja z8`!_1WzDKhb7oUTl||Y)GxNfV_C15jE3BZZ+GbT=2NF#cTIoV7dE61)M6x(=pxacd z1G5C>g9Jl)?5dT6D<>va4s@^Cx^<1wRG4oxnPSHJZ&e;c7e0UG`t73|luP@^MoKO0 zT1#oEMY+HN6(^*F^s=xyQV?pTNGr`hCOO5fW)PNNSJzoH+4=6=#=}#)ciZdhn8PsD z36+M4i1ta`@Vi=vopRDOuzQIE`J@*}to-c;x=?=5RLW8s%WRwpa{;FKS1+`J6+!O2 zCw9w$vplymlILKG{1K7{qMqs`A6(dFG>;OCoFsFyUp6R({NTjILC=m3m;02*bIOfL zHs-=H<{i7>f-&VMFroI=IVL9^b*y8EY%BD=nsbR>K1m&nS?OOqy2vwSB1CLDu*@Dz zuTBVobo!l zoF2EU%RyN(G`D8LzFr~D#So(xYRAdfLxuJs<>QY@m{xzdZSVT_RYUtmEN%v&aQ?%OwP8M1C>nJn&~_@{iN{9ytAfW^7^ z33y$O69Y+_LV|(;_JYx56VfOV#<|YPZFK1VO&7$?>Fj2wwY;q8@IiA?azRF=sXB5l zZg!xuVY6*jLucR2h;ChHdX70Szi_M|Cp9Y}H=|>Nxuw$4j3eth>Q@ee2J!>QpA!3A z!z{v{>4+%p)3;4W=(LCsDgVgqXw6_Rz*}CC)!dk-)Pq0#e%@pE@*eYPsmIh6WOXNU zkTq-O){1rLwUXrxbs3tt%*%5u_ltgqqmRsP@P}x_+9p4{L$w%nh-DZu3QXwD>*sFK zN@Z(nbo<@4tP_Mi_?yn{aNYcSgZZf%km2R_220o*d`oNW3Q3NSZMtQavgg+7&Bm3tn0{wbe2-vata3Qg+Ejm$LGQVY=yF~&XW$_4JJ4oDwmHAZS)FW4n$PnXa=@wv8I^K&@aL zI9E?22-K66=?t?nVJoq#J2spKO^7KX>B_m7TjCIp)y6CoJB%+CCbaZggo@6PRc`SmJm9N~qY31<| znXT_)JIk|-#;o#)o$gAu^|1{dp0;)D*+tEksj)mf5XgvHxE;KTON_85X|#n_5@Ju< z_FOztv2yd~t}kBvW<^$hepZEKdE$vDHgq~#`&o=~dRu;`Gs_66R9BNAmGCRk_mnA} zi7|!>p@jp>zkEGOO=nX*A}Q;IY; z>e0e7+C(0AFn21Fa;KJoitMZ9^N&crXnh5IP6A!vGAv3Rg}otVs!fT796EdCw%ZU@ zT~(*1r_D*#{p;8FckFi6Aw}&Kmd}$x-jPUELC>6q)YAH)u%XFB;%O!4jA&iiy}oZ^ zqOX6|>TScTataG`a$#Ezty=wO$@0g}?xD@A{=8~vOL4)Ujm5>rKNpbC;X*|;ONf2L zZf;eQQOVEBQjJR2CEmu_@&CJc<9UPA(-jWKPm?#)4va3G`oRxa-kl{@a|wEh>`9#L zM%iI}w&9KtEnbm58RUp+bz!D7eOhjF@qCz`p1E6Zl|@pFNYwho&jrC7kq3F&gzI{(sFxaL z=LR+%fwnh#MT9mndeXqU$xIoy?aRl5wBSiY3s#z>|lZ&^#Grph=M>Q zC%}t$@QF)I3gi$gXxz{yK@4ta4SFNLyS*ng147;7&+2Dql}C{Q!Rj$W&Ur3HxbL+j zk_DMiIR?8@ZGVMST}8_b{7AsPQSnju51*S_Uf5hx(ri)+sol^lOCnZ0ZpPcak@tBA zeoum|$(YGuN6^V!Ouae~G;!hTXV;4zth2MsGdoLIm&Cd7U05R2UzY^98Hj0tdN*o; zSIwz+n$4)dXf^0{ZbVF3sqz~8qq5L-`qM6^JOAU4&!5pgeZezYzOGe)`${;qS982e zJR#Jp#;#EBRs8qxXi^dGuR^_uq}iR~$H?$tcm0#&VKgCHI%d%n(TX zQg%aW?L=qSp4!s-oa3(;i|ZZshGOGPgluYae$X=Nc8|7v;B3WgHFMHg@-KUBt^Hpm z&XeHw;sYUTmplWHsQ+ERbun4{%`+%$xdBNlvW!R6FL5cXHK4kgLG0~ zoS&MSU!-TN7f#`%aqPP}Et$aY45HdC^2!WuD}^Tv{0PEGEI3=-{_w8Ya}(*X4R|t( zVrEDnA7$~_&}#(Ljf)lKF^d-5i zL8EBN-guHks|k~=!LVx1URCLsJ8yeMV_}4j#l%R7H1O}HASSK;kIiNmCFhnTeT(#u z6|`YRAGBe%M-BGH)sjd0BjpG|;#GT$=I+3WBWeUIObG0qt+g$OCs*yOn`?B^nU*8 zZjA)B4m2hW+-33zd)(u#ZDXGDJ`dk9HinI2Rn>OqNh!H;o87*xF+7bBxrAaDCGA1+ zqNaRsEikY7quF7c>O^3MiNnnqvrpC0 zMm*1eXG9A8WZzqDP(o^BNDKLWeJIXO9P;(AgT;j|b29QuVPVa=s)eY(csU7nc7Ar5 zJ#Ca5SIs2hm;0(+PQQGo2ILz&CvBI+bFVJx-FP2+_lNc)JPS!AUZK}S4hu<88zcy4 ziGUX+z>rGb2#-w&NewJl=>6G^rjNEvPPnQr=pUKf5>@3YF3dQ2a^F@Y?0n1SWBd6M)T1cvnR=pNiK~_rufuBfG^dDN&nHv6Lj)$|#G58i5MdK|q*DNs2;7r( zT^l>nb28J@vo~d@r)MHYx4Em{)uL^Q8R~g-a5nCs&QbVOF7^aJCEg2dx`T212OsSj z>aMTvCaLEdg-6dm1^*(ovnzs7%4iT!#4iJ7Zwx>$;85NJ90TY-d?XWV;5}%vo;*nMxa#=R-oJL1Sr| zm?`jciw(1)INup|7tI2&m1J^o%+ThWE;-HQ>Pt>b5?j%%yxj~3$kt>AAetRkAdu*AaS7oRbEQQn|fvY-=gI%uD1M<*f+yE+{8^$xmn%!RqR zg@rLl@nF8@QT5QPQP*UxjrnY~wKnBhTkX#*R3c)2me^zTVnUtx!QMl99x@OzR-0u+*4pg+v&^~*cQCq{?$3YIw33#TC^bb#>^eN zeTTgchsWbs`*r0{>?PL;Z+dDSyHfc9%Q&XI^1|Gg9%eTw-Io7UhKLriYQWEX0xf|E4>x&rCY<1H6x;k< zoE}!X<51+B)>#RI(2-vecPN6LP<|uj+tZKY^|FtusxcGtc-Q{MeY--t|YEvea1Rkyd> z-P-EL6;rpb%dy|a49fl5ynN4COUIs?JssYfj*c2{2U=7M4$w)QQRpv*pbeC`e1b*2 zKgZr#l*ae`?t+EeK~E#-q4Tvf)g7|j$_(~y;BYZPRLJpTqR07Z5v;6pk8fqyd4)# zKKTZ!>ZZE7r|Jsw@7Jm9V*P?kox5x5rdHZ#Y|8(#1H>v~8EKNEi&wK3SevAiVD~I6 z0CMxGFSuRkYgzG5QkK$kRvGb7>6LF#>p5bNeD&)Gw!|dlA;sE5IpyyhYd6CzSX&UQKlIAEo%3i?9P5(xo*~)=| zm2{bki%q!L(Z2TMZGC-h$J_f>Sxv_atk#0#CM)FTW_B}sO|B<>kP_4fH(!3y=+sVj z^D34+xT#C|Ce6LaQSv3!4o@^CR3nIxBPj&C{*HT64VL^oYd`C6>*%krp8rdB^Og(a zOOZ%tF*f)1G@Dmu_IA?<`~uqYDC$MbfimU-N8Vv6%}v2_omjwR*&Q4Di;PCIIX`#( zBg+29o(=5i>SkkMVSy3Hb9DFb$?vRd?jelFK;J{a2pvF~f0%%T4%qt3yS9Ay@OpOh z;Li6yP8?PiQT7OGe+*@zi%`3N{Hw#C>>s_(-z=8hv_7(5Yt2Cu@{{tS*0Izd#YNbQ zylv~*(I$6VmbJiWO^83e>V#w}>8dAM{5@3>NW9F?8i zkZ-T6vm5J^a-z(s8F`@VT2T2S=;9no!G3aKq5Ee$oi3C^|8p3usm}AZ53b~_iUV^@ zg<#Ole%63d?K$84tu-H#V$6q;;$Od`m>o2to%OK&E0ybcc8yHu{7E>M70A3z~SFj<}nNkKS=D9L6J=>6x+rw7+yqy)5ow1grT?_v+8=;S_>lz<9&8zC| zUXhn<$jVN)H~6ZJzVxCPDWZwp-1Ks^A=$)k-<9kKNSta#VUWViAOTvT^91?AUmNJDFSgDVm^p33#r7-5yImfRJY)uJRJBC3bsB$i=R%G+QbvEapmOs=`8_Ea-Mg za{@IT1vVKL8LulvU=b)yCs1>Sxw5J-wXmwv%xRE{stOCM=puX0j``G#*f?oqM2x6q zYSS=)j7z@RmwaRYn_)C&WasBAyVMWgQ2)jhWHn|Lob!#Seq-?rI|6BmAV1kHQ_!9E zzJRAH-AdZkX?1xPOI~ii*^>XiZ0EJtD!2a4oI}=Pj+tXv1q`JEgTaZV0{=F86~lXJ zLuqUBtws46`BrQG$uF@HVx=lK z*NmC=Ma?3+mOYO7*$0`5h6LWH`3w6t`x{BCS#XxCL{{eQ?DXRL3xCHal+D!);K{3_ zWHGy~ZbTcc6qvEP5im5kDe6rD+ejT90_ZkSE(DIoG#GSN90rKfsB}*b6|X2SPn7iD zn)DWHbGoB4F(NW4?!36fsEEW$2Vkv+8c&*(SYDn`jItRikvM)PBXOXyCat6}E>asC zmA)rED!(8>tM}Arc6Mggd-QUGF`t8DwUKe=5`9f$jo#}?N%45~=sDQ*QaySui)JS~ zO}G5Q{6uq<-o!7Ho1R_cHgy}{CD+#xtKjAgS2j$P=@{DJFnH(cqD=xgS!io=N>pgAu!eS{#+tc3GtBqmBCi}j!UiVjuOJ+)nzUt~J znJF;eUel@Ts=eK4o?TiiU;CuW?D~RW^=Sy!^2*feBTc<_QweJ5ZKE2b;zE0yprWY! z!VAlb1Qq*c&BohnyL6p3x0?%QN_t#hEdm9_Uvc-sNM@SHV3Ga;ZPlSCkqbr(!;i7_ z6DQDHGYh^Ml(-5dzNVJos|m)Wt4^F?=~FY(voq*$hG&s#*xw<05s*A25y~n5yyA-a zE3RM@Y@c$YawAIIf)f8NN*H+wmUGorcVBf?pa^7)0<-U!ofS)y2;#MG|H(n8ft=;zzD2g9F_|C3{AEio-P@<^!5jMp737717iA02DjUEXEDM@`#a?DV z!QRIe*vGy_+W8c5@JlFh3GUZPHHgI0E=#?p2$oV5`ipd-6$-*&nmlg=Z8NvFCX`YAvk&@y9QH z^a&LD`#+Zc?&i3@_}CAxeEjjEzyIR{TKI!M@g4SSE;XQ&;WReA&dA@{uK2@o%8&5I zzH`rIm)%1b@V$@nI3zD8XS z`O(N{ej8E>wff81QFaCU;irl0huh#S^5VFGo%x2wgb2tqtt4Q^m9d!OqPPdt&Fwe- z{_W%U$g$F=t0NxNMr);M<=4uu-^4(j#m+c1NEuqZkL|*l_G0Yuoc%v9OiMS+t!F!C z*`E0yYS_Z3pN;=MIZ~RxTON?{7z~d8cUqlxR*nXKDTFr64%Q%LR@zHLUujOm=i7lr zK691!LY!lJ&rNUr{y*=_%++f1v+hOz@Z_L+nVTtylaSMwAoo>t=#^$E-k6hBWG=6- zsO~D+W6aJfvQ*T)P?$HHlyAx{FVC~KmbKMp8|fo>ruY`W#QM4JFU11yzp4Fce@34- zd;;)Zd$6#G)N^}VAE{^4!LQDJ#uUK#^eHJ{hrZp$^)2Ktg6HRAUl?jozRr#-e`fmc z&Z){-%(vQ4-p3u|{0@p{@;ExJ`WmtCMrd@}4MNvy=I zx)v9eL#ocVN_`7Irl_p+(;M-GP^A*{em!a;E5k~52KBk<_vP#ixLKTzZlm%Qc42|C zlij_n&9UI23FR!yW8oQfiUCDGfd%4&uVIyZ3!iX`d=Ego%^v`~TENfT133MDxA>jT zKA7Ku-+QFZfd6!{S^Rzmvk|nRZ=r{*59I=sxD8q(cxTf$2)<5p3syrEz*`sYUVIaJ zp0D+DN@$hHD%CFVh_zJ9Df!XjY0du%_!+1#{yR~klWHlS0JPL<%Gu@8PWt7{Uc|)+ zLlyq&q-Pfob6W0EX|YJ4f$pS4KTX7ZKHymWLlzKaq1Vy#->gov7{O*|1b6p>u7c_| zsb+t~=bQ0ytROu%F|i;Ox&2Rl`V{#>+&jXX`iUKqd+jx~_M5I>xwi(!xUlre6Y5=Snl(W3FV!{XW%q&*cheu+pd5%wCr$=Y55+TxE>qb9sOU{MIK~ z=ASRN+lxc4KVli=C~|LKt}ZIE*-DD4S#ebnIf_M9f18;>PhJSV-wnQ7r00;pL0r8X zQCtB(BKm_M_~oaIm;~_4jqo9Bcwg43eOyOx6E8RbK(Tv$Ur)C=i+m~ z@+df=i3p6WrI-lY!pZ)HuSj>aE#$~qZS!}^xAgDsmv%3Vv`O#G|FKOTp5NW?xpHs{ zuPfC*p!_H#2>Sy;d6NPvK{+2k9F7CYLg2M<L^(?z7FC$a}vL8>)2wkU;$mbYA|fWLU{687 zzZ)M9_;&=3(K7DfZEV~q96V3jrkN`#n?MY*#l?k>RsV}xeQNOm=q9vMBQHFy`c0&t zZ6u3J{XoAw`u#wLMK6RHLVT-*e}=e&n~m%|<&pySb)}E1ZE_Fg_7LamY>oZ+GVU0s zOL$a77byK)x;|^(MGzw335ApUOC_&Bid^_}kX*B;znuGJn>H==%jCQoYfXo6%+7Ad zf5BDzYH`VIanV?48U-=d7!L#Vp zfIeslnolW`RY?(QcM8lxie|y&@ncQj6oSJQE}98&gDU=dHJ5A3v}R7R{GB8n0iIZI-5VZHiDP2&Z9 zedjmYHr4Hu>+7038k^dcj|%o34v3{R5eQ=W>CA4~j+Ne4q*_XY&w>cItGbp)Vi1B+ z%8`R@Mxd?`{Dn5=tAeGRyXgOL+2fX2Sk#B;_S0@a1SkTRlC*@Mzva}0hJ!X61&qf1 zGrukPElUlF4+UdH^a(`LKg=sxZF+8K{zLkMCUnZU5;iy?PnfaLi?vG z?f$<((cNtH!^B_SmQM>lWj1P*|AW61s44VMje&_T{>JeJMt$O6m8EvA(+uEAjN3HZ z>B)=XZ6t3f&=;YfL!xp1HU|G1gZ%_kg8IqdX8+$$_U5k{HX(esDgPKQrd2;EfxqE# zz0F2NWf1=6AH}6C@DG(oO~;;LvPqd|we)epq%aqKPzvxNthZHegfWMpYVUIq;8MV~ z6l@uhUClF0$dkt2asB6Mr9Sqk(#ak@^XDZU9PCi)K=#1w?5DG{fqn|cDlzjvjd)D~ zYR=*7^C?{JmyL$P(xg%FWAD-+s5%17(m&@nqpoXNV`x1uO|x5`hA+Ek@dEaHxeF)V zV{JF$vuaV3q=WHGUhVwub5yHsEp+9szJ7bnKxM^-norx8A;GYAm-|&7^IXw2)%I%h z-mVqmwyOd#-p7YN6^CAv?`g%mkCy%f#mnz>}dM8t2aOeM^&O~sC;e>hg zzu#w(l^C|=vL?x;G_nGHS$uqXs?zc?{Mzp-pUk~-{*}?O4A#y|3p>abh1bbrloqM; zVY1&l7yb!rM|Ws}7ptr9Sks8P_dDHs&0%_*3G;{5=tegL28a}`~!8jqx=ojA6dJrhY z-I}?@>k!SZgw3ppkg+hs7&|yWKaL0Q<<79153w7Sa-|yOW>D@oqMQL8gY}ykmaDus zK0iN$oP}4Ey@!+u@FTFc5h=Bhx8h&%f)!XtRv?4 zj*KYncC6X6;`p&+9|oU4FCiOe7SDos5Y!;+BLW*DE-Jli>?!E}yC zJ{*(l=byfm4$=&NJOw5ic*Fa!yXj)ASHa#jnS$&2<=!&b&P5 zzJd6Jgm{!Rcyn{zhJn_>_=FskG`RTJ)p;&s0hKE-y7JI+FL;nAk0Zmblau@CR$Iz^ zvc>*^uGCasBWbkQFYq6dcn$-_6R;3KS!wDjXXtY;bP!}(wC52uzMq5Cc-YezK4H)O zsoHL@MxJdsv)RrYE*L(Ko&fRs!YG~FdHvAPr*2z13>tg7-NkOCXEHEN0#;e+&m9@rufOiy(ZUZ~j-C4E$_;z7(!V*S{Dsb0=J9cH?npYxyJ!gz zQnoDRUC`DDYD8dr#OP}Ldu!!Hjc=lR`x|d;r?UsPU$diq7oOR>wF&2(w(q!x-Hzv9 z`hXjwoagOX=xLI6TF-J+;OPd!RP{3|H5V!USd)ZKM;CRc+f3;Ng$D2Lj<#{1^aaUV zRqaX3%h#9G=dk@s1)I7mp~RL^?5iksS-b-_+vd6=r@c6<*izA0RoYwu zg!}o98k&F7L|mP;WW>^^g<)|;$;b7JB~J~D+Op;LEn6m+d3xB3nm=Kc_ZwoBS3_$G zBEOht4Pq4ydWXOC+4VRBr~c%uoH_q4T?q3q&0q0`bPZ5Pdl!=adYJMWpidDO#BLhw z>5^Q~rwo=vBTm-&BE@B}a;$1G_|p7XAp9jgVh7*j+9&JkCfixH@=}2_m))go%5@g7 z>PF9wmM^yK@a)ZV8k2V=LzC!p$g6eBW>6$$?$D^^c3Upu zLxmP^%sXQTV?;UwLtHkvp+>Goy&KssAajH4Q&hU z@IYI_YN2Ip$cw<=jqCFMnRqkubPxWCrA$x1!1JS#|NQ^T z`x5x5ifr#&_x6%~>vVd_LOPvJhpe5>MmDmtga8IG5cVw~ASx12QHhA#=s1o#h|bdy zR2&sYori$S%)IeaXUsS_&jptcahcI^dCH8>aa@x0<^509z1_EyfX@59Z+_qJ`vSe( zuBua~PMtb+s_N7^?CS8kSVqKqv0u;6RQ1)yTy{{M$qv%~FqB% znTY<_EJ|>CvFAiF&}k<26BFdcy4<774v<&cG_6_hXA-n5{J`@f+$8U=Wr|Ptsj3Y*_5J5@_^$2!9(Bk$s z&Y06$H6zWeWL5f_I=kEGyPO?#ICAarvddl!J1}O?@_4eu4{@HoGbc}JnpIVvQJSlL zvzO&|rMld)Qv-R~Q?m2;8-I2>(Y}dNknXN?PBh*JpLpP|M=xI+pQ0$Kv1@|t3pIgd z<+P^3fvfr+QO#J+;G$GH9w~L%0V?;t=JqvP1qp?wME57t!h7JYSGRZeo!?fMl2@{5UWYSoV&m*(HBYSBvJp<6YHBA{ zlanW4-G#Q2e`k{B&_2Y?FZx1D82uJt*Y=7^cmh5jw*Y-~3oxFg@>_tq58yTZ`Yk}T z=1PD)3OaBJsGs?=1>4o1lczmsyJ)ldWC&Iui{*EaD-{~eMC^s)5WkW^3)fcwyv2C% z=ArQrLL~-z2yzs;&|tp}6lWJ#8j9|5mk4Xf_B3#)mKMI99agvsh}Q^3kri5pN?5C%eB@UC2@#E~nGsbS9OzOhyQGlTun1Xle?S zl_;j-oerlf!|8Ubhw7$GsjKhksCT&C4o7AtHLBL_oI`OY<~ZGr^;L5!8;b4r;)cpO z!AAPh$WvV|q_WGKt6Hm?`CDtIqZI(1t&U9e{$5tW9+x|5{v^wGzCOnSftmXHy8HTA z#rmo1@gKV!{Qh!2&Y@|)-%INy<9@&Ky9X^M2}=tOXkDGev7qnr>4fr>ZZH)@-(H`SmEZMnn>7 zh=NCYAMbCYR+A~GhW}gJ|C_7K1?Kvx{>gcGdZf~#lmX><) zdRaVGbrkYP{6spBHg{nifY}UvmW{oJCV3@np+>I*v{tj^(M>*YRD(H`@M;1c?oX-X zW{Ee#* z_@9^ySCM`GIZkJ{pB=~b<|o&#B?`d~NS=-J6;OyG1k`%T#@=VP(;V!DR8Bo8Mdd}BwMZ7Ni!$2z9g5`%1pD>mCv~XiE>w22g+oizB1I-b z#)XL{$ArGtC`qtNr7pnQz*`HOPF($fxU6LkMrO-&4redzHp|wStR%L&QQea`L6EVF z?E%e_s+`-^cGjY{f4b_^ z+poNw%~Ky5?(H4cKUb|{^Imyn>((%jviYQYqjhE<=Sg&MHaPK{A=3CU&P+FparPbf zM7eup8By4saQ7HKaitsqyd1#$o(3<{eY6`8?$y2P?@n-AF>*(iDR-j}W8HCgZ}`xA zB*kTkWu|Ufj>TAh0mD{cN6^3{QP>%vMJmyG#K_q4i({E26d0!o<1-0w)5$N@qw=bg z+t5oA3D-Dzqk8n-dqH23f;LkMZ1#8xjipH1Gtp^(RdLNlE63JFrOCTO8^dXGVpN(^ zH}YI0jrQpy^(k+UXH30koWjcJ!hr#)>sqm_Uu(jqWbj;okdq_SUc z{V~C}#Ji*s;0%nvjNkR&D3AVq^ylf)^t|6C59R&;Dc|YZI$oNwUuaC;&qu^T{;nR? zhKIUD`_gC}w0dTqrWO3|-y?%R3|*^_DyKm@oNgGPpM^2tU)Z|nXYs_|9q(81o7{Wq zG^EJ8{_jmb4d&ywcrlKz+U8|in_3(`x{tJ43L-V(lL zX~*fiyrO3{%xv(DBMQRbI_x8>VVx#k@VOuUPQS7L!_UV0bUdh0r{#}EHJ8#cpM?K| z=;80`ZU2)GM#!k5u`xVQ>0z9|p*QHqgW5lw1d6Y0-+$|iUYy1$*UE8juu8s@R*3u* zTeBa))&Tqv_5NVaoFDWqynfD{>x252h4_(l#c(;C%#JRJUA1U)8Y85IGcM@pxL^i< zkAfQ1f2B08kA~~WKSdoyvbRyGrW1EE+8JF->Dqh;+!s=ys zuBAGn;H&pcTiBKd=uu5zH3c_xcU&OFgy|EH{dBQITa8oIY0#^yY8}Fg$6Da1&2U%? zlp6eEr5GW2pbc%SQVY`oIDB+q)87`AN7w;jFV`9u7ck*35a%!PHo0a@oH)bPzImGjhp{n$FG|dU?yr zym{s2Q6!JznyW;Wh_WDMD+6Al}H;gwD&9j&%=mm}~u3J(v3Y zM<0EpW&P-*k3R-qlJy)sYrTlvu>Ghc+dUjd`6;wTZ8hK1#3q>4j-9$=`}aR^@4bu6 zR%cRocaqa;#)iWgXC%5<%_=rY9bBOf&Q7j&-O_!Ft2#Nk#)&V^8tg_$QX|ehb`ieS zSovV`lY7ZPWbDV?Nk6YFG*+!CBxY@ZNjxg?W*1KrX_Ax8> z>TYR}^XW7N=6CXoEz(nz`+ALguTiRKzd*vTPa!|xa_;3d06WwHt3*`u>Cfi#nhFo- zd8jT)~@mOoUXdJcgXM?Qf7>A={!Sj^L)@mzznj}Zz zftPue5alO7g+8_s_|Tns%%I?6+Nuc26;u)^F%3a7YCFQHd(@@g62PSe4;@H+r~_w-P|8p9mTB8mEmy zxJOe~a7ksVjd0O1G2kGIYqc}cCbo}Gg?Y`It;FvA@(y6m@g|nqNc_QbV@&O%NJs)t zva0}wuW4C{F?ddam!6Yw;yKxC0_cm;Fy)QNi8({ZVDPxS_gOMrf9X!tV z@eH`mtl@PddM1n)Q4V>M`hq+c$$p+w8l-0(65%z-_EA-Y5g>_l9TGv|d4gblo{Ip9 zoMCRzDW~V9T1D=SeR_7C&aa79Vk}~04e^2dIV!Io91Q(dZ^ts&F7bBKh(#W-Eaezc zN4L|%`NKjx31C5=OphVZ;G42fzZ)>n@zGF3IIojmXxiqy($)pAq4JUf>uxt(3OTb;a{ zB@N;ac?M6O$8J>Ci#&8vr4ZNP?eCzbo*?Pgg2@)fd`8o=qsk}wNIQrKog3NM2( zMP=w8WF^rEIf8w#A2&%Zz-{KGsjp~;(Ws>FDzi8HLdW`$8|+L}p+A%xJlO=Q-N&iM z%h^y)F}y_1!9n@O*Iyqw=k?cFg?Lf_McP94lIS^su>y4@Nv;fI6NL*qG!XiHV8(!s z1!^8V=>rb?H5|B%r@qtsZ*cH1Tch5tp2w!DPb$sy&ifHgdq_%z`;oQCzYKNgG)4-i z7ma$HUmqv=Avjy);AJr~(N^R@x=2nFeaKUV3_~hLWsr}_jZ_0f3q~BZ9d+=rO*ITs z1$>|xAcS$#4tg{mLpe>(2<(W@fFQ{vKI-}C<9Q8ua6BoWmW!X2g(V!vmGA&84hcsr zqsM%rE^jFx&&g$~q28cT8lwO7F-$xsq?Z_(K$BCTCB`lKY86 zN41<}0?#WX1JA9uo{MBHzm5a#HHqowlK#N}ToMGy57gc2WsQjuy5I zltu}KZk*^*SiI@p>FewJ=Ivg~S|~GHr{0EgR0l=`@hD2bo=aGQV7s8wE_bfEbzWcn zhG|~b0)(gp;l_IjUZ^%In@ECK$%3*HHn6zmXZI>fI)z8*{_L}E^=~W@pL+}0yX@UU zbpd;zP|a0y3)ute0wWBJ4KpAxyPOqzv0D!8RX!>laTZcrv|5k@wV;A@InW(?ac?2d zLAvWy;GV{%G&ozAWo+|awQ4V#i9h5SI=L7W+0Nw#w}B*yF@&^x*>h?gB>r#I1{5Y* zL$Zb?{tzibMv1R!E8t1N<(SiG+T4iAC#)w?c|O+l*=#eLt1$D(wmzTQqMeX|7 zAP&?<2N%FZRWTEC`Kz}}V2aFP5v;=muA1&S?hG(S4(m90fq^z>?bBwg@N5;q0Fsf* zf86(@302JLGywrm8nAlppn=FYYUVZ0J;61K^u@@#B$Koq6yy{8C#0j1+@g%wJpn{aM-e*1zZ0#?Id4## zp!tZM0nW@~%`Z5LbD*}Nz*mcW??YQHMj-6oPbK+;Npg#Cz+nE?cRP4~rqx7kpdBRa zvY><}!$gS)hNse=qxjr7BM4kH?U{0YyY@U$?8+# z4ek|r_}h4PUESG7Xm_7>+L>g7zl(NdI>|4l@E!D553;<_U;eJ1P^PP!a9XktxvJqS z%qvf!c?&lc!*>XYRX)zxNuxgR?z|pVbIE_5j_2GjrWrKQ2v$s}_XQgORd+ zy@W2z3y%VJ5z@*QeGz5KqMg$_270^uCoi|;BsWwvPnptO(U6prlHXC$vvl>sspkA# zYFyrk@uH4@{5Yl0fJUSAbr`hetplX z*{cq+|5!G&d)CsC&B_fUo2e!BC)db1Xh|d8e zdTE`8t4QI12Ua_e=jXL$2rml$0?}xe)x5Gk=CYU?Urw;LxNON8i#waMn~OHD%~`r7 z_A+yYFQ+Up(Z6cWq8TkYEu|N2v}Tt$3q8$Q6CJ*s+Y6=!T)7iH+5Xt{lm!j-offMp zuO%>h@flO?i0bb4$Jo<)o9bsMRwb{s@{FZyrNv(E@dT}j7JHe;TWN+SSt^~2n*tOe z$V)e|`Kf8Rcj)|`pPOnt#QP+JPEM(vxXfb+Kn6-6S`{mq+27LAKXcaRmX^)48W#nF ziyHZRYs2*E4fWG!Wjo=|-|5VrHSOHSjnj8eM_@wn5iFlyx4W(<5a_|j{PLdmnhR>$ z+iP6e*{%!dt)?9#DT1w?^Awg~<6ukJ{z4xclt7D=Tpf^Dk z!I`Y2ecrtGj=6KE_)1IjaX!zU?rv@ErdLCtz+YbOFQ66ZZun@vn)`UBJF7f8g7E8% zdcL#&XTUiDKQ?D`k2riiePVz+U8k`XN#XOFSgoBH7#Kh+E>*9@=_K9(VFn~>5+FcU zI!K3rSSJ19#69;6+;h*l^78&;$NEEek>(UUIfUCg?-T8H2}!+AS53@*+*amykT5*O z%|@6wz;(xbga_)IbH<9E8S0P^=c0vKnVDI6IkpK7%d+_Lsg~mITK4_f%a_mYY&|Ed zuWwayjkhxgVb|2HIo?!fe6u~^G2n<<6~1lA=tswsaJ2(hjxF&0Xp6e#?YHsv5!8Cg z2}02AB)ato>jiL%4Q~74N&`&eRdC%CE;Lf<=A1V2&=l%RturBKoZD7gQfwA;e4J(V zww318RI4d2&djzHRaY0$D?T|n9xvRDTIQJ5zqKSKt8g=uq$ZQs`bJ3dEZ~=~Q8XeWpgLG_g#|oiO%(a+Sg?^nBi^^=Y3*ye)=SF8Zf%mKZu@PcZhl}=@9t%HmZ{MI>dzNucy z=05NMTm0&)>b*ghdhfl+E$)652>sW?@8OD_XtwmRJ3fEx_9I8wqy6fve!TZfh;fsQ z)^-BAO|#B!*LcAwGC#XZdkkb{smxXt3R!$-a$){qus2){*%Ph79H zBd?XT)0Z+_u8eedXIphmTbp`Wbz56?y4#(e;p%L&c3#A~s@pp0$(0dKu4(I}67F=? zbzvuK#e?1Dve&e>*3`7AhuUgt@RMDXKza30S!d@@+iEggZhMBalQOX`%G6pz#ZXUY z=PQ(rRt=!SM)_62k>)%;yVcgzAi4l9Sb^opI*8AIh(l150m)`hPmW@|v3EO(k7fjzCJPHKVA%wQci)z$ac8yVT|Ny3{LOUW^grZCHm2rBQUsF?G zgLt3nbsZ#p@D`?-z~)_@{_%rIR z+gVm#X3i=02Lh~|B)3occRo%P8ew!!V-};8Tw6@gM(nT8I_tB82bV7=n~H}|N^C#8 zzFAD|u%tj-tdm*n4cv``1rzlf%}aKg7pe1TBtgQXk2X*6yB#Tssk7?f5*^=?Qf5th zKi!p{mg4qQG}+v?l;kXYfq%We-U#+ zJD#|3ly*EdrZixKcKp%Owdb>HqjqcxjbMD`0$b9K=figPJ8Q_eb*^j3-=nC)(owiJ@yZ)-DjOrL02b7sps&~ z`534o8>n)XbmKpRGXEeUA38lDhtJaqIW}K}kk9-hnZElX=ett-yXJ$GRTI%GG3b>{ z?w^*+8yct3X=uy}2WS+>Qh~1na@{=M0*~STw_QE5Xw8y21xdcb;)2{7+hN(J`mW7C z??>v}w9F%J!!l3jwgmPjHGB4=p5j8R-U_^|w_p8cN@pCqrFh=NQENRM*wgII)LRg{ zVxQ&_5pyc-FsQc-$Tx+~>rvX(-CNY#k!$z}Zsexmwq+XD5ZH&Juo!gFT13gP4?P==dBZQH}a6c7{#UMpXME?y3- z3zX-d1=`B<++(~vax*BmnNtorHhD%Q+7TqRWk5a{ni)Depp#H(M+^|t&|@bbl>Uek zbWW5=H@bN#DoM4ouxp@^H3KLtf4ChUG9PER*nP2a`RVEgKpXj$c&WD!sC&QvpNVOT zl9oW*F&vwIz~;6CfNKXf;-7}mp-`8Mm%!>XxT^nzW2KBdi*__|tYUebrg89jc7WA{ zk%^1*MUWYVNQ9pRO>`XW8c%6_#j6L_VZKTryD#*#-6Pn_104_X7%}hq9Uick>A_y& zt={1tb5Vz{$ZRR{PaS$4Oa=$1xW?b#|3P6z&}6QvDk45RfEHbd7MW?+0<@sIATtTjwSUR~nyE(6*Y0~vq#2Q^e#$IuiDZ{27g+tY=ViU-H z{Fhjq{GR+m&fl#0g{+hPRpb}4tX{^bc1ugx2k-`lm6cChRpI=Aud3+$MtuQ(pV+zZ z40fq{Gj|R~?!gWo#7O@JB_BaaXc@+m#?k~~VF* zkUDM5i9$K>&24fZ^r9SKrco}_-^6diw;1`%9X|pE=G(pSZKHcbrjbTbx1;K(a{`|N zQY+Cu(F}D1Kw#v~s3?Gus!{vA(IEjr$*NM|E|@aB&gAYL9sX!Ew$TxgczrykQ8Gy)9@B_difvW|G|~eb)%FfQqkIqy zj<`*edvD%f*Kq$GdU&J${?^w1eu`{lh;TH#1L8?7K| z4Ie+ol2OyQb@&m)i87mW-4EcGvik2Q53maPmzeqB=zvRr%4#@f;9+mzQV)(Fe`A9K z=@OgTKnDZzs@+>}uvlVEmK(Pmy-e-g^vWihG4vKuG*-!n_*V#d#x)UGghv?HG5pAT z@9pX}E!3uspY}dt+Nty1@MV===3^7b%pI-3-Xqnrcjd(tW9BGkd)RfpinW-im---v z_X4jM^!MP4O&NI;l^s(4G?H^zZN*m%4uX#^pbz0^CITUmOJxlLqOV1R=`}TvI4UcZ zkB6V?H3Ad-6^4f>M17hkL(q8y@|DvY{?p&5$$NWaADoO|=o`_#d!J8T*j#fHs?II1U35K&JM zhXYeSZo?&OF<8BRk6v=|;UB&I_O3(2KMj{WroM6F1bTXVm`{HPuiZMIn!jm*jJM#- zgXFsnT!tA&_b@`lBUuU=X@>{!F;afWL&R}sDoS?d{pvR|V|SQ-IW#>=)(cvDye5SP z6@{zwj~4iH=+EfeX|fje1}9zrc+?xCm&kuv(wJOQmZAl{S>>!0VNB0YOtG3$%c`6! z{VSdIb#^7Sv?K{ZZ<5?1=uNWvhiK=L-xBsFZvu~oGhW!6XrGkI@PpDM7DD^#alh_N z(3c0bBhTWeiOp&q71zhuLUULTgIi5??vkdo4(~r4<3~Ln-CX%)qegU%^8oF~9GbR1;qb=7%%tVXxM0Tz ztqi}5xndCBS`#py;CT+d#Kh$7tA=h4gu@P1sm9CLE^>+Lw;=}iw2|eZC**1BMjL)9 zu(4at9q9St-+24uzy2O6?t9ou(B;Oj>9^GQFZL=Ik6euiF<(Q2kBw;X+{KWQV=$EI z<{#GH!hJg(&z)L>|GI8%QRsKL_{BZF`qSC76V3?OdX{Zi(!6-%cE5MRf+d?*6qYtY zfAf{2JGu_YrGR{7+Qav z4tobE7^dlImm-f(I%{l8(t4JoCAnSs@&*h6T@AOo1KPr*gg4Ab3zJheEau9qOpY{K zr06{URZ^0IMM_jFGv>deEm9=YH!WQ19>biPfYYZEUH02OT*$I-2`$8h?O|4>zHms% zGSz%@%V`3Qh*@LH3CLUZGd=K0RJ4&lW35u4uT_j5l%xFp{+=&Y)Me3vLSL+mm2#z! za$^1CL+cFZTTxIWT}RUE4pGOv=sKc>(RekEmMzixmc~6^I}RVrxaehO6{KUS4YuN> zq+%QU4cE9{x$NlHA6QJW%xt+?z3=FGN1^%93@hey(%WbzCsQ<<)+u7AmCw+(t8Xub(W};Ap!8&Fw9sC43j_l+d)c zv}ju6Q@szH{!&#loTj&EG&D`~pj9@*aUd1>lP>T5P{OpMo- z_1Ep6eYX9=JL3`%Z6)rmJL3^`B_R$v&ScE9??9VH)XdQ5&3~< zeEm~90`YQR_(|}GPd@RJ6syp8|1-{GSh7K_1%;6 zE4*%ZTB_Tf7x4K4c`kQaa)#aMao)#Uul^=CHa;QS>vR_QTrOV$|8!;)lr?s`eDsTW zB|BUhmN&5_plLXZu>;&jakG57gMRJA=G17z8(+k~c(i1=D8GWE>)0@}xv&c8rlvVv z9z^L3c-&dGbjSLc&Hid{W@cKd%at1#t-VD{kheI>c3)ZJbYqiTc4L$7HA=Km@`dwI z8hT{8bhg$$9N$NEh~6>!=P5cU+)>1bu<;-*d*pBVL61ArR$S~2j!I_zwVeji|@&-J}o|co9U+MEz=4WLiOP04X-xti! z%Ce%9*HruDYFrl@ho7^Rt1s6olG--sGaWamhabc+!ZNkCU z8O`r1rq-61P3jE#nyO2R(jA!_=5-WI##ei8ptz)F%JOF2XfIYfgsjyq@^I$Z;V+ri zGk z`0IQxJ`q@fHVf{!4?@MBk(>qr6!7I&f;EJ7#gX9Lc)4q0i37vVsh!E|U0XUQR+>>;%>zb{?3zRCm)Z;_DkV%B=$BZ2lyWPDtsopJ0;l$Y>xdy!R79|D0~igfRCBi9y3X=*zG4(r|}# z2$C4cCNYqi7w|UCSe;={b31cEV@L-QAUVFE7yltCY{*{W#ryyfO5fc-A(AtH46}Q3 z?c)u9`fX}malYMoD)9l4688t*5waS9eb^rPYwRH59F5tqb%pZ|XzOIxMjOX!;1BC> zVEfg~^C`MPeC!sM!u|}uZ|4m4znTjFx!I|&Qt%7d0_!rqYoE?Z3V zG`Oe00b8Eu$UE65N*dpzmo%FnZc*q7+w;Iy;Vw^Mp(n4fQ2hdLd3ca_`aK?m35mRb z|1rQC;IN_~v66z4k^;OUg{Zan$XBu3lvJV&gKZ;oY`N}i`Ks%$r?jV$c0i=TQp)=D zhO0O8Bw4yxzDl0RQ-}^oqnMAZ!(}*!PviIjS#@z5J9IL{~EV7T`s_3 z2cWM9^uGc|#13oywOg*eXl5ss?(7_u1GoXe=ajzfTIA^L1bk_`yd9C_QfVKIsD>b8 zBzU>4=q!KCc&^~E*mKKZJ~v;^DC;sTGWjM`d`GH-`_ z30}+0c(L@&{TH+9&HdYWFA?nDBHzQfJ4wBSD4gu!?%Q@Mn?Csjk0*DqmoOLY0=?*d zkZv~P-BFgBwsu-Qd#T5k(lx851yGKioWKTPZ$l@UMy}QQ?vH*?p5LG6@dGp6R_9xK zVbatobqGUHPhmqcb8}Bhb!BCB^s3IvaAsy9ECK30bTWnAcJeO5o>=72@+;5#?53Nj zUC*8@WIsdv4oDC9B?a!VPDKu3EdA_EXLduiw>>?(skpP@jTT2@dgj79CEcIxtw!00 zQ1*JX1$v2S4GMB2FPJ63PPtN>nf45SN}6jvY7Je-QluPqE~h5? zFm#=~i=`}E2AEq-j zX)$4*LV0~mT1++kIXu2hlSVz)@n?PPSWNZ&Ssxh|6XYP^>D+BG!JiF(7QAUOHSuSi zx)#$E{;X5XVwwth2brc6LZ&@2cBGwNrYVIwpXi^U+%do!P#!1VGD^p=Ort_V2vWb_ zqZC1=9p*it%QU4(lW9mhAkuW1#*-k^lp@G9DmAW5qg*7@r1gOCSL7Qbwoo_sOuocW!j)g&c#=guGM0z&_UgxV(WK%Cy2Fbc6#7p*_|Q3oqIqiK1c6t-m6 zswE`_{?a9@VkZ>1Gsq~mzAU%Em64J&t4`jD)^ z5>3iOn3G|1z(@K~WmH3jf5=#XN9A`-K zClD#ZLsS~0!3nzPa5s%5iu$|&uTm}2hNabmoPL$Ol(CKQpFZI$e zD@3eZL-F>N=Ppzd^zxS=c!d$d1j50fJzA3GQRock#UxBy?JY=%N$WCzRW6tq8xz+y zAuHJ(@7SP&2kZf~?-<&bOg4%-r|H<$j-{!#YGyIbT|JqO*^bPf87;-x#ktuj3CXjn zN^**Fv*=r;lF(3V$6sy3)d~0^!D1;6hQAQ^C<*d4oUWtzZO{74&e!>k(=yC&C{Y(K zVc@rCwho-52DF|e>KjW;=55Q+_-!0^d&D1a?^rxB7$4_W7imB?6voA;O!0dYGh>{~ z4A8)BBamQu<8qru8J*oO8HXt9)9VheySQ_Pa&wpz;V)Nj*f3)T@yjAO^y*cfhrOg5 zy-m@GU;|TK?X7jdxd5aIv{>%4Vo{0jCRg^k`}dz)n0vb`>!OQrsdjtG!px0nrMCV1 z_aF3iIs0u@+3F4Q#qzSyFwy*E8(MHNtkWQ~aPo+FbB@X&4h3-t=~b{W=b?_s9Y&@7 z-ldl(*v)Y)CZ=o2js%A#&K!SD_gnwQ{zH8;Ynmg_n#pWx2J_*2=A2yhgghH5E4#4B z!2PP9BYx}Iz#ftNP!AZC?tD;?Vr;Epf6K1j|A1oP=XXTNOc<9T;Tc(6KRcIhCBy~h zR94R^i=*$KEMjQ|wWX!CzO>pw`s~Ktg##|{hn2I6N@fN>#D$O9F7M90*228PiVD10 zS?mX;wY8<_D0rk6^pxR28oo4p)z3|D2rq4ViWw;sP@b_rsrj4mmV+W2$e2rYC%5|Tg~DfEOQC<;iGB2l9tQbeO7 zA}UQ3#0FxCf(lWrsMv{+oA=G^?rpg#sQ-H}mv76IGiPSboH;vlb|I7y;!Kti6)75= zl00Va@ufQn84y88M|$a&8kL?NbP`znMIySJ>t$3wjemk095KF=OM#F5Hy& z8SW8JdS>LO7hT-{-Cu;*ULiz#Jv+Um2;nY>SL1Axowsn-mF_q0BcyaYA^Oamtn^I3 zNvGE%ei`DUauDEh(l!tG-ErS3C%<$-hxNfTLE>$czcQ~dBmGRWwv-TcdqOm)^V1g; zv76*L(mNo%UqO0)R@aLo8VF(DfV!x#r1SypshWB4QK_l1-nWzi6favwEWKGPsLNA5@YN45@I((zg550_5+JFJU35eBf{Oq zu{~k)vvW!XF@{z~5mZGt;Pi^1&Lh;zwOzZrFPZKf`v+0!&hzj~hxe@H=g&HhepJ7; z{!`lzY);}OPt(ocsvyFFR5JeyQ3P*Hz?e`I-_ZQX^k8T%VJ#RV0FJm9N#r zmn@L4HN=NZldrW1A1GftA-#iijV9pzC(5EKL30AhBDo}+(msI|$IjSwHBdX8TUh018h3Z$-e``8x z(luK(7q#x%Z0$bnHC+eYRNdpc{koI7t2P>&t~TRsR@gjabHg^uw!iIE+aUYWC#eb;(bpHzf$NY~6xChJ)xD+@t z@YPPeI=#?&Khlh@Avq;XJF5XJ-7Azq*wc1vwA(#>+jHsp|6CV?oE65?_J*ee3(;MS=ig* zs_>xjCE?#h42^gu(mpaKvM_Rganuu07o&cTc8%^9 zJs~z?(g?{zgw~4 zu}foLzsvQmsdw$~@6dm4|7ZGN8_;FI!U3xWoE~U5aLB;Cfjb7iIZz)rFz)`ikK?1` zSH;&P1SAYeC`(wL@OnahV)w+EiF*>SCbdr*owPdX;vnxq8H1i4^!MP&gHH_B4~ZDE za>yq`t_}HnXuF|FLraD}HuUYGKMd0h3m!IdSjn)>!wwI-KJ4ajr{O(@ClAjbzHs=e z;Twma9)5mA`w{UYhK;y;#F`Ngjd*Uv=@Ea8Xc(y**?r`gk&lghapaey*eJVE-A0Wa zHDy%hsJu}XqwX2?z^JXG4vzXX*+02U^62E;S{bj;R>4bgBNs~&e`+_`b@k7wgYj2}C`V*J+e2gjcq zUpv8T!l()NP530OZJK}Dn6y=C>(ch5J)L$q?fS%S6Z0mnnpi#Y>q)VbDkj}C>ENWp zla5VhlVc{wO&&LS>g24+`IE~gKQ;O1DSfBJPpO!4&y)wIY@PDRlp|A4OgTH{{8X2z z-c$XiMof*JnmBd()aKV<8`i;s2G5x|XU?1#^VE4hdC_^}^ET%_miKJl zvApy79r8QpkH{~{-=BXa|JMR_fkQ!fLBE2z1q%z-6l^c3DmYkhwBS_1TLl*jE){%P z@I%30g&hmK7bX^tEG#SBUiebs$-)l{uNMAP_*ap4kzY|vQC!i;qH%`bwxS>BcAC3z z?pwv4#c9P47auK&Eh#8DQgX92uJoSLL!}>;Hk5TP3ojc{HnD7R*_yIP%U&rvUv{mm zVP3m={pPKmcX-|#^DfPgm|r~q@%e}5e>ne#`M)iQUhwe3UJDZz4quqLuzcaxh1Cn+ zUU+R`!=m+-)U+$siC%&I7<*j90@;!MSrrD4$F++yH%hdZBP#aXSb!TE7meOeL#Yo{0H zn+obiyV2e>n)atd=tx>YH_^vvHEYKvvNP;6RhgP^+VY9Do= zy01DxJzc#~{fzo$^>@Cjd>`?x^K+6^3H^Z;UZ=v6Pe!Kjh@_X9v zS-(Tji?8|}_xJP<@ZaqJLI4ZU1ULt@3GfK;3GfZ*7BD1WMnG2Qb5~SXY;Q4GW&}L? zVP5P@s;DRJNh4?s=A&UW1w2;KXP7s5e1p}fO2Okw@c4jgqiUCGzv@}lIWuf5yGp-mM%k67{wO=Ml!ST>2xV6)i*RsjL2VV|c4)Tj~vQ_i>&H5Fl~xA9LMi?~?zKpw(Yu~BRZ8^_kM zL+m6gXH(czaQZMC#&XzDHl7V`f0W^^&(UEK#JIkiS{<()Gvo&lxTg!H`H`#0K0y|B|qc!)l zT=qJ+N z?~se+I{AitOTHs#@EBrG`ICkxwPjV*10%aTMoup}h_&r6|CPc$zXDW zB$1zBcmE7q^lR9}zmnnPci63e!WzFxMv=c@v(~|4zD>pvJ?z?gSl|t04s|E9sT(Pv zUZjM!CuP)^l+q4lKJ_DuXdqcg1IPmEPnOXxWGM}Sh6*NI=v`zZ?MqhD9%M6(B^ziA z*+l!1?KF-&LI;ya$rE%Gc@oc~duTGrq>ki%8cr6|PGmXl3ORqDeZoG2w13DxXJ618 zYz6&={z`wNf6zafJN=8^WIoV%?O7Y<#oU-DG>ZpoOJ~q@x|&X*%ji zRWygrqQ!I}O`{X(Bs!T+qtoe3nn5#Z7R{z5w3N=HWpqAWKo`S$UPPDEd+5D%1KkL{ zwV7_E+vr1dC#|Fp(?{t6`V@Vd9;DCEYWh4qM4zKC(PQ*D-A;GV6LbqbLSLju>C5yL z`T{*nUxnU#gzl%$(y8=8dLKPW@298e8u}V}h$fJ2bRgM55Dc4L*dH{g{N4Pf0L&mvkZLNmp`#bR+NM zsp377NPZ;ozwOYA7CW{^KC4T~+9pwL5odWX=T-d-nk!JAB_<+#Im*JBUPS8&G#sZF8!q8` zi;Pg5`yuRS;5@Kjg=c&Y^)8eTsOm|TDb#jktac-4bNbfsBzXC65ya`)94E2rBjD)? zl#6@ykGM9)1(Kk)0?oZ-jd~w(w}fU1==?`ezewzK$;96h>Q_*18rrfsyiGFIrkFrd z)c*tMrhsl0+F}gO*6bM<3B)kqdX(n>*%X0gj-@ac-c)H)VmvYNwR5> z(br`eNrEwSp-6_nLyKn#Oj8kUk?LUG2Y)I?ra|F`yA@Wbt@mI(1YquGN8pZuaTjqx=#Ct z7?TO6Iz-Vqn)xKepkuf$$p#(J7} z8h+CTlQlMX6L*^=gh4+b-55;;iIrrg;S$$%$WL_L5dS0OAFGUfyb7A{q3q{Lg5Z_w zLyU7VHXk6#>R#xx$Dto(s1Je{lQE+yLqGmOBGtvZRz1Y=l1oa5>`f^4LV4 zFr_ave9Z9v8Hn>mvPSbGS)*k#y&gDE1)W%gtwDPY#XXm;u>uK7{rFhn<4oHV@uLxk zYc31w$>d2Emru8g&B+*Q_R; zwOPcM9U{KkToR@^PX=o5A$_>s5W1F+(L(eO=Ns*dHce6eBI>n969_pygE?1l0t8hz08d)VB^VU zmO(D7Z;&chLT+%Vy}&m>Uq_p?qq|kP&;`9wo=$?uBd6nORAZ@^YAl(c8ce-agK_SO zb5FE?Q{h992T=DxJ9|slnh@9|CSiiN@4%A``Z8GstmXF@mmI6q?@(`Gg~|ob2M0h; z2?t%>`-rPX{ZKcZGv*BJv~VCy{Mq`lAR)t$0gVdd`XSgB(B~Rg=z~gJ4?x%!ocUOJ z6!Lc$vyR@)cl%tJV2SGNjjAium_)XSy%sNR##n#<${2j`FTX}AYZnr@^{)17?I z`P1|x7ojJTaGea?tNH@@y8`owHs%ZD4QlJUl;hM4JJy2X8RYS6!qN zfP2-QA)DUhs@jHJRego<(^QB2msKC)+6Nd$epXl0i-5h&ZR`_KG_xJ;OK%fZ;-C>@ zsdvW0;yiLWFTJ#YxZ@c?7dI)%k35%hR`Y7)P&F4s)J$innN%;AjP$%x@=9hwVLmxLt2jM_ROjVpr<48I_sk=^ z#qkkw+%Arr#Br@S-Xo67#Bq^0mKK!d7n6b_oJbD8!FmF3Nz8{h^8Gf76$pOh{7|$n zKT15|64$&ZdCT)7R;_T9`a&zNoy5^z9PPx>nfTa#ir*WC-*dK!w%u)gZE9`K*}P)Y ziT1?G!Xi9HCSo1I_>;=Po~dd|L!Dfz4a)T2m3HIF@@00ygjy)^U};!g zoWv$uP%UIdRw#R5jVhUq#)=PLyHa?}!AjelMy2p}jMau}-8Fw}KG&Sq?A1J=Db}QE zVl@F8t@^t9y!x>EA@yo?sd}b*6xPT>)b47c`bqVv>a6OJ>T#@cE>Y#EQdE6Zekv`y zj@6B0sKHv4lgfPP-}Exp4fbN)A_vdL{b?sWv;T=zuCrJ-+A4N-8THk?fx33bjaTeR*Dg4C1w|o!KxR9Oi|Q}(`m~&#F|nqLVXZ2OoV!il(?sA z+)I1%Ubvz(h#$!<#BIp8UT zdSZW-hjRLq_7{25Ai;S~7utqroD`pgHl)PNdFTq+3=LkLk_=TZg zIESf-_mksYMf^E_r0v8pNgR1DO1mK!MOrFSOEndJhZRl4i%~+!T|AZQZG?cjI7>ai z+W_Tjmf@_l@(Gc)3L&7T;%6mhj)=KOj^Sq|W;Tz}L?9$YKFd9<;%&g`NNpiWRgR$3 zUyk8tg-)u7>4cCr2s4I{7U2$!!jpM8`@K>4aD+4UZaN4pBxyi`)lZ~VZ$JoNr{=WV zh*TAHJi?0QFe%k+giJF_l}2YFY=v2>M1&NWr3$0-5VpxIl`lfD-fk!nSM+gk=RlnNVVTI6jA~$d<}+?ua{#pHbep zAB&Q!(kxdx%Qnfij4U(BHNzy=EVEqGS(ZtzVX~Hz+K~In@Ukw0i%_#%Q(@0aap+;h z@V?E8vJhz(V=rQ~*o~NkeTmg% z3bfp2GL<|?9)$dAy1Ngtc8|N%nzH%BFxj%=7|$_i+mJTP#X#FLa-p zy^G#}BoZ~d57^E8poJN%6)juFW7u*WcOk?HAypQ+)?a|Deb{)s7C)Uhdt31 zp=!v(G8#a;pa$Zvp%T(%u>$d=k+r^khub)wGH z1s+OIL!vrEa_dP0o=07=j}T10!w$7OW|b`JLC#`d%L{vSZ86iI!#-Vm@)qqteX(EX zN4h|sZc=}66-c^)&(4tkx3N3+F8Ld>@g5DPA+!s)?|~V!C+$vp(H?wf40Z!NuV^TC z%EGW`Gz;}OPcC4uIg&?2`^ ztuJ<)rt%rCw8t@li}EFx*wLy$FO(iVW(~lU5kA?Nk%u2k&vEInDdgcyS0Trh`qrS zGFt3&VHXP?fvJ#|#fCkvN5~R*9WJ6(kj%#+o4X;Md+3vNFZ4$_cC5x=PjM_6NB3c$ z>i`)~pMo6T=F&^^04{aFAD zWSv-N76c6y!n$B@zZ>h$da$0X7Yk**Sr`jv5iF8Lv1rzZ#jw7tABz=x(*xK*7RTaQ z0!w5`Y!LRQhhUd|nAl|>iJkal?6UJGnK9Ud9|!$5!SEzx`fOwRgqDNdZ~ml{hyC>e z#-EVpVi%9^?>+>)2s^0rta- zc#7PI{qf9qvo;Irxn4ax!5;r5ctw1Io#4;O74|Lrj(x9@&&tbMV3&|t zSel-ZkyTKtP0UC~Dx8W7(@V8U;!dI!FY}flmz5yXPLO#^h_FjC(2=vq?8L|ElH}r( zq~hiH1pC28Hh5TQ@31ht!3HwwAv4p9?T47B>7A4yS1+NDZm3Lms6rx%yy=cSjG>XN1EXj3JwQcbvujM9z~ zq4r}eDi_vUW-ca4Jr)h79cz*;N)#O$);mr+&P39ZWd4()G~W_?P)k zN^%@$#_u?}`Nv7kuNhaITac|CCptkpL1K4;kzLyfnYmfTStYq8+6mdk>GQJeCmJKA zCL0u?ohYK@Te*D)_0dielq-*-Txk@|HfELz2#?n0Ns^gos3k^Gg0?^kEieg}^wHqYYHc8=I<~M1OW0@JBWpcBZ z$)l%CjGi)S^vsvooNr{)cD`Zs%$G*bLSv-Vr-LH33r$Cl+^&OSw2K5eyF~{1P|cb? zO9M>Lvnick+LNz}i%yQ{Ee3yRL~l_IoFxqs(OYVZh*0?)qofn61nEShghqtQ;h{=? zF@zB>n88^n8JtCPA-yEg5xs@7!M#v6h!@R=vvRMb6Ur0eqWeQ5!sPP8S)6-Eh>?uV68S#L;y%veK3=((=!DBH z7B06~xZGmla*IVOJ*>pbH42w&7%AtERO00thRZb!munaA@dcf zq*M4->aUa|^BXDCkCe-cl*@^f=|m{}$>l|c*_K)Ku$(d}M(WYmOoT3}s3bS9us}TtQK}?FkIliAdMIpP z&G7W1qI6h@`7<-q*~l_Bs*I)O!WzrvHZx1fRi)+>YR2Sd=clX2rkCl)Nu*RMIk~C? zAf+T%Dkd(*PLy9-SWsBvAeSg^Y*3=Ou;m3x@iKksMy4rl?2_}dvgJfPxuW--$2pkE<%KgN0y4J=JKk}5mn6-Rh5{IPhbUQY(cKBP^z!0 zIHypGNeI)Fh)S2D(q(d`i%{VV0JoY#&ZjM>D^-GDDa^T=-bm3h331~r-zdr5E$*cp zGE3sdPLw8Hii%4~KkM4e{Bn94Fni(6x~3%{R}Rcc7!DhC*o2#E@f6Dl(-w0Cd&oP|X>Xlzd1KC2)z zy(CAz&Np03t=@Z3o9wdOyu7UZLSq4Lh9F}RZ6uP@Wy;*7ag&3xi?h;ESz+ebrWX{J zqAt0zZir55XQ=%2jOivdHyA~saiJ_BRbnS9v|ULN8e@81R!PZpAyLysfWd|e3ymM7 z&MYj*RwtDei=l)Nxhti)9QU#a#mfyMi9lFroS18H7IOy9lBk6Bjl{aZQcJ}0ZV04p+lO`k)Jb#nMN`0}@_nOg); z+jf%s7O^LT1mchHtBJpc8SoRSX{Zs$)eWa{{u8(^N0SEGr-|P;oaX5)|D>>nYoKD1 z)-+X9;ihT+*|m`$&bjp0Pzg@tJCpd;N_?$<+6ZwboV1CsA8V%J_x`x#a_(p&f z&d7V_HddO{rdNeBElvmU1)|Dp7 zj$DS2BVI;BEzhk`gS0duE5T+@GRNJ1o<{K!WF zjzUgJEXtE*7P}-oj!SbXa#tGjDpx#ZLmvQfyjFr*A8`a%(mjr%PkA2rRN;qG<;Qf6nRjHV^R7{j%y@y?7)vo}rUF}8p)1;3KRV~s?m_A}l$zOp78 zJQX-L^nK%8|2Bk6lj)zSrnSbivBu!cM8-^MSY8|RNLQj4{0GSJMx~f(7+9+WF5*!xg_s3#u-`3EyqZ+kc&*kq<0PJW(Zy_$`G-z z0t83a;zR<8Gh^9Ojpd_>W;P86O)(ag@~xef@nJ1a3gi6@DU(KZrP4x1%BFLoF|=uV z)?$pc6RjX|4YNu4vnFdwoOEtH2Se{+G;@h>k%Acw1Dq;Wi*_0!NwrL-jUMul;d=6Gs z1=ITQkj5!YOR`LD8i%~{xUmS8w8;Np#%i7$b1v@uP8$DBRq(if%m0iB~#I#`)A8c{$m@*Lt>3NxGW&l+th*2uR> z>RrZbYgg9tSf*<*pjgjsC)lGnw&_YJq7=!*zdLao}wNag+{R7mL59YHuh>N%$|$O_gCu(%4IuG5^KA zB>z&qjANnYdN$WP)_eZnbK6`?G#B^pOa5;u@YYqHH<}+q|4F$F-+7@}EhF%^497VV zzLH_^U%rb(!fhDYQO_(N`lx94X3M&s)o55dQ?68^Vo@N+x}zs_gy%Z2yt zVfbwx!52LW@imW=p!*s;dKUv*>H^x|>Jefwx^beHUJJ>*#y%sasFq z=bm%)BK+od&=27`x08OvJ;`|%a`@U+;O9h^lI6Hw0UtIUJlP(C zpY~4toZ!Q@3m$6RZ`=#t<~as0yyL=qj(?+vk~8=sO(6R39IpAdZtURC`#!EO;tMr) z=*t5 zArXHdHWqF*kPo~w1b<_1;tHSRwxkoj4&;Nc7qp|k#1me} zok$yeDX1&yfUgDN4I6j|ClGsh0w>~~$0Ry}IN*y~_y{NW_a*J%?>iPp{yu~nUyhkb z9O3CZ4c9aAhKdv9E(4CC_=XI^b7?NZA%6%dq=h&Z(IVmuNt}z6CA0(~rL+{+i|Jy7 zm(y}wFM|iKFFbgc<9Y?&RM9{>R}mM;61*EBqpOkfK6)Rqg|w~#g|+bF?Fp$}hxF^= zv9HEAYBmrpqmGlv$c@+MoRZroP<7eMr;7yLkPs&p%!z9TFfEs zg)Za%@I$e$GYsFaa)X!qDChz{pLB*^%Lmm0{M49Lia+CUoBk_!8Sg^GUkz45;DjM(~3^ z2c3pDSMcj1G+J9TjmCAEpRCLH{N^rnSsO{0;f)C|j1#WEx(of)Q|K=bp}#z7XS^xl z0xcGdkrqNjFi!Ye68^Ls4TH3W(>~ByG0<*!zY*HaL1?!&Lc2K%?G_B}HX37t>ot|o zYXSHw)+EUKWI7p|0`n@4(`h;+o@+Wcq3N9X9E)p7#}(i$x&Wc+oQ0;d6PnJ}MAHTG zxfe9~y9(WergIjWjtNaig{E`D+<6a15!ZAsvZlKq?=3jV`VQ|aphT|e@FiwwI!U{E z2<_%!qTRI6ZVy3saP3BgcJqUF+l6bc%c#(0-Gwf*7rM+t=rTv4#o9oN9Yh+;_BcL= zcNAQp%ka(}e@6k=T%*~W=`yaxsEHPHz*|43!86xiosQjk^Tx2`pZw~uO32wQK7#ag#HQ@nyU+RmK`)2e$a7T zbNLI+L_%R zuh2~$g>Lc{x~ZekP3}TBxeI+{Z=#R9gg$bHZS^2D;8wO3nvv@!I}_c6_x7Oc)v#ax z@N(fl&qdO?`J?+-_d)nYNIzG->v`8xu15g=d(Px{#C5O5Z>wwTe;ZtTnx)?0+S1S4 z)ydUH`MLZpe!si??(((E*RI}o@Y~?(?NVd%d*8+E=j!C;!t2Ug0q4D_`(A#H(5)y% zaOv_puD0@g{0w@3%cuc=-kc{_Z%)O_MdTAyaL?NdoPuMX-$~FwN|772km`Z+X_t8C z6RzIQN1dykJ)Lcw^iDUOesxR)`YS&NVn5Gzgifn*(J<8^@PIN@Pph8B%rR8VM+9$( zMPObUhMC1n%q;EkoytO3*L*hd#eA_`yxp-2Gt^$_|8QvgukfZN*XnsfhZj&-p?GJD zTb!$f?tMUL-K|3FZWEezyU?^dgpPekXxE+Mov=z_DLx|f;iLQ+g;WU}?g^pU_6jR) zpU`Iep~nu81N=QI@-!^1W29Q>rRRi2^*nzU5nmGFR@7mkg0v40jeiXC~Azx_ns;cq{Y_xSf0 z$ptZTKf*gtoyf;{(ZNcq}k+qypvQ)eh_2%C%lWag#0YV@(nRse-WegS9}NJ6|_5La~fRmY;yw7wkLs8 zz-s_@3drlg8^9UhEbu094tN)M4>%880Nw{a1U?2n1ug-f0iOe309SykKwZOW7;QYf0dNGI0B67ja0S``Zh$-B z0eAvlz!3O)3BVEmD6E0a?itZ=SEuPb0}ldQfo;Hc zU{dJsw27U+r1bF>#A^bMZe9j?&reQ{l^UhkN zi;5Ud1-;H}^gtP9}D81Mi*0WT7Q=iLyj--XazU_DR+Tmou=8zhAJHq>C9B!qQp zcokp7rdTs)fC^9p8bAx^02{y-umkJ?2fz_<0-OOCz!hi%xB>2f2jB^K0Ye~5LuJ{l zz^;tBeC~mK?ty&nfqd?PeC~mK?jbvot`cqZFz^WQC{P7F20RYzLc1q6)L``2U{0x_ zGaD)~uhfWspNngFqKUpQ$9Xxhs$q|if%}ke9q!j7?L)v$;3?n?0PhjZFEyB7YD9nk zfV4j%?G4=jf$N*-Thy2N!AkJQdKLPR?F26r7GNZq^FP+?m9X_HVe3`G)~kfAR|#9M z61H9??7K>g*Gi1nO4xUmuWHXZLXNkdl}+W#@+c^r9m zMnyG7MKwl6HAY1>MnyG7MKwl6HAY1>MnyG7MKwl6HAY1> zMnyG7MKwl6H6*thl3NX_t%fvKL;9*Aebtb@YDio)cgJS_I77C;(PD74nB{=G+3+gl z9M`fS>=9DdvEd9>*RUY~O+uhar0>CKaMl9++j%ws|EeDUA|C%Xo&&(YxaS1m%Z1P+ z{F_7kdsF-?RQ!8k{7Yi^&&dEUIEbeK(|}w6J|)m31e%0ElMrYUaEWw&|4R*G80CC~ z^O0*hQZYKwPS9LvrE0WNHJ*;HpZ+1JJXl*%FbW1ZhhFen-)ou>0i{N>~ZT z2xBEAMda7;Ha5_hCvu)9-a_*vHM~U!0fT`dz))ZqFdP^GDB5KouJ;47mJw2Eq*}w~ zN!+n=P=60NFL(pbSgDb?H>3e)BcO9~@a(|3--G+{;8d!|h=vh727ITWmn)EeC&mfv z2nxFZ`tUR@2bKftfFDsRbTZoOG`_6>Z2&p1gq&AG&MP73m5}pF$ay8?yb^L=2|2HX zoL555D8&c_rk$5^`P%Ij@AA<7-p^v;pM25^`P%?f(U|{}&2J(2^Hm|6YLo zdjaNEgNCewhOC2ztfMx7Eno-O0}g;A z-~>1WE`Tf025HSTA+Zj&;zCbr>I&&?S}7C6&CVp-;HBtb?|!gSM=LrmVw` zOA54Q9kgW~v}GNhj_aT)>!2y?pegGxrYiBIbOKLG_>NV>YBn862Qq*xcrvIVZ8IRD zTywf$MB!PPTc8N7L}(4ZheM&C7@z{wfCkV4I=}|71?&KOzyWXsoB(IQ1#ku00B(Rg z-~o67UVtK1dr{IpU_WpGz$k+>)j*nRAWb!prW#074Wy|C(o_R!s)01sK$>bGO*N1v ztPTN3ftP_-fLDQIzzO&eoCHn*uL1m>gx7&LfOEiGNb@%E4)8AS-viDA7l8MHiwOS! z_z>40;rubq&|Ksb;8R>*0_qxSA!)Ucv|317EhMcLl2!{ztA(W1Legp>X|<5FT1Z+g zB&`;bRtrh1g{0L&(rO`TwUD%0NLnoNL4MQsuogp9eT$HddCM(OEuWVqOhI#4!#Od z0~$aJ=l~nQ7O(^C0SCYlZ~~kG7r+&01GoY1fCu0Sc;UNOX}~lf7g!I}0GEJT;0ESZ ze;@}lh9t!^po?cflKT*i)lfcbp2fyH(Nuw39XN7Esb1K{=l|bNFuqXN3#+3fJksBz z^Bv->y3egUL~-$kl$6q8!-@wDDvggXjg2kt(`R02XmR)M#a+A3>(r^(&#%1)z=Ggd7kW8SbHKu6~^kj5R6MvWEKQPduS}^xxG|74Bx% zqN0|`F?~|dqAM3vEU3?KzLxrPH}^KGr)b-gXj^~m@%FINw!u+Ro?f0#Ooxl$pdj;3 zHErk*dxaFu32aNdCUxn3SMRp2QT_CRO*6#oMt1cJi0wIPWQ=oS`-$B<+I#$U!a8>e zkgi~94AOv}EHFUp6&Ms19_Gs+Xu;v0+UEL2#kwUAPwWuvX`kbnlGbhX@C4t$c8)n- zDZdS#C(C2fy!r*^jOr!_b`R_yIH??`*pRdp`q!K8Ib}ShLAyC|TbsIty9Ea8OuLGv zTwDG1)-9X$@#f`VR5|H?J$SJ0u=Sd!f~Fm4!eW=HcD4|8nk-RfZ6W5jp0`f^eMtDz zjY<#_j@@%Z36O9ryt7UR^vkWYFNFF{t5r}&t(6*Bh_O-wx_y4d{M$X6tO2C=t44L; z(yMz7t>ld-l}^T1YEEdC&Y&-ab}7sY@L@t=!`iw=_q|BFRbFi7f*1Z3 z)UF0ztc$Ffbc~dmm-cQ#RBs=(&K4aQ&?Dfkz=`EJ#RjJ>zd6s0DY*}H{0qK1p*@8b z^XL6+s_(z6s{gV|-`=8(k}CYwtuvztS?5xNIY*g0ENOK*P(RU}5El}<)Qk*rTh2jT zDEI`#;UDSGdO)8sza9D>G5Rh$I6=31Z}u&ph4kkzS}>bws&2h{zk$+guov25ZnJ;Oc6Hrb>}!R4_%O*cDCS(#7NyJRAGa;X;)e3_x+1e?;H~MazJS*BgvS3A$-?mcL&SFYAQ$a~m18J9Jj~P61G9H9X7Pw1Xj`yiT06El zHZvCg?#k%bFXOJB0|)l(5f@kgsW}r`55&c0_Uk9o<;V4q($!U%v7xkN7BoD!wZMZl z{cc*i%B5=xba=3beU8`Yv~K)b(&x92S#VHcJ~--Dm=!Haj`mHoKG(6(un;^C|7c-A zsa$a>1I851(!V}h-!qZznWb7;@5C0>-@|^@RIQ8o`w+LO^t*7acUo6pw+>X-LMN>U zRaf|V27#)pzto<(V5wOHJNt)4@sz}5 zZ0Try0^OEWoUkrmpR1|L+&8QAg}~k+XCEkkVdlC4rKu^)My?r9Fl5#;Slh7;wVJ`2 zV|)x~0y?qCh&G+V!-$s-%1A%3Mb0 ze!1_|Pd&Hx)1UG^PE$YojHVvfH`D|lIQx+P$3utoKka;Te{hYy0d}V-N!X8AA>!7f zs@d{Xewdn0w@{|AFK0Geu%To=({f!O?iC#l)34dW>3f)Vw_aQA+d}!ew1Wrrzt(MU zkpsP-Xk~Z)H}vlwIii2}4KJ-~ zokr(b^~;8hzdqur!(yz8ud1pqqdb1q84Im^F5qLnxl-}JoYnu?Qps#%MMZsKi{*>@ zioV9~kYQA`$O7$z-roB4YW>|U@gWZln5fOQ1inEcw*>ru{RkKln$QI;!=Fw~6zW>& zP-nKV{$BQrQE&49^@6BfgjP|WNlo&wC!j;>i;OvizF5{cKbLuKgG;&rtzgjOwAQPmGQq4S-E&RJC7<`EDFY4r>%TN9g6qJ=MkzyXE)5uE z)^peGum8@NTd~CzW|Xp*$+<1Mn)SpZS^X7bem?4i{cVtPg#x#~tyK5%J^sI4sPoRI)4>VHK%J#OBowqZrZBMk6XEV083A?KNsPPfQmyCq1 zJpi_LZ}+%>iMM|-me8b~trV%WO*pLEK=iD2+t#E+_L;D4gXFb}6s%ix@^QerMg2Hq zvDy(9cI_dfGzgumI)gf5U(l#?*Q)x}r?Jrb^O~y7dWTK*3&D)A;s$A6<#Uz>&mFSC zs1^oekYq4=!8(nGk;?5F_(;FA{r3Zt9;QL>eog&jw)FbA3U(ubVs;2rF!Sy%%j` zzH-P{bXvjD#UZ7Glr_bXt>R8=y3%;6HLNO}@)@B!I905v)-XsPl$6-xt>aBu4cgvH zzUn{K@E)}1?Oat#z$;pF{URHgQjmwpHBKe>%!3xYH9)j2**lTFIa2 zVXoJ@aQ>wA(^mBAy8W|T#gSIngRS93vPIs(xDd7oMuuy+YaotmH>=uj+H@NWOZD^F zeSgnj_t(#ZY{HV!n2=Z@ zFQ%2sbWDv06D}yJLjG`Yp^|v0+RPtdQ34NtTv$r*0uZbB;E;BMg{0SSRtzJavf(%e znycUiJ_0IPa*;Sr63gK{waEe`cJ%oE|4n(t2yMlC%^z^%C8Y6nqRyMOCM!eWW(!gc z(D7adH*UO_k#@_0M>mV^!Bi!9-lAVl2Z*{@q*A6Nkt!6l!j+o2VK(Bl_QKA%N7PH2 zdPK^8NVymmg)8@HaI;+V;q1<7G}*M@+{6?k+UjRe{7T1X7jUQ&R(!atEB!VS8O=f>!pR7l)G}Ig&IsAzMGqzG6d!Q=&dd~K3lW{FHOuA z=!d0E%o6%Do2^X_piS}K^p{L8xaQg(Ppx7#0P7H76>B|sG@>guyxVDWo4Y6WDe?Ez zZDDRc5zlm}x+gF>KdOJXtih^lx7)?0PwX*y68ap}RF{QZ@i||TE2wO%Wbcz~(1#mS zHwfPjtHsDq5WB!Nq?eCEtPNs;5QCO&e5F2}eRQHe76UMi?X4eL@5Rp7Lwqpj)_ry$)wuH&UvL1w-X zl8c#F8I!P34hYcvwYYyV=f)NDXJoukbY}J=Io%&BjDfW-H;Im0q1W5LOF@TuZ9fLkPmHOX_1WyyLw{?!u!R-!hJ`yj-#P<R&w+C*9EziCp)D`x>H)=(c8;3 zj1P6@R3I0eUwf`GOlM0lqVQ56X2d75>#xYP%v;!m9@yTW}t*Q0GzZ8cSOPv+-nb&FK0{-eXE#;8+oW$^Ygv=i3= zSi5La1IXN}rZ%-*@S)P0R!l{cI!Kny9IP4gH&snm4b^|Hjxo5C|F)TG_D)g z(BK_A^q6nlcURV@>fPO{a#{ zvF3PDORXV4ar>C;8Hrs!!@6b@937T85<7qOf3?&;f-k<5ut8ZsYlby&reBVJ;;m$d zdCvI6EGGDtIFs9Iz=83t;_7BJc8Jnj!4`Hcg#1`*G5+Y6Lig9Dn zt|2XtBFlDd<&aXieGO935#CV)pjXUW^-f2a1?%2-INr=fnc6q@qiEIWQ|c8ikG`Zv z^=d(LS+|=lD%bp|qyw5TtX67p&^6cafPsbL_;ZNuvx0>gHufM0ZLY=8d5S|IvV|KL1x<@y>ni3ox zO{1f|bULatdNNp_6xQb+^-;}qeJS^>+wDj3t*B;M@|pgYkLsZNxoMYOZl|_8(K2s% zPM4ln!ttDrw`K60{wcnZ!=K*~ZZjD?%i$zYJsk1UlkO5cWwzn-Jf6F;59|wH9NRY7uU^xKd4;yo&(Tz=G_H$}&Mi8+ z*j25r|BOAO*0@Ysl8{h7$wi}5N}P=n-K7$Fnb>;9KMyf!DTNB>O=-(}3%zgTu&_yi zeFxIM;r$M0=;zbb0~UAn4`Q@O*WkG^`URRQ{m<=PV?$ye9h3ZEzoFyxKhZ~HBf4Zn z#ujz$0>=kgW{eh%1|P0#sjt+3>6c~Fiuy&(c2Wmgk*Qyi)pF->F4kht_+iwY`)gxg z(WJd~I)7JxFh!ec@TaQ6^#SZd{a5Q~pW7>%YW7_>Iy#`yheg#dvut^_R61s1K5nGF zcRr4declugY$Zl;{YItho99GX5s}2875qp~wmy6$8P-Y+V%QW*)Km5bXeC$1HI~-! zg_RfHOMHBH#Q%G3vHH>?bIem-meKcVU7MM&+O)_aB?%3+>IWdrQPN(Ryp9Pct)48n zb59jt;q`(SmzNIr0b1@5=jo;KRe88OF}7^mFAsZf?ey(qv-i#ji67Njzd62WOwVPX zKd|A;E#40~=RKL3zAbI^{65sD`~11XlGh*i%{scQ?b=5ZmW=C@91&=r@78Zj(U3*Y z&7iYhUEY4${ljTo(U75OVJ>4FdW^XzJM)pe80Zzjp^&w{Xg^`!!GlFw#%&#+)mUfS zd#Aig3oCcduz_PPjdvL&kuR6u3Db0<=@il_WGI|dZ#tA<_7l9YR6?=tnBc9k@tk|v|mO^D=C$CS_{aN zyg>HPc!wt8NI3%n{pS)tQI*&fnA>xrGu`A+kf3KQ8YF^JZk0wNp z2-LT8$arSy+ux%Zh2PeL(9hWS!la3vFMn5NueVh%*V}5`)~);dM~r6dh^l!S?(wYn zxQUbxtBUINQet-RCioV}S(H3N((p#IJQu;UR%D}Hr3ptZWi`wvqCD7F?s_j?9_+4i z!tJihmuqidlxx%yjfbh97Txd>c$Kq+cGq_Mz7^1?& zN|?3UYGM{Ubd2d)7VFu=E77xlxkd5Xv8hXgI%;gDQ;k!0-I=BeMw>!9G$$~w_$n7~ z0kg8DHLg~aUu|vFnexz!KPWfF2Drf5Ew4Xczv5h&u3k0M3asP+Yu9W;h*heKt!j*x z+M-Fxv*?Qn*5uHlEt-=_g%4@XDcZ76S}CIzOm%EgV$DQ`x>{LSYO4DTQp8u2I!l(Q zyq4Qc->Ix_c37}&Dc71N-b*oKzDar4&bC-4k~o*=6&>H76crprk!A@ zpY#S2-mez38=kbRy?@k%vO8(zO{A`t>^1Qw(v0Rf7V{Ec^^rLKlspB_DfdHBAH+jJEUS>6(+)O4+2Ac^$uRm;qAtzmuosot+^hh#mw4ImUaRB{j%Aj_70&rg z%Uc8b&Wx&R27mqeORGesY4)&{_K+-Jyb{fATB&()L?^k^-}FAu@$WZ3ulJ$9KBv#o z=dw@OnfgO)M14$sFq>MB?=lnosnd|#hTF}OIJnX;^&R%pyXo@%`i^X}Dycq$J$(D+ z`X{)ZDAJ1_g;WSTQOU*9(3{tdIi)VNo}c#~_kWgcGKBG18xd2wo|zJnUIpZ#*7eZ1j~xIfQrjGr=n6Q(2w^&V$3e=sHJ9^8?^_Y!wk89 z!$kFfF~4jp9kxz^TS)N5YdrfH$h{KUrDzV`^zAaJOK2?K^o{E0WF&6Q9y(^dB<`8x zhmx$$4^%0Rz1zfYxBg{gsf|7L%!;HW6VjD~wzY+9MpFLNg!dCORc`fEbpvkbHXYT! zuM4>4w3bVjNGl{u@vk!EU=MTus$^q6Nwym2=5oblLH4gQ5TNPudo#X98p`8ZV=CMa zl=Hx?Bm)W7|3Lj>V{XYY)HH8OL#^ry^?0mc!=?~VWc)4I{w!J-#ou1!pB})hz}K|# zT#Q#@;hGc$`!f>n$?C+bvYzzhq9;-ZFCLwG=J=2Z)r!XocXV9e`O5QK-s|S>aCcDj zw;Qt`n `V4<&Ut-Vk(Y9GyD^Kxo@91UkSM^Y4Ue}FPg}J>-W9!qYv&))I zONT8V9Z}w~gPpri8^>Ow`u0l0!kdZ+PPN{+3MSkKmFs2xG;yc=vU%th{lzdyTO&NWA&JHp9eF2ms3@>%kZYthf-lNWc|1L`Bjk1E{i`VT6lmU=@MB-a0<<<&a# zTK(hxi81*+1pkDH{)0R1E0gN+Z;af0H3Ss65@=v2+gPwKMrZ%87s3g?Kdj^&fPiBBv7}r~V{~OtdokET8U0 z2j6jpN11eI$Up5>^#JYnsDT~n zDOTqt`&9B|{Ra~yZ7bQcl6&ile^?v1Z{EE54=QBPyEmYBl^SuI#$+Y*PDdxyt$zDI z>l~qK)Bi;W@%nHZ%UTcdhpB&J!cbq?OO=1Pr~d!Y_8xFi9qa$_&YUgSL8=N!Uj!_O zfJ##l3m{F9t{|usQBhPB#eyIz2!di)j3p{+G@3+HjEPCEiOEeh_2%9*({74MZi>Pl z-tWvgOLJL?zyIsUU3T}JGtV>6JoC)c=9xbqeuTu=?u~fJF@l|*txg5k*`O+D3}lJS zbzQ~j!*x(4jTS2u)Wv)d;~%oS_b2AwGkNH~W5-D^^xYowZB|>~4U5xVCo>nzsj%twaz%t-4M;-P0(chh*^a8Vb&HrYXRDD>XqK`+PIXVT7OpY4Yf3j`TaQnWN_f!u*Hmc+890kY0Ly7lv z?0sDPce~-fcI~~V9}aKPUbu~!V1-jxqcAdhoIBUT(*OE*R3ahp{-Rl8;@|9<;jNo5 zJw#XA*5WMK14AISX14d%knj7USdxx!E53z7Tq8q5Mxsbp*y0VV zJjr+~&A5&8^NtU#8ocg_f|IX1_g9B_)jvrpg?{#RL~*={(Axdtk57zw`OC#Gt$*>q z3vzwuYzkYK8#{7Qs)bu`(pMWFp1xq+V|6Jj!kqdFy$6*Xk4;(VnO-(!$A;laZsLli zoBXL+X({uRA`J59;V!iI?O-9?4F!owTvcN5{rF+z4Wh~kk)L~*x0w&_;4yqmxD<&xDeEnRed z-P)IzfU%gat26`kZ6&x`KTdbK7MdD$x};KQY8rX;i{+FSe{tm4Z^LWdj_0jB5J~9y zbBp%7?+pAFBq5KUCZwiu+lb8kf)`6){O`O>uiD)Tcw9LI?gwQ4V0f7@OKJCT_Q8Yn zvN2eaXRkYeGCXb}Is=}*@|h8k#94CNPBsQrb%#|wYgQP6i(EKHNejMbr<+_jBOM>o zHSx{X7(RxQ+>GGHM!Ah9ZI)U0*brAqq2FN)hjv5wL6C2N%h~8lI$QT(X|JXnV-Qt# zO-=V+?hYE4n@USQlZG0aNz56}%L&SJNX51uo6(WG-(Onz-p)O5<>&pgVp&6Y_^!gD zJ<}r^$V;X>F_GvaM+j}$DYhOvBI(%T0b zzbH~QD9@facje0IqO+s7Ot`CiMHpvaB{p3kw5neG>FStw-v8q5*FVpn=Ucs>nw6CB zvH3z7#wCy=&&-iz5Y`Q&5RX9+y?j zZ{pB4{~tgC;wl-n`;6hxE(DBXA@N?i>{W5^P#>t>?`4!8{t_;dlk2aZV8lII#*hL| zh{}dxbeQK#!U+EV2 zeeREVV~82_b@T*F?$wa_LhscuidZgO7=Ic?h5IWW1Y5M>oG}#ngA*~&)U0$Y(hpdI zf^~lZ>G~Qqk`w%RvF-;_ODGLkrF9)>F<|tNfst`T3ax@C`1T#_*;`EpIwd$vG8-X2 zZ46`4dyt*Suq6RriLQf^@_f~vvy-P-xW_tMjW%~0VjE-WLXH{hj(&zQE8JHx4!!9< z`es~{_@SG8$6t(Lue{H^Hij%Tsz}U@iF%ES@Jia0mD-{HK9>4oJ935yf#;V79sG8k zq*1ANDbF2$?DFNNW#>k3nRu6uYx#$A7K0{=RrO@x)iG~>@WtD2e3m!gcl$ow&rqoV zEf8-Pur~u|`y%TGJ23bb3?EBCury;D+n>E`?H!{MhHYIRKT~|1E>~81#6>u`IQCu> zm(-jiJPp$q6c(w{0ywk1y(~u-EWwmz*qnY^Xy$B#0kT$@!Khc(3@NB|+{`1DBg%&# zO<2BT5-}@NY0Ou?(4DF(Qt#aO@RaDp)9Z+XplSYKM8dFDuw_3ps=4wg7jWfSAq>}U z@c7(uIi7mg;s4SH zbuMxfosqE<3O=%gfoBb7M6wZE&L5&9^n$$YY5d>li8?o`znja66Y+6>?)|^?g|F&t zhd0ZclGpWz>BG>|wSNP9w)X#Z`=Ririfzcj^MYk*4T}yrp4blR?1X$XEd&FOpAjs1 zT}U4@VUJV9%7mzuu^u@^uW!oSF)!G*Wls43s!iEl80FGzfeT%1go*g8ozMdYpQooh%Y<(G0+lE`C$j_Gh#wtJtNV7JqzRjAmXHT@Y zN>who*7*$I&ChXAokr#I+guBks#Qvu^ZjnfxMCcOMpD$v2(lfoPnOwHfK~< z?@aWq;42wHqci~RD2`#uOephf`8p-7KCwJo@mq7f^DQwUv1J2RgM+^XnBV|vtifXb)#~Q&q+F2taApUl4MuT{C_FgC0G~}zG`q; zz$H7AUFO}2T6zi|xnhHIRuXasMSEvhT=sFvuFu}?798=C_T7@r20_ZcH+y41Sr5V2 zUZ5V+O}M|6skY8+4ywCfRA^s$XD*2{2)iRsJqW(In8WW6{`CUS!y@yw!scC$fzWN| zg(JSvZtj7@EOtgtGl+t?(nQm1g-U5ZacuFk8QEm*gYe*MIFofFr7GrzG8v7G{de7@ zCngxg?tZao3_U4k6b(CMfIbe^#oR#9K#sf7=p$dPUUU1;DB0un1T*=W=s}1I7ScZos7J0Ao8C{YgV` zIG?{}1ehKg=W{FYoZeH1C9JCr)ecY}?b+E4OgY`r7+lG}n<#rO2lGAHlI|q?ca1>z z?&R7vh68u$8bL$y=tiUW%%dw|0ZwoC=ys0C?WZ9 zyT^e9$c{yJV2GIW07@{o?E~>BlfAa?eAdY$(p8m$-E9OZm+l?5*NvfQ$Wi-1e4}MQ z?FerB$lAAI)yOE)-ZIkO-S}QaoiWt!_stqXT#l`*^w7}3oWN#Z78Or+YDj7pubVS?8vKXk!}6}B|I>U6@& zi*2kjf|w+O8I7bmmJBZ@gFE47RN^31K%5>-EH07rdrYtg)9XPz-GyF$-Ew$Wda>Ao zaf)HZNZ^((t4|5v>V2^VRnN(1fcwcC4<@I9$?!{$i7U&%1a8f`Vy&5kJ{T0+{ypyq z?apyt`QYAk)c{R;+!cvWBz=ulorD*N`&5{1Vr3G zJruG`=k*1;m$M{+{Lx|v9`|QFZG`J^qA0j-CDspCZO*-GHAy3qtSbAo2Q9Fv%Rc6+ zJ3N#)8Uo)t`?M|1ciWM5)LM7g>q(<{aQ&Ebj#e?IJH9b0$>=xTmnc|b2$#j$Pyer)k^uNOJyWfIYSZzsqSUFjWL;09Nw?(wk+R}|hjx5cp zHVqy)-pOOh(vbmG0e*f1;SOkV8WlU(RjcW{b%5z8kL6_(bZ}*&t_N#}YdALYj0Zit zv_@*!9IxowCfjQa7i)Jd=cDDT+#-XY&s@q#WDe3Ujps|JbG+Q8b-kmZ`}WIpA9D)y zVOn5UPgEBmWwHy+w+obxE`{zOv24*Vg;z1oo;+tuD~0M5UG(`nzp|O;c&f_TgK%)SsA=b9wdZ7gqFX7;t#?vf43Q*6lhy?Mu63b%W9h79@`j z@pE;L$&F0gHY0lb>>+a&Qz3nZXON$RTl~`ay^mp>I1YTAP!~?NrF)7=42JJy53u2O z_RSumq{oSmFiO74BaFqOhiKiEQoSbj05O>vNDom1wL}L#Vir8_rJJnO9^y$Aa*C=) ztWWsD(Y~QeM)Uw>1DUGVdx-vhl$Gqko>TS@$qKCR0h$abxk-qnx2(-c+|R#h0aen{Wmd;9gXTev%I;XrX zE6WNsAwIz>SNQXU&ks{CY;&XehD}a&4jpVRjN>^3 ztgYKy!X?TM9WbL z644cG2i9^k3=X4K+s+q4#R5=WtUDMRAj#h}1c!_6H;e+4Vad51 z!}$nyu7%M(+-V((UCcKKze6#L=HWfUL(0Bjc7|TQb=PfTCpidL7=)~sV1iMoN{Q04 zw~Fg)%s!XARowxmPqGc4F^0g(uBwlX0%hY1Zx!PnIf^fNtGa_n{%l%h2pD%&Wg7)` zKPPd!zB@>C2+a5;hG5B#D&y4DLt~z*VXRW^eU`g`6Xjqh{%=*O)SR>rwg8CBBHfm3OOb*Q!OTvOQt>2&v>IJwI> z;kk z$=&xQa2T8comh@o+`j?X_;k=y7Cr{4wq+>hX{YgaHR!8?2dkU)r*k*N{oO?wzI-5K zcz51K*-UyepKSO#$!cA?q9^c7Np?_o*g{j1T~lTT@zJ}cj87W<8qK{^(i#n2t9u%e z8OSOA#t=a6n|jV@N7;H|uS6yga&SgSULmClcam6hJRXs|KKxpH5V z`Zl@M-CmqWdm=jVo6m$jnb?{B*+ zEg;iLN2KXf*sdT38ERD4NDLs1F#?v#-Wbh3$hwk8NUG3zLd-f(Ldk^lVitMyg7}p9 z1a+cTVk$YV`(F2NazTv7(~j^H=}c4|xR8|cwiqfyn~%FWZd3!U0v zT4`p-2D;LQjd9!ayuXJib8ri#@d!%oL>6R=*u~v+J2edAAcsv{$w) zWK%q({W;d>pt*$A`=kA2HH=%cpwlyMS!1Jf?tF1|HG{JA&hBx2p^kv(l zpa9}-szE%{?_Z1piht1@=>#jd{7>O`Es1BpKwjdybidN7!~M7Em$-^k+3+?Ize^qo zTZ|lACk^b8U>NK51aYIM039Ab zYD?YVm2%*jwyZpYAKQUrpgyRtR38*q*(c@&valkWl=Ml#V|IqSDE+2-PVJv*u_S%^ zLYsb?bW^AKV?$^3?nPX}7ik?lMpE01NkP#Trk1^3r-f;U+f9k{_8T1NC|)eF2pm5v zR6A(Gfc||<`}THoaDa&|;Wd|g%d9~Wju%!+c$uU<(QM-gz$dM$savtSwsv(?(e*S`)3G>l+@R{w31mFA(Pm{A_m9R=TnC!)YVv7&XoOy6@`+;JMb8{EV$B9*o>4I{=>ZcbidV2K$ zL0PR-TAj+CchX8F00Tq|lr%kFB zzA}A{-$PYQN}94erCPJn{ZeZ#$lO7GC|dKy3+<`uTbfmk&xn_C%n15Cz138;Omzf# zy2!YPT6edaQ4s5w`g2ealAEtz=m)D5 zjib_?&4>jp)m^zlaR&YHE4nMR^jY2EdR-&^jy|QELyzzmJJ|kJoj-e_HFgTre9S># z%xS&@gt@7t-T&YKCuiT$dWMkqL}8Z#JADonFYvCW$@L#>b*iw*Iaav*X#DI$nbU(U zdT9bDThtsoyJf?LvBi`BI-UCHhKL2Ri`H)Z(SBBST-4+xlfo;K=Pn#B2y{Ckn#!V* z%8~`is}GExyDNM7IWNZ(6`Nkl*YnC7=qY%?5q)Dd2$0wR1`dN~ho0|bC&8lzH%^6@ zIr|Nb6Yd?vc!Ax?=z;mu$z!EIO`h!OaH5ISh*TzB-QhG7{fuGf%=dyt)UjQxRBdg| zg9X{C4PGEz&jm+0SA>HLr1^Igt@T#)*SE$;jBuFE|b20O&3VEg5gn#B#EBX zvGICKH;OSn#>>6+Yvq4I6V^+Xpz4pBE{^D_BX$k;7u@})4RW z53w-yoUx%yWj=Xx!HVyH5i9RysLU69_{GobGL9|rkT_MX;y5DTTIO6(9h{5(%lOXE zD^y*@_ayW|nsc8318L4N&}LQ2==zoqRE@0Zdq2u;K+fQq#cgd&D}+GZZ1hsMzqWn&fd#VfQtNXjP(F`SQTAIn8?r5 zTsFe7{^O!ohbLd=3#;4ui<44Ai$zG@b)LzooP)sOLgf2zfv z4Y&UIXixoFf-v^iXz1F-ZywFaIQr(|y2Wp?4{t55n{#kUP|%WtzhoRJ3<@edkny~E zK>auS_kX)9z&tzKJYd(i`}coSA7K7Gi4b!7`xl?h&23sSre8nb<);_qoLxPxzf7f* zoJ#vSm6#0K0PG-19a+t4XU5!Mb?#cm%7u@@Ps74)ls@x$_D;8?y8QBM!-v+>VIj$9!O03k7wtzoKiv+IrnzckakfWZYqVu?_So!Ts_{ znSj;ltW3VP@mLOX`8zvqt7j{l?UIABu?LsfN=IdykFuVgF=9l&*8YQ_I+Yp$3%)=+e zjjUEM{VPbBE6u9buT6aLyOyjLF5`-t+ZYwFX$CA`JWQhi%c6etS#&aF0^hOPt^NjYRr2xc_zKz{jh4 zQ&Zg?)##AWo6FDK9l68pY>WL3693L;B<@+UxEwK>j>65xRlDqpu?-H8ee~pTcLfa-g*pRniLwTF$!d81>hgRW_BCmAbT$(SZ;HVj)SJcXUNa z%%~MDzo;5Hf3$v~{#o@L_+to@dVFp}Gh_MyHB3JP|R8&smU>PXBMFsrWz)t{g6;kG|W z--6H1t~?x*d}>wQ)6S+QjPPP*da`&&{P|RC_09#)mu)*2yKKd{^#P(4n-2_55+COS z_$aNdvV}C;KHwzgr<5~wuNpm3mmkZQ+Jggi*(syRDu@U0 z7Bn7fNPnhtbGHd`4pnKZn|~!IULtq)iBrVzeUFkc;_Ht-s-6m6>~6D0))bhwi)tQo z`OIKzV7o@u>HHkIRdVk-xw9ATP2Y>vfj0z7BX^FS2Z0%O5|pNjXw;z!=CdChuL7g9 ztzvBQL!Xi>Fvt@OL*CKyqCvYqT&WWJ+glFKoDh7l>C`k+|Au1?zOjkDgWo8wdw1#D zuj@}=cizJ&PLld@|;tqN9tl{hXF2T z4zA+^^OD`uhlvMCn&pH+0sb??tVdgjSICIL6K%$L`}(@f>?3}y9Bb0YW@pa$R7bNx zCTc6EWpRtE2KP~~)u;!g`b|ykt)iuxUIUZHjGJZF4=W$%RAC8lRdGBaEvo2Oy2q4b zt6LJ-+K-+r;r@+Ib{zSW9Z_M&@08q?{C<6Fzky3wuO&N<#@4e2VaK6Kv>DiHsw@OV zQ|9A=9mk7hFl|D%;+O`kRtKiV3^KDa)zH^+wzqt}kWLa~ggyhz`weiuLl&(pOL$3l zx@C%32m5W25Eyy-^scef<}*HHxs|BZ0{(c7^BMoHw!!!J*(8;&%RVzHo1rZh%!HD$ znj!Qmv+IhC6|vB7V=z{_f?Iy7Oi%#&lmW|++z=y9kkggq^l>o)J{)m+r8o^f4qM%S zsU?50U8K^d|6&AvF(Zz{&oG>=y&Y4qoU!eWA5Pn5@kxxQl}fWwv!lOFSrKr4>B`!m zlC<@uOSWv8lhHJOcI-!+a!zF>$C^w@^U8n9zGhuScFv-VNl{Lvv59HP(ZN~C>C>y` zrd4?P_nTE5ykJ)>a9|t{-s9FjRxioK6TYs|onKQ!W7!s6VS39`@UUMMCNUo1_w#&& zL14lzwjHZdC$&H$J7gb_nfm5BWE`wF*m9dk4%S_V)~3R~BaZr3z_{XTr#n9{@8v~L zdSh(bcj9*1%c~r#`>XR_UNDvkhY8upy&dgOQY%=1IaI?|N)&I^wOB7Uf9c;>NLTbJ4CTD@BmIOQ_XA$EW*gtX` zs3VCPdJQv_DA*zL*MR}rfEJEb1}A7;z)2@N@H$^v*%E_iWbZxN2;-}Ounmszm$)G?>ik20cr- z1iB4obmK-POHze&<4I!_WsDU6 zAWElr2j9f_DMP0@iY=G|xk~kb$clN}8f|*1N|n6^q^6~&57016l6z|V0g}1Gi9uqP zq%l~}l6s?nHpp9VA904sUeu~3XK!abrTX52T^7C@PTnzL~%Z9zp4GhaNy=Tv(}y61B31Rm<_h*Lr*>9p5isVbjHqH?;Lya7!jB0rJ6A6x@(k^ z(?pMiFxM!{>l^ww#7II8hwYj4i>R1id&s)CvR&TQDSP!A5j!zCZGed&tuCs&z>n_| z(0e$#;%3$bFL)7N+u0Q(KRUY;CX6~{cPA{Uv+h&yKpT86(RkK4X68_7W@=vO1eGpe>gQr||u1bwX( z$VUxZFZ8}}b8s0+V!D!ReOp)kPXH{LR;>2lDtgZg>g_pni^2SU5EWHZqq1DcLDI5~3_mKqO#+EhY_XZ;<~Y$SIn-qu*{#u79o$xV zd{7@HmdcmK0BT8&EBo~JjvXJHInYFjRjx0qQ=n>OT3cIW3o<9sEhDHpzT?rqYy|Dc7tXRo@vplEr2|5Z5?m)xpJuZ{iZV^fz+u38$g z!M4AN#$@nW`vaS`30`#d@I<$WeE;+_D^{Je9xV7|*3Vt{LP2%-rljfyDN-aZz@W_qiHj(8AY5vET(@yVN zw`EN2vek!78~UtxVfE_EIa5y5Z`m?pdr9dT>jvB3?H=2Uy(MlAenFly(gnJB&XC#L zqi1YOi_DF2cl8SyoxGqRZBX4YuA52q>M%b)#r!0!E|Dq&Tx-yBv4rIkd7PZ8BqvWu zmP>f07|t!1AA~h6o2Uh^e`BHh0iS+ga#CEaT!tQMNS30XxCg(;8P|}U=ruS(%H&~s zotDp(E|!9keCeqjq6Ytu@|L-VFXe&3t}q50`3?sRW;Ah|!+7=~sIZOM6I?37FU@8u zNFnDf>3t*T_mIln;&t%_=E$>WhFb6aJ3U@4hVGo(D?INncWx*P+&r>cA#bv45vpKQOKWI#m0ipF<2I z@m?3UzM-w!4+TrJOwTYiyc6g%%kqa0N$Pdau~F563is|j5G58D=^0wmNHTpDBl9>P z8NM#68ZjeSy>({Maj&k{=<0}g&hy=_kIbd^fHe|$$lf*Jv4e9AII%qs0oSYWy@qqD zWXrMdh#uhnRNyUX!#6qJ%${!d7&Zv6>aMi8_o}P)4n8Jx+S-sK@Y!fHhr>9=abVZq z;NKy`K@mBw$=45XEddna0iIFv5&6B@xMy@nX{j#u!Jbjz+X$E)VgMZfqa43*;Ma4{ zCi>M){5FpFllA)(72^S}ZSi%IQ4}x4ZJRGBqgyP6%_{S1q+nE6)2-FjjGCRIzA|;u z3Pz})jhbsXwu?Eo3`!-S^kw4(&p)(NVu|C0tLOyXHKC>DUFxNKPq5fbr_-rhs&)T# z(*2Xe=@bbD9QR1D%Q#$i|49yazaFlt58%2oO>6|bxb6F+xRK4x7_dDr zkg74G8&^EH$iJ~sjon1~VnM-+V$1Fu;*I&$ z)vkxX-(B+Y$&5KCK3uip+OGLSIOTjm3B=rSqCDw?C?I`L{8DrP#Xt#_3n-#hI1^Bd zUpdULFgxNSeq}ttIPojH^;f7nzY-)@Z+lOau8eN|LOmRQaxJ3&*X3uL_%jpG+FSgY z1Eg5Ka)nVpI}-x z(t~<>t~m2J`9WvkI(sK;3e3@V0yI=NeE};g>b>`a!lfVXKXl7=$fiw0TtBH^iW6gY z6&CJ^jM&Y#T_1UbkliQieMuZviG(q`PRmDLEWTb^^3pP9m0-8`7|_mE0g9kzS4VwO zQWu%&px^m!NN3#Eug~E8J?X11=gdkRlb7gM_+G<;L;hsa?3&nrp5q#00b{yE9&N%$l>eaU!dHt`$=gyux``DQaWPI3}L-VzX zQyqc^lV##LJ0Gjz)g_c`ILsO>=@m-02PXJK57Q)BBLS_(}G{%OS7ItgeiKYvTL+Kn_!DsUdEs;3rK zlRP}<40D+o+pAab#DLW^=>=UvSdv!jqEaeNHuTa^xwj@<$2kmc1s{NA{{pv~LlP52 zrdjlYk=mMNb;poOC;wSdqbHe9v73=O(LvUJm17f&#%&Z#%nFYrNop`_iOp9}Udv!O z)E&4%1INq?mT*N3D+#!cW8A_-4d+*X_RcLc*|#IPUPt>_I_aGVR@Qp{dA?WR&Q&-6 zShTt@ZhpjuV=3o-?t_?cU95q<)s=zwo^elq98ke!+1h9CIe>fS_-VYdgpz?U*CW( zkl0fEmh0DMq|f`x$KS8RA$#1t&K$G~S?Zw%WKzOUtDm# zbe;ZuE>rF+gOdScCzC5Q6@2g7N0^4F2I+M`Q~8p4Uq zl!`?*Gvb{lXL^|4Day1~DktTZRZo7F^sYX*9Vd1zxxOZ7Ysm~`E%q`^+*N?yGFoi| zZ7lVkrw-B(&NSI4!1j;3@w{Ogz5nadtf$s_6pSZti_dz`U0(Y2f%BK1cx>gNs4Moh zEseFecUhUxO3#qr_8)1kt^W3@C%z?%o>~6PSByhPx8C6~4tP@ZbBReAM`=SiOOs*q zi9X8blN9@Cn^bXe`bjkm*&v^GnpUiBW;2_kCqwSzevAHsGj@0t^PS2GDckI}?WqTPX$?*?0X=>BnI>sJ~#bD*1fT;xn zowPTM6{a0iq2zkJ5TnrEmK0sxENO3+^R~y;#MRET;QE_G#q-M%5ZN!p?wA)i-^i~d+AOMof|N>K3)*#u^!_rD%A_%R9J7)8aI&nQZf11 zO5rDkK%|fG==fWKgC!~8gR_>t+I%Vb%*C|572}JNQd4ZV*(Rr@EE~6FciQEXsTa!^ zpB>^f_{`AF-|c#rjL#}b`TpdhbMvx}WqkbcoMYKJ=klArODf40ufNss{idR_vLf&i zmy+C5fU)Jf)Vh(CUWg0!yH8&7*x-M<5t;j*=p#2#NQzMq+RjmyoYT0=DFRSWUS0(G>-*7cN^k0*2(5u z-SQjOJI=#$FP%H|va>YTL%PKCt&bQ2CH1rAi|&DeyE!!8(|+ion*QfUCiA)UWSIkm z@_utJMu%(Y>nnL62 zbRZmM^?hy`(T_PMuRT~vmL#a~JjcPi4Ff67t4G=#9RgI&^+cnSaC)#>hcV=? z;bT|@DL)qLwwaWvi1nK7QsJ&tmJ-IvW2UzqAdIc(-11v%*4!$W-jnNQ&8kc0@AmkS zj*@=Xy@kKq6YG*_aB^K@VqLQC#iY7K5J3TZirT6g`Hn*~m9HxTBb&uv$benSmZQfX zfnkJuvK0hAldB5MW`BRuK0emYdenfKhG-ovvkBc6?;pQCDXn%UX;|}KMcLb{JX5FW zu38JOq=H69Ziz^)O-QOuD0^#V$=mBwwk!|U{SjErCFGaF$G}4$Rl$lTh2(f@2(f01 z54KxL>l_`Be`%wAmCNy*jBVjfRoYpu;dGRZ&PkXc+R%otHmrQhF0y*ANB$y8el}8gayU^SqDhw!XWP_e!Dk2Sj8YnMKblj8&Fx{o!dTtUDzloJdp~no$3Cd2+ewGvdymZZ$w62tY3SxRmv1bmi;EULzh=#~MT?iJ%F9>0RatrZ?(Ma^cGYg*O+PGI z#s8Hsnyv#)XXt54nBmEDFJUi(2l?{cmI2R9Q=DVcwr+#AbbjTh8yQXCp1fql-sJfQ zQ(c1JSY7_X+D-p1=hWon+NXN1?DHzIZ|zrQ1sUm6XJsBvC*wiX^&gg(f3jh_M0vbp z?19l0dvrU@pnAw==e4h6}2DG*kmh^TPW2m9_EQ$iDvLLyk3kAeZ#2F_Kj-_f6i z2JE>AP$+a?;TOnCQYUP}FYw9nU$TMvv%((y5+wf;)B0ap&+ma9)^^WZ{Fe~@FRee& z=lCxZTz%@)3%t#(RIbb56lF^ zys{$CC2xt2-jbZWH9BfbYJ9=Mgt$cusVcfUjRdAu$HY{ni!Y^B#pD$wlL?7MOOwTG zi7Oywim5HBWBdgOW*T3AtWr*=PcNaiLazmD=C`cD&x&ls@t##(f|OC1%c~TCstqkt zq;|B^f+)XuZ@Mh1GBLh9YG}|1@t7rPrncE6cX;fu=!IkAy%Wm9XOzzjNSHoMeAzdj z$vTX4J+N@#{bb@n%3LwDM3I8*19thAnSnDiv*WBsS^JR;OVOQLif;>ZYNBS8Q_Z3| zLnllmBsXqmZr|RCWP)E_zWCXg-eH@Q63Zjy{=5ZfEMw1CTA!qNyCoIGOfqbp_yKWP zlAca&kLS}OU6oFke_W!234IRFF|D*sh{^6ojrP8^iB#quw#_$N7!tR{H+f7zf=$*C z@|74j+;XUELEy~t8S&NBq%_NRQq1zY9>AhJ{gps-|`Jxizub90@oq11euo1HDv5);_eZsS+Kk` z7}yTh^nEK4X~X~}B#>$0dy9+rPLCwBW<^#cM$gTRiJ6-fJtZMw%H&zID4nuq=Bx_G zG4@5%mX((;n^t7&<6J&#=9($_NpT5@i3xE@^@gB`( zA~s+(w@@7iofM8Z3t4QQryPNYH*a4F!j)^7Drj#-1JW1L>Da33)Fm5rTH^5rNQ7YMq$T@VGwpTsE4 zR4_{$kuV?2lTA%c__eszfjBGPWj-`(e`M*(XPXrFa(6MIsZHr`PZ!)KxW3z*mc~}* ze<>QtW?_#)OQ$1Oj_Cl?6~2`1to#?+*$j_~8x6-Y$9^9pRO9zXtmQF)>PDykrC`qy zs8Q@X)!{Ey+yPc)n1}r2EQS{=ta_)uz8>Y4kgkISJ=}xToiem7ovsC)+Y;spOoRL9Xx2T zdr?SmzO&QNJ<6bffP*n}&j*eg9z51*R-hNt=X#MpVeIJ-Ec zjE>&zPgNT_zytV!a^mtF$y*j>Ky2iQ5Pzq{D61jD zfdlk088NSPpV2Y)qgB8a^dgd8K)!b)Kd%WRcpAiJB(Jz6(u;e-kKp}{#J zAvvTvC~wlF{J_Ax&`EhvauAOc`p{o6zHD96`fL5I1s`l=(O7G=L|Am_PmkZ!mFizT z{y4CxPUsW!dc=lVL=bheHblH0^B$;IjAXJaczOua7F^98{gK9omyf_-8l+_6VP?GIA1DY>p7FZc8lwGv#@@bYs{HHfUL(=b`cM-xj<|%7b>M$ zf~;^pON39ma=Up)PF6LxaWe9xE~26Tzd1%}{kJ#<{VJyO$P6I>dU~891zce*?xi|) z4RkpLs#j2dw}H%gM5)GV;6Q7-W5uadLQ+qySXgubp6TfQ%f!8#vCDMPl`CX1iQF8& zO?*>)_R-_w74eM^ByQqpNZ%1}60Fn=r5VK|W;uYvMb}ZhO ztYm=u^#forvO3U%R!D8rO2kfFMw1)vk}*>=Ffegc9j6i6qv1i!8L z=_fJLoA#EEKgSP(k6ImffR%&)4y9%Rs3!`@vqnU=R0Y?8@ zp#M!anmwZbt?ucM)@{U6dPn1g)@Ne}1Z%yNj>6t}jK}|lLZuI+kPLe}hn>M;Hv+a5 zU^9w!rA8^E2JkDU{`4*S1X~?hT(X!ZQGb-DAunn}SX!TUNx1NGz$ZxG|`5%X}gT5sU;80Se@4_|yJx?KjS2gnQ`OV5s%koXrqg?CrRDy-{)4Ki zZQ&o#_KCp}n$g}_$hL5WJI>MLknoo%%7q`vNXRX$C&&P1Q3_`@D+W9=D(!TN(913twL=@44xj1tsPv{(YT}~(pZOKPS&WfB{)@Qek&EQ5KeVpsJimXZ#xnBe&+~_n=$c?VWbExJ( zu%t3RQ;sEl@H^vGXiLRVgGdg~H*F;L!f9n0EKjUoic1W8{8FPVlW1UW6nkQ?N4gz- z&WW7gfqfo>&U&MM8rYlQi?1W7LC~s=@@4UI47nwG#t=3i$h0WYQ}m1?(|8M#roq+? zHuBx-imf-*i&cB!H+m@>yi47XT5mDUQ5nJ zTzY(GO3Fyj)LoBX3>V|H>&V&QgF9wVn6z>&x(*N?vhavlYEB@WT1=g+a78UEKR0-o%*`;UW-zwhjK`O1KOYY}5Ec(L@w|6+T_`uYKv zVccQOs8aqzWr6$#cK#_l_XhS4tHUYf3`kW;R7~T;3%Z}RYnNaR`;Bf`c(oS3rK<}I zuI`A7+i_L*c=oOAtoO5T(VuQ*-_ku@a4`@67e1bs_c-}i)~)Q9a8E(UXU5`wy88XB zTP-v2KoagOU^f@!J-(3EXWz=g$c17I6Xh`+(>`_r_r`OYz~P~Fb>YcG7)EOih$ne& ztyQv?YXWOyY|ZUm)-{fw>_7P8!VTgz@!!keuG;cZm34jpd51C)!&tVKn4jCX=5u-A z?q$q>dflL{NA|8sTcpiS)vdUgO%^=6!8UE{3^Ji`ddy<0(BNLcx3D`}>LN0C9OY?QD4T zxbi8dJ}WHz?9}$+sPJ3YgnGSjnsqYt3lJ-!SKd{(`{BF>ze(i~+%# zanT;ym}$QKmh>H;Fn{T|pn`~gVZ=M$$0;FULcbLjvkFU=39s1O*s0eERu*=li(~28 z871k#L#^#iN-V7gj!KKrd9OO0;z}QrFo7ReX^r{CYYOu0C0+%LWO1qxfWkGu|6nc(FZr=WsXq5gN~?%Z0*4)b(Ad8wtbEGNwNv`By|iH zU??&s)f=;#uEwldLnp@{9y=u}WSp|E3GwloK56JMFRk;a)qWAny#_mL8Z@J|Ay4aS zl>M83Rrc52vz-|1)8B6JFek@(fg$r;9EPd(s6$4LKQcSvz}Ru29-ihy?7cmG4y8t~ z_o00?gPa^~oTA40#t-#y8t*$~nl^CR$k-(6h+!IBTH4>i(Z$?hy8HN)p+h~qT^!>_ zMpSr*Oc^(3%&x?VOMGpRV#Q**UnwI%JxN|5isoZxWrfs3h)-1Tz!Fb1DtZ3) z48UhIn9m{eHWDy^41OmHnfb$}m4!+bDU>P^?b+!veWX}V3OW@cs^3YQ-qY<7uIi4_ z6sV`FfhAW8_uuyFZBnIFnI@xf$=cKbD(HPvZig4yCmQhJ2k zBDd1S&EjUpz3`m^ms!xodNZ0~cLM>t`a0eb>|4H&v4|=o_*W)g$kSz&c729F(Tf6q zsrB~c_gk3^S=NSYEyqT_7N9#oEnACsS!j_KJpqKr;-kT{1NDJ4h5Il9k< zYveK^rG$vBrFi_dw07Plg-RdgFzok%_AH+)h-e!>2c0KGXi?8yjZJ8jX{sGBz(LBc zq=gh@%+k8LD*KcV^qe<2WKmY4>j-y?3VfLwyr}b~xruI0uA08=8g2HQ=0AFxb5v}<#?pOkTOVeXj) z6F1GDziHz3+zlIZL-T_I7fzbAFfb@TGDQ}Y(Eccl805Mg=<3gG9&@ORpp%b=5kY{y)t@?V?zcWJz4r#8pNrNb zGv0cu{;R7S`zr2P6O*ERZE#GItA~RMpPT)L#3s7nGup=rCM!#Vzw<{}Y`V5-9 zwQQvBmD##iMwT(|vBCU4sV-ucHoV-vj=X~8t>;BD`xI4{>#ow&BHj0@XYN)(zR5Y_ zu+o)~Z!G`!b7c_h3468^NTmi}1XF82q_6TNmc^)$iryZ#gfoa`%}m|@`D#Mee7-ke zZbGD!+Ql{Wovjwf#3+CNfvY}0aQ5-1PM*2+ggq($rSa%5nHOg?` zb(?HeNVfQ1*3r4y$1<{xWo91B3d#u%&It-$5E8PW^ zz2lijv*#Y0i}&oKndSOR>>j$g+e;X0^rhE(o%%9Uk@f$mKbX19{M1KP{$KT1{aQx~ zb?EBD6QX5t_cUUwTr+%I$C*Uy>f37W;M;;1sTr%>aqbgCEP=0O`&Ex{UN>VNB@Oma zZ5A&_W5s(vTD;QHztoHro4@UcVlY~lD)+- zK&Hj8TWTK(%3peyF`4-);0ciS z?Vv8E(rO?xB%rXv3&55jnUSqEzCQ9MX#I{uYkNWVKnWd^^@MGW;+@wD7rja>jz33+ zTu#vRKD<4x(t4Ehwusa%Gh(WeCT?@p=8>=%zv=FRI_1PCYZ|^g5=Y6Llb@9(G=+{# zytXtdYff~^oVo8T{s-xQ_!P0exoFj!qPX?BYqO$MQzt}MrDaq_`UQEFiO+ZM)cJ&HP~%ubsuVP5^;SfagB7u?ugoez9X{CLd`k@b zz*b)FSz`u^6Z#MF$$nr7uUgb7QnL^z5A0$pvj++P!n|=vtxPR`Bg}7%Kt_1mP1i<5 z7iRn9`^FydcO7fG-O}4FYji?bV4%C3m7guSp`>J6-`-DW9(J5J+OIfpT$+dP7*o;9 zWBOn_Tk7aI@{oO4`1qQb$cFJQqs*epGZ$YTZf!n%lwGu^ho7sxjiY_u)S&1QHr|89 zWLw|C?|vGc?bx)S!E>^?joJ48R<_>em=1QZQ&*(lD=tkf6|!c0;G;&6>N;ub20b`H|x%dD+-cU7o$LK7xAs3Zs)l z0w?2+DFvxHm6M~YGltAab$1W<86WCpJ#AqRQDwQhX zbp*@!f+IRG5&Ma0CVDpV8O>M*WWg^QxVl(1XXfEzTNnlBz2dL07Ztru`tRLO`ms;q zZ*{4)eq*#`n73cu9KVc_qry!~`g+;fhB=SVaB>=KH`F0BAZo0gTfb7P$*#i}M6CVr zczXKr57(~wg#G=*cNrQ(U9bMHFI)CHYM<@{fMsM-@Z?E*BBL6DLnm0<+NT7#4jpf4 zVLsBst8i@4QV*{YZkA&loW{iuwzt2CHr8}(6N(Em{X&$p)V=t+@6GCyJV^V~^2$o7_GvVEHao3&Z0}dj=HVeB;KPN#1{HE{fU(u(ha0)aS5r_-J_*TmgqL3#X$O# z&=-2bfVLb*V=McyZd4WelaX~6u^k1O3akaDf%=$Ts^{Jws<c4bN-o4OZ0&5hK{eWEfUSI4tQixH3cmA05l2*U0ZU@R+Hv z@;ix15#J=5h7t&`;jM4eLxgYlarEy*JWcZ>BM*%gKJtC`M%#>ABOSE@xR&BvBnsXK2>5-w8V# z=1o*$WQFj>*YE?`jH_$ptJqJ(Pl;exL0H8H>Tn^HU&HwDT{rBG*RfZGA3ZNMf?J8= zbKE&blLYHtf3D8w(rLK3ho7I*#qQc|xE z68_1r9jZ}wEItoB3Gx)^bDEprVeo+gZ5#p`0t@n(d=Z!(5Re@hlob$=6*Mv=WaRLP z6V;aZ-1d9H#Ni_*Oc*ho<<w=dNozn0<5Np- zYx+s!1Ah(qU0sX71-pX7j)ud-$mTR8uD=zUXAX3KAL)b$ve+fW)@{U4t!JE1c!7^! zXyN@Qx3YGA7VT*gWI0<4Wz~k2{6@!RMTR_P;G8mh|74$un@hcuTr=l;x{e%T740>g zMS|Z|=FuAxUn(L+2ZccTD8CR+@LfioYK~chD+JR9-Mog^z#6LFjrixzI7mQl$FC-7 z>T}>FD`wmEqUN1-F}})ZM!P5m`i{Yg&(2Ot1&h)sl>gtD|1viGYiQZ{@AQk7mKThs z8`m=$J#T4w{_otTvyADC0>EPb!@rql&;FbF?*p(h5MWGa5dh9|9r*hZRrPwX3H@Ld JXEAj$000(zNTC1# literal 0 HcmV?d00001 diff --git a/public/vendor/fonts/manrope-500.ttf b/public/vendor/fonts/manrope-500.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2a169e6b902fc2d8fe470d0da04162de933de134 GIT binary patch literal 95060 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 literal 0 HcmV?d00001 diff --git a/public/vendor/fonts/manrope-600.ttf b/public/vendor/fonts/manrope-600.ttf new file mode 100644 index 0000000000000000000000000000000000000000..595e7dc699c8e2a30e765691fe70174bb388ce73 GIT binary patch literal 95096 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 RxaxUe6CQz8oW<11006QG`YZqd literal 0 HcmV?d00001 diff --git a/public/vendor/fonts/manrope-800.ttf b/public/vendor/fonts/manrope-800.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d324b62f053c0aa0061d35298d14cdbeb6274847 GIT binary patch literal 95688 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 z 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 Tsyf^)S`c*%7yeu4CpG^cmn!zY literal 0 HcmV?d00001 diff --git a/public/vendor/highlight.min.js b/public/vendor/highlight.min.js new file mode 100644 index 0000000..5d699ae --- /dev/null +++ b/public/vendor/highlight.min.js @@ -0,0 +1,1213 @@ +/*! + Highlight.js v11.9.0 (git: f47103d4f1) + (c) 2006-2023 undefined and other contributors + License: BSD-3-Clause + */ +var hljs=function(){"use strict";function e(n){ +return n instanceof Map?n.clear=n.delete=n.set=()=>{ +throw Error("map is read-only")}:n instanceof Set&&(n.add=n.clear=n.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(n),Object.getOwnPropertyNames(n).forEach((t=>{ +const a=n[t],i=typeof a;"object"!==i&&"function"!==i||Object.isFrozen(a)||e(a) +})),n}class n{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function t(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function a(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n] +;return n.forEach((e=>{for(const n in e)t[n]=e[n]})),t}const i=e=>!!e.scope +;class r{constructor(e,n){ +this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ +this.buffer+=t(e)}openNode(e){if(!i(e))return;const n=((e,{prefix:n})=>{ +if(e.startsWith("language:"))return e.replace("language:","language-") +;if(e.includes(".")){const t=e.split(".") +;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") +}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)} +closeNode(e){i(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}const s=(e={})=>{const n={children:[]} +;return Object.assign(n,e),n};class o{constructor(){ +this.rootNode=s(),this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const n=s({scope:e}) +;this.add(n),this.stack.push(n)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){ +return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n), +n.children.forEach((n=>this._walk(e,n))),e.closeNode(n)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +o._collapse(e)})))}}class l extends o{constructor(e){super(),this.options=e} +addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ +this.closeNode()}__addSublanguage(e,n){const t=e.root +;n&&(t.scope="language:"+n),this.add(t)}toHTML(){ +return new r(this,this.options).value()}finalize(){ +return this.closeAllNodes(),!0}}function c(e){ +return e?"string"==typeof e?e:e.source:null}function d(e){return b("(?=",e,")")} +function g(e){return b("(?:",e,")*")}function u(e){return b("(?:",e,")?")} +function b(...e){return e.map((e=>c(e))).join("")}function m(...e){const n=(e=>{ +const n=e[e.length-1] +;return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{} +})(e);return"("+(n.capture?"":"?:")+e.map((e=>c(e))).join("|")+")"} +function p(e){return RegExp(e.toString()+"|").exec("").length-1} +const _=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function h(e,{joinWith:n}){let t=0;return e.map((e=>{t+=1;const n=t +;let a=c(e),i="";for(;a.length>0;){const e=_.exec(a);if(!e){i+=a;break} +i+=a.substring(0,e.index), +a=a.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?i+="\\"+(Number(e[1])+n):(i+=e[0], +"("===e[0]&&t++)}return i})).map((e=>`(${e})`)).join(n)} +const f="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",N="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",v={ +begin:"\\\\[\\s\\S]",relevance:0},O={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[v]},x=(e,n,t={})=>{const i=a({scope:"comment",begin:e,end:n, +contains:[]},t);i.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const r=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return i.contains.push({begin:b(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i +},M=x("//","$"),S=x("/\\*","\\*/"),A=x("#","$");var C=Object.freeze({ +__proto__:null,APOS_STRING_MODE:O,BACKSLASH_ESCAPE:v,BINARY_NUMBER_MODE:{ +scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:x, +C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:M,C_NUMBER_MODE:{scope:"number", +begin:N,relevance:0},C_NUMBER_RE:N,END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{ +n.data._beginMatch!==e[1]&&n.ignoreMatch()}}),HASH_COMMENT_MODE:A,IDENT_RE:f, +MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0}, +NUMBER_MODE:{scope:"number",begin:y,relevance:0},NUMBER_RE:y, +PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, +end:/\/[gimuy]*/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,contains:[v]}]}, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const n=/^#![ ]*\// +;return e.binary&&(e.begin=b(n,/.*\b/,e.binary,/\b.*/)),a({scope:"meta",begin:n, +end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)}, +TITLE_MODE:{scope:"title",begin:f,relevance:0},UNDERSCORE_IDENT_RE:E, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function T(e,n){ +"."===e.input[e.index-1]&&n.ignoreMatch()}function R(e,n){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function D(e,n){ +n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=T,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function I(e,n){ +Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function L(e,n){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function B(e,n){ +void 0===e.relevance&&(e.relevance=1)}const $=(e,n)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const t=Object.assign({},e);Object.keys(e).forEach((n=>{delete e[n] +})),e.keywords=t.keywords,e.begin=b(t.beforeMatch,d(t.begin)),e.starts={ +relevance:0,contains:[Object.assign(t,{endsParent:!0})] +},e.relevance=0,delete t.beforeMatch +},z=["of","and","for","in","not","or","if","then","parent","list","value"],F="keyword" +;function U(e,n,t=F){const a=Object.create(null) +;return"string"==typeof e?i(t,e.split(" ")):Array.isArray(e)?i(t,e):Object.keys(e).forEach((t=>{ +Object.assign(a,U(e[t],n,t))})),a;function i(e,t){ +n&&(t=t.map((e=>e.toLowerCase()))),t.forEach((n=>{const t=n.split("|") +;a[t[0]]=[e,j(t[0],t[1])]}))}}function j(e,n){ +return n?Number(n):(e=>z.includes(e.toLowerCase()))(e)?0:1}const P={},K=e=>{ +console.error(e)},H=(e,...n)=>{console.log("WARN: "+e,...n)},q=(e,n)=>{ +P[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),P[`${e}/${n}`]=!0) +},G=Error();function Z(e,n,{key:t}){let a=0;const i=e[t],r={},s={} +;for(let e=1;e<=n.length;e++)s[e+a]=i[e],r[e+a]=!0,a+=p(n[e-1]) +;e[t]=s,e[t]._emit=r,e[t]._multi=!0}function W(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +G +;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"), +G;Z(e,e.begin,{key:"beginScope"}),e.begin=h(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +G +;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"), +G;Z(e,e.end,{key:"endScope"}),e.end=h(e.end,{joinWith:""})}})(e)}function Q(e){ +function n(n,t){ +return RegExp(c(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":"")) +}class t{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,n){ +n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]), +this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(h(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const n=this.matcherRe.exec(e);if(!n)return null +;const t=n.findIndex(((e,n)=>n>0&&void 0!==e)),a=this.matchIndexes[t] +;return n.splice(0,t),Object.assign(n,a)}}class i{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t +;return this.rules.slice(e).forEach((([e,t])=>n.addRule(e,t))), +n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){ +this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){ +const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex +;let t=n.exec(e) +;if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{ +const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)} +return t&&(this.regexIndex+=t.position+1, +this.regexIndex===this.count&&this.considerAll()),t}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=a(e.classNameAliases||{}),function t(r,s){const o=r +;if(r.isCompiled)return o +;[R,L,W,$].forEach((e=>e(r,s))),e.compilerExtensions.forEach((e=>e(r,s))), +r.__beforeBegin=null,[D,I,B].forEach((e=>e(r,s))),r.isCompiled=!0;let l=null +;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords), +l=r.keywords.$pattern, +delete r.keywords.$pattern),l=l||/\w+/,r.keywords&&(r.keywords=U(r.keywords,e.case_insensitive)), +o.keywordPatternRe=n(l,!0), +s&&(r.begin||(r.begin=/\B|\b/),o.beginRe=n(o.begin),r.end||r.endsWithParent||(r.end=/\B|\b/), +r.end&&(o.endRe=n(o.end)), +o.terminatorEnd=c(o.end)||"",r.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)), +r.illegal&&(o.illegalRe=n(r.illegal)), +r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((n=>a(e,{ +variants:null},n)))),e.cachedVariants?e.cachedVariants:X(e)?a(e,{ +starts:e.starts?a(e.starts):null +}):Object.isFrozen(e)?a(e):e))("self"===e?r:e)))),r.contains.forEach((e=>{t(e,o) +})),r.starts&&t(r.starts,s),o.matcher=(e=>{const n=new i +;return e.contains.forEach((e=>n.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n})(o),o}(e)}function X(e){ +return!!e&&(e.endsWithParent||X(e.starts))}class V extends Error{ +constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}} +const J=t,Y=a,ee=Symbol("nomatch"),ne=t=>{ +const a=Object.create(null),i=Object.create(null),r=[];let s=!0 +;const o="Could not find the language '{}', did you forget to load/include a language module?",c={ +disableAutodetect:!0,name:"Plain text",contains:[]};let p={ +ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:l};function _(e){ +return p.noHighlightRe.test(e)}function h(e,n,t){let a="",i="" +;"object"==typeof n?(a=e, +t=n.ignoreIllegals,i=n.language):(q("10.7.0","highlight(lang, code, ...args) has been deprecated."), +q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +i=e,a=n),void 0===t&&(t=!0);const r={code:a,language:i};x("before:highlight",r) +;const s=r.result?r.result:f(r.language,r.code,t) +;return s.code=r.code,x("after:highlight",s),s}function f(e,t,i,r){ +const l=Object.create(null);function c(){if(!x.keywords)return void S.addText(A) +;let e=0;x.keywordPatternRe.lastIndex=0;let n=x.keywordPatternRe.exec(A),t="" +;for(;n;){t+=A.substring(e,n.index) +;const i=w.case_insensitive?n[0].toLowerCase():n[0],r=(a=i,x.keywords[a]);if(r){ +const[e,a]=r +;if(S.addText(t),t="",l[i]=(l[i]||0)+1,l[i]<=7&&(C+=a),e.startsWith("_"))t+=n[0];else{ +const t=w.classNameAliases[e]||e;g(n[0],t)}}else t+=n[0] +;e=x.keywordPatternRe.lastIndex,n=x.keywordPatternRe.exec(A)}var a +;t+=A.substring(e),S.addText(t)}function d(){null!=x.subLanguage?(()=>{ +if(""===A)return;let e=null;if("string"==typeof x.subLanguage){ +if(!a[x.subLanguage])return void S.addText(A) +;e=f(x.subLanguage,A,!0,M[x.subLanguage]),M[x.subLanguage]=e._top +}else e=E(A,x.subLanguage.length?x.subLanguage:null) +;x.relevance>0&&(C+=e.relevance),S.__addSublanguage(e._emitter,e.language) +})():c(),A=""}function g(e,n){ +""!==e&&(S.startScope(n),S.addText(e),S.endScope())}function u(e,n){let t=1 +;const a=n.length-1;for(;t<=a;){if(!e._emit[t]){t++;continue} +const a=w.classNameAliases[e[t]]||e[t],i=n[t];a?g(i,a):(A=i,c(),A=""),t++}} +function b(e,n){ +return e.scope&&"string"==typeof e.scope&&S.openNode(w.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(g(A,w.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +A=""):e.beginScope._multi&&(u(e.beginScope,n),A="")),x=Object.create(e,{parent:{ +value:x}}),x}function m(e,t,a){let i=((e,n)=>{const t=e&&e.exec(n) +;return t&&0===t.index})(e.endRe,a);if(i){if(e["on:end"]){const a=new n(e) +;e["on:end"](t,a),a.isMatchIgnored&&(i=!1)}if(i){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return m(e.parent,t,a)}function _(e){ +return 0===x.matcher.regexIndex?(A+=e[0],1):(D=!0,0)}function h(e){ +const n=e[0],a=t.substring(e.index),i=m(x,e,a);if(!i)return ee;const r=x +;x.endScope&&x.endScope._wrap?(d(), +g(n,x.endScope._wrap)):x.endScope&&x.endScope._multi?(d(), +u(x.endScope,e)):r.skip?A+=n:(r.returnEnd||r.excludeEnd||(A+=n), +d(),r.excludeEnd&&(A=n));do{ +x.scope&&S.closeNode(),x.skip||x.subLanguage||(C+=x.relevance),x=x.parent +}while(x!==i.parent);return i.starts&&b(i.starts,e),r.returnEnd?0:n.length} +let y={};function N(a,r){const o=r&&r[0];if(A+=a,null==o)return d(),0 +;if("begin"===y.type&&"end"===r.type&&y.index===r.index&&""===o){ +if(A+=t.slice(r.index,r.index+1),!s){const n=Error(`0 width match regex (${e})`) +;throw n.languageName=e,n.badRule=y.rule,n}return 1} +if(y=r,"begin"===r.type)return(e=>{ +const t=e[0],a=e.rule,i=new n(a),r=[a.__beforeBegin,a["on:begin"]] +;for(const n of r)if(n&&(n(e,i),i.isMatchIgnored))return _(t) +;return a.skip?A+=t:(a.excludeBegin&&(A+=t), +d(),a.returnBegin||a.excludeBegin||(A=t)),b(a,e),a.returnBegin?0:t.length})(r) +;if("illegal"===r.type&&!i){ +const e=Error('Illegal lexeme "'+o+'" for mode "'+(x.scope||"")+'"') +;throw e.mode=x,e}if("end"===r.type){const e=h(r);if(e!==ee)return e} +if("illegal"===r.type&&""===o)return 1 +;if(R>1e5&&R>3*r.index)throw Error("potential infinite loop, way more iterations than matches") +;return A+=o,o.length}const w=v(e) +;if(!w)throw K(o.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const O=Q(w);let k="",x=r||O;const M={},S=new p.__emitter(p);(()=>{const e=[] +;for(let n=x;n!==w;n=n.parent)n.scope&&e.unshift(n.scope) +;e.forEach((e=>S.openNode(e)))})();let A="",C=0,T=0,R=0,D=!1;try{ +if(w.__emitTokens)w.__emitTokens(t,S);else{for(x.matcher.considerAll();;){ +R++,D?D=!1:x.matcher.considerAll(),x.matcher.lastIndex=T +;const e=x.matcher.exec(t);if(!e)break;const n=N(t.substring(T,e.index),e) +;T=e.index+n}N(t.substring(T))}return S.finalize(),k=S.toHTML(),{language:e, +value:k,relevance:C,illegal:!1,_emitter:S,_top:x}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{language:e,value:J(t), +illegal:!0,relevance:0,_illegalBy:{message:n.message,index:T, +context:t.slice(T-100,T+100),mode:n.mode,resultSoFar:k},_emitter:S};if(s)return{ +language:e,value:J(t),illegal:!1,relevance:0,errorRaised:n,_emitter:S,_top:x} +;throw n}}function E(e,n){n=n||p.languages||Object.keys(a);const t=(e=>{ +const n={value:J(e),illegal:!1,relevance:0,_top:c,_emitter:new p.__emitter(p)} +;return n._emitter.addText(e),n})(e),i=n.filter(v).filter(k).map((n=>f(n,e,!1))) +;i.unshift(t);const r=i.sort(((e,n)=>{ +if(e.relevance!==n.relevance)return n.relevance-e.relevance +;if(e.language&&n.language){if(v(e.language).supersetOf===n.language)return 1 +;if(v(n.language).supersetOf===e.language)return-1}return 0})),[s,o]=r,l=s +;return l.secondBest=o,l}function y(e){let n=null;const t=(e=>{ +let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"" +;const t=p.languageDetectRe.exec(n);if(t){const n=v(t[1]) +;return n||(H(o.replace("{}",t[1])), +H("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"} +return n.split(/\s+/).find((e=>_(e)||v(e)))})(e);if(_(t))return +;if(x("before:highlightElement",{el:e,language:t +}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) +;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), +console.warn("The element with unescaped HTML:"), +console.warn(e)),p.throwUnescapedHTML))throw new V("One of your code blocks includes unescaped HTML.",e.innerHTML) +;n=e;const a=n.textContent,r=t?h(a,{language:t,ignoreIllegals:!0}):E(a) +;e.innerHTML=r.value,e.dataset.highlighted="yes",((e,n,t)=>{const a=n&&i[n]||t +;e.classList.add("hljs"),e.classList.add("language-"+a) +})(e,t,r.language),e.result={language:r.language,re:r.relevance, +relevance:r.relevance},r.secondBest&&(e.secondBest={ +language:r.secondBest.language,relevance:r.secondBest.relevance +}),x("after:highlightElement",{el:e,result:r,text:a})}let N=!1;function w(){ +"loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(y):N=!0 +}function v(e){return e=(e||"").toLowerCase(),a[e]||a[i[e]]} +function O(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +i[e.toLowerCase()]=n}))}function k(e){const n=v(e) +;return n&&!n.disableAutodetect}function x(e,n){const t=e;r.forEach((e=>{ +e[t]&&e[t](n)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +N&&w()}),!1),Object.assign(t,{highlight:h,highlightAuto:E,highlightAll:w, +highlightElement:y, +highlightBlock:e=>(q("10.7.0","highlightBlock will be removed entirely in v12.0"), +q("10.7.0","Please use highlightElement now."),y(e)),configure:e=>{p=Y(p,e)}, +initHighlighting:()=>{ +w(),q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +w(),q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(e,n)=>{let i=null;try{i=n(t)}catch(n){ +if(K("Language definition for '{}' could not be registered.".replace("{}",e)), +!s)throw n;K(n),i=c} +i.name||(i.name=e),a[e]=i,i.rawDefinition=n.bind(null,t),i.aliases&&O(i.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete a[e] +;for(const n of Object.keys(i))i[n]===e&&delete i[n]}, +listLanguages:()=>Object.keys(a),getLanguage:v,registerAliases:O, +autoDetection:k,inherit:Y,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{ +e["before:highlightBlock"](Object.assign({block:n.el},n)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{ +e["after:highlightBlock"](Object.assign({block:n.el},n))})})(e),r.push(e)}, +removePlugin:e=>{const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),t.debugMode=()=>{ +s=!1},t.safeMode=()=>{s=!0},t.versionString="11.9.0",t.regex={concat:b, +lookahead:d,either:m,optional:u,anyNumberOfTimes:g} +;for(const n in C)"object"==typeof C[n]&&e(C[n]);return Object.assign(t,C),t +},te=ne({});te.newInstance=()=>ne({});var ae=te;const ie=e=>({IMPORTANT:{ +scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{ +scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/}, +FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/}, +ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/} +}),re=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],se=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],oe=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],le=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],ce=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),de=oe.concat(le) +;var ge="[0-9](_*[0-9])*",ue=`\\.(${ge})`,be="[0-9a-fA-F](_*[0-9a-fA-F])*",me={ +className:"number",variants:[{ +begin:`(\\b(${ge})((${ue})|\\.)?|(${ue}))[eE][+-]?(${ge})[fFdD]?\\b`},{ +begin:`\\b(${ge})((${ue})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${ue})[fFdD]?\\b`},{begin:`\\b(${ge})[fFdD]\\b`},{ +begin:`\\b0[xX]((${be})\\.?|(${be})?\\.(${be}))[pP][+-]?(${ge})[fFdD]?\\b`},{ +begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${be})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};function pe(e,n,t){return-1===t?"":e.replace(n,(a=>pe(e,n,t-1)))} +const _e="[A-Za-z$_][0-9A-Za-z$_]*",he=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],fe=["true","false","null","undefined","NaN","Infinity"],Ee=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ye=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ne=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],we=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],ve=[].concat(Ne,Ee,ye) +;function Oe(e){const n=e.regex,t=_e,a={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const t=e[0].length+e.index,a=e.input[t] +;if("<"===a||","===a)return void n.ignoreMatch();let i +;">"===a&&(((e,{after:n})=>{const t="",M={ +match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(x)], +keywords:"async",className:{1:"keyword",3:"title.function"},contains:[f]} +;return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{ +PARAMS_CONTAINS:h,CLASS_REFERENCE:y},illegal:/#(?![$_A-z])/, +contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{ +label:"use_strict",className:"meta",relevance:10, +begin:/^\s*['"]use (strict|asm)['"]/ +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,d,g,u,b,m,{match:/\$\d+/},l,y,{ +className:"attr",begin:t+n.lookahead(":"),relevance:0},M,{ +begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*", +keywords:"return throw case",relevance:0,contains:[m,e.REGEXP_MODE,{ +className:"function",begin:x,returnBegin:!0,end:"\\s*=>",contains:[{ +className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{ +className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0, +excludeEnd:!0,keywords:i,contains:h}]}]},{begin:/,/,relevance:0},{match:/\s+/, +relevance:0},{variants:[{begin:"<>",end:""},{ +match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin, +"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{ +begin:a.begin,end:a.end,skip:!0,contains:["self"]}]}]},N,{ +beginKeywords:"while if switch catch for"},{ +begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,label:"func.def",contains:[f,e.inherit(e.TITLE_MODE,{begin:t, +className:"title.function"})]},{match:/\.\.\./,relevance:0},O,{match:"\\$"+t, +relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"}, +contains:[f]},w,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},E,k,{match:/\$[(.]/}]}} +const ke=e=>b(/\b/,e,/\w$/.test(e)?/\b/:/\B/),xe=["Protocol","Type"].map(ke),Me=["init","self"].map(ke),Se=["Any","Self"],Ae=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],Ce=["false","nil","true"],Te=["assignment","associativity","higherThan","left","lowerThan","none","right"],Re=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],De=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],Ie=m(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),Le=m(Ie,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),Be=b(Ie,Le,"*"),$e=m(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ze=m($e,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Fe=b($e,ze,"*"),Ue=b(/[A-Z]/,ze,"*"),je=["attached","autoclosure",b(/convention\(/,m("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",b(/objc\(/,Fe,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],Pe=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;var Ke=Object.freeze({__proto__:null,grmr_bash:e=>{const n=e.regex,t={},a={ +begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]} +;Object.assign(t,{className:"variable",variants:[{ +begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},a]});const i={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},r={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,i]};i.contains.push(s);const o={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),c={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[l,e.SHEBANG(),c,o,e.HASH_COMMENT_MODE,r,{match:/(\/[a-z._-]+)+/},s,{ +match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}, +grmr_c:e=>{const n=e.regex,t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ +className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{ +match:/\batomic_[a-z]{3,6}\b/}]},o={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ +className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 +},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ +keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"], +type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"], +literal:"true false NULL", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr" +},b=[c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],m={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:b.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:b.concat(["self"]),relevance:0}]),relevance:0},p={ +begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ +begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})], +relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/, +keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/, +end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s] +}]},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"=]/,contains:[{ +beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c, +strings:o,keywords:u}}},grmr_cpp:e=>{const n=e.regex,t=e.COMMENT("//","$",{ +contains:[{begin:/\\\n/}] +}),a="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",r="(?!struct)("+a+"|"+n.optional(i)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",s={ +className:"type",begin:"\\b[a-z\\d_]*_t\\b"},o={className:"string",variants:[{ +begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},e.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},e.inherit(o,{className:"string"}),{ +className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={ +className:"title",begin:n.optional(i)+e.IDENT_RE,relevance:0 +},g=n.optional(i)+e.IDENT_RE+"\\s*\\(",u={ +type:["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"], +keyword:["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"], +literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"], +_type_hints:["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"] +},b={className:"function.dispatch",relevance:0,keywords:{ +_hint:["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"] +}, +begin:n.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,n.lookahead(/(<[^<>]+>|)\s*\(/)) +},m=[b,c,s,t,e.C_BLOCK_COMMENT_MODE,l,o],p={variants:[{begin:/=/,end:/;/},{ +begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}], +keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u, +contains:m.concat(["self"]),relevance:0}]),relevance:0},_={className:"function", +begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0, +keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:u,relevance:0},{ +begin:g,returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{ +begin:/:/,endsWithParent:!0,contains:[o,l]},{relevance:0,match:/,/},{ +className:"params",begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:[t,e.C_BLOCK_COMMENT_MODE,o,l,s,{begin:/\(/,end:/\)/,keywords:u, +relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,o,l,s]}] +},s,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:u,illegal:"",keywords:u,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:u},{ +match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/], +className:{1:"keyword",3:"title.class"}}])}},grmr_csharp:e=>{const n={ +keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},t=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),a={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},i={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},r=e.inherit(i,{illegal:/\n/}),s={className:"subst",begin:/\{/,end:/\}/, +keywords:n},o=e.inherit(s,{illegal:/\n/}),l={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,o]},c={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},s]},d=e.inherit(c,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},o]}) +;s.contains=[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.C_BLOCK_COMMENT_MODE], +o.contains=[d,l,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,a,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[c,l,i,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},u={begin:"<",end:">",contains:[{beginKeywords:"in out"},t] +},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",m={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +keyword:"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,a,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[t,u,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,u],relevance:0},{match:/\(\)/},{className:"params", +begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,a,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},m]}},grmr_css:e=>{ +const n=e.regex,t=ie(e),a=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{ +name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{ +keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"}, +contains:[t.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ +},t.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+oe.join("|")+")"},{begin:":(:)?("+le.join("|")+")"}] +},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b"},{ +begin:/:/,end:/[;}{]/, +contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,...a,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[...a,{className:"string",begin:/[^)]/,endsWithParent:!0, +excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:n.lookahead(/@/),end:"[{;]", +relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ +},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:se.join(" ")},contains:[{ +begin:/[a-z-]+(?=:)/,className:"attribute"},...a,t.CSS_NUMBER_MODE]}]},{ +className:"selector-tag",begin:"\\b("+re.join("|")+")\\b"}]}},grmr_diff:e=>{ +const n=e.regex;return{name:"Diff",aliases:["patch"],contains:[{ +className:"meta",relevance:10, +match:n.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/) +},{className:"comment",variants:[{ +begin:n.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/), +end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]}},grmr_go:e=>{const n={ +keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"], +type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"], +literal:["true","false","iota","nil"], +built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"] +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{const n=e.regex;return{name:"GraphQL",aliases:["gql"], +case_insensitive:!0,disableAutodetect:!1,keywords:{ +keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"], +literal:["true","false","null"]}, +contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{ +scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation", +begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/, +end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{ +scope:"symbol",begin:n.concat(/[_A-Za-z][_0-9A-Za-z]*/,n.lookahead(/\s*:/)), +relevance:0}],illegal:[/[;<']/,/BEGIN/]}},grmr_ini:e=>{const n=e.regex,t={ +className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{ +begin:e.NUMBER_RE}]},a=e.COMMENT();a.variants=[{begin:/;/,end:/$/},{begin:/#/, +end:/$/}];const i={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{ +begin:/\$\{(.*?)\}/}]},r={className:"literal", +begin:/\bon|off|true|false|yes|no\b/},s={className:"string", +contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{ +begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}] +},o={begin:/\[/,end:/\]/,contains:[a,r,i,s,t,"self"],relevance:0 +},l=n.either(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{ +name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[a,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n.concat(l,"(\\s*\\.\\s*",l,")*",n.lookahead(/\s*=\s*[^#\s]/)), +className:"attr",starts:{end:/$/,contains:[a,o,r,i,s,t]}}]}},grmr_java:e=>{ +const n=e.regex,t="[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",a=t+pe("(?:<"+t+"~~~(?:\\s*,\\s*"+t+"~~~)*>)?",/~~~/g,2),i={ +keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"], +literal:["false","true","null"], +type:["char","boolean","long","float","int","byte","short","double"], +built_in:["super","this"]},r={className:"meta",begin:"@"+t,contains:[{ +begin:/\(/,end:/\)/,contains:["self"]}]},s={className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0} +;return{name:"Java",aliases:["jsp"],keywords:i,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/, +className:"string",contains:[e.BACKSLASH_ESCAPE] +},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,t],className:{ +1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{ +begin:[n.concat(/(?!else)/,t),/\s+/,t,/\s+/,/=(?!=)/],className:{1:"type", +3:"variable",5:"operator"}},{begin:[/record/,/\s+/,t],className:{1:"keyword", +3:"title.class"},contains:[s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{ +begin:["(?:"+a+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{ +2:"title.function"},keywords:i,contains:[{className:"params",begin:/\(/, +end:/\)/,keywords:i,relevance:0, +contains:[r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,me,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},me,r]}},grmr_javascript:Oe, +grmr_json:e=>{const n=["true","false","null"],t={scope:"literal", +beginKeywords:n.join(" ")};return{name:"JSON",keywords:{literal:n},contains:[{ +className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{ +match:/[{}[\],:]/,className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}},grmr_kotlin:e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},t={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},a={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},i={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[i,a]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,i,a]}]};a.contains.push(r);const s={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},o={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"string"}),"self"]}] +},l=me,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},t,s,o,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0 +},e.C_LINE_COMMENT_MODE,c,s,o,r,e.C_NUMBER_MODE]},c]},{ +begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{ +3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/, +excludeBegin:!0,returnEnd:!0},s,o]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},l]}},grmr_less:e=>{ +const n=ie(e),t=de,a="[\\w-]+",i="("+a+"|@\\{"+a+"\\})",r=[],s=[],o=e=>({ +className:"string",begin:"~?"+e+".*?"+e}),l=(e,n,t)=>({className:e,begin:n, +relevance:t}),c={$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:se.join(" ")},d={begin:"\\(",end:"\\)",contains:s,keywords:c, +relevance:0} +;s.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o("'"),o('"'),n.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},n.HEXCOLOR,d,l("variable","@@?"+a,10),l("variable","@\\{"+a+"\\}"),l("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:a+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},n.IMPORTANT,{beginKeywords:"and not"},n.FUNCTION_DISPATCH);const g=s.concat({ +begin:/\{/,end:/\}/,contains:r}),u={beginKeywords:"when",endsWithParent:!0, +contains:[{beginKeywords:"and not"}].concat(s)},b={begin:i+"\\s*:", +returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/ +},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+ce.join("|")+")\\b", +end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:s}}] +},m={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:s,relevance:0}},p={ +className:"variable",variants:[{begin:"@"+a+"\\s*:",relevance:15},{begin:"@"+a +}],starts:{end:"[;}]",returnEnd:!0,contains:g}},_={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:i,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,u,l("keyword","all\\b"),l("variable","@\\{"+a+"\\}"),{ +begin:"\\b("+re.join("|")+")\\b",className:"selector-tag" +},n.CSS_NUMBER_MODE,l("selector-tag",i,0),l("selector-id","#"+i),l("selector-class","\\."+i,0),l("selector-tag","&",0),n.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+oe.join("|")+")"},{ +className:"selector-pseudo",begin:":(:)?("+le.join("|")+")"},{begin:/\(/, +end:/\)/,relevance:0,contains:g},{begin:"!important"},n.FUNCTION_DISPATCH]},h={ +begin:a+":(:)?"+`(${t.join("|")})`,returnBegin:!0,contains:[_]} +;return r.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,p,h,b,_,u,n.FUNCTION_DISPATCH), +{name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:r}}, +grmr_lua:e=>{const n="\\[=*\\[",t="\\]=*\\]",a={begin:n,end:t,contains:["self"] +},i=[e.COMMENT("--(?!"+n+")","$"),e.COMMENT("--"+n,t,{contains:[a],relevance:10 +})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:i}].concat(i) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:n,end:t,contains:[a],relevance:5}])}},grmr_makefile:e=>{const n={ +className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{ +const n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},t={ +variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},i={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},r=e.inherit(a,{contains:[] +}),s=e.inherit(i,{contains:[]});a.contains.push(s),i.contains.push(r) +;let o=[n,t];return[a,i,r,s].forEach((e=>{e.contains=e.contains.concat(o) +})),o=o.concat(a,i),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:o},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:o}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},a,i,{className:"quote",begin:"^>\\s+",contains:o, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},t,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}},grmr_objectivec:e=>{ +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,t={$pattern:n, +keyword:["@interface","@class","@protocol","@implementation"]};return{ +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], +keywords:{"variable.language":["this","super"],$pattern:n, +keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"], +literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"], +built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"], +type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"] +},illegal:"/,end:/$/,illegal:"\\n" +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class", +begin:"("+t.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:t, +contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE, +relevance:0}]}},grmr_perl:e=>{const n=e.regex,t=/[dualxmsipngr]{0,12}/,a={ +$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:a},r={begin:/->\{/, +end:/\}/},s={variants:[{begin:/\$\d/},{ +begin:n.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},o=[e.BACKSLASH_ESCAPE,i,s],l=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(e,a,i="\\1")=>{ +const r="\\1"===i?i:n.concat(i,a) +;return n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,r,/(?:\\.|[^\\\/])*?/,i,t) +},d=(e,a,i)=>n.concat(n.concat("(?:",e,")"),a,/(?:\\.|[^\\\/])*?/,i,t),g=[s,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),r,{className:"string",contains:o,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:c("s|tr|y",n.either(...l,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{ +begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",n.either(...l,{capture:!0 +}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ +begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return i.contains=g,r.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:a, +contains:g}},grmr_php:e=>{ +const n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,a=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),i=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r={ +scope:"variable",match:"\\$+"+a},s={scope:"subst",variants:[{begin:/\$\w+/},{ +begin:/\{\$/,end:/\}/}]},o=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),l="[ \t\n]",c={scope:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(s)}),o,{ +begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(s),"on:begin":(e,n)=>{ +n.data._beginMatch=e[1]||e[2]},"on:end":(e,n)=>{ +n.data._beginMatch!==e[1]&&n.ignoreMatch()}},e.END_SAME_AS_BEGIN({ +begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/})]},d={scope:"number",variants:[{ +begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?" +}],relevance:0 +},g=["false","null","true"],u=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],b=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],m={ +keyword:u,literal:(e=>{const n=[];return e.forEach((e=>{ +n.push(e),e.toLowerCase()===e?n.push(e.toUpperCase()):n.push(e.toLowerCase()) +})),n})(g),built_in:b},p=e=>e.map((e=>e.replace(/\|\d+$/,""))),_={variants:[{ +match:[/new/,n.concat(l,"+"),n.concat("(?!",p(b).join("\\b|"),"\\b)"),i],scope:{ +1:"keyword",4:"title.class"}}]},h=n.concat(a,"\\b(?!\\()"),f={variants:[{ +match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{2:"variable.constant" +}},{match:[/::/,/class/],scope:{2:"variable.language"}},{ +match:[i,n.concat(/::/,n.lookahead(/(?!class\b)/)),h],scope:{1:"title.class", +3:"variable.constant"}},{match:[i,n.concat("::",n.lookahead(/(?!class\b)/))], +scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class", +3:"variable.language"}}]},E={scope:"attr", +match:n.concat(a,n.lookahead(":"),n.lookahead(/(?!::)/))},y={relevance:0, +begin:/\(/,end:/\)/,keywords:m,contains:[E,r,f,e.C_BLOCK_COMMENT_MODE,c,d,_] +},N={relevance:0, +match:[/\b/,n.concat("(?!fn\\b|function\\b|",p(u).join("\\b|"),"|",p(b).join("\\b|"),"\\b)"),a,n.concat(l,"*"),n.lookahead(/(?=\()/)], +scope:{3:"title.function.invoke"},contains:[y]};y.contains.push(N) +;const w=[E,f,e.C_BLOCK_COMMENT_MODE,c,d,_];return{case_insensitive:!1, +keywords:m,contains:[{begin:n.concat(/#\[\s*/,i),beginScope:"meta",end:/]/, +endScope:"meta",keywords:{literal:g,keyword:["new","array"]},contains:[{ +begin:/\[/,end:/]/,keywords:{literal:g,keyword:["new","array"]}, +contains:["self",...w]},...w,{scope:"meta",match:i}] +},e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{ +scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/, +keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE, +contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},{scope:"meta",variants:[{ +begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{ +begin:/\?>/}]},{scope:"variable.language",match:/\$this\b/},r,N,f,{ +match:[/const/,/\s/,a],scope:{1:"keyword",3:"variable.constant"}},_,{ +scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/, +excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use" +},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params", +begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:m, +contains:["self",r,f,e.C_BLOCK_COMMENT_MODE,c,d]}]},{scope:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{ +beginKeywords:"use",relevance:0,end:";",contains:[{ +match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},c,d]} +},grmr_php_template:e=>({name:"PHP template",subLanguage:"xml",contains:[{ +begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*", +end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0 +},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null, +skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null, +contains:null,skip:!0})]}]}),grmr_plaintext:e=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0}),grmr_python:e=>{ +const n=e.regex,t=/[\p{XID_Start}_]\p{XID_Continue}*/u,a=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],i={ +$pattern:/[A-Za-z]\w+|__\w+__/,keyword:a, +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},r={className:"meta",begin:/^(>>>|\.\.\.) /},s={className:"subst",begin:/\{/, +end:/\}/,keywords:i,illegal:/#/},o={begin:/\{\{/,relevance:0},l={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,r],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o,s]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,o,s]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,o,s]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,g="\\b|"+a.join("|"),u={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${g})`},{begin:`(${d})[jJ]?`},{ +begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${g})`},{ +begin:`\\b0[bB](_?[01])+[lL]?(?=${g})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${g})` +},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${g})`},{begin:`\\b(${c})[jJ](?=${g})` +}]},b={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:i, +contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={ +className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/, +end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:i, +contains:["self",r,u,l,e.HASH_COMMENT_MODE]}]};return s.contains=[l,u,r],{ +name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:i, +illegal:/(<\/|\?)|=>/,contains:[r,u,{begin:/\bself\b/},{beginKeywords:"if", +relevance:0},l,b,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{ +1:"keyword",3:"title.function"},contains:[m]},{variants:[{ +match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}], +scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{ +className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[u,m,l]}]}}, +grmr_python_repl:e=>({aliases:["pycon"],contains:[{className:"meta.prompt", +starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{ +begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}),grmr_r:e=>{ +const n=e.regex,t=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,a=n.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,r=n.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/) +;return{name:"R",keywords:{$pattern:t, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/, +starts:{end:n.lookahead(n.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)), +endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{ +scope:"variable",variants:[{match:t},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0 +}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}] +}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE], +variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{ +1:"operator",2:"number"},match:[i,a]},{scope:{1:"operator",2:"number"}, +match:[/%[^%]*%/,a]},{scope:{1:"punctuation",2:"number"},match:[r,a]},{scope:{ +2:"number"},match:[/[^a-zA-Z0-9._]|^/,a]}]},{scope:{3:"operator"}, +match:[t,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{ +match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:r},{begin:"`",end:"`", +contains:[{begin:/\\./}]}]}},grmr_ruby:e=>{ +const n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",a=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=n.concat(a,/(::\w+)*/),r={ +"variable.constant":["__FILE__","__LINE__","__ENCODING__"], +"variable.language":["self","super"], +keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield","include","extend","prepend","public","private","protected","raise","throw"], +built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"], +literal:["true","false","nil"]},s={className:"doctag",begin:"@[A-Za-z]+"},o={ +begin:"#<",end:">"},l=[e.COMMENT("#","$",{contains:[s] +}),e.COMMENT("^=begin","^=end",{contains:[s],relevance:10 +}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/, +end:/\}/,keywords:r},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c], +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{ +begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{ +begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//, +end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{ +begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{ +begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)), +contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",u={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},b={variants:[{match:/\(\)/},{ +className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0, +keywords:r}]},m=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{ +match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class", +4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,i],scope:{ +2:"title.class"},keywords:r},{relevance:0,match:[i,/\.new[. (]/],scope:{ +1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/, +className:"variable.constant"},{relevance:0,match:a,scope:"title.class"},{ +match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[b]},{ +begin:e.IDENT_RE+"::"},{className:"symbol", +begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[d,{begin:t}],relevance:0},u,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0, +relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*", +keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c], +illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{ +begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[", +end:"\\][a-z]*"}]}].concat(o,l),relevance:0}].concat(o,l) +;c.contains=m,b.contains=m;const p=[{begin:/^\s*=>/,starts:{end:"$",contains:m} +},{className:"meta.prompt", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",keywords:r,contains:m}}];return l.unshift(o),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/, +contains:[e.SHEBANG({binary:"ruby"})].concat(p).concat(l).concat(m)}}, +grmr_rust:e=>{const n=e.regex,t={className:"title.function.invoke",relevance:0, +begin:n.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,n.lookahead(/\s*\(/)) +},a="([ui](8|16|32|64|128|size)|f(32|64))?",i=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],r=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"] +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:r, +keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"], +literal:["true","false","Some","None","Ok","Err"],built_in:i},illegal:""},t]}}, +grmr_scss:e=>{const n=ie(e),t=le,a=oe,i="@[a-z-]+",r={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS", +case_insensitive:!0,illegal:"[=/|']", +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n.CSS_NUMBER_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+re.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+a.join("|")+")"},{className:"selector-pseudo", +begin:":(:)?("+t.join("|")+")"},r,{begin:/\(/,end:/\)/, +contains:[n.CSS_NUMBER_MODE]},n.CSS_VARIABLE,{className:"attribute", +begin:"\\b("+ce.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:/:/,end:/[;}{]/,relevance:0, +contains:[n.BLOCK_COMMENT,r,n.HEXCOLOR,n.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.IMPORTANT,n.FUNCTION_DISPATCH] +},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{ +begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:se.join(" ")},contains:[{begin:i, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},r,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,n.HEXCOLOR,n.CSS_NUMBER_MODE] +},n.FUNCTION_DISPATCH]}},grmr_shell:e=>({name:"Shell Session", +aliases:["console","shellsession"],contains:[{className:"meta.prompt", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]}),grmr_sql:e=>{ +const n=e.regex,t=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=r,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!r.includes(e))),c={ +begin:n.concat(/\b/,n.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}} +;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{ +$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:n,when:t}={})=>{const a=t +;return n=n||[],e.map((e=>e.match(/\|\d+$/)||n.includes(e)?e:a(e)?e+"|0":e)) +})(l,{when:e=>e.length<3}),literal:a,type:i, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:n.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/, +keyword:l.concat(s),literal:a,type:i}},{className:"type", +begin:n.either("double precision","large object","with timezone","without timezone") +},c,{className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},{className:"string", +variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/, +contains:[{begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{ +className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/, +relevance:0}]}},grmr_swift:e=>{const n={match:/\s+/,relevance:0 +},t=e.COMMENT("/\\*","\\*/",{contains:["self"]}),a=[e.C_LINE_COMMENT_MODE,t],i={ +match:[/\./,m(...xe,...Me)],className:{2:"keyword"}},r={match:b(/\./,m(...Ae)), +relevance:0},s=Ae.filter((e=>"string"==typeof e)).concat(["_|0"]),o={variants:[{ +className:"keyword", +match:m(...Ae.filter((e=>"string"!=typeof e)).concat(Se).map(ke),...Me)}]},l={ +$pattern:m(/\b\w+/,/#\w+/),keyword:s.concat(Re),literal:Ce},c=[i,r,o],g=[{ +match:b(/\./,m(...De)),relevance:0},{className:"built_in", +match:b(/\b/,m(...De),/(?=\()/)}],u={match:/->/,relevance:0},p=[u,{ +className:"operator",relevance:0,variants:[{match:Be},{match:`\\.(\\.|${Le})+`}] +}],_="([0-9]_*)+",h="([0-9a-fA-F]_*)+",f={className:"number",relevance:0, +variants:[{match:`\\b(${_})(\\.(${_}))?([eE][+-]?(${_}))?\\b`},{ +match:`\\b0x(${h})(\\.(${h}))?([pP][+-]?(${_}))?\\b`},{match:/\b0o([0-7]_*)+\b/ +},{match:/\b0b([01]_*)+\b/}]},E=(e="")=>({className:"subst",variants:[{ +match:b(/\\/,e,/[0\\tnr"']/)},{match:b(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}] +}),y=(e="")=>({className:"subst",match:b(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/) +}),N=(e="")=>({className:"subst",label:"interpol",begin:b(/\\/,e,/\(/),end:/\)/ +}),w=(e="")=>({begin:b(e,/"""/),end:b(/"""/,e),contains:[E(e),y(e),N(e)] +}),v=(e="")=>({begin:b(e,/"/),end:b(/"/,e),contains:[E(e),N(e)]}),O={ +className:"string", +variants:[w(),w("#"),w("##"),w("###"),v(),v("#"),v("##"),v("###")] +},k=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0, +contains:[e.BACKSLASH_ESCAPE]}],x={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//, +contains:k},M=e=>{const n=b(e,/\//),t=b(/\//,e);return{begin:n,end:t, +contains:[...k,{scope:"comment",begin:`#(?!.*${t})`,end:/$/}]}},S={ +scope:"regexp",variants:[M("###"),M("##"),M("#"),x]},A={match:b(/`/,Fe,/`/) +},C=[A,{className:"variable",match:/\$\d+/},{className:"variable", +match:`\\$${ze}+`}],T=[{match:/(@|#(un)?)available/,scope:"keyword",starts:{ +contains:[{begin:/\(/,end:/\)/,keywords:Pe,contains:[...p,f,O]}]}},{ +scope:"keyword",match:b(/@/,m(...je))},{scope:"meta",match:b(/@/,Fe)}],R={ +match:d(/\b[A-Z]/),relevance:0,contains:[{className:"type", +match:b(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ze,"+") +},{className:"type",match:Ue,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:b(/\s+&\s+/,d(Ue)),relevance:0}]},D={ +begin://,keywords:l,contains:[...a,...c,...T,u,R]};R.contains.push(D) +;const I={begin:/\(/,end:/\)/,relevance:0,keywords:l,contains:["self",{ +match:b(Fe,/\s*:/),keywords:"_|0",relevance:0 +},...a,S,...c,...g,...p,f,O,...C,...T,R]},L={begin://, +keywords:"repeat each",contains:[...a,R]},B={begin:/\(/,end:/\)/,keywords:l, +contains:[{begin:m(d(b(Fe,/\s*:/)),d(b(Fe,/\s+/,Fe,/\s*:/))),end:/:/, +relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params", +match:Fe}]},...a,...c,...p,f,O,...T,R,I],endsParent:!0,illegal:/["']/},$={ +match:[/(func|macro)/,/\s+/,m(A.match,Fe,Be)],className:{1:"keyword", +3:"title.function"},contains:[L,B,n],illegal:[/\[/,/%/]},z={ +match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"}, +contains:[L,B,n],illegal:/\[|%/},F={match:[/operator/,/\s+/,Be],className:{ +1:"keyword",3:"title"}},U={begin:[/precedencegroup/,/\s+/,Ue],className:{ +1:"keyword",3:"title"},contains:[R],keywords:[...Te,...Ce],end:/}/} +;for(const e of O.variants){const n=e.contains.find((e=>"interpol"===e.label)) +;n.keywords=l;const t=[...c,...g,...p,f,O,...C];n.contains=[...t,{begin:/\(/, +end:/\)/,contains:["self",...t]}]}return{name:"Swift",keywords:l, +contains:[...a,$,z,{beginKeywords:"struct protocol class extension enum actor", +end:"\\{",excludeEnd:!0,keywords:l,contains:[e.inherit(e.TITLE_MODE,{ +className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c] +},F,U,{beginKeywords:"import",end:/$/,contains:[...a],relevance:0 +},S,...c,...g,...p,f,O,...C,...T,R,I]}},grmr_typescript:e=>{ +const n=Oe(e),t=_e,a=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0, +contains:[n.exports.CLASS_REFERENCE]},r={beginKeywords:"interface",end:/\{/, +excludeEnd:!0,keywords:{keyword:"interface extends",built_in:a}, +contains:[n.exports.CLASS_REFERENCE]},s={$pattern:_e, +keyword:he.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]), +literal:fe,built_in:ve.concat(a),"variable.language":we},o={className:"meta", +begin:"@"+t},l=(e,n,t)=>{const a=e.contains.findIndex((e=>e.label===n)) +;if(-1===a)throw Error("can not find mode to replace");e.contains.splice(a,1,t)} +;return Object.assign(n.keywords,s), +n.exports.PARAMS_CONTAINS.push(o),n.contains=n.contains.concat([o,i,r]), +l(n,"shebang",e.SHEBANG()),l(n,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),n.contains.find((e=>"func.def"===e.label)).relevance=0,Object.assign(n,{ +name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n},grmr_vbnet:e=>{ +const n=e.regex,t=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,i=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,s={ +className:"literal",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{ +begin:n.concat(/# */,r,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{ +begin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,r),/ *#/)}] +},o=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}] +}),l=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]}) +;return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0, +classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},s,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},o,l,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +keyword:"const disable else elseif enable end externalsource if region then"}, +contains:[l]}]}},grmr_wasm:e=>{e.regex;const n=e.COMMENT(/\(;/,/;\)/) +;return n.contains.push("self"),{name:"WebAssembly",keywords:{$pattern:/[\w.]+/, +keyword:["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"] +},contains:[e.COMMENT(/;;/,/$/),n,{match:[/(?:offset|align)/,/\s*/,/=/], +className:{1:"keyword",3:"operator"}},{className:"variable",begin:/\$[\w_]+/},{ +match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},{ +begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword", +3:"title.function"}},e.QUOTE_STRING_MODE,{match:/(i32|i64|f32|f64)(?!\.)/, +className:"type"},{className:"keyword", +match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/ +},{className:"number",relevance:0, +match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/ +}]}},grmr_xml:e=>{ +const n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),a={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},i={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},r=e.inherit(i,{begin:/\(/,end:/\)/}),s=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),o=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[i,o,s,r,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[i,r,o,s]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[o]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:n.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:l}]},{ +className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{ +className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]} +},grmr_yaml:e=>{ +const n="true false yes no null",t="[\\w#;/?:@&=+$,.~*'()[\\]]+",a={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(a,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),r={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},s={begin:/\{/, +end:/\}/,contains:[r],illegal:"\\n",relevance:0},o={begin:"\\[",end:"\\]", +contains:[r],illegal:"\\n",relevance:0},l=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+t},{className:"type", +begin:"!<"+t+">"},{className:"type",begin:"!"+t},{className:"type",begin:"!!"+t +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,o,a],c=[...l] +;return c.pop(),c.push(i),r.contains=c,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:l}}});const He=ae;for(const e of Object.keys(Ke)){ +const n=e.replace("grmr_","").replace("_","-");He.registerLanguage(n,Ke[e])} +return He}() +;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); \ No newline at end of file diff --git a/public/vendor/hljs-github-dark.css b/public/vendor/hljs-github-dark.css new file mode 100644 index 0000000..03b6da8 --- /dev/null +++ b/public/vendor/hljs-github-dark.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub Dark + Description: Dark theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-dark + Current colors taken from GitHub's CSS +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c} \ No newline at end of file diff --git a/public/vendor/hljs-github.css b/public/vendor/hljs-github.css new file mode 100644 index 0000000..275239a --- /dev/null +++ b/public/vendor/hljs-github.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0} \ No newline at end of file diff --git a/public/vendor/marked.min.js b/public/vendor/marked.min.js new file mode 100644 index 0000000..b4e0d73 --- /dev/null +++ b/public/vendor/marked.min.js @@ -0,0 +1,69 @@ +/** + * marked v15.0.12 - a markdown parser + * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed) + * https://github.com/markedjs/marked + */ + +/** + * DO NOT EDIT THIS FILE + * The code in this file is generated from files in ./src/ + */ +(function(g,f){if(typeof exports=="object"&&typeof module<"u"){module.exports=f()}else if("function"==typeof define && define.amd){define("marked",f)}else {g["marked"]=f()}}(typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : this,function(){var exports={};var __exports=exports;var module={exports}; +"use strict";var H=Object.defineProperty;var be=Object.getOwnPropertyDescriptor;var Te=Object.getOwnPropertyNames;var we=Object.prototype.hasOwnProperty;var ye=(l,e)=>{for(var t in e)H(l,t,{get:e[t],enumerable:!0})},Re=(l,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Te(e))!we.call(l,s)&&s!==t&&H(l,s,{get:()=>e[s],enumerable:!(n=be(e,s))||n.enumerable});return l};var Se=l=>Re(H({},"__esModule",{value:!0}),l);var kt={};ye(kt,{Hooks:()=>L,Lexer:()=>x,Marked:()=>E,Parser:()=>b,Renderer:()=>$,TextRenderer:()=>_,Tokenizer:()=>S,defaults:()=>w,getDefaults:()=>z,lexer:()=>ht,marked:()=>k,options:()=>it,parse:()=>pt,parseInline:()=>ct,parser:()=>ut,setOptions:()=>ot,use:()=>lt,walkTokens:()=>at});module.exports=Se(kt);function z(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var w=z();function N(l){w=l}var I={exec:()=>null};function h(l,e=""){let t=typeof l=="string"?l:l.source,n={replace:(s,i)=>{let r=typeof i=="string"?i:i.source;return r=r.replace(m.caret,"$1"),t=t.replace(s,r),n},getRegex:()=>new RegExp(t,e)};return n}var m={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:l=>new RegExp(`^( {0,3}${l})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}#`),htmlBeginRegex:l=>new RegExp(`^ {0,${Math.min(3,l-1)}}<(?:[a-z].*>|!--)`,"i")},$e=/^(?:[ \t]*(?:\n|$))+/,_e=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Le=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,O=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,ze=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,F=/(?:[*+-]|\d{1,9}[.)])/,ie=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,oe=h(ie).replace(/bull/g,F).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(),Me=h(ie).replace(/bull/g,F).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(),Q=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Pe=/^[^\n]+/,U=/(?!\s*\])(?:\\.|[^\[\]\\])+/,Ae=h(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",U).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Ee=h(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,F).getRegex(),v="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",K=/|$))/,Ce=h("^ {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",K).replace("tag",v).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),le=h(Q).replace("hr",O).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",v).getRegex(),Ie=h(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",le).getRegex(),X={blockquote:Ie,code:_e,def:Ae,fences:Le,heading:ze,hr:O,html:Ce,lheading:oe,list:Ee,newline:$e,paragraph:le,table:I,text:Pe},re=h("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",O).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",v).getRegex(),Oe={...X,lheading:Me,table:re,paragraph:h(Q).replace("hr",O).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",re).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",v).getRegex()},Be={...X,html:h(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",K).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:I,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:h(Q).replace("hr",O).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",oe).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},qe=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ve=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ae=/^( {2,}|\\)\n(?!\s*$)/,De=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,ue=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,je=h(ue,"u").replace(/punct/g,D).getRegex(),Fe=h(ue,"u").replace(/punct/g,pe).getRegex(),he="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Qe=h(he,"gu").replace(/notPunctSpace/g,ce).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Ue=h(he,"gu").replace(/notPunctSpace/g,He).replace(/punctSpace/g,Ge).replace(/punct/g,pe).getRegex(),Ke=h("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,ce).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Xe=h(/\\(punct)/,"gu").replace(/punct/g,D).getRegex(),We=h(/^<(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(),Je=h(K).replace("(?:-->|$)","-->").getRegex(),Ve=h("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Je).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),q=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,Ye=h(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",q).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ke=h(/^!?\[(label)\]\[(ref)\]/).replace("label",q).replace("ref",U).getRegex(),ge=h(/^!?\[(ref)\](?:\[\])?/).replace("ref",U).getRegex(),et=h("reflink|nolink(?!\\()","g").replace("reflink",ke).replace("nolink",ge).getRegex(),J={_backpedal:I,anyPunctuation:Xe,autolink:We,blockSkip:Ne,br:ae,code:ve,del:I,emStrongLDelim:je,emStrongRDelimAst:Qe,emStrongRDelimUnd:Ke,escape:qe,link:Ye,nolink:ge,punctuation:Ze,reflink:ke,reflinkSearch:et,tag:Ve,text:De,url:I},tt={...J,link:h(/^!?\[(label)\]\((.*?)\)/).replace("label",q).getRegex(),reflink:h(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",q).getRegex()},j={...J,emStrongRDelimAst:Ue,emStrongLDelim:Fe,url:h(/^((?: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~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},fe=l=>st[l];function R(l,e){if(e){if(m.escapeTest.test(l))return l.replace(m.escapeReplace,fe)}else if(m.escapeTestNoEncode.test(l))return l.replace(m.escapeReplaceNoEncode,fe);return l}function V(l){try{l=encodeURI(l).replace(m.percentDecode,"%")}catch{return null}return l}function Y(l,e){let t=l.replace(m.findPipe,(i,r,o)=>{let a=!1,c=r;for(;--c>=0&&o[c]==="\\";)a=!a;return a?"|":" |"}),n=t.split(m.splitPipe),s=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length0?-2:-1}function me(l,e,t,n,s){let i=e.href,r=e.title||null,o=l[1].replace(s.other.outputLinkReplace,"$1");n.state.inLink=!0;let a={type:l[0].charAt(0)==="!"?"image":"link",raw:t,href:i,title:r,text:o,tokens:n.inlineTokens(o)};return n.state.inLink=!1,a}function rt(l,e,t){let n=l.match(t.other.indentCodeCompensation);if(n===null)return e;let s=n[1];return e.split(` +`).map(i=>{let r=i.match(t.other.beginningSpace);if(r===null)return i;let[o]=r;return o.length>=s.length?i.slice(s.length):i}).join(` +`)}var S=class{options;rules;lexer;constructor(e){this.options=e||w}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:A(n,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],s=rt(n,t[3]||"",this.rules);return{type:"code",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let s=A(n,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(n=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:A(t[0],` +`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=A(t[0],` +`).split(` +`),s="",i="",r=[];for(;n.length>0;){let o=!1,a=[],c;for(c=0;c1,i={type:"list",raw:"",ordered:s,start:s?+n.slice(0,-1):"",loose:!1,items:[]};n=s?`\\d{1,9}\\${n.slice(-1)}`:`\\${n}`,this.options.pedantic&&(n=s?n:"[*+-]");let r=this.rules.other.listItemRegex(n),o=!1;for(;e;){let c=!1,p="",u="";if(!(t=r.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let d=t[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,Z=>" ".repeat(3*Z.length)),g=e.split(` +`,1)[0],T=!d.trim(),f=0;if(this.options.pedantic?(f=2,u=d.trimStart()):T?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,u=d.slice(f),f+=t[1].length),T&&this.rules.other.blankLine.test(g)&&(p+=g+` +`,e=e.substring(g.length+1),c=!0),!c){let Z=this.rules.other.nextBulletRegex(f),te=this.rules.other.hrRegex(f),ne=this.rules.other.fencesBeginRegex(f),se=this.rules.other.headingBeginRegex(f),xe=this.rules.other.htmlBeginRegex(f);for(;e;){let G=e.split(` +`,1)[0],C;if(g=G,this.options.pedantic?(g=g.replace(this.rules.other.listReplaceNesting," "),C=g):C=g.replace(this.rules.other.tabCharGlobal," "),ne.test(g)||se.test(g)||xe.test(g)||Z.test(g)||te.test(g))break;if(C.search(this.rules.other.nonSpaceChar)>=f||!g.trim())u+=` +`+C.slice(f);else{if(T||d.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||ne.test(d)||se.test(d)||te.test(d))break;u+=` +`+g}!T&&!g.trim()&&(T=!0),p+=G+` +`,e=e.substring(G.length+1),d=C.slice(f)}}i.loose||(o?i.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(o=!0));let y=null,ee;this.options.gfm&&(y=this.rules.other.listIsTask.exec(u),y&&(ee=y[0]!=="[ ] ",u=u.replace(this.rules.other.listReplaceTask,""))),i.items.push({type:"list_item",raw:p,task:!!y,checked:ee,loose:!1,text:u,tokens:[]}),i.raw+=p}let a=i.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let c=0;cd.type==="space"),u=p.length>0&&p.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=u}if(i.loose)for(let c=0;c({text:a,tokens:this.lexer.inline(a),header:!1,align:r.align[c]})));return r}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===` +`?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let r=A(n.slice(0,-1),"\\");if((n.length-r.length)%2===0)return}else{let r=de(t[2],"()");if(r===-2)return;if(r>-1){let a=(t[0].indexOf("!")===0?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,a).trim(),t[3]=""}}let s=t[2],i="";if(this.options.pedantic){let r=this.rules.other.pedanticHrefTitle.exec(s);r&&(s=r[1],i=r[3])}else i=t[3]?t[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?s=s.slice(1):s=s.slice(1,-1)),me(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:i&&i.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let s=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),i=t[s.toLowerCase()];if(!i){let r=n[0].charAt(0);return{type:"text",raw:r,text:r}}return me(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||s[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(s[1]||s[2]||"")||!n||this.rules.inline.punctuation.exec(n)){let r=[...s[0]].length-1,o,a,c=r,p=0,u=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,t=t.slice(-1*e.length+r);(s=u.exec(t))!=null;){if(o=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!o)continue;if(a=[...o].length,s[3]||s[4]){c+=a;continue}else if((s[5]||s[6])&&r%3&&!((r+a)%3)){p+=a;continue}if(c-=a,c>0)continue;a=Math.min(a,a+c+p);let d=[...s[0]][0].length,g=e.slice(0,r+s.index+d+a);if(Math.min(r,a)%2){let f=g.slice(1,-1);return{type:"em",raw:g,text:f,tokens:this.lexer.inlineTokens(f)}}let T=g.slice(2,-2);return{type:"strong",raw:g,text:T,tokens:this.lexer.inlineTokens(T)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return s&&i&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,s;return t[2]==="@"?(n=t[1],s="mailto:"+n):(n=t[1],s=n),{type:"link",raw:t[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,s;if(t[2]==="@")n=t[0],s="mailto:"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??"";while(i!==t[0]);n=t[0],t[1]==="www."?s="http://"+t[0]:s=t[0]}return{type:"link",raw:t[0],text:n,href:s,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:"text",raw:t[0],text:t[0],escaped:n}}}};var x=class l{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||w,this.options.tokenizer=this.options.tokenizer||new S,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 t={other:m,block:B.normal,inline:P.normal};this.options.pedantic?(t.block=B.pedantic,t.inline=P.pedantic):this.options.gfm&&(t.block=B.gfm,this.options.breaks?t.inline=P.breaks:t.inline=P.gfm),this.tokenizer.rules=t}static get rules(){return{block:B,inline:P}}static lex(e,t){return new l(t).lex(e)}static lexInline(e,t){return new l(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let t=0;t(s=r.call({lexer:this},e,t))?(e=e.substring(s.raw.length),t.push(s),!0):!1))continue;if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length);let r=t.at(-1);s.raw.length===1&&r!==void 0?r.raw+=` +`:t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="paragraph"||r?.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.raw,this.inlineQueue.at(-1).src=r.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),t.push(s);continue}let i=e;if(this.options.extensions?.startBlock){let r=1/0,o=e.slice(1),a;this.options.extensions.startBlock.forEach(c=>{a=c.call({lexer:this},o),typeof a=="number"&&a>=0&&(r=Math.min(r,a))}),r<1/0&&r>=0&&(i=e.substring(0,r+1))}if(this.state.top&&(s=this.tokenizer.paragraph(i))){let r=t.at(-1);n&&r?.type==="paragraph"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s),n=i.length!==e.length,e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length);let r=t.at(-1);r?.type==="text"?(r.raw+=` +`+s.raw,r.text+=` +`+s.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=r.text):t.push(s);continue}if(e){let r="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(r);break}else throw new Error(r)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,s=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(s=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)o.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,r="";for(;e;){i||(r=""),i=!1;let o;if(this.options.extensions?.inline?.some(c=>(o=c.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let c=t.at(-1);o.type==="text"&&c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,r)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let a=e;if(this.options.extensions?.startInline){let c=1/0,p=e.slice(1),u;this.options.extensions.startInline.forEach(d=>{u=d.call({lexer:this},p),typeof u=="number"&&u>=0&&(c=Math.min(c,u))}),c<1/0&&c>=0&&(a=e.substring(0,c+1))}if(o=this.tokenizer.inlineText(a)){e=e.substring(o.raw.length),o.raw.slice(-1)!=="_"&&(r=o.raw.slice(-1)),i=!0;let c=t.at(-1);c?.type==="text"?(c.raw+=o.raw,c.text+=o.text):t.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 t}};var $=class{options;parser;constructor(e){this.options=e||w}space(e){return""}code({text:e,lang:t,escaped:n}){let s=(t||"").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,"")+` +`;return s?'
'+(n?i:R(i,!0))+`
+`:"
"+(n?i:R(i,!0))+`
+`}blockquote({tokens:e}){return`
+${this.parser.parse(e)}
+`}html({text:e}){return e}heading({tokens:e,depth:t}){return`${this.parser.parseInline(e)} +`}hr(e){return`
+`}list(e){let t=e.ordered,n=e.start,s="";for(let o=0;o +`+s+" +`}listitem(e){let t="";if(e.task){let n=this.checkbox({checked:!!e.checked});e.loose?e.tokens[0]?.type==="paragraph"?(e.tokens[0].text=n+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=n+" "+R(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:n+" ",text:n+" ",escaped:!0}):t+=n+" "}return t+=this.parser.parse(e.tokens,!!e.loose),`
  • ${t}
  • +`}checkbox({checked:e}){return"'}paragraph({tokens:e}){return`

    ${this.parser.parseInline(e)}

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

    An error occurred:

    "+R(n.message+"",!0)+"
    ";return t?Promise.resolve(s):s}if(t)return Promise.reject(n);throw n}}};var M=new E;function k(l,e){return M.parse(l,e)}k.options=k.setOptions=function(l){return M.setOptions(l),k.defaults=M.defaults,N(k.defaults),k};k.getDefaults=z;k.defaults=w;k.use=function(...l){return M.use(...l),k.defaults=M.defaults,N(k.defaults),k};k.walkTokens=function(l,e){return M.walkTokens(l,e)};k.parseInline=M.parseInline;k.Parser=b;k.parser=b.parse;k.Renderer=$;k.TextRenderer=_;k.Lexer=x;k.lexer=x.lex;k.Tokenizer=S;k.Hooks=L;k.parse=k;var it=k.options,ot=k.setOptions,lt=k.use,at=k.walkTokens,ct=k.parseInline,pt=k,ut=b.parse,ht=x.lex; + +if(__exports != exports)module.exports = exports;return module.exports})); diff --git a/public/vendor/opentype.min.js b/public/vendor/opentype.min.js new file mode 100644 index 0000000..e776d24 --- /dev/null +++ b/public/vendor/opentype.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).opentype={})}(this,function(O){"use strict";function e(e){if(null==this)throw TypeError();var t=String(this),r=t.length,n=e?Number(e):0;if(n!=n&&(n=0),!(n<0||r<=n)){var a,o=t.charCodeAt(n);return 55296<=o&&o<=56319&&n+1>>=1,t}function S(e,t,r){if(!t)return r;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,n+r}function x(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++a,r+=t.table[a],0<=(n-=t.table[a]););return e.tag=o,e.bitcount-=a,t.trans[r+n]}function T(e,t,r){var n,a,o,s,i,u;for(n=S(e,5,257),a=S(e,5,1),o=S(e,4,4),s=0;s<19;++s)v[s]=0;for(s=0;sthis.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},R.prototype.addX=function(e){this.addPoint(e,null)},R.prototype.addY=function(e){this.addPoint(null,e)},R.prototype.addBezier=function(e,t,r,n,a,o,s,i){var u=[e,t],l=[r,n],p=[a,o],c=[s,i];this.addPoint(e,t),this.addPoint(s,i);for(var h=0;h<=1;h++){var f=6*u[h]-12*l[h]+6*p[h],d=-3*u[h]+9*l[h]-9*p[h]+3*c[h],g=3*l[h]-3*u[h];if(0!=d){var v=Math.pow(f,2)-4*g*d;if(!(v<0)){var m=(-f+Math.sqrt(v))/(2*d);0>8&255,255&e]},G.USHORT=F(2),M.SHORT=function(e){return 32768<=e&&(e=-(65536-e)),[e>>8&255,255&e]},G.SHORT=F(2),M.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},G.UINT24=F(3),M.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},G.ULONG=F(4),M.LONG=function(e){return D<=e&&(e=-(2*D-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},G.LONG=F(4),M.FIXED=M.ULONG,G.FIXED=G.ULONG,M.FWORD=M.SHORT,G.FWORD=G.SHORT,M.UFWORD=M.USHORT,G.UFWORD=G.USHORT,M.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},G.LONGDATETIME=F(8),M.TAG=function(e){return w.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},G.TAG=F(4),M.Card8=M.BYTE,G.Card8=G.BYTE,M.Card16=M.USHORT,G.Card16=G.USHORT,M.OffSize=M.BYTE,G.OffSize=G.BYTE,M.SID=M.USHORT,G.SID=G.USHORT,M.NUMBER=function(e){return-107<=e&&e<=107?[e+139]:108<=e&&e<=1131?[247+((e-=108)>>8),255&e]:-1131<=e&&e<=-108?[251+((e=-e-108)>>8),255&e]:-32768<=e&&e<=32767?M.NUMBER16(e):M.NUMBER32(e)},G.NUMBER=function(e){return M.NUMBER(e).length},M.NUMBER16=function(e){return[28,e>>8&255,255&e]},G.NUMBER16=F(3),M.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},G.NUMBER32=F(5),M.REAL=function(e){var t=e.toString(),r=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(r){var n=parseFloat("1e"+((r[2]?+r[2]:0)+r[1].length));t=(Math.round(e*n)/n).toString()}for(var a="",o=0,s=t.length;o>8&255,t[t.length]=255&n}return t},G.UTF16=function(e){return 2*e.length};var A={"x-mac-croatian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊©⁄€‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ","x-mac-cyrillic":"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю","x-mac-gaelic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØḂ±≤≥ḃĊċḊḋḞḟĠġṀæøṁṖṗɼƒſṠ«»… ÀÃÕŒœ–—“”‘’ṡẛÿŸṪ€‹›Ŷŷṫ·Ỳỳ⁊ÂÊÁËÈÍÎÏÌÓÔ♣ÒÚÛÙıÝýŴŵẄẅẀẁẂẃ","x-mac-greek":"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦€ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ­","x-mac-icelandic":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-inuit":"ᐃᐄᐅᐆᐊᐋᐱᐲᐳᐴᐸᐹᑉᑎᑏᑐᑑᑕᑖᑦᑭᑮᑯᑰᑲᑳᒃᒋᒌᒍᒎᒐᒑ°ᒡᒥᒦ•¶ᒧ®©™ᒨᒪᒫᒻᓂᓃᓄᓅᓇᓈᓐᓯᓰᓱᓲᓴᓵᔅᓕᓖᓗᓘᓚᓛᓪᔨᔩᔪᔫᔭ… ᔮᔾᕕᕖᕗ–—“”‘’ᕘᕙᕚᕝᕆᕇᕈᕉᕋᕌᕐᕿᖀᖁᖂᖃᖄᖅᖏᖐᖑᖒᖓᖔᖕᙱᙲᙳᙴᙵᙶᖖᖠᖡᖢᖣᖤᖥᖦᕼŁł","x-mac-ce":"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",macintosh:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-romanian":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂȘ∞±≤≥¥µ∂∑∏π∫ªºΩăș¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄€‹›Țț‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ","x-mac-turkish":"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔÒÚÛÙˆ˜¯˘˙˚¸˝˛ˇ"};I.MACSTRING=function(e,t,r,n){var a=A[n];if(void 0!==a){for(var o="",s=0;s>8&255,u+256&255)}return o}M.MACSTRING=function(e,t){var r=function(e){if(!P)for(var t in P={},A)P[t]=new String(t);var r=P[e];if(void 0!==r){if(N){var n=N.get(r);if(void 0!==n)return n}var a=A[e];if(void 0!==a){for(var o={},s=0;s>8,t[c+1]=255&h,t=t.concat(n[p])}return t},G.TABLE=function(e){for(var t=0,r=e.fields.length,n=0;n>1,t.skip("uShort",3),e.glyphIndexMap={};for(var s=new ie.Parser(r,n+a+14),i=new ie.Parser(r,n+a+16+2*o),u=new ie.Parser(r,n+a+16+4*o),l=new ie.Parser(r,n+a+16+6*o),p=n+a+16+8*o,c=0;c>4,o=15&n;if(15==a)break;if(t+=r[a],15==o)break;t+=r[o]}return parseFloat(t)}(e);if(32<=t&&t<=246)return t-139;if(247<=t&&t<=250)return 256*(t-247)+e.parseByte()+108;if(251<=t&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function Re(e,t,r){t=void 0!==t?t:0;var n=new ie.Parser(e,t),a=[],o=[];for(r=void 0!==r?r:e.length;n.relativeOffset>1,E.length=0,L=!0}return function e(t){for(var r,n,a,o,s,i,u,l,p,c,h,f,d=0;dMath.abs(f-D)?w=h+E.shift():D=f+E.shift(),O.curveTo(y,b,S,x,u,l),O.curveTo(p,c,h,f,w,D);break;default:console.log("Glyph "+m.index+": unknown operator 1200"+g),E.length=0}break;case 14:0>3;break;case 21:2>16),d+=2;break;case 29:s=E.pop()+v.gsubrsBias,(i=v.gsubrs[s])&&e(i);break;case 30:for(;0=r.begin&&e=he.length){var s=n.parseChar();r.names.push(n.parseString(s))}break;case 2.5:r.numberOfGlyphs=n.parseUShort(),r.offset=new Array(r.numberOfGlyphs);for(var i=0;it.value.tag?1:-1}),t.fields=t.fields.concat(n),t.fields=t.fields.concat(a),t}function mt(e,t,r){for(var n=0;n 123 are reserved for internal usage");f|=1<>>1,o=e[a].tag;if(o===t)return a;o>>1,o=e[a];if(o===t)return a;o>>1,s=(r=e[o]).start;if(s===t)return r;s(r=e[n-1]).end?0:r}function Tt(e,t){this.font=e,this.tableName=t}function kt(e){Tt.call(this,e,"gpos")}function Ut(e){Tt.call(this,e,"gsub")}function Ot(e,t){var r=e.length;if(r===t.length){for(var n=0;nt.points.length-1||n.matchedPoints[1]>a.points.length-1)throw Error("Matched points out of range in "+t.name);var s=t.points[n.matchedPoints[0]],i=a.points[n.matchedPoints[1]],u={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};i=Dt([i],u)[0],u.dx=s.x-i.x,u.dy=s.y-i.y,o=Dt(a.points,u)}t.points=t.points.concat(o)}}return It(t.points)}(kt.prototype=Tt.prototype={searchTag:bt,binSearch:St,getTable:function(e){var t=this.font.tables[this.tableName];return!t&&e&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var e=this.getTable();return e?e.scripts.map(function(e){return e.tag}):[]},getDefaultScriptName:function(){var e=this.getTable();if(e){for(var t=!1,r=0;r=i[l-1].tag,"Features must be added in alphabetical order."),o={tag:r,feature:{params:0,lookupListIndexes:[]}},i.push(o),s.push(l),o.feature}}},getLookupTables:function(e,t,r,n,a){var o=this.getFeatureTable(e,t,r,a),s=[];if(o){for(var i,u=o.lookupListIndexes,l=this.font.tables[this.tableName].lookups,p=0;p",i),t.stack.push(Math.round(64*i))}function yr(e,t){var r=t.stack,n=r.pop(),a=t.fv,o=t.pv,s=t.ppem,i=t.deltaBase+16*(e-1),u=t.deltaShift,l=t.z0;O.DEBUG&&console.log(t.step,"DELTAP["+e+"]",n,r);for(var p=0;p>4)===s){var f=(15&h)-8;0<=f&&f++,O.DEBUG&&console.log(t.step,"DELTAPFIX",c,"by",f*u);var d=l[c];a.setRelative(d,d,f*u,o)}}}function br(e,t){var r=t.stack,n=r.pop();O.DEBUG&&console.log(t.step,"ROUND[]"),r.push(64*t.round(n/64))}function Sr(e,t){var r=t.stack,n=r.pop(),a=t.ppem,o=t.deltaBase+16*(e-1),s=t.deltaShift;O.DEBUG&&console.log(t.step,"DELTAC["+e+"]",n,r);for(var i=0;i>4)===a){var p=(15&l)-8;0<=p&&p++;var c=p*s;O.DEBUG&&console.log(t.step,"DELTACFIX",u,"by",c),t.cvt[u]+=c}}}function xr(e,t){var r,n,a=t.stack,o=a.pop(),s=a.pop(),i=t.z2[o],u=t.z1[s];O.DEBUG&&console.log(t.step,"SDPVTL["+e+"]",o,s),n=e?(r=i.y-u.y,u.x-i.x):(r=u.x-i.x,u.y-i.y),t.dpv=Qt(r,n)}function Tr(e,t){var r=t.stack,n=t.prog,a=t.ip;O.DEBUG&&console.log(t.step,"PUSHB["+e+"]");for(var o=0;o":"_")+(n?"R":"_")+(0===a?"Gr":1===a?"Bl":2===a?"Wh":"")+"]",e?c+"("+o.cvt[c]+","+l+")":"",h,"(d =",s,"->",u*i,")"),o.rp1=o.rp0,o.rp2=h,t&&(o.rp0=h)}function Or(e){this.char=e,this.state={},this.activeState=null}function Er(e,t,r){this.contextName=r,this.startIndex=e,this.endOffset=t}function Rr(e,t,r){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=r}function Lr(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function Cr(e){this.eventId=e,this.subscribers=[]}function wr(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],function(r){var n=this,e=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];e.forEach(function(e){Object.defineProperty(n.events,e,{value:new Cr(e)})}),r&&e.forEach(function(e){var t=r[e];"function"==typeof t&&n.events[e].subscribe(t)}),["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach(function(e){n.events[e].subscribe(n.updateContextsRanges)})}.call(this,e)}function Dr(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function Ir(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function Mr(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function Gr(e){return/[A-z]/.test(e)}function Br(e){this.font=e,this.features={}}function Fr(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function Ar(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var r=t.ranges,n=0;n=a.start&&e<=a.end){var o=e-a.start;return a.index+o}}break;default:return-1}return-1}function Pr(e,t){for(var r=[],n=0;n",n),i.interpolate(c,o,s,u),i.touch(c)}e.loop=1},dr.bind(void 0,0),dr.bind(void 0,1),function(e){for(var t=e.stack,r=e.rp0,n=e.z0[r],a=e.loop,o=e.fv,s=e.pv,i=e.z1;a--;){var u=t.pop(),l=i[u];O.DEBUG&&console.log(e.step,(1{var qv=Object.create;var Hi=Object.defineProperty;var $v=Object.getOwnPropertyDescriptor;var Lv=Object.getOwnPropertyNames;var Mv=Object.getPrototypeOf,Nv=Object.prototype.hasOwnProperty;var df=r=>Hi(r,"__esModule",{value:!0});var hf=r=>{if(typeof require!="undefined")return require(r);throw new Error('Dynamic require of "'+r+'" is not supported')};var P=(r,e)=>()=>(r&&(e=r(r=0)),e);var x=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ge=(r,e)=>{df(r);for(var t in e)Hi(r,t,{get:e[t],enumerable:!0})},Bv=(r,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Lv(e))!Nv.call(r,i)&&i!=="default"&&Hi(r,i,{get:()=>e[i],enumerable:!(t=$v(e,i))||t.enumerable});return r},pe=r=>Bv(df(Hi(r!=null?qv(Mv(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var m,u=P(()=>{m={platform:"",env:{},versions:{node:"14.17.6"}}});var Fv,be,ft=P(()=>{u();Fv=0,be={readFileSync:r=>self[r]||"",statSync:()=>({mtimeMs:Fv++}),promises:{readFile:r=>Promise.resolve(self[r]||"")}}});var Fs=x((oP,gf)=>{u();"use strict";var mf=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||1/0,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,i]of e)this.onEviction(t,i.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let i=t.get(e);return this._getItemValue(e,i)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield e)}for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:i=this.maxAge===1/0?void 0:Date.now()+this.maxAge}={}){this.cache.has(e)?this.cache.set(e,{value:t,maxAge:i}):this._set(e,{value:t,expiry:i})}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],i=t.length-e;i<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(i>0&&this._emitEvictions(t.slice(0,i)),this.oldCache=new Map(t.slice(i)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,i]=e;this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}for(let e of this.oldCache){let[t,i]=e;this.cache.has(t)||this._deleteIfExpired(t,i)===!1&&(yield[t,i.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,s]=i;this._deleteIfExpired(n,s)===!1&&(yield[n,s.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let i=e[t],[n,s]=i;this.cache.has(n)||this._deleteIfExpired(n,s)===!1&&(yield[n,s.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}};gf.exports=mf});var yf,bf=P(()=>{u();yf=r=>r&&r._hash});function Wi(r){return yf(r,{ignoreUnknown:!0})}var wf=P(()=>{u();bf()});function xt(r){if(r=`${r}`,r==="0")return"0";if(/^[+-]?(\d+|\d*\.\d+)(e[+-]?\d+)?(%|\w+)?$/.test(r))return r.replace(/^[+-]?/,t=>t==="-"?"":"-");let e=["var","calc","min","max","clamp"];for(let t of e)if(r.includes(`${t}(`))return`calc(${r} * -1)`}var Gi=P(()=>{u()});var vf,xf=P(()=>{u();vf=["preflight","container","accessibility","pointerEvents","visibility","position","inset","isolation","zIndex","order","gridColumn","gridColumnStart","gridColumnEnd","gridRow","gridRowStart","gridRowEnd","float","clear","margin","boxSizing","lineClamp","display","aspectRatio","size","height","maxHeight","minHeight","width","minWidth","maxWidth","flex","flexShrink","flexGrow","flexBasis","tableLayout","captionSide","borderCollapse","borderSpacing","transformOrigin","translate","rotate","skew","scale","transform","animation","cursor","touchAction","userSelect","resize","scrollSnapType","scrollSnapAlign","scrollSnapStop","scrollMargin","scrollPadding","listStylePosition","listStyleType","listStyleImage","appearance","columns","breakBefore","breakInside","breakAfter","gridAutoColumns","gridAutoFlow","gridAutoRows","gridTemplateColumns","gridTemplateRows","flexDirection","flexWrap","placeContent","placeItems","alignContent","alignItems","justifyContent","justifyItems","gap","space","divideWidth","divideStyle","divideColor","divideOpacity","placeSelf","alignSelf","justifySelf","overflow","overscrollBehavior","scrollBehavior","textOverflow","hyphens","whitespace","textWrap","wordBreak","borderRadius","borderWidth","borderStyle","borderColor","borderOpacity","backgroundColor","backgroundOpacity","backgroundImage","gradientColorStops","boxDecorationBreak","backgroundSize","backgroundAttachment","backgroundClip","backgroundPosition","backgroundRepeat","backgroundOrigin","fill","stroke","strokeWidth","objectFit","objectPosition","padding","textAlign","textIndent","verticalAlign","fontFamily","fontSize","fontWeight","textTransform","fontStyle","fontVariantNumeric","lineHeight","letterSpacing","textColor","textOpacity","textDecoration","textDecorationColor","textDecorationStyle","textDecorationThickness","textUnderlineOffset","fontSmoothing","placeholderColor","placeholderOpacity","caretColor","accentColor","opacity","backgroundBlendMode","mixBlendMode","boxShadow","boxShadowColor","outlineStyle","outlineWidth","outlineOffset","outlineColor","ringWidth","ringColor","ringOpacity","ringOffsetWidth","ringOffsetColor","blur","brightness","contrast","dropShadow","grayscale","hueRotate","invert","saturate","sepia","filter","backdropBlur","backdropBrightness","backdropContrast","backdropGrayscale","backdropHueRotate","backdropInvert","backdropOpacity","backdropSaturate","backdropSepia","backdropFilter","transitionProperty","transitionDelay","transitionDuration","transitionTimingFunction","willChange","contain","content","forcedColorAdjust"]});function kf(r,e){return r===void 0?e:Array.isArray(r)?r:[...new Set(e.filter(i=>r!==!1&&r[i]!==!1).concat(Object.keys(r).filter(i=>r[i]!==!1)))]}var Sf=P(()=>{u()});var Af={};Ge(Af,{default:()=>Qe});var Qe,Qi=P(()=>{u();Qe=new Proxy({},{get:()=>String})});function js(r,e,t){typeof m!="undefined"&&m.env.JEST_WORKER_ID||t&&Cf.has(t)||(t&&Cf.add(t),console.warn(""),e.forEach(i=>console.warn(r,"-",i)))}function zs(r){return Qe.dim(r)}var Cf,G,Be=P(()=>{u();Qi();Cf=new Set;G={info(r,e){js(Qe.bold(Qe.cyan("info")),...Array.isArray(r)?[r]:[e,r])},warn(r,e){["content-problems"].includes(r)||js(Qe.bold(Qe.yellow("warn")),...Array.isArray(r)?[r]:[e,r])},risk(r,e){js(Qe.bold(Qe.magenta("risk")),...Array.isArray(r)?[r]:[e,r])}}});var _f={};Ge(_f,{default:()=>Us});function qr({version:r,from:e,to:t}){G.warn(`${e}-color-renamed`,[`As of Tailwind CSS ${r}, \`${e}\` has been renamed to \`${t}\`.`,"Update your configuration file to silence this warning."])}var Us,Vs=P(()=>{u();Be();Us={inherit:"inherit",current:"currentColor",transparent:"transparent",black:"#000",white:"#fff",slate:{50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},gray:{50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},zinc:{50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},neutral:{50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},stone:{50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},red:{50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},orange:{50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},amber:{50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},yellow:{50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},lime:{50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},green:{50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},emerald:{50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},teal:{50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},cyan:{50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},sky:{50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},blue:{50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},indigo:{50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},violet:{50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},purple:{50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},fuchsia:{50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},pink:{50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},rose:{50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},get lightBlue(){return qr({version:"v2.2",from:"lightBlue",to:"sky"}),this.sky},get warmGray(){return qr({version:"v3.0",from:"warmGray",to:"stone"}),this.stone},get trueGray(){return qr({version:"v3.0",from:"trueGray",to:"neutral"}),this.neutral},get coolGray(){return qr({version:"v3.0",from:"coolGray",to:"gray"}),this.gray},get blueGray(){return qr({version:"v3.0",from:"blueGray",to:"slate"}),this.slate}}});function Hs(r,...e){for(let t of e){for(let i in t)r?.hasOwnProperty?.(i)||(r[i]=t[i]);for(let i of Object.getOwnPropertySymbols(t))r?.hasOwnProperty?.(i)||(r[i]=t[i])}return r}var Ef=P(()=>{u()});function kt(r){if(Array.isArray(r))return r;let e=r.split("[").length-1,t=r.split("]").length-1;if(e!==t)throw new Error(`Path is invalid. Has unbalanced brackets: ${r}`);return r.split(/\.(?![^\[]*\])|[\[\]]/g).filter(Boolean)}var Yi=P(()=>{u()});function we(r,e){return Ki.future.includes(e)?r.future==="all"||(r?.future?.[e]??Of[e]??!1):Ki.experimental.includes(e)?r.experimental==="all"||(r?.experimental?.[e]??Of[e]??!1):!1}function Tf(r){return r.experimental==="all"?Ki.experimental:Object.keys(r?.experimental??{}).filter(e=>Ki.experimental.includes(e)&&r.experimental[e])}function Rf(r){if(m.env.JEST_WORKER_ID===void 0&&Tf(r).length>0){let e=Tf(r).map(t=>Qe.yellow(t)).join(", ");G.warn("experimental-flags-enabled",[`You have enabled experimental features: ${e}`,"Experimental features in Tailwind CSS are not covered by semver, may introduce breaking changes, and can change at any time."])}}var Of,Ki,ct=P(()=>{u();Qi();Be();Of={optimizeUniversalDefaults:!1,generalizedModifiers:!0,disableColorOpacityUtilitiesByDefault:!1,relativeContentPathsByDefault:!1},Ki={future:["hoverOnlyWhenSupported","respectDefaultRingColorOpacity","disableColorOpacityUtilitiesByDefault","relativeContentPathsByDefault"],experimental:["optimizeUniversalDefaults","generalizedModifiers"]}});function Pf(r){(()=>{if(r.purge||!r.content||!Array.isArray(r.content)&&!(typeof r.content=="object"&&r.content!==null))return!1;if(Array.isArray(r.content))return r.content.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string"));if(typeof r.content=="object"&&r.content!==null){if(Object.keys(r.content).some(t=>!["files","relative","extract","transform"].includes(t)))return!1;if(Array.isArray(r.content.files)){if(!r.content.files.every(t=>typeof t=="string"?!0:!(typeof t?.raw!="string"||t?.extension&&typeof t?.extension!="string")))return!1;if(typeof r.content.extract=="object"){for(let t of Object.values(r.content.extract))if(typeof t!="function")return!1}else if(!(r.content.extract===void 0||typeof r.content.extract=="function"))return!1;if(typeof r.content.transform=="object"){for(let t of Object.values(r.content.transform))if(typeof t!="function")return!1}else if(!(r.content.transform===void 0||typeof r.content.transform=="function"))return!1;if(typeof r.content.relative!="boolean"&&typeof r.content.relative!="undefined")return!1}return!0}return!1})()||G.warn("purge-deprecation",["The `purge`/`content` options have changed in Tailwind CSS v3.0.","Update your configuration file to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#configure-content-sources"]),r.safelist=(()=>{let{content:t,purge:i,safelist:n}=r;return Array.isArray(n)?n:Array.isArray(t?.safelist)?t.safelist:Array.isArray(i?.safelist)?i.safelist:Array.isArray(i?.options?.safelist)?i.options.safelist:[]})(),r.blocklist=(()=>{let{blocklist:t}=r;if(Array.isArray(t)){if(t.every(i=>typeof i=="string"))return t;G.warn("blocklist-invalid",["The `blocklist` option must be an array of strings.","https://tailwindcss.com/docs/content-configuration#discarding-classes"])}return[]})(),typeof r.prefix=="function"?(G.warn("prefix-function",["As of Tailwind CSS v3.0, `prefix` cannot be a function.","Update `prefix` in your configuration to be a string to eliminate this warning.","https://tailwindcss.com/docs/upgrade-guide#prefix-cannot-be-a-function"]),r.prefix=""):r.prefix=r.prefix??"",r.content={relative:(()=>{let{content:t}=r;return t?.relative?t.relative:we(r,"relativeContentPathsByDefault")})(),files:(()=>{let{content:t,purge:i}=r;return Array.isArray(i)?i:Array.isArray(i?.content)?i.content:Array.isArray(t)?t:Array.isArray(t?.content)?t.content:Array.isArray(t?.files)?t.files:[]})(),extract:(()=>{let t=(()=>r.purge?.extract?r.purge.extract:r.content?.extract?r.content.extract:r.purge?.extract?.DEFAULT?r.purge.extract.DEFAULT:r.content?.extract?.DEFAULT?r.content.extract.DEFAULT:r.purge?.options?.extractors?r.purge.options.extractors:r.content?.options?.extractors?r.content.options.extractors:{})(),i={},n=(()=>{if(r.purge?.options?.defaultExtractor)return r.purge.options.defaultExtractor;if(r.content?.options?.defaultExtractor)return r.content.options.defaultExtractor})();if(n!==void 0&&(i.DEFAULT=n),typeof t=="function")i.DEFAULT=t;else if(Array.isArray(t))for(let{extensions:s,extractor:a}of t??[])for(let o of s)i[o]=a;else typeof t=="object"&&t!==null&&Object.assign(i,t);return i})(),transform:(()=>{let t=(()=>r.purge?.transform?r.purge.transform:r.content?.transform?r.content.transform:r.purge?.transform?.DEFAULT?r.purge.transform.DEFAULT:r.content?.transform?.DEFAULT?r.content.transform.DEFAULT:{})(),i={};return typeof t=="function"?i.DEFAULT=t:typeof t=="object"&&t!==null&&Object.assign(i,t),i})()};for(let t of r.content.files)if(typeof t=="string"&&/{([^,]*?)}/g.test(t)){G.warn("invalid-glob-braces",[`The glob pattern ${zs(t)} in your Tailwind CSS configuration is invalid.`,`Update it to ${zs(t.replace(/{([^,]*?)}/g,"$1"))} to silence this warning.`]);break}return r}var If=P(()=>{u();ct();Be()});function ke(r){if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let e=Object.getPrototypeOf(r);return e===null||Object.getPrototypeOf(e)===null}var Kt=P(()=>{u()});function St(r){return Array.isArray(r)?r.map(e=>St(e)):typeof r=="object"&&r!==null?Object.fromEntries(Object.entries(r).map(([e,t])=>[e,St(t)])):r}var Xi=P(()=>{u()});function jt(r){return r.replace(/\\,/g,"\\2c ")}var Zi=P(()=>{u()});var Ws,Df=P(()=>{u();Ws={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});function $r(r,{loose:e=!1}={}){if(typeof r!="string")return null;if(r=r.trim(),r==="transparent")return{mode:"rgb",color:["0","0","0"],alpha:"0"};if(r in Ws)return{mode:"rgb",color:Ws[r].map(s=>s.toString())};let t=r.replace(zv,(s,a,o,l,c)=>["#",a,a,o,o,l,l,c?c+c:""].join("")).match(jv);if(t!==null)return{mode:"rgb",color:[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)].map(s=>s.toString()),alpha:t[4]?(parseInt(t[4],16)/255).toString():void 0};let i=r.match(Uv)??r.match(Vv);if(i===null)return null;let n=[i[2],i[3],i[4]].filter(Boolean).map(s=>s.toString());return n.length===2&&n[0].startsWith("var(")?{mode:i[1],color:[n[0]],alpha:n[1]}:!e&&n.length!==3||n.length<3&&!n.some(s=>/^var\(.*?\)$/.test(s))?null:{mode:i[1],color:n,alpha:i[5]?.toString?.()}}function Gs({mode:r,color:e,alpha:t}){let i=t!==void 0;return r==="rgba"||r==="hsla"?`${r}(${e.join(", ")}${i?`, ${t}`:""})`:`${r}(${e.join(" ")}${i?` / ${t}`:""})`}var jv,zv,At,Ji,qf,Ct,Uv,Vv,Qs=P(()=>{u();Df();jv=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,zv=/^#([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,At=/(?:\d+|\d*\.\d+)%?/,Ji=/(?:\s*,\s*|\s+)/,qf=/\s*[,/]\s*/,Ct=/var\(--(?:[^ )]*?)(?:,(?:[^ )]*?|var\(--[^ )]*?\)))?\)/,Uv=new RegExp(`^(rgba?)\\(\\s*(${At.source}|${Ct.source})(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${qf.source}(${At.source}|${Ct.source}))?\\s*\\)$`),Vv=new RegExp(`^(hsla?)\\(\\s*((?:${At.source})(?:deg|rad|grad|turn)?|${Ct.source})(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${Ji.source}(${At.source}|${Ct.source}))?(?:${qf.source}(${At.source}|${Ct.source}))?\\s*\\)$`)});function Je(r,e,t){if(typeof r=="function")return r({opacityValue:e});let i=$r(r,{loose:!0});return i===null?t:Gs({...i,alpha:e})}function Ae({color:r,property:e,variable:t}){let i=[].concat(e);if(typeof r=="function")return{[t]:"1",...Object.fromEntries(i.map(s=>[s,r({opacityVariable:t,opacityValue:`var(${t}, 1)`})]))};let n=$r(r);return n===null?Object.fromEntries(i.map(s=>[s,r])):n.alpha!==void 0?Object.fromEntries(i.map(s=>[s,r])):{[t]:"1",...Object.fromEntries(i.map(s=>[s,Gs({...n,alpha:`var(${t}, 1)`})]))}}var Lr=P(()=>{u();Qs()});function ve(r,e){let t=[],i=[],n=0,s=!1;for(let a=0;a{u()});function en(r){return ve(r,",").map(t=>{let i=t.trim(),n={raw:i},s=i.split(Wv),a=new Set;for(let o of s)$f.lastIndex=0,!a.has("KEYWORD")&&Hv.has(o)?(n.keyword=o,a.add("KEYWORD")):$f.test(o)?a.has("X")?a.has("Y")?a.has("BLUR")?a.has("SPREAD")||(n.spread=o,a.add("SPREAD")):(n.blur=o,a.add("BLUR")):(n.y=o,a.add("Y")):(n.x=o,a.add("X")):n.color?(n.unknown||(n.unknown=[]),n.unknown.push(o)):n.color=o;return n.valid=n.x!==void 0&&n.y!==void 0,n})}function Lf(r){return r.map(e=>e.valid?[e.keyword,e.x,e.y,e.blur,e.spread,e.color].filter(Boolean).join(" "):e.raw).join(", ")}var Hv,Wv,$f,Ys=P(()=>{u();zt();Hv=new Set(["inset","inherit","initial","revert","unset"]),Wv=/\ +(?![^(]*\))/g,$f=/^-?(\d+|\.\d+)(.*?)$/g});function Ks(r){return Gv.some(e=>new RegExp(`^${e}\\(.*\\)`).test(r))}function K(r,e=null,t=!0){let i=e&&Qv.has(e.property);return r.startsWith("--")&&!i?`var(${r})`:r.includes("url(")?r.split(/(url\(.*?\))/g).filter(Boolean).map(n=>/^url\(.*?\)$/.test(n)?n:K(n,e,!1)).join(""):(r=r.replace(/([^\\])_+/g,(n,s)=>s+" ".repeat(n.length-1)).replace(/^_/g," ").replace(/\\_/g,"_"),t&&(r=r.trim()),r=Yv(r),r)}function Ye(r){return r.includes("=")&&(r=r.replace(/(=.*)/g,(e,t)=>{if(t[1]==="'"||t[1]==='"')return t;if(t.length>2){let i=t[t.length-1];if(t[t.length-2]===" "&&(i==="i"||i==="I"||i==="s"||i==="S"))return`="${t.slice(1,-2)}" ${t[t.length-1]}`}return`="${t.slice(1)}"`})),r}function Yv(r){let e=["theme"],t=["min-content","max-content","fit-content","safe-area-inset-top","safe-area-inset-right","safe-area-inset-bottom","safe-area-inset-left","titlebar-area-x","titlebar-area-y","titlebar-area-width","titlebar-area-height","keyboard-inset-top","keyboard-inset-right","keyboard-inset-bottom","keyboard-inset-left","keyboard-inset-width","keyboard-inset-height","radial-gradient","linear-gradient","conic-gradient","repeating-radial-gradient","repeating-linear-gradient","repeating-conic-gradient","anchor-size"];return r.replace(/(calc|min|max|clamp)\(.+\)/g,i=>{let n="";function s(){let a=n.trimEnd();return a[a.length-1]}for(let a=0;ai[a+p]===d)},l=function(f){let d=1/0;for(let h of f){let b=i.indexOf(h,a);b!==-1&&bo(f))){let f=t.find(d=>o(d));n+=f,a+=f.length-1}else e.some(f=>o(f))?n+=l([")"]):o("[")?n+=l(["]"]):["+","-","*","/"].includes(c)&&!["(","+","-","*","/",","].includes(s())?n+=` ${c} `:n+=c}return n.replace(/\s+/g," ")})}function Xs(r){return r.startsWith("url(")}function Zs(r){return!isNaN(Number(r))||Ks(r)}function Mr(r){return r.endsWith("%")&&Zs(r.slice(0,-1))||Ks(r)}function Nr(r){return r==="0"||new RegExp(`^[+-]?[0-9]*.?[0-9]+(?:[eE][+-]?[0-9]+)?${Xv}$`).test(r)||Ks(r)}function Mf(r){return Zv.has(r)}function Nf(r){let e=en(K(r));for(let t of e)if(!t.valid)return!1;return!0}function Bf(r){let e=0;return ve(r,"_").every(i=>(i=K(i),i.startsWith("var(")?!0:$r(i,{loose:!0})!==null?(e++,!0):!1))?e>0:!1}function Ff(r){let e=0;return ve(r,",").every(i=>(i=K(i),i.startsWith("var(")?!0:Xs(i)||ex(i)||["element(","image(","cross-fade(","image-set("].some(n=>i.startsWith(n))?(e++,!0):!1))?e>0:!1}function ex(r){r=K(r);for(let e of Jv)if(r.startsWith(`${e}(`))return!0;return!1}function jf(r){let e=0;return ve(r,"_").every(i=>(i=K(i),i.startsWith("var(")?!0:tx.has(i)||Nr(i)||Mr(i)?(e++,!0):!1))?e>0:!1}function zf(r){let e=0;return ve(r,",").every(i=>(i=K(i),i.startsWith("var(")?!0:i.includes(" ")&&!/(['"])([^"']+)\1/g.test(i)||/^\d/g.test(i)?!1:(e++,!0)))?e>0:!1}function Uf(r){return rx.has(r)}function Vf(r){return ix.has(r)}function Hf(r){return nx.has(r)}var Gv,Qv,Kv,Xv,Zv,Jv,tx,rx,ix,nx,Br=P(()=>{u();Qs();Ys();zt();Gv=["min","max","clamp","calc"];Qv=new Set(["scroll-timeline-name","timeline-scope","view-timeline-name","font-palette","anchor-name","anchor-scope","position-anchor","position-try-options","scroll-timeline","animation-timeline","view-timeline","position-try"]);Kv=["cm","mm","Q","in","pc","pt","px","em","ex","ch","rem","lh","rlh","vw","vh","vmin","vmax","vb","vi","svw","svh","lvw","lvh","dvw","dvh","cqw","cqh","cqi","cqb","cqmin","cqmax"],Xv=`(?:${Kv.join("|")})`;Zv=new Set(["thin","medium","thick"]);Jv=new Set(["conic-gradient","linear-gradient","radial-gradient","repeating-conic-gradient","repeating-linear-gradient","repeating-radial-gradient"]);tx=new Set(["center","top","right","bottom","left"]);rx=new Set(["serif","sans-serif","monospace","cursive","fantasy","system-ui","ui-serif","ui-sans-serif","ui-monospace","ui-rounded","math","emoji","fangsong"]);ix=new Set(["xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large"]);nx=new Set(["larger","smaller"])});function Wf(r){let e=["cover","contain"];return ve(r,",").every(t=>{let i=ve(t,"_").filter(Boolean);return i.length===1&&e.includes(i[0])?!0:i.length!==1&&i.length!==2?!1:i.every(n=>Nr(n)||Mr(n)||n==="auto")})}var Gf=P(()=>{u();Br();zt()});function Qf(r,e){r.walkClasses(t=>{t.value=e(t.value),t.raws&&t.raws.value&&(t.raws.value=jt(t.raws.value))})}function Yf(r,e){if(!_t(r))return;let t=r.slice(1,-1);if(!!e(t))return K(t)}function sx(r,e={},t){let i=e[r];if(i!==void 0)return xt(i);if(_t(r)){let n=Yf(r,t);return n===void 0?void 0:xt(n)}}function tn(r,e={},{validate:t=()=>!0}={}){let i=e.values?.[r];return i!==void 0?i:e.supportsNegativeValues&&r.startsWith("-")?sx(r.slice(1),e.values,t):Yf(r,t)}function _t(r){return r.startsWith("[")&&r.endsWith("]")}function Kf(r){let e=r.lastIndexOf("/"),t=r.lastIndexOf("[",e),i=r.indexOf("]",e);return r[e-1]==="]"||r[e+1]==="["||t!==-1&&i!==-1&&t")){let e=r;return({opacityValue:t=1})=>e.replace(//g,t)}return r}function Xf(r){return K(r.slice(1,-1))}function ax(r,e={},{tailwindConfig:t={}}={}){if(e.values?.[r]!==void 0)return Xt(e.values?.[r]);let[i,n]=Kf(r);if(n!==void 0){let s=e.values?.[i]??(_t(i)?i.slice(1,-1):void 0);return s===void 0?void 0:(s=Xt(s),_t(n)?Je(s,Xf(n)):t.theme?.opacity?.[n]===void 0?void 0:Je(s,t.theme.opacity[n]))}return tn(r,e,{validate:Bf})}function ox(r,e={}){return e.values?.[r]}function qe(r){return(e,t)=>tn(e,t,{validate:r})}function lx(r,e){let t=r.indexOf(e);return t===-1?[void 0,r]:[r.slice(0,t),r.slice(t+1)]}function ea(r,e,t,i){if(t.values&&e in t.values)for(let{type:s}of r??[]){let a=Js[s](e,t,{tailwindConfig:i});if(a!==void 0)return[a,s,null]}if(_t(e)){let s=e.slice(1,-1),[a,o]=lx(s,":");if(!/^[\w-_]+$/g.test(a))o=s;else if(a!==void 0&&!Zf.includes(a))return[];if(o.length>0&&Zf.includes(a))return[tn(`[${o}]`,t),a,null]}let n=ta(r,e,t,i);for(let s of n)return s;return[]}function*ta(r,e,t,i){let n=we(i,"generalizedModifiers"),[s,a]=Kf(e);if(n&&t.modifiers!=null&&(t.modifiers==="any"||typeof t.modifiers=="object"&&(a&&_t(a)||a in t.modifiers))||(s=e,a=void 0),a!==void 0&&s===""&&(s="DEFAULT"),a!==void 0&&typeof t.modifiers=="object"){let l=t.modifiers?.[a]??null;l!==null?a=l:_t(a)&&(a=Xf(a))}for(let{type:l}of r??[]){let c=Js[l](s,t,{tailwindConfig:i});c!==void 0&&(yield[c,l,a??null])}}var Js,Zf,Fr=P(()=>{u();Zi();Lr();Br();Gi();Gf();ct();Js={any:tn,color:ax,url:qe(Xs),image:qe(Ff),length:qe(Nr),percentage:qe(Mr),position:qe(jf),lookup:ox,"generic-name":qe(Uf),"family-name":qe(zf),number:qe(Zs),"line-width":qe(Mf),"absolute-size":qe(Vf),"relative-size":qe(Hf),shadow:qe(Nf),size:qe(Wf)},Zf=Object.keys(Js)});function X(r){return typeof r=="function"?r({}):r}var ra=P(()=>{u()});function Zt(r){return typeof r=="function"}function jr(r,...e){let t=e.pop();for(let i of e)for(let n in i){let s=t(r[n],i[n]);s===void 0?ke(r[n])&&ke(i[n])?r[n]=jr({},r[n],i[n],t):r[n]=i[n]:r[n]=s}return r}function ux(r,...e){return Zt(r)?r(...e):r}function fx(r){return r.reduce((e,{extend:t})=>jr(e,t,(i,n)=>i===void 0?[n]:Array.isArray(i)?[n,...i]:[n,i]),{})}function cx(r){return{...r.reduce((e,t)=>Hs(e,t),{}),extend:fx(r)}}function Jf(r,e){if(Array.isArray(r)&&ke(r[0]))return r.concat(e);if(Array.isArray(e)&&ke(e[0])&&ke(r))return[r,...e];if(Array.isArray(e))return e}function px({extend:r,...e}){return jr(e,r,(t,i)=>!Zt(t)&&!i.some(Zt)?jr({},t,...i,Jf):(n,s)=>jr({},...[t,...i].map(a=>ux(a,n,s)),Jf))}function*dx(r){let e=kt(r);if(e.length===0||(yield e,Array.isArray(r)))return;let t=/^(.*?)\s*\/\s*([^/]+)$/,i=r.match(t);if(i!==null){let[,n,s]=i,a=kt(n);a.alpha=s,yield a}}function hx(r){let e=(t,i)=>{for(let n of dx(t)){let s=0,a=r;for(;a!=null&&s(t[i]=Zt(r[i])?r[i](e,ia):r[i],t),{})}function ec(r){let e=[];return r.forEach(t=>{e=[...e,t];let i=t?.plugins??[];i.length!==0&&i.forEach(n=>{n.__isOptionsFunction&&(n=n()),e=[...e,...ec([n?.config??{}])]})}),e}function mx(r){return[...r].reduceRight((t,i)=>Zt(i)?i({corePlugins:t}):kf(i,t),vf)}function gx(r){return[...r].reduceRight((t,i)=>[...t,...i],[])}function na(r){let e=[...ec(r),{prefix:"",important:!1,separator:":"}];return Pf(Hs({theme:hx(px(cx(e.map(t=>t?.theme??{})))),corePlugins:mx(e.map(t=>t.corePlugins)),plugins:gx(r.map(t=>t?.plugins??[]))},...e))}var ia,tc=P(()=>{u();Gi();xf();Sf();Vs();Ef();Yi();If();Kt();Xi();Fr();Lr();ra();ia={colors:Us,negative(r){return Object.keys(r).filter(e=>r[e]!=="0").reduce((e,t)=>{let i=xt(r[t]);return i!==void 0&&(e[`-${t}`]=i),e},{})},breakpoints(r){return Object.keys(r).filter(e=>typeof r[e]=="string").reduce((e,t)=>({...e,[`screen-${t}`]:r[t]}),{})}}});var rn=x((f3,rc)=>{u();rc.exports={content:[],presets:[],darkMode:"media",theme:{accentColor:({theme:r})=>({...r("colors"),auto:"auto"}),animation:{none:"none",spin:"spin 1s linear infinite",ping:"ping 1s cubic-bezier(0, 0, 0.2, 1) infinite",pulse:"pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite",bounce:"bounce 1s infinite"},aria:{busy:'busy="true"',checked:'checked="true"',disabled:'disabled="true"',expanded:'expanded="true"',hidden:'hidden="true"',pressed:'pressed="true"',readonly:'readonly="true"',required:'required="true"',selected:'selected="true"'},aspectRatio:{auto:"auto",square:"1 / 1",video:"16 / 9"},backdropBlur:({theme:r})=>r("blur"),backdropBrightness:({theme:r})=>r("brightness"),backdropContrast:({theme:r})=>r("contrast"),backdropGrayscale:({theme:r})=>r("grayscale"),backdropHueRotate:({theme:r})=>r("hueRotate"),backdropInvert:({theme:r})=>r("invert"),backdropOpacity:({theme:r})=>r("opacity"),backdropSaturate:({theme:r})=>r("saturate"),backdropSepia:({theme:r})=>r("sepia"),backgroundColor:({theme:r})=>r("colors"),backgroundImage:{none:"none","gradient-to-t":"linear-gradient(to top, var(--tw-gradient-stops))","gradient-to-tr":"linear-gradient(to top right, var(--tw-gradient-stops))","gradient-to-r":"linear-gradient(to right, var(--tw-gradient-stops))","gradient-to-br":"linear-gradient(to bottom right, var(--tw-gradient-stops))","gradient-to-b":"linear-gradient(to bottom, var(--tw-gradient-stops))","gradient-to-bl":"linear-gradient(to bottom left, var(--tw-gradient-stops))","gradient-to-l":"linear-gradient(to left, var(--tw-gradient-stops))","gradient-to-tl":"linear-gradient(to top left, var(--tw-gradient-stops))"},backgroundOpacity:({theme:r})=>r("opacity"),backgroundPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},backgroundSize:{auto:"auto",cover:"cover",contain:"contain"},blur:{0:"0",none:"",sm:"4px",DEFAULT:"8px",md:"12px",lg:"16px",xl:"24px","2xl":"40px","3xl":"64px"},borderColor:({theme:r})=>({...r("colors"),DEFAULT:r("colors.gray.200","currentColor")}),borderOpacity:({theme:r})=>r("opacity"),borderRadius:{none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"},borderSpacing:({theme:r})=>({...r("spacing")}),borderWidth:{DEFAULT:"1px",0:"0px",2:"2px",4:"4px",8:"8px"},boxShadow:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",DEFAULT:"0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)",none:"none"},boxShadowColor:({theme:r})=>r("colors"),brightness:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5",200:"2"},caretColor:({theme:r})=>r("colors"),colors:({colors:r})=>({inherit:r.inherit,current:r.current,transparent:r.transparent,black:r.black,white:r.white,slate:r.slate,gray:r.gray,zinc:r.zinc,neutral:r.neutral,stone:r.stone,red:r.red,orange:r.orange,amber:r.amber,yellow:r.yellow,lime:r.lime,green:r.green,emerald:r.emerald,teal:r.teal,cyan:r.cyan,sky:r.sky,blue:r.blue,indigo:r.indigo,violet:r.violet,purple:r.purple,fuchsia:r.fuchsia,pink:r.pink,rose:r.rose}),columns:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12","3xs":"16rem","2xs":"18rem",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem"},container:{},content:{none:"none"},contrast:{0:"0",50:".5",75:".75",100:"1",125:"1.25",150:"1.5",200:"2"},cursor:{auto:"auto",default:"default",pointer:"pointer",wait:"wait",text:"text",move:"move",help:"help","not-allowed":"not-allowed",none:"none","context-menu":"context-menu",progress:"progress",cell:"cell",crosshair:"crosshair","vertical-text":"vertical-text",alias:"alias",copy:"copy","no-drop":"no-drop",grab:"grab",grabbing:"grabbing","all-scroll":"all-scroll","col-resize":"col-resize","row-resize":"row-resize","n-resize":"n-resize","e-resize":"e-resize","s-resize":"s-resize","w-resize":"w-resize","ne-resize":"ne-resize","nw-resize":"nw-resize","se-resize":"se-resize","sw-resize":"sw-resize","ew-resize":"ew-resize","ns-resize":"ns-resize","nesw-resize":"nesw-resize","nwse-resize":"nwse-resize","zoom-in":"zoom-in","zoom-out":"zoom-out"},divideColor:({theme:r})=>r("borderColor"),divideOpacity:({theme:r})=>r("borderOpacity"),divideWidth:({theme:r})=>r("borderWidth"),dropShadow:{sm:"0 1px 1px rgb(0 0 0 / 0.05)",DEFAULT:["0 1px 2px rgb(0 0 0 / 0.1)","0 1px 1px rgb(0 0 0 / 0.06)"],md:["0 4px 3px rgb(0 0 0 / 0.07)","0 2px 2px rgb(0 0 0 / 0.06)"],lg:["0 10px 8px rgb(0 0 0 / 0.04)","0 4px 3px rgb(0 0 0 / 0.1)"],xl:["0 20px 13px rgb(0 0 0 / 0.03)","0 8px 5px rgb(0 0 0 / 0.08)"],"2xl":"0 25px 25px rgb(0 0 0 / 0.15)",none:"0 0 #0000"},fill:({theme:r})=>({none:"none",...r("colors")}),flex:{1:"1 1 0%",auto:"1 1 auto",initial:"0 1 auto",none:"none"},flexBasis:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%"}),flexGrow:{0:"0",DEFAULT:"1"},flexShrink:{0:"0",DEFAULT:"1"},fontFamily:{sans:["ui-sans-serif","system-ui","sans-serif",'"Apple Color Emoji"','"Segoe UI Emoji"','"Segoe UI Symbol"','"Noto Color Emoji"'],serif:["ui-serif","Georgia","Cambria",'"Times New Roman"',"Times","serif"],mono:["ui-monospace","SFMono-Regular","Menlo","Monaco","Consolas",'"Liberation Mono"','"Courier New"',"monospace"]},fontSize:{xs:["0.75rem",{lineHeight:"1rem"}],sm:["0.875rem",{lineHeight:"1.25rem"}],base:["1rem",{lineHeight:"1.5rem"}],lg:["1.125rem",{lineHeight:"1.75rem"}],xl:["1.25rem",{lineHeight:"1.75rem"}],"2xl":["1.5rem",{lineHeight:"2rem"}],"3xl":["1.875rem",{lineHeight:"2.25rem"}],"4xl":["2.25rem",{lineHeight:"2.5rem"}],"5xl":["3rem",{lineHeight:"1"}],"6xl":["3.75rem",{lineHeight:"1"}],"7xl":["4.5rem",{lineHeight:"1"}],"8xl":["6rem",{lineHeight:"1"}],"9xl":["8rem",{lineHeight:"1"}]},fontWeight:{thin:"100",extralight:"200",light:"300",normal:"400",medium:"500",semibold:"600",bold:"700",extrabold:"800",black:"900"},gap:({theme:r})=>r("spacing"),gradientColorStops:({theme:r})=>r("colors"),gradientColorStopPositions:{"0%":"0%","5%":"5%","10%":"10%","15%":"15%","20%":"20%","25%":"25%","30%":"30%","35%":"35%","40%":"40%","45%":"45%","50%":"50%","55%":"55%","60%":"60%","65%":"65%","70%":"70%","75%":"75%","80%":"80%","85%":"85%","90%":"90%","95%":"95%","100%":"100%"},grayscale:{0:"0",DEFAULT:"100%"},gridAutoColumns:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridAutoRows:{auto:"auto",min:"min-content",max:"max-content",fr:"minmax(0, 1fr)"},gridColumn:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridColumnEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridColumnStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRow:{auto:"auto","span-1":"span 1 / span 1","span-2":"span 2 / span 2","span-3":"span 3 / span 3","span-4":"span 4 / span 4","span-5":"span 5 / span 5","span-6":"span 6 / span 6","span-7":"span 7 / span 7","span-8":"span 8 / span 8","span-9":"span 9 / span 9","span-10":"span 10 / span 10","span-11":"span 11 / span 11","span-12":"span 12 / span 12","span-full":"1 / -1"},gridRowEnd:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridRowStart:{auto:"auto",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12",13:"13"},gridTemplateColumns:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},gridTemplateRows:{none:"none",subgrid:"subgrid",1:"repeat(1, minmax(0, 1fr))",2:"repeat(2, minmax(0, 1fr))",3:"repeat(3, minmax(0, 1fr))",4:"repeat(4, minmax(0, 1fr))",5:"repeat(5, minmax(0, 1fr))",6:"repeat(6, minmax(0, 1fr))",7:"repeat(7, minmax(0, 1fr))",8:"repeat(8, minmax(0, 1fr))",9:"repeat(9, minmax(0, 1fr))",10:"repeat(10, minmax(0, 1fr))",11:"repeat(11, minmax(0, 1fr))",12:"repeat(12, minmax(0, 1fr))"},height:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),hueRotate:{0:"0deg",15:"15deg",30:"30deg",60:"60deg",90:"90deg",180:"180deg"},inset:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),invert:{0:"0",DEFAULT:"100%"},keyframes:{spin:{to:{transform:"rotate(360deg)"}},ping:{"75%, 100%":{transform:"scale(2)",opacity:"0"}},pulse:{"50%":{opacity:".5"}},bounce:{"0%, 100%":{transform:"translateY(-25%)",animationTimingFunction:"cubic-bezier(0.8,0,1,1)"},"50%":{transform:"none",animationTimingFunction:"cubic-bezier(0,0,0.2,1)"}}},letterSpacing:{tighter:"-0.05em",tight:"-0.025em",normal:"0em",wide:"0.025em",wider:"0.05em",widest:"0.1em"},lineHeight:{none:"1",tight:"1.25",snug:"1.375",normal:"1.5",relaxed:"1.625",loose:"2",3:".75rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem"},listStyleType:{none:"none",disc:"disc",decimal:"decimal"},listStyleImage:{none:"none"},margin:({theme:r})=>({auto:"auto",...r("spacing")}),lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"},maxHeight:({theme:r})=>({...r("spacing"),none:"none",full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),maxWidth:({theme:r,breakpoints:e})=>({...r("spacing"),none:"none",xs:"20rem",sm:"24rem",md:"28rem",lg:"32rem",xl:"36rem","2xl":"42rem","3xl":"48rem","4xl":"56rem","5xl":"64rem","6xl":"72rem","7xl":"80rem",full:"100%",min:"min-content",max:"max-content",fit:"fit-content",prose:"65ch",...e(r("screens"))}),minHeight:({theme:r})=>({...r("spacing"),full:"100%",screen:"100vh",svh:"100svh",lvh:"100lvh",dvh:"100dvh",min:"min-content",max:"max-content",fit:"fit-content"}),minWidth:({theme:r})=>({...r("spacing"),full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),objectPosition:{bottom:"bottom",center:"center",left:"left","left-bottom":"left bottom","left-top":"left top",right:"right","right-bottom":"right bottom","right-top":"right top",top:"top"},opacity:{0:"0",5:"0.05",10:"0.1",15:"0.15",20:"0.2",25:"0.25",30:"0.3",35:"0.35",40:"0.4",45:"0.45",50:"0.5",55:"0.55",60:"0.6",65:"0.65",70:"0.7",75:"0.75",80:"0.8",85:"0.85",90:"0.9",95:"0.95",100:"1"},order:{first:"-9999",last:"9999",none:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",10:"10",11:"11",12:"12"},outlineColor:({theme:r})=>r("colors"),outlineOffset:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},outlineWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},padding:({theme:r})=>r("spacing"),placeholderColor:({theme:r})=>r("colors"),placeholderOpacity:({theme:r})=>r("opacity"),ringColor:({theme:r})=>({DEFAULT:r("colors.blue.500","#3b82f6"),...r("colors")}),ringOffsetColor:({theme:r})=>r("colors"),ringOffsetWidth:{0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},ringOpacity:({theme:r})=>({DEFAULT:"0.5",...r("opacity")}),ringWidth:{DEFAULT:"3px",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},rotate:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg",45:"45deg",90:"90deg",180:"180deg"},saturate:{0:"0",50:".5",100:"1",150:"1.5",200:"2"},scale:{0:"0",50:".5",75:".75",90:".9",95:".95",100:"1",105:"1.05",110:"1.1",125:"1.25",150:"1.5"},screens:{sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"},scrollMargin:({theme:r})=>({...r("spacing")}),scrollPadding:({theme:r})=>r("spacing"),sepia:{0:"0",DEFAULT:"100%"},skew:{0:"0deg",1:"1deg",2:"2deg",3:"3deg",6:"6deg",12:"12deg"},space:({theme:r})=>({...r("spacing")}),spacing:{px:"1px",0:"0px",.5:"0.125rem",1:"0.25rem",1.5:"0.375rem",2:"0.5rem",2.5:"0.625rem",3:"0.75rem",3.5:"0.875rem",4:"1rem",5:"1.25rem",6:"1.5rem",7:"1.75rem",8:"2rem",9:"2.25rem",10:"2.5rem",11:"2.75rem",12:"3rem",14:"3.5rem",16:"4rem",20:"5rem",24:"6rem",28:"7rem",32:"8rem",36:"9rem",40:"10rem",44:"11rem",48:"12rem",52:"13rem",56:"14rem",60:"15rem",64:"16rem",72:"18rem",80:"20rem",96:"24rem"},stroke:({theme:r})=>({none:"none",...r("colors")}),strokeWidth:{0:"0",1:"1",2:"2"},supports:{},data:{},textColor:({theme:r})=>r("colors"),textDecorationColor:({theme:r})=>r("colors"),textDecorationThickness:{auto:"auto","from-font":"from-font",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},textIndent:({theme:r})=>({...r("spacing")}),textOpacity:({theme:r})=>r("opacity"),textUnderlineOffset:{auto:"auto",0:"0px",1:"1px",2:"2px",4:"4px",8:"8px"},transformOrigin:{center:"center",top:"top","top-right":"top right",right:"right","bottom-right":"bottom right",bottom:"bottom","bottom-left":"bottom left",left:"left","top-left":"top left"},transitionDelay:{0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionDuration:{DEFAULT:"150ms",0:"0s",75:"75ms",100:"100ms",150:"150ms",200:"200ms",300:"300ms",500:"500ms",700:"700ms",1e3:"1000ms"},transitionProperty:{none:"none",all:"all",DEFAULT:"color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter",colors:"color, background-color, border-color, text-decoration-color, fill, stroke",opacity:"opacity",shadow:"box-shadow",transform:"transform"},transitionTimingFunction:{DEFAULT:"cubic-bezier(0.4, 0, 0.2, 1)",linear:"linear",in:"cubic-bezier(0.4, 0, 1, 1)",out:"cubic-bezier(0, 0, 0.2, 1)","in-out":"cubic-bezier(0.4, 0, 0.2, 1)"},translate:({theme:r})=>({...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%",full:"100%"}),size:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",min:"min-content",max:"max-content",fit:"fit-content"}),width:({theme:r})=>({auto:"auto",...r("spacing"),"1/2":"50%","1/3":"33.333333%","2/3":"66.666667%","1/4":"25%","2/4":"50%","3/4":"75%","1/5":"20%","2/5":"40%","3/5":"60%","4/5":"80%","1/6":"16.666667%","2/6":"33.333333%","3/6":"50%","4/6":"66.666667%","5/6":"83.333333%","1/12":"8.333333%","2/12":"16.666667%","3/12":"25%","4/12":"33.333333%","5/12":"41.666667%","6/12":"50%","7/12":"58.333333%","8/12":"66.666667%","9/12":"75%","10/12":"83.333333%","11/12":"91.666667%",full:"100%",screen:"100vw",svw:"100svw",lvw:"100lvw",dvw:"100dvw",min:"min-content",max:"max-content",fit:"fit-content"}),willChange:{auto:"auto",scroll:"scroll-position",contents:"contents",transform:"transform"},zIndex:{auto:"auto",0:"0",10:"10",20:"20",30:"30",40:"40",50:"50"}},plugins:[]}});function nn(r){let e=(r?.presets??[ic.default]).slice().reverse().flatMap(n=>nn(n instanceof Function?n():n)),t={respectDefaultRingColorOpacity:{theme:{ringColor:({theme:n})=>({DEFAULT:"#3b82f67f",...n("colors")})}},disableColorOpacityUtilitiesByDefault:{corePlugins:{backgroundOpacity:!1,borderOpacity:!1,divideOpacity:!1,placeholderOpacity:!1,ringOpacity:!1,textOpacity:!1}}},i=Object.keys(t).filter(n=>we(r,n)).map(n=>t[n]);return[r,...i,...e]}var ic,nc=P(()=>{u();ic=pe(rn());ct()});var sc={};Ge(sc,{default:()=>zr});function zr(...r){let[,...e]=nn(r[0]);return na([...r,...e])}var sa=P(()=>{u();tc();nc()});var Ur={};Ge(Ur,{default:()=>me});var me,et=P(()=>{u();me={resolve:r=>r,extname:r=>"."+r.split(".").pop()}});function sn(r){return typeof r=="object"&&r!==null}function bx(r){return Object.keys(r).length===0}function ac(r){return typeof r=="string"||r instanceof String}function aa(r){return sn(r)&&r.config===void 0&&!bx(r)?null:sn(r)&&r.config!==void 0&&ac(r.config)?me.resolve(r.config):sn(r)&&r.config!==void 0&&sn(r.config)?null:ac(r)?me.resolve(r):wx()}function wx(){for(let r of yx)try{let e=me.resolve(r);return be.accessSync(e),e}catch(e){}return null}var yx,oc=P(()=>{u();ft();et();yx=["./tailwind.config.js","./tailwind.config.cjs","./tailwind.config.mjs","./tailwind.config.ts","./tailwind.config.cts","./tailwind.config.mts"]});var lc={};Ge(lc,{default:()=>oa});var oa,la=P(()=>{u();oa={parse:r=>({href:r})}});var ua=x(()=>{u()});var an=x((v3,cc)=>{u();"use strict";var uc=(Qi(),Af),fc=ua(),Jt=class extends Error{constructor(e,t,i,n,s,a){super(e);this.name="CssSyntaxError",this.reason=e,s&&(this.file=s),n&&(this.source=n),a&&(this.plugin=a),typeof t!="undefined"&&typeof i!="undefined"&&(typeof t=="number"?(this.line=t,this.column=i):(this.line=t.line,this.column=t.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,Jt)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line!="undefined"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=uc.isColorSupported);let i=f=>f,n=f=>f,s=f=>f;if(e){let{bold:f,gray:d,red:p}=uc.createColors(!0);n=h=>f(p(h)),i=h=>d(h),fc&&(s=h=>fc(h))}let a=t.split(/\r?\n/),o=Math.max(this.line-3,0),l=Math.min(this.line+2,a.length),c=String(l).length;return a.slice(o,l).map((f,d)=>{let p=o+1+d,h=" "+(" "+p).slice(-c)+" | ";if(p===this.line){if(f.length>160){let v=20,y=Math.max(0,this.column-v),w=Math.max(this.column+v,this.endColumn+v),k=f.slice(y,w),S=i(h.replace(/\d/g," "))+f.slice(0,Math.min(this.column-1,v-1)).replace(/[^\t]/g," ");return n(">")+i(h)+s(k)+` + `+S+n("^")}let b=i(h.replace(/\d/g," "))+f.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+i(h)+s(f)+` + `+b+n("^")}return" "+i(h)+s(f)}).join(` +`)}toString(){let e=this.showSourceCode();return e&&(e=` + +`+e+` +`),this.name+": "+this.message+e}};cc.exports=Jt;Jt.default=Jt});var fa=x((x3,dc)=>{u();"use strict";var pc={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function vx(r){return r[0].toUpperCase()+r.slice(1)}var on=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!="undefined"?i+=e.raws.afterName:n&&(i+=" "),e.nodes)this.block(e,i+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(i+n+s,e)}}beforeAfter(e,t){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):t==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(i.includes(` +`)){let a=this.raw(e,null,"indent");if(a.length)for(let o=0;o0&&e.nodes[t].type==="comment";)t-=1;let i=this.raw(e,"semicolon");for(let n=0;n{if(n=l.raws[t],typeof n!="undefined")return!1})}return typeof n=="undefined"&&(n=pc[i]),a.rawCache[i]=n,n}rawBeforeClose(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after!="undefined")return t=i.raws.after,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls(n=>{if(typeof n.raws.before!="undefined")return i=n.raws.before,i.includes(` +`)&&(i=i.replace(/[^\n]+$/,"")),!1}),typeof i=="undefined"?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk(i=>{if(i.type!=="decl"&&(t=i.raws.between,typeof t!="undefined"))return!1}),t}rawBeforeRule(e){let t;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before!="undefined")return t=i.raws.before,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(i=>{if(typeof i.raws.between!="undefined")return t=i.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(t=i.raws.after,typeof t!="undefined"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(i=>{let n=i.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof i.raws.before!="undefined"){let s=i.raws.before.split(` +`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(t=i.raws.semicolon,typeof t!="undefined"))return!1}),t}rawValue(e,t){let i=e[t],n=e.raws[t];return n&&n.value===i?n.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};dc.exports=on;on.default=on});var Vr=x((k3,hc)=>{u();"use strict";var xx=fa();function ca(r,e){new xx(e).stringify(r)}hc.exports=ca;ca.default=ca});var ln=x((S3,pa)=>{u();"use strict";pa.exports.isClean=Symbol("isClean");pa.exports.my=Symbol("my")});var Gr=x((A3,mc)=>{u();"use strict";var kx=an(),Sx=fa(),Ax=Vr(),{isClean:Hr,my:Cx}=ln();function da(r,e){let t=new r.constructor;for(let i in r){if(!Object.prototype.hasOwnProperty.call(r,i)||i==="proxyCache")continue;let n=r[i],s=typeof n;i==="parent"&&s==="object"?e&&(t[i]=e):i==="source"?t[i]=n:Array.isArray(n)?t[i]=n.map(a=>da(a,t)):(s==="object"&&n!==null&&(n=da(n)),t[i]=n)}return t}function Wr(r,e){if(e&&typeof e.offset!="undefined")return e.offset;let t=1,i=1,n=0;for(let s=0;se.root().toProxy():e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[Hr]=!0}markDirty(){if(this[Hr]){this[Hr]=!1;let e=this;for(;e=e.parent;)e[Hr]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let n=this.source.input.css.slice(Wr(this.source.input.css,this.source.start),Wr(this.source.input.css,this.source.end)).indexOf(e.word);n!==-1&&(t=this.positionInside(n))}return t}positionInside(e){let t=this.source.start.column,i=this.source.start.line,n=Wr(this.source.input.css,this.source.start),s=n+e;for(let a=n;atypeof l=="object"&&l.toJSON?l.toJSON(null,t):l);else if(typeof o=="object"&&o.toJSON)i[a]=o.toJSON(null,t);else if(a==="source"){let l=t.get(o.input);l==null&&(l=s,t.set(o.input,s),s++),i[a]={end:o.end,inputId:l,start:o.start}}else i[a]=o}return n&&(i.inputs=[...t.keys()].map(a=>a.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ax){e.stringify&&(e=e.stringify);let t="";return e(this,i=>{t+=i}),t}warn(e,t,i){let n={node:this};for(let s in i)n[s]=i[s];return e.warn(t,n)}get proxyOf(){return this}};mc.exports=un;un.default=un});var Qr=x((C3,gc)=>{u();"use strict";var _x=Gr(),fn=class extends _x{constructor(e){super(e);this.type="comment"}};gc.exports=fn;fn.default=fn});var Yr=x((_3,yc)=>{u();"use strict";var Ex=Gr(),cn=class extends Ex{constructor(e){e&&typeof e.value!="undefined"&&typeof e.value!="string"&&(e={...e,value:String(e.value)});super(e);this.type="decl"}get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}};yc.exports=cn;cn.default=cn});var Et=x((E3,_c)=>{u();"use strict";var bc=Qr(),wc=Yr(),Ox=Gr(),{isClean:vc,my:xc}=ln(),ha,kc,Sc,ma;function Ac(r){return r.map(e=>(e.nodes&&(e.nodes=Ac(e.nodes)),delete e.source,e))}function Cc(r){if(r[vc]=!1,r.proxyOf.nodes)for(let e of r.proxyOf.nodes)Cc(e)}var Fe=class extends Ox{append(...e){for(let t of e){let i=this.normalize(t,this.last);for(let n of i)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),i,n;for(;this.indexes[t]e[t](...i.map(n=>typeof n=="function"?(s,a)=>n(s.toProxy(),a):n)):t==="every"||t==="some"?i=>e[t]((n,...s)=>i(n.toProxy(),...s)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(i=>i.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,i){return e[t]===i||(e[t]=i,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i=this.index(e),n=this.normalize(t,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let a of n)this.proxyOf.nodes.splice(i+1,0,a);let s;for(let a in this.indexes)s=this.indexes[a],i(n[xc]||Fe.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[vc]&&Cc(n),n.raws||(n.raws={}),typeof n.raws.before=="undefined"&&t&&typeof t.raws.before!="undefined"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let t of e){let i=this.normalize(t,this.first,"prepend").reverse();for(let n of i)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,i)=>{let n;try{n=e(t,i)}catch(s){throw t.addToError(s)}return n!==!1&&t.walk&&(n=t.walk(e)),n})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="atrule"&&e.test(i.name))return t(i,n)}):this.walk((i,n)=>{if(i.type==="atrule"&&i.name===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="atrule")return t(i,n)}))}walkComments(e){return this.walk((t,i)=>{if(t.type==="comment")return e(t,i)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="decl"&&e.test(i.prop))return t(i,n)}):this.walk((i,n)=>{if(i.type==="decl"&&i.prop===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="decl")return t(i,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((i,n)=>{if(i.type==="rule"&&e.test(i.selector))return t(i,n)}):this.walk((i,n)=>{if(i.type==="rule"&&i.selector===e)return t(i,n)}):(t=e,this.walk((i,n)=>{if(i.type==="rule")return t(i,n)}))}get first(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(!!this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Fe.registerParse=r=>{kc=r};Fe.registerRule=r=>{ma=r};Fe.registerAtRule=r=>{ha=r};Fe.registerRoot=r=>{Sc=r};_c.exports=Fe;Fe.default=Fe;Fe.rebuild=r=>{r.type==="atrule"?Object.setPrototypeOf(r,ha.prototype):r.type==="rule"?Object.setPrototypeOf(r,ma.prototype):r.type==="decl"?Object.setPrototypeOf(r,wc.prototype):r.type==="comment"?Object.setPrototypeOf(r,bc.prototype):r.type==="root"&&Object.setPrototypeOf(r,Sc.prototype),r[xc]=!0,r.nodes&&r.nodes.forEach(e=>{Fe.rebuild(e)})}});var pn=x((O3,Oc)=>{u();"use strict";var Ec=Et(),Kr=class extends Ec{constructor(e){super(e);this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Oc.exports=Kr;Kr.default=Kr;Ec.registerAtRule(Kr)});var dn=x((T3,Pc)=>{u();"use strict";var Tx=Et(),Tc,Rc,er=class extends Tx{constructor(e){super({type:"document",...e});this.nodes||(this.nodes=[])}toResult(e={}){return new Tc(new Rc,this,e).stringify()}};er.registerLazyResult=r=>{Tc=r};er.registerProcessor=r=>{Rc=r};Pc.exports=er;er.default=er});var Dc=x((R3,Ic)=>{u();var Rx="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",Px=(r,e=21)=>(t=e)=>{let i="",n=t;for(;n--;)i+=r[Math.random()*r.length|0];return i},Ix=(r=21)=>{let e="",t=r;for(;t--;)e+=Rx[Math.random()*64|0];return e};Ic.exports={nanoid:Ix,customAlphabet:Px}});var qc=x(()=>{u()});var ga=x((D3,$c)=>{u();$c.exports={}});var mn=x((q3,Bc)=>{u();"use strict";var{nanoid:Dx}=Dc(),{isAbsolute:ya,resolve:ba}=(et(),Ur),{SourceMapConsumer:qx,SourceMapGenerator:$x}=qc(),{fileURLToPath:Lc,pathToFileURL:hn}=(la(),lc),Mc=an(),Lx=ga(),wa=ua(),va=Symbol("fromOffsetCache"),Mx=Boolean(qx&&$x),Nc=Boolean(ba&&ya),Xr=class{constructor(e,t={}){if(e===null||typeof e=="undefined"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Nc||/^\w+:\/\//.test(t.from)||ya(t.from)?this.file=t.from:this.file=ba(t.from)),Nc&&Mx){let i=new Lx(this.css,t);if(i.text){this.map=i;let n=i.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(e,t,i,n={}){let s,a,o;if(t&&typeof t=="object"){let c=t,f=i;if(typeof c.offset=="number"){let d=this.fromOffset(c.offset);t=d.line,i=d.col}else t=c.line,i=c.column;if(typeof f.offset=="number"){let d=this.fromOffset(f.offset);a=d.line,s=d.col}else a=f.line,s=f.column}else if(!i){let c=this.fromOffset(t);t=c.line,i=c.col}let l=this.origin(t,i,a,s);return l?o=new Mc(e,l.endLine===void 0?l.line:{column:l.column,line:l.line},l.endLine===void 0?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,n.plugin):o=new Mc(e,a===void 0?t:{column:i,line:t},a===void 0?i:{column:s,line:a},this.css,this.file,n.plugin),o.input={column:i,endColumn:s,endLine:a,line:t,source:this.css},this.file&&(hn&&(o.input.url=hn(this.file).toString()),o.input.file=this.file),o}fromOffset(e){let t,i;if(this[va])i=this[va];else{let s=this.css.split(` +`);i=new Array(s.length);let a=0;for(let o=0,l=s.length;o=t)n=i.length-1;else{let s=i.length-2,a;for(;n>1),e=i[a+1])n=a+1;else{n=a;break}}return{col:e-i[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:ba(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,n){if(!this.map)return!1;let s=this.map.consumer(),a=s.originalPositionFor({column:t,line:e});if(!a.source)return!1;let o;typeof i=="number"&&(o=s.originalPositionFor({column:n,line:i}));let l;ya(a.source)?l=hn(a.source):l=new URL(a.source,this.map.consumer().sourceRoot||hn(this.map.mapFile));let c={column:a.column,endColumn:o&&o.column,endLine:o&&o.line,line:a.line,url:l.toString()};if(l.protocol==="file:")if(Lc)c.file=Lc(l);else throw new Error("file: protocol is not available in this PostCSS build");let f=s.sourceContentFor(a.source);return f&&(c.source=f),c}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};Bc.exports=Xr;Xr.default=Xr;wa&&wa.registerInput&&wa.registerInput(Xr)});var tr=x(($3,Uc)=>{u();"use strict";var Fc=Et(),jc,zc,Ut=class extends Fc{constructor(e){super(e);this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let n=super.normalize(e);if(t){if(i==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let s of n)s.raws.before=t.raws.before}return n}removeChild(e,t){let i=this.index(e);return!t&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new jc(new zc,this,e).stringify()}};Ut.registerLazyResult=r=>{jc=r};Ut.registerProcessor=r=>{zc=r};Uc.exports=Ut;Ut.default=Ut;Fc.registerRoot(Ut)});var xa=x((L3,Vc)=>{u();"use strict";var Zr={comma(r){return Zr.split(r,[","],!0)},space(r){let e=[" ",` +`," "];return Zr.split(r,e)},split(r,e,t){let i=[],n="",s=!1,a=0,o=!1,l="",c=!1;for(let f of r)c?c=!1:f==="\\"?c=!0:o?f===l&&(o=!1):f==='"'||f==="'"?(o=!0,l=f):f==="("?a+=1:f===")"?a>0&&(a-=1):a===0&&e.includes(f)&&(s=!0),s?(n!==""&&i.push(n.trim()),n="",s=!1):n+=f;return(t||n!=="")&&i.push(n.trim()),i}};Vc.exports=Zr;Zr.default=Zr});var gn=x((M3,Wc)=>{u();"use strict";var Hc=Et(),Nx=xa(),Jr=class extends Hc{constructor(e){super(e);this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Nx.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};Wc.exports=Jr;Jr.default=Jr;Hc.registerRule(Jr)});var Qc=x((N3,Gc)=>{u();"use strict";var Bx=pn(),Fx=Qr(),jx=Yr(),zx=mn(),Ux=ga(),Vx=tr(),Hx=gn();function ei(r,e){if(Array.isArray(r))return r.map(n=>ei(n));let{inputs:t,...i}=r;if(t){e=[];for(let n of t){let s={...n,__proto__:zx.prototype};s.map&&(s.map={...s.map,__proto__:Ux.prototype}),e.push(s)}}if(i.nodes&&(i.nodes=r.nodes.map(n=>ei(n,e))),i.source){let{inputId:n,...s}=i.source;i.source=s,n!=null&&(i.source.input=e[n])}if(i.type==="root")return new Vx(i);if(i.type==="decl")return new jx(i);if(i.type==="rule")return new Hx(i);if(i.type==="comment")return new Fx(i);if(i.type==="atrule")return new Bx(i);throw new Error("Unknown node type: "+r.type)}Gc.exports=ei;ei.default=ei});var ka=x((B3,Yc)=>{u();Yc.exports=function(r,e){return{generate:()=>{let t="";return r(e,i=>{t+=i}),[t]}}}});var ep=x((F3,Jc)=>{u();"use strict";var Sa="'".charCodeAt(0),Kc='"'.charCodeAt(0),yn="\\".charCodeAt(0),Xc="/".charCodeAt(0),bn=` +`.charCodeAt(0),ti=" ".charCodeAt(0),wn="\f".charCodeAt(0),vn=" ".charCodeAt(0),xn="\r".charCodeAt(0),Wx="[".charCodeAt(0),Gx="]".charCodeAt(0),Qx="(".charCodeAt(0),Yx=")".charCodeAt(0),Kx="{".charCodeAt(0),Xx="}".charCodeAt(0),Zx=";".charCodeAt(0),Jx="*".charCodeAt(0),e1=":".charCodeAt(0),t1="@".charCodeAt(0),kn=/[\t\n\f\r "#'()/;[\\\]{}]/g,Sn=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,r1=/.[\r\n"'(/\\]/,Zc=/[\da-f]/i;Jc.exports=function(e,t={}){let i=e.css.valueOf(),n=t.ignoreErrors,s,a,o,l,c,f,d,p,h,b,v=i.length,y=0,w=[],k=[];function S(){return y}function E(R){throw e.error("Unclosed "+R,y)}function T(){return k.length===0&&y>=v}function B(R){if(k.length)return k.pop();if(y>=v)return;let F=R?R.ignoreUnclosed:!1;switch(s=i.charCodeAt(y),s){case bn:case ti:case vn:case xn:case wn:{l=y;do l+=1,s=i.charCodeAt(l);while(s===ti||s===bn||s===vn||s===xn||s===wn);f=["space",i.slice(y,l)],y=l-1;break}case Wx:case Gx:case Kx:case Xx:case e1:case Zx:case Yx:{let Y=String.fromCharCode(s);f=[Y,Y,y];break}case Qx:{if(b=w.length?w.pop()[1]:"",h=i.charCodeAt(y+1),b==="url"&&h!==Sa&&h!==Kc&&h!==ti&&h!==bn&&h!==vn&&h!==wn&&h!==xn){l=y;do{if(d=!1,l=i.indexOf(")",l+1),l===-1)if(n||F){l=y;break}else E("bracket");for(p=l;i.charCodeAt(p-1)===yn;)p-=1,d=!d}while(d);f=["brackets",i.slice(y,l+1),y,l],y=l}else l=i.indexOf(")",y+1),a=i.slice(y,l+1),l===-1||r1.test(a)?f=["(","(",y]:(f=["brackets",a,y,l],y=l);break}case Sa:case Kc:{c=s===Sa?"'":'"',l=y;do{if(d=!1,l=i.indexOf(c,l+1),l===-1)if(n||F){l=y+1;break}else E("string");for(p=l;i.charCodeAt(p-1)===yn;)p-=1,d=!d}while(d);f=["string",i.slice(y,l+1),y,l],y=l;break}case t1:{kn.lastIndex=y+1,kn.test(i),kn.lastIndex===0?l=i.length-1:l=kn.lastIndex-2,f=["at-word",i.slice(y,l+1),y,l],y=l;break}case yn:{for(l=y,o=!0;i.charCodeAt(l+1)===yn;)l+=1,o=!o;if(s=i.charCodeAt(l+1),o&&s!==Xc&&s!==ti&&s!==bn&&s!==vn&&s!==xn&&s!==wn&&(l+=1,Zc.test(i.charAt(l)))){for(;Zc.test(i.charAt(l+1));)l+=1;i.charCodeAt(l+1)===ti&&(l+=1)}f=["word",i.slice(y,l+1),y,l],y=l;break}default:{s===Xc&&i.charCodeAt(y+1)===Jx?(l=i.indexOf("*/",y+2)+1,l===0&&(n||F?l=i.length:E("comment")),f=["comment",i.slice(y,l+1),y,l],y=l):(Sn.lastIndex=y+1,Sn.test(i),Sn.lastIndex===0?l=i.length-1:l=Sn.lastIndex-2,f=["word",i.slice(y,l+1),y,l],w.push(f),y=l);break}}return y++,f}function N(R){k.push(R)}return{back:N,endOfFile:T,nextToken:B,position:S}}});var sp=x((j3,np)=>{u();"use strict";var i1=pn(),n1=Qr(),s1=Yr(),a1=tr(),tp=gn(),o1=ep(),rp={empty:!0,space:!0};function l1(r){for(let e=r.length-1;e>=0;e--){let t=r[e],i=t[3]||t[2];if(i)return i}}var ip=class{constructor(e){this.input=e,this.root=new a1,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new i1;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,n,s,a=!1,o=!1,l=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){o=!0;break}else if(i==="}"){if(l.length>0){for(s=l.length-1,n=l[s];n&&n[0]==="space";)n=l[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else l.push(e);else l.push(e);if(this.tokenizer.endOfFile()){a=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),a&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let i=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(i+=1,i===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,i,n,s;for(let[a,o]of e.entries()){if(n=o,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!i)this.doubleColon(n);else{if(i[0]==="word"&&i[1]==="progid")continue;return a}i=n}return!1}comment(e){let t=new n1;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let n=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=o1(this.input)}decl(e,t){let i=new s1;this.init(i,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||l1(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){i.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let a=[],o;for(;e.length&&(o=e[0][0],!(o!=="space"&&o!=="comment"));)a.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(s=e[c],s[1].toLowerCase()==="!important"){i.important=!0;let f=this.stringFrom(e,c);f=this.spacesFromEnd(e)+f,f!==" !important"&&(i.raws.important=f);break}else if(s[1].toLowerCase()==="important"){let f=e.slice(0),d="";for(let p=c;p>0;p--){let h=f[p][0];if(d.trim().startsWith("!")&&h!=="space")break;d=f.pop()[1]+d}d.trim().startsWith("!")&&(i.important=!0,i.raws.important=d,e=f)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=a.map(c=>c[1]).join(""),a=[]),this.raw(i,"value",a.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new tp;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,i=null,n=!1,s=null,a=[],o=e[1].startsWith("--"),l=[],c=e;for(;c;){if(i=c[0],l.push(c),i==="("||i==="[")s||(s=c),a.push(i==="("?")":"]");else if(o&&n&&i==="{")s||(s=c),a.push("}");else if(a.length===0)if(i===";")if(n){this.decl(l,o);return}else break;else if(i==="{"){this.rule(l);return}else if(i==="}"){this.tokenizer.back(l.pop()),t=!0;break}else i===":"&&(n=!0);else i===a[a.length-1]&&(a.pop(),a.length===0&&(s=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),a.length>0&&this.unclosedBracket(s),t&&n){if(!o)for(;l.length&&(c=l[l.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(l.pop());this.decl(l,o)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,n){let s,a,o=i.length,l="",c=!0,f,d;for(let p=0;ph+b[1],"");e.raws[t]={raw:p,value:l}}e[t]=l}rule(e){e.pop();let t=new tp;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],t==="space");)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let n=t;n{u();"use strict";var u1=Et(),f1=mn(),c1=sp();function An(r,e){let t=new f1(r,e),i=new c1(t);try{i.parse()}catch(n){throw n}return i.root}ap.exports=An;An.default=An;u1.registerParse(An)});var Aa=x((U3,op)=>{u();"use strict";var _n=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let i=t.node.rangeBy(t);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in t)this[i]=t[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};op.exports=_n;_n.default=_n});var On=x((V3,lp)=>{u();"use strict";var p1=Aa(),En=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new p1(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}get content(){return this.css}};lp.exports=En;En.default=En});var Ca=x((H3,fp)=>{u();"use strict";var up={};fp.exports=function(e){up[e]||(up[e]=!0,typeof console!="undefined"&&console.warn&&console.warn(e))}});var Oa=x((G3,hp)=>{u();"use strict";var d1=Et(),h1=dn(),m1=ka(),g1=Cn(),cp=On(),y1=tr(),b1=Vr(),{isClean:tt,my:w1}=ln(),W3=Ca(),v1={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},x1={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},k1={Once:!0,postcssPlugin:!0,prepare:!0},rr=0;function ri(r){return typeof r=="object"&&typeof r.then=="function"}function pp(r){let e=!1,t=v1[r.type];return r.type==="decl"?e=r.prop.toLowerCase():r.type==="atrule"&&(e=r.name.toLowerCase()),e&&r.append?[t,t+"-"+e,rr,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:r.append?[t,rr,t+"Exit"]:[t,t+"Exit"]}function dp(r){let e;return r.type==="document"?e=["Document",rr,"DocumentExit"]:r.type==="root"?e=["Root",rr,"RootExit"]:e=pp(r),{eventIndex:0,events:e,iterator:0,node:r,visitorIndex:0,visitors:[]}}function _a(r){return r[tt]=!1,r.nodes&&r.nodes.forEach(e=>_a(e)),r}var Ea={},pt=class{constructor(e,t,i){this.stringified=!1,this.processed=!1;let n;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))n=_a(t);else if(t instanceof pt||t instanceof cp)n=_a(t.root),t.map&&(typeof i.map=="undefined"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=t.map);else{let s=g1;i.syntax&&(s=i.syntax.parse),i.parser&&(s=i.parser),s.parse&&(s=s.parse);try{n=s(t,i)}catch(a){this.processed=!0,this.error=a}n&&!n[w1]&&d1.rebuild(n)}this.result=new cp(e,n,i),this.helpers={...Ea,postcss:Ea,result:this.result},this.plugins=this.processor.plugins.map(s=>typeof s=="object"&&s.prepare?{...s,...s.prepare(this.result)}:s)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}prepareVisitors(){this.listeners={};let e=(t,i,n)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([t,n])};for(let t of this.plugins)if(typeof t=="object")for(let i in t){if(!x1[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!k1[i])if(typeof t[i]=="object")for(let n in t[i])n==="*"?e(t,i,t[i][n]):e(t,i+"-"+n.toLowerCase(),t[i][n]);else typeof t[i]=="function"&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let i=this.visitTick(t);if(ri(i))try{await i}catch(n){let s=t[t.length-1].node;throw this.handleError(n,s)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let n=e.nodes.map(s=>i(s,this.helpers));await Promise.all(n)}else await i(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return ri(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=b1;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new m1(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(ri(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[tt];)e[tt]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,n]of e){this.result.lastPlugin=i;let s;try{s=n(t,this.helpers)}catch(a){throw this.handleError(a,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(ri(s))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:n}=t;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(n.length>0&&t.visitorIndex{n[tt]||this.walkSync(n)});else{let n=this.listeners[i];if(n&&this.visitSync(n,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};pt.registerPostcss=r=>{Ea=r};hp.exports=pt;pt.default=pt;y1.registerLazyResult(pt);h1.registerLazyResult(pt)});var gp=x((Y3,mp)=>{u();"use strict";var S1=ka(),A1=Cn(),C1=On(),_1=Vr(),Q3=Ca(),Tn=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let n,s=_1;this.result=new C1(this._processor,n,this._opts),this.result.css=t;let a=this;Object.defineProperty(this.result,"root",{get(){return a.root}});let o=new S1(s,n,this._opts,t);if(o.isMap()){let[l,c]=o.generate();l&&(this.result.css=l),c&&(this.result.map=c)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=A1;try{e=t(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};mp.exports=Tn;Tn.default=Tn});var bp=x((K3,yp)=>{u();"use strict";var E1=dn(),O1=Oa(),T1=gp(),R1=tr(),ir=class{constructor(e=[]){this.version="8.4.49",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)t.push(i);else if(typeof i=="function")t.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new T1(this,e,t):new O1(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};yp.exports=ir;ir.default=ir;R1.registerProcessor(ir);E1.registerProcessor(ir)});var $e=x((X3,Cp)=>{u();"use strict";var wp=pn(),vp=Qr(),P1=Et(),I1=an(),xp=Yr(),kp=dn(),D1=Qc(),q1=mn(),$1=Oa(),L1=xa(),M1=Gr(),N1=Cn(),Ta=bp(),B1=On(),Sp=tr(),Ap=gn(),F1=Vr(),j1=Aa();function J(...r){return r.length===1&&Array.isArray(r[0])&&(r=r[0]),new Ta(r)}J.plugin=function(e,t){let i=!1;function n(...a){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),m.env.LANG&&m.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +https://www.w3ctech.com/topic/2226`));let o=t(...a);return o.postcssPlugin=e,o.postcssVersion=new Ta().version,o}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(a,o,l){return J([n(l)]).process(a,o)},n};J.stringify=F1;J.parse=N1;J.fromJSON=D1;J.list=L1;J.comment=r=>new vp(r);J.atRule=r=>new wp(r);J.decl=r=>new xp(r);J.rule=r=>new Ap(r);J.root=r=>new Sp(r);J.document=r=>new kp(r);J.CssSyntaxError=I1;J.Declaration=xp;J.Container=P1;J.Processor=Ta;J.Document=kp;J.Comment=vp;J.Warning=j1;J.AtRule=wp;J.Result=B1;J.Input=q1;J.Rule=Ap;J.Root=Sp;J.Node=M1;$1.registerPostcss(J);Cp.exports=J;J.default=J});var re,ee,Z3,J3,eI,tI,rI,iI,nI,sI,aI,oI,lI,uI,fI,cI,pI,dI,hI,mI,gI,yI,bI,wI,vI,xI,Ot=P(()=>{u();re=pe($e()),ee=re.default,Z3=re.default.stringify,J3=re.default.fromJSON,eI=re.default.plugin,tI=re.default.parse,rI=re.default.list,iI=re.default.document,nI=re.default.comment,sI=re.default.atRule,aI=re.default.rule,oI=re.default.decl,lI=re.default.root,uI=re.default.CssSyntaxError,fI=re.default.Declaration,cI=re.default.Container,pI=re.default.Processor,dI=re.default.Document,hI=re.default.Comment,mI=re.default.Warning,gI=re.default.AtRule,yI=re.default.Result,bI=re.default.Input,wI=re.default.Rule,vI=re.default.Root,xI=re.default.Node});var Ra=x((SI,_p)=>{u();_p.exports=function(r,e,t,i,n){for(e=e.split?e.split("."):e,i=0;i{u();"use strict";Rn.__esModule=!0;Rn.default=V1;function z1(r){for(var e=r.toLowerCase(),t="",i=!1,n=0;n<6&&e[n]!==void 0;n++){var s=e.charCodeAt(n),a=s>=97&&s<=102||s>=48&&s<=57;if(i=s===32,!a)break;t+=e[n]}if(t.length!==0){var o=parseInt(t,16),l=o>=55296&&o<=57343;return l||o===0||o>1114111?["\uFFFD",t.length+(i?1:0)]:[String.fromCodePoint(o),t.length+(i?1:0)]}}var U1=/\\/;function V1(r){var e=U1.test(r);if(!e)return r;for(var t="",i=0;i{u();"use strict";In.__esModule=!0;In.default=H1;function H1(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();if(!r[n])return;r=r[n]}return r}Op.exports=In.default});var Pp=x((Dn,Rp)=>{u();"use strict";Dn.__esModule=!0;Dn.default=W1;function W1(r){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i0;){var n=t.shift();r[n]||(r[n]={}),r=r[n]}}Rp.exports=Dn.default});var Dp=x((qn,Ip)=>{u();"use strict";qn.__esModule=!0;qn.default=G1;function G1(r){for(var e="",t=r.indexOf("/*"),i=0;t>=0;){e=e+r.slice(i,t);var n=r.indexOf("*/",t+2);if(n<0)return e;i=n+2,t=r.indexOf("/*",i)}return e=e+r.slice(i),e}Ip.exports=qn.default});var ii=x(rt=>{u();"use strict";rt.__esModule=!0;rt.unesc=rt.stripComments=rt.getProp=rt.ensureObject=void 0;var Q1=$n(Pn());rt.unesc=Q1.default;var Y1=$n(Tp());rt.getProp=Y1.default;var K1=$n(Pp());rt.ensureObject=K1.default;var X1=$n(Dp());rt.stripComments=X1.default;function $n(r){return r&&r.__esModule?r:{default:r}}});var dt=x((ni,Lp)=>{u();"use strict";ni.__esModule=!0;ni.default=void 0;var qp=ii();function $p(r,e){for(var t=0;ti||this.source.end.linen||this.source.end.line===i&&this.source.end.column{u();"use strict";ie.__esModule=!0;ie.UNIVERSAL=ie.TAG=ie.STRING=ie.SELECTOR=ie.ROOT=ie.PSEUDO=ie.NESTING=ie.ID=ie.COMMENT=ie.COMBINATOR=ie.CLASS=ie.ATTRIBUTE=void 0;var tk="tag";ie.TAG=tk;var rk="string";ie.STRING=rk;var ik="selector";ie.SELECTOR=ik;var nk="root";ie.ROOT=nk;var sk="pseudo";ie.PSEUDO=sk;var ak="nesting";ie.NESTING=ak;var ok="id";ie.ID=ok;var lk="comment";ie.COMMENT=lk;var uk="combinator";ie.COMBINATOR=uk;var fk="class";ie.CLASS=fk;var ck="attribute";ie.ATTRIBUTE=ck;var pk="universal";ie.UNIVERSAL=pk});var Ln=x((si,Fp)=>{u();"use strict";si.__esModule=!0;si.default=void 0;var dk=mk(dt()),ht=hk(Se());function Mp(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Mp=function(n){return n?t:e})(r)}function hk(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Mp(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function mk(r){return r&&r.__esModule?r:{default:r}}function gk(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=yk(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var i=0;return function(){return i>=r.length?{done:!0}:{done:!1,value:r[i++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yk(r,e){if(!!r){if(typeof r=="string")return Np(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Np(r,e)}}function Np(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,i=new Array(e);t=n&&(this.indexes[a]=s-1);return this},t.removeAll=function(){for(var n=gk(this.nodes),s;!(s=n()).done;){var a=s.value;a.parent=void 0}return this.nodes=[],this},t.empty=function(){return this.removeAll()},t.insertAfter=function(n,s){s.parent=this;var a=this.index(n);this.nodes.splice(a+1,0,s),s.parent=this;var o;for(var l in this.indexes)o=this.indexes[l],a<=o&&(this.indexes[l]=o+1);return this},t.insertBefore=function(n,s){s.parent=this;var a=this.index(n);this.nodes.splice(a,0,s),s.parent=this;var o;for(var l in this.indexes)o=this.indexes[l],o<=a&&(this.indexes[l]=o+1);return this},t._findChildAtPosition=function(n,s){var a=void 0;return this.each(function(o){if(o.atPosition){var l=o.atPosition(n,s);if(l)return a=l,!1}else if(o.isAtPosition(n,s))return a=o,!1}),a},t.atPosition=function(n,s){if(this.isAtPosition(n,s))return this._findChildAtPosition(n,s)||this},t._inferEndPosition=function(){this.last&&this.last.source&&this.last.source.end&&(this.source=this.source||{},this.source.end=this.source.end||{},Object.assign(this.source.end,this.last.source.end))},t.each=function(n){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach++;var s=this.lastEach;if(this.indexes[s]=0,!!this.length){for(var a,o;this.indexes[s]{u();"use strict";ai.__esModule=!0;ai.default=void 0;var xk=Sk(Ln()),kk=Se();function Sk(r){return r&&r.__esModule?r:{default:r}}function jp(r,e){for(var t=0;t{u();"use strict";oi.__esModule=!0;oi.default=void 0;var Ek=Tk(Ln()),Ok=Se();function Tk(r){return r&&r.__esModule?r:{default:r}}function Rk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,qa(r,e)}function qa(r,e){return qa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},qa(r,e)}var Pk=function(r){Rk(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Ok.SELECTOR,i}return e}(Ek.default);oi.default=Pk;Up.exports=oi.default});var Mn=x((_I,Vp)=>{u();"use strict";var Ik={},Dk=Ik.hasOwnProperty,qk=function(e,t){if(!e)return t;var i={};for(var n in t)i[n]=Dk.call(e,n)?e[n]:t[n];return i},$k=/[ -,\.\/:-@\[-\^`\{-~]/,Lk=/[ -,\.\/:-@\[\]\^`\{-~]/,Mk=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,La=function r(e,t){t=qk(t,r.options),t.quotes!="single"&&t.quotes!="double"&&(t.quotes="single");for(var i=t.quotes=="double"?'"':"'",n=t.isIdentifier,s=e.charAt(0),a="",o=0,l=e.length;o126){if(f>=55296&&f<=56319&&o{u();"use strict";li.__esModule=!0;li.default=void 0;var Nk=Hp(Mn()),Bk=ii(),Fk=Hp(dt()),jk=Se();function Hp(r){return r&&r.__esModule?r:{default:r}}function Wp(r,e){for(var t=0;t{u();"use strict";ui.__esModule=!0;ui.default=void 0;var Hk=Gk(dt()),Wk=Se();function Gk(r){return r&&r.__esModule?r:{default:r}}function Qk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Ba(r,e)}function Ba(r,e){return Ba=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Ba(r,e)}var Yk=function(r){Qk(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=Wk.COMMENT,i}return e}(Hk.default);ui.default=Yk;Qp.exports=ui.default});var za=x((fi,Yp)=>{u();"use strict";fi.__esModule=!0;fi.default=void 0;var Kk=Zk(dt()),Xk=Se();function Zk(r){return r&&r.__esModule?r:{default:r}}function Jk(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ja(r,e)}function ja(r,e){return ja=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ja(r,e)}var eS=function(r){Jk(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=Xk.ID,n}var t=e.prototype;return t.valueToString=function(){return"#"+r.prototype.valueToString.call(this)},e}(Kk.default);fi.default=eS;Yp.exports=fi.default});var Nn=x((ci,Zp)=>{u();"use strict";ci.__esModule=!0;ci.default=void 0;var tS=Kp(Mn()),rS=ii(),iS=Kp(dt());function Kp(r){return r&&r.__esModule?r:{default:r}}function Xp(r,e){for(var t=0;t{u();"use strict";pi.__esModule=!0;pi.default=void 0;var oS=uS(Nn()),lS=Se();function uS(r){return r&&r.__esModule?r:{default:r}}function fS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Va(r,e)}function Va(r,e){return Va=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Va(r,e)}var cS=function(r){fS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=lS.TAG,i}return e}(oS.default);pi.default=cS;Jp.exports=pi.default});var Ga=x((di,ed)=>{u();"use strict";di.__esModule=!0;di.default=void 0;var pS=hS(dt()),dS=Se();function hS(r){return r&&r.__esModule?r:{default:r}}function mS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Wa(r,e)}function Wa(r,e){return Wa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Wa(r,e)}var gS=function(r){mS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=dS.STRING,i}return e}(pS.default);di.default=gS;ed.exports=di.default});var Ya=x((hi,td)=>{u();"use strict";hi.__esModule=!0;hi.default=void 0;var yS=wS(Ln()),bS=Se();function wS(r){return r&&r.__esModule?r:{default:r}}function vS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,Qa(r,e)}function Qa(r,e){return Qa=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},Qa(r,e)}var xS=function(r){vS(e,r);function e(i){var n;return n=r.call(this,i)||this,n.type=bS.PSEUDO,n}var t=e.prototype;return t.toString=function(){var n=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),n,this.rawSpaceAfter].join("")},e}(yS.default);hi.default=xS;td.exports=hi.default});var Bn={};Ge(Bn,{deprecate:()=>kS});function kS(r){return r}var Fn=P(()=>{u()});var id=x((EI,rd)=>{u();rd.exports=(Fn(),Bn).deprecate});var to=x(yi=>{u();"use strict";yi.__esModule=!0;yi.default=void 0;yi.unescapeValue=Ja;var mi=Xa(Mn()),SS=Xa(Pn()),AS=Xa(Nn()),CS=Se(),Ka;function Xa(r){return r&&r.__esModule?r:{default:r}}function nd(r,e){for(var t=0;t0&&!n.quoted&&o.before.length===0&&!(n.spaces.value&&n.spaces.value.after)&&(o.before=" "),sd(a,o)}))),s.push("]"),s.push(this.rawSpaceAfter),s.join("")},_S(e,[{key:"quoted",get:function(){var n=this.quoteMark;return n==="'"||n==='"'},set:function(n){RS()}},{key:"quoteMark",get:function(){return this._quoteMark},set:function(n){if(!this._constructed){this._quoteMark=n;return}this._quoteMark!==n&&(this._quoteMark=n,this._syncRawValue())}},{key:"qualifiedAttribute",get:function(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function(){return this.insensitive?"i":""}},{key:"value",get:function(){return this._value},set:function(n){if(this._constructed){var s=Ja(n),a=s.deprecatedUsage,o=s.unescaped,l=s.quoteMark;if(a&&TS(),o===this._value&&l===this._quoteMark)return;this._value=o,this._quoteMark=l,this._syncRawValue()}else this._value=n}},{key:"insensitive",get:function(){return this._insensitive},set:function(n){n||(this._insensitive=!1,this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")&&(this.raws.insensitiveFlag=void 0)),this._insensitive=n}},{key:"attribute",get:function(){return this._attribute},set:function(n){this._handleEscapes("attribute",n),this._attribute=n}}]),e}(AS.default);yi.default=jn;jn.NO_QUOTE=null;jn.SINGLE_QUOTE="'";jn.DOUBLE_QUOTE='"';var eo=(Ka={"'":{quotes:"single",wrap:!0},'"':{quotes:"double",wrap:!0}},Ka[null]={isIdentifier:!0},Ka);function sd(r,e){return""+e.before+r+e.after}});var io=x((bi,ad)=>{u();"use strict";bi.__esModule=!0;bi.default=void 0;var DS=$S(Nn()),qS=Se();function $S(r){return r&&r.__esModule?r:{default:r}}function LS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ro(r,e)}function ro(r,e){return ro=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ro(r,e)}var MS=function(r){LS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=qS.UNIVERSAL,i.value="*",i}return e}(DS.default);bi.default=MS;ad.exports=bi.default});var so=x((wi,od)=>{u();"use strict";wi.__esModule=!0;wi.default=void 0;var NS=FS(dt()),BS=Se();function FS(r){return r&&r.__esModule?r:{default:r}}function jS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,no(r,e)}function no(r,e){return no=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},no(r,e)}var zS=function(r){jS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=BS.COMBINATOR,i}return e}(NS.default);wi.default=zS;od.exports=wi.default});var oo=x((vi,ld)=>{u();"use strict";vi.__esModule=!0;vi.default=void 0;var US=HS(dt()),VS=Se();function HS(r){return r&&r.__esModule?r:{default:r}}function WS(r,e){r.prototype=Object.create(e.prototype),r.prototype.constructor=r,ao(r,e)}function ao(r,e){return ao=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,n){return i.__proto__=n,i},ao(r,e)}var GS=function(r){WS(e,r);function e(t){var i;return i=r.call(this,t)||this,i.type=VS.NESTING,i.value="&",i}return e}(US.default);vi.default=GS;ld.exports=vi.default});var fd=x((zn,ud)=>{u();"use strict";zn.__esModule=!0;zn.default=QS;function QS(r){return r.sort(function(e,t){return e-t})}ud.exports=zn.default});var lo=x(M=>{u();"use strict";M.__esModule=!0;M.word=M.tilde=M.tab=M.str=M.space=M.slash=M.singleQuote=M.semicolon=M.plus=M.pipe=M.openSquare=M.openParenthesis=M.newline=M.greaterThan=M.feed=M.equals=M.doubleQuote=M.dollar=M.cr=M.comment=M.comma=M.combinator=M.colon=M.closeSquare=M.closeParenthesis=M.caret=M.bang=M.backslash=M.at=M.asterisk=M.ampersand=void 0;var YS=38;M.ampersand=YS;var KS=42;M.asterisk=KS;var XS=64;M.at=XS;var ZS=44;M.comma=ZS;var JS=58;M.colon=JS;var eA=59;M.semicolon=eA;var tA=40;M.openParenthesis=tA;var rA=41;M.closeParenthesis=rA;var iA=91;M.openSquare=iA;var nA=93;M.closeSquare=nA;var sA=36;M.dollar=sA;var aA=126;M.tilde=aA;var oA=94;M.caret=oA;var lA=43;M.plus=lA;var uA=61;M.equals=uA;var fA=124;M.pipe=fA;var cA=62;M.greaterThan=cA;var pA=32;M.space=pA;var cd=39;M.singleQuote=cd;var dA=34;M.doubleQuote=dA;var hA=47;M.slash=hA;var mA=33;M.bang=mA;var gA=92;M.backslash=gA;var yA=13;M.cr=yA;var bA=12;M.feed=bA;var wA=10;M.newline=wA;var vA=9;M.tab=vA;var xA=cd;M.str=xA;var kA=-1;M.comment=kA;var SA=-2;M.word=SA;var AA=-3;M.combinator=AA});var hd=x(xi=>{u();"use strict";xi.__esModule=!0;xi.FIELDS=void 0;xi.default=PA;var D=CA(lo()),nr,te;function pd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(pd=function(n){return n?t:e})(r)}function CA(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=pd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}var _A=(nr={},nr[D.tab]=!0,nr[D.newline]=!0,nr[D.cr]=!0,nr[D.feed]=!0,nr),EA=(te={},te[D.space]=!0,te[D.tab]=!0,te[D.newline]=!0,te[D.cr]=!0,te[D.feed]=!0,te[D.ampersand]=!0,te[D.asterisk]=!0,te[D.bang]=!0,te[D.comma]=!0,te[D.colon]=!0,te[D.semicolon]=!0,te[D.openParenthesis]=!0,te[D.closeParenthesis]=!0,te[D.openSquare]=!0,te[D.closeSquare]=!0,te[D.singleQuote]=!0,te[D.doubleQuote]=!0,te[D.plus]=!0,te[D.pipe]=!0,te[D.tilde]=!0,te[D.greaterThan]=!0,te[D.equals]=!0,te[D.dollar]=!0,te[D.caret]=!0,te[D.slash]=!0,te),uo={},dd="0123456789abcdefABCDEF";for(Un=0;Un0?(k=a+v,S=w-y[v].length):(k=a,S=s),T=D.comment,a=k,p=k,d=w-S):c===D.slash?(w=o,T=c,p=a,d=o-s,l=w+1):(w=OA(t,o),T=D.word,p=a,d=w-s),l=w+1;break}e.push([T,a,o-s,p,d,o,l]),S&&(s=S,S=null),o=l}return e}});var kd=x((ki,xd)=>{u();"use strict";ki.__esModule=!0;ki.default=void 0;var IA=je(Da()),fo=je($a()),DA=je(Na()),md=je(Fa()),qA=je(za()),$A=je(Ha()),co=je(Ga()),LA=je(Ya()),gd=Vn(to()),MA=je(io()),po=je(so()),NA=je(oo()),BA=je(fd()),O=Vn(hd()),q=Vn(lo()),FA=Vn(Se()),ue=ii(),Vt,ho;function yd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(yd=function(n){return n?t:e})(r)}function Vn(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=yd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function je(r){return r&&r.__esModule?r:{default:r}}function bd(r,e){for(var t=0;t0){var a=this.current.last;if(a){var o=this.convertWhitespaceNodesToSpace(s),l=o.space,c=o.rawSpace;c!==void 0&&(a.rawSpaceAfter+=c),a.spaces.after+=l}else s.forEach(function(T){return i.newNode(T)})}return}var f=this.currToken,d=void 0;n>this.position&&(d=this.parseWhitespaceEquivalentTokens(n));var p;if(this.isNamedCombinator()?p=this.namedCombinator():this.currToken[O.FIELDS.TYPE]===q.combinator?(p=new po.default({value:this.content(),source:sr(this.currToken),sourceIndex:this.currToken[O.FIELDS.START_POS]}),this.position++):mo[this.currToken[O.FIELDS.TYPE]]||d||this.unexpected(),p){if(d){var h=this.convertWhitespaceNodesToSpace(d),b=h.space,v=h.rawSpace;p.spaces.before=b,p.rawSpaceBefore=v}}else{var y=this.convertWhitespaceNodesToSpace(d,!0),w=y.space,k=y.rawSpace;k||(k=w);var S={},E={spaces:{}};w.endsWith(" ")&&k.endsWith(" ")?(S.before=w.slice(0,w.length-1),E.spaces.before=k.slice(0,k.length-1)):w.startsWith(" ")&&k.startsWith(" ")?(S.after=w.slice(1),E.spaces.after=k.slice(1)):E.value=k,p=new po.default({value:" ",source:go(f,this.tokens[this.position-1]),sourceIndex:f[O.FIELDS.START_POS],spaces:S,raws:E})}return this.currToken&&this.currToken[O.FIELDS.TYPE]===q.space&&(p.spaces.after=this.optionalSpace(this.content()),this.position++),this.newNode(p)},e.comma=function(){if(this.position===this.tokens.length-1){this.root.trailingComma=!0,this.position++;return}this.current._inferEndPosition();var i=new fo.default({source:{start:wd(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][O.FIELDS.START_POS]});this.current.parent.append(i),this.current=i,this.position++},e.comment=function(){var i=this.currToken;this.newNode(new md.default({value:this.content(),source:sr(i),sourceIndex:i[O.FIELDS.START_POS]})),this.position++},e.error=function(i,n){throw this.root.error(i,n)},e.missingBackslash=function(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[O.FIELDS.START_POS]})},e.missingParenthesis=function(){return this.expected("opening parenthesis",this.currToken[O.FIELDS.START_POS])},e.missingSquareBracket=function(){return this.expected("opening square bracket",this.currToken[O.FIELDS.START_POS])},e.unexpected=function(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[O.FIELDS.START_POS])},e.unexpectedPipe=function(){return this.error("Unexpected '|'.",this.currToken[O.FIELDS.START_POS])},e.namespace=function(){var i=this.prevToken&&this.content(this.prevToken)||!0;if(this.nextToken[O.FIELDS.TYPE]===q.word)return this.position++,this.word(i);if(this.nextToken[O.FIELDS.TYPE]===q.asterisk)return this.position++,this.universal(i);this.unexpectedPipe()},e.nesting=function(){if(this.nextToken){var i=this.content(this.nextToken);if(i==="|"){this.position++;return}}var n=this.currToken;this.newNode(new NA.default({value:this.content(),source:sr(n),sourceIndex:n[O.FIELDS.START_POS]})),this.position++},e.parentheses=function(){var i=this.current.last,n=1;if(this.position++,i&&i.type===FA.PSEUDO){var s=new fo.default({source:{start:wd(this.tokens[this.position])},sourceIndex:this.tokens[this.position][O.FIELDS.START_POS]}),a=this.current;for(i.append(s),this.current=s;this.position1&&i.nextToken&&i.nextToken[O.FIELDS.TYPE]===q.openParenthesis&&i.error("Misplaced parenthesis.",{index:i.nextToken[O.FIELDS.START_POS]})});else return this.expected(["pseudo-class","pseudo-element"],this.currToken[O.FIELDS.START_POS])},e.space=function(){var i=this.content();this.position===0||this.prevToken[O.FIELDS.TYPE]===q.comma||this.prevToken[O.FIELDS.TYPE]===q.openParenthesis||this.current.nodes.every(function(n){return n.type==="comment"})?(this.spaces=this.optionalSpace(i),this.position++):this.position===this.tokens.length-1||this.nextToken[O.FIELDS.TYPE]===q.comma||this.nextToken[O.FIELDS.TYPE]===q.closeParenthesis?(this.current.last.spaces.after=this.optionalSpace(i),this.position++):this.combinator()},e.string=function(){var i=this.currToken;this.newNode(new co.default({value:this.content(),source:sr(i),sourceIndex:i[O.FIELDS.START_POS]})),this.position++},e.universal=function(i){var n=this.nextToken;if(n&&this.content(n)==="|")return this.position++,this.namespace();var s=this.currToken;this.newNode(new MA.default({value:this.content(),source:sr(s),sourceIndex:s[O.FIELDS.START_POS]}),i),this.position++},e.splitWord=function(i,n){for(var s=this,a=this.nextToken,o=this.content();a&&~[q.dollar,q.caret,q.equals,q.word].indexOf(a[O.FIELDS.TYPE]);){this.position++;var l=this.content();if(o+=l,l.lastIndexOf("\\")===l.length-1){var c=this.nextToken;c&&c[O.FIELDS.TYPE]===q.space&&(o+=this.requiredSpace(this.content(c)),this.position++)}a=this.nextToken}var f=yo(o,".").filter(function(b){var v=o[b-1]==="\\",y=/^\d+\.\d+%$/.test(o);return!v&&!y}),d=yo(o,"#").filter(function(b){return o[b-1]!=="\\"}),p=yo(o,"#{");p.length&&(d=d.filter(function(b){return!~p.indexOf(b)}));var h=(0,BA.default)(UA([0].concat(f,d)));h.forEach(function(b,v){var y=h[v+1]||o.length,w=o.slice(b,y);if(v===0&&n)return n.call(s,w,h.length);var k,S=s.currToken,E=S[O.FIELDS.START_POS]+h[v],T=Ht(S[1],S[2]+b,S[3],S[2]+(y-1));if(~f.indexOf(b)){var B={value:w.slice(1),source:T,sourceIndex:E};k=new DA.default(ar(B,"value"))}else if(~d.indexOf(b)){var N={value:w.slice(1),source:T,sourceIndex:E};k=new qA.default(ar(N,"value"))}else{var R={value:w,source:T,sourceIndex:E};ar(R,"value"),k=new $A.default(R)}s.newNode(k,i),i=null}),this.position++},e.word=function(i){var n=this.nextToken;return n&&this.content(n)==="|"?(this.position++,this.namespace()):this.splitWord(i)},e.loop=function(){for(;this.position{u();"use strict";Si.__esModule=!0;Si.default=void 0;var HA=WA(kd());function WA(r){return r&&r.__esModule?r:{default:r}}var GA=function(){function r(t,i){this.func=t||function(){},this.funcRes=null,this.options=i}var e=r.prototype;return e._shouldUpdateSelector=function(i,n){n===void 0&&(n={});var s=Object.assign({},this.options,n);return s.updateSelector===!1?!1:typeof i!="string"},e._isLossy=function(i){i===void 0&&(i={});var n=Object.assign({},this.options,i);return n.lossless===!1},e._root=function(i,n){n===void 0&&(n={});var s=new HA.default(i,this._parseOptions(n));return s.root},e._parseOptions=function(i){return{lossy:this._isLossy(i)}},e._run=function(i,n){var s=this;return n===void 0&&(n={}),new Promise(function(a,o){try{var l=s._root(i,n);Promise.resolve(s.func(l)).then(function(c){var f=void 0;return s._shouldUpdateSelector(i,n)&&(f=l.toString(),i.selector=f),{transform:c,root:l,string:f}}).then(a,o)}catch(c){o(c);return}})},e._runSync=function(i,n){n===void 0&&(n={});var s=this._root(i,n),a=this.func(s);if(a&&typeof a.then=="function")throw new Error("Selector processor returned a promise to a synchronous call.");var o=void 0;return n.updateSelector&&typeof i!="string"&&(o=s.toString(),i.selector=o),{transform:a,root:s,string:o}},e.ast=function(i,n){return this._run(i,n).then(function(s){return s.root})},e.astSync=function(i,n){return this._runSync(i,n).root},e.transform=function(i,n){return this._run(i,n).then(function(s){return s.transform})},e.transformSync=function(i,n){return this._runSync(i,n).transform},e.process=function(i,n){return this._run(i,n).then(function(s){return s.string||s.root.toString()})},e.processSync=function(i,n){var s=this._runSync(i,n);return s.string||s.root.toString()},r}();Si.default=GA;Sd.exports=Si.default});var Cd=x(ne=>{u();"use strict";ne.__esModule=!0;ne.universal=ne.tag=ne.string=ne.selector=ne.root=ne.pseudo=ne.nesting=ne.id=ne.comment=ne.combinator=ne.className=ne.attribute=void 0;var QA=ze(to()),YA=ze(Na()),KA=ze(so()),XA=ze(Fa()),ZA=ze(za()),JA=ze(oo()),eC=ze(Ya()),tC=ze(Da()),rC=ze($a()),iC=ze(Ga()),nC=ze(Ha()),sC=ze(io());function ze(r){return r&&r.__esModule?r:{default:r}}var aC=function(e){return new QA.default(e)};ne.attribute=aC;var oC=function(e){return new YA.default(e)};ne.className=oC;var lC=function(e){return new KA.default(e)};ne.combinator=lC;var uC=function(e){return new XA.default(e)};ne.comment=uC;var fC=function(e){return new ZA.default(e)};ne.id=fC;var cC=function(e){return new JA.default(e)};ne.nesting=cC;var pC=function(e){return new eC.default(e)};ne.pseudo=pC;var dC=function(e){return new tC.default(e)};ne.root=dC;var hC=function(e){return new rC.default(e)};ne.selector=hC;var mC=function(e){return new iC.default(e)};ne.string=mC;var gC=function(e){return new nC.default(e)};ne.tag=gC;var yC=function(e){return new sC.default(e)};ne.universal=yC});var Td=x(Z=>{u();"use strict";Z.__esModule=!0;Z.isComment=Z.isCombinator=Z.isClassName=Z.isAttribute=void 0;Z.isContainer=TC;Z.isIdentifier=void 0;Z.isNamespace=RC;Z.isNesting=void 0;Z.isNode=bo;Z.isPseudo=void 0;Z.isPseudoClass=OC;Z.isPseudoElement=Od;Z.isUniversal=Z.isTag=Z.isString=Z.isSelector=Z.isRoot=void 0;var fe=Se(),Oe,bC=(Oe={},Oe[fe.ATTRIBUTE]=!0,Oe[fe.CLASS]=!0,Oe[fe.COMBINATOR]=!0,Oe[fe.COMMENT]=!0,Oe[fe.ID]=!0,Oe[fe.NESTING]=!0,Oe[fe.PSEUDO]=!0,Oe[fe.ROOT]=!0,Oe[fe.SELECTOR]=!0,Oe[fe.STRING]=!0,Oe[fe.TAG]=!0,Oe[fe.UNIVERSAL]=!0,Oe);function bo(r){return typeof r=="object"&&bC[r.type]}function Ue(r,e){return bo(e)&&e.type===r}var _d=Ue.bind(null,fe.ATTRIBUTE);Z.isAttribute=_d;var wC=Ue.bind(null,fe.CLASS);Z.isClassName=wC;var vC=Ue.bind(null,fe.COMBINATOR);Z.isCombinator=vC;var xC=Ue.bind(null,fe.COMMENT);Z.isComment=xC;var kC=Ue.bind(null,fe.ID);Z.isIdentifier=kC;var SC=Ue.bind(null,fe.NESTING);Z.isNesting=SC;var wo=Ue.bind(null,fe.PSEUDO);Z.isPseudo=wo;var AC=Ue.bind(null,fe.ROOT);Z.isRoot=AC;var CC=Ue.bind(null,fe.SELECTOR);Z.isSelector=CC;var _C=Ue.bind(null,fe.STRING);Z.isString=_C;var Ed=Ue.bind(null,fe.TAG);Z.isTag=Ed;var EC=Ue.bind(null,fe.UNIVERSAL);Z.isUniversal=EC;function Od(r){return wo(r)&&r.value&&(r.value.startsWith("::")||r.value.toLowerCase()===":before"||r.value.toLowerCase()===":after"||r.value.toLowerCase()===":first-letter"||r.value.toLowerCase()===":first-line")}function OC(r){return wo(r)&&!Od(r)}function TC(r){return!!(bo(r)&&r.walk)}function RC(r){return _d(r)||Ed(r)}});var Rd=x(Ke=>{u();"use strict";Ke.__esModule=!0;var vo=Se();Object.keys(vo).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===vo[r]||(Ke[r]=vo[r])});var xo=Cd();Object.keys(xo).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===xo[r]||(Ke[r]=xo[r])});var ko=Td();Object.keys(ko).forEach(function(r){r==="default"||r==="__esModule"||r in Ke&&Ke[r]===ko[r]||(Ke[r]=ko[r])})});var it=x((Ai,Id)=>{u();"use strict";Ai.__esModule=!0;Ai.default=void 0;var PC=qC(Ad()),IC=DC(Rd());function Pd(r){if(typeof WeakMap!="function")return null;var e=new WeakMap,t=new WeakMap;return(Pd=function(n){return n?t:e})(r)}function DC(r,e){if(!e&&r&&r.__esModule)return r;if(r===null||typeof r!="object"&&typeof r!="function")return{default:r};var t=Pd(e);if(t&&t.has(r))return t.get(r);var i={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in r)if(s!=="default"&&Object.prototype.hasOwnProperty.call(r,s)){var a=n?Object.getOwnPropertyDescriptor(r,s):null;a&&(a.get||a.set)?Object.defineProperty(i,s,a):i[s]=r[s]}return i.default=r,t&&t.set(r,i),i}function qC(r){return r&&r.__esModule?r:{default:r}}var So=function(e){return new PC.default(e)};Object.assign(So,IC);delete So.__esModule;var $C=So;Ai.default=$C;Id.exports=Ai.default});function mt(r){return["fontSize","outline"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e[0]),e):r==="fontFamily"?e=>{typeof e=="function"&&(e=e({}));let t=Array.isArray(e)&&ke(e[1])?e[0]:e;return Array.isArray(t)?t.join(", "):t}:["boxShadow","transitionProperty","transitionDuration","transitionDelay","transitionTimingFunction","backgroundImage","backgroundSize","backgroundColor","cursor","animation"].includes(r)?e=>(typeof e=="function"&&(e=e({})),Array.isArray(e)&&(e=e.join(", ")),e):["gridTemplateColumns","gridTemplateRows","objectPosition"].includes(r)?e=>(typeof e=="function"&&(e=e({})),typeof e=="string"&&(e=ee.list.comma(e).join(" ")),e):(e,t={})=>(typeof e=="function"&&(e=e(t)),e)}var Ci=P(()=>{u();Ot();Kt()});var Bd=x((MI,Oo)=>{u();var{AtRule:LC,Rule:Dd}=$e(),qd=it();function Ao(r,e){let t;try{qd(i=>{t=i}).processSync(r)}catch(i){throw r.includes(":")?e?e.error("Missed semicolon"):i:e?e.error(i.message):i}return t.at(0)}function $d(r,e){let t=!1;return r.each(i=>{if(i.type==="nesting"){let n=e.clone({});i.value!=="&"?i.replaceWith(Ao(i.value.replace("&",n.toString()))):i.replaceWith(n),t=!0}else"nodes"in i&&i.nodes&&$d(i,e)&&(t=!0)}),t}function Ld(r,e){let t=[];return r.selectors.forEach(i=>{let n=Ao(i,r);e.selectors.forEach(s=>{if(!s)return;let a=Ao(s,e);$d(a,n)||(a.prepend(qd.combinator({value:" "})),a.prepend(n.clone({}))),t.push(a.toString())})}),t}function Hn(r,e){let t=r.prev();for(e.after(r);t&&t.type==="comment";){let i=t.prev();e.after(t),t=i}return r}function MC(r){return function e(t,i,n,s=n){let a=[];if(i.each(o=>{o.type==="rule"&&n?s&&(o.selectors=Ld(t,o)):o.type==="atrule"&&o.nodes?r[o.name]?e(t,o,s):i[_o]!==!1&&a.push(o):a.push(o)}),n&&a.length){let o=t.clone({nodes:[]});for(let l of a)o.append(l);i.prepend(o)}}}function Co(r,e,t){let i=new Dd({nodes:[],selector:r});return i.append(e),t.after(i),i}function Md(r,e){let t={};for(let i of r)t[i]=!0;if(e)for(let i of e)t[i.replace(/^@/,"")]=!0;return t}function NC(r){r=r.trim();let e=r.match(/^\((.*)\)$/);if(!e)return{selector:r,type:"basic"};let t=e[1].match(/^(with(?:out)?):(.+)$/);if(t){let i=t[1]==="with",n=Object.fromEntries(t[2].trim().split(/\s+/).map(a=>[a,!0]));if(i&&n.all)return{type:"noop"};let s=a=>!!n[a];return n.all?s=()=>!0:i&&(s=a=>a==="all"?!1:!n[a]),{escapes:s,type:"withrules"}}return{type:"unknown"}}function BC(r){let e=[],t=r.parent;for(;t&&t instanceof LC;)e.push(t),t=t.parent;return e}function FC(r){let e=r[Nd];if(!e)r.after(r.nodes);else{let t=r.nodes,i,n=-1,s,a,o,l=BC(r);if(l.forEach((c,f)=>{if(e(c.name))i=c,n=f,a=o;else{let d=o;o=c.clone({nodes:[]}),d&&o.append(d),s=s||o}}),i?a?(s.append(t),i.after(a)):i.after(t):r.after(t),r.next()&&i){let c;l.slice(0,n+1).forEach((f,d,p)=>{let h=c;c=f.clone({nodes:[]}),h&&c.append(h);let b=[],y=(p[d-1]||r).next();for(;y;)b.push(y),y=y.next();c.append(b)}),c&&(a||t[t.length-1]).after(c)}}r.remove()}var _o=Symbol("rootRuleMergeSel"),Nd=Symbol("rootRuleEscapes");function jC(r){let{params:e}=r,{escapes:t,selector:i,type:n}=NC(e);if(n==="unknown")throw r.error(`Unknown @${r.name} parameter ${JSON.stringify(e)}`);if(n==="basic"&&i){let s=new Dd({nodes:r.nodes,selector:i});r.removeAll(),r.append(s)}r[Nd]=t,r[_o]=t?!t("all"):n==="noop"}var Eo=Symbol("hasRootRule");Oo.exports=(r={})=>{let e=Md(["media","supports","layer","container","starting-style"],r.bubble),t=MC(e),i=Md(["document","font-face","keyframes","-webkit-keyframes","-moz-keyframes"],r.unwrap),n=(r.rootRuleName||"at-root").replace(/^@/,""),s=r.preserveEmpty;return{Once(a){a.walkAtRules(n,o=>{jC(o),a[Eo]=!0})},postcssPlugin:"postcss-nested",RootExit(a){a[Eo]&&(a.walkAtRules(n,FC),a[Eo]=!1)},Rule(a){let o=!1,l=a,c=!1,f=[];a.each(d=>{d.type==="rule"?(f.length&&(l=Co(a.selector,f,l),f=[]),c=!0,o=!0,d.selectors=Ld(a,d),l=Hn(d,l)):d.type==="atrule"?(f.length&&(l=Co(a.selector,f,l),f=[]),d.name===n?(o=!0,t(a,d,!0,d[_o]),l=Hn(d,l)):e[d.name]?(c=!0,o=!0,t(a,d,!0),l=Hn(d,l)):i[d.name]?(c=!0,o=!0,t(a,d,!1),l=Hn(d,l)):c&&f.push(d)):d.type==="decl"&&c&&f.push(d)}),f.length&&(l=Co(a.selector,f,l)),o&&s!==!0&&(a.raws.semicolon=!0,a.nodes.length===0&&a.remove())}}};Oo.exports.postcss=!0});var Ud=x((NI,zd)=>{u();"use strict";var Fd=/-(\w|$)/g,jd=(r,e)=>e.toUpperCase(),zC=r=>(r=r.toLowerCase(),r==="float"?"cssFloat":r.startsWith("-ms-")?r.substr(1).replace(Fd,jd):r.replace(Fd,jd));zd.exports=zC});var Po=x((BI,Vd)=>{u();var UC=Ud(),VC={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0};function To(r){return typeof r.nodes=="undefined"?!0:Ro(r)}function Ro(r){let e,t={};return r.each(i=>{if(i.type==="atrule")e="@"+i.name,i.params&&(e+=" "+i.params),typeof t[e]=="undefined"?t[e]=To(i):Array.isArray(t[e])?t[e].push(To(i)):t[e]=[t[e],To(i)];else if(i.type==="rule"){let n=Ro(i);if(t[i.selector])for(let s in n)t[i.selector][s]=n[s];else t[i.selector]=n}else if(i.type==="decl"){i.prop[0]==="-"&&i.prop[1]==="-"||i.parent&&i.parent.selector===":export"?e=i.prop:e=UC(i.prop);let n=i.value;!isNaN(i.value)&&VC[e]&&(n=parseFloat(i.value)),i.important&&(n+=" !important"),typeof t[e]=="undefined"?t[e]=n:Array.isArray(t[e])?t[e].push(n):t[e]=[t[e],n]}}),t}Vd.exports=Ro});var Wn=x((FI,Qd)=>{u();var _i=$e(),Hd=/\s*!important\s*$/i,HC={"box-flex":!0,"box-flex-group":!0,"column-count":!0,flex:!0,"flex-grow":!0,"flex-positive":!0,"flex-shrink":!0,"flex-negative":!0,"font-weight":!0,"line-clamp":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,"tab-size":!0,widows:!0,"z-index":!0,zoom:!0,"fill-opacity":!0,"stroke-dashoffset":!0,"stroke-opacity":!0,"stroke-width":!0};function WC(r){return r.replace(/([A-Z])/g,"-$1").replace(/^ms-/,"-ms-").toLowerCase()}function Wd(r,e,t){t===!1||t===null||(e.startsWith("--")||(e=WC(e)),typeof t=="number"&&(t===0||HC[e]?t=t.toString():t+="px"),e==="css-float"&&(e="float"),Hd.test(t)?(t=t.replace(Hd,""),r.push(_i.decl({prop:e,value:t,important:!0}))):r.push(_i.decl({prop:e,value:t})))}function Gd(r,e,t){let i=_i.atRule({name:e[1],params:e[3]||""});typeof t=="object"&&(i.nodes=[],Io(t,i)),r.push(i)}function Io(r,e){let t,i,n;for(t in r)if(i=r[t],!(i===null||typeof i=="undefined"))if(t[0]==="@"){let s=t.match(/@(\S+)(\s+([\W\w]*)\s*)?/);if(Array.isArray(i))for(let a of i)Gd(e,s,a);else Gd(e,s,i)}else if(Array.isArray(i))for(let s of i)Wd(e,t,s);else typeof i=="object"?(n=_i.rule({selector:t}),Io(i,n),e.push(n)):Wd(e,t,i)}Qd.exports=function(r){let e=_i.root();return Io(r,e),e}});var Do=x((jI,Yd)=>{u();var GC=Po();Yd.exports=function(e){return console&&console.warn&&e.warnings().forEach(t=>{let i=t.plugin||"PostCSS";console.warn(i+": "+t.text)}),GC(e.root)}});var Xd=x((zI,Kd)=>{u();var QC=$e(),YC=Do(),KC=Wn();Kd.exports=function(e){let t=QC(e);return async i=>{let n=await t.process(i,{parser:KC,from:void 0});return YC(n)}}});var Jd=x((UI,Zd)=>{u();var XC=$e(),ZC=Do(),JC=Wn();Zd.exports=function(r){let e=XC(r);return t=>{let i=e.process(t,{parser:JC,from:void 0});return ZC(i)}}});var th=x((VI,eh)=>{u();var e_=Po(),t_=Wn(),r_=Xd(),i_=Jd();eh.exports={objectify:e_,parse:t_,async:r_,sync:i_}});var or,rh,HI,WI,GI,QI,ih=P(()=>{u();or=pe(th()),rh=or.default,HI=or.default.objectify,WI=or.default.parse,GI=or.default.async,QI=or.default.sync});function lr(r){return Array.isArray(r)?r.flatMap(e=>ee([(0,nh.default)({bubble:["screen"]})]).process(e,{parser:rh}).root.nodes):lr([r])}var nh,qo=P(()=>{u();Ot();nh=pe(Bd());ih()});function ur(r,e,t=!1){if(r==="")return e;let i=typeof e=="string"?(0,sh.default)().astSync(e):e;return i.walkClasses(n=>{let s=n.value,a=t&&s.startsWith("-");n.value=a?`-${r}${s.slice(1)}`:`${r}${s}`}),typeof e=="string"?i.toString():i}var sh,Gn=P(()=>{u();sh=pe(it())});function Te(r){let e=ah.default.className();return e.value=r,jt(e?.raws?.value??e.value)}var ah,fr=P(()=>{u();ah=pe(it());Zi()});function $o(r){return jt(`.${Te(r)}`)}function Qn(r,e){return $o(Ei(r,e))}function Ei(r,e){return e==="DEFAULT"?r:e==="-"||e==="-DEFAULT"?`-${r}`:e.startsWith("-")?`-${r}${e}`:e.startsWith("/")?`${r}${e}`:`${r}-${e}`}var Lo=P(()=>{u();fr();Zi()});function L(r,e=[[r,[r]]],{filterDefault:t=!1,...i}={}){let n=mt(r);return function({matchUtilities:s,theme:a}){for(let o of e){let l=Array.isArray(o[0])?o:[o];s(l.reduce((c,[f,d])=>Object.assign(c,{[f]:p=>d.reduce((h,b)=>Array.isArray(b)?Object.assign(h,{[b[0]]:b[1]}):Object.assign(h,{[b]:n(p)}),{})}),{}),{...i,values:t?Object.fromEntries(Object.entries(a(r)??{}).filter(([c])=>c!=="DEFAULT")):a(r)})}}}var oh=P(()=>{u();Ci()});function Tt(r){return r=Array.isArray(r)?r:[r],r.map(e=>{let t=e.values.map(i=>i.raw!==void 0?i.raw:[i.min&&`(min-width: ${i.min})`,i.max&&`(max-width: ${i.max})`].filter(Boolean).join(" and "));return e.not?`not all and ${t}`:t}).join(", ")}var Yn=P(()=>{u()});function Mo(r){return r.split(f_).map(t=>{let i=t.trim(),n={value:i},s=i.split(c_),a=new Set;for(let o of s)!a.has("DIRECTIONS")&&n_.has(o)?(n.direction=o,a.add("DIRECTIONS")):!a.has("PLAY_STATES")&&s_.has(o)?(n.playState=o,a.add("PLAY_STATES")):!a.has("FILL_MODES")&&a_.has(o)?(n.fillMode=o,a.add("FILL_MODES")):!a.has("ITERATION_COUNTS")&&(o_.has(o)||p_.test(o))?(n.iterationCount=o,a.add("ITERATION_COUNTS")):!a.has("TIMING_FUNCTION")&&l_.has(o)||!a.has("TIMING_FUNCTION")&&u_.some(l=>o.startsWith(`${l}(`))?(n.timingFunction=o,a.add("TIMING_FUNCTION")):!a.has("DURATION")&&lh.test(o)?(n.duration=o,a.add("DURATION")):!a.has("DELAY")&&lh.test(o)?(n.delay=o,a.add("DELAY")):a.has("NAME")?(n.unknown||(n.unknown=[]),n.unknown.push(o)):(n.name=o,a.add("NAME"));return n})}var n_,s_,a_,o_,l_,u_,f_,c_,lh,p_,uh=P(()=>{u();n_=new Set(["normal","reverse","alternate","alternate-reverse"]),s_=new Set(["running","paused"]),a_=new Set(["none","forwards","backwards","both"]),o_=new Set(["infinite"]),l_=new Set(["linear","ease","ease-in","ease-out","ease-in-out","step-start","step-end"]),u_=["cubic-bezier","steps"],f_=/\,(?![^(]*\))/g,c_=/\ +(?![^(]*\))/g,lh=/^(-?[\d.]+m?s)$/,p_=/^(\d+)$/});var fh,xe,ch=P(()=>{u();fh=r=>Object.assign({},...Object.entries(r??{}).flatMap(([e,t])=>typeof t=="object"?Object.entries(fh(t)).map(([i,n])=>({[e+(i==="DEFAULT"?"":`-${i}`)]:n})):[{[`${e}`]:t}])),xe=fh});var dh,ph=P(()=>{dh="3.4.17"});function Rt(r,e=!0){return Array.isArray(r)?r.map(t=>{if(e&&Array.isArray(t))throw new Error("The tuple syntax is not supported for `screens`.");if(typeof t=="string")return{name:t.toString(),not:!1,values:[{min:t,max:void 0}]};let[i,n]=t;return i=i.toString(),typeof n=="string"?{name:i,not:!1,values:[{min:n,max:void 0}]}:Array.isArray(n)?{name:i,not:!1,values:n.map(s=>mh(s))}:{name:i,not:!1,values:[mh(n)]}}):Rt(Object.entries(r??{}),!1)}function Kn(r){return r.values.length!==1?{result:!1,reason:"multiple-values"}:r.values[0].raw!==void 0?{result:!1,reason:"raw-values"}:r.values[0].min!==void 0&&r.values[0].max!==void 0?{result:!1,reason:"min-and-max"}:{result:!0,reason:null}}function hh(r,e,t){let i=Xn(e,r),n=Xn(t,r),s=Kn(i),a=Kn(n);if(s.reason==="multiple-values"||a.reason==="multiple-values")throw new Error("Attempted to sort a screen with multiple values. This should never happen. Please open a bug report.");if(s.reason==="raw-values"||a.reason==="raw-values")throw new Error("Attempted to sort a screen with raw values. This should never happen. Please open a bug report.");if(s.reason==="min-and-max"||a.reason==="min-and-max")throw new Error("Attempted to sort a screen with both min and max values. This should never happen. Please open a bug report.");let{min:o,max:l}=i.values[0],{min:c,max:f}=n.values[0];e.not&&([o,l]=[l,o]),t.not&&([c,f]=[f,c]),o=o===void 0?o:parseFloat(o),l=l===void 0?l:parseFloat(l),c=c===void 0?c:parseFloat(c),f=f===void 0?f:parseFloat(f);let[d,p]=r==="min"?[o,c]:[f,l];return d-p}function Xn(r,e){return typeof r=="object"?r:{name:"arbitrary-screen",values:[{[e]:r}]}}function mh({"min-width":r,min:e=r,max:t,raw:i}={}){return{min:e,max:t,raw:i}}var Zn=P(()=>{u()});function Jn(r,e){r.walkDecls(t=>{if(e.includes(t.prop)){t.remove();return}for(let i of e)t.value.includes(`/ var(${i})`)?t.value=t.value.replace(`/ var(${i})`,""):t.value.includes(`/ var(${i}, 1)`)&&(t.value=t.value.replace(`/ var(${i}, 1)`,""))})}var gh=P(()=>{u()});var se,Xe,nt,ge,yh,bh=P(()=>{u();ft();et();Ot();oh();Yn();fr();uh();ch();Lr();ra();Kt();Ci();ph();Be();Zn();Ys();gh();ct();Br();Oi();se={childVariant:({addVariant:r})=>{r("*","& > *")},pseudoElementVariants:({addVariant:r})=>{r("first-letter","&::first-letter"),r("first-line","&::first-line"),r("marker",[({container:e})=>(Jn(e,["--tw-text-opacity"]),"& *::marker"),({container:e})=>(Jn(e,["--tw-text-opacity"]),"&::marker")]),r("selection",["& *::selection","&::selection"]),r("file","&::file-selector-button"),r("placeholder","&::placeholder"),r("backdrop","&::backdrop"),r("before",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(ee.decl({prop:"content",value:"var(--tw-content)"}))}),"&::before")),r("after",({container:e})=>(e.walkRules(t=>{let i=!1;t.walkDecls("content",()=>{i=!0}),i||t.prepend(ee.decl({prop:"content",value:"var(--tw-content)"}))}),"&::after"))},pseudoClassVariants:({addVariant:r,matchVariant:e,config:t,prefix:i})=>{let n=[["first","&:first-child"],["last","&:last-child"],["only","&:only-child"],["odd","&:nth-child(odd)"],["even","&:nth-child(even)"],"first-of-type","last-of-type","only-of-type",["visited",({container:a})=>(Jn(a,["--tw-text-opacity","--tw-border-opacity","--tw-bg-opacity"]),"&:visited")],"target",["open","&[open]"],"default","checked","indeterminate","placeholder-shown","autofill","optional","required","valid","invalid","in-range","out-of-range","read-only","empty","focus-within",["hover",we(t(),"hoverOnlyWhenSupported")?"@media (hover: hover) and (pointer: fine) { &:hover }":"&:hover"],"focus","focus-visible","active","enabled","disabled"].map(a=>Array.isArray(a)?a:[a,`&:${a}`]);for(let[a,o]of n)r(a,l=>typeof o=="function"?o(l):o);let s={group:(a,{modifier:o})=>o?[`:merge(${i(".group")}\\/${Te(o)})`," &"]:[`:merge(${i(".group")})`," &"],peer:(a,{modifier:o})=>o?[`:merge(${i(".peer")}\\/${Te(o)})`," ~ &"]:[`:merge(${i(".peer")})`," ~ &"]};for(let[a,o]of Object.entries(s))e(a,(l="",c)=>{let f=K(typeof l=="function"?l(c):l);f.includes("&")||(f="&"+f);let[d,p]=o("",c),h=null,b=null,v=0;for(let y=0;y{r("ltr",'&:where([dir="ltr"], [dir="ltr"] *)'),r("rtl",'&:where([dir="rtl"], [dir="rtl"] *)')},reducedMotionVariants:({addVariant:r})=>{r("motion-safe","@media (prefers-reduced-motion: no-preference)"),r("motion-reduce","@media (prefers-reduced-motion: reduce)")},darkVariants:({config:r,addVariant:e})=>{let[t,i=".dark"]=[].concat(r("darkMode","media"));if(t===!1&&(t="media",G.warn("darkmode-false",["The `darkMode` option in your Tailwind CSS configuration is set to `false`, which now behaves the same as `media`.","Change `darkMode` to `media` or remove it entirely.","https://tailwindcss.com/docs/upgrade-guide#remove-dark-mode-configuration"])),t==="variant"){let n;if(Array.isArray(i)||typeof i=="function"?n=i:typeof i=="string"&&(n=[i]),Array.isArray(n))for(let s of n)s===".dark"?(t=!1,G.warn("darkmode-variant-without-selector",["When using `variant` for `darkMode`, you must provide a selector.",'Example: `darkMode: ["variant", ".your-selector &"]`'])):s.includes("&")||(t=!1,G.warn("darkmode-variant-without-ampersand",["When using `variant` for `darkMode`, your selector must contain `&`.",'Example `darkMode: ["variant", ".your-selector &"]`']));i=n}t==="selector"?e("dark",`&:where(${i}, ${i} *)`):t==="media"?e("dark","@media (prefers-color-scheme: dark)"):t==="variant"?e("dark",i):t==="class"&&e("dark",`&:is(${i} *)`)},printVariant:({addVariant:r})=>{r("print","@media print")},screenVariants:({theme:r,addVariant:e,matchVariant:t})=>{let i=r("screens")??{},n=Object.values(i).every(w=>typeof w=="string"),s=Rt(r("screens")),a=new Set([]);function o(w){return w.match(/(\D+)$/)?.[1]??"(none)"}function l(w){w!==void 0&&a.add(o(w))}function c(w){return l(w),a.size===1}for(let w of s)for(let k of w.values)l(k.min),l(k.max);let f=a.size<=1;function d(w){return Object.fromEntries(s.filter(k=>Kn(k).result).map(k=>{let{min:S,max:E}=k.values[0];if(w==="min"&&S!==void 0)return k;if(w==="min"&&E!==void 0)return{...k,not:!k.not};if(w==="max"&&E!==void 0)return k;if(w==="max"&&S!==void 0)return{...k,not:!k.not}}).map(k=>[k.name,k]))}function p(w){return(k,S)=>hh(w,k.value,S.value)}let h=p("max"),b=p("min");function v(w){return k=>{if(n)if(f){if(typeof k=="string"&&!c(k))return G.warn("minmax-have-mixed-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[]}else return G.warn("mixed-screen-units",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing mixed units."]),[];else return G.warn("complex-screen-config",["The `min-*` and `max-*` variants are not supported with a `screens` configuration containing objects."]),[];return[`@media ${Tt(Xn(k,w))}`]}}t("max",v("max"),{sort:h,values:n?d("max"):{}});let y="min-screens";for(let w of s)e(w.name,`@media ${Tt(w)}`,{id:y,sort:n&&f?b:void 0,value:w});t("min",v("min"),{id:y,sort:b})},supportsVariants:({matchVariant:r,theme:e})=>{r("supports",(t="")=>{let i=K(t),n=/^\w*\s*\(/.test(i);return i=n?i.replace(/\b(and|or|not)\b/g," $1 "):i,n?`@supports ${i}`:(i.includes(":")||(i=`${i}: var(--tw)`),i.startsWith("(")&&i.endsWith(")")||(i=`(${i})`),`@supports ${i}`)},{values:e("supports")??{}})},hasVariants:({matchVariant:r,prefix:e})=>{r("has",t=>`&:has(${K(t)})`,{values:{},[Pt]:{respectPrefix:!1}}),r("group-has",(t,{modifier:i})=>i?`:merge(${e(".group")}\\/${i}):has(${K(t)}) &`:`:merge(${e(".group")}):has(${K(t)}) &`,{values:{},[Pt]:{respectPrefix:!1}}),r("peer-has",(t,{modifier:i})=>i?`:merge(${e(".peer")}\\/${i}):has(${K(t)}) ~ &`:`:merge(${e(".peer")}):has(${K(t)}) ~ &`,{values:{},[Pt]:{respectPrefix:!1}})},ariaVariants:({matchVariant:r,theme:e})=>{r("aria",t=>`&[aria-${Ye(K(t))}]`,{values:e("aria")??{}}),r("group-aria",(t,{modifier:i})=>i?`:merge(.group\\/${i})[aria-${Ye(K(t))}] &`:`:merge(.group)[aria-${Ye(K(t))}] &`,{values:e("aria")??{}}),r("peer-aria",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[aria-${Ye(K(t))}] ~ &`:`:merge(.peer)[aria-${Ye(K(t))}] ~ &`,{values:e("aria")??{}})},dataVariants:({matchVariant:r,theme:e})=>{r("data",t=>`&[data-${Ye(K(t))}]`,{values:e("data")??{}}),r("group-data",(t,{modifier:i})=>i?`:merge(.group\\/${i})[data-${Ye(K(t))}] &`:`:merge(.group)[data-${Ye(K(t))}] &`,{values:e("data")??{}}),r("peer-data",(t,{modifier:i})=>i?`:merge(.peer\\/${i})[data-${Ye(K(t))}] ~ &`:`:merge(.peer)[data-${Ye(K(t))}] ~ &`,{values:e("data")??{}})},orientationVariants:({addVariant:r})=>{r("portrait","@media (orientation: portrait)"),r("landscape","@media (orientation: landscape)")},prefersContrastVariants:({addVariant:r})=>{r("contrast-more","@media (prefers-contrast: more)"),r("contrast-less","@media (prefers-contrast: less)")},forcedColorsVariants:({addVariant:r})=>{r("forced-colors","@media (forced-colors: active)")}},Xe=["translate(var(--tw-translate-x), var(--tw-translate-y))","rotate(var(--tw-rotate))","skewX(var(--tw-skew-x))","skewY(var(--tw-skew-y))","scaleX(var(--tw-scale-x))","scaleY(var(--tw-scale-y))"].join(" "),nt=["var(--tw-blur)","var(--tw-brightness)","var(--tw-contrast)","var(--tw-grayscale)","var(--tw-hue-rotate)","var(--tw-invert)","var(--tw-saturate)","var(--tw-sepia)","var(--tw-drop-shadow)"].join(" "),ge=["var(--tw-backdrop-blur)","var(--tw-backdrop-brightness)","var(--tw-backdrop-contrast)","var(--tw-backdrop-grayscale)","var(--tw-backdrop-hue-rotate)","var(--tw-backdrop-invert)","var(--tw-backdrop-opacity)","var(--tw-backdrop-saturate)","var(--tw-backdrop-sepia)"].join(" "),yh={preflight:({addBase:r})=>{let e=ee.parse(`*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:theme('borderColor.DEFAULT', currentColor)}::after,::before{--tw-content:''}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:theme('fontFamily.sans', ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:theme('fontFamily.sans[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.sans[1].fontVariationSettings', normal);-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:theme('fontFamily.mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:theme('fontFamily.mono[1].fontFeatureSettings', normal);font-variation-settings:theme('fontFamily.mono[1].fontVariationSettings', normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:theme('colors.gray.4', #9ca3af)}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}`);r([ee.comment({text:`! tailwindcss v${dh} | MIT License | https://tailwindcss.com`}),...e.nodes])},container:(()=>{function r(t=[]){return t.flatMap(i=>i.values.map(n=>n.min)).filter(i=>i!==void 0)}function e(t,i,n){if(typeof n=="undefined")return[];if(!(typeof n=="object"&&n!==null))return[{screen:"DEFAULT",minWidth:0,padding:n}];let s=[];n.DEFAULT&&s.push({screen:"DEFAULT",minWidth:0,padding:n.DEFAULT});for(let a of t)for(let o of i)for(let{min:l}of o.values)l===a&&s.push({minWidth:a,padding:n[o.name]});return s}return function({addComponents:t,theme:i}){let n=Rt(i("container.screens",i("screens"))),s=r(n),a=e(s,n,i("container.padding")),o=c=>{let f=a.find(d=>d.minWidth===c);return f?{paddingRight:f.padding,paddingLeft:f.padding}:{}},l=Array.from(new Set(s.slice().sort((c,f)=>parseInt(c)-parseInt(f)))).map(c=>({[`@media (min-width: ${c})`]:{".container":{"max-width":c,...o(c)}}}));t([{".container":Object.assign({width:"100%"},i("container.center",!1)?{marginRight:"auto",marginLeft:"auto"}:{},o(0))},...l])}})(),accessibility:({addUtilities:r})=>{r({".sr-only":{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},".not-sr-only":{position:"static",width:"auto",height:"auto",padding:"0",margin:"0",overflow:"visible",clip:"auto",whiteSpace:"normal"}})},pointerEvents:({addUtilities:r})=>{r({".pointer-events-none":{"pointer-events":"none"},".pointer-events-auto":{"pointer-events":"auto"}})},visibility:({addUtilities:r})=>{r({".visible":{visibility:"visible"},".invisible":{visibility:"hidden"},".collapse":{visibility:"collapse"}})},position:({addUtilities:r})=>{r({".static":{position:"static"},".fixed":{position:"fixed"},".absolute":{position:"absolute"},".relative":{position:"relative"},".sticky":{position:"sticky"}})},inset:L("inset",[["inset",["inset"]],[["inset-x",["left","right"]],["inset-y",["top","bottom"]]],[["start",["inset-inline-start"]],["end",["inset-inline-end"]],["top",["top"]],["right",["right"]],["bottom",["bottom"]],["left",["left"]]]],{supportsNegativeValues:!0}),isolation:({addUtilities:r})=>{r({".isolate":{isolation:"isolate"},".isolation-auto":{isolation:"auto"}})},zIndex:L("zIndex",[["z",["zIndex"]]],{supportsNegativeValues:!0}),order:L("order",void 0,{supportsNegativeValues:!0}),gridColumn:L("gridColumn",[["col",["gridColumn"]]]),gridColumnStart:L("gridColumnStart",[["col-start",["gridColumnStart"]]],{supportsNegativeValues:!0}),gridColumnEnd:L("gridColumnEnd",[["col-end",["gridColumnEnd"]]],{supportsNegativeValues:!0}),gridRow:L("gridRow",[["row",["gridRow"]]]),gridRowStart:L("gridRowStart",[["row-start",["gridRowStart"]]],{supportsNegativeValues:!0}),gridRowEnd:L("gridRowEnd",[["row-end",["gridRowEnd"]]],{supportsNegativeValues:!0}),float:({addUtilities:r})=>{r({".float-start":{float:"inline-start"},".float-end":{float:"inline-end"},".float-right":{float:"right"},".float-left":{float:"left"},".float-none":{float:"none"}})},clear:({addUtilities:r})=>{r({".clear-start":{clear:"inline-start"},".clear-end":{clear:"inline-end"},".clear-left":{clear:"left"},".clear-right":{clear:"right"},".clear-both":{clear:"both"},".clear-none":{clear:"none"}})},margin:L("margin",[["m",["margin"]],[["mx",["margin-left","margin-right"]],["my",["margin-top","margin-bottom"]]],[["ms",["margin-inline-start"]],["me",["margin-inline-end"]],["mt",["margin-top"]],["mr",["margin-right"]],["mb",["margin-bottom"]],["ml",["margin-left"]]]],{supportsNegativeValues:!0}),boxSizing:({addUtilities:r})=>{r({".box-border":{"box-sizing":"border-box"},".box-content":{"box-sizing":"content-box"}})},lineClamp:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"line-clamp":i=>({overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":`${i}`})},{values:t("lineClamp")}),e({".line-clamp-none":{overflow:"visible",display:"block","-webkit-box-orient":"horizontal","-webkit-line-clamp":"none"}})},display:({addUtilities:r})=>{r({".block":{display:"block"},".inline-block":{display:"inline-block"},".inline":{display:"inline"},".flex":{display:"flex"},".inline-flex":{display:"inline-flex"},".table":{display:"table"},".inline-table":{display:"inline-table"},".table-caption":{display:"table-caption"},".table-cell":{display:"table-cell"},".table-column":{display:"table-column"},".table-column-group":{display:"table-column-group"},".table-footer-group":{display:"table-footer-group"},".table-header-group":{display:"table-header-group"},".table-row-group":{display:"table-row-group"},".table-row":{display:"table-row"},".flow-root":{display:"flow-root"},".grid":{display:"grid"},".inline-grid":{display:"inline-grid"},".contents":{display:"contents"},".list-item":{display:"list-item"},".hidden":{display:"none"}})},aspectRatio:L("aspectRatio",[["aspect",["aspect-ratio"]]]),size:L("size",[["size",["width","height"]]]),height:L("height",[["h",["height"]]]),maxHeight:L("maxHeight",[["max-h",["maxHeight"]]]),minHeight:L("minHeight",[["min-h",["minHeight"]]]),width:L("width",[["w",["width"]]]),minWidth:L("minWidth",[["min-w",["minWidth"]]]),maxWidth:L("maxWidth",[["max-w",["maxWidth"]]]),flex:L("flex"),flexShrink:L("flexShrink",[["flex-shrink",["flex-shrink"]],["shrink",["flex-shrink"]]]),flexGrow:L("flexGrow",[["flex-grow",["flex-grow"]],["grow",["flex-grow"]]]),flexBasis:L("flexBasis",[["basis",["flex-basis"]]]),tableLayout:({addUtilities:r})=>{r({".table-auto":{"table-layout":"auto"},".table-fixed":{"table-layout":"fixed"}})},captionSide:({addUtilities:r})=>{r({".caption-top":{"caption-side":"top"},".caption-bottom":{"caption-side":"bottom"}})},borderCollapse:({addUtilities:r})=>{r({".border-collapse":{"border-collapse":"collapse"},".border-separate":{"border-collapse":"separate"}})},borderSpacing:({addDefaults:r,matchUtilities:e,theme:t})=>{r("border-spacing",{"--tw-border-spacing-x":0,"--tw-border-spacing-y":0}),e({"border-spacing":i=>({"--tw-border-spacing-x":i,"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-x":i=>({"--tw-border-spacing-x":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"}),"border-spacing-y":i=>({"--tw-border-spacing-y":i,"@defaults border-spacing":{},"border-spacing":"var(--tw-border-spacing-x) var(--tw-border-spacing-y)"})},{values:t("borderSpacing")})},transformOrigin:L("transformOrigin",[["origin",["transformOrigin"]]]),translate:L("translate",[[["translate-x",[["@defaults transform",{}],"--tw-translate-x",["transform",Xe]]],["translate-y",[["@defaults transform",{}],"--tw-translate-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),rotate:L("rotate",[["rotate",[["@defaults transform",{}],"--tw-rotate",["transform",Xe]]]],{supportsNegativeValues:!0}),skew:L("skew",[[["skew-x",[["@defaults transform",{}],"--tw-skew-x",["transform",Xe]]],["skew-y",[["@defaults transform",{}],"--tw-skew-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),scale:L("scale",[["scale",[["@defaults transform",{}],"--tw-scale-x","--tw-scale-y",["transform",Xe]]],[["scale-x",[["@defaults transform",{}],"--tw-scale-x",["transform",Xe]]],["scale-y",[["@defaults transform",{}],"--tw-scale-y",["transform",Xe]]]]],{supportsNegativeValues:!0}),transform:({addDefaults:r,addUtilities:e})=>{r("transform",{"--tw-translate-x":"0","--tw-translate-y":"0","--tw-rotate":"0","--tw-skew-x":"0","--tw-skew-y":"0","--tw-scale-x":"1","--tw-scale-y":"1"}),e({".transform":{"@defaults transform":{},transform:Xe},".transform-cpu":{transform:Xe},".transform-gpu":{transform:Xe.replace("translate(var(--tw-translate-x), var(--tw-translate-y))","translate3d(var(--tw-translate-x), var(--tw-translate-y), 0)")},".transform-none":{transform:"none"}})},animation:({matchUtilities:r,theme:e,config:t})=>{let i=s=>Te(t("prefix")+s),n=Object.fromEntries(Object.entries(e("keyframes")??{}).map(([s,a])=>[s,{[`@keyframes ${i(s)}`]:a}]));r({animate:s=>{let a=Mo(s);return[...a.flatMap(o=>n[o.name]),{animation:a.map(({name:o,value:l})=>o===void 0||n[o]===void 0?l:l.replace(o,i(o))).join(", ")}]}},{values:e("animation")})},cursor:L("cursor"),touchAction:({addDefaults:r,addUtilities:e})=>{r("touch-action",{"--tw-pan-x":" ","--tw-pan-y":" ","--tw-pinch-zoom":" "});let t="var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)";e({".touch-auto":{"touch-action":"auto"},".touch-none":{"touch-action":"none"},".touch-pan-x":{"@defaults touch-action":{},"--tw-pan-x":"pan-x","touch-action":t},".touch-pan-left":{"@defaults touch-action":{},"--tw-pan-x":"pan-left","touch-action":t},".touch-pan-right":{"@defaults touch-action":{},"--tw-pan-x":"pan-right","touch-action":t},".touch-pan-y":{"@defaults touch-action":{},"--tw-pan-y":"pan-y","touch-action":t},".touch-pan-up":{"@defaults touch-action":{},"--tw-pan-y":"pan-up","touch-action":t},".touch-pan-down":{"@defaults touch-action":{},"--tw-pan-y":"pan-down","touch-action":t},".touch-pinch-zoom":{"@defaults touch-action":{},"--tw-pinch-zoom":"pinch-zoom","touch-action":t},".touch-manipulation":{"touch-action":"manipulation"}})},userSelect:({addUtilities:r})=>{r({".select-none":{"user-select":"none"},".select-text":{"user-select":"text"},".select-all":{"user-select":"all"},".select-auto":{"user-select":"auto"}})},resize:({addUtilities:r})=>{r({".resize-none":{resize:"none"},".resize-y":{resize:"vertical"},".resize-x":{resize:"horizontal"},".resize":{resize:"both"}})},scrollSnapType:({addDefaults:r,addUtilities:e})=>{r("scroll-snap-type",{"--tw-scroll-snap-strictness":"proximity"}),e({".snap-none":{"scroll-snap-type":"none"},".snap-x":{"@defaults scroll-snap-type":{},"scroll-snap-type":"x var(--tw-scroll-snap-strictness)"},".snap-y":{"@defaults scroll-snap-type":{},"scroll-snap-type":"y var(--tw-scroll-snap-strictness)"},".snap-both":{"@defaults scroll-snap-type":{},"scroll-snap-type":"both var(--tw-scroll-snap-strictness)"},".snap-mandatory":{"--tw-scroll-snap-strictness":"mandatory"},".snap-proximity":{"--tw-scroll-snap-strictness":"proximity"}})},scrollSnapAlign:({addUtilities:r})=>{r({".snap-start":{"scroll-snap-align":"start"},".snap-end":{"scroll-snap-align":"end"},".snap-center":{"scroll-snap-align":"center"},".snap-align-none":{"scroll-snap-align":"none"}})},scrollSnapStop:({addUtilities:r})=>{r({".snap-normal":{"scroll-snap-stop":"normal"},".snap-always":{"scroll-snap-stop":"always"}})},scrollMargin:L("scrollMargin",[["scroll-m",["scroll-margin"]],[["scroll-mx",["scroll-margin-left","scroll-margin-right"]],["scroll-my",["scroll-margin-top","scroll-margin-bottom"]]],[["scroll-ms",["scroll-margin-inline-start"]],["scroll-me",["scroll-margin-inline-end"]],["scroll-mt",["scroll-margin-top"]],["scroll-mr",["scroll-margin-right"]],["scroll-mb",["scroll-margin-bottom"]],["scroll-ml",["scroll-margin-left"]]]],{supportsNegativeValues:!0}),scrollPadding:L("scrollPadding",[["scroll-p",["scroll-padding"]],[["scroll-px",["scroll-padding-left","scroll-padding-right"]],["scroll-py",["scroll-padding-top","scroll-padding-bottom"]]],[["scroll-ps",["scroll-padding-inline-start"]],["scroll-pe",["scroll-padding-inline-end"]],["scroll-pt",["scroll-padding-top"]],["scroll-pr",["scroll-padding-right"]],["scroll-pb",["scroll-padding-bottom"]],["scroll-pl",["scroll-padding-left"]]]]),listStylePosition:({addUtilities:r})=>{r({".list-inside":{"list-style-position":"inside"},".list-outside":{"list-style-position":"outside"}})},listStyleType:L("listStyleType",[["list",["listStyleType"]]]),listStyleImage:L("listStyleImage",[["list-image",["listStyleImage"]]]),appearance:({addUtilities:r})=>{r({".appearance-none":{appearance:"none"},".appearance-auto":{appearance:"auto"}})},columns:L("columns",[["columns",["columns"]]]),breakBefore:({addUtilities:r})=>{r({".break-before-auto":{"break-before":"auto"},".break-before-avoid":{"break-before":"avoid"},".break-before-all":{"break-before":"all"},".break-before-avoid-page":{"break-before":"avoid-page"},".break-before-page":{"break-before":"page"},".break-before-left":{"break-before":"left"},".break-before-right":{"break-before":"right"},".break-before-column":{"break-before":"column"}})},breakInside:({addUtilities:r})=>{r({".break-inside-auto":{"break-inside":"auto"},".break-inside-avoid":{"break-inside":"avoid"},".break-inside-avoid-page":{"break-inside":"avoid-page"},".break-inside-avoid-column":{"break-inside":"avoid-column"}})},breakAfter:({addUtilities:r})=>{r({".break-after-auto":{"break-after":"auto"},".break-after-avoid":{"break-after":"avoid"},".break-after-all":{"break-after":"all"},".break-after-avoid-page":{"break-after":"avoid-page"},".break-after-page":{"break-after":"page"},".break-after-left":{"break-after":"left"},".break-after-right":{"break-after":"right"},".break-after-column":{"break-after":"column"}})},gridAutoColumns:L("gridAutoColumns",[["auto-cols",["gridAutoColumns"]]]),gridAutoFlow:({addUtilities:r})=>{r({".grid-flow-row":{gridAutoFlow:"row"},".grid-flow-col":{gridAutoFlow:"column"},".grid-flow-dense":{gridAutoFlow:"dense"},".grid-flow-row-dense":{gridAutoFlow:"row dense"},".grid-flow-col-dense":{gridAutoFlow:"column dense"}})},gridAutoRows:L("gridAutoRows",[["auto-rows",["gridAutoRows"]]]),gridTemplateColumns:L("gridTemplateColumns",[["grid-cols",["gridTemplateColumns"]]]),gridTemplateRows:L("gridTemplateRows",[["grid-rows",["gridTemplateRows"]]]),flexDirection:({addUtilities:r})=>{r({".flex-row":{"flex-direction":"row"},".flex-row-reverse":{"flex-direction":"row-reverse"},".flex-col":{"flex-direction":"column"},".flex-col-reverse":{"flex-direction":"column-reverse"}})},flexWrap:({addUtilities:r})=>{r({".flex-wrap":{"flex-wrap":"wrap"},".flex-wrap-reverse":{"flex-wrap":"wrap-reverse"},".flex-nowrap":{"flex-wrap":"nowrap"}})},placeContent:({addUtilities:r})=>{r({".place-content-center":{"place-content":"center"},".place-content-start":{"place-content":"start"},".place-content-end":{"place-content":"end"},".place-content-between":{"place-content":"space-between"},".place-content-around":{"place-content":"space-around"},".place-content-evenly":{"place-content":"space-evenly"},".place-content-baseline":{"place-content":"baseline"},".place-content-stretch":{"place-content":"stretch"}})},placeItems:({addUtilities:r})=>{r({".place-items-start":{"place-items":"start"},".place-items-end":{"place-items":"end"},".place-items-center":{"place-items":"center"},".place-items-baseline":{"place-items":"baseline"},".place-items-stretch":{"place-items":"stretch"}})},alignContent:({addUtilities:r})=>{r({".content-normal":{"align-content":"normal"},".content-center":{"align-content":"center"},".content-start":{"align-content":"flex-start"},".content-end":{"align-content":"flex-end"},".content-between":{"align-content":"space-between"},".content-around":{"align-content":"space-around"},".content-evenly":{"align-content":"space-evenly"},".content-baseline":{"align-content":"baseline"},".content-stretch":{"align-content":"stretch"}})},alignItems:({addUtilities:r})=>{r({".items-start":{"align-items":"flex-start"},".items-end":{"align-items":"flex-end"},".items-center":{"align-items":"center"},".items-baseline":{"align-items":"baseline"},".items-stretch":{"align-items":"stretch"}})},justifyContent:({addUtilities:r})=>{r({".justify-normal":{"justify-content":"normal"},".justify-start":{"justify-content":"flex-start"},".justify-end":{"justify-content":"flex-end"},".justify-center":{"justify-content":"center"},".justify-between":{"justify-content":"space-between"},".justify-around":{"justify-content":"space-around"},".justify-evenly":{"justify-content":"space-evenly"},".justify-stretch":{"justify-content":"stretch"}})},justifyItems:({addUtilities:r})=>{r({".justify-items-start":{"justify-items":"start"},".justify-items-end":{"justify-items":"end"},".justify-items-center":{"justify-items":"center"},".justify-items-stretch":{"justify-items":"stretch"}})},gap:L("gap",[["gap",["gap"]],[["gap-x",["columnGap"]],["gap-y",["rowGap"]]]]),space:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"space-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"0","margin-right":`calc(${i} * var(--tw-space-x-reverse))`,"margin-left":`calc(${i} * calc(1 - var(--tw-space-x-reverse)))`}}),"space-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"0","margin-top":`calc(${i} * calc(1 - var(--tw-space-y-reverse)))`,"margin-bottom":`calc(${i} * var(--tw-space-y-reverse))`}})},{values:t("space"),supportsNegativeValues:!0}),e({".space-y-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-y-reverse":"1"},".space-x-reverse > :not([hidden]) ~ :not([hidden])":{"--tw-space-x-reverse":"1"}})},divideWidth:({matchUtilities:r,addUtilities:e,theme:t})=>{r({"divide-x":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"0","border-right-width":`calc(${i} * var(--tw-divide-x-reverse))`,"border-left-width":`calc(${i} * calc(1 - var(--tw-divide-x-reverse)))`}}),"divide-y":i=>(i=i==="0"?"0px":i,{"& > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"0","border-top-width":`calc(${i} * calc(1 - var(--tw-divide-y-reverse)))`,"border-bottom-width":`calc(${i} * var(--tw-divide-y-reverse))`}})},{values:t("divideWidth"),type:["line-width","length","any"]}),e({".divide-y-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-y-reverse":"1"},".divide-x-reverse > :not([hidden]) ~ :not([hidden])":{"@defaults border-width":{},"--tw-divide-x-reverse":"1"}})},divideStyle:({addUtilities:r})=>{r({".divide-solid > :not([hidden]) ~ :not([hidden])":{"border-style":"solid"},".divide-dashed > :not([hidden]) ~ :not([hidden])":{"border-style":"dashed"},".divide-dotted > :not([hidden]) ~ :not([hidden])":{"border-style":"dotted"},".divide-double > :not([hidden]) ~ :not([hidden])":{"border-style":"double"},".divide-none > :not([hidden]) ~ :not([hidden])":{"border-style":"none"}})},divideColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({divide:i=>t("divideOpacity")?{["& > :not([hidden]) ~ :not([hidden])"]:Ae({color:i,property:"border-color",variable:"--tw-divide-opacity"})}:{["& > :not([hidden]) ~ :not([hidden])"]:{"border-color":X(i)}}},{values:(({DEFAULT:i,...n})=>n)(xe(e("divideColor"))),type:["color","any"]})},divideOpacity:({matchUtilities:r,theme:e})=>{r({"divide-opacity":t=>({["& > :not([hidden]) ~ :not([hidden])"]:{"--tw-divide-opacity":t}})},{values:e("divideOpacity")})},placeSelf:({addUtilities:r})=>{r({".place-self-auto":{"place-self":"auto"},".place-self-start":{"place-self":"start"},".place-self-end":{"place-self":"end"},".place-self-center":{"place-self":"center"},".place-self-stretch":{"place-self":"stretch"}})},alignSelf:({addUtilities:r})=>{r({".self-auto":{"align-self":"auto"},".self-start":{"align-self":"flex-start"},".self-end":{"align-self":"flex-end"},".self-center":{"align-self":"center"},".self-stretch":{"align-self":"stretch"},".self-baseline":{"align-self":"baseline"}})},justifySelf:({addUtilities:r})=>{r({".justify-self-auto":{"justify-self":"auto"},".justify-self-start":{"justify-self":"start"},".justify-self-end":{"justify-self":"end"},".justify-self-center":{"justify-self":"center"},".justify-self-stretch":{"justify-self":"stretch"}})},overflow:({addUtilities:r})=>{r({".overflow-auto":{overflow:"auto"},".overflow-hidden":{overflow:"hidden"},".overflow-clip":{overflow:"clip"},".overflow-visible":{overflow:"visible"},".overflow-scroll":{overflow:"scroll"},".overflow-x-auto":{"overflow-x":"auto"},".overflow-y-auto":{"overflow-y":"auto"},".overflow-x-hidden":{"overflow-x":"hidden"},".overflow-y-hidden":{"overflow-y":"hidden"},".overflow-x-clip":{"overflow-x":"clip"},".overflow-y-clip":{"overflow-y":"clip"},".overflow-x-visible":{"overflow-x":"visible"},".overflow-y-visible":{"overflow-y":"visible"},".overflow-x-scroll":{"overflow-x":"scroll"},".overflow-y-scroll":{"overflow-y":"scroll"}})},overscrollBehavior:({addUtilities:r})=>{r({".overscroll-auto":{"overscroll-behavior":"auto"},".overscroll-contain":{"overscroll-behavior":"contain"},".overscroll-none":{"overscroll-behavior":"none"},".overscroll-y-auto":{"overscroll-behavior-y":"auto"},".overscroll-y-contain":{"overscroll-behavior-y":"contain"},".overscroll-y-none":{"overscroll-behavior-y":"none"},".overscroll-x-auto":{"overscroll-behavior-x":"auto"},".overscroll-x-contain":{"overscroll-behavior-x":"contain"},".overscroll-x-none":{"overscroll-behavior-x":"none"}})},scrollBehavior:({addUtilities:r})=>{r({".scroll-auto":{"scroll-behavior":"auto"},".scroll-smooth":{"scroll-behavior":"smooth"}})},textOverflow:({addUtilities:r})=>{r({".truncate":{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},".overflow-ellipsis":{"text-overflow":"ellipsis"},".text-ellipsis":{"text-overflow":"ellipsis"},".text-clip":{"text-overflow":"clip"}})},hyphens:({addUtilities:r})=>{r({".hyphens-none":{hyphens:"none"},".hyphens-manual":{hyphens:"manual"},".hyphens-auto":{hyphens:"auto"}})},whitespace:({addUtilities:r})=>{r({".whitespace-normal":{"white-space":"normal"},".whitespace-nowrap":{"white-space":"nowrap"},".whitespace-pre":{"white-space":"pre"},".whitespace-pre-line":{"white-space":"pre-line"},".whitespace-pre-wrap":{"white-space":"pre-wrap"},".whitespace-break-spaces":{"white-space":"break-spaces"}})},textWrap:({addUtilities:r})=>{r({".text-wrap":{"text-wrap":"wrap"},".text-nowrap":{"text-wrap":"nowrap"},".text-balance":{"text-wrap":"balance"},".text-pretty":{"text-wrap":"pretty"}})},wordBreak:({addUtilities:r})=>{r({".break-normal":{"overflow-wrap":"normal","word-break":"normal"},".break-words":{"overflow-wrap":"break-word"},".break-all":{"word-break":"break-all"},".break-keep":{"word-break":"keep-all"}})},borderRadius:L("borderRadius",[["rounded",["border-radius"]],[["rounded-s",["border-start-start-radius","border-end-start-radius"]],["rounded-e",["border-start-end-radius","border-end-end-radius"]],["rounded-t",["border-top-left-radius","border-top-right-radius"]],["rounded-r",["border-top-right-radius","border-bottom-right-radius"]],["rounded-b",["border-bottom-right-radius","border-bottom-left-radius"]],["rounded-l",["border-top-left-radius","border-bottom-left-radius"]]],[["rounded-ss",["border-start-start-radius"]],["rounded-se",["border-start-end-radius"]],["rounded-ee",["border-end-end-radius"]],["rounded-es",["border-end-start-radius"]],["rounded-tl",["border-top-left-radius"]],["rounded-tr",["border-top-right-radius"]],["rounded-br",["border-bottom-right-radius"]],["rounded-bl",["border-bottom-left-radius"]]]]),borderWidth:L("borderWidth",[["border",[["@defaults border-width",{}],"border-width"]],[["border-x",[["@defaults border-width",{}],"border-left-width","border-right-width"]],["border-y",[["@defaults border-width",{}],"border-top-width","border-bottom-width"]]],[["border-s",[["@defaults border-width",{}],"border-inline-start-width"]],["border-e",[["@defaults border-width",{}],"border-inline-end-width"]],["border-t",[["@defaults border-width",{}],"border-top-width"]],["border-r",[["@defaults border-width",{}],"border-right-width"]],["border-b",[["@defaults border-width",{}],"border-bottom-width"]],["border-l",[["@defaults border-width",{}],"border-left-width"]]]],{type:["line-width","length"]}),borderStyle:({addUtilities:r})=>{r({".border-solid":{"border-style":"solid"},".border-dashed":{"border-style":"dashed"},".border-dotted":{"border-style":"dotted"},".border-double":{"border-style":"double"},".border-hidden":{"border-style":"hidden"},".border-none":{"border-style":"none"}})},borderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({border:i=>t("borderOpacity")?Ae({color:i,property:"border-color",variable:"--tw-border-opacity"}):{"border-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]}),r({"border-x":i=>t("borderOpacity")?Ae({color:i,property:["border-left-color","border-right-color"],variable:"--tw-border-opacity"}):{"border-left-color":X(i),"border-right-color":X(i)},"border-y":i=>t("borderOpacity")?Ae({color:i,property:["border-top-color","border-bottom-color"],variable:"--tw-border-opacity"}):{"border-top-color":X(i),"border-bottom-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]}),r({"border-s":i=>t("borderOpacity")?Ae({color:i,property:"border-inline-start-color",variable:"--tw-border-opacity"}):{"border-inline-start-color":X(i)},"border-e":i=>t("borderOpacity")?Ae({color:i,property:"border-inline-end-color",variable:"--tw-border-opacity"}):{"border-inline-end-color":X(i)},"border-t":i=>t("borderOpacity")?Ae({color:i,property:"border-top-color",variable:"--tw-border-opacity"}):{"border-top-color":X(i)},"border-r":i=>t("borderOpacity")?Ae({color:i,property:"border-right-color",variable:"--tw-border-opacity"}):{"border-right-color":X(i)},"border-b":i=>t("borderOpacity")?Ae({color:i,property:"border-bottom-color",variable:"--tw-border-opacity"}):{"border-bottom-color":X(i)},"border-l":i=>t("borderOpacity")?Ae({color:i,property:"border-left-color",variable:"--tw-border-opacity"}):{"border-left-color":X(i)}},{values:(({DEFAULT:i,...n})=>n)(xe(e("borderColor"))),type:["color","any"]})},borderOpacity:L("borderOpacity",[["border-opacity",["--tw-border-opacity"]]]),backgroundColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({bg:i=>t("backgroundOpacity")?Ae({color:i,property:"background-color",variable:"--tw-bg-opacity"}):{"background-color":X(i)}},{values:xe(e("backgroundColor")),type:["color","any"]})},backgroundOpacity:L("backgroundOpacity",[["bg-opacity",["--tw-bg-opacity"]]]),backgroundImage:L("backgroundImage",[["bg",["background-image"]]],{type:["lookup","image","url"]}),gradientColorStops:(()=>{function r(e){return Je(e,0,"rgb(255 255 255 / 0)")}return function({matchUtilities:e,theme:t,addDefaults:i}){i("gradient-color-stops",{"--tw-gradient-from-position":" ","--tw-gradient-via-position":" ","--tw-gradient-to-position":" "});let n={values:xe(t("gradientColorStops")),type:["color","any"]},s={values:t("gradientColorStopPositions"),type:["length","percentage"]};e({from:a=>{let o=r(a);return{"@defaults gradient-color-stops":{},"--tw-gradient-from":`${X(a)} var(--tw-gradient-from-position)`,"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":"var(--tw-gradient-from), var(--tw-gradient-to)"}}},n),e({from:a=>({"--tw-gradient-from-position":a})},s),e({via:a=>{let o=r(a);return{"@defaults gradient-color-stops":{},"--tw-gradient-to":`${o} var(--tw-gradient-to-position)`,"--tw-gradient-stops":`var(--tw-gradient-from), ${X(a)} var(--tw-gradient-via-position), var(--tw-gradient-to)`}}},n),e({via:a=>({"--tw-gradient-via-position":a})},s),e({to:a=>({"@defaults gradient-color-stops":{},"--tw-gradient-to":`${X(a)} var(--tw-gradient-to-position)`})},n),e({to:a=>({"--tw-gradient-to-position":a})},s)}})(),boxDecorationBreak:({addUtilities:r})=>{r({".decoration-slice":{"box-decoration-break":"slice"},".decoration-clone":{"box-decoration-break":"clone"},".box-decoration-slice":{"box-decoration-break":"slice"},".box-decoration-clone":{"box-decoration-break":"clone"}})},backgroundSize:L("backgroundSize",[["bg",["background-size"]]],{type:["lookup","length","percentage","size"]}),backgroundAttachment:({addUtilities:r})=>{r({".bg-fixed":{"background-attachment":"fixed"},".bg-local":{"background-attachment":"local"},".bg-scroll":{"background-attachment":"scroll"}})},backgroundClip:({addUtilities:r})=>{r({".bg-clip-border":{"background-clip":"border-box"},".bg-clip-padding":{"background-clip":"padding-box"},".bg-clip-content":{"background-clip":"content-box"},".bg-clip-text":{"background-clip":"text"}})},backgroundPosition:L("backgroundPosition",[["bg",["background-position"]]],{type:["lookup",["position",{preferOnConflict:!0}]]}),backgroundRepeat:({addUtilities:r})=>{r({".bg-repeat":{"background-repeat":"repeat"},".bg-no-repeat":{"background-repeat":"no-repeat"},".bg-repeat-x":{"background-repeat":"repeat-x"},".bg-repeat-y":{"background-repeat":"repeat-y"},".bg-repeat-round":{"background-repeat":"round"},".bg-repeat-space":{"background-repeat":"space"}})},backgroundOrigin:({addUtilities:r})=>{r({".bg-origin-border":{"background-origin":"border-box"},".bg-origin-padding":{"background-origin":"padding-box"},".bg-origin-content":{"background-origin":"content-box"}})},fill:({matchUtilities:r,theme:e})=>{r({fill:t=>({fill:X(t)})},{values:xe(e("fill")),type:["color","any"]})},stroke:({matchUtilities:r,theme:e})=>{r({stroke:t=>({stroke:X(t)})},{values:xe(e("stroke")),type:["color","url","any"]})},strokeWidth:L("strokeWidth",[["stroke",["stroke-width"]]],{type:["length","number","percentage"]}),objectFit:({addUtilities:r})=>{r({".object-contain":{"object-fit":"contain"},".object-cover":{"object-fit":"cover"},".object-fill":{"object-fit":"fill"},".object-none":{"object-fit":"none"},".object-scale-down":{"object-fit":"scale-down"}})},objectPosition:L("objectPosition",[["object",["object-position"]]]),padding:L("padding",[["p",["padding"]],[["px",["padding-left","padding-right"]],["py",["padding-top","padding-bottom"]]],[["ps",["padding-inline-start"]],["pe",["padding-inline-end"]],["pt",["padding-top"]],["pr",["padding-right"]],["pb",["padding-bottom"]],["pl",["padding-left"]]]]),textAlign:({addUtilities:r})=>{r({".text-left":{"text-align":"left"},".text-center":{"text-align":"center"},".text-right":{"text-align":"right"},".text-justify":{"text-align":"justify"},".text-start":{"text-align":"start"},".text-end":{"text-align":"end"}})},textIndent:L("textIndent",[["indent",["text-indent"]]],{supportsNegativeValues:!0}),verticalAlign:({addUtilities:r,matchUtilities:e})=>{r({".align-baseline":{"vertical-align":"baseline"},".align-top":{"vertical-align":"top"},".align-middle":{"vertical-align":"middle"},".align-bottom":{"vertical-align":"bottom"},".align-text-top":{"vertical-align":"text-top"},".align-text-bottom":{"vertical-align":"text-bottom"},".align-sub":{"vertical-align":"sub"},".align-super":{"vertical-align":"super"}}),e({align:t=>({"vertical-align":t})})},fontFamily:({matchUtilities:r,theme:e})=>{r({font:t=>{let[i,n={}]=Array.isArray(t)&&ke(t[1])?t:[t],{fontFeatureSettings:s,fontVariationSettings:a}=n;return{"font-family":Array.isArray(i)?i.join(", "):i,...s===void 0?{}:{"font-feature-settings":s},...a===void 0?{}:{"font-variation-settings":a}}}},{values:e("fontFamily"),type:["lookup","generic-name","family-name"]})},fontSize:({matchUtilities:r,theme:e})=>{r({text:(t,{modifier:i})=>{let[n,s]=Array.isArray(t)?t:[t];if(i)return{"font-size":n,"line-height":i};let{lineHeight:a,letterSpacing:o,fontWeight:l}=ke(s)?s:{lineHeight:s};return{"font-size":n,...a===void 0?{}:{"line-height":a},...o===void 0?{}:{"letter-spacing":o},...l===void 0?{}:{"font-weight":l}}}},{values:e("fontSize"),modifiers:e("lineHeight"),type:["absolute-size","relative-size","length","percentage"]})},fontWeight:L("fontWeight",[["font",["fontWeight"]]],{type:["lookup","number","any"]}),textTransform:({addUtilities:r})=>{r({".uppercase":{"text-transform":"uppercase"},".lowercase":{"text-transform":"lowercase"},".capitalize":{"text-transform":"capitalize"},".normal-case":{"text-transform":"none"}})},fontStyle:({addUtilities:r})=>{r({".italic":{"font-style":"italic"},".not-italic":{"font-style":"normal"}})},fontVariantNumeric:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)";r("font-variant-numeric",{"--tw-ordinal":" ","--tw-slashed-zero":" ","--tw-numeric-figure":" ","--tw-numeric-spacing":" ","--tw-numeric-fraction":" "}),e({".normal-nums":{"font-variant-numeric":"normal"},".ordinal":{"@defaults font-variant-numeric":{},"--tw-ordinal":"ordinal","font-variant-numeric":t},".slashed-zero":{"@defaults font-variant-numeric":{},"--tw-slashed-zero":"slashed-zero","font-variant-numeric":t},".lining-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"lining-nums","font-variant-numeric":t},".oldstyle-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-figure":"oldstyle-nums","font-variant-numeric":t},".proportional-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"proportional-nums","font-variant-numeric":t},".tabular-nums":{"@defaults font-variant-numeric":{},"--tw-numeric-spacing":"tabular-nums","font-variant-numeric":t},".diagonal-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"diagonal-fractions","font-variant-numeric":t},".stacked-fractions":{"@defaults font-variant-numeric":{},"--tw-numeric-fraction":"stacked-fractions","font-variant-numeric":t}})},lineHeight:L("lineHeight",[["leading",["lineHeight"]]]),letterSpacing:L("letterSpacing",[["tracking",["letterSpacing"]]],{supportsNegativeValues:!0}),textColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({text:i=>t("textOpacity")?Ae({color:i,property:"color",variable:"--tw-text-opacity"}):{color:X(i)}},{values:xe(e("textColor")),type:["color","any"]})},textOpacity:L("textOpacity",[["text-opacity",["--tw-text-opacity"]]]),textDecoration:({addUtilities:r})=>{r({".underline":{"text-decoration-line":"underline"},".overline":{"text-decoration-line":"overline"},".line-through":{"text-decoration-line":"line-through"},".no-underline":{"text-decoration-line":"none"}})},textDecorationColor:({matchUtilities:r,theme:e})=>{r({decoration:t=>({"text-decoration-color":X(t)})},{values:xe(e("textDecorationColor")),type:["color","any"]})},textDecorationStyle:({addUtilities:r})=>{r({".decoration-solid":{"text-decoration-style":"solid"},".decoration-double":{"text-decoration-style":"double"},".decoration-dotted":{"text-decoration-style":"dotted"},".decoration-dashed":{"text-decoration-style":"dashed"},".decoration-wavy":{"text-decoration-style":"wavy"}})},textDecorationThickness:L("textDecorationThickness",[["decoration",["text-decoration-thickness"]]],{type:["length","percentage"]}),textUnderlineOffset:L("textUnderlineOffset",[["underline-offset",["text-underline-offset"]]],{type:["length","percentage","any"]}),fontSmoothing:({addUtilities:r})=>{r({".antialiased":{"-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale"},".subpixel-antialiased":{"-webkit-font-smoothing":"auto","-moz-osx-font-smoothing":"auto"}})},placeholderColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({placeholder:i=>t("placeholderOpacity")?{"&::placeholder":Ae({color:i,property:"color",variable:"--tw-placeholder-opacity"})}:{"&::placeholder":{color:X(i)}}},{values:xe(e("placeholderColor")),type:["color","any"]})},placeholderOpacity:({matchUtilities:r,theme:e})=>{r({"placeholder-opacity":t=>({["&::placeholder"]:{"--tw-placeholder-opacity":t}})},{values:e("placeholderOpacity")})},caretColor:({matchUtilities:r,theme:e})=>{r({caret:t=>({"caret-color":X(t)})},{values:xe(e("caretColor")),type:["color","any"]})},accentColor:({matchUtilities:r,theme:e})=>{r({accent:t=>({"accent-color":X(t)})},{values:xe(e("accentColor")),type:["color","any"]})},opacity:L("opacity",[["opacity",["opacity"]]]),backgroundBlendMode:({addUtilities:r})=>{r({".bg-blend-normal":{"background-blend-mode":"normal"},".bg-blend-multiply":{"background-blend-mode":"multiply"},".bg-blend-screen":{"background-blend-mode":"screen"},".bg-blend-overlay":{"background-blend-mode":"overlay"},".bg-blend-darken":{"background-blend-mode":"darken"},".bg-blend-lighten":{"background-blend-mode":"lighten"},".bg-blend-color-dodge":{"background-blend-mode":"color-dodge"},".bg-blend-color-burn":{"background-blend-mode":"color-burn"},".bg-blend-hard-light":{"background-blend-mode":"hard-light"},".bg-blend-soft-light":{"background-blend-mode":"soft-light"},".bg-blend-difference":{"background-blend-mode":"difference"},".bg-blend-exclusion":{"background-blend-mode":"exclusion"},".bg-blend-hue":{"background-blend-mode":"hue"},".bg-blend-saturation":{"background-blend-mode":"saturation"},".bg-blend-color":{"background-blend-mode":"color"},".bg-blend-luminosity":{"background-blend-mode":"luminosity"}})},mixBlendMode:({addUtilities:r})=>{r({".mix-blend-normal":{"mix-blend-mode":"normal"},".mix-blend-multiply":{"mix-blend-mode":"multiply"},".mix-blend-screen":{"mix-blend-mode":"screen"},".mix-blend-overlay":{"mix-blend-mode":"overlay"},".mix-blend-darken":{"mix-blend-mode":"darken"},".mix-blend-lighten":{"mix-blend-mode":"lighten"},".mix-blend-color-dodge":{"mix-blend-mode":"color-dodge"},".mix-blend-color-burn":{"mix-blend-mode":"color-burn"},".mix-blend-hard-light":{"mix-blend-mode":"hard-light"},".mix-blend-soft-light":{"mix-blend-mode":"soft-light"},".mix-blend-difference":{"mix-blend-mode":"difference"},".mix-blend-exclusion":{"mix-blend-mode":"exclusion"},".mix-blend-hue":{"mix-blend-mode":"hue"},".mix-blend-saturation":{"mix-blend-mode":"saturation"},".mix-blend-color":{"mix-blend-mode":"color"},".mix-blend-luminosity":{"mix-blend-mode":"luminosity"},".mix-blend-plus-darker":{"mix-blend-mode":"plus-darker"},".mix-blend-plus-lighter":{"mix-blend-mode":"plus-lighter"}})},boxShadow:(()=>{let r=mt("boxShadow"),e=["var(--tw-ring-offset-shadow, 0 0 #0000)","var(--tw-ring-shadow, 0 0 #0000)","var(--tw-shadow)"].join(", ");return function({matchUtilities:t,addDefaults:i,theme:n}){i("box-shadow",{"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),t({shadow:s=>{s=r(s);let a=en(s);for(let o of a)!o.valid||(o.color="var(--tw-shadow-color)");return{"@defaults box-shadow":{},"--tw-shadow":s==="none"?"0 0 #0000":s,"--tw-shadow-colored":s==="none"?"0 0 #0000":Lf(a),"box-shadow":e}}},{values:n("boxShadow"),type:["shadow"]})}})(),boxShadowColor:({matchUtilities:r,theme:e})=>{r({shadow:t=>({"--tw-shadow-color":X(t),"--tw-shadow":"var(--tw-shadow-colored)"})},{values:xe(e("boxShadowColor")),type:["color","any"]})},outlineStyle:({addUtilities:r})=>{r({".outline-none":{outline:"2px solid transparent","outline-offset":"2px"},".outline":{"outline-style":"solid"},".outline-dashed":{"outline-style":"dashed"},".outline-dotted":{"outline-style":"dotted"},".outline-double":{"outline-style":"double"}})},outlineWidth:L("outlineWidth",[["outline",["outline-width"]]],{type:["length","number","percentage"]}),outlineOffset:L("outlineOffset",[["outline-offset",["outline-offset"]]],{type:["length","number","percentage","any"],supportsNegativeValues:!0}),outlineColor:({matchUtilities:r,theme:e})=>{r({outline:t=>({"outline-color":X(t)})},{values:xe(e("outlineColor")),type:["color","any"]})},ringWidth:({matchUtilities:r,addDefaults:e,addUtilities:t,theme:i,config:n})=>{let s=(()=>{if(we(n(),"respectDefaultRingColorOpacity"))return i("ringColor.DEFAULT");let a=i("ringOpacity.DEFAULT","0.5");return i("ringColor")?.DEFAULT?Je(i("ringColor")?.DEFAULT,a,`rgb(147 197 253 / ${a})`):`rgb(147 197 253 / ${a})`})();e("ring-width",{"--tw-ring-inset":" ","--tw-ring-offset-width":i("ringOffsetWidth.DEFAULT","0px"),"--tw-ring-offset-color":i("ringOffsetColor.DEFAULT","#fff"),"--tw-ring-color":s,"--tw-ring-offset-shadow":"0 0 #0000","--tw-ring-shadow":"0 0 #0000","--tw-shadow":"0 0 #0000","--tw-shadow-colored":"0 0 #0000"}),r({ring:a=>({"@defaults ring-width":{},"--tw-ring-offset-shadow":"var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)","--tw-ring-shadow":`var(--tw-ring-inset) 0 0 0 calc(${a} + var(--tw-ring-offset-width)) var(--tw-ring-color)`,"box-shadow":["var(--tw-ring-offset-shadow)","var(--tw-ring-shadow)","var(--tw-shadow, 0 0 #0000)"].join(", ")})},{values:i("ringWidth"),type:"length"}),t({".ring-inset":{"@defaults ring-width":{},"--tw-ring-inset":"inset"}})},ringColor:({matchUtilities:r,theme:e,corePlugins:t})=>{r({ring:i=>t("ringOpacity")?Ae({color:i,property:"--tw-ring-color",variable:"--tw-ring-opacity"}):{"--tw-ring-color":X(i)}},{values:Object.fromEntries(Object.entries(xe(e("ringColor"))).filter(([i])=>i!=="DEFAULT")),type:["color","any"]})},ringOpacity:r=>{let{config:e}=r;return L("ringOpacity",[["ring-opacity",["--tw-ring-opacity"]]],{filterDefault:!we(e(),"respectDefaultRingColorOpacity")})(r)},ringOffsetWidth:L("ringOffsetWidth",[["ring-offset",["--tw-ring-offset-width"]]],{type:"length"}),ringOffsetColor:({matchUtilities:r,theme:e})=>{r({"ring-offset":t=>({"--tw-ring-offset-color":X(t)})},{values:xe(e("ringOffsetColor")),type:["color","any"]})},blur:({matchUtilities:r,theme:e})=>{r({blur:t=>({"--tw-blur":t.trim()===""?" ":`blur(${t})`,"@defaults filter":{},filter:nt})},{values:e("blur")})},brightness:({matchUtilities:r,theme:e})=>{r({brightness:t=>({"--tw-brightness":`brightness(${t})`,"@defaults filter":{},filter:nt})},{values:e("brightness")})},contrast:({matchUtilities:r,theme:e})=>{r({contrast:t=>({"--tw-contrast":`contrast(${t})`,"@defaults filter":{},filter:nt})},{values:e("contrast")})},dropShadow:({matchUtilities:r,theme:e})=>{r({"drop-shadow":t=>({"--tw-drop-shadow":Array.isArray(t)?t.map(i=>`drop-shadow(${i})`).join(" "):`drop-shadow(${t})`,"@defaults filter":{},filter:nt})},{values:e("dropShadow")})},grayscale:({matchUtilities:r,theme:e})=>{r({grayscale:t=>({"--tw-grayscale":`grayscale(${t})`,"@defaults filter":{},filter:nt})},{values:e("grayscale")})},hueRotate:({matchUtilities:r,theme:e})=>{r({"hue-rotate":t=>({"--tw-hue-rotate":`hue-rotate(${t})`,"@defaults filter":{},filter:nt})},{values:e("hueRotate"),supportsNegativeValues:!0})},invert:({matchUtilities:r,theme:e})=>{r({invert:t=>({"--tw-invert":`invert(${t})`,"@defaults filter":{},filter:nt})},{values:e("invert")})},saturate:({matchUtilities:r,theme:e})=>{r({saturate:t=>({"--tw-saturate":`saturate(${t})`,"@defaults filter":{},filter:nt})},{values:e("saturate")})},sepia:({matchUtilities:r,theme:e})=>{r({sepia:t=>({"--tw-sepia":`sepia(${t})`,"@defaults filter":{},filter:nt})},{values:e("sepia")})},filter:({addDefaults:r,addUtilities:e})=>{r("filter",{"--tw-blur":" ","--tw-brightness":" ","--tw-contrast":" ","--tw-grayscale":" ","--tw-hue-rotate":" ","--tw-invert":" ","--tw-saturate":" ","--tw-sepia":" ","--tw-drop-shadow":" "}),e({".filter":{"@defaults filter":{},filter:nt},".filter-none":{filter:"none"}})},backdropBlur:({matchUtilities:r,theme:e})=>{r({"backdrop-blur":t=>({"--tw-backdrop-blur":t.trim()===""?" ":`blur(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropBlur")})},backdropBrightness:({matchUtilities:r,theme:e})=>{r({"backdrop-brightness":t=>({"--tw-backdrop-brightness":`brightness(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropBrightness")})},backdropContrast:({matchUtilities:r,theme:e})=>{r({"backdrop-contrast":t=>({"--tw-backdrop-contrast":`contrast(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropContrast")})},backdropGrayscale:({matchUtilities:r,theme:e})=>{r({"backdrop-grayscale":t=>({"--tw-backdrop-grayscale":`grayscale(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropGrayscale")})},backdropHueRotate:({matchUtilities:r,theme:e})=>{r({"backdrop-hue-rotate":t=>({"--tw-backdrop-hue-rotate":`hue-rotate(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropHueRotate"),supportsNegativeValues:!0})},backdropInvert:({matchUtilities:r,theme:e})=>{r({"backdrop-invert":t=>({"--tw-backdrop-invert":`invert(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropInvert")})},backdropOpacity:({matchUtilities:r,theme:e})=>{r({"backdrop-opacity":t=>({"--tw-backdrop-opacity":`opacity(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropOpacity")})},backdropSaturate:({matchUtilities:r,theme:e})=>{r({"backdrop-saturate":t=>({"--tw-backdrop-saturate":`saturate(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropSaturate")})},backdropSepia:({matchUtilities:r,theme:e})=>{r({"backdrop-sepia":t=>({"--tw-backdrop-sepia":`sepia(${t})`,"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge})},{values:e("backdropSepia")})},backdropFilter:({addDefaults:r,addUtilities:e})=>{r("backdrop-filter",{"--tw-backdrop-blur":" ","--tw-backdrop-brightness":" ","--tw-backdrop-contrast":" ","--tw-backdrop-grayscale":" ","--tw-backdrop-hue-rotate":" ","--tw-backdrop-invert":" ","--tw-backdrop-opacity":" ","--tw-backdrop-saturate":" ","--tw-backdrop-sepia":" "}),e({".backdrop-filter":{"@defaults backdrop-filter":{},"-webkit-backdrop-filter":ge,"backdrop-filter":ge},".backdrop-filter-none":{"-webkit-backdrop-filter":"none","backdrop-filter":"none"}})},transitionProperty:({matchUtilities:r,theme:e})=>{let t=e("transitionTimingFunction.DEFAULT"),i=e("transitionDuration.DEFAULT");r({transition:n=>({"transition-property":n,...n==="none"?{}:{"transition-timing-function":t,"transition-duration":i}})},{values:e("transitionProperty")})},transitionDelay:L("transitionDelay",[["delay",["transitionDelay"]]]),transitionDuration:L("transitionDuration",[["duration",["transitionDuration"]]],{filterDefault:!0}),transitionTimingFunction:L("transitionTimingFunction",[["ease",["transitionTimingFunction"]]],{filterDefault:!0}),willChange:L("willChange",[["will-change",["will-change"]]]),contain:({addDefaults:r,addUtilities:e})=>{let t="var(--tw-contain-size) var(--tw-contain-layout) var(--tw-contain-paint) var(--tw-contain-style)";r("contain",{"--tw-contain-size":" ","--tw-contain-layout":" ","--tw-contain-paint":" ","--tw-contain-style":" "}),e({".contain-none":{contain:"none"},".contain-content":{contain:"content"},".contain-strict":{contain:"strict"},".contain-size":{"@defaults contain":{},"--tw-contain-size":"size",contain:t},".contain-inline-size":{"@defaults contain":{},"--tw-contain-size":"inline-size",contain:t},".contain-layout":{"@defaults contain":{},"--tw-contain-layout":"layout",contain:t},".contain-paint":{"@defaults contain":{},"--tw-contain-paint":"paint",contain:t},".contain-style":{"@defaults contain":{},"--tw-contain-style":"style",contain:t}})},content:L("content",[["content",["--tw-content",["content","var(--tw-content)"]]]]),forcedColorAdjust:({addUtilities:r})=>{r({".forced-color-adjust-auto":{"forced-color-adjust":"auto"},".forced-color-adjust-none":{"forced-color-adjust":"none"}})}}});function h_(r){if(r===void 0)return!1;if(r==="true"||r==="1")return!0;if(r==="false"||r==="0")return!1;if(r==="*")return!0;let e=r.split(",").map(t=>t.split(":")[0]);return e.includes("-tailwindcss")?!1:!!e.includes("tailwindcss")}var Ze,wh,vh,es,No,gt,Ti,It=P(()=>{u();Ze=typeof m!="undefined"?{NODE_ENV:"production",DEBUG:h_(m.env.DEBUG)}:{NODE_ENV:"production",DEBUG:!1},wh=new Map,vh=new Map,es=new Map,No=new Map,gt=new String("*"),Ti=Symbol("__NONE__")});function cr(r){let e=[],t=!1;for(let i=0;i0)}var xh,kh,m_,Bo=P(()=>{u();xh=new Map([["{","}"],["[","]"],["(",")"]]),kh=new Map(Array.from(xh.entries()).map(([r,e])=>[e,r])),m_=new Set(['"',"'","`"])});function pr(r){let[e]=Sh(r);return e.forEach(([t,i])=>t.removeChild(i)),r.nodes.push(...e.map(([,t])=>t)),r}function Sh(r){let e=[],t=null;for(let i of r.nodes)if(i.type==="combinator")e=e.filter(([,n])=>jo(n).includes("jumpable")),t=null;else if(i.type==="pseudo"){g_(i)?(t=i,e.push([r,i,null])):t&&y_(i,t)?e.push([r,i,t]):t=null;for(let n of i.nodes??[]){let[s,a]=Sh(n);t=a||t,e.push(...s)}}return[e,t]}function Ah(r){return r.value.startsWith("::")||Fo[r.value]!==void 0}function g_(r){return Ah(r)&&jo(r).includes("terminal")}function y_(r,e){return r.type!=="pseudo"||Ah(r)?!1:jo(e).includes("actionable")}function jo(r){return Fo[r.value]??Fo.__default__}var Fo,ts=P(()=>{u();Fo={"::after":["terminal","jumpable"],"::backdrop":["terminal","jumpable"],"::before":["terminal","jumpable"],"::cue":["terminal"],"::cue-region":["terminal"],"::first-letter":["terminal","jumpable"],"::first-line":["terminal","jumpable"],"::grammar-error":["terminal"],"::marker":["terminal","jumpable"],"::part":["terminal","actionable"],"::placeholder":["terminal","jumpable"],"::selection":["terminal","jumpable"],"::slotted":["terminal"],"::spelling-error":["terminal"],"::target-text":["terminal"],"::file-selector-button":["terminal","actionable"],"::deep":["actionable"],"::v-deep":["actionable"],"::ng-deep":["actionable"],":after":["terminal","jumpable"],":before":["terminal","jumpable"],":first-letter":["terminal","jumpable"],":first-line":["terminal","jumpable"],":where":[],":is":[],":has":[],__default__:["terminal","actionable"]}});function dr(r,{context:e,candidate:t}){let i=e?.tailwindConfig.prefix??"",n=r.map(a=>{let o=(0,st.default)().astSync(a.format);return{...a,ast:a.respectPrefix?ur(i,o):o}}),s=st.default.root({nodes:[st.default.selector({nodes:[st.default.className({value:Te(t)})]})]});for(let{ast:a}of n)[s,a]=w_(s,a),a.walkNesting(o=>o.replaceWith(...s.nodes[0].nodes)),s=a;return s}function _h(r){let e=[];for(;r.prev()&&r.prev().type!=="combinator";)r=r.prev();for(;r&&r.type!=="combinator";)e.push(r),r=r.next();return e}function b_(r){return r.sort((e,t)=>e.type==="tag"&&t.type==="class"?-1:e.type==="class"&&t.type==="tag"?1:e.type==="class"&&t.type==="pseudo"&&t.value.startsWith("::")?-1:e.type==="pseudo"&&e.value.startsWith("::")&&t.type==="class"?1:r.index(e)-r.index(t)),r}function Uo(r,e){let t=!1;r.walk(i=>{if(i.type==="class"&&i.value===e)return t=!0,!1}),t||r.remove()}function rs(r,e,{context:t,candidate:i,base:n}){let s=t?.tailwindConfig?.separator??":";n=n??ve(i,s).pop();let a=(0,st.default)().astSync(r);if(a.walkClasses(f=>{f.raws&&f.value.includes(n)&&(f.raws.value=Te((0,Ch.default)(f.raws.value)))}),a.each(f=>Uo(f,n)),a.length===0)return null;let o=Array.isArray(e)?dr(e,{context:t,candidate:i}):e;if(o===null)return a.toString();let l=st.default.comment({value:"/*__simple__*/"}),c=st.default.comment({value:"/*__simple__*/"});return a.walkClasses(f=>{if(f.value!==n)return;let d=f.parent,p=o.nodes[0].nodes;if(d.nodes.length===1){f.replaceWith(...p);return}let h=_h(f);d.insertBefore(h[0],l),d.insertAfter(h[h.length-1],c);for(let v of p)d.insertBefore(h[0],v.clone());f.remove(),h=_h(l);let b=d.index(l);d.nodes.splice(b,h.length,...b_(st.default.selector({nodes:h})).nodes),l.remove(),c.remove()}),a.walkPseudos(f=>{f.value===zo&&f.replaceWith(f.nodes)}),a.each(f=>pr(f)),a.toString()}function w_(r,e){let t=[];return r.walkPseudos(i=>{i.value===zo&&t.push({pseudo:i,value:i.nodes[0].toString()})}),e.walkPseudos(i=>{if(i.value!==zo)return;let n=i.nodes[0].toString(),s=t.find(c=>c.value===n);if(!s)return;let a=[],o=i.next();for(;o&&o.type!=="combinator";)a.push(o),o=o.next();let l=o;s.pseudo.parent.insertAfter(s.pseudo,st.default.selector({nodes:a.map(c=>c.clone())})),i.remove(),a.forEach(c=>c.remove()),l&&l.type==="combinator"&&l.remove()}),[r,e]}var st,Ch,zo,Vo=P(()=>{u();st=pe(it()),Ch=pe(Pn());fr();Gn();ts();zt();zo=":merge"});function is(r,e){let t=(0,Ho.default)().astSync(r);return t.each(i=>{i.nodes.some(s=>s.type==="combinator")&&(i.nodes=[Ho.default.pseudo({value:":is",nodes:[i.clone()]})]),pr(i)}),`${e} ${t.toString()}`}var Ho,Wo=P(()=>{u();Ho=pe(it());ts()});function Go(r){return v_.transformSync(r)}function*x_(r){let e=1/0;for(;e>=0;){let t,i=!1;if(e===1/0&&r.endsWith("]")){let a=r.indexOf("[");r[a-1]==="-"?t=a-1:r[a-1]==="/"?(t=a-1,i=!0):t=-1}else e===1/0&&r.includes("/")?(t=r.lastIndexOf("/"),i=!0):t=r.lastIndexOf("-",e);if(t<0)break;let n=r.slice(0,t),s=r.slice(i?t:t+1);e=t-1,!(n===""||s==="/")&&(yield[n,s])}}function k_(r,e){if(r.length===0||e.tailwindConfig.prefix==="")return r;for(let t of r){let[i]=t;if(i.options.respectPrefix){let n=ee.root({nodes:[t[1].clone()]}),s=t[1].raws.tailwind.classCandidate;n.walkRules(a=>{let o=s.startsWith("-");a.selector=ur(e.tailwindConfig.prefix,a.selector,o)}),t[1]=n.nodes[0]}}return r}function S_(r,e){if(r.length===0)return r;let t=[];function i(n){return n.parent&&n.parent.type==="atrule"&&n.parent.name==="keyframes"}for(let[n,s]of r){let a=ee.root({nodes:[s.clone()]});a.walkRules(o=>{if(i(o))return;let l=(0,ns.default)().astSync(o.selector);l.each(c=>Uo(c,e)),Qf(l,c=>c===e?`!${c}`:c),o.selector=l.toString(),o.walkDecls(c=>c.important=!0)}),t.push([{...n,important:!0},a.nodes[0]])}return t}function A_(r,e,t){if(e.length===0)return e;let i={modifier:null,value:Ti};{let[n,...s]=ve(r,"/");if(s.length>1&&(n=n+"/"+s.slice(0,-1).join("/"),s=s.slice(-1)),s.length&&!t.variantMap.has(r)&&(r=n,i.modifier=s[0],!we(t.tailwindConfig,"generalizedModifiers")))return[]}if(r.endsWith("]")&&!r.startsWith("[")){let n=/(.)(-?)\[(.*)\]/g.exec(r);if(n){let[,s,a,o]=n;if(s==="@"&&a==="-")return[];if(s!=="@"&&a==="")return[];r=r.replace(`${a}[${o}]`,""),i.value=o}}if(Ko(r)&&!t.variantMap.has(r)){let n=t.offsets.recordVariant(r),s=K(r.slice(1,-1)),a=ve(s,",");if(a.length>1)return[];if(!a.every(ls))return[];let o=a.map((l,c)=>[t.offsets.applyParallelOffset(n,c),Ri(l.trim())]);t.variantMap.set(r,o)}if(t.variantMap.has(r)){let n=Ko(r),s=t.variantOptions.get(r)?.[Pt]??{},a=t.variantMap.get(r).slice(),o=[],l=(()=>!(n||s.respectPrefix===!1))();for(let[c,f]of e){if(c.layer==="user")continue;let d=ee.root({nodes:[f.clone()]});for(let[p,h,b]of a){let w=function(){v.raws.neededBackup||(v.raws.neededBackup=!0,v.walkRules(T=>T.raws.originalSelector=T.selector))},k=function(T){return w(),v.each(B=>{B.type==="rule"&&(B.selectors=B.selectors.map(N=>T({get className(){return Go(N)},selector:N})))}),v},v=(b??d).clone(),y=[],S=h({get container(){return w(),v},separator:t.tailwindConfig.separator,modifySelectors:k,wrap(T){let B=v.nodes;v.removeAll(),T.append(B),v.append(T)},format(T){y.push({format:T,respectPrefix:l})},args:i});if(Array.isArray(S)){for(let[T,B]of S.entries())a.push([t.offsets.applyParallelOffset(p,T),B,v.clone()]);continue}if(typeof S=="string"&&y.push({format:S,respectPrefix:l}),S===null)continue;v.raws.neededBackup&&(delete v.raws.neededBackup,v.walkRules(T=>{let B=T.raws.originalSelector;if(!B||(delete T.raws.originalSelector,B===T.selector))return;let N=T.selector,R=(0,ns.default)(F=>{F.walkClasses(Y=>{Y.value=`${r}${t.tailwindConfig.separator}${Y.value}`})}).processSync(B);y.push({format:N.replace(R,"&"),respectPrefix:l}),T.selector=B})),v.nodes[0].raws.tailwind={...v.nodes[0].raws.tailwind,parentLayer:c.layer};let E=[{...c,sort:t.offsets.applyVariantOffset(c.sort,p,Object.assign(i,t.variantOptions.get(r))),collectedFormats:(c.collectedFormats??[]).concat(y)},v.nodes[0]];o.push(E)}}return o}return[]}function Qo(r,e,t={}){return!ke(r)&&!Array.isArray(r)?[[r],t]:Array.isArray(r)?Qo(r[0],e,r[1]):(e.has(r)||e.set(r,lr(r)),[e.get(r),t])}function __(r){return C_.test(r)}function E_(r){if(!r.includes("://"))return!1;try{let e=new URL(r);return e.scheme!==""&&e.host!==""}catch(e){return!1}}function Eh(r){let e=!0;return r.walkDecls(t=>{if(!Oh(t.prop,t.value))return e=!1,!1}),e}function Oh(r,e){if(E_(`${r}:${e}`))return!1;try{return ee.parse(`a{${r}:${e}}`).toResult(),!0}catch(t){return!1}}function O_(r,e){let[,t,i]=r.match(/^\[([a-zA-Z0-9-_]+):(\S+)\]$/)??[];if(i===void 0||!__(t)||!cr(i))return null;let n=K(i,{property:t});return Oh(t,n)?[[{sort:e.offsets.arbitraryProperty(r),layer:"utilities",options:{respectImportant:!0}},()=>({[$o(r)]:{[t]:n}})]]:null}function*T_(r,e){e.candidateRuleMap.has(r)&&(yield[e.candidateRuleMap.get(r),"DEFAULT"]),yield*function*(o){o!==null&&(yield[o,"DEFAULT"])}(O_(r,e));let t=r,i=!1,n=e.tailwindConfig.prefix,s=n.length,a=t.startsWith(n)||t.startsWith(`-${n}`);t[s]==="-"&&a&&(i=!0,t=n+t.slice(s+1)),i&&e.candidateRuleMap.has(t)&&(yield[e.candidateRuleMap.get(t),"-DEFAULT"]);for(let[o,l]of x_(t))e.candidateRuleMap.has(o)&&(yield[e.candidateRuleMap.get(o),i?`-${l}`:l])}function R_(r,e){return r===gt?[gt]:ve(r,e)}function*P_(r,e){for(let t of r)t[1].raws.tailwind={...t[1].raws.tailwind,classCandidate:e,preserveSource:t[0].options?.preserveSource??!1},yield t}function*Yo(r,e){let t=e.tailwindConfig.separator,[i,...n]=R_(r,t).reverse(),s=!1;i.startsWith("!")&&(s=!0,i=i.slice(1));for(let a of T_(i,e)){let o=[],l=new Map,[c,f]=a,d=c.length===1;for(let[p,h]of c){let b=[];if(typeof h=="function")for(let v of[].concat(h(f,{isOnlyPlugin:d}))){let[y,w]=Qo(v,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}else if(f==="DEFAULT"||f==="-DEFAULT"){let v=h,[y,w]=Qo(v,e.postCssNodeCache);for(let k of y)b.push([{...p,options:{...p.options,...w}},k])}if(b.length>0){let v=Array.from(ta(p.options?.types??[],f,p.options??{},e.tailwindConfig)).map(([y,w])=>w);v.length>0&&l.set(b,v),o.push(b)}}if(Ko(f)){if(o.length>1){let b=function(y){return y.length===1?y[0]:y.find(w=>{let k=l.get(w);return w.some(([{options:S},E])=>Eh(E)?S.types.some(({type:T,preferOnConflict:B})=>k.includes(T)&&B):!1)})},[p,h]=o.reduce((y,w)=>(w.some(([{options:S}])=>S.types.some(({type:E})=>E==="any"))?y[0].push(w):y[1].push(w),y),[[],[]]),v=b(h)??b(p);if(v)o=[v];else{let y=o.map(k=>new Set([...l.get(k)??[]]));for(let k of y)for(let S of k){let E=!1;for(let T of y)k!==T&&T.has(S)&&(T.delete(S),E=!0);E&&k.delete(S)}let w=[];for(let[k,S]of y.entries())for(let E of S){let T=o[k].map(([,B])=>B).flat().map(B=>B.toString().split(` +`).slice(1,-1).map(N=>N.trim()).map(N=>` ${N}`).join(` +`)).join(` + +`);w.push(` Use \`${r.replace("[",`[${E}:`)}\` for \`${T.trim()}\``);break}G.warn([`The class \`${r}\` is ambiguous and matches multiple utilities.`,...w,`If this is content and not a class, replace it with \`${r.replace("[","[").replace("]","]")}\` to silence this warning.`]);continue}}o=o.map(p=>p.filter(h=>Eh(h[1])))}o=o.flat(),o=Array.from(P_(o,i)),o=k_(o,e),s&&(o=S_(o,i));for(let p of n)o=A_(p,o,e);for(let p of o)p[1].raws.tailwind={...p[1].raws.tailwind,candidate:r},p=I_(p,{context:e,candidate:r}),p!==null&&(yield p)}}function I_(r,{context:e,candidate:t}){if(!r[0].collectedFormats)return r;let i=!0,n;try{n=dr(r[0].collectedFormats,{context:e,candidate:t})}catch{return null}let s=ee.root({nodes:[r[1].clone()]});return s.walkRules(a=>{if(!ss(a))try{let o=rs(a.selector,n,{candidate:t,context:e});if(o===null){a.remove();return}a.selector=o}catch{return i=!1,!1}}),!i||s.nodes.length===0?null:(r[1]=s.nodes[0],r)}function ss(r){return r.parent&&r.parent.type==="atrule"&&r.parent.name==="keyframes"}function D_(r){if(r===!0)return e=>{ss(e)||e.walkDecls(t=>{t.parent.type==="rule"&&!ss(t.parent)&&(t.important=!0)})};if(typeof r=="string")return e=>{ss(e)||(e.selectors=e.selectors.map(t=>is(t,r)))}}function as(r,e,t=!1){let i=[],n=D_(e.tailwindConfig.important);for(let s of r){if(e.notClassCache.has(s))continue;if(e.candidateRuleCache.has(s)){i=i.concat(Array.from(e.candidateRuleCache.get(s)));continue}let a=Array.from(Yo(s,e));if(a.length===0){e.notClassCache.add(s);continue}e.classCache.set(s,a);let o=e.candidateRuleCache.get(s)??new Set;e.candidateRuleCache.set(s,o);for(let l of a){let[{sort:c,options:f},d]=l;if(f.respectImportant&&n){let h=ee.root({nodes:[d.clone()]});h.walkRules(n),d=h.nodes[0]}let p=[c,t?d.clone():d];o.add(p),e.ruleCache.add(p),i.push(p)}}return i}function Ko(r){return r.startsWith("[")&&r.endsWith("]")}var ns,v_,C_,os=P(()=>{u();Ot();ns=pe(it());qo();Kt();Gn();Fr();Be();It();Vo();Lo();Br();Oi();Bo();zt();ct();Wo();v_=(0,ns.default)(r=>r.first.filter(({type:e})=>e==="class").pop().value);C_=/^[a-z_-]/});var Th,Rh=P(()=>{u();Th={}});function q_(r){try{return Th.createHash("md5").update(r,"utf-8").digest("binary")}catch(e){return""}}function Ph(r,e){let t=e.toString();if(!t.includes("@tailwind"))return!1;let i=No.get(r),n=q_(t),s=i!==n;return No.set(r,n),s}var Ih=P(()=>{u();Rh();It()});function us(r){return(r>0n)-(r<0n)}var Dh=P(()=>{u()});function qh(r,e){let t=0n,i=0n;for(let[n,s]of e)r&n&&(t=t|n,i=i|s);return r&~t|i}var $h=P(()=>{u()});function Lh(r){let e=null;for(let t of r)e=e??t,e=e>t?e:t;return e}function $_(r,e){let t=r.length,i=e.length,n=t{u();Dh();$h();Xo=class{constructor(){this.offsets={defaults:0n,base:0n,components:0n,utilities:0n,variants:0n,user:0n},this.layerPositions={defaults:0n,base:1n,components:2n,utilities:3n,user:4n,variants:5n},this.reservedVariantBits=0n,this.variantOffsets=new Map}create(e){return{layer:e,parentLayer:e,arbitrary:0n,variants:0n,parallelIndex:0n,index:this.offsets[e]++,propertyOffset:0n,property:"",options:[]}}arbitraryProperty(e){return{...this.create("utilities"),arbitrary:1n,property:e}}forVariant(e,t=0){let i=this.variantOffsets.get(e);if(i===void 0)throw new Error(`Cannot find offset for unknown variant ${e}`);return{...this.create("variants"),variants:i<n.startsWith("[")).sort(([n],[s])=>$_(n,s)),t=e.map(([,n])=>n).sort((n,s)=>us(n-s));return e.map(([,n],s)=>[n,t[s]]).filter(([n,s])=>n!==s)}remapArbitraryVariantOffsets(e){let t=this.recalculateVariantOffsets();return t.length===0?e:e.map(i=>{let[n,s]=i;return n={...n,variants:qh(n.variants,t)},[n,s]})}sortArbitraryProperties(e){let t=new Set;for(let[a]of e)a.arbitrary===1n&&t.add(a.property);if(t.size===0)return e;let i=Array.from(t).sort(),n=new Map,s=1n;for(let a of i)n.set(a,s++);return e.map(a=>{let[o,l]=a;return o={...o,propertyOffset:n.get(o.property)??0n},[o,l]})}sort(e){return e=this.remapArbitraryVariantOffsets(e),e=this.sortArbitraryProperties(e),e.sort(([t],[i])=>us(this.compare(t,i)))}}});function tl(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function Bh({type:r="any",...e}){let t=[].concat(r);return{...e,types:t.map(i=>Array.isArray(i)?{type:i[0],...i[1]}:{type:i,preferOnConflict:!1})}}function L_(r){let e=[],t="",i=0;for(let n=0;n0&&e.push(t.trim()),e=e.filter(n=>n!==""),e}function M_(r,e,{before:t=[]}={}){if(t=[].concat(t),t.length<=0){r.push(e);return}let i=r.length-1;for(let n of t){let s=r.indexOf(n);s!==-1&&(i=Math.min(i,s))}r.splice(i,0,e)}function Fh(r){return Array.isArray(r)?r.flatMap(e=>!Array.isArray(e)&&!ke(e)?e:lr(e)):Fh([r])}function N_(r,e){return(0,Zo.default)(i=>{let n=[];return e&&e(i),i.walkClasses(s=>{n.push(s.value)}),n}).transformSync(r)}function B_(r){r.walkPseudos(e=>{e.value===":not"&&e.remove()})}function F_(r,e={containsNonOnDemandable:!1},t=0){let i=[],n=[];r.type==="rule"?n.push(...r.selectors):r.type==="atrule"&&r.walkRules(s=>n.push(...s.selectors));for(let s of n){let a=N_(s,B_);a.length===0&&(e.containsNonOnDemandable=!0);for(let o of a)i.push(o)}return t===0?[e.containsNonOnDemandable||i.length===0,i]:i}function fs(r){return Fh(r).flatMap(e=>{let t=new Map,[i,n]=F_(e);return i&&n.unshift(gt),n.map(s=>(t.has(e)||t.set(e,e),[s,t.get(e)]))})}function ls(r){return r.startsWith("@")||r.includes("&")}function Ri(r){r=r.replace(/\n+/g,"").replace(/\s{1,}/g," ").trim();let e=L_(r).map(t=>{if(!t.startsWith("@"))return({format:s})=>s(t);let[,i,n]=/@(\S*)( .+|[({].*)?/g.exec(t);return({wrap:s})=>s(ee.atRule({name:i,params:n?.trim()??""}))}).reverse();return t=>{for(let i of e)i(t)}}function j_(r,e,{variantList:t,variantMap:i,offsets:n,classList:s}){function a(p,h){return p?(0,Nh.default)(r,p,h):r}function o(p){return ur(r.prefix,p)}function l(p,h){return p===gt?gt:h.respectPrefix?e.tailwindConfig.prefix+p:p}function c(p,h,b={}){let v=kt(p),y=a(["theme",...v],h);return mt(v[0])(y,b)}let f=0,d={postcss:ee,prefix:o,e:Te,config:a,theme:c,corePlugins:p=>Array.isArray(r.corePlugins)?r.corePlugins.includes(p):a(["corePlugins",p],!0),variants:()=>[],addBase(p){for(let[h,b]of fs(p)){let v=l(h,{}),y=n.create("base");e.candidateRuleMap.has(v)||e.candidateRuleMap.set(v,[]),e.candidateRuleMap.get(v).push([{sort:y,layer:"base"},b])}},addDefaults(p,h){let b={[`@defaults ${p}`]:h};for(let[v,y]of fs(b)){let w=l(v,{});e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("defaults"),layer:"defaults"},y])}},addComponents(p,h){h=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!1},Array.isArray(h)?{}:h);for(let[v,y]of fs(p)){let w=l(v,h);s.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("components"),layer:"components",options:h},y])}},addUtilities(p,h){h=Object.assign({},{preserveSource:!1,respectPrefix:!0,respectImportant:!0},Array.isArray(h)?{}:h);for(let[v,y]of fs(p)){let w=l(v,h);s.add(w),e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push([{sort:n.create("utilities"),layer:"utilities",options:h},y])}},matchUtilities:function(p,h){h=Bh({...{respectPrefix:!0,respectImportant:!0,modifiers:!1},...h});let v=n.create("utilities");for(let y in p){let S=function(T,{isOnlyPlugin:B}){let[N,R,F]=ea(h.types,T,h,r);if(N===void 0)return[];if(!h.types.some(({type:U})=>U===R))if(B)G.warn([`Unnecessary typehint \`${R}\` in \`${y}-${T}\`.`,`You can safely update it to \`${y}-${T.replace(R+":","")}\`.`]);else return[];if(!cr(N))return[];let Y={get modifier(){return h.modifiers||G.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),F}},_=we(r,"generalizedModifiers");return[].concat(_?k(N,Y):k(N)).filter(Boolean).map(U=>({[Qn(y,T)]:U}))},w=l(y,h),k=p[y];s.add([w,h]);let E=[{sort:v,layer:"utilities",options:h},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(E)}},matchComponents:function(p,h){h=Bh({...{respectPrefix:!0,respectImportant:!1,modifiers:!1},...h});let v=n.create("components");for(let y in p){let S=function(T,{isOnlyPlugin:B}){let[N,R,F]=ea(h.types,T,h,r);if(N===void 0)return[];if(!h.types.some(({type:U})=>U===R))if(B)G.warn([`Unnecessary typehint \`${R}\` in \`${y}-${T}\`.`,`You can safely update it to \`${y}-${T.replace(R+":","")}\`.`]);else return[];if(!cr(N))return[];let Y={get modifier(){return h.modifiers||G.warn(`modifier-used-without-options-for-${y}`,["Your plugin must set `modifiers: true` in its options to support modifiers."]),F}},_=we(r,"generalizedModifiers");return[].concat(_?k(N,Y):k(N)).filter(Boolean).map(U=>({[Qn(y,T)]:U}))},w=l(y,h),k=p[y];s.add([w,h]);let E=[{sort:v,layer:"components",options:h},S];e.candidateRuleMap.has(w)||e.candidateRuleMap.set(w,[]),e.candidateRuleMap.get(w).push(E)}},addVariant(p,h,b={}){h=[].concat(h).map(v=>{if(typeof v!="string")return(y={})=>{let{args:w,modifySelectors:k,container:S,separator:E,wrap:T,format:B}=y,N=v(Object.assign({modifySelectors:k,container:S,separator:E},b.type===Jo.MatchVariant&&{args:w,wrap:T,format:B}));if(typeof N=="string"&&!ls(N))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Array.isArray(N)?N.filter(R=>typeof R=="string").map(R=>Ri(R)):N&&typeof N=="string"&&Ri(N)(y)};if(!ls(v))throw new Error(`Your custom variant \`${p}\` has an invalid format string. Make sure it's an at-rule or contains a \`&\` placeholder.`);return Ri(v)}),M_(t,p,b),i.set(p,h),e.variantOptions.set(p,b)},matchVariant(p,h,b){let v=b?.id??++f,y=p==="@",w=we(r,"generalizedModifiers");for(let[S,E]of Object.entries(b?.values??{}))S!=="DEFAULT"&&d.addVariant(y?`${p}${S}`:`${p}-${S}`,({args:T,container:B})=>h(E,w?{modifier:T?.modifier,container:B}:{container:B}),{...b,value:E,id:v,type:Jo.MatchVariant,variantInfo:el.Base});let k="DEFAULT"in(b?.values??{});d.addVariant(p,({args:S,container:E})=>S?.value===Ti&&!k?null:h(S?.value===Ti?b.values.DEFAULT:S?.value??(typeof S=="string"?S:""),w?{modifier:S?.modifier,container:E}:{container:E}),{...b,id:v,type:Jo.MatchVariant,variantInfo:el.Dynamic})}};return d}function cs(r){return rl.has(r)||rl.set(r,new Map),rl.get(r)}function jh(r,e){let t=!1,i=new Map;for(let n of r){if(!n)continue;let s=oa.parse(n),a=s.hash?s.href.replace(s.hash,""):s.href;a=s.search?a.replace(s.search,""):a;let o=be.statSync(decodeURIComponent(a),{throwIfNoEntry:!1})?.mtimeMs;!o||((!e.has(n)||o>e.get(n))&&(t=!0),i.set(n,o))}return[t,i]}function zh(r){r.walkAtRules(e=>{["responsive","variants"].includes(e.name)&&(zh(e),e.before(e.nodes),e.remove())})}function z_(r){let e=[];return r.each(t=>{t.type==="atrule"&&["responsive","variants"].includes(t.name)&&(t.name="layer",t.params="utilities")}),r.walkAtRules("layer",t=>{if(zh(t),t.params==="base"){for(let i of t.nodes)e.push(function({addBase:n}){n(i,{respectPrefix:!1})});t.remove()}else if(t.params==="components"){for(let i of t.nodes)e.push(function({addComponents:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}else if(t.params==="utilities"){for(let i of t.nodes)e.push(function({addUtilities:n}){n(i,{respectPrefix:!1,preserveSource:!0})});t.remove()}}),e}function U_(r,e){let t=Object.entries({...se,...yh}).map(([l,c])=>r.tailwindConfig.corePlugins.includes(l)?c:null).filter(Boolean),i=r.tailwindConfig.plugins.map(l=>(l.__isOptionsFunction&&(l=l()),typeof l=="function"?l:l.handler)),n=z_(e),s=[se.childVariant,se.pseudoElementVariants,se.pseudoClassVariants,se.hasVariants,se.ariaVariants,se.dataVariants],a=[se.supportsVariants,se.reducedMotionVariants,se.prefersContrastVariants,se.screenVariants,se.orientationVariants,se.directionVariants,se.darkVariants,se.forcedColorsVariants,se.printVariant];return(r.tailwindConfig.darkMode==="class"||Array.isArray(r.tailwindConfig.darkMode)&&r.tailwindConfig.darkMode[0]==="class")&&(a=[se.supportsVariants,se.reducedMotionVariants,se.prefersContrastVariants,se.darkVariants,se.screenVariants,se.orientationVariants,se.directionVariants,se.forcedColorsVariants,se.printVariant]),[...t,...s,...i,...a,...n]}function V_(r,e){let t=[],i=new Map;e.variantMap=i;let n=new Xo;e.offsets=n;let s=new Set,a=j_(e.tailwindConfig,e,{variantList:t,variantMap:i,offsets:n,classList:s});for(let f of r)if(Array.isArray(f))for(let d of f)d(a);else f?.(a);n.recordVariants(t,f=>i.get(f).length);for(let[f,d]of i.entries())e.variantMap.set(f,d.map((p,h)=>[n.forVariant(f,h),p]));let o=(e.tailwindConfig.safelist??[]).filter(Boolean);if(o.length>0){let f=[];for(let d of o){if(typeof d=="string"){e.changedContent.push({content:d,extension:"html"});continue}if(d instanceof RegExp){G.warn("root-regex",["Regular expressions in `safelist` work differently in Tailwind CSS v3.0.","Update your `safelist` configuration to eliminate this warning.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"]);continue}f.push(d)}if(f.length>0){let d=new Map,p=e.tailwindConfig.prefix.length,h=f.some(b=>b.pattern.source.includes("!"));for(let b of s){let v=Array.isArray(b)?(()=>{let[y,w]=b,S=Object.keys(w?.values??{}).map(E=>Ei(y,E));return w?.supportsNegativeValues&&(S=[...S,...S.map(E=>"-"+E)],S=[...S,...S.map(E=>E.slice(0,p)+"-"+E.slice(p))]),w.types.some(({type:E})=>E==="color")&&(S=[...S,...S.flatMap(E=>Object.keys(e.tailwindConfig.theme.opacity).map(T=>`${E}/${T}`))]),h&&w?.respectImportant&&(S=[...S,...S.map(E=>"!"+E)]),S})():[b];for(let y of v)for(let{pattern:w,variants:k=[]}of f)if(w.lastIndex=0,d.has(w)||d.set(w,0),!!w.test(y)){d.set(w,d.get(w)+1),e.changedContent.push({content:y,extension:"html"});for(let S of k)e.changedContent.push({content:S+e.tailwindConfig.separator+y,extension:"html"})}}for(let[b,v]of d.entries())v===0&&G.warn([`The safelist pattern \`${b}\` doesn't match any Tailwind CSS classes.`,"Fix this pattern or remove it from your `safelist` configuration.","https://tailwindcss.com/docs/content-configuration#safelisting-classes"])}}let l=[].concat(e.tailwindConfig.darkMode??"media")[1]??"dark",c=[tl(e,l),tl(e,"group"),tl(e,"peer")];e.getClassOrder=function(d){let p=[...d].sort((y,w)=>y===w?0:y[y,null])),b=as(new Set(p),e,!0);b=e.offsets.sort(b);let v=BigInt(c.length);for(let[,y]of b){let w=y.raws.tailwind.candidate;h.set(w,h.get(w)??v++)}return d.map(y=>{let w=h.get(y)??null,k=c.indexOf(y);return w===null&&k!==-1&&(w=BigInt(k)),[y,w]})},e.getClassList=function(d={}){let p=[];for(let h of s)if(Array.isArray(h)){let[b,v]=h,y=[],w=Object.keys(v?.modifiers??{});v?.types?.some(({type:E})=>E==="color")&&w.push(...Object.keys(e.tailwindConfig.theme.opacity??{}));let k={modifiers:w},S=d.includeMetadata&&w.length>0;for(let[E,T]of Object.entries(v?.values??{})){if(T==null)continue;let B=Ei(b,E);if(p.push(S?[B,k]:B),v?.supportsNegativeValues&&xt(T)){let N=Ei(b,`-${E}`);y.push(S?[N,k]:N)}}p.push(...y)}else p.push(h);return p},e.getVariants=function(){let d=Math.random().toString(36).substring(7).toUpperCase(),p=[];for(let[h,b]of e.variantOptions.entries())b.variantInfo!==el.Base&&p.push({name:h,isArbitrary:b.type===Symbol.for("MATCH_VARIANT"),values:Object.keys(b.values??{}),hasDash:h!=="@",selectors({modifier:v,value:y}={}){let w=`TAILWINDPLACEHOLDER${d}`,k=ee.rule({selector:`.${w}`}),S=ee.root({nodes:[k.clone()]}),E=S.toString(),T=(e.variantMap.get(h)??[]).flatMap(([le,A])=>A),B=[];for(let le of T){let A=[],C={args:{modifier:v,value:b.values?.[y]??y},separator:e.tailwindConfig.separator,modifySelectors(V){return S.each(Ee=>{Ee.type==="rule"&&(Ee.selectors=Ee.selectors.map(Ie=>V({get className(){return Go(Ie)},selector:Ie})))}),S},format(V){A.push(V)},wrap(V){A.push(`@${V.name} ${V.params} { & }`)},container:S},he=le(C);if(A.length>0&&B.push(A),Array.isArray(he))for(let V of he)A=[],V(C),B.push(A)}let N=[],R=S.toString();E!==R&&(S.walkRules(le=>{let A=le.selector,C=(0,Zo.default)(he=>{he.walkClasses(V=>{V.value=`${h}${e.tailwindConfig.separator}${V.value}`})}).processSync(A);N.push(A.replace(C,"&").replace(w,"&"))}),S.walkAtRules(le=>{N.push(`@${le.name} (${le.params}) { & }`)}));let F=!(y in(b.values??{})),Y=b[Pt]??{},_=(()=>!(F||Y.respectPrefix===!1))();B=B.map(le=>le.map(A=>({format:A,respectPrefix:_}))),N=N.map(le=>({format:le,respectPrefix:_}));let Q={candidate:w,context:e},U=B.map(le=>rs(`.${w}`,dr(le,Q),Q).replace(`.${w}`,"&").replace("{ & }","").trim());return N.length>0&&U.push(dr(N,Q).toString().replace(`.${w}`,"&")),U}});return p}}function Uh(r,e){!r.classCache.has(e)||(r.notClassCache.add(e),r.classCache.delete(e),r.applyClassCache.delete(e),r.candidateRuleMap.delete(e),r.candidateRuleCache.delete(e),r.stylesheetCache=null)}function H_(r,e){let t=e.raws.tailwind.candidate;if(!!t){for(let i of r.ruleCache)i[1].raws.tailwind.candidate===t&&r.ruleCache.delete(i);Uh(r,t)}}function il(r,e=[],t=ee.root()){let i={disposables:[],ruleCache:new Set,candidateRuleCache:new Map,classCache:new Map,applyClassCache:new Map,notClassCache:new Set(r.blocklist??[]),postCssNodeCache:new Map,candidateRuleMap:new Map,tailwindConfig:r,changedContent:e,variantMap:new Map,stylesheetCache:null,variantOptions:new Map,markInvalidUtilityCandidate:s=>Uh(i,s),markInvalidUtilityNode:s=>H_(i,s)},n=U_(i,t);return V_(n,i),i}function Vh(r,e,t,i,n,s){let a=e.opts.from,o=i!==null;Ze.DEBUG&&console.log("Source path:",a);let l;if(o&&hr.has(a))l=hr.get(a);else if(Pi.has(n)){let p=Pi.get(n);Dt.get(p).add(a),hr.set(a,p),l=p}let c=Ph(a,r);if(l){let[p,h]=jh([...s],cs(l));if(!p&&!c)return[l,!1,h]}if(hr.has(a)){let p=hr.get(a);if(Dt.has(p)&&(Dt.get(p).delete(a),Dt.get(p).size===0)){Dt.delete(p);for(let[h,b]of Pi)b===p&&Pi.delete(h);for(let h of p.disposables.splice(0))h(p)}}Ze.DEBUG&&console.log("Setting up new context...");let f=il(t,[],r);Object.assign(f,{userConfigPath:i});let[,d]=jh([...s],cs(f));return Pi.set(n,f),hr.set(a,f),Dt.has(f)||Dt.set(f,new Set),Dt.get(f).add(a),[f,!0,d]}var Nh,Zo,Pt,Jo,el,rl,hr,Pi,Dt,Oi=P(()=>{u();ft();la();Ot();Nh=pe(Ra()),Zo=pe(it());Ci();qo();Gn();Kt();fr();Lo();Fr();bh();It();It();Yi();Be();Gi();Bo();os();Ih();Mh();ct();Vo();Pt=Symbol(),Jo={AddVariant:Symbol.for("ADD_VARIANT"),MatchVariant:Symbol.for("MATCH_VARIANT")},el={Base:1<<0,Dynamic:1<<1};rl=new WeakMap;hr=wh,Pi=vh,Dt=es});function nl(r){return r.ignore?[]:r.glob?m.env.ROLLUP_WATCH==="true"?[{type:"dependency",file:r.base}]:[{type:"dir-dependency",dir:r.base,glob:r.glob}]:[{type:"dependency",file:r.base}]}var Hh=P(()=>{u()});function Wh(r,e){return{handler:r,config:e}}var Gh,Qh=P(()=>{u();Wh.withOptions=function(r,e=()=>({})){let t=function(i){return{__options:i,handler:r(i),config:e(i)}};return t.__isOptionsFunction=!0,t.__pluginFunction=r,t.__configFunction=e,t};Gh=Wh});var sl={};Ge(sl,{default:()=>W_});var W_,al=P(()=>{u();Qh();W_=Gh});var Kh=x((z4,Yh)=>{u();var G_=(al(),sl).default,Q_={overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical"},Y_=G_(function({matchUtilities:r,addUtilities:e,theme:t,variants:i}){let n=t("lineClamp");r({"line-clamp":s=>({...Q_,"-webkit-line-clamp":`${s}`})},{values:n}),e([{".line-clamp-none":{"-webkit-line-clamp":"unset"}}],i("lineClamp"))},{theme:{lineClamp:{1:"1",2:"2",3:"3",4:"4",5:"5",6:"6"}},variants:{lineClamp:["responsive"]}});Yh.exports=Y_});function ol(r){r.content.files.length===0&&G.warn("content-problems",["The `content` option in your Tailwind CSS configuration is missing or empty.","Configure your content sources or your generated CSS will be missing styles.","https://tailwindcss.com/docs/content-configuration"]);try{let e=Kh();r.plugins.includes(e)&&(G.warn("line-clamp-in-core",["As of Tailwind CSS v3.3, the `@tailwindcss/line-clamp` plugin is now included by default.","Remove it from the `plugins` array in your configuration to eliminate this warning."]),r.plugins=r.plugins.filter(t=>t!==e))}catch{}return r}var Xh=P(()=>{u();Be()});var Zh,Jh=P(()=>{u();Zh=()=>!1});var ps,em=P(()=>{u();ps={sync:r=>[].concat(r),generateTasks:r=>[{dynamic:!1,base:".",negative:[],positive:[].concat(r),patterns:[].concat(r)}],escapePath:r=>r}});var ll,tm=P(()=>{u();ll=r=>r});var rm,im=P(()=>{u();rm=()=>""});function nm(r){let e=r,t=rm(r);return t!=="."&&(e=r.substr(t.length),e.charAt(0)==="/"&&(e=e.substr(1))),e.substr(0,2)==="./"?e=e.substr(2):e.charAt(0)==="/"&&(e=e.substr(1)),{base:t,glob:e}}var sm=P(()=>{u();im()});var ds=x(Ve=>{u();"use strict";Ve.isInteger=r=>typeof r=="number"?Number.isInteger(r):typeof r=="string"&&r.trim()!==""?Number.isInteger(Number(r)):!1;Ve.find=(r,e)=>r.nodes.find(t=>t.type===e);Ve.exceedsLimit=(r,e,t=1,i)=>i===!1||!Ve.isInteger(r)||!Ve.isInteger(e)?!1:(Number(e)-Number(r))/Number(t)>=i;Ve.escapeNode=(r,e=0,t)=>{let i=r.nodes[e];!i||(t&&i.type===t||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};Ve.encloseBrace=r=>r.type!=="brace"?!1:r.commas>>0+r.ranges>>0==0?(r.invalid=!0,!0):!1;Ve.isInvalidBrace=r=>r.type!=="brace"?!1:r.invalid===!0||r.dollar?!0:r.commas>>0+r.ranges>>0==0||r.open!==!0||r.close!==!0?(r.invalid=!0,!0):!1;Ve.isOpenOrClose=r=>r.type==="open"||r.type==="close"?!0:r.open===!0||r.close===!0;Ve.reduce=r=>r.reduce((e,t)=>(t.type==="text"&&e.push(t.value),t.type==="range"&&(t.type="text"),e),[]);Ve.flatten=(...r)=>{let e=[],t=i=>{for(let n=0;n{u();"use strict";var am=ds();om.exports=(r,e={})=>{let t=(i,n={})=>{let s=e.escapeInvalid&&am.isInvalidBrace(n),a=i.invalid===!0&&e.escapeInvalid===!0,o="";if(i.value)return(s||a)&&am.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)o+=t(l);return o};return t(r)}});var um=x((J4,lm)=>{u();"use strict";lm.exports=function(r){return typeof r=="number"?r-r==0:typeof r=="string"&&r.trim()!==""?Number.isFinite?Number.isFinite(+r):isFinite(+r):!1}});var bm=x((e6,ym)=>{u();"use strict";var fm=um(),Wt=(r,e,t)=>{if(fm(r)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||r===e)return String(r);if(fm(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i={relaxZeros:!0,...t};typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),a=String(i.capture),o=String(i.wrap),l=r+":"+e+"="+n+s+a+o;if(Wt.cache.hasOwnProperty(l))return Wt.cache[l].result;let c=Math.min(r,e),f=Math.max(r,e);if(Math.abs(c-f)===1){let v=r+"|"+e;return i.capture?`(${v})`:i.wrap===!1?v:`(?:${v})`}let d=gm(r)||gm(e),p={min:r,max:e,a:c,b:f},h=[],b=[];if(d&&(p.isPadded=d,p.maxLen=String(p.max).length),c<0){let v=f<0?Math.abs(f):1;b=cm(v,Math.abs(c),p,i),c=p.a=0}return f>=0&&(h=cm(c,f,p,i)),p.negatives=b,p.positives=h,p.result=K_(b,h,i),i.capture===!0?p.result=`(${p.result})`:i.wrap!==!1&&h.length+b.length>1&&(p.result=`(?:${p.result})`),Wt.cache[l]=p,p.result};function K_(r,e,t){let i=ul(r,e,"-",!1,t)||[],n=ul(e,r,"",!1,t)||[],s=ul(r,e,"-?",!0,t)||[];return i.concat(s).concat(n).join("|")}function X_(r,e){let t=1,i=1,n=dm(r,t),s=new Set([e]);for(;r<=n&&n<=e;)s.add(n),t+=1,n=dm(r,t);for(n=hm(e+1,i)-1;r1&&o.count.pop(),o.count.push(f.count[0]),o.string=o.pattern+mm(o.count),a=c+1;continue}t.isPadded&&(d=rE(c,t,i)),f.string=d+f.pattern+mm(f.count),s.push(f),a=c+1,o=f}return s}function ul(r,e,t,i,n){let s=[];for(let a of r){let{string:o}=a;!i&&!pm(e,"string",o)&&s.push(t+o),i&&pm(e,"string",o)&&s.push(t+o)}return s}function J_(r,e){let t=[];for(let i=0;ie?1:e>r?-1:0}function pm(r,e,t){return r.some(i=>i[e]===t)}function dm(r,e){return Number(String(r).slice(0,-e)+"9".repeat(e))}function hm(r,e){return r-r%Math.pow(10,e)}function mm(r){let[e=0,t=""]=r;return t||e>1?`{${e+(t?","+t:"")}}`:""}function tE(r,e,t){return`[${r}${e-r==1?"":"-"}${e}]`}function gm(r){return/^-?(0+)\d/.test(r)}function rE(r,e,t){if(!e.isPadded)return r;let i=Math.abs(e.maxLen-String(r).length),n=t.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}Wt.cache={};Wt.clearCache=()=>Wt.cache={};ym.exports=Wt});var pl=x((t6,Cm)=>{u();"use strict";var iE=(Fn(),Bn),wm=bm(),vm=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),nE=r=>e=>r===!0?Number(e):String(e),fl=r=>typeof r=="number"||typeof r=="string"&&r!=="",Ii=r=>Number.isInteger(+r),cl=r=>{let e=`${r}`,t=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++t]==="0";);return t>0},sE=(r,e,t)=>typeof r=="string"||typeof e=="string"?!0:t.stringify===!0,aE=(r,e,t)=>{if(e>0){let i=r[0]==="-"?"-":"";i&&(r=r.slice(1)),r=i+r.padStart(i?e-1:e,"0")}return t===!1?String(r):r},ms=(r,e)=>{let t=r[0]==="-"?"-":"";for(t&&(r=r.slice(1),e--);r.length{r.negatives.sort((o,l)=>ol?1:0),r.positives.sort((o,l)=>ol?1:0);let i=e.capture?"":"?:",n="",s="",a;return r.positives.length&&(n=r.positives.map(o=>ms(String(o),t)).join("|")),r.negatives.length&&(s=`-(${i}${r.negatives.map(o=>ms(String(o),t)).join("|")})`),n&&s?a=`${n}|${s}`:a=n||s,e.wrap?`(${i}${a})`:a},xm=(r,e,t,i)=>{if(t)return wm(r,e,{wrap:!1,...i});let n=String.fromCharCode(r);if(r===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},km=(r,e,t)=>{if(Array.isArray(r)){let i=t.wrap===!0,n=t.capture?"":"?:";return i?`(${n}${r.join("|")})`:r.join("|")}return wm(r,e,t)},Sm=(...r)=>new RangeError("Invalid range arguments: "+iE.inspect(...r)),Am=(r,e,t)=>{if(t.strictRanges===!0)throw Sm([r,e]);return[]},lE=(r,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${r}" to be a number`);return[]},uE=(r,e,t=1,i={})=>{let n=Number(r),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw Sm([r,e]);return[]}n===0&&(n=0),s===0&&(s=0);let a=n>s,o=String(r),l=String(e),c=String(t);t=Math.max(Math.abs(t),1);let f=cl(o)||cl(l)||cl(c),d=f?Math.max(o.length,l.length,c.length):0,p=f===!1&&sE(r,e,i)===!1,h=i.transform||nE(p);if(i.toRegex&&t===1)return xm(ms(r,d),ms(e,d),!0,i);let b={negatives:[],positives:[]},v=k=>b[k<0?"negatives":"positives"].push(Math.abs(k)),y=[],w=0;for(;a?n>=s:n<=s;)i.toRegex===!0&&t>1?v(n):y.push(aE(h(n,w),d,p)),n=a?n-t:n+t,w++;return i.toRegex===!0?t>1?oE(b,i,d):km(y,null,{wrap:!1,...i}):y},fE=(r,e,t=1,i={})=>{if(!Ii(r)&&r.length>1||!Ii(e)&&e.length>1)return Am(r,e,i);let n=i.transform||(p=>String.fromCharCode(p)),s=`${r}`.charCodeAt(0),a=`${e}`.charCodeAt(0),o=s>a,l=Math.min(s,a),c=Math.max(s,a);if(i.toRegex&&t===1)return xm(l,c,!1,i);let f=[],d=0;for(;o?s>=a:s<=a;)f.push(n(s,d)),s=o?s-t:s+t,d++;return i.toRegex===!0?km(f,null,{wrap:!1,options:i}):f},gs=(r,e,t,i={})=>{if(e==null&&fl(r))return[r];if(!fl(r)||!fl(e))return Am(r,e,i);if(typeof t=="function")return gs(r,e,1,{transform:t});if(vm(t))return gs(r,e,0,t);let n={...i};return n.capture===!0&&(n.wrap=!0),t=t||n.step||1,Ii(t)?Ii(r)&&Ii(e)?uE(r,e,t,n):fE(r,e,Math.max(Math.abs(t),1),n):t!=null&&!vm(t)?lE(t,n):gs(r,e,1,t)};Cm.exports=gs});var Om=x((r6,Em)=>{u();"use strict";var cE=pl(),_m=ds(),pE=(r,e={})=>{let t=(i,n={})=>{let s=_m.isInvalidBrace(n),a=i.invalid===!0&&e.escapeInvalid===!0,o=s===!0||a===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0)return l+i.value;if(i.isClose===!0)return console.log("node.isClose",l,i.value),l+i.value;if(i.type==="open")return o?l+i.value:"(";if(i.type==="close")return o?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":o?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let f=_m.reduce(i.nodes),d=cE(...f,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return f.length>1&&d.length>1?`(${d})`:d}if(i.nodes)for(let f of i.nodes)c+=t(f,i);return c};return t(r)};Em.exports=pE});var Pm=x((i6,Rm)=>{u();"use strict";var dE=pl(),Tm=hs(),mr=ds(),Gt=(r="",e="",t=!1)=>{let i=[];if(r=[].concat(r),e=[].concat(e),!e.length)return r;if(!r.length)return t?mr.flatten(e).map(n=>`{${n}}`):e;for(let n of r)if(Array.isArray(n))for(let s of n)i.push(Gt(s,e,t));else for(let s of e)t===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Gt(n,s,t):n+s);return mr.flatten(i)},hE=(r,e={})=>{let t=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let a=s,o=s.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,o=a.queue;if(n.invalid||n.dollar){o.push(Gt(o.pop(),Tm(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){o.push(Gt(o.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let d=mr.reduce(n.nodes);if(mr.exceedsLimit(...d,e.step,t))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=dE(...d,e);p.length===0&&(p=Tm(n,e)),o.push(Gt(o.pop(),p)),n.nodes=[];return}let l=mr.encloseBrace(n),c=n.queue,f=n;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,c=f.queue;for(let d=0;d{u();"use strict";Im.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Nm=x((s6,Mm)=>{u();"use strict";var mE=hs(),{MAX_LENGTH:qm,CHAR_BACKSLASH:dl,CHAR_BACKTICK:gE,CHAR_COMMA:yE,CHAR_DOT:bE,CHAR_LEFT_PARENTHESES:wE,CHAR_RIGHT_PARENTHESES:vE,CHAR_LEFT_CURLY_BRACE:xE,CHAR_RIGHT_CURLY_BRACE:kE,CHAR_LEFT_SQUARE_BRACKET:$m,CHAR_RIGHT_SQUARE_BRACKET:Lm,CHAR_DOUBLE_QUOTE:SE,CHAR_SINGLE_QUOTE:AE,CHAR_NO_BREAK_SPACE:CE,CHAR_ZERO_WIDTH_NOBREAK_SPACE:_E}=Dm(),EE=(r,e={})=>{if(typeof r!="string")throw new TypeError("Expected a string");let t=e||{},i=typeof t.maxLength=="number"?Math.min(qm,t.maxLength):qm;if(r.length>i)throw new SyntaxError(`Input length (${r.length}), exceeds max characters (${i})`);let n={type:"root",input:r,nodes:[]},s=[n],a=n,o=n,l=0,c=r.length,f=0,d=0,p,h=()=>r[f++],b=v=>{if(v.type==="text"&&o.type==="dot"&&(o.type="text"),o&&o.type==="text"&&v.type==="text"){o.value+=v.value;return}return a.nodes.push(v),v.parent=a,v.prev=o,o=v,v};for(b({type:"bos"});f0){if(a.ranges>0){a.ranges=0;let v=a.nodes.shift();a.nodes=[v,{type:"text",value:mE(a)}]}b({type:"comma",value:p}),a.commas++;continue}if(p===bE&&d>0&&a.commas===0){let v=a.nodes;if(d===0||v.length===0){b({type:"text",value:p});continue}if(o.type==="dot"){if(a.range=[],o.value+=p,o.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,o.type="text";continue}a.ranges++,a.args=[];continue}if(o.type==="range"){v.pop();let y=v[v.length-1];y.value+=o.value+p,o=y,a.ranges--;continue}b({type:"dot",value:p});continue}b({type:"text",value:p})}do if(a=s.pop(),a.type!=="root"){a.nodes.forEach(w=>{w.nodes||(w.type==="open"&&(w.isOpen=!0),w.type==="close"&&(w.isClose=!0),w.nodes||(w.type="text"),w.invalid=!0)});let v=s[s.length-1],y=v.nodes.indexOf(a);v.nodes.splice(y,1,...a.nodes)}while(s.length>0);return b({type:"eos"}),n};Mm.exports=EE});var jm=x((a6,Fm)=>{u();"use strict";var Bm=hs(),OE=Om(),TE=Pm(),RE=Nm(),Le=(r,e={})=>{let t=[];if(Array.isArray(r))for(let i of r){let n=Le.create(i,e);Array.isArray(n)?t.push(...n):t.push(n)}else t=[].concat(Le.create(r,e));return e&&e.expand===!0&&e.nodupes===!0&&(t=[...new Set(t)]),t};Le.parse=(r,e={})=>RE(r,e);Le.stringify=(r,e={})=>typeof r=="string"?Bm(Le.parse(r,e),e):Bm(r,e);Le.compile=(r,e={})=>(typeof r=="string"&&(r=Le.parse(r,e)),OE(r,e));Le.expand=(r,e={})=>{typeof r=="string"&&(r=Le.parse(r,e));let t=TE(r,e);return e.noempty===!0&&(t=t.filter(Boolean)),e.nodupes===!0&&(t=[...new Set(t)]),t};Le.create=(r,e={})=>r===""||r.length<3?[r]:e.expand!==!0?Le.compile(r,e):Le.expand(r,e);Fm.exports=Le});var Di=x((o6,Wm)=>{u();"use strict";var PE=(et(),Ur),at="\\\\/",zm=`[^${at}]`,yt="\\.",IE="\\+",DE="\\?",ys="\\/",qE="(?=.)",Um="[^/]",hl=`(?:${ys}|$)`,Vm=`(?:^|${ys})`,ml=`${yt}{1,2}${hl}`,$E=`(?!${yt})`,LE=`(?!${Vm}${ml})`,ME=`(?!${yt}{0,1}${hl})`,NE=`(?!${ml})`,BE=`[^.${ys}]`,FE=`${Um}*?`,Hm={DOT_LITERAL:yt,PLUS_LITERAL:IE,QMARK_LITERAL:DE,SLASH_LITERAL:ys,ONE_CHAR:qE,QMARK:Um,END_ANCHOR:hl,DOTS_SLASH:ml,NO_DOT:$E,NO_DOTS:LE,NO_DOT_SLASH:ME,NO_DOTS_SLASH:NE,QMARK_NO_DOT:BE,STAR:FE,START_ANCHOR:Vm},jE={...Hm,SLASH_LITERAL:`[${at}]`,QMARK:zm,STAR:`${zm}*?`,DOTS_SLASH:`${yt}{1,2}(?:[${at}]|$)`,NO_DOT:`(?!${yt})`,NO_DOTS:`(?!(?:^|[${at}])${yt}{1,2}(?:[${at}]|$))`,NO_DOT_SLASH:`(?!${yt}{0,1}(?:[${at}]|$))`,NO_DOTS_SLASH:`(?!${yt}{1,2}(?:[${at}]|$))`,QMARK_NO_DOT:`[^.${at}]`,START_ANCHOR:`(?:^|[${at}])`,END_ANCHOR:`(?:[${at}]|$)`},zE={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Wm.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:zE,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:PE.sep,extglobChars(r){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${r.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(r){return r===!0?jE:Hm}}});var qi=x(Re=>{u();"use strict";var UE=(et(),Ur),VE=m.platform==="win32",{REGEX_BACKSLASH:HE,REGEX_REMOVE_BACKSLASH:WE,REGEX_SPECIAL_CHARS:GE,REGEX_SPECIAL_CHARS_GLOBAL:QE}=Di();Re.isObject=r=>r!==null&&typeof r=="object"&&!Array.isArray(r);Re.hasRegexChars=r=>GE.test(r);Re.isRegexChar=r=>r.length===1&&Re.hasRegexChars(r);Re.escapeRegex=r=>r.replace(QE,"\\$1");Re.toPosixSlashes=r=>r.replace(HE,"/");Re.removeBackslashes=r=>r.replace(WE,e=>e==="\\"?"":e);Re.supportsLookbehinds=()=>{let r=m.version.slice(1).split(".").map(Number);return r.length===3&&r[0]>=9||r[0]===8&&r[1]>=10};Re.isWindows=r=>r&&typeof r.windows=="boolean"?r.windows:VE===!0||UE.sep==="\\";Re.escapeLast=(r,e,t)=>{let i=r.lastIndexOf(e,t);return i===-1?r:r[i-1]==="\\"?Re.escapeLast(r,e,i-1):`${r.slice(0,i)}\\${r.slice(i)}`};Re.removePrefix=(r,e={})=>{let t=r;return t.startsWith("./")&&(t=t.slice(2),e.prefix="./"),t};Re.wrapOutput=(r,e={},t={})=>{let i=t.contains?"":"^",n=t.contains?"":"$",s=`${i}(?:${r})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var eg=x((u6,Jm)=>{u();"use strict";var Gm=qi(),{CHAR_ASTERISK:gl,CHAR_AT:YE,CHAR_BACKWARD_SLASH:$i,CHAR_COMMA:KE,CHAR_DOT:yl,CHAR_EXCLAMATION_MARK:bl,CHAR_FORWARD_SLASH:Qm,CHAR_LEFT_CURLY_BRACE:wl,CHAR_LEFT_PARENTHESES:vl,CHAR_LEFT_SQUARE_BRACKET:XE,CHAR_PLUS:ZE,CHAR_QUESTION_MARK:Ym,CHAR_RIGHT_CURLY_BRACE:JE,CHAR_RIGHT_PARENTHESES:Km,CHAR_RIGHT_SQUARE_BRACKET:e2}=Di(),Xm=r=>r===Qm||r===$i,Zm=r=>{r.isPrefix!==!0&&(r.depth=r.isGlobstar?1/0:1)},t2=(r,e)=>{let t=e||{},i=r.length-1,n=t.parts===!0||t.scanToEnd===!0,s=[],a=[],o=[],l=r,c=-1,f=0,d=0,p=!1,h=!1,b=!1,v=!1,y=!1,w=!1,k=!1,S=!1,E=!1,T=!1,B=0,N,R,F={value:"",depth:0,isGlob:!1},Y=()=>c>=i,_=()=>l.charCodeAt(c+1),Q=()=>(N=R,l.charCodeAt(++c));for(;c0&&(le=l.slice(0,f),l=l.slice(f),d-=f),U&&b===!0&&d>0?(U=l.slice(0,d),A=l.slice(d)):b===!0?(U="",A=l):U=l,U&&U!==""&&U!=="/"&&U!==l&&Xm(U.charCodeAt(U.length-1))&&(U=U.slice(0,-1)),t.unescape===!0&&(A&&(A=Gm.removeBackslashes(A)),U&&k===!0&&(U=Gm.removeBackslashes(U)));let C={prefix:le,input:r,start:f,base:U,glob:A,isBrace:p,isBracket:h,isGlob:b,isExtglob:v,isGlobstar:y,negated:S,negatedExtglob:E};if(t.tokens===!0&&(C.maxDepth=0,Xm(R)||a.push(F),C.tokens=a),t.parts===!0||t.tokens===!0){let he;for(let V=0;V{u();"use strict";var bs=Di(),Me=qi(),{MAX_LENGTH:ws,POSIX_REGEX_SOURCE:r2,REGEX_NON_SPECIAL_CHARS:i2,REGEX_SPECIAL_CHARS_BACKREF:n2,REPLACEMENTS:tg}=bs,s2=(r,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...r,e);r.sort();let t=`[${r.join("-")}]`;try{new RegExp(t)}catch(i){return r.map(n=>Me.escapeRegex(n)).join("..")}return t},gr=(r,e)=>`Missing ${r}: "${e}" - use "\\\\${e}" to match literal characters`,xl=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");r=tg[r]||r;let t={...e},i=typeof t.maxLength=="number"?Math.min(ws,t.maxLength):ws,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:t.prepend||""},a=[s],o=t.capture?"":"?:",l=Me.isWindows(e),c=bs.globChars(l),f=bs.extglobChars(c),{DOT_LITERAL:d,PLUS_LITERAL:p,SLASH_LITERAL:h,ONE_CHAR:b,DOTS_SLASH:v,NO_DOT:y,NO_DOT_SLASH:w,NO_DOTS_SLASH:k,QMARK:S,QMARK_NO_DOT:E,STAR:T,START_ANCHOR:B}=c,N=$=>`(${o}(?:(?!${B}${$.dot?v:d}).)*?)`,R=t.dot?"":y,F=t.dot?S:E,Y=t.bash===!0?N(t):T;t.capture&&(Y=`(${Y})`),typeof t.noext=="boolean"&&(t.noextglob=t.noext);let _={input:r,index:-1,start:0,dot:t.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};r=Me.removePrefix(r,_),n=r.length;let Q=[],U=[],le=[],A=s,C,he=()=>_.index===n-1,V=_.peek=($=1)=>r[_.index+$],Ee=_.advance=()=>r[++_.index]||"",Ie=()=>r.slice(_.index+1),De=($="",ae=0)=>{_.consumed+=$,_.index+=ae},ji=$=>{_.output+=$.output!=null?$.output:$.value,De($.value)},Iv=()=>{let $=1;for(;V()==="!"&&(V(2)!=="("||V(3)==="?");)Ee(),_.start++,$++;return $%2==0?!1:(_.negated=!0,_.start++,!0)},zi=$=>{_[$]++,le.push($)},Ft=$=>{_[$]--,le.pop()},W=$=>{if(A.type==="globstar"){let ae=_.braces>0&&($.type==="comma"||$.type==="brace"),I=$.extglob===!0||Q.length&&($.type==="pipe"||$.type==="paren");$.type!=="slash"&&$.type!=="paren"&&!ae&&!I&&(_.output=_.output.slice(0,-A.output.length),A.type="star",A.value="*",A.output=Y,_.output+=A.output)}if(Q.length&&$.type!=="paren"&&(Q[Q.length-1].inner+=$.value),($.value||$.output)&&ji($),A&&A.type==="text"&&$.type==="text"){A.value+=$.value,A.output=(A.output||"")+$.value;return}$.prev=A,a.push($),A=$},Ui=($,ae)=>{let I={...f[ae],conditions:1,inner:""};I.prev=A,I.parens=_.parens,I.output=_.output;let H=(t.capture?"(":"")+I.open;zi("parens"),W({type:$,value:ae,output:_.output?"":b}),W({type:"paren",extglob:!0,value:Ee(),output:H}),Q.push(I)},Dv=$=>{let ae=$.close+(t.capture?")":""),I;if($.type==="negate"){let H=Y;if($.inner&&$.inner.length>1&&$.inner.includes("/")&&(H=N(t)),(H!==Y||he()||/^\)+$/.test(Ie()))&&(ae=$.close=`)$))${H}`),$.inner.includes("*")&&(I=Ie())&&/^\.[^\\/.]+$/.test(I)){let ce=xl(I,{...e,fastpaths:!1}).output;ae=$.close=`)${ce})${H})`}$.prev.type==="bos"&&(_.negatedExtglob=!0)}W({type:"paren",extglob:!0,value:C,output:ae}),Ft("parens")};if(t.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(r)){let $=!1,ae=r.replace(n2,(I,H,ce,Ce,ye,Bs)=>Ce==="\\"?($=!0,I):Ce==="?"?H?H+Ce+(ye?S.repeat(ye.length):""):Bs===0?F+(ye?S.repeat(ye.length):""):S.repeat(ce.length):Ce==="."?d.repeat(ce.length):Ce==="*"?H?H+Ce+(ye?Y:""):Y:H?I:`\\${I}`);return $===!0&&(t.unescape===!0?ae=ae.replace(/\\/g,""):ae=ae.replace(/\\+/g,I=>I.length%2==0?"\\\\":I?"\\":"")),ae===r&&t.contains===!0?(_.output=r,_):(_.output=Me.wrapOutput(ae,_,e),_)}for(;!he();){if(C=Ee(),C==="\0")continue;if(C==="\\"){let I=V();if(I==="/"&&t.bash!==!0||I==="."||I===";")continue;if(!I){C+="\\",W({type:"text",value:C});continue}let H=/^\\+/.exec(Ie()),ce=0;if(H&&H[0].length>2&&(ce=H[0].length,_.index+=ce,ce%2!=0&&(C+="\\")),t.unescape===!0?C=Ee():C+=Ee(),_.brackets===0){W({type:"text",value:C});continue}}if(_.brackets>0&&(C!=="]"||A.value==="["||A.value==="[^")){if(t.posix!==!1&&C===":"){let I=A.value.slice(1);if(I.includes("[")&&(A.posix=!0,I.includes(":"))){let H=A.value.lastIndexOf("["),ce=A.value.slice(0,H),Ce=A.value.slice(H+2),ye=r2[Ce];if(ye){A.value=ce+ye,_.backtrack=!0,Ee(),!s.output&&a.indexOf(A)===1&&(s.output=b);continue}}}(C==="["&&V()!==":"||C==="-"&&V()==="]")&&(C=`\\${C}`),C==="]"&&(A.value==="["||A.value==="[^")&&(C=`\\${C}`),t.posix===!0&&C==="!"&&A.value==="["&&(C="^"),A.value+=C,ji({value:C});continue}if(_.quotes===1&&C!=='"'){C=Me.escapeRegex(C),A.value+=C,ji({value:C});continue}if(C==='"'){_.quotes=_.quotes===1?0:1,t.keepQuotes===!0&&W({type:"text",value:C});continue}if(C==="("){zi("parens"),W({type:"paren",value:C});continue}if(C===")"){if(_.parens===0&&t.strictBrackets===!0)throw new SyntaxError(gr("opening","("));let I=Q[Q.length-1];if(I&&_.parens===I.parens+1){Dv(Q.pop());continue}W({type:"paren",value:C,output:_.parens?")":"\\)"}),Ft("parens");continue}if(C==="["){if(t.nobracket===!0||!Ie().includes("]")){if(t.nobracket!==!0&&t.strictBrackets===!0)throw new SyntaxError(gr("closing","]"));C=`\\${C}`}else zi("brackets");W({type:"bracket",value:C});continue}if(C==="]"){if(t.nobracket===!0||A&&A.type==="bracket"&&A.value.length===1){W({type:"text",value:C,output:`\\${C}`});continue}if(_.brackets===0){if(t.strictBrackets===!0)throw new SyntaxError(gr("opening","["));W({type:"text",value:C,output:`\\${C}`});continue}Ft("brackets");let I=A.value.slice(1);if(A.posix!==!0&&I[0]==="^"&&!I.includes("/")&&(C=`/${C}`),A.value+=C,ji({value:C}),t.literalBrackets===!1||Me.hasRegexChars(I))continue;let H=Me.escapeRegex(A.value);if(_.output=_.output.slice(0,-A.value.length),t.literalBrackets===!0){_.output+=H,A.value=H;continue}A.value=`(${o}${H}|${A.value})`,_.output+=A.value;continue}if(C==="{"&&t.nobrace!==!0){zi("braces");let I={type:"brace",value:C,output:"(",outputIndex:_.output.length,tokensIndex:_.tokens.length};U.push(I),W(I);continue}if(C==="}"){let I=U[U.length-1];if(t.nobrace===!0||!I){W({type:"text",value:C,output:C});continue}let H=")";if(I.dots===!0){let ce=a.slice(),Ce=[];for(let ye=ce.length-1;ye>=0&&(a.pop(),ce[ye].type!=="brace");ye--)ce[ye].type!=="dots"&&Ce.unshift(ce[ye].value);H=s2(Ce,t),_.backtrack=!0}if(I.comma!==!0&&I.dots!==!0){let ce=_.output.slice(0,I.outputIndex),Ce=_.tokens.slice(I.tokensIndex);I.value=I.output="\\{",C=H="\\}",_.output=ce;for(let ye of Ce)_.output+=ye.output||ye.value}W({type:"brace",value:C,output:H}),Ft("braces"),U.pop();continue}if(C==="|"){Q.length>0&&Q[Q.length-1].conditions++,W({type:"text",value:C});continue}if(C===","){let I=C,H=U[U.length-1];H&&le[le.length-1]==="braces"&&(H.comma=!0,I="|"),W({type:"comma",value:C,output:I});continue}if(C==="/"){if(A.type==="dot"&&_.index===_.start+1){_.start=_.index+1,_.consumed="",_.output="",a.pop(),A=s;continue}W({type:"slash",value:C,output:h});continue}if(C==="."){if(_.braces>0&&A.type==="dot"){A.value==="."&&(A.output=d);let I=U[U.length-1];A.type="dots",A.output+=C,A.value+=C,I.dots=!0;continue}if(_.braces+_.parens===0&&A.type!=="bos"&&A.type!=="slash"){W({type:"text",value:C,output:d});continue}W({type:"dot",value:C,output:d});continue}if(C==="?"){if(!(A&&A.value==="(")&&t.noextglob!==!0&&V()==="("&&V(2)!=="?"){Ui("qmark",C);continue}if(A&&A.type==="paren"){let H=V(),ce=C;if(H==="<"&&!Me.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(A.value==="("&&!/[!=<:]/.test(H)||H==="<"&&!/<([!=]|\w+>)/.test(Ie()))&&(ce=`\\${C}`),W({type:"text",value:C,output:ce});continue}if(t.dot!==!0&&(A.type==="slash"||A.type==="bos")){W({type:"qmark",value:C,output:E});continue}W({type:"qmark",value:C,output:S});continue}if(C==="!"){if(t.noextglob!==!0&&V()==="("&&(V(2)!=="?"||!/[!=<:]/.test(V(3)))){Ui("negate",C);continue}if(t.nonegate!==!0&&_.index===0){Iv();continue}}if(C==="+"){if(t.noextglob!==!0&&V()==="("&&V(2)!=="?"){Ui("plus",C);continue}if(A&&A.value==="("||t.regex===!1){W({type:"plus",value:C,output:p});continue}if(A&&(A.type==="bracket"||A.type==="paren"||A.type==="brace")||_.parens>0){W({type:"plus",value:C});continue}W({type:"plus",value:p});continue}if(C==="@"){if(t.noextglob!==!0&&V()==="("&&V(2)!=="?"){W({type:"at",extglob:!0,value:C,output:""});continue}W({type:"text",value:C});continue}if(C!=="*"){(C==="$"||C==="^")&&(C=`\\${C}`);let I=i2.exec(Ie());I&&(C+=I[0],_.index+=I[0].length),W({type:"text",value:C});continue}if(A&&(A.type==="globstar"||A.star===!0)){A.type="star",A.star=!0,A.value+=C,A.output=Y,_.backtrack=!0,_.globstar=!0,De(C);continue}let $=Ie();if(t.noextglob!==!0&&/^\([^?]/.test($)){Ui("star",C);continue}if(A.type==="star"){if(t.noglobstar===!0){De(C);continue}let I=A.prev,H=I.prev,ce=I.type==="slash"||I.type==="bos",Ce=H&&(H.type==="star"||H.type==="globstar");if(t.bash===!0&&(!ce||$[0]&&$[0]!=="/")){W({type:"star",value:C,output:""});continue}let ye=_.braces>0&&(I.type==="comma"||I.type==="brace"),Bs=Q.length&&(I.type==="pipe"||I.type==="paren");if(!ce&&I.type!=="paren"&&!ye&&!Bs){W({type:"star",value:C,output:""});continue}for(;$.slice(0,3)==="/**";){let Vi=r[_.index+4];if(Vi&&Vi!=="/")break;$=$.slice(3),De("/**",3)}if(I.type==="bos"&&he()){A.type="globstar",A.value+=C,A.output=N(t),_.output=A.output,_.globstar=!0,De(C);continue}if(I.type==="slash"&&I.prev.type!=="bos"&&!Ce&&he()){_.output=_.output.slice(0,-(I.output+A.output).length),I.output=`(?:${I.output}`,A.type="globstar",A.output=N(t)+(t.strictSlashes?")":"|$)"),A.value+=C,_.globstar=!0,_.output+=I.output+A.output,De(C);continue}if(I.type==="slash"&&I.prev.type!=="bos"&&$[0]==="/"){let Vi=$[1]!==void 0?"|$":"";_.output=_.output.slice(0,-(I.output+A.output).length),I.output=`(?:${I.output}`,A.type="globstar",A.output=`${N(t)}${h}|${h}${Vi})`,A.value+=C,_.output+=I.output+A.output,_.globstar=!0,De(C+Ee()),W({type:"slash",value:"/",output:""});continue}if(I.type==="bos"&&$[0]==="/"){A.type="globstar",A.value+=C,A.output=`(?:^|${h}|${N(t)}${h})`,_.output=A.output,_.globstar=!0,De(C+Ee()),W({type:"slash",value:"/",output:""});continue}_.output=_.output.slice(0,-A.output.length),A.type="globstar",A.output=N(t),A.value+=C,_.output+=A.output,_.globstar=!0,De(C);continue}let ae={type:"star",value:C,output:Y};if(t.bash===!0){ae.output=".*?",(A.type==="bos"||A.type==="slash")&&(ae.output=R+ae.output),W(ae);continue}if(A&&(A.type==="bracket"||A.type==="paren")&&t.regex===!0){ae.output=C,W(ae);continue}(_.index===_.start||A.type==="slash"||A.type==="dot")&&(A.type==="dot"?(_.output+=w,A.output+=w):t.dot===!0?(_.output+=k,A.output+=k):(_.output+=R,A.output+=R),V()!=="*"&&(_.output+=b,A.output+=b)),W(ae)}for(;_.brackets>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing","]"));_.output=Me.escapeLast(_.output,"["),Ft("brackets")}for(;_.parens>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing",")"));_.output=Me.escapeLast(_.output,"("),Ft("parens")}for(;_.braces>0;){if(t.strictBrackets===!0)throw new SyntaxError(gr("closing","}"));_.output=Me.escapeLast(_.output,"{"),Ft("braces")}if(t.strictSlashes!==!0&&(A.type==="star"||A.type==="bracket")&&W({type:"maybe_slash",value:"",output:`${h}?`}),_.backtrack===!0){_.output="";for(let $ of _.tokens)_.output+=$.output!=null?$.output:$.value,$.suffix&&(_.output+=$.suffix)}return _};xl.fastpaths=(r,e)=>{let t={...e},i=typeof t.maxLength=="number"?Math.min(ws,t.maxLength):ws,n=r.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);r=tg[r]||r;let s=Me.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:o,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:f,NO_DOTS:d,NO_DOTS_SLASH:p,STAR:h,START_ANCHOR:b}=bs.globChars(s),v=t.dot?d:f,y=t.dot?p:f,w=t.capture?"":"?:",k={negated:!1,prefix:""},S=t.bash===!0?".*?":h;t.capture&&(S=`(${S})`);let E=R=>R.noglobstar===!0?S:`(${w}(?:(?!${b}${R.dot?c:a}).)*?)`,T=R=>{switch(R){case"*":return`${v}${l}${S}`;case".*":return`${a}${l}${S}`;case"*.*":return`${v}${S}${a}${l}${S}`;case"*/*":return`${v}${S}${o}${l}${y}${S}`;case"**":return v+E(t);case"**/*":return`(?:${v}${E(t)}${o})?${y}${l}${S}`;case"**/*.*":return`(?:${v}${E(t)}${o})?${y}${S}${a}${l}${S}`;case"**/.*":return`(?:${v}${E(t)}${o})?${a}${l}${S}`;default:{let F=/^(.*?)\.(\w+)$/.exec(R);if(!F)return;let Y=T(F[1]);return Y?Y+a+F[2]:void 0}}},B=Me.removePrefix(r,k),N=T(B);return N&&t.strictSlashes!==!0&&(N+=`${o}?`),N};rg.exports=xl});var sg=x((c6,ng)=>{u();"use strict";var a2=(et(),Ur),o2=eg(),kl=ig(),Sl=qi(),l2=Di(),u2=r=>r&&typeof r=="object"&&!Array.isArray(r),de=(r,e,t=!1)=>{if(Array.isArray(r)){let f=r.map(p=>de(p,e,t));return p=>{for(let h of f){let b=h(p);if(b)return b}return!1}}let i=u2(r)&&r.tokens&&r.input;if(r===""||typeof r!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=Sl.isWindows(e),a=i?de.compileRe(r,e):de.makeRe(r,e,!1,!0),o=a.state;delete a.state;let l=()=>!1;if(n.ignore){let f={...e,ignore:null,onMatch:null,onResult:null};l=de(n.ignore,f,t)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:b}=de.test(f,a,e,{glob:r,posix:s}),v={glob:r,state:o,regex:a,posix:s,input:f,output:b,match:h,isMatch:p};return typeof n.onResult=="function"&&n.onResult(v),p===!1?(v.isMatch=!1,d?v:!1):l(f)?(typeof n.onIgnore=="function"&&n.onIgnore(v),v.isMatch=!1,d?v:!1):(typeof n.onMatch=="function"&&n.onMatch(v),d?v:!0)};return t&&(c.state=o),c};de.test=(r,e,t,{glob:i,posix:n}={})=>{if(typeof r!="string")throw new TypeError("Expected input to be a string");if(r==="")return{isMatch:!1,output:""};let s=t||{},a=s.format||(n?Sl.toPosixSlashes:null),o=r===i,l=o&&a?a(r):r;return o===!1&&(l=a?a(r):r,o=l===i),(o===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?o=de.matchBase(r,e,t,n):o=e.exec(l)),{isMatch:Boolean(o),match:o,output:l}};de.matchBase=(r,e,t,i=Sl.isWindows(t))=>(e instanceof RegExp?e:de.makeRe(e,t)).test(a2.basename(r));de.isMatch=(r,e,t)=>de(e,t)(r);de.parse=(r,e)=>Array.isArray(r)?r.map(t=>de.parse(t,e)):kl(r,{...e,fastpaths:!1});de.scan=(r,e)=>o2(r,e);de.compileRe=(r,e,t=!1,i=!1)=>{if(t===!0)return r.output;let n=e||{},s=n.contains?"":"^",a=n.contains?"":"$",o=`${s}(?:${r.output})${a}`;r&&r.negated===!0&&(o=`^(?!${o}).*$`);let l=de.toRegex(o,e);return i===!0&&(l.state=r),l};de.makeRe=(r,e={},t=!1,i=!1)=>{if(!r||typeof r!="string")throw new TypeError("Expected a non-empty string");let n={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(r[0]==="."||r[0]==="*")&&(n.output=kl.fastpaths(r,e)),n.output||(n=kl(r,e)),de.compileRe(n,e,t,i)};de.toRegex=(r,e)=>{try{let t=e||{};return new RegExp(r,t.flags||(t.nocase?"i":""))}catch(t){if(e&&e.debug===!0)throw t;return/$^/}};de.constants=l2;ng.exports=de});var og=x((p6,ag)=>{u();"use strict";ag.exports=sg()});var dg=x((d6,pg)=>{u();"use strict";var lg=(Fn(),Bn),ug=jm(),ot=og(),Al=qi(),fg=r=>r===""||r==="./",cg=r=>{let e=r.indexOf("{");return e>-1&&r.indexOf("}",e)>-1},oe=(r,e,t)=>{e=[].concat(e),r=[].concat(r);let i=new Set,n=new Set,s=new Set,a=0,o=f=>{s.add(f.output),t&&t.onResult&&t.onResult(f)};for(let f=0;f!i.has(f));if(t&&c.length===0){if(t.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(t.nonull===!0||t.nullglob===!0)return t.unescape?e.map(f=>f.replace(/\\/g,"")):e}return c};oe.match=oe;oe.matcher=(r,e)=>ot(r,e);oe.isMatch=(r,e,t)=>ot(e,t)(r);oe.any=oe.isMatch;oe.not=(r,e,t={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=o=>{t.onResult&&t.onResult(o),n.push(o.output)},a=new Set(oe(r,e,{...t,onResult:s}));for(let o of n)a.has(o)||i.add(o);return[...i]};oe.contains=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${lg.inspect(r)}"`);if(Array.isArray(e))return e.some(i=>oe.contains(r,i,t));if(typeof e=="string"){if(fg(r)||fg(e))return!1;if(r.includes(e)||r.startsWith("./")&&r.slice(2).includes(e))return!0}return oe.isMatch(r,e,{...t,contains:!0})};oe.matchKeys=(r,e,t)=>{if(!Al.isObject(r))throw new TypeError("Expected the first argument to be an object");let i=oe(Object.keys(r),e,t),n={};for(let s of i)n[s]=r[s];return n};oe.some=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=ot(String(n),t);if(i.some(a=>s(a)))return!0}return!1};oe.every=(r,e,t)=>{let i=[].concat(r);for(let n of[].concat(e)){let s=ot(String(n),t);if(!i.every(a=>s(a)))return!1}return!0};oe.all=(r,e,t)=>{if(typeof r!="string")throw new TypeError(`Expected a string: "${lg.inspect(r)}"`);return[].concat(e).every(i=>ot(i,t)(r))};oe.capture=(r,e,t)=>{let i=Al.isWindows(t),s=ot.makeRe(String(r),{...t,capture:!0}).exec(i?Al.toPosixSlashes(e):e);if(s)return s.slice(1).map(a=>a===void 0?"":a)};oe.makeRe=(...r)=>ot.makeRe(...r);oe.scan=(...r)=>ot.scan(...r);oe.parse=(r,e)=>{let t=[];for(let i of[].concat(r||[]))for(let n of ug(String(i),e))t.push(ot.parse(n,e));return t};oe.braces=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!cg(r)?[r]:ug(r,e)};oe.braceExpand=(r,e)=>{if(typeof r!="string")throw new TypeError("Expected a string");return oe.braces(r,{...e,expand:!0})};oe.hasBraces=cg;pg.exports=oe});function mg(r,e){let t=e.content.files;t=t.filter(o=>typeof o=="string"),t=t.map(ll);let i=ps.generateTasks(t),n=[],s=[];for(let o of i)n.push(...o.positive.map(l=>gg(l,!1))),s.push(...o.negative.map(l=>gg(l,!0)));let a=[...n,...s];return a=c2(r,a),a=a.flatMap(p2),a=a.map(f2),a}function gg(r,e){let t={original:r,base:r,ignore:e,pattern:r,glob:null};return Zh(r)&&Object.assign(t,nm(r)),t}function f2(r){let e=ll(r.base);return e=ps.escapePath(e),r.pattern=r.glob?`${e}/${r.glob}`:e,r.pattern=r.ignore?`!${r.pattern}`:r.pattern,r}function c2(r,e){let t=[];return r.userConfigPath&&r.tailwindConfig.content.relative&&(t=[me.dirname(r.userConfigPath)]),e.map(i=>(i.base=me.resolve(...t,i.base),i))}function p2(r){let e=[r];try{let t=be.realpathSync(r.base);t!==r.base&&e.push({...r,base:t})}catch{}return e}function yg(r,e,t){let i=r.tailwindConfig.content.files.filter(a=>typeof a.raw=="string").map(({raw:a,extension:o="html"})=>({content:a,extension:o})),[n,s]=h2(e,t);for(let a of n){let o=me.extname(a).slice(1);i.push({file:a,extension:o})}return[i,s]}function d2(r){if(!r.some(s=>s.includes("**")&&!wg.test(s)))return()=>{};let t=[],i=[];for(let s of r){let a=hg.default.matcher(s);wg.test(s)&&i.push(a),t.push(a)}let n=!1;return s=>{if(n||i.some(f=>f(s)))return;let a=t.findIndex(f=>f(s));if(a===-1)return;let o=r[a],l=me.relative(m.cwd(),o);l[0]!=="."&&(l=`./${l}`);let c=bg.find(f=>s.includes(f));c&&(n=!0,G.warn("broad-content-glob-pattern",[`Your \`content\` configuration includes a pattern which looks like it's accidentally matching all of \`${c}\` and can cause serious performance issues.`,`Pattern: \`${l}\``,"See our documentation for recommendations:","https://tailwindcss.com/docs/content-configuration#pattern-recommendations"]))}}function h2(r,e){let t=r.map(o=>o.pattern),i=new Map,n=d2(t),s=new Set;Ze.DEBUG&&console.time("Finding changed files");let a=ps.sync(t,{absolute:!0});for(let o of a){n(o);let l=e.get(o)||-1/0,c=be.statSync(o).mtimeMs;c>l&&(s.add(o),i.set(o,c))}return Ze.DEBUG&&console.timeEnd("Finding changed files"),[s,i]}var hg,bg,wg,vg=P(()=>{u();ft();et();Jh();em();tm();sm();It();Be();hg=pe(dg());bg=["node_modules"],wg=new RegExp(`(${bg.map(r=>String.raw`\b${r}\b`).join("|")})`)});function xg(){}var kg=P(()=>{u()});function b2(r,e){for(let t of e){let i=`${r}${t}`;if(be.existsSync(i)&&be.statSync(i).isFile())return i}for(let t of e){let i=`${r}/index${t}`;if(be.existsSync(i))return i}return null}function*Sg(r,e,t,i=me.extname(r)){let n=b2(me.resolve(e,r),m2.includes(i)?g2:y2);if(n===null||t.has(n))return;t.add(n),yield n,e=me.dirname(n),i=me.extname(n);let s=be.readFileSync(n,"utf-8");for(let a of[...s.matchAll(/import[\s\S]*?['"](.{3,}?)['"]/gi),...s.matchAll(/import[\s\S]*from[\s\S]*?['"](.{3,}?)['"]/gi),...s.matchAll(/require\(['"`](.+)['"`]\)/gi)])!a[1].startsWith(".")||(yield*Sg(a[1],e,t,i))}function Cl(r){return r===null?new Set:new Set(Sg(r,me.dirname(r),new Set))}var m2,g2,y2,Ag=P(()=>{u();ft();et();m2=[".js",".cjs",".mjs"],g2=["",".js",".cjs",".mjs",".ts",".cts",".mts",".jsx",".tsx"],y2=["",".ts",".cts",".mts",".tsx",".js",".cjs",".mjs",".jsx"]});function w2(r,e){if(_l.has(r))return _l.get(r);let t=mg(r,e);return _l.set(r,t).get(r)}function v2(r){let e=aa(r);if(e!==null){let[i,n,s,a]=_g.get(e)||[],o=Cl(e),l=!1,c=new Map;for(let p of o){let h=be.statSync(p).mtimeMs;c.set(p,h),(!a||!a.has(p)||h>a.get(p))&&(l=!0)}if(!l)return[i,e,n,s];for(let p of o)delete hf.cache[p];let f=ol(zr(xg(e))),d=Wi(f);return _g.set(e,[f,d,o,c]),[f,e,d,o]}let t=zr(r?.config??r??{});return t=ol(t),[t,null,Wi(t),[]]}function El(r){return({tailwindDirectives:e,registerDependency:t})=>(i,n)=>{let[s,a,o,l]=v2(r),c=new Set(l);if(e.size>0){c.add(n.opts.from);for(let b of n.messages)b.type==="dependency"&&c.add(b.file)}let[f,,d]=Vh(i,n,s,a,o,c),p=cs(f),h=w2(f,s);if(e.size>0){for(let y of h)for(let w of nl(y))t(w);let[b,v]=yg(f,h,p);for(let y of b)f.changedContent.push(y);for(let[y,w]of v.entries())d.set(y,w)}for(let b of l)t({type:"dependency",file:b});for(let[b,v]of d.entries())p.set(b,v);return f}}var Cg,_g,_l,Eg=P(()=>{u();ft();Cg=pe(Fs());wf();sa();oc();Oi();Hh();Xh();vg();kg();Ag();_g=new Cg.default({maxSize:100}),_l=new WeakMap});function Ol(r){let e=new Set,t=new Set,i=new Set;if(r.walkAtRules(n=>{n.name==="apply"&&i.add(n),n.name==="import"&&(n.params==='"tailwindcss/base"'||n.params==="'tailwindcss/base'"?(n.name="tailwind",n.params="base"):n.params==='"tailwindcss/components"'||n.params==="'tailwindcss/components'"?(n.name="tailwind",n.params="components"):n.params==='"tailwindcss/utilities"'||n.params==="'tailwindcss/utilities'"?(n.name="tailwind",n.params="utilities"):(n.params==='"tailwindcss/screens"'||n.params==="'tailwindcss/screens'"||n.params==='"tailwindcss/variants"'||n.params==="'tailwindcss/variants'")&&(n.name="tailwind",n.params="variants")),n.name==="tailwind"&&(n.params==="screens"&&(n.params="variants"),e.add(n.params)),["layer","responsive","variants"].includes(n.name)&&(["responsive","variants"].includes(n.name)&&G.warn(`${n.name}-at-rule-deprecated`,[`The \`@${n.name}\` directive has been deprecated in Tailwind CSS v3.0.`,"Use `@layer utilities` or `@layer components` instead.","https://tailwindcss.com/docs/upgrade-guide#replace-variants-with-layer"]),t.add(n))}),!e.has("base")||!e.has("components")||!e.has("utilities")){for(let n of t)if(n.name==="layer"&&["base","components","utilities"].includes(n.params)){if(!e.has(n.params))throw n.error(`\`@layer ${n.params}\` is used but no matching \`@tailwind ${n.params}\` directive is present.`)}else if(n.name==="responsive"){if(!e.has("utilities"))throw n.error("`@responsive` is used but `@tailwind utilities` is missing.")}else if(n.name==="variants"&&!e.has("utilities"))throw n.error("`@variants` is used but `@tailwind utilities` is missing.")}return{tailwindDirectives:e,applyDirectives:i}}var Og=P(()=>{u();Be()});function Qt(r,e=void 0,t=void 0){return r.map(i=>{let n=i.clone();return t!==void 0&&(n.raws.tailwind={...n.raws.tailwind,...t}),e!==void 0&&Tg(n,s=>{if(s.raws.tailwind?.preserveSource===!0&&s.source)return!1;s.source=e}),n})}function Tg(r,e){e(r)!==!1&&r.each?.(t=>Tg(t,e))}var Rg=P(()=>{u()});function Tl(r){return r=Array.isArray(r)?r:[r],r=r.map(e=>e instanceof RegExp?e.source:e),r.join("")}function Ne(r){return new RegExp(Tl(r),"g")}function qt(r){return`(?:${r.map(Tl).join("|")})`}function Rl(r){return`(?:${Tl(r)})?`}function Ig(r){return r&&x2.test(r)?r.replace(Pg,"\\$&"):r||""}var Pg,x2,Dg=P(()=>{u();Pg=/[\\^$.*+?()[\]{}|]/g,x2=RegExp(Pg.source)});function qg(r){let e=Array.from(k2(r));return t=>{let i=[];for(let n of e)for(let s of t.match(n)??[])i.push(C2(s));for(let n of i.slice()){let s=ve(n,".");for(let a=0;a=s.length-1){i.push(o);continue}let l=Number(s[a+1]);isNaN(l)?i.push(o):a++}}return i}}function*k2(r){let e=r.tailwindConfig.separator,t=r.tailwindConfig.prefix!==""?Rl(Ne([/-?/,Ig(r.tailwindConfig.prefix)])):"",i=qt([/\[[^\s:'"`]+:[^\s\[\]]+\]/,/\[[^\s:'"`\]]+:[^\s]+?\[[^\s]+\][^\s]+?\]/,Ne([qt([/-?(?:\w+)/,/@(?:\w+)/]),Rl(qt([Ne([qt([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s:\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\><$]*)?/]),Ne([qt([/-(?:\w+-)*\['[^\s]+'\]/,/-(?:\w+-)*\["[^\s]+"\]/,/-(?:\w+-)*\[`[^\s]+`\]/,/-(?:\w+-)*\[(?:[^\s\[\]]+\[[^\s\[\]]+\])*[^\s\[\]]+\]/]),/(?![{([]])/,/(?:\/[^\s'"`\\$]*)?/]),/[-\/][^\s'"`\\$={><]*/]))])]),n=[qt([Ne([/@\[[^\s"'`]+\](\/[^\s"'`]+)?/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]\/[\w_-]+/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s"'`]+\]/,e]),Ne([/[^\s"'`\[\\]+/,e])]),qt([Ne([/([^\s"'`\[\\]+-)?\[[^\s`]+\]\/[\w_-]+/,e]),Ne([/([^\s"'`\[\\]+-)?\[[^\s`]+\]/,e]),Ne([/[^\s`\[\\]+/,e])])];for(let s of n)yield Ne(["((?=((",s,")+))\\2)?",/!?/,t,i]);yield/[^<>"'`\s.(){}[\]#=%$][^<>"'`\s(){}[\]#=%$]*[^<>"'`\s.(){}[\]#=%:$]/g}function C2(r){if(!r.includes("-["))return r;let e=0,t=[],i=r.matchAll(S2);i=Array.from(i).flatMap(n=>{let[,...s]=n;return s.map((a,o)=>Object.assign([],n,{index:n.index+o,0:a}))});for(let n of i){let s=n[0],a=t[t.length-1];if(s===a?t.pop():(s==="'"||s==='"'||s==="`")&&t.push(s),!a){if(s==="["){e++;continue}else if(s==="]"){e--;continue}if(e<0)return r.substring(0,n.index-1);if(e===0&&!A2.test(s))return r.substring(0,n.index)}}return r}var S2,A2,$g=P(()=>{u();Dg();zt();S2=/([\[\]'"`])([^\[\]'"`])?/g,A2=/[^"'`\s<>\]]+/});function _2(r,e){let t=r.tailwindConfig.content.extract;return t[e]||t.DEFAULT||Mg[e]||Mg.DEFAULT(r)}function E2(r,e){let t=r.content.transform;return t[e]||t.DEFAULT||Ng[e]||Ng.DEFAULT}function O2(r,e,t,i){Li.has(e)||Li.set(e,new Lg.default({maxSize:25e3}));for(let n of r.split(` +`))if(n=n.trim(),!i.has(n))if(i.add(n),Li.get(e).has(n))for(let s of Li.get(e).get(n))t.add(s);else{let s=e(n).filter(o=>o!=="!*"),a=new Set(s);for(let o of a)t.add(o);Li.get(e).set(n,a)}}function T2(r,e){let t=e.offsets.sort(r),i={base:new Set,defaults:new Set,components:new Set,utilities:new Set,variants:new Set};for(let[n,s]of t)i[n.layer].add(s);return i}function Pl(r){return async e=>{let t={base:null,components:null,utilities:null,variants:null};if(e.walkAtRules(y=>{y.name==="tailwind"&&Object.keys(t).includes(y.params)&&(t[y.params]=y)}),Object.values(t).every(y=>y===null))return e;let i=new Set([...r.candidates??[],gt]),n=new Set;bt.DEBUG&&console.time("Reading changed files");let s=[];for(let y of r.changedContent){let w=E2(r.tailwindConfig,y.extension),k=_2(r,y.extension);s.push([y,{transformer:w,extractor:k}])}let a=500;for(let y=0;y{S=k?await be.promises.readFile(k,"utf8"):S,O2(E(S),T,i,n)}))}bt.DEBUG&&console.timeEnd("Reading changed files");let o=r.classCache.size;bt.DEBUG&&console.time("Generate rules"),bt.DEBUG&&console.time("Sorting candidates");let l=new Set([...i].sort((y,w)=>y===w?0:y{let w=y.raws.tailwind?.parentLayer;return w==="components"?t.components!==null:w==="utilities"?t.utilities!==null:!0});t.variants?(t.variants.before(Qt(b,t.variants.source,{layer:"variants"})),t.variants.remove()):b.length>0&&e.append(Qt(b,e.source,{layer:"variants"})),e.source.end=e.source.end??e.source.start;let v=b.some(y=>y.raws.tailwind?.parentLayer==="utilities");t.utilities&&p.size===0&&!v&&G.warn("content-problems",["No utility classes were detected in your source files. If this is unexpected, double-check the `content` option in your Tailwind CSS configuration.","https://tailwindcss.com/docs/content-configuration"]),bt.DEBUG&&(console.log("Potential classes: ",i.size),console.log("Active contexts: ",es.size)),r.changedContent=[],e.walkAtRules("layer",y=>{Object.keys(t).includes(y.params)&&y.remove()})}}var Lg,bt,Mg,Ng,Li,Bg=P(()=>{u();ft();Lg=pe(Fs());It();os();Be();Rg();$g();bt=Ze,Mg={DEFAULT:qg},Ng={DEFAULT:r=>r,svelte:r=>r.replace(/(?:^|\s)class:/g," ")};Li=new WeakMap});function xs(r){let e=new Map;ee.root({nodes:[r.clone()]}).walkRules(s=>{(0,vs.default)(a=>{a.walkClasses(o=>{let l=o.parent.toString(),c=e.get(l);c||e.set(l,c=new Set),c.add(o.value)})}).processSync(s.selector)});let i=Array.from(e.values(),s=>Array.from(s)),n=i.flat();return Object.assign(n,{groups:i})}function Il(r){return R2.astSync(r)}function Fg(r,e){let t=new Set;for(let i of r)t.add(i.split(e).pop());return Array.from(t)}function jg(r,e){let t=r.tailwindConfig.prefix;return typeof t=="function"?t(e):t+e}function*zg(r){for(yield r;r.parent;)yield r.parent,r=r.parent}function P2(r,e={}){let t=r.nodes;r.nodes=[];let i=r.clone(e);return r.nodes=t,i}function I2(r){for(let e of zg(r))if(r!==e){if(e.type==="root")break;r=P2(e,{nodes:[r]})}return r}function D2(r,e){let t=new Map;return r.walkRules(i=>{for(let a of zg(i))if(a.raws.tailwind?.layer!==void 0)return;let n=I2(i),s=e.offsets.create("user");for(let a of xs(i)){let o=t.get(a)||[];t.set(a,o),o.push([{layer:"user",sort:s,important:!1},n])}}),t}function q2(r,e){for(let t of r){if(e.notClassCache.has(t)||e.applyClassCache.has(t))continue;if(e.classCache.has(t)){e.applyClassCache.set(t,e.classCache.get(t).map(([n,s])=>[n,s.clone()]));continue}let i=Array.from(Yo(t,e));if(i.length===0){e.notClassCache.add(t);continue}e.applyClassCache.set(t,i)}return e.applyClassCache}function $2(r){let e=null;return{get:t=>(e=e||r(),e.get(t)),has:t=>(e=e||r(),e.has(t))}}function L2(r){return{get:e=>r.flatMap(t=>t.get(e)||[]),has:e=>r.some(t=>t.has(e))}}function Ug(r){let e=r.split(/[\s\t\n]+/g);return e[e.length-1]==="!important"?[e.slice(0,-1),!0]:[e,!1]}function Vg(r,e,t){let i=new Set,n=[];if(r.walkAtRules("apply",l=>{let[c]=Ug(l.params);for(let f of c)i.add(f);n.push(l)}),n.length===0)return;let s=L2([t,q2(i,e)]);function a(l,c,f){let d=Il(l),p=Il(c),b=Il(`.${Te(f)}`).nodes[0].nodes[0];return d.each(v=>{let y=new Set;p.each(w=>{let k=!1;w=w.clone(),w.walkClasses(S=>{S.value===b.value&&(k||(S.replaceWith(...v.nodes.map(E=>E.clone())),y.add(w),k=!0))})});for(let w of y){let k=[[]];for(let S of w.nodes)S.type==="combinator"?(k.push(S),k.push([])):k[k.length-1].push(S);w.nodes=[];for(let S of k)Array.isArray(S)&&S.sort((E,T)=>E.type==="tag"&&T.type==="class"?-1:E.type==="class"&&T.type==="tag"?1:E.type==="class"&&T.type==="pseudo"&&T.value.startsWith("::")?-1:E.type==="pseudo"&&E.value.startsWith("::")&&T.type==="class"?1:0),w.nodes=w.nodes.concat(S)}v.replaceWith(...y)}),d.toString()}let o=new Map;for(let l of n){let[c]=o.get(l.parent)||[[],l.source];o.set(l.parent,[c,l.source]);let[f,d]=Ug(l.params);if(l.parent.type==="atrule"){if(l.parent.name==="screen"){let p=l.parent.params;throw l.error(`@apply is not supported within nested at-rules like @screen. We suggest you write this as @apply ${f.map(h=>`${p}:${h}`).join(" ")} instead.`)}throw l.error(`@apply is not supported within nested at-rules like @${l.parent.name}. You can fix this by un-nesting @${l.parent.name}.`)}for(let p of f){if([jg(e,"group"),jg(e,"peer")].includes(p))throw l.error(`@apply should not be used with the '${p}' utility`);if(!s.has(p))throw l.error(`The \`${p}\` class does not exist. If \`${p}\` is a custom class, make sure it is defined within a \`@layer\` directive.`);let h=s.get(p);for(let[,b]of h)b.type!=="atrule"&&b.walkRules(()=>{throw l.error([`The \`${p}\` class cannot be used with \`@apply\` because \`@apply\` does not currently support nested CSS.`,"Rewrite the selector without nesting or configure the `tailwindcss/nesting` plugin:","https://tailwindcss.com/docs/using-with-preprocessors#nesting"].join(` +`))});c.push([p,d,h])}}for(let[l,[c,f]]of o){let d=[];for(let[h,b,v]of c){let y=[h,...Fg([h],e.tailwindConfig.separator)];for(let[w,k]of v){let S=xs(l),E=xs(k);if(E=E.groups.filter(R=>R.some(F=>y.includes(F))).flat(),E=E.concat(Fg(E,e.tailwindConfig.separator)),S.some(R=>E.includes(R)))throw k.error(`You cannot \`@apply\` the \`${h}\` utility here because it creates a circular dependency.`);let B=ee.root({nodes:[k.clone()]});B.walk(R=>{R.source=f}),(k.type!=="atrule"||k.type==="atrule"&&k.name!=="keyframes")&&B.walkRules(R=>{if(!xs(R).some(U=>U===h)){R.remove();return}let F=typeof e.tailwindConfig.important=="string"?e.tailwindConfig.important:null,_=l.raws.tailwind!==void 0&&F&&l.selector.indexOf(F)===0?l.selector.slice(F.length):l.selector;_===""&&(_=l.selector),R.selector=a(_,R.selector,h),F&&_!==l.selector&&(R.selector=is(R.selector,F)),R.walkDecls(U=>{U.important=w.important||b});let Q=(0,vs.default)().astSync(R.selector);Q.each(U=>pr(U)),R.selector=Q.toString()}),!!B.nodes[0]&&d.push([w.sort,B.nodes[0]])}}let p=e.offsets.sort(d).map(h=>h[1]);l.after(p)}for(let l of n)l.parent.nodes.length>1?l.remove():l.parent.remove();Vg(r,e,t)}function Dl(r){return e=>{let t=$2(()=>D2(e,r));Vg(e,r,t)}}var vs,R2,Hg=P(()=>{u();Ot();vs=pe(it());os();fr();Wo();ts();R2=(0,vs.default)()});var Wg=x((nq,ks)=>{u();(function(){"use strict";function r(i,n,s){if(!i)return null;r.caseSensitive||(i=i.toLowerCase());var a=r.threshold===null?null:r.threshold*i.length,o=r.thresholdAbsolute,l;a!==null&&o!==null?l=Math.min(a,o):a!==null?l=a:o!==null?l=o:l=null;var c,f,d,p,h,b=n.length;for(h=0;hs)return s+1;var l=[],c,f,d,p,h;for(c=0;c<=o;c++)l[c]=[c];for(f=0;f<=a;f++)l[0][f]=f;for(c=1;c<=o;c++){for(d=e,p=1,c>s&&(p=c-s),h=o+1,h>s+c&&(h=s+c),f=1;f<=a;f++)fh?l[c][f]=s+1:n.charAt(c-1)===i.charAt(f-1)?l[c][f]=l[c-1][f-1]:l[c][f]=Math.min(l[c-1][f-1]+1,Math.min(l[c][f-1]+1,l[c-1][f]+1)),l[c][f]s)return s+1}return l[o][a]}})()});var Qg=x((sq,Gg)=>{u();var ql="(".charCodeAt(0),$l=")".charCodeAt(0),Ss="'".charCodeAt(0),Ll='"'.charCodeAt(0),Ml="\\".charCodeAt(0),yr="/".charCodeAt(0),Nl=",".charCodeAt(0),Bl=":".charCodeAt(0),As="*".charCodeAt(0),M2="u".charCodeAt(0),N2="U".charCodeAt(0),B2="+".charCodeAt(0),F2=/^[a-f0-9?-]+$/i;Gg.exports=function(r){for(var e=[],t=r,i,n,s,a,o,l,c,f,d=0,p=t.charCodeAt(d),h=t.length,b=[{nodes:e}],v=0,y,w="",k="",S="";d{u();Yg.exports=function r(e,t,i){var n,s,a,o;for(n=0,s=e.length;n{u();function Xg(r,e){var t=r.type,i=r.value,n,s;return e&&(s=e(r))!==void 0?s:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Zg(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Zg(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Xg(r[i],e)+t;return t}return Xg(r,e)}Jg.exports=Zg});var ry=x((lq,ty)=>{u();var Cs="-".charCodeAt(0),_s="+".charCodeAt(0),Fl=".".charCodeAt(0),j2="e".charCodeAt(0),z2="E".charCodeAt(0);function U2(r){var e=r.charCodeAt(0),t;if(e===_s||e===Cs){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===Fl&&i>=48&&i<=57}return e===Fl?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}ty.exports=function(r){var e=0,t=r.length,i,n,s;if(t===0||!U2(r))return!1;for(i=r.charCodeAt(e),(i===_s||i===Cs)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===Fl&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),s=r.charCodeAt(e+2),(i===j2||i===z2)&&(n>=48&&n<=57||(n===_s||n===Cs)&&s>=48&&s<=57))for(e+=n===_s||n===Cs?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var ay=x((uq,sy)=>{u();var V2=Qg(),iy=Kg(),ny=ey();function $t(r){return this instanceof $t?(this.nodes=V2(r),this):new $t(r)}$t.prototype.toString=function(){return Array.isArray(this.nodes)?ny(this.nodes):""};$t.prototype.walk=function(r,e){return iy(this.nodes,r,e),this};$t.unit=ry();$t.walk=iy;$t.stringify=ny;sy.exports=$t});function zl(r){return typeof r=="object"&&r!==null}function H2(r,e){let t=kt(e);do if(t.pop(),(0,Mi.default)(r,t)!==void 0)break;while(t.length);return t.length?t:void 0}function br(r){return typeof r=="string"?r:r.reduce((e,t,i)=>t.includes(".")?`${e}[${t}]`:i===0?t:`${e}.${t}`,"")}function ly(r){return r.map(e=>`'${e}'`).join(", ")}function uy(r){return ly(Object.keys(r))}function Ul(r,e,t,i={}){let n=Array.isArray(e)?br(e):e.replace(/^['"]+|['"]+$/g,""),s=Array.isArray(e)?e:kt(n),a=(0,Mi.default)(r.theme,s,t);if(a===void 0){let l=`'${n}' does not exist in your theme config.`,c=s.slice(0,-1),f=(0,Mi.default)(r.theme,c);if(zl(f)){let d=Object.keys(f).filter(h=>Ul(r,[...c,h]).isValid),p=(0,oy.default)(s[s.length-1],d);p?l+=` Did you mean '${br([...c,p])}'?`:d.length>0&&(l+=` '${br(c)}' has the following valid keys: ${ly(d)}`)}else{let d=H2(r.theme,n);if(d){let p=(0,Mi.default)(r.theme,d);zl(p)?l+=` '${br(d)}' has the following keys: ${uy(p)}`:l+=` '${br(d)}' is not an object.`}else l+=` Your theme has the following top-level keys: ${uy(r.theme)}`}return{isValid:!1,error:l}}if(!(typeof a=="string"||typeof a=="number"||typeof a=="function"||a instanceof String||a instanceof Number||Array.isArray(a))){let l=`'${n}' was found but does not resolve to a string.`;if(zl(a)){let c=Object.keys(a).filter(f=>Ul(r,[...s,f]).isValid);c.length&&(l+=` Did you mean something like '${br([...s,c[0]])}'?`)}return{isValid:!1,error:l}}let[o]=s;return{isValid:!0,value:mt(o)(a,i)}}function W2(r,e,t){e=e.map(n=>fy(r,n,t));let i=[""];for(let n of e)n.type==="div"&&n.value===","?i.push(""):i[i.length-1]+=jl.default.stringify(n);return i}function fy(r,e,t){if(e.type==="function"&&t[e.value]!==void 0){let i=W2(r,e.nodes,t);e.type="word",e.value=t[e.value](r,...i)}return e}function G2(r,e,t){return Object.keys(t).some(n=>e.includes(`${n}(`))?(0,jl.default)(e).walk(n=>{fy(r,n,t)}).toString():e}function*Y2(r){r=r.replace(/^['"]+|['"]+$/g,"");let e=r.match(/^([^\s]+)(?![^\[]*\])(?:\s*\/\s*([^\/\s]+))$/),t;yield[r,void 0],e&&(r=e[1],t=e[2],yield[r,t])}function K2(r,e,t){let i=Array.from(Y2(e)).map(([n,s])=>Object.assign(Ul(r,n,t,{opacityValue:s}),{resolvedPath:n,alpha:s}));return i.find(n=>n.isValid)??i[0]}function cy(r){let e=r.tailwindConfig,t={theme:(i,n,...s)=>{let{isValid:a,value:o,error:l,alpha:c}=K2(e,n,s.length?s:void 0);if(!a){let p=i.parent,h=p?.raws.tailwind?.candidate;if(p&&h!==void 0){r.markInvalidUtilityNode(p),p.remove(),G.warn("invalid-theme-key-in-class",[`The utility \`${h}\` contains an invalid theme value and was not generated.`]);return}throw i.error(l)}let f=Xt(o),d=f!==void 0&&typeof f=="function";return(c!==void 0||d)&&(c===void 0&&(c=1),o=Je(f,c,f)),o},screen:(i,n)=>{n=n.replace(/^['"]+/g,"").replace(/['"]+$/g,"");let a=Rt(e.theme.screens).find(({name:o})=>o===n);if(!a)throw i.error(`The '${n}' screen does not exist in your theme.`);return Tt(a)}};return i=>{i.walk(n=>{let s=Q2[n.type];s!==void 0&&(n[s]=G2(n,n[s],t))})}}var Mi,oy,jl,Q2,py=P(()=>{u();Mi=pe(Ra()),oy=pe(Wg());Ci();jl=pe(ay());Zn();Yn();Yi();Lr();Fr();Be();Q2={atrule:"params",decl:"value"}});function dy({tailwindConfig:{theme:r}}){return function(e){e.walkAtRules("screen",t=>{let i=t.params,s=Rt(r.screens).find(({name:a})=>a===i);if(!s)throw t.error(`No \`${i}\` screen found.`);t.name="media",t.params=Tt(s)})}}var hy=P(()=>{u();Zn();Yn()});function X2(r){let e=r.filter(o=>o.type!=="pseudo"||o.nodes.length>0?!0:o.value.startsWith("::")||[":before",":after",":first-line",":first-letter"].includes(o.value)).reverse(),t=new Set(["tag","class","id","attribute"]),i=e.findIndex(o=>t.has(o.type));if(i===-1)return e.reverse().join("").trim();let n=e[i],s=my[n.type]?my[n.type](n):n;e=e.slice(0,i);let a=e.findIndex(o=>o.type==="combinator"&&o.value===">");return a!==-1&&(e.splice(0,a),e.unshift(Es.default.universal())),[s,...e.reverse()].join("").trim()}function J2(r){return Vl.has(r)||Vl.set(r,Z2.transformSync(r)),Vl.get(r)}function Hl({tailwindConfig:r}){return e=>{let t=new Map,i=new Set;if(e.walkAtRules("defaults",n=>{if(n.nodes&&n.nodes.length>0){i.add(n);return}let s=n.params;t.has(s)||t.set(s,new Set),t.get(s).add(n.parent),n.remove()}),we(r,"optimizeUniversalDefaults"))for(let n of i){let s=new Map,a=t.get(n.params)??[];for(let o of a)for(let l of J2(o.selector)){let c=l.includes(":-")||l.includes("::-")||l.includes(":has")?l:"__DEFAULT__",f=s.get(c)??new Set;s.set(c,f),f.add(l)}if(s.size===0){n.remove();continue}for(let[,o]of s){let l=ee.rule({source:n.source});l.selectors=[...o],l.append(n.nodes.map(c=>c.clone())),n.before(l)}n.remove()}else if(i.size){let n=ee.rule({selectors:["*","::before","::after"]});for(let a of i)n.append(a.nodes),n.parent||a.before(n),n.source||(n.source=a.source),a.remove();let s=n.clone({selectors:["::backdrop"]});n.after(s)}}}var Es,my,Z2,Vl,gy=P(()=>{u();Ot();Es=pe(it());ct();my={id(r){return Es.default.attribute({attribute:"id",operator:"=",value:r.value,quoteMark:'"'})}};Z2=(0,Es.default)(r=>r.map(e=>{let t=e.split(i=>i.type==="combinator"&&i.value===" ").pop();return X2(t)})),Vl=new Map});function Wl(){function r(e){let t=null;e.each(i=>{if(!eO.has(i.type)){t=null;return}if(t===null){t=i;return}let n=yy[i.type];i.type==="atrule"&&i.name==="font-face"?t=i:n.every(s=>(i[s]??"").replace(/\s+/g," ")===(t[s]??"").replace(/\s+/g," "))?(i.nodes&&t.append(i.nodes),i.remove()):t=i}),e.each(i=>{i.type==="atrule"&&r(i)})}return e=>{r(e)}}var yy,eO,by=P(()=>{u();yy={atrule:["name","params"],rule:["selector"]},eO=new Set(Object.keys(yy))});function Gl(){return r=>{r.walkRules(e=>{let t=new Map,i=new Set([]),n=new Map;e.walkDecls(s=>{if(s.parent===e){if(t.has(s.prop)){if(t.get(s.prop).value===s.value){i.add(t.get(s.prop)),t.set(s.prop,s);return}n.has(s.prop)||n.set(s.prop,new Set),n.get(s.prop).add(t.get(s.prop)),n.get(s.prop).add(s)}t.set(s.prop,s)}});for(let s of i)s.remove();for(let s of n.values()){let a=new Map;for(let o of s){let l=rO(o.value);l!==null&&(a.has(l)||a.set(l,new Set),a.get(l).add(o))}for(let o of a.values()){let l=Array.from(o).slice(0,-1);for(let c of l)c.remove()}}})}}function rO(r){let e=/^-?\d*.?\d+([\w%]+)?$/g.exec(r);return e?e[1]??tO:null}var tO,wy=P(()=>{u();tO=Symbol("unitless-number")});function iO(r){if(!r.walkAtRules)return;let e=new Set;if(r.walkAtRules("apply",t=>{e.add(t.parent)}),e.size!==0)for(let t of e){let i=[],n=[];for(let s of t.nodes)s.type==="atrule"&&s.name==="apply"?(n.length>0&&(i.push(n),n=[]),i.push([s])):n.push(s);if(n.length>0&&i.push(n),i.length!==1){for(let s of[...i].reverse()){let a=t.clone({nodes:[]});a.append(s),t.after(a)}t.remove()}}}function Os(){return r=>{iO(r)}}var vy=P(()=>{u()});function Ts(r){return async function(e,t){let{tailwindDirectives:i,applyDirectives:n}=Ol(e);Os()(e,t);let s=r({tailwindDirectives:i,applyDirectives:n,registerDependency(a){t.messages.push({plugin:"tailwindcss",parent:t.opts.from,...a})},createContext(a,o){return il(a,o,e)}})(e,t);if(s.tailwindConfig.separator==="-")throw new Error("The '-' character cannot be used as a custom separator in JIT mode due to parsing ambiguity. Please use another character like '_' instead.");Rf(s.tailwindConfig),await Pl(s)(e,t),Os()(e,t),Dl(s)(e,t),cy(s)(e,t),dy(s)(e,t),Hl(s)(e,t),Wl(s)(e,t),Gl(s)(e,t)}}var xy=P(()=>{u();Og();Bg();Hg();py();hy();gy();by();wy();vy();Oi();ct()});function ky(r,e){let t=null,i=null;return r.walkAtRules("config",n=>{if(i=n.source?.input.file??e.opts.from??null,i===null)throw n.error("The `@config` directive cannot be used without setting `from` in your PostCSS config.");if(t)throw n.error("Only one `@config` directive is allowed per file.");let s=n.params.match(/(['"])(.*?)\1/);if(!s)throw n.error("A path is required when using the `@config` directive.");let a=s[2];if(me.isAbsolute(a))throw n.error("The `@config` directive cannot be used with an absolute path.");if(t=me.resolve(me.dirname(i),a),!be.existsSync(t))throw n.error(`The config file at "${a}" does not exist. Make sure the path is correct and the file exists.`);n.remove()}),t||null}var Sy=P(()=>{u();ft();et()});var Ay=x((Wq,Ql)=>{u();Eg();xy();It();Sy();Ql.exports=function(e){return{postcssPlugin:"tailwindcss",plugins:[Ze.DEBUG&&function(t){return console.log(` +`),console.time("JIT TOTAL"),t},async function(t,i){e=ky(t,i)??e;let n=El(e);if(t.type==="document"){let s=t.nodes.filter(a=>a.type==="root");for(let a of s)a.type==="root"&&await Ts(n)(a,i);return}await Ts(n)(t,i)},Ze.DEBUG&&function(t){return console.timeEnd("JIT TOTAL"),console.log(` +`),t}].filter(Boolean)}};Ql.exports.postcss=!0});var _y=x((Gq,Cy)=>{u();Cy.exports=Ay()});var Yl=x((Qq,Ey)=>{u();Ey.exports=()=>["and_chr 114","and_uc 15.5","chrome 114","chrome 113","chrome 109","edge 114","firefox 114","ios_saf 16.5","ios_saf 16.4","ios_saf 16.3","ios_saf 16.1","opera 99","safari 16.5","samsung 21"]});var Rs={};Ge(Rs,{agents:()=>nO,feature:()=>sO});function sO(){return{status:"cr",title:"CSS Feature Queries",stats:{ie:{"6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","5.5":"n"},edge:{"12":"y","13":"y","14":"y","15":"y","16":"y","17":"y","18":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y"},firefox:{"2":"n","3":"n","4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y","3.5":"n","3.6":"n"},chrome:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"n","10":"n","11":"n","12":"n","13":"n","14":"n","15":"n","16":"n","17":"n","18":"n","19":"n","20":"n","21":"n","22":"n","23":"n","24":"n","25":"n","26":"n","27":"n","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","59":"y","60":"y","61":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","101":"y","102":"y","103":"y","104":"y","105":"y","106":"y","107":"y","108":"y","109":"y","110":"y","111":"y","112":"y","113":"y","114":"y","115":"y","116":"y","117":"y"},safari:{"4":"n","5":"n","6":"n","7":"n","8":"n","9":"y","10":"y","11":"y","12":"y","13":"y","14":"y","15":"y","17":"y","9.1":"y","10.1":"y","11.1":"y","12.1":"y","13.1":"y","14.1":"y","15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y",TP:"y","3.1":"n","3.2":"n","5.1":"n","6.1":"n","7.1":"n"},opera:{"9":"n","11":"n","12":"n","15":"y","16":"y","17":"y","18":"y","19":"y","20":"y","21":"y","22":"y","23":"y","24":"y","25":"y","26":"y","27":"y","28":"y","29":"y","30":"y","31":"y","32":"y","33":"y","34":"y","35":"y","36":"y","37":"y","38":"y","39":"y","40":"y","41":"y","42":"y","43":"y","44":"y","45":"y","46":"y","47":"y","48":"y","49":"y","50":"y","51":"y","52":"y","53":"y","54":"y","55":"y","56":"y","57":"y","58":"y","60":"y","62":"y","63":"y","64":"y","65":"y","66":"y","67":"y","68":"y","69":"y","70":"y","71":"y","72":"y","73":"y","74":"y","75":"y","76":"y","77":"y","78":"y","79":"y","80":"y","81":"y","82":"y","83":"y","84":"y","85":"y","86":"y","87":"y","88":"y","89":"y","90":"y","91":"y","92":"y","93":"y","94":"y","95":"y","96":"y","97":"y","98":"y","99":"y","100":"y","12.1":"y","9.5-9.6":"n","10.0-10.1":"n","10.5":"n","10.6":"n","11.1":"n","11.5":"n","11.6":"n"},ios_saf:{"8":"n","17":"y","9.0-9.2":"y","9.3":"y","10.0-10.2":"y","10.3":"y","11.0-11.2":"y","11.3-11.4":"y","12.0-12.1":"y","12.2-12.5":"y","13.0-13.1":"y","13.2":"y","13.3":"y","13.4-13.7":"y","14.0-14.4":"y","14.5-14.8":"y","15.0-15.1":"y","15.2-15.3":"y","15.4":"y","15.5":"y","15.6":"y","16.0":"y","16.1":"y","16.2":"y","16.3":"y","16.4":"y","16.5":"y","16.6":"y","3.2":"n","4.0-4.1":"n","4.2-4.3":"n","5.0-5.1":"n","6.0-6.1":"n","7.0-7.1":"n","8.1-8.4":"n"},op_mini:{all:"y"},android:{"3":"n","4":"n","114":"y","4.4":"y","4.4.3-4.4.4":"y","2.1":"n","2.2":"n","2.3":"n","4.1":"n","4.2-4.3":"n"},bb:{"7":"n","10":"n"},op_mob:{"10":"n","11":"n","12":"n","73":"y","11.1":"n","11.5":"n","12.1":"n"},and_chr:{"114":"y"},and_ff:{"115":"y"},ie_mob:{"10":"n","11":"n"},and_uc:{"15.5":"y"},samsung:{"4":"y","20":"y","21":"y","5.0-5.4":"y","6.2-6.4":"y","7.2-7.4":"y","8.2":"y","9.2":"y","10.1":"y","11.1-11.2":"y","12.0":"y","13.0":"y","14.0":"y","15.0":"y","16.0":"y","17.0":"y","18.0":"y","19.0":"y"},and_qq:{"13.1":"y"},baidu:{"13.18":"y"},kaios:{"2.5":"y","3.0-3.1":"y"}}}}var nO,Ps=P(()=>{u();nO={ie:{prefix:"ms"},edge:{prefix:"webkit",prefix_exceptions:{"12":"ms","13":"ms","14":"ms","15":"ms","16":"ms","17":"ms","18":"ms"}},firefox:{prefix:"moz"},chrome:{prefix:"webkit"},safari:{prefix:"webkit"},opera:{prefix:"webkit",prefix_exceptions:{"9":"o","11":"o","12":"o","9.5-9.6":"o","10.0-10.1":"o","10.5":"o","10.6":"o","11.1":"o","11.5":"o","11.6":"o","12.1":"o"}},ios_saf:{prefix:"webkit"},op_mini:{prefix:"o"},android:{prefix:"webkit"},bb:{prefix:"webkit"},op_mob:{prefix:"o",prefix_exceptions:{"73":"webkit"}},and_chr:{prefix:"webkit"},and_ff:{prefix:"moz"},ie_mob:{prefix:"ms"},and_uc:{prefix:"webkit",prefix_exceptions:{"15.5":"webkit"}},samsung:{prefix:"webkit"},and_qq:{prefix:"webkit"},baidu:{prefix:"webkit"},kaios:{prefix:"moz"}}});var Oy=x(()=>{u()});var _e=x((Xq,Lt)=>{u();var{list:Kl}=$e();Lt.exports.error=function(r){let e=new Error(r);throw e.autoprefixer=!0,e};Lt.exports.uniq=function(r){return[...new Set(r)]};Lt.exports.removeNote=function(r){return r.includes(" ")?r.split(" ")[0]:r};Lt.exports.escapeRegexp=function(r){return r.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};Lt.exports.regexp=function(r,e=!0){return e&&(r=this.escapeRegexp(r)),new RegExp(`(^|[\\s,(])(${r}($|[\\s(,]))`,"gi")};Lt.exports.editList=function(r,e){let t=Kl.comma(r),i=e(t,[]);if(t===i)return r;let n=r.match(/,\s*/);return n=n?n[0]:", ",i.join(n)};Lt.exports.splitSelector=function(r){return Kl.comma(r).map(e=>Kl.space(e).map(t=>t.split(/(?=\.|#)/g)))}});var Mt=x((Zq,Py)=>{u();var aO=Yl(),Ty=(Ps(),Rs).agents,oO=_e(),Ry=class{static prefixes(){if(this.prefixesCache)return this.prefixesCache;this.prefixesCache=[];for(let e in Ty)this.prefixesCache.push(`-${Ty[e].prefix}-`);return this.prefixesCache=oO.uniq(this.prefixesCache).sort((e,t)=>t.length-e.length),this.prefixesCache}static withPrefix(e){return this.prefixesRegexp||(this.prefixesRegexp=new RegExp(this.prefixes().join("|"))),this.prefixesRegexp.test(e)}constructor(e,t,i,n){this.data=e,this.options=i||{},this.browserslistOpts=n||{},this.selected=this.parse(t)}parse(e){let t={};for(let i in this.browserslistOpts)t[i]=this.browserslistOpts[i];return t.path=this.options.from,aO(e,t)}prefix(e){let[t,i]=e.split(" "),n=this.data[t],s=n.prefix_exceptions&&n.prefix_exceptions[i];return s||(s=n.prefix),`-${s}-`}isSelected(e){return this.selected.includes(e)}};Py.exports=Ry});var Ni=x((Jq,Iy)=>{u();Iy.exports={prefix(r){let e=r.match(/^(-\w+-)/);return e?e[0]:""},unprefixed(r){return r.replace(/^-\w+-/,"")}}});var wr=x((e$,qy)=>{u();var lO=Mt(),Dy=Ni(),uO=_e();function Xl(r,e){let t=new r.constructor;for(let i of Object.keys(r||{})){let n=r[i];i==="parent"&&typeof n=="object"?e&&(t[i]=e):i==="source"||i===null?t[i]=n:Array.isArray(n)?t[i]=n.map(s=>Xl(s,t)):i!=="_autoprefixerPrefix"&&i!=="_autoprefixerValues"&&i!=="proxyCache"&&(typeof n=="object"&&n!==null&&(n=Xl(n,t)),t[i]=n)}return t}var Is=class{static hack(e){return this.hacks||(this.hacks={}),e.names.map(t=>(this.hacks[t]=e,this.hacks[t]))}static load(e,t,i){let n=this.hacks&&this.hacks[e];return n?new n(e,t,i):new this(e,t,i)}static clone(e,t){let i=Xl(e);for(let n in t)i[n]=t[n];return i}constructor(e,t,i){this.prefixes=t,this.name=e,this.all=i}parentPrefix(e){let t;return typeof e._autoprefixerPrefix!="undefined"?t=e._autoprefixerPrefix:e.type==="decl"&&e.prop[0]==="-"?t=Dy.prefix(e.prop):e.type==="root"?t=!1:e.type==="rule"&&e.selector.includes(":-")&&/:(-\w+-)/.test(e.selector)?t=e.selector.match(/:(-\w+-)/)[1]:e.type==="atrule"&&e.name[0]==="-"?t=Dy.prefix(e.name):t=this.parentPrefix(e.parent),lO.prefixes().includes(t)||(t=!1),e._autoprefixerPrefix=t,e._autoprefixerPrefix}process(e,t){if(!this.check(e))return;let i=this.parentPrefix(e),n=this.prefixes.filter(a=>!i||i===uO.removeNote(a)),s=[];for(let a of n)this.add(e,a,s.concat([a]),t)&&s.push(a);return s}clone(e,t){return Is.clone(e,t)}};qy.exports=Is});var j=x((t$,My)=>{u();var fO=wr(),cO=Mt(),$y=_e(),Ly=class extends fO{check(){return!0}prefixed(e,t){return t+e}normalize(e){return e}otherPrefixes(e,t){for(let i of cO.prefixes())if(i!==t&&e.includes(i))return!0;return!1}set(e,t){return e.prop=this.prefixed(e.prop,t),e}needCascade(e){return e._autoprefixerCascade||(e._autoprefixerCascade=this.all.options.cascade!==!1&&e.raw("before").includes(` +`)),e._autoprefixerCascade}maxPrefixed(e,t){if(t._autoprefixerMax)return t._autoprefixerMax;let i=0;for(let n of e)n=$y.removeNote(n),n.length>i&&(i=n.length);return t._autoprefixerMax=i,t._autoprefixerMax}calcBefore(e,t,i=""){let s=this.maxPrefixed(e,t)-$y.removeNote(i).length,a=t.raw("before");return s>0&&(a+=Array(s).fill(" ").join("")),a}restoreBefore(e){let t=e.raw("before").split(` +`),i=t[t.length-1];this.all.group(e).up(n=>{let s=n.raw("before").split(` +`),a=s[s.length-1];a.lengtha.prop===n.prop&&a.value===n.value)))return this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,n)}isAlready(e,t){let i=this.all.group(e).up(n=>n.prop===t);return i||(i=this.all.group(e).down(n=>n.prop===t)),i}add(e,t,i,n){let s=this.prefixed(e.prop,t);if(!(this.isAlready(e,s)||this.otherPrefixes(e.value,t)))return this.insert(e,t,i,n)}process(e,t){if(!this.needCascade(e)){super.process(e,t);return}let i=super.process(e,t);!i||!i.length||(this.restoreBefore(e),e.raws.before=this.calcBefore(i,e))}old(e,t){return[this.prefixed(e,t)]}};My.exports=Ly});var By=x((r$,Ny)=>{u();Ny.exports=function r(e){return{mul:t=>new r(e*t),div:t=>new r(e/t),simplify:()=>new r(e),toString:()=>e.toString()}}});var zy=x((i$,jy)=>{u();var pO=By(),dO=wr(),Zl=_e(),hO=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi,mO=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i,Fy=class extends dO{prefixName(e,t){return e==="-moz-"?t+"--moz-device-pixel-ratio":e+t+"-device-pixel-ratio"}prefixQuery(e,t,i,n,s){return n=new pO(n),s==="dpi"?n=n.div(96):s==="dpcm"&&(n=n.mul(2.54).div(96)),n=n.simplify(),e==="-o-"&&(n=n.n+"/"+n.d),this.prefixName(e,t)+i+n}clean(e){if(!this.bad){this.bad=[];for(let t of this.prefixes)this.bad.push(this.prefixName(t,"min")),this.bad.push(this.prefixName(t,"max"))}e.params=Zl.editList(e.params,t=>t.filter(i=>this.bad.every(n=>!i.includes(n))))}process(e){let t=this.parentPrefix(e),i=t?[t]:this.prefixes;e.params=Zl.editList(e.params,(n,s)=>{for(let a of n){if(!a.includes("min-resolution")&&!a.includes("max-resolution")){s.push(a);continue}for(let o of i){let l=a.replace(hO,c=>{let f=c.match(mO);return this.prefixQuery(o,f[1],f[2],f[3],f[4])});s.push(l)}s.push(a)}return Zl.uniq(s)})}};jy.exports=Fy});var Vy=x((n$,Uy)=>{u();var Jl="(".charCodeAt(0),eu=")".charCodeAt(0),Ds="'".charCodeAt(0),tu='"'.charCodeAt(0),ru="\\".charCodeAt(0),vr="/".charCodeAt(0),iu=",".charCodeAt(0),nu=":".charCodeAt(0),qs="*".charCodeAt(0),gO="u".charCodeAt(0),yO="U".charCodeAt(0),bO="+".charCodeAt(0),wO=/^[a-f0-9?-]+$/i;Uy.exports=function(r){for(var e=[],t=r,i,n,s,a,o,l,c,f,d=0,p=t.charCodeAt(d),h=t.length,b=[{nodes:e}],v=0,y,w="",k="",S="";d{u();Hy.exports=function r(e,t,i){var n,s,a,o;for(n=0,s=e.length;n{u();function Gy(r,e){var t=r.type,i=r.value,n,s;return e&&(s=e(r))!==void 0?s:t==="word"||t==="space"?i:t==="string"?(n=r.quote||"",n+i+(r.unclosed?"":n)):t==="comment"?"/*"+i+(r.unclosed?"":"*/"):t==="div"?(r.before||"")+i+(r.after||""):Array.isArray(r.nodes)?(n=Qy(r.nodes,e),t!=="function"?n:i+"("+(r.before||"")+n+(r.after||"")+(r.unclosed?"":")")):i}function Qy(r,e){var t,i;if(Array.isArray(r)){for(t="",i=r.length-1;~i;i-=1)t=Gy(r[i],e)+t;return t}return Gy(r,e)}Yy.exports=Qy});var Zy=x((o$,Xy)=>{u();var $s="-".charCodeAt(0),Ls="+".charCodeAt(0),su=".".charCodeAt(0),vO="e".charCodeAt(0),xO="E".charCodeAt(0);function kO(r){var e=r.charCodeAt(0),t;if(e===Ls||e===$s){if(t=r.charCodeAt(1),t>=48&&t<=57)return!0;var i=r.charCodeAt(2);return t===su&&i>=48&&i<=57}return e===su?(t=r.charCodeAt(1),t>=48&&t<=57):e>=48&&e<=57}Xy.exports=function(r){var e=0,t=r.length,i,n,s;if(t===0||!kO(r))return!1;for(i=r.charCodeAt(e),(i===Ls||i===$s)&&e++;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),i===su&&n>=48&&n<=57)for(e+=2;e57));)e+=1;if(i=r.charCodeAt(e),n=r.charCodeAt(e+1),s=r.charCodeAt(e+2),(i===vO||i===xO)&&(n>=48&&n<=57||(n===Ls||n===$s)&&s>=48&&s<=57))for(e+=n===Ls||n===$s?3:2;e57));)e+=1;return{number:r.slice(0,e),unit:r.slice(e)}}});var Ms=x((l$,tb)=>{u();var SO=Vy(),Jy=Wy(),eb=Ky();function Nt(r){return this instanceof Nt?(this.nodes=SO(r),this):new Nt(r)}Nt.prototype.toString=function(){return Array.isArray(this.nodes)?eb(this.nodes):""};Nt.prototype.walk=function(r,e){return Jy(this.nodes,r,e),this};Nt.unit=Zy();Nt.walk=Jy;Nt.stringify=eb;tb.exports=Nt});var ab=x((u$,sb)=>{u();var{list:AO}=$e(),rb=Ms(),CO=Mt(),ib=Ni(),nb=class{constructor(e){this.props=["transition","transition-property"],this.prefixes=e}add(e,t){let i,n,s=this.prefixes.add[e.prop],a=this.ruleVendorPrefixes(e),o=a||s&&s.prefixes||[],l=this.parse(e.value),c=l.map(h=>this.findProp(h)),f=[];if(c.some(h=>h[0]==="-"))return;for(let h of l){if(n=this.findProp(h),n[0]==="-")continue;let b=this.prefixes.add[n];if(!(!b||!b.prefixes))for(i of b.prefixes){if(a&&!a.some(y=>i.includes(y)))continue;let v=this.prefixes.prefixed(n,i);v!=="-ms-transform"&&!c.includes(v)&&(this.disabled(n,i)||f.push(this.clone(n,v,h)))}}l=l.concat(f);let d=this.stringify(l),p=this.stringify(this.cleanFromUnprefixed(l,"-webkit-"));if(o.includes("-webkit-")&&this.cloneBefore(e,`-webkit-${e.prop}`,p),this.cloneBefore(e,e.prop,p),o.includes("-o-")){let h=this.stringify(this.cleanFromUnprefixed(l,"-o-"));this.cloneBefore(e,`-o-${e.prop}`,h)}for(i of o)if(i!=="-webkit-"&&i!=="-o-"){let h=this.stringify(this.cleanOtherPrefixes(l,i));this.cloneBefore(e,i+e.prop,h)}d!==e.value&&!this.already(e,e.prop,d)&&(this.checkForWarning(t,e),e.cloneBefore(),e.value=d)}findProp(e){let t=e[0].value;if(/^\d/.test(t)){for(let[i,n]of e.entries())if(i!==0&&n.type==="word")return n.value}return t}already(e,t,i){return e.parent.some(n=>n.prop===t&&n.value===i)}cloneBefore(e,t,i){this.already(e,t,i)||e.cloneBefore({prop:t,value:i})}checkForWarning(e,t){if(t.prop!=="transition-property")return;let i=!1,n=!1;t.parent.each(s=>{if(s.type!=="decl"||s.prop.indexOf("transition-")!==0)return;let a=AO.comma(s.value);if(s.prop==="transition-property"){a.forEach(o=>{let l=this.prefixes.add[o];l&&l.prefixes&&l.prefixes.length>0&&(i=!0)});return}return n=n||a.length>1,!1}),i&&n&&t.warn(e,"Replace transition-property to transition, because Autoprefixer could not support any cases of transition-property and other transition-*")}remove(e){let t=this.parse(e.value);t=t.filter(a=>{let o=this.prefixes.remove[this.findProp(a)];return!o||!o.remove});let i=this.stringify(t);if(e.value===i)return;if(t.length===0){e.remove();return}let n=e.parent.some(a=>a.prop===e.prop&&a.value===i),s=e.parent.some(a=>a!==e&&a.prop===e.prop&&a.value.length>i.length);if(n||s){e.remove();return}e.value=i}parse(e){let t=rb(e),i=[],n=[];for(let s of t.nodes)n.push(s),s.type==="div"&&s.value===","&&(i.push(n),n=[]);return i.push(n),i.filter(s=>s.length>0)}stringify(e){if(e.length===0)return"";let t=[];for(let i of e)i[i.length-1].type!=="div"&&i.push(this.div(e)),t=t.concat(i);return t[0].type==="div"&&(t=t.slice(1)),t[t.length-1].type==="div"&&(t=t.slice(0,-2+1||void 0)),rb.stringify({nodes:t})}clone(e,t,i){let n=[],s=!1;for(let a of i)!s&&a.type==="word"&&a.value===e?(n.push({type:"word",value:t}),s=!0):n.push(a);return n}div(e){for(let t of e)for(let i of t)if(i.type==="div"&&i.value===",")return i;return{type:"div",value:",",after:" "}}cleanOtherPrefixes(e,t){return e.filter(i=>{let n=ib.prefix(this.findProp(i));return n===""||n===t})}cleanFromUnprefixed(e,t){let i=e.map(s=>this.findProp(s)).filter(s=>s.slice(0,t.length)===t).map(s=>this.prefixes.unprefixed(s)),n=[];for(let s of e){let a=this.findProp(s),o=ib.prefix(a);!i.includes(a)&&(o===t||o==="")&&n.push(s)}return n}disabled(e,t){let i=["order","justify-content","align-self","align-content"];if(e.includes("flex")||i.includes(e)){if(this.prefixes.options.flexbox===!1)return!0;if(this.prefixes.options.flexbox==="no-2009")return t.includes("2009")}}ruleVendorPrefixes(e){let{parent:t}=e;if(t.type!=="rule")return!1;if(!t.selector.includes(":-"))return!1;let i=CO.prefixes().filter(n=>t.selector.includes(":"+n));return i.length>0?i:!1}};sb.exports=nb});var xr=x((f$,lb)=>{u();var _O=_e(),ob=class{constructor(e,t,i,n){this.unprefixed=e,this.prefixed=t,this.string=i||t,this.regexp=n||_O.regexp(t)}check(e){return e.includes(this.string)?!!e.match(this.regexp):!1}};lb.exports=ob});var He=x((c$,fb)=>{u();var EO=wr(),OO=xr(),TO=Ni(),RO=_e(),ub=class extends EO{static save(e,t){let i=t.prop,n=[];for(let s in t._autoprefixerValues){let a=t._autoprefixerValues[s];if(a===t.value)continue;let o,l=TO.prefix(i);if(l==="-pie-")continue;if(l===s){o=t.value=a,n.push(o);continue}let c=e.prefixed(i,s),f=t.parent;if(!f.every(b=>b.prop!==c)){n.push(o);continue}let d=a.replace(/\s+/," ");if(f.some(b=>b.prop===t.prop&&b.value.replace(/\s+/," ")===d)){n.push(o);continue}let h=this.clone(t,{value:a});o=t.parent.insertBefore(t,h),n.push(o)}return n}check(e){let t=e.value;return t.includes(this.name)?!!t.match(this.regexp()):!1}regexp(){return this.regexpCache||(this.regexpCache=RO.regexp(this.name))}replace(e,t){return e.replace(this.regexp(),`$1${t}$2`)}value(e){return e.raws.value&&e.raws.value.value===e.value?e.raws.value.raw:e.value}add(e,t){e._autoprefixerValues||(e._autoprefixerValues={});let i=e._autoprefixerValues[t]||this.value(e),n;do if(n=i,i=this.replace(i,t),i===!1)return;while(i!==n);e._autoprefixerValues[t]=i}old(e){return new OO(this.name,e+this.name)}};fb.exports=ub});var Bt=x((p$,cb)=>{u();cb.exports={}});var ou=x((d$,hb)=>{u();var pb=Ms(),PO=He(),IO=Bt().insertAreas,DO=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i,qO=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i,$O=/(!\s*)?autoprefixer:\s*ignore\s+next/i,LO=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i,MO=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function au(r){return r.parent.some(e=>e.prop==="grid-template"||e.prop==="grid-template-areas")}function NO(r){let e=r.parent.some(i=>i.prop==="grid-template-rows"),t=r.parent.some(i=>i.prop==="grid-template-columns");return e&&t}var db=class{constructor(e){this.prefixes=e}add(e,t){let i=this.prefixes.add["@resolution"],n=this.prefixes.add["@keyframes"],s=this.prefixes.add["@viewport"],a=this.prefixes.add["@supports"];e.walkAtRules(f=>{if(f.name==="keyframes"){if(!this.disabled(f,t))return n&&n.process(f)}else if(f.name==="viewport"){if(!this.disabled(f,t))return s&&s.process(f)}else if(f.name==="supports"){if(this.prefixes.options.supports!==!1&&!this.disabled(f,t))return a.process(f)}else if(f.name==="media"&&f.params.includes("-resolution")&&!this.disabled(f,t))return i&&i.process(f)}),e.walkRules(f=>{if(!this.disabled(f,t))return this.prefixes.add.selectors.map(d=>d.process(f,t))});function o(f){return f.parent.nodes.some(d=>{if(d.type!=="decl")return!1;let p=d.prop==="display"&&/(inline-)?grid/.test(d.value),h=d.prop.startsWith("grid-template"),b=/^grid-([A-z]+-)?gap/.test(d.prop);return p||h||b})}function l(f){return f.parent.some(d=>d.prop==="display"&&/(inline-)?flex/.test(d.value))}let c=this.gridStatus(e,t)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;return e.walkDecls(f=>{if(this.disabledDecl(f,t))return;let d=f.parent,p=f.prop,h=f.value;if(p==="grid-row-span"){t.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:f});return}else if(p==="grid-column-span"){t.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:f});return}else if(p==="display"&&h==="box"){t.warn("You should write display: flex by final spec instead of display: box",{node:f});return}else if(p==="text-emphasis-position")(h==="under"||h==="over")&&t.warn("You should use 2 values for text-emphasis-position For example, `under left` instead of just `under`.",{node:f});else if(/^(align|justify|place)-(items|content)$/.test(p)&&l(f))(h==="start"||h==="end")&&t.warn(`${h} value has mixed support, consider using flex-${h} instead`,{node:f});else if(p==="text-decoration-skip"&&h==="ink")t.warn("Replace text-decoration-skip: ink to text-decoration-skip-ink: auto, because spec had been changed",{node:f});else{if(c&&this.gridStatus(f,t))if(f.value==="subgrid"&&t.warn("IE does not support subgrid",{node:f}),/^(align|justify|place)-items$/.test(p)&&o(f)){let v=p.replace("-items","-self");t.warn(`IE does not support ${p} on grid containers. Try using ${v} on child elements instead: ${f.parent.selector} > * { ${v}: ${f.value} }`,{node:f})}else if(/^(align|justify|place)-content$/.test(p)&&o(f))t.warn(`IE does not support ${f.prop} on grid containers`,{node:f});else if(p==="display"&&f.value==="contents"){t.warn("Please do not use display: contents; if you have grid setting enabled",{node:f});return}else if(f.prop==="grid-gap"){let v=this.gridStatus(f,t);v==="autoplace"&&!NO(f)&&!au(f)?t.warn("grid-gap only works if grid-template(-areas) is being used or both rows and columns have been declared and cells have not been manually placed inside the explicit grid",{node:f}):(v===!0||v==="no-autoplace")&&!au(f)&&t.warn("grid-gap only works if grid-template(-areas) is being used",{node:f})}else if(p==="grid-auto-columns"){t.warn("grid-auto-columns is not supported by IE",{node:f});return}else if(p==="grid-auto-rows"){t.warn("grid-auto-rows is not supported by IE",{node:f});return}else if(p==="grid-auto-flow"){let v=d.some(w=>w.prop==="grid-template-rows"),y=d.some(w=>w.prop==="grid-template-columns");au(f)?t.warn("grid-auto-flow is not supported by IE",{node:f}):h.includes("dense")?t.warn("grid-auto-flow: dense is not supported by IE",{node:f}):!v&&!y&&t.warn("grid-auto-flow works only if grid-template-rows and grid-template-columns are present in the same rule",{node:f});return}else if(h.includes("auto-fit")){t.warn("auto-fit value is not supported by IE",{node:f,word:"auto-fit"});return}else if(h.includes("auto-fill")){t.warn("auto-fill value is not supported by IE",{node:f,word:"auto-fill"});return}else p.startsWith("grid-template")&&h.includes("[")&&t.warn("Autoprefixer currently does not support line names. Try using grid-template-areas instead.",{node:f,word:"["});if(h.includes("radial-gradient"))if(qO.test(f.value))t.warn("Gradient has outdated direction syntax. New syntax is like `closest-side at 0 0` instead of `0 0, closest-side`.",{node:f});else{let v=pb(h);for(let y of v.nodes)if(y.type==="function"&&y.value==="radial-gradient")for(let w of y.nodes)w.type==="word"&&(w.value==="cover"?t.warn("Gradient has outdated direction syntax. Replace `cover` to `farthest-corner`.",{node:f}):w.value==="contain"&&t.warn("Gradient has outdated direction syntax. Replace `contain` to `closest-side`.",{node:f}))}h.includes("linear-gradient")&&DO.test(h)&&t.warn("Gradient has outdated direction syntax. New syntax is like `to left` instead of `right`.",{node:f})}MO.includes(f.prop)&&(f.value.includes("-fill-available")||(f.value.includes("fill-available")?t.warn("Replace fill-available to stretch, because spec had been changed",{node:f}):f.value.includes("fill")&&pb(h).nodes.some(y=>y.type==="word"&&y.value==="fill")&&t.warn("Replace fill to stretch, because spec had been changed",{node:f})));let b;if(f.prop==="transition"||f.prop==="transition-property")return this.prefixes.transition.add(f,t);if(f.prop==="align-self"){if(this.displayType(f)!=="grid"&&this.prefixes.options.flexbox!==!1&&(b=this.prefixes.add["align-self"],b&&b.prefixes&&b.process(f)),this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-row-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="justify-self"){if(this.gridStatus(f,t)!==!1&&(b=this.prefixes.add["grid-column-align"],b&&b.prefixes))return b.process(f,t)}else if(f.prop==="place-self"){if(b=this.prefixes.add["place-self"],b&&b.prefixes&&this.gridStatus(f,t)!==!1)return b.process(f,t)}else if(b=this.prefixes.add[f.prop],b&&b.prefixes)return b.process(f,t)}),this.gridStatus(e,t)&&IO(e,this.disabled),e.walkDecls(f=>{if(this.disabledValue(f,t))return;let d=this.prefixes.unprefixed(f.prop),p=this.prefixes.values("add",d);if(Array.isArray(p))for(let h of p)h.process&&h.process(f,t);PO.save(this.prefixes,f)})}remove(e,t){let i=this.prefixes.remove["@resolution"];e.walkAtRules((n,s)=>{this.prefixes.remove[`@${n.name}`]?this.disabled(n,t)||n.parent.removeChild(s):n.name==="media"&&n.params.includes("-resolution")&&i&&i.clean(n)});for(let n of this.prefixes.remove.selectors)e.walkRules((s,a)=>{n.check(s)&&(this.disabled(s,t)||s.parent.removeChild(a))});return e.walkDecls((n,s)=>{if(this.disabled(n,t))return;let a=n.parent,o=this.prefixes.unprefixed(n.prop);if((n.prop==="transition"||n.prop==="transition-property")&&this.prefixes.transition.remove(n),this.prefixes.remove[n.prop]&&this.prefixes.remove[n.prop].remove){let l=this.prefixes.group(n).down(c=>this.prefixes.normalize(c.prop)===o);if(o==="flex-flow"&&(l=!0),n.prop==="-webkit-box-orient"){let c={"flex-direction":!0,"flex-flow":!0};if(!n.parent.some(f=>c[f.prop]))return}if(l&&!this.withHackValue(n)){n.raw("before").includes(` +`)&&this.reduceSpaces(n),a.removeChild(s);return}}for(let l of this.prefixes.values("remove",o)){if(!l.check||!l.check(n.value))continue;if(o=l.unprefixed,this.prefixes.group(n).down(f=>f.value.includes(o))){a.removeChild(s);return}}})}withHackValue(e){return e.prop==="-webkit-background-clip"&&e.value==="text"}disabledValue(e,t){return this.gridStatus(e,t)===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("grid")||this.prefixes.options.flexbox===!1&&e.type==="decl"&&e.prop==="display"&&e.value.includes("flex")||e.type==="decl"&&e.prop==="content"?!0:this.disabled(e,t)}disabledDecl(e,t){if(this.gridStatus(e,t)===!1&&e.type==="decl"&&(e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.prefixes.options.flexbox===!1&&e.type==="decl"){let i=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||i.includes(e.prop))return!0}return this.disabled(e,t)}disabled(e,t){if(!e)return!1;if(e._autoprefixerDisabled!==void 0)return e._autoprefixerDisabled;if(e.parent){let n=e.prev();if(n&&n.type==="comment"&&$O.test(n.text))return e._autoprefixerDisabled=!0,e._autoprefixerSelfDisabled=!0,!0}let i=null;if(e.nodes){let n;e.each(s=>{s.type==="comment"&&/(!\s*)?autoprefixer:\s*(off|on)/i.test(s.text)&&(typeof n!="undefined"?t.warn("Second Autoprefixer control comment was ignored. Autoprefixer applies control comment to whole block, not to next rules.",{node:s}):n=/on/i.test(s.text))}),n!==void 0&&(i=!n)}if(!e.nodes||i===null)if(e.parent){let n=this.disabled(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else i=!1;return e._autoprefixerDisabled=i,i}reduceSpaces(e){let t=!1;if(this.prefixes.group(e).up(()=>(t=!0,!0)),t)return;let i=e.raw("before").split(` +`),n=i[i.length-1].length,s=!1;this.prefixes.group(e).down(a=>{i=a.raw("before").split(` +`);let o=i.length-1;i[o].length>n&&(s===!1&&(s=i[o].length-n),i[o]=i[o].slice(0,-s),a.raws.before=i.join(` +`))})}displayType(e){for(let t of e.parent.nodes)if(t.prop==="display"){if(t.value.includes("flex"))return"flex";if(t.value.includes("grid"))return"grid"}return!1}gridStatus(e,t){if(!e)return!1;if(e._autoprefixerGridStatus!==void 0)return e._autoprefixerGridStatus;let i=null;if(e.nodes){let n;e.each(s=>{if(s.type==="comment"&&LO.test(s.text)){let a=/:\s*autoplace/i.test(s.text),o=/no-autoplace/i.test(s.text);typeof n!="undefined"?t.warn("Second Autoprefixer grid control comment was ignored. Autoprefixer applies control comments to the whole block, not to the next rules.",{node:s}):a?n="autoplace":o?n=!0:n=/on/i.test(s.text)}}),n!==void 0&&(i=n)}if(e.type==="atrule"&&e.name==="supports"){let n=e.params;n.includes("grid")&&n.includes("auto")&&(i=!1)}if(!e.nodes||i===null)if(e.parent){let n=this.gridStatus(e.parent,t);e.parent._autoprefixerSelfDisabled===!0?i=!1:i=n}else typeof this.prefixes.options.grid!="undefined"?i=this.prefixes.options.grid:typeof m.env.AUTOPREFIXER_GRID!="undefined"?m.env.AUTOPREFIXER_GRID==="autoplace"?i="autoplace":i=!0:i=!1;return e._autoprefixerGridStatus=i,i}};hb.exports=db});var gb=x((h$,mb)=>{u();mb.exports={A:{A:{"2":"K E F G A B JC"},B:{"1":"C L M H N D O P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 KC zB J K E F G A B C L M H N D O k l LC MC"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB 0B dB 1B eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R S T U V W X Y Z a b c d e f g h i j n o p q r s t u v w x y z I uB 3B 4B","2":"0 1 2 3 4 5 6 7 J K E F G A B C L M H N D O k l"},E:{"1":"G A B C L M H D RC 6B vB wB 7B SC TC 8B 9B xB AC yB BC CC DC EC FC GC UC","2":"0 J K E F NC 5B OC PC QC"},F:{"1":"1 2 3 4 5 6 7 8 9 H N D O k l AB BB CB DB EB FB GB HB IB JB KB LB MB NB OB PB QB RB SB TB UB VB WB XB YB ZB aB bB cB dB eB fB gB hB iB jB kB lB mB nB oB m pB qB rB sB tB P Q R 2B S T U V W X Y Z a b c d e f g h i j wB","2":"G B C VC WC XC YC vB HC ZC"},G:{"1":"D fC gC hC iC jC kC lC mC nC oC pC qC rC sC tC 8B 9B xB AC yB BC CC DC EC FC GC","2":"F 5B aC IC bC cC dC eC"},H:{"1":"uC"},I:{"1":"I zC 0C","2":"zB J vC wC xC yC IC"},J:{"2":"E A"},K:{"1":"m","2":"A B C vB HC wB"},L:{"1":"I"},M:{"1":"uB"},N:{"2":"A B"},O:{"1":"xB"},P:{"1":"J k l 1C 2C 3C 4C 5C 6B 6C 7C 8C 9C AD yB BD CD DD"},Q:{"1":"7B"},R:{"1":"ED"},S:{"1":"FD GD"}},B:4,C:"CSS Feature Queries"}});var vb=x((m$,wb)=>{u();function yb(r){return r[r.length-1]}var bb={parse(r){let e=[""],t=[e];for(let i of r){if(i==="("){e=[""],yb(t).push(e),t.push(e);continue}if(i===")"){t.pop(),e=yb(t),e.push("");continue}e[e.length-1]+=i}return t[0]},stringify(r){let e="";for(let t of r){if(typeof t=="object"){e+=`(${bb.stringify(t)})`;continue}e+=t}return e}};wb.exports=bb});var Cb=x((g$,Ab)=>{u();var BO=gb(),{feature:FO}=(Ps(),Rs),{parse:jO}=$e(),zO=Mt(),lu=vb(),UO=He(),VO=_e(),xb=FO(BO),kb=[];for(let r in xb.stats){let e=xb.stats[r];for(let t in e){let i=e[t];/y/.test(i)&&kb.push(r+" "+t)}}var Sb=class{constructor(e,t){this.Prefixes=e,this.all=t}prefixer(){if(this.prefixerCache)return this.prefixerCache;let e=this.all.browsers.selected.filter(i=>kb.includes(i)),t=new zO(this.all.browsers.data,e,this.all.options);return this.prefixerCache=new this.Prefixes(this.all.data,t,this.all.options),this.prefixerCache}parse(e){let t=e.split(":"),i=t[0],n=t[1];return n||(n=""),[i.trim(),n.trim()]}virtual(e){let[t,i]=this.parse(e),n=jO("a{}").first;return n.append({prop:t,value:i,raws:{before:""}}),n}prefixed(e){let t=this.virtual(e);if(this.disabled(t.first))return t.nodes;let i={warn:()=>null},n=this.prefixer().add[t.first.prop];n&&n.process&&n.process(t.first,i);for(let s of t.nodes){for(let a of this.prefixer().values("add",t.first.prop))a.process(s);UO.save(this.all,s)}return t.nodes}isNot(e){return typeof e=="string"&&/not\s*/i.test(e)}isOr(e){return typeof e=="string"&&/\s*or\s*/i.test(e)}isProp(e){return typeof e=="object"&&e.length===1&&typeof e[0]=="string"}isHack(e,t){return!new RegExp(`(\\(|\\s)${VO.escapeRegexp(t)}:`).test(e)}toRemove(e,t){let[i,n]=this.parse(e),s=this.all.unprefixed(i),a=this.all.cleaner();if(a.remove[i]&&a.remove[i].remove&&!this.isHack(t,s))return!0;for(let o of a.values("remove",s))if(o.check(n))return!0;return!1}remove(e,t){let i=0;for(;itypeof t!="object"?t:t.length===1&&typeof t[0]=="object"?this.cleanBrackets(t[0]):this.cleanBrackets(t))}convert(e){let t=[""];for(let i of e)t.push([`${i.prop}: ${i.value}`]),t.push(" or ");return t[t.length-1]="",t}normalize(e){if(typeof e!="object")return e;if(e=e.filter(t=>t!==""),typeof e[0]=="string"){let t=e[0].trim();if(t.includes(":")||t==="selector"||t==="not selector")return[lu.stringify(e)]}return e.map(t=>this.normalize(t))}add(e,t){return e.map(i=>{if(this.isProp(i)){let n=this.prefixed(i[0]);return n.length>1?this.convert(n):i}return typeof i=="object"?this.add(i,t):i})}process(e){let t=lu.parse(e.params);t=this.normalize(t),t=this.remove(t,e.params),t=this.add(t,e.params),t=this.cleanBrackets(t),e.params=lu.stringify(t)}disabled(e){if(!this.all.options.grid&&(e.prop==="display"&&e.value.includes("grid")||e.prop.includes("grid")||e.prop==="justify-items"))return!0;if(this.all.options.flexbox===!1){if(e.prop==="display"&&e.value.includes("flex"))return!0;let t=["order","justify-content","align-items","align-content"];if(e.prop.includes("flex")||t.includes(e.prop))return!0}return!1}};Ab.exports=Sb});var Ob=x((y$,Eb)=>{u();var _b=class{constructor(e,t){this.prefix=t,this.prefixed=e.prefixed(this.prefix),this.regexp=e.regexp(this.prefix),this.prefixeds=e.possible().map(i=>[e.prefixed(i),e.regexp(i)]),this.unprefixed=e.name,this.nameRegexp=e.regexp()}isHack(e){let t=e.parent.index(e)+1,i=e.parent.nodes;for(;t{u();var{list:HO}=$e(),WO=Ob(),GO=wr(),QO=Mt(),YO=_e(),Tb=class extends GO{constructor(e,t,i){super(e,t,i);this.regexpCache=new Map}check(e){return e.selector.includes(this.name)?!!e.selector.match(this.regexp()):!1}prefixed(e){return this.name.replace(/^(\W*)/,`$1${e}`)}regexp(e){if(!this.regexpCache.has(e)){let t=e?this.prefixed(e):this.name;this.regexpCache.set(e,new RegExp(`(^|[^:"'=])${YO.escapeRegexp(t)}`,"gi"))}return this.regexpCache.get(e)}possible(){return QO.prefixes()}prefixeds(e){if(e._autoprefixerPrefixeds){if(e._autoprefixerPrefixeds[this.name])return e._autoprefixerPrefixeds}else e._autoprefixerPrefixeds={};let t={};if(e.selector.includes(",")){let n=HO.comma(e.selector).filter(s=>s.includes(this.name));for(let s of this.possible())t[s]=n.map(a=>this.replace(a,s)).join(", ")}else for(let i of this.possible())t[i]=this.replace(e.selector,i);return e._autoprefixerPrefixeds[this.name]=t,e._autoprefixerPrefixeds}already(e,t,i){let n=e.parent.index(e)-1;for(;n>=0;){let s=e.parent.nodes[n];if(s.type!=="rule")return!1;let a=!1;for(let o in t[this.name]){let l=t[this.name][o];if(s.selector===l){if(i===o)return!0;a=!0;break}}if(!a)return!1;n-=1}return!1}replace(e,t){return e.replace(this.regexp(),`$1${this.prefixed(t)}`)}add(e,t){let i=this.prefixeds(e);if(this.already(e,i,t))return;let n=this.clone(e,{selector:i[this.name][t]});e.parent.insertBefore(e,n)}old(e){return new WO(this,e)}};Rb.exports=Tb});var Db=x((w$,Ib)=>{u();var KO=wr(),Pb=class extends KO{add(e,t){let i=t+e.name;if(e.parent.some(a=>a.name===i&&a.params===e.params))return;let s=this.clone(e,{name:i});return e.parent.insertBefore(e,s)}process(e){let t=this.parentPrefix(e);for(let i of this.prefixes)(!t||t===i)&&this.add(e,i)}};Ib.exports=Pb});var $b=x((v$,qb)=>{u();var XO=kr(),uu=class extends XO{prefixed(e){return e==="-webkit-"?":-webkit-full-screen":e==="-moz-"?":-moz-full-screen":`:${e}fullscreen`}};uu.names=[":fullscreen"];qb.exports=uu});var Mb=x((x$,Lb)=>{u();var ZO=kr(),fu=class extends ZO{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(e){return e==="-webkit-"?"::-webkit-input-placeholder":e==="-ms-"?"::-ms-input-placeholder":e==="-ms- old"?":-ms-input-placeholder":e==="-moz- old"?":-moz-placeholder":`::${e}placeholder`}};fu.names=["::placeholder"];Lb.exports=fu});var Bb=x((k$,Nb)=>{u();var JO=kr(),cu=class extends JO{prefixed(e){return e==="-ms-"?":-ms-input-placeholder":`:${e}placeholder-shown`}};cu.names=[":placeholder-shown"];Nb.exports=cu});var jb=x((S$,Fb)=>{u();var eT=kr(),tT=_e(),pu=class extends eT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=tT.uniq(this.prefixes.map(n=>"-webkit-")))}prefixed(e){return e==="-webkit-"?"::-webkit-file-upload-button":`::${e}file-selector-button`}};pu.names=["::file-selector-button"];Fb.exports=pu});var Pe=x((A$,zb)=>{u();zb.exports=function(r){let e;return r==="-webkit- 2009"||r==="-moz-"?e=2009:r==="-ms-"?e=2012:r==="-webkit-"&&(e="final"),r==="-webkit- 2009"&&(r="-webkit-"),[e,r]}});var Wb=x((C$,Hb)=>{u();var Ub=$e().list,Vb=Pe(),rT=j(),Sr=class extends rT{prefixed(e,t){let i;return[i,t]=Vb(t),i===2009?t+"box-flex":super.prefixed(e,t)}normalize(){return"flex"}set(e,t){let i=Vb(t)[0];if(i===2009)return e.value=Ub.space(e.value)[0],e.value=Sr.oldValues[e.value]||e.value,super.set(e,t);if(i===2012){let n=Ub.space(e.value);n.length===3&&n[2]==="0"&&(e.value=n.slice(0,2).concat("0px").join(" "))}return super.set(e,t)}};Sr.names=["flex","box-flex"];Sr.oldValues={auto:"1",none:"0"};Hb.exports=Sr});var Yb=x((_$,Qb)=>{u();var Gb=Pe(),iT=j(),du=class extends iT{prefixed(e,t){let i;return[i,t]=Gb(t),i===2009?t+"box-ordinal-group":i===2012?t+"flex-order":super.prefixed(e,t)}normalize(){return"order"}set(e,t){return Gb(t)[0]===2009&&/\d/.test(e.value)?(e.value=(parseInt(e.value)+1).toString(),super.set(e,t)):super.set(e,t)}};du.names=["order","flex-order","box-ordinal-group"];Qb.exports=du});var Xb=x((E$,Kb)=>{u();var nT=j(),hu=class extends nT{check(e){let t=e.value;return!t.toLowerCase().includes("alpha(")&&!t.includes("DXImageTransform.Microsoft")&&!t.includes("data:image/svg+xml")}};hu.names=["filter"];Kb.exports=hu});var Jb=x((O$,Zb)=>{u();var sT=j(),mu=class extends sT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=this.clone(e),a=e.prop.replace(/end$/,"start"),o=t+e.prop.replace(/end$/,"span");if(!e.parent.some(l=>l.prop===o)){if(s.prop=o,e.value.includes("span"))s.value=e.value.replace(/span\s/i,"");else{let l;if(e.parent.walkDecls(a,c=>{l=c}),l){let c=Number(e.value)-Number(l.value)+"";s.value=c}else e.warn(n,`Can not prefix ${e.prop} (${a} is not found)`)}e.cloneBefore(s)}}};mu.names=["grid-row-end","grid-column-end"];Zb.exports=mu});var tw=x((T$,ew)=>{u();var aT=j(),gu=class extends aT{check(e){return!e.value.split(/\s+/).some(t=>{let i=t.toLowerCase();return i==="reverse"||i==="alternate-reverse"})}};gu.names=["animation","animation-direction"];ew.exports=gu});var iw=x((R$,rw)=>{u();var oT=Pe(),lT=j(),yu=class extends lT{insert(e,t,i){let n;if([n,t]=oT(t),n!==2009)return super.insert(e,t,i);let s=e.value.split(/\s+/).filter(d=>d!=="wrap"&&d!=="nowrap"&&"wrap-reverse");if(s.length===0||e.parent.some(d=>d.prop===t+"box-orient"||d.prop===t+"box-direction"))return;let o=s[0],l=o.includes("row")?"horizontal":"vertical",c=o.includes("reverse")?"reverse":"normal",f=this.clone(e);return f.prop=t+"box-orient",f.value=l,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f),f=this.clone(e),f.prop=t+"box-direction",f.value=c,this.needCascade(e)&&(f.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,f)}};yu.names=["flex-flow","box-direction","box-orient"];rw.exports=yu});var sw=x((P$,nw)=>{u();var uT=Pe(),fT=j(),bu=class extends fT{normalize(){return"flex"}prefixed(e,t){let i;return[i,t]=uT(t),i===2009?t+"box-flex":i===2012?t+"flex-positive":super.prefixed(e,t)}};bu.names=["flex-grow","flex-positive"];nw.exports=bu});var ow=x((I$,aw)=>{u();var cT=Pe(),pT=j(),wu=class extends pT{set(e,t){if(cT(t)[0]!==2009)return super.set(e,t)}};wu.names=["flex-wrap"];aw.exports=wu});var uw=x((D$,lw)=>{u();var dT=j(),Ar=Bt(),vu=class extends dT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=Ar.parse(e),[a,o]=Ar.translate(s,0,2),[l,c]=Ar.translate(s,1,3);[["grid-row",a],["grid-row-span",o],["grid-column",l],["grid-column-span",c]].forEach(([f,d])=>{Ar.insertDecl(e,f,d)}),Ar.warnTemplateSelectorNotFound(e,n),Ar.warnIfGridRowColumnExists(e,n)}};vu.names=["grid-area"];lw.exports=vu});var cw=x((q$,fw)=>{u();var hT=j(),Bi=Bt(),xu=class extends hT{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(a=>a.prop==="-ms-grid-row-align"))return;let[[n,s]]=Bi.parse(e);s?(Bi.insertDecl(e,"grid-row-align",n),Bi.insertDecl(e,"grid-column-align",s)):(Bi.insertDecl(e,"grid-row-align",n),Bi.insertDecl(e,"grid-column-align",n))}};xu.names=["place-self"];fw.exports=xu});var dw=x(($$,pw)=>{u();var mT=j(),ku=class extends mT{check(e){let t=e.value;return!t.includes("/")||t.includes("span")}normalize(e){return e.replace("-start","")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-ms-"&&(i=i.replace("-start","")),i}};ku.names=["grid-row-start","grid-column-start"];pw.exports=ku});var gw=x((L$,mw)=>{u();var hw=Pe(),gT=j(),Cr=class extends gT{check(e){return e.parent&&!e.parent.some(t=>t.prop&&t.prop.startsWith("grid-"))}prefixed(e,t){let i;return[i,t]=hw(t),i===2012?t+"flex-item-align":super.prefixed(e,t)}normalize(){return"align-self"}set(e,t){let i=hw(t)[0];if(i===2012)return e.value=Cr.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Cr.names=["align-self","flex-item-align"];Cr.oldValues={"flex-end":"end","flex-start":"start"};mw.exports=Cr});var bw=x((M$,yw)=>{u();var yT=j(),bT=_e(),Su=class extends yT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=bT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Su.names=["appearance"];yw.exports=Su});var xw=x((N$,vw)=>{u();var ww=Pe(),wT=j(),Au=class extends wT{normalize(){return"flex-basis"}prefixed(e,t){let i;return[i,t]=ww(t),i===2012?t+"flex-preferred-size":super.prefixed(e,t)}set(e,t){let i;if([i,t]=ww(t),i===2012||i==="final")return super.set(e,t)}};Au.names=["flex-basis","flex-preferred-size"];vw.exports=Au});var Sw=x((B$,kw)=>{u();var vT=j(),Cu=class extends vT{normalize(){return this.name.replace("box-image","border")}prefixed(e,t){let i=super.prefixed(e,t);return t==="-webkit-"&&(i=i.replace("border","box-image")),i}};Cu.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];kw.exports=Cu});var Cw=x((F$,Aw)=>{u();var xT=j(),lt=class extends xT{insert(e,t,i){let n=e.prop==="mask-composite",s;n?s=e.value.split(","):s=e.value.match(lt.regexp)||[],s=s.map(c=>c.trim()).filter(c=>c);let a=s.length,o;if(a&&(o=this.clone(e),o.value=s.map(c=>lt.oldValues[c]||c).join(", "),s.includes("intersect")&&(o.value+=", xor"),o.prop=t+"mask-composite"),n)return a?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):void 0;let l=this.clone(e);return l.prop=t+l.prop,a&&(l.value=l.value.replace(lt.regexp,"")),this.needCascade(e)&&(l.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,l),a?(this.needCascade(e)&&(o.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,o)):e}};lt.names=["mask","mask-composite"];lt.oldValues={add:"source-over",subtract:"source-out",intersect:"source-in",exclude:"xor"};lt.regexp=new RegExp(`\\s+(${Object.keys(lt.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");Aw.exports=lt});var Ow=x((j$,Ew)=>{u();var _w=Pe(),kT=j(),_r=class extends kT{prefixed(e,t){let i;return[i,t]=_w(t),i===2009?t+"box-align":i===2012?t+"flex-align":super.prefixed(e,t)}normalize(){return"align-items"}set(e,t){let i=_w(t)[0];return(i===2009||i===2012)&&(e.value=_r.oldValues[e.value]||e.value),super.set(e,t)}};_r.names=["align-items","flex-align","box-align"];_r.oldValues={"flex-end":"end","flex-start":"start"};Ew.exports=_r});var Rw=x((z$,Tw)=>{u();var ST=j(),_u=class extends ST{set(e,t){return t==="-ms-"&&e.value==="contain"&&(e.value="element"),super.set(e,t)}insert(e,t,i){if(!(e.value==="all"&&t==="-ms-"))return super.insert(e,t,i)}};_u.names=["user-select"];Tw.exports=_u});var Dw=x((U$,Iw)=>{u();var Pw=Pe(),AT=j(),Eu=class extends AT{normalize(){return"flex-shrink"}prefixed(e,t){let i;return[i,t]=Pw(t),i===2012?t+"flex-negative":super.prefixed(e,t)}set(e,t){let i;if([i,t]=Pw(t),i===2012||i==="final")return super.set(e,t)}};Eu.names=["flex-shrink","flex-negative"];Iw.exports=Eu});var $w=x((V$,qw)=>{u();var CT=j(),Ou=class extends CT{prefixed(e,t){return`${t}column-${e}`}normalize(e){return e.includes("inside")?"break-inside":e.includes("before")?"break-before":"break-after"}set(e,t){return(e.prop==="break-inside"&&e.value==="avoid-column"||e.value==="avoid-page")&&(e.value="avoid"),super.set(e,t)}insert(e,t,i){if(e.prop!=="break-inside")return super.insert(e,t,i);if(!(/region/i.test(e.value)||/page/i.test(e.value)))return super.insert(e,t,i)}};Ou.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];qw.exports=Ou});var Mw=x((H$,Lw)=>{u();var _T=j(),Tu=class extends _T{prefixed(e,t){return t+"print-color-adjust"}normalize(){return"color-adjust"}};Tu.names=["color-adjust","print-color-adjust"];Lw.exports=Tu});var Bw=x((W$,Nw)=>{u();var ET=j(),Er=class extends ET{insert(e,t,i){if(t==="-ms-"){let n=this.set(this.clone(e),t);this.needCascade(e)&&(n.raws.before=this.calcBefore(i,e,t));let s="ltr";return e.parent.nodes.forEach(a=>{a.prop==="direction"&&(a.value==="rtl"||a.value==="ltr")&&(s=a.value)}),n.value=Er.msValues[s][e.value]||e.value,e.parent.insertBefore(e,n)}return super.insert(e,t,i)}};Er.names=["writing-mode"];Er.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-rl":"tb-rl","vertical-lr":"tb-lr"},rtl:{"horizontal-tb":"rl-tb","vertical-rl":"bt-rl","vertical-lr":"bt-lr"}};Nw.exports=Er});var jw=x((G$,Fw)=>{u();var OT=j(),Ru=class extends OT{set(e,t){return e.value=e.value.replace(/\s+fill(\s)/,"$1"),super.set(e,t)}};Ru.names=["border-image"];Fw.exports=Ru});var Vw=x((Q$,Uw)=>{u();var zw=Pe(),TT=j(),Or=class extends TT{prefixed(e,t){let i;return[i,t]=zw(t),i===2012?t+"flex-line-pack":super.prefixed(e,t)}normalize(){return"align-content"}set(e,t){let i=zw(t)[0];if(i===2012)return e.value=Or.oldValues[e.value]||e.value,super.set(e,t);if(i==="final")return super.set(e,t)}};Or.names=["align-content","flex-line-pack"];Or.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};Uw.exports=Or});var Ww=x((Y$,Hw)=>{u();var RT=j(),We=class extends RT{prefixed(e,t){return t==="-moz-"?t+(We.toMozilla[e]||e):super.prefixed(e,t)}normalize(e){return We.toNormal[e]||e}};We.names=["border-radius"];We.toMozilla={};We.toNormal={};for(let r of["top","bottom"])for(let e of["left","right"]){let t=`border-${r}-${e}-radius`,i=`border-radius-${r}${e}`;We.names.push(t),We.names.push(i),We.toMozilla[t]=i,We.toNormal[i]=t}Hw.exports=We});var Qw=x((K$,Gw)=>{u();var PT=j(),Pu=class extends PT{prefixed(e,t){return e.includes("-start")?t+e.replace("-block-start","-before"):t+e.replace("-block-end","-after")}normalize(e){return e.includes("-before")?e.replace("-before","-block-start"):e.replace("-after","-block-end")}};Pu.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];Gw.exports=Pu});var Kw=x((X$,Yw)=>{u();var IT=j(),{parseTemplate:DT,warnMissedAreas:qT,getGridGap:$T,warnGridGap:LT,inheritGridGap:MT}=Bt(),Iu=class extends IT{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);if(e.parent.some(h=>h.prop==="-ms-grid-rows"))return;let s=$T(e),a=MT(e,s),{rows:o,columns:l,areas:c}=DT({decl:e,gap:a||s}),f=Object.keys(c).length>0,d=Boolean(o),p=Boolean(l);return LT({gap:s,hasColumns:p,decl:e,result:n}),qT(c,e,n),(d&&p||f)&&e.cloneBefore({prop:"-ms-grid-rows",value:o,raws:{}}),p&&e.cloneBefore({prop:"-ms-grid-columns",value:l,raws:{}}),e}};Iu.names=["grid-template"];Yw.exports=Iu});var Zw=x((Z$,Xw)=>{u();var NT=j(),Du=class extends NT{prefixed(e,t){return t+e.replace("-inline","")}normalize(e){return e.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}};Du.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];Xw.exports=Du});var e0=x((J$,Jw)=>{u();var BT=j(),qu=class extends BT{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-row-align"}normalize(){return"align-self"}};qu.names=["grid-row-align"];Jw.exports=qu});var r0=x((eL,t0)=>{u();var FT=j(),Tr=class extends FT{keyframeParents(e){let{parent:t}=e;for(;t;){if(t.type==="atrule"&&t.name==="keyframes")return!0;({parent:t}=t)}return!1}contain3d(e){if(e.prop==="transform-origin")return!1;for(let t of Tr.functions3d)if(e.value.includes(`${t}(`))return!0;return!1}set(e,t){return e=super.set(e,t),t==="-ms-"&&(e.value=e.value.replace(/rotatez/gi,"rotate")),e}insert(e,t,i){if(t==="-ms-"){if(!this.contain3d(e)&&!this.keyframeParents(e))return super.insert(e,t,i)}else if(t==="-o-"){if(!this.contain3d(e))return super.insert(e,t,i)}else return super.insert(e,t,i)}};Tr.names=["transform","transform-origin"];Tr.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];t0.exports=Tr});var s0=x((tL,n0)=>{u();var i0=Pe(),jT=j(),$u=class extends jT{normalize(){return"flex-direction"}insert(e,t,i){let n;if([n,t]=i0(t),n!==2009)return super.insert(e,t,i);if(e.parent.some(f=>f.prop===t+"box-orient"||f.prop===t+"box-direction"))return;let a=e.value,o,l;a==="inherit"||a==="initial"||a==="unset"?(o=a,l=a):(o=a.includes("row")?"horizontal":"vertical",l=a.includes("reverse")?"reverse":"normal");let c=this.clone(e);return c.prop=t+"box-orient",c.value=o,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c),c=this.clone(e),c.prop=t+"box-direction",c.value=l,this.needCascade(e)&&(c.raws.before=this.calcBefore(i,e,t)),e.parent.insertBefore(e,c)}old(e,t){let i;return[i,t]=i0(t),i===2009?[t+"box-orient",t+"box-direction"]:super.old(e,t)}};$u.names=["flex-direction","box-direction","box-orient"];n0.exports=$u});var o0=x((rL,a0)=>{u();var zT=j(),Lu=class extends zT{check(e){return e.value==="pixelated"}prefixed(e,t){return t==="-ms-"?"-ms-interpolation-mode":super.prefixed(e,t)}set(e,t){return t!=="-ms-"?super.set(e,t):(e.prop="-ms-interpolation-mode",e.value="nearest-neighbor",e)}normalize(){return"image-rendering"}process(e,t){return super.process(e,t)}};Lu.names=["image-rendering","interpolation-mode"];a0.exports=Lu});var u0=x((iL,l0)=>{u();var UT=j(),VT=_e(),Mu=class extends UT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=VT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}};Mu.names=["backdrop-filter"];l0.exports=Mu});var c0=x((nL,f0)=>{u();var HT=j(),WT=_e(),Nu=class extends HT{constructor(e,t,i){super(e,t,i);this.prefixes&&(this.prefixes=WT.uniq(this.prefixes.map(n=>n==="-ms-"?"-webkit-":n)))}check(e){return e.value.toLowerCase()==="text"}};Nu.names=["background-clip"];f0.exports=Nu});var d0=x((sL,p0)=>{u();var GT=j(),QT=["none","underline","overline","line-through","blink","inherit","initial","unset"],Bu=class extends GT{check(e){return e.value.split(/\s+/).some(t=>!QT.includes(t))}};Bu.names=["text-decoration"];p0.exports=Bu});var g0=x((aL,m0)=>{u();var h0=Pe(),YT=j(),Rr=class extends YT{prefixed(e,t){let i;return[i,t]=h0(t),i===2009?t+"box-pack":i===2012?t+"flex-pack":super.prefixed(e,t)}normalize(){return"justify-content"}set(e,t){let i=h0(t)[0];if(i===2009||i===2012){let n=Rr.oldValues[e.value]||e.value;if(e.value=n,i!==2009||n!=="distribute")return super.set(e,t)}else if(i==="final")return super.set(e,t)}};Rr.names=["justify-content","flex-pack","box-pack"];Rr.oldValues={"flex-end":"end","flex-start":"start","space-between":"justify","space-around":"distribute"};m0.exports=Rr});var b0=x((oL,y0)=>{u();var KT=j(),Fu=class extends KT{set(e,t){let i=e.value.toLowerCase();return t==="-webkit-"&&!i.includes(" ")&&i!=="contain"&&i!=="cover"&&(e.value=e.value+" "+e.value),super.set(e,t)}};Fu.names=["background-size"];y0.exports=Fu});var v0=x((lL,w0)=>{u();var XT=j(),ju=Bt(),zu=class extends XT{insert(e,t,i){if(t!=="-ms-")return super.insert(e,t,i);let n=ju.parse(e),[s,a]=ju.translate(n,0,1);n[0]&&n[0].includes("span")&&(a=n[0].join("").replace(/\D/g,"")),[[e.prop,s],[`${e.prop}-span`,a]].forEach(([l,c])=>{ju.insertDecl(e,l,c)})}};zu.names=["grid-row","grid-column"];w0.exports=zu});var S0=x((uL,k0)=>{u();var ZT=j(),{prefixTrackProp:x0,prefixTrackValue:JT,autoplaceGridItems:eR,getGridGap:tR,inheritGridGap:rR}=Bt(),iR=ou(),Uu=class extends ZT{prefixed(e,t){return t==="-ms-"?x0({prop:e,prefix:t}):super.prefixed(e,t)}normalize(e){return e.replace(/^grid-(rows|columns)/,"grid-template-$1")}insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let{parent:s,prop:a,value:o}=e,l=a.includes("rows"),c=a.includes("columns"),f=s.some(k=>k.prop==="grid-template"||k.prop==="grid-template-areas");if(f&&l)return!1;let d=new iR({options:{}}),p=d.gridStatus(s,n),h=tR(e);h=rR(e,h)||h;let b=l?h.row:h.column;(p==="no-autoplace"||p===!0)&&!f&&(b=null);let v=JT({value:o,gap:b});e.cloneBefore({prop:x0({prop:a,prefix:t}),value:v});let y=s.nodes.find(k=>k.prop==="grid-auto-flow"),w="row";if(y&&!d.disabled(y,n)&&(w=y.value.trim()),p==="autoplace"){let k=s.nodes.find(E=>E.prop==="grid-template-rows");if(!k&&f)return;if(!k&&!f){e.warn(n,"Autoplacement does not work without grid-template-rows property");return}!s.nodes.find(E=>E.prop==="grid-template-columns")&&!f&&e.warn(n,"Autoplacement does not work without grid-template-columns property"),c&&!f&&eR(e,n,h,w)}}};Uu.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];k0.exports=Uu});var C0=x((fL,A0)=>{u();var nR=j(),Vu=class extends nR{check(e){return!e.value.includes("flex-")&&e.value!=="baseline"}prefixed(e,t){return t+"grid-column-align"}normalize(){return"justify-self"}};Vu.names=["grid-column-align"];A0.exports=Vu});var E0=x((cL,_0)=>{u();var sR=j(),Hu=class extends sR{prefixed(e,t){return t+"scroll-chaining"}normalize(){return"overscroll-behavior"}set(e,t){return e.value==="auto"?e.value="chained":(e.value==="none"||e.value==="contain")&&(e.value="none"),super.set(e,t)}};Hu.names=["overscroll-behavior","scroll-chaining"];_0.exports=Hu});var R0=x((pL,T0)=>{u();var aR=j(),{parseGridAreas:oR,warnMissedAreas:lR,prefixTrackProp:uR,prefixTrackValue:O0,getGridGap:fR,warnGridGap:cR,inheritGridGap:pR}=Bt();function dR(r){return r.trim().slice(1,-1).split(/["']\s*["']?/g)}var Wu=class extends aR{insert(e,t,i,n){if(t!=="-ms-")return super.insert(e,t,i);let s=!1,a=!1,o=e.parent,l=fR(e);l=pR(e,l)||l,o.walkDecls(/-ms-grid-rows/,d=>d.remove()),o.walkDecls(/grid-template-(rows|columns)/,d=>{if(d.prop==="grid-template-rows"){a=!0;let{prop:p,value:h}=d;d.cloneBefore({prop:uR({prop:p,prefix:t}),value:O0({value:h,gap:l.row})})}else s=!0});let c=dR(e.value);s&&!a&&l.row&&c.length>1&&e.cloneBefore({prop:"-ms-grid-rows",value:O0({value:`repeat(${c.length}, auto)`,gap:l.row}),raws:{}}),cR({gap:l,hasColumns:s,decl:e,result:n});let f=oR({rows:c,gap:l});return lR(f,e,n),e}};Wu.names=["grid-template-areas"];T0.exports=Wu});var I0=x((dL,P0)=>{u();var hR=j(),Gu=class extends hR{set(e,t){return t==="-webkit-"&&(e.value=e.value.replace(/\s*(right|left)\s*/i,"")),super.set(e,t)}};Gu.names=["text-emphasis-position"];P0.exports=Gu});var q0=x((hL,D0)=>{u();var mR=j(),Qu=class extends mR{set(e,t){return e.prop==="text-decoration-skip-ink"&&e.value==="auto"?(e.prop=t+"text-decoration-skip",e.value="ink",e):super.set(e,t)}};Qu.names=["text-decoration-skip-ink","text-decoration-skip"];D0.exports=Qu});var F0=x((mL,B0)=>{u();"use strict";B0.exports={wrap:$0,limit:L0,validate:M0,test:Yu,curry:gR,name:N0};function $0(r,e,t){var i=e-r;return((t-r)%i+i)%i+r}function L0(r,e,t){return Math.max(r,Math.min(e,t))}function M0(r,e,t,i,n){if(!Yu(r,e,t,i,n))throw new Error(t+" is outside of range ["+r+","+e+")");return t}function Yu(r,e,t,i,n){return!(te||n&&t===e||i&&t===r)}function N0(r,e,t,i){return(t?"(":"[")+r+","+e+(i?")":"]")}function gR(r,e,t,i){var n=N0.bind(null,r,e,t,i);return{wrap:$0.bind(null,r,e),limit:L0.bind(null,r,e),validate:function(s){return M0(r,e,s,t,i)},test:function(s){return Yu(r,e,s,t,i)},toString:n,name:n}}});var U0=x((gL,z0)=>{u();var Ku=Ms(),yR=F0(),bR=xr(),wR=He(),vR=_e(),j0=/top|left|right|bottom/gi,wt=class extends wR{replace(e,t){let i=Ku(e);for(let n of i.nodes)if(n.type==="function"&&n.value===this.name)if(n.nodes=this.newDirection(n.nodes),n.nodes=this.normalize(n.nodes),t==="-webkit- old"){if(!this.oldWebkit(n))return!1}else n.nodes=this.convertDirection(n.nodes),n.value=t+n.value;return i.toString()}replaceFirst(e,...t){return t.map(n=>n===" "?{type:"space",value:n}:{type:"word",value:n}).concat(e.slice(1))}normalizeUnit(e,t){return`${parseFloat(e)/t*360}deg`}normalize(e){if(!e[0])return e;if(/-?\d+(.\d+)?grad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,400);else if(/-?\d+(.\d+)?rad/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,2*Math.PI);else if(/-?\d+(.\d+)?turn/.test(e[0].value))e[0].value=this.normalizeUnit(e[0].value,1);else if(e[0].value.includes("deg")){let t=parseFloat(e[0].value);t=yR.wrap(0,360,t),e[0].value=`${t}deg`}return e[0].value==="0deg"?e=this.replaceFirst(e,"to"," ","top"):e[0].value==="90deg"?e=this.replaceFirst(e,"to"," ","right"):e[0].value==="180deg"?e=this.replaceFirst(e,"to"," ","bottom"):e[0].value==="270deg"&&(e=this.replaceFirst(e,"to"," ","left")),e}newDirection(e){if(e[0].value==="to"||(j0.lastIndex=0,!j0.test(e[0].value)))return e;e.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let t=2;t0&&(e[0].value==="to"?this.fixDirection(e):e[0].value.includes("deg")?this.fixAngle(e):this.isRadial(e)&&this.fixRadial(e)),e}fixDirection(e){e.splice(0,2);for(let t of e){if(t.type==="div")break;t.type==="word"&&(t.value=this.revertDirection(t.value))}}fixAngle(e){let t=e[0].value;t=parseFloat(t),t=Math.abs(450-t)%360,t=this.roundFloat(t,3),e[0].value=`${t}deg`}fixRadial(e){let t=[],i=[],n,s,a,o,l;for(o=0;o{u();var xR=xr(),kR=He();function V0(r){return new RegExp(`(^|[\\s,(])(${r}($|[\\s),]))`,"gi")}var Xu=class extends kR{regexp(){return this.regexpCache||(this.regexpCache=V0(this.name)),this.regexpCache}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}replace(e,t){return t==="-moz-"&&this.isStretch()?e.replace(this.regexp(),"$1-moz-available$3"):t==="-webkit-"&&this.isStretch()?e.replace(this.regexp(),"$1-webkit-fill-available$3"):super.replace(e,t)}old(e){let t=e+this.name;return this.isStretch()&&(e==="-moz-"?t="-moz-available":e==="-webkit-"&&(t="-webkit-fill-available")),new xR(this.name,t,t,V0(t))}add(e,t){if(!(e.prop.includes("grid")&&t!=="-webkit-"))return super.add(e,t)}};Xu.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];H0.exports=Xu});var Y0=x((bL,Q0)=>{u();var G0=xr(),SR=He(),Zu=class extends SR{replace(e,t){return t==="-webkit-"?e.replace(this.regexp(),"$1-webkit-optimize-contrast"):t==="-moz-"?e.replace(this.regexp(),"$1-moz-crisp-edges"):super.replace(e,t)}old(e){return e==="-webkit-"?new G0(this.name,"-webkit-optimize-contrast"):e==="-moz-"?new G0(this.name,"-moz-crisp-edges"):super.old(e)}};Zu.names=["pixelated"];Q0.exports=Zu});var X0=x((wL,K0)=>{u();var AR=He(),Ju=class extends AR{replace(e,t){let i=super.replace(e,t);return t==="-webkit-"&&(i=i.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")),i}};Ju.names=["image-set"];K0.exports=Ju});var J0=x((vL,Z0)=>{u();var CR=$e().list,_R=He(),ef=class extends _R{replace(e,t){return CR.space(e).map(i=>{if(i.slice(0,+this.name.length+1)!==this.name+"(")return i;let n=i.lastIndexOf(")"),s=i.slice(n+1),a=i.slice(this.name.length+1,n);if(t==="-webkit-"){let o=a.match(/\d*.?\d+%?/);o?(a=a.slice(o[0].length).trim(),a+=`, ${o[0]}`):a+=", 0.5"}return t+this.name+"("+a+")"+s}).join(" ")}};ef.names=["cross-fade"];Z0.exports=ef});var tv=x((xL,ev)=>{u();var ER=Pe(),OR=xr(),TR=He(),tf=class extends TR{constructor(e,t){super(e,t);e==="display-flex"&&(this.name="flex")}check(e){return e.prop==="display"&&e.value===this.name}prefixed(e){let t,i;return[t,e]=ER(e),t===2009?this.name==="flex"?i="box":i="inline-box":t===2012?this.name==="flex"?i="flexbox":i="inline-flexbox":t==="final"&&(i=this.name),e+i}replace(e,t){return this.prefixed(t)}old(e){let t=this.prefixed(e);if(!!t)return new OR(this.name,t)}};tf.names=["display-flex","inline-flex"];ev.exports=tf});var iv=x((kL,rv)=>{u();var RR=He(),rf=class extends RR{constructor(e,t){super(e,t);e==="display-grid"&&(this.name="grid")}check(e){return e.prop==="display"&&e.value===this.name}};rf.names=["display-grid","inline-grid"];rv.exports=rf});var sv=x((SL,nv)=>{u();var PR=He(),nf=class extends PR{constructor(e,t){super(e,t);e==="filter-function"&&(this.name="filter")}};nf.names=["filter","filter-function"];nv.exports=nf});var uv=x((AL,lv)=>{u();var av=Ni(),z=j(),ov=zy(),IR=ab(),DR=ou(),qR=Cb(),sf=Mt(),Pr=kr(),$R=Db(),ut=He(),Ir=_e(),LR=$b(),MR=Mb(),NR=Bb(),BR=jb(),FR=Wb(),jR=Yb(),zR=Xb(),UR=Jb(),VR=tw(),HR=iw(),WR=sw(),GR=ow(),QR=uw(),YR=cw(),KR=dw(),XR=gw(),ZR=bw(),JR=xw(),e5=Sw(),t5=Cw(),r5=Ow(),i5=Rw(),n5=Dw(),s5=$w(),a5=Mw(),o5=Bw(),l5=jw(),u5=Vw(),f5=Ww(),c5=Qw(),p5=Kw(),d5=Zw(),h5=e0(),m5=r0(),g5=s0(),y5=o0(),b5=u0(),w5=c0(),v5=d0(),x5=g0(),k5=b0(),S5=v0(),A5=S0(),C5=C0(),_5=E0(),E5=R0(),O5=I0(),T5=q0(),R5=U0(),P5=W0(),I5=Y0(),D5=X0(),q5=J0(),$5=tv(),L5=iv(),M5=sv();Pr.hack(LR);Pr.hack(MR);Pr.hack(NR);Pr.hack(BR);z.hack(FR);z.hack(jR);z.hack(zR);z.hack(UR);z.hack(VR);z.hack(HR);z.hack(WR);z.hack(GR);z.hack(QR);z.hack(YR);z.hack(KR);z.hack(XR);z.hack(ZR);z.hack(JR);z.hack(e5);z.hack(t5);z.hack(r5);z.hack(i5);z.hack(n5);z.hack(s5);z.hack(a5);z.hack(o5);z.hack(l5);z.hack(u5);z.hack(f5);z.hack(c5);z.hack(p5);z.hack(d5);z.hack(h5);z.hack(m5);z.hack(g5);z.hack(y5);z.hack(b5);z.hack(w5);z.hack(v5);z.hack(x5);z.hack(k5);z.hack(S5);z.hack(A5);z.hack(C5);z.hack(_5);z.hack(E5);z.hack(O5);z.hack(T5);ut.hack(R5);ut.hack(P5);ut.hack(I5);ut.hack(D5);ut.hack(q5);ut.hack($5);ut.hack(L5);ut.hack(M5);var af=new Map,Fi=class{constructor(e,t,i={}){this.data=e,this.browsers=t,this.options=i,[this.add,this.remove]=this.preprocess(this.select(this.data)),this.transition=new IR(this),this.processor=new DR(this)}cleaner(){if(this.cleanerCache)return this.cleanerCache;if(this.browsers.selected.length){let e=new sf(this.browsers.data,[]);this.cleanerCache=new Fi(this.data,e,this.options)}else return this;return this.cleanerCache}select(e){let t={add:{},remove:{}};for(let i in e){let n=e[i],s=n.browsers.map(l=>{let c=l.split(" ");return{browser:`${c[0]} ${c[1]}`,note:c[2]}}),a=s.filter(l=>l.note).map(l=>`${this.browsers.prefix(l.browser)} ${l.note}`);a=Ir.uniq(a),s=s.filter(l=>this.browsers.isSelected(l.browser)).map(l=>{let c=this.browsers.prefix(l.browser);return l.note?`${c} ${l.note}`:c}),s=this.sort(Ir.uniq(s)),this.options.flexbox==="no-2009"&&(s=s.filter(l=>!l.includes("2009")));let o=n.browsers.map(l=>this.browsers.prefix(l));n.mistakes&&(o=o.concat(n.mistakes)),o=o.concat(a),o=Ir.uniq(o),s.length?(t.add[i]=s,s.length!s.includes(l)))):t.remove[i]=o}return t}sort(e){return e.sort((t,i)=>{let n=Ir.removeNote(t).length,s=Ir.removeNote(i).length;return n===s?i.length-t.length:s-n})}preprocess(e){let t={selectors:[],"@supports":new qR(Fi,this)};for(let n in e.add){let s=e.add[n];if(n==="@keyframes"||n==="@viewport")t[n]=new $R(n,s,this);else if(n==="@resolution")t[n]=new ov(n,s,this);else if(this.data[n].selector)t.selectors.push(Pr.load(n,s,this));else{let a=this.data[n].props;if(a){let o=ut.load(n,s,this);for(let l of a)t[l]||(t[l]={values:[]}),t[l].values.push(o)}else{let o=t[n]&&t[n].values||[];t[n]=z.load(n,s,this),t[n].values=o}}}let i={selectors:[]};for(let n in e.remove){let s=e.remove[n];if(this.data[n].selector){let a=Pr.load(n,s);for(let o of s)i.selectors.push(a.old(o))}else if(n==="@keyframes"||n==="@viewport")for(let a of s){let o=`@${a}${n.slice(1)}`;i[o]={remove:!0}}else if(n==="@resolution")i[n]=new ov(n,s,this);else{let a=this.data[n].props;if(a){let o=ut.load(n,[],this);for(let l of s){let c=o.old(l);if(c)for(let f of a)i[f]||(i[f]={}),i[f].values||(i[f].values=[]),i[f].values.push(c)}}else for(let o of s){let l=this.decl(n).old(n,o);if(n==="align-self"){let c=t[n]&&t[n].prefixes;if(c){if(o==="-webkit- 2009"&&c.includes("-webkit-"))continue;if(o==="-webkit-"&&c.includes("-webkit- 2009"))continue}}for(let c of l)i[c]||(i[c]={}),i[c].remove=!0}}}return[t,i]}decl(e){return af.has(e)||af.set(e,z.load(e)),af.get(e)}unprefixed(e){let t=this.normalize(av.unprefixed(e));return t==="flex-direction"&&(t="flex-flow"),t}normalize(e){return this.decl(e).normalize(e)}prefixed(e,t){return e=av.unprefixed(e),this.decl(e).prefixed(e,t)}values(e,t){let i=this[e],n=i["*"]&&i["*"].values,s=i[t]&&i[t].values;return n&&s?Ir.uniq(n.concat(s)):n||s||[]}group(e){let t=e.parent,i=t.index(e),{length:n}=t.nodes,s=this.unprefixed(e.prop),a=(o,l)=>{for(i+=o;i>=0&&i{u();fv.exports={"backdrop-filter":{feature:"css-backdrop-filter",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},element:{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-element-function",browsers:["firefox 114"]},"user-select":{mistakes:["-khtml-"],feature:"user-select-none",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"background-clip":{feature:"background-clip-text",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},hyphens:{feature:"css-hyphens",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},fill:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"fill-available":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},stretch:{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"fit-content":{props:["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"],feature:"intrinsic-width",browsers:["firefox 114"]},"text-decoration-style":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-color":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-line":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-decoration-skip-ink":{feature:"text-decoration",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"text-size-adjust":{feature:"text-size-adjust",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5"]},"mask-clip":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-composite":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-image":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-origin":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-repeat":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-source":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},mask:{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-position":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-size":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-outset":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-width":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"mask-border-slice":{feature:"css-masks",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},"clip-path":{feature:"css-clip-path",browsers:["samsung 21"]},"box-decoration-break":{feature:"css-boxdecorationbreak",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","opera 99","safari 16.5","samsung 21"]},appearance:{feature:"css-appearance",browsers:["samsung 21"]},"image-set":{props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"],feature:"css-image-set",browsers:["and_uc 15.5","chrome 109","samsung 21"]},"cross-fade":{props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"],feature:"css-cross-fade",browsers:["and_chr 114","and_uc 15.5","chrome 109","chrome 113","chrome 114","edge 114","opera 99","samsung 21"]},isolate:{props:["unicode-bidi"],feature:"css-unicode-bidi",browsers:["ios_saf 16.1","ios_saf 16.3","ios_saf 16.4","ios_saf 16.5","safari 16.5"]},"color-adjust":{feature:"css-color-adjust",browsers:["chrome 109","chrome 113","chrome 114","edge 114","opera 99"]}}});var dv=x((_L,pv)=>{u();pv.exports={}});var yv=x((EL,gv)=>{u();var N5=Yl(),{agents:B5}=(Ps(),Rs),of=Oy(),F5=Mt(),j5=uv(),z5=cv(),U5=dv(),hv={browsers:B5,prefixes:z5},mv=` + Replace Autoprefixer \`browsers\` option to Browserslist config. + Use \`browserslist\` key in \`package.json\` or \`.browserslistrc\` file. + + Using \`browsers\` option can cause errors. Browserslist config can + be used for Babel, Autoprefixer, postcss-normalize and other tools. + + If you really need to use option, rename it to \`overrideBrowserslist\`. + + Learn more at: + https://github.com/browserslist/browserslist#readme + https://twitter.com/browserslist + +`;function V5(r){return Object.prototype.toString.apply(r)==="[object Object]"}var lf=new Map;function H5(r,e){e.browsers.selected.length!==0&&(e.add.selectors.length>0||Object.keys(e.add).length>2||r.warn(`Autoprefixer target browsers do not need any prefixes.You do not need Autoprefixer anymore. +Check your Browserslist config to be sure that your targets are set up correctly. + + Learn more at: + https://github.com/postcss/autoprefixer#readme + https://github.com/browserslist/browserslist#readme + +`))}gv.exports=Dr;function Dr(...r){let e;if(r.length===1&&V5(r[0])?(e=r[0],r=void 0):r.length===0||r.length===1&&!r[0]?r=void 0:r.length<=2&&(Array.isArray(r[0])||!r[0])?(e=r[1],r=r[0]):typeof r[r.length-1]=="object"&&(e=r.pop()),e||(e={}),e.browser)throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer");if(e.browserslist)throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer");e.overrideBrowserslist?r=e.overrideBrowserslist:e.browsers&&(typeof console!="undefined"&&console.warn&&(of.red?console.warn(of.red(mv.replace(/`[^`]+`/g,n=>of.yellow(n.slice(1,-1))))):console.warn(mv)),r=e.browsers);let t={ignoreUnknownVersions:e.ignoreUnknownVersions,stats:e.stats,env:e.env};function i(n){let s=hv,a=new F5(s.browsers,r,n,t),o=a.selected.join(", ")+JSON.stringify(e);return lf.has(o)||lf.set(o,new j5(s.prefixes,a,e)),lf.get(o)}return{postcssPlugin:"autoprefixer",prepare(n){let s=i({from:n.opts.from,env:e.env});return{OnceExit(a){H5(n,s),e.remove!==!1&&s.processor.remove(a,n),e.add!==!1&&s.processor.add(a,n)}}},info(n){return n=n||{},n.from=n.from||m.cwd(),U5(i(n))},options:e,browsers:r}}Dr.postcss=!0;Dr.data=hv;Dr.defaults=N5.defaults;Dr.info=()=>Dr().info()});var bv={};Ge(bv,{default:()=>W5});var W5,wv=P(()=>{u();W5=[]});var xv={};Ge(xv,{default:()=>G5});var vv,G5,kv=P(()=>{u();Xi();vv=pe(rn()),G5=St(vv.default.theme)});var Av={};Ge(Av,{default:()=>Q5});var Sv,Q5,Cv=P(()=>{u();Xi();Sv=pe(rn()),Q5=St(Sv.default)});u();"use strict";var Y5=vt(_y()),K5=vt($e()),X5=vt(yv()),Z5=vt((wv(),bv)),J5=vt((kv(),xv)),eP=vt((Cv(),Av)),tP=vt((Vs(),_f)),rP=vt((al(),sl)),iP=vt((sa(),sc));function vt(r){return r&&r.__esModule?r:{default:r}}console.warn("cdn.tailwindcss.com should not be used in production. To use Tailwind CSS in production, install it as a PostCSS plugin or use the Tailwind CLI: https://tailwindcss.com/docs/installation");var Ns="tailwind",uf="text/tailwindcss",_v="/template.html",Yt,Ev=!0,Ov=0,ff=new Set,cf,Tv="",Rv=(r=!1)=>({get(e,t){return(!r||t==="config")&&typeof e[t]=="object"&&e[t]!==null?new Proxy(e[t],Rv()):e[t]},set(e,t,i){return e[t]=i,(!r||t==="config")&&pf(!0),!0}});window[Ns]=new Proxy({config:{},defaultTheme:J5.default,defaultConfig:eP.default,colors:tP.default,plugin:rP.default,resolveConfig:iP.default},Rv(!0));function Pv(r){cf.observe(r,{attributes:!0,attributeFilter:["type"],characterData:!0,subtree:!0,childList:!0})}new MutationObserver(async r=>{let e=!1;if(!cf){cf=new MutationObserver(async()=>await pf(!0));for(let t of document.querySelectorAll(`style[type="${uf}"]`))Pv(t)}for(let t of r)for(let i of t.addedNodes)i.nodeType===1&&i.tagName==="STYLE"&&i.getAttribute("type")===uf&&(Pv(i),e=!0);await pf(e)}).observe(document.documentElement,{attributes:!0,attributeFilter:["class"],childList:!0,subtree:!0});async function pf(r=!1){r&&(Ov++,ff.clear());let e="";for(let i of document.querySelectorAll(`style[type="${uf}"]`))e+=i.textContent;let t=new Set;for(let i of document.querySelectorAll("[class]"))for(let n of i.classList)ff.has(n)||t.add(n);if(document.body&&(Ev||t.size>0||e!==Tv||!Yt||!Yt.isConnected)){for(let n of t)ff.add(n);Ev=!1,Tv=e,self[_v]=Array.from(t).join(" ");let{css:i}=await(0,K5.default)([(0,Y5.default)({...window[Ns].config,_hash:Ov,content:{files:[_v],extract:{html:n=>n.split(" ")}},plugins:[...Z5.default,...Array.isArray(window[Ns].config.plugins)?window[Ns].config.plugins:[]]}),(0,X5.default)({remove:!1})]).process(`@tailwind base;@tailwind components;@tailwind utilities;${e}`);(!Yt||!Yt.isConnected)&&(Yt=document.createElement("style"),document.head.append(Yt)),Yt.textContent=i}}})(); +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ +/*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/server.js b/server.js new file mode 100755 index 0000000..283f7e8 --- /dev/null +++ b/server.js @@ -0,0 +1,1111 @@ +const express = require('express'); +const session = require('express-session'); +const multer = require('multer'); +const sharp = require('sharp'); +const fs = require('fs'); +const path = require('path'); +const archiver = require('archiver'); +const rateLimit = require('express-rate-limit'); +const geoip = require('geoip-lite'); +const { JSDOM } = require('jsdom'); +const { Readability } = require('@mozilla/readability'); +const iconv = require('iconv-lite'); + +const app = express(); +app.set('trust proxy', 1); + +app.use(session({ + secret: 'wa-dev-tools-secret-2024', + resave: false, + saveUninitialized: true, + cookie: { maxAge: 30 * 24 * 60 * 60 * 1000 }, // 30 days +})); +app.use(express.static('public')); + +// Rate limiting — 30 requests per minute per IP +const limiter = rateLimit({ + windowMs: 60 * 1000, + max: 30, + standardHeaders: true, + legacyHeaders: false, + message: { error: 'Слишком много запросов. Попробуйте через минуту.' }, +}); +app.use('/compress', limiter); + +const upload = multer({ + dest: 'uploads/', + limits: { fileSize: 20 * 1024 * 1024 }, // 20MB per file + fileFilter: (req, file, cb) => { + const validTypes = ['image/jpeg', 'image/png', 'image/webp']; + if (validTypes.includes(file.mimetype)) cb(null, true); + else cb(new Error('Unsupported file type')); + } +}); + +// Periodic cleanup of uploads/ dir — files older than 10 minutes +const UPLOADS_DIR = path.join(__dirname, 'uploads'); +const DOWNLOADS_DIR = path.join(__dirname, 'downloads'); + +for (const dir of [UPLOADS_DIR, DOWNLOADS_DIR]) { + if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true }); +} + +function cleanupDir(dir, maxAgeMs) { + try { + const files = fs.readdirSync(dir); + const now = Date.now(); + for (const file of files) { + const filePath = path.join(dir, file); + try { + const stat = fs.statSync(filePath); + if (now - stat.mtimeMs > maxAgeMs) { + fs.unlinkSync(filePath); + } + } catch {} + } + } catch {} +} + +// Clean uploads every 2 min (10 min age), downloads every 5 min (30 min age) +setInterval(() => cleanupDir(UPLOADS_DIR, 10 * 60 * 1000), 2 * 60 * 1000); +setInterval(() => cleanupDir(DOWNLOADS_DIR, 30 * 60 * 1000), 5 * 60 * 1000); + +function getCountry(ip) { + const clean = ip.replace(/^::ffff:/, ''); + if (clean === '127.0.0.1' || clean === '::1') return 'local'; + const geo = geoip.lookup(clean); + return geo ? geo.country : '??'; +} + +function logToFile(text) { + const timestamp = new Date().toISOString(); + const logLine = `[${timestamp}] ${text}\n`; + fs.appendFileSync(path.join(__dirname, 'compress.log'), logLine); +} + +// Cyrillic to Latin transliteration +const TRANSLIT_MAP = { + 'а':'a','б':'b','в':'v','г':'g','д':'d','е':'e','ё':'yo','ж':'zh','з':'z','и':'i', + 'й':'y','к':'k','л':'l','м':'m','н':'n','о':'o','п':'p','р':'r','с':'s','т':'t', + 'у':'u','ф':'f','х':'kh','ц':'ts','ч':'ch','ш':'sh','щ':'shch','ъ':'','ы':'y', + 'ь':'','э':'e','ю':'yu','я':'ya', + 'А':'A','Б':'B','В':'V','Г':'G','Д':'D','Е':'E','Ё':'Yo','Ж':'Zh','З':'Z','И':'I', + 'Й':'Y','К':'K','Л':'L','М':'M','Н':'N','О':'O','П':'P','Р':'R','С':'S','Т':'T', + 'У':'U','Ф':'F','Х':'Kh','Ц':'Ts','Ч':'Ch','Ш':'Sh','Щ':'Shch','Ъ':'','Ы':'Y', + 'Ь':'','Э':'E','Ю':'Yu','Я':'Ya', +}; + +function fixMulterFilename(str) { + // Multer/busboy may give us UTF-8 bytes decoded as Latin-1 + try { + const buf = Buffer.from(str, 'latin1'); + const decoded = buf.toString('utf8'); + // If it decoded cleanly and contains actual Cyrillic, use it + if (/[а-яёА-ЯЁ]/.test(decoded)) return decoded; + } catch {} + return str; +} + +function transliterate(str) { + const fixed = fixMulterFilename(str); + return fixed.replace(/[а-яёА-ЯЁ]/g, ch => TRANSLIT_MAP[ch] !== undefined ? TRANSLIT_MAP[ch] : ch) + .replace(/[^\w.\-]/g, '_') + .replace(/_+/g, '_') + .replace(/^_|_$/g, ''); +} + +// Format extension map +function getOutputExtension(format, originalName) { + if (format === 'webp') return '.webp'; + if (format === 'jpeg') return '.jpg'; + if (format === 'png') return '.png'; + // original — keep current extension + return path.extname(originalName); +} + +function changeExtension(filename, newExt) { + const base = path.basename(filename, path.extname(filename)); + return base + newExt; +} + +app.post('/compress', upload.array('images', 50), async (req, res) => { + const resize = parseInt(req.body.resize || '0', 10); + const format = (req.body.format || 'original').toLowerCase(); + const validFormats = ['original', 'webp', 'jpeg', 'png']; + + if (!validFormats.includes(format)) { + return res.status(400).json({ error: 'Неверный формат. Допустимые: original, webp, jpeg, png' }); + } + + if (!req.files || !req.files.length) { + return res.status(400).json({ error: 'Файлы не загружены' }); + } + + const archiveName = `archive_${Date.now()}.zip`; + const archivePath = path.join(DOWNLOADS_DIR, archiveName); + const output = fs.createWriteStream(archivePath); + const archive = archiver('zip', { zlib: { level: 9 } }); + + const stats = []; + + const country = getCountry(req.ip); + + try { + archive.pipe(output); + + for (const file of req.files) { + const inputPath = file.path; + const originalSize = file.size; + const image = sharp(inputPath); + const metadata = await image.metadata(); + + // Resize if needed + if ( + resize > 0 && + metadata.width && + metadata.height && + Math.max(metadata.width, metadata.height) > resize + ) { + const scale = resize / Math.max(metadata.width, metadata.height); + const newWidth = Math.round(metadata.width * scale); + const newHeight = Math.round(metadata.height * scale); + image.resize({ width: newWidth, height: newHeight }); + + const msg = `[${country}] ${req.ip} resized: ${file.originalname} ${metadata.width}x${metadata.height} → ${newWidth}x${newHeight} (${(originalSize / 1024).toFixed(0)}KB)`; + console.log(msg); + logToFile(msg); + } else { + const msg = `[${country}] ${req.ip} compress: ${file.originalname} ${metadata.width}x${metadata.height} format=${format} (${(originalSize / 1024).toFixed(0)}KB)`; + console.log(msg); + logToFile(msg); + } + + // Convert/compress based on format + let buffer; + if (format === 'webp') { + buffer = await image.webp({ quality: 60 }).toBuffer(); + } else if (format === 'jpeg') { + buffer = await image.jpeg({ quality: 60 }).toBuffer(); + } else if (format === 'png') { + buffer = await image.png({ compressionLevel: 9 }).toBuffer(); + } else { + // original — keep source format + if (file.mimetype === 'image/jpeg') { + buffer = await image.jpeg({ quality: 60 }).toBuffer(); + } else if (file.mimetype === 'image/png') { + buffer = await image.png({ compressionLevel: 9 }).toBuffer(); + } else if (file.mimetype === 'image/webp') { + buffer = await image.webp({ quality: 60 }).toBuffer(); + } else { + continue; + } + } + + const readableName = fixMulterFilename(file.originalname); + const newExt = getOutputExtension(format, readableName); + const rawName = format === 'original' + ? readableName + : changeExtension(readableName, newExt); + const outputName = transliterate(rawName); + + archive.append(buffer, { name: outputName }); + + const compressedSize = buffer.length; + const savings = originalSize > 0 + ? Math.round((1 - compressedSize / originalSize) * 100) + : 0; + + stats.push({ + filename: readableName, + outputFilename: outputName, + originalSize, + compressedSize, + savings, + }); + } + + await archive.finalize(); + + await new Promise((resolve, reject) => { + output.on('close', resolve); + output.on('error', reject); + }); + + res.json({ + success: true, + downloadUrl: `/download/${archiveName}`, + stats, + }); + } catch (err) { + console.error('Compression error:', err); + // Clean up partial archive + try { fs.existsSync(archivePath) && fs.unlinkSync(archivePath); } catch {} + res.status(500).json({ error: 'Ошибка при сжатии' }); + } finally { + if (req.files) { + req.files.forEach(file => { + try { fs.existsSync(file.path) && fs.unlinkSync(file.path); } catch {} + }); + } + } +}); + +// Download endpoint +app.get('/download/:filename', (req, res) => { + const filename = path.basename(req.params.filename); // prevent path traversal + const filePath = path.join(DOWNLOADS_DIR, filename); + + if (!fs.existsSync(filePath)) { + return res.status(404).json({ error: 'Файл не найден' }); + } + + res.download(filePath, 'compressed.zip'); +}); + +// Markdown viewer +app.get('/md', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'md.html')); +}); + +// Placeholder page +app.get('/placeholder', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'placeholder.html')); +}); + +// Placeholder image generator (via sharp + SVG) +function normalizeColor(color) { + if (!color) return '#cccccc'; + if (/^[0-9A-Fa-f]{6}$/.test(color)) return '#' + color; + if (/^[0-9A-Fa-f]{3}$/.test(color)) return '#' + color; + return color.toLowerCase(); +} + +function escapeXml(str) { + return str.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); +} + +async function placeholderHandler(req, res) { + const { size, bg, fg, text: textFromPath } = req.params; + const { text: textFromQuery, format = 'png', fontsize } = req.query; + const text = textFromQuery || textFromPath || ''; + + const [w, h] = size.split('x').map(Number); + const width = Math.min(Math.max(w || 300, 1), 4000); + const height = Math.min(Math.max(h || 200, 1), 4000); + + const bgColor = normalizeColor(bg); + const fgColor = normalizeColor(fg); + const fontSize = fontsize ? parseInt(fontsize, 10) : Math.max(12, Math.floor(Math.min(width, height) / 8)); + + const svg = ` + + ${escapeXml(text)} + `; + + try { + let img = sharp(Buffer.from(svg)); + if (format === 'jpg' || format === 'jpeg') { + res.type('jpeg').end(await img.jpeg({ quality: 90 }).toBuffer()); + } else if (format === 'webp') { + res.type('webp').end(await img.webp({ quality: 90 }).toBuffer()); + } else { + res.type('png').end(await img.png().toBuffer()); + } + } catch (err) { + console.error('Placeholder error:', err); + res.status(500).json({ error: 'Generation failed' }); + } +} + +app.get('/placeholder-img/:size/:bg/:fg', placeholderHandler); +app.get('/placeholder-img/:size/:bg/:fg/:text', placeholderHandler); + +// Logs page +const LOG_FILE = path.join(__dirname, 'compress.log'); + +app.get('/logs', (req, res) => { + const lines = parseInt(req.query.lines || '100', 10); + const filter = (req.query.filter || '').toLowerCase(); + + let logLines = []; + try { + const content = fs.readFileSync(LOG_FILE, 'utf8'); + logLines = content.trim().split('\n').filter(Boolean); + } catch { /* no log file yet */ } + + if (filter) { + logLines = logLines.filter(l => l.toLowerCase().includes(filter)); + } + + // Last N lines, newest first + logLines = logLines.slice(-Math.min(lines, 1000)).reverse(); + + res.send(` + + + +Логи — images.wadevelop.ru + + + + +
    +
    +
    +

    Логи

    + ${logLines.length} записей + + +
    +
    +
    +${logLines.length === 0 ? '
    Логов пока нет
    ' : +logLines.map(l => { + const escaped = l.replace(/&/g,'&').replace(/[$1]') + .replace(/\[([A-Z]{2}|local|\?\?)\]/, '[$1]') + .replace(/((?:\d{1,3}\.){3}\d{1,3}|::ffff:[^\s]+)/, '$1') + .replace(/\b(resized:)/, '$1') + .replace(/\b(compress:)/, '$1') + .replace(/\((\d+KB)\)/, '($1)'); + return '
    ' + colored + '
    '; +}).join('')} +
    + +
    + +`); +}); + +// ==================== URL Article Parser ==================== + +// Rate limit for parser: 60 req/min per IP +const parserLimiter = rateLimit({ + windowMs: 60 * 1000, + max: 60, + standardHeaders: true, + legacyHeaders: false, + message: { error: 'Слишком много запросов к парсеру. Попробуйте через минуту.' }, +}); +app.use(['/parse', '/metadata', '/text', '/preview'], parserLimiter); + +// In-memory cache with TTL (6 hours) +const PARSER_CACHE_TTL = 6 * 60 * 60 * 1000; +const parserCache = new Map(); + +function getCached(key) { + const entry = parserCache.get(key); + if (!entry) return null; + if (Date.now() - entry.ts > PARSER_CACHE_TTL) { + parserCache.delete(key); + return null; + } + return entry.data; +} + +function setCache(key, data) { + // Limit cache size to 500 entries + if (parserCache.size > 500) { + const oldest = parserCache.keys().next().value; + parserCache.delete(oldest); + } + parserCache.set(key, { data, ts: Date.now() }); +} + +// Clean expired cache entries every 30 min +setInterval(() => { + const now = Date.now(); + for (const [key, entry] of parserCache) { + if (now - entry.ts > PARSER_CACHE_TTL) parserCache.delete(key); + } +}, 30 * 60 * 1000); + +// Validate URL +function isValidParserUrl(urlStr) { + if (!urlStr || urlStr.length > 2048) return false; + try { + const u = new URL(urlStr); + if (!['http:', 'https:'].includes(u.protocol)) return false; + // Block localhost and private IPs + const host = u.hostname.toLowerCase(); + if (host === 'localhost' || host === '127.0.0.1' || host === '::1' || host === '0.0.0.0') return false; + if (/^(10\.|172\.(1[6-9]|2\d|3[01])\.|192\.168\.)/.test(host)) return false; + if (host.endsWith('.local') || host.endsWith('.internal')) return false; + return true; + } catch { + return false; + } +} + +// Detect charset from content-type header or meta tags +function detectCharset(contentType, htmlBuffer) { + // From Content-Type header + if (contentType) { + const match = contentType.match(/charset=([^\s;]+)/i); + if (match) return match[1].trim().toLowerCase(); + } + // From HTML meta tags (first 4KB) + const head = htmlBuffer.slice(0, 4096).toString('ascii'); + const metaMatch = head.match(/charset=["']?([^"'\s;>]+)/i); + if (metaMatch) return metaMatch[1].trim().toLowerCase(); + return 'utf-8'; +} + +// Fetch and parse article +async function fetchAndParse(url) { + const cached = getCached(url); + if (cached) return cached; + + const controller = new AbortController(); + const timeout = setTimeout(() => controller.abort(), 10000); + + let response; + try { + response = await fetch(url, { + signal: controller.signal, + redirect: 'follow', + follow: 5, + headers: { + 'User-Agent': 'Mozilla/5.0 (compatible; WAParser/1.0)', + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Language': 'ru,en;q=0.5', + }, + }); + } finally { + clearTimeout(timeout); + } + + if (!response.ok) { + throw new Error(`HTTP ${response.status}: ${response.statusText}`); + } + + const contentType = response.headers.get('content-type') || ''; + if (!contentType.includes('text/html') && !contentType.includes('application/xhtml')) { + throw new Error('URL не содержит HTML-страницу'); + } + + // Check size limit (2MB) + const contentLength = parseInt(response.headers.get('content-length') || '0', 10); + if (contentLength > 2 * 1024 * 1024) { + throw new Error('Страница слишком большая (>2MB)'); + } + + const arrayBuf = await response.arrayBuffer(); + const htmlBuffer = Buffer.from(arrayBuf); + + if (htmlBuffer.length > 2 * 1024 * 1024) { + throw new Error('Страница слишком большая (>2MB)'); + } + + // Decode to UTF-8 + const charset = detectCharset(contentType, htmlBuffer); + let html; + if (charset === 'utf-8' || charset === 'utf8') { + html = htmlBuffer.toString('utf-8'); + } else if (iconv.encodingExists(charset)) { + html = iconv.decode(htmlBuffer, charset); + } else { + html = htmlBuffer.toString('utf-8'); + } + + // Parse with JSDOM + const dom = new JSDOM(html, { url }); + const doc = dom.window.document; + + // Extract metadata + const getMeta = (name) => { + const el = doc.querySelector(`meta[property="${name}"], meta[name="${name}"]`); + return el ? el.getAttribute('content') : null; + }; + + const metadata = { + og_title: getMeta('og:title'), + og_description: getMeta('og:description'), + og_image: getMeta('og:image'), + og_site_name: getMeta('og:site_name'), + description: getMeta('description'), + author: getMeta('author') || getMeta('article:author'), + date: getMeta('article:published_time') || getMeta('date') || getMeta('pubdate'), + }; + + // Parse with Readability + const reader = new Readability(doc); + const article = reader.parse(); + + // Extract images from parsed content + let images = []; + let links = []; + if (article && article.content) { + const contentDom = new JSDOM(article.content); + const contentDoc = contentDom.window.document; + + contentDoc.querySelectorAll('img').forEach(img => { + const src = img.getAttribute('src') || img.getAttribute('data-src'); + if (src) { + try { + images.push(new URL(src, url).href); + } catch {} + } + }); + + contentDoc.querySelectorAll('a[href]').forEach(a => { + const href = a.getAttribute('href'); + if (href && href.startsWith('http')) { + links.push({ text: a.textContent.trim(), href }); + } + }); + + contentDom.window.close(); + } + + // Clean content HTML: remove script, style, on* attrs, data-* attrs + let cleanHtml = article ? article.content : ''; + if (cleanHtml) { + const cleanDom = new JSDOM(cleanHtml); + const cleanDoc = cleanDom.window.document; + cleanDoc.querySelectorAll('script, style, iframe, object, embed').forEach(el => el.remove()); + cleanDoc.querySelectorAll('*').forEach(el => { + const attrs = Array.from(el.attributes); + attrs.forEach(attr => { + if (attr.name.startsWith('on') || attr.name.startsWith('data-')) { + el.removeAttribute(attr.name); + } + }); + }); + cleanHtml = cleanDoc.body.innerHTML; + cleanDom.window.close(); + } + + const contentText = article ? article.textContent : ''; + const wordCount = contentText ? contentText.trim().split(/\s+/).filter(Boolean).length : 0; + + const result = { + url, + title: article ? article.title : (metadata.og_title || doc.title || ''), + author: metadata.author || (article ? article.byline : null), + site: metadata.og_site_name || new URL(url).hostname, + date_published: metadata.date || null, + excerpt: article ? article.excerpt : (metadata.og_description || metadata.description || ''), + content_html: cleanHtml, + content_text: contentText, + lead_image: metadata.og_image || (images.length > 0 ? images[0] : null), + images: [...new Set(images)], + links, + word_count: wordCount, + lang: article ? article.lang : (doc.documentElement.lang || null), + }; + + dom.window.close(); + setCache(url, result); + return result; +} + +// Password generator +app.get('/password', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'password.html')); +}); + +// Editor +app.get('/editor', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'editor.html')); +}); + +// Dev utilities +app.get('/sanitizer', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'sanitizer.html')); +}); +app.get('/converter', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'converter.html')); +}); +app.get('/formatter', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'formatter.html')); +}); + +// Parser page +app.get('/parser', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'parser.html')); +}); + +// Home page alias +app.get('/home', (req, res) => res.sendFile(path.join(__dirname, 'public', 'index.html'))); + +// Image compressor page +app.get('/compress', (req, res) => res.sendFile(path.join(__dirname, 'public', 'compress.html'))); + +// Health check +app.get('/health', (req, res) => { + res.send('OK'); +}); + +// Full parse +app.get('/parse', async (req, res) => { + const url = req.query.url; + if (!isValidParserUrl(url)) { + return res.status(400).json({ error: 'Невалидный URL. Используйте http:// или https://' }); + } + try { + const result = await fetchAndParse(url); + const country = getCountry(req.ip); + const msg = `[${country}] ${req.ip} parse: ${url} → "${result.title}" (${result.word_count} words)`; + console.log(msg); + logToFile(msg); + res.json(result); + } catch (err) { + res.status(500).json({ error: err.message || 'Ошибка парсинга' }); + } +}); + +// Metadata only +app.get('/metadata', async (req, res) => { + const url = req.query.url; + if (!isValidParserUrl(url)) { + return res.status(400).json({ error: 'Невалидный URL' }); + } + try { + const result = await fetchAndParse(url); + res.json({ + url: result.url, + title: result.title, + description: result.excerpt, + image: result.lead_image, + site: result.site, + author: result.author, + date_published: result.date_published, + lang: result.lang, + }); + } catch (err) { + res.status(500).json({ error: err.message || 'Ошибка' }); + } +}); + +// Text only +app.get('/text', async (req, res) => { + const url = req.query.url; + if (!isValidParserUrl(url)) { + return res.status(400).json({ error: 'Невалидный URL' }); + } + try { + const result = await fetchAndParse(url); + res.type('text/plain').send(result.content_text); + } catch (err) { + res.status(500).json({ error: err.message || 'Ошибка' }); + } +}); + +// Preview card +app.get('/preview', async (req, res) => { + const url = req.query.url; + if (!isValidParserUrl(url)) { + return res.status(400).json({ error: 'Невалидный URL' }); + } + try { + const result = await fetchAndParse(url); + res.json({ + url: result.url, + title: result.title, + description: result.excerpt, + image: result.lead_image, + site: result.site, + }); + } catch (err) { + res.status(500).json({ error: err.message || 'Ошибка' }); + } +}); + +// Multer error handler +app.use((err, req, res, next) => { + if (err instanceof multer.MulterError) { + if (err.code === 'LIMIT_FILE_SIZE') { + return res.status(413).json({ error: 'Файл слишком большой. Максимум 20MB.' }); + } + if (err.code === 'LIMIT_FILE_COUNT') { + return res.status(400).json({ error: 'Слишком много файлов. Максимум 50.' }); + } + return res.status(400).json({ error: err.message }); + } + if (err) { + console.error('Unhandled error:', err); + return res.status(500).json({ error: 'Внутренняя ошибка сервера' }); + } + next(); +}); + + + +// HTTP Client history (per session) +app.get('/api/history', (req, res) => { + res.json(req.session.httpHistory || []); +}); + +app.post('/api/history/add', express.json(), (req, res) => { + if (!req.session.httpHistory) req.session.httpHistory = []; + req.session.httpHistory.unshift(req.body); + if (req.session.httpHistory.length > 30) req.session.httpHistory.length = 30; + res.json({ ok: true }); +}); + +app.delete('/api/history', (req, res) => { + req.session.httpHistory = []; + res.json({ ok: true }); +}); + +// HTTP Client proxy +const proxyLimiter = rateLimit({ + windowMs: 60 * 1000, + max: 60, + message: { error: 'Слишком много запросов. Попробуйте через минуту.' }, +}); + +app.post('/api/proxy', proxyLimiter, express.json({ limit: '10mb' }), async (req, res) => { + const { url, method = 'GET', headers = {}, body, timeout = 30000 } = req.body || {}; + + if (!url || typeof url !== 'string') { + return res.status(400).json({ error: 'URL обязателен' }); + } + + let parsedUrl; + try { parsedUrl = new URL(url); } catch { + return res.status(400).json({ error: 'Невалидный URL' }); + } + + if (!['http:', 'https:'].includes(parsedUrl.protocol)) { + return res.status(400).json({ error: 'Поддерживаются только http и https' }); + } + + const startTime = Date.now(); + + try { + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), Math.min(Number(timeout) || 30000, 60000)); + + const fetchOptions = { + method: method.toUpperCase(), + headers: Object.fromEntries( + Object.entries(headers).filter(([k]) => !['host','connection','transfer-encoding'].includes(k.toLowerCase())) + ), + signal: controller.signal, + redirect: 'follow', + }; + + if (body != null && !['GET', 'HEAD'].includes(method.toUpperCase())) { + fetchOptions.body = typeof body === 'string' ? body : JSON.stringify(body); + } + + const response = await fetch(url, fetchOptions); + clearTimeout(timer); + + const elapsed = Date.now() - startTime; + const responseHeaders = {}; + response.headers.forEach((value, key) => { responseHeaders[key] = value; }); + + const MAX_SIZE = 10 * 1024 * 1024; + const reader = response.body?.getReader(); + const chunks = []; + let totalSize = 0; + let truncated = false; + + if (reader) { + while (true) { + const { done, value } = await reader.read(); + if (done) break; + totalSize += value.length; + if (totalSize > MAX_SIZE) { truncated = true; break; } + chunks.push(value); + } + } + + const buffer = Buffer.concat(chunks.map(c => Buffer.from(c))); + const responseBody = buffer.toString('utf-8'); + + res.json({ + status: response.status, + statusText: response.statusText, + headers: responseHeaders, + body: responseBody, + time: elapsed, + size: totalSize, + truncated, + url: response.url, + }); + } catch (err) { + const elapsed = Date.now() - startTime; + if (err.name === 'AbortError') { + return res.status(408).json({ error: 'Таймаут запроса', time: elapsed }); + } + res.status(500).json({ error: err.message, time: elapsed }); + } +}); + +app.get('/httpclient', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'httpclient.html')); +}); + + +app.get('/redirects', (req, res) => { + res.sendFile(path.join(__dirname, 'public', 'redirects.html')); +}); + +// ── Redirect Chain Analyzer ────────────────────────────────────────────────── +const redirectLimiter = rateLimit({ windowMs: 60_000, max: 20 }); + +const UA_STRINGS = { + desktop: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', + mobile: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1', + googlebot: 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)', +}; + +app.post('/api/redirect-analyze', redirectLimiter, express.json(), async (req, res) => { + const { url: rawUrl, userAgent = 'desktop', method = 'GET' } = req.body || {}; + + if (!rawUrl || typeof rawUrl !== 'string') { + return res.status(400).json({ error: 'URL обязателен' }); + } + + let parsedUrl; + try { + parsedUrl = new URL(rawUrl); + } catch { + return res.status(400).json({ error: 'Некорректный URL. Используйте http:// или https://' }); + } + if (!['http:', 'https:'].includes(parsedUrl.protocol)) { + return res.status(400).json({ error: 'Поддерживаются только протоколы http и https' }); + } + + const uaString = UA_STRINGS[userAgent] || UA_STRINGS.desktop; + const MAX_STEPS = 15; + const STEP_TIMEOUT = 10_000; // ms + + const chain = []; + const visitedUrls = new Set(); + let currentUrl = rawUrl; + let loopDetected = false; + const totalStart = Date.now(); + + for (let step = 0; step < MAX_STEPS; step++) { + if (visitedUrls.has(currentUrl)) { + loopDetected = true; + break; + } + visitedUrls.add(currentUrl); + + const controller = new AbortController(); + const timer = setTimeout(() => controller.abort(), STEP_TIMEOUT); + const stepStart = Date.now(); + + try { + const response = await fetch(currentUrl, { + method: method.toUpperCase(), + redirect: 'manual', + signal: controller.signal, + headers: { + 'User-Agent': uaString, + 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', + 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', + }, + }); + clearTimeout(timer); + + const stepTime = Date.now() - stepStart; + const responseHeaders = {}; + response.headers.forEach((value, key) => { responseHeaders[key] = value; }); + + const location = response.headers.get('location') || null; + + chain.push({ + url: currentUrl, + status: response.status, + statusText: response.statusText, + location, + time: stepTime, + headers: responseHeaders, + }); + + // Not a redirect — this is the final destination + if (response.status < 300 || response.status >= 400) { + break; + } + + if (!location) break; + + // Resolve relative redirects + try { + currentUrl = new URL(location, currentUrl).href; + } catch { + break; + } + + } catch (err) { + clearTimeout(timer); + const stepTime = Date.now() - stepStart; + chain.push({ + url: currentUrl, + status: 0, + statusText: err.name === 'AbortError' ? 'Timeout' : err.message, + location: null, + time: stepTime, + headers: {}, + }); + break; + } + } + + const totalTime = Date.now() - totalStart; + const finalUrl = chain.length > 0 ? chain[chain.length - 1].url : rawUrl; + + // Detect issues + const issues = []; + const redirectSteps = chain.filter(s => s.status >= 300 && s.status < 400); + + if (redirectSteps.length > 3) { + issues.push('long_chain'); + } + + // Check https→http downgrade + for (let i = 0; i < chain.length - 1; i++) { + const curr = chain[i]; + const next = chain[i + 1]; + if (curr.url.startsWith('https://') && next.url.startsWith('http://')) { + issues.push('mixed_protocol'); + break; + } + } + + // Check 302 used instead of 301 + if (chain.some(s => s.status === 302)) { + issues.push('302_not_301'); + } + + res.json({ + chain, + final_url: finalUrl, + total_time: totalTime, + loop_detected: loopDetected, + issues, + }); +}); + + +// ── SVG Editor ────────────────────────────────────────────────────────────────── +app.get('/svgeditor', (req, res) => { + res.sendFile(require('path').join(__dirname, 'public', 'svgeditor.html')); +}); + +app.post('/api/svg-optimize', express.json({ limit: '5mb' }), (req, res) => { + let svg = req.body.svg || ''; + const originalLen = svg.length; + + // Remove XML declaration + svg = svg.replace(/<\?xml[^?]*\?>/g, ''); + // Remove comments + svg = svg.replace(//g, ''); + // Remove metadata, title, desc + svg = svg.replace(//gi, ''); + svg = svg.replace(//gi, ''); + svg = svg.replace(//gi, ''); + // Remove empty groups + svg = svg.replace(/]*>\s*<\/g>/g, ''); + // Remove data-* attributes + svg = svg.replace(/\s+data-[a-z-]+="[^"]*"/g, ''); + // Round numbers in d attribute to 2 decimals + svg = svg.replace(/\b(\d+\.\d{3,})\b/g, (m) => parseFloat(m).toFixed(2)); + // Collapse whitespace + svg = svg.replace(/\s{2,}/g, ' '); + svg = svg.replace(/>\s+<'); + svg = svg.trim(); + + const saved = originalLen > 0 ? Math.round((1 - svg.length / originalLen) * 100) : 0; + res.json({ svg, saved: Math.max(0, saved) }); +}); + +app.post('/api/svg-ai', express.json(), (req, res) => { + const { keyword, style, size, color } = req.body; + const icons = { + home: 'M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-4 0v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4', + user: 'M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z', + search: 'M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z', + heart: 'M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z', + star: 'M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z', + check: 'M4.5 12.75l6 6 9-13.5', + close: 'M6 18L18 6M6 6l12 12', + plus: 'M12 4.5v15m7.5-7.5h-15', + }; + const pathD = icons[keyword] || icons['star']; + const s = parseInt(size) || 48; + const c = color || '#0054e6'; + + let svgStr; + if (style === 'filled') { + svgStr = ``; + } else if (style === 'duotone') { + svgStr = ``; + } else { + svgStr = ``; + } + res.json({ svg: svgStr, keyword }); +}); + +app.listen(3000, () => console.log('Server on http://localhost:3000'));