From cc3c0e3a4b836525905db9a53042648ee966dff5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 06:52:09 +0000 Subject: [PATCH 1/2] Initial plan From b346c8b5f6e3746b2237b465c11faa6eacdf4de8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 06:54:57 +0000 Subject: [PATCH 2/2] Add Hungarian language pack and improve langpack build documentation - Generate langpack-hu.zip with 25,000 Hungarian words from wordfreq - Add Hungarian (hu) to build_all_languages.py supported languages - Rewrite README "Creating Custom Language Packs" section with: - Clear quick-start guide using Hungarian as the example - Documented input file format (one word per line, word+tab+freq, word+space+freq) - Tip explaining why scraped text produces poor results - Structured tables for script reference and langpack contents - Installation instructions Agent-Logs-Url: https://github.com/tribixbite/CleverKeys/sessions/5fe261e0-01ca-4df8-b1b2-f31f9cc7a512 Co-authored-by: tribixbite <381345+tribixbite@users.noreply.github.com> --- README.md | 80 ++++++++++++++++++++------- scripts/build_all_languages.py | 2 + scripts/dictionaries/langpack-hu.zip | Bin 0 -> 303650 bytes 3 files changed, 61 insertions(+), 21 deletions(-) create mode 100644 scripts/dictionaries/langpack-hu.zip diff --git a/README.md b/README.md index 68c76a152..8b904a738 100644 --- a/README.md +++ b/README.md @@ -284,43 +284,81 @@ Available via **Settings → Languages → Download Language Packs**: ### Creating Custom Language Packs -You can create dictionaries for any language using the included Python scripts: +You can create dictionaries for any language using the included Python scripts. + +#### Quick Start (Recommended) + +The easiest way to build a language pack is the two-step `wordfreq` pipeline. This automatically generates a word list with frequency data and packages it into a ready-to-install ZIP: ```bash -# Navigate to scripts directory cd scripts/ - -# Install prerequisite pip install wordfreq -# Option 1: Two-step build from wordfreq (any language wordfreq supports) -python get_wordlist.py --lang fr --output fr_words.txt --count 50000 -python build_langpack.py --lang fr --name "French" --input fr_words.txt --use-wordfreq --output langpack-fr.zip +# Step 1: Generate a word list from wordfreq (supports 50+ languages) +python get_wordlist.py --lang hu --output hu_words.txt --count 25000 + +# Step 2: Build the language pack from the word list +python build_langpack.py --lang hu --name "Hungarian" --input hu_words.txt --use-wordfreq --output langpack-hu.zip +``` + +The `--use-wordfreq` flag enriches word frequencies using the [wordfreq](https://github.com/rspeer/wordfreq) library, which produces better prediction results. + +#### Input File Format + +The `--input` file for `build_langpack.py` and `build_dictionary.py` is a plain text word list. Supported formats: + +| Format | Example | Notes | +|--------|---------|-------| +| One word per line | `hello` | Frequencies are looked up via `wordfreq` (use `--use-wordfreq`) | +| Word + TAB + frequency | `hello\t50000` | Uses the provided integer frequency | +| Word + space + frequency | `hello 50000` | Uses the provided integer frequency | -# Option 2: Build from pre-existing binary dictionary (.bin file) +Lines starting with `#` are treated as comments and skipped. Words longer than 50 characters are ignored. + +> **Tip:** Using `get_wordlist.py` to generate the input file is the recommended approach — it produces a clean one-word-per-line file from `wordfreq`'s curated data. If you provide your own file (e.g., scraped text), make sure it contains **one word per line** (not sentences or paragraphs), otherwise only a small fraction of entries will be recognized as valid dictionary words. + +#### Alternative Build Methods + +```bash +# From a pre-existing binary dictionary (.bin file) python build_langpack.py --lang sv --name "Swedish" --dict ../src/main/assets/dictionaries/sv_enhanced.bin --output langpack-sv.zip -# Option 3: Build from custom word frequency CSV (format: word,frequency per line) -python build_dictionary.py --input my_words.csv --output my_lang.bin +# From a custom word+frequency file (two-step: build dictionary, then package) +python build_dictionary.py --lang xx --input my_words.txt --output my_lang.bin python build_langpack.py --lang xx --name "MyLang" --dict my_lang.bin --output langpack-xx.zip -# Option 4: Batch build all bundled languages (en, es, fr, de, it, pt, nl, id, ms, tl, sw) +# Batch build all supported languages (en, es, fr, de, it, pt, hu, nl, id, ms, tl, sw) python build_all_languages.py ``` -**Script Details:** -- `build_langpack.py` — Creates complete .zip language packs from wordfreq -- `build_dictionary.py` — Builds binary dictionary from CSV word lists -- `build_all_languages.py` — Batch builds all supported languages -- `get_wordlist.py` — Extracts top N words from wordfreq for a language +#### Script Reference + +| Script | Purpose | +|--------|---------| +| `get_wordlist.py` | Extracts top N words from `wordfreq` for a given language code | +| `build_langpack.py` | Creates a complete `.zip` language pack (dictionary + unigrams + manifest) | +| `build_dictionary.py` | Builds a V2 binary dictionary (`.bin`) from a word list | +| `build_all_languages.py` | Batch builds all supported languages | +| `generate_unigrams.py` | Generates unigram frequency lists for language detection | + +#### Language Pack Contents + +Language packs are `.zip` files containing: + +| File | Description | +|------|-------------| +| `manifest.json` | Metadata — language code, name, version, word count | +| `dictionary.bin` | V2 binary dictionary with accent normalization and frequency ranks | +| `unigrams.txt` | Top words ordered by frequency (used for language detection) | +| `contractions.json` | *(optional)* Apostrophe word mappings for languages that use them | +| `prefix_boost.bin` | *(optional)* Aho-Corasick trie for prefix boosting (non-English) | + +#### Installing a Language Pack -Language packs are simple .zip files containing: -- `{lang}_enhanced.bin` — Binary dictionary with frequency data -- `{lang}_enhanced.json` — Human-readable word list with frequencies -- `manifest.json` — Metadata (language code, version, word count) +Copy the `.zip` file to your device and import it in **CleverKeys Settings → Multi-Language**. **Pre-built Language Packs:** -Available in [`scripts/dictionaries/`](./scripts/dictionaries/) for testing, or download directly from the app. +Available in [`scripts/dictionaries/`](./scripts/dictionaries/) for immediate use, or download directly from within the app.
O-xwJ>&JOu|j3c5m{NrES*m)W#(hY2!5+1SSbOx!oChI%_7x?yk6sPY$X^6 zmI 7)&{iB+G@$SL3wiqfh}t|Yd|R^?`-#Txu<#Wa=xOKElHG{S9pld)#v z<2Ytj*Qstt1s)UHLCaV@9kewuyrr~WT^T1_SHS>n(T^3wxus 0HhQyxNQB^=-ubTE~R%*>>v%Z$kt8LXt6)#E!w&oYRO zy3&fWQOtYv*`=ixWkbs-DYI#pQif$^j6KoT<@Zc~O^b{< (to)3#reL6<`jlRo zY| oC@xCt12} lRt)+<#FWeRTAg0Vbyvsw16Oa8Rl6Z^ZRH;{Y4Jy!i+hWF*w2IzWe z-tr7wT~=71gUD~_(9A3avdLm3QTSVBa$8{r5U+LCbA*s}W;>DkN)a=r`%X*fS_&RrqU$2|2yD9wQE2*F`zvYsxl>ekwYcyBD6WgaUF6RDX+;7^Gk&% zJnqO$1F?fm*Hn67!sSHerp?Eexx$ps$tm$NA4V-ZCxfQB>v9UzdP@d?kyo3 }u+O;;I@Do5=flopZ^?$xrtqV5A8MCd zhGCLV27N98VJk6MHTfy#y>hvPVhXr288Oz| K!A^VD)8hqI%g hMq4z*{svJZ3R=dA=zrYGx%AhPbMA~O7f(AR %|hsz}WzSViGwQSQmf-vz>P=E5nu8sU 6iVB!SaaHF)0-fG%Cl6Aq?JNj zDaLYirO+`7^Lfz?1U6qNN?8!TvfzMuw)2?p^;tkt5R1M-tTi}dR!HZ|l5THZixE~_ z5w3|&p;{N?SVV oEzd5fUC`1Yr8I$c)~3=r|XKKpH=gwU}9-s zqsgtI;sdLdTjOttLN| &fONklxpH&y;(ZmHzI|}3dLes?YO<< zLse#ESRRV#=TsR&(FaKz-uEVhoJjB$kdJf^xZsXa6xFw?EPHQxR!U4!V=X7Apg^gh zQi)qPjARfK%IWFamt7M1%Jr8R%X}iP9NK3nWpL96fFVa>t$-@;lABULuxlbq%Bfgh zLsK%430j=<7Hs)VSeDW1!xLqUZt4eC?!{pkxF@eGhgNo;mL$amX9J@>__DkrP3H8f z<5%S<7I1`;8c9~N>bBuBEf t*>YUd1E={7!_bDiMrWm1%ix zm3*fs)~@Epm6*&^U_eq1EoKrhZUfM+=7elasq^L4$=wg2PR|Mn@Km(u31eN-_f=YY zlFcD1`GxjH;c&c#70}>e<%cvCyIMi)lrJrF`z`f#{`6ffRf9kMk&=%wNyu!lBv+2C zn0S+y@{8w~Y}w@-;l-0KAqGEZ4j6`+p2eFm g3E9F@zCnw)zIX2hi0!Er*ybiM|PbL@NrYa8I!vaaKL=5h(`6~<9FXhM-rrMRA zBHxf8sJ}4DmS{n;oG(*gOgZkOmgP96HE0Z`$uT!eX=DX6I#*mKQ{#!>PeGu*ygp~N z+~hv&t)+G8lHPU;Na0HITfCv7J9D-vs;kc5P79=(bcK09Mi^u{gjw}uFk4sP$(!8c zdY)8jw6oGjx~!O*5B>-RJ5<(H1HYZp{~pzs>O#)=N-b4>Y(fPySNO50MzYtS)Kn&C z!Ezz5Ed?AJWd+t<6qPv&nrdh&tFO8Q3(lA>(zh!nZB}v R$? z9D-DyP!d}eJBH*{x9gZ1WacLLilH@3f-oW7fp1{-d(ZE&c7C`71o)Ko<9Nnd>lNOn z^X5A4qJ 1;wK6e$Pk> zMQ}Azv2~VmA+-F+EAi_X1Ql$SuAWz8nH=Etd@=h9IbV$|&*br;8V#aCS;csGNiZl3 zMTCg;DnO2DpAdnGo0-R74P`h7S6xbf^>|$!y|vZQx#5mEPxBu|dPK;wD2`byaU@ z+kRCU)Bx@W)N1Zf%0!NB%3WJlh2yJPC;@?7$?$+aTVe( z7gYO0g|s zrK!bMEBZc|Dx?dlf7-ru&;7KzvubE2IRT++5t3oTWPZXt7rb<(a(?ce0$y0K;-$)C zs!Rg{+{QF%I#@#sUx2JcX)9wAqCYYWzHaGfg#4w_oVZP0l+oHu5L)tha~GlwlZw_n zW44?Xh<6SFRLM=3I!-UEy=wIF)=Ys=u&K&QYKfA{jH&6WXTfnb?hGGaeL(qo)~=zF zhz<6XIkxIlmvWW!U2H?Z{j5gTZA(bhi^(dcoa;iG2eDyGTJ6H(T*Y-HOdu9X@JwuC z4nPfGq=p8pIsjV %O?D%GOT@ zNw!!It*=(PzBV0r%_#2s@7E(s6fgaH9P?VMfSWgDOi5VN{l($e(`dEu{<_QhO4gKs z@0xafrT{l yaGo_>FcoXv1yEF07vncJsCBG(|czvjn+yS5;+$ zMjni*$Q>`%fk)hoGk$zW%u;)RgcoH3#9xoP$gZwf7D;543r+^oT2YRSXg=v$3aq%* zEG11tN1fOTw&Gi@nWDUc{97w#zSB zYbDhuYl_o1Tl%5a(VPY6Uw0vsg6O9hr6<-^>DnyXl4F{r&DP9z#@d8C;=?)l%7 +3F#p_s|KD~5a(Gy((EdZbS<^TJDpZ`SG(6H!PG4%PUsC$ZTA$&<;2M3IP`Br(=a zzpf4cQdk}9tC%RH<_~MunPavi#X@*PnjF)&ZpW6F0j$0qb#1+F#}Or~>{iZTn25J* zXOYVKxHZqFTinWVrBKA}RJE|Lne7yAsnO9xjg{O!0sFcg8U}JWtD(Cc#TbgeWp|tW zc4+yY#jUmXTe{m1I-h;CK5tpuo8v{Wk)T^W)ZX2yuNJUE7xV`6Az$2HQ7f?SIrfw~ zf!to7s`wx!@ob)^x0V eS6%)B z@%?t%1p>f0FlY<~++JF+o1b(S;IU|ffwFEd)h58*Mk)WQxTPC;#oq(_>1e?0WAc~q z9n)d}NtMR8a^^#Vgj;5nlT>dN=*k}7;W_H+DyzUN*{zDhY*W0F4li!b?EUxKwA2<` zR_g7CG_QWN2+!NhfCYU6&sxy)mgVPA?EqaGU9H7VxD1M~0&~S@ZdqV>#U#ow7-_tg z+YDGIyr8Ohd)0SfDTPe28kg&Q$`%)xn|KVEg5ethukMn&Ym3&j;-@EwI~56LPoI zCmw2ga`YX^?RFfSXW}*3|Ef7{Z%PuNPrKL@x6eB7HnU1M`UZps>+JStKXscxJl;m* zEWcGYF<+)?%5cl%NNCl{9&50y82lupE~K2?4vmu(x5hpaLgnh5ecZ-ksrNtJDm7vQ zfqy%Ro)o~#u9Z6JG3&E-PJrE|841`9^RdZam*NH1=rTkoQ6FW|$L+*WjMmXDT`s`3 zTXU5b^`zqzA=I%+h0kg>E_Jh-@w<7=B&EDsEOkNe94^>bB+ct5K%bgM#X5KRBTedO zU=m7-vG>)}u1*_UQ?o}CAvNt<#83?!_vU?VrXZgjbrwj?KvV)Ag(pW+h(OaANMU|{ z=HUIcIbKVb)e4kAYpjQ6R`{A|RC63)xRM;|VYC@)Va*NuZPX^47MR?)yCOhh_GLXD zbgqnAeX&-xwJKY=dKeoP)|Yb1`TEqmj1ya9iyi`@vtHLjYxwBu3n5K?X}S?VTi6Em zFn0E-ug>y18r`PLt{!)d75LiV4tZ7A*XCDeJq-xA?n--^mQ$-I83>_{IqV6hv02yC zGfb(KbwFPU9%|Y8CDfBn&(-pnLiMVt*|MUn**Q26sE s)1plt-^l4hGbiRZgSC4y7PaPdSyiga6rvAXHhs74zG_9V yXTTLI{1{lRpD){sYzs(m1Owohy)K}+Sc8E8WK{L%y z6 l&hDOev|&D^$A{qcZ!4(x*N%IZ4rqt@zqH3k0D9xJb#zphsECl;fsu zz4x_wi;RleX45vVrfv)aqMmmCKazh}0g=>`-aSDir5=I{x@Nb+Ips3Ht50r0?%%|m z5yFO;$edsX_<^sjX0c>7$yML$0mc>)pvX-(=N7YeQ4OK$aUZU!doz}ExnW3<$YN=_ z`WB`Fg?4R*mEg^blJ7M=xfWIcKnJ|hg0m&&@?@|q>XE9vo5BNn=e1gO%mq8t@)=^- ztLVpo7K0x%5(^1jPu1gA;*!&*@ +2RQCzPL`o$x2*FkV zgY6RXVFk}jqqdxXp>N^I1!`sf=R~PXi|t`VIq>Dmz-zmnE*uQ3DS#gm-C)h<8*X4{ zb8}G)b8N}XgZ@xx39QJ_^GDcFVs7t$XltvqBX1tXNUqnFL>{g-rBZxrr5$sYTc-Zk zWS!d?*0&?CcSY0T-z@E}YF*JO?S*#ot2I(`0r^JJfKa=#nV3? V zXH8e}1`=o#e_}pbBcxPlpt(9%fEw{1U%Swp*avxEw4n zp`;m_ccpHkn?*hT8v51R&4L8lu&Pd(wT&epMLx*Cx_klf%yC3Q*kjCvfxXg Ieu-&&T$Slg|~cf3g5Vv{yqB|gUZ;GC(k?*{O#Y1fUR709<4 zo5P!nXKl$_wSj4({^S~S5@1@aA)k9LH#Rq{LSuzmuqqp~p3;IBs$Fcl2qUe*W)v$} zIomB4zi5=8xKLx8#*$>PscQ1+8)H>Q3?oy5wD-=4f~X O{Ay~T{i&ool-#i(t(&jwPJHxj1CYIqPH6jort8BY8 zsgi0#Gl`v0polfJ-GM{RBzCR_Gj6U<{!}53xlq~Apkc^zPfSn{gwSHxqHYwZ4hQ0` zr4}$dxw$m9gK2}y@@-Ec6xWzMW tIEQECDMT47 z4hbsM-wIs=(@4@ZjI51H${B%)gpHy=S-3ENp=rrLpfKqQQr-kS+93?q8$LYyOX*l4 z`s|xv-S~VKx@>3cq&1A(VhS-O3A%UaDlsUy!X)w RqCktH)y&9AueoxPWaKGPx%Y8_Q^-iATgM^&h*%09%_@EPE^DLW)8Lhs-P z5kIs3dwukkmR%^wjeL+_kqI3^XLoFgK29bPD8+eVIgtnoTj<(XlH?$1fP^sk!oh`T z P}Z qxrP$FxOi@kDx@bWIe65tcg?0*iI&Mr#dKK4b&tVgngr zqc&oabdA<7Sf?8Tc+#Kb;Q2tzHzuPLLISQLN@As0AG0I0B2{=NL{FXcL5&OR=p34_ z8 *yKI+Kx1scUR&NYY@YzOGgRQjs=>yJmm#(!t`eWY0qkc zxnF9dDt&~QZGY&Y7z-7nj1f9g)z$-j!pNLkfpSeXDF$vJ;4YovU9@DjT#pqIv6IMH z<|%(hG|$y#WMl#IN>{Cp#n_NXuBu`)>H0-g&8AoDz(Y2Zu4F8=FS@e5O_%Vwa+`6N z{P3`WWm^=EAGM!v#3jM@H`ixv5vp>-G{myp(D+;&{Kk5{`UPH~o^{k88oZgsv{DXv z-6bAvVl`PvH&FYk4Y?iubQ{^DO}iOIE#Ggtsy-N$8`bTmW#TrIc*R~*VtY3{Rc1D` zFRaP&hKgX3wwviGfi!Hy3;TmHHk7$EnKoTVWF?|*o^?&~EUvwwde|=bHcDi_8OKw5 zpvoA!+UXS=WipCh@DsLr1D0(1PO}?MHl`&)AY!bhXf{`8JzlbnI)_s!OEzYY=BdYn zA$9sU-$WZD!}7$606~m9w)Ahl?)oSFus4@7ItXJX8ow$wmzIXQu_AWx%8i0FX|NE` zCMIw|%HuLd4^uqT*UeVkOPwdec;M!$Prku>H*~8dhfSXr$z_<#PB!B{nkZal5fL$& zJs*ikFpXa6FQ0BEeXe@I0#j~gnt)RgD|0PAt$}76>!HuZMCU&s+!Z?lNi8)ts2?CP z7R%XOsJL;{l?wpttZoL&de$qM%DUK4WEbg1{k<3rt2Y*dq_IvMRzaQbusKaIRlmn@ zzO7wKSgca*f3J3K*p3SN-)5-x*bu#=*mW!Ds-+TwX{hizP)&gfyXjg9W2}>d1sbCW zLdwkMS>Nzl9TNGCxGf2@aL{TU5mkCA?S;)%A6Vk76v gA-jdx6LV$8;0TL`Yg~{Wg;W&4hGt>aa4`H-*b(Y*}dsHC+8w4D!Y+761Uj0 z@(AkD_R1WK=0e?)P)gWZ+18pQKwaFj-fNp~K@_m5#tO9q=bG&>2HUq&ohT&la@amQ zZ$^@a?WC)@t~ln6TyX2HT3zK^_OuM!q4ka^Fc&Lc*RL@{Mb+^u!)1>h2kN7jb*RkLNvI7|Luhp|^8FnO!A|6 CLSSLvfd z$&up;8h)$3F^BEAcSmif@e*5K@V=exQEW#Y*VonKJE$^5ZFk_m)oeTIQ=c=8L8LYV zZp$O)AVId`{@h>lMe%+O1$7%U0b9o%U_=g-v^{fimc(B=*dMmm(abMI21&9#)rtkj zdqBwTq_^NmY2x^98~Yk@>Ga}hPt3#4ExS5(*sF+{mWz+~PGT0IFWoj~Q>Qi`UK5k7 zFIvjclzJc1tvZZF6=^ox%C|rTaTv=fwiA`lLqRGDOD08CIl&}DX>0jtKHbKWU{3E$ zq1nm;w6;2&VBw?rwzcRo8PAoq)%GP-m~B_C8Fa-WSfa~%v*iBOj#OV;0CjuS7i4e` zcqZV?bAVcB#E^btS5!htab$9zN$ds)b#+TMyg&GWe{Bqa88GYmym=Fu!xpqUG#2hf zH`ugoZ%<;s$%q3*7BNxT!i^SWdNk<*xH?ZEF5Q-n(^IpKEnCdz3vOH2P%tC11B3A- zO+luriAgcq7kgUu*C8cSwJweFj}UuHFgO<6krm!}N0Kn#!)iM=uL5!I$zYjmN2*&) zJW0V$rldu_y;PSB!qJ>vz~pH>e1H%mTV}ox-ZQk;%g(Tor87n3&Ybc{ecj39r(J0e zIW@Ca%fr&?f<5hppsLvnTh$12U={*Yjqq7bG)|4NlXowR8fswtajj*QFZIrrSPc z&l`4<4aL6OWshBat7SK&+15N<82ZD`*aM(`U>WdsdTO?lo&Q0yWd`&n6MJ?_!@%k; zOxL!YJWgrLB$&4Xr=_}9#rA`EMkVYP6NW=;5XG^2OOT8vM0Op$8bn08fWSa51`uzA zHhVF?Gt6W)EM5b1PeFz4s0$B~3tRBoi7zlMmhS>Ljs@|=z)HEtF6>wzR)?Jq>w=}T z>yz=SZ1)7rbjModS4?);#r~F%QoE700jks8BzkZcRe@`D59P9V>Li-&hS7z;o1Ci4 zch(z(vSasba27~$<&FR?K+?ap`itd`X|^S8)!o!emXyNDZy(<^xEHx25Na3E5s=$4 zA1^k`z%$Xk&;+-eShSJq@QzsbknB{%&~_0dSYJD~)~l1)a3Qn@4*05(9 z&2G{siWa-;Sgu5JdH=(XOcNWwyE-vN+#OjMplWt<^@G*obrmf99kmC%9NI&2v$M47 z6(<}Iv#7#O%||$;-8eS(_1qOZ{co|OKJm~tPRi|$owRGdr3rME?>hb%((V${Vy6O{ znFO(JThMZM)y38+uXa=8rwW$s7)W;ow(G2H9?*%&7BX{po%XR6f-u( 4>KSc|n?4D%^sw1Pf+>Bxs)Ie&6Zzi(E`fht?Jq!D{Jk*xZqh7n+GI zl)%*NOlRj?d0-z`5u5Gptnxeai=B=mS`k=|rxoo%Y*A0$cj>b(>_@T8rrFbLNS$jx z?h2v8p5AakXU}}Ox!X@-s0A me$qt{ zE53})$H8x{TSJ3k)CGrz%zhlpt |W#yTCj5U4M 7H5 lwd2sZU1O_vClu_AU?A<@TJb0Qp=sxSAM-!C zyKC>}dmRSm_xq7WamvHKlS0`(mWU;G0da)y)DWxY+#7b9-pk|idQFbEH*X}=?!9Hl z5dC5~pIw%W>T-qZn6n|$NbTNBeOjgj#mPs`*RjoQCKTvfR{OnaO2kI$@Q~vBUIekm zWPg3`J}>rtM;CC!{Uo-x#lrR?mYNt&FS=9%BL55wjmV#9){GH>fb#u^XMsi8$a|_> zb*ucI{Yk|N`#$p1w0o#q#7E@-@)xmM7fYI$NMV-kK34LZHluH12V{M-l{N-(zn{tl zZ)t&~m?(-!DfCqBy8;~g#`f2pXOo91a4Gm53vxUV5{B-cY8-jEhyZek2p6jn_f|bY z#RX$B{bC_&7E@C$2IV!cYc>NmJQJ1dqa#!3V14z8?I07kS9P46rn; |0ijzghG#xd%8 z$L@#m6tI1)BU)Cik=zVC*rsf$*XmogmuIxgPULUY^F`duLM3+9wAq%+hOm<*8Husj zcm7WPwwB_BIgIRxZoKOHEQacgmLSeVT}lqwTL&&V%=fWigL`0ss)G7P{KJG7iJo0B zXAUr>DbthXinwo=6c)o+Q%$<_YX&3uB*hkohaiL5w;x+;aftr?volMZ2scuB5-4OJ zJ*JTsdzTcU(H-ewG>c0^py^=e8c2c#Ub1J;$;DxBmGqnhdqIdf@fOK=+Mj!n^1X_i z;%#hl!nUlr=+_a)E!Aaz)i>QGB3X*Bmfxqp@MayB8zQlbX=lVs`Co}xt_AnmPvrnu z99k1b-~h0Y@h#7Y^?2>v)j96ZDawf6bH5gWs;densAH?ZB)}Nvl#wDk%T3@$$-7nT zKj;tKwH9+E_IPyHei%zx#3yueckug|d*vhLDQJ#&q~z>3H0&i7*d&lcjJn#qy&}hX z5LQVe6=`1%lt3;PQE;}SF6o$pQU}pToM2O3NyfG%#k%!I)J;P&KkTng$MIm)v4t-P zIG%oz&zt=RvF&4b4ooCgHfke0 r)JC !5p;iMHgjryX)jBODJ?G@qeWLSz98asp zw><8HYD~i>#w1+WZ9vQYRc!U7N)4>Ns|bW0gB9<8_OEVeej;PrGqtiUiOYTJjTo98 z7~~~InQ6>ha+*u(#^zw8-=%avYuV>@C71TT%Q_7E3$-<&gk`>z(WvES 2b~k zJ03StA4V|^KjYuU?m#C;9(WsDvv_ Ri^KI# z3Wp9LNPpU|u#qx&_+e`KZ?ql!;k>~+-%f`!7JXov+k&~xX>%A` zwGozZxK>ipyOpV|hfC|y!za9@0b$xKYCJHV_VMB7Fz)*X;JtQeJDXJNKI61nyAUQj z4CARThf{7G6r{uCr1c&ckB3TenAq`wbQvD3=j0~G q~>(J)MTv0(uG4TjY *l!#L6-=)q2S&9ReRpLI&O!==^#9+*7RD7twVcc&5%N)o8qA)Zg#+6A#s z^jdGYMLQsFiC<$qJ8;6oFt#i@(7bFL?})+HYM9$RV;w6NFzdRG9^zqsjVfvQ1iecb zhJvr+tJM1>!}#;fe15nz-S;qzCvhF*N&zw-6p*LZedzL;xI%Tc6}jX(qWdt8F&d1) za7|{+2$1}sJAym9d=H9WvK9;TUF4Oz 8Xkie$;&TjgrCtg$18Zr!2NU13S;y0oepyH>E7;=zhk zbCTDl_H6+wxawO55o9{nJ3quj9K6VkZT3hZuIAI7t~t{NsJ{fs T&Bbt&`+0q+>o2@0V@<%Q8QFfS6H;Go~KrGX??M=tv+WzDfY*2e?*)HwH0J|4j zwwx!=ZLhjh5?Peq(urbzL|&>K@%<0&q^mouva{>ZniiPo;hT#6jq|+i%*3i_Ee;A6 zHa+Vi+s4#ZCeXHYtE?E|ZHIP(QfMbJX$Iufsy@v_e<<54Ibc*3j#)g5d5ElI;wrjB zmbftWQc18-kKJvpg4Sp4Qx?v)U0;>Fo%UzZrJ?N_MRMfKTlyMM3)5r_tKm_p`sQ@5 z2-lqDUY+~+5Ruqrypr5 s0wd;tzu)`eAYgB!orfo+n5GUXelF7PgK~baXhBh5hT{^ zFvUF2&i8=M@^nyb`2E_2+RwB0B>#X3Y}Uk>9`45S75>4{gM+liHbR$Wi6tHHt)1t` zUI*<5XSJR5X}A4(Iw_Ht*L+hKmcRtB&i?TFz5Qh=_3il7Smr8r8d6i#_Ucqn3 qg*{IPptzPDF#x!lbj$Evr9vl+s6)~?QK&NWl%H%Hgkh3umbBx(!lIpY37It~ zqFzR19qMz?S{558#!u)wq)wM_8e(r$GutPFo1&xY(%Tg#&6mp+)Ka5N(^3R&HS8%j z;v^s=NfR2P-g2?wUR^5C+_W(jh-{?ukT!Nr$lyV?l6*%ZPFS|qPRuRD)bRE~va>a> z5cfdh$#@%ynuD6mv`sY2(MVYB6>D9wDV}e~UGOhyC(+Xb>}Z+Kx$~SS)H|SI8 wHG%`~PZEHtF*F@Ko z!H~9=U$o)QS)~}C)Ro7}*VPXDcBX+A?IfNU0fi3_V4A+di$$sNFnUopEX-z8F0kiK z)!OlAiEB?MOcbIzP>sH%ccJYvnVC#3g0aq}?a;C*yb)6xL^iL=Ii0DZCU6fzTRkx` zs}H&pP&;lG8ze%oV>%o1>J8w)%!{leJ95xx{iTu?`ISoCDvHBXK#`l#yK_0>E^RHU zsH~E9+R xS!a@w{zH`rL!c`A9(_;_LvCHlFj4@Pa`G?k%I71k-Fb zC;Ld%f~M_D^W 0e%f>AGcXPm_jP9g)z zQ!-QDRbLEFW@tHr-0qurT8e1`vPZ~k*fWx-t5ZhmHs$~Xu@Y6f6lupYw7e(m1#Btb z5=?$&ExKA|5yA+8npbjDtkV_ swZ>R*EwD47GfA_7WNHYp-wsv9>>(M0EmzEW$Ym4DH$?k=q zLt!o`tAvyhx>n_+XGfj1XXS;0r+O0e0%kUOC-Ym9tyrubUDC!(SSy`_pe zF%zAsjG3 &&Ifn)N<2}Kp!g1( *j~=eub~c&}=Ar>>B7mfq2-&HUY!9XD;oBKWI26AClBV|5Q31M$KG z4B?J6w`E_DyGUmVZ?)9Vo4Y8lSMF}o1#IHAqMBQG*GD*kcX!Mq*xxBtvE(FUb`B)h z-Plg#1TEYdA<|5~)8T@1f5$8wyqN6^VOHO%=^agxyOGK7SB+iOg=_BAPiuQ;{qO=_ z>a`wU5O43su|p+(!hlbVo!#l62#CVF^V4vBc6Xs(vHal5uk7qFt2Dct4!U!s({R@{ zh~{84WY-m6fc4nHj(43)mrp7j^Y|tYch@J<3XV%Jm?uEcntCkAu*Ft@z~UJ1f1nfK zjz_D`6@Iv5^fP0NzdJ@`ij+*??t{~DfoffVxyEh*z?!?RCnEUU-MH)W=I<10fh}(r zZ?@@OJc4X>cjmSQ{MEi9q<80MP5Qe@*J`*TIJbTd!F|`Y#Ia6ScjM@k4cwRAvbwua zn%Ld6Z$9n#W70yJ@Iqz3cPe*dJA8~6izkKucXY2NMEA4{Am8=5HbJ=56|&vgDI;7m zYcX6{3fbG{{r7kDhzgNyqwJ_Aud9aT`uK%dEV0zo)o`cA*95^?zSy0eC!2DeU1j9m zv^#3q24B*ydYj!vW0B~6PXeI=`MYtP}OHwWIC~={p@eAqTJK!LtuZOfh3- zMV7WE7VyG)84``d<2&|cxHI0b{FJ+AXKG{S$n8#r6$uv5;Q41~#leKzrG+BySdg^R zU#pZz10cO74+@*P<5rt Nen4?N(Ooud1A5~vTg0GqP+ zo_x9M!%gr%i+=?j??u2%>e3H;7n9xD@91tC;}!H?-CgL+@H-`0iurbFGZj(KQqqWA zma+~&P#8o4;Z~fQl@=HT(gGA5+j0cE$Y&fjo)*Jxome!15Y=@&Vc~Av2l(zzMWA4) zY8F$N?}Va&P0sIzG4_8K&jM@iu20$RmGC8sm%!I|O*<;W)_R&ZcURr{N))(vR=B(( z_4Oyk-<^*8=!6GL?14{LeF>Cds Ck+-KRO_Q>;ANal;jo5 z>@`*E2};;xv3^rBq@%gJ>6s7pZrVi?$)V_zk;Wm%%$-gNnQ`7$^rT`@NsomT@jE54 zSrI?EiV~5@l`Q4Pao-D_TcGIWUDw!EbBLz}5($5H)|**vlqlRydn3aD{cOs+aUb)) z>$+sqXf`R+sz&>+>%eSxb+|Q_*f~dRQPb`eG!s$1YDPk=$S?z=Y`IY$iQ6t7DErN8 z!gcHD10|&2jk+{7(w$YTws_Caej<{DEfiN!tNq=y3;Dx(yHgF+q9aVk42U&4RFZ7* z@%8HN)NhIV`}l4}>*ntIyuXsWe|G+7mEFfS(C%Jo`qXoIi{@RyXE&iLtk~L>_bf!Q zDv|qfcPfLw*Ku0);hvTkYy3UGjE%nTWm&aVaX*d?B&%>w4-S@ie|72xhhglTXW-lY zbP)R^fotEZwJBuF{ZHBpruQTJQ&YLoIFGM+)0gc3d(We@^ZZ^%LD=DL_dG9ZR(o&= zcdrIJ^YlKJBR2Q+*6_r=`Tf}1`D4|(x#gj5_mfk1!uzT9s|GXJ>I-#F^?0ZJH?4F5 zyq~i5-qL?qB6F|qD;OD2?T>6BFS|Df4igyfCngHZIe e;^YTbc- ze&3V3yT9r#i9`2H@XmA9m=^r1%Bz-VHPm_sXqWxf%KPh6vwA{OotLeB$ZU2$ij7|K zd)j3gL7s2OOt>sH=K$^AE6c8FHkoefB$9AH>4GGHECqATe*+&e(yoba^8HlxeOKsM z^9_)?OryLXTE;+fPuC8ne; c^OZ*xD2qL#0h!9`=}{#oB3n4XY# z_g7~^*xh%BQ6~2>8Ul)7ZqGw=A1e_!T5pMAHlf}W>w7Chz{96Q6CNM#Pbw%_iN1Pk z6<^_A1{ncoQAiB+VJuka{W15$cs|j6cU&>y`;;R5ejHgr)86;Bk;<{ajM@eQ_MV~_ zs=5vuzn?@~j+@$Zh4(-3A$e}}g;)g5E uluop4}eP`$@Fr zHaRz |CAPt6hU+Tx1Bd z8Bw+`yd;V1JoJO;ekFtH{w!PkbpT{<7`-v!Dy9e0S67S75n&i$gT*cKRtCoOaDoAp!3#MK8wR@8yk&WeJpe_jUla2wTN$i^Dw=2EfoU zOu5POlsu=wd?~xdG>I$EdQq XY$v-;}qN;Y;SVwNX zbs|@Z-G(9uVMCVtk#!%y8+Bf&(KM^_$V0A9%0ubzyFiUFs=Fj}0nyz*8SJ !pSGiQ8OaT(G<;_zzSxFbCV{T*MU9^;moUv7wj#s|#Dpm-3T*YJR$ybu5 zJ$8O#SNh|Wg)6yP(?{{0>PWSOIi82(P+d4`cVws8rp@^L>2%-Y*s_+u4vy-=R=Ojz zmVPLYOa?4no*Z?u {yfTJlnODc5TEC|azh)oz zV~i(p%q!K`X4c;F`0T8XjB|NP-_((*OKr6{PP;%6esCPc=I>lu*QJYlvrZG}Br0^` zUwx#uI9{t`b1cmW$E%oJv5gy1laZH%4`aH}C+nk9m=;HIkD7SKx|JhUjdZOJT(to` z_H_2gJ{^M#>&~C#OvFQO0xW{# g?zML3Nah!A=95CG{gKdN9?0~?>NzV<4 zWsi2Q{gHG(tF>MrhhcyMNcem*a5MfhKdLA#&7EE3US!Nj4G~MlFea0D+t2v@Rn#?< zhkZQDmI84xUzlAt$O2e8K$-DCdMDIWOp{R<9VfA_hGb+egPK#f@);s=*ZL$qK8v-) zG0T7swY1|>a8v85z$d#S?~IQwT#+981Md>- z2Ou-<6CjVVuT>@*@50gi=}$Xbk$X|6EU7Ucui_DAR3
xs<-K zD7MLJ=9Fz{Jcku<+=L@d4k`D>D7qtuj?>QL5Fb*mM|u2L?f)u*6bxj(;e-lJ=!26F zP`>Bm)D#+>@XDvKB4UKuCEO-UUUuR@@tmJpB0&=dOjr_RP6nt2$6@Rbc(gWv+)SF? z;=XIYWab^-xu)$`x*+MbrqaccnAf%3v^?G$(7ryo$qjy3x(;4m9NAG28p46(t|J!2 zH<-kXc}`>RBA&V-j-h%ALTYUJTXmK3GPeIX{ m>I8anM)JfXt7Ov*q~SDq48 ?AZDD85uctQ7BGe z`S@;8k@H&`GD+FGX{149UCJSmAIDwiFy3Cdtp&@D7jpX_yW{YPCGjK%qj~i(&7^QB z6O~t0vCh-IXkSImQUETkcbz_8x0HYJWSFQ?l!q;s)13>g`3>VCh<2AsI5F^p&LwH? z9Rd>SZV<0fhyIyp&<>TMYNyI|lDcE*NOrXIQZtg!Fh-n>J4o9C{L~`*)PUW-j1@A+ zSmn+}<6<_s7+c3NL{_D1s2h}i&exY4uz;gZiy-)A@Q@MUS60QujGChzmNW;$xfl=^ zd84jY>74t~D=pMY+zKkl<3o1jp`7{gbT})4AH&pS2dpzxI8$7N=Ld?5P?wO(;kI&( z=vrO}X-hF`Az^!c<}#7Uv7*ncV?vmSJ!7#9d~h&Q6;bin*Di|3sCMz;_`y$2A~Nd0 zp4hLu!1!@`I&qssan_53!*6Ob3s_Lcu}-Qi=P5N2HMyh?wDm27%k^0{OqGc>fvk=v z+X#xY{bj6dlOHYTyCwCsjZX;RD@8bRYu!R6NLe#5tByP)arH0EQMqydLjJ|x6ve;9 zbDnnmW|R1Tk%zP@{y(nXWVvmuiPlxPY>`xB*MCmj2Lwro0zm>i0I0G!5XHV5)gyT5 zK@BP#;eo?5h2QJuw{iodYa(rcXf}3}eXe|Iz)hawm%8qK^ On z7YayaFAZqsn5L12sd2m)GN8t|9-m(@gy49zN4$8PTc!WAKBJH(0sqrFdhL+<<;zV2 zVIAonN(H{u0dEz(t07g!cI_zXLUm2Hc#%yLRQMNB4f|dhG#zZ=MUifgk^fJa$&lGf z%ie5z#6D_V@SIE@+U$j7ii8V1^D%u yxfhKFNB-^mAzb|AM>TEqG*)w zr4u5@eI*Jxj^$G)Fr{jb95V0a=3EPaF$f59bed?C%9fGojP}YwQm|A8Q>uQHFEw0@ zZ!wQR^%1RMjp7#s2GpPz2Zg7PZiBGZc^i^9B+9+G_>Yie G>PvuM zd}b{K=J-M;$HYdyr7dps^94)iw@_L41(=P(c1OYH6!fj6B=#gouc?R&Nl)0mvHr6g zy{e~{L&!;HIee9u3>2*l4e`TcK6(&HEE8b663J=xIP9e@)f2fhf)@43s|o#WPD?k^5Z z`{B5bX8`o< 7~F wnjFkrl#3u}ipI7exi(NUu*fW0XZX0A#D6AiV(-faWU zMK>_TnAkFJ2ZbR|=S_6OaGK6NLmETNc>bIEP(^+mRCN }QD+Pc~pS95%{_$3XrFnVIxZYsUU7RJuR`3%-ePSDP4gHdWNOR&vTH>Z-h}OXm#ew zWR_@ZlNbtYrq-VlFW&rI+l9WD6Xf{9F2k}t?9JtB>DxTq1{uZ|cku7x*_huqx!&6H zb5XUg+58;Zp|`#Lte8zBUcxDw*C2>2 |pVqiIyTV=0qVrB(_cd%Kx&1 z=Qw(_M SN
qVk6Y{qNp3a{TR+sP}oiaW7K&f)mR-Dksb4! z3xKfsyDQrO7s2vS9BMyIV;etD$gxi$X (~sG4 zU_ Um#z@ zd5yF%v`!B4ygzSwbsSsDou+6tOVZ<==2B^9Mz8qU2)e>;piF}}gZ#Lfqr4VY-35ZL zwq-Dz(3u9EG=eBKbxyeJLKKP_cL6|(!OsN(nP==#PtKW#8m3O-zS|zXzX-` pQTKJSEm(E&~YTnM(n8ab^BN8RgtC(ZCiu z17iX8PrL7?4!PvrAFlr2G>#!TrqelnB0$7Ouy1R=Nb)(zf8PfoAz@xyL=t;(u#MQ~ z*^nBAiE*aRiP }SZG+2d1Q8j v?LN=FblS5Ry<0O%6AZPNaJ;^KXY=<=yC`GP2;xKL4U(X*8$rzv T5BgfP*M*wWU0 z$twgX0e;|ekWlW&-d6YeE;kXYoH!wJYe156#4=0kPk^-8GBMta4(4t@WwJp-I*q@V z{p 7nwei^HApu(=ha&@YLSiuDkR!?2%0{-a z$?nR!Hx~$Rk>d=CYKe$7(dc*f#|HZB>33G92v>z;Nq!>SH4*c8N{~s7{%}^tX0?dU zkaY5d@SDufAu28^{SyE-=U%&|qGJJJJ=H!Ce&aj@pg<%77?rK1*H#F4O wWJ3!Uyzjn^$**J%|{7Re}mHS?yLf9Q>2#x)<)1XYn zud>u2obv(KKmnxF%-(0ZC&3ZcH;#$&NE3#2gpg==1>#|}@-?VZ<7o8i$;7s1UxN?E zUi~W9?I5XMf76@t@oT#dI%7aRpO^t{!b7-#xNRHsSLBqZB)0D!^8qfP@btUO+ 8h7!c6yzAUwm$!tQc`TTk#6OSkJyn>VcO~S3+4^Xjnz*??Le|v?jn8^FB z+qK&!5jOVHw0}FV{1DqwuOCB+FOgiE^w%?jyM4jyO$}Ygkk;^#iS@mlBt~DnIKk^p zop{Jq!ZK#s-b-lV+6D|DXDrW-9Mkq+RVm@$9%Ey|`REzKVQ=yj#O$>$O(#n~YuRNT zU&~Mk6HH#)SGBF<^$gNo#INTBMz*6a^RU@hJj@yU&$>E5<9Ka_#ArGa;^K3j{1ia8 z?8yT07Bbgs6Y?r1^y>ILroNUZz+>XqCd$pe^WzyAQ>*W_E=XlN><_3DbO{(txCV3qNM@VHj~)^S z9H8jA-RGIhIV&-!SSGVH2iOpxRg=;NjZj--c2am=TQwjvG|QCtXkuf1R<>9&9(HS| z-^+>g8hlBR0mnOFm_W=bUq4-#o8^>x_23guiC&dRBlhF#Ir_w;yw^`I6bZmz-hkKJ zASTHG@Y;ZD8DnL a{L}iiQOlB#Q1Edu|lhMu;cAXynFHeJK8;XA>h{?=I{| zHg}SWOhuoLpuJ BhxdWH%jh-aVRW~EA5`&ozTogm2^!;;)Y~Y6FwD=Wu&2BrgSCIt4GVQ z)IT;zyR5=Ux8j^|5-1p7ZOJEW{;w_9;zSKSPDLD|R^?tDuG%)KZK2Okbk{TQSh<}L z;y Q2XbwZP# Aj_(G6Y|*NVJaX;Gm2#aW z(y)A7TmlQ0i?)}oF%G=w)HuI!*0gQy+G`$+W wPo53+z={{uH8!79SidV)4h7aSMBS$SK4_YOho#VYMKAA EZ%L!WMW_vIi5)LRETF6XtRj1*mNk BSG;tH*)nCZHb4}zTp(a$wo65 zWDgCM^j!ppKAVM;rrmWJQV;rx79APhr-*E7&))vgQo;-`g2LH4K*i1qo9gFKJSSA-O_tx2p`*`WEV_V$U@dQrf7p*`f z88AohpDkL!bq9gs;wOF#U?Q}>SB%M`UAGt;)jKw72PA)yj24pLNPJunn=`cmYAju% zccu G(+EjS*X$DzvkGh}Mzq%EsVv|lKeI8#mLba4?_ z42^jJZXa^(K!1vl=ClbX*0pz6gRVVk0C>6yl(rKG)8|F!j86j*5?md(wS!q*n?7Vo z+Kad*Kn*b5gcKMfh5(J8?HF)j6H6BkVgrV`U2sX5YzH6%8ioCXaseVvsul(9Y_JB5 zf`CX+l=1VT9fA|JyG`dy9*p%Q+CKqwK*Y|$(-$(fY0W{%vc;X#II>QS!7Oe9Y!)$& z{MN)N6e5D5X5@mXqMoh)_f+TALtO-4v>PeXextLZXD|labnF+8VIFep=y}Sf@C<1< z^0>QjZ= U#CMYAiuuAs^%0PY59ekYEK(Q-l(0`xl** zbJ@nuOCdZGn`*Bi*xB8Xzy7sP$YLf_0;krn*Pvu=%kxMv3TWKJ1B9sUg()BN8RshP zAlHohl*1Y?JR(92W {OnO#D1A(No6xh&5?)+ zxeaNYa+KS3#;79((Q!r+mYHy$Q=O9*5-olUM&w(JwDluV$vRU@C%^Wsi@%j#fNlvM zdf{0Y!(6lv )J-pX-Um7GA&_^14%c9fNLFTg^m~Y{M z*^lZTwUKiKmJp%6XnTBiPyAbPSzLv#?9w8Za1mFb8{1lach!Ztck|DXP+JR}(Y1=i z^TsTxDJtU82cb_hQvD>Og5$Jwa+!(qHvkZjzfh$`6cWW(5@C?J7az~w0~b->ndZx- zO5m_w`JRE1LUBT!+Zai*62j%eb2n0mrSj8_V_gPXFw4qD_k4qR@xT9I>+({ne|=>P zLq0mRHu9^G7(;3q5g>~?x+@i}QH18A<%Bp(BqI(ZdW+J0Vh;vCMgn0D$;<}-Q5!Q@@p4!tGFYgtypW>&s7+SK zVZ+J_3UNblY$pn$cc3Caj7wdf0x@YJ*T5hI71e~UfRLEjFpd^yU0GfYQLemO ;YOvf^D!&XIwpn(G>hcUr{7A=RVh>=e~xy6LT z5`orXG+f+Bj5BHU>zH>L6?04E;- `)T9!~T3IZ*Isg6k6C6!l`N~cT=?Z(yP z^4=p!Ww|rzyli=8r#R(e69AV+$exxTgpJ={-v1W={cY(mH=ca&KRRkY1Zx@K@@;08 zq@wf^&IqJ1qAL%KV%y!OkMV5zUd3*# 7FCHb#PvtHH_V|m6&IZrd4tOQ}UMCToilo!ecQ|!gOS-C7rFx6r^ zPpm2 pcRON7+EzK$xka)C|JP5KG4+_va$?`s!5kqd_@>VHu!N9Qms3TlYt^+Kw zGft{}vJ@_|2ly^S>g;&g4k#U2x|Gv)Jc*XKXT{h?PcmS|7@*{Oc~d_K6+Udl##wiH ztr8x#T*!tijiZm2!YmKq5lh9OJw(H0CuG?AZt`}31YUx=h}CBKL5|pRsnE2if*wOx zXDqm&4_DUFeA1*kEpJueG54Yj%UgH0M$^7gm1V1rEnAY`AN8%zMb63yPS%+D@Ir%6 zF+~M`KV;pMy+m``l3E<~dHuOwsjd*bE2QRJKSZYq;*OR|%4L|z&9z0<3Z%Bb{NO>d zOOJvTQ}MPcw6j#@F +%0 zovWs@mD;|Y*|v`QWsi9;m+I1E^X;pM6*1v!Df{9$Cv9a3v=G{HQu_FxV_nmwXt{0O znr@eF_+@u0r_atVkrPeE{2?kl?I-!N?J4_47({=wG-vogn@qB0gU_l8 T^>su$mK&`91+pw#w!UXAY*{)+w;w4g_tSB;wi>8j0 zSF^nJv|L4UF>QnAX`vdM&r28I#v+(#)61Yrn}np_Mw&Mxru}6dUK=I+5}Vc}YKn9R zbxaCRpykKuI4`)KU{*TN36StUYJwy3`bWzexkQ9Y3b_VB5&q?D8KC~sWl+6Y23P`1 z?B%o);TS;LOb1p_#Pa3>YG^4mcmRZ!ztwC=oh%mNc`_E2%TArnrxm4~;AHtfr-jB* zp;juTyZqp8m!&d cv^;A> 53#%1^OcFo+lnct%4jkrF93!A-CzU84 z3cBfn5K!nQ9SS6K*>32ijm9PZ8nVx kj9R7&t1$0CW9 z@?-3^M(^y)W94c5^JKdbDKm0rb_QKyM=7xhJ6{#K#F++(QwPd1F)_d`kqT-|mbYiK zq_*h;0M@pBbroD$3*iE8MUu-I(8%`hK=fk})a#|YSa3)$o4}a9sOe;aP }Z>(DIT99Bf8+}tcRcQv&^)`yli|T%3FBNlBKlp30`%{lN3FZkg-(M zUw`@O4E5&hOcd9sEL~cLm_V%d%ZvP~%qZ~h1veP |XPJQohJ0sZqor9$#_*{(Ay5T|P)80fO)1 *F_Pxnx2L=xNodU)1QPCrQh#T6eb1nY9IA3{ITIbf1)T!l z5x%pfLW2au9IslnxpVd5N`MTUQBFm*YS&2>(F&tNAb+b?0JKR~w-+{rXmx*qXk(Jy z3Y+Nj>P~nRHT(q+Qed@>9k(|rtkvq1tPMTFNmK3URfw!6Te4aSXx#>C)d>yTa4Urx zrHS xn??EQD=;eziK&?h|5(cKy=cX>yVkT3N_oSSS=$X zeMZ7@Je 9>g&Nv=J~1bJRlx1lDJa7VE5)O|1XF|q<*%?y zl<`DoSp&-WS_yNb5XkkaPKQfY_h%F@EuJQqeHg8jDQjxXN)GiQKL*1=#!E)|#21K= zTv=j{qLXRNZTVJ@@n5SzufLk|ylT~g@Cq6{Rs^q_CY$&ob@zD|Gi;B=ToWrm zcNl24ht=?`@Z^h*260 zqr}JF+idMdM1GW%x4JoJo$z?LZwUoa>6tn{ou@fyv5}?siqc%+>avBoQf)TA8AHR{ zSNqiI WvHo1j?MyOI1skZia@V43#1&)xj9 zT?i4MG5#_Nm$Ow}5Q>%306Rd$zc{Yq)wNfgp(pAfB&Hp_`bM}&ZBt=j?()!0-e(U5 z;En%3dH9W^3JKBJcG$1Ki&e;dEA5ayCTJngcIV9a8LFL$eDH23<=W=L7lOJFAu!DQ z`foISg^_qHrnh=8pySnb$c$NiyeMrBcV7u-2qw;@(^+CCdN7cjn^e)5&7k R!+HCWU0mV#s1LdlH zZaE@W+zCc9|wAz^MwyZ%(u$`tp7ia`3PgIS@Ek6!Wd(P4B}#7C+_NC z0TWMRdi%)W-_!x1rV{JGt73^UJw~%B1cS|QJPwMTbc>|Vy{6IG7n(FqfO^7LKjN*n zK{3I671C@ zZ4@HZ%F!Yxhc9972rI=r# XtO*;HszYTLl#VPxX4(^sJi2%CfEPbx0JM3IYy1<|*u$)YFz z+5{o(eyIv4#}re@q3Ft3UbRArXoez_Zv$rQf%F;l{4rrtWEf`6gdD)Jw!ma6VsG!u z-o91LgM*{g-yVRX6H$2E00W45YL{BaO#NPc@EU#g!KG?GL8opnkziL6ofU< xkp zYkB9Y$S&zUlE`E#y1l+ )D3=e!Gmmx)RD$-0TEA4cm? zzFPcheU8yeX0v#G?G; ? zXKT Xvc7X9`%oBZea3~!);DK6GTp8LAMD@y?hI>hD|6ir=8hy? z|M_3b2SefjwZ{8&C1wy?QGh{YtkaQlCCb@a70I60w--eXlXVULU}Gy2@g*MnTJ tg#ocUV)cM*g*oB zWCQ}0%xsR%QT?elRDqYPVm1mGC;u@-t?L-8@%pBYCS?-@tQn&(HeF@3CfbU3mbsB* z#;2T`cw%DKx-QdgA5%lz+D88aPukiYXOlQx2W)*C&k(bpC`g4Tg3G{e3-+Wm? j -*p6Gv6XZM^)*UCkmSp+B0Nxnc!l4 zeXZ(jdhj<9SjomQL QFD4=I<8+f5#$!bYK+ (*9Js>zYW1FGfrunS?cJE3Q3Ct8zkGBg=@8DzcC~=6~13 z{M+7Md+AmtLKZQkzGofa7aBmC@03AV8=*LSiZBO^@O-R4{vH+~N~##wiPO(y#`ZRm zN@UjrjkV)&jn rPW; zHeKJ;ZU62uqa)% 0J(i>&A?;{;eT-wr>%{(}4 z{Xv0bDWuv+Zd?V+EBzw$LFgLX9K4Kd=9_RtWS;SmODGJwaC1=vVSUCbhmqW!kKh{j zzo)3f1AL|%I|sMa!DqG;CTskCU4G9WZRbr#>yYfli!X8t%2?E0rVwq9QmWivaZ>91 zc#Or}=D##40t# ?Cz#wsu(>Gtp1J=h7toO;_bc z57*a0vR*sBPrCLZ3zV{7w`=3bH+VxdaU~w}#QLTV!thnl (O>X2XYf;xzo +I6rD~JH;2fe_&M=o$o`Y|)u;a$wZ&2-nFlfM?FS~kwQM6#G2Gy1Rp&3R zRf|{8Q43qaI+#jQF$S*@r7wg_uy5J(-EN|7=vEZwGZJi!J)Tfsjc zyyTMyp|lJ z^2e2J_%(jaZZQoM?lxGz rZ|O5$u0q~q(A; q|~~+ z-43yNBSyusqg@Gr)s3dTXZVK+36*o5Cx(knJI)_*uyNHm&!MCZZb>f16{g~$YU^vU zm4abbLt$!gi)Z5~BNxWVp+uB0N`bhJIS|=0FbOX}vz9rW9ZLOGWYUR=0HyS+38j44 z^cNWOYgI%C`pE{MUAK9&n@wVk9oUjNvP_xsv1LBZ5V=Y+)C$ZHTr)LZP^|A%Y%l5u zO =EWX*0^eh#DM_)*%lW1Ls))7%F9$`~MCZ^MK8A$vZn$XM}2WlIKPCGfbt jnp+t&h!Zh(OUiZa%p6WOEyQi3D^;o3`V= z*&u8@@?;o|HrHwuk)0A`uJyoEdXr5J^JGVx+mPR;O}Pm;Dn-0$iy$MOa2rLzHn&Zv zh*6DAh-S8F-du;Ootv8`%`Hziw-;11+SFu|uV|`6o4mIP5G>`U } z#Fli+?z9+e9D_fx7q$YbL1K@xmdV%vMr=NK^zudkbBx#qo66VCZG(JZ|2Bf?H-2lE zfdyb6w7L6@v~KFS5^zs8plKT+oiYw&r_VO+nz%-rdj$I@K`~%$(@$Vc4dabu`~Jr5 zEwY?!ZtFs!v+ mZ6gGJQ1JIC3^+LN<=t|7^0xrpDxFlWk;#nK_TK zC(EAFx2s3dU!?lS8+jr<`g$YG%@jjN*|p(7{+~^a|5V(UMB`0JiJLNMj^v99#0UvK z#um~4elGw*py?(glz6V-=I+8klQ3_d=l1qx6HGEWOC6|%NO|$xZo+r^ByP9CCJq|y zMnww2E?_YmX(t kC{EJAc$QM> z>;WoTEHIRfV*6OB FQcmtS2KZ~C?tzhV>Hg$wwvGIb7V_Vv{O_9Y+6ML@D{rjPf z+vZx*`q!t;ZLsnX*T{wg>&@1&$gnGfgj4kl} zrjaDjLxng)5Zt1&>6|@}n^usw*|cbDMm )c$I0+x!Nx1po1R0WB$NMEl>3b0Lo<0DZ^xKb3z)-NE zp=!8EU-qoCnVOJeNM%>KEE~78xY2$i`}J6P_G+8pg-HY=N*on*mFx%xq!UVx+oy^Q zs~iF*C;cMpRHcU~6vPH+a~+5>Pvhe^AvS~)4|r3d%It W*h=_#)mXiJw~B&0ek6T|w^k1CvAK3j4GYOL>f%j1 z#Dr)~LBpk~Z|ZPr=X;Mi_-C8CluG5T8SM3g$5?Md@$|9vHL-ybX(rr}-6n7?ThuDt zR*H!@%oYUoIzSpja}x=@oKlrfd$=`hg6`e=ovAjN_>!r7(+o;x@|1tJ1OAy7Dv}*A zkSnJ`se8*6xwiRu2D9-y??TWuA*{dt-2_uOWL?%6`7hLb^yghG*(4r|j;pSUCRtTO zHrHN_J=%ES^-yE!34iv@Y8PORWH61f;Fdv|-#AvF5MjMNiYE+y4G?IXbChg6tGPcj zs-@fOYH*vD8{C~Q#1f`A9*`pclg-N5W@F>#cn=5KV7yTY(hais#3{WeL~h)iQ`E$n z<-WN&6Kdv&cpZD+r%<)BG2B47KP#plQXFNu%8c148;K(tIjfv9P2yQOu#vr?6x7$Q z00XU`Ai}FKj7cf&T(nZ~~!@Y)#t_CgMV_Q=H(&!Jdpplx$(uaM^@fE@7-g@dtZJ zpxm=rL%C<0+YA3CU)LNZerq92&P_X%s{6`H3E74cb~bh0Tz|bSn$0EtPKGmjb91)! zLtH})xGB5#sU}m$8;@hrf~l0l#CO+8Gn)W6*w?R$*4~iN=z>vW$ngQK1YM2bQ03Et zTl42! pM zBU^*58+Ovve(1*W_U4?}J>IJ9_b{@px4kUsSMft$NtES&Vhg@;4s>YijyEYsl5W9T zq}=exp4@x;XYASVTdY6vWZRa}XJ$K%Cgm24cyFC|L5jAYXrdL=A!J*E7ZqTk%N{A= zGu}$m$c6r}mElJt9@A~OTF564N6uraZOiqID&97U;nfz7_v`PHA3smXPNii!{$o7b z-ZX|Edu2<-cj&Hwt0NK~DjRfHQCw2m-Zl)4Pi)nGUbU3Dv=ty^;pGmu7l>==7Q~@= zu&qmjjQn>GjyHn7y@I06H#bl#@j*63CR(FaKtZB@uL&+LhG_#8lA zMB8gGB*KV>yn8JJ2WGO7dT-4l=GUa_SU}qb7Q{LTd!@XJ8b$T^y#1g;WqRkYe?3Xg zR$4NS>`}>+-F|Z}N)~N_gyV`!YZC7thUl1W%ONanF3DgI9{BC;1)N7^4^ESe1% L3Xj>Zg;D|{Aoq%3;QQ 5Ky z$8B4+w`JRI{4P8>VOO+Wqbj1&RxEc~@EdvaECZ6!G&o+`z?Rs(qULRBKP!2bW1F0& zY}q!{SJ7$`+z4--2p=*p)KoS0#9mTFsrCHNbD70}NVV-WK)$Ix|DyV9%#^w1B;vc2 za%kUs<5^M_`k-A=+A1IAy>#0N1~KS`io!xVvH4Z%3&h9PM-rMGZ0|zuRHm> xj{W8=4A_cEhy;c}ClJSL#^f|DXpz`EEhE18dfHjVnsqR=_Q1MO0Jc z0XBgGW%fE9+v`wzZF?@k0#DoC);2e+Wd37F#IlKM2L$wlj}RJ373oR;jAQ@xp9wi? z-n5U5i*4haw;g(Y<+0#)QfXXo{|ul9Hk5j}qA|NkW#2h{+TJ!5YLhJ0k>gDH?h{Kc zXWKKfimoBQ#H-2Z8dwt}fC`yxl^~mK36cVe+3v*(tdN+kobseWZ1LL9N-xR70flc> zlVaNmh{RvJEZ-WPcv~lk!B%YI>*!VVzActM)6082|EDp%2|FP|*V_u6FA^K>LwAi0 z57-|O7-$eaLZx_|&ou;j`$0&gj5+94MIm0RZx>i`0r$Yk5-BXhKDcLOWh=B%?azL~ z7Y3`Haj0$Q3@W<4mMi6Jwhhrw;yJXn`}Ad@4GC_EseUh<>plr;e|vwyPEC=AcbeJ= zDLGfuWl(H`q*@QEa-+9|6kK(qB*er9Bz~f^52)c^hS9d=)gdaik}7jv{E)~(x%K#| zoS?#Or?&GM&A2@$66BS5-ryOoDDKx|k}o-4&Lf?<@xg)3S=YA$f{&Sl$K2%PEjr<| z2|Bh~6W$)M339&A69iyu8H13NQPkUp3;{^MO~5==m*k_jmAh?+2&pV?nzq8d0$x9` zHyM^;Mc55T&qh+ )GcAm2+*dTm?X0i>|zKO`@ zZ7|>|sC}zq6hSM9yS@=k_(z&>7UK-s9)b1FQ(wey21(EPPLhjZ45TM+Kh@=OLdFZ7 zt24v2-gLmWO#C+6u991%8^+0&VAv`q2+qUfx7Y5IVNgxNG?8X|F5J~+-8h0(X1$@5 z$Kw` *{*1KPAonHQKJk<`T{5%BKPTJ9%fce4i}-Qc7@Dcq1$(-P zsg|d6UNUDJfaOQxvll1^TLQ7VkbI%{!4-^@j;1CGeZ2CL#Ks8{%%EZ)b&+>*m8h^q z<)@8xVhi8a(OYBY@(jo7yeE_lOtzg`J*;B23G#vxgye={ylqfvM%$1;Hn!fi>Rhs| zL%KT2_u$tduXy`OtavG6Yt!gqAuyQ$F~}OaJ2Nk+^}T6!Pr(cAGP0K{j>Jl+T+P`} zmzBeim&L1W*^e9&Ll=Mdc$RHD B0-0KnCFoRGV;`fPw~Zv$mGBhD9o@?)rk*X>=C zN371@I$oDYzS?Ig^8u6AR?eTV83Q9XM8OVtuM9QRxmbbz;u(cRQ2vK1**40T)jW{7 zdWnrpGIOL3w6uJhRmC&EG%yTLVj1oisx<#Sk7?K{-E2gX8EnQ_15B!) !Km}c z-(VZ0sk$LD=Vfk%RM?At;7Ic#1ujR^kS_^Z& kVAwl2T zM-N7MH==h<6q%Ss(CUl^hF?ni#m3{^)u0l`lKm1)u IHHO4!6C=dEYHC8~h}|7*Nd1!ITNa}-Us?y#D%z?61D z8K @M-)polVX-DQP v!pq(f5<;Zn=G~zOa?lQy?U-CVyP1o4jUhHLY0<&ki(qJ!r;tFR zPp%cek!#UT0Qo#hYJY|`Pi-SUY-Nq@6H>Zu;LxpOI{5xXgig#bl&TgBD}9X8xSYh1 zW`$DQh+D>Z-+uH1J9UfMr<%1&6Lp!%fzYe%{~V;3DB(ImSA2O|P-yHMnyMn PD?;Ll%4Sn@{y%+b=Z5 FC+{KrLAw!y`n58F(i>E5SF44(KP(5PA14$M^Ny}0ncrTg-(QP=i z6ml6_gDMA1-;-NiWMMV+%^OTeE1+!BIRc|iYuPILP7*4ybr`00XmQAoyBm+=kcPiQ zrK^&3*Sd--C|yJgrFR(ZLNcN;SWeDVtH@4vqnR<~G}-}|)PJ@IcXP6`IG&EjyO!6e ziK|`60ncrKch{Z+Ug~E|uo0)GX^~gfBO^D&M*JwE-K}YYk8Y~_Qra_P)9rSIW}l c<3bNev#cmnYz0h57Cxs$9^+Pkqk!8=yudR%`+aX zJVhgqc17bcwk}xb>-@xYr>YlkKlpDFoPJZibZ!%N=g2WD?7#tzNgdq5`>M*sl5&T$ zksY{0RrDB{gp)WPv)v`avCR+Hgle<9PQ%(F8^ZK2POt?DG1~q4-(nhxjSF~ 2m3H@NunX|*HtnH;7@fX9GbuLi4sfQ?PAXn7zwbIB>Ba -#TB6`{j&N zimS8bqy)*aW?uY_*fRU%G8)#F54*ZF#gVG@JJis47a~VwC*MiKBp`PuMmLI{cVcv@ z5+ipZG>~Bop@BqE=&oe+ltjBui0{t(b$b?>;Jf?idGn>mkjCY%_B>WQteB55sol*P zc8_HhI9I&8c9SH_yN(9r o-A@1OR5&BxTb3Cl3 n=>Cthh{*Y 216sfS zE<^@v)K%_QoC{BMjCSjKQz}VI5M`;%IY}YOFJ-CQ!FaJP+zug#+A?x2?&@N*w%}Qc z-BF(RVP?7F(Y~n(%IgpIJb6bZ-X-j0a8Y;`Hxb@zr&Lig4GhlX5n%>$;K@90KYa{^ zCB34#X#6=%GfQ^2XJmb21s%^dA~Js037ML(h$irmr7lOH$fvQfOk*rqKz8gylsMxW ziG|i+&_>evF%jLPJ{)!guA^w`uHyx4E8jn~Z6G>l wUowm}whlY;=!W*|6zsvIRR7*Uif@vyN2Hi|^8x _$`?k;MKYnRuDNxJI =K9^$7(s133jCJEKas$P>DGxGTv9QZ#?WSJ{UBQiHXBh4ErLD+ z=I2~EN?G&0UAwXM?rt1>K$=cq$@bOlM&H~idM6{wli{93jyk;~UMF&70QTQxB-w$A zRNA+&-64E2Xp1hTn-(DB4{VLBDUp_za0q${vbRmpL&W|lr=_T?7e9Alj>tpzM2dAL z7Uruyz8 zI#U$NwZvGH>}`=t82M0xW~UR_uJ}jg*~d0 1qT5N@(pBuy4S?^PUuEdRG}`wyNj#ebs(@gB`C>)W%tQ qN5lX6V?K>XrkD^NtrpOt44 ={)1a#t+Sy3 zJ+T`5YxgGh_aO@yVcXjBD`HvRV>@N#nez9jY>B;6t*WUSF 3;x1d8|4$G{I;%B zOK{)*935keW#6tXtgPpe?0(t49rV?L&5q}CFHTs4lQ4bar~&nDyl;72YdPEB1-GU{ zuI}3*_rRWXbH ZG2mUsA=VqMV3a)6~$^Ryf=LA*<-oCtFwh`qROEW)k}o-#7`H~ z(Y{>=sirzd1>U^^QNQ%}w`cBW)T`5^2`762tbw?&_sG+n9Yy4667NIcsj*4US#O8D zu9}*@&(5hMol=|V-+YVJ{`X8Xw$i(+>Dc}}L8ep)dyfX#k8?IGg>6S^`ByX$QIXYC zOYjVO$=EpY)n>kJ3Pt+R%v1$^AGjTh(Yo<~ZEsINDf2HIr?xO_m#Ex$e-Sa7F%|-x zk69}yQ}%N1!iByUY_VXltRt$kArsghy)R0Y5VyZ^ZYPSjCq;N7Ivyb|j3b!JxynYK ziP?c23PX!VBQe2etrI+vseAajDL!N8!u4XD`H3!bXl+JEU_T-|l}(3G =zEj7dW-RXj86+B`p8{#v2LvGn2=aqCCQQ=w z(#*j*Oh&SCi^~l9D0tw#LQrK#;hq3VU+syCiJhIM$eCO}GqH5 PHgR9w`&{Y4%gx2c*D zGrE_e`g1J&9++H2KHmQ3BJxJObT%~&V1HqEjh#y>bbS9mVo0Ba&sE3c@8!wFvhZUV z?PZ%qG7_kzbKFZ9?>D2oO)Wxqz02nbwwG z2+An#Y2m_b$x?@P#t>|i=B|U)*A^lwEmJ=7oN^ZTP0eG=cqHE1GwtY0D&E@X8;qhD zy+l71U+oj(8fYJSEr7TC|3EQSk(e&pFZ &*s_w_6%P-jQ4jT{KqXQ`z8QLaurHwHy5JL{?mUDq* |63_cOStQk& z&r#{j+jwr&?eeRlP$RW)T=e&D4EAu}aNs#(c8$ T>jq7Ms zH49Nr`v&|iy2?1tNJ2obCv~P1Sb7$D+wPpX5dK$0{L7w@q6{YXSM;34wv}fnVsBp_ zBJuRXgO`y3hzLx*f!x>@$`d35g*3&ml{So<*R|_nesGIuGDR^hdc6oa!!*>)@uO?r+Zk*H4HNChUzJ@6%P+nPd&6 znOo=WHX{tuhXW7pM*F7BizK0&`lzq&2DEFfyH0@egKU1p@A-Ja2Hsuu*ck*N={dx@ z#)F*y`SZxxcZ8T?y6!YZIAC7OAUMIihmy5QC(4dmT}jfD45MsE(y`7rh4-YWu0C zm4Sm+5i6lCh~SsWk3oc!F3SRDmv}PPCJ{A$3h_u1(ER|#gS^l4h45e(*X(waa7tI1 z_t!yxRpX~EN!y7YFBH;et>;21-CqE+R{J{2H3($F{>V$UW@3Q%URipiP@jaIo1ne} zvD!z39%3qb7O(m`AjKjZNZ0HJ |c>gf~Vhc2oXOrd8joiRI(h-)XC%mt8AR(UxeKW} D^6W6ofNKGiZQxOtsB0UNva$EDOEPWi08gl=Y{O+Qa66>_v$J3Q<|NS7-9@? z-w8P)?B-AiXSk<$EJS_;lDmz0lMXL|__oQQq$} vh&`Q|4Xkdagi*Z|Oc{ zh)6$?Z`Ed)i^g!_qJXzX830eP+s9;-O!f|?=o;~~dQLLyfL9}Xn7R%^Hc8fhhRMb@ zC?R5ZmLRqg&nXft^*EMSRt)+{@^C0?3z-Q`k-zs>WhBm5Mq00~Kr0Ak->&OCNX@1x zD+(7s=99f*j6|sbrtb&Jx9>C>b|sCOxZf< 6^3Hr}2G5EKAxLb{8~JYwg|>*7*UJy3{1G!tN9_N> zn9}&7U5d$@uo6Q)EBS%E2s%HIzn_Tvn>Z!8fSKVJ6H2lik+BXG-n)O;gmc-efn<=h zV2W|yH)Z9nnG%(Lxc3MrnCR_=7*L_=M>dSX10462JiBjD!lb MXkBiszA|X 57BEacmi?QC6eazNeQA+!oBqoN~h4TSk+EWSEM&XkU1l zODzSDq`076ZnBLnf +G%0Py=$RKl#Y(QzP#j+BxIk$ D`%!zGfD-Tv;X>K$&p1`F+c7@P?PUsb9Kt!zN?utP}h!hmrI5PvBzFj|FdMF1$`O%Xlih%QrN5s<8= zvM_4h2gD78jmIR5Bz{N(K`K#s9#riEwPpTdK>9Hj^Fuq-kkn)o96)FIkA)D5*f(k( zK!*@42-mPb2eN>pCnH>k>j1KGAVeUD&S<9xL3@84Bd-Ac6sHCBtd13DDDE$^gDb5Y zIaOkPoFj6;d~Xy|;H6& 9s zT>?t~aMy(Gp#Vxep->qMwjFRgv`mmx2r@(53HFyK$vGaODLyq&RKkG}zH#@^(m$7g zLOK^lh{Mg )$}h+9BCX6oF<<@( 3C5do37_8Uprk z#vU&twuH%)woQx?D$q}O@Sr~+Wnk#>DZcjDKISG(uxVtWX#_HpAmPbac`AWKyYf(@ zY#0;14k34EF(Xxq=;43$@fi)PzUI3Z&P;>g;dR-6{XIGeu+Z}ZBPj!;IA@i6s3AQN zKyt)4ICOc+NWWLS-T`Mu8cTjal#u=O@SnK6S>$3w2qZw%ya{pdg!I)i#&^Q0pt*Mq zTo(4ZLzBQIDjeWCr0nr_gjlZ!M0EGz`pO}k)uS3si _LX97!ytP$kUi(T+ZJf`_@ znI;BV4}zP-n5Zj(8)T5lv^#>;XHq8Wk{QSg@xW${Mm{z&VI3f FgVH0U^q)`m&_A1$>^STk2`oze7FMTAG60n6KD&Uuu7?p!bok)D82?e} zg=~8d@jF~pl!FYbqMW1<*xATl?!omKZM~+oPF=cSY^y8q{_V?z3KEBoV~I#-y1T&S z&6x*+K1NW@s;;Ge_;?XG5#)Cv^d{c0EoJ?h4vGZo?v