gyG{Rl`C-B zLH>xZOBp=n6W7Q0QXX{0<8PrMrnS;=n~=D5efH}8S*3qvr*RvQHVf1U$A7nUSOC1@ zQMlyj+I0bp^SW)VW(?CF7~~}pL lX3mhpH3>sE*Mn7a+AnVT`JcAz*fE zR1s$ok3GD9ZD-bbKc*ub&o*PM`O2aPJXCCIpR7N6;hp?_p5xp`x&!gesGgTN|5t5R zj+-#`{E4Jsw-j(PDmT55q#i@im+|whu{GVWtJ$Qv2~rS7W|9)uyZ35`t;)Ie)3!f6j5 zSX9^geq&c!kx8}{A(q??Zh@acOP6XAmIoydzugOUuUuCTQUHm$#KW!u6eztW<3U;F zswFbk4bF(gwC(X)zq3-3jt2b*r?B)CTiParO{?RciFCx-g)4b`lrBGgfBA-9SD)I* zuM< 08KDV#k}u1zd4mT7-5f8Y(#DfSq93Kg&tWP7ZN9QT^u;_1=xaS4M{Jv>xPSs~HR zb+GfIO|`|G>a8_H;Z@Fkq8LYXc*Q+J(pOUh0LjSwCjXh%|@70q*f@6G#!!h#A? zgX)gWx3r%8;^RM;gtUn3_rD5|yvw0Y2E}N%g!7;TC0U~4rZ!0CUe?tl*@SiLj;v8? z>38?>@^l+RN7Qy;@-#Xz|Ig@?>6!0LvxjS!+ao;exF|HzBtg{Jq?gFxt4T2c#u K4860KwDYAB<~}Hb7T*RC!+Bg+dC(m~M)F0*ibHHEo7QNq;7JMP z5=ZJgEv>2A+l{!#w5JAUcgw`ZhLZv}+2G}nj>6NhYd}nZWd2JNhpDKJqLM7g8rRoG zWHT)7)f{m48~>un4`3nf$=N1HmS}#o@BGVWOUYc*xg7>dDCf#lgPG S zeVP&oR4?8`eC5+Hnc2BLehsK+7WQ#FJl$xKjq|k%9R0Zko?+A1g$5|WA3(~rPKLw4 z>tA;3tbZYBH}qltjtXGkCjMP})-6VFlZp|cUf08yH|ayG-TQ0Lr4irs+k dN^(8$y@U)UM84YMe(hZnE^tKIy1BF*>1&1Z z&bO2blNyf!WyX*CEJGm@h&0r#00s65FJsC!JiX*?JbrFBg+^Tp3(m6=N!D(^C;4Yf zr|)VURZ?m^>*6(%O #r)`@(m<2D$8QPne@e8NLzkd!w#Oz6tW zQto?!xPJ_Sa4MMB+$X9>eY!-*cOb*D<(36;PRO0Rz55f|2tF#i2FdoeLWkt!j}3>q z=^F1KW{$npWppMxQe2~mG-G^w?i5WWC{H|Rtb&r%m7i{@u|a|%JS75Q%Dt^LEvC{N ztCYcgqtC4;U@eFsSds{N*ls};AfE>y0I#ltx@-2oEjQK1`P<(%c&V|?@}`9RwPSCS z%#%6^;Uew?AMX4awuLp9rP%y~tJVBwZ!^N5N4LZE%YH#OF}TvVJ+A@OzkEDPl24UX z*H-A>+1Djs>UH!L-gW JYY3#R(*=Ap$(2VW Pp{gyJ9ShAzG>KB_W4! T=G|lP8n@=t1Hd-t_+2ca(U})_3Pp4gD;}H1+M|^GijPkwA0ZwAIk$1jrqO+ zyu|wsuJZHTrI|)!PIQC=nR<-JbG}bFe_WZB30J&}QfzjwVG?U 9^~_@eQAp_Yr6^KgQ~XW<-hilZuk>Kc8|v z{K?X2s;*oyCA3}Qx@=gwVIuIjj6kOusk_p;=YPSL(lH&|FuNRc@$!u00@B^$F4jB6 z!duOL$k(~wzQSP64N=a1H@n5CrW-E9l&IfUZTrgatvrnuAUlflzc#+s#AXLmcoxlu z=iBDaNG|NbJ8qCByF>airx3+FgsRDxmm2ZR%eEWVTU?vwcYLtELYL9o Kuo*fFHeI%l{1qlrzTwUL?M5Bsw#kXxn9C@<>%?#>y<$w z$3nk%YS)0sZNn68-^Wx^7cj@|jL;Txb5b8!(M|Ky-6M{~_`VPk^OId^#-X%)<83j| z=GZT?;yx5CoO}2t*{Oq7FOLAdLO2_ 1^Kj zQZKx!hUpd@80zBs!mB2E>O_vc?FHwX(0lKhGDq;|23b3es#|9yH2q!eGiSP`CfVLt z9vUigtK(=~dX~E0a&TT@B-991`5q|NF6`(?60U(4T@?)TCtay0-#2~Qd8gEUW$Dhg zt2Jp_=J;L?%N@;;-Y>~glQTY!-M7=3r(C!_{LKZQSA|J8%g@~n$cR^Ti_swDY+*7d zNA~<^5dX 365|`wN5bI$(NSIVC_S^beO&!$I)Y=Yw0q9lx6v=O--8etS%^~m z5ny=akeL5Y5KuL=^pAnOxOSB zU{l&TEUo3Sn0}s*7mottZ4pm#V{yY(_GeFgk0<@Dg*VKIkDUC{i&uQE0Wjui%VS|& zrY%>ml->T kIuujJ6_KhIix0C1Jc`~&DGes-a- f{21X!T|lOlhNTFoYX_Q$snuG2-DJ3voEmAahJ{bNS}&+UeT^Lx z=Y(&C)Z@%^Nk_2EgmZx4(UMBz +p4<# z&em5SLfU?<(wz$7EZU`WG*2P~9YNvMreb{Dtr_0*cx+xUi17F{@ipLfz(b0DlLh~4 zKvpk?c52%wx27^*25dJlb&_|=ovRF#8w8jzZ+w?9hdHX>@$p(!X{I9|cyp^@H4C_z z>p}DGrNszgs1J!=V|io4QF29>C&?Wa0q}aZzu&Z<<0s^B=5YS7&8jnxo4Z9{3LVh* z<_`{_Nf1k|P_rzfu}V#Aty7nT!|EJs{${-S%}x<~h3qo?oLYpW3A;Y$aZ6YOXLgI- z-hUo8{SJk`KJ3V~+Qo2=1&BJ?wAO1N#VrYWm%@COB7?YgE{lc4yf4XWrFAez5O)mi z?y`WB8lO(RzL%vwC9z}uUPEhCl_@DT7);{=TK^;pzS?M-GeZu&f!ieqd)}~**a2Xw z*DB^!-5&ayu6v1c_pnWT_%+Pmi=#g=JqhyxlPDTq4G%1*3%o&k@HjFtPYTZr%*M`F zGW8j+17&pf_6Iu~-NP7CdH1`jLL}$n1of*5;3V}sJ+uei{88&s6{5z@3n`PjG>>9% ze$Z4gsnT@PXvzcrF_bzVB}?8(kiORfIJyR)*v% ~V`_P|Vr!n~y%3S6_ot4o%(#6_&YV-bmf8S7K$3(Jsg&rnJ9J@&29H zlb w-K$r%Hpsb1Kr(x5RKKVJ@PnlJvVuy2ewZ5zF{49vYm_d3It!@ov77Nfqtq zA1^B7QO?7lQv1h0w^if;w%ZNz$q-yQONS57j)h7J(Hm FAN`=x=z z>{Wli)OvZqOHjCnvZr7{FLXw7Tl6W}jn9G@_}$Wn`zv+9ZQROiFCJ@#%K)DzM**Dd zSYtJH9u@q+&CJJsfWo6MW#h6EV<;44@<@D|a-;jyc@%Cq-&2HXjY?AnCeM3>@Lery zq0`APR)Of_N6$HLusXW e6$cJQfaTB$uuPP5?%tkn@?k=!;r@d0sL@?@)T>|+)jb@r`3=j z&Y(e6-;2DvR*x$~5emP2k98E?L*>Qub7?O^)6{zEEfY26@8i>GO8@Jj;iCoq#%Ub< zF8HQoeVGWntV`Va?)vy?2rnNY*%KM1;o8EIjQ7_7$~FBo`O#eFhg@#2^UEqyk7@N& zr2*`p5M>p80<<>fl*i^9z6iMaEBshF?S@I-^p)ck DJJy #CP)3BG z5VK`Ejv(dy_hHaiFIsiwV59BZUdtAW#1AAN EAq4s8P2-%iNce*B==W9#lJ zcQ;XQ_v$d-5jL8UY`oG|zXoK?fv=DcM|N&|bNAy<2vo$x-wS6w{`O$}2NTXm^F4Up zjH>qy&LoL$0gs&y$=$5cCSWGg#s1Zp&}sEY-Ht>r@p6O^U{J1yiE#{Z)5+D7Hfn>J zBr7&fa9BffryL1^J>H2hh!G5& AnIY8|JMIsQk&n$zJnLnQ24-V4k=sgtIjW2e!X|?WsFlr3TLRD0QQfef6r- z!i6m^q$yccLeYC8dna{XbzQtz+15el!_6MNjIqX6e3P9!7}D`?!dCl%Y>LAt6!$sY zb_mrtZwMh{VRx*2`9uFp1C=j(2KG)1^d==Wvswgif)DXhic<<>qmxQYTVNyc)~i z`CtT|w{VXgz3Y2(*ka9*gP-3l_qpYYqn2r$Z-;FZ06`7E(|%tL>@vH2dJ*el-;kSJ zX34n!ZdbS}!%Lo!@T838jua;r#)5@nH9g4$jJ1;CB|z(ovvSSz$lcIwGiXutt|~Ej zPsNV@=>Bp1oK=Yb5gEW{9=ZFX7XJBYSKuO&JWXg{ph$izpQF^#)CVeC5h8jZZ2T-r z;ZdB;J%hMR`lGz~;jjlE!NjGQvVuhw2T#KRC;B(*YV*f{S?NoC>ujG;_0c9C@7&t( zyl_(nHp(A65A4}rD@oiE@Jj_8-0Nwf(c$&Hx&bYu#x Xy#>JKDc^RB-;N 988kkfKgO^zM2QyDAfcZ{)7{Nj>A za^GVoZd-Fc{~AGFHNh>yRkJRdXchvkyXvy!1i?Ug8VwvX75L7N)_0}C2HkAq2T5 %YEm#oBjyIGtN^^u^9{X4k3y9UcBn1`u$>HQ4e1xqHPlzjf&W-LJ?x zF#-3pgC?fcS3xu#FjKMvWipRz05@gEip%B}*GBPNFM?!-_Zvg6#DL*11l#n)5k{w| zf0s6;q2@%S-19=8&70+ha*hc5XNbhqWNwjh=FfqzgYwq)Yk6lt@t`EHmigoMzqr7~ zZPt1+==$bCa6o>zQKLKn5F#L^DNh6V=b )j}%~Z z*)>O98%?=|49cbQgsp!JK<2N?!F2$F*S$G0{1=9`1@5Gcof#LON~5Y?8SQz@z6H)okz z5kr}U?WyJrzb-)hPkG&b{w+y6+&*E$Q{{t0;r>HXWb&*sg~V}5x(1Fk;EVFM$!7Rz zvHdlm>On?F5UZH#+(Bhch+cQQs4aUBN2%AMApA~9lU#P%y fv-VN `Y~#u{x{5jhcjEPD+QD8A))MSsF0*nX@62bqjV zycd?YD_OA?_}OA@TP_~B+uU?iIgd0v 8#6S ze82P*o5LnltGOYPb+pId4gF5liquO?r<|mEXn^cDU?r8FBgajbS_iyNzXQ>L-wDmC znGE3Ktt2r~PK!L$e}nq9%E8Li-5jl2Q8Qk`Tv-{Th{s7u!LUqxycB+UE2{u0%vK9m z$hFI`OA4sdV<8*})X4BdkUi>i2C0S5`p=Zv$b{Er+*_Jo#<|qM$HH4M@mdh4HHJ2? zIpYEW8qha2dD=}9?|f8iWaZXO#gDMnRK*!UN!~qrfDPD9S_`xDj&!8dLrxR7f(CLh zLi!t@>N(!0Hya+v@+C1s&d8REt^rFrV2g#zGBm>2e745?WC0`ws&;DKYzXo^1 (wr~bJ%z%eIP+OSE z3T)nC`(hNGge_l+U3Kiz#dY)jCv1CwZEQe8El2+irY+6 MTyTrGXj&9Fq!VN2^LHL1sj#@H4J%5VyXo8SRzCF0=7Y19c7kL-|gJKypH0vg3l? zA8E{@>8aZdF-)opP2QB@WEC>;@gtL|oH#W28h{_Tbh+4~cZm~ET-Mp)eW}UH{u8$o z=iR9Cw=ou0*kEa}ZsfGTS)T7eXxIK*0*=kc$A;3UgLVQ0S~)k!@vtExX(QjQtxNaA zs Xni-r-V5&GCe^bK)s3~8g-z7QojWsaHNYh9Moe9ROO~0R+QtO*>1e| z9(5M=Sy}$c!Uwj+p1^z`hl63&>KYtC6x$1eQvmom7nDBt1Fm4%rhLHO@j%U+H||S= z;P_v~D^%5SDjXA|2|JEunEpy^+~9#K_}iP}{%e5lF80_zz1$OL2v;wJa!gE{qf>0J z0aDu+nty+TDW1l708JyTKlCDmUS6hRmsIRs12z{xk3fHaGwF8?7z*9}zW3&?R9;Mm zwki0`Gy`>&zpnVV*UK{Vi;+Mt#yGiukD-FU_#yw+QT`LVkwBm-wgxie1wJ{*NCN)t zb*CA;DTDasB}$>RDSV>d>Dbc*AId&ZCW6s0{lGCdSGTrwB^l(_EU|kkNcjV|Ilz2n zUyaPR%P%?08JL1MP8Gc;LU>wc%h|j6w(#MQ@&W@g=9z;$+xycTCY9DV3l4^5u=lHO z)?3vdDjPc1Z^$MjM5XqqHBD?%7-E$+AF1hXcJb3tto7UqHOO&Ren^2L^EhiImQa5E zHYbiwKrj-RF_sU0Cv{)5Gr1%XH)DtMj({kCaU7fh+^j}l@(eXvaTRJxjpBgIqJJ^F z=49%5Zgwou7>1ZDf1dE Vk}LhamemmZ3Hc-x>OU+z-7I6Z2^PKL4`cP!^Ba2R!p=EU`i>Q+_ry!r($D85 lt5pZy}|^^OT|BhGmQp;F9y_HQ+&TVAo$+92pTH+7B>w `@kH_g&l-%7q3<(lsVm`{= zo)#!<84u}{k*M;yFh1>pNi*fj1J*R9>7=;fLQFJc`kM72%24}{6a}x}^xUXf6*V~- zmYB{!*~nsuAdCuGSVYXSzMRgKKbHqc{ToO7UpnA%iCRye0|uvs9RsPA8z#PGI6Z-< zSex-2P4)S=6(Z9w)Mq_K`|nGpaDc{-OCizpUwa}YWb%->&jWhj?6R-klI0WyTmwLT z&4Ox2n2dY_<6j+4A)Ks4O@7471K%gzgcu*WOh18&w403Si+)$y`jy>q4cKc0U7TZs ziKq)O!Wx^30a4B%ew{tO2GnBvFPbvW2Z3`b;6>~NtU-Ha1|Dt `s{wvnY!Rqs?yhm+JjC^gVHN?|U&;*y5aBi&vIs@y~n;$Rh!8li&2b zO?fc`w`65gszl%ZLn+huR!F|0dojv|M%>cqbyD^9C pA-kyZ{py5TDWCfqiiTi{|ydr7T zRDt@H_*M+az1TEAZ(SQhyHAs5SDy>Xs3xBoTE(y0_j&+YsC!?wBWPk)d1Tuy_QGk` zqBcJ6Y_Kk)qcqU5CbkKI=BzV7nw`r}3T<%t=g-f@_Z+ft>C_X}37;pl(PTzaz69 k`iz**j-$iX d81LCpm)WU&_UBDnTPk(pj~nH zZuWg9!3iqIoj|^JqgyeV2KIX2GjwBKRk`drAC|IL)x{{|6=;q&P}rMrKb4(wsz%?Q z*8ZNT>?%f}B?hrR;8JK}8rnEn9*&+J+mdLZov;~jx#?P2TX;!6T A zH?;3f1ZzG^HKiA)h7T?cVCTQmC$$-1ztYb~ *O$u@pYyCBy#yYFaO6krG!K!zXBtd8&) n$6=%zex)U0++vs(rz(zMQaxBk}k zvUi 7Eo6y;^%>iMhmh_ _02F#gf ;J+uyHt( axqS1W2js1_+UnY;V)L*s&emlV}Z|MhHhz;w4dcmpi+U$ecq5$S;g3vO-VOTvD zsO6e=ta}f)B<20xwhjFjL-Uakl@zs!{V7LpMxu4~qD#tM)tjkaDX-0DyWE{0^^+FY zGm4Tv@;gdYrwzE*Y|Ze-0YlAuOF*S9J%28LWV!@fV5WZ>?Ib^y;PY|yu-nIH7|Q36 zt-8a>@E`UhD2UJis*}o)p=w8qNe`ff^Cc9D^9buLLU)5jA>`W}AA#woA0u5EmBYsb zQ`}GYBzOBV$Ak~x`xQ9`Jz606@=o|$dQLE5on-UXv=kSu3JJNr?v}mUm!jvRJRPpZ zs8`ceXUJY_n2N2Gjx;PEq`o`bT-3KXtX>s0HYSo4!cP4D6M%TtB1+tjHH2tNWR*@w zCYW$6_xG_X`; i zQCUB~`)1`P7zV7xUj7)Ah;56)`Zbbl=tq1=r4)=$#?_W4HZMYjC4)uhKw`ycvl#%3;8xcs>*ybUp%|TWc|Y{lB#ZQ_XKF zFjh_8tEc?-vrm$o@3q)|{ank`2f9S;=660)yiE8l#nI9%uGUrHP&A!ZmX_SKRML28 zVbV~OE?#|u-Lpv>pl>?(XtC1_x$)yMKI;OPzXfnN>XO@o7G_SwLcX$X4D_1(4yH8Q zHQR2}+`-lr31qNYU1mu#FM1s&wKS@8RyUMmQuW*XhPcOq$#*aHor-90#D%_9{z{{- z`NM52IqH$>-;$#L(o>AVR@>yc9|}1$#20sW;2XT8+{RX2C{U~)$>gic@Eru~=|k3I zh~})^C*s6x$8-IvX%4uU6mtShTSs|U#{#@_`tt`KXTxbOoaZ Kz+$E WkN9ls7HJ=4WmhUBpURRFfccEj%KO_jzGkW0hPLwl{3oG(8fo-%h`!8=)6I z`wE+&eEL#h2Br4!{XS D8|=@^#F5q|APu z*E{0yaxu8XnI9oY`}sciYe=ww^6HJI{4Ox9ZJLG@(~)ZJSzgf^R4vrw_1TdB>U6HV zSbii*8UEa>VocAOqoc8=|FsPH<4cI PS1t1stb72Kl=NV$;F@&>awr#r$Fge3)f$6_E1t zn~4nH-*x9dTcKFn8_=@6-ucHKe<~ $uljnA76#0P*|grH!(iH{o_=res`=l z^%Bdms+WnsW>2*>rUa|W88Kkfl;bb1GcMrGn2hsY=pNRi>Q=v6o3`nxX7JbiYm!tW z-@3?B1-7qr_%7%$LGf?Xzx6{LM9!dS11L6-pbPXe?{jOlsmCgv0C?#E m-G!M1ZK@rGLAq7~ZSVK4 z8CNw()Gz%S{b n&fY-8w``;Ot+_Hy=(nUQ|P!vGp3S3-_$z4 z%aVc^I>5T&pqeTx(MfNX$UV{jfHWsaw)##k;lW7rBenO%_wBNyi2w5zitJ!|MWOuJ z b0lv5p5sn4ENK2_#v^&TE^yVQ48THvIFd7G0U zGH&%LM648F2@Ut<_R1lNsm!D4T~YqKXWj*3H-p(Qj%dfZ{F=B8YKAB}`s0lEv#=xQ z&=P6k^`3saOk1||o@(8JwcL^7WypKXlPQ!-I@1JC)fuJDH=9_cUzxTcw**J@Yo@=V zIF7WD#?nv4f(i9nrJVMBABlwxUu-l}eg2JPILdYI8VjavwxkIr&*SCk54_!jq4U#m zyRB57kUKlh*v@u9`~J`jg3#pAt#_fn{4qK>lgQnbpwBSAQ*pO5w2>NX)w{J2KbIc$ ze52)(CdL)MyE`{ak)!#XM0P?5J)+`?mtGjpc_arcJOyUOcd&FNXB1@9kj4`(=@mM@ zJJmQ?oZcGdZpHfO!|QkTDxvG%4x4ve^Mp%o;x~Ve ^9V~S3JWgI5wgb3jDiT?A4t?Ar7F)D9{N!dUp(?{qIjQ z-{}HgAUk#|{-a5MQi_ zn>pJ`@6cwF40| zzu373oKL!f+a-ahGw@HWP7 &19T*{Qth-=rA^Bxa^l8ztdd0@^Ee-y$2E2L8-*ZHj$qN zk1J%9*yEdg|46taNkqG|cH#9ToL#MED)5ElWUk0no_-tng3JMg_yHC>OU3pv@ ?ESaytefwe5}!;JZo3hAY$cLXHO88lC2_o@ z(!4_`HBqI_mULhCSS*{f_m#+vc)6_-nN@P~dl{8rC&P=S`4a_4Bd+)P(r~4UhX)ZX z!R*-y5-Z97>AfbTQT9@aOo*?6-?qgZ?lez0XKGFd1Y0Eqj}b;04UAVW@af&FLd!0$ z-2!_v3+Jdkd~0@j%qZ38-xzTW3m0T9-vjiPF&;@}xWl=+Q tZ&k)3K)Q`VGe|SBa^$w{@^MB#XGGojNrS1iN7FNFb zm5#w9H@kSjOwJZ}*zJ)#6=`Lo1$p;pw)Nm0$3!@!lZ?78ITt|^J537mcD>tQf9b`9 z_~DbbvVKq w-w!Ts@=sO1cmJkj0rf{k z$rZ@^+2J_EC!R9)$M&USVb$-K@!4*vyGNZn163+V_Nd0yA}!wIv@@wsoR=kgBn?$t zNxHBCkw;}!+8yvD^CghF%)Z%e@31Z_R@#W5hF`lKLtm)fAERbKn^5qQPRnmCXgw@i z#JZM#pbKn9_X89|x%KDaY4KdE|9Xy6D=X35v%I<1b2)`Ic7^}3zL2mFTwz!*2XA$g z|5r3p@wY-g{@ >Z36yRY|(DO| z=n;5| z6nq-GlNg6}@QFa1Uw-@iA7rqGe+|v`wdbOX?iwHhMO*Y-1C*o+m9|=8%%K?H-pk)E zJs$96NPVn+9{fcUauNmlpCJSugCIhIXy(gY)-24@@0h~X?CzD!B0IV}lG{O{D_$)q zyIF fGVt1m@Jv$2fayj5U8dW7}MY_zJhTFefZmvwp%aURgcNTP<|r?d6EVraRTU zNa|7PTnWuX-D(nhKBrf;QS19T@xg!G?nKw#_nAHKL$<0V< x#uWdun%ldlsT3n#A z@F+`(11+ttq77a4mTku!u~$&Lp8Y5Kl$6r}FLh)2%%+44-^~U=Jsoz(`xDEy&0YGP zX;#m_Lm_7q^j)n-`r)1u=*nm1iRn4*I7J&IK+qPLsYyK_hbfD(C5!HmdG;Fc2~)i_ z3+!nn+riP+j#^bqj4L61uRf`GLhG)FybB|H_H+hXSMI)e_a-nNdw*Eqx1eFa>H^zQ zgorD3#q$>9K(Up#Oo&`$w9-^Im3>1}b6@)C&zq=*sm!w2!zPkdAeqw3wC63sh1URM z05|9`x0LbT%6UxHZ5?NsZ!j~7;_3yYZ9#4y;WUkY0+MSrJZ0tHyYk6pQ{MgIpWUjX z^`}E3D6km90v62rK|v;yP*cHYkXbZ`-!5lC;m`qK^zf;_X5(z|?GKyPygq|gK51R4 zitkQ0nkQZKgx6SZnaOQIn*mOni=Wv>+r!r5HKlvGU*iX?uaM7@8#LKQ%a=#>NqnfN zKLIi|1AwKkz3KB~By7c9)3hcGAq&!73V{(fzJ|GPW4qBa-g!{;yA>;PW349le%lAk z7yUFx^D31Oqg$!cJ@TnLYC(;P$mu&!)NOcBN#D2;dyH-Iya*xYV)s%%+YWnAV$0_n z-Iq1xk{#!9G{@81>FUSOXAgXz)WgNQF3(QuCpY454_Uo!sz&ptuJgP5J_NO-%S{}2 zPER+0v5DF3PsgV!zF)w!Z34iu!PIRY4^x2w{F?F7EZn@GI^gHt^e>R(YGVPa_AHCP z3>`Eo7$U6{v_SNTLxKQ@mhk~2?-(8qO2`MZz56L>*wU`q8GwPf)H`p+th?9K9&e`u zPnk}%u+?q0`&E{0uFrS}wXtuZn~gWqZG$1VEyWhczN!V=?u?t7RbS;46AVT*Au|W} zT{M-?hSwa&J 1mSRA`;r)n5TlLC?45Hg;9{jW!{s0Uiwvk ; zB#XU4DCdkYLTq!{t{w@}u}ey@&KT?eRmeNt((5BwChvG_1}#;H->GntHwjiFxTRDC zuqtTRwx6LnZD#3Fs5EvYv0IMuoE4Q?I~R_C-+|n403YC710cjZjvtU;9}MFxkss0k zk;u$J)1ODqbl}e8A7@w3u*E$l+Otp7`|U9bXs%TtdC!IqL{(;J_x&~C^uD z{A)0M2rj|G8uL&iIQ!&%T@fT=Hz#YldPo8n~~1oI(KD}EH*E<=bqNjQc64S3z_ zeq$|gljgrgCi@Q{{yX{Ez*O>!4Qxg66&A1a*G+oPs?Sj<;ME#93^+TzbaDhfjK|RK zflEZl*HDy@NiJ_OaOH2@A3uifjev)RP{p4xQ!UtdFBBULLXMzUMpu|1a`Z8%9fF9! zL1l!H7wH{fJH7s-uQ-#5{lM%m^!d@Hf!N3ns|-Mx;y>-Vdkgmhga_0qo!`a`V&zuv zgZ#DKH|u{Qz3+H<7;za@)W#c=ex7y6KB#3?Sak}xlO3Afyn zXqzaelYQcR_H6j3uEPG7&z%sLp#D`=ffuWS_$VZ%`m}|AxHKTc#$)Q~ktxf1R=f$h z3Bz;_B=+fw$=65Zd=-&Op!C^G){q>RVe3?%EZO6}_=1B0KuKhPJ#0`)*D=;=g4RMw ze;)k&h|$q}vPr+7abQfP8It76q@=k8*fr2n7_C>PDdxjh#{;^_@aH?L7x4v&Aq8fh zce%N}?zsB!1(@~i)zw*SxoLZkbgH?W5DX+u7I3bnW6R9RmJkfcwRTMJ@V}BnhFC|d zKIy~3jAFHdxV-^6w;CO@HvxUCZdbaBu~D@}y2I3?niQxExPykB7C7p~Y0!k)W+_n2 z(D%IQDdFTd zZ~G={7# s0C9by+s7!2>?_!;F~%GN5g0r! zaiwWb$s2p7_TCk G_8CklW7}$1{L NvkFGd<#pT+tPTKH713`a_64O5%k<9e{Vcf @~) z42H7DV()CNY^t6@;b!t(J_&RGW>ThH_VO4yTp;rWO=b*^m12z~HIi@1$o&B&{ve%? z3kQy6ADy?E-*$YTpn~T`@r1}R0oyRfxzQ{rht3dEk%p9*4+o$PDFbpZJvlCPO^FAN zl`%ZXl{Lo8(+<$dASLLOg6jzwh^$#f+rIat-jO)Q4-_YCcg6idFi1d+K~+3GaTpE# z!9-n47u|8`bJ UHCFBcMM+TJ2O36b}qA`qA z*aY?*ZIM3kmITm?JPmfmoxYQ%z9lbZA!Qf6G91VAbFOT_ZDv&gV=* ==Rpr#^1>wl@+mVMz#XNcf`=9xRmDiQZapm ze7?6OZxJM9v{HZCyxGM^wBwzp =@fgdOhnI1Q1M}40Qr`~a5N#- i|J+Ve<5$pMsIPfu2ii;x(j5T*V-L-LHUyU)!5H;6^8dyf!vA&q zXWkdJ0je%*-CVr}Falxnz<(IXa`am_^cva@^P>)P98_J3uC~S&RMfF)A %iOD7jtQ zfs8#8$RWqB;u(I=c>FxP@dIexx|E6@*(_jmQFlkT?wHwty^%Dk~;Atw={ir2A`i( z#>*6X^H7f|bGp}dvJmk+y^LC`Om~aQ62L^~EI6hPe*66D z?Kj?+M8T(*84j1wHXyMF-%aB#@%EI|bb)DsH#FF0wC0xT4RGaRNQ&PeruvcXo?Usn z+i0378k?A&JgCguPG}=Tti4v2dS+(Z#}N19bnrp9om-<21Mb_mr{5gATllJuyu;Tg zd8NET>`m4fBPkK!^NSQyWbVqo-(KHk$<)tVdR%(^1*m$V($`Wgxq4;_@&RCLxOMle zI}TH|AkO3~dGLmysTbr*cDH7XbJB^&W%Xe6)e}s1H2!cdXBqEkkhqVwrmpcunp)yn zk_sRC6yNW5TB&_Q=M87EGm;!u(a1Iwn)AC!tMXfHaL051!>}va03RuwEncL9H6}zV zX&L)t08%6!_)VA7;Rz0ze8TC >-g^x-K!|T+IpyAS-#Pb=_uhDSjQe9N zV`OFSwbsu3=2~-p>)SJ$jJHqSI7J=Ibjp*#9hJ+;n}!<;7e%pJ_Fc#tD22{uZga6! z0%V5qQ|mhv3afJ5MUi8*S_W6gNbW&z+1iupd~%(;yJkK=R?|_0_n746u2c9h5Dgyp zhiv8WPhig9sNEpOhrxkz2RV!a8c@FX;gwL_!El4o8Bea<$KMJp7N6TIug#V2JELqR z*lOT7 +kDTPAVaDJtQTvUZncI znP!;Sp (Fl-JE$fME4cTcQxf4;Un_N{#1 zDm=eE9ZJi=-q9voo*ul5PAWzZu@U8AN?mL(J?`4hekGhHwJRNGAXs_nNtK4@5^l%` z9ZW-VrAgcKl-WXgr}YH=YXrL2-weTBUQB0yJM0Nl&oxpY2;xI!Y@YJn%#N^(`NF8> zdhz-~T@Y#8+UB<*VxO8`=0$T31{1q*_#7$-b^hu`N{G>2vO@v0Azb9$fcE=PV z8+Bs00l&>vkFK+u8l^W_Ggu%@K@INAtXDUV=AvyySQ?%?gjINe>%7hCvAG^L^)`%n z<2!f< 3ZGVt>7oxkX9V{IEggoNanI#_gx1O@eOa1Pb&=g1URxzAyXO^UW zcF>sw76e&v5koOA;{&sqNcM!3(B!J9X~Ft}$?7}HaWBjc#h0Low05Wb4w&YNm+)gy zGS_5rXUJf`PT;IG2uiU-*BIQAY0S5jtC7ajoskMn{{hMufK;J!!2|T*F=$`0rfz}B zse5N+&yb}F?zRE|`~!qlcLfM;ZV$WTaW@ZI|8W2SpttjH;>P!Hn0OqxkM}*~m)Wpi zaX@!`SR0^20mT8%|9rGS6Q#_FKMhlTf(ax4zT23;#*@F^;@?G!U-$0^BA}?o(ferR z%_*=>o;~5Pv%T6GV(Le9L(eJ?egr}ud>=-CkPF#A#3O4(4>niqM*dM74Pp+I=tTr? zC@i-WU>(+#<#q;+;=ucJ7+@Rx%i13!RA>P#OM5l*VZZUNIdVRZ_z3a4;ZhNh9A2ON z0XijDRmp54w|!w$3I6#|6j+WTd9t$I#N)JPzl0#2NH8<0KR~K!b(_nY8~HN!M9mpw zfNoD5HYm?`vtt;{CbS}jYOB7y>$Q IK@6j(=pDowx4VR{B`G~a zG^5c(hQ+LOPsz?_w?j70zB`EB$K)cO^H_#(cZW9XOuQ|hnQ=;yWL&+U9GEXeP@X&l z)0mesSrJrmU#r9=l~!)AcGZaBD8p|0?JT!)PWbSDN*AtAG5&}y!?nR@k)d%$1725~ z?ddHI AZ!i2Djkv(QDYg%4C}K>n!-DEcmB z7mTP~`Ut|d*vi=)E;tw#PlknhG56iEvs5fpB)Fm*Ejb zr<2fAK^*sm^FqRv`%>G ^#-?`VLqszQrJ{-s@tI zlQR2_24|AdFp!sNs#zQT0L}<2t^#wkU($n-KzO3s7mc(tNxVrtM>lBhL_NYG<|=Po zv$`-DrocXf IfpHoLDhx3u!Jlk{f+}W zi5K_O-%`ZhC^BQ0Xh+t0%cShORA0o~Xcq9@yzMY&Ec+f )qH3p2wS8QX2DeNNbcP+#%%7Sk*UuRl=1)I-2mul8nBQhXkmHXll^8z6K z$j?>tP9VM6du=W^xCdMCrxm{S6=$Tx&qOTneigf1F1W*+Q;zI|@~VtKbTHB-Z~$xH zLb=O}<}mp8bTfuEDE@@@*sGB>5XcGyk^oU&H)kg2Ar}!lVj6E?x;7W<9RIN__~Y(2 z K`EeHJo3GKr$zroHk zPtZ@c*y7RaRfh_OMus%w(D|`Y#B#xJw3BP4B5WCbE64O&0L9|*dg586p+TrL%3X3V z54!@mc)J)O^LJawpEhR@Zq5>Gh=uvFN^l|2Z<+q%gyOHZz|n^cAUTMn!e8B)9hffP zOF_A>c>TId*q_En+9<*i0W#s&AA8)Nz&{NF|Lzu&Hmkhj`%67Y3q!!Rb`EAh1o&U) z2S^u^4 o+ zZb@a~xAKtK1ysqCa+P xe}IN z4`fDdVc420-Ke`b$`oVntE+3Q!a||1`@6?ai#7Iou{>@p6YW#{V3%YU3EM_jyC*$e z07MK_8f1CvG3L3~Qo9{P3}}wjsxBrtORN3>0kTi!tfcmki`zB;F9x&};~$@{Q#F8Z z9!b5qolf>0MNtLh#n1GI7A+5gtty*mp>1;7(_D)QM7mw63tt&kuI#b!P85WX*3#`5 z)nYDVr=aJt83yW!stspGgl4<(dSeNdf%9n-njJft^`>u`ncjZcZ`pmhQ593MB6ro7 z&1x-NQRGC|?d~m-Z8ROaTt@N3fNQ*BS=Y{)`dZ=XQRp+-M$ebi(9@QN=lfDWSBC`O zi8?>w`B~5!flz!bE}6}}4k&ZrQ!G+-I@P4Zvq8-q-DI5A855=TE FbuLk3P5p4ixvFUN=AE>0Wt8Vf&eyq@%8Gp(El z1>MM0kWHC1@+I??p|LoZKAe+APc!qxm;EK4e07o5>H(le8%%ztm4tfKI3#fZ&>d}< zAb(!n024aGxNh476lM7A=cU NMUzT%BPO5%z!B44`Bk=M+; zME&?Py-&ge_JM^)+6N+Y=nyH6F-BZ3+JAe8JNC{!M%QyZ5vX<_;OV;B=oI6^d~(qb zeAP0=RX@zbjn7jpYq;*!b-H5eO5@<9G|}UyUfbtMdAT+Mv0RYxrcafE!(^__4Lx=7 z+BrvGjfnOSGMdzLHQb$?Kqw6m+-`nJVI#u*wFxEzZlMb^QuBO{clA_!3KURIM=@0s z&c2UU7HJ}5z&@0Qwc1=(YBW&Im$(xAq`S-)paM70jd*fz^whB9di{k&bal&;oUtIm z?_^WA^7NED*Na>4Q$V0E)63q!%Fb+)ZU2DI^I~;n?XP8JRnt1LZhB(PbgeZMb^Dgi z%8g4m$QW3zrz8~>y`D;Y`(}Z+op{4F=#b>gP0LWy*7XBXc#^Fbkm|2-*zb4W{AAwN zz>_(m#tf2$&x{8pi363K%7#_C)U={uVPl`pc4xwZ3S+&lZZi@|QKf2lH-Q`E#4%Mf z)wL1@?dJb9-88_a( }GTgR3rm%!ulE!h*r?@-By|zEA#!?*to@cLtq5l`%|2=%|g(ISM}&6WE9i!fR`uW0ZGi2s7HX-5S> z(2+%|LQ41mOhqs1XG{TSYN_}8P|E^>`>+x4LqCTc;y@t)*O)Z$@FnC{KR}1affK?0 zgoPiV$9BkXH4_JKr4x;I8&L${u*sjc_9&nML3v*Jpe2Z?wMW+TaReY#{l1IxZes?} znD^~*gX0_a=^JgL%jD81=V5<(q>wWRgc_r+a-#+>M=$oRl%wa3faKqy&(Z?~lo`MH z0ZZl|rT6*r#~P5Dw`(}k|5Lk *Z7tGu#)-*!!%Kymm$0eNh~1jFhxN*+`z=& zgt9-)@leC>njSN?kqBH$ee6wk>r=-{PXCFBj)Myb-bMT1PGgH=S&q P=4S5MN{GxaN1*PI-auV5k3d(rk?&cTV`i%j-73^^$5dBDOgUH_knR!UhpU3 zPdAkFERM3yHiA6$rd!YBU79NL5=+lS6)IylZhpsnOsVUF5534mo5R^<15VrUSzm>! z*B@q_t~T2B-54jhy851JUM8(S(f#ouQez*MMBv6TY|Mx9pU*hDv=Zc2yXY$eZU^UT zaPK0|5ga?jp0d<@0;^Xpv~$WNBgfjoA?}Jv#cAVB97R1=TnZgn;c%qxOqKFRd|eWU zbCQ~PQJMAUp$o5%lx`q-wptZ--74P Of2X^tY}w@=Nm%EG1fI~+08 z1F|tW7A)T>2K{&tx0itW7grr7U`X@jbHp5#j-dY!P)EL{&NeheTw$i7=L}0oSN@SY z$LW55jM?kB$+?Z)^a6I1{hRNvAQ%BAM62?loa?9d&uZ2DG>3C$G6-?)mqsCx7vj-= zEVoZa6j6o1f(q6JHT3eVUjYw1ClISOY4fr|+_&zq0e07e?ZP+jl>obT$(g?SKskO_ zy}Fq6z9yY@YYk_tjp?Ig_md9ZatZy3*bQTBT%~WHSQ$0d_(lDyko^;3eU)G;!pV)@ zq=#18bJH4c9rD8?h__6Lj=pXN)ulml!mbH-g?OzK=y|jm=sSRAjMM?No|P$oBQN06 z`;4YbqF`wk=QVZnfyI)z=h?ag!;Mxa&-2*{^pY%UdpCl(f%6s*8Rs!f$eDMR$aQ7l z;9 k2sY)(F<2V?{0Js;D3#!946H5DZ-`3q0|rp@ zdwZ9N40r@ilIc*Xmw%;Ld1kUM2C}N;am3pxqdozqbj^iKnPq&8FT#N$sqpmf zo1=QWuFs=WJ9a+!NZzS1R3@B7)+Kg?dd=^8;H2cNY_^-HxqRlN5|HCu`+YGXhf+)G zJmSUKLs&{Llj4!@$V(4+N(sD>KwWmT`#pp&Qf~BEaMZJe1DmEYO^YPL%aMDZEJn0t z3+ssF9iCUMW-YW;Bf%IELf1{gnf^Q2u^JOA`e~NQhA7K{ZFn$J*PkGX&u~Y&TbBcf z6PrS?IDcTZwmJo_E(?H++43gz5wEx!-}bLwE3{NiU`V!I-zPB?G}~Zr+zX~m$ o(;pOrEjz$8KeCG(dXgDA;R#3(N zQE{@JLdW94n_-(veOPCi0zz|cxPykrEBU!_l)KVILf_2*8I3f&rfSR&kY?E PF1nHRh86QP4U$2PN zP%d@l>8h_Aqsi}zd|=4E#Y?&7X46*zUJZgAGj6y+O~OATLw{4vwMHWqblJAo-@^63 z4Isd_?7toyjw8u`5FCJA$3F;Hoy5;mKS0rl+8u5eDa@}fYy6C5+<)5-n_YDj0he;f z*-murgYK?k_h^7!hx7Ddz(If3Q5vxQ GhrnE?t piu++*1CusCvTl8SqpagXd{UVANuK@3RGE3>4|SY9GW z_O@Z|!*=ybyVE?-{wt2-bdN6^!0wm6HJ*(EOM$gya~gqMsZZSNi&YhTQ*+c^k}5E8 zN52#E7OAd&RiBqBltPPlU`L&O8vWYojNedtQk~(ls2lhtBV7kq!}@78R@@Zt1) p?bZOCZ%h(t-=EOr){!XlKJpt8Y< zo`fH9szX;P?5NMqH0e=FYNB#Izon*-X}+So&60hD@!RppI$4`O`W334UkYeb8P&P> zy|JL^OEcNU-D}iz7C|9ZWm5%PoNQ-fcI7hg&!-}$Fr>N$Eo|{$m7{D^3Mu_?40#RY z`$iMkAU{7DeZIA{#+VPM_>%(n_o3V9Y*?E3%M)6%w+LCcNQ!|(Qg=d9(YsyI1MU+- zUzYc~I{(NSK62vMu2(5NR7!Cp{bV#2cdPusESDp(;So;Rk6%V>@-UHYXGX;o+serJ zQ1WzP6~%-H6^Vtg&R{#=9BiB;a>80>n op06!ymJ<&H}-&$R->uymak?sKuZ zUrf6NSM#P>?g^j9_Beq %{A4zR>DUxWcfgOBAq%2y^H5c!Z4C z)|e6rB%D~>>?zXY2xxaZ55-jTDqC59YJNQ$+jLraI&MyY3#CyL<7SYS rqAIl&R$9fU5}a67&dl}+mP@tA#GYj?rYY6P#%M;$#tk##s*k!e-S5Cm5J9;O#3`bg!OmWDUz z%gMxF$N+E6O`I)`&gKPZ5$O?i{h>|hUG)sYX4*dlkm9i27$^a?f87vEJ<|89iRdp} zU~2w@G1enUJBTi%=reK#02}51FTgAL54_R-9R%_spC6}@*pD@GfW?(e*t`K`2*`)b zfA(@j !)Q)KVhwplJg~2F;6tUi;-_!Pc z8lBXx*70X!s-SeReI!XNlWbS;Ia{(1AZ _m{lvo9Vk{m!EQ*nraf5rvT-}hf)+Te`4=HrjozIT zX^Zr+D`_!foKfcMFXQmz4RTz4RYp1Q*R44dXQK8V2&kq*$x}Abg=@Lfl_hawS`^Hg z8ZXz*G -%$Z zy@$Aj^QezR(>MGtF3FO7Aqo}ZGW?Qza=+evIVdC990G9Fck_~J^zrmlWZg0^D&Q)L zH6Jfum3O5~v4wmDhalvu7u;{K9G4;fDzJA|;=?K9z 3y~m13SNUvbc7Y|p5qtr;5`@{G>!=Nq;X|9!q$3~ KFCbjLPT2x1WS$$x|EyLO5vMwT zTHkqw+}f6_oUxOT1J>jW$NxBw=_2jSf0{oifb1WD4K^hbz{qdGz*T8;+?}7DKGFe- z5>$En%=f7 sD|E&uvv3IHHnR_&Ce03(7s4xF- zRWu4B559d$I1?X&ezUkcD1}f*M6 F@goo*81hDw5~`PiZuCvc<3G z1qbyKdD>OP$CCLRhbB8CWdc1;yLbvsIi~)pWxk5$R4C%5+If>u5VKYR>-)dH YiS3z)MqOr6m k{_zIUhH*I={)Sz(*tVad+imFr0=|6CL&a($^vuUcp9Or$Hyn3yOGP z$&1~wya-Rf`>Mio=F|Czh1$Kmkvs1WUmZI`@fPyuZ+fx+zo$E-04|X?eC+b9$9@JJ zY2^YIFAD#X g|kb)Ot^T+plZl1Bq4=7Ey^)+lm45HiV%++V}&HM)&I zXeAK0QidiEY5z0~JFdg6jfVqAdN#r!ggv9fDd5CBis*qp!YTKNAR$$ TV8i|zSPRWp0DKu*gu>0O!}|ZZ#m{;v@I?Mo6Looff8~Go zEDZap1~!cXYRKfSzTAly< mh+LN&F>x z6pAUOy`63vb*;p%!$Vk6w;uCiQfyS5Zf%#0Q8K)uaV<7u>{EZty*r(&> z)@wTqz(KYY8PlvK_uQC}40R-+ilirBnK)bwGRChzW} 8>DH^*_n|)467yua${XV2_Y3>b zJ4d=p=gj$%&tCpE;kh1ehbMUy9iE4f_NE7v52T2lOyBh3?xs rCugl3_mJ-Kkw4PMkm zp>5xEo`2Tn RHCEoapu40YU{ca%52?yv?tbFp_|Q7VNu?3U z5P()S)OZwWT6kZF&=v|UfY!G^@x!sKtQ*9v)A3nL=SX`d=#-QuSYL M*q(E4;O z74+%x_s`R>b)n<{g%#&qN|~6U9ElZH@mhh8#2p0H8&R%$ilkplO!bcV9!WPl+;adE z5YKgYMD qhVnC0Q%cN+*?SddI`MXPITPL({0(%7BL4ze z_`xTIZqk)U^B-4jcZ&mmR{TaWSAVh(_H4dt{Q&(1qX_KBl!bmGKI_2OW`57FxPF)W z7xw`$|L2P^;QcedK@d>x`3-ZKrbMLc(f^>^alH6{5C#JO4hd717%`|ZRshd1N5#*9 zCrAZoh4#i0wjt5>c)7Pv4uEI;sjTKJDzkgd2|TQAwADd;gtU5$Y**Na3HmH5QKf-_ zdgo`V|Gu9K?!?j$lJ!{ZNdX*F!Tkj!52WN1X8t1~C$@Gwg{%t&)L~bAmP8K||IEzq zdC+Q^IMDD}Jg(FJ{pVzl3uN_)zdu$xGHKjZIEa>;r@|>uwk4w9izR~iq+ DJ^?*$SiyVotv+0IYoeP9JDv!#2PDdYf?`PUoqNAY9)#-%#J9{ z%iUA$T =yaT}wO}3ASzB!F{9F%#V>@(O04q?6Nsd=HiqKM(7-YqjM zl77U<^`$4o=K3Y)Kqf6R-|&MY(r2zV(^LVDZ0zuQH|vxm^}*4w6sJ5vSkG+#&SABZ zMt}{M8M_PxHchnnT4L!-IqGqIzhb=R;j@8;%P+1?@o``^Ynfr1PY >f$VL|At84sTP^vK3MD Vn|FI~42 zUBUBk#&h!5#%dC_KLPt+^C8m@O9x3=F6JNYN_h85HP>rtPc*w$PL%pNS&2Uujepd= z9(^|?nF|h eI9why&Q@JjlNdsPvJWuWRi4rJqPfCztNHR(d2B{# z2SV24mn)|xrpk;idp_)xxoX4l%%rl%d!IkW+OK4K0QMRmHnkVvH2PIgJ+0vDCO>6o znDY|+l_}iMEIjhNJ@EE83lh<)+j-;out#ORVrS1mr5zSNIFbxJs$tkD{s9UUyHi|p zO1aFfkh;ORT#ndN!`v~8yHp9!P%h)m7x;qcC5tjrF(0A}efcED9r3v#P*V1BSeDp~ z>0ptq&`e;}U=5gZsoGhL08YVs)W*pVEY{CUh}?tCMN~!+S#pw@TKyO1H}mvK7Vpn@ z)mY&G7?EZ@jdDmQ4t)kP8-AO>L7o<(JNR3 PRH!-tDw*Q%_ zrT;ms7^AKA<6%7qhK1cf9@hLJIQkhreu~`H_} lOmU_)SZc1LHA{)>WI}a<$cVr?m9R@Sc6_t0pwl`gLt$d_554=i&T%hrS zPmKN^SJqzMi#K-V?g!e%rM_akFTXz%A`UicV!GBGn@jGYlni|<>F61Tcopch`G;m{ zB5LVu)Ph^Ghm@p>79hGl-`mei?&MTZlKJzgId1ju_s}Bh*tNXxD8Z~pJRH$Nc(*j8 zg&JAh3wm))JzafOj*>yvtGqD_?q(5&DWMKJasnH}_!LEP>Lr?il8rhYs0^#$P+?6P zlWy=$dZy>!#S8c8h3~X5m$fyq`vh*CgS^r(G)2 -0 zqaM0*v+Q!BH#5q8Yf( 1I>Q7tSB0lpD%89CZ2-Ztet?E1t zdk}+jpjEaHtFnchH_h`@?&b63+K6y0OAfrgepSWz4K1bpxe`dbt~uit>zvXxoiMvb z&bvFJI|iF}9SJ=jc;=ZAmT&9=7@x*4WE7sk5wcqoqk9Q822~~p1 C7Ss1w(%lwMh(|##`b9=1@nF)3y!p` ztSgUSAcY-L`9$?d*%Du~*`{~d*Y^QQX4{EYwRFq=A+afg0RuG~DQ4f0g8hD3eSWFP zs;PMK5M>)Dlr4pD3m6CdTGfu;AA2{Bs5OnDsu41PH;T4uq^NDk-Ms;d1@~27KD6IJ zx@@B9>4LvZT6#zotsIHoe8W=+yZ5hneV)xP2Q| PW$fmrbebZP$z zw*rCOXkS^iH$XyHA7G=N1m1W4fc{u@unef @;xP~D zE?7VFI5AdZiR%wY!wLGQqwEg(?qE-bz64&b*`EU_Hw*3>dRLeTXwPl=lxBuu=D(oN z6%=_am#ub~6wD96Ms3GPVo;@#eR{0c;-4!+ww2QTKCs+joWFL3ENnL$;URxXqN4C& z!ATKf^G;sH*s0=@P=+SD(~yJhMfS(fOrD0 i>9|B#!sRn*?f5jWn>$qQ}e%t!W$W<<({M8kJT;(LOBQ3->-AXdA zv8+g5dep1l7?6w!fto(G^rEe`co9F|B3l#PK0tFi%NmR4)F+;<=2X_1Hj8@wK#gVq z7Jsp89ChWQ?!6Ct?R3pSDGbsL%U}8u@AR}+upxzM?K zR5Q>mAYggu2ncZwP@FVVAJPm*Tbo~}5PA#LBVv-hQzWUMAh z63YTm%0P>;V`9BdiLm>{m4U947x)T%LD}KhQ^?ADlu|U1Milel*#5 $^6my1!ne }PbElU8Q;%qxkF?YHAancH`U zSl=F`byfh$)Q6OJAq@y# w%z|)<~BG$M%v0f)vZ?kUJ72{31CU=?=>8l z4GNMrSl)R^3>m9{z8>R{g83s0&7v-qj&sSLLe;@%Bzy#%79ew>IUNTwm#!Je1@Bc{ zhjK;uj74I^WyAk?$iL)9$BjV$?7GevBQZEK`N#xyTa`B$pNM9msdG@Ki7u; }YoKf+!gX%X+)>10C(LQjOT?=(#ZLOt1R%8A%|e_V~&+N&Z1EdWcN5 zq`SD9G51O+!&uJ;l^*WP(9*ulsCH3)IsS)jb0d@2 2n-H~nmZTh+LJF06yvOUNGtu(VTs*1|Mw#j0nOe3<-=_uEtUVR7`0RLJ zaFHh^%~kS?*NQGH`pTGrMJRVphoxZCng;8?jT&{hYbV;shY4b22b%*L9OP6yxq)BZ zlEiSi8m#cp`MoHlF*u_KmZZQDQ_9ODbeGNcQD}n;`avE^Lkz^Y=dQ-<*m;Hp3b%nF znErf5Y>#^_N(m3ugI;j8?%Kb qh-4Dybs zwTi$QMa(lmvZvDM3VXqNep#zm-f1Y(&Bh D*{ 42|ir+j;?#MOdyP!D*RtHvE_%FmWQ+W%T>1*I~$VVc{7*Cw20*u-@Xu9sL5Kx z5z {B Do9mAJNwZ1;L_z z@6Ddqs~}n(6Ha&wDO>W=JdnNqdJd&C#)Bh8zadDwWshFaKJ_i#)}ZnP9#HFhitEN2 z4OTqETh{68j|x~nhF%9hCm^HU#%nR8$U4ob2samMgfz4v(&V`T<_+>5kq$dLYH28h z(^TU$#nhk}m^WQP9^?mmUutMeH*9?Qx65t`bB~I8JFq8Z9B5q?Nq(dSyw{2)=L^!} zj9W)KRw4qr0AFC*XdhCNv5=xoB<#}zXS-<|Tv2cItc%06*ebIpWJK-q6q5FdN|gsY zwnp_b!S#55;Mcn%vvHj6|73GfC#ae~;XI(0W2Yw?8pI|ne#ZKY7#&+0{Ur<4lngNr zx0;A7wbbQHu^k24ue7|Rz1_gEbURA12+FK (Q>^j z0IoT8yCtioejAMJSi4OGs1M|LO3vDfx3am#VKWG?liAf3B3 mnJM#a^yLkR- zo9k$vdYZ2@r!>l<7EZKEWN?{qu4c_Zn8d!Q=LONQLJ&8A(+P@hrG8d&gV{}IzBRd^ z>QGaN=f&gHhL-1%eHhkn65wwi3VJW!FLru)D^9^Te3!NNpakX{dg=9*1DhpRi7cs5 z{mR6~-7FwyRN=z7lGD?FEz31#ZqM-nafyAvN$hk~%F-Bj@1 q3xGje*9Bqt#!mTQD7gcf(lE6Da@ zg%jAkWRLj;?6r_HMUb;+@-m>MmQPNa#;$!lma>R4SWQg0B;GkZEFWIaFqG*7B2NhJ zr|DU_9ZIJE@MWO1hRRb#+SgOwCvP!wk@VH*;@hWFri?DI2(&@*u{xCkk8m7`XAdZS zaA+-j^K|EA$eG0$`)SSUhdE*UW~^>D=% #6Q)p?Ia1 zJr4D<$Zy|p)`$u$(1*U(7s$FIt1C=4Z&1ubXP~lmqoFJ0`sRlZ!JUehZI1S1f}aH< z47m?6025QytbX;yf+2s=`}hm@#_nO(;udz!X}CQV<;oER8}`n9&pkEkE_`zn4Hl|z zO149q?+G8EqXn@2`mDFxF}ZYY_{)!pV;j-Y!{VmrW?P7xI6^*>X(0zUqR6O`!(+eD zo*n!)x&y%OfS;<}$I9LR)l1){q4kA1@j{v6Gp 9l2WpP%K;||`_t3^a zrCS3VYl^x79%ql+wU-g>6N;$m?3r)qnMrTI332WB*w~r`GCLt_Rg35JEbK}+P_KaV zyiUsQbsMlZYrq@M;8wyQdC5_cmwW6i>WGlkMQ3-p_mrrNx&pl~m0GYJu>+Z;QW>WL zwfZFbE*bs|{-kKj2u?XOZ0pq>V?B6RY%v|_pYTM%G549Eh<=Q>QK;y(iGOiJz;y|m z57yMZck5IsiR|($CRh#vQ2E;48()_)h@xYVQM)2j+THaoRK%dq3C!S{>@ir#-#Suh z9PHo?{gzylgMU8Z>PbK8KLPB*q2=eUb?=RaRc hUj=x3?B~9=Am`b*0HQ57KluD93C^9-_O#8-t7Un(IBB$;xSj zs|24r+7zmiycwPQ1&X_fNpz=kL%eM|w{VR`tA|*;xcurSrC(gj$)moI!ZU}>L5j36 zyE(t?nqZP%dULTggQ=v59oBObhswiSJYI1HEIW*;)Pbf0R`NVAbm{iLcN_Y$MZ9^JkR z%~M38YoFd-FYW^Z?K-7KkA|XW?a<#cEdMKipKrJ>*Si^tvE%QnM#!}3D!&ilT2`dn z)#rs)x6(0zp0O>QH|6dA?gVrd@gV&W8|jZ*5uI7A(BX(9RUlT)QkUY Kp$7gj_`d+3bPOZ_ literal 0 HcmV?d00001 diff --git a/sso-auth-center-vue/public/index.html b/sso-auth-center-vue/public/index.html new file mode 100755 index 0000000..fa2be91 --- /dev/null +++ b/sso-auth-center-vue/public/index.html @@ -0,0 +1,17 @@ + + + + + + + + <%= webpackConfig.name %> + + + + + + + diff --git a/sso-auth-center-vue/src/App.vue b/sso-auth-center-vue/src/App.vue new file mode 100755 index 0000000..ec9032c --- /dev/null +++ b/sso-auth-center-vue/src/App.vue @@ -0,0 +1,11 @@ + +++ + + diff --git a/sso-auth-center-vue/src/api/dept.js b/sso-auth-center-vue/src/api/dept.js new file mode 100755 index 0000000..ab701b6 --- /dev/null +++ b/sso-auth-center-vue/src/api/dept.js @@ -0,0 +1,77 @@ +import request from '@/utils/request' + +// 查询部门管理树-列表 +export function listDeptMgmtTree(query) { + return request({ + url: '/dept/listDeptMgmtTree', + method: 'get', + params: query + }) +} + +// 查询部门选项树-列表 +export function listDeptOptionTree(query) { + return request({ + url: '/dept/listDeptOptionTree', + method: 'get', + params: query + }) +} + +// 查询部门列表(排除节点) +export function listDeptExcludeChild(deptId) { + return request({ + url: '/system/dept/list/exclude/' + deptId, + method: 'get' + }) +} + +// 查询部门详细 +export function getDeptDetail(deptId) { + return request({ + url: '/dept/detail/' + deptId, + method: 'get' + }) +} + +// 查询部门下拉树结构 +export function treeselect() { + return request({ + url: '/dept/listDeptOptionTree', + method: 'get' + }) +} + +// 根据角色ID查询部门树结构 +export function roleDeptTreeselect(roleId) { + return request({ + url: '/system/dept/roleDeptTreeselect/' + roleId, + method: 'get' + }) +} + +// 新增部门 +export function addDept(data) { + return request({ + url: '/dept/add', + method: 'post', + data: data + }) +} + +// 修改部门 +export function updateDept(data) { + return request({ + url: '/dept/update', + method: 'put', + data: data + }) +} + +// 删除部门 +export function delDept(deptId) { + return request({ + url: '/dept/delete/' + deptId, + method: 'delete' + }) +} diff --git a/sso-auth-center-vue/src/api/login.js b/sso-auth-center-vue/src/api/login.js new file mode 100755 index 0000000..4ebcafd --- /dev/null +++ b/sso-auth-center-vue/src/api/login.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 登录方法 +export function login(username, password, captchaCode, requestId) { + const data = { + username, + password, + captchaCode, + requestId + } + return request({ + url: '/login', + method: 'post', + data: data + }) +} + +// 获取用户详细信息 +export function getUserInfo() { + return request({ + url: '/getUserInfo', + method: 'get' + }) +} + +// 退出方法 +export function logout() { + return request({ + url: '/logout', + method: 'post' + }) +} + +// 获取验证码 +export function getCaptchaImage() { + return request({ + url: '/captchaImage', + method: 'get' + }) +} diff --git a/sso-auth-center-vue/src/api/loginlog.js b/sso-auth-center-vue/src/api/loginlog.js new file mode 100755 index 0000000..08b1b3a --- /dev/null +++ b/sso-auth-center-vue/src/api/loginlog.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' + +// 分页列表 +export function listLoginLog(query) { + return request({ + url: '/login/log/listPage', + method: 'get', + params: query + }) +} + diff --git a/sso-auth-center-vue/src/api/menu.js b/sso-auth-center-vue/src/api/menu.js new file mode 100755 index 0000000..8f2dd20 --- /dev/null +++ b/sso-auth-center-vue/src/api/menu.js @@ -0,0 +1,79 @@ +import request from '@/utils/request' + +// 获取路由 +export const getRouters = () => { + return request({ + url: '/getRouters', + method: 'get' + }) +} + +// 查询菜单列表 +export function listMenuTree(query) { + return request({ + url: '/menu/listMenuTree', + method: 'get', + params: query + }) +} + +// 查询菜单选项列表 +export function listMenuOptionTree(query) { + return request({ + url: '/menu/listMenuOptionTree', + method: 'get', + params: query + }) +} + +// 查询菜单详细 +export function getMenuDetail(menuId) { + return request({ + url: '/menu/detail/' + menuId, + method: 'get' + }) +} + + +// 新增菜单 +export function addMenu(data) { + return request({ + url: '/menu/add', + method: 'post', + data: data + }) +} + +// 修改菜单 +export function updateMenu(data) { + return request({ + url: '/menu/update', + method: 'put', + data: data + }) +} + +// 删除菜单 +export function delMenu(menuId) { + return request({ + url: '/menu/delete/' + menuId, + method: 'delete' + }) +} + +// 查询菜单下拉树结构 +export function treeselect() { + return request({ + url: '/menu/listMenuTree', + method: 'get' + }) +} + +// 根据角色ID查询菜单下拉树结构 +export function roleMenuTreeselect(roleId) { + return request({ + url: '/system/menu/roleMenuTreeselect/' + roleId, + method: 'get' + }) +} + diff --git a/sso-auth-center-vue/src/api/role.js b/sso-auth-center-vue/src/api/role.js new file mode 100755 index 0000000..3382a66 --- /dev/null +++ b/sso-auth-center-vue/src/api/role.js @@ -0,0 +1,64 @@ +import request from '@/utils/request' + +export function listPage(query) { + return request({ + url: '/role/listPage', + method: 'get', + params: query + }) +} + +//下拉选项 +export function listRoleOption(query) { + return request({ + url: '/role/listOption', + method: 'get', + params: query + }) +} + +// 查询角色详细 +export function getRoleDetail(roleId) { + return request({ + url: '/role/detail/' + roleId, + method: 'get' + }) +} + +// 新增角色 +export function addRole(data) { + return request({ + url: '/role/add', + method: 'post', + data: data + }) +} + +// 修改角色 +export function updateRole(data) { + return request({ + url: '/role/update', + method: 'put', + data: data + }) +} + +// 删除角色 +export function delRole(menuId) { + return request({ + url: '/role/delete/' + menuId, + method: 'delete' + }) +} + +// 移除角色用户绑定关系 +export function removeUserRole(roleId, userId) { + const data = { 'roleId': roleId, 'userId': userId } + return request({ + url: '/role/removeUser', + method: 'put', + data: data + }) +} + + diff --git a/sso-auth-center-vue/src/api/system.js b/sso-auth-center-vue/src/api/system.js new file mode 100755 index 0000000..60b4b69 --- /dev/null +++ b/sso-auth-center-vue/src/api/system.js @@ -0,0 +1,81 @@ +import request from '@/utils/request' + +// 我的平台列表 +export function platformMyList(query) { + return request({ + url: '/system/myList', + method: 'get', + params: query + }) +} + +// 我的平台排序 +export function sortMySystem(sysCodeList) { + const data = { 'sysCodeList': sysCodeList } + return request({ + url: '/system/sortMy', + method: 'post', + data: data + }) +} + +// 平台管理列表 +export function platformMgmtList(query) { + return request({ + url: '/system/mgmtList', + method: 'get', + params: query + }) +} + +// 系统详情 +export function getDetailBySysCode(query) { + return request({ + url: '/system/getDetailBySysCode?sysCode=' + query, + method: 'get' + }) +} + +// 新增平台 +export function addSystem(data) { + return request({ + url: '/system/add', + method: 'post', + data: data + }) +} + +// 修改平台 +export function updateSystem(data) { + return request({ + url: '/system/update', + method: 'put', + data: data + }) +} + +// 修改秘钥 +export function updateSecret(data) { + return request({ + url: '/system/updateSecret', + method: 'put', + data: data + }) +} + +// 修改图标 +export function uploadSysIcon(sysId, data) { + return request({ + url: '/system/uploadIcon/' + sysId, + method: 'post', + data: data + }) +} + +// 删除平台 +export function delSystem(sysId) { + return request({ + url: '/system/delete/' + sysId, + method: 'delete' + }) +} diff --git a/sso-auth-center-vue/src/api/systemMgmt.js b/sso-auth-center-vue/src/api/systemMgmt.js new file mode 100755 index 0000000..0bc9581 --- /dev/null +++ b/sso-auth-center-vue/src/api/systemMgmt.js @@ -0,0 +1,40 @@ +import request from '@/utils/request' + +// 系统管理员-用户分页列表 +export function listPageSystemMgmt(query) { + return request({ + url: '/systemMgmt/listPage', + method: 'get', + params: query + }) +} + +// 新增-管理员权限 +export function addSystemMgmt(data) { + return request({ + url: '/systemMgmt/add', + method: 'post', + data: data + }) +} + +// 移除-用户管理员权限 +export function removeUserSystemMgmt(sysCode, userId) { + const data = { 'sysCode': sysCode, 'userId': userId } + return request({ + url: '/systemMgmt/remove', + method: 'put', + data: data + }) +} + +// 修改状态-用户管理员权限 +export function updateSystemMgmtStatus(id, status) { + const data = { 'id': id, 'status': status } + return request({ + url: '/systemMgmt/updateStatus', + method: 'put', + data: data + }) +} + diff --git a/sso-auth-center-vue/src/api/table.js b/sso-auth-center-vue/src/api/table.js new file mode 100755 index 0000000..2752f52 --- /dev/null +++ b/sso-auth-center-vue/src/api/table.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +export function getList(params) { + return request({ + url: '/vue-admin-template/table/list', + method: 'get', + params + }) +} diff --git a/sso-auth-center-vue/src/api/user.js b/sso-auth-center-vue/src/api/user.js new file mode 100755 index 0000000..b1e0ebd --- /dev/null +++ b/sso-auth-center-vue/src/api/user.js @@ -0,0 +1,201 @@ +import request from '@/utils/request' + +export function login(data) { + return request({ + url: '/login', + method: 'post', + data + }) +} + +export function getInfo(token) { + return request({ + url: '/getUserInfo', + method: 'get', + params: { token } + }) +} + +export function logout() { + return request({ + url: '/logout', + method: 'post' + }) +} + +// 查询用户列表 +export function listUser(query) { + return request({ + url: '/user/listPage', + method: 'get', + params: query + }) +} + +// 根据用户名或者手机号-模糊查询用户下拉列表 +export function listUserOption(keywords) { + if (null === keywords || undefined === keywords) { + keywords = '' + } + return request({ + url: '/user/listUserOption?keywords=' + keywords, + method: 'get' + }) +} + +// 查询用户详细 +export function getDeptDetail(data) { + return request({ + url: '/user/detail', + method: 'post', + data: data + }) +} + +// 根据手机号查询 +export function getUserByPhone(phone) { + return request({ + url: '/user/getUserByPhone/' + phone, + method: 'get' + }) +} + +// 根据用户名查询 +export function getUserByUserName(username) { + return request({ + url: '/user/getUserByUserName/' + username, + method: 'get' + }) +} + +// 新增用户 +export function addUser(data) { + return request({ + url: '/user/add', + method: 'post', + data: data + }) +} + +// 修改用户 +export function updateUser(data) { + return request({ + url: '/user/update', + method: 'put', + data: data + }) +} + +// 移除用户系统关系 +export function removeUserSystem(data) { + return request({ + url: '/user/removeUserSystem', + method: 'put', + data: data + }) +} + +// 删除用户 +export function delUser(data) { + return request({ + url: '/user/delete', + method: 'put', + data: data + }) +} + +// 导出用户 +export function exportUser(query) { + return request({ + url: '/system/user/export', + method: 'get', + params: query + }) +} + +// 用户密码重置 +export function resetUserPwd(userId, password) { + const data = { + userId, + password + } + return request({ + url: '/user/resetPwd', + method: 'put', + data: data + }) +} + +// 用户状态修改 +export function changeUserStatus(userId, status) { + const data = { + userId, + status + } + return request({ + url: '/system/user/changeStatus', + method: 'put', + data: data + }) +} + +// 查询用户个人信息 +export function getUserProfile() { + return request({ + url: '/user/profile/detail', + method: 'get' + }) +} + +// 修改用户个人信息 +export function updateUserProfile(data) { + return request({ + url: '/user/profile/update', + method: 'put', + data: data + }) +} + +// 用户密码重置 +export function updateUserPwd(userId, oldPassword, newPassword) { + const data = { 'userId': userId, 'oldPassword': oldPassword, 'newPassword': newPassword } + return request({ + url: '/user/profile/updatePwd', + method: 'put', + data: data + }) +} + +// 用户头像上传 +export function uploadAvatar(data) { + return request({ + url: '/user/profile/avatar', + method: 'post', + data: data + }) +} + +// 在线用户列表 +export function listPageOnlineUser(query) { + return request({ + url: '/user/online/listPage', + method: 'get', + params: query + }) +} + +// 查看已登录子系统列表 +export function listOnlineSys(userId) { + return request({ + url: '/user/online/listOnlineSys/' + userId, + method: 'get' + }) +} + +// 强退用户 +export function retreatUser(userId) { + return request({ + url: '/user/online/retreatUser/' + userId, + method: 'put' + }) +} diff --git a/sso-auth-center-vue/src/assets/404_images/404.png b/sso-auth-center-vue/src/assets/404_images/404.png new file mode 100755 index 0000000000000000000000000000000000000000..3d8e2305cc973ad2121403aee4bf08728f76c461 GIT binary patch literal 98071 zcmZsD1yoe)_qGfpFmxy&-5?DTB3;rUAxKDvbVzqeiAZ-S3L@QI(jWrT-5rArH4O2c zxq5&1-u3_1I%_Gcb+ l>@Z)@`}0ni zgTxS1Xz2Sp5LyN$jB+`(TK2go0$*ON+wYG~Qz71pR)(>+cvvo`d01{Xdj)u2?ZXzy zmA;x1Nzp_;m7?it6=)ebdFi9=K=7-zt#9B^kGF`IzK;CC(qMy@r8#>WqG2@cS5uox zXbf0B@ci)!^b0Mb!?4K=50dqjrDj)8Y7T(OQwKjh4xB0;y*hgfuAsToL#vtY-x2 zcDPC4UD@TJ&X)ylS~p2s{Vm(V1wS(C*u6kTtf;l}x2;9RDSK|B+2Q|vU# z5g|>`3ves^tw-x#pW$kM%4o{)rRUjP-bFAxh4kKaDr2nlD0Ny3>QcfT2w<51UE`{O zQGN&5UTB2YKA@#pXv;7`0|{yiD)FUE4eA?4@$j%fYDMKsqFQWUi?UOjnyuv<1_{u= zug?(m3a+6reFd6hu*h( 3OM4>q*mTc~Pg?D7J-n+TvnsoY9 zWoxbD->+xD=K*Q$(+jLna6%I4kA`x*GDPIgI-Zm%UVn5!@S7kc4LW0oj3yb?d`)8c z7ej523IBV$9&o#~u-m;%@UGl)D|$=WY^|@KLU`Ac)l*@|602_{T4 +M7IA6dbP#2AL)Eg1u&)lV@(b^iSAa}Wv>^6+>!0CyZsvtcv1&Qq&svN z+sZT hYEIutRzAD;PdEXgWle?>lIf5kVEHlvET1a{;shO{ zn-EQLhR|g}l#-=7bY$DeCw*BaO6=ZCIRr)2d3ye8*IdkaiCqEbd9ba|DSo;7ROx l@(%P?= XHjX#v%4uLDStHz#?vp;8Jp~psBrurXiozhE0`(5iED>LBhfh5__U^oInU|$yP zEjDz&{zwWAxMdUZr8h#Q=vPr46k) 9@kV_jypUZ rWZ3!8{4Gc-ISvP>EqE52=OPg%cn3_A1Z+SuWO*0}uNWds4s zAhHbNeJ>FWsaCAW5waW9L4FA9Wr=FLpr*j>!WUNfY>TSb`i)Yththth%76Sc@)}q} z#=A@s1{4@Z>WAs!^^cH?WYrfik`9X{fiIcaicws{R=?W(`}oTdF7Taj4mNRDu&>;I z{4zufM6pn&*L_0n^uS2Kp2m8rj=vHajm%)0ZyNTcn@wug^UjqFs9J#iwD=khPyY|B zktqP6M89)9&wx(|%4a*P;&Jc6s(^o8=aRB(4Kgwpm-fAp_?~bxq0|4UPCxmP54Nw` zf8KveXS@t^YI)NG0{})#k;X3S`owvLhXtN)LG8zL?>f|k6Y<^+zeU_~P(n_T3cesZ z8M$)| qkPrp{Yt_1HBT1+ zO$}G`mF#sBF264SZO#=YiEgoZnB0y+E+=?at|BLr{=?)Ir}<1cztP~%gOtGG__6o( zMm~b3uxF~!@$Upjl>b=+yK-RE^|!b6=#XmBAb0Kk0yP63l$@RoTOm 8=ocSwp{*zOYGx+e}se(;LO3e6?ei2{2&&Vv#NqBGgg!wJ(!R2P`LBb7c^&8 z?_}TM;6eYN3D70K&z~p#{=4r}rQ6HpW`vHNQ6cYvu$FmNk@Ifi=~0v3F+WPqS*X{> z2_Nn)^R~a;O-srktbEh9S&aNYACRic7*z#8+=w0Mna;iy>`*~9X)GjuDJ%2()!vdB z7?=OQ>Z0%@0nm{d0Hybg!I$Csmq{VC#z5?Jn182ITfa?C@E(zU!0=cu06u$Y?}# z)Q!Vd5YFX{PI!wE)k>WaaQkvEERB9y_+J|{$ekI8#RaR>HTob-4E2h#JB02*h^Df6 z+hbAf6XDe)%Bk-yG^;-KiykYn{3G^*W_{J-^WXPidjIz05b`1L?_RQm-0y&O7;DB? znhfbMQX7`Q)xWCPdi9+!bnTwM4~5>a6{jc@y+8h6f(8CFuG-$*J2Knb^#~b_$k XV(?y&%;wLJv#A=pR$wIksq9h{$)&wK4AHHGojB6 z2(7_D+CMG$3c1i4)v3GYWLSQ5Fi4E)uPOqkT_=lR{&dUcQ=+q{7G%ZnFRo#YhBB7T zpTT4KG6XDdObk4tDsUWL!nCY;*QhBHa&fhy=Rzuuu@v+LHImBfsx)g-H;d=!^}p?a zgG^77#$I}a7(~GRLzx^(#GUa*ujinA+$hxZSd|yfo)lV_E1uj==Sh=$LkwNEasOf) zT5`b0yEWGfLaG^o+e Yhw|&EXwMkEM>mX1|P;97mZ;zVY)Zsr#NQ z_wXNtrD+7xw4BGGkPG2sC178@xc9VW`wjIKq1&9CoxjJoJ{NDBp#buct7%`48WHE) zC$>LXBJREU2b$<4faQak(xe%J!T?_wMX2wIi)RGlMfr1i&r78EsVhp4-iqCvF&mHG z4kS$mO(x`l|FPc44H*0NiCw@p1ufF6T1qrfZx zWV5;6dMF$~gZGYJq({OgEp7LSuk~T2jza-BbAVZV3a>nup0jCE;N8am$F1!WO{#9F z%ZtF*))3`(x4OT{&;Ibpq5mgm{eg5pR8mNE`+AdK3E!M1R^k^_?eqFd6IT^(Ix_RdbaCSknTxXyUb|;m z&nNLmS wmlEZ7K+W|5x57X?vWEy@v0lp0n|tEjaXJUEYw9gaX7 z^uv?6E_PQbj8#SqOIQ0dtdeinTHL0b>j}|=KjZ()=~AFKB8@fg?{KMr7-*`eVN9v2 z5+(3xlWu4Te*okrAKMW0)Vu@Z-fg&P#851~z%5(K3%P>WkTRft_~S4dR%F~- z-#%4erE*iyIUDsI_aw!@R(+*>ZLLojl=EX;6?#;ZLvr}?BDkWf Mk8f46 zly8wLw37nqASMlS?e0US<+1v!ZuJu)o=388_yaKFMZa(&D8r_&%q$fZ3;!1>^11Gy zH&1jY#kjMB{(5BY4VdEIM{#~yf1SA&y(8`ZDF$CA#^sPyKho>0h@rMeW|863S2=5b zZI*LJ9-puF-3MKE)x!UULqU`HK!EVidubDLM*;EsR7K7@Orc9%wX6s~WvK{qfnBqS zdPL)Yb>-qs`Os_K<6M_n3M(u4Uxf>>_qOZ-@3gObHKXsUN)R2Leg&}D3?__yiWf2{ z_V(gf^NLae+P38aZ?Jgbun=?<`Y)FtSr$1)N&!<)Ij|Hl_DA<$3TbL0u@oA_Pu=53 zPo9Vv!!I_vf6b{+B`MUR`4m&}!#^f5CPR^?F3DHuO97sVgG>x75ne&Bz@{VV{7gnk zz8pm< GC_er@IEsh z=7|sF0pe@QiuD95$$$3Lq|hqpBYVqOF`P2;GOKCPD)>t;&-s!xZ6Jz5f8M#F4bB9D zOoaNMO_xXyn1JGe19K1ta!J0G{E&HVTagC;yuR9vu(I*GVb9~LyzHxGW96Qzj^QDC zE5ak9qmHPu7iTq@REe+X$-7)cl>80e4z-=L?xp<4*t2f}Kg7z~cc!4y2C3ucni?(e z75ZH8?}@;V(BeweHxn$bx($aD63nujoxUaXE=Bh5z3nT-JrVJl8` doS#?v+%74Wa9szPtaGOjx8g5fJYN_27HkJicm~v@1-<} z=W)j=oqqC*zV(;aQ(H2V33Wf}k58JCua0sVA6TvIxx@}&yk;iI5dXaG(c#y2Ia9d* z#BG`lPxe*;<8k0(!0r7>CAY`SYLb6L48Ai6O&lTPYx&rh(3%eL+-H*_-hgW~78pr{ zot~+JNFcA#<@circTpjM-F_~Dv}@90IQpwjj_|L$2aqngFHQcV>5gVpD)#EfvCH8X zJ`uyzy7SDjemiuw<618slKkzNKqLfa2n!~@1*bm+(w)%w!*Q)P|2(#-(mL}HRv4Mg zQm8<>^G3{Aw#Z$6Xm2=s|066T!!JM%k?jWis-FoDxz7xDSlmL2rBBR`P|pqRTQo>8 zL?C~^Kw^%_`UjEioZ0#v1)6#A$I|JdN)OaT__=giTkbGnlfr;+LlYC8?ae5GTDFhc zdIc)R2o+ZybDfS7&D}Drw#-E>P%E+8Y4hqD`sI6)1gJ?#q4+3$>{87bS;qMtfBFBJ z>; 4i@z9z!ze@nySP$v=-d% _-N(;>EmFErFAzEQPm{Mzwm|lFqUBuc9NI-DcEi1#S=7N~U6xl7j!oQ23A>GoOCz zu0p#A=$Xd8 @q5I)xv<){ovZFNrVr)1zbKQgP9@^=CvwF8IWZ zNc?lp$>(V1gmqWooCCW!CtVxP=Ce86&vh}M{{0;zP9QWnasl7{W*~V=bYa*TaUQb? zo31v}b-tP!wp&WVNC_^Rxk&M7s4NtWosm9ztiOQqHqWNR^Z9yT#Kj8fZe 6_*wqfro2X#-n{{aPZ-%v-r`uHAzt5cdI zc=SZ1D4J4B_7E{?n+3yK JT|Kl^({bi|l+Q!jcn7xl}x1MqMkULV?ct=_mz zelqcVi2J`-$wF?gN9x({!1C?NARW47f7xM!DYuxa+LGXSku;(Q((ad}-*XG=87a#* z_qLd-MV`|x3T44Il;|yPMop}pTE(n_UmtLWFy}q^h4?@l)1AXwfNl#25WC-`;+|m( znBiDcJEZwd5~TSWx1Ez7uA zS@*kHymO4-ZA(Uz@rRVjc2I3hMEt zfbZ1wmLFA-VzxpnW7{5f=A%wtsm^!hv@faA{FKODZwoqK>gEtF_xvmZ?~ZxiC^YVQ z|9?JtO31xW@F`AuqX9_s9~GDLIm(Nrc*<(;$M4O6D2;k@?+ZC}ShUd-z&I`^vbp+h znB`!{hwppFhV32vHTJvcPVZUS5}=Ue|B`&%XgifJL=I$2^<$s+pbq@-*kGp%@vem^ z@pBXV)z*$R-k|9#Xs7IF>IM+?NB&!Orq(|SWY7o_up1xdwF99sfv>K!6DwU&)>7Er zx?Gv_CR-FYp_MpWvu z-8kSV~(7BC?f m2HOV$WliWir*Z+#L}PnAGc5jbd$xzv|I|nA8yRK z5ZJiJ?7XFdoubkp&CJ55^plmn;;2l3yP4a5PG{XFQwp%L(|gmbA)GwDDJ1mERH(v^ zXsDeLyvf8MB?A&m{5e*NB^`~dRE-jj(vkxmZ5rKIpqwn10gsato-wTWfN!fW*Rn;b zp{(nR|4 zt+nh1hx~ijq4^wm)4oM5mVI1RPWVUFBE=B!>t|LN4Ldb$A$x8%ATgGU^w8lhurIzd zfy@ndCcapnr4I{ycx^b4^)lrpt(xC-rJ|Kjm#Q7``M<9iq>#j8;Po7+Q-}#ij@`-h z9rf7i_ve83GwHfM>rq`RUn2jp;%NWVJK~oIO#V|!pg a~qfbeZxn^tswR-;JJfj+5si4i|3iE<2-3D8F^f< b zL{D5BKg+S}W6N8Ls2gGFns
RB5KZE&f_k@`KT+q4zUc7?#}&R{u6s_{6ZX_c3;&Z_Q?#CkO)G$u%5{DcU%B zvqJE}u-y7%w0^p;8u0Pm8s5)s8qHPErTcZ_&Qwp!C}+5=s5}RJMyi04LzC)eL6rCq z^M9&WkRmcqCEhy+csh5sgzdoGgNVC&2^mV!S$1~zJ`>+dJEWpqj3zX*cE1o`ldqJP ziDC`HxME3);a|7$ep<9`X4nuW5i`a44y(0?Cy|JAQWN{t>@sImEox4X8aMP-#$J(4 zGW*-R5KdkdH0QjC7&^z#2v~aQg@z@~pPy2!NOAbL;_-oAeIY@2`;A->U@cZ!r}Mz` zgSEUx9oCttaX(H$%t9a44HSVg9aJUzCxGuxMOL4u$fdYwy<7$i8`sZiP92L8<3b z(IoM`%bJ!`i&9Pmy0J5-9&G6iLQG#2qU#S4tywRc^Y<`wi1o%SK13^UN)g2 k+J;4 zZ| &+AVX!!f5RmK+t|DPl~W-1C^UN3iax* z=qP`5R^~UkS*aSw=<_cDB|K{~4ZlyB;7?TM9s+7gnXpFod!U1o1|Cm(Jg{* Wm=?STJhVV&FP z&R^e|g2d|gZ9!rx@z%!rD6ZFK^yjN(`t++b0s(C_0^;wcugdn5j7HKOm)|~P_=_Y2 zy}{>(SvAs1Zz%k=K{2YjZ(vRQ^gf<#17!9UQ$ls`!@jG2to6Ik37<>ukirY|pNeuS zr&RRuf8$rPX-n6NUA3Qr*rKxb!9IWYS0f@CN2OiR$~c*#b3r(8k?Wz?NvjeE@rz8< zNb=taXf_Ne#}9ZDD9|A?@7ry*zfw2T1f!O@^kr{-1ZPjyhCi>B7`t$<88ND4rNH!a ze(Xn?Y|!@Xs`PZhFU7BG(>D29lc>ApLXZW81m%$IQXM;BTNRLdGZfpc))!X$S#@D; zUltUjVE`S7r7ZyTTB!CUS4icu^B=r7MwUZNKQJwTwEQLF&fuJOX#Y~bw7n1BgX5Cv ztF#mGT3Mp07rc=&*UtNxDVA$Cxm NN^jdx+Oc`4jIMx>J)#Bb4>= z@&6(|0)PU%U+d3a6Grd`EwIVDXIp*B8tHo#)S*3p#b9vkL!78~E_+|Bt>|3r9<@=w zngkXv-w*Fa9>YNF8 FXG9gCqtM#l?j;0d z#97D}K;WRP$zis!I+_ 8|-*9*qLKR{z%j+WlvGahZjJ%>+y zSf>u!zMdsH?>94Q>?13Q!Hh);he++PhbY%{$+M>!1aP-32oMbB+IZDIwO=8gKL7)* z`AfBY#p^-gym$51z4^IqE9-gdN4&c0@}Y>v_fW|P;s ;4rr3^&u!3ZQ$Q4|ix^L{LSE;(JsBjeBRuvZmC7!jovh5X{^DSijU z2D6=qm2LhNjC&-}zL#`0k2@`lIN;mEoo)f~oCy9!4&8g-a9jmYs0WB_K&__ve%BuM ztKaZtCXIt*m!Wb_O}CT-JCw(!$X-H9!FmPPenpQhS|`yT`Coz(xfWEJ>|g*$yue~L zDxcU)K4OlDpw+zW4-sxHs5v;eyem-@FAlu71YX`pyl`fl)G*U~p3e>+K}*z-(Mh>Z zQ6uKvFXF!iYd171%kiKrHOcE2EE09s`*IXm*`%U7z)n{OpsP@5c4i_w@4+oT_ocl) z+F{GQcL}GlC*hx(0|TjD-?0`61y;fjeohOW3+J>Rs+l|Z%4u+HuO9#+tC9y9>Q wa4+X3JV ~6|6 zPokd>F=p$TQM*L|Xw9rBDUdl&el_ ~{;LB*PgRZRG1-jB3`WD@PqE|# zzWFoi-V$+R#?QAm=Pw+|9zF{D9WvJBz+&bsS%vTktsOy4&m#<)=|c5#JH}QUA5_eT z+0IS*VBp3>Uy Sh@UY4??vP5P>k^*$F4 z+OG!t>ZuOL4u;2 0=a->CB(#OB{0h;AXKN5P|>PLUl5&cbh z)dfMDHw=^Z5h4V@mYRlqIqp4n$4Qm7rb=gAs%*r%ImW5)k}A*=JYxq|q+|8AYSLHN z!fmm0+zz7{OMNzgk`o~(Cpwyn UI>w~OlkS9!U+0!2=O~F+Q%45^xl#UhX(APlMV}`a{w|Ah zSpoMHee2Ew5@EWE1d&xmv!Pj`4{mcXzjUj`^COp03-LT#yb