From 0d10e17cafb7bbfca43d328066f9006e29dc4eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20X=2E=20F=C3=BCrst?= Date: Wed, 5 Aug 2026 14:14:02 +0000 Subject: [PATCH] espid2sensor in Hauptstack aufnehmen, verschachteltes Git-Repo aufgeloest espid2sensor lief bisher nur per eigenem Dev-Compose mit isolierter Wegwerf-Mongo. Jetzt Teil von noisesensors/docker-compose.yml, Port 3004, Zugriff auf die dort laufende mongodb-Instanz (sensor_data). DEV_AUTO_LOGIN explizit aus, SESSION_SECRET ueber neue Env-Variable statt Code-Default. Dockerfile_esp2sensor an das Muster der anderen Services angeglichen (node:22-alpine, /opt/app, npm ci, tzdata/Europe-Berlin, deluser node). espid2sensor/.git entfernt (war eigenes verschachteltes Repo) und der komplette Verzeichnisinhalt ins laermsensor-stack-Repo uebernommen. Co-Authored-By: Claude Sonnet 5 --- espid2sensor/.dockerignore | 15 + espid2sensor/.gitignore | 7 + espid2sensor/.vscode/extensions.json | 5 + espid2sensor/.vscode/launch.json | 18 + espid2sensor/Dockerfile_esp2sensor | 18 + espid2sensor/build_and_copy.sh | 63 + espid2sensor/db/mongo.js | 59 + espid2sensor/deploy.sh | 36 + espid2sensor/docker-compose.yml | 25 + espid2sensor/docs/PICS/Eingabe.png | Bin 0 -> 123988 bytes espid2sensor/docs/PICS/Liste.png | Bin 0 -> 149957 bytes espid2sensor/docs/PICS/Login.png | Bin 0 -> 70403 bytes espid2sensor/docs/PICS/User.png | Bin 0 -> 104566 bytes espid2sensor/docs/ToDos.md | 15 + espid2sensor/docs/beschreibung.md | 60 + espid2sensor/hashpasswd | 3 + espid2sensor/package-lock.json | 6549 ++++++++++++++++++++++++++ espid2sensor/package.json | 27 + espid2sensor/public/global.js | 418 ++ espid2sensor/public/login.js | 34 + espid2sensor/public/styles.css | 246 + espid2sensor/routes/address.js | 64 + espid2sensor/routes/api.js | 95 + espid2sensor/routes/auth.js | 34 + espid2sensor/server.js | 66 + espid2sensor/tests/server.test.js | 166 + espid2sensor/views/index.pug | 90 + espid2sensor/views/login.pug | 23 + noisesensors/.env.example | 3 + noisesensors/docker-compose.yml | 23 +- 30 files changed, 8158 insertions(+), 4 deletions(-) create mode 100644 espid2sensor/.dockerignore create mode 100644 espid2sensor/.gitignore create mode 100644 espid2sensor/.vscode/extensions.json create mode 100644 espid2sensor/.vscode/launch.json create mode 100644 espid2sensor/Dockerfile_esp2sensor create mode 100755 espid2sensor/build_and_copy.sh create mode 100644 espid2sensor/db/mongo.js create mode 100755 espid2sensor/deploy.sh create mode 100644 espid2sensor/docker-compose.yml create mode 100644 espid2sensor/docs/PICS/Eingabe.png create mode 100644 espid2sensor/docs/PICS/Liste.png create mode 100644 espid2sensor/docs/PICS/Login.png create mode 100644 espid2sensor/docs/PICS/User.png create mode 100644 espid2sensor/docs/ToDos.md create mode 100755 espid2sensor/docs/beschreibung.md create mode 100644 espid2sensor/hashpasswd create mode 100644 espid2sensor/package-lock.json create mode 100644 espid2sensor/package.json create mode 100644 espid2sensor/public/global.js create mode 100644 espid2sensor/public/login.js create mode 100644 espid2sensor/public/styles.css create mode 100644 espid2sensor/routes/address.js create mode 100644 espid2sensor/routes/api.js create mode 100644 espid2sensor/routes/auth.js create mode 100644 espid2sensor/server.js create mode 100644 espid2sensor/tests/server.test.js create mode 100644 espid2sensor/views/index.pug create mode 100644 espid2sensor/views/login.pug diff --git a/espid2sensor/.dockerignore b/espid2sensor/.dockerignore new file mode 100644 index 0000000..f65be80 --- /dev/null +++ b/espid2sensor/.dockerignore @@ -0,0 +1,15 @@ +.vscode +docs +node_modules +tests +.gitignore +build_and_copy +deploy.sh +docker-compose.yml +Dockerfile_esp2sensor +hashpasswd +.env +.env.local +*.log +log/ + diff --git a/espid2sensor/.gitignore b/espid2sensor/.gitignore new file mode 100644 index 0000000..7c3f0c5 --- /dev/null +++ b/espid2sensor/.gitignore @@ -0,0 +1,7 @@ +node_modules +.env +*.pdf +.DS_Store +._* +docs/beschreibung_tmp.html +docs/beschreibung.html diff --git a/espid2sensor/.vscode/extensions.json b/espid2sensor/.vscode/extensions.json new file mode 100644 index 0000000..5ea983d --- /dev/null +++ b/espid2sensor/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "yzane.markdown-pdf" + ] +} \ No newline at end of file diff --git a/espid2sensor/.vscode/launch.json b/espid2sensor/.vscode/launch.json new file mode 100644 index 0000000..980acf3 --- /dev/null +++ b/espid2sensor/.vscode/launch.json @@ -0,0 +1,18 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${workspaceFolder}/server.js" + } + ] +} \ No newline at end of file diff --git a/espid2sensor/Dockerfile_esp2sensor b/espid2sensor/Dockerfile_esp2sensor new file mode 100644 index 0000000..fb48f45 --- /dev/null +++ b/espid2sensor/Dockerfile_esp2sensor @@ -0,0 +1,18 @@ +FROM node:22-alpine + +ADD package.json /tmp/package.json +ADD package-lock.json /tmp/package-lock.json +RUN cd /tmp && npm ci +RUN mkdir -p /opt/app && cp -a /tmp/node_modules /tmp/package.json /opt/app/ +WORKDIR /opt/app +ADD . /opt/app/ + +RUN apk add --no-cache tzdata +ENV TZ=Europe/Berlin +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +RUN deluser --remove-home node + +EXPOSE 3000 + +CMD ["npm", "start"] diff --git a/espid2sensor/build_and_copy.sh b/espid2sensor/build_and_copy.sh new file mode 100755 index 0000000..833f66e --- /dev/null +++ b/espid2sensor/build_and_copy.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Build Docker-Container +# +# Call: buildit.sh name [target] +# +# The Dockerfile must be named like Dockerfile_name +# +# 2018-09-20 rxf +# - before sending docker image to remote, tag actual remote image +# +# 2018-09-14 rxf +# - first Version +# + +set -x +port="" +orgName=esp2sensor +name=esp2sensor + +usage() +{ + echo "Usage build_and_copy.sh [-p port] [-n name] target" + echo " Build docker container $name and copy to target" + echo "Params:" + echo " target: Where to copy the container to " + echo " -p port: ssh port (default 22)" + echo " -n name: new name for container (default: $orgName)" +} + +while getopts n:p:h? o +do + case "$o" in + n) name="$OPTARG";; + p) port="-p $OPTARG";; + h) usage; exit 0;; + *) usage; exit 1;; + esac +done +shift $((OPTIND-1)) + +while [ $# -gt 0 ]; do + if [[ -z "$target" ]]; then + target=$1 + shift + else + echo "bad option $1" + # exit 1 + shift + fi +done + +docker build -f Dockerfile_$orgName --no-cache -t $name . + +dat=`date +%Y%m%d%H%M` + +if [ "$target" == "localhost" ] +then + docker tag $name $name:V_$dat + exit +fi + +ssh $port $target "docker tag $name $name:V_$dat" +docker save $name | bzip2 | pv | ssh $port $target 'bunzip2 | docker load' diff --git a/espid2sensor/db/mongo.js b/espid2sensor/db/mongo.js new file mode 100644 index 0000000..8aefe47 --- /dev/null +++ b/espid2sensor/db/mongo.js @@ -0,0 +1,59 @@ +import { MongoClient } from 'mongodb'; +import dotenv from 'dotenv'; + +dotenv.config(); + +const MONGOHOST = process.env.MONGOHOST || 'localhost' +const MONGOPORT = process.env.MONGOPORT || 27017 +const MONGOAUTH = process.env.MONGOAUTH || false +const MONGOUSRP = process.env.MONGOUSRP || '' +const MONGOBASE = process.env.MONGOBASE || 'sensor_data' +let MONGO_URL = 'mongodb://'+MONGOHOST+':'+MONGOPORT; // URL to mongo database +if (MONGOAUTH === 'true') { + MONGO_URL = 'mongodb://'+MONGOUSRP+'@' + MONGOHOST + ':' + MONGOPORT + '/?authSource=admin'; // URL to mongo database +} +const DB_NAME = MONGOBASE + +let db, usersCollection, propCollection; +let client = null; + +export async function initMongo() { + const client = new MongoClient(MONGO_URL); + await client.connect(); + db = client.db(DB_NAME); + usersCollection = db.collection('user'); + propCollection = db.collection('properties') + return { db, usersCollection, propCollection}; +} + +export const clientClose = async () => { + if (client) { + client.close() + } +} + + +export function getCollections() { + return { db, usersCollection, propCollection}; +} + +export const update_pflux = async(sn, doc) => { + try { + await propCollection.updateOne({_id: sn},{ $set: { 'chip': doc}}) + return {"error": null} + } catch (e) { + return { "error": true, "what": e} + } +} + +export const get_pflux = async(sn) => { + try { + let r = await propCollection.findOne({_id: sn}) + if (r == null) { + return { "error": true, "what": "Not found", "erg": r} + } + return {"error": null, "what": null, "erg": r} + } catch (e) { + return { "error": true, "what": e, "erg": null} + } +} \ No newline at end of file diff --git a/espid2sensor/deploy.sh b/espid2sensor/deploy.sh new file mode 100755 index 0000000..2918419 --- /dev/null +++ b/espid2sensor/deploy.sh @@ -0,0 +1,36 @@ +# Deplay ein Sensor-File auf das docker registry (docker.citysensor.de) +# +# v 1.0 2024-09-01 rxf +# erste Version + +#set -x + +registry=docker.citysensor.de +name=esp2sensor + + +usage() +{ + echo "Usage ./deploy.sh" + echo " Build docker container '$name' and deploy to $registry" + echo "Params:" + echo " -h show this usage" +} + +while getopts h? o +do + case "$o" in + h) usage; exit 0;; + *) usage; exit 1;; + esac +done +shift $((OPTIND-1)) + + +./build_and_copy.sh localhost +docker tag $name docker.citysensor.de/$name:latest +dat=`date +%Y%m%d%H%M` +docker tag $name docker.citysensor.de/$name:V_$dat +docker push docker.citysensor.de/$name + + diff --git a/espid2sensor/docker-compose.yml b/espid2sensor/docker-compose.yml new file mode 100644 index 0000000..ea70e76 --- /dev/null +++ b/espid2sensor/docker-compose.yml @@ -0,0 +1,25 @@ +services: + app: + build: . + container_name: esp2sensor + ports: + - "3000:3000" + depends_on: + - mongo + volumes: + - .:/app # bind mount für Live-Reload + - /app/node_modules # node_modules vom Host nicht überschreiben + - ./log:/var/log + restart: unless-stopped + + mongo: + image: mongo:6 + container_name: esp-mongo + restart: unless-stopped + ports: + - "27017:27017" + volumes: + - mongo-data:/data/db + +volumes: + mongo-data: \ No newline at end of file diff --git a/espid2sensor/docs/PICS/Eingabe.png b/espid2sensor/docs/PICS/Eingabe.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d0989f65f2ad573dc2ca3f0b22df73f4482bdf GIT binary patch literal 123988 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≦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 M>S-YUu(|jD0DB^ZhX4Qo literal 0 HcmV?d00001 diff --git a/espid2sensor/docs/PICS/Liste.png b/espid2sensor/docs/PICS/Liste.png new file mode 100644 index 0000000000000000000000000000000000000000..0cb1066b59b1e855c93226651087075f64160f4f GIT binary patch literal 149957 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

-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

dbKG- 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 EAJ968xBvhE literal 0 HcmV?d00001 diff --git a/espid2sensor/docs/PICS/Login.png b/espid2sensor/docs/PICS/Login.png new file mode 100644 index 0000000000000000000000000000000000000000..947a9ff93a8f4bfd317a1257aab58144acb0acba GIT binary patch literal 70403 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

