From 467b7f01a2fdca16f813da26fa88ae4427469c6e Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Thu, 24 Sep 2026 04:03:37 +0000 Subject: [PATCH] =?UTF-8?q?feat(packet):=20all=2011=20locales=20=E2=80=94?= =?UTF-8?q?=20Hindi=20unblocked=20with=20a=20vendored=20Devanagari=20face?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The packet now ships in every locale the app ships: en es fr pt de it ro ru ar hi zh. Each carries all 21 translatable keys, the twelve prayer points, the eleven rhythms, both attributions and the privacy note. point4_passage stays omitted everywhere and falls back to the licensed English WEB text, for the reason already recorded — translating scripture here would put unlicensed, unverified Bible text into a printed prayer packet. HINDI WAS BLOCKED ON A FONT, not on a translation. Devanagari renders as tofu boxes in the packet's Georgia/Palatino/serif stack because this machine has no Devanagari font at all. Noto Serif Devanagari (SIL OFL) is now vendored — devanagari subset only, 124 KB, licence and provenance beside it, matching how poppins/ ships latin and latin-ext separately. It is base64-INLINED into the packet, not linked. A packet is a standalone file meant to print offline — the Node generator writes HTML with no server, and the photos are already inlined for exactly this reason — so a URL would break precisely where the packet is most used. Cost: ~165 KB on a 3.5 MB packet, and only for that language. One rule prepends the face to the stack rather than editing 22 hardcoded Georgia declarations, and the browser falls back PER CHARACTER, so Latin scripture references in a Hindi packet still set in Georgia. mr and ne map to the same face; a missing font warns loudly rather than silently producing rectangles. Chinese needed no font work — CJK already shapes in the system stack — only the translation. ★ TWO MEASUREMENTS LIED ABOUT SCRIPT COVERAGE, recorded so nobody automates this cheaply. Comparing shaped width against a missing font reported ar and zh BROKEN and hi FINE — exactly backwards, because Devanagari tofu boxes happen to match real glyph advance. An ink-column-profile heuristic then scored CORRECTLY RENDERED Devanagari the same as tofu (3 vs 2 distinct heights), because its baseline bar gives a uniform profile. Both were abandoned: a detector that blocks working packets is worse than none. Verified: all 11 languages render 8 sheets -> 8 letter portrait pages, map painted, zero overflow. The Hindi prayer-points page was READ AS A PICTURE — conjuncts and matras shaped correctly, no boxes, Latin references still Georgia. --- library/packet/packet-render.js | 38 ++- library/scripts/posters/packet-strings.json | 318 +++++++++++++++++- library/scripts/posters/packet.mjs | 25 +- .../fonts/noto-serif-devanagari/LICENSE | 93 +++++ .../fonts/noto-serif-devanagari/README.md | 24 ++ ...noto-serif-devanagari-400-devanagari.woff2 | Bin 0 -> 126864 bytes 6 files changed, 495 insertions(+), 3 deletions(-) create mode 100644 public/assets/fonts/noto-serif-devanagari/LICENSE create mode 100644 public/assets/fonts/noto-serif-devanagari/README.md create mode 100644 public/assets/fonts/noto-serif-devanagari/noto-serif-devanagari-400-devanagari.woff2 diff --git a/library/packet/packet-render.js b/library/packet/packet-render.js index 3931dbd5f..6e22c1499 100644 --- a/library/packet/packet-render.js +++ b/library/packet/packet-render.js @@ -26,7 +26,23 @@ // so a new Arabic-script locale is one entry here and not a schema change. const RTL = new Set(['ar', 'he', 'fa', 'ur', 'ps', 'sd', 'yi']); -export function createPacketRenderer({ strings, lang = 'en' }) { +// Scripts with no coverage in the packet's Georgia/Palatino/serif stack, mapped to +// the vendored face that does cover them. MEASURED by rendering each script at 48px +// and reading the PIXELS: Latin, Cyrillic, Arabic and CJK all shape correctly with +// system fonts; DEVANAGARI renders as tofu boxes. +// ⚠ A width heuristic got this exactly backwards — it reported Arabic and Chinese +// broken and Hindi fine, because Devanagari tofu boxes happen to match real glyph +// advance. Never infer glyph coverage from measurements; look at the pixels. +const SCRIPT_FONT = { + hi: { family: 'Noto Serif Devanagari', dir: 'noto-serif-devanagari', + file: 'noto-serif-devanagari-400-devanagari.woff2' }, + mr: { family: 'Noto Serif Devanagari', dir: 'noto-serif-devanagari', + file: 'noto-serif-devanagari-400-devanagari.woff2' }, // Marathi, same script + ne: { family: 'Noto Serif Devanagari', dir: 'noto-serif-devanagari', + file: 'noto-serif-devanagari-400-devanagari.woff2' }, // Nepali, same script +}; + +export function createPacketRenderer({ strings, lang = 'en', fontData = null }) { const EN = strings.en; const L = strings[lang] || {}; const t = (k) => (L[k] !== undefined ? L[k] : EN[k]); @@ -56,8 +72,28 @@ export function createPacketRenderer({ strings, lang = 'en' }) { const sheet = (inner, cls = '') => `
|IKK;C+5_CO zF;UZtI+%au@2ur?j`SK{vZJWu#CRkoV4iRw>Td>c(F%{X$*UmThTwJFl<@*^=Vqss zTyz{x!MxzA5zGj2Z%d5waY^yO$(pXrG?{^;%~Nb^UA;-m_O=UX`z7~5YOEE$22TX~C8Nt O4G-)tK{@RNKcpYy4V_S7TZ^z~o!RbKAJp6@vy^t4a@ z#4q>a&v?Xry>y8kF1F|*8(r@@R=0}fZF-F*>h*Q@^-gZ*R&V~sum8f=dUaQEg*Sbj zYhH
uT3vs z5Gs-==*Y}dD m_$})FpvB;59u41JL)C$Ue7Cq6qs|{8S%waw@ouf7C1JksE4$i~g zb^-=>X;h`6Y68PQZajVJ>cqjUg!p*Ir;5JFw+7`OmM;!~dS$7yg9cY_{J&93iO)7& zq~|q_njU=u+&e0eyJzv}hOQ+FYHue*(a6)-Mt-S|5}+6T$60!a!*t3)GLA{%_16%> zRhmmhHjACj2x(KwlAGcdf6@`)^RsBSO%eg?oJW**r yn_-n^{J5hGSKk7rJX?3JQhrLGFG;q1^yX(K$GzXP%gqXhGp zj92j}|1?W=U`o2QwZm;b1M`ISfw)w8Ru)_2vQed`qS!s%mE%py&?gip$cPp-ui8da z4lgxH`|x>0opo0zA1Ef-(8^J&)YYVhZ$&{u?Yfa2Hr6ak9C_PtZiuD?Mc8LW?ine% zH1*fWlKvQt>|hSfXi-vL8|i1CA$qr>oOLs$WunA7LFL=cO})qvUy~kTn$x^)ek9dE zW|hr!I${<&ki2P0^gn^2o^xvq3gw<>z$FB}82Sfb8rYNQcS;6F@V)a4S I5+PQS6%e|5A!vF~2ml#kS|uPPP)oe51+iUU_2HGQd?Ax!yQ%kHTf z0Lt3q$x@Zun(Euk+{qegR298oTQnOOXsQ;9=A*wkYK>hMMe?SWPf| 9UdO3Bj zYS+>y4yiJunG^GfWq-w}VKAGX0pMT?<4H4tF3Fejhe*-EhTt-|qd(0^T3~6VDI&~p zyg%U`;JoGMOU#18(R7hX5!-@#(uRP2PNLiC5A^dF&>pTJznA!WxrUDr4xznMW0*fc zP=tu hvC|gn<2Ee!-o2s$*N;Yf0#VMfoGj_%j@S8DOO4CEa z(~g<1tgx6v*30Le2R^ofAOIFcoEoDi4?)U8f`TT84A60#o&~?i^rY{=FyW^*>B&pF zeBgwdQ~b494hEL;u*G6Z3S(pvzkIHIb;n(g8zvWV8qHH45uQg#N&?LngOg)L3Ia5x z1b>94OotCjV>b9gp_g?JborzMnTyti30NyJa&bKo^XZfS3e4kE<_e&7Qf3>16%V&* zC`YUH-Dno3j?5GGm9*GnO_77u#LGIQG2C3NK(C*D0RYkD1g;R`cnU}rSs!KG;iw9y zYJtm)bX~bPe!f$u8j`Fi(0k0RYDG;|Ux*CtL+4{!(=0%PENg}qmaZeA`+*YHn)IC! zOUFRyagNRr1LeRx_ZBHG#grU9X4YyV27u*#*BG7|H`Nj05|s7%;lJVGtDJk@fkB)z z@~DwWZ56S+Z%=UC@=}OJ+y$7PyLcL~1B(XulxUk;n8Zg!K5|Fd?$QjT%RPYDX~YGu z$A~I<|6Gm o~mIk{)x8eEL2M^$akk zsT&J?v!&CrWNRN|**1*K$|U2>$DD=OuCF%LGHZo@^pif)OY;xu4qfr1Gk6o~l$KZE zE2Q+&Z+8a$b;Pie6aR2#_B&hct7TBoQLn`i?~G |Yn_$DXDq zqZ%eYQDy-Z^>l|?Zy4z1*;il8d!33#hw7~z2rvk!O&*WUOK*kl9i1|U8IgZ3 zWa#9dpng zTdcC&;spVp-=v?4P}7{tPep{O7&6Xs=T bLbli$&i3* z`*v_k&ILzov%(x>^i5tKv+fcQ5@ZYWIEUY 1Ua^2J|<%%dZQ_-A~)in$xdMvrlA)~vIT u zf2lsG*X+syh}h~`H^!CsnAv-9oP?}8TF>u1LWJx~bq&zB{ow{d|6J{QxK@k!@N=Uh zJh|@Z?0C53L{Q2PBJ W@qTH08&VNNYAkiyYQyC0rpC)qb`-Y%=J) zc-zB9bZE5mVZBT1r*=;UXK`(%{%USHy&^)FwxW-xO4YK4Y)R6{8nYKDcoP>5>o&ys zb6=HB2qbj&WQl_?gN_T04$!UHzOzEa-l EgjQe-^b!a!JiHR`j#JlloPL+314mPraft_ zj)^nA1ai$Nj!-&N3QD29j*h#5*^d0=${x=iX{K=wHfF^f&j$4V5jFqEaVdD>?BjY< zgK-%$XYMFDDa@KfoBU (c<0(Lc}lO_zeg1|#`GeraS!ptJW0SzL5w?|a?4o$mC zLLeEgZ#5}|nG*s6#>8EKd1&`(-cC#a9UGmHY&}G$MeBzs($vZ#N6oI8nM@WP$`+LX z{vg5z!a9*=@=j?=hl #yfWMWuN;>svaak8{-`Y6`1vd|J)4>40mr@st6( z%$U3beCW#4BSLbZ72`Drw6Zng n;AYcG45Rz)kxtggml6tT9c`)FQFxwIZF%LaOWCW&%7t3LzKk znE+tTf^6UiE#pz>ofP$^gEnV;9m~VxJRa9EDOrhxir#oy-d29Jpv#566j?~`fgL=q zTS7Bhq2!tlnk--aHub-yD@Du$zX(PkVeWhDILwircOtH5a@{xX;9=gY-XkJTV5`y) zBKGAlmD1Osfqj-26S3S_-|IaqA}%9^_=1R7Us(BD5L{BiZl9vVvq43dMFfT1mDZbL zy}C1rm=n!hH|m7xuXeZxHf1*T0XTO0prqnUBFx$;zAF5;((Co!5N=;Q9ACjgn04zE zecjrOG<4gR$d^r&QXgp>s8o96fPjp`q-5_Ep1A0*ErAab)rHDX}EP z&&P+bfdm*Aaz8KxL?q-?hJ*7;rq5bu)Pb%+0R?YP6w$0?vvyn{?0*0179=HB%Gs3q z!bPm7aNTk0)OXf@=VzX7QUhucQH4rYh+LoXWVbl}2ms9VA*mB}l>(Tmc#S(L39^}6 z^ Js6m$}%KX?n5Y$+OoWN`2#Z?5C^HW@^m=nJQ+} z|Ex&%CNax1GZW$(%jicVQi8=$0$;JY?Ysjvix+E>5qk2`geM<|^3J^`mvVc7Altpb z%q$7^rJ{VKH7B2VXG5YEd*AW;P%(;4d}O>H*9i#vXwB+hqUmOtvQMJl;-Ow4lVUxB zKZ&}9A?ECos24o7Q=%1;ZHGj$6QVJ=TJ6P2lSR!U(6+AqXAJeWc64P^y3ilSm6Yss zYQg!IPFY`Vxq-3ugo!iAR;Cm8V6h*fZ9`=rMCSr;FGTIaq6c uoP;aQ>}&kme@q_QkV zJF-Qav;k`|qGemG`I%!W|9ce^GrVEI5$nt_LML?;l1vD$Sc349Zl*f5GzYD0)*o)+ zWIIPR@zcg=z@nAuKvWAei;~S8uA!wCtFRhTR4!Cj{e%N@`Un(S_EPvCHG3%1$`!jQ zDghf^L>yjrQq9GNql;CU;g%A5n=p_;MxftQ2qU8{9TU{pnqe``wqzuOE}OHO)wchh zaDW&|3!VxOo%|=oGrNiblw(my&o>Uo0C>*?qF$L|Gx=V3aEy z(BEeXELUXP^aCAcr9vzt62p*I;SrU`Bz&4&`;cF$DU&_ft$d AjY=Ia`_TwsFm@KV@!zk*Fcf&-QbZt5ty4iHah0`ZrJxS~F zgdn6h`Hn3!jF;5WtTfk9T{TrvK^esrTCb{CF4+W0D?l;{RidP9X&8(u%t_xVNq5;~ zWdUa>&JewlW>P+6BSfwH#RHU4$Ta;F5V2^@t5=OGR_Yy-A#>?Vb+~jPhg%@52j)ZK z@c?Y5n7`hT$cD~|SgVN@<_J=67XZ!hCcqz2h})3adqo@}c;SML!mvgHf))Vw%}YQi zByiXlr6&(-O-MiULdL0&ROYPCe6=0Qb}&JnQ#**Xr*v{Bc_PPuU^m%u%twDzNB$gK ze9BMyILAB^%>^d=wl9*H@$o%z$h*ARYrJHm#`%<@4jt(M?(Pn5TGntqSE@)n7CE7r zr<~z&Rz)Q-NS9TPQSQ~PKN$J$0TCyY_7NlWHgE6Lq*(UFLfj(kvFwdSrn)q=ZPgwc zPo(>n@lF4J-45+~A~1!_rlsnXw4RP>(CnEGIjbZn_{ZD*DpoDw;GZ2^5~JY!Qko zY-*A$O0g~< !WUs=OU4pY?f@zTol1P?85urR|c)NV3>;3ZISk;_ezu(Ijx%q~Lz? zDecWXm$WqtsM^{gGe)*_(2ca_<`pOnqZ3%w76uNOeOmMv_=?o}EAY#sdQMF1uJK84 z*Y#W@_(m-p>P)M}=9yNNqi9-1_J~?p>u@@3s{||)YzsCXS&KZfur1hbWGyH{jAYd1 z9Ny9@gkcOK168ZC-wukX!`P}(^&lDNX2iHwaa(m_sFe?%nwAs$%(P(ZO?JSNOt#7T zP)34%o29@Go)F5$;I7SJbKx_@J2NsE?OIKXOhvbLATucAR?{ZSoQNH>M6DOQX5so* z?w!G|pBl %B|A9hyL1CGuK0i zp-oXvZR(B-PEH*Dk`?vbjn53aTOSpiSzWaz9C38;IYDNy9WNSa c3-c+)r!pPpug nt$o%7bqLnALs^hv)=7rL-WjX6X2wc;)*@MwF8EVk+{VzkzDe^3K2^ zB(2Hvl)VfE(BkLQYKbdXp;E9lI0$*Mz8+q1KnJa#`O3&3VlO ADeu?|RiUMBBTW`9zG5t(_1Q^yr!S^AO>-QcYvMFVdNQ6 ()bX244$e~##JmQlyXvEW`stR+8FC{gRV)Wc-1Od2Q_Mq?ZM0YK? zei+`RAW_P>W*yE@o%in9HEQaCpiik+dTIo{!|4d?BLZrW+#!`g?n$aF)ll#G4#=D& zQ1@E(%4iMFdwv1w0{)>o*f*-TtNq@X@JHT$a51J?L%xBl&Kl_VOmDmPF`u*H5+lMd zPQ~Z37(@klT_|TxRdV=D=E-QI ksu8Ww=y-0a1NJjU zY54~g*(x=ac+GM@1T1b;sueLmEmehJ`a-$h65;Jq@PjZlE984PV<{(2l(rvUjED$3 zW#GmG3pP`$YK4Q6z)AhD9|jj&%pMhH3FemPHQ5agvj`$FN4`yjXBe}-U;t}t4yjqN z^58SimF3luYl`-#VYGZ9TFk{w`wRy#ki~A>*}k@M9jsS$CF=C0sW!>b5;^0kXoMd{ zPnAy<$xITXZA$6UJg*^Y%xfaS>hZ2HO^u!&6sW}at}5w|Ces?)2$-&F=xI}QE;{`{ zDqjxyUBh6eRoN@ai#yB#$;)sE$%C#05Xw~;*Fdn1R$-qoUO3?+7i=>s9wz%9q+p^^ zABl9&x M%=jvxYkiv6{wF~+*~q`MhsTm8QwVkK zUy^-&gnTRwgaZJ>M0rfUPsao%A2By%cbjXz{~l2l0W$s?9P^7V SBOk5cP?tt-f-Kq@TF$BVH6Jcy`<*v>5=68*^42)VXJm2$q3z?WxbpF)jZ94Cn zSI Hg==8KfY1>D*MZ M7b5tfyZR2( za3mmD1-UZ&D>hyMWH2L_I~so-nPulKCj5h+fxTtzO-+q1<8ttL1fT8*w&%J_)+A?6 z+`)!?x?j;B+3MvT$t#|f#L;H+;@kWd%*f~Yrk}1y!FqKxO4EB=FeFFFvw+pZGMzG( zf>?5B()L6m3HeDReKdnaX$g4|zj{0# |jD2Wh8%$Iecc zoYYx*WVDIb0D*LW(^*DC(z5TJqVG}Wi7K-k{4n|9lA5Yy` z^D%nbnn>m?U5r*cBk_EMuBO1FyW>#{v-xE1J%JSqU+q-eTf7e|L5ErMOWu4+wPa{* zS8laXjE3a#hq&Lx755wcrQ+Yr_Al?7Kzp9_#6b_*kq>yyc9_ogdtP+=antP@vr&I_ zQMU8Mg2J5vo#b`QAAcC>0HeLi4O{L lf4XI9LvI;p24K3h; 1d5dW+XwzJ>*=#3s^ew+{#F}ApcXYTf;P`ChIrhP559^6)m$Cz b_JtzR8(P{@#`4R=G303$pOf8UTa77$7wBBv=)^<6~ sGz* zz4xh8=Z~K5(>>EwQ*&mzo;hBepwLAEG #z16>Q9{fb%v1#I zOH%G2NXb1&SZeIL1?1e8%HV#&yZWG#pJ>}ex{{_?VwUPTKh)J(;T`kXLB&BgO-o{i zT8FxM0l11F>GKraYPtdAfW9JC~4e~Th;o%dd93o&NbHa2i7>|zrx;O7jqo6 z*g0fFerbsqw&8HaG*G29Ua>yhs@1@kNV7P!D0%eJ?2IW z@a0*GYPPC+Uo*>FF7+=k!}rEp!H6$2PaGHjq;hGNo|FKqC!;8`3R@av!XV7KHM=#Z z4zQumU2JGeHeP`xvwZS8<%esrvPkFrg>% $1L2Gu;!H}MdA(H~bn6@^yj7TpX5>Kpm4_L4MY#!RQoNU5xe%oD|BG0H%=Pwd| z(yKo{fBnYl!GQ|y8DySeGuZ%>5Kp ec Gn)OD!vuoFvytWJZ_4t-gn8Pm=JJ#v2f2oTUO?aVkPx=M|??1^p7{ zr|Ppg(<6TYvxeCsElFLWK0==lt)4SyRA44w*hAO&@Pb=0b(i|eE7sL)w{ud151nd4 z(aPvo&!QbJy!7@Syh3}HQFWuvKoLO&Cd0WMJ3?~$U!ca?*Z#iqyF3t2lp8bGfo?)1 z9y5R(aW(h8ho+t+sU}v4pe(&(ZNhVNjpNRMlHykLgg0wm&QThzY5FR~Mo&O;toh$> zY%kWxbF0|xM)$PqH&M;B#}Aa+zX@RCG+p`a&e{$Rprq=Gtyf8EMv$Y_{xap+hD<-! z83>lJ*Be{=xWTx{8ch&jnU2nxF3Vb;KFvRS!=x#w@URaG8h?c9WHU%jIY{M5PP>&k z2s=hv^Bfa0HkqL`66-R-1NI$MGG0!(3h*xVR0ZtncP?>w?|jw={xEpc`7Y*# M{myq71D#>U$#j<7 z*^*z~2jubJ?vcL{eCF5%bw>xrL2BRIf62VN>rG=viadK|ehe64>tJIH5WL2Y4JqA; z>GNA$Aw^Bml(9yol0#lk62WRKSGy`b$Z0SUhe>VRZvhI~t#{43DcO8zsnbkq3+gCd zIbG;u%!Vk&leH@b0#b#~jW`Ut+xx@#Q%t0WOz3|oJuuHKK^GeNawoR%dq0sVL~s;> zZSp3Z$s+xARf%I;L*w@oHoHugwOfd5RoFxq*>Gw;BY?w_TXU!!y==;aNZr))P?K7j zr6?5=Bt;;akhY2jFJ#D{y`Y-q(v K{QYbw}d#KTCzs$rI z*-@3Ra}$Mm2H?QldR`=)A*8r|)G7^UwH60hqLr= ;Am53&IEVFg3H7kBYSr+Vir$_1{Mye0(j1bw)HEI)@`tmQBm z8qEZO_%u5>FI_S90(TgjZgrJkPgxoS)3(SDf9%oZY*hmfo0pbCTWc{kHohCG125C^hEA)!n5sf6WEK3)5V96P8Yo?0UfQ%(cCGJPW2zt z7w8Gf Vy&&C|#fUGqueDGa6_BH!Ol)Q=biQ@1jPjD#KZp#7q JX4*4@iu6yT(y+O%f#vA4RRK@A<$Ya@MfMc z$XP;N0;9QnT)wnR(p8IYaJvjRH+tZ2Zi~Q9VM~fEK4JCngDfsI)Vl73i8PCeSwIS5 zu@8T+s <g>%p{i%G7$hD>Nl4leY?| zXTmM06TqO}Y*24AKAhAlDx)<0nTJ~meQwS<^3|5D-?BMUWf&zp#|Ll>>KZ*! u z;cbu-7=a3C(3dhPJ4DeUU|zZywJhiJ2#9V0K6fvat;qY8ElMA%uD`a1y{c?Wp1((4 zk7-<+Y(&A8r9Id5COX14b{bs|owUr#diu2x8Ueh0XqLr;-t@74KZi9u` %yf#xVPGc 4J&o~WjjME z#f@^L)i>Y72EDCKp`039H(l9fOm7!vZfCVly0_H%_qh2D3)Z>EJ@aKGLkcw~7o5E1 zFWfjdjQ2ik%J}P~A`%v(P`G~g=p X`=!$TdJ;je~ zn=agEV9+Hp3x40$Ri(h(fQOs_XWQxbA)-~aOa?KneLR^hCfRR)ShiPb4cjcZl4ys~ zs3k4rYa*u)#L YB~nrqRrM_=05+&dp3Hz {J%)q008R~dSmR2gn z!xPHoexJOlN*NI2t%BTOTZ`*FMW)EFd+y~ot_I>EhTVjRFxFTmgiHI8_ z#uc8VxY4jaq=; Smf=}ZW0!=+WsxiHtkL;MpLuu!oKa @txL2=di??byw-+;B8g-*|oNiI_ z`Sn&Cxv>H{0dvwq04`LCj{?i(W7mKW %7ZUz(4PGj_81)fZ_qUt#y^z+HQG`=No@AVq9`GueS zd~Jl3{GKE2F8sFQ9}1r7?r_NL8?HJLbFr%?7M$=A5N2wpcK}4tnn%F%TQi}IG1=s{ zru}-0KF%?$=Yse{Hm`B_@GPF_AsZXk7*CoeDU|X10zRP7MAhh#L_x`P2_haO^fW#H zAhELrBZ21`8vpK(h#6T|Y%kl^HKTQDW#SpQ>4-n)%X9 +?dU~j@Wv0^8*?3OVQ+~nAT#F!VtaS!j+d6J6PS5UR#xiKY|hGaHZ_F4+v~Y z q(cq zwBUNnWFPZ{@sx^pwt^u^hTxc?#8VN7&mr3~=he1JeNu_Dj7oA@x@Lw&r)T5drK$Qc zus9 za$EM~84p=5R)$RHglA zY1&=gS3XhttP#RPCIJ&`7#CtXyyGp;#HXvBRn7CrA210GJ;>)qlw151ODZ_W1JreQ zZB%OhT(-_%>PdwoQN3gJx2C2F ^s1e(sHh(Bn-i&>{`I8_|QT$+iYv>VvsarOBAQMoL{}i@1SbsZy zTYfS5pyKudLIkA|j%O$x(V52YZj@74%}%*SIP$=K<;Xq1$-L_KRl1*ekgBUTfKi3_ zv<9bwlskpIQjvnN`4A%qZFiBxG20%vfG{iP O2IB%A4-jdvF zi-&!p<1@=$xcx17pkWj4QX&;$dnmtJ3M_4|grwcIC-}zylFQNjxfw_u#$QO;rgXrr zBZlTbSZIBFq$W6}my5<~O@uFX-{&y(FoZ)$(P1F2v2{~NyZGd{MlSzOg}UYDvqJO! z6RjF<6F)8R2{8GX;67)y_1oCS_3xidbe8a_?vnLLE{gH=qa&2vJKusrB@uyoggo@n zaRrDX;=%bJznIl!iP8J_orczFTj-8Oe 9U{s;^>5BN){?64g zK}yEzM5xM{!UMqaU(@Hdgd?_XFgsyU=ti@(C1#lM13(r0&OOlS)vs;5Wq8fB7Z-I~ znkOpcZCA?pWl~YMOrm0TBwtf?4_{BgKrB9GIsTw7;E}!*`0j9)M#Qp9d`)IzU?nAk z)swr))RL8KC#xP)SGqPYWhT{_l3!|9y5y$u8LBEKb)!)nXo=kC%-wbge~>hP(6IkS z1pxOOqz0a1> UPWCZRO&`5Vaaq5pClhez(?U_1Yb!;>de z_9hvJHVF6ywhK3q@q;ukoXa>Wh8P<(n-R5}s;v$Tc(`EDXsG&_PDRA?O1tf^^C~lM zBniq2kIp8&^iw86noHd(vmN=6PQQWlkO8$wWiAd1JJ!rOQ-dFg2E_^$B6aVHq#wOq zKHQF1oo$x}O;IQ68Afwmc`8_iaq6yr3c3X(C47znOc&wG^o3TWhU!KWZoaYDpt8)Y zzwZ5oNi!7hhuzC=ofe%z)}2{Xa6c=GE+^Qeh}A1h4M+zDrH^pCN2yQ!gA#xf5?M$=!pcd_= zLo>cFo^&)_JZ5}7xLggV_sbcF2FGdBrbHs3{DO;dckbq#)1+gzw!C(RlP~u%vhTCF zq^K+zI<;4DcbZJ;P7=gU>PM5K_<`hiSPjk@FHA34z8klIT&OiIM~Qhh6N$a_N;4@% zX|CH<-kBzxG?A*Stm0YX-|WCLtQRuR_baeKl1cGhp(n)5&-#6*ou^NFQ@IYqu|ilE ztLG>zm!z#NuTX9W3^hS!uMdjUqxx+-46>`ppFI1TSNNNr0;ZhC_^4r;Hde+kyXAgF zh!2+xe_*I3+khnRs7ZS;k+7jYrDPUcdvJ|dh^eexe*lApaKSb#aJ>+5yVbam{;=B< z()`AUaxmx4r#+{TD3Z_~^y3B|i0#PrSNq5NuuOl?2~Q!E@CMqM!N7Ok1@-$jgZKiN z=c!*sb1Au1U{LTO$&S9a0;BnAD5+sm{uLjMc1?HmbM24*45G9WJ;i8*G!l_Yx;=Ow zePf8b1x^EzMc=MYE+C$W28wQgLOdgz;fcdo-L6_-v0Y`m6O)`Dz~yk?q=*nUDxSLc z==v$<$t{AH-Usou1gveV1L$D((g*MgVv|~dOnsVLxLFh7V_|plWe2%dtV%{)Wo5?r z3e3tp+w;xUXk$z49D)RH3QS8xQ$YGnk`Z_X0ntwAd&1nRd(Tx8<{NoLf#r#1uU4K1 z@97~1@PWk%zC-djUeBc6ac0`2`&N9=GI8)FWV3?ABu0o#XeA;&AwM}fD;z+D>99N- zh={d3ORM)vTfj=oe>GTM!90Y?Y0Oe)O#Wtqh*<<4Pc4GEZw!?m67oZL4&o>YDtQ;4 zLm5W!cL?0gnJ4NY^nwa+-T60B+|I}%i=acC?MV1Rn)AzxRX2|z5mUV7t3cnLn-5QR zTxaoHg-zPGP+`F2(s!N(`uEQuL>s8}&=--pU8mog0i}~<;h&&|u;1O6G9?Td7C@^! zhfDi-U4rzibX<5F +mYIlvk0sRx`^6N%1d3uD&E@cU$XTH2i(X_wj4j& zhK` HbPZz6w-YDds7frttfX3hN=gS_>AU%%A(H^0#% z7t>jGE58$2)4eDKrgvR`f3qf97-y_qrE|95m}O-4uSp6`>^(^t7?5_}6c_fPn8yTc zREA@C&ea$ZKV6tSY6M8*D4I6rd6Y!I21&Im*Nl1q0=#k2-;PEHzq`3PSqE zqU8j`Li}IP_dl>E)`QSw m)97I=6edr2- zKYmA%9vxf+#$!Tt*Z);!#*hbJ9B@nis{!T>$=e_^1-Co1KJGbSKx8kEddGa`oz@Ml z|J%uJKQ*`6i~?& GbQATB~d15ky+&>XU5}p|qw?Lcrc)=|jLNtvVuWr)jR~jjGaj zgFdHUUq`YPgf7Uy$h<;KH^&kfXtA)dke}f8RQFfb(`V|oeldsZEcK?v971x(zBf;@ z`l|5xW#YF572a|^v0=z0N2sFb5(^f7p!1H4#zez(m1+Gp2NTwyPr{}arcN}3!riD! z%TjL|`uF2IQoJEv$bG>Pjzxeh!)RMpj;42p_PzQE7QHIH$$-C}0#$$r-DS;ePW}^Q zG?}Iln?OZtUf9Xgy<@3_S8Q6rPSMNp^jC9YxnaWq6st7Uw*DQjzir$@zM6gOFz05E z>;3kd-wE`nzLT8fl+SKBMg78JMFpw_kta;Fq2k|!m6TSuI^h}W%tT&|-`&$r+vY={ zIDJlmP^_6GsG_k{;JXz7P0D_0y8dTQurTvfm>B}c4Ts9)&Kr?Z=yyMJ;T}1B+jv25 zbjIk=>ivft^rZV3k9WKySJ=qc00!7mv1i1U;T*3^8w0*f9v4uf`l+M*$>a>Nmp6*R zu0v6uO_})k7u`}*v _W}&;u9x-b4<7~mDMah_Tc=SsOhwqgZ>^uh8LPV`snvtOK_(kLaj*(YR8Y$i zy)gZcVaZf6;&iD-Pqs1?Gp2s?dae<{7IFdFIsV$+bui(Ib16d^W$xeP*qPNp8~p`0 z*};U;X??r}Ep54(!L0$o%68Le5cswlIoyktx-i))am_pN!)jlnV06#YYp*K?>XT_U zH);6`&>StNmuu&NKfP>lJ@M`SW}A8Y)C+w{?5jSxGfJ%|vvV8e1cjt@5|NIw5PXHRT?e#bnMOOG9LXgtvm70UQoHmYBx)#Z^>==Oh2-c(-|P9^42n0+DoleF zk3X=>rRKBTF?K77XsZ?irUPNIuOoI?&@lKSz*(dH!tMqv4kQRy5}6jrF2WRqUEi|< z1SuhqtdLIEs2-2@X+v1qt_W i%(Y1rv+U8? zgeKmo(2qC5`ENjfgDFk2&5SsT00kCzjbBaYTmGHd7Vig?G^DZ7r*P36>51uB$%A@$ zPpM!&_{O=IbA0TIxq}MYf#Xnx;nt(C+&3pTb=>fOLLumyIVbYNahhBCe|M46)rb`UG<6&&m?ky(PP|LgG$nbCG?Zm9G&Jr* z&JF+Ok4PRyjaO&7`F=bHxKt8pRV&MNVL(tws&%kJpt*4Fg(@`xArm$s^i$H-akN$3 zkv#B{Wzbsbq? FPo7EZ1#l7&@Co0AvUcUo)h%Cbem-p4 zp+*<);V afRURAU_cJ$ +Q z(f?{HUDAhzl1wKJhJJ`LUdu>%3-)OqJ&R_mk4;u+B_lglX?+a#6;`L+-580O*Piep zs(tww;Ak`os``-DF=gbQuPAk+^l{W0d5Hl5OO?i*mcuyE3{lQ`lXE3b7yM?ZtDUqT z#KG<@FUn!=wQCuNo%uC#4nWy-S#uy~ne>4rJ2wfifPjJ3OWz~qOihh6_JnG$*_)-& zVL0sxxh@S4n(;KdsP>UaaBsydsVrCm!OzCz6ZfUKqeTeC*l6fs66yx4XC3N82X8YL zxdjd8Dj}2@>VfGqRj^S%&BL3jwueiP Ozwb4dqr~LisAdh}y&6EB9DS0{T zQJ9rwkx=4e;X&0TONQvum+s(8oLuVDPvJ~XaT&*P+kC0+j`Cus`ma|0{h-no1MXrG z@(!S{lN5n**Jr}IR+D0zpgfSHptCLV289sm32E4m)bUzD6H!|!0{_A=G{yYq_IAo9 zJ)^ffn@u3p?1y{-q09n27G3R0{)`?&52C=ekzdBVouInA`nS3RPkt{*0Li0F!X&@o zOEx8eTLDUt#G7Q}F%|&PK&A6k+1JFd!=~kBVZMAEPDO-STKE)1B0Xxpn+lGUD7xej z93|&EM^2rprI6r~D6`0Pqc(Jdk6DGPxo&WSi& Ow^y~pktq{eO9#WT^``%CzZdHASt{P|>OHYvZRlNLEUpZ$ o_oF{h_^B`r1>1vwt5X4k6^FasOg)V>}TR9Gew+!+WT(Ss-ocbA3>p^=e z43GP> pG;mEzeL_!fTqB&%!wslgYSX4T%L{ffag?d3hUH1ewklJr#DH#GB{JRo zMB;nNiwp^F%Xa*|Bd2^OlnB^*%Y(=D#_Nxb9pAPGe7*wKL{==jTTn5FI=wgW%wfHJ z-dz2->FfLQTl!e(uGJgU8L=+k+*@F1+EC4j>4-d^sh=jfIqBD5zN $*41;} z((t+VX{gM>B~ju4dN4ap$oozt3hm>Vy5m%{jP#3-Hrv)_Q&{g7Rp8(mW@|OQ{}v2* z;2Fs|XTg8nho^8_bp`i6VpAiL2l>tRxNhxfRfhO8f25!+v)qc{d3MgHc4+R ZKvJ8`bf-Xv6(7#RK0KHUxRBgY2cf2!EPnAId~34;aoHc%pNFSp6T^y zR )rIUSmG$~0LOrqlS zbG0Om!PH06uUF2_SN |3*uv`=m|% zBYvvuq(QsiF9*1)M8&3Gv)!bK^V2 %SiK7-m&Sh^kTV#;6gVGFi(e z{p(!w5A2%;y7wKru?a4$3vVhP?r2K<8YQ9v7Zy8-zoI!~{J?;I{2KS%i@eFiAEriy zCWNMMJ;Tbcr*`ZVI`tA=Ema1(OYB48!Jyf|6Z=?nPqwn_0fIa$n(#BEjQ%`y-ZnIl zTe!Mlduh>66tPe*_88gJc5BQ&O_bA=-ww_XQR4Mu4>JAwC|OjD$FWL%#NeVh==CJg zIGCHHpqO$?k_~auGX)`Ly4>#)d&27o2t91A{OBpx!uRDM=D08p<#OGTZqr)TGKt%C zZCE>}N_@dR<;gCtgh&tW*3dqntEVZhym;8vU;DF(>%nFG4(zI+u1yS~I}`<#h`lP9 zWZv?sqG*3u3+zUJd!#JQEgbfwzrZ(>rG=QZ`F=Ar{6P4+i e||6O;z+r zvtQA%31&nLv8KT$W$_T=Q64ajp(#oNyBjCVz;E;x$ILQIQpBw+xk)lhnE{A^3&ff$ z)Og1m>vfmI^flB4a;T&G$k|`16KV9XXWWg^<9;+TQDm_eSsM97+UoBveU`CQBM@fT z!1R~~a_o%y2r %V3i z`drIN$#d!FykOwaYKDz~U3Dg^MPKyXxfLRMi6(jtzJ5)BcF^x|Iu=)wk`q&qkP%TF zNlpukN&+Fe-gZ=)8OP>A(xa05ZoT@1V|}ujY>3M~p PvsCpvK+VaN5W-bSl8w@qO^z<`>pw2MVB|F}5Vsx9VQ>jQ&~^kq7>5dba$QY> zzfV!ac;RD)N|K;3Q$rxg7ctVBp(cauI;VO-`e~8@@U3xwsYpZMj|`3VlRR6@CYA)F zxpROhpCH=$Bmk2&{mciAl0HPkXv)gBw`@Su?EK5v^`==(^Q@$AY`K2sO!uiY<`NZ# zIWHD1vV$g2Djz0`V;k}hfC&hX5es7?Auz*-aM$$eR*d7;)!ERR9BIi)r0+ f`BkT%bJ) kvxdR6V&*Av7~st zM(7*Q_x)_zM}zBi*vadYC9s}*l$A3U7j0{2f(xvWCKE^4dyOT?c~_<2A)dE^A96YR zApi+e)Z6>qix2eme*iG~U9s)lmvR~UJ{``7`g%G5+dYmJ!d)#D72@)^Ib9CtMBWq_ zbXQ%rfU1;{i0_SUD_O>B8w}j{>!UyVdTu)d9k(RnfTk la>3#-MYWQr-kdwjQA6XT~Iz(zof0r z&dX~hVAU=mZLhx6{{Xh}H^KDYVy;K<_xD|u-WH4X_&VL?`=~-Z=sB95$qUWC4VlYs znd0 V%f0%|?2w|AIWZ>T##U^l2zu5PHe{er z9~tZ(4J=&G>cJjzO(Q?Wv|AT=R~b8{bwyCUsVvjJMup%JXJ?B!0hyno-iFlv%{&QG zVwq}|l+S@KvmS9=#5Zg6AvVmSJguQ?jp3o7<(JQvF3b{<+dE~(T}whqmwc=L3MQB6 zqzx{{7lGfhi0c}^tObZd7(V=g`1CT;PWaq0vYybmR}*_eDv4!GIR!gq#h87d%pb|J z&(S&9Y+5em6r+w?T>0Rj(}ee%k)=B50Uu(aDbdQ}Z}*cn7hoQo9a>Qog9VUmF3x70 zzGqPLBVzfbJezL?ip+yny?9xN1EAM% z|CKU5akgSFkHNSi9f|+OiTJ;9@}CeK#dn=*(1{S0 ECuGexU!$vWug2Hw%#4hM` M61v#pUK@r@A~ftOHSS}ebB8sfOH`XU!(c!!X!Mh*BhmZ{A{(~{NJ8S zH;eyW@W0ycGye}g`%MqVrvI0$^-}RaYY%~@#`mki!8eY}h{37 7$o@hNO~#T*kh3q(Spw_jr2WterEZWF*I}(>0;I5!u~gNjsO0<9spp>5Qk+ z*|FNb8nGpOLsWHB+J-M>Lo|Mv=bwUDe2cnXwR6p~#}ancqW?X<|C_g$l1-{ls!k;$ z$4ub}PudkDt|H@kTWnT)+wzKyEeGaF(h{c)9!Fg~Zmg?x$^*a0FGXBGgAGah;#L(? z=Y`#a1?^mfRmuMxaBJDn|NF>3{y%-p6XnecXI6bYj_sNwx(A$JZ*IdQR(LJ(3qTZ8 zpn!-4##!j~v)b| ev2X;uFmO)Apar zRr7xqtDvRI?O5`=O-Kp;kH`gz`$A*0U)S&XUu3%91!&nRqDo15o&^^kd83!SiN29+ zvWju0X-;vdf+4L}y{*7j#x8q _fSdaFj@D%y1EUxKOWP=2icbSN_#o z@4AE8y{BqM*Rp+i3L{d6Fp;<)*d#;nVb%)=SGJq>7mb@M<~u7-+x45k%T83CK}`@u z=qw8^ga3RlYJ2Q-{&U(>Xa82GkV;l7>LC$JQeMHvW*L7{b2}5Upg||2RP}Gsnu|S3 zy@zekyD`vQ@h>*5Qdk5Su^&HSz~X+67ORgqw`xjx5el;3qu|+= p6a>7ugBhRdfVez(c-12oIiA>vg@x?YnKzk6_<)vVoZWKPSV&9NBrhNsJC;=g+c zog-zd)#SJcvl)HQL;fDS-re?LbyPO cXrHw0K zAh6IGioKCNs{V`2Dh&>&9e-p87WF@%$cX*}>Hd^er@W31&nt)q87 G#hn6b|c!5}DMb{|Cy- z|NLNK^?8ZNYuBbhJ)SqOI +*>R)nOv-p~evSbXSt6n}= z2K_8Qt9#NjMu|!nVXJyQ0;wD~aD+x0A4^)nK@OW6uwe@iC`OS%iaF>d{HsWzT6Nn? z)0zFq3F=e6x!vG8y T|w!k>52}E`+jAappY{m0? zc^WsL*2Wgg$@HME&%jz$)mCdtT>H!~9~;%;ViOh;LhNc6Sy^RaMrYQT;3Stlrk#e= zams0buF_8GaTe&mDOSbH>AL;>$%PT1LpoDGvySd`%>f@Pdi6mNuy7j|U7|=GLx4XN zpE&XeJz|lVh&JlP)VHBvJgg ?Nd- z$jNc! 4IjI3T+A15<)*;eMgm8CTrH;M9?7y1bk21^(bYeL$d!h+8Ylmd&bv`Xwze-SR zNJIZ lVi``5GCfze`K6O&=)n9CrzUX1{J d-dvv{99t zxx&C4xkji`gs{VuUNosF`SjAb5$1K}Yf$Llg`0G!XZ`M3w(}D+Q%@2>WKX6NDx%Y) z);CJaDC501GRe+*Djg7*^ejzP&>1Mg$UBu3Dr1RN`0GmLd626_8bXiwI-%P)GqVFw z>R>x!p*<9&$dKHCi7r84ogfO;kM(va 4!eEL+ z8X<2p!Rul__G2$gdUcgpUe)y_a7U?1EVnZ}){{+@c+!t?rZ>eHjg!uxk*Wg=k10*S zr#^$Ia$s@Nf;y#P*s16-c5CfsnYz>-CAlVR2vf(P4{fscaI3Z{sin7*gG5ny{4sc( zjX#THFg8a#lgPQKzd2UT&E%32ZY! ~mh)CMdByj+b+eL-EQ|%&}5~h|o*Sr8~72(jzO>XD10LM?9Fvx~WX-u_{pR z{;4Errg4()Hs+JOV&sLz>bDQS^ZKU`T_ytGjE!C89q~j||8-r7z@l16%W*&rLn0PF zd=<8!hIT&WOrX4t(QnFEf)5%v5r^eIy2@{)I?WnyeR^Psu$x08&%Q~Ro+Y~@3A&oS zX?f>Xh}Rn=PyWHixbu$SMW&Qw^A-V~;opmMR13TjazvKq+(g@3>*+nE{u?H_=%P4E zrc7&og|9P_W413jkd5H)6^i5saS54!Ex1~z&+U1fFNbH_G;TF_(Tv+7TbU$-qD>kh zE(-c*>no4SKl`k8?5{di6~>|eIM5lFa0TR^f#8iW-@68>&QwLJtEp27>dH>qS>!zG z6#F#u3j4~+L%ux?Ub;gVk5PFQ(#Jd4hEX|ZmFk&5ayHMRu*A73K9lbG0XkY|hdqg6 zjvWEC#4dg}|GEp!E>b7B@*)wdpIIA>v{>Mz1av>z=QUie{{f2qGTsq;2-{hUVG&V5 zk>d&WJ@I!JhobfKiIHPf@P`8DSRG_(e7m51lGho@PC}3ehj5~CS7<8Hgdk_Oab+i} zo$4ewGCh~N *udnxm>3aUy r{<=R zV$F*aX?52wvgQT^(=*L0iy5s9PF;^0tqJ_aDi{c_!a1eU>$9a(%Us=3;NUv%>=2C# ztH0B%_5ltg;D(HNyF^#>e-IiM#+g6`o`LH`255sz8SujTG137F#G}(#nUfjt)>Pbl zt(EyMo9d|LQ+`^HoJNiIBehxrTV9|3M@d |e zA}6gE(A<@*E}@rPFM?0mtAh9D<2>uXK3;!6qFGGUOM|Tb0U?I#e^DJT1XZ$#%{5&H zo4=4)74Jjd{U##Za2*wkaL-)1=Ll5#1U{yyr`(YKncNkwHgVSnptF=$pmH<{K9(M3 zQQHoAA&^$}i|S^^pfarD8vKGzYgW~Hs$K##G-}RwHvZu-kCzc9dJ4w6au)=+V`A;> zx5r0Tc*i0dO)+}9tFo>8^rB|Ca>*}|XAOi+a&O+-7z%zJa{+zIHClV}41j~aURM}e zhOR(^+_n0P$t9c3LQ}5gu74E3XCF0xbGt(pR#=>~Iw0M1nx6*qfISD}XUmV%mxK39 zTLb4SPxGNzg7AHw|4PSk;wTYx=8j6z;-&_ay)O>`@)n!(hEn_(C!e;bB<6+93}$#m zSEW*r7`zY}Aq?z1JF(+G(E9@=_heFh(z#DWcBJIM-SK*ukeV@+sH&A~= 1ydOv#xJ<5cOchl%9b+ zIuGndHBZ{!O1?7NbEJl(OCXoKqA;7obY5pIs%`5YgIg;h+f|Esli*iIMq*%JzThfM zkat0WtMT$(Nc_!FX-0PIb>`Z~SGB4t6G1DdKYnw1Q4}0bN81&g6irk?Am?60*^BDx z16R_!o^=RVTN)+3lesl1WF57FdT_NYT5W&KzWD64{UT9* d)CxX!JJK*c3#fI4`f!te0Uo-A`9Ss%^V7q}%ZC#(kN&yo)-}ti~Zv`h+ z;Z0KqP=1Gjp8u}p4RnDFH`fNsj9A`v^rPBk2=b2B`^oy%MoYxytrg!gVnDWZwbE^a zQj8Sy +|)gyhE~h7+$|N)SK!bbsY!D&@Z-)=3;PSH z4{8)Oo9YYj<{A;mv%7jS$bn!?$lCW{)8uE$7uOHX8_Z|?V%k$*(ECP5Jeh+(+_Xc~ z;+k^NdvS1*9(n1E;fKF^6G$&`e+&3rRi6|NP1_y$ nwkA-L}jBOt}GkExyRvSFOk27B@BMS1ZF`f2A$?BA68eeixx6o#w_2M VR|KY$8RV)NYc_?FZPoT-a59tu|#W!-% z)C(QmdBmB3M~+K~EBVf_G_^S{?NG#6&*Hy4a)9>0^-6~V@qxe+GKOa6svKb$6%yK_ z15=1|%pglb(Yo)ItX?wVoO5R^kXVq~?YVlOV2SM2 )v@9+ys##N34yQ)tSFO#Y537yA$T7>j{1baVZ#lL@=vZsio2H(R zI=*kYD)SD~&gCzOlYf-T?v~eV`u1e9#_J7t+GGc`94f<4DOr;hWU0LXv1R_oKfJ#r zs##cPq4Ky$Xt*J^!u_8Ia+z3F{%u8~P`)ISIp`+ @@+mXf)*GFjNCVM4iN6bfsxF#c&!XFd+K92%rn3M8^&8!_bi^ zk~!`r7!N&rx%p0eHoT5C3dBG|zgzUb2A5UAexZ>`jo>sbBUbDac#y!Br!n{!wJ?5^ z7FQbUZgb!@;6+DV`ZR~b0)D9@o`C({UunY24K5l+?IDHN0na(M#}bP~%VWFX9XJh< zdqty{kui@`i_HCu?`%#0rSIXR@p6rDR6ErYxT^xX#v=yLxYR^f*(! A!v?4&%d09~{_#Ec)05ReFPSt|XYqT c0YDxg#_QAWYvR?mQti4Ww!%ob*BBb%}#BdW!p@s zLZ}XNAJlDIlB`eF t(M zE~tiX>yfg!=+6l0c~rH2n((=#2gfNjqde$G(w{G^3$Q3ET4=Y{7Kb#}I;0RK@T(D1 zBisI6vzdP4Ij2bkNGGBk>|+3BpJ0tfBI>Jx6V13_3z3pRX@Ey^vD3M64#pD-cu}Wu z 6&x4C!D|h_?wRIN0rS zThbJzz%Q|JWm_?6Y5^pl&tzwnA!P2O^z5f(C_+3v0>Ao6+;o&5PX{ufA@SZ0Is0#K zLf`&&xgL}5I8T=Z;NsaQ${@OD;}qqS*aZF(p?WwNwrRD7Dy1I+tm-vKs#!+aHc~9z z1(ya>_N1yc8r8Z_0^-`LegPsjs(#`aU>d}W)wO@SR$pSM$FuM^NHqHN7~Y>#H{O3y ze%j(?pO=yigXP|gypd8Iag1WmY|#jSbDSoUGdXZ*a15*savY`9wl(4G8|7 =k0IF81q z+q1@$gJz}^1e`mH z;7*$)MeL>eDxwWW>^>8}u{shx-MJVajM?^*lZG||Wg#E7A8rZgh|sF=jyYS+x i)`S57Bfdb_w(f#^jKInK{imvX>~-8 ztJ^UNZH2U9jG+5tYxsggVDwZnOOkd-xtaKBM|ngmrsb_tZu?$2dqM* MDk!l4~_&49z;gwn5RB4LLPOGI1#Z zXlMFyg=HK_T6!{XiXX1@XGp}h tX@M%E7VxEejd^<2=fp5k* zJa;YXpAcw~wO8sZZbjXB3+AC$5j?MYDI9|ttClUiaRzieqZd%&45?CkIh_xUMs6jM z;`xA53 zU@|h^EBzUlWUg*I=M|+1*o0y`B}zMyI2&eF&`c6cEwv#rYnZTNT{7h@U=#YpX-OH5 z&R*W+uZot+k2Zh|T{iGM9xfswC9`I7xoR_%uslieZmKKvhq)8gJ7I76R@1ctZxA3v zK<%aheZqz`&Ca|jfVQPs8YStwvG;XN&Y{f2m`h!~lYbsw$ (|gd;x)${ zuaSo(f}x+9ZAhKr*zw`=CXa^ xB^#SFvx}??3~j?iojSU77w* 1 zZB;cn@y!uGz0E=TG8%;^q!I0w%Re=GHxm82U5so1V4k{Attde#OtLfmxXaJ1z!_BF zo2avaHFP^M1cg7c3-Md7m(ga~0H=yU?h7&s9umc@h&5LI=uMhBuAv~Bp;+Ir4`6G; z?Ns_7@*MsVy?(? I?Af)(LcHyI#HnM`GFw%$WSG5Lb&i6D<+QjPGAhm!v| U_&gr=QM4xg)evUlMYyYuKVb25 zDuy!H2F`QfWU!#(9}e6&dcr7<9a=$TLgw5;iuU9Vhy>(N06jJVL80A1>nQ{f+-n-Q zIlH?<;J!;Dq*`QC{Nx+{(+i}LXt6|yK_+AUgJ~t9!6+ZxScM<;uwZS}zYe;+Ce$xU zF+@KjXH)S7HJF!%Hvzs56{<*|OoJJ}iArL#n&AzUZ1E^a%*S8BvXiE1%)FwUdvJ$p z!Vm(Xa7wvK<^ONG+fkyFJ{jKv(vBd?QB;7l)3MMSbyS)L %`(Kig L$|Y29h~?IaZJ~!sT5N3%xpgimQAJ&E zu=6T}a2(#%-7m*L`t_Kqa3L#Hw`mB(UVGH$0dP=(-QM;q0N4{AF*?6avng1Vr;eBf zwJ}SurwCbx)g5nk4dJZeGUP0o=)%#(uux$Tngrca;ppZwK@_EC!!melB+fATpUn0v z>9!_q6^4{lTW<{cjH4e8TO=yucM &2c|+e!7>BS;x& z>{)Ee5yuECg_dzPj#EY6$^lm^A~$YugvDX4kHPe-e4c)gYhYwq^&*=-vRa-kkTxVV z5!wOdxa8W_+gs(&tGbgmJlz|ZTGmJ+*aRC BCGo@t43Cz@y69|`_ z{l@DY_jdha;_O{zeH471AJxT)sO2?f4e4fxJS;qJIQ5LM7cp2X3Jx2*w;U?P*z4Ny zmfOEZB=~$?g=CEmLj@7H;$TORJ7W5=w-ll+8GALD&&tN;U`w~O8|P W_l&@TA1El@5AfT++P10)TcDWF!& $UCZ+!XZ z!f+q%^#r?0qQDmsN-dnUp3dIj0r|FtU!Gu{+xnZsG=t&QF}jE{IUeXW8PUNo?VXF> z@8&j69@rMd==CS4XmsnPVr6m~oBG0a|F@d<;r>73`G*fgt7SEYW*t=6E*KfQCtRX& zL}0>uqHL{oyrm6CYBOP1n+L^+JuC$x1ee$ZeW1Ey;*4liBRy^So*#{12u2xrwZ-#s z`>Q$2SIAZDnpK7V3>JkVisIXH=*Wvxm)kk67iM_(R!w~-wDM?)dQq7Kz%Yz4>KWzr zd7W}*^m!Eyc-ooFhFe@zi*8x8lil)Rhi%9#I7TS9m9YQFQeXt_Cb (MBRJsJ;JSwJoEk7t%fA=Jvuik}{9<%!_<924qum~E zU-LC)W$!hSGeY0)6^Je9Qc&q|vMuw0t}Xm*yc5$Ort^1XGdy*AqQ<3~ardbvEn;Bh zaCq$Tvfv91M^ESF4XPtx(fWfvsgLz15A>lK6V(Q968ck0dvP- sBl~|3fXFVZ5L=VB81y zG+^nmsG?wgaG|XO8bCHYPqdP&CB{irO4Ai2It^TDW9@Hyxz<#fMnVHS9w=QUI?(K? zw8Rc_2-DS~^yq6;{kc>;fVwJ%%_T?`XU>B!rva%8D4!56gTuwBnQ`l;^UWe9jO3 ;RNyg= o4pd5jLfcii%Ayh$rW|Bh^ *13wRu>cWH3rcwIMzyH? zz!@4~Y3o+jVeZU%^MX?tXCsl-X!oP#$Rw(hK>={!+>8Z|m6k5?ZXYuPQj9urucT<< zpaH*Pi>n-M|10Vms7?ey8Vi{b&`Mr_&EM363oJ33tDcq{DwQkBH_S{gaObE!I#2uj zWvs|4T}{MnjggGY)5I0(bs_t#d|$flknPcTF3n}?3xVQzUOYjdjewpVyLRq3r^>Uy zlAPvmPb-k~zo5tZdJHX3?}^NwVrTE`lXy3l+?bG zVj3gyqnR_!Vp=VqjF*y>36D2`R2*Uulf9Tg zzc{^oqld|A42rOliPa^pKa w>YJFzjcns}zVNGBs-r0{8<` zJRR2LkNK+zy(dPs5hV-AysVkOOjD&M!VD1DPfJiCP@Bhg1owzU?oOA&rnayx V{z#4e+G;nN1YEm8 znlh*bPYP-ba?_$@bf=?w0?}$6n%S%DMBOH IEMI`H_J>>6M^)8jS)7@OkMu8s^5y2Oh8p`t+sznMLyCiyUyHN z$c~a7Z16kSa7JVlSsr+xH^-PZeL~)DsThhUn8yO7-s2J{f8Z1x1bUr%sIp_OT zJ6b-}oJhR}JcOk(rSr_p2`f;7bz^WVJ7LIWodOzDaQDiqlppHS5#&X;)Iq9SJ6Xm1 zSN^_#03f}rTTt|CPP QoMjT5u>MiJ&Y> zi57IndcvWGIibJAKFK_;ttcDU)aw*!1Jjq_WdJd`3s;em(=G#x>4Ns%BvAkkI{LX0 zk6s0C-203d3&dBYf%slmBeB^5x%mez4_VAFS-oZ;^+l9A<8<{@i<~i$z&0EBFkehh z?!$F2PNwz2LOoYjUGZtC>AOh)BZ!EcmXZWzXva21IM%LN0;k$eD7{#0!BPLdnG*uj z-m2{kaxSM_K`&8-SZbXL=3cSY-m;K_vgg7p(6K%C&E*vhKJ7mALC68a!U!s{x2F7V zD6ym7!ym(isRM+P;j{}|TtP_mw_xV(84sp#Lr&4|#+H!6GX?5*UY3oM4nImwhDx5; zQ-b2syY7h|gzMDP CnrCuc(d3G5Ci&| ;E>s+Hp{-11Cm7R!t0$q19j z26|KJdYz;UokN=Q4)yVYUu9WD&x4UX_06ejZ&(aeWtEQ*0?Pol*$unLHKf(jDkjqP zGTYG7s#_jPvIZ(S55 W`Wr z8P;+$yusYN>D0wy9HTmnqox~+kn+aj!}4$jbT_d4valj=+CK7*I?z4nZ@_)5fKp?R z6)aY6_q2jDXWo7)cXWh8S5Wnj`CqE(#f|Ll)F`*D2tH{WO4FoH^OQN6Jdwwk`Qha7 z3F`I7xbscy9Ea9sOgLsIWAMAnR^dU*Y|T*kJL6yvY0^Vayt={Rg@v >I=#)5zIe3Q$D&O7{!WE9Za=WnCX3hfoD(biz_jOiyVVN)`7IzPAx?yMu@fW zkl%1v8oWEM<-{}SGphN>UG!qXv#pmICBV>(ruo4mP7*rSM!pnEomD7n3GkQ(Xnt0A z%dtz9{^BJbSUh-^m#Im4RXk%+s^NvzV^29Vi!J)tX&9WEt~`HlZ4`n-%%{h@!HEj} zg VV( zvF>X!v|(8oW%=PD8@z=(9qOgR4iBkMad&mb+}%Lf((%J%VKIglRr|}#%EzK_O5qk9 z v}n< zzly3Sjn{O9nv0yuZDr})Ks23U)w4B9Vnr+`W?3br*pFqmE@ws2%;1ULt=v*A+~u0H ziMONkKk+LY(evm TlKxKA7}<9@(lg#qF%d!4OwDv8WA2ee2rRV@OJ~)adMt zY&swWC5Ew=>b1y~R})|C+)-F%7~!MHSrEl*hJt2Qw1Or)C@Fd%6 1b0_Z+|-UGCulQ$Va%YmY_9xiuGL_?=UJkk(-N zGfpE{E4_@Bd9~5 NK0sQB>*v@d1e~o6C$ou^V7ffGAX+_xQwuY|HT;<~zJpFbmBBLN z2FSv8fVP`C>H@-Rpfai6iNJ0*-l4j7cIO&T_!zAj)!we^9!MD{ax9%@VmO40>N}x1 z`do?Oo_nCI4M`iE(+-x!E5kb4P;}GOhModIQf>%BL#WWg zzt_& k;>fuASFffYi(S9AO6Yy(33J zLkARtr#vr|>y)~OuP5b+f|68A -V~O0CBRb?*jj@qC@VnRSY=UU1Yj6u{FLl=S8c~X_EnnMpL2N1u9f?75Fm(h?8}F z7yO5n01BUWg~Q4EB6F@xY|SstdD|-fbai%9ia&k}|Ahg>9isYAoPSu!p>Q=(e7Hk& zkvT6W?nGZ2nbJdXW+cO`G6?giA7Z=u+GDvo!FLEkRUs<)d!ENFbxl2NsBi>@2~hak zdB!^n?fej>D|pFzJPoAhsm|g$-wVr~DWksH}or1C2rZV8h@hQ{(feC0(n_3YA=B zL7mZL30?dT2MN&k0wRa^l1L+Whb@g-a%0SrQAs~aqpaL<5rFNCAkHqy$48iodbBWZ zk058h$Qy-6!}=_+Wzf1!!yVq#+4}J--O3%|j?IJK*NzV#L8OdDc Rd}{9vO@P7Gkz|# zE&YV#lCIHzZ!10_qLj3#<7z|Lm|6mJ7`%MXp4*Umm wHO*dYjb!QRDj$hjM?{x9K`dL+{`U^D z@VG4-xP>5`JkV{^e<@%r@Z6wLSk{J66Slh!D{r2L=J1D(G8SP66YdHM{am#CFzLp3 zMf?rVk8lb-4-o}ozIdVSPuUBMG$?x{E5EZ3l5BW~BmMepnC^!?tY#Piwn_&{oAt)^ zaMZ@KcyVvu`KzC-N&mWhy)FmVWYEv*su$VfAaxCCbnCcv2-JCXP}^{O%FbZQ|13o^ zI4rMBs0<{~=%29p)}PUm -Tp7HH`SPc zud(#fY-dB)p-`l#B2)5H!1!x~Dg)QM1CK3?)w~pXgVeA_42D4vqx=*HQZ-Vz;4ueH z#cXplduc$Gr)WnSzlje|tttETX*(0sg2B*yw1L3ch69Ue2A|XHWCq{8zQN8_qK+boX3o-; z-O6fzT-uT|Y)A`XzYPbtu QJH?}1qc2l24|9Ze@yUhL0x~gVDRhq&$aK|1U+adM z`@7Th)1B~wvSoK4Lg4=teNHUMge6a~tl2rnS9UEJ3VkF<$IeEipm_aHMyBs{S+5Xe zcW|h47^0ie%BViBef;DODmx}QO=_4!;vihu2Es?&f(ZGGpoMU)mAg!8gwYojIH@Xs z+ED)M9UNjNk+#4&8n$nWjU7G=*EcebjdUDxF2Nq!)2Z3T_UU2b|DqK;I!umN*&UM8 zr0OYn9tDJyZNtq+BQoCb{@T$`SiG#7f$pfndFf4U?M*BzJ%Gei?i^3LJR)`v)^1_RSL&US+Jyv43!$qGhgo?l zcna8UKm6&8iZ-?YzNO@Gq)>uXYpzetf}P)d4E(W0noj$Y8JoxKBM>;L8ozl6@AXM` zN{Gn)-wT0#b8g$l7D9I$4zuKF;3!a86onPZbY6W+O_muqM=c5pMDuFr)@JjKP6f{? zFLWvmGt}3EPmGXzA=Zsl(}7%+jcYGPTk$*>e}F?)kNE-<=C_(6rnCZa (u5c@eVmAAZP8S5o zFOb(~4^Mguggy8-VW*IR+D+aS4W|&&MKZTu8^f(6jqSx)lP6 VN6CRAx%*mOC@w#U(p|h+0UM zCFIJ+j-B0_!VZAEcin)pGUbh~cwttLRgqRB-M-$Rf;mI;1gXX(IF|w>|9Rmocg&ad z&tIk_j!bOyo*W?MB=dcEY7>#xB&v%a&H=>^jy==SD2f0QPOR{bf$y2g)l0#Or7 01>Bg(T{A}m1rinn;r} 0b&sbchh^KLFQ@Yu8Q*9cfY6 z^ZMl$Ow*|yvOWKm5Io1t$Z*W@_4-}NvVoG)W1@Is2WqyG$Y%B8u4(nbI5K-gLP7_I z;p;uF6J%Xkt<=1OYRZDTr;$;CvNHo{1L5uR0{Bk!5s}WdsI5FaM+mz?otx6#fCUBn zimLHyoe5z1f#%}uH9y3vi*7`k9+HgE9Lp8Rr(EGe2UYq)>_IP%OF44*(>Z=`t`mJA z7{ljYX7i>Q%)RCu6~dOh+VKj7tgz)!3*mPN4#Z+S{jH^Chm-3W;4Ll#TbysW1w->& z9m|M8ktaJ3ON=DrE>0;O_wqSud5zki1z+nW!qtcaoZWvHENiy&Boe=1uDa|Si=QWf zL?2+0PnOl8*kkO!ry~wE0d2)&+Hj!Y6@9iOOs6-nQ_x- 3IYpi4dIA<*c$5pVNjrt{om24xG8649c;nxfjj*2Uw8V^(_p$5S_lXjLLK_ zCQY8~lIN){S=h_6IRUSngR&)v&;ZO>HQ61>F3GVFTY2J7?-reu(;**=$Z3dyB1UjC z#~4t{`PHId7!ow+50KZg@pZWz1&S4k`9t!@o9i0L-qsuwJ1I7xP0}#Ut;@j_GErLx zVId!3|GhvQKA*)^oXtqA;pyZqzi{kt$y!tXi^q51xwtZ1`LKQs?Q}r|MxT%+at19D zyByMdt-%=RD9t3dyWhVlaPmu*Z<5ltwSb$K5=1y`!T~`XS}1g8 zOAGX7W28{2PZ{<$Ze8$b&r5i$NUI8}#6Nc`)IPDoqg9)WS2PZEn&o*Gn=ZdpRY`5d zUtGU|+a2!u{O;p6h!@)VrgMfov$7*1a;plA*0kJerGrWq2&aX19Dc(t>sOF37TKLr zRK0Wyox6YuS0ZdDvhBFYCsu7pgQRiZJg!871tndWEd)Xv4uENa_j3=7hCT-gGCgIg zO5@j12Qyb5bCFeXYfvYU9ApK%<3F evU`}5MzX8m7}D_aPMZ8*T
Sl z&On#nPK8r;IM=0nM;^lmFR^(;wML*v{2`&h=c=6`SICOqouq|u+J*yvyBQsVb9)7L zsYZ?Yh4S>Ec!cIyXMu9-Ly+C{RjAFg-sw*JKwWTW=7L*!o*Gur1lw-zYtpxvekO=< zX# oC2rGCa)n@F)wkBpzxRj@!dnd-dHqzR))W-puxF3P%iN*EBsP=>%6tOD}N zLzIR2Wz@X;EE;RXNJdr%IX=p=c}S?8IF33*=1N5yNAZF@yr!1+b+m t2!Ap-QGyFKII`;JCvn3sSj23_ZTxb W;LHY@>NCs#qvJDW#eMq$Ky(s*TTMgi|XSx2ZqX_&wh&V$7{u5$38liE4m;8&vO z4Wa`@Z#f=e*w-47Mz?OCC&e&0eFK5UuBQKf!K _P$RUz$|~jx9Nl~rtl&` H&>X(;#%Bir`5P|OaBw6NR(bx}Z&Bb4D}9K}wUAzQHlgR8ea z7!_J0u(#*Re+84iK3_~rK$*L<>f-gI*9u%ZojmMOt5vz`S9_M{3gL8~TVdP}A^RaO zFGuQKua=A-v)4L~T6x5y(I}(ppW20LNFe9A6sCRr3pe~6$+DjGUoie_FrH!7w!k(Z zEpE%WfuYX$%xxr*6a4AG@k*p!PSh!RoQEK1s!(D&>L-b9AyygaALt~>bzL~q*3G`n zPjg!|($%e|6#^c=_(TaAR+#zBr>hedmE)m?SvQMC=M{DHI;`to0h=%vINI?uUNSzT z$&-sn(s;Z^0VX=gD?DBVK{_^3bN-r>d@vfUn(K1tCw9>8E*wrGg`RU!xdBEBE@72o zk5GQv#nmsvGV*7t32wvdBlWHLh( E`_Ny=OXI;$(eHyw?w(>SE?VLzaO6U0nC(^apaeW z7+#g#ekO3sX$$Zr_CkXKY`81s(BKfF^P61)d2ZI^I*#qt2vXSpcfd$9;Mm~l!4dZe zNjan3_-Z$Pe^LuUvJD3gCqkXim`ts<`w?x?h?HZdo<4BdZKcL6=h}6lzrQ{wmN(i( zsQ<(3nY^8M|KdVRU%+Y*E`#NU!Y9v;8pPIdxdpbaM|eW2(28Ij&bf#*WU^6lQCRU0 zy}_Wr^M7mmhIF2r*kjqcTGMsOU~wSJg3;Yh_ m*lyG0n@m3) z%mHZwdd0KGZ%z>V8Ec@w=m8VE2o`=%>! wZ9tGs#RJP7_83X2t{lbQ!WxJ7)dPlFW-FRGe5KtgxYZ6 zDU|`UXFgz)9$sVmw|^kPki{PU0i5hInN22x$qXcxPp?e(=QW!Sb#j>1JPD81d21b4 zDD+y!jl)e6J!P>qJ&rXXm_$0j0|Rg3?b?6Iv4*kPj=MNA?SC%h;*_AiPXQ2N^LFAd z@l#ptvYmf?t^(fzHSF}Ad}s%qb^_v`1afPR*^U9D>CQDyz^`t^ykR5e1NZBOj+j3T zfb$O3MkMCQdJl!*ab)T 1B6bHe&iU<$S0XR BWl`d+yuv3c2Tv?bieK{yp$ML{60F>HG8utgaYD^;UuR*?489k?hph)gh z9= qouyRPxXr#x33?iFM_KOGi8T@%cS4+s`r+n?q
KPyi(dcpW;_$Q z??u9N07K&4sq)vPZmB}+4rJz~1q|;vtc-SN-VB$BUieJ82A}DLSUFkD`S95Xz4vSK zwSLntd9r27h;0W-&;QBg-}kF?QGdF|qn0(_0a#urKA%}7jp;RLs~OADCZ_ezFg}%n zwWn3_bBW?ACV#M4sj&w| vKo?4bL)iz|RX$G}$Myt`IOwaS>F#ApC=Pt(* zd8ISt4A-3gfHha?_<=d`AJ>wmD9&WHh0~PcE0Rv03|8zv0Voql&WFYEHum_v9ql@) zM`N{T8ATgnJryBROzB3d7drSr`=SyTJfgEWAY<}Z`-45|!)`}br^43W_CQ}QbbyWU zZ(rJi*`9dJ0T6Hs2Mr_hDZ)twfg|RPn>h-pOY^U-z9`E6`z%YLOw+X({K|3x#W7 zF=GrUK6`IeZ&${C5qmp;2+Ta)4#Od}S4vdB y2b$%>a?i=-h%h2Q-k|}g2bol9-qFdN)KnVyi{~xacjpwSK*|pF`)2N<1r2=Y z9mKuf&|qWBGa@7ZZ^eHO#siCLr4!kyDGaV7g$MKX{29Jp)1&|CE{F=ov6BpGi{eRa zMNd?m!*w9 r%@?irWn{|YCrzS=he7?e-QfkrI0_fCgtTy)h4mzl}5Eul1u=n@%#MvaT5S6 z+V@<#J$FyOIzM&&keson{_j|Y%UcPs3S~6nbz1SDBny0D=Dk?Px~u~Tb#2A--FE}j zkvzlj-#85Ps#hidOk!Lob51L)E}lt)S%(0GElZF8M}s^UNV(eniSu( MYv4|1Y?7FW8-<&rP*`o YMrwEfF{cKLOIU2f{^&LME-ZqGBz7&F-# zmrvBkUSR3n(;D;kHRhG7d)gY(q8k25SRO&ANwG?~&8ODdvrHPVLKk6ovDf9#oSO&a zAuUZ%fkmIIlc$xHTb1B>P?iNz`)*9EGlj+SADO%Z - z+jdK&`rQR7#UBTX<#xkdfj@TnB{jv!R62}W pvn6a }0Ei;( zb?LS;quvs3(0dcPV^w$ye;RM!|2%H{x6SG0NjzRe5P(IW!u)mUM_ZZBT^@