From 712afdd253bffe549396d7df27870dfac9e6bd1d Mon Sep 17 00:00:00 2001 From: christian Date: Tue, 26 May 2026 13:42:21 +0000 Subject: [PATCH] style: pfandlogo.png statt .jpg (transparente Version) - public/pfandlogo.png ersetzt pfandlogo.jpg - Alle Referenzen umgestellt (Login, TopNav, SuperAdmin, index.html, manifest.json) - favicon type=image/png --- backend/lib/mail.js | 61 +- backend/package-lock.json | 2785 --------------------------- backend/package.json | 3 +- docker-compose.yml | 7 +- index.html | 4 +- manifest.json | 2 +- public/manifest.json | 2 +- public/pfandlogo.jpg | Bin 34617 -> 0 bytes public/pfandlogo.png | Bin 0 -> 26127 bytes src/components/Auth/Login.jsx | 2 +- src/components/Dashboard/TopNav.jsx | 2 +- src/components/SuperAdmin.jsx | 2 +- 12 files changed, 63 insertions(+), 2807 deletions(-) delete mode 100644 backend/package-lock.json delete mode 100644 public/pfandlogo.jpg create mode 100644 public/pfandlogo.png diff --git a/backend/lib/mail.js b/backend/lib/mail.js index f1d1521..6db704d 100644 --- a/backend/lib/mail.js +++ b/backend/lib/mail.js @@ -1,20 +1,47 @@ +import nodemailer from 'nodemailer'; import { Resend } from 'resend'; -const resend = process.env.RESEND_API_KEY ? new Resend(process.env.RESEND_API_KEY) : null; const FROM = process.env.MAIL_FROM || 'Pfandsystem Demo '; -export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, days }) { - if (!resend) { - console.log('[mail-dev] Demo-Invite an', to, 'Slug:', slug, 'Pw:', password); - return { dev: true }; +let transporter = null; +if (process.env.SMTP_HOST && process.env.SMTP_USER && process.env.SMTP_PASS) { + transporter = nodemailer.createTransport({ + host: process.env.SMTP_HOST, + port: parseInt(process.env.SMTP_PORT || '587'), + secure: (process.env.SMTP_SECURE || 'false') === 'true', // 587 = STARTTLS (secure=false) + auth: { + user: process.env.SMTP_USER, + pass: process.env.SMTP_PASS, + }, + }); + console.log('[mail] SMTP transport aktiv:', process.env.SMTP_HOST); +} + +const resend = process.env.RESEND_API_KEY ? new Resend(process.env.RESEND_API_KEY) : null; + +async function sendMail({ to, subject, html }) { + if (transporter) { + const info = await transporter.sendMail({ from: FROM, to, subject, html }); + console.log('[mail] SMTP sent:', to, 'msgId:', info.messageId); + return { provider: 'smtp', messageId: info.messageId, accepted: info.accepted, rejected: info.rejected }; } + if (resend) { + const r = await resend.emails.send({ from: FROM, to, subject, html }); + console.log('[mail] Resend sent:', to, 'id:', r.data?.id); + return { provider: 'resend', id: r.data?.id, error: r.error }; + } + console.log('[mail-dev] (kein Provider konfiguriert) ->', to, subject); + return { dev: true }; +} + +export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, days }) { const html = `
-

Willkommen im Pfandsystem-Demo

+

Willkommen im Pfandsystem-Demo

Hallo ${name},

dein ${days}-Tage Demo-Zugang ist bereit. Du kannst alle Funktionen in Ruhe testen und eigene Beispieldaten anlegen.

-
+

Login-URL: ${loginUrl}

E-Mail: ${to}

Passwort: ${password}

@@ -23,10 +50,18 @@ export async function sendDemoInviteMail({ to, name, slug, password, loginUrl, d

Bitte aendere dein Passwort nach dem ersten Login.

Diese Mail wurde automatisch versandt vom Pfandsystem-Demo-Portal.

`; - return resend.emails.send({ - from: FROM, - to, - subject: `Dein Pfandsystem-Demo-Zugang (${days} Tage)`, - html - }); + return sendMail({ to, subject: `Dein Pfandsystem-Demo-Zugang (${days} Tage)`, html }); +} + +// Test-Endpoint Helper +export async function sendTestMail(to) { + const html = ` +
+

Pfandsystem Demo - SMTP-Test

+

Diese Test-Mail bestaetigt, dass der Mail-Versand ueber + ${process.env.SMTP_HOST || 'kein SMTP'} funktioniert.

+

Absender: ${FROM}

+

Zeitstempel: ${new Date().toISOString()}

+
`; + return sendMail({ to, subject: 'Pfandsystem Demo - SMTP-Test', html }); } diff --git a/backend/package-lock.json b/backend/package-lock.json deleted file mode 100644 index b5c7de9..0000000 --- a/backend/package-lock.json +++ /dev/null @@ -1,2785 +0,0 @@ -{ - "name": "pfandsystem-backend", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "pfandsystem-backend", - "version": "1.0.0", - "dependencies": { - "bcrypt": "^5.1.1", - "cors": "^2.8.5", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "express-validator": "^7.0.1", - "jsonwebtoken": "^9.0.2", - "multer": "^1.4.5-lts.1", - "mysql2": "^3.6.5", - "resend": "^3.0.0" - }, - "devDependencies": { - "nodemon": "^3.0.2" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", - "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@one-ini/wasm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==" - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@react-email/render": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/@react-email/render/-/render-0.0.16.tgz", - "integrity": "sha512-wDaMy27xAq1cJHtSFptp0DTKPuV2GYhloqia95ub/DH9Dea1aWYsbdM918MOc/b/HvVS3w1z8DWzfAk13bGStQ==", - "dependencies": { - "html-to-text": "9.0.5", - "js-beautify": "^1.14.11", - "react-promise-suspense": "0.3.4" - }, - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "node_modules/@selderee/plugin-htmlparser2": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz", - "integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==", - "dependencies": { - "domhandler": "^5.0.3", - "selderee": "^0.11.0" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" - }, - "node_modules/aproba": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.1.0.tgz", - "integrity": "sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==" - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/aws-ssl-profiles": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", - "integrity": "sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bcrypt": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", - "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.11", - "node-addon-api": "^5.0.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "engines": { - "node": ">=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dotenv": { - "version": "16.6.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", - "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/editorconfig": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", - "dependencies": { - "@one-ini/wasm": "0.1.1", - "commander": "^10.0.0", - "minimatch": "9.0.1", - "semver": "^7.5.3" - }, - "bin": { - "editorconfig": "bin/editorconfig" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/editorconfig/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/editorconfig/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express-validator": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-7.2.1.tgz", - "integrity": "sha512-CjNE6aakfpuwGaHQZ3m8ltCG2Qvivd7RHtVMS/6nVxOM7xVGqr4bhflsm4+N5FP5zI7Zxp+Hae+9RE+o8e3ZOQ==", - "dependencies": { - "lodash": "^4.17.21", - "validator": "~13.12.0" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/html-to-text": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz", - "integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==", - "dependencies": { - "@selderee/plugin-htmlparser2": "^0.11.0", - "deepmerge": "^4.3.1", - "dom-serializer": "^2.0.0", - "htmlparser2": "^8.0.2", - "selderee": "^0.11.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/js-beautify": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", - "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", - "dependencies": { - "config-chain": "^1.1.13", - "editorconfig": "^1.0.4", - "glob": "^10.4.2", - "js-cookie": "^3.0.5", - "nopt": "^7.2.1" - }, - "bin": { - "css-beautify": "js/bin/css-beautify.js", - "html-beautify": "js/bin/html-beautify.js", - "js-beautify": "js/bin/js-beautify.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/js-beautify/node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/js-beautify/node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", - "engines": { - "node": ">=14" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "peer": true - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/jwa": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.2.tgz", - "integrity": "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==", - "dependencies": { - "buffer-equal-constant-time": "^1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/leac": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz", - "integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==", - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "peer": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/lru.min": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/lru.min/-/lru.min-1.1.2.tgz", - "integrity": "sha512-Nv9KddBcQSlQopmBHXSsZVY5xsdlZkdH/Iey0BlcBYggMd4two7cZnKOK9vmy3nY0O5RGH99z1PCeTpPqszUYg==", - "engines": { - "bun": ">=1.0.0", - "deno": ">=1.30.0", - "node": ">=8.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wellwelwel" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/multer": { - "version": "1.4.5-lts.2", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz", - "integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==", - "deprecated": "Multer 1.x is impacted by a number of vulnerabilities, which have been patched in 2.x. You should upgrade to the latest 2.x version.", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/mysql2": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.15.1.tgz", - "integrity": "sha512-WZMIRZstT2MFfouEaDz/AGFnGi1A2GwaDe7XvKTdRJEYiAHbOrh4S3d8KFmQeh11U85G+BFjIvS1Di5alusZsw==", - "dependencies": { - "aws-ssl-profiles": "^1.1.1", - "denque": "^2.1.0", - "generate-function": "^2.3.1", - "iconv-lite": "^0.7.0", - "long": "^5.2.1", - "lru.min": "^1.0.0", - "named-placeholders": "^1.1.3", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/mysql2/node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/named-placeholders": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", - "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", - "dependencies": { - "lru-cache": "^7.14.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/nodemon": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.10.tgz", - "integrity": "sha512-WDjw3pJ0/0jMFmyNDp3gvY2YizjLmmOUQo6DEBY+JgdvW/yQ9mEeSw6H5ythl5Ny2ytb7f9C2nIbjSxMNzbJXw==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" - } - }, - "node_modules/nodemon/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" - }, - "node_modules/parseley": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz", - "integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==", - "dependencies": { - "leac": "^0.6.0", - "peberminta": "^0.9.0" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" - }, - "node_modules/peberminta": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz", - "integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==", - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-promise-suspense": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/react-promise-suspense/-/react-promise-suspense-0.3.4.tgz", - "integrity": "sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==", - "dependencies": { - "fast-deep-equal": "^2.0.1" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resend": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/resend/-/resend-3.5.0.tgz", - "integrity": "sha512-bKu4LhXSecP6krvhfDzyDESApYdNfjirD5kykkT1xO0Cj9TKSiGh5Void4pGTs3Am+inSnp4dg0B5XzdwHBJOQ==", - "dependencies": { - "@react-email/render": "0.0.16" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/selderee": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz", - "integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==", - "dependencies": { - "parseley": "^0.12.0" - }, - "funding": { - "url": "https://ko-fi.com/killymxi" - } - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sqlstring": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/touch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", - "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", - "dev": true, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/backend/package.json b/backend/package.json index 731834e..1a38926 100644 --- a/backend/package.json +++ b/backend/package.json @@ -2,7 +2,7 @@ "name": "pfandsystem-backend", "version": "1.0.0", "type": "module", - "description": "Backend API fรผr Pfandsystem mit MySQL", + "description": "Backend API fuer Pfandsystem mit MySQL", "main": "server.js", "scripts": { "start": "node server.js", @@ -16,6 +16,7 @@ "cors": "^2.8.5", "dotenv": "^16.3.1", "multer": "^1.4.5-lts.1", + "nodemailer": "^6.9.16", "resend": "^3.0.0", "express-validator": "^7.0.1" }, diff --git a/docker-compose.yml b/docker-compose.yml index 6fd4935..7fdd08a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -55,7 +55,12 @@ services: JWT_SECRET: ${JWT_SECRET} PORT: 3001 NODE_ENV: production - RESEND_API_KEY: ${RESEND_API_KEY} + RESEND_API_KEY: ${RESEND_API_KEY:-} + SMTP_HOST: ${SMTP_HOST:-} + SMTP_PORT: ${SMTP_PORT:-587} + SMTP_SECURE: ${SMTP_SECURE:-false} + SMTP_USER: ${SMTP_USER:-} + SMTP_PASS: ${SMTP_PASS:-} MAIL_FROM: ${MAIL_FROM:-Pfandsystem Demo } UPLOAD_DIR: /app/uploads MAX_FILE_SIZE: 10485760 diff --git a/index.html b/index.html index 38c258a..f41e5fd 100644 --- a/index.html +++ b/index.html @@ -2,8 +2,8 @@ - - + + diff --git a/manifest.json b/manifest.json index 543ee51..5bf4025 100644 --- a/manifest.json +++ b/manifest.json @@ -7,7 +7,7 @@ "theme_color": "#051e23", "description": "Digitale Pfand- und Tourenverwaltung", "icons": [ - { "src": "pfandlogo.jpg", "sizes": "1000x1000", "type": "image/jpeg" }, + { "src": "pfandlogo.png", "sizes": "1000x1000", "type": "image/png" }, { "src": "icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "icon-512.png", "sizes": "512x512", "type": "image/png" } ] diff --git a/public/manifest.json b/public/manifest.json index 543ee51..5bf4025 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -7,7 +7,7 @@ "theme_color": "#051e23", "description": "Digitale Pfand- und Tourenverwaltung", "icons": [ - { "src": "pfandlogo.jpg", "sizes": "1000x1000", "type": "image/jpeg" }, + { "src": "pfandlogo.png", "sizes": "1000x1000", "type": "image/png" }, { "src": "icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "icon-512.png", "sizes": "512x512", "type": "image/png" } ] diff --git a/public/pfandlogo.jpg b/public/pfandlogo.jpg deleted file mode 100644 index e941cbd2cca67c5321c3680c01b6632eb6524f8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34617 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�b9Q63c+<{u4@_n^;Nq-k1@5Fi7cWq3!Z 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 C%?xe; diff --git a/public/pfandlogo.png b/public/pfandlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..a109e33f1b5f17082143894b8e13428a23f4aae0 GIT binary patch literal 26127 zcmdpdWmH_xvhM_fOA<&R!Gi}I9A;o}f@{#h-FaMEpuIgV^hbqcT;9wGAfM95a`M2<1acY@T7NQ z@iXw}4MJQ4@xjg%;cDP$0una1Gc=))vN13-Q8qC!c6aD8;Rk`9qFbnFAT;D;p+7XJg94;q_8lCQL1yvvC7$tnwVQidN`VV z@Q_zA@~|?37*h%gQ1H7!0R}cE2m=Z?8*5u9s2hy(AHGoF`{QFUCB;8Y5LPhCe+^1Q zPLV>?&e4Q|jg^I!*@%^um4XMtV$9BJ!pY6e!OBFz&dSaOW@87lLYP_Ep=@kWb`FYv z|4;%wIvSfomBrrwyFcJR7^OJ^VGjj^U0q#STsc_m9L>ON5C{a!$_{2{X9ij@JGt8; z4BVJ)ov8l9LCnO-$kDda0v8~g;l?A8`>}FsO zW@BLm+t@tH_D^dkgtEzh599yX+DXOT-UO^{;$-LSXav~Al}+8S3~x!Yj-n&IJ)?6XO==;pOK353Q7~6T-mO$mFrpM_P;jrWO0Y(n3WYO$-orjw*I` z*8iCf7j=s!nm?f)OkNzh} zs9V0#3CUx8u<{Ev_43vH4R=V~M4L=X(wQJhK#LHtuQXRW3_k__q9cG0p)_RR6Nwb~ zc)t1n$Q#wAKst^4DaBk4OG+200x)3`t&e_Z{5 zqQ%A!RiaIUk)IapRhJL9I7o*n|7p&qZX3wCdAQ|A<#2SQ+ddw+%WI#L+M>UdX7UfE zsKLTjnJ^lD)b}|QT-;A|c;6D!T`lJ@d=*Ixksqx{jBz5*)E5;skAjEs78QBfkyngy zaLIPjw}c#y{%BUUebi)*gWId604b>ltdpvC!{2n zZ??E$&IWS3nbE)O#zF;YEUcIfGL-M%ZG{qoGd^Se9El9NB8C%flI`1CEN{q1pErTuy6TP1f}WEjE;~*LAKt8Erw-DEvX!!+MI>*2og-=NRX3+6E0e{#Sa`gA8@zpQ8gv!hNFw$pLYIi5dtQ-LD>($p{Ws0~Y7g(-UwKcqR5NJveJ2IO;X zSy+0=Y;C0wm^8yty1Ha!7ziSo6mMByu&U$(Nn_Yod@s%?LM>m-7=AW1zAoLkj?NcG zB8=4zgtVlp^eMwUlsn^eT{wlGR`Y3^oZZnOH?hOC_ z^>lCJUd0R)%T^v`sgAj8Dd5f)zHJH{5OIW%dqqUOn$XOZ7@-SBY*f33jB;)`jEbNaR~h8 z5hAgjK!;$NTXpD0O?SN4$7Z^$fO4Y=`3Cs(Wg38;SzjKVd#L_W>FMG^LKd}B&G*Rk zSZf|)r@2cVs(1yzMZ6t)()c^sKt8^U<@4VqEwzYFt!arL%wDaKknAqLisQwK0StN@!=2_~mo}Zb7VE zK%$Iijy6kIp63(_!7?b7EUe#9 z7}W+7*gO|V8ly6ML_*Ide&U5v?(T+uzHe*<7c}5x7#YgUHInPzSxTCF!~a$e1a!Ud zF9mFK`nj(Fyo81R;t(S>i1#C3 zDOD(U)S1713I(mUrYsr3Jf6L292JU`Svitxsu9an`OcuqAczg|$YH>dkQ2Vw+4{>_ zmFRjf0d?AP3_DRT=4rS%REp*#Sc2B($k0=e5G+}vlVZ}&ZHY){D8KktR#qg{P-}*I zzF$-7l&FT5RANcyj|+O(Z>=Dfn?2hjPs&x1y5t<{I~I`xGvk~^)m2qlPUkF3$vlvf z!`$KbyK9X7k*Re<>u_`PhPb#X%1MWmiw2I_iVD`zlEj)CJ!2rfR=O@{8ihPf>z5Je-44zUBX zfui82l~?Kdyl1NC>83+`(wG??tpD_L7R#@!zTIEkGAHuG?67!bTP^utinqO~X)^xBi3hOSqhi!uulJ{TV^JcUr zcBt-ZyPUR$-r;tQ>TmE#p2GN?ryy6oN?{g}u$RmMLTL2H;2>1ngBO`D2MaaXRz7*n zYt9bZ;|$T{bAR9@u^V{?1!=u0R1$RuI07?Nr@C%j$g|4tJ(tmsT3_!vQo1;fU~kSl zwf!j7W5GOR^oO`Sg$gaR`b;FLGO87kMJ+PeQx}J=n6t&;0|veS>5z$Eb5(YlhBqkM zrQkC2+tv3WY|@T1-RUpViWe`A<0syhMi+Q<_k0(f^KFPhZ|5`e+CC`;If-71p(nc& z3Qc!M{q4DnENgsF0uA)v9S+{tr*joHd)vB@tLt7KTkg4XtHF(3>$9mGb8_e#`Rel5 z80+oJRAFzYz3_4+t0V^!ulxJRNM{a2@*g=46t%T9cs?U-OtxZD`oq{=R==nckuS#B z1*0QhWZZAukhH(RnRUf&M69SG8-=RE4}(&s!|kY7%`Jm%Tz96kPErocWRu~)jHSlH zCDM?mg00f4c6>)N2c;k|i9|b;^lpN#{#4jbom~?V$Hn}hV2GQtLt7QT2wOW)O&DNWP6#%V=H41vF;qE~(en>z zH)Nc7;2N@^DRDIE<@ZD^%UYc8IK>uo->enOW#WF#h!MslQb@*JI z@vEU`4SAYc2cazb8TlvZsRNNlS_nZ8hiar0 zk-vPKjE{;)`Ra~z3OM@S_>cLQSb#o3H1w6{dBfYXRbTMjpIvN(^SL$&O~#CgwxtE* z>W@#@EFN_Xft#+AB{ni@rWQ~RA3S%;DZEvFxPVKqHih8*zkFTHy!Uzopm3iX@DPUKu0tg8}1Mu|{n`iRUbkuwU#B@u}H634m~d&cL2 zBOV5HENgrJdA!WUc5xh*U%=Q((yaZZBi@aleK#MY$&Szd@IyIz3klROmxSLT&uMZH zZEs_Ukch=Q{RznM8^pO*QNGMU zn$ppkq^yxIMtqg!Me1dpuK<=``Gj*AZ}B~U?n#$58(uYZucf@49NE8Jw6iwD!4VEz!s(o5f zd{Pih%N#CyZQ80JV=9{%G65VfZ}WftcsY1YTBjQp;)dskKL#qm+Dpby7Lnq9s5BLN z*w^7n7YCNsLrxbV)y3X)LpBy42Ik2+sGXsz3~k0Bd19Ob zIh)}nc@vW^D|Vs35E|=e8A&GPD(`G!a7IQLR=Xi5I;b?T;{Y|IU*#()vCqM5zESYr zqxqM_{YTx02!o%I@{Y;-LH9u1;xddq?w;+}>YICDmE_02djQF4_sJ*LJ*Z!9rTkhp*|nhS#{ ziz^ZTeIgEK4T%A+e(=;w_~se0s?U7A2{jzqAJ=6!u?EWr6AL4^eLx)*bkqJqruza2 z9VLHa>9MUwymc)R<-;Z0o;5oxDfA**C&5L-L24&s%x-Y^x}ZGJnI>*ns2?C+xL?sz z_CFb*>bmq@>6#|opdu{&_`4*EPVUy>sOm%0ql@^q0oIGj8~wE+cO5aGOu7rwXFO&4 zvGpx|cS`Yi`D{HaK?eDU44S$HGYX5I&?gc9h<@_0Pa@Hh)GD7pQJ&`*HvLL9iw*J# zPZ->=y5dg>>RsE~%H(D&e7Lw5${sy(_JFD9j~-XRlZ6V0(K(626${m{R4psI-Ezka zv*0w!461lp(lir8dq$s9g5D#p3(SljbPyh4z;P1A3O4lM@|XUb@dCuV-mwR-gX+a5 z=-k1Fy~^g{37tF%-?WII>Yje!hG$vWFFKj@-4br&z_(Z;wWKoJ6iU2&kUw+U+RAe} zI#K-d^Z2m&dAzC2;5seJJ8kwG7$IF3C!ItWLL!$_l#;;ga|dNsTu`-N5MKi)XSwsk zJn7&YW*pDL_l$~GTu85Qj%5Q|g=5~jN=wN(N6N?^hkBpQT!_nl@ikUa5i&mQRUS-f zqK{&U4MW+*sR;Bz*<(&Hx2|f z8zzCj3&Yv%MfZcot!EET@O$39D~chaF={}BO8%_(-Zmd+r;&LNY@pUtXG62jiHI!+ z;mk=aH~KwH0(xP~T?Z=*bF1G0iT!k8;_c%dkj$K_3&w}P9jUSJw#bz#RdPc>zD?Oa zjU5@EhyIur#P$a@@6~v_kP3{{O)eSCx>K@|hHhvS#R_~sA87(7H6Wfsr%>EYf0g@W z+fKIaFJ$J=DB`zsQ0`|@eH70dh{u1q)n>8dPva8rb z@BNjnH(f!ESWb1`FwgxzYrX1`6=NZ9cCuu)v^}Qc@%`^Ryi=(FX@;uf%Y1b!wl{{6 z2njh+pMPMIA1ysJ4QtdGObn`u$`8w+-g8iAP~X=*YnHCcSIcwD_S*83XcP~te>s}2 zTR!v9MKHj%J+ktrF!Aj;iZU8jp?cTu#rC7ZLkQNX6jy?&TGnhf=ZE`egn3cEW9 zxVmKqBXE+-QmWuayOAeZ%B|}a$c#Vg)a&5mJHo2@3k51g*1W{*RUPho9}zeAcSJaR zh=z3wra+whEFDvUD+mjUU zR9^w>RXuCBm*Y!*UdH}E?&X&8OXGeVpM>QBPBVHPXD8KGqi!PW*hE@T%uh>Ra;hN> zm9$oSctnR@o8wtSnab!$fL6r8%tWPXRA<*CTP6nDi6*tg^S7Z=IjCp{r+pe=?f7vl z*HilsD$lU7?|v$^MKKfc@M~r|>eDl}epF-NjoR>iSQ#OYkt=D>bCvTz-5SlFEV8ju zKNCqq)+ika2qJ^HEh+M?B$4bJD92SrSxk#?M~`S=R^-@~y3O1)P8ErtP{|RG@oCL0 zKD>kXc>K)Dt{XESXJIWHhEOw9rTn|Iql2S#BF|c)o#2h(svauQ z=6Vvn5##pg-@iXSBT4qyOuL(-H`9?d;k0$h1ccOO@^di1haSB+)$A|JUI69I@)dgm&Ir%3|cum{!@1z3n4)A);4oM zr)Hu+yeh?v7jYK`v63j+3*~1~C-k7KCMu+|Pu1@xZH5+1S6lRzE@d)b#qrR&=w*eU zwOe>2)a{DD5ZJ(zcjs$HE7jzPQ}wxqhD9oiE$(W~_$ur?-5%}(NUI|vOm8miw;YNr z+*qm(n;dil( z*`_u)Tz~Av<$Je(Kt2l~6b-2^2et78UNxU5N_}C$ku!Ck7Yjv59Oom`C3Su&)~+|J z!+#3S1s+4bmMfFd#mopa@=Vb^bf>x*uzWz01fe*W)yU;-^8$#~*>(`NjZuQj60x~HKQDXT`Y50k7;cW1)9^(Q20!upXrui>6 zT$!;|#dgXUxO*-*+oM+A^9fu<>CTwN=czbQGOtq&#wUfB=9N5O9U)s&>E4Ge;l7m; z&q)1V&Xwl8J31Pmrx3OF)kyZaVNl1wCZEf`sPzHjbLQ<8(y$5t;>OqYOqZ9TYP;F9 z+B@?Q#Nf@@tn2o#pIJ3^HPzIaz?sK@*kzZ9-EB2a@Jc@7Y4l8}4Ve_fAT>#8NV)ac z;c3W|)WW^7>!<+Abj834e^-Xuqiw_{9v+@!U7ipn?Rx%R(a(zcs><|=`N&x-Ek_4F zf3DBoq#JzB3#~LH9O_X>hA|B*M4HeSM_1cE-X6AsO|I%u_&`*>J6(Fm@(J?wL2p=& zXLq!*iRjrdoBCk%ooJ@%&0^xLlNRMr3xixzoxbK=@9Src=qKxyV^n4vigiOD!I=_X zN4;lD0m51nMf)@=@Zb&nspHN` z$~=$bCrZO2XPw=Wm`|5aCl9+K839+tq`&^1oKV2`bZS?E@uNlQ!DPd%E8}gA^9`Xn zPB#`@c2hd~Pc)gis^!V)kS3bHZG62m4--1Dj!g-RbnK3MufwU_b~RK=URU_GD2 z43*q=bL?(rfynH=iK0E04DOX$DVE?l%sO=}fa*O%1^jfp50dXp#N3tSoZM31a2o7- z5IqgR8bal$t0>HOb-^+I<2(Ho$q8f)#P__EUz6uTfT%r+-1p8~`7!!@da93GVnF$J zFY7@-GhGFm#zs+7`2X@@Jmdxxy2CpWsaYWG@ z8NrWh9$S$I^H@{WPCOo4Ut?=`t}FW!$Y?DqrU^Q;e*WZ@c;Cbn2=o|$;k3>?C@B?v zc*)NhM5^E6=X1MO)pIP1vXCxZRADvD6h}pnXi~wa^*URfp(m<)!vru0ZKd;~|Gfk* zS{2(q1g)+)+y9>WR=DR8WD&L!vK=o_zKTgr)%&8B$u+r*L`}*5n*=z%fBOF61MJtp zgAaxTg_yf~-A-0m_zores-v~0pSHtS$1HPjOKLS!g2rd@w+$~G*)iWe;5xhCrIs>Q0sw389!KT~J9TL&fNezZ5{&D5 zZXw7J)5X5BvQb%eXswN#JjH(U7CAS_V zgw`Eg{i&UDk@?Djg*c)^q*`Q1h7i3wznf4uf70#}v+zmH3zfn@IM5`sAT9@z48`0_ zgc1vI&J{GhI~={893D>bdOH9CGgaf_u5LIJca`us0VB;N^7l^{Yo;@u`XY~AzM-Jt zf&f6R)!}HZw>T3vGwg92A+U`=jL1fMy815;TIaLm_`^hBKdi~1@&Dk3SZpQ`kFG;* zg5@QYO}2`FmHfRb&^~IN`Bo}l&8hTx(ev|>Ess#WhZ%l$=!8HOmjBij0W;o*zOI{S zU8^7@j#IghOtASk{^B@Pc<6Tw>Kc*L!v2347%0Z8*czjD5c%pz}OU)-ytjI{lEi2O_onE zHx1{#>+nps2wpcV^PJHe{hcD%-F}c@PSAwkgGlh4UWo{6J2vC|=-y${lc&(Q@v*?L zSOyOEr`lu@?*j`m$nvluzWc|jWy3^=dR}3d?a$%8%_I`JrlyA7q!eA}Dhi|K7TEQ|Hy&kLVCboRDU=~5Hy$dPZ7WGGvS0TPfX=Ba$QBV^WT59;M5 zVG0bmV07M6u^dQBRqGSCYHo6Hc9C~R*nizQL;bJ;ng3k00;Fmj_4|Y5^cJ2q=;#W` z)FXL?*y!>59IJ#GnGIF}M1l@Kq(`SsSU3AiUg<;%pDV(qdm*NtJyk8=cgO93MLsF`}JydommT_ zm8EQCiz@I3NcC~Lr;TRgA6^jw=-8zh2f@Q(gE9+Ynl9h!Q!OKhhx5JToyxt}pC|kx zUtk4Fk6sMnh*4(@h5?OvE1S2LzAd>-{X(tT&K*_MEBEL>1yYl*0IeR#r7EVeb$zW1 z5Gw#68Lv-j*(-zE$88sOg#1rdpEF{RygK?h^~agGGn32jwkg2d4emrT(5f~FxCQ~k z(IObKopyto4n@l!m+sl4JVu`zC$HTdUcGYEdc7(?tC+RT0eN`~z*f&n61q=fi<3H9 zmKncBuBb-oHaKcld*I;O`d`Flfv`!%5l#+Lz(L+i|ExA#59WE;9SO!uXQMbsm!H%v zn5{RFyj%&9Hpih@X99^bYSh-%(gLdMz7aR}xjwtV&_+Y!L|r}T2q9a_{Mz%W%vYP6 zyzq&gIVYTqZMl}jNXHFM)iyehf__hAW04?!&SiNAmG{k8nxND5w=}kx7R8UkP+?kFg%uJH#nbr6?=YA zB%$XPeJM|9+xcNwc1ko`^s>E2DPezqJ>d(mwQ<{By;S*8OwRufP2JuAN ziNqvRci^VFo$Oo`x#FGnhY@+M+D{+rxis_UNA^e?k0{6R!%_z)e>=vPW5&d!I$L}~ zY7By5ULuA2`7k{nk~p_|q9-TV)yREw5gvIucvyZ~Q$9VIWkfzIBJ6Q4`7n=qE?GrO z^c%CGG_oe>8GefBgM=P$jWr)t{!9_aW(~A3LSe9Fbx2&^t8ysxE=4UrD>kBd*b=3j zj&{hLQ>5ZOWB1n{65GIeEKA_vhqs^7DwnJBSq{1?kDT0}IvO>n47i!G!jcmBtjob( zFC%rs$;C&F!B$>AzcX_FM&edGk0d6))dY29C4Aibw3PekfTF7Ffo`Ng|T#u zN7!Q>)waJ+6vxPHbrnQZjI~_uV4q(VEN1J0V~mL&NMQ9J&kUze(92TPXsQt26Z5XP__u3HZ@uQc{xv z`3MV^0eOpo2zgC%K1k2hq3$``SEi&jT&6D;Ze`C0F!j@C$abVR2uWWJrN6@DsgPz? zp?`(j{v+$BMcU2Pbz?~v5RQlzCD%DtT%|7=?YX09|2?xQjz>LuXw`i1ktAMF%hvDB znGVJNgqq_Yl>70_ZF=|%!2R$yg}k$qi5b`wvSyc`%Y7b$1+KTW zUmYYsals;4KOXU5+P(DA$sqRodj-H81+ISY5IWWYtS)OQQ=kBa5UEFJ$qsED6mvRE&6K%7RKe zG~7`1qgUfGb4AkamlD{Awi0iC1MdIrQ2G#`*EXVy!)$ZT2=JWuxaw%(|>_nuTd^EM_QHGCGz)T}8vO6D5$ z={yYrS)@h*xlq$E_v;iYJ4{`_GE89q{i*T%XEc-2Ed+@av!cmmkIZdv>WD&QV}R=o z)JU<+v6v+y!jXG$cX>Nub8YLJP}`NW68V9;cte9xn44$Q`T1$c#ZQ1eAidvX zVjmHau)ig1;xuCZ4#XO*US3}AfP=%PISs+nDBAV*+*1TJv1*U?&8KBdY7{6#(tpQR ztV_tV^@%u{tUxpCn7Ph7xsw^WCYKWvcsE>HEd9DFDIpI|l}su2SOKQNKV)?GrA{xz zf}q{q-7`xqLv$aAYd|0@B`eO1xJie`Uzmshc-#8m!Su>ItH)Oq6ZNeyfp^2fMj1kM zaGYFnm6PAFsyC0NWCijF*@9Fix%FlaVN%x>B#PSD1|TcG0Zc;>h~V^6(-;zUr&!J)WnwhWbd^{Bd85Fvsf`YUod?fM+t+p2SsmYwgO|xN`zFSf(+Ml|IDbyN7x2HUmyG9zc$H@E!Mp` zzPx&dNR}37P^EvMDDkTC{Fj8a#P?|l(lPRc)rk}U5H`{%Ue~ zhwauZg%IwCok@f=jfG;>M09IOE$Kg929i1a5%gSxV^QKI{O#%XOMy)g{yG#_COjFKr(*DihZPJ&Wo%Y09qtd2S}@GYk9K) zI1U72+I`HlO|fNDr-m(y4GheHuP<&2ODf18je!&}>NN5sefwCP>% zLh6lfkod=@F%>+Q=B_4iB0<45T}=~Sk)5VUVyK&@fwd@*)Caw!hsqAj0)dg<_r(r- z#D2X}z_ofJPmV9qqfkOjx^)c;dwj0>hbL@vw%ywqQFiZf^;(zhvHxYD*%G74=MBo@ zyjL3Y10EaB+v7M}Q+aFttuqnmh|4Mdm-|?tl8{e7jSm_mB3w3jC66chvh!!N!{5M~ zSV^L;6)vljF`reysbr<4jzVN)Pu+o%rynp{8ahu}YC6vj8tUsIL+tv`K#qBHq-d{E z+NAeWW(TNwu5x#NQjm?dQ*~)K>0$w*Grf@GkeRPDQ$C{?H;d2>L9ZNaRc7Fo{3v#RP0=>XG4(KvI@*DBd@7aZt(6 zJBdhFoM%{!y{?Ep&jWr@d8q3iqS_=ghz`rs)A7sAc{8ne!2A*KXqs836lt!p7-5UIy{>3$1}!Vo6ls>(h3x6DP0NqWQ(SqrR4>} z;zjfC3162ayAsj)l0$5+mO?tn?}wfzYs*(tvTaQ@?kzir1{YY5mmfI*-MsuMN+<7J z>#+uZuDAVlV`FG|;VK7XWrDJAShVV0tnHljct&z&Jdkm`JhoKz#y)bhrP{~IT_PHP(Pi+8a_9(1BAK*f44;70YP0i9p zs6Bex_xTyYw&On-qKyZam-d@%u07kYtR{(xr$o3tPOy^hy&I*Xq&E7u6g_V$3j?yh zkT&EzZg#^7Abn;RQrvy#vypMQm&CiC6K*aKvF!}IY`OPwnE*@RSf3pZA!mW#m$ zi*U}&33WS8r#tE$@Qd}sG~lD zvC+OGZ)=W!AhGPonER~SyeH$`6CawCbnzFPYHRS#Jr52-=6K(~WAQQ8#cuKe+WF&n z$n!xHB@S)9GG_frDotwrz2cJa}j=t1M8yLm@tmuH)b(4y z=EVj1Q*`a)%IEU2De}K$uS_knMZ7o}g60al1Fa?#Ba%36Y%b?ZKJ!Br2KqbdRB-m9 z2`?_f?$(0Esi5W74(Np#pi0AsQvCT^9|7}cskTbJ&IkOSVKa1v0ucQAwc-h{-38$^ z!tyLD-(-HH<-b>!(b8WN^CUYh?S3Oh{zeg)O)x(=g!noDWxap}UIFpK?RMpk+ls2! z$0{NEKJU2Ez$TizyG$_YjCyfgq$?BrbP*^jZ~ua|Xl&~(;ZS8Cfhtzfn(HZRse`ZDEEQs3^$MQbl{8C9%fdwzylI~HeqMcb>jjYf2*kC4-k z?GfNTLCd}vzABOY!>#%kbUX*rTbA+yuu0de5pn!Z+&AS&k8+w`U&s)o^1EcjJ1p?W zQnh#_r@Y>rm|OJGg%tQG;#l{Hrx7M)nhjPEAFfr)VK^L-A*shEE%q_>ZC$Og$jfgL z`|3i{WD?bGhJXcYbw5*KHZ<}opY|}x(RZMx#ZAN*Rg>5C{EI@J^YoVq>Nrs_y|3;3 zeaEKMhsnGOcw?!&gKcXPZYd!%oYQvldeM^;JJ*U44Q=T@LS=q$@05#1UHR;NbkqT8*>Qi}8T4Y?IVsYiUy!%8gC@*Z zgFBQidZcZ*x(4^eaqSNba(dB;Ya$cv^|*&EEKm$?3n2Mw1-I_liQqrpalKOU>?V`}RkoJIO9vM(ALXNkaE)i~ zG=p*Zs|j@%+{nbqTI-EA82{x6gvkl_cvZKsz)xD8M4*jIMsHI3@(C$ z&iiJm`kpisWDWl=(n0eseE^(>ushBPi%uQM%+YK@is3g&e*(a8A)!v|V7&&9J#zsV zgkJsC*WWTV9v&XF2M<;{*~eMPWEosf{HAmZaW0CGgURac_eI*~f*^_e<3E3W6Y%yt zn2~SO26E*Yz@CF*I5CpC4gfl9>IG&gvyMRp`X9xpmG>@JVi(4d83O@M%@gf(G*^gQ z>!sx~vjOgbtpSAENE!S_czq^5)zfxL-G{<^F&52d!P_2M#(YY^xOB6)aHk;#Cy;v5a&J{;z zbES{s4k!k*{sF1-mo5{L+O;%P>Q3v_R*_i|Mdqn6r|bIr`8rz>Dvq^Db7M1UAHqch^y(a^pRK(2TJU9tN9oVPg=^eaOjo!Yu1N=FTAr@-%M$vY z?v6Vh3@lC{Bpw+->~D=@Ta3EwB;}iLTKd$sk#Zt+&aTaw=*tgE_9J~y5_-7k!~iq|#_#Osbo85(kd0yxjx?q4`IkGld# zv3FwCmn2Tldpu2eUX(*4e=sKz4)Fx_-b@vw*0H7D!9@C6B8>}}W&7OTt}{7ClQM`G zNuRm~@AQKr7N&|=SS)xV$%~Zo#6l&@=|LKGQ`NkS7-j1$vyE1+U`jlEf5oqv-=tz_ z;I)VS^Rs-;1FNBBo!D>6F$<+wS8Z|FUtzvW=9!@%?EZ@W6Iatnk~&s&4-wYc+JTk* z_HiXy&$=#+_Bd^TLnFMFdtLvKMfVBEmF=0AccX3%H|(SwG$nIK4@76G10IQNl#p2y zansq)pn0-h^Kb(9sB|xj=?7y!?2hU^MlJm*;^JtsdWUxzdvzCQ8D@g`{xSpSv1T~M zjFM}Xs%@IZ^`18_b;Aij71G4&RLzOa?AbnfUzVs`4KtbO@BEe{2+3YF725X1qlX0C znw1!`=HsKGzWbsF!Ep7Z+zC27=*a{D)?_Vw4hL8Nu=e zd#h<|qoze{L$>a^tx3k}0mLxVQ#+vGt3*vgA=QS*s^^)Lopzm4nB=B*P1J`7&s8$< zuwU53u;UAdwjd_(_TC-lKY}~a-l$+Z-|9q>WsvI`BN88O0`fr>o`D{*)!rF)& z%oo?_PycyS_l$JwJ+{a9r~p+?1`ij^hR;9fQ&@8p4$d-BaW1C^t2AB$d$xQ*b-7h$ zg>Mmghm#{Pk2z4U_nrUdypU;t!B&PcfSB*`O2Wg+j9$}~RoDKLKc|Sdi%QqUZ97n? zbB?+(se*30VPIFl&8aR=n(JV=czuIzCKtx~P~n?od^}Ddf}RN{=CN8e9b60U%7|gw zBKN*n9Tozren<;3K`6`sJh_`EI1xEpZ8WK`Y54tzOhD4bv(eB__QC=ldA(kexjB`7 z;t4^n9M@tTQg{Ww*dU{N8W#{AV>H=bdya)Os#~p|(>GsuY#??zKP~Is`mv(2hkGZV^WE@Lxq*fv#pt;y_9{@nY|+5_J(LV zwZ|qm4a?h7$%>f5gAO`c_too{70*03vLjR-5%%59g(x7D<;RkCpXqA%v3sMgI)+hW z5!}MemW`u@XZAQcSw%|3`I^w0I>tN{HEf&Ff~{c}<^=Lw%?fFBI)y~%ColwKiT>Jl zyn_-L_Qex?GR*hjxa6n$I1|b_HEVktGrMYwW`FO6olF+-7-CJK^GW^@76Fnvg-Ru@ zU})=k9A9lM!ylDHU*$TF@g2FHNj|M6wV^ejV#v%~{B+1>As~b<`XjsoOVz4EWS{TA z(5dRTj!b<6|M&e=m}W~`Kl6*KSD?5=XWddUr~{cu5B;oJ|Fz!56Y&1cN88@<%vXRN7@cAZlOEA) z$aKKfAmc2D)Wg1>HBc_-N5k*=Le*okr43db7&P%Amn(zCW_I`F==96Qsl7s4WO3M) zTNlCEQRvyx@#hnJCpnR@^kCZy+l3mfI-i>X^{qEebM*w@3{;n&@~3dG8rzS5Hu=Nf z%!~qB|21y8RnDs*QI%{^M7;2qV7=+KRn^MWGWrjHFeEechEt2v7C~fy3yNvoIH^E) z5=v_tqpF@1D6ujYP8g}4Koze$Pe^D>Qt;*3mRI1 zN6bKYP6Py8x}zfyEKj>?DDixCY3R_HA|at(MaZbc-)P%Uq;8J|;2}u!t=zj)T%XLH zKSd30unk?EpbB$=`S_rJ{`ERp<2+;xKt(DyB-^ii+2Q*YkB4dd8$dpQ6gP!;8geym zm3_++G&-vD1c^?U0btbgO#;O2?v+cs%EsW3P_f1@*~`T3Vt^|; z0!uM>{I3jf7lD#8-6G{HO9&Q|-aVNu@jt^uxVRVlq>G-rMvtu z%D|j)OQlWVg42oT`4us0tx10ufaWHKIbr_0-|n)UoDpz_-u2P3`)jPLMOwt)ofUlG z>YH=5%|E($>)J}L@*&G?$g-IBnsNK|r`s?k*r69tA=ls89X+Pi{RRpb+nS!C-^Gmp z{KU!zS5AmZ0qQ8Dd$jSRqF^g{cwzOQBf$i(Ug;#^qG6i)z-)10*wW!KA4P~aUCH?i zOh2zEFJ@TnY<{fPm}3VCIhKE&XpT1flV$N6F}XUXa?!r}ak8W-zup>Yh?|-B8-Oq^vY>VgZ0IIq*cCDLEZAjVI0Uf{Qdf z!4vKg#DQa(8$;G0%LzYrS^c`#Z1CY@0TY+E@n`^v2L?4>Yh$JH9(;K53sLFoLfk;; zkda>3)o<5kZG03cpGkNF$%{yBp13Qki*^DtIH2$_1+`hf`&nTDpHW#)5K7Cd>*xLA~s zt0>LRz7~Pdorw>$vrOm<$8o32`sr3;V0SJFRyeQup%SkJukGW4@uj_z&YGHvnlQci zi9^lzvt}B$U9i9z?9=x#L1A&zNmezKJuxWAJupu-1$%$qinK9PaT6K#7eZ>AeUJd5 z#YTiG<~TYc+Ura}9HZL^uV`tSjOFcS5pK~GskZp@lr0ht()C|YlHVgk`(ZTUD2@qQ zm^ju1bLFmkBA(L&ZyamzNeN;ZR2VQ|gZ_!*0TU)?X^W_cbNdTE!hHIkpn9j#DB54- zBXqk>uGiIUC+&vckX(^pUJLo+UDbbiHz;c4&q5Fujf*EmYx~B}SGTZm!u*qE#ry7w zQhHTsj2-4O#TYXN5{n_|@8+!KT_ymMFkO}<*U?by-Q+K0qMDCC`!PK^TpVl4@Uoz* zPefBJH8zUtq2NYuFuoqcbl~Pmf6u;fnSm`-uzz`Wpf^b^okG}oXKrgUYm{J4$xkR7 z*d=4x2lV3Ehr}sq7T5xqg9{_hy(|u5v&Vl+FzaOwqicYyIN|Big?PDRMBms#q8Zq* zMhaw>g+!;{^8LutjEs+XbIQiSmlK})p`^GMQ~!E{X4idzpYHDB5Mhn36-(NAfZ}*A zxPY^^E5UtmyKdOhH&JT8>)DcgB-W*=7kLwbyJqDuiG-B=*_~83X3>Dew94jWGSoJQT0S_Y_N3m;Bd~dLiy!DKS0;Ye&^k=wRN4gFEz` zts$Iu_uE~Wp5cEYd0dS3R!`Wl9h)Rg!y&iE$1)|TZIUR$!dit zn(Nj@inN7tyFznw1=L;l^TdCS>}qp+4fS6i5+>cAPTxPIZg?GH4Fr?>9$wPgFX9-q z_V_Fr`$|o0xY-34LR{vFE4e+ciP~J&`r`*0!%YdFrWMS9pBb1nB8Cnz<^ydQ{5qbM7GsI>K!bD8VKC zU!7fLSXABGmJkpS0RF$z_0RfS2hMHk0fuV*P zO6uG5p6k5V_5D3R_OE&NT5IpM_F7Ne_dOS9$#159bg|y@&Q7+Bs|vYmxV)jy1ptMJ zF!!oisC41BiewS~%i;iY`T(>4tsq1(f$bB*jMd_5ASs+y(ylMs>aJ9F0Dc*tc~pU| z9q)4onzOND0B!i}zRp2&2*~?R3<*KO*P(}!9*p9TSpake5hglYvm(E6FU{2|+m-^g zfAa>!z}J3dv-1+dLDV266=iJ|KJ(q(b`dm1NLUR__~nsW7{`kjve~te2?EmAZh7Bn z=yu_Ecbi3X_a+<{HwJ#efC1r2okZz6BIdCh98O2;!`Xts5u5k5hu@pbmt@@(^444L ztXkIam7ogn`lZ8XqITf~jkd@gB0W5E)QwEh3%R~a^~HGodChB8I`sgpI*;AuTmV8AWpW!g)t z+AQHbx#>Z`WI>d1GkRfZ5SDmYur^1cua*{dBk3i*M^e4iO7>)0P7}qf5T2ocsNd!6 zxkP5B^FPB%&j>LG*durgNe{AOP(k_x*Gj`2iH^s+NOwZWrj*2Np;m>~7&JEP*ciJY zAY`I%p1AN=G&}~9MjTOq`Cy}QWa{?PR&G}(_dZ&vUT(5TnS%Isu@pWLCfz0O-Q@5O z{q$=^i2zy+VqiGQ*qjm>z*7lggt}$dVFc>Y8DbzSc-ymv5*%D{VStbCUFtIy>>R76 zhSOxu%vR_tdgw#rSVijbo%(^1UBd72VWoqsy8ifax=&K0_Sp(gQoopm@PHSh9?%~D zctB?DxX-=SIg?4KGx6auRudM$w&=%n8~j0@jjS9DIJ>jckD{aKzFT#fmL3 zIl-lr6(34q2uD}ipP>q9ly`n+P9$=)r@VyxVyPow9y|IuH~u06ZOHF^M;Tz@eaU|k zjV(bn*)y~GwzU~WgZQkdAe+I_2gmYxtcxmXd_Dc+Y9Z7(_z)x9h5l!ekIBh3vcgAB za<}>T-vWM{6hbIQ1IxUTF`XX7h31ss>?~{7V;ik9Smeg26$e z1CA5j!q_M}98TaeumBUZzTD4|q;;ay&&eqwS$?9dyj8$oq=Mb*#F-4zGbT~AFqhi* zTe&2wz+JKc65`ug+l}6hi@8}{oe0IOq+v+9ub}DdSAdrunj?5CQ29_WG;@9BPlC-@ zT6^dS1@UIgMf}hA0JN!*?9WPOf)azMU5RwbE3+7xYVu0cV4BI_QJK-edI0y|NVuuo zJADO4%Z1TW|AzWs%^zLo^(H!ROF58k!Z)J%5;-JhN>$mv&AQ5owB(r_3|Ysg*N~Hu zqYBlAdc~4ba&`)93dMHK4cnc|C>%h{%?M>t>#49F0;-UO@CBYP@$n-WV1~`{_623^ zR4DygoH-R8Pu;BJWXwv3y3~t0fch#%eU4{!a^9`6(Xm1{PeNdHPA;Bk)~kg#=jn$b@evGboc6r+pggP zf6+$CnbIL-sE&3l0(G4Elaw%?JYncJELEpG>4)h4raz{aLIu|W*{)C6Nd6~Didj{~ z0_p~y2r_EfotOZTwBxX@QY)qkVE0%z{#?!PXiEMJmt%{IdGzB>aVHXKBMchhtbeR0 zxM%$$S=sJ*p9-(yveD}|=B*JU`oM}pDmzV06*kZ~H=_%V z&gn1{;lpJ0wm{{sHwqMWvWIlPPlr#Avd|KL{yc%#J)7#oT?=}T07{DGXz|S$?W-0K zqoX!?-EnM$&INKV4vyi6v@SFcpG2BENJtdq}A8S5%hwi3kQPAXI>xYr=KEjc{63> zivEyO(f5dR#{TCsgfsTEAV@|AwX5E}x0&9GHQ-53sZGw$ z=|=Cu8^!&-CjSaGRqQNc)k5~bUQII%euRG)$Xc}%slt}WggtyQzrvvz`C6jS_m}G* zU)a`U@MBjrP4%>&q?q5z)aH75??;~UPm$6Uk2c75983)i?|H~4Wujd!5y4veCp+5# zTU|X`*i>GQE&rLD$rD0xXVYjPZ=C#X8IuVbPMa$8A>+oyzZfGi+7PNZ$q?~Cly@)N zS!w3MV!Q{nhb0=;s*;-OcY?Ia){NV|%Q{DbLLp3G=hCAi%UIUg2V~kTPwnc#)(ejlNtxOd^z%|6w-jR2NmR}xab zeQn0pg1j4`n#!*ErJ7t=BbJ4ET6oGxbblG(p4z?zJ)Z&q%w-b|H$UThqcW_X#eh@% zd=z%U^)kFnvl^k%EBAkeD37in+C4k|=B%=bfxyl`T>GFG(t0g>DKOd(?iVlem5E`h zV)8{ZS#toHI731#ni}WxBhT%LMunn|=-W(!7pfvzNr!FDYc`SCQas~))#zSRPkFLl z9!1Dl=2@(U8Wd zrl%zA{1!ekc?b+4gOT*;?@7N|qBz1J-YHEtIsu6N%O2$%13Rw0Cl=$w_|jXwQ|cc4 zd58$K$$*D0{J}adUuxYa#pCKh!joyL2svV`16VOdv#6+hvynwlP(wFw5n%ErKDNe8 zzDifr@g%uvn0UIIO@-5-2~yEtK7Cq91h=p-$cb8ZW4X+kO?R|h0 zfo)c^TXRov*-RQ1dZHWq{awdq-6?nOqmlL-tEXpuY5U%;79*Jluvt;8+omu2*K z1!S@TEQswLD++Q2(nWx!$BCH;TsZ!M8%Wof=KTvu7BAkpSLJaqANd=L0#Vd1&{p}T z;xxP!OhS}=x5$hgbbX*1;~-i%@$Am5oI`#SPG2sYC& z)q34rYdMrE>W{EPI22M)-Cyxz}yL&ZPR#z7y1ur)L5|NQOorD#B zW*8e6_E)bFIkMUB1Ox0AD6ls0TO!{8JTFa$@huZK%%G_+34=-h`Wn805N~6n8n(2w znlzY^P$$sH21t8-LADwny+&n#b58eW@;i9alG3>ff~O*JMj*@Oe>m2=0{^Vlz0w8i zLU%%)jmiG{Qt1K5i;xBKM`EqzaOzFQ&z?C`d0wqDtu;n*NDbqb^i6I4p9j&FfOmPy zBwneA*Y?)y19v*MMdp94--wII0&lvI&#iYGo+8Sqd=tCyq6tjK|B z)i)4GR28V6W4os@Ig#$|+ujp`ln)R+oXMgY0_n~=wqU-I7Gd#xDp?)uN6aj_ly~=~ zS}36`Whk1ggg+&t?>`=Acwu~GyVFMH_vnZA`QH{kuUk;_iP z57ex-|3P>-@?CSf3ds`vX#6O#qeRF^XRc&)tI*|Kt9+=3*fuI~ z_0FpH!9kBs_TU6R18F%~OXi4YZQ{CJae9L=J)b-U4SN%}jrGT~Fq44m7O!Q1;AAs<>bZ!XtAf?|&@}bBhB=!RiS>1}fp?)MsmB`=YDyP3%LgSE+5e@j$*r zHslqT7SU}PL6C!xzPML~a<6uoAb^qPeh*N^n`M@zMk75F%=K}UKF-wVH4#TNj{nA<`zxP1m*v+C)&EJ`>3zTwWkgh{)$CwEZ8-b z%=GQk3mrhuX|sn>6QIfgSn2n6Dy^S*$0n+0_M2XUqDLoVJv$;9PNu+&tvXgf0tcr| zf8;a3NQiiEQ?CQSx)V7PQ!=I4Orm$xYZNM|ZRW1+J)q}%gZ|29_bzr5siqD7E=K(% z(9bbzRTg0wp1W#In=T9gtRm$k5&>mjU%k)ofm)(+UFS~ecXh5Y$g5@CAq=*krRO|B zzT+897^`rnq|0agmCg2Bg^oAw_{|SV|M;an|I2Hi`f_srz11Cg>Yq#o40>{r-Ce0y zr#0dTk*5#BuI$w&E&KY@Z@XFoPy%r`u>_9zW-Z&fb$`s@!-yRPpri%Qoh~#?i|+mcWe6wGp_kwk-CSvu zM<6WtdxiDZ2NhCG_LGJ|)7?0^#|jTPse`eb1Sn6xxK6=RIqT;t3F%IPz^!Vgd5jyM zKPF5Q%h3BL-hG4xn32d5VvLIvM*H;G32yyb-xywVQ7H!+k7TJ~^Y~2uS^aBW-D~60x(sA44rq?Y%t&H6qtK{-}-!m81Pw0*SOHx!%v>k1!Wi zXLP%zR-n*IP4m4c)ODjxCM8I!s_^yQJB#F0RLye3tuHWS@5hnNh}@H|KO5SSOfP%| zD{wkve2xp0&3pKyD{NRo}p$pA`~L*Mi4f+SlftbLNB;o75-7 zPtTD9bS!$sz0YqKGIqZPq*YcviVef+>yp5?Op4@ll~ezAeJ$7<@e7>36&RHzdUMs2 zWZ3nX%yRut6Rk)!e)XjH5yN;+H-C}DjYv&e|6F)nG&yPWswHlkpm?KOr;oH#_G%YF!n!;;(!C?TgjmykY?xm>apLuqazBsx?f!K7_!)G32f`1xgY+bqjf%49{ z45`seZO40c8`Q#Qz4E1L^FA9F5d3s9Ky>w>)<^kotJ+#7q^oEkL4gD~1GW_D2IGtj zl)k0`rZV?V((v#h%|IBlzYhqnu`m&c-zP!NR|Dg~1 z@|C0*v~9-lo?9&@0FydO@NX11JnIf5HPY zD8x7YfQ;Etj&>byG~@OQ4#-v^ljEh1f~$MZ8R`C;#HAl{jf@LqyKi-72K%kJvekeV z)zdpt5PTevcPq{Omiks`v;fgQIoJ8^uF=NM`l`kNMDw+ViXqTB@DZ5b0Rl3FrM^(` z$?lA27AwET{u2Hr*v6!!|Bpen$(-@)`|Ch(MPqY5)zoYT01PLMGFyIqPvc~l!V4p0 z3gy7_+w3~mkew$4;`~s&Wo=^y()TPbzSLb7XHiLrkLT zvKJn)dY@9Bge`B30i=67nz*FyDVLVokL@ny!4?l`}zXT6R7lo_4x=^0{$X)2^f9ANi{sq}7t-`d9#=(r0<^Qx$8r_|Hu;{bg8t{G1 zfzMq3&u8Y$s{LY;0j^*R-EXW4O?~fzN28+Vojwfy9^;jGyCY;VJLW~TzBQ`EAm~z{ zS`fY~73;enqrzkg3%wB!e@=+Xk$lnKn!<4QJH2_&ez9K6AY;CeHd26?5ka2}Z~Hnm za;L;w>gXdaa=TZK%y_0L$M}%<>O9SQ(;e66M0udEu?)gN{mCCDZ}lqI$?Jf~so z8!dK+9Ho+e7Tp+ib#)mWpx7SsXK!hRrPfd-Z)wAX-DkDSfZd=CN&<1;{o(2R{v+a3 zb@f8Wdip*}*RkBF+2$Bu30+5?*pMr(p_q0uF_9v9b-;>dm&%r`L4UM>aEBQRiCMsm zi!2KkJz#^0{a{e-V_1e9Xjq?F;rn0)g}pvOCP>t4tdJt8`+l16i3%j;W@I_O2<&+` zTBLZg?&~7Bgu2uGHr+mrG@j7@l6uwB}3^kgnFut)EjZr2HIoWFz ztW($+wVB>mzQ3lrR4f;bTr65_S<|F|vuc{8(Pd`RUNqQ|+RpIp3wVN<#~y(sfY@`W z6gJt2M)Gsg??UV78Cobwp={+KoIH7jApk)&L}3MN~}OD;S~+ zcG+@!le`}$OLpj|VYEkEKVxtOo#6>jeeU4(iw=1QI35EYU!B-zaf^9I>!dZAw;6OY zsH?LoPKOKk!Ny+sn1k>*@DLn$2FG1%mP1P`9CX4MD0?)%I9Frp?lxjMHR#&EJy~vz z?08#-;GUQVX7<2EmqD8gE(M}*1CHye(R9iyOC%N0QK+7jCs@Q}yWs`=6ix4PK5_4^ zd1;@MCnZ6>T=+W08u$y(J;`UZGRf|6(#pzQwX469`1RKAx%x#>#-+EC6LCiA6*wE_ zB4(TFJ5q(rrdNJ2dhqJf#3XVfz5LccdoDs;h4#olN%cM+=pS~!x*UtmWZFZ3ns1gm zC7uDV?@s;gcPI15-}4Z+<=P~*+=Xndy~+*?2$Y(t!7S| z=9zdx$B%Z;_YO56kX@-}5wtR`c9cf2*;A#=CdgXX`F-zRAl*Fh#=@ha7f3~b_mBY} z#sXzS0Z3vCgH@vYDhz4i{wcJbVMA4p%Gj?Gg6!dFgRuq~RA@YJZq?tC)MP7=n|!)> zyWYl~uUKjOeg*FLfNcQ&Po-O2FyNP+nRPHf-z2#GJ5h5@#J$q{*M1KCzN8))kv*gD z%?6OL2LfR>g1$bFN?_XZ(eB#tCFKn983|TF*i2HLs6zX+bli%|i*kPH zXJ@yGNw+*&xbFy$aXYgNy3RM`6LNfM(>o8tGf*69_FVzQq;qpa){hK$pRf_8zjQrG zU0uA)TTMNpnZI^AF6}U|+IU7xtU&G7Ka6I*$b%JVBwwyn5}Q;Z;ak1DJV~;DIPx{E z7JW2tWFl4jo)OW|(74{^9mTY`Z{-Wwj4iqF-@JZ1oOZ@0Xg`I@B}H@A`}+Drx|j~@ zvi+AWNBn(wq+IzVw5Xc0Pox)j=9=20eaYW#Ox`9(6@L_-oUk!&kDEA?IV||J7Z;Bg zA8=+lnJ~5OFL|Ay#rBwUkW-j<^x*ok269vE)ZtkYb2&3JvG2)#KH}MQv$nTSp5uF} z$t}qFcB8eUsFLMa@BQEHiJ1$@=*o{?2uskm)yR^Kk1MqI zzS6O1R~=?m!46Ae*VnhcYZ~sIxAoL?_-yY=4vixgn7D`5`mGP^8Y3aGu*i^h2l0N7suuYKP>^OvD&Z-n8_MM(ZCU;dzCr zuy@XEY-a7?Q~i@lSA;pa&p=!;GLx~<*2|}022&YZSXy>oJO~$CfKMJJ6@~hQ09uwp zo(IV#giX^Xexp<=!@omIC3N&AU^9U815FdgI7}C-QC0w_o7d-*Vd`F)h>=1*@b- zYV5qVJu6<4hzdSLgx%kXPcz{Y60JcaIkVZ5`p1wAC6I(^6aC6*5JJu9bzYl*($%~H z6-~}u+5Vk)k3B?lYsb@3;xm{D&!}l~9^+<~!`Hn@q3RytIu=!LQURQSpu9W_EgI-b z>1uP|va^`y&ely?w?QWE20+Vfb{{Uy!8#qFPZ@m!BL_q~b7Gr+BkAk!-k|M1#XaYJ z;NU`a(coSd`elF)Q^%-!E>cP&b;n)ee9YgkfqH}H<^CT5%e)$=$$>RBpq*^IYS~e; z2%VyM{h8~ISTT34R<%moH)re~Za09pZ1n<=f&UQtIcOeay-*4hwKZAhWeh6abeldN zH0>qZgj;e}088@LPC_}kRV3X@E3^J*&NpmBcge^a+-oATA{b^RW0Qb1*DVi+S7$$! zlruAv;uuLP-PI(syF<2%lS$5fKmGBG)|B(KQ@6 z-fs6l-nxpP#>&dy!s-KJ!F>O@{^1E?`Fhx&u-89-9f0KrVkv;w>mN~ltU1>7|C#@5 z`d{;ZP5)~S4DNq!`QO(6JBWW<|924oZT(-<|6w3fLnZ#w
- Pfandsystem

Pfandsystem

Demo-Portal

diff --git a/src/components/Dashboard/TopNav.jsx b/src/components/Dashboard/TopNav.jsx index 5cff776..8bbf44a 100644 --- a/src/components/Dashboard/TopNav.jsx +++ b/src/components/Dashboard/TopNav.jsx @@ -36,7 +36,7 @@ export default function TopNav({ user, activeView, setActiveView, onLogout }) {
- + Pfandsystem {user.tenant_typ === 'demo' && ( Demo diff --git a/src/components/SuperAdmin.jsx b/src/components/SuperAdmin.jsx index f139acb..598e8ec 100644 --- a/src/components/SuperAdmin.jsx +++ b/src/components/SuperAdmin.jsx @@ -26,7 +26,7 @@ export default function SuperAdmin({ user, onLogout }) {
- + Pfandsystem ยท SuperAdmin
{user.email}