@rI*RJXVz7;l@^ZubB z#H{bS5JunJ0eu;qv$~sXXwQ84nUNftJpZF}S5$Wkoom7|piX!}HYr;@Q~6W8Gk`tq z0Bg{z6@Vpmy`$fMqKLZKho#BrD=C9rkRK@eJ4TUgx&(554Md1bJpuI$-uoXG$=~+& z*)^U}a48I|2GDz0eimKmh^~BPV%3xEw>y<4f7$9Z`}|c7nF&bWSD)iK28SQ97P9S^ zwgnTrZ;ywI?||&YdT<LZs@4AD>^PPZQ*I5 z4RXR4m;ycy58%LL51#YIURcfD3pd5%^GAg%C7C2bT<5+9j}CZ_UGm4;o4;1n`uf)d zNoXm^a56qo>_pG}s_O^KtK4Bs_an zW;ZSV-V-4l)x|tk4|heSzc&QVLjZ3R7(E#yDD5**KkAcbuSgHvf%iP%QtTdnOT~A5 z6vMqZVW<#wD=5yu-=oXeWPq-f5o2WKrQrVI4(d%i)JQ}^{4|+v@UJu5h{n_ioI7`M zAE@@cA0d69Zj|_i`n@T5>W?>(Qt+Udw8LFgyeV@CA^zdsI^>Xiie;(rECjlIBO(vc znkpqmq7jE4P|#9U;iGX{4Ilo zVTNMt6YcOog2e=jpGu+OH8W#w5hHo{LRN&Ab4!UPIDymJcbt&JTN>--NBD|*;N$_RTa*~mq*XL`YkRUy8|BX?YFio z9LYX3W$askJ!g+#SBV07jsds*-kIy~X#}lrKto_g?|lY=_FCJ?8eh+a_V*DO@%3|P@(#Z26)M=6NF!xwHT-= zSFT>Y*YVV5Sa_iTxX9k>PfYdaiR*co(17}%2Mkm2{vihJ^rgwmiUYIC(~cCpH7$%x zFezJ~{qklZBi{CPoGYMhhRBpt%y-NHYxpX`{?j=&9Y>~a0DVmcl@O3Z1u#k;KVP#A5S-TR1@_fc6MCm(D6LemM*1an__dCPzlqOA2g_GN^jV zHmt9~+ao0=ND#1!+F2P@H}pPO2yB+()+v!WM6X)$lci1J)`w!a02Q%aje(pg&+Sf4 zRpGIX3`_~kKncJ9I2nH#(iVg*_xyu<`vNaA=QVOcE3IOA&F+?G&h2+`!&U@1lpI(0F92ASdX+VR!MjSJ%xvH-RpEO7$`T}Q$dab3pH&Fc&f=A9Vdi{^p zgGpsTNrJr!dS@wh>o+mG3F`8qapv`fUx)`{B2&wdSK1NcJ^hl1h6nMwm9|`4Ol zS8rnYd-+V|#J9_HnzFZ0JJkJ%S81x)^$jNHR$fLmQRCeORv{p+h~W1+6FtUh!x=h1 znRAwf7-o5#GLJ6ugx!%R6@rY2KSM*T5H7qgk;K3LsaMt)%+8n-SLzWU8x@63HI`3>Y{#x z-x#itZr_0hz?bMW{B2Mg!nNLb)a@daNvS<_wo`x@+cN+Is zkbn)AK1D)+crrkMNakvmeszgr%x$TH+BK-W3xv>%NYs7H6jPR!GW6!cD62h)soIMk zH|KpY0&YIWAei`Ruy;4;T(9>4z2gONBJb0I8@*PYoNdH=FF_d~25RRsoY%Ny>V&hE((W{1?`37s8@15Aq$P1#{3BkvXP+w%-Lqtm#KpAU2B;Hr$wAVPQYVz0I7xZH)2{u;_i-UZPD>x;0v z6L_Es(YVuf4>;;JP#32`N#p)aCV(J`>dW1K2L^7mtqFh?P0dJ{WuMA>61=v(w zHKmH4Wa6L+AdPrUzFz2+RAf>EBoro!$ls+ zabjJJ?E43V7sLnnnheU_cVVaO#Gzx<3zRN z0sygLnMvNd-lqo^N2-sf1>7(x5QUB?t`m2~cbUjMd#fZcaO& z*gIH*qE%9Sem(d2TANF)+i#g_Nk&aSP(=RPnSF~{Ro4%Y^lgzh)lE;24@%5Csn4u{ zmrtqJb6KC_0%7x3qtjx|J30{p(S1%Ex)BC!JYEIH{&iwdnzjY96s^Dq%iwCG75rTe zrC%-&=ITL6Y%Ns;R}bD>ErCo>GzRHNe;wO%NyK#qT*v8A_0+g?R}C3vJZ2tLUDnS?Eu`(*}ayJViAJNJ(pTi>}K4N{jwh1-=o9<+$R$?DSCQR}uWx7-IS9 zUj>df*8<`4_l1i8M7?egK!J6pGUfYw|FPHBM;LC_;|EOWS1teNYyRXdeKRo$#s3ZN zr<~LOR_^~u%>QKWcU}9Rw*Hp*0LOg(XG(suB7Zo6|Cy5i@214>lfKQJpIs~CC=M$t zYnwRU0&}RKUtL{Y8C^W?ufFncJhEICmQ>vf2elYNyorWwydzQj*sz5u!A`rUo{mjr1c$d(WTUcdI6FucIF3Fv@?;P_hqiW#(QAY3SnC zrALtVHYGn9yoHr@C#LrH&Qi(TUrV7}{Y0lFs$%w=CtsES1S{}}K5sR470;90Az~ok z2$Z}fRja+_k#?YQ`4_Yx_XZS)l@&Rv{xu}Xxfr}9#Vx!_VT9N7ju}3jHu6Ara*L7> zd4y?M0Pioo`&nNEP=m`N+~qGNX3=NVo#E<3%Z*<$e0W}l@e58bj#K(1V)lpqoxgek zS515%Y7=$L$-42^%sKFx@PB-=A+DU#v5OGxI=;mmYU^hy1J!wI4YWG$jd7(NglGP4j#ID!tBzWvv5{y4!>blqBq)W`W5|4RFjjFCAYS>(~F9F&e}hlkL^)bpb9fy@@_M~^Ni<+xOz z_=Gzqj+Z!23MnX&hM+M!|<1F#?Lad)I5>sU4VAB%%T{#~K(PJ9q2rQepZ+dpf z6u^HGHqO#*gexLv(TI9w-+@-{T17*rei1HgJRE$Y6?_lVFYI2e4S*|0EqIPZUJXvY zNHibgD?Y;kjuhea%;bLF*<5*BgLwPf?S6md%8%3a+NQdwntzywoivwF!!nn?_EAL?7 z+hiE!h3f*&gB+$H6{8Zh<07_k#{BIH>(Sv33+?HHch@1~m3EaLi|OS|w6uN~$Xg>( zytp?+jqpXZk=B8ZiS;XJahF%Eoc(9ZiO7j0Gdzb!$q$1sE%i&KsT_& zp_$R+P^3%LFH7O4PXYAoo`n%Zh23}s*Bf0Kb)Y{tlgX<2t1=6nSn69AJG_e$-$Csa z@pzROCx^{4+}+B>Kkf-2E#RZ8C)I6CshRU_XahqV;ayoqVH~sbGTh6$Oq4F8m#a$s zojISScC=jnKmELycP1mH#q+5^JuMt|_43+RLfkS;w6Oa@ zhmH4%=$1|dJA-$;g@I5Ps+Fs@e$s~K*PbwGRq~N>lkaV;tMU=;gvSV(ls+QU559(b z*^A{ZVr;~XqWm{uIN3Ga5kpw#(ZnOz1V;u!BOTMXuEy@9N^lYrF_PaiE?M{JMadRk zKZ5odte72%J>aqaRZ7YC^?(OzX*_?}ljw5+e$1lgg*QvygA#w_C$`4(EP>IbP2Nw# zAX+#m{)H^z^!Rg$@c^fS;e|qqH`Wufc4FfJu6QZutoQj;8VqS;I@}HLZNFdsmu>#T zc1ZFAZ`J#P*Avb`zhZF*dr+Fu0$=UfN#^V|VK@%VP4m2cr`uWC7&hUNfnHh%8r8A@ zcHbuoCY6KlyaZ?bMuW=-S#kT|UV{ ztu83$@Hzi_c!T$mFFicg!~6p3>M@yV^JMEQEF2xi(AOx5t1Ye1)uk?zZxGve?%x!x zo)PuwGP5u_ooG`{P$rAIc>Ch*YTFg7F7L_?l2hwKB#@n-01; zH%l>d_&WX_-OpBmu?7FyYrd97EPlXq{P`;55MMpUZc@oAoAFY11t2!^jQfX=_dDfu ze=E8AL=5U}>PYlJyETVreE<9|fInYUqR)6|By^!O-JQrZO>)Ee+OaS*r&9V);|2P| z56)C5Tow)Zi$0L6m#p&jbF2sctNEY)%N4tT!Ig68*P`^|^W-CM9=$#O%WLXDj0vyr zOnRGnrNS6-g(uKeGRG)*z<3h5h`3=S6b40^cP8 z^EgO#dAie2cY!SN0q<`1)jgTwuRj0wN(S@puz=v7ZXUBr7G7^SNAwv&zIqr`A$H1K z%KnR5gc<;&Rf6*DqyAT)es=(pp7< zKfo?_)H&V_{%do2Wqc)#UL_Fa{8pk2I*Gz$<%#~9jWCzw26v{4M6im#?44NXT%@>j?cG(8w(Yh+$W7@H`$QD5Y17 zl!vn(N`qYJ+^+dUAG|)MrW01K71}F)F?cJDt~{$U=KmVuzdB~b2Rp0g`|Wx-qzJxe zdjJY~XT?g9We2$BE-9a@HAQvg905$IeFW^!Hh3S|yn@=g3$jWUT zxHk!fgB0UFeJLQeyvj4j|9Kz&5Y#(h_k?e2 ze>3n)NlEej>blq?#ikfDW8?~s0FV!CTNQy0po&J%p6vt-+p1;PHF}<%>}`R(!eQ>i zQgbD$+s3|Ud>H?w<9l70`3TRB>q77@zQuPw9B+_=+6mxg`Dxlf1pP)phhKi&Tcf>r z2btg~gM1$k4#KX0!?_M0@hRu!I$&%#L@auY@AslR3O*$5dtWdHjn8WFlDo``$fXc6oTYDf5`ft+qJ$l1)mFj2f`j^Nt$^r04 zPQ*}pKUu5LPz}(`D=>1dU){oA%7d9h0tT)1XC{3OxI6-&^~ywbe`7T`*V`V&g*vOV z8s_eePAs!9_V#Yr-Rzb)iv*RGIzxFnCY?0k1Q2ttR<*;z%8Kkd$el+{`JKyw7&Ve5F7-D4Q7K9P|D-KDY*!^D>tOs83GW_JgfwfUkVuB~-XgktD`RzIuA8 z;4w7s2c+@%$t2|twH2srLWNK|tu=x=V!bbmUY}x};tefa`i|nJh?!UmI^>|hwfJeA z8z@Au=hG~-H5|>$chtD|)m6wn3~K%Ko{3m9O1sc5Iaa>^{)*X}_7-Dln`+ zcZMl5>#!=U|8bV*xRD5|2YJDX5zIN8{DXsI8ZTmMHxZDyNC)+aYT4oI=Tu(ofIOj& z8RlHT^=eY_edFrooZLLg?{uyc*TK<)T_lyLTM@1I{`b>v^j%Q*jwvO=9A?Fw#a^_q z=u0*Q2_+f$9hbF<(dwJaTbK$CP_j;x6;K~RK;nF7033)P$^Fz|RsZ!J9p`0s<;WSy z7i$`g-d>pGU)uc;`iK7HkI6m};PJ{Zj-7nbQA$K@gTp_O!j3;$f${l1Vaf&M(ts2g z8q|~;<{JklpW_qH1G90VEtiwuvS2toQMddlE2z&1JmHy1MDhCilMyk7vSCl3-EBL# zztHiX{fb=d^PUI%S=@cjXN@@4)RMKXo?&%j?EjCwuMDU%ZNiomMG%xwkWd7bRtW(K z14KYjL{dtmYn713gR3ZwN~eUV#GyMy1VI{!Ln!Zj%qxbLKhy4t5T#xU^HLYI)1pH^l`?y9e6eH%M?=vNe9T&n`>a zMT2&6Lq1<+5?5Rr!BaXcC%%l2%5dfKS3$GCyssawae2KfL_vqg?@xst_F)(Py}g8M zRswa3?PRDUv<*G_AbIJ9b4{{GFNgyBChz^`Y|G>AEGWOTv{GQ1>O_Zrn> zI8t&i&SCx_9W^e`x-tpKi@V*lE>NQy%#}$St?@12`lc=eK1rNFKP^pl)`^1M z^KN6YWtk$5v{iks)PEAT@}Y5Yj$b`43N86H01{GdS z?o7|wZeIoqrq-R2DNv<}U>{X0s(c@Mmd=edC-*pThv6$HYZfR+I*h)3XoK5L_7G~* z%GM9zG~K5i5iIW4#rFm?<_$U+uAHtrLJ@)&HQ%j}@v2hYw!Z z&2X2fwRnBm)RaUH>us2D>gH=zt0^oL9^u#%E4$$T$2O8kmv=#t&qB_Vj%Hmhn;tO+ z9|gxjqsj9*j1G19eCBR|8Va!#>vnG>OfEVl4su00fJ23@kb8+ZX^T&}R5g3hyc0Jz!fT5~d zsgJJpK^k>>cfL)J0=B3PaF%(HLF77Eq!fvY-zv7Ep&8+I($540Eu`e$^-c)9QzIWBh z#z}OU+#>vhgPGyG@AM;fr6WZ5*E}7ott<==|7|qeXeXvzpQk6o?| z+3g6&iM;jhOioQffGTjL4)#(QTo_umdYz(KQ2h{(An9RbQ86T-oAPZ;O{Ow%WhJfy=@xpmf!lC)}8a+oo`=oFqJ%i$wVwoSSs z^BAMf?BpyHhz8);#)^P-V%;2%eto^vX5{sIVL}RNcZo-%ukZwtD{GoP22l?d2-~F; zxU--1v}ifh#ff5ZIHG~p6)E>A}8E4doJ8Bt1*2SWRVwydDBH!sVJO)>KWd?GxSQQK2q46h9SM+Hv{SvQxD4_(m zZ!oHTw@^S@aag4Y>L26D$H@+#InMmXkm)wTeas^T$I1?4a8PkE{QKf@h4)^w_?){4 z94tqM*f(ZMHr6cF@~z)Oy%X)ajRh&d3=R%mawdCjJjHpAABbd3Rv?wX76!8))F#hq zfPzlbHxfBmVV-s{DM?ySa5x~yQ7xLCvEk&@UIt5wz1CVld^+NSDByD2N+aur5-vS7 zY3hp&91861@qIv8$VqWN?lq3sRuTGP%d0b&sY0b1_sW)ecYB%A$b>|sv=9CTDg2544{Ed*8 zlPlV94yq4*l5IY=8>ei+>0c9h>Ul-t!oZ6CV5I)g^e<67xHB-~1-a5y0<#mdUnl-@ zLlKlj>Qa)Q>wEan9K5YL*VZ1#x?SNG!<{*3QwsT*pa=!`m1bRnh^qwDNFhd+j5`S#BU>gwSL?>{YJ}%> z06mW1O0@eDfxrwNo-b)8Kx(6jSg!cId`wD9oYcJELA=4V+l3zrU5@*X>`jrqd1~h9 zLkV_5nngEVNmQEfSgNz|@{{($-0SkvJ~pk;T!+`}kceB6TpjwcQ(^ zW^v-0<9NFq8De?nnUR)c+o z#SagEux90>&KWs=lNR33Bav99jYapBCnasf^?LD_Zeol9ae<4OPq}cK;n-Qlro7Qi z=gw?%&zD?x!*Cy9z7b{}=@kwgR`bpPKssvAlAQWzkN-?A(IIQ@60jP}jy*yPZ4#Ps zJyOCd!Do}zGCnT(>l3ESNVpT*)^WWpa^eq8!7Bt1hsV0A#86*L^n;k^-7KwYjBW8Z zAL+wEjDJWx#&_<)Ls{NyLoKGg-_Wo4+srAK>I4S{=b}6ZU)a<6bslWU7}H4fD56>v z%hxvBpn7+U^}db*f&Yfa5r@^%*qLANU8tr#A8_c7CI-(UO6j+y!Kd}&Ol}3;3wnOt z6TrY%IQg4!KyLqrvV7!uwPJv4KNP~oU}=pDaM$;d zD-#c)mEJxdcG9BzoY4$EOOhlRH}Q#xDBi#UfZ?sYphd~i40jjg7+vQ&7oA+Bg^ffz zFg5Jz16(Ligvf(H4{GNZR|AgaY2LgY6u(Pfg^=Q8R%t8~^`~-Y(s;8!UDK4%$D8tQ zMNZyg7M!DK?6GALKlL2VfR`N_z_NQljzc};{y?~=Q@N#y#PdIYi9bl3A?m7(zxti> z6g|Y)3CD$o#siSz23nS45y!PW{g$tySG*1#MM|@u9Xvry*xof$nQjr~j5}S;c%-2v z(k)cL()Ms~^_vf(A#zVhyI+K{5*D&Xi%x^G789DOVqslm)Xj;Di~A5-VAYtQ|ukdtU}Q{kzI9ug>!W&WB4!go&a`0FP{<`(7nO>r`Hp%ko>K zbTibjp6d;I!Ryr}_iB*d0YJBVd%BIC;TEvH$b5pxw&1gK0tK5@1NAa7YkN+L$cyv+-9torL0^trXWCd?mX2BubmPa{nnBhIdwL$_$KWtxMEO{$vu! zNSSm!%l@+Fh4y;;iy>b!$H0h6z2BH@h|I+cR9-BVlyFb9ehuVErf-U%lDHo_CO2V0mH&w*OwFlBI?&Y7krRSjzo>g;xX~KwM&Wg>>-oMsJEaH}lA0|eU5ztIC6U;0oV?m~|(TR=do0JJ++r!vxe z)Ce_phU8CQ*cs(MU+)RLlvc7!j||Hm8(ptAH>#c2khFa=GM%koP!*Qpk=)i(e8YXe zQ83T$B_EqV`p+A8@+nm3dg-JTjbZp}7itSs#={=)n4_X>hoXUP_~n-Gm~PjuZ_Pq`qa_0Qe@1Ww{v;zY)TDtu(*csvPm=<_aAl%^^neDGjj96Sacnt7$1J(=ob;I6&veQ~uWdZxOdX8ys zl89`V%juH#&?}QohPEpXgV^UhF89$2^xAz2%}xCNIUAaMmcLw*NbD|_u4%VMz7Y<% z%q&8QE!6lH7Xh5N+w2{b4j75@@mqAM0vwJubq#n;$QF;R>W(zUE2A%B z)fOS6S5d7?niPAh7^78LMc3y7pvg0+k#>@AkCkQaIvr)cNAo&@GY%<#LyQ zN(G3n89dxYsdBy zXu&P^neKC*!x6*IP=LK;m{g%HF)HIU?;0_#KaD99Rn{uXg ztfrvmX)*WkH?0Lff^_^}eb?iA3B}0dzM)RiL868<9Nf<{_A>(yB|_@n@g(XoOcAXWRWQyp)xB9U?=9BEVQLoQs{N7pBB(>_q|@3hUnLObDA;X% zvq~O3{~(~<*qt;9{GAeiqyegPW~PQ`WwsE=ds@3(y9*vHpfhN#r4<<7HFqRV!nt?} zw@Hke-4&3`%-z_C2R$Q}zQj`#MGIQSZ7C715k=9n^2GIdL*w=;X))*(FP4$p0n6pP zu&2fYbGf^fRNZ&sTi~Oe)Hol^?PVaiS$_9H)D7khApz}THN|5bf=@H&$Vxi$Z$v63 z_9;JKbg3F3jjJVDJ^g}sD)b9ES-$9an8+lq&2u1u+LdU`Rk{TSC#y(F@3suwF)bh`a!9o#FG*DR97N2GS8^+?Yph;5K;aUY4cUlU&y+MM9$3Wq5Ahdl(Jm(BCz{EIwUcKz< z&|ov;A733NvVavqCkTqRKW(h_ZhQju%Z0EqxILmfZwGZfmmfJ!zXp?paP@H@bq-%h z6(0G5knbfaHSQ30(wXu@6*(>hA{15OMWjsj1C$(gZ_DJ!&YNK}uV&^n<=*R05?UK~ zFnQR-wadtIhymQs5BGf=C+C1k$3iI?s@Ff$3AB;l9c#z|_&3cOUMXBOk3*y}2+E+V zplWIWA}{++-gGZ8Z+YYI8nJ$o`5eN)(e&!lZeSI;Q2J=USbNmtu_lEwpeepgx!5;$ zN2uUtF?FU@%{$cToW5X<9+lU$HPzAfD`G1ts>`0_%;w$q zXXMj|!?Pz3EUmhWcF!?7pry6)(|PZ@lt}T<-X?fiHfX#iwl2WCcqrVx{#QK_cM+nM z>@S6+)Cm!%B-jTkI@(@yr6y2|LO3bu=)CoMVc*en5oAc6O&9P6%z)I3sO;vAE%_v+{yMIzfVSAs9CD@NV3Uv%;Hsmnkrg zOJNCZm@0pk^ovgznK_hKgDm)`|tWd~|IDrV}-Z^zgcKf1-4fG%aU zs}uHGjg!tyh>V~~;`DbH=X_3|U$8KdF`HLpN-;g!D4EWY8EVm?2Ip(Xl1eBNb#26l zw_H*@hYyt==LTQiybH`D_kqI116SC%dodKQ{d)6Hn|Fl}&mk%8(YKQ4TX)r1E}N~%Kvan2{MHwkS6K$;m30mrfqy$SEnHis`(?IoljVM)Dz>DleY z4;H3XwY+M_Qe2!3(rybH`gnf5`6Br=~ zb$l_OQa-N<*YGCD*Z6&1#Xs|8=?|z=tA>hoy?OR!(4dzbC`SBHn}kuRZvM|L+P)H2 z`ZDn_InVij>FHY)j(bPUlvN0x$)nks!>GF?$7dP)ZCxA3)Z8ap?B_Fwdf>Wxc_`GH z4g0DsRrit*5PwPzh3{+g%(5A4jS)p@+YeHk4&P?@);2Mppr6Z{A}dJUdi3GLu+r!J ztoKnoxori`#dCA>DV=DSMJ?<64GV2_&S6s7yPsQ*g^W1*zRa|mF)h{==I`Y{L0z>@ zHWOzX&>+eeoG`z*o^!x{V)l;O+(MVbD7;o5ZM^do4;NobH_xrSTSqHFa34u2IJXH2 z*ht@gp_NfbGaR)lzOmX&=b#c~p2M0Rd=>`a?}s`Om_r(*8dwueXj3BxzWOnF3l zZ93MITrIKnxE23LG7EZ9(l#|u%*jj#u6Dk*SF91dV_REouUJ-@^;N;2KTO7{?2Ptx z%L{2{7#dgE#6|pjT)0m!q>B5EO3lAAv8Ef{x++&RH69x@yM_*|OH)a}XwP?N&!TsI zRn+#o?%sQxRk_cz(^gfSvymyNoo9_ct|k;f28NCiS<{nP+?mOpXPO%@W3!7LL$3-d z75aL=v<{7iY}$k7Kq_6ZwSQ}5vpH~>7dQ|Q*+%#gA3ksdha_Q z^w>N8D#_h<59?4+L(UN*?pj>pfiQIp%ic^@&$>L+(tLEz?dIdX)B~XB_iNP}{%W+h zrLL;Z;5m%zckGE5>Y>gZ4AgjE=bz&+Z_*a66)zKTcdD-pDpC(l3WSIL8j=R5`^PjN z`a_DCh3(8yKPMF2!#;u58iWH)i+xOc>Q<8K4TP-}Qnlpt`@Ay6JGZ@j+tfBAkEM?I z`zl6?tfag%RGG!awHd=qz8DbRhsQ=?j zh~8w*huHkE)WHAkYgiDDCYQZ$ey-c^KQ%(?UsCYc?!TA!_g^!ng@hySrUcQB^+a_Y zsH&-{NhWUI>8UYaKtz-9>b8>a4pxc2qXl&*l7CHW0*(f76Xj}gWIs0e_aji_0oQL# z;WXJV#8JO2L=`cDcKw6KnBYHWB+-h1I+t(C5&TTa-l5d7C{oR=@|3twm`nbmU*_%h z5%oF4gL}l?Gq>#;Y{-(U$)Jx9iQ;H*`9x)h5!gasI3GW!7#7Bf*J^1DY$)7^r#M-y-)j{9qR63TlC zcVp$mOc_@K0#5SnMNyHoxB0D2oR3SfdfiuFXU@5Eu6YQMrmX}o6987{Ij*Y)uNo`f zytl7Dau>VLL(g4pUZfuGDtSb-Xc z46AP_=2$eV8N}bQw7&eo_2;%D(%eNO?ef643l~5C^Tmt@7hQ1^gcBKWU5+ds{wQ$v z&qJ4#E_JX`9}PHgR3q^2spn1XSJmFRdJ0G``D1C#FDAyPXI(uYL$!32@;R$WxvHVp zl6ch0N_WEKtn1o?E6~nXj~W!3yA5zO=6O9@z+jrXqwS6wDG2 z;ln`<2_4Hjz9l^exBi=utx$rHe5O>BOUm4Z@wO3vu!^IFOKnVH;pae!FGMrq1X*EWbpQ(9=rjQKjxD!_V?s-B?$L<;Mfrx{KvO9*H9v_G!9kLpn6>^>CeBPE#bPCYOSO!%YMlv!+dzaW^}NPVKCsk| zs*1oi%N$+HfvKOZ&c2sim^7ZBwS?RA*M1-~<@G1}+#XgHi=O;z0Z@B5DNuh(;pG$- z8g+7Om^Z{Uigp&IEEDFlUSHYQ)|*kxDPEUzL%bK=+p5hWUN<&axpVENO7IQF?GOCe zbV9Zyi5q^&Vm$CG)U9l7?N)L#EPtnvf+l_h)uF2r$?M^m{+KmPp^@X-JvFTpD1&0jvj*)Wxlk@NMl`{RT&9Z6seIH?DdQ{e?)|1Q2SjNh%v3g@` zas9u)42!4Z1+h$!3i+4+RteGl`1aQ?K1BCta<>oRFGWR&O}?J^d%Z#GqdDLOn!2_Jf9wp(h4RgQ zMUuJsnyS$&CkRJ3oUFfvrd;^@iO7cyN{aRs-^ZdqeuIZ^PD*k&^V)aFtZd&R37tRj zNxi4eCv1P?jwc~sZ;*tIc6mac`wM`<>6<`Km(Imfo` z_7Bng@l9Suc$t5-kngYmuT(9nNPZ8!$}C)%`bkNv)w}SKVGI22QOm@uwvZt%Waw#riS8%eYK(NO#ZKzc`1RR zh`V3MvTcukUD5vu(f`*%BscM`sOz04KH!fOAgmw@F++ycihBdHJLP|yw4&tqau!a# zH};pLx#|gRar$_CShPpOOXG+L-dY7&#cPqCpZ$Dx1Sq-XfwN=8=4MyauQK;T9E1Dt zWx4b2svCspHw}FH9%}RL1{~Kv?+~R>PImykf?-K}6rXXEU)ACrPp&}8D#?!=ysDu; ze*IH@Z~bLij#+u1*DXTGv5p+&*z^6gCq#&aD|o)qHdP_2!a^nFtlqO)K(`96JUZYF z@f3BMHJ?){2mbY#MbqL_mOQ;h%mg&%t(;^@jx@ndm7xG*(@0u=_H@)Uxl~^oP?+NM6mz{{TJ62&>t_)D&5}VyC_>U?mS~9oL@G%YxCq^He@bHLQc*@{~XI}$~5n%_oT6;;1gRa zKRats9~p6HbQD;)n*l`VY?gi?HimNBoOb9Yi4Y0Gg=1TfxSVv!L;*COC|ah)1qc(< zeXmLBeG79qt$*v^jg68f^Bp?M&Zl!z<@*z!+Dj)R!?3s&5=vR-lVy}}EiCYwTC!X@ z-%rQ&*ZDMDW)AH4I&|fO@Mnyv+btE&RF&O|^W_MLu{PxF3DfUqYB+Dse>Y+J*R2PS zjIsY|@Rbi@ajk@eICZOca> zoQQHdV_E~rZ;oa*vhBXrj^C1Ga`;sW&$M4D7*hDK402}Hg2;4Ig(p{b`#ICR@7p|= zUk<}M%jPdDU1i1t;6fAdNr}%D*iY1IILp-<@tQdQ&3r|(qRzMaSBj|%8@s6-Xs0*a zFOkGg4}B4?_9qR7%5FRUJ6CMcSAub@N{?ydRGJDKbE*m(%fB9WIIa?pVJX@94uxL) z*9U@QB?s~%CndJ?MLP~VYA?*~mJu)C={5z=sI&g6fEWH<8rf(Iz(N80~O4 zfB8D<3^+b#4)1VfcZ>!G%6=T?{;I5j>c3v54_00O%*=K#^_SfvQIdwaUwriH)PIbb zuo@Pz`tHDv>)bEv@Wv13{+RgE&0prSV@+Rf3P{z7Uk9;m6|WzKx$h-=@_O6f{_*vb z2PxV)Uikm3!h_#NUxc|+)9t(V?=nxpeEoj{^gjXm7s3CZ0R2w`{X_Bmt%d)mf&RZW zVRGCYehSQljNqYLgMUeLCn@bC-N-Gp!!2F4jL%THC9pQg<9aGd0D#z;HQWVMfuF{; zQBVyPmr*C2nE42Z`t8-Bw}@;_&E9WI-b1-3YeV@t%u~yVfd!6)YVQ$v@JLX}s=lt; z>cUiW)Vj59h}>_jy!Az$CO1^eGtxY%2ZTWM-a0Oon38XzVqw>z9~AE`*poY@h1_=X zfeyaubI4iJ8hU-?5-Vj{;nq2n-CO z=7c7sz+PzoxS{}?t+Cwb>!PH}_CmtH6tJ|BF2G4nOC5hru$ylUms7&U`Qqwtyex?{ ziJX4MisVD$d4b=Ki0j?T3;eh*u?UCZK<+RBreVbYddnbOz6Rb&uT*Bu+A}rfD@X2K z4w@Xb{TGD|5sGIgAkZ`Yv9MoM3|a;?LsyC~(_{I}JA9BGenqJ(csA>Lx|V<9Pp_pz zN0GClz=q3G=+^unZcHe6G5iM=d!Cm-1cF@jc7&q@J4 z9p$n%rXBRMn(g0}%OUU5fyVIh+xS`dq%@q;lTJe-&A>Yv76@JHFfpflqr_cZmKRDk zA}oMk(;9$huk{1f*pkz$**h%LDro3uSA6Hm96Cxs=I*BG!XnqdhSI{bwc$c%xiT9* ztUkb-cB+^J@^}S=6IuQKCsyQ+mC*}$p7yjWuT=EJ0I*>VWooa1D41DvNT~iQfY_?n z&)X#F5zvkX>fQ)TTs;54GzrT4rmcZtHC|*QmxaF5rd90(lzb#VeH&}vJ*s^pHt}4K zB=+TRqFm9pz{^vPZ!x{f>}ERY*t^mMZF(9N*BX_eL@c2R&~A~ywfw=lf?6eRv8I0+ zuH{6Q68?}E!P1|EDKcDm0i z)4s0ZKIgtYE$hcbkgOwE;w-htD|%l_5DC}n3z_lIb%+kUA$Cl`TC&zxue}c25N7c?Y$u;<>!)^oGs(d zV5_R`FcP1!%H#BvbRJ-T0WZ~X60WdS~ct1gc> z3knte-fhu_LlYiF*=W4-04h=W%)Ysc&AnUETW#1>?lGp$d#(<0#+Qn4x2 z{+F$99~>sx%b7ctQV?qM)_93E=yuaoBvhp-Hk(r2QoZXhDT5ZFc*r5F&&#u(1c*TS z_@Oq97Dk}Xt|KKj5F*z~?2zZFT!jj?+o>N8$Wq~~Ads9iLRPbZXrOk3F!Q}=&9PgV z;uL)ve?Zl&V4+J+)R3Kl2Zqj`09EzGyq2``e$uSt2iytqrB5)apm=OD77FFh((GG( z}uDpCMaBU1{*XDrv=WXQ>J<6g|^y6#V?t;+|w`DE+EYHTLQ6D1d(w8l^ zS>`6VkY^^P_L<5NFk_hfRj62MhDN<1+3j~c%??*&%TFi{vd>L2Oxj&pUT!Ptx$o<` zRHOYGx^JVcpXk-lzEiCT{*v1$MITUi+oZJ%j0Q*1H)^!BVAmg)%HI_+&O%WqUzq+P zuyzZW4N31sSnLx(6Y*AX7Wv0P2#4ov;qqwWmHQ61@&S=U7C!TW#nawqt$Liaoih2* zzC3-IpsZB+9c}A~!Ny*CUO%QZl-`!ecA$dUW9cd*?bWD{(_H~6|hj55(w@q8N zo4n-0diSJDkk$&O?KK2}V&3E?*cVOo0(W{?F+kXJ%qe>1JO@{nSz$e$PX+3EPY!#t zRV*RK&m;P(+UR_6<$+lErw3}YQsGQxxzO8ESQOW;$5Jd6ehBpz88TVWBxk{eFE9mf z8$w0Bs{=8E&uWrpRu_t)nahIAY`<+bXc@JzcLF{7*q6V#4C?T~9Wb`h%7RYyd#aMI zj&a3Y0NN=&v#{IE(s@i{#87-itssHAwPgAueKYiMP*rVB{LDUwUZ=l}RXqZ%{l+>S zA8h5{nswV*T%m8N5uxpk@R|&wj%W9>cOo_CYyuV9o7QLVRWSr-IXg@(eke~vkD>oC zj^!FOQq=JX3B0>*TOMh# z^2#-BpEl=)V9(9Z_f4{?j6a)ruuAKN)Pftr={&%~bQOAZ+8MX)E*26nd)wr4Xf~Z( z+wSXQNv248ZL`~jV810xR-)mGC-c9p$< zH_zi1GcEcane(ZSQ_yUn8b7htZPyLU!UPgUKK0l9ks&YSg->ZP-mm3vlS8}ACpO=> z!VqxhaB2GCB&dq8Hc&IYnRVJX+dO~dwVKW@jzUEy{=lQu#Jhw zWG<8$i;yO{8y-QbG8DiFvWsvzlB09Kc{I&P5f!;a76`Q_MA)jccqDNKx_hhHPxlVm z2|$JTOePd~3W%bUE()%wv_8SCYWY4e*Vvg5-;##m+){kw+k5tX{-8=xViAv06C@>O z%x~%igXqsc_>h47Wb(nG{hVZiai0h>tYyY{G8-;l8YOp1uq-Q0Ds5Uult1l0r+)J) zp{(6t^t4Cv2vEU91bAhb(T?@f@mEb&#Q2ouqiu#xBeL4;qORZ@GAI^xu4w@BTDFr$ zZ$5nJykQyQAjEkum6duGJ{ck>G?;m3Zn-w8KKO1d1cPC@?Sd zmEpW?hY*K7o70rDR(+!rE(0<=;0TN*pi1u>FG=hw$xKR$ZmYKvtXu|z#-Ud=qsP{X zcsm}E(Kx?h$i~Ba;Fy@ z_9hPPrE0zh6J5H_-a7SwQjdVPJ{Ue;J#$t2ST8vGxtZrC3ZPOxFz`wl)Ov(}IUHQ8 zsLF$BsZokw=Sur49S3~33z3n;Ch=Y`?_M(&B6>F*;_D%3PpWa8W z@xyeV^5%z>zS>WGR~6LQy8zL41&*ZDi=xea_f~U+){lOG#!csf+sqQe)=XOi*}WcQ z2(bUt{xb8bgZtRHSJ?G>A6&KUmsf|xqr}#yefNL=GO@bSyCDx5l9i0ZELlsnxcsTEYE$-*G-`Ekel30IS=Jy`p3B<(A4d=&NCB z+zX0BJAP5}I%i}F33nwAey8psyauVaGJ1>|YNn4~cw#+dAIBkB>^RT8-D9;Odq_e4BmE#zkDNJ61J9D@?h;A^~ZwZ zYd*gT(ORp+-KRO`;HpDfcrUQiN7Wj!#~fN@(-sD|$iqWscA|J?qAC5P5mlzC-M0;D za;LM&0VaCN2{LOO8g3ccvp_oGv^lF(i@q>_DjeKL-Cd3Wboq_Yv9 z8B8=%d?DZA)woQ0%lNZkyUwHK?>2LbaK~`Q8Loq(zQ&>^W5wtF_Wf*EZCWvqjLYQF zXqcsCf};@>I79@j6L-`t@&=nqbFR!LJ?XT-p>;12?@i?Gsl~hr|DD+*qEp~FjQtWJ z{*~~~>!!B}k)eUN?|*74o`l+&5vV;-F}8QU5PSIOyv>#SU8CAMz5|%#@SE}L724~9 zvXqOX3sm*P2&G7jg&6c39ZAZllR;eQY)(VM{IQz>ADxo$v*1yVH0@n?UtDX-DV|SG z***WhaPQ{fgQ~G4*A`;mHdQ_E_sp|8k3%EWG7P>P;qQSOPr95qy8iAY@9N)dikC9v zw=>=9nAoP?(-!k0-G<9&X1x%XEW)ZzXi2vj3snNmnRQ0&ACeNaUb{?cCz$Dle6($b zhI}Ew`P4RH+;Jcb8lf8q1L!}DJF#Q<8)d1_69vP?z|Hq@pyo{i~e0S#rX?8;1u{o@F^}7$B z?qh1@;VPSI?sV{(fur)Ac=3r=6FT2D(=1DDiz#2t*_5--LoNV@#=0IjArhdS^chLN z(Hiab`^fbNGg9Z5Ki&Naf&|vQ=%~u`k!ylQBiBaYv>qCtyxcSLT~z^e>r3H4P7Bst z+Kq;<&|;gTNZ$DZqQ)#Me=|%rz+3cOJ~Gcezl5~yJ`1gc=exg!Dd>;Pqg|anB;Fgj zK$jxtjzQ8{jSwMQP~kL@8ZXtd)~U17=4^V8*s+mIAbzpw)C4saDNWc@^5uxp-(t9wRw` zdb{Y;qu{#SjA;ErqxNh8-i~@b#$H-Z+0&$F0>65f8r|^NwFV7ww3YZQX2ITiPf$NB zS;Ja3!*#N)0cqc2rmCggJ{(!JIBDg)a^yETo?$`Iwl4II9`h&G@iz#V7A25-i`ch7 z{=EaA!9nVVYpXG|p|P}E3*JL@Avh)zW0DxZYd}gQNl+z4t;t=W z&|=I#ALE*wo!mLEwfc=V0l5ap=XATQU~dvusfQRN)Ln7CYZDLR+dSNIwVgdmn+__R zzY!I|fcRC$P|oy79|?1L^n!uHQOPnC!|muKnVc5%u9*=lf4Emj(x8&Pl-F8WGlDGk?A3*88ypO_qhn=LyhN6omw zMm2`{H>pLyq@_{~U8ch_&hr=FY~`G4ePi5dQDBZF_l*OPpaN;|OXWi+7pty_J=dCf z9z?Y+w$f2gE|S&wAQrkfKADSUS~F@F@~1rO^Gyr!M|JIQ81O8swD_|# zuL5k-mpAImA5Mt*`v`pxeqz%Kx+)WlH+f$Y<%X+v{+=ya?2u>#4 z851B@)I!UDegf2=z~!UA6YXOVTf0D-Q>n5Mpq9gK_ zcFi=wxjU%6~kn!=#%>9tt)iZ7P! zr>V=ojX1IOYpprO0e6&ds+myz;Wc^fyYtx4Y0J5Y98kq)A=%xUqC3 z1;F7IlVtu10Sr!I)*8={Kf^5YM^a~UKSEz^K2Guar}3f-V35r^@`K;bmlEuc1F9eq z9t+1#?0QyrDR%?~3cXM`Bs%gY*2l!IQe?95tn=v2sA`uR_r5-+m8U#n!p{YU@RZwA z$y1T;c99-UaAgY>)jnNw)?lbY5RWDG5Z=dnr|)M+z^ZczbJcj3UNs+WI~@fs&`4BX za4oH@pcJnt^r}jm8%4XWjm<$QIzBJ~jf0~TwbC`D=rqJ@Fch#E@^c1R=Hjpr0bj7*^!?g8VunI4m?h`Ch9g;TsL^uz*SQ?U7pfSRm0-4Sk5G`4FLoh1@DlP(<|Qv zOVrd8ikaOmN%mHIvW}?lx%e@s9dTioYqFiYw&ov6ad!F}{bT5+Wnc5a{KOmDvsdcR z^?Q{8p@-nJhuWF1%&vag#M@ZhbrLxf80f`p`FWpt;An|vD_XC(-$&#%H2W!f*$)w! zPpf+S*kne(t5%9by?Ld0->-&(~7FYN@uT@D$Rm@KYcGm6l4sF2kvm#%nEmpYrE95TL4$s zwAsfluvKT+Y9VggpU!%-hP${$Q8xaNr?R3`P*Om2kFth&K<)L!5(9A`d#7^qq>m{* zmggBBSS7Kf(&DxH$05-Y@VhO{qcF7~7Uxdvh-&|Jv19?YEk^fwx*90QI#yqGx>fX|m62E4#fR2}%f766uk6d6j z2E9#VN(Z4ZJP--WQq>R($WA)66*NJVw8G$vI=ipFrry=|m=<5KJocXJQoWdKrxWji z88utTymzA{Os@z+U;27e5Vt{dh1n@1dN$!PjmgFa|FFRZX7pwCZybbWx#+c$qOr5P zx<`s7R`q9Lwjwd~XfUHA-#mHbk>hp6dL52YICN4Qm@8*mPyJ(09mexxQY^`FMCWI9 zkS##WtbAPK;dE_|f1Cx*@;G+vyATgt{+fVXEwFg`3)<(Tv{Gm5qJ5)K$^vjzzO^u80F0>Qlkiau_|;9u7}MKEv(KLJuZ%a^|SzFB|iAAx`+&e z9JxL^=C@YRyT%R9k)_FEZ^2@#k(0`qVvhXJXKFI}NVAO0AYKx)Qu7;lBrhdIg4o`l z^o{Yo`C87{&NgEv{RLvF69D5?oSNIguP4=jjQgAa?jE~)O%-3dvuG{q)Yv9ST zZ#piq!i_l9`&lIu*NNn za_W@K*F32FHgx@XjD)(4n$yL|d1fXRt^x8yFnI zt)T&L9C)&V9fH#RD~{8>iKN`Q%r(A-HV_4`Qn)JE>onWvvL?@hek0PlW_q_P$-J>x z%EsfPNS*(0GC4|Dk;Iu&Jh8E?9tu1}{zQs0f)Q6D@Xvz~6KxIdra=h;os#S^NlXsB z!zS~2)gyjHD(su1$>~R&>uyfC@eVbLV{UeE#kaNf^{;C(ZB2ntpPI-!MaFe#<7R_g z2b(~VN0{qL-6ni|$5ww;Ys!uGE-F{v_tT~QqAw8{wFXNak0e zyjASAHG%Kb4DU&1Dx#2faj)UVz-F~K(Vw$JNWGUmqIV?CXTzJMKZa_f^i_u|>Coqp z7spPnL)|*H<}v5tOH49wH8;~$yJ3*9qGG-OH(2a`4T-MUqUnR}ruB(KS)zTSO!#D= zwG`HcQ=6c3=A zbFVnw5Bz3UFKfOTwYh#3rD`xkjkc3C?kt8RBbd0ZvlY)j%%2J@fN-)VJ@NdVx7EN{ znYOOWg>$-}8shK^b$n|?E@dK0KRaz%Xk26Ar_Zv6;+WO2yB*)wY6 z)$;f^vgif(HOmjy^2ayxfnN?j9Xx~hxpQC*?OVJ%!7Xk^awu~U5VdP*yZ=wm4E`d; z1HPHVC6z6^8*o6?fpq&+#)rE9PnP}1HE-dMai$F#&W6 z)~k2wU>!3eHec+ZX2f5{B%qX--pmgYYfpkDoN=8 zm^r}Ma|^SLdPf2XV*TTpk2W>PJ`$1v`+eJG6G{)~C$Hc;M{Z?0{GLO%rmcfLcRhMt zGRytiJ<}b}SC3v_yBdvdDv!U1r~_UpxN7MUj-_wvhG@Cyb$#p1`Rcl$?U_;3GG61RGp7A9$Suu*8YFTfq*mGzqMy;aW0XfMmD9;C!2v+&1lknr6Gs6rJe0 z{~b^L3hjJ#^^EXV{bV!~D5hmys(BPLJ9eJy8)wuz`_j|XS20$4C0`uohlIB4M~NJw zP@-Os9!rz@Pc^2qGh&z3Zn$V!Y@xoFFM!fzlDff!tWI`zk*J6igZANEJR%rE?Y(~cd2HPSn|5~9dpv8h zZ^{6#7L?M`qgfKVk+*`wwoLnRHPmvo(5+Ad=0I?lvU$LkGlB{vGSOx)x}5#_^|9?9 zgA|mjPw)d4>bjQNaP)a|G$LMaoO^p=Gd z#eQiupNES0&0lLl;pDtxZxQl>=t-i&OHDP!tz34Y@i;Q&;is?}R}N`z z)f(-itcjd}$ zzd2Ni-}B|;bf2*>^5VN-E1*#pvRVyzcs%Y564raRueY@{v+I?_?(Zx2JTYtJ-A($N zPm)jpEua5>oDKOMuRo!QHihZJiRY-|?S6JNJAO~iyE6wcn}x^`6i9ttjOpg!QN;LK z$LRY`ZeKD9ccPgGsZO2aGs&%{whV)t8yHOw^Y11h#nQ*53yU!Uw9ss^UG{i%!M zcqma{{GEUNF{rKOy~hk zmr3Z{kj2LhM{fy%U=#poB*tC&5rS3Q;e?TqY4xuFUHWWu#i0 z34rm1(6&OhqH%p5dc{h--z|JM*t@ZmoPw=$9=R7l)+amMDq7DLQT>Nr)uCqZtQegz<}O0#^}ERS(NCNsst* zW6cPlV0^U-0v&_R2$D3Z8i6Iw0T3{+*rB-}&;;>Fn&$ER$M*tm`LwtHxPbE<$Oo+55m}hseRm{ZI zHUZOlrS(XB&}({&+@mW)MHVM9eF45m?(Jn;KiGvo!i`|HM-ovGE$0 zNth^KwYS+UHb^>+#C&b&;#on+f*;~%ZOk5Ckt`u$yzF9DgRj>88ZtY@fe1XFEYJLN zyXWM0>UhY#h!#Oin@N$XEN@vyTj}Yp8-#VCTwe}fC_X2Se`S7TsovEkA2NaNcg5jw zs`;gfNe8K@gGe<)Q<`9+eY1t_jMfbokP?Q(S{cee6DJjv&W*l_Z8{+~{p_d>i=8!O zG2*l#v1|-6<0Fd7wiIQ_tFDQVBF%Y?KqvKY$<7LPnq`bfW>J5v#?^^T%29syU{*Cp za-|s(?SdsswVAyxD_>~h5m_<^mQrI#JYK5@q?lj&YTq?WhnqA{H6g+_lT>Ct#~N97 zQ(j1)7j1T;cx(|68@BC&3^kE2NUAlVi^1a{&(mJDtz@mabt$hdsGl zo~1n<6Px~UP>pv9i0|t0tELMtU)TKGFdizBSS?Rp&@-hbMX(|kWP8_>N_WFQ40bt?fDG<<0& z3W$kEAk9l}`!={^VJ4`gFdm-iwD{HC@Itr!?02#PWoIcuyc#!$8-kHJmQMZj#=ypY zifmM}C|IAaeu!ZIc?$PSiYF?M83+`wbWh3yR9)ewS2;isg1*;Bi4VB^Q}fM(ahN~$ zSKbvR*9RPZ^?`Sj2JHaL5ta@6gGn+&K$#nTa#_poD`+(S4|{JNRpr*c3o90ih-^hr zP!KE{loBKi&$BVGydFC_co!52UaboO}Aw7YsFP`*u4O&?PAc~?p$&)ES+_Uqo^ii6_Y>Y2}Ex!dr9g$+GONKf^|9> zic7AeIrtH)#B%RV4$vFfxIyRm2Nl0#-u`j2W1KlJnckvSnu&nQ`zY6N$}WG~bVKMb z^iKpYJD4icG$p!7>!Ugi4l9^E>MGhO(%emIU>$dwQb%E>Xp@v8$A3k@z^SX1@ zX`i4-b`|A@ibtz-lwJ_rhx!W z#Xvc`q{P?T6kK!*ODYcerqBd?lef65%k!^7Qdp(E=J}jT=q;`arT$ z!Kl*>zV?Zy1mWLC{f>~>c*c3&K@(_HGQ8hs+&bHSZuTrsX5h}=qJO;YTA)Q(BRm*) z%tW1;y>^m$4oMM@6($Jeer+5OV8&$>o!_Z9|7o(`01qU%arD}r(K#I?Wz&r zR1W(5OG&DC#`fm;?#?6(#OgQNP55^N=(r8~Y>THFvbxCuZEWO%j@t7sZ5@J5dk;n` z{2IKxg{-{%pb5!~;!fcn%r>nFeUo$DR)63L`+ zfnv7;!WwB)yP;B!6!Ma~2w=&G)N`xuKK2@c23w50K6>tUGq)>OuR+Th<~SCZt`=-Y zw5+C^rV!F(|4Dq`nf2j1=LZyrx2C~b2ta%0#%U*W=lRw_`M;@O#mi4AO?BU3C^zXj zi5K$FKXlu1$`IrN=(Y}Y>q(ZEH*5?M5#9Bna@1)ihxHm=iPL(a{E5KPFqHwNA6D*r zILP-Gk8a`g6HIVqjmc7qEnY#v`k&}{$kmF1JD?H~?cUn{QHcxDUxp|m8kyo0)C8*Z z=nPGIYLq7R`2=~%^835eq2ixR=ZdIr#oS~yV<%Rrmw=`fh&U)*BsDW8lM7ngr!y?a z-yNo!=DF5~x?cUxOTErDDEve1*{$BiH(e0Ig#gDsKnY;BHM?(0uFWlUts4fYhN#u? z(^M?Cl%MI$6^(i8On*iZ%l-{eJRYxme3#^~VKfWduUW^Aiv<@0cHC^T@*{@K z&nSunrAlz_(g} zIlONbNuSZSjcu=0okG7=qP-^4F6sCX($15+P2WtWR{}H-+%%%{WWwktW)?%jxbJ{L(P(()4pCEz4tu zW1FC7J2jMJTV+>iQKOtU?j_|jfK|d3X581M8jbIscTgoj15 zCeeL%U!GXD+x1eGoAYh<6OcWw$_HsbgwSx zy=$wa-`OT?aP9&(Tb=Wr>rH=)zNL#zeg)IOYN?#Q-nmkBmMXi?`Cx;Z-+7F_^ze%HPxW z5cmdnLf^5GGP*JPjt}H#Z@6f1_%2UzCmuAAOAfLhdzV|f?1o?#7?phog}fL1nB-3$;Xob=4pDI8^d6U zr;Q^Por`sotf*R0l zY5_HuSNM|rT+vOJ^ulBWQvzFrH3X)m9JRLVZes}8%&?Om&Tgu54WtxkVv2{QI6W?G zb%EX?4&MXZ7+=RouDou9hK&GEP`69)qw|=n)`_?UputGrNW841dXS=S0nnM10|8(o z`+*$9pd_xr;;Z5v1lX+zhvu@F7VmVt!V(bWya)7$kpX4R#mto{M<6FB`DqFuCgzsU zgS@~&?SuJgmhX8>!vKJAZP9MJSwHo;{g_GKmxJ8>s*G(vDMZ2(jmm>#F;#kwq>5MI zOHs#7qiX#IOil#y8vPppwX5w#qolGQxsv98p5A%BP6Py--jQ9hdmNL&G2PYb2*~fo z!Bi1zhP5fm@F4nuZ22b1Sn5`?z+1Z1zRp&&iW(_;(@Saxx3Wk)jYK@3j=d?AJ}*@t z+l3=1)luOc9rtordtGaj-5dILo;Yh;cy!KXPIjM9QE>7V@m7saWjw8#E2h;7(0SfU z*m+V8hsVSLQ6Hdmaa26z)}i@4ygtcMtA@hdO#)|?{x$ZB5PyQk{GapI`S4q%!{ zm3?StLB+MpG>(~E<{wdrSK;A$kV5yGmV%3_C9)5-h^_3XpO`1-IL}Ou7_|hW<{OS} zZ{w<5*L2$T2KrFVInDnr=SV%@kat3b zrrf?KdT1dx*F@bClW97UL6aVSgnNLtyRo-8mAd1ALwzj9Yam~l?pQr@6CBC;Z8=Jd zRs)`p91*a3!)~g#$6{qAd!_6SmoP6e6a~kgcttzh0eG4kKo@DYuAl$KdaS`+A$z(p zkG+=gK<|DaS7<94;%Qiy!?8?n&9oLr3ll{hwHRF0#7!tZdglpaD?lpKdWM!d96{bc z#T@vHLkQu+e2%Uo()E^9;zhSN;D&w7fMsV=@(BPNUOJmAKSa!4!#J>WlAQ$9#9IUI z#>oY?76DVsllORXAgxM0$f{o%&|Iq@8e+$(=Wflh56}<9qF^bKa|hbV^K}BYwdOW|MseQsMMvu z4Eqh7omg^0F&b_k=wVISuK5`BizoaZz@hq^1d^wWKN9^L=;V*6Hl!3@Bf4)*=C9lP zryRir>>BoJ+4}X^E|JEhyr>9@{ zT?^oU-;UzR^7^qe7des94M*f3BpcBTe0aOXwk!A*A+7dD3a}!~h5)sE>mNQuVCCf@(|ZpTM%YdW`APk-w5xw$q6K~W@1=y57y7U5y@a@9ukVB!{_^=hS^Ynk z^FOW5a#efat#=Cb_Upu+oyp~nCHiVHDZSBQP%|M0Sq0+Lt>9nbzB4$V;aUk(3ZVTg;cg@dVy{cFVs zexg12ev!Z2UDhpaZl9!;5U8Kd6x_)L?X`s%oVmwJo4@MAKvmX0>n{KAPcQK{ab)lu zwm4W=B9z2`x@-w9CNKqmw$ATY=+D;qe|YQkap58&BI5dK*p)0BS<^^}Ly{rE?W29` z-1Q~j4x779js$+lR+UIG%vTG{nP5>|M$Bgr9;7<%5rxOAO7-oGy3F zkkY>kmT;gyj6Pl>g$-ugRe%wYqJ*+X%6Q{{R<1Fg1>U@ySLe*AWq~RwI1q$moV{CR zf_Q{O9+H84!r#37vI~8IApS+26D7a$Z1+8rSjc$PAvC70KiT&okdQzkRD~$4UvKYz zGjj4N@yje<6nrYYQwyU&6?4(RyP$KRF4p(Df&V9XUl7g14!*J0Lrz_1q8e*zYEt)J zCq;qPr^ycakL)*yBq^#&?(pTga>`{!K6hcfydTl&Zs$E=IUDi$&4b8=y$+ItsY@&E zE)%VRscFSErssm@7=er2r|`bFk1aj?K$7Jp#DGOlY*%e0U5OIQ_S#yLly`^vLH3}^ zX?>M1FH3RhN(En>)Xs+z=AA{4SjogGh^M$O77TtKR$r5r_|K@*Ot0~f+za~099k;l zm-<>!lTHup!DDbRwR>IOJ==zK&PlKHiUSVLVKF(4za9fIgttOETgcXdf~b zIIX8$IMh$V`mMC>68W@r)uS8Mti0D>eIsP`g_w084`}|5Xz~5UO#cIn<08nzm{b5gQhMH4r$GgjAXvM6Dnrf^~V3Og1co5@3P0Dkd z_F7)Rwzjr=Z`{V9qEPzV;+H5pSOHaYeNxnmXZs2nZTRzJ`Wb_#<5N&o8>;i{s26YO zqiOv&Oc=eqhu`Q@&M2FK1`ZWm`y15F<6qrMbm(R`go=H_k<`_tu?t(lH1Lkx!H|Nt zQxprJ5FtAX#O@lT_$cMMPqQy?Kx2`N`lFP#dfq~#^P-P-B14hDuc1qb1X+8sa)|#6 zc9O?5y7{@1raT~7?%Vrpi?J(7~~q{cp9PyvX8_=4m>qnB`At(*uE z4b}gU#p9egw${G}rgTe}>ag6#hk6LdyyUQE-kA%Wy;=a01vmzQ@;nkch(O9h^Jmn@ z67uRfsYE9)5TIw{i%KIy6Ci#UfjT6nP`hnD+|mTSB24mg<=PSicRh^w$drh^^8L4ss2t6_Gr&?E6MAKGw`qzJEa9I>F$OWv_4y1Xz^OYAPg)bvT< z7)RXbDhWqbT|8(o$}ukXojq1=t!2VK3%V2Dh(mXo!NpKf*RmV2Jb}a?VF`MJ`lcnK zvq-$GvkjYk##bE=y}kT%&Y%&Q+SzydZtkvCK{-x`oP65l2IJ&y;yl-||c01C<``~ofnR?&Sh)sU%5zjyvkr9dNU5F*z|4dQt@3Z^t zt`eZF<+G7;&m{#xjhL!qIzoFUg@vUu`saVST>szz8y#I#eB8Qhu>5eU`g-%+2UCO zVlg_Gbfy5xv~ZAuro7zP(FSBxxh~s*hC&U%|J07vv0qk8r*7O8I;3;;Q)jVjELCQ! zC-p5PR+lrLaKsish0hV@A`GODm>oY;Xr1GIZPA>fr}-gGV0B)q#KP31PWku^>1>Kq zdrmUm>MzpTs_ zr3<15BjODCbk<*WgjYwsd;%jG{ZGAZq*D(r~0I#_; zR9cAyHgsC5K-h@azN!O2ob3s6xue`#4QcLI-rP^O-=v*;m?wcntJBfCK9q7och0_l zd~rbA9AF1B^rmSF*0Te#i3z*!OTMBDWn?*kBt>hDF%y2dSvA58uQP)Vl6|0iGz)TI z$LTd`N84NBB-cWB)z49yOGr9_WlZy(uRi^zl;m!6<()Ud1$KMVXQ8 zo9D_N+M}TBQD&{{QZukU&LOQG^(md>(>!M8Bp-X{Cz?Uo_q`N*iDgu`qDRR*0GS50 zP!}|MvQ3SiSJG(xL+aN`+|*1ZDI?i~N{nUgtiFtiVsv6V4$H;Sh3^h!i0#;`vM9Q$ zwYHW_6L#p}p0n{JKXjkw;Y@PzVQ+GG9iw9MRHW1q0SYl`ISIgA=VMogW+zdxcf{7} zWUfde7PUdyT?BxIe@RsME0}3p0?4rjP9up&gX)mDB?OUm8TA^ql%yZqmOBv5rTay5 z-;kGQ8E6qW73YlWJTg4`hFglW!7t$$)iiToE?j?EPLSyXn|%Y_n{oy+6>@0hYWv}>UE*dpdR8;f>gi@ZUfETG!=QU;_rbTxfwLJP*V6A2V!a+%Pw6e+fEV&3jHQ(56Jn0QS{Ww8yRL!+@f z)h7o*$kJvHq-Hb&3%(znYA>gMA$H7V>FJHr?Y);r=D1W+L_Ky{)9rn1`Vas`hFy%^|vK-D4 zt}AavozaU9uR|Lg-wvv-E{|E_A%z;0O(*58gfNNq#$)?(AR$xI&~h6Q0cF+HYU8oa zVw%!{wz*H6#C`GV2`7Zg^XWt9b+GSei{|Hb!ajnYX)qESLe1e^wE-6a=3A|)rgydH za=OQDx+M!TuYZ1BGshgoPBq;r;nwG>&Alv#IZm}z*SRIl(C&ueUY7O}cY5U(?v977 z$76j!>V%hK(}S(MFFGD+O%#lZpX(N;xQDem6}_tD)^`f$#huXqdgJ$GbW#*YM>zvX z@VvH5PXNYk(}Izx@G0QW#eAn$RPnbN|1i7Ab`Fv*2Cf2Qy%&L zJ-vqw0Xiub(S$`T^_r5m>Ej0zpL&j$dlv5up1ZhjTaO-O<4SqWW}17$dT5N&pEB;q z{!O6|mv>OR2-A@roIsjjl*@*LtTMCHp7$>k01?WA2A-sFU&x)5?VM7nUffhCzDfu$ z&32W$rVNw!=#*93ifiN^ zjJ+MIDOdkCGBh-_iCZ9y-%;R>*qXjNAD!feUB8^&kwEGsr0o#;^7wQO^!*zX9IQ4p zYT9V#u<=UvAT`ReH?h6~DM8xY<|ehWg0kQ{bfzCE81mNZyY(P40}?2vEy2-)f|NsRr%T;z=7^ifT^Z`Qe<3_$DHx?;qGo#urArH|K&l-6yO59H&X4>U~@GTG~Qr~6sM%E#@*@SXF$R$G7om&(JkT$M zM0>~IM4x!i-r*rVCYLuJE_}dEmltn1^;fND$=i42th$dtFz@>7&HVs~N=WeAcH(P+ zwO(Qb)A?8*P)*Am9x5L!GAKgA^LF1qFqBAB-dZH`O*We8@R}T zo6;_ZY@T2zCIO2ljz^#n#Yj2FV&jhMZzvV5)X`Koq(s|L3I5V=14f}26jEah*xRFl zfzV1^`OoBootn6GZ(GJI>mSdhv||S^5A}A>Wh*7wG+lWRj+EpRFRC#DI;NQ~-LdUA=)9n~(lRdXaQHx7$HL&9wi6BRVY zRiZN*(|LI=uVVsHD#!X7uaf=JJ$DXe2LPYiU(6R=FEd4s7s>-TVfgaQ@{*QSJ>RwW zzHxyA>&Alcz9|!@83`ArULZw`q1q7%^}>*ocWR)t6|APFX0&(2vYB1BfA=W&`?FL% zlpVl&X+HPbL0qc?#N-k4pu#48b&n_e?}CT;e}m#dGHQoFSTw^=1-L}pXr#fTHD=4; zP-Wl#6zS*i8P!GAH@I(k^MDEz=lbPSsU7EN(Otx=D0?!$_Z$W#*STwknz0<)q&_u% zc$-h<@M#@M1%HOTA@xj??QnWyL?b}hr!FPNR-)k#NN=_AvLKsel&bNThJ-yQRcy{) zT2rsUJdeW6Ao_75iWx)&M!@a<#NoplqgUO)^>b7Vi-wjT}wxuaJvgbC>hu ziyowJB=TwNI4>+Y2PbO|?x>}cvWv?x8Ys#ZX`-O%!W(;v5ex(_cL7|_Pxf@yp*CNB zW2I?1yltYon^G%a@=`uUA2YRiQKd6l!Y_Wk*LOg3f(r2FO6yns){m z*I4W4<(M?54DH2IZ!4(_PA7W8R`YyOBxv}Spc4BHPEG6~;SX-lm+hn)?Mz=Y_GoxO zelmW+bD}KMKDMJ0D&V*!Hl~@rkAbv9R+X`h#`XpFi@W+zGJ14vVbG?ZOj+?xXyHxd z^&yhB@L!MZEe|N>e7qEpuKDc0QS^>HgW%*s=4t((EaLad=eI6b9drlltrh;O)XD`Y z@}6qj7P$IY|62&VpbkyXR>}V=wQ>q_nk`l$mj7uiA@ZIQrm%HQX~S1%r2qbA%R%V< z)eTqgUgfSxE{b?->Cm+Mvq1kY+Nw?PXMz659pqFf z_U6)T3FhiZUvU7dZ;?S(WZ0B+#Sr=$hILU2&Dm?YPy3KsOOfE!13NF0MuAUq;=0Ry zB55(U`;i)yxu$RIio+FBMN!0fpweHEd;WZ|n5g^iV~1n|gp#YYGAWR$$1QO}*4Q!A zQI8T53GrPj$vTq62`&qB6N>P^J%VN$dye0{I!&8+XCvi6=~1q4dQ#}P;-t0{dqND4 zt|Q>QVMCm1Gsgj_LpV*-M^Y!8WF%d#J{+Gw8by-!#w0ZkNKJY#Fi?SL0ry;6{o?fe zTd%B@D0#viiG`Co=L>fSC+n6*K*i?7y!(#*9d|eHAgsd~6R+Fp2u}zjCRK*ikYB_w zwTII>SL|V#LSnryF!|2RD;hcmCb-$t#j~b6@^1hI=;&mq)ZRK&%VUW|eDwos=Et#x^xlqLwva@pQn>XS zk>aiI@d`WHoOyt)&nr@VHYo{TsFfR=K%!Q~NikuLGL}Eye_Bbg_R2~t#OEQgM6VB( z3HMqUpe$ZdGsHmt0#3&0k8so9ndl}^)i;4M2A}ik z@!0FHISaM68o-4U4&RPlfgcQ!-&|zwKkL4u95~9gkqH&WM7O&VK8bTWzyr7zREpR+ z8f=Ra$=CNN=0DWuTw39-34Rg_5sx|q#^@1t$nfi@LdW61G^vRB%iHzm1%^+OcF^J_ zZOGMS$Ce%;1ro$Abf*{Oa%VVxl#*V6qkHtzU?d+Y%O~wZ+(uG#_Y>mBsa1uvFj{DR z>qQ2$iT^AxTJPuQSA*1kF;LmsIr_p^%n>`STG7a`;+Aho?BAfH^v|OmhanmZva*i* z-#CEb=YiVDPUCMVqCtp5@|+%MlE$vAvWq)B$q2cw@(&cV?H1v_#gg` zt_~**o9uTL_!XBPA_%X+M~{A7`Qa=6PISTpPzk8t9R6RiyzTIssfav_)$NLZW5hoT z^k;$o<37Xv|KC9pGZaHm4Mv8HCU|}{KfkkRsxEr=Hi;PXZ@7pyvE!MLEKiLG<=^)9 zz;+=(57mHfPFjl}V|6{2aq zZ~_M;V^)+=CwPGPF{fOEYwGz?z{m4pGQTV!~_ErRvx@*k{(;Rd3nNm7ng=FQ3xG| z#6!~Q#r3)&SI5?|`H%DH_ZPIy8B8v~~`GXTC+rGHX0 z{z4+*0B_871S&X{H=vum3<5vL96NUezm;NkLO>NDF)OM;(=9%x?1u~b_Xo>ZNc+|8 z_(?&|9(8Siix@)PW0*?^{6D8x8!SOTnxU7Y;26GzU%;C~^&j^Uq%q|lYK$Q&|D&eh zwbOStQJE>Xx3u`7>ARDF6H#JtwV^7R^5RzLMJfZ_DZlY|A!kv`>GjY7qDcth-5>{e zB)`yFsLQ0*Y;Xh^mAUfa*Qsc#Bbq*S4mALGb$aC`8Fc|v;yqd6z&L+fKALw8ZQ90! z=Ll2NY*6USHVMM#hJs!Olf6)`PngA=Ez~_PY4n?NLv=0M(Y2kGq_M?Y4kg)+b%H(_ zw-=Tsv|lH!bpx%&W4u1#U@}0+ONWtqlB4dOL`in;=F)}QWbV~VN6(n7Glk&j??PM9{@yS|wpNt82@_dL1 z;mWW@52=X?TnI!bqnG@_t5!`8ijkZeuaaIalFzq;s)Ew9ZV~7$s^_VyDa+?)p+?+n zk^L;fq{Zm3U=n`6772NP*JIT_&Jp*$#JVj+v^i)@$-_RAl^l(f^;b$}6iEc|W2;y9 z29QS3%h66$qPJVDOb{`ORl3!v(Ar&V=G{m=;APyjGDiIt+*6`REK1}s>6tv1IPbZe zrGLB|n41;t_CBMfSdfMuK7~J$xNk459?Mw|x62jb4asVzbqhE5-s4U0_2U}jk|4#T zKbdbF^A-RL+A2?y%72p~1tRTZ9!R~ztI`%``h~%mxvVrs`pl0vWwJq7E|rzFoa#K_ z1RMlgoj?>0-A%ejy%9@dN3+#gQ%8^_ifgU|RhIyKuld64Sa{c%nCSn9?|oT-W~!p; znaEbUU_c;bGdhq_M^IP4*lFklp)Yi}Z2Y!bsZsiq#?hf{C3RlrF;HzAG*KM*jSD*x zP;l$@)VT*FLxjW7JnTQ3|Mebs+Ta^Rh)n?Oo69(02E%p4t)0-sW5_^WY0kmeQpIDF zvGr0p+>NS9(DO_8KWd3ElA!Ar*Zew8HMIswN(}9=>a1;PX-ODCmKs?PG%YJlB;q&q zBnf$_S7N1G?7r=d%?>d1KvuWZ!?dvr2~KdTXT)9FS8FTftCYu~mUaXUL6WVFl;@^F z=eZx88^>@jJ#^w6TL2_E(Z;392$0p`mg4{usR7&>TNy(AO(xjj*-_iISsxnA=f~zi zBt}(X6mXO8+j(b`JsmmlJ^YD(CujT{DgW3AeLwH6R|OBLS!w`Z*OuVJ>(z6Q7Nf$( zC~OG;$w+a{mMTFskwKu{wres%5YLL{JQ@OMR)%*V9yoqBg)_ zDQdaq0YWws={gS9ibJQ@1&c&4S^$M5qX)_Cd2tX%tNG`kOiBuL5A<1PV&3G}(3<@2 zTBYD52zDBgn0S0C5^hQKfE>(`nME-T)Y3KBJgH3~v^i}k-tlnz5Q1VMV~V+yj2?6F zw&PzOyQCyEJqNOhaF^S$7XB#&!$z%JN6@d4MPAttI3<#SzPI6i7Y!ww0Sl~jBYv(B zK@B_7Rv%8LYF!AI_JvwAlM3M~WN+?M%9Ju#oX?Sy4;1D{aZ~uXx3~As(JEI~&OuEW zg-#U?7A>=VATWVAo(@Jm9xi_P8taWf04Ua?FIL8gNAxfNu+~l?0}uLi>FkO>yLXaD z%YoFYjWdoUx_yBO*VEHujgP+UtxP~8RS(Gp_>OuvAiR^Ih=9&jEw}q30QgB|dlCWT%1JhYZW!&1r4vWb$HjR~tUTsORjA zEAc4xl!#nkwmf<)!`M-Wt?Y=Wm7CF^yo}p`|4}_@7=oo_y$BD+tOX`+8p#be@8AN0 z(K-1OV`p5P(lauyEy5Tm&KA6DVrU+5ZXi*Z1vd1X zM6^Wa7N|Zl8|ORV0jG8;FW82OyL={|UM3_uI=b$&gGj@=ja$!k&nvKYa61;Rj-H?h zw%-0;F6Z~+7lw&yKxglj_7uJH6nV%M)v_%Om3DP^%Pa+sA8jqBjoLQA{GMLuy7u&L zATJt`(*a@ z)Ba}tFK-nL-~Cf;2p+!KVtb*Pg@pxc9sf=9iuaDI#^zK9f|dV~PW9>G9KtYhEOq|C zpLBVm)>Yy@*d27-k?ZjT8@v0o^Uaa*r<^zvTbr%c+mA)yP4EL=_Q^(uy91C(zEVfOf+W)h%#`vol52m&0BsIe5ZT<=fed38%B)wBX$U1XvfVXkv+ zr0*H*2CVp_g9Am^?AnGT>cy41t=UiKX6S~0z?yE_SfpQ2_Ly7ito<0rnOC$`B`7?W zkdIQ{VC?g66itd{FED|B#hKktAo^Zh0`MZa#m1b{Z6h&v?V)}#TBc}VOu3#}rF>lu z$6I5H=_P&($?VTBy8GK%*=yYF*e?#I@C%)6Ro+B--f-bQ;=dcQi%H#!bhTU%b6sfeC4W1e@)|@L-CSP zv@)>t>UDlK&6%7sf?}_7`7WC4x%1EW{u9nB8;EC~*ATI@Yl-CiIA5o}DdMwfqLSMz z*K2&=8(^!}PWIQP_6zC8D7|R+%bH(BQ3%Odue9{HwM}}0CTYKgD6eO(c0Je-A0OX* zB#zvK1J9i_&=413ojNSQsqs(E-^yIFjmxRVr||>q?rV5&zcI(8^NHvWB|1o7R1Xn6 zLJ6sky;50l;DEq)1+W!IWikO0WShl65|Y8vUt&Fo8+UsV~J38em(7F53b|Ggo;noDgickI)KDBYfDf|IY z#4~SSE1Rp#{d!L!Ch_C#ZSs3Ur*(=xK0T%sM&BwmQ0ye{WM&|uA0R@Xp2?>8{tn*u zT4!_e>PT#-JXCyg?O&cH9X**1-kFr;02=PE5#XO5SYI}gqG!r7onY?2=U77^<&*$J z>oYFGRg3KLsGhW50olMMr@5>N_T79@;il`g)b)SDD3Bu4do%`ICRLW-lwDO=aCBBQ zCuQ9V_V5&RjK@)5qjfr7^1Aq3*6c@-aMSEMxeWZ+s|d@I!gaN3cl=Y#gJwN?G6cLM z)R&vHygNVIiTkzqx#%AV^0K|=)-?DdKV2!|+5; z=!AC$rHB3J;tZaI9d;k3x)dd&e1boRWnAZu@6&ii+v_2=)rBj~k@@39+?SWD)E#g- zD9N(ZnsgzaHp}M{${u+{PGMcNA}U2Z^$;WU)lZMXNLMQ~!a4PWHkxAG`a0Ar^u5x2 zu^48*R9Ug5uZ&N<^9$;MK)dS}hG7_oiSS}}>G{L>)Z?N{r;PoM;`0Q$K7M%6S6*;g ztG`S?JP#AKl8XK9CU>u$xM?LNL)zQb+GLu0>lT1qAqxaOOg2D0B318rgek3Q*{`-pW$epxPZ!BQI7bR+rO_qv`L@_+Z!l z8IxZHrqH@P30Cue}`myFPJ|hF+}L<<+Qg%0dP_jRheNYy`iR!mn`34LI5R)~ z(+*izczS~x`!EP-8v;SFDg%x8odm(9#@rt0V?{v5ejGqmyrwYMvw23a`RY@?E3fZb zzTSK|ObCO258QWDTL}(c9MbQHB+(9Km9=OXAJW;k1k8}KbGZJrvU_&yaX+*AWb%on z>ALZqgX2%I^&QV^c8xd=-1f5KUT96(IbUzpGCcGCvheBzUxIcspN)cu-}i!;rSvB# z!^ng1w2w5)@J5Kj@l@BB7UrPxV*2WAl{mKWvxK7 z{Ke@>51ZW3Txn0!v(T0c-j{RX@G8aP?R|f(Wtq;ttH46C-xB)kbZg5aYYXoK&_@|%$6u*Q}t9dU0|W*&9u1u!;*kJ%vM znmRn-41^$;?E{ke1GdGO%!cTUt!|#WntZSrK5cO(e_3=GP}|{) z4xvY0U>btYO)I4irC2Gp=v`FI?k}Y2FLcI_(+Xe&!)NeL64<^hn*I`dt*j9vxj`P% z#jMD+CDuZOydjr0n>kX;Kg6dtK0L)hY=0lNPU7u zz)8%dw^nzJrq=n%aoGla5=@GasFeWZyChO z^L7DstDj1Ks|#F^(T0*>KWs{AL~KH376j&uHwsSy6Ts5C573=urweNeGu%;A9!-Uv ze;+6!XrI`QxYv^p#25BMwTxpgNMstqxspL5Cg{FukwNhD_fL%$d9YR0%i2q@iK%t& zTo(2=o_q0{p>VJ6^0r}*W*cqnm*(*P{>!0bC2n&40dJNZPmt$L=Y$*f3=w!XehG|D z%qC4f_^FJC2XH5C)o|UnlSxI+$8V*1GZkh8Tov_rVg*IMBN!D2|axz!0|WFN=-aB2FvkCa>QnPj{n)0uZBDKooDu`1kh zHcO`Vqa=IeCpW|6EPbs8I?{JGMNZ=HD9P17S3DDC^G1|isnskXlh7R1Ue)@WV$_lQ z5KYp}oa81x28m4ax;+Oo4;^-~>F6#mg~}Uo%yLJ(ia4})`Vr?aI&Q&Ufi85i9hKQ( zHafekf5VdGbyTA6&zXxVIML*~4w142bdoL^)=RndwE~SOrOHbgqw4tT!n|tx9#ze~ z!I7=6@t%^eGQW0wZqG9P+%CV3-Zw*Qv}0M=X2Hw!MSGj6)qugVfx0q>d-nIR=T`&e zFYNz1y8PEA1(R=`HfTX=?j9M2=3%%^J812*J=1=B492~+-(c!70Qlr<)Tt!^AWtidERlv5l1Z(;-p#dmQ@3#b-}2MmVqza zNdK(tFjO_$;p6p3Ke;}^@$wr?cCBNamB7Ndf*PpR`P{otbC|PQ&h3TUg?Kydw%r;o z*GH2k%3kAN$QsU1EiWeCq#kIaW0``YaPKkO>N2rsp1p1t>7ilml@zES|4*9IJ2Y|YotZ`cPI(4>;M)Jkc@(@o{M z4)pWC*KOK%o_DIpRoI^A`Zb_g`^-@=PYYj^GsDc_7A@+U zeI|-_G=n}7`nEpPwb&c9xr4A zNjU*AOi?F!=gBK`e{Gz*m>1|X^+ou0+U!=7`OKt7^P?dNHlMxnAB^^s&s3`VVKn$T zdv7SG$>z^x656Ac+bg%xQ@$lUo;iG~{#E9jMeWl=m8(PJ3&9eKtsu))Kb2OULUT;N!2;PKzf+MaCSDmk%1b?FtZgUfPoxiA&h=_BKAlnZnp`en;$byNyJP z^_>X6P%&fo^_sOQ@r~wCR_OJ3g0)MctvYvt9UiWga_kSqS@Uc;3H%@K3@v`YM-N$KjU1KV9X)TAwTWKBJWc#z{y(8brC!RZ|gn!V85(My1s;%3d}6Zae!42jo% zAnR9S+-NNA>Jw3y%@N*hn%J)1Fx_vGM~lE&YH~b6|EwN2bjPL7ua*ZKRdJ65RiQO)`=kvhI4pn=XizXgFa5{y*d3=?43$7CtQtZtqNi`wMEQx(z&%B`?IP-P~JoX}2 zd6Qny5b!a0Z)K-KyB{-DdbquTkPCPZo^W~*}rW(oZ>lLVzZf#*^wvPMI6lzdspku=8?F|3twui=; zk9Qg)QM^s(2UT(JxwYC8q=exY zOGkR$eULOa7n**mv^t#nVLmx5;LG%!)-*Y+Dv12}Ox$M}6in~280Phpsr+#<#2?Bv z;LDyft`Q*NR)2iK${)0aVD8p^U2(&MKR$ca4}X^E&l3ILw~Mq*g#4nv9gl)jTLK)+ zq{XYmBQeiv>ILg+C^I>~wAA48$ ziYzV)&*eU=%#QP}%wi6Ihn3#(w5@k$8}7=ECWFOi87;4ZrdxT#?^w(97c7K+J6kd= zOi7u1BMqeZYvZX;1N4f7_kXiG_A95S-PB?73!^@L6Me~SC6c(sjzu}bAKu|-6;-9cGrqg@q2JyN`sdU49X1(}y6=6LKh+p33Qs>^b)2!uiuF1b;z=gh z5yX9S>7{o z2p=>{h|IS;BW;u4suSOgB^g)TcAk=;E|T%&P{eUBUA$oae1ss`I`pb~H=b@M(Vis< zY;h1<_S{jYPCpZ8>K9*NWuh80Pub1k*d@lDfa zuj-4V);8}owmN23W_aBBM!OpRkpQt8@BKnz!Q6HE#ui*R*Y(r;Y`F8(kB|&&LFZ=p zq@Z+u(kJ1lg(gyPhA#Ix)~zjVJ=*k601*$$&lfCb=w-Yy9Z4e-qpBUZB`HWxYD#D) zj)t+3QnNeU*DGnTgOp1cHG4JNj4spR=I0s2sr7rvmNJiTCr?}NkZGW5ONz>OAxFXc zES`kM-RfH~TXc*6oJE5X?$Nt+?1TveveF!<*Dkkuf0oO9r@6r)vroE~MbgBG>(}{prdYRskPYB+1%AaFrA5(}Y&}n}6eaTrs#g^{sk?E8h3-rF?rGk39HG zJ2JHufVfp3Spce`L!9?htbTt}q)+mVgqbiW)^e^OEdF~b-#${C7yRX})6K&FA)Fw- z;k_a}yr5gVRt$Mrb=669aQm(=Oo-wE|6v)|_rN48L3s(+-ynd0tcc21xc%Y_8QcEb z1DSv+EdGZ>ivLS!Le6o&ph+jL=*OMOuwM7Ey4YfQM=f--;72ui!H&FV@yTZ2zNVm) z+ysAv)7>NDQevd#oYh?832E^`zq7}@EfqG(l$n1MLMUK^@mvqSjps`GMAmAqBs2IW z)x&-CpPD)4`dZ3Nu35IoxKH(-yJh8D@}Eb2D%EeOWfvC}>vkj+`C&!xuqAya%xw(M zX{gynA7MGn$*O5PHAH6VZ>}O!nxA0R+-o>WFR!m9mZR6oNl;a`Z+kQDSC}-!I!rox z#`zM1Tg`_%l+;Ojf8-pvf^GhdHI2)8R%JIjk55ge$a9%#n}#*3CMHjX{`G{rP(k~f z>ySt!OLSf^5Y`E9*!=#OI8V^h_5Sy3v!^YBo+!~+fKM6pn<(3Kb?wG=DJ*>7u=D38 zgyKWLw`YA-KSeD@1er0UsdEH$*iXvX zEJUx-Ivq7kvWx2uTqqyQVVUvYQ{|9H_v=S{ zbIE;z^52`&+f~p>E4RpRH6lK{q$6ZA9a-KP%~va!+I3s8W1P~uaYRD|dz$Ae*;%W; zz|6n*rOxi3xp`dwt#x?M_h6N9=+pTm^Ji?|`nxR~T57L*&)Bp^c#k}HCRumb$+$|g zRx>q_G^?9)=#R>9BM&s@@%ny{v`u%?snZLV34CK_%5W!P!SrcP#Lm{t z3GeisQ*AfTiU!)~Ngoatc`moCDC+*j*izo<(>XQ$`sYoVa)IX?J6f{Z&uJ2pPGnR% zP6(K18cGi)D#|E#sL0bUX9eXss+p;`FUcJo>2ZD^6ZFK!BXTlaOD^JrMq`joV)%Tw z>)rVwo__}HK2W4KGbYAGjxL%Vm3^<%DjZ+VM>N)nSx&0sBYrKBM)lgF zZ_im93udR^@%xUQJo5D+UaCg3!H|o==W5 zYIQBjV##l%OQ$aBiwSkF={Se&qCH$=&gF}J63uTeEq`450G{ynL&n&3qyB3AMeNuM zmi|{AauGB81fOG;XB(^o{MQ-hpD?cw?&@st590G1amu`@niv;7NAP`fkw7p%R4bAv z_JrA1nKQ>+UB-FYw?Wtmt0e09buQFhTh}V@^t4ICR3p{izs(7+&#=5zcI>bqJv(i~ z^)dKyIU(Jn!7{P}mAob6`7^V2b$KlP7UIE+n#bA4=PJY*`2B+XsxIryDH#S)}2WaS=BeeU%Pf6$gQA-t_!H;kG= zLvTiENXg?Z?dPTLXvKsGtAMGm^KM~OV&-wDFC_BYfBd}Hbm_X8eg9%3)@C4e*>>9R zBz}NlrVLj=^<^qPpN&r4vFiJ(-qiOpX)!utXHJNqsqlzdvR%{?3I53Ea zG-=Xtlp-J~NRbkd2uO{TP!fvZSP())kxpQwL~1~K2?3=jRR|Cv6bFP50z@DQB|z>& zab9P}`LDay{c!KPYrZ{@bM`*F{Px~@O6#-_$FT2%gFVDY&D03z7OpKW8V)GQG0EkBHRH*2G!pkP*xPc2V{d!c zym`CGEec9Oq@+|;<#CS{U0Gh}+V})a7~x2p5WiHRdu`?IV`LU<1+>_c)p!=hx30{x zhF(^ii8Zk~l|mgrx<5VQY@F)%o<^4=(YBGn7P_JDPhW3Ih3Jt9%Qe5WcrNpkeqVH1 zAFK5<#GE3DMw`JE98v=%kBGpQS!d7}HO9j}_>==T^aEc^rWfisRpY{lH4R@(5i@@1 zC%%@Kd*{rPnaG9QeFYvUh}P8H*|m#C5ip_jw;*D9N4*esg}fX%pP^xxh5G_+UcPxJ z=4^dUy7vIBLP?@ST;-*%1MfIcgp7Ryy_J;`V{${?y~LC2oa4~FwU`G!!sO-v)tdeoP7k%r?pCRR zd4eFX5sBo<)XN^9sHL1tCl{K6_cYmzOZk7g3nM66aXSyAh}YTNiw3!aWfF$hOZ%8I z?rYF9-J-Utu|k{|Z323ug-xbbS}>w`E1Y${>l@G8Q)5c*rsPvggAasH5v~Y-?a!Y* zlq#K|9{6i1s;A=aA{pFd#=({D^d%$+V|5^FTQ>ykBkWhfTPM*=)s^L-tBB>X;xh{e zbo0HVCQG@;csk1(EP^_h>inN3A@u?l%Z-&M3cF~pbV|a)F{<_@(JS6nMGu*`2yr3u z3G3szu30-~2mzLnGW@p=>V^9xNiDtiUvU>;R>WY|s}e?6g{Andf&}<3Re6MBEoLif zAj4lPvuD=r1qe&UAu6%6vG8fFNG+%OS)z^@bf6d*h_4%tt?F%V?(@}pFH+3Sf$hjSAl|{={cxv^;+#R7zCoxYBf9pvXDJN@VBgpH)wNuXNRhgU!2VCld+?h+*cmeEL z+^tIC5T+?sY)oyt-m67m=*2@%_+ILTf4(8+DalojHI8aiYikKGNa&l9>9BuAvXFmm zK7sK5?V^*o!@>cRDu^M+Kt8RwVB_Y;&WM{l06Sne&VH59yUV3DOsk_NVX$$m$-L5_ zlla()*^~!fD)}wEHzvf8T_)7j`K1PtNy{u9v)_!?N}#j8$Uu+dB)`my1o0yRTgrSW zXm=K>pJo{`{>>!GWgm^2ba|G``#$29(6t-vFZ2T3YVm;zr?anytAaTmkPpj&4o2h6g4SaC9+pUW4YY7hYE_09M%dns#azn>+AZpMeE-7i~sHdWJ0(ooAq1^fC^tg}`??C5nmpGl`t z7T>-uF@GkzOboTSp~firBm0!P1C+$yk&I@i4=>beEZ$$OW;w6d%;S%eNA;*p z{Y22iI6`{^d-R}ulmit6mu`SO|idr9&T9s0AA(gm`So_1_JJq9x*sX<2j&$ z%+g=V85Q-!@)^17lxB^T+Z@XS0?u77CtU|uG@zFBpw8_Le#rHNMd27Krn6Ly z+2#Pto>Hg)r68tQTrvKob8j=TIvHn13Mb)Hl9~dXOJn9D!HM43oJi7^9j_?`m<`z1 zx3;T(PM$qXK8^f@J`UVQmyHH-^s4hEvvn0VHYubPcYYJAooD+a5>)&J2NyvdN78mGB4P?_OsuFoQp{3-Gcgm&d#1faX zCyanu9;(NTHO8iOJ6GJU09ds5aaoNmGwq}4=lW`7UUbtORZ!MDZTj_^3;C0vT=N@> zLKm5giaX z%m%Z~q@nAaCFrwMp9eRYiKBymd{kvn6@&3ulGS4-`60&QG8qd{kYq=b*ylv)_u|YH}U{0 zJ~_%et8N%Dt*fF$tfy+5C&q8Jkkzd^iK+DB0!CFUB{&6bliG+^UQ{?M}?7|zvbG{mptqoB~aDebMr>(`mM#&{Y{ll#If0tL=8#Z6xbhaWAA9* zm#I9EtoA`WtYbd6wTaQlhcQ-rsr5a2kBERTbv6`hSsQ!Iuh&mJq&C3i-s~bb0iQY_ zuefc37y9nwhvKqH93#x3FD2RUQ`esLtseRW;Ep=LGlp>jUIhM&$pwSZp_sD%68TQs zfsU&=t&HLV7i=$SP1(pQ!AMG2xAH>{Epu@&s}#{om+12*!6HQ5w+dU?%^U~T17FOS z*y@NBaqiwykakw2?fffb6uLV--|DhLrK`lL8l8nvz4I*0Nc>%zDn)_ytAPf98>wb> zv@1+|BQ4VxiA(%r5gP_7d=61ym>$sfdph}0To3*Oso>-@m5posBOHoLJ2sOYyXKp- zciQxl>XxeS`nzVvT(FOTEhff9DhEwi9ifT-(mb9NtqaAlkZxaLKR+3WX5?`6ypy%5-kQuf$?pkA{jPg9) zq~TH}^Njkutgn#~-c(qV1#I|dVQ1uw3*!DrXmxKlML;nTwDgr+K3B4jLLNx6az)Dg zMC}!kFpnfH(s6=TLs{m6N(=sv@)OmzyR+`m`dr8FLkxUp<{G7v4-M{4RHpaeitEK| zDG@crqSx%IypYLH7gAB5maT6y+g->Aqq|t{()Fb_v!NL}a2yy_xfrG=>I6MVV=?%= zNQV+@2BVE0d}cOmCE9$IMJK0||5y~bdZ<<7@%Z_D(epK_jg=q``Q9zPG!|V)a|&w3 zH<)efao)#1$skSN_|-BiW2h4mqA!LpyI=Ot?@pg2m#sMD?BTF7;b!#DDOLCfIapU$ zoMo&uBeQr&S?o)rY#&Di)DuDU$*!i9Sv{Y!a)t{`mP0yY)eZi1OoD0jK5zOTG9budS?Z!MG*m3i6gV{yiQgi^ZbNHa(- z);==nuF-08EOmAp?iu>W(buS5*S_HIQvo-cr1Vf9|01!Ewa!>5GHg8+FcN)Ck!|LU z=|YV})1Kh3v%+MxPTmwR)Z7dHp6Zn*v!Q)9=I9l$C9VVib|Ht)(ls0ehlC8=tupH9 zlYTBXN*WH>|D{|YrE{lvwlXfb_(xapfHKA}juy zlH|xu+VgjoqGFzg45oe-D!qiTkf*9(yLzQk7OBXO?a2}8FdbgYCsWQY0N0kW6TJxV z0z~UAxZ5Vc){kT7MoCS?#8B+ifty{A3YSNYa!(AlRDz&V@NK6xVBA9)iUg7NZwUzR z**qUFq*IAM-LaXEgMs;9^p6Ijz0d*PfeB_d#rfdcg+{HS@(_2S##8gXN3!FDUYi}5 zYE;FrR<9_Nk*<3LsqeY(M=dY;!#c}Fd9#azc5rh)e6_lqm8>8;LSOq7!q*9=mgc`! zYMmMpUnnh!3k(!WNicCU)wgJF#4*x_$ssvt+}f9=JlIt;%EGpj-U1e?GvWCton$RG zlAy)gae>+xQh=6SSn|x|ukGxSLAKKT19b$%3zFkv$bd3#<$dO1T!>3ebV6Dio?Mg) zh34Rt^8wO`qGS_5iKYK!m2#5!ELUtJ_vahgImPe$mt@JCdnvUJV0as_rHOu-6moyIr*C(e5^zx{zYqQ_wr)s@pQySC9iGgr@TyA46`$LtT70>td`iFvN9i~{+>1^lMh#r{XkF8C;JK#O z>d#ZKgQLBCiV}^>y2*Q1S5{%L?vO}Q&!{l@bMmN)2hTZ?4&mC==2Pm7-##?GaexI( zJK6LuL}f7CzJ99(kkE0XWrYbvowy~^QT+xr8i-NjSF=u)DM9Vf5~bd19DAdue&gD*By^K-sz*y^r%Syt6Cj?xH0Y{NDz=8w*Bp-Zh2% zni!!2c=X$0a3v$kO$hDzph7BjNW|Yu3i)6F*SOSIH3Zs5=(S@pxQKiBR>r^*d9bK#dBbV()^*b^?uL-^KV9ToB3(j9#n7a zd^JHCFxlM(KDGu}qG7^(?;a8iLJsyhS3ZoNu!j76vv&)w(gy-OA*FsJ0~fZ{Hm=?3 z-raX#l&<#sLnrt$X_avp-H~>&3n3v_v4Bw=IW&LYM!VZq&HtB13(3sDF~t{Rl2638 ztb%Wj{LO%t;}IaNboKqW23euEI2)D}qym?8!PZIfL9P6Q@V?6fd!}4-NngAvWDR6z zrTmX-Ul$*aUw6TuKPUYsu2WNBQL>qYS_d*Z=qB?!{EN?ay`yHP@*61*DMTc+{}b`3 zd3xVu5lQ-6RE&1@^90dkg(P(?1A%$yDJS%^v4nKNW}t#}1W5ce#xr z&;JgLe`M5ZtA)J9xzK!t0*T(7e7}=FT^!yFyaT_rXx+UEv1;`zY)^V|zw=#kMVrCq z>;FOtKwJ6*(NSYOf?y6nB2GcxRZ~kgrMmLIrIEh=#-4Gp&kKdBi`DrXImV%xM*-VG z8Sc83aIAmk-bXbPOGxAM{Nbl@(RIpTu~Q|)3j=mZo7Y+Eucz0`8(9}0)_HM1p&mQb zG9vLUNHez)t?nF1+@xJy9jEHOxER#Z4lHAj0|E2vbXuJaVe~+W^9B_P&+i@$ zv06o%aGv)IT{0{RS@-yTd)p#Jfsnp`U*A@i;2yot*&G?P_gI@}ysuN<#L7>6W%l4@ z4_dY=v`lRNBGi;^PGj~S$vEng!`F54YL&e8K$&t_X^|`__)wv6uD#k{Kru z+wI8LgEtSh(f5lyWPq2u^M1F2rADR>)yl{yz-|NC@`W#b3*nj;p}C5LcfB(ikW1AM zB9)i=jJex5$|clUo++HQP;+AGlASrSj*WXS{EtzB3t6!Mn^V<0RU(^2^<_RJZR9R0|ThwP#IpJ)zNl=e2!OGcvFW#|W=xddr4 zA{{pQLw10yS{GIsEyK%%{KUd}EW) z^?f{G3@giJ+l{rkns0*V+mZk12QXLdi=1bF|KL0J(qsYjSb^kde;fHn{1XHKBPlA` zTMZZfWiXm80CD+mLjMzO|B#>mQRu%j^#2*{{hGd5cze(qcE$@uG)FyY+-QM<%4Abn-{=0!L=oyVy^>=$lkg9tqOQQ zW~@3lKzuohJE(6GR$6B#c5#B!(f3DW&H|ipNwLjIn{P_fV57sZ8ppH$+Ptsor={86 zmrZ;d-zkg*fMWR~D&1SM`twg$I@N3?Is906PktvOU6GoBi|6`HTE+~l6p71@In7%t z@L$kjcDMH4#2t$z0oa?V!-YlPt@V7gCYlNwhxZ?m|KPGoElt}Ef!vb4si9jGu*nA9 zn5K<;Ra*9c!&_|%;PWw>%d@7n>866M3l@I#)qJjlB-8*Y_@!&H&1<8{A-%1?=qDvzW#fwYsqZEtI=~8IQRJ z`QnFO|NPyW_GfGEoia7K7fZD(x;hTGfDSzK$Z_1#3wiTy zxr+-427_H|G~N@lw)C)VHnjLD)a%8aK;%>70~4hx+@T8^N=>>zobT^)3T(E;}#=$OB~BL(e;RGK$=20})c0>FMc+RKtaXyB}$PLy&D~ zEOw#nqfFC4zo)75Sn*nwQkIWp&~lWifJ!@ft2{o>31BO3_nQoCny;5drQ@U!bB#XZ zEiVzNoL?K?a4kioR`$sH=<;qU+FNQ+=s~u*Q`vWv#5&RYCL0&C3^h*Wco@v94rR7Ht#2F#v2OwcBCB#b$Drs7Ndd|dPJgM@ ze?rerVI(4FA%@i3Trnr3XOKijyXioeFSHA9vH_3d#+--Y1DizJ_48rdV=BAxE!^+t zK>;2xMqujo*NVHm|SHe^rFGG3wm?@b!mHJs7jeO<4|;SyjcneWG4p7-m*E`h) z0+TT(%d8%An=;-uaa&L>^_!bWUipJbfMGDw{*S^<@liiXCq_8-@)3>LRgmVcdY z-M$9y28O29-lkHGGKj&gG9tLmc8$%l&m^S}geH8)6o+|EgfgfK<8&V+9?MO%85TUT zYa7T}%mqku#Ph9Mvvq*65&_;@)hGneOe&^#u}Z>(EzE)LP-{qk8Su>;wZ+^#fJ7w4 z5N41??lSpA+I(t@}zkk1Zwa-V8nm zQ>`Z0H$&JOMVb#-a{t+ct#TAJU>LdFdhF}0z~#I>bY)YGp*IfeK)lWe`ImjU6FQH* zTczNehz_!3QjBfO$>Tv=->|a)?ypBsz|FGp*8K?0z~85j-50l&YlV+P`wJ7;LS$^q ztMpH8V-~ijrpq=n0(Zoh8MgW)o`6D=)RXA(TQl1K01)WX(<1Jh0{wUHv$m4@hcQ)` zhK9xQtu-mJh{XYt_yYWUJE*R3ZyRmRv1$boBeZ-+tr%Cw1@dmt2ACcGOk)?zy_8iOH0T$)t%hbL4PYf!mu@@t>oQ_(wj-ajNKuA z_7^gpLhh-iz#Y`EjG}aMIP(xGXq_-!gRnWuSsX=I#vG zVcm)^m-T1GYCC=oAEP-r8D;G&C_sN$4Q!ThCI7z2dzI35j}9xKM2wy8leY;U6OSrh zjsca6_MHrY7*^U{u!)!OZ40?P8?;KATfr>o&zZ4U|;pC3VO0wYQ@QGgN3L!@Xje@u`#EJ!;S$v9|*E&Uhx>|mI9XEpwk^nFo68Svtsd&nzqw#+jjit$( z!+${f^96OS8uF-)ni7;i1prQ9hLNSv*agZ_vI;K6z_WJP%TaMr9A~9+D$}Vh!rT*C#7AJqQHTe7diok30~C#lY>?K zK%|}%zQMf|#uZJ>YQ8gOS&Snx1AqW1Q}2T@&G$4kbR3A1HCZUoVt=>~W4!$k{xM1; z7J%ZCgP{k%XsnMo5!#oYskxA`A!^mQy;zSBOzTT`_mIGaxF-Bwrye{PGb+PRHJ>Sn z$eka-2#@soERDoPWn#TPON7CYx8(D&!yXv$siFeo4qOguecbgZxhL?!ukdiYm12Pl z&q0YSg^pv-Ahvy!#-n#<+8eFVTbX8mm3ch8p*pieHNP<^3lzk#+z@Xtvn3|j$FW%D zy7iSAHMx)O2fR~jU1zWQE(N(%mh0#lY22-l+}+f;#vSCN$`Juztt&l(Xp*pw$G~Gz z4Vmj$Rb*?wAoGtq08-UyWM*6gnWW2t+snRIOr%5%-}U5Domy!E!0|~qIcC*F zmBa&e7KfK6727Wg%W*Hdp?9d-Phutko~UI9Bo-!NwOKK6<+3<&uR|?y!EcWD5G4iC zDjr?Qlomc?nAX7@9n336ck9ZlxSM;Y8s|RFpcRmZJTSzg%_|E?oBoQ>(`C?HgbD29 zY-ul65BD|V1MThVEen%ZHjXOXr)w5b{abRku#zC*ztv63r zU09ISb!UaRT3I6&;uuqZEZ*iUT$)&5`h$z&g!Sk5%)V}Blo0}CIiePH0l=N7V9v2F za?pk3?PAgy6jh^zp+@GZIBypHt~<-#<)hb#Cuw8a z_&lzWC2R$ZG*&OG1yM>q(7td)$r*chWTw1Rhp@M)&y8iZ--Z*qRZ`Vsg}$B~hgZf; zx_V>sD8=~l;!c^z*Je_VsmWlll}ZrWIap85{Uxc6e01D+-P`=-1sV|E%{W9Fw$7wg z)#CE>qWPQ^LYB);`ugAM=NE+cqbwS$z3*4jEFxnnjjWFUhSVHpdezZhR4RUTt-)sQ=2P+58hCFmLV8<=87<*GLd@E%KG$STxl#VfMYE$#gZC z0&(wIY3elkQd0eb-1s<30oEN`1s_@m#fej97Qq=#YV=bk?xWO?^^kU+$}64ClQzTI z4eg>BrnR`;;@d&j<-Lb^oHLdqmoYez%#aT3-ViS{wG>)2Y~}r-GrVeAD!mQ^-9ME? ztz^1CF8xlG`ld?o=!Wv7PTn^a8;xoW#d?e{C5Oqjs4c|X&*4F%ucpFDJtpiDqhUVf zN4WFBf%%+vSHeln<5l{4?Grr{)K+gKT5$dL1*B0Qzi9RfC;&8-RIsR3LNc$^v1jiQ z;>732ROu1zr>g;Mtecy827+R~oSJ$~Aq-|kLg@>(W^)M^5eB8es6Y?z5LJ3zbnhkX zUE4_c;_Ttwm*6ZxNnqu@8x{k#^((v@_) zt&2XPqn{R9h5Nu|jQsu10htA62)ReSC273@;F{*w!fZ!xj4r7t3Bom6n)M^IO(mjT z=0u&YDKJ9Hp=KnEItzgQf+8VGRmXcG0t5n5qkB_RQc0SZN*m^Q>TAy)>Qr0J!CH?k zFf#amK^#eqi#TV7Ex@=DPRK?&_gOd}!oh}6*TaYFZlLDUHWuN3s+lMr#p6zsLlC-5 zJhNojz_o^%1aL)aYPzn8Wf&|PM8nx$kk{87Aw-IVGJ%;zDGH93zL!Th8>$b|(rX!xeOvSHxZ*aD0F@ z@<8}wRqyS40~sPe;Nd-br(vJhR*^@^k@|_D&u0`}ZT2G`X&)AWUA*E<&F9{k%mb&E zL`>zH?9@IzS*z05Z51VO%?hGgTHsU@;!w5Hxga$dcdyF?bV<;qIXaKZB|>84bo z1jiX$uSs3Q>`zs91tMa~u8Wrv94wNHH|NIgs0i3ig`nu@lq%QWGlF< z6lh696g)JP8#_$PC@Se%5#!i3Fp{zkW!HG+)T*XnM1H1*_PBgL0Qt1@T6v>FNsV%E zAV}cFxt8B6bp~dMhAD~+Ten3guf&dpf=EqMVv}O5+nO>t`2(%RNb$iz+n`>H0q53i zx)vr&v=*&&Vo=-*@|Gmf?ZSF&6t8RB%1ulcwHNziAq@_!K6t(d^_Xjau#WodEAt-j zg97durzDscVVBgYw}k@)ky(IOpsaRn@y zD8ryMg!9276X9v#y?V9NU*+3hHJfI*MXtQlU^vBq2!1m;0&uR^woke#jN~K}M64YQ z4VE8R`53sLwUig`V>(+3yLE8N3^~&8p)b{Z52vBi)rVM^TbT&VYZ{3qdninn*?8`% zk6ZBM5{aVF#hV8ut$MrnP%@jYaWSVqt_(KRVBJ`Ou@Md&`3)7pH-v^}C<5gZPLjhB zMmmugzfq;J1I-m&Y0B!hZRzK+fMwcE-6io)>wxE8=wnjEN55NsLPLoUB)Oymx`eYp z$JG8ZIFqDC3oVhM!M>y~F{tH4ANJYc01$Q#M6(PB-O0T2Sx7IE zB8MU&l);fT7mR426^g2_HM{eu5F;2kkhWgR?>HGL2_Y!D?HIWlV^y>g=7;u7e6>F5 z?$_4b>`l%0f60seXm6d%`AbuUBP-tIZ17}2sShs2D)d=*8Rs6YZ~aCUv8jq`B7;J zOS065Wn+(P;Dw1}J&dl7@VVNQxBd(VXL8SoC_x?A^GKFY|FDkwBRC{#lxL}X1TpT( zW7SNzE*Fj>E(H#{Kgh1o zB!LUcnW8r{>>~FOlfKA3OATqXNJrnylY(`wwKq5Mg`)0uzF<)K-Nf9POjgQWcKWNu z&&*UjZ=6_|fYi#Qzpw)l$j3(2E+-yGKwplxfN5=TN5fM*B4L+-d`N#osRW|Wd_znf z$W3R#%d5ED^j2_H^D;Xay!fJB;3K-MoYyA2+zB(Ss%pij$I zonM-&;!2_|p&stji!%H(@f6b8*zlW3S$Y&gsp_S!8b4M)U6u5^3H)`egV063EC9F6 z*g7fms_KiGZ8Swp8_DzD?kpBny<(R_OEZQ14$Af*NXOzPOnGLNjn+op71I{;Xa|Bmug~CynbpdCmnmGLz2M{Cz>E79m0p7i+tiGa*Ju9DK^~h z2!Y2U4qy6m+5BgS*AEzK4d4^>lwv!o&!ID{d%Y!M!@(07{4|8|L^#PIxmY)Mxlc99 zhGy{eh?tS>*TOE!x2BKmoRpyd#!(W5zo?+E{4Smpo;w`T^U!s6 z*?6oCi30#y!)xu1JLtbJ`v*+scviPO=PHaa4twPQqZdW8Ob@u3j$qVNor6Md$%AgQ z%b9<%^W{fMsRU+3`^vGo-VSLKZQ{e4=F&SD0f2$Ryf{Lj<1ZS2|Y-OV6Y_UVQP1Q@EER2%gjDLa|5GD~i+Gh(;O*;!ib z-I;de@YA}hd)HrH-E963R}*{M-#CfjmeRvq*VAGAKiid1ZRM-)Sn=w;}K!}=VCDA-y3Mybyny7Gu(Zd;1ddD@=J@_fUU_H@V4 ztvGqgFl;O)s%-||vQs!0?_Cy~xRMuHdW@`^PO?QG0as{AWfY&o9&HV@a<6gJJl~`z zo>?|Q9M2bluVSdzPfvI)}UbVJ0y-*sqGAMgdYpnC)KAYLU(NFsbQT##9_Q@B^n_lgx3f z1j!h-VQ?nt6HmAfyF8urUSK7ydHn=(@ZSh%_>DMkg^0da_UeT8U4b=lPTM5luc2b` z5RX`?3voL@>@GQ(1D8jisAgHBy+)O~_&hSepVRTHG7?PE-Q!lrlW?u zH49?8n*eVojJ)<4ABF7gNO;|m;fct1yqq46OZL#nz2XJenamY^r#3f z4q8)wL|RZf=RP|w)7=}(cNPWzO2g8Hu6eO*311XYl)OUTgJC=8J3FHo}&$# zoRO5%v6Iq^3@U>h+<&tbMJxs3&Y*)LHR}@{7(273-rQJN^Fl^2XO6WZ6`Des)19Jt z*0@|4*UjZ_DN#P>rJUBAsnntzcbS4u$CWI4haZSdsD<=4j;NJU1U|j)Q+nMg95jLp z$~}2Z=>nP^Au~Q1a1}xB6|oOV3G`5Ftnf?GOAyGGC*nPP6GMK^dMPs{guTn2^oql>lw`+L)>jce z8?d59msi(_hRHO!MjjcHD~qcvpaMx9-PjC{hu|2$Diqti9i7^#>AEjw6g$mC9sMOV@Oje@1s8 zcHDta4NiHX$2+xRE*|vzaA|lsX33z5^}6EcFU^1lq6vcNX;0Ckg$2zxiSq7TG#^Ki zXIMmK3Gl$^Pd=<;=RH*Nw(Bwcg$1v3#th%&id^o?kx3P@_z0SP`9KD7yJ4QME203~ zpf%Y!ZZ`;|viDb15Z8mz1kZ#;3fe#+I0q{!be5KwZV7I(iO0(rnhViwY1-k&VSC!m z+ed&5g_J~mqW-tT(lRUyx%>~PEa?fZHj&)DcgRA4@Ibs&!~m>DRUNt<6CrcNPZl8fB<^=C>4;l1ih9}-?DeUgW+aq%p< zs6To&9lhwPG{JlH1lgSZ7qDAJu{R`pvXn=S?#PRi4oedWqJ#*H?5{CPVy;sa9w-$7 zJzdLI3|-hYNmaGdQ8$xVYcI-Dl5!7r2_|A_Qt8t#;dFXc2+4c@;=EFh$Gbq3&cORmem78Y&3zG{9m~CJW@UKE%IPJG zk0_fA*Z;HwM=keWI4Zzg4+$=tnB&o36M?i644r2eIT>cnOo}z7%|s9jSpd3vvj+~5 zn#_?qiM3xs1T+#1aTO@|Q34-Wtqez{ckjy!Xey$)ceDKfowZB+p1)!4N$$9@FnGpH zgno(0Cv$fnc8P<-#Q{4PvCY>qq`m-6Ow6xGdM=iyChJmHo35;U-P>Mg0`2$cOfTz9 zQB7D^;>ZOhn+P=dyJTL0ygBlb7(yURF|{xmm(5CNUTAnQXw~Xy!N`5>Ts`o2B=3wf zag*T}P3~vq;fP@Npr~M~zw(lVIG)41GbuQhJhgspHevoyYQkOXN#yYJW`2c4$yPO> zfPe*^1SH8?(h&UjgFX?>vV_;6<1sr1x;RR@Sy)Qa7(yVa=w`+moM>*f^R<(jKWwot zF|kvi$mKk?;{N&r*+k|Wd=c$yvR4tmH)ee#oc36sf{2)x*)wWYd!eg>Q&7ICsPdBt zn;2%f&HpFr*^ty-Z89F<-U?MIHN1T-&*iU^rdZ4?r|u$+cwI%(XX?x{&uXB0lfE?R ztE%sK-%FWOa2s1%U*r+8t40j+9p@A6aA@tA>rsS^_!xbsY@n|_3h=?rgm;dCH6cAf zy^VD~l(anCr%i*UT%n0J*?tQAN;^D_!Qu5;L0uT|Girz|?g*~eG0V~zAI97e8h6oX zIqJf|xb)bC87Nr~ux;O0)=C3U$eZItgc=Xp` z>l(xn?8NZbr7k7lthm-o(cZB;8JdBe7>a>z8g6bAG)-EU3C&Ba=m_ zu2qU2P6d6yrLO(^Ba}~xLh5LAORXm+9wKY;;b6Wtqs7(7nagw$rQFXR4oX=E$ zwt}8R))+}(DJR=oGon4DW5bU<6CK|-Y!s;Jjq`}zWr|Vvl512~W#z=IuUsAz>jn)c z!WUo814UWdD*g0n9`FXBc2~Jqp;(Lh;uFu$eX6mHHnr0A5fg1b=33hSd}p16w>0TE62;py2@R4d8$INWshJG-nLcy|FY4Wi)rG@8*d~reX)(tv{27-Fu*SA+glt;X8dj2!eZawTb%@mv(cB%Ot~^|!^aUKS z+PM_Yl8}jYBtv-?nnzxuPxUZmZuOl+3Rfojse$FNzlna?_2U#_Gib^XV zhsMpP4Y`s-CP%4aDBTwo4LlT^gMhG;V&fX9bP?dDQSTU<8J z)0H`43JPm9@qW>=LkpQ=$eJXRJcsH^6rEjXxqf{uoB`NX{>~klUltW)76#*z)=&^6^$x>s*kC9T&>)%?SS&If2uDtG z$tR3yccm{lE8Syspb_#0#6&ep9M;X~ra)?CCoWKH>`^FZ;T7di5nhF|13b{CIr>2J zwIN)w$4!SOP}Ig|zclTjkev+O7@)`<)EA6Y)<_hnOhX}!FrGzRa#zgHWCeeCO8W{Y zm?3ezVh@F1b2n?Qwy!p;Dp2$Vl~`*acbyFPb()MgFKT>&N3B%TNRK*QY?&2?O< zXKm%>lLn!dYH{^$iDu9v6`#ZQ@xA~u?ns7^q<>bfm#$;$YMm`pp*Xi9To9k%1}5=x z4}sfCk1O%u1$HF34guxC_{ZZRYD0Z|+{o64Upy9Q%Ggw>j-41xQ=1xVC=w+7!OjzXp%`C`>Zmuje5kHJ3$`CMBtrVn`^`eajKH9uPnP*1@yiK@2B_$D_ch2mv zowrHb`Gd&DW+-1XmAyf2Vo(2g?TboN`z@f?w@}yj+S7*P;e;80IyU|6e6hIklAF zQmUN-K-sC#+#h%rws)t{f=#6FhP_}!>F{k362M2#V7t1yv?I(5td;Ia5UhWokZsXk zQ$MXiS#LU>9_2IyK(MMl?4P7T2{z?j8-2{cnpUrG{p%iuChXSBOK(tj1ij^FgJ1UD zpNCstL7W%?nlN7O^J*9Qx8n%Zq22tQCDp(08jwojbp{1N{II3~Rq3=q|kEfp00a|2#l# zW@!x^CBGcRD=27WZW{#6Ay9Vpsw4h=EjM=y#d66Yp15C$ybQtSbWEf6 zO}BSApC%0e&CR+eC+`ZMBAJ@oh*T&(gI`Vm^T7Y@A(V4U>%4IHJ#9B(d;XTe-7Y7M z%`uhL2ilHoKa zY+Sespif#iut9?sLF@~!(5NLXD*Q6gZ@4f=pCH@binLU=qeqV-4(j?1dg_eHC<|-ZVH(cct74bJmmYRk19FV&yQ}if z{);EOs2dx5nuxyfZ`@Ef&-Llvy90c;_B1y&#dc~-eUANUTH^Gqv6+p~7}o*hYya@b zW}kmwApkjj&%-08pns-*-ug^^@HzA^g#=rp(*F}g)8cSw^zLlat(=BGh3nrQXaIyC zgGoO3J^p-y60PmX`W-v=W?sE=>E>TZExnQFGnQlaulxu6ItaK3DB|dr?|=Arc0V5p z1W(^q7|Xwl=Nq z?M7Yb$Xv@!5d1$*!`Afvja=WawD3O?{pdvfN1{Ik;{S`MXqCm7ezs%Bj{BD^Sbb9U zLqDB%{PE=xdb946zEb1&yY_b$4rGtSB6H9E{pR|Pk^dXypTzl(CjZfdo%285`BNJH n`S2f2{v^ep5C3;)Vz(E;p)L1`Z48j>JFaROUMcw1F6{pTen9~b literal 0 HcmV?d00001 diff --git a/espid2sensor/docs/ToDos.md b/espid2sensor/docs/ToDos.md new file mode 100644 index 0000000..1f25a0e --- /dev/null +++ b/espid2sensor/docs/ToDos.md @@ -0,0 +1,15 @@ +# ToDos +2025-11-09 + +### Login + +* Passwort vergessen +* Passwort selber ändern +* Abmelden + * evtl. auch automatsich, wenn 10min keine Aktion war + +### Allgemein + +* saubere Anpassung an Handy +* evtl. doch nochmal mit React versuchen + diff --git a/espid2sensor/docs/beschreibung.md b/espid2sensor/docs/beschreibung.md new file mode 100755 index 0000000..7b6d784 --- /dev/null +++ b/espid2sensor/docs/beschreibung.md @@ -0,0 +1,60 @@ +# Beschreibung von esp2senor + + +### Aufruf +Für die Tests: + +``` +esp2sensor.fuerst-stuttgart.de +``` + +### Darstellung + +Die Einstigsseite ist die **Login** Seite: +![login](PICS/Login.png) + +Hier wird die **E-Mail** als Username und das **Passwort** eingegeben. Während der Eingabe der E-Mail wird diese überprüft. Unterhalb der Eingabezeile wird angezeigt, ob die E-Mail bekannt ist, so dass Tippfehler sofort verbessert werdern können. Solange die E-Mail nicht vollständig ist, wird *Benutzer nicht gefunden* angezeigt. +Wurden die richtige E-Mail und das richtige Passwort eingegeben, gelangt man zu nächsten Seite. + + +Dies ist die **Eingabe**-Seite und sieht folgendermaßen aus: +![eingabe](PICS/Eingabe.png) + +Ganz oben sind zwei oder drei Tabs, ja nachdem ob der eingeloggte User ein Admin ist oder nicht. Der Admin kann über den Tab **User** einen neuen User anlegen. Diser Tab erschein bei 'Nicht-Admins' nicht. +Der Tab **Eingabe** wird automatisch als Standard ausgewählt. Hier werden nun folgende Daten eingegeben: + +* In die Zeile **Sensornummer** wird die Sensornummer (die von sensor.community) eingetragen. Das Programm sucht daraufhin, ob die Sensornummer in der bisherigen Datenbank bekannt ist. Wenn ja, wird die Adresse aus den Koordinaten gelesen und in der Zeile **Anschrift** angezeigt. Falls nicht, erfolgt eine Fehlermeldung. + +* Nun können die restlichen Daten, nämlich ESP-ID, Bezeichnung und Beschreibung eigegeben werden. Nur die ESP_ID **muss** eingegeben werden, die anderen beiden sind optional. Die Anschrift kann *nicht* eingegeben und *nicht* verändert werden. + +* Durch Klick auf **Speichern** werden die Daten in die Datenbank übernommen. Eventuell schon in der DB vorhandene Daten werden überschrieben. Die Anschrift wird *nicht* gespeichert, da diese sich immer aus den schon vohandenen Koordinaten berechnet. + +* Sollte die Sensornummer schon mal eingegeben worden sein, so werden alle eingegebenen Daten aus der Datenbank geholt und angezeigt. Sie können hier nun auch geändert werden (außer Anschrift). + + +Die zweite Seite ist die **Liste**: +![liste](PICS/Liste.png) + +Je mehr Daten vorliegen, desto länger wird die Liste. Über den Button **Aktualisieren** kann die Liste neu geladen werden. Über **Seite** kann die angezeigte Seite angewählt werde, über **Limit** wird die Anzahl der Einträge einer Seite festgelegt. +Am rechten Rand in der Spalte **Aktionen** sind zwei Symbole: einmal der **Stift** (✏️). Beim Klick darauf werde die Daten dieser Zeile wieder in die Eingabe-Maske geschrieben und können hier dann ggf. verändert werden. Das zweite Symbol ist der **Mülleimer** (🗑️), mit dem der komplette Eintrag (nach einer Sicherheitsrückfrage) gelöscht wird. +Die Liste kann nach folgenden Kriterien auf- oder absteigend sortiert werden: SensorNr, ESP-ID und Datum. Erkenntlich ist das an den kleine Pfeilen (↑↓) + +Wenn der angemeldete user ein **Admin** ist, so kann über den Tab **User** ein neuer User angelegt werden: +![user](PICS/User.png) + +Folgen Daten müssen eingegeben werden: +* der **Benutzername** ( == E-Mail) +* das **Passwort** für diesen Benutzer +* und die **Rolle**, also entweder normaler Benutzer (*User*) oder Administrator (*Admin*). + +Durch Klicken auf **Anlegen** wird der neue User in der Datenbank gespeichert. + + +#### History +| Version | Datum | Author |Bemerkung| +|---------|-------|-----|----------| +| 1.2.0 | 2025-11-21 | rxf | extra properties-collection entfernt | +| 1.1.0 | 2025-09-03 | rxf | Ändern,Löschen und Usereingabe | +|1.0.0 | 2025-08-19 | rxf | erste Fassung | + + \ No newline at end of file diff --git a/espid2sensor/hashpasswd b/espid2sensor/hashpasswd new file mode 100644 index 0000000..295d6bc --- /dev/null +++ b/espid2sensor/hashpasswd @@ -0,0 +1,3 @@ +import bcrypt from 'bcrypt'; +const hashedPassword = await bcrypt.hash('Tux4esp', 10); +console.log(hashedPassword) \ No newline at end of file diff --git a/espid2sensor/package-lock.json b/espid2sensor/package-lock.json new file mode 100644 index 0000000..ae8b5fa --- /dev/null +++ b/espid2sensor/package-lock.json @@ -0,0 +1,6549 @@ +{ + "name": "espid2sensor", + "version": "1.2.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "espid2sensor", + "version": "1.2.0", + "dependencies": { + "bcrypt": "^6.0.0", + "cors": "^2.8.5", + "dotenv": "^17.2.1", + "express": "^5.1.0", + "express-session": "^1.18.2", + "mongodb": "^6.19.0", + "pug": "^3.0.3" + }, + "devDependencies": { + "jest": "^30.1.3", + "nodemon": "^3.1.10", + "supertest": "^7.1.4" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.2", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/types": { + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@emnapi/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.1.2.tgz", + "integrity": "sha512-BGMAxj8VRmoD0MoA/jo9alMXSRoqW8KPeqOfEo1ncxnRLatTBCpRoOwlwlEMdudp68Q6WSGwYrrLtTGOh8fLzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/core": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.1.3.tgz", + "integrity": "sha512-LIQz7NEDDO1+eyOA2ZmkiAyYvZuo6s1UxD/e2IHldR6D7UYogVq3arTmli07MkENLq6/3JEQjp0mA8rrHHJ8KQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.1.2", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.1.3", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.0.5", + "jest-config": "30.1.3", + "jest-haste-map": "30.1.0", + "jest-message-util": "30.1.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-resolve-dependencies": "30.1.3", + "jest-runner": "30.1.3", + "jest-runtime": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "jest-watcher": "30.1.3", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/environment": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.1.2.tgz", + "integrity": "sha512-N8t1Ytw4/mr9uN28OnVf0SYE2dGhaIxOVYcwsf9IInBKjvofAjbFRvedvBBlyTYk2knbJTiEjEJ2PyyDIBnd9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-mock": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.1.2.tgz", + "integrity": "sha512-tyaIExOwQRCxPCGNC05lIjWJztDwk2gPDNSDGg1zitXJJ8dC3++G/CRjE5mb2wQsf89+lsgAgqxxNpDLiCViTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "30.1.2", + "jest-snapshot": "30.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.1.2.tgz", + "integrity": "sha512-HXy1qT/bfdjCv7iC336ExbqqYtZvljrV8odNdso7dWK9bSeHtLlvwWWC3YSybSPL03Gg5rug6WLCZAZFH72m0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.1.2.tgz", + "integrity": "sha512-Beljfv9AYkr9K+ETX9tvV61rJTY706BhBUtiaepQHeEGfe0DbpvUA5Z3fomwc5Xkhns6NWrcFDZn+72fLieUnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@sinonjs/fake-timers": "^13.0.0", + "@types/node": "*", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.1.2.tgz", + "integrity": "sha512-teNTPZ8yZe3ahbYnvnVRDeOjr+3pu2uiAtNtrEsiMjVPPj+cXd5E/fr8BL7v/T7F31vYdEHrI5cC/2OoO/vM9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.1.2", + "@jest/expect": "30.1.2", + "@jest/types": "30.0.5", + "jest-mock": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-regex-util": "30.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.1.3.tgz", + "integrity": "sha512-VWEQmJWfXMOrzdFEOyGjUEOuVXllgZsoPtEHZzfdNz18RmzJ5nlR6kp8hDdY8dDS1yGOXAY7DHT+AOHIPSBV0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@jridgewell/trace-mapping": "^0.3.25", + "@types/node": "*", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^5.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "jest-worker": "30.1.0", + "slash": "^3.0.0", + "string-length": "^4.0.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/snapshot-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.1.2.tgz", + "integrity": "sha512-vHoMTpimcPSR7OxS2S0V1Cpg8eKDRxucHjoWl5u4RQcnxqQrV3avETiFpl8etn4dqxEGarBeHbIBety/f8mLXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.1.3.tgz", + "integrity": "sha512-P9IV8T24D43cNRANPPokn7tZh0FAFnYS2HIfi5vK18CjRkTDR9Y3e1BoEcAJnl4ghZZF4Ecda4M/k41QkvurEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.1.2", + "@jest/types": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.1.3.tgz", + "integrity": "sha512-82J+hzC0qeQIiiZDThh+YUadvshdBswi5nuyXlEmXzrhw5ZQSRHeQ5LpVMD/xc8B3wPePvs6VMzHnntxL+4E3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.1.3", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.1.2.tgz", + "integrity": "sha512-UYYFGifSgfjujf1Cbd3iU/IQoSd6uwsj8XHj5DSDf5ERDcWMdJOPTkHWXj4U+Z/uMagyOQZ6Vne8C4nRIrCxqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/types": "30.0.5", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.0", + "chalk": "^4.1.2", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.0.5", + "micromatch": "^4.0.8", + "pirates": "^4.0.7", + "slash": "^3.0.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/types": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.0.5.tgz", + "integrity": "sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", + "@types/node": "*", + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.30", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", + "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.0.tgz", + "integrity": "sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.34.41", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.0.tgz", + "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", + "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.10.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", + "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/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, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/assert-never": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.4.0.tgz", + "integrity": "sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-jest": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.1.2.tgz", + "integrity": "sha512-IQCus1rt9kaSh7PQxLYRY5NmkNrNlU2TpabzwV7T2jljnpdHOcmnYYv8QmE04Li4S3a2Lj8/yXyET5pBarPr6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "30.1.2", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.0", + "babel-preset-jest": "30.0.1", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "slash": "^3.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz", + "integrity": "sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz", + "integrity": "sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "@types/babel__core": "^7.20.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-jest": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz", + "integrity": "sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "30.0.1", + "babel-preset-current-node-syntax": "^1.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.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==", + "dev": true, + "license": "MIT" + }, + "node_modules/bcrypt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-6.0.0.tgz", + "integrity": "sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" + }, + "engines": { + "node": ">= 18" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/body-parser/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==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.4.tgz", + "integrity": "sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001737", + "electron-to-chromium": "^1.5.211", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/bson": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.4.tgz", + "integrity": "sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.20.1" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001739", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001739.tgz", + "integrity": "sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "license": "MIT", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "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, + "license": "MIT", + "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/ci-info": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.0.tgz", + "integrity": "sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz", + "integrity": "sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cookiejar": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz", + "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "license": "MIT" + }, + "node_modules/dotenv": { + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.1.tgz", + "integrity": "sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.212", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.212.tgz", + "integrity": "sha512-gE7ErIzSW+d8jALWMcOIgf+IB6lpfsg6NwOhPVwKzDtN2qcBix47vlin4yzSregYDxTCXOUqAZjVY/Z3naS7ww==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.1.2.tgz", + "integrity": "sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "30.1.2", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-session": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.2.tgz", + "integrity": "sha512-SZjssGQC7TzTs9rpPDuUrR23GNZ9+2+IkA/+IJWmvQilTr5OSliEHGF+D9scbIpdC6yGtTI0/VhaHoVes2AN/A==", + "license": "MIT", + "dependencies": { + "cookie": "0.7.2", + "cookie-signature": "1.0.7", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-headers": "~1.1.0", + "parseurl": "~1.3.3", + "safe-buffer": "5.2.1", + "uid-safe": "~2.1.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/express/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/express/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/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==", + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/finalhandler/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==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz", + "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", + "dezalgo": "^1.0.4", + "once": "^1.4.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.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==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "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-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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==", + "license": "MIT", + "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/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "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, + "license": "ISC" + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-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, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.1.3.tgz", + "integrity": "sha512-Ry+p2+NLk6u8Agh5yVqELfUJvRfV51hhVBRIB5yZPY7mU0DGBmOuFG5GebZbMbm86cdQNK0fhJuDX8/1YorISQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.1.3", + "@jest/types": "30.0.5", + "import-local": "^3.2.0", + "jest-cli": "30.1.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.0.5.tgz", + "integrity": "sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.1.1", + "jest-util": "30.0.5", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-circus": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.1.3.tgz", + "integrity": "sha512-Yf3dnhRON2GJT4RYzM89t/EXIWNxKTpWTL9BfF3+geFetWP4XSvJjiU1vrWplOiUkmq8cHLiwuhz+XuUp9DscA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.1.2", + "@jest/expect": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "co": "^4.6.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.1.0", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-runtime": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", + "p-limit": "^3.1.0", + "pretty-format": "30.0.5", + "pure-rand": "^7.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-cli": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.1.3.tgz", + "integrity": "sha512-G8E2Ol3OKch1DEeIBl41NP7OiC6LBhfg25Btv+idcusmoUSpqUkbrneMqbW9lVpI/rCKb/uETidb7DNteheuAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "30.1.3", + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.1.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "yargs": "^17.7.2" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.1.3.tgz", + "integrity": "sha512-M/f7gqdQEPgZNA181Myz+GXCe8jXcJsGjCMXUzRj22FIXsZOyHNte84e0exntOvdPaeh9tA0w+B8qlP2fAezfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.1.3", + "@jest/types": "30.0.5", + "babel-jest": "30.1.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-circus": "30.1.3", + "jest-docblock": "30.0.1", + "jest-environment-node": "30.1.2", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-runner": "30.1.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "micromatch": "^4.0.8", + "parse-json": "^5.2.0", + "pretty-format": "30.0.5", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "esbuild-register": ">=3.4.0", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "esbuild-register": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.1.2.tgz", + "integrity": "sha512-4+prq+9J61mOVXCa4Qp8ZjavdxzrWQXrI80GNxP8f4tkI2syPuPrJgdRPZRrfUTRvIoUwcmNLbqEJy9W800+NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.0.1.tgz", + "integrity": "sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-each": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.1.0.tgz", + "integrity": "sha512-A+9FKzxPluqogNahpCv04UJvcZ9B3HamqpDNWNKDjtxVRYB8xbZLFuCr8JAJFpNp83CA0anGQFlpQna9Me+/tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.0.5", + "chalk": "^4.1.2", + "jest-util": "30.0.5", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.1.2.tgz", + "integrity": "sha512-w8qBiXtqGWJ9xpJIA98M0EIoq079GOQRQUyse5qg1plShUCQ0Ek1VTTcczqKrn3f24TFAgFtT+4q3aOXvjbsuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-mock": "30.0.5", + "jest-util": "30.0.5", + "jest-validate": "30.1.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.1.0.tgz", + "integrity": "sha512-JLeM84kNjpRkggcGpQLsV7B8W4LNUWz7oDNVnY1Vjj22b5/fAb3kk3htiD+4Na8bmJmjJR7rBtS2Rmq/NEcADg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.0.5", + "jest-worker": "30.1.0", + "micromatch": "^4.0.8", + "walker": "^1.0.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.3" + } + }, + "node_modules/jest-leak-detector": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.1.0.tgz", + "integrity": "sha512-AoFvJzwxK+4KohH60vRuHaqXfWmeBATFZpzpmzNmYTtmRMiyGPVhkXpBqxUQunw+dQB48bDf4NpUs6ivVbRv1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.1.2.tgz", + "integrity": "sha512-7ai16hy4rSbDjvPTuUhuV8nyPBd6EX34HkBsBcBX2lENCuAQ0qKCPb/+lt8OSWUa9WWmGYLy41PrEzkwRwoGZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.1.2", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.1.0.tgz", + "integrity": "sha512-HizKDGG98cYkWmaLUHChq4iN+oCENohQLb7Z5guBPumYs+/etonmNFlg1Ps6yN9LTPyZn+M+b/9BbnHx3WTMDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.0.5", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.0.5", + "slash": "^3.0.0", + "stack-utils": "^2.0.6" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-mock": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.0.5.tgz", + "integrity": "sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "jest-util": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.1.3.tgz", + "integrity": "sha512-DI4PtTqzw9GwELFS41sdMK32Ajp3XZQ8iygeDMWkxlRhm7uUTOFSZFVZABFuxr0jvspn8MAYy54NxZCsuCTSOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.0.5", + "jest-validate": "30.1.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.1.3.tgz", + "integrity": "sha512-DNfq3WGmuRyHRHfEet+Zm3QOmVFtIarUOQHHryKPc0YL9ROfgWZxl4+aZq/VAzok2SS3gZdniP+dO4zgo59hBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.1.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-runner": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.1.3.tgz", + "integrity": "sha512-dd1ORcxQraW44Uz029TtXj85W11yvLpDuIzNOlofrC8GN+SgDlgY4BvyxJiVeuabA1t6idjNbX59jLd2oplOGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "30.1.2", + "@jest/environment": "30.1.2", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.0.1", + "jest-environment-node": "30.1.2", + "jest-haste-map": "30.1.0", + "jest-leak-detector": "30.1.0", + "jest-message-util": "30.1.0", + "jest-resolve": "30.1.3", + "jest-runtime": "30.1.3", + "jest-util": "30.0.5", + "jest-watcher": "30.1.3", + "jest-worker": "30.1.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.1.3.tgz", + "integrity": "sha512-WS8xgjuNSphdIGnleQcJ3AKE4tBKOVP+tKhCD0u+Tb2sBmsU8DxfbBpZX7//+XOz81zVs4eFpJQwBNji2Y07DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.1.2", + "@jest/fake-timers": "30.1.2", + "@jest/globals": "30.1.2", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.1.3", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.1.0", + "jest-message-util": "30.1.0", + "jest-mock": "30.0.5", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.1.3", + "jest-snapshot": "30.1.2", + "jest-util": "30.0.5", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "30.1.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.1.2.tgz", + "integrity": "sha512-4q4+6+1c8B6Cy5pGgFvjDy/Pa6VYRiGu0yQafKkJ9u6wQx4G5PqI2QR6nxTl43yy7IWsINwz6oT4o6tD12a8Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.1.2", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.1.2", + "@jest/transform": "30.1.2", + "@jest/types": "30.0.5", + "babel-preset-current-node-syntax": "^1.1.0", + "chalk": "^4.1.2", + "expect": "30.1.2", + "graceful-fs": "^4.2.11", + "jest-diff": "30.1.2", + "jest-matcher-utils": "30.1.2", + "jest-message-util": "30.1.0", + "jest-util": "30.0.5", + "pretty-format": "30.0.5", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.0.5.tgz", + "integrity": "sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.0.5", + "@types/node": "*", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/jest-validate": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.1.0.tgz", + "integrity": "sha512-7P3ZlCFW/vhfQ8pE7zW6Oi4EzvuB4sgR72Q1INfW9m0FGo0GADYlPwIkf4CyPq7wq85g+kPMtPOHNAdWHeBOaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "@jest/types": "30.0.5", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", + "leven": "^3.1.0", + "pretty-format": "30.0.5" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "30.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.1.3.tgz", + "integrity": "sha512-6jQUZCP1BTL2gvG9E4YF06Ytq4yMb4If6YoQGRR6PpjtqOXSP3sKe2kqwB6SQ+H9DezOfZaSLnmka1NtGm3fCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "30.1.3", + "@jest/types": "30.0.5", + "@types/node": "*", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "emittery": "^0.13.1", + "jest-util": "30.0.5", + "string-length": "^4.0.2" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-worker": { + "version": "30.1.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.1.0.tgz", + "integrity": "sha512-uvWcSjlwAAgIu133Tt77A05H7RIk3Ho8tZL50bQM2AkvLdluw9NG48lRCl3Dt+MOH719n/0nnb5YxUwcuJiKRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.0.5", + "merge-stream": "^2.0.0", + "supports-color": "^8.1.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "license": "MIT", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mongodb": { + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.19.0.tgz", + "integrity": "sha512-H3GtYujOJdeKIMLKBT9PwlDhGrQfplABNF1G904w6r5ZXKWyv77aB0X9B+rhmaAwjtllHzaEkvi9mkGVZxs2Bw==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.9", + "bson": "^6.10.4", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.3.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", + "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", + "license": "Apache-2.0", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^14.1.0 || ^13.0.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/napi-postinstall": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.3.tgz", + "integrity": "sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "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/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/nodemon/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/nodemon/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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/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, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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==", + "dev": true, + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "30.0.5", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.0.5.tgz", + "integrity": "sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.3" + } + }, + "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==", + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/pug": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz", + "integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==", + "license": "MIT", + "dependencies": { + "pug-code-gen": "^3.0.3", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz", + "integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.1.0", + "pug-runtime": "^3.0.1", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", + "license": "MIT" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "license": "MIT", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "license": "MIT", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", + "license": "MIT" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "license": "MIT", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/random-bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", + "integrity": "sha512-iv7LhNVO047HzYR3InF6pUcUsPQiHTM1Qal51DcGSuZFBil1aBBWG5eHPNek7bvILMaYJ/8RU1e8w1AMdHmLQQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/router/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/router/node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/router/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==", + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "license": "MIT", + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/send/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/send/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/send/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/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==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superagent": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.2.3.tgz", + "integrity": "sha512-y/hkYGeXAj7wUMjxRbB21g/l6aAEituGXM9Rwl4o20+SX3e8YOSV6BxFXl+dL3Uk0mjSL3kCbNkwURm8/gEDig==", + "dev": true, + "license": "MIT", + "dependencies": { + "component-emitter": "^1.3.1", + "cookiejar": "^2.1.4", + "debug": "^4.3.7", + "fast-safe-stringify": "^2.1.1", + "form-data": "^4.0.4", + "formidable": "^3.5.4", + "methods": "^1.1.2", + "mime": "2.6.0", + "qs": "^6.11.2" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/superagent/node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/superagent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/supertest": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.4.tgz", + "integrity": "sha512-tjLPs7dVyqgItVFirHYqe2T+MfWc2VOBQ8QFKKbWTA3PU7liZR8zoSpAi/C1k1ilm9RsXIKYf197oap9wXGVYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "methods": "^1.1.2", + "superagent": "^10.2.3" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", + "license": "MIT" + }, + "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, + "license": "ISC", + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "license": "MIT", + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/uid-safe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", + "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", + "license": "MIT", + "dependencies": { + "random-bytes": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?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==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/espid2sensor/package.json b/espid2sensor/package.json new file mode 100644 index 0000000..06327f0 --- /dev/null +++ b/espid2sensor/package.json @@ -0,0 +1,27 @@ +{ + "name": "espid2sensor", + "version": "1.3.1", + "date": "2025-11-19 14:00 UTC", + "type": "module", + "description": "Kleine Webapp ESP-ID <-> Sensornummer, speichern in MongoDB", + "main": "server.js", + "scripts": { + "start": "node server.js >>/var/log/esp2sensor.log 2>&1", + "dev": "nodemon --watch server.js --watch views --watch public server.js", + "test": "jest" + }, + "dependencies": { + "bcrypt": "^6.0.0", + "cors": "^2.8.5", + "dotenv": "^17.2.1", + "express": "^5.1.0", + "express-session": "^1.18.2", + "mongodb": "^6.19.0", + "pug": "^3.0.3" + }, + "devDependencies": { + "jest": "^30.1.3", + "nodemon": "^3.1.10", + "supertest": "^7.1.4" + } +} diff --git a/espid2sensor/public/global.js b/espid2sensor/public/global.js new file mode 100644 index 0000000..5f8d91a --- /dev/null +++ b/espid2sensor/public/global.js @@ -0,0 +1,418 @@ + // Tab-Wechsel Funktion aus index.pug +function showTab(tab) { + document.getElementById('tabInputContent').style.display = tab === 'input' ? '' : 'none'; + document.getElementById('tabListContent').style.display = tab === 'list' ? '' : 'none'; + const tabUserContent = document.getElementById('tabUserContent'); + if (tabUserContent) tabUserContent.style.display = tab === 'user' ? '' : 'none'; + document.getElementById('tabInput').classList.toggle('active', tab === 'input'); + document.getElementById('tabList').classList.toggle('active', tab === 'list'); + const tabUser = document.getElementById('tabUser'); + if (tabUser) tabUser.classList.toggle('active', tab === 'user'); +} + +// User-Tab Handling (nur für Admins) +document.addEventListener('DOMContentLoaded', () => { + const userSaveBtn = document.getElementById('userSaveBtn'); + if (userSaveBtn) { + userSaveBtn.addEventListener('click', async () => { + const username = document.getElementById('username').value.trim(); + const password = document.getElementById('password').value.trim(); + const role = document.getElementById('role').value; + const userResult = document.getElementById('userResult'); + if (!username || !password) { + userResult.textContent = 'Benutzername und Passwort erforderlich.'; + return; + } + try { + const res = await fetch('/api/createUser', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ username, password, role }) + }); + const data = await res.json(); + if (data.success) { + userResult.textContent = 'User erfolgreich angelegt!'; + } else { + userResult.textContent = data.error || 'Fehler beim Anlegen.'; + } + } catch (err) { + userResult.textContent = 'Serverfehler.'; + } + }); + } +}); + +function updateSortArrows() { + const arrows = { + sensorNr: document.getElementById('sortArrowSensorNr'), + espId: document.getElementById('sortArrowEspId'), + date: document.getElementById('sortArrowDate') + }; + Object.entries(arrows).forEach(([key, el]) => { + if (!el) return; + // Aktiver Pfeil fett, andere ausgegraut + el.textContent = currentSort.key === key + ? (currentSort.asc ? '↑' : '↓') + : '↑'; + el.style.fontWeight = currentSort.key === key ? 'bold' : 'normal'; + el.style.opacity = currentSort.key === key ? '1' : '0.3'; + }); +} + + +document.addEventListener('DOMContentLoaded', () => { + const saveBtn = document.getElementById('saveBtn'); + const refreshBtn = document.getElementById('refreshBtn'); + const espIdInput = document.getElementById('espId'); + const sensorNumberInput = document.getElementById('sensorNumber'); + const nameInput = document.getElementById('name'); + const descriptionInput = document.getElementById('description'); + const addressInput = document.getElementById('address'); + const pageInput = document.getElementById('page'); + const limitInput = document.getElementById('limit'); + const resultDiv = document.getElementById('result'); + const tableBody = document.querySelector('#entriesTable tbody'); + const tabInput = document.getElementById('tabInput'); + const tabList = document.getElementById('tabList'); + + + // Modal für Fehleranzeige +function showModal(message, showCancelButton, callback) { + // Remove previous modals + document.querySelectorAll('.custom-modal-popup').forEach(m => m.remove()); + + let modal = document.createElement('div'); + modal.className = 'custom-modal-popup'; + + let box = document.createElement('div'); + box.className = 'custom-modal-box'; + + let msg = document.createElement('div'); + msg.className = 'custom-modal-msg'; + msg.textContent = message; + box.appendChild(msg); + + let btndiv = document.createElement('div') + btndiv.className = 'twobuttons' + + // Cancel Button (only if showCancelButton is true) + if (showCancelButton) { + let btnCancel = document.createElement('button'); + btnCancel.className = 'custom-modal-btn'; + btnCancel.textContent = 'Abbruch'; + btnCancel.onclick = () => { + if (modal.parentNode) { + modal.parentNode.removeChild(modal); + } + if (callback) callback(false); // Pass false for Cancel + }; + btndiv.appendChild(btnCancel); + } + + // OK Button + let btnOk = document.createElement('button'); + btnOk.className = 'custom-modal-btn'; + btnOk.textContent = 'OK'; + btnOk.onclick = () => { + if (modal.parentNode) { + modal.parentNode.removeChild(modal); + } + if (callback) callback(true); // Pass true for OK + }; + + btndiv.appendChild(btnOk); + box.appendChild(btndiv) + + + modal.appendChild(box); + document.body.appendChild(modal); + + // Optional: Close modal when clicking outside + modal.onclick = (e) => { + if (e.target === modal) { + if (modal.parentNode) { + modal.parentNode.removeChild(modal); + } + if (callback) callback(false); // Treat as cancel + } + }; +} + // Sensornummer nur Zahlen erlauben + sensorNumberInput.addEventListener('input', () => { + sensorNumberInput.value = sensorNumberInput.value.replace(/\D/g, ''); + }); + + // Adresse vom Server holen, wenn Enter oder Feld verlassen + async function fetchAddressIfValid() { + const value = sensorNumberInput.value.trim(); + if (value.length > 0) { + try { + const res = await fetch(`/api/address/${value}`); + const data = await res.json(); + console.dir(data) + if (!data.error && data.address) { + addressInput.value = data.address; + // Felder automatisch füllen, wenn props vorhanden + if (!data.props.error) { + if (Object.hasOwn(data.props, "chip")) { + let pp = data.props.chip + espIdInput.value = pp.id || '' + nameInput.value = pp.name || '' + descriptionInput.value = pp.description || '' + // Weitere Felder nach Bedarf + } + } + } else { + addressInput.value = ''; + sensorNumberInput.disabled = true; + showModal('Sensor unbekannt', false, () => { + sensorNumberInput.disabled = false; + sensorNumberInput.focus(); + }); + } + } catch (err) { + console.error('Fehler beim Abrufen der Adresse:', err); + addressInput.value = ''; + sensorNumberInput.disabled = true; + showModal('Sensor unbekannt', false, () => { + sensorNumberInput.disabled = false; + sensorNumberInput.focus(); + }); + } + } + } + + // Enter-Taste + sensorNumberInput.addEventListener('keydown', (e) => { + if (e.key === 'Enter') { + e.preventDefault(); + fetchAddressIfValid(); + } + }); + + // Feld verlassen + sensorNumberInput.addEventListener('blur', fetchAddressIfValid); + + + async function saveEntry() { + const espId = espIdInput.value.trim(); + const sensorNumber = sensorNumberInput.value.trim(); + const name = nameInput.value.trim(); + const description = descriptionInput.value.trim(); + const address = addressInput.value.trim(); + + if (!espId || !sensorNumber) { + resultDiv.textContent = 'ESP-ID und Sensornummer sind Pflichtfelder.'; + return; + } + + try { + const url = '/api/save'; + const method = 'POST'; + + const res = await fetch(url, { + method, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ espId, sensorNumber, name, description, address }) + }); + + const data = await res.json(); + if (data.error) { + resultDiv.textContent = data.error; + } else { + resultDiv.textContent = 'OK!'; + setTimeout(() => { + resultDiv.textContent = '' + saveBtn.textContent = 'Speichern'; + }, 5000) + clearForm(false); + await loadEntries(); + } + } catch (err) { + console.error(err); + resultDiv.textContent = 'Fehler beim Speichern.'; + } + } + + + function clearForm(mitButton) { + espIdInput.value = ''; + sensorNumberInput.value = ''; + nameInput.value = ''; + descriptionInput.value = ''; + addressInput.value = ''; + if (mitButton) { + saveBtn.textContent = 'Speichern'; + } + } + + const clearUserForm = () => { + document.getElementById('username').value = '' + document.getElementById('password').value = '' + document.getElementById('role').value = 'user' + } + + // Globale Sortier-Variable + window.currentSort = window.currentSort || { key: null, asc: true }; + + async function loadEntries() { + const page = parseInt(pageInput.value) || 1; + const limit = parseInt(limitInput.value) || 50; + + try { + const res = await fetch(`/api/list?page=${page}&limit=${limit}`); + const erg = await res.json(); + const items = erg.items + const gz = document.getElementById('gzahl'); + gz.innerHTML = `Gesamtzahl: ${erg.anzahl}` + + let currentSort = window.currentSort || { key: null, asc: true }; + function renderTable(sortedItems) { + tableBody.innerHTML = ''; + sortedItems.forEach(item => { + const date = new Date(item.chip.lastUpdatedAt).toISOString().split('T')[0]; + const tr = document.createElement('tr'); + tr.innerHTML = ` + ${item._id} + ${item.chip.id} + ${item.chip.name || ''} + ${item.chip.description || ''} + ${date} + +

