From c12d62650706562063df282af8054ff496bba59b Mon Sep 17 00:00:00 2001 From: Peter Meier Date: Wed, 1 Jul 2026 15:58:35 +0200 Subject: [PATCH] feat(pwa): installierbar + Offline-Grundgeruest - Manifest (name/standalone/theme-color wald), Icons aus echtem Logo (192/512/maskable/apple-touch) via scripts/generate-pwa-icons.mjs - app.html: manifest + theme-color + apple-touch-icon + iOS-Meta - service-worker.ts: precache Build-Assets, Seiten network-first mit Offline-Cache-Fallback (SvelteKit registriert autom. in Prod) - Push (VAPID) folgt separat Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/generate-pwa-icons.mjs | 34 ++++++++++++++++ src/app.html | 6 +++ src/service-worker.ts | 69 +++++++++++++++++++++++++++++++++ static/apple-touch-icon.png | Bin 0 -> 6246 bytes static/icon-192.png | Bin 0 -> 6747 bytes static/icon-512.png | Bin 0 -> 23719 bytes static/icon-maskable-512.png | Bin 0 -> 20229 bytes static/manifest.webmanifest | 17 ++++++++ 8 files changed, 126 insertions(+) create mode 100644 scripts/generate-pwa-icons.mjs create mode 100644 src/service-worker.ts create mode 100644 static/apple-touch-icon.png create mode 100644 static/icon-192.png create mode 100644 static/icon-512.png create mode 100644 static/icon-maskable-512.png create mode 100644 static/manifest.webmanifest diff --git a/scripts/generate-pwa-icons.mjs b/scripts/generate-pwa-icons.mjs new file mode 100644 index 0000000..ac1e8dc --- /dev/null +++ b/scripts/generate-pwa-icons.mjs @@ -0,0 +1,34 @@ +// Erzeugt PWA-Icons aus dem echten App-Logo (logo_v3.svg) auf hellem Grund. +// Läuft manuell: `node scripts/generate-pwa-icons.mjs` +import sharp from "sharp"; +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const root = join(dirname(fileURLToPath(import.meta.url)), ".."); +const staticDir = join(root, "static"); +const BG = "#f0f5f1"; // wald-50 (wie Header-Hintergrund) + +const logoSvg = readFileSync( + join(root, "..", "cms_content", "windwiderstand", "assets", "logo_v3.svg"), + "utf8", +); + +async function makeIcon(size, logoRatio, out) { + const logoPx = Math.round(size * logoRatio); + const logo = await sharp(Buffer.from(logoSvg), { density: 384 }) + .resize(logoPx, logoPx, { fit: "contain", background: { r: 0, g: 0, b: 0, alpha: 0 } }) + .png() + .toBuffer(); + const pad = Math.round((size - logoPx) / 2); + await sharp({ create: { width: size, height: size, channels: 4, background: BG } }) + .composite([{ input: logo, top: pad, left: pad }]) + .png() + .toFile(join(staticDir, out)); + console.log("wrote", out, `${size}px`); +} + +await makeIcon(192, 0.78, "icon-192.png"); +await makeIcon(512, 0.78, "icon-512.png"); +await makeIcon(512, 0.6, "icon-maskable-512.png"); // mehr Rand für Maskable-Safe-Zone +await makeIcon(180, 0.78, "apple-touch-icon.png"); diff --git a/src/app.html b/src/app.html index ce39be1..c381126 100644 --- a/src/app.html +++ b/src/app.html @@ -3,6 +3,12 @@ + + + + + + diff --git a/src/service-worker.ts b/src/service-worker.ts new file mode 100644 index 0000000..f09840d --- /dev/null +++ b/src/service-worker.ts @@ -0,0 +1,69 @@ +/// +/// +/// +/// +import { build, files, version } from "$service-worker"; + +const sw = self as unknown as ServiceWorkerGlobalScope; + +const CACHE = `ww-cache-${version}`; +// Vom Build erzeugte Assets + statische Dateien (Icons, Manifest, Fonts…). +const PRECACHE = [...build, ...files]; + +sw.addEventListener("install", (event) => { + event.waitUntil( + caches + .open(CACHE) + .then((cache) => cache.addAll(PRECACHE)) + .then(() => sw.skipWaiting()), + ); +}); + +sw.addEventListener("activate", (event) => { + event.waitUntil( + (async () => { + for (const key of await caches.keys()) { + if (key !== CACHE) await caches.delete(key); + } + await sw.clients.claim(); + })(), + ); +}); + +sw.addEventListener("fetch", (event) => { + const req = event.request; + if (req.method !== "GET") return; + + const url = new URL(req.url); + // Nur same-origin — CMS-/Cross-Origin-Requests (dynamischer Content) nicht cachen. + if (url.origin !== sw.location.origin) return; + + // Precache-Assets → cache-first (unveränderlich pro Version). + if (PRECACHE.includes(url.pathname)) { + event.respondWith(caches.match(req).then((r) => r ?? fetch(req))); + return; + } + + // Seiten → network-first, bei Offline aus Cache; sonst Hinweis. + if (req.mode === "navigate") { + event.respondWith( + (async () => { + try { + const res = await fetch(req); + const cache = await caches.open(CACHE); + cache.put(req, res.clone()); + return res; + } catch { + const cached = await caches.match(req); + return ( + cached ?? + new Response("Du bist offline. Diese Seite wurde noch nicht geladen.", { + status: 503, + headers: { "Content-Type": "text/plain; charset=utf-8" }, + }) + ); + } + })(), + ); + } +}); diff --git a/static/apple-touch-icon.png b/static/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fbbccf73360fdbdc3fb24275064fe32e8aab7c7a GIT binary patch literal 6246 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

