- FreeGPT is a project that utilizes various free AI conversation API Providers. Each Provider is an API that provides responses generated by different AI models. The source code related to these services is available in G4F folder. - -It is important to note that, due to the extensive reach of this project, the free services registered here may receive a significant number of requests, which can result in temporary unavailability or access limitations. Therefore, it is common to encounter these services being offline or unstable. - -We recommend that you search for your own Providers and add them to your personal projects to avoid service instability and unavailability. Within the project, in the Providers folder, you will find several examples of Providers that have worked in the past or are still functioning. It is easy to follow the logic of these examples to find free GPT services and incorporate the requests into your specific FreeGPT project. - -Please note that the choice and integration of additional Providers are the user's responsibility and are not directly related to the FreeGPT project, as the project serves as an example of how to combine the G4F API with a web interface. -
- -## Table of Contents -- [To-Do List](#to-do-list-%EF%B8%8F) -- [Getting Started](#getting-started-white_check_mark) - - [Cloning the Repository](#cloning-the-repository-inbox_tray) - - [Install Dependencies](#install-dependencies-wrench) -- [Running the Application](#running-the-application-rocket) -- [Docker](#docker-) - - [Prerequisites](#prerequisites) - - [Running the Docker](#running-the-docker) -- [Incorporated Projects](#incorporated-projects-busts_in_silhouette) - - [WebUI](#webui) - - [API FreeGPT](#api-g4f) -- [Star History](#star-history) -- [Legal Notice](#legal-notice) - -## - -## To-Do List ✔️ - -- [x] Integrate the free GPT API into the WebUI -- [x] Create Docker support -- [x] Improve the Jailbreak functionality -- [x] Add the GPT-4 model -- [x] Enhance the user interface -- [ ] Check status of API Providers (online/offline) -- [ ] Enable editing and creating Jailbreaks/Roles in the WebUI -- [ ] Refactor web client - ## Getting Started :white_check_mark: -To get started with this project, you'll need to clone the repository and have [Python](https://www.python.org/downloads/) installed on your system. +To get started with this project, you'll need to clone the repository and have g++ >= 13.1 installed on your system. ### Cloning the Repository :inbox_tray: Run the following command to clone the repository: ``` -git clone https://github.com/ramonvc/freegpt-webui.git +git clone https://github.com/fantasy-peak/cpp-freegpt-webui.git ``` -### Install Dependencies :wrench: -Navigate to the project directory: -``` -cd freegpt-webui -``` - -Install the dependencies: -``` -pip install -r requirements.txt -``` -## Running the Application :rocket: +## Compile And Running the Application :rocket: To run the application, run the following command: + ``` -python run.py +1. Check local g++ version, need g++ version >= gcc version 13.1.0 (GCC) + +2. install xmake +wget https://github.com/xmake-io/xmake/releases/download/v2.8.2/xmake-v2.8.2.xz.run +chmod 777 xmake-v2.8.2.xz.run +./xmake-v2.8.2.xz.run +source ~/.xmake/profile + +3. install libcurl-impersonate, ubuntu (apt-get install libcurl4-openssl-dev) centos7 (yum install libcurl-devel.x86_64) +wget https://github.com/lwthiker/curl-impersonate/releases/download/v0.5.4/libcurl-impersonate-v0.5.4.x86_64-linux-gnu.tar.gz +sudo mv libcurl-impersonate-v0.5.4.x86_64-linux-gnu.tar.gz /usr/lib64 +cd /usr/lib64 +sudo tar -xvf libcurl-impersonate-v0.5.4.x86_64-linux-gnu.tar.gz +export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH +export LIBRARY_PATH=/usr/lib64:$LIBRARY_PATH + +4. Compiling +git clone https://github.com/fantasy-peak/cpp-freegpt-webui.git +cd cpp-freegpt-webui +xmake build -v +xmake install -o . +cd bin +./cpp-freegpt-webui ../cfg/cpp-free-gpt.yml ``` Access the application in your browser using the URL: ``` -http://127.0.0.1:1338 +http://127.0.0.1:8858/chat ``` -or -``` -http://localhost:1338 -``` - - -## Docker 🐳 -### Prerequisites -Before you start, make sure you have installed [Docker](https://www.docker.com/get-started) on your machine. ### Running the Docker Pull the Docker image from Docker Hub: ``` -docker pull ramonvc/freegpt-webui +docker pull fantasypeak/freegpt:latest ``` Run the application using Docker: ``` -docker run -p 1338:1338 ramonvc/freegpt-webui +docker run --net=host -it --name freegpt fantasypeak/freegpt:latest +// OR +docker run -p 8858:8858 -it --name freegpt fantasypeak/freegpt:latest +// use http_proxy +docker run -p 8858:8858 -it --name freegpt -e HTTP_PROXY=http://127.0.0.1:8080 -e CHAT_PATH=/chat fantasypeak/freegpt:latest +// set active providers +docker run -p 8858:8858 -it --name freegpt -e CHAT_PATH=/chat -e PROVIDERS="[\"gpt-4-ChatgptAi\",\"gpt-3.5-turbo-stream-DeepAi\"]" fantasypeak/freegpt:latest +// enable ip white list function +docker run -p 8858:8858 -it --name freegpt -e IP_WHITE_LIST="[\"127.0.0.1\",\"192.168.1.1\"]" fantasypeak/freegpt:latest ``` -Access the application in your browser using the URL: +### Call OpenAi Api ``` -http://127.0.0.1:1338 +// It supports calling OpenAI's API, but need set API_KEY +docker run -p 8858:8858 -it --name freegpt -e CHAT_PATH=/chat -e API_KEY=a40f22f2-c1a2-4b1d-a47f-55ae1a7ddbed fantasypeak/freegpt:latest ``` -or -``` -http://localhost:1338 -``` - -When you're done using the application, stop the Docker containers using the following command: -``` -docker stopUI#(2+Kw{#J|8?l`{ zj%y61vB8eR&w?~k?t;4s18(sAM9NB1{q&pWDE_ICR zhh1G+GwW#Igl@;?&%A2T%R%}Qj=oryr`eiYvVXj@-dg>Ap1M*{BzF53u~Sh~psEiS zGv`J)Y{QBn%Z}yCd69)lf<-$YC-&6?-K#gP)cw4*)^o8Za7y{hj@1F{+gSGZTjwcr zt$G 49WbraoTWKyXUS{k?Ry^EGxg zdM$kuSxPlnOYecHp9MN>+uH@s7Q_t)1o7{pSh}dyWRHMVN2aBne!7mi?r`dFy}^jj z=^y!> 1~xx7eopJ?KDA@EVIcsDrE7Xv@8NA{JK zV+!JLJ;`kH5hirRpMyn>_@Q_K71RT;AnVPgLsS|^(#P1)BVN-)&`{$I;!W!XZL! z(yT`3#b8WlnhgUuM?P9;*%REm4~{@{?hsV*;QmEf8tQ#6>(+bE`g;&OB%X38<-SmQ z_-Ug!FZ)g9ewzF#lKbHer6Y81@(X(+I1Ru}b6N`0sv#& akci{4IggqSFa4{p zf^Fuoy}|kuGe@r}Zr`?RIo!2GRd6h|w!WFlNZd7jz1`>Xo#)^!qe$tus^&SA>lYw! z!5TpDk8)rHk7a3Eaoy(a(Wlb2OUk}39k-gC<+N)*>^jjn$vHAq{HiMWlq1a5)x&|y ziAm9}u4K)w(4)yS_gz_S ^nElMCqR7<9W) z9bx+q^J!EUX<1bR6ZuK8*M&(DCJba6aK=mkJFXBAfj?l!g$cPet;$n=`&cUfnZw7D zXR }bKU~#fh7_${2BPDE=QHJ+X9qS75-q((dTQa@ z9*but3KZvEMC(BQW5K)h=5}w|B6uB*hYt0nyw#R*Baj^T%*nRDSxLhW EJT zl}~9fL4=)t9N8{F;~^9sM!c|pTc0mlz~ZDdsL3zU2Rqi3tO&U$4qB=1uww +Sht|ZTelp2I zue!3YlZXsVRhl(wB3=(k)WH{7RfNW?j+>?^K2U7$cYo;{N31X`*)Y zXLioTWWb)J?K!aDuDfMaF6Be-l}o1eMC6vZ>cZ;o&~p`DZ|9TvmOV-yLvlUXP1n{= zY~Xv3!I7TK()fXr*_SFSuDX;}VSMR3l$H^CcFcc5tfoWbP-Ex03K}u5lZLT220VI0 z#TU5>u5r|dbeL3eaN^u<@zKOA7@1*}bhHFRXM8ww>~6A#)~}GvyS_kqLw3vP8nSF` z3aBm*amX+8n|l+?u6d!-@)0=w8!Q8MFbiOXozfsoz@zr<@eo>bVs3x(jJCdb$d5Fb zq3ARdF@JeXK!>n~wpdxBz!lwi{v*c@@UKBmhPN&On<$KL=}(C(-s)TYHKBiV;enUu zuFBdVBsl){ma# *tafS%B@pnTTj~3_WY`<)5V6A zl%^+PFN#S}C!8W=l~-n1aP?IWm&ZL^?oWt4A4^1Tdi7D~Q0fWnJ-LH7$OG76rTcm+ zLzSmWT3`E@=Tus+_S8%KBH`W9&JASF>Ul>5;>}$*z@vkbf^_-S)4&mzB)}>zG>&V` zm1e$A91OU-V7>@2AJeRQI5(8AMu#&q!F=@-A(_X(d?A0$cVt6JP<5G~Q-0Y3%$EY@ zs|NES!F(=YK6WtQu$#swrpC|;wiLE8g_}||aH}-lxI$Ab>*8NTOV53e3A#`c?&kkt zmOz1!kYMp^RKPQBfAiOyZ%)A l|0V5_@f#C(Ev> zZNJo08S@-)Xz9bPJf3TCtXi@USExGss)jGkV?%p+y?HdY*nzdEuWURJKjJ#3kQ94o zv%M<=>c6E8tViik`UWvBD`+?>)R4^sJ$Jxrt>mR>8g?@!4%@4UZ@L&|5-wIL#i5-Y z!fiL%SY3RH#kKqf6#G|V4h)Fru{h(mHR$QRFrl$#gfF7egyP~h41g90i%PzzVl4D{ z?}1FoCgfjqfZzYSgc54*ts-t7!r27~XP+UQ#muU2&X;4>wf2Urv!xsv^Lw^IdzNSM zeL{B -%Tw9s@!5t?Pv2+ha$N z6(wd_`Hw#EUGF}no1JWEOPEb`bk@PUds=4f$4cR2L<~$07g~LIs=7(#Q(UKZ|9+>H zkZX pD1?Qz+%_<@=MROZBbLCzV0}JOb$|efDGy2p{TJ(XC z93*%Mqbm^R3LwmlK$yD&VGaplE*!#~m?^5`9V2c5!kotOeXr;<{n*pR-m}89J#iK< z_<56)hQj^nWp>7u`j`*#mj-rF9y3+8`MRd-Lx9D8tn}E?+c90hDJr7D9j|77n_?Ju zJo!bClB?ETOs6$d?W0 y7ODE4>FpON&eyF)g;#O%f }>;N_^CLaB3GsWX;l~`wg!>ANRhrurNFmWIc zV3W#6kYYE`&QJY@O%QjC6!DiXN114ytQz=laoz&2^;jI&kn3G|tsWe*xZAhb2Atrv z?t@^*1;H+HmhjJwaIJenggfAZD4GktJ>oCOEaV?gVNhX862Pe%3YanF)6a>(yz?&X z&6}y2fj$-leqoI-%FOL?i|8wsFlA^JM6xiMo){-#1fS1*_oyM{3L*~1XSmfG06mS? z)7^TUU|K~PdMoqh!GWp~niF1yZobs)cD nK0r>W=JALwi#d{ zC}vwp ?DYFEBQvsA(CKpbK zg=;{oiDm9H;5gX#(@$xlf+D7`JJ2S`^VAfzFQV*79-(djt#p%m67Jp@GcVJBG+0;l z#`sZEihsPnjr^sT!WCp$pPqbae9MeOBiU;uPgcf>aE^Dt<=pm0tCaMYFcD<%rXMG5 zfGQKPq@1GUtO_s&6=$UYx;c3lZd$&@JrVh{8qhtjG=D8%9=#{cyRKrHvgWwdM9io$ z*WH}=KQ~u4cx-u4pVTITWaYQ~L?`F5Od9&ef^uE>&{Ol^_{yBz3x99H%fm{`*=L;t z40YnMg>6(b!`}0JNORM1M~Z}*fwTb9I {bNYNUU6dl(2Ofv2tEkQtj>hC}#OHYQBvsM=6g!gX{ p^~ z+H^~Mg#96cOkywm5MiP^cdnUuEbukCBsiTqVAV;TMLeHWZ-)F!BU!PnY5u6dlxnan zUew^rEXS~BDH0+TkD?A?5Hgny=y}!OBUm?N HyBsf+ot-m2gO10QKmwnvCzw{k&85 zhj{lwpy~m6v(L~C {pZy9MnT@C+nUxP`zB$~s4fAQ(tyn3BnMpmZoe=?8WP8o;lw#fK&l~m%m zSir_NJNy1GV=_Kd%KlT|8gYYR+A=}ZeJL}Kuq*f}lHO+bh?3CdfCYC~xi9ISZ9K~@ z9xkzl> `2y9c- zSQ;~G;s`hH*e#}k%dmak1Ka1*WKH^0iI~td#!NbhC+bi$yrI1jv-1Q>tlEqMfqR+1 zkPbDRdl>h?m}$TcN-fan34q=+(9eQUB^=6IZg=%)icTYq2JxF}w)(&4KobCb$;jIH zwQC;_(!et@>oJy3p%ma1C-AoPe-yK(GXkP79pu#zVTylqUaP5#%06K~{_ct}UN7TZ ztgY@y%#>c5zIjJ~d}(TRi1({jveyMjYs0X>U(3=~`g1KnydTNGT}eF4WTU6n#=d$; zx?$d*xthEbHFf3@>kmVOUA(`Sz E>FZ*=ck@ z4ll $owY(IEg zsS6+@7g?s}M6K2m^;N1)!|2v`&O~+loDiK@e3;53!~jKqSyYHj8!1=WCZJ(-=+~3~ z2z$imjYf6Tjo^5!WfaW+LSg=gl*ae<7z{oecLd`4vHG#Z3VNHA-;2Db*6tmRG(J__ zug8e{5lug^2a*;BRG+qCdjFh?p?iLn5TX}O_(^1vd9}*K`dyYbpI}=?8!9fNXIT94 zeM{;j^+b#pPLYtV1#>=QMO?=%mVsQD^PPRh)Sfg%un@I^I7}nsUImGXW&7FMV;~;l zbdruHl?MI>Y3l4dYD`$Zkt@0PAoe@8MW<#e4%;VUC2=uC7QH>W=D8RYMTlTG?|Lb6 zs_WNzL(~A3=kKZmrs3^rc-HoeWT+M0mPx_`HmSq*CaN2 28zzTd@gvC8UkTX0Y)E9RO!2U^*UL#mVBOp$Bkwwu z?2Y~NOPw$6U1nT{BB4pa7xf8?kP(k&;}w6uk9A6hnH3$VPH!Jf_+kM)cy}0ZBd xTapUoFvpH?De1O3u|IWDM*(xw%@}k2-VR0Q3vUj2V VvM^V$RB*epdrKSFS{iVF@1K!zj)qN1#m82bTXNg06O~S$oMS7&7m+pk zxEJBGgH4+Y$?|nO #Flgk_P3t1 zSqizN^rK3NL*Gj?IcKe2U5ED{-B@MI0FY!pL*=D|MbaNPsky(P`tt|F^Y?KPzlF&u z7-;gTdSO^S76~WewO)qTdIMhTS9q<<{t=PicQBddwAb25r=p*TP)YEQOs|30T6yCH z%CZoFV*)vhdU&l$@LK2GG^8K@((uUPmr07@h9TJ!7cx1Q8Z(}rBgcO+JH* UAxzFJ#f;TZGhc)`HM z{fcwHq*0xE0bOlZKH19&Z7VwSrKnkNwmH_!Ustl-`)6!ZNQ*ly;DpL1wH3FOyYk~_ zi~N_RGm*jTO$Q4{1MgcrK)2=c?yM+HeDryQ_Z!`MRZnWMA=yvCJmdQthUG81*luo@ z2bct;B{U&;mV_MdLV3J*X3A{*59&ac@DU_mN!C=H8I%UcKtuBX7&2RoK6dt(2H)#< zn7DLB!X@xR5AZ^M@WSKZh2!9bzABpGHo=6S<}@!Hk4VRY7wW5MbxeR427(vj!3$%- z3n#$~Gr$YifIV_)33L1T{{O;WRWmVfW84v0=caGShseHL|1V47aC~kM<`B>8`wcWK z*(%k{e#?@i1KTb RFxSZtR{=^vljCs0Zi6pUZ0Z4_j?c Y5TCeig zR{rlL7HsC=jt5&cb%<|yE(z^07Waeb%IT8!xHWi;x)INV{Dh@AP*=6GuyL)y>wU^g zEA>9A*~4W@uLP^sy*BQBWAy)7gY6954N6w^wO5$?40Rx7#mX^H@g@w^#$VJ+hz{IH ze2g`BMJML++xC_&=1n-dg3QQJC@j8c^c&wq?zMaJ)gYkIuFFAS1g>j1zcTK<2@`Kj z0~70$TVaf@yb+9_1v5iGs-b=sf;-xas&|;b)#}Jk&z$y wOFG=$j{PS~J<7%w~g z`(td8RK3`4hkp+&fv-y8ZR61;jHdBew2bI;Y;#L4(-hIJgt4brs?v6(C802BcU7hH z!UB)#IW?{fyP=K_WU@}fl4I=>v4T>QK*%nuwuvOBT4letF3Sl xIz)>bP=c(S% z$YW%UaFIkzZ7O4CXps);$seE{(#nyPs|1S4ZvrLXZpP2DmA;VMD6DS~YOo`){R2h3 zAW$Y!6JnC-xQt<(PX^D*9jD1AflVCcfwdpi_NJCrkECyeYThsI;y{|qIbQR~b#d`F z@oUIG@x>O_*i{FTsVy#_#$>}2LK5lZ`0l0wpyr~HdQ+c^+CLk!meLJN%{5D%#aorw zg+trRZ+RRtKJSW{iPn?K*C8va&32Vu@G6+QGAEtO?_Dz@2G~b`;JHFzKN4T?ND0(> z(Abq2ZVTw`_IPWXL~;>ej4xxL&Zh|R$qnL@l>mwv;?p^ZPvsDwe)&f*euZkHj255X zGpi&(eCmMsG)jw41}9L%5TA4)K21P;x(4xS#Xw6sZeL4VB4KNP$NO;_V;p|Ixjb+> zY3gDB{e0p3i(3$yZd0O#@c_N>w(pKTTQehSPV)j2G{BIiJ7KC-^euwu6e9a|CME8} z%b%4^ POacdc~pD4?OZIU6;JMf($ z$*LzaCrW-+)~996dzBdA)kIXruH{YSs{yro^<1)d#Uig4x-qs8oPat2OiHef7A?M{ za!lN72r~UbI0JYco-j9v84rteNU=kOkl1 }X4%c1;v sB%{$+ra{P}qlsJSxF_e6F5Gv+$W z6q7J^h9BwXnRw%V`>8x?3pRM*bN4^~KS!e0_m~EFwpU5&D>%hr&wX*HnZ^;#DV}?b zt5&w&-?N} C*-SlS>jk@TWoHrWtSMj*=`|IZw&i@Y}IMi!bm7R|UDZllHulyUaaECXNO z(>sT3Yw&q`Vd$dF2qCA>qFi(QA|r7SEk5|5Zv2fF_F?I}RT>?i@fg{VmrQ0ZO$>$g z(9fQSVEd&jGceDLpsFT{8i9UR;Yf HFn(iaGlA 7wT=DUBt6q&@6t)6K-n!0W%mUyOdM7X zWnF{-S||(e!A1twHkl5BYoCbB=~V>lJ6b_05l5h4F3hYGxp7 <`2@GSP*a{H_WC4F!TNxkJzR$Fl=guU1@k{2^h0CTqX3h(CuC9~B zK+BCjfB(h!#^sDwp&WfHOI?5wgngGEJ5aeObfJ^mrHDKC)DHTazyH)o!c4zb$D4V9 zjmmg`XM@g5{FA9llf~QbOt$^8wO^jf3i)8J=O5s@=4<2o)JT=Ems>otGfaV<5P1TD zs?R~-##We|zxIYQ@;YeHLszenJjKJ?0%4?KB(oMr3nOoN{8g73RoFJe`u0I~-sa)P zoi$+^AikrY+rO=`Y3zkj3BE-b5()h>w7)%Pkzb4#>g{XI#E)TGs2 w9SxB7L6F zY1PPUbJUn{&}{i)98DG7d%xZx&weCbv8*WDN`UERO;J5cy=+Vd)6C4 g8M(8@hha%HwbZzl`?z*Cr zCTT_T`u!|UxC+18Q0Dn3)2>sb>};k!(%jLa^r_(IZ3$l0JJ-n7@(KQhPCYH~a-&S( zZMIR%2xBGpX@VteFYJwuH6FI&vAUngge#W)!BvaOe0>!4=`hTQAzRIWK=A}@bYKFY zal?WTa-DLJ)f&p6y9)$$Gg=wcLg#M {&_$Kc?GS6-+r`nAJrQH85nmQxG*z@tR~!AM6Dz3}`amZBKARl3|@xzM#KDW0q1t$aO#_{Xt& zAl_dV#&!&ku(sD ){rK7YX#MwQ@z$UbITvjg_k1N%-l zfP7+j=;{ZuR>1DN%ypf;x2N@aP?sJ~n~l+i$BOuuod360zp<^(E@k1+WWr&}^8UCZ z+DmYIz%!O>$}vmM;Y65?(epmxJEf?;NHbZNYlWhNhR!8QU%VZ<4PRH5r;^t`>NM}% zBHI50k^b_ 7M zJ(cu3Z8|8YM$oN@stB;TmPnJJG~!eGlbtMVftP^jBhj9Yqc8cDZ6)>xyE5>)KA&6- zcpjUk8Z8uAmRq!&G0I5N{i#%(=<9p?u?HnTcCkv_pKHkCmUw)G$@ykhn4JBrI-hwk z;iQECP${`&sL?FEkL=Sk$HYPys~{SDq(uY!^~`BQ7Xqc+4poSm4DEaCra|(8k)9sR zKhMdd)c7QEy9x9up~s)R*0_yP;7oUU$n@`!$JiBcJ)qPO{uju+LjUlqE9ViU!L5~+ z0JOGSNl*o~CC^=_h8O-Tl>uCdg(G8s&N{u*XXD{_^i2JIUOg3sejH9^i0zN;FB2l# zBm0ZA-szVe>oM7Pn`Ocp{~9|zNS<4#P$}y{JASh(%R4NssNd#%zbiIXb0!cfvHqUC z|I|5>xYF#$ z|8E_i#q6zS#f5O&>1<>yL7KDFjFWQn$rhf&&`hu2Mbn}J$ zt-#|lz~c_m8XNGq2jFpQ4NP ndN%^JL}8!-}emWoM7rNf=R*W$ 1iyt$8g zhsdA!@c6^}BJDw{1PcbMj YoJC)Qx-+|GtclVGf_Cg!g9hL8cNkW9dA5B* zI68QF#_;k2p!T|xathUd025l|gL?As%k!C8@8w&rn%{4B0mXokb+7=Mq5#kog>d=@ zxdsNCnA+*a!={eyKR#{1gR*)!Z81ipyQxm(^FS@EdjL+tL~22+Y|8uQ(m^ P4;A+~BlD@wqsW!E)Q`uShY(_B zs42d*R_?#LUARgLMAX#JOIfS}xk^k+qvWVT1Muo ) z&E+X7oWGAAj=$APSMK+D=zXNbSjjV?GBWkkST8mG*YC(Qo$9Hqtj9STA4YsCf0mm) zQn{I9^za2MsCQhdkK{I XoB)T zXHlxp)RQYXQq0E`OynU`0)E$qfwrf@By+%&`3xwmAAA>tIm&ZZlFUgPYzZN6pF~Wl zZ1j>hpkgh6VDtHpLGdc{pwUHBL@xU3J$7rGCk#|~H_v>6B^n-7OcAX%&+!BDaDj96 zSP4(Ckoc$pHuW3k)%u0~FH}r(qLqsNRtCnkPN4BeZ*RJom50VOIzDhqeaQ7CIz;Xt zH}zC0Xy(8-y1_Rv;2VqJ8+cq5A%s&s+mw9OG4`NKiekit0Ejj_ZhHOWEJR(0=9cJGyks|NZXASgXAS@z`jZ<}Zxw_5$nf zJ{;ru_aT{_#g7B#5()_!a*0B;{Hr)@L7sZZ sQ`BH^r r!8qRGYZa%w-veJr*VzMa*%2udU6OCnu C0QN?iOg#oQeU?0EV5%zX;KT}YGBZxcf)IIK07aQ) z8*t61XFUbLUL`jTElF0*dZRt8PSslB_jF?q(9Yj5E>m(reY&Fto=hNfp$JYGBMWjR zX3!H$atPsEAhM7kvM@koIq@xg%Eb3OCvCelDFUhqz%IEGN;Aj5cn iyeAE~MKHiI*yP 4rUx!k4N#J0{N;VRyQQ=7b4hB~pRbLPIXKj9vUPw{mY{@WBcrWRb@ z9oV-;a^IS)uXfed2kqx>b|xG _`%5sHdKQG@YvF`D;0I<4gb `l&j zxPP19f#wIr;0HpQr2U1=s5!_iIgnY7G&0Qzg@> OgR%_&REYQyG4_ zO&oTG!BhZwgcUAnj1|9E1V?x||2I5<45UGmiE(hq FW&L zZ0K5@>MTa%9ANxx)Tq(-_~V0Ql8qB*ZLj-_{1cU>PdXE8f~Gz|WE9Fqw@FoA60}NI zGRt9zFIX=Zu`x3`2dnCFE8O2tJaSQ;FJ2y_`%00J(<_AgX3WHU8PbL)6l|8f5s`U& zc)R?gBI{GQI60bSB(Bd)-=IDAD0u9 jQhdmcaQSpM&r0s*udql zAI=F4h_un96#b-8Ztc(#9Csjhh{H{^NDx 0}BB-J@s~GkCVdHReQ>R2Amxg|)rC zl_Bk#EW?oE;~>Q+!FUC}Rc1UBuMB)E2l!T|wDAh0_yQ=d^WoZ-D;&fL2^x`=08Q;d z) @AzHNPiQ#p2?rSZPfFQNMHjDYI=yAi IO!MFrnh#O)ffqzHi}Zg4P7nV`NuoW8pQUR&_-5!M_r@N#}*I!XARivKqk z&$-bNOunAKcGYA8%+AtXqEywAU5~Qbn21%;`1}k4U)agwZ2v1D9w=^@ac6TvvZ#kMBC3uwcnVnKc4QF!F6@t*pDm|d? z-UGbE_BTNl@H;_=fRtyzpK_OnP{q>GxJA3c03Yz0HhL1X@#W!ecC)0p9+Q&~qwE91 zkhe;3TM}gj{dsv`|AET&mQyp)pGR8pyDip801kg@Y+hfS8wtM4Bk`*2LRGrt^yW98 zZJ-P5T}xljC>M n0!~64U7>h}1(Tm82Lhl<21Dl-pNVjH_NKl)oGiI?3u~}tKW&L3O z>R6vB-%VD2s{-){aFtJBPTP2@rdk@yzdfGHi;J(1Lef17BwgvuoBU@zh)IHI0 zj{?rea24uy?!EAoFeNOCdj6IXrvPCj9m2=~2qVc5MiL>6yxfbT&I<4@IzSk?X>Z1x znGsA2BM2WY(mv)wB?u#4pu!Ra-~=^JAzX*JzyN^F+Swoto{rIy7N<|~8LN1uMq7%) zbm|{`Wxbf8EIyrv=rNsBq?r0vHxMav)YX}dH)BWb YAr1bklT28TDSXvR?W4PDQ^FHuoMe(p)Ode#EpZn1C|N~OD%w< zxSQGjTIx)U)+ccmncX^%k6ln>7u;$lh7O-3sO)Z}6sfFxxeJnK|Fx2mz8dgGXL1|x zf=>8slXd7rwQ@it UDj3an a2Y|*=QZV_d>v Y~!{2gfIZlu`V zVUA&ZH +)Fw>qJj2XoG zMdrk(CT(x!fBzi&U16P9aiNE=VVbhNxJ}+}88p@9m%SEY;MenBw)iRthDt}IpFKNK zw&k{S$KQVhIHl$bLe09;kKB8z7ngS*y=!qZvT9yyT{|(_(mH9gWbJqR=7d;G(aqcx zRnJx)q3&S)0PN5A5eiwut}Tb%2K7n;zc{}>FXjK88dGO~=vE9i=W1<0giY`5A9oz~ zzh9Ahuz+SYadZV1wlqHSA2qqjx=gaXi1l{m?=TUudzWbM->K6`^WUU{m}fX;_DW8h z1wKq_G-v}GD-#&u!)U;V;fD`n1s_HqJ`6RQF?S?$tN=dDJ@_z<8a3wN+-5B0nJbJD zeQ=_LV5V>YRf9p`Mq}6pqFy5Ao==2NF#rvoSN7D`e`f?*n6gC<}W(PaHaGQP?v7 z)nrH6FFAu4zP 3M@MhO)^|U3rNq2d60@-c2hE@*@ILN8-JYfkv@qXbGv1XAl zy}Xo->{{MWX`J@Bg$6ALZO=*4x;Hv_I%Cy^NPISyX#LhNS*23(+t1m@x#)_OuO`th z(~q%Big^Bq=FwWG6&cQtG6hRGJ}P;J?Dpr;F Uq?GzbJstaKWA_4vKOuh z93vfkN u{@yxi376e8yLDa-=p#gp!I93SB`z&-7r`n~@EnlRELx4AoAz`s!>Be LeATplLyXsTHbd66| eHtIUoq(1Q1W=3Shu$-BKq~3RyyHRM4x}p;Z56c4|MbhC zVCk!|*rq|z;TX8bO0 ?>kB0e6L z3zIX(p0}I=^%OUh+4ZJ7ESRy=mp4XOYC4}Xr8|7yn&(T;WpeSetm-fzcPfpPTGp(c z)p?Yy%{D@kEN%60KX$9>8p($LOd7d2?}Z4mP~Nu1kdOO7E?OXJm~^%ZsVr!>=rxY* zKz6q}pV;AFE*S=W!^1I!a;dU!Ke5&5zh3np3h^7aj=&zt?UH*y!jJF>PaK;NJCLJs z^8#Km`F!8Ok4Cpw7ai;(duI2#f8hKOW$d^N4f*MB*bG(qVqtmX9NmX+K!|dPMHhFv zMB*L{SOv$! bz zJ=7tbV q4SOh>U)3E0&n@dFVwfMk>VJsl+ON+%fZ=y(*Uvdb^d~ zF1BpO 88}hbNmL`VQ9;iJt9?4yiT3 tu~XkU2#i|Aaqe+=B6 zt)3X{l4CAgd;v28#%8sEzljbA1-~m|aJq+K)dI;;Q9)EVk2vmFJR|Qxh 5jde(wt*xFdD#&1SRmwa zH)irA(Y4nP5%>$w(OTgqqJs%a`!F}sQA{cNYm3`Taz3%sgXr`o7i%WAXtT8nh |BeG zhw?8d)&2PJDjDBj={t%`N>A<;YxUVDrgJquhu?0}rsCZ<4Puaa(7`SI!AvQ<;)2Qe ztJ|m1OGL}9pSi-ACFlDx+8H7>Ia~6H x$D{=LwGG5sQ!2?u8Q${E8zo&30UHEQb?ZeD Kp#lwPt z*Aze@xrA^RBm@TZo0-~qpqiA7q4zi|!&Xlam-s6^J`2#f>JgtEpTFW6J1qFzBdhrI z*#XvXR!H+7$+ih2*+1E_1q4# Gyx*e zk;^XM$qF7i9?z)anQ^2c&{cVBt9@mh)&ez`)$Hb&G&WaY?btAV-8+idiPo#p*k_|u zhsnn|TOVXg71gG&$$8xfrSacmN*R(t-@TLFa3sZO?8M-r^Dt3K>%Q`MEcSE+BepV2 z)(iC`uCioK%S(XqXhOXMhLCR^$hf~+sbb~KCA$fagI-NF+PMRQJs)o?UAx~nX4LZV zB8P7Hy=}$cVQ^SU#D>@CoXxnHmHgYJ0E1|*H$~cx!WdRa4^3wTQCd98xc%V6jKHY5 z2|j!seE3y#WcpFw0-6tR0Bf0XSt+09!~0z<9O0f<=K*!nOgTWL6$vBaf~a8VHci0Z zeB&Xu=l1WJvP7MY%uME`sW$yR{FM5&8^JB*)vvew^PyS{F#vYQlOh&rWn;wXNn&jK znt$=bKk`13{^X~UGc=O=qmA0w*53=wNa3Oh!nb2&{BG58;Xig*>{}YlOV31HEn{Mg z!WMK%QhDoPdHTXMOv2y%J~CzJV%^fH&vSa+qcBOD$0m))8Iv+ox;~!&IGO)?VW*4` z-esCS-xwWuXw8tOEfNOP&hg(?6g{rHE9w(=oqlOJ*QxW%ugH{^GB2bH>r?U-N3`?E zJ5H~>!tD5x;rD(Mq65opshzvqHM`lnYr8v0#+u#W<>1}v< H6uFxZEWOtj*Dt~a^*-#=vv6Rg0`9DEiu1wY zL4H=gzn@4Wnk&1A;lEFm1D^<_^Z$OLeej74ptQR7_Y*O~C(5IJBI^I2PxOae;u@lB ziMHvEToAWfNYvMAd%BYH9NCH&6t7VguhA2)u@cX4f0gh?d(9vtI@`7rh{=QT#);&_ z(ItbAXvKS~5+7D5@}eo^Py0bbt*~5(w4z|U_3OsB+80`Hs;(6|)u%*0qzLOaM7T zqmc_9f(oq#$f(h!W_j-^49a0!aca9?|NP@OC-7XVdA+x&Gp3G@9_xFOy+X( Q1c#+WZ7-MMg;2Q<>cmv{wR+gJMLPc|P`RzIYjL_R 06lZd z+=67MbzNqrfpE^K`)G_TtP_oAT%wGF2pe^&e+C!|U1Zn@l|bvRfe@|}%QcY8NI&-p zLO7d&=BHQt=qQphr|Joh+iAsCVj$XP%O4BKs;v!dA2Hl!OYy^&{|7XW&TUnr^OXtr z++M#Rb6R#3kV}d!_5s@>g?4uA^0{&|aLmUBpF6XY&Srn!S?9EL-YPhT78s3mA#I`I zyz-M$h+{xwamM)_Nf_hQHfilFj3-onJJ}_KKDVGXVy8VZ)sx$LC+|U5q^O+BQv*wv zh(@|zHXj^Jcg@(PZ@`wrP_EqU_5|wH;yo}+tPXCGgQcrMBQ*@7@J)!q=Y3HVd@3?~ z9&z)&f++k rTa%h%D?7oFyVXVvDP ze43G%7 +RR})}^vRSp4~*_>9Q1lJP-G2QqWeY#~+cQtGZb7NB~SoAkbE z-F~?{=IHhse*dDmCHRvg34^5Vb3sm^{KUnk8`hkVP=lPFL?`=IC@7B)X4Z_ZoUaL{ zs8V+b&aVrQ7Y=TX#_Xo{u6a>wB>d6q{qxwn<`Xp&$C^3@^rt!^ZJzwb -2;aW>+d X~p zFuM17)240DFOe;u0e>~Jn<`pGr+y<$6xk7e8*!(vb)B+K>f!dIjBP&8a8#X|WDt^8 zt?QLQ9-o|P`qjJ@NGAR&d-&kgw?SzcoYymUkZr1QiTkuJC=x8Lrf(%@yXaXt*>b9p z^qjJN*7D<1np!Ch*}?*oY#G)VBDJM9v4#y_O{u)6nfFWf^%Buz$LG$HV;1RG;MAr? zgiz~Qb0HMkN{sxHrY T*8_JTxTFmH&de z@oQL!dC7XmBIvr*D>L$hwwi}=Qd(dxRbhkp{sJ6L8CaIaj@`PXJWZVFn8g0Bdi`y) zZLNZNRBxZM{KYefX1S9v#F`8?-`q~k?5Psq6;94c_+bUW)L}j7I<3XWCrKNP31jpV z0k%_XaV{oOg130(N8H7$w_bn#xGRyitLyj9J^?%R F9yLVf+vxO}_-|EXsym7>knR1XXGW)=^m89aT ziW32R%&PD9#TSd{lLowZ<_R%BD+FonB %SG93RcWV*^CNb(`D6R`$Y(P 65KFBz4VZGmp*KELj+I?Ktxh1W+EH14}`CFrcs+m^NVwOS!cu%usuD6%;; zS`yR((R|D0>!YeZFT_-#Q}L8tXnl-zceCF?D?0}{iEFO=2RV&PP46w)hgRc9c6u@E zm>@K)@TzKk-SMAaGp_L4p&!dJj8TbaF4*pD3j8WZI6oS%P1T}|rcdMsOqenUBQ}!T zqjm$xPYe6vB!lPB5P=1n4W}pjZnQ2?Y_{;q4suBJc5JQVp2Yhy6VMUXXFjo(h!Uqf z>K*DVK`S9#ZLj0lxTuQwxGjFc$i>Yq`S#W}y66?WyVmor$?=?RDat7NbDParqsg+% z?5~xbtF>$Gorwt`Yj3;K`19G~lddmo68NOHpIwjBcD-3;4A3Q!#w44qeubi?W+}oF z@k!a!GLN7lwD^)Wettbl^#a~@Og;boJ_b$z<46)lISRM>i9(GbB!NQa3NN3nKLLk( zzp7X+FYd^lMvV$clEj6t`l>!Z{WAGgB8U%JXMDR&TO|r04e4mGfpS=wLL;k{e}s1P z{19){;)J8fu^8$=p|cRJcJ)JGA7+UiD5@Y-D#+epHPspzqQ|F|SCjp=)}_9hX*p#_ z>b~>I)##}*V3p;jZ# zY^hXytt2)UJ5}R#veFi_*rHPz(|sf%Im7&&e?x{?O%A29Gdw4{mAh?N|F!BX$qA7w zYr~T$nlACoJfBq?$c#l!c8tjfjAwk84(coAq9HT`=jFN?5ZTn3o|He%>vCxG__D!{ zfmUyGyi@JacB3=(vWcHU@U~b-b*ieb+e7(r@9)1XKPFK&xBPVe1muxF1>@W*D$Y0z zSBW{NuKOD{JEc|+#YlFjOlkaRT@MU$Lf0(GEvXi)DcKSp|Cv5F!Vj0Iw-#K~%zF6{ zZGEn>@IXll5sDY8*Y`SRl5Fm1*JNLBx*imeegg0AYXg@dBIS1VDmqjyaQ8_O$(!J9 z@#IZ@nT+5WX|lpnX`3Lj{q7_5>+h| {#K$Ia>=?0)-U(b?M#7Zk+v!=y`(^U1Fg=B08>6a zvk;$iepB(J5N@Y4<}Na+S*%Rb;HekeQHjkFxzl~yrDlI9@iYB)%F*|d!;h`@&%Q`) zR-o+_w`g}fQx5&b2mK3IK5BmAsNVJ$IvG9t7%U*|sWrQ6!Ed98YWM3v=}WkrSI+TC zT;UH) PmcO9-tfDaTcvi22RXSNU=vq4-~2lE+17a`Y07zz$1)RQ z!EG+&r$wNubTRVUw9VEl8?>xYIFI3Ejp6*nCnq7w;62Tpt)R)ZV_BJQYI;#~UWbP% z3rVQvip@tE#~hUt;gpS3E&w-}5Ia@{NfhVx05`$)7G!MA$(oGVSF4~Y^hxc<*`xw; zuRqUjKz6Xum7r=gRaLNZMfcE+_GZVR(TYJz^9<=9kiD*bzVKWvK}bwZ(8|L7HEdm% za^fGJY5sUG-YSvmQE)8DjaoG}9yRlcNbHJ|#B%6p)=-8dJqh!{Zy^iA{gG)JI{Qe_ zAhk@*eYg8!|F3fQ(O@gC+z(UD-|i;SA47g8whj(?OvEmaT@z~vOwFydy87u9V5yuv z!i!O#>pvp3hQ7N_G_u+4n5XD`O!rvw8YeAUPi)@J74(QMpO1_cJe))cq)acphdI-Z zD$;k+!++9%g7T$o7RlmA#-@k?)@kJ#G%%l!#b?uoTln geISqLYdFDTiCs5(IiAMr!2QlF ++NjE@O3C=t7^8*w%Ml~n7v0PO zB16msCC9qnH6=;%9O$H++;qLns60JsEM>K{U_O6-d{7Fnw!EzX_3E`_yVdJ84_Dk( z_ZnZi>6g5PCs^kv_%-}q{jp#K0@aSy0>}>P=no#G!ZTRwFlD1v)QoMbB}vW(x3oc| znD`Sbq4ttWq3)z1&13f-I02oMhE{N}Ox)Pd+546{_HSK_YA0R{roQ`H(GiOnncg_I zHsIhM+4-*DPCdF46D0rt(Dj~CO>a&Ax5@!jny5%8Dk=&BB1LKt5m1pPRS=?Zgg_|L z1wv4fCQT30dv8KedP`KAQbP^WBB2u?gc?fV+40=heckK7*7L%5xRm+Lo;@>r=JRd% zGN#;p0@Rn_yqx^M=f#qj9`&ib)i3B%iP`Va`?3uoc%7SQl7qs?;Au;RcP4V^98O`) zzSqnGceNn?tjnMG(qvw)>K7F`s#!SpCh(omDKN;sGGJD4q?6RL95K2+=hR!~dgaHg z^(S6ye%z}S;ew+3Kmq4Ta`?X^IBZA%GGm7-!#{Ekw)4VREbZ7nKk}zk;%MBDs8XZq zMTWx^E`JGZ&xJR!e6W&gJ9=vR=V|=iBwcLiz-uGu24=+U*tMwun?Yjnj^|jo=vmnM z2d&RZ+v(wj^Kv^Fp#VWnZ1Z+pz4CTVI8Zd;jzRJs)~9$aJtsmxaUO9E9=Jm#g|?Ai zMw&st#7+?}+l`4r0jL;)@eG^Pah)!VC>TOtmh|(cpeqiY+n!5mQ3e~jD6N~a9>24& zp=i(XAdYv@d)^R@p0T|T$8*;6R<1}WeXUtm>N$8wZY+EFR+qifMR`XBNSjCx)cJ5v z=5?fJ%n4DAkZcD60F8`lNXOPrP%+MDv~t#%;9zp`;t#0TTs?pZElp=joZ{Si)9-v5 z;@&yg_A-S+c%wSY(_yfAVruRmatM|wKs@RL5`w(6)Od)xe|M~-8>2pEyVab!P}zp% zIt-p|6{}YJc&KU1TInK0vH_5yZC=Q;1=dgdJY8mp@r~KJh{}DJP}B+!GahUkUJxjt z5_ 0lF|^D1j-=vY*JiU^w9aRANQ_d z0}i(3$ovGT#7$&7Ipk1W;YPbzie%?(6G1Wtq7?Fv05~4)=%4XF1B8W~+qZc^nSow2 z`o2c^2R*l4LcO{Dbzr)oas6Osc^Y4hlIW+%N?d&p8dE`xG{HWZSu6bcAx}_ -vGH_`I3i|x2FZ_lGEdOD3Aq*Zxl ~45FnDln|CKU^TU^VbcGfFe7&-@N`_N(Qm-WEH?YX=cYp4`x<_2Tc) z0uM^~k3x6j0IU~F_->;yuRPPkJ?h+~g;}#90)!wHpaHvfw!>B(8dCwj6+^{wCmNnj zPKF#PB8|wH`h5jI-uk)L_?yw!yb}kVOjVP2FrEFZ?)p%m8&-}V#bSJT1N_<3_c5M< zKQccaDy?1%Es38qy!z_g#q46%oOwBueX7E}x?4Z4U{q1phjjd|0kG=ysuNF}_)Y?D zQy!D`4L}RjVtU2B6aCINYXv49Y6eCB?U`0(dXP-PhHZKwRd!t-r*lIdFD}>}o9vlt zYl{xDxfr0gMp>PzXf?eO{mK*S)f)e}>3YC*mo|`S4ZXe;fJNq9(*jouHcFY#xYZcC z_R*y+9TAzmcC(di!JIYJQ)wmfQ`nZCzmaI`+q3(({sAIpV60CQth#&;J`l3!D-Rh$ zPS@QNi}jBblH5Dc0CJ|>f(>Nx*s*}(4i#*urn7Dg4_spQ)vWy$<#2j=r-;cr_Ftd9 z--a)vZ<=cY;ggCcu xc(5!fYPq}Dyp7FpZ`&?Ybo1Zrjt!BK|JE3M# zWr2&D1|50J1sWO_{|aM07nc4$3npY!j(SN)#mHma&QA0En0yrcFe-k{= v5(J8+P!Oy9w5686XNZJ>?9t58ty5d4sg`To|(NetEj9`n~LjFlf&i? z$W7!l;tFPsGf&{wFQBn?(TZe f)pb1t-Fi?D3w%7+*0ZWQyYH( (I~5JV 2R)wmK+zv}h$5MpNYZY{? z|DLrD`VF?2kn{&zKzU4zLZ55`qaSpN5_5mX*VXo?x5c@D82UX^q#&TV1brt#=A+j_ z@tvePIma5t)ED2wDp2E0yI{e8p&`KXwxE(nx6pX|q{oln&xk+po(SOVgQWRnG&Y}r zdaQf6H)-d)7-k307xd0NN@Fr`DwZ>{{Pj Fa1ul0mL}3 zfj(T8y@l&pM~ScIR?JnHBlU@_@c &K3)-DkY}Js5&Z66>pN(+Sb
$2IXzcFSsWDM<0Io6aIlMa|KXknD9gF~75wur^9;AgihuX$EO= zusugAVG-UTe I>@FV}xDV2B7zFIyU-M zCEddT?RTRIsSqG>D5UJwrj&@c_nep*o1O+O@toz@xd|O^+SIw^{^ tycj zo_tm)=`Et!UojfVbr`7v)Qo0vFk}~_5mfvpb_U-tQ{A2M?uGsgxrrBHfb?8LO_ORb zKFlPbcYpk7an)v$AmPiuggkNo`dY#Ur0H%T>rHX7JMaTYoUU(rE10g~tAPbODheTY zy{=*&tPy_rCQ4TY3&Pf~orRUG`3J1|#WZQ5_K^Vs)?j#Ppb2zvzsR55!l~%x1qgWO zQk3fD)@x@A19too$k;$V;MP5CcXR|EJb&V8HP>JTj*=kAFs@&9gHL$kD&A+L-|AA@ z*wz(O-8zyS?Kz$kdkj6*6tXQ1lxG{~GilBX)6gfDwLV%EOYZ4+e{{B;A}O )_yX~av$Y4Ks*#y?{4uEos?uP)8qnYrf`8|&zW zWHcsUws@#_w~~Kh`7*f|>bI;lUbm4EH&}Tme35VJz)XzuZ-rL3P*2U_3yp1$oSrj- z{Zq`u5izU7%4aM^?~j@^o7yrBKdHDb089Nmxbr!p1XSbX_0^PY#t;o3h471*5%t2o zt0ue_C6M*aAz_$K?XW#IdTd5uI$=L;2UVh#?e=i0gGzYgVn=%dbW>n~ F zYT_Polrs0DV@*Z#VA$8 vDl@@~xK+R32Xu@!Gwt#Y?nKMJ$v3$46y_%JDYFao_# z{iIcQFh%WX*$g4mZc$t_srKWmDIU{czF4qg9$nSZwFkL0G1oKMf64;Q0T2+;P+4bE zL+K6aS8G$h=dam_5FpqdSh{eLpJB2vL(#e$=HUc-(+$%o8)ZK3fYilM-^o!sg|sM6 zmw0Qa{(j1`Xj71T`LAI)4!2(j4gOS%O6R6}ZK=Jt%%r|s#ZT|W!Sqm=bu6#+p$>&c zodG|*-4Y!Q$=`HCIob|%vhk+I|D-ywB@38#p%I!Un1F*6YcTVjHv|UF&}$oQ^8_j= zmA(8eyClzEmm%xl=&v}RnXUwU*;`LcwRThQ!cb+5$;pN|j&wil84*&Nq!pZCp;*gp zYU(U;x@2r$MCzvWO%XqMm&mO@$;SlH4vRuBeg*TBe~5R6s!ts~-$+&R$a@rB)d9d3 zEiGgvn3kUOJhL09JYFW=AeWP5Qn^87kqqlUakxIV9uaL}mn{aVRrFYWp|~F5KA&1m z$gf1mh5p{{aqrGo6{OgiSCG;wdaU;Pe~P3%xOKQKXWr;0=wG>EvD@J)q93n2URY&p zF?GNyKB`}QuB7le3$KkuqE?If#icULRAF9`@ZjH|6T>)~Wv}$Vx_I9xgZjTWnr!KQ zow(^~nMyI9hy&B7pQPfzbhtloAt*tl4s&YHW;VgD)yVIoOj8k10vdLR4UfML8=f|6 zWiZ+CS9EcKM$uY4yN{3}(5DIcJ^^;WB&vy{H%QOvb!W<+Rk4Pd|4c8sc_BnkY3mV% zlC{i{8{+J*E->?QqEJ9aVYpu1ezjBI;XsLzAGSkawiE$n>rC6wUJo~HXU~m&ie++d zS|dlcY|Yvbb%^xAP#u_{(nCXSd|>Jz-D~XmpU!wnOexn jUp`vuwpJt){K{%Cr3kR_+HhkFTX|y_R_Fdlm5;ZJp}d$_5Pq @3XCtR1UUF(QWdE%$HzoBRT&`h4CO8an6-4uYeu_bCqDpPBzD6f=qbj?x$!@-3& z*9mE=v%*#|pAE!_@8U(*lf; r!7y~gYw;QRQ1N&w@oe)TZ26K9W=fcTtziqWez zi2WP`32BJH3LOf5wz@)@TeF$&QOC~+8LqgUMfj9EGhN>^C|jev1?q@xvo_QE=JFWD zfVPuA$Mbn@cEB9fNB+10(3S!h(VoRrHW(a=S_AUz2dJgM4B+?0vK8&49UYwk{QEx7 zR!_s$$Ad${z 2F 3dW7~T(vNYHaEmJ `3Lx~ zIrT8ySGG2j=9J!l8|7!1>7t$VM!CK=qq^9!z#>z5w<1x%NpodDAiD%NlT^l6uf*Yf zfJ%{&%HsSd>7KkcA^#MU>o5(~1F{Go)bSF9RKB+G+M?1?M`VBIk}oC56yEa1xMB$( z3-rfLdmBosGP?!q4eR9u3!O+&M5hohOE~V;vyJHf?mSokP^c8AMcF<~7B6)ftz)Px zT)tg`7)g{ec?%X}yM#_yXf*9P-!HN7$QyC6dsPWJn(R+A<$Nlh5AmYw5)OZ-4D!l@ z wzohl>@=+%(^ zp2D)hu%Ic~vMq@{2RYiAFE59cJfy@*s>jbYRnMT8S+lQ#_pP1J39zOHuzQj&a`yR5 zZ}HHmHZpPF`vsuAE2>uOBP*?1sh=q`-5KqmCfZs56s@{l>0T}VRyE|%zYCqrzqH!6 z@A7=YbY%@$9S`y^A0 +_AoCe{a+ML3t3v${<>G;CY{k-*4cf@4{Xz< zwEe#xZt%y$!In7P!>NFkiN3x@71g`tSk~Ar1{&$kn#oQhub9{c?n3-Gq)MzRgNM+g z_xNv}^56YAXJlb>{bQ1Gf6A}*`Jfib-nHk&@a09ejqmGdT+}G};duR4)|QhJi@+15 zD$)bNQSV&c<$8mB_VEJmo&%4c8m2fpIdw3ekkc(#7Y_E`M=KXDSvw|=Y_;O;MJ|4l zKP~63Nc=z(`9ETZP6b6k>@W@=z(t8Qju(LK_$$CGgiat@CPUTJ*WGv>XXe(IQ>stA z0bTj)9V)Y9AIc`CFBbjHmJk||K8tTp^&Ngkj==_?U|>n!eBED&U f%=Ou0KY+#=S)A|zJ#;t}L5`lv--LGd zNH^s+r23@S_A}23AC8yAE0Dzq_)aNq)DZREx%Uw^f`nTkTGAh9qV$2B+YU6qe{Olv zCNjI5L=81TjpG$!yuB>j hg(+oywGISK_^v^tpyHU)cV-OE7fqX;Tz7 zjra08q)YTrW#_;R#!ndPg5o9t?g!oWxyyI)nHcZcUQaOc9Do7C8t&6rJt&f}FZ(H- z`!7k#-~&|pn(NQQH24pAJL4nvl>Nr+1bf=87n(R^y713EZ G*w^WvG z>dd9LHqN#jpEi3bl@9?lQkD)u2803nD|wM`kZ^txkTn#$#tjPqVqt(WII|FZi#C;a zv0-cRS8|-Vg)YJbor|~f4-^VmIsphy)p0=W=$@0|Xq59VxrBK3I{`&wNOfDYAIP?F z;nY_s+agIPMA6nyY*0dAxJW$VVN7+3n& 3W*1`)(s*4@uB7lo3Y5-V )I(z`fLTn-Do^Fs=s8M`|@$!wva3Djr93@LB(*u37)&d~0=wT9W`<;oYz2 zIn@L2izn(kf>`odyZ;|nS_%T(mF4EX8L}Vv&Ash6)kwPqnf|)UxC2Qj9QH)9!X+A# zgt*Jr<#jebF*) RGY%msnJEdS1w#*hvzXU93i==X#Cs57y1BfD)mams zG&Y9$iF%>al+9K3sJs ;ZHu7KKXz##FJi2zY7OGS9PCzx+D7( z%uI*&b5#F@K1@>C1*Ox=jbdI=Po!sgTgRp1)jJ{h_ch$esvk)l=1+rP>6v!A{#4$S z#6)_-FThf4*rDMQJ}ca=yD-%9V^l{z&9Y+r+3J=8T=)z}MXx(?RWxg2i1{078K)@& zroe?DGBu$reADnyc68E-Aciibv!ycPY`C8KS;1Yu;#_8P{@TpVc$4Giqisi*y@{{4 zUIPliR9_~|uL0*M%nrw7*D$R-w($RVI4&&kKT~gcYOgc7UK 2b9hr HjW}$ zdbBxhhpvtkmqNrxJSFRvXY1$tqvQH4s|k7`LdZ+YwR;C19RcJl7tFrF-C=HStZo}^ z=TcI`%tP1YK{2_$P5jth6~7H`t=6sik&rs?4|KrEa+1o)IP6Nzh5kbK M)!oYW(_q)xvz)mzr)c$La9>8Ie4_12OPbi1*}!x0 z?dsuFBE|mg&RHxn=^1ofvMy3^q`8^FX?0(XANMjN(g%tAdQk!%ntegB!QskTR!}Vc zXN%Q)o?IFy1dp5!9(raDh5JLeE68EYBOI;F%P}CTP$+8aku@2-(IdFdl2c%=K6eU1 z{C$H@jviG2=jAC} J@ zR(`*`#dnvs$C`V>Cclp}L`Yo^S_h=52=@p9>ntkB! b8 $DNaEyq=voBA9Iaq$c6BVk=O#E*c0Xx9|HV)5!`)?QlNQZgRAWj&7 zVt{u+t;Tjk_71%7@~?94M%s{4h1argQHi}U;DrrU{G+Q#Ict6`3h5s|QoVc^^h 9go?C!yG-;-3KYQ)V}c2Jn=T2Y&DuD4);3SezEzN2aytx z-vixEG7%p=|LL(>MO*1!?^jflM!_;ZS$OIEVv82Aw3x2e^<&r5gKM0)ljN=CJZ~K& zd)SYL{8u9G`ms+_^QLo!A?{jOlbI7`E1`*Z KPX<9}UfdfCSK%?|EGq+w z+YMTbPS(WNa^43SU3MF|U}Y#=pOahWYwsyRE7>zA8I!!P8vVN)OK)D8YI9VWxZN0f z3|GmU2^`vSRohE{nc@FT83(QPfI}dXGE<=}Nt;(cz4n_mIsS+HCrcN5`kxuHt2e$} zyistD0r+vQ7>3;qOgiW)G+cAqZR>)Uck$uMGMg4?+p0N$*8Vr04`!khptN9Q{<$*( z4N|vEp>f}EYMtATVjX!U#C~!57x9NN^o{4pw1UT+({}$FY^YC38=5D~t`OH6m2kI- zIr@yPUb nwG8bbpi)g!qIXYReNL_|v%Qff; zG#5s;JJL`IutP3EnyA%Yr7NPy(Fl>|JM8*Lac^JhUBdl98vr$W0j|m*uuQ9 $- fqLcxE;&nA?2E8j$;DuJC} z-f8EDbwwL=K0Ga8)Y#70AyfE6gx~VA9gx~Q`O$vXYUwd|2xDeYt{d*63Oju2G)G14 zI jkHq_T-W}z?y zgQwEH_z-w;*2@f CmhRza16-cQ-u(^8)wDQ!*T94 z%+?CfN&_%lP(c~8yG%TFcNqK zvO`LakE{dHz =L b$M;k)cnAS*Jjf~T3RN)AeM^(!-y6?CO**