+ + +
+ + `; + tableBody.appendChild(tr); + }); + } + + function sortItems(items, key, asc) { + return items.slice().sort((a, b) => { + let valA, valB; + if (key === 'sensorNr') { + valA = a._id; + valB = b._id; + } else if (key === 'espId') { + valA = a.chip.id; + valB = b.chip.id; + } else if (key === 'date') { + valA = new Date(a.chip.lastUpdatedAt); + valB = new Date(b.chip.lastUpdatedAt); + } + if (valA < valB) return asc ? -1 : 1; + if (valA > valB) return asc ? 1 : -1; + return 0; + }); + } + + // Initial render: Standard nach SensorNr, ESP-ID oder Datum aufsteigend + // Ändere hier die Spalte für die Standardsortierung: + const defaultSortKey = window.currentSort && window.currentSort.key ? window.currentSort.key : 'sensorNr'; + const defaultSortAsc = window.currentSort && typeof window.currentSort.asc === 'boolean' ? window.currentSort.asc : true; + currentSort.key = defaultSortKey; + currentSort.asc = defaultSortAsc; + window.currentSort = currentSort; + renderTable(sortItems(items, defaultSortKey, defaultSortAsc)); + updateSortArrows(); + + // Add sort listeners + document.getElementById('thSensorNr').onclick = () => { + currentSort.asc = currentSort.key === 'sensorNr' ? !currentSort.asc : true; + currentSort.key = 'sensorNr'; + window.currentSort = currentSort; + renderTable(sortItems(items, 'sensorNr', currentSort.asc)); + updateSortArrows(); + }; + document.getElementById('thEspId').onclick = () => { + currentSort.asc = currentSort.key === 'espId' ? !currentSort.asc : true; + currentSort.key = 'espId'; + window.currentSort = currentSort; + renderTable(sortItems(items, 'espId', currentSort.asc)); + updateSortArrows(); + }; + document.getElementById('thDate').onclick = () => { + currentSort.asc = currentSort.key === 'date' ? !currentSort.asc : true; + currentSort.key = 'date'; + window.currentSort = currentSort; + renderTable(sortItems(items, 'date', currentSort.asc)); + updateSortArrows(); + }; + + document.querySelectorAll('.deleteBtn').forEach(btn => { + btn.addEventListener('click', async () => { + const id = btn.getAttribute('data-id'); + await deleteEntry(id); + }); + }); + + document.querySelectorAll('.editBtn').forEach(btn => { + btn.addEventListener('click', async () => { + const id = btn.getAttribute('data-id'); + const res = await fetch(`/api/list?page=1&limit=1&id=${id}`); + const items = await res.json(); + const item = items.find(e => e._id === parseInt(id)); + if (item) { + espIdInput.value = item.chip.id; + sensorNumberInput.value = item._id; + nameInput.value = item.chip.name || ''; + descriptionInput.value = item.chip.description || ''; + addressInput.value = ''; + saveBtn.textContent = 'Aktualisieren'; + showTab('input') + try { + const rt = await fetch(`api/holAdresse/${item._id}`) + const data = await rt.json(); + console.dir(data) + if (!data.error && data.address) { + addressInput.value = data.address; + } + } catch (e) { + console.log("Fehler beim Adresse holen", e) + } + } + }); + }); + } catch (err) { + console.error(err); + resultDiv.textContent = 'Fehler beim Laden.'; + } + } + + async function deleteEntry(id) { + showModal('Wirklich löschen?', true, async (confirmed) => { + if (confirmed) { + try { + const res = await fetch(`/api/delete/${id}`, { method: 'DELETE' }); + const data = await res.json(); + if (data.success) { + await loadEntries(); + resultDiv.textContent = 'Eintrag gelöscht.'; + setTimeout(() => resultDiv.textContent = '', 3000); + } else { + resultDiv.textContent = 'Fehler beim Löschen.'; + } + } catch (err) { + console.error(err); + resultDiv.textContent = 'Fehler beim Löschen.'; + } + } + }); +} + + saveBtn.addEventListener('click', saveEntry); + refreshBtn.addEventListener('click', loadEntries); + cancelBtn.addEventListener('click', () => clearForm(true)); + userCancelBtn.addEventListener('click', () => clearUserForm(true)); + + tabInput.addEventListener('click', () => showTab('input')) + tabList.addEventListener('click', () => showTab('list')) + const tabUser = document.getElementById('tabUser'); + if (tabUser) tabUser.addEventListener('click', () => showTab('user')) + + loadEntries(); +}); + +window.showTab = showTab; \ No newline at end of file diff --git a/espid2sensor/public/login.js b/espid2sensor/public/login.js new file mode 100644 index 0000000..b97a067 --- /dev/null +++ b/espid2sensor/public/login.js @@ -0,0 +1,34 @@ +// public/login.js +document.addEventListener('DOMContentLoaded', () => { + const emailInput = document.getElementById('email'); + const emailStatus = document.getElementById('emailStatus'); + let debounceTimeout; + + emailInput.addEventListener('input', () => { + clearTimeout(debounceTimeout); + const email = emailInput.value.trim(); + + if (!email) { + emailStatus.textContent = ''; + return; + } + + debounceTimeout = setTimeout(async () => { + try { + const res = await fetch(`/api/check-email?email=${encodeURIComponent(email)}`); + const data = await res.json(); + if (data.exists) { + emailStatus.textContent = '✅ Benutzer existiert'; + emailStatus.style.color = 'green'; + } else { + emailStatus.textContent = '❌ Benutzer nicht gefunden'; + emailStatus.style.color = 'red'; + } + } catch (err) { + console.error(err); + emailStatus.textContent = 'Fehler bei der Prüfung'; + emailStatus.style.color = 'orange'; + } + }, 300); + }); +}); \ No newline at end of file diff --git a/espid2sensor/public/styles.css b/espid2sensor/public/styles.css new file mode 100644 index 0000000..afb885f --- /dev/null +++ b/espid2sensor/public/styles.css @@ -0,0 +1,246 @@ +/* Tab Navigation */ +.tabs { + display: flex; + gap: 0.5rem; + margin-bottom: 1.5rem; +} +.tab-btn { + background: #eee; + border: none; + padding: 0.7rem 2rem; + font-size: 1.1rem; + border-radius: 6px 6px 0 0; + cursor: pointer; + color: #333; + font-weight: 500; + transition: background 0.2s, color 0.2s; +} +.tab-btn.active { + background: #007bff; + color: #fff; + font-weight: bold; + box-shadow: 0 2px 8px rgba(0,0,0,0.10); +} + +#tabUser { + margin-left: 50px; +} + +/* Modal Fehlerfenster */ +.custom-modal-popup { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: rgba(0,0,0,0.4); + display: flex; + align-items: center; + justify-content: center; + z-index: 9999; +} + +.custom-modal-box { + background: #fff; + padding: 3rem; + border-radius: 12px; + box-shadow: 0 4px 16px rgba(0,0,0,0.25); + text-align: center; + min-width: 350px; + max-width: 90vw; +} + +.custom-modal-msg { + margin-bottom: 2rem; + font-size: 1.5rem; + color: red; +} + +.custom-modal-btn { + padding: 0.8rem 2.5rem; + font-size: 1.1rem; + background: #007bff; + color: #fff; + border: none; + border-radius: 6px; + cursor: pointer; +} +body { + font-family: system-ui, sans-serif; + padding: 20px; + max-width: 800px; + margin: auto; +} + +input, button { + font-size: 1rem; + padding: 8px; + margin: 2px; +} + +.card { + border: 1px solid #ddd; + padding: 12px; + border-radius: 8px; + margin-bottom: 12px; + background-color: antiquewhite; +} + +#result { + margin-top: 10px; +} + +.controls { + margin-bottom: 8px; +} + +.controls input { + width: 50px; +} + +table { + width: 100%; + border-collapse: collapse; + margin-top: 30px; +} + +th, td { + text-align: left; + padding: 4px; + border-bottom: 1px solid #888; +} + +/* Spaltenbreiten über colgroup steuern */ +col.col-sensornumber { width: 7em; } +col.col-espid {width: 9em} +col.col-bezeichnung { width: 8em; } +col.col-beschreibung{ width: 15em; } +col.col-date { width: 10em; } +col.col-aktionen { width: 2em; } + + +.controls input#page, +.controls input#limit { + width: 50px; + margin-left: 10px; +} + +.error { + color: red; + font-weight: bold; + margin: 10px 0; +} + +form { + max-width: 400px; + margin: 0 auto; + padding: 1rem; + border-radius: 8px; + background: #f9f9f9; + box-shadow: 0 2px 6px rgba(0,0,0,0.1); + display: flex; + flex-direction: column; + gap: 0.5rem; + background-color:burlywood +} + +label { + font-weight: bold; +} + +input { + padding: 0.4rem; + border: 1px solid #ccc; + border-radius: 4px; +} + +button { + padding: 0.6rem; + border: none; + border-radius: 4px; + background: #007bff; + color: white; + font-size: 1rem; + cursor: pointer; +} + +button:hover { + background: #0056b3; +} + +.editBtn, .deleteBtn { + background: none; + border: none; + font-size: 18px; + cursor: pointer; + padding: 8px; + border-radius: 4px; + transition: all 0.2s ease; + margin: 0 2px; +} + +.editBtn:hover { + background: rgba(0, 123, 255, 0.1); + transform: scale(1.1); +} + +.deleteBtn:hover { + background: rgba(220, 53, 69, 0.1); + transform: scale(1.1); +} + +.twobuttons { + display: flex; + justify-content: space-between; + width: 100%; + gap: 5px; +} +p.error { + color: red; + font-weight: bold; + text-align: center; +} + +.card form { + display: flex; + flex-direction: column; + align-items: flex-start; /* Links bündig */ + gap: 0.5rem; +} + +.card form label { + font-weight: bold; +} + +.card form input, +.card form textarea { + width: 100%; + max-width: 400px; /* gleiche Breite */ + padding: 0.4rem; + border: 1px solid #ccc; + border-radius: 4px; +} + +.card form textarea { + min-height: 60px; + resize: vertical; +} + +#gzahl { + margin-left: 30px; +} + +#role { + font-size: 12pt; + padding: 5px 0 5px 3px; + margin-bottom: 20px; +} + +#version { + width: 100%; + display: flex; + justify-content: flex-end; + font-size: 70%; + color: #007bff; + margin-top: 15px; +} \ No newline at end of file diff --git a/espid2sensor/routes/address.js b/espid2sensor/routes/address.js new file mode 100644 index 0000000..c593c6b --- /dev/null +++ b/espid2sensor/routes/address.js @@ -0,0 +1,64 @@ +import { MongoClient } from 'mongodb'; +import { get_pflux } from '../db/mongo.js'; +import { getCollections, update_pflux, clientClose } from '../db/mongo.js'; + +export function registerAddressRoute(app, requireLogin) { + const APIHOST = process.env.APIHOST || 'https://noise.fuerst-stuttgart.de/srv/'; + + + const holAdresse = async (id) => { + // Adresse wie bisher holen (über die Sensornummer via nominative) + let addressString = ''; + let addrParts = {}; + try { + const url = APIHOST + 'getaddress/' + `?sensorid=${id}`; + console.log(url) + const r = await fetch(url, { headers: { 'Accept': 'application/json' } }); + if (r.ok) { + const data = await r.json(); + const addrObj = data?.erg?.address || data?.address || {}; + const street = addrObj.street ?? ''; + const plz = addrObj.plz ?? ''; + const city = addrObj.city ?? ''; + const rightPart = [plz, city].filter(Boolean).join(' ').trim(); + addressString = [street, rightPart].filter(Boolean).join(', '); + addrParts = { street, plz, city }; + } + } catch (err) { + console.error('Address lookup failed:', err); + } + return { + address: addressString, + parts: addrParts, + } + } + + app.get('/api/holAdresse/:sensorNumber', requireLogin, async (req, res) => { + const sensorNumber = parseInt(req.params.sensorNumber, 10); + if (isNaN(sensorNumber)) { + return res.status(400).json({ error: 'Ungültige Sensornummer' }); + } + const addr = await holAdresse(sensorNumber) + res.json(addr) + }) + + app.get('/api/address/:sensorNumber', requireLogin, async (req, res) => { + const sensorNumber = parseInt(req.params.sensorNumber, 10); + if (isNaN(sensorNumber)) { + return res.status(400).json({ error: 'Ungültige Sensornummer' }); + } + + const { propCollection, prop_fluxCollection } = getCollections(); + + // Suche nach Sensornummer als _id + const propEntry = await propCollection.findOne({ _id: sensorNumber }); + if (!propEntry) { + await clientClose() + return res.status(404).json({ error: 'Sensor nicht gefunden' }); + } + const adr = await holAdresse(encodeURIComponent(propEntry._id)) + adr.props = propEntry + + return res.json(adr) + }) +} diff --git a/espid2sensor/routes/api.js b/espid2sensor/routes/api.js new file mode 100644 index 0000000..1e28a46 --- /dev/null +++ b/espid2sensor/routes/api.js @@ -0,0 +1,95 @@ +import { MongoAPIError, ObjectId } from 'mongodb'; +import bcrypt from 'bcrypt'; +import { getCollections, update_pflux } from '../db/mongo.js'; + +export function registerApiRoutes(app, requireLogin) { + const { usersCollection, propCollection } = getCollections(); + + app.get('/api/check-email', async (req, res) => { + const email = (req.query.email || '').toLowerCase().trim(); + if (!email) return res.json({ exists: false }); + try { + const existingUser = await usersCollection.findOne({ email:`${email}` }); + res.json({ exists: !!existingUser }); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Fehler bei der E-Mail-Prüfung' }); + } + }); + + app.post('/api/save', requireLogin, async (req, res) => { + let { espId, sensorNumber, name, description} = req.body; + if (!espId || !sensorNumber) { + return res.json({ error: 'ESP-ID und Sensornummer sind Pflichtfelder' }); + } + sensorNumber = parseInt(sensorNumber, 10); + try { + const doc = { + id: espId, + name: name || '', + description: description || '', + lastUpdatedAt: new Date() + }; + await update_pflux(sensorNumber, doc) + res.json({ success: true }); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Fehler beim Speichern' }); + } + }); + + + app.get('/api/list', requireLogin, async (req, res) => { + const { id } = req.query; + if (id) { + try { + const item = await propCollection.findOne({ _id: parseInt(id) }); + if (item) return res.json([item]); + return res.json([]); + } catch (err) { + console.error(err); + return res.status(500).json({ error: 'Fehler beim Laden' }); + } + } + + let gesamtZahl = 0 + try { + gesamtZahl = await propCollection.countDocuments({chip: {$exists: true}}) + } catch (err) { + console.error(err); + } + const page = parseInt(req.query.page) || 1; + const limit = parseInt(req.query.limit) || 50; + const skip = (page - 1) * limit; + try { + const items = await propCollection.find({chip: {$exists: true}}) + .sort({ "chip.lastUpdatedAt": -1 }) + .skip(skip) + .limit(limit) + .toArray(); + const data = {items: items, anzahl: gesamtZahl} + res.json(data); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Fehler beim Laden' }); + } + }); + + app.delete('/api/delete/:id', requireLogin, async (req, res) => { + await propCollection.deleteOne({ _id: parseInt(req.params.id) }); + res.json({ success: true }); + }); + + app.post('/api/createUser', requireLogin, async (req, res) => { + if (!req.session.isAdmin) return res.status(403).json({ error: 'Nur Admins erlaubt' }); + const { username, password, role } = req.body; + if (!username || !password) return res.status(400).json({ error: 'Benutzername und Passwort erforderlich' }); + try { + const hash = await bcrypt.hash(password, 10); + await usersCollection.insertOne({ email: username.toLowerCase(), passwordHash: hash, role: role || 'user' }); + res.json({ success: true }); + } catch (err) { + res.status(500).json({ error: 'Fehler beim Anlegen' }); + } + }); +} diff --git a/espid2sensor/routes/auth.js b/espid2sensor/routes/auth.js new file mode 100644 index 0000000..b7b5658 --- /dev/null +++ b/espid2sensor/routes/auth.js @@ -0,0 +1,34 @@ +import bcrypt from 'bcrypt'; +import { getCollections } from '../db/mongo.js'; +import pkg from '../package.json' with { type: "json" } + +export function registerAuthRoutes(app) { + const { usersCollection } = getCollections(); + const errText = 'Falsche Email oder falsches Passwort.' + + + app.get('/login', (req, res) => { + const version = pkg.version + const vdate = pkg.date + res.render('login', { + error: null, + version: version, + vdate: vdate + }) + }); + + app.post('/login', async (req, res) => { + const { email, password } = req.body; + const user = await usersCollection.findOne({ email: email.toLowerCase() }); + if (!user) return res.render('login', { error: errText }); + const match = await bcrypt.compare(password, user.passwordHash); + if (!match) return res.render('login', { error: errText }); + req.session.userId = user._id; + req.session.isAdmin = user.role === 'admin'; + res.redirect('/'); + }); + + app.get('/logout', (req, res) => { + req.session.destroy(() => res.redirect('/login')); + }); +} diff --git a/espid2sensor/server.js b/espid2sensor/server.js new file mode 100644 index 0000000..1ef5b01 --- /dev/null +++ b/espid2sensor/server.js @@ -0,0 +1,66 @@ +import express from 'express'; +import session from 'express-session'; +import path from 'path'; +import { fileURLToPath } from 'url'; +import dotenv from 'dotenv'; +import pkg from './package.json' with { type: "json" } +dotenv.config(); + +import { initMongo } from './db/mongo.js'; +import { registerApiRoutes } from './routes/api.js'; +import { registerAuthRoutes } from './routes/auth.js'; +import { registerAddressRoute } from './routes/address.js'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const app = express(); +const PORT = process.env.PORT || 3000; +const SESSION_SECRET = process.env.SESSION_SECRET || 'supersecret'; + +app.use(express.urlencoded({ extended: true })); +app.use(express.json()); +app.use(express.static(path.join(__dirname, 'public'))); + +app.use(session({ + secret: SESSION_SECRET, + resave: false, + saveUninitialized: false, + cookie: { maxAge: 24 * 60 * 60 * 1000 } +})); + +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'pug'); + +// DB verbinden +await initMongo(); + +// Login-Middleware +function requireLogin(req, res, next) { + // Entwicklungs-Bypass: Automatischer Login als Admin + if (process.env.DEV_AUTO_LOGIN === 'true') { + req.session.userId = 'dev-user'; + req.session.isAdmin = true; + return next(); + } + + if (req.session.userId) { + return next(); + } + res.redirect('/login'); +} + +// Routen registrieren +registerAuthRoutes(app); +registerApiRoutes(app, requireLogin); +registerAddressRoute(app, requireLogin); + +// Hauptseite +app.get('/', requireLogin, (req, res) => { + const version = pkg.version + const vdate = pkg.date + const isAdmin = req.session && req.session.isAdmin; + res.render('index', { isAdmin, version, vdate }); +}); + +app.listen(PORT, () => console.log(`Server läuft auf http://localhost:${PORT}`)); diff --git a/espid2sensor/tests/server.test.js b/espid2sensor/tests/server.test.js new file mode 100644 index 0000000..e0ce57d --- /dev/null +++ b/espid2sensor/tests/server.test.js @@ -0,0 +1,166 @@ +const express = require('express'); +const bodyParser = require('body-parser'); +const request = require('supertest'); + +// ...existing code... +// tests/server.test.js +describe('Server.js API', () => { + let app; + let entries = []; + let users = []; + + beforeEach(() => { + app = express(); + app.use(bodyParser.json()); + app.use(bodyParser.urlencoded({ extended: true })); + + // Mock session middleware + app.use((req, res, next) => { req.session = {}; next(); }); + + // /api/check-email + app.get('/api/check-email', (req, res) => { + const email = (req.query.email || '').toLowerCase().trim(); + if (!email) return res.json({ exists: false }); + const existingUser = users.find(u => u.email === email); + res.json({ exists: !!existingUser }); + }); + + // /api/save + app.post('/api/save', (req, res) => { + let { espId, sensorNumber, name, description, address } = req.body; + if (!espId || !sensorNumber) { + return res.json({ error: 'ESP-ID und Sensornummer sind Pflichtfelder' }); + } + sensorNumber = parseInt(sensorNumber, 10); + const doc = { espId, sensorNumber, name, description, address, lastUpdatedAt: new Date(), _id: String(entries.length + 1) }; + entries.push(doc); + res.json({ success: true }); + }); + + // /api/update/:id + app.put('/api/update/:id', (req, res) => { + const { id } = req.params; + let { espId, sensorNumber, name, description, address } = req.body; + if (!espId || !sensorNumber) { + return res.json({ error: 'ESP-ID und Sensornummer sind Pflichtfelder' }); + } + sensorNumber = parseInt(sensorNumber, 10); + const idx = entries.findIndex(e => e._id === id); + if (idx === -1) return res.status(404).json({ error: 'Not found' }); + entries[idx] = { ...entries[idx], espId, sensorNumber, name, description, address }; + res.json({ success: true }); + }); + + // /api/list + app.get('/api/list', (req, res) => { + const { id } = req.query; + if (id) { + const item = entries.find(e => e._id === id); + return res.json(item ? [item] : []); + } + const page = parseInt(req.query.page) || 1; + const limit = parseInt(req.query.limit) || 10; + const skip = (page - 1) * limit; + res.json(entries.slice(skip, skip + limit)); + }); + + // /api/delete/:id + app.delete('/api/delete/:id', (req, res) => { + const { id } = req.params; + entries = entries.filter(e => e._id !== id); + res.json({ success: true }); + }); + + // /api/address/:sensorNumber + app.get('/api/address/:sensorNumber', (req, res) => { + const sensorNumber = parseInt(req.params.sensorNumber, 10); + if (isNaN(sensorNumber)) { + return res.status(400).json({ error: 'Ungültige Sensornummer' }); + } + // Dummy logic + if (sensorNumber === 1001) { + return res.json({ address: 'Musterstraße 1, 12345 Musterstadt', parts: { street: 'Musterstraße 1', plz: '12345', city: 'Musterstadt' } }); + } + return res.status(404).json({ error: 'Sensor unbekannt' }); + }); + }); + + beforeEach(() => { + entries = []; + users = [{ email: 'test@example.com', passwordHash: 'hash' }]; + }); + + test('GET /api/check-email returns exists: true for known user', async () => { + const res = await request(app).get('/api/check-email?email=test@example.com'); + expect(res.statusCode).toBe(200); + expect(res.body).toHaveProperty('exists', true); + }); + + test('GET /api/check-email returns exists: false for unknown user', async () => { + const res = await request(app).get('/api/check-email?email=unknown@example.com'); + expect(res.statusCode).toBe(200); + expect(res.body).toHaveProperty('exists', false); + }); + + test('POST /api/save creates entry', async () => { + const res = await request(app).post('/api/save').send({ espId: 'esp1', sensorNumber: '1001', name: 'Test', description: 'Desc', address: 'Addr' }); + expect(res.statusCode).toBe(200); + expect(res.body).toHaveProperty('success', true); + expect(entries.length).toBe(1); + }); + + test('POST /api/save fails without espId', async () => { + const res = await request(app).post('/api/save').send({ sensorNumber: '1001' }); + expect(res.body).toHaveProperty('error'); + }); + + test('PUT /api/update/:id updates entry', async () => { + entries.push({ _id: '1', espId: 'esp1', sensorNumber: 1001, name: '', description: '', address: '', lastUpdatedAt: new Date() }); + const res = await request(app).put('/api/update/1').send({ espId: 'esp2', sensorNumber: '1002', name: 'Neu', description: 'Neu', address: 'Neu' }); + expect(res.body).toHaveProperty('success', true); + expect(entries[0].espId).toBe('esp2'); + }); + + test('PUT /api/update/:id fails for unknown id', async () => { + const res = await request(app).put('/api/update/999').send({ espId: 'esp2', sensorNumber: '1002', name: 'Neu', description: 'Neu', address: 'Neu' }); + expect(res.statusCode).toBe(404); + }); + + test('GET /api/list returns all entries', async () => { + entries.push({ _id: '1', espId: 'esp1', sensorNumber: 1001, name: '', description: '', address: '', lastUpdatedAt: new Date() }); + const res = await request(app).get('/api/list'); + expect(res.body.length).toBe(1); + }); + + test('GET /api/list?id returns specific entry', async () => { + entries.push({ _id: '1', espId: 'esp1', sensorNumber: 1001, name: '', description: '', address: '', lastUpdatedAt: new Date() }); + const res = await request(app).get('/api/list?id=1'); + expect(res.body.length).toBe(1); + expect(res.body[0]._id).toBe('1'); + }); + + test('DELETE /api/delete/:id deletes entry', async () => { + entries.push({ _id: '1', espId: 'esp1', sensorNumber: 1001, name: '', description: '', address: '', lastUpdatedAt: new Date() }); + const res = await request(app).delete('/api/delete/1'); + expect(res.body).toHaveProperty('success', true); + expect(entries.length).toBe(0); + }); + + test('GET /api/address/:sensorNumber returns address for known sensor', async () => { + const res = await request(app).get('/api/address/1001'); + expect(res.body).toHaveProperty('address', 'Musterstraße 1, 12345 Musterstadt'); + }); + + test('GET /api/address/:sensorNumber returns error for unknown sensor', async () => { + const res = await request(app).get('/api/address/9999'); + expect(res.statusCode).toBe(404); + expect(res.body).toHaveProperty('error', 'Sensor unbekannt'); + }); + + test('GET /api/address/:sensorNumber returns error for invalid sensor', async () => { + const res = await request(app).get('/api/address/abc'); + expect(res.statusCode).toBe(400); + expect(res.body).toHaveProperty('error', 'Ungültige Sensornummer'); + }); +}); + diff --git a/espid2sensor/views/index.pug b/espid2sensor/views/index.pug new file mode 100644 index 0000000..90e66de --- /dev/null +++ b/espid2sensor/views/index.pug @@ -0,0 +1,90 @@ +doctype html +html(lang="de") + head + meta(charset="utf-8") + meta(name="viewport", content="width=device-width, initial-scale=1") + title ESP-ID zu Sensornummer + link(rel="stylesheet", href="/styles.css") + body + h1 ESP-ID → Sensornummer + // Tab Navigation + div.tabs + button.tab-btn#tabInput.active(type="button" onclick="showTab('input')") Eingabe + button.tab-btn#tabList(type="button" onclick="showTab('list')") Liste + if isAdmin + button.tab-btn#tabUser(type="button" onclick="showTab('user')") User + + // Eingabe-Tab + div#tabInputContent.tab-content + div.card + form#entryForm + label(for="sensorNumber") Sensornummer: + input#sensorNumber(type="text" placeholder="Nur Zahlen erlaubt") + + label(for="espId") ESP-ID: + input#espId(type="text") + + label(for="name") Bezeichnung: + input#name(type="text") + + label(for="description") Beschreibung: + textarea#description + + label(for="address") Anschrift: + input#address(type="text" placeholder="Wird automatisch ausgefüllt" readonly disabled) + + .twobuttons + button#saveBtn(type="button") Speichern + button#cancelBtn(type="button") Abbrechen + div#result + #version Version: #{version} vom #{vdate} + + // Listen-Tab + div#tabListContent.tab-content(style="display:none") + div.controls + button#refreshBtn Aktualisieren + | Seite: + input#page(value="1") + | Limit: + input#limit(value="50") + span#gzahl + + table#entriesTable + colgroup + col.col-sensornumber + col.col-espid + col.col-bezeichnung + col.col-beschreibung + col.col-date + col.col-aktionen + thead + tr + th(id="thSensorNr" data-sort="sensorNr" style="cursor:pointer") SensorNr + th(id="thEspId" data-sort="espId" style="cursor:pointer") ESP-ID + th Bezeichnung + th Beschreibung + th(id="thDate" data-sort="date" style="cursor:pointer") Datum + th Aktionen + tbody + + // User-Tab (nur für Admins) + if isAdmin + div#tabUserContent.tab-content(style="display:none") + div.card + h2 Neuen User anlegen + form#userForm + label(for="username") Benutzername: + input#username(type="text" required) + label(for="password") Passwort: + input#password(type="password" required) + label(for="role") Rolle: + select#role + option(value="user") User + option(value="admin") Admin + .twobuttons + button#userSaveBtn(type="button") Anlegen + button#userCancelBtn(type="button") Abbrechen + div#userResult + #version Version: #{version} vom #{vdate} + + script(type="module" src="/global.js") \ No newline at end of file diff --git a/espid2sensor/views/login.pug b/espid2sensor/views/login.pug new file mode 100644 index 0000000..40626a9 --- /dev/null +++ b/espid2sensor/views/login.pug @@ -0,0 +1,23 @@ +doctype html +html(lang="de") + head + meta(charset="utf-8") + meta(name="viewport", content="width=device-width, initial-scale=1") + title Login + link(rel="stylesheet", href="/styles.css") + body + h1 ESP-ID → Sensornummer + div.card + h2 Login + form(method="POST" action="/login") + label(for="email") E-Mail: + input#email(type="email" name="email" required) + span#emailStatus + label(for="password") Passwort: + input#password(type="password" name="password" required) + button(type="submit") Login + #version Version: #{version} vom #{vdate} + + if error + p.error= error + script(type="module" src="/login.js") \ No newline at end of file diff --git a/noisesensors/.env.example b/noisesensors/.env.example index c34144b..d124690 100644 --- a/noisesensors/.env.example +++ b/noisesensors/.env.example @@ -12,6 +12,9 @@ LOCALDIR= # Datenbank, in welche die laufenden Messwerte gespeichert werden (kannn 'influx' oder 'mongo' sein) STORE=influx +# Secret zum Signieren der Session-Cookies von esp2sensor (langer Zufallsstring) +ESP2SENSOR_SESSION_SECRET= + # Nur fuer readarchive-stack.yml: Zeitraum und Ziel des Einmal-Laufs. # Leer lassen = Default (gestern, ein Tag, TYP=noise, DBASE=influx). # END ist exklusiv. diff --git a/noisesensors/docker-compose.yml b/noisesensors/docker-compose.yml index 6ac4cbe..2f70255 100644 --- a/noisesensors/docker-compose.yml +++ b/noisesensors/docker-compose.yml @@ -79,8 +79,23 @@ services: - ${LOCALDIR}/noisesensors/log:/var/log container_name: noise environment: - APIHOST: http://sensorapi:3005 - ports: + APIHOST: http://sensorapi:3005 + ports: - "3003:3000" - restart: unless-stopped - + restart: unless-stopped + + esp2sensor: + image: docker.citysensor.de/esp2sensor + container_name: esp2sensor + volumes: + - ${LOCALDIR}/noisesensors/log:/var/log + environment: + MONGOHOST: mongodb + MONGOAUTH: true + MONGOUSRP: ${MONGO_ROOT_USERNAME}:${MONGO_ROOT_PASSWORD} + SESSION_SECRET: ${ESP2SENSOR_SESSION_SECRET} + DEV_AUTO_LOGIN: "false" + ports: + - "3004:3000" + restart: unless-stopped +