9lZqz7;`1C7>pnah|3XO&DS<^pAc4~| zQO`K1bD=+7t~(X_dn~Pm*)pw=9*TIF-tTR2O5fjJ!>2E7&n={E^PGI~ogE+`$HNb&Po>xGjL7$)Rc(+cYZa%YEff*1|Bj|1 zy98r;f^bp_zY<$X_ZE7jH7re~jJt6aF&E6npQpC!G8)U@=V4$)_R4bQh#q%+`BKmo z;RA}`c2M{=@Lq7zP#`*>z^7McbG8ZG${NVDLEd%jexc39kFOkX^u4K$M{zsDt=foJ z{Y0^p@r{&Z!~GP#hR5}f?XIkW(yx{EyP(VxeB&iZ@oF2KzmyycuvAGU*C;8~u5ZCo zQOJ-r>=wB25(UfO>bOzA0ME)Co*$^>ZeIfM)c%yrtDdds!-~rfQ2WVR3&D{s!ehsg za;5H1vrE`4*0r|za@rlU4ccB$c97w2;3-j`Q>)ZXSpv76_T-7YnuGh>CMBJDs#au^Qs|TXt#8jxR$2c!22W z_}y>2v0!cd;?CHvOkp^B^kK|h85MjYY!bMvWhjv0sb!D#xXVUtjgFbHmQwYF+B4cd zof@xgUj~KRUOIE!H+?5T%{9^4CjJ=rBDG+qH_Q~JOXnFkW8Qi64vyb%a2@N-%LBCX zwHU%3Q}O8qta4m4h1PAcJx$XgU-w6~yW%pKWQE77IGzj?oW-(f#Fq~#R9JHLtp^@? zyJ_W_`k^`#F4g*asYDl0bB}tP_g%wSbmIvlVnGJ`P-{)`Au*|!%DgFP`8j1FAM2wa9=%4G?B#W zUJ>*#)g`VNcg2E1;qkYB=HtW4VwB-hYOr>*NZLQ(jF?(X%wwAvKukE&A$2mH#vsR$&03rrsu6O;v46271%U0vqDm4lK1;5Q*txhxmD zF5k!;BCt`e1zBZ;PV`4`!B0-Agpb5TwEJq+xhMP$bLH@Z1;(LRP~@Q;(NJ~^9kUif zlH%GUDH2WR@w*VWM_MAvdwqoZRe^-uU?6Pla7uRYr<}-caJg}yny$tU(Y90YyCim}nh09hBggXYY5(Nni5c2g z81-V_&^$%31e+ivbP-3t7jocz1yOEnuw+C7b{AdO+RzFTP2iL&$%8atgYqR@!4$u3 zTLY1ziBx#Qa^e+YnIP1t7FuWccw{kGP#1*w2;g6MvGs|^gMMG{MDrX1V4M4<%X`)J zLW1)uxEchCbHPlu);u#X8Q_|a((po{vK8m}wZrohuc6y6PF-tO>L44vHO}uQOl&<` zh3dupzjn?%8p^hh;}bw8l%lJzF_x@jX5QaDJS~5|=e*}V=RN2B^FH^vuiLricKx>R_Y+8#*MZmw zr`bWZh1DgG`lBS<$Cw`7vb1uMc*~pM<0~=3dwJjz1vDZ!rGjaAs}aw`(=Ia=1Hcoh z8Z4Cqp`5jb>V^0?*@sE;2S%JtT|Je_{IG_IypqQ+!)3JSd9^NrL~k?PyZ9Bv!9TgF zu^{}9gsmfdZg*=mZ1EwgNeo>O*OOEtMU$s6dNrKUVMv;cwHLH;=sHM{1Yrw2-o899 z`}Q$z^TO#=g~`IzuW!n5xPQEC7VT$a2D{GKPjyhp ze?gYU-Os&a667|8=m1dXSfVD-dJMRAb$i?U%hk|@C&iHIXK$)UuE;nMFrs&O@54j) zTlxN{HxbiapD~?e>JzS$&RVVncPT3JmX}ISXvEg}p#wd)4W*ZIZ<7nNJ;N$`mDMDD z>2eoiV|@x;*0o!TbR;41Hb7~Xs^iq1c}?w<6o9f^ibLMN_l^9#8*Jyr?i}S+-ZXaX zy!jwoKiw0Yk#UmqB8^SMoXED{u4%-9lz6B^Mq4&t&<^$;2#y2(*zphFPqMGdgNzdl z1NWXs+>!DfE{;lACKho)-F|!+AE1Or=n?lajp31-hVUb09bA<^`v}#fKPe{tV`bU! zyY^YP%JlC+CRtg`a)BxVLPRldVs*1pHq+C{PYHe0iob(PH_7yw7LBJd6>bDHJ&JpU z<1&sGgz2(!h_n<$B6X>@pA~Dj_#tAnJR=f^Knd*Pwn|_ZfQ%EU3U8`#?#|7TiCw2P z!@uZD-MK@O+PR(GTw=gDGjXZ*#Gkfik7;u{jhzDd%VlpBixKYyjhTDrfIR|m5fszel_{!S2MBQ=fTz&!pdNg%j<~gA$D}jC{^oqn8O5NA* zV5tNe6tn4@>A4})$#(PrP9%TJM_f}-zXE$NKr3imjmwWMHB0>mENvn;$0d@yLXxVy zDjJbE96ofs%?vkOC;39;!`)Q~!>Uq5;(Lr#Hsqk%T6#H0R_JX%`$*N6D-x=N=8qzXQ#(3#{M=n(wC?{L1itZN;oF&@>)e z5|ug|CWX~>6+ZDO__|T~FPpt16OVQEVX#-@>8>=@*EahCqFTJKMz-uC+UMGB4omAO zU%cjtbilPyBKUS5l(XKJiLe=-D?78^#`cz)N2DPtle0QjS@cYsZzF^Se5B>OU?eI5 zRbBbKz=4}QAO6+c!KH`7os!))&zWVUk!5Z}si;Bw>nr&^qpxr$TGo5kfxX5DYnm577coZn0lMw>ssC!K#mIqP(}5qInvGI~Q&);`*(3A=N&a zNbd1XZsLq>Xia_<|J+if%re7Epimt>0|`=H|4ekWQ&)P#wHz8WA*EWcjf*Y?nuXmL zdrqBy5$X4q?McXk0^W5XKkd%;prS`zB=3i$i2;{}y>iE732HZ{h7hB67jcZ!DjI{;4I7)<2o2*_w+LZn$r7z=S=Q-9CHlVOJ zr!IMHUrz`9o}k>8{l+4qM=$I|`!l_qnH-Vk`VhNe6_UH$)KqTW|JLPGYxZ(9K~cu` zZ&J!y#eHA$>^k?bcKJA(#U_6{wOf?Ea*17;LjsYfA8I2^9s(TA2v05R`G#>PJaT`Nxb#&SF*{5fx+lm@3i$A#aZV*;m^0X1zGk|6d!os;cgNk&|Cb$0GJcj7Q zpy@dw;d^ks?3Y4PQ&i!|+UzgcvBXmnJ*bR7G#hyIlolWeQ6{V65(v*z1;k~XlZ^s+ z<&x=FRxej*`o8fZ-P0vp`&)Rp4%p_p+s<7GU;MzWyp}wLbkQuQv$iV9`Rw7UON$Uq z@b&pK2xuL~O4_GP+F9Q>L(mvh^kkemQ4He1a_T!Jj;EXyv!i+fOue!eq% zzazRraEv!0>Y!rO$xyk`Qq~>D0b_gzWoync(C^rn^NyIB;lBE~IzZtI^oaF`T7*6r z5s0HUCau?I^kwdQ+5(S(62Nf+v4SHSqchNHgU&Mr9_Y z+UVY37``L=vXCVBw7U}2Fw(nG3L6*1SNSdad}EZOpL%}-^X7v`THH{lSqcR$>a;YSW_4`@UCO8Xt_TJ*N7OPajOb4AuE$syVEg8(IQQG7oC>kKNhi zqWcHz?K&mptmq-<4vHXQ8ALU(B6tbjCS+$l3#r4aP%`!-X55~Q)NpCVykk!b_sQ~l z=j=q|x`r9HJe|Cw$dc!OEQw6j6HxM&)_AK2oy7jZv2Ur zSHD+?wp&63xJC6InRFPc+p`Be1;_Pga;bM2d&WwaD#!|WGC!Gcp^kgR#v6|+HNRF+TcBbe3M#)HXBxl#KmexRPtc`M) zpr%*i@D7>H;uR-l>cc%&9Dkm9PzdgvuZ2Av;vJF%GX+}qrLn9}JU&F27B2sZ3}NcC z-_yh4+pk4{R=^IZUVXA?r|;1)lZvn!w-d51jpZavBL^mGFjh*a9!$V^E&YnRC=fXI zT_xwPGNz2{XuqS~UL>czR!UbCmw#~m`RWSfoKYTo=Zx}WN@cpKcSuwR7^#UKS3ze@ zHFBDAx;u~9RY(5~pAPEP`S}SE4KbS$L1e(gNVfgwgz|}|V2yX9!Gyms-)% zp^}zX;lB0nE{P{}z4jcKD#x=h!V*PDIz73e{^^Mm_25!xiM5eAuA?(VMc_j2_hhEH zV@93xb?dtg^8*=_KH>2#gk)~J5;0m8%F0|h01E${0b(+m|R8p36-d$^TqFv`r(2pn|+R24lfh#`$!h7{);HM9x|MNI!aKQgr9_I|; zw)H2g)orp10kTGLRA%tMKOvGcfY5(FK?IOWs04KE!XIp6rtEK562D#jio>m7F8=M_ zGVG64EEu6Uu-Fgq6sIA-S_tP$$l?4ykNDr@5&u_+z;aMJ|HS@EK)?EztKX2o643el z7VG=|8XdQh19#4Oa7pQ}2_TQ7%(h!@Bbm5G F{tKj=ifJH=A0kz3=TNSeeb>3UgcWXT6+iUXsObiJbw}d0@0|e z-P8qvNP#~|L6j80uWhfs1K=0cQ#B)35QuD%_>ZK-N7n%a;sUAPRMz)OTB}}4yw@MU zOTa01=R7udq+lG`YvAi#uKy|M!{FG>JP14p%xFK23g+rjOxYI|89mKWa%Xjo$9gb}{dF_cX z_{Pzyl-~ZirZWEP4vi(c;SDQcq|43Ub?Dy!$`&s*KSDuUHsWLa0{IM{2 z{#q{eU&|%`b0=2+)C&H;cK*!gzxL(vfBRA>k0Ne;EjsyF*4|xYj3B0~r1fM++V+>` zSy22bU!y-IYWtVsT}}LNfgrL3y+7CR>x$C9il90Br{amNLH;i#|NoBSZCoVd0g2d> z|6_1|1ZTm^M~SDcu$ZmgFpdDxg%Es-%11j zZ~6b*{o^R~|C#bf+EQz3g)fJnj;~n4?m(vu-fkk50h2g)6ot4ds5RfvEcbYt4VEKt zEs$T(Te}lgL8xsA^Lvjta670hje(wnhmkDLPL7lIP%#^aS7d>S05)xL97jGj!KpFY zmq04c?RBmP?9`f-ZDiI*4xjO5K=8DJPb;B?JZ&z|@QorX;0Ftj?Xde{+Dd)!XA0Qe zc~#V`44#%Eb9|me;>cqJ*DI|_g<5NZmJMKzxM3i4{}Z%>Xvtm{5Ud-?)2vV)@}DQ` zYQI&=TTuKCa9j+`%=TFc&o-FcQ{=31`+q$4G$mk^rA6U1JRs!y|MRIVlMO}Sv#%4h zvz@PjI4R8d+dIIEsWtIpU(ja0{*85t&KTDRUe}A$t3Z4$Qcob`- zf7Q!nhGBtaJ8Wsl2y{*mQOd_YZAjsh6=HU@kR{{{dPwf{WUrZhX??tdCy zw=90NH0-|uNnzo~uE6&0fEraP-Y9baIlC)j3O$OmJBZzT8(Re%i3(t{-t}!b%kO9v z=w+3LT{c2E6Xsz)qk9q;f$$l6Y9j}Kza#u`bPD!?4ke2US3=W*CgW)Cg9@yop3A+|7pq7@PKYiCfu1|MZjM=8m;=@ z(VVHj*>F<62lWZ>_wBj;}y}5-_Y=$(y9Tjt#JZ|DFpD_#P;r%nO>uk2j{CohG5ae~dwFn6pfz zrKYA*rI6mZ%ub>rL;g`@Gv@ad5*eo!aKaX(ItS*?%rJvLOfKo6#gxHaonAt}x!)V) zwj5xprAMZ!^ToKf|eTUz4c^V`9Fv?`M zGxT4DxS1I6#V*73{O#@60+TOdLGsyQHa+gxLTq@~&e?Hl`wgbBoo}o#vwzpjl|cQC z)?+!g$>Wy%hGMq1#K2N!%{9ZXqd5GlDMt9Dyp7?htN5ya^+x$B%YE3T{_Z+L%|b?g zUt*`tVu6Izinl=9PFTgobm2I{+8QveC{MHW&Tb^2i+GMgsxAN|&kP1KIJ9#lrN0Hq zf9b^J^*&bAWZq9c{Wwq-IoL@N3)08Crfhl;J*a^a0IwGL-C`)2vuq1OTc%*<)sM+; zjpQI3GtveLtfjdx1!hhHx-fZ!0Yj?6H=-M$TkHBiQeE@D^Vr& zr!q>LL4Ps}(Igt2NCti59H;Bub^vx3aRejI_|ZL}klp?or2*a9G(DK@yN3bEDY|E9 zReGD0(z?CEmj~)`L-)Ja?y7^daMDu|6=}DWmgEY+$)N4C6Jm$IWpi?ogbKv|^ECT> z@0*eu@aPzmYJ6VqNW*DNdo1C1GB(mpp7IO7@?p zZMIW$8<9c`YBdQNeCwJA_^PM@LBCIn^?ECtp%PLu37{v^)q`c8AJ;?q0y%JKYl41` z+*{E+A_x~+ChA@{V@{g$bX!`pmkW66 z#=<3|F13>=nx%)ZR_~%xY8fp!f20>D=7F^&^L~&Er5+g-;h?meimfK`n+>E>NO#OK zPW@8$0U`gbyJ^yB0XIcRA4nQnYqtKWrjJ`dJ=X#WGIdB!Ec{+nE3iAV8rMDFVLq&H zP)tO(V9r!cR+C-n`8uP~h+|!IqJwTQwb+sLI)?wNzs=7Sd&#_h+}0|JU`?1RN6$@1 zGQu$pOWSh90NC{U*ci9v%Sz=G1=b}!J6*8LQ}>H?E8QNdQ7M^E-1ExRZm4zh^*Vy6 z-J5BypA1FS%pH9)o6sp(4gH8Re- zaY>@3Qq-js)Kv9SSB+T{{Xm|XZgnW@mmcI#@h*RV`>hYxPiWLfH-U)JZ)^1=l~vEK zmb2sv(AjM;m9T5Rv^tOg1Qv0uXWdOw{adGBlod!yQJcJ_2QIgBlxjiln>R%pIYYvW|mc;Nr7~e;_Ay%~B;r{(pphiM~OtJMT*?~Ts*oi{1e z+{45S?cH6XGktOQwdToPHh~HY-$G4&UUvM1R=xonb^-+}MULD>tX);;aZW|jNs{nG z{b&P{q)7n{M*h~|3*8z!>oqPzdtAX$ZX;oj{YSI0%fp441m|BqqFFqJAJZrDO?Afm zEt51}fKLKr!MUITX&HzHvq_tcu!ss0mqc@EDy8w|0zZFi)DRpZx5*E7&~kYMFS|kd z(PZj3Fnw_|`pIoM&y~y+K3*SFv5gNttQ1(jSGe!SOQSGKArjj=lk;c^snkxdRzkVY zyOo-+%Ckuq<#jlAe={(VYW9l`{X*eu7G3Vs3M8<#YXgHBuJz0~mGQXF1Ke1~>(Y)r zc~&h{zdL}#pW6SBE~cc5QHA_wFnFH7>d%@;^=b95lzXX(bx;09>#)H@ z({K1|FJ8|x)~{Vc$H({Ch8*@$dib={EE_j4{MPT`=}}R|SaZ(d`r4J5x%5x&3(5yI z%LcwI15={K6sKn!B>b(Bw$5su{K0S@noRFoUTN|(N3xwL+1k^ZC1cxKs~d~q@p;u~ z&U&u;3STaH+9I9k9}44FF(aF4KGlb${e?8l+Ej8kej*u61q4# z+=&ibp7FG6FIj!|3AenOCB<(BD>!W}j`lp~YF9gQ4PP>6XWH*n zd@cATJxEEXPwMmA;?>TyIJx$caX`n&)Z1|-M)URM59tnH7T{WUksjA>j-AuJxv1-2 z^DLi%Ba3|JNVE7`9fco*Jnk|Uaru?_i3S#65{~gBjvLO28%Elg=LxuNpKEB5tAT-! zLrLuuu1GF?C)r9Eo$q1_*tpYX&#|D+_$R|1!k`GD9%;iVAdj+@dmY#+^(mmWNdmOFIp^tq<0_EWkA?Ej& zfaE5Q;`v<%6H(c{^+uKin}vS-v(yLX@`-)xxp4 z=>d-YP}==$U}4=&%ZH7nn7i`kj#s}lx~-q;RPi7$Ec$^&$_*cG8M$QFUL}g~`H|C9 z>ysk|(9){q)GfbY1v8i7{0)p<;{(P(W*(57sLg?6YR$()2AV?*L+x};yrPe_suPR3J3|oDtR1 zQPNsqr*dr&tSUzmwbgz&l7@43R*eD0APDa|J8R4gSDT$9eMpvljKk0&8%n%cM-IEd zuCpY)9dz^AhPm6K9O6(LNX3)P6J)EFq^63N(#dYh6@`kPw>diLcnP~!f6u<%c_ElLLZJ?hu58=FQLkE&|nR% zK-BpD$5(f9E^2{fwQcrsxY(xa<}>>zRbwy?8TkyP5QT&|{}vD(nL!^g zc3S$+s`Q;VG()Ua?@v6P2((iDzQ5z|TWE-EhhCZ?xA3)CklOz6#VHHY$hST{1*mZ*?OXDDNW^wkXQwj&XtpHUVhDYv zlPaPASh4X;ejaU>Aj~n8@Wqs?Pu19a5esqFbGa6tW!6-Uu<7YQeWxhcW(nCgg;NfZb zE9Yo7b2Toy^gnpblvSvC8(qZ01^@H<_AWpJ5Twkm|UdS6g z-+UTw)VVC+@TjpfZXDY^R&b$&`_<=LVXi@d!Ur8gVhg&FR~0+;Z=6|hWYkfI%gDH@ zo!dXCl)70(0d3sERAiNQ;?tiW+v4*dbmX(1mv#o@6IpP9%v|70ul)ExsH$_%NS^}k zLqU@DYvyHawfX4?j^b}5)J#`|XHjrAzn?HMVoMQxa zDsi1%#hAz)=uZ)@K3)rK3)IxgYYM&nAjcPKg75&It+lwb|0eZvuJE7F{3ZLI zFh9o>8Feo8;*BYkCFR!lBQbULa4=p}{@jPTe-1OM|pySLH6B1k=mO(X&a-#DXF14FL7;QFG3vI_Hkj{3#6dwE+ zK0htbtlhIXA0fD1Oy1=$eR;J`5gDi0&3$l z&w6sUgtN7~Nj0M5R(3>>A@BAjbxX(woE*eu(tp9ybYL4!-iq@02#9XfH23=8z^dXaa zSN^)aiyKwiR{E|DE;sYgV>Zy^>NjcE=;Rj@icZqKC4Eu+tL5*kP%!DcP?cS6YL>Nz zrrRPazvu+I@Awum4jiwBr&FwnUiwno;&2Sg15aKGn5^ke~QlE>ckP9KzRY*e7S7=rbizz-JsSGsyhKkNLN4)qKZNlIpU}gjFq-yx@G7d> zioIlz`wkt&=BLb>_|GdUd03B^-}jw6I<1BALWb8w#|Rq(x3)KO{rsa*dd%HXJp6<9 zp{v}!OHvVXBOG4_i-Wa$gIUwni41vjDOk7SUI;?0nVhLG<7ASks4?crDFKo!^SGCP-(5|i`c#`eYB4IQ!z!=egVR-sQHsZcy^8L+(-^E>=PuG<(NA2P$ za&p=s-SdNS5x?Z5Ud4c@4SrRfmfvq>7`dnxHs(paIHasG5Vxl0JXR*YNUrqml=Z=zq*siyh$|Cr zWgEVl2SLxhu6+5Y7a(TG)NQdc>+qe#S*bToq?SNYK^b>vma|nceHWQh1a>W7RSjpR zxf4c?t1L=6XsIb_B=eTH^;%xK*QD@J8^c{PT1j15t`t&bheT|bSaJ9dCPFH#$%}-U>-5t zED8k)l6dS)^>-x=*y~w*j(cHmzNPI}srsWmOVSA8!Q*Ve?I$|+>n4vkD|(O?;CtDm zN#5f{p}vKljR*uWEd%6QvQzJ`ihU=%UpBw|L_qzC>;RV#4>8AW+=I+Flh8$Fcwny} z)^tiX8sJn)J4m$eyV{K8q~W`wZCA^~tUPv#__0Mnb+|DG^e`FW0@E&$6;=!zPsq)X)upPPIxG!b^6~Si5Vm4bTKWrvq({g zovhl=N~b;Bm(8$`ZsYFL^uN_+sW_8M>(yqjvIY$@%tM2#Xj(BCMA?`LaJERF8eZ`)ST6 zw^Bq%OtVYaQ4)SL@{ClAu=HnFR?dkFiqbOenTk!ME8?TtFvqS!fA1fGguv%Y=60i&E5io>8?w0Qg0DgcQ=e)XI|R$@pI-wn9j@`3SQ@~*QjMRtU9EQHgq=5#i0ch|mo$Rg z{UoReokV)JI!lgI@XK-}<(E0h8*m9-BD#EIO}WG>k|u|#cQjhBPj#-0tXo6er93K= z`1o#ZKh>yS7pnLor){(Ju6oqHp;W!XW!l6PGf3##7d_0G4MZ#s;C6i#PM=6-)B_SV zM!oNEt@;2f=6b{O1PHqrt4o=ICj7m7E}_%WtZ8hlLwu?`YCgpr{Gx@O6Q!J5y+Du} zk=&nOsOeEeWTMRvy!9z|E%fo7usweaP!m`X>vepQv@_K*O7S+f>xlKK;xgJjRBe^Y zryFv4q%3kd3OizzEH^eOH)is=QY5MCa^VhL2JHY31uDzBaY=3%HEFYc>#{@Fzc77M38!&jE5@f487p=)OGZ=i zvIJVEh}#r7C7&^iz4L?a#^g;&mtH~Lk@4vs-ATB(F~Tj*Yyd^4r!aG#Yz-~?etsPs zMApJiE43Wrrs9+AH>Qs%86!xj&uKQDwERhwYg(wRC0|?qNMfiag~AuJOO+Vs0j8C@ z;34-{Muztmzmdl4}w^g)>9D+NM3+ ztcP>tp=Wk3oO_Uh{!JoHm_Npu;DTJ;}; zhY^D;et69>_Jscm$EnDFUDv0c(SA(FQx?#tn7mw}Tj<5qF-Xl?y}w^cW|!90dOs(b z@Ieo;{*;l+T7dNdhGY zzwG%3rWaUoCiI-KZ8v{AfivnVRrkqDI_aKt*-3>j^$gfU&N&H;12UO1_~0~hnCCY! zv8}|BebSr|<}_Z~mXh~=X}5%P+}V7EH4OERM?IU4V%8O@R#1(30_D>T_GXAx zY5G!t_+4H;#~&+oUl;`U%egqRr5TPKxPG7Rysc97N9Dwhj1`T3?+Tw>#Z~0_HK*P+ zRq@qUsCO}Ym59{41iUE5|3zKv#=uj)MvAo`pRGEtnIf!%O>?F^8lA@DJo`l?gb8;X zS}~ES8n{(y5B^W{7s|O>wk_g=qO7EPuYio69kcWdZdp^g+)S%#TtZL2^l=-!KcT*! z4X(s!5LRfCA4507l}@<&TZ`U(v*U3KL4(p<3Mogu+DY0GVp?h8I@R2)K%>5@N%uZD z6Q}?$AEcbaMrBTXjgNat&ymGPG~bh|q=6>htXfl1D=rbuC*&a0=7rpnJ3dY(MH=hp z@Y5$|$vl6M5pqNq2ewV2kFGxDLUD4stloY&Ov$odL!$nDuKuG%jq1CnpB8XceX)(; zj+_1QA*|GUKRno*iH_}A?f^_Iz|O4IrFweX%=5Y|b34UKb8Jj4b zJd*lw%DGd4zHju~8RzodOVygN`0~4x;b|YI)0dlDDY5(W2G_k0Ef5+a_eZ>54TF%U z;Z^_-97YZw%2x+!6V?G!p@Eb8H5SNahD!RDjlL}IdwX+Zl}jX}SE@IXoW?3T%yQ_y zb?bJxh;~j~NpI5K;GglR%2~xTzQv_vi!Ll})=f-BH@)g9tKjWfyN&Qps!J^^2;2nd z0i|H+`^{-)eJ1-uG3$o$iQ9Emy%j~=MW;Ltw$@Dx^>9r;$}Es~TMl0&WTY;2=a2gP zF(XdOD6ZQnOr;T32q+;N=!DE`g7$8AmYLqQ=J+)sadN%=m1d7K* z43i>xRVKHf@62KisCV#?C$Y)0*LZ(&vb(%E<%)u|D%OQvrb$$9O~U&^fJt~;o?`U* zow^$o54_Qsev#NyNZGB#jD_oi@#)HFF|jMTgUMr$eV>MbGp>v~%Tr`apCgV@=Mbe^ zgwNQouxmSSy0y^O2%gV!7$~k-?nSJmtT6e~;)*mcu3*(8Oghh>;x+%ZHLT@=E1dE~ zxV3|aE3ddzURcz4`Djf={j0%Y;N_dlkLt-o``66J2Gd z!u{_mx8*U9M=hG`CTnMo`$0ahHa#5?H8P9*Bo?W9cFi5So-*GE31L!)&{9AjRh=X@ zGr@m$!>{z|WEf+d2Io$x%9RNf;9Oa11pF9YA#-9k3&X6~+) z%~gIXFu|P;Gh!{T@mhY}0{3s(>Bz(fgD8Ek z7S~SKahJbCuYAh6!fvG$vrs*qIg(b;;HO)3SNAr1;m^`p-u0c2|XZaiFjl0`BWIMGek}z z^=S?tO4@Tq-~ftnQ@K7>VYqYvWf#7z!m08T8-DtApseH8{D-hch)Z#H#d(&+;7!>x zboWU?@6(i6P^f|A&qb>{zOccz#=tFesF|VfhD~Ly4z?SQ2_`SsuC+V&i7O(hGOl?I~eZr8Li>%`KIdBAKq3s*&akBWhikJ&+A4`jsxvy zB3Or{iEODA7VP_nJBFO2gX66)m38Mu64pfSVV(NU;_uH+B-huG=v4-?|7IT8)@#Z74G+sBD~L!FA8 zWM~&btMOVHwvDd1d33AzJf0jogARnBPHdT@OevUrlDZspowcbGaaI2PmOEvRZ|EtsAj-g-cQ7zpm+5u<^TJc32SSNiTd zPTFv~7p!ZJl;)b|2=!rIwTCkzPCu+oRZr~5#A-ohjq7W!Nk@LVXqn~#G(Wiabfdz2 z&WJv66(9CWQhp}{WQH4QJn*)WQv4+;toa+d#hMuOiVrKAN5<~X=tDliB3kxS5thC2 zCYEmN19yCoharzAM)-EcUt1t01%$C#`V z;53d7vJ^;bYSM+X5rpvtQXlJ|CkeBx*wGDn=+@~tDP3KQPUMx)*9TwagvDy8kVd9O z)#(ZLw8*S{RIHlHFFo)y>n+hx>;=fE;X!;WRp5Ou@sEvej-JIe`pM4bABzrtI6)NG zrq4Dm+RTllX-DZDE{rd4B%iG)lT2o&F_gt zj}!@XY+IxfM$LzIHdqnH4^wyErJL#5%U?2c3&RY*ylW}Z2e6nsGYyHe9)>k`<5{Ac zOX#&X<9BCOMM6*Zb+`majb;m0s1#l4chkK7E(ef*kZagC$&t96v4ag$SHq>&XO*R9 z-d4 zanDXaWU+m(lJB)UkabmG5e3+>>We;~51*n=&ejc_+VXTPOsdVgb0B}a3R0l@V1=yc zf`**g=%*!(9?@HQL+#%#2;~!3QCu%?1;f(?I`8CN*-sYF8x`;R0Q9u2N}35|7e7@T ztWV&$-#TiKABfB{s^St9ZcSkjP-G8cH9}omdn?eAYp6SLE!iJkX8NYpE%&;C2|yFj zt0H$!!4&1}op*{}a5?X=H_`sw&hvk2f78(8+9Enuk)yP2LcQEDZaJs@j{l^vRj*mU zB2wjL_sG0Cxutq$RjH}G#TXy#1XT95kK6LjYNU<1<-$tuo2KX~I=z~1fx%+;JD$ax zdoOa!fMX$CT78MIU)`n9@}fbJFxK=EC{@R9#3(z!#SbPS%S>@gIspVp@8LO?yxRe~ zl^5x48uZc+R@#5%Z!F*arD1Bv6cvSxo{gsJqwZW;XkJS5 zb77nMH!Ta7?gr}Rw$3{U{L8PUP=N^JQS?UHc*5yQQ`l*alLLWP2L`HswcJ^;oYkDk z8iCn<=0?8ezwm2N|7FRD~dgYK%3t5f}LKgsF5yahM zq0npWw>es{xcu`gEC*4L-EqsWYCB}&*%E!zntU3um(MZK)IUDbQZF1Xn@oO&@GRVK zOp-p@#jX3Bc7*-2g-hcS9;hO2nG(kKg?^x6WeEFFvx(i3Hy1$Y&oVz$+#YwoW(;&k zXT4s|*`AB&4b0SsR?23fcXYq+R2F~1sE7a!Nh@nibmBtvO%L3j2ClQM(Udu7;7};( z6mor$J+7=uPD@P7H*MEl;nKkk@FkAP_n!O&&02(UmrI*hm9oM0BhoL(#!)_TfiLKC zFN+M{niPjXxm+)Wk~+C2*zQaU*xcG_+sDD;YBc;E#5gdU;p^6r7WW!9BF1_3mwyq; zD$^!9`G7M6Yj!T$inL=hF~V7}PKB7z1ljPikFQGvwcN^3f|+MZ8?ueoaj|_44ti3y zf`4W|8V7U(b8@rt|#@pv7rvt(%`H!>alZ?vPSI-Ih|#U9VE{!w7k4>v544dtbNHvoZwd;)?-d zpL6@H%q1Z{8_UOQK(m6!L*YkfMLmd(_+yNemh2K;j!>5cnfJ-e7pCXD?K>D;+?r8g~FI8j;( z7=_|kXtdJ+6WI4$d6i%iL;~oB2_&*I`uZYkZ?7u>g+l+yLn{j9aPrpJ>cN$eFgmkl z7CM0H{2uojcZtNb)V-V4HEEP?V+Ju2XL;gLaXz1H9K~h1qB{U_!TOYCuH}HGzPkOK z+neonFI|f1fRK-XE`zLjn$-%Ub9`9bPD^aw_mt(G3UhNQ*Y95G;3fI#T%F5z3!kb+ zZ<^KmY`e5Iw~YhFur6n zcbk#AJ^XNnGO#e@#xcIVXJj0-z1C8F+}^9JeEwH!cyiad7Cl+dI+pNV)bqv*;*#SdLO zQMs=@&;2h2Y~uyBbKS2>})MD+q-g}U*Xq=sX9IHJ21c` z)0Xx60hvFMNm7l1htLr|etw>%{ETZiW)`v2c7t^-2NotE4I zPJz@hE*W35R#%biB|96E0tPVB3CkN4PQzVHc8rmPp3WUxA3dEo-CyIgPu_BU+2^!H zk=2t~5fj`giSuyrQyq}ASLgG-e6KX>yt8@s{$rnF){t=U>yxC2cu!N=3|AY->1T{O z2OTR=mmXN~qwe4yp>RTnG5Zen)(@k#TgMw1Tg7r&cH7Gl<0qvpzlR1YYZ%0+ufmPE zZw5VI0XKo86s`uA;~4Q_PUpC z_{`9=ixOFt!j?>k(~gOzzHgP2nRCXMk98z!MBgh*zHYQh}cUt%&5 zKrj43e2GyezyN}upd0g6E^3hqDq_v^o|pL>E}tXECW_uevY-rst|&^PPthC$)0Aub zDIeHVJd5KImlNUK8a0ce-@83BH>c|F`jT)Bk>iFR$zb3k0nYl674b?QMu$%rXP^9Z z(gVvHaiW=c+yv$R0`tMCdg)2U??$eJi2?YUyBO-5cELi1@L)z>e?T-mHk4a~)EbiR zgDyB>?NDYcs&*>L;`Ub2_J%<RoT~Z(-%w(~09*u@CO=RQT5{(rw;s~J7!^}; zIm?*K(;PCh>uO16mL_HY1#MnD*BcZCuQ&A1P^}y#Q*gcOYSqQ6RcbDqrCQG3j(MIj9B74Kr$M*h+^wc~RmiH3_RhVxVL1ND~e z7)b_$?riXFtsd6SPorb;)|}G;M;R*bG}$dvZ3!xPLtr)Ac+BG@m*|w-;oUGgis5sY zFZe~Qu2FvbB$mNEJzOj}QG@yO zHf+Fj8UTx|-MqO`W^TZ&vR?NAC-JcK#$$8i`;+Bjv&Puw&xlTdJRX>b!T45rxKKZl zJ5Tkd1aR5;w|p8>lV~kkCw(Vx84MA(Kax*Y2dO3+M=28nYOxS*nyt43e<@^I-#tXv zLdUQ4%`)#o7Bfzt8@tsa%BJf*EpJMH-~H7c}Qq^KpKJ4>r&Bxw^qT8 z6H5h8d#Cr5B7j7?zc3meo=bhe`&FH<0PD8!JpAAaG;70hsEOm(|>WIak>ca%TJ;;bg;YQlMY5OEp+emf@&c znKtC3)8!jVGOj`eU%bDWQJ88qJA4)WrbX}G-Ou||jtC2z@4mWf;X{6jF=_IOKH zA=1|$rUji&JDp+3<`}J}P1$_e_q69FynmC$_~m3Eb9<3Q-aN^&WSd#QSm1W?xH0DI z?$l~tqBaee_z67F`4!JX`EYrB$>XhfLro3pehV+;QP>htw(xVBk&l60oARU{h*<&7 zS#h{9>R=|Fms>zs8h~|`KI$!oKSI?_^#z&v`3^n~Y-%aWsYrX75nyo|PE0xiqZ`7% zhn_i^uoN`a^d*NQaYoes3v|Qg)NVnqWKQTT2t=Doycb~jCzJb%l1d%$}$W}17PK32|r;pGE|H5 zu_~#&PD?id`h<9taBN;#4_1lyU~LP~r>FwJojZVN*V)#;qC}Vz*l4{vOt1Re^b9$^ z2Ha@KZPq>ysg<_=eUECm?RR(c3CUzBYao=kT;>EaAF3X~-nhNc)XKlH_%-w3%a#a`_CllZt4v zq#t*^yd_{I5X!m?0k;?y6T6)%zxxk$rY2cBw@Zv0yv@e;uq4Z^3`a)6mkSiG9gYEG zlM~0LSN;JeE9yvsHth3Q{A#iE`zk(YHag*}z`dH|o~nPxus5)$qDWK;BiU@^w~wUT z1^Q+^fyyU#cYG4O>AtW~=-&o(D^tA%1p%$2!#0OE)JcJUW@ebv3-HnD)(#1-v&)~X z@%TEYri>d0ZS7$|-*N$+g|^4rsNz%hlTny*dHz0nXbkk`{J zm8!|iw~z}(j{@QP6Au?~)@me?>W-omfW%$_Jz^l*I_@Bzw4(IsItxAm4Er`S=&^hi3+x4?JQ4u9&*6+c85BWmul+GS@7@Aw!u;&W2 z7heE?66h*dsJHb59Mxsh@?Y>Ed?8LV5DTd30~k|Ly;36%sgbrF)2 zyi~Ra{?(f{Kz?+cNXuDJo~NZwpgT24ZZN7->Hu+OT|H?pTKjyvzcE$vT$D0o5f4J( zg4b)#mz}v%Pd3kZ>_=-Li!3X2`?Nj+Do+l|ZAO&%^{{pLaI5^3mZ!SFp^OveJc}8r zE8Un&vz>1?luk?om^+PLm@Vr8)3O;z#)HotHU49={!N$2_46s`fx}!^x=k}y26;~; zlgHGcD^ilSgQV1&ijRHoBuBFX{HYeXTKU6rT~FY&n#m>5_+63S6~Xa)6;3;Y%6ue1 zIVKTi{Q}&32so~^=q~k(mQ(usC54P|Y?Q>ohcQd0%PsTQKgfHw!JEQs#^ZYcZt9dQ zRb&EbV=BvZ-8W}oVT)XDk(4Y$sXl@q$!k++hAOXfidKIFj+32tpcA0ozI%}UIc04k zv(`!*k4Mjk}TqE_R=GebVreLEm5 zLVq)~WKQ>^YO0O$i2b;t!l#_dgl)bh2M(-6d3jeT-ljF73*hf5VgVWe>AbV2hWPz5 zYvMMEQPMJq(>vW$GEYd1`UKEVIogIMgX|4oA>#aUSiJ%pMXz(^^h<}SEis5BLL7|n zY*}zzW@N?4BeSn8|6ndKEehV+c{n(6!{Q(w=*c`POp)GrLA}~0Gi^({@d@w%q28>q z01PJ9g;7Jbda4|BOeupj)uoWmu+{CjlkhqoA_{|`n7$6UB>%fJNd;9b{p1!vRG39D z{93I8jth$ru$2JlGU{BcsT$&Q`6rEd!NqWaO#BY#FLI@Pnpb+eF0xl-)7lQPziQ(s zs<(t7BjZjuZvegmNe&mibQAmxhRRB3(%0X-D~<}_(cXV|@rK2Q`CGyKxGeyOU#d8a z1#2pb){{LXR*<-urE8UdQ#KcPK|k~QD;&OQBd^9RasxT=sh8*2aUCMG+ZzaD>p@D} zWn|tJj)Ns)sK=un007o_XQE7%#3=vhNDO>tGSHz!1$Ylrwu`U-z|@b(^;G7b^mEQ3 zo0*%3PNq1F5Q!+wa)n##Uh%~?G|`a(S1bgarrv%-vk3IH0B8Ba<4hWN$=7_+#~mvG z-XCXvej8{#X}D7Y9Je(}!5les#s)I)$FQO(bD$dA(JW(^x(2&S0^}Zbd+3k+MO{EF zCrCFDGL&KdceLNo_0kq*-63{v_>!kFi*e$A7fIRu_)rwp#O^I8sYM{=-AE+w z6FwxKA#N)^3dWJ1)|8eFldpg#y$Wn*Di}y!;}=A|_6-k3XGP}B&yg3r2=rR z%3Vu~tbAQ00mI}kN)tt(pq-l7L;0Md4t6t_KKc{?v~6>Q&b=S?JI)F9?&h!%p_~){cjdNsM-zVJ