From 2c5fef895f564f46bad3daf657ba437211482c33 Mon Sep 17 00:00:00 2001 From: XiaoluD Date: Fri, 6 Feb 2015 19:13:28 +0800 Subject: [PATCH 1/3] 0000 0000 --- xiaolud/0000/0000.py | 18 ++++++++++++++++++ xiaolud/0000/ahronbd.ttf | Bin 0 -> 50468 bytes xiaolud/0000/weChat_avatar.png | Bin 0 -> 8526 bytes xiaolud/0000/weChat_avatar_modify.png | Bin 0 -> 8934 bytes 4 files changed, 18 insertions(+) create mode 100644 xiaolud/0000/0000.py create mode 100644 xiaolud/0000/ahronbd.ttf create mode 100644 xiaolud/0000/weChat_avatar.png create mode 100644 xiaolud/0000/weChat_avatar_modify.png diff --git a/xiaolud/0000/0000.py b/xiaolud/0000/0000.py new file mode 100644 index 00000000..4ecd0a80 --- /dev/null +++ b/xiaolud/0000/0000.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +from PIL import Image,ImageDraw,ImageFont + +# 加载图片信息 +image_content = Image.open('weChat_avatar.png') + +# 加载字体信息并定义字体坐标 +font_content = ImageFont.truetype('ahronbd.ttf', 30) + +font_width = image_content.size[0] - image_content.size[0]/10 +font_high = image_content.size[1]/10 + +# 添加计数信息 +draw_instance = ImageDraw.Draw(image_content) +draw_instance.text((font_width, font_high), '4', (255,0,0), font = font_content) +image_content.show() +image_content.save('weChat_avatar_modify.png') diff --git a/xiaolud/0000/ahronbd.ttf b/xiaolud/0000/ahronbd.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a0bd1911a12bf0ff7881e463dda508d768f960c3 GIT binary patch literal 50468 zcmcG%33wD$)-ZhUt*xti-#dGEI(sMSB%Ot9qzNHQCv^6776M@ly95yh0w(AnV-QhM z2OSsOP=V2)2)H|njwrZ{pu>o`j5ChD?&CPVNGjjC)g26u^Stl(J^$aKx|Xi0d+yoq zx#wIEMhF?X>l(PLvZkrA^>y{%?Qs4E zLfq+^*7nNF9-ZHb(C&Q*k&hZ%y?KG=l1~uAJK_G0`77oQeE)4yE!=w;elMGU=_O9r zlPY+Z27X3g_75ytk)JwCLP+=ye&4ca`MUn&+uEK(NcSg%HZ5JeaPERrU$lGReX($V z;bOR;zlr?@&fDNTY4M6n)~=hHfuIv;QzYd+e;#%6$m;iipsw@PX&J563=)_v{>> z{o`h-Re4kRxA6D3%9U?X7ZOkoJV%fL`O(er<4$xxoMD8SH_20oLn`i8&Ihkd4)2*= zsGpbsTUf;q%rb;QNJZg1|8c?x!QYRKVHmg%2@gNgYw%$a8m4RHZYhXV_yWv^`9CyQhHQA#)(+1Cc30o&@8)2Ib+fLXz zVA~E`6KpNeRwry#>~XY@zK8Ca7f~CxY5WWBA*5r!McdiKsD;}O&wK{kM`$}=jGDQ> zqV41gIDZ!DxLaWV0@^OLq85G?{Js^nu&;*q91G9ifLh?4I_^cZodfPu0mpC;!Y*F^ zwQ@WlFlc~YXa5m?jy}%>;Q3oo5xECtuus8nw*yB{gSP$9#u?Z=D4lr+eTWIFWZuCp zwi8(Z2kDds6#sDi1K?>f*N)QQSYQz@C-0*UfNv3RK~>}vl*Lw{VmPNbynCo9l=ICsMJKJqcjgy&nhCR7{Q$|?Tg+1JDL82^g$#Q*IF zZ&RMwK>E>pz&(F~vt7_$En9$AGh2aw_Ml?umxnorRzp8)VQYfp1+aC)aXI`(f3JeA zfL?>=n&5f|yrTooI{-#sMR^jCew2G-f z6$-8rf#xp&4qgB}!p81EeX!9z#pQLdUC*`S>xEi0U)l-xY(&MdwQz5te!dW-FbpHW zIS#xH8^A>SH?dLpXy0gmmA;%qE8w>Z3g6`I7w|!4P=eFPe2__Xe8xE_<|o9mg5DLD5*7Co!($HnJreE-4PWX z6B`$w;B+OrlafUEMvidS}n+n>*3cf84*YdSU<47uTUx%U`{08NKTggcei%jL?dW@O8z4 zm1r|U7hV1m7#{dM`P6g2fBKnUDaS7#Md---XP^Irau)u2Fmik`><8&Fi-G273UY#g zJJ1k%7QKW1g>T><=U(7G5^bz_CI)Oe%U!X71SLkc>4LXV5 zhW`8so$^OH>^7^#Y%&`3I;}=6i7J8Tz?NW?Il{~s8QC(5J)<@5s?nPDA3L%#ol8dj zb4Sru=YI0s$Tf!zXkMR3v%tMz?ySyHW^PwjrprZ7w;uMRd2lj1+}s&HccOVQk03wi z=^7<{^q1!*ezCUGUxp`sIsbT{+m)4xMyuTe`*HPDtQ?T)872D(Qfad?XSkjFGuY&j zrp~!rWBRV?S^~g1XE+vDIY)7ybH-@(rHe;q^i{#tQ6@RCV86hnxIH6=lJEuhPgfR3 zF4eee+;g4#1s?8mj?6tgK0I%fO>sI6BPGsiCvMfY>i3j8@Z+n zaDxrbGE@fp{c35tTX}3Ux}g7C{~cxFs}pF04uo;`A9_*W+UXn_nd=;Jj`WSP$sjO# zH-PPYeEjbSjWnD z_m2bbudST{4865#e_dVVAP|Tg)YnH28X6)8GiOE)g2Bi^V`Jo?sVQ>M+#ES*X^9-P zwuTST{BO#$c03D0l~?okqc|!0^-gf2K(sh#-5EWrZ_!_=f5MPxm~FVm@Q~p}!{3a=Xg3xZZ!?}Vm78uejhm;L|6s9MYAkCl zPg~x$&b2;bv)b0!PTEcO?e^y#j3d)=spCb*cTojVH%C1ft&XmUeg*#i71I*)RBTf0 zn%JFjDRI4VAH?Ux_s4IFzd4~Qp)29Ggm;{U&ZnKHT~=44Yru7%>*YjaVr}AmZm0X1 zBx_Q0(#=WVC3}(|Nd79NK4n?TJt^O$im64ZZK?OB{yz0&>Sw8Pnkg+OEtqy?x-orP z`qk-=r2i#@&8W;+o$*G-S00n6!n4YAzvsKmw9JOgYcv0p6`Qp*Yi~BnuFYPW{h>F? z+u^;=`?B}L9BocsPDjqNoZ+0`Htm#31c-BbTqF{9$Xig*1>{f_~?2^t1pXBb9i42-c#{fPwg9QfAln3viS zD}pBkBPei%SX9RoZ5?8@9*@yfY%DevqlyYRh66ay&G8vs#$=b#HO!!~VS;2B+nr4q z2FDrNxNKa;OPN=p4LwTmn;4|+6ttqCs+U+%s>ev{IpRST9>bYqxjEQv^qDQZJ29mo zztERw!=3NEW2*7x)l~a@H8_qubZ%d6ZEbFTeLa111366IgpmV>yeLRL7OQCKG229Qk0DO%(Z`DheUC;IH9g>3sGWw_00}3Kc;Nep z=YkW!^D)m6_$B;pP@s1UJ}U)Z*$R9`?gF3L$0!>IzcH1M$L@Q)V6pEb-_nA8e~3Q( zV!_gaw+fc{_Q~(P6?c-{dvb||!*N&J~B zvxqY@CzFJtW29&lN=0I7dM(e1wfc0i)?ycVy`?rWUQA35sWqZHWK0%~nTCx=91$GQ zUQ=Wkj(B=|djS!^a>qOyk2#L@u7X?O-!Whr)Qc?wFIe3LiK!_CK8w8|33#Wdz-P7D ztnQRl@Z4?51w8n2`Ki`IaxT=gwr^9g?e#YK>pL#)8@S3|8K38f_mc-!S0uInn-TLOI)WOyTbcmf!+#IiRf<&=Z!YA`mFMjlphA5$2}Y$`4<|`6=#1z>v+C zS2%HOhm)d0_VC7~OD~^Vxp?uksb7u#u#!mfsj2=YOZ`*B*YI~aX=yp$^t7C@jr7Rw zNKcEhW8L7LcMe`Wv!!Jw$vD@+?2+XS!RF@RhE?=?>>m~F?G=@w5I#M%y?yHRjI68- z%6Tit-(!!ke}*wd7Aiou`)5CxjpsXXiUUVWxY32Dy0FV0mk=H0VbeTn>`>!dvay}P zJXoe|ubS0&VX%l8lvZqfTy`9ZD@xPrbH(iF{Mgt86c>lo9xf@$YtH9j$jYfvh3~|1 z!*OqM@o{4@s5Gys*ay0-7<-TVyvGf1_rlKC+iS8HD_DfR;qBwSy}3E`G+9VVji3-l zg69!wwFvgYB0DeG6f_EeQ@g#W(3~1ZE_-C~qS~AOd}!@eSZXq)tXh8K9gA0fb6b-7 zOJ`M{yl7fRN?ek=behlf#nPVab??d3reD=HZ~q^!ofGSC-`Lhv-}I|JTW*_CJaf}R z54kP7)Do3dkTT7aICkj2%Gc#}(D6|@c?z#$QvsV+znUTEwIQ$r@}3UsJ-lkyjSJaS z`6j#!o>(5-eIzaWUv0Me{4n z#U+MuU{v_X=CcA58G(!N4`PCFBvf7=IwB;9{h?6*L9(WGh+H?^vWARSHIEH6S5au! zjn@*SwC(lBCzE6=DIf(_(!r|44uf7Y7+AB)K&&B+oi;tW0lj41I$LYiou!(srZ zL!;B8=onj%$tIe5R4gcPqg^y=dqf5d6;;ompiiGZLJ{GG?_)OnTE;GetMrBDCP2+}`m?_hnZd9pm z?r?SI7W)fow`#@h!Q>_y{zALQUuXN6hmaa&`lD4sJ1dB6J5ob1Ra8rSogjgUV==X( z#|+01wHF=(HKs13+vqBA8NoWUee&EvxexCe#CPINau7cxx3>9`6;Z>uNyBW22u`B>JEhvqxEB?^B{UN zv`P$e03XEEs$jHw{A=6~qi!`a`K3-q6d6@L4=)G1pPQ3B+2HqA=jGSbKMZAMnevo_*A%tPmzm{G9aZR4Lai1|Hu8!;%| zA01+&#gN7#X*gCJFd)%uz=nXzA*y1*w1Cc>VCSFdL?J&Flp;v5!I#IN&fdH3>h0{D zbLX9NI^Ro3oH8XbVck0X;d{Tn?z&&Ucl4_3ufOWmi|d=3>Mxf62Jn6f&Pg|n21Mla zn~B)10uO;jnnncsz=Xq70W6)H<8m9pctP~YN4j5c$aZfnet=YDM+@(?K;RIgPEd?G z=!+Hk{q7`-%S!SsxmFT_NP0*wNqUaK8Y{vk6;Ct)-lX-M-gv@6O{n3-#v>b!Ie;0! zO;dz5S#TBL!h&$O3VG$(5AMp#0aNH*rIj+GPLEXWr!KWdT zxRPMPXjCkgw1Q3*&`6?&3lL6%>kpG>2_bsujnbVHhBM%tPzkI6)b~;;JhI_62X#?a zVZjX^3Q)iYGRZKOI@eKoBfj$J(Zjg(k*lx1n+%TKgyZDD0Csi)rau9g9H`!(?NsHc z$Vvwua%^{ycE&0(I0W(;lJuga1vX>v zppcwurvgAN#V6p|Og{1an0&*7m#@6LZc$C})%T*3Gxe7-yLWH8ZQDZ&I^$nWxOuaI zuq=L+dfXj~Z0$xS6pv>6r~lRXPa}EJh&Su;4E+ov$tR_Jj=s>yCL3`Q@$gPP6SC>G zIW`<(V?`~?YKxQIU%QH%^%3r!Z(? z-;V3%%ui41c>%LuZ)}|NZf!0d8|2pFru*j4nmzCCp0>JyujNyQs+L>xYHIRwYia#K&EY}lh9XPEv>{_>&>aD$??|W z)RFyVl1T-@S3AukGu!66Gd&zqeMo2{@o-{2V#Q98@@<+dnN+@Q9gOw~;Lq zO2sm*&&bvb^&;6P;1|g&BKb@_E0U1j2JSJ>Xk2R&eDJz-0GL9^8A_Se!^`|@hH z{I=tKOL7Jsw^7}^Z~PtB1v7s8hiyYTLNo>FutR%F9Jr}^#Qj>lJ)QRUciVx~dz{d8S zt7e{{8{r4#!NCh)Fdkxf#QCX>J_4RKG>@Tq_(z*3Z;fR!Yw$+7`(7Nx9rw!J&_1=; z29TU6lngr0>moRpU{gqM7xf)rMOe<=8Rr(`RB`J1Xr~mdsW+R%dX|^WY`unt4`A>E zdXF*?1Q7s_poPQ2N^Lr*UC?%5_`sZlcUDM;JT_($F&RT|b?wo@_|m4fqTCMt_2|yN zk=u@(nvo06M_%p>vhwy&Wx;p$mXeazhTNE;=B{VQX6H_yo|_9HS2F&^_-ot_?s8NI zwtBt4u`+#HR$YjZ;&_-anpvP}FZYV=)v1!h(mvCobF=>-J?T{#n||p|dF+kbo`3(^cOKbZ8P7`7)VwI= zJpO_Fx96_8{i!n$o~%87&)DmIwWZ#2SIV@u(kYDU(v_E01>O3Tp6+G)|1i*4>XFOS z^HN3U-1gqbH|^ehpZqWR!@Cz%#OVopAIETw@4=V-A}VdI0rXp|BNFw3DKvT&`4?0E1FB z;daTJJ7wE!`D&uYSLW`x>B}#<_H*~+N9CE+GJwrt?*u3f;E|@F75-XJGVXHP#Uar2 zU94N|;;k?SVO7CcBo4$5#}a>RUo3IP=ERa%)(F9}plFmT#9bm0SEk{#AZHVUT%yRO zf~xWudcnv8M;rs6!*JvXKo)js0b&q>Rn&~SKxmytI1s>yV(I}xm<^~45s`^Q_Ri4d zvOM+&V!*>0?z(%+3gszn@p;px%}R4F988^4*ZAwga{Q}X`nGcI@@>m%%RPy6yYS1s z@sj+{tRz`~nU$A6a3)c0)H41q+s|DLaq?onYbm=_MKa78b`sZ3qC{=CWRxU^h)9zV z+LTe9`s*w&?h zE$WZ#1c=n&;d{D7UfeE@i=i7Ui9v8fNAU+3LOv8(kumWx zAUcdC03aiTvgyX`Johg~l)LeEc@^FbG<)Y0`JI16+PfXv6X|%r3!;}p+;)yMa<~ha zUj@NlmB7 z(Bo_Ujhh*~hFPy73mLprwNyhgqB7!0odKK7s9R^3y4*-~ck>CNj)7i-N9f*e!plrU zCSs~c!rr7I7-a;JTSBQpDMpl1!c>5+p6Km0z%YkK1VPz@&W{M@M7Rt19N33RF;bmI zDa8Gpfm}xJle~t9AN)lA_0gS=yn>g0`@q_E`C(6S%c@U$5(j&BZfVRn$nTNw&s=kI z^+gyxkF_}C)lW8b?%UdzQ}tEn>=&+>+nC>vLH#HclbhjmL3 zNm7swskK2)0J&vFP6J(`97S2`SVhH8w4SE|1ih#3;?*Lkd{I;dbzogi zN6{f7m`w$PldK3Gd!?oVopU7Xf=y4H{`KDt3;GF$*{1ti3s&`9`pOrZ@2F?yM0yW8 z0rYQ;KeL!%2pkkkxLU%%ON20>TqUMa1r0U=q_0DGF319Nu@Fp&xU|r87!8Wa2KDN4 zVFeG^g}JSAzU-s@!Ta&Sv5!d8*eKxQIPs0G54X+S25oc5?$>s~gas88E{I{8LUEKQ zM1r~P+&|zId${%=PbeA+a*r@Pr$J5ryn7^E$lW8|tKOwy)kH<82uKv}Ak6w}5Fl7v z0Z`K}1O;B3Bfy{lV5UZx?iARM0Tn6u2!N*nR>oy^VeAsHeEUNA;5PZiOXNHMj%R}p zmW<~zrgLA?4LXuW{xrcs9|1ff3i!Rt2-vW_WwrqeK_p0M zRQ;Tqs13bTfl}F^O0=Q^Tmm{cIFClaCHIkh``BuQpSI!oOx3xkz&Jh4Ob30~GX6SW z4Bm?YBG^;>$xHdAYO;_l)RS&DUhLLdB`w2>L1dKBN;h@~Rnej6&(jQOSsCxR+$kU|K5DsBW{{P*T0nEn04`i z1FL6|-STID{OYSeV%rc_&w&H^)9aR8b@j#5rjM-HauwvjD7u@yL!p`tmHX2d61;|N zCZtPckh)m2Rz-MF+FGdst%RE$LBS{jy+pxI1&szACIL)sB80{i{mp@67&eFO9idh7 z*)#I(q~M#4%jNA|%PzZgwI`L?@%XyiWw09C);-tIBmXWhi$c>fem{Q^V9o@(uGc>W zFej0PI_!2O0PYgRZjD{i0PcY4hZAw4+l)+xVTdG{g9fu?Sec4bgQ^%&r6@Ipg1rz7 zQ8XE-HQ*+Y4#N=|uVx@Q(^q3Cff`7i{vMkkG>?|a^msF zPvAuq#Rs15UH#~zt9t>%zOr|5aPG9!yrIxnZ(=)kys4mA{_bu3(YEDRZCSAu(5ye5 zz6kP(!kCr;(>n0TXZW)gsPM1`Ka6k}XO>7vXVZrH5kfhV7sOBs>LqQEwM4`kK(bQzs_<4853;zB#nntTOS-{R zizZsatAi*?LUBQu{?yR$Dg0B&tY{o+ewC>>MHv7dpf%vnum*q=uF#UO2E<(c>z!>0 zHc&*;nw*j=Ds#caRSt%>th{|!+fesT#yl3+mASRZ-ZT9<0_l=4odZ4_^^kao*d)RX zI8REMQkEp4B%XK}59A|oJch(96(W9!L@N-{ajzmg020^{P{!QOu_xru$DYSm;5yvE zwV&M!O7MARYNQ2KEVQ73c(JWURV@-mP(kt^7!>N3(>K#@D#{gJth^as%g{HQ>C08I za)W&Hf6G70zmb>V)nCB1XmA+_ZHBR*`xKhGmbsX2k^Vdkt*O!V{zY!yBM}da%cN2@ z3|M?T0RvOYmWrgFX=F(sTFH{_%yyOxqhU;rs$Lg~m*9LA_N(v^8Bmdj$u1QcRpAd* zU#o~7>>mtlsOv!u22rVDo=f6b-h1R2{G;PV=m@A6%Eu6GRX&t%6CW2fTky{e_KSO1 zZj(>TugR^%CfDP~UOj;i$kXvtauxX#*(l$E=Z#$n*c<-@=u-s!QGu?=OhM@!$w#Fe zS%8*tWRZZk2slx|c{q!kxv+bVbGafmIk1jDc|g3Nu$Eg8`LI_yJ6Q z0Bcz~HbAZ;FUr?oNQcD0tBCyu+7*!3A6*Zrs-z3?QWp#^pznl3koxWCiO#d}1Rcl0 z7ZqbgA3+C=KsqD)&Dcg#{^J0-YU~s08_4e{;sEbnJ?_IVvS4Ou1V4lXF+|;P12PFL zAHWc3{b?SIgLhd$m*E%Xhj7czoyWPD(Q{2;^i#2*14_yB|0RUjwELxf|L5D@Yhjw}4?W*BIXL6@C7cPTDkh7S;ME6LLe_scRH zH@*_!)E%Nx9}4IBSsXU*$G@;~vb>7k`68Q6c5)}-&N#pRY7B94?4Wm_?-jU{RO+yR zi^$HM@{4bLqoF0(^o zyO2{f^E!c7Bb60X=Q)VX(n^HAr~+P<6qI5`$*t%g7?(_VJ}?#tt7od8U9JK;3Yav> zZ3mRm7|?{(EM%{e4|{Xkmi=zaUH4tNXMQNJ0N2XTZ|Iy?;qy(M-!-_XG{$?`wV!=? z?Wzn%QIDL{IT$FLIkPOV9zYm?-t2|EFxs1Df8iRk#!UStGwA}`ukSKONk&19cu~cw zV>Ll!y#RQP7?i|t2dHC0qd8%zgdQkLYa;ZWO2=|WC1MpBWkzP{VPbyoU0Z&)tj(7x zAI7x>d7=4xuDnm)>#La8xnV=+{HZ?t=4aPl=8Y{`#GM&iROHB5b?sLG`d}w?q8un$ zKmH+;$vh2F&?3Kk54%T2X0S6<#NI`$qP9zdsU?A^(MpI@1$k3ACVDy?1y_&^2!;{* zPslX_Uc*z|MNDS@fPB;1wKvHZF9@~H8y=q5(rNMS+j{8m$i95})AGyb&AYs8f**du zpu!4kRBJTA0y@e9Jg@+Yuz>j&SwQ=rSm2k*4-)_XPJVLBkKazFe?7!F>X;{BUM?0b z@KzQ4PRXQeJ1lDafT$;R_MQE9N=9>oO(n@H8Q$c7{1Fdq^gX+UfeAfs+HXupWl zLm2@C%<3agd?FuSvu5$8$7<`Q=S)v9eL`*+yNKKXsUgQ#jwH$-CHvwoUO@Rk&SZxG zlNqQ8=1gW3JL(){MeNc{haK}`AjZDR5R+MTad}E;F z^sld9J7?{cp*fN>+u~~W&FL((W!KeT(Yfg3?VHo1is#C{uHlCArmmqOpvM4MwCNxd zcF0S}&o|;KBR*=yDON1$yUY;o7PLrB2d0YOO*P@lsG%ql71ZcN7_5pKN+3Em3p?Kx zFn1N{F{nf1#E=2#bzY}f+3E7(*z}f$ylkpRigOw-xv_5zEqaJ2*n@NyU&m`yLq;5gxqLpT(~CNTf_v(7D)R-C!|c@N9$OZi zxop|Ynai!TJ&p@5TRsymoP7xLYM})==a*X0{eRHH4`;Z62!_7^3`?lpUzj4`UkUg- z0ee(<3c?E{JSgFb|gFKc9&^JQ# zq7nCD@*Ktw<7Y9!ZZ+kW3Jq@5^l8Y$nrAiSInea>pd(rgI_#n&Tj3)bR)!CV(8Li1 zi+;kE7Q!9iLSD#O5hjB)AnFxGEEl9i71Bw2P+0s8^5LlDKuczVeAtrKI@4p&(f*a> zgqB_1lbw;`oj)rVtO~_5XFCsU=H8;-&xfukx$p*P$ zcCD$5$!rF(p&AbI+8$t@2dRkz&!_e(>s3)?w{>?E*+=&2$UXc$5_yU|r6Z5>k4ogA z^p!JK*bSwJaP`ZH{!ot;PEKl4p03aaCvx9_rLdeeqyBall>5K{E2UrxcY=&0Ul4p zOQQ^v=~MhRd2e0?cxqvf=k>6sHg=L5SX2@VuG^=LC4u#zgaeAd0q{@wp8)?a`Ws=F zQ)m6Z_cvfL@xO65BaWKly5)GOyE)he&KkIzog3sF;!zy6FRAAiQ@Tjb=~^H5IO+T< z@Hvyl{0?$WAKE{Oen=o+#g4;#RZJ)%Y9TXN39>{1|Hj4yks4BeATk$r z;fK<3y1)mmPSKjCB&nP@LhTkrRw3#_IXWC}*?0t^E@1^r!Jl9g8lC>Pc#8miqwz5M z$IM@P*`J<0aM`wXi<0ckJ+TYi=GJBJ|MrHJv)bmTnL0O>&&0(y&R)9g@4Yq27Olym zPHoMqSl_dz?1Z-}!7Q3$N|kwaNJ}NRu!q3n75Wo9!9Nl^C5YxL&XHOI&j@AW%`{aZtgzfUDl(OT0VrPQ=vqCHGtH@@U zoMiQ)1*l0wujWWVbI6YEL6urm*?_F)Z9I5jkO%_tS2~Fs3AoUiJvd}%{$mW#_JGM}F>kPRYU&94^7RD!FyYBjl*;9V;G40%LFUL()b=n5r2 zbqV~OS_w7*a4_|%guoOYrC;!YnE-}{QtU+#O7Y9VufCKU@f-3Mym!|~AK`=$>EPxP>s1SK3-g2%LACxyUyT&e(zojle z#r}u#adME`jIvRlKQ;@BwY?5cY%$BF=%Pt1O3A9T#f!E&K8t3t!d&)g2c*|}qhLq- ziFqZn0W6v#_K{=;$eN^n1lB_hAY_txB$-q@NvPgEbtE{w>GBVRMX36$+EX+PR3w)qgLBEbui;` zuPoCZRDzhipu}@@2O*qOM-w@fNRAK2KQCJ--fn$$E$TS~N;qHarbNNGk>n_i=B zQ>(OXMqV;hf>ww1f)N{1YNJxMwJwvkR#1zzf$gokmq!c#M+9oBy3&l)6qfd$L!K63+i;Nn9)`}~u2-dz~im1Od_MitFp(Bkrz;*;{cB7Abn_M%+}`^$ZL z6+S6gdvnXLa*Fb;E-&@8ChDc=I1B2fG&-hJWWdrW*=hA!4dt8j^-_}uSO5)PTI2Io z*W~$XOz*tIv=jsa1vzzf=QfasC|!R*X66Jp4PsW1S^BsLe*c5w!x}=XPYAj&C|DqvaaSsD zAZJ5~2!(_HMa&6T;C_Sk(cz0m!Epkpm-E# zBs^<{-PChdTnebRq8bLcpny6aP;RA2rO(N*&sU}ni5jwFv(ACHj4fXl7c4Y)_3p%W z@`t4SHPKn6+U`c*jNGF~XHVmX<)gtDVC=%1Z~R0=R#n3yW07EusWi|kY~ zA=8V(&rA#jz<+|=uI%l99ND>T#~-)rY<&+iSMGb={l2UDxbgx4E-=@7gV) zY8-vtA7}Nvx&5sxZ{D%xSiA$( z`ZMk3kO`cq5RDn}Av#wS5_zqpg6a$~oLDsJWYKmVlsKECk{06|WA$Gq$v z`B6Ocon_{C@M(E1{xx76m&<#}^8g{uaRjXfC5@y};3NS-UIK*kDQ6$^(s+r|oY6&| zmj`Kv3*Jmtk&pkogFvDV&3_&wL+nAIUmn`#Ul`zU30G_(>1>9Dtl&0s+c>5y6;C(L zOeLAAcysE$RMO#bX}uoYq0QBLwb&Vrp^`4nrsW~CQJb3Fk)AAe#6*kfF&%0siA^v| z3E9RDeKur1@`5&phZ&5pQ%URHXwu&?1fC_#>d`E~h|fWVPzh?eokkyo38{?)+QX)3 zWve@X!ZQXQu)*9bJ+;~M$WU#=2Km26=P%#>-O80aH|(g&ySs12mP^t)7cAJ_5WAu* zYx$Pd^+6mrvZ~G3@xqlg&0CgSGkeCuHS<~vvYgc$uc@!WwyM~9$rWmfn?-C6b1Sz4 z{3||7t)(#{Jrw5#H6{rn$$)5O!cZBnPSRZ5q+{mR#eu-0MS;L#IcMUC{V1?_ z;#k=O6|2TSg!Lvap*j*O?;8ABA@>x~9UJoGNgj*09SS~5+ac#1=HS((-ul!6@nM*A zchsq9ZY97$!-J7I6(wI(k^6~s`H6gnNKPc3t^O%-5(MXhi3Pin+Q3NkyNG+^hd;=& zeE99(?Ry(08p%ulz5Um}lh3|-=h0X0{NrnPz9c^{T~T%Pnt^whuWuR@9d(OmtzHwF z*J>ww<%1{p{%{nktu-(GYtP&Ap+DbsY~&&N8~K}uN3MBzEt7if#e4s`p*)?DPsg+j z%nA)O+5ih#q>AhVt~S6-gcI`Zl6ovg$%08c8?V*1YaEiEXov-wI#e;*4y2c?9pUm5 zC8ak!{yw4v>f8lXYlO90o*l|bLE;p35$;$a+5PO)CH;-F`x+K5s(h9oyOAt^t|mXf zrq-8V!z7mlt6N95woa=q7(;`2O@3WnzAsP*JW&i)@n108!NRK{1KQ>nM4cZqI?U7) zP9$nUtXHYEo(;!fh7KwvlmkS$BU!*u+Q)>yzj#7Eii;lm_|%i({mv`#Gx(_u@^kWw z6Gv1BK}izxBizn05 zre~7rw&~HN!PF2>?y=nyP4=1g#gqG-e{m9*6Ow6Svj_5VVt!sna-NiIp$t30uXPz- z$(w;Q41uJ4F_7dIy-CkPF5J(USK(kfREDVnKpo_coObjcF`VgDJZ8l!r(faWp^~2S zAJ|!NF%ZG0iE@e)O{)joR>eU454?O(e&y-!@%&q7PKB6U)0Ankv0V<;|G>!Guu1-s z@%04eET5ie`LjD`x6cSvxRq^T7I85O75=S~j9E11Bgfems6&EWaqRy-Jzh*wwIV4~D+4!DqQBu(B)t zjZ>wm>ZuwgTgp~vYnVh6&NEe-$YN%xZh?te%dFR3Vqy;14%kUh!jh`pppp#40Tx>@awB)W!Ew69XVBYy_bfNc=a4Q|Q6fi&PB*w+KFb zR_;5SoR`wJuB^CiR%uni3unoiHXNH#no+VUp|vnSuV_Kb)b}a$5S@Gu{F0Pd=QK&qIwk6aSHcQMV84MOUWavl z2snT*(T*w3pAxfy30Nqe?uC?TFYG7!t#n?g#VCNf@<_;uI)I?>DH_7o6-+Ar>m_sF zTD_>V+|+n|mV4%913e7|72W-eJ#_JL)27RsV^vbqa(B_}gz3E*zP@EinJ`XV!lpB2 zljhP9ol6HLmrQ=l0l*updgqmf){OJHLqqwBe*l^4!+3%PL7YRC6Y=G!r zgG$ggn5mJY!C}x4&>C^c zmt_ev!yzKb^7wwdid_em#)2~aF{+RmDuT^OG7}!sbrIGFIF-Z&Xvz^(D=8&#pqMBo z-N5AZPvFnzM!DE^H=o&e#yX?r+PtW3%g>N~>@{Z(bG2s=GeOM6=U*|c{`a$Mp_lWq z5%Oqhg}v@jBcs+f3eYK~zLYu)6V}Q`q`|IvQ=y~*Ccp7tyI_WUX0S9sB?iV}E?Di% z09qy{f@{d@JD%r#FYh>1e4lv@j?behTpkBe^CF)BYLSWBF#A`z zOZ&a|4ON#H-)LP{-6{XLro>~oR6V=R^5rr4$YwvsLlz9=Z?to)ahS_R9o&{y5hOUX4;k=8x$y8zgf( z8>elj35CR@GNTSvw6?>d_%I-_pwq&oIbjMTIZ~`R#;Ineh*7>-UOxK7ryoDIRX+OUryn20Z^@Nc;!^D2 zAXiNsfsL(&l?dZt9X<)N+w3SBwfGC6+}T0Poh2xDhDDFmhIWft@>_;2#A2`+U^%zC zD3usR>!1BvfK7|dbp}1ye3<-=1Y;@QX%rF8z2I7e3o*?wyr)r2V9*FTj0_hyXYDw8 z^Zq&Vhhqmelg_cD>pF^NmoFnf+_ruD_7QxMyoQ@guNg4OCRGXUIxW$nAO+_-3|t$QMAWD3!y| z?s7_g*RYGYVqpb|Iw&)xb8^UB$C?zI7>8;^iMOAN;t7 z?HKErU{|15`S|BRuS$hpd9Z53Z~aT3&BtqUH|LT)X8eTtu>u10^Ib^4_ylnvemI`Q z_t^$)!#2j&ZgPl2rtP3f+C529sz;%!PbK;$sG5-Lt+UufOI=!um{u397o+Q3UK$5c ztm$c(-H(u(W@H0u6jlBc$*CEGY5$)H&rn2A9r8aZ_DMYP`PhLgNt^8bMO9DcPUeu` zv8}K~VMQ_yNypDJ_m$?%Bu0p?4P~$`BFn0)+nBY`umJtP5Y8BGd;h2@+M(>gLj=+K$ zV11N5HK?noOP`8y5jggk&7CgaB;OpsOO-FYY`T0~Qvk1#x55{`C?H>t*92r(1ebx@ zL=AXatDs$4&kwdIK=Tgtfhe;S)vnQNH3n_KW)N)wI=T#V0q8@BB2aA(6plD~;J~;h zpOeq0WoJ*L8@_}(Tk463aJ2i;WlE^p2QPl`EQ=%J`O+8A+fRY?6_yjjY zBDpBxEaD=wyU0h2^=Ochy+6OPVy@Hva@0$G`KzZ?F1@RDaY0MrMY*Y|O}ANhrKeol zzvI$sBllbR973PSA8Ffh+Qc`@KBVM8~ zX%&#dq%=TjtO8kC86CI-79kCC5=@ifo4lCB zp1Ab$9zGlCal+4g&L}j}Vs73%ZN3ae^hjD=-Q~wb-H=THO1LwkGRKE!3-5QvIYJr+4-RLjCn^IX& zSXkgs1Gq8Fg}oEuR;yo9K-4JQ5C-Q$-aOBb6DXkEF295KOz@xIqV!sMO;jBXL@Dor zKvbBee#T3aJBas8u)t4TG11Hf@gsQtsXeHxi>J)(Vt#5jsV*MkPLtX`-}t{Fb#nWY zdG?oJ`8N)o0P4If0xri@c-{Cs;0C~D4+E>{vVJAOSLwZyPVB<#C=dM*!F_>pzZP=5 z%pB^`s-+$+lC(O+se6=l)WEw}o>iCvUT^{B@wyA>{KJKGWfRa&_AqE6$TX%!@Kozi ze}3|kZ|4chu9(m$VNTAPpr|5O)C#mih*2M-AUjFX8>Y!P2GoWD1rbw*{gX6C>VG&U zusEsHlNFzk_3DIxy)vN>4P0s9WCuqE;i2PHI#T(I1V*g+E48N+pDLY%?_1S2a zLLdEOi0M%#6}=md!+f$C=5uDvnkCQ1EWMAsiMPS3AT&<(ZxIr_Ok+XHo5$9MFEj&` zu=+joF5uRU_WRe23-}Q`-Y48`C)F6|ohavCi8@azz; z&G-3~A#tiQK?&iS0+^?=S?RpbyFbYHs^iT~@*}n~ul~lHk0+~DmVeIg{7O=T2*m0=8_dV9|7Ey18#}{HyWt2hzmguObBU2TA#pMpmR>V6u^XwbF9yzT zQ{F$vU+N`Zo|N-5c@h#;P-@0-Fi%8tEjTBOb67tV#IOU9YNG|NRs{gd0u=oPAZY=G zTc=Ck01)q;fiP&V0!f93#+8+c5|=ww0Pl(c`;=!VZMV&6`mEv0taVtE#vC|6L2^-e zJkVbQz@vtUfize{R2EhxXaWo`fl$#kCX|f*Fy}$>pc2N*voeNQ?4AQVH zj8T2e&OeVmMvnL`+OY$tPQklNQx-!T@V`W0R105sD=ozM^&yslx5L7n%4^k>D)3TD z4*)dszPnFt!p<0@4qlTG9RqKmlX$Nyy$<^GAYs%CDWgyc%LoDvi5NnvjA~eOr$AN; zkm$u%2-qt$3PeyALLzEF3Ggb+Nx?tbmZ6ODE%o|)v0DK2P@f>rieLBmPE~Bdsh#A# zJH~!b49AZGjA%gwKN{roJC_LS1QL=|u)-0MBtSb-2?1I&4P*uxqGSdv(H?~bANU_a zS`#e*lH{RNm6hbp`Q$yoPGHATs_CdRbQ@&O+R-w9^%JI}CRl2&&`L}Y!ZL*UnUkat z#B9t~4lrjlX`s4F#W4Y_5&Q4}9>$Cl=U|w*zz%Bwss#~U5}+7_7KWNsV4)uUjFPto zK!LLqjv&HxL%82oz<~=EF%aBlpr#$Fk&jJnz@BtpG2RqCtzy+>+vY7dk%9+~`fh$g z-i_bMRv*OMrqyl&$jkAU3T5fKEIJe>ZJ4lPn6NNqLQ8JkAnO#vcfa>*oHYf1`PI=X zc)D1ApZqYv7swXoJ9aW(cxc&jn0@Q@G0H4J?fS&=k?2b{@Rceyky-nXD~4dh}=wK7LfG zyDNYDebS1NMC_JaTzROOhOP$QdAkQk*FF2 zLTg11*3yx}eTi@wkdpH71RZTw2AX89KlhQhmK?}yJ|*8sg4>T)<&Nznma)$PQy@jm zNmvmy3f1|&eha?O@|Xq6LJX26WaEL+hzP4AT4^pakqlr2B(Xw^VO2CnLNUA^L)D0tBua-10S7~VL;-fL%S%+>1$U0zp`~gM2r}&dXbUiu?V++7~bWZwTtN2kLA_Hg`(1oGe z45sZhiibz5M}fsD>H!hw1sN3514XAQHsJ)blf1v>+!m&D_tEq?$}4mc%99GV6a5xi z!8TzjIHGius-yFjY|u5Ok`4Iwq`YbO)i^hos^LliqhtI_W*5ANMgc)942rOTm<5*c z1LmWPQUZsF0h;>*{HG5~| z7n^Qqs6O$)@!dx|$7FoHyzDwJt%-&IQ3jZ0H)KII`h7XXPl%IX$TE?rZ3;0uk(wv7 zg&HUo7vQxbZ}*y3LJ-RkfOKs{$4h{}Fd`!gE6h+ZS5GA*(sxK9Do_-&l^Gmv9ou@{ zYV7iy%w31$3O?_-o+6}pY*qn&A4CRpC9T^9m<*6L;#;QPt0sf$t!fhDc!?t+twsuI ziG*xgi$=W*R*DUXtmuSgxPkE$si!Hy)YUlFds;CH;Q^EH^kLD{iVwcdktjJu+>01G+OCd2wQ?; z1z9#5|4((_0T!Y=I6i_#XbAObEZ0s@MF1w^p{Mlg}G2ud%uXd>9VCPt&N zYwRudXo$TKQDcpoXf!64XzVc>W%-_&yN#kr-tR5HzgK3@ojZ5t+$m?yoOxyj?O7}p zncCP|S>~gri(@U!q)Ll{7MuktAKErqn@{+GIaA9Jy(O(qn@R4Zo!fykT}dt+Uszqq zNqT6?Mr-zm_u}qFf7N?%WjD5R{-LiISB8)}2wq8Dwy#>+|3xJO|t&AhBfb1%`030+%?gYQ$*(QzR`5`=?#BzYbAXm&JNv0ARYi~oi zabht;!AV51W+GX>8Ea-8>tHE!V6eOzau2plpnTAo3Vi8CGIV{TJ1cNx=YUbSmOChW z4*Y`Gr#QK$=O9+pYHx5;k3!Z`wQE-;J9TnpNaY5T;DFGO%8(yUB&|X_%R*kw1*g`i z8P7#Y4HCnalY%@wr=!pf5Mc6=u zN@qI1go>n9Ugmxdvj z#m7~Y=O!F12!UQ^pCH8s5exX(mZE9>dn^;FH zS-#_bN6yj7C6;l5N{@;|Hwi#HC(X)|sO_|etYJg|+Z9u~rW zk6(OkU(~hB_*w-M7SSwQIs)76p$|tr`3$5d#S9ht(j&5 z18q5Ztjr9%JkiwbNZUecR57F-iIE`MVv>a&3nZ+V|waT`YAxV-R#vZklGp&-wXI`Di`UYvj=nvJ^G}CB$WRCow?ce;L z+5;c^LL;{s(Mil_DkH2+P1r=vL=J7-gymx-*u2N`8mT^{#-sK?5J6D72l9+&%gilo z2Y#;R_|?}(`1?0Vd+dOWJWXSAjj+U70wgAA*I2bmj2%YtkkY{}g?8@T=`FJ~TiBjJ zyoX+8gV`V&&)-Grut+pT;=#QE(5=Stvrn#=^u{0_;Bb z;jfw#YTA&MI7NpA_5oyYapP1o$R1x$rEgedfp>!VIvJabCf~s zH;H)K{B=Cw0Qe&tQ5((Hv-cJnxYor|!-?8Z&P^DH2yB}S_6@wWI;s1LI&lb}LqCaS zW@(O!!m+y1jPZ(aJUFd4L1Lg}LULrds0+bir(P z0bj|Vg=|pl6q%bun39bXXi?RjjIT_O&l;D|sZ+wZ%$^zC&any6={>WD#HU4L4I|H_ z*IbeO!j{86K=8mm5w7uAA`oxYND9z{6zl4wyfog^Ssrhv5Filx=_GstF=XnI5Y%}5 zhC9hGKuL4}N&*Y!sz0VQwhO3DZ+hqbZsBq908hL_sUFxez(7F?M%O&TNsbx#VmDaJ zTBB`uW0IKEi0Gs!XK7TDZHzQ2$XptfBnp=%C3wjal2q|B73XfMS>@1J)P%4t*nn>f4e0pQn0V6K_VYY`1f#~LL^cIz)PKJu>+|!xux_$(w zqn-S0YDCj*0JQ$HJ_FKr?^Y)jW_`X$J>>OA#&?=IuWx_BJ8H59q<*OnB8g4z*s*{A zj*aza5`wduNMDwG`elwc=eKuRR}jZ8`59pR80)N$Y@v9}GuO~PsqyMut36p)g{U@qVzxt4Vikwi)XvB5>t zcO4?k3|I{(x0BeIn&E5;vB=t-ku{PlV(hHRzP9oh>{k+l{q9hjxryhR#X=0S z^g{n%sKFEi2UVywiy?&-#h(BJ2trur*s$R*ZVD$xWWR0=GN?`1}k>F%6 zb4oC`0@7blbz^KDWwtRg*g;r9=Ow!%L%$U4+#Lj*59w$HtDr6L3j~A)+@_8)vfvbT z>Dto8#anR6@Qv7WG*4nVhwpw%P#c#Syz%DEo<3_SO;W;H>kIbx&WeXV_MxVKv=Y8fd0o%RV1`zD!cXHuFo`yxL4m*-NFn*#^LG(4jc z(X@%8-mFTC24+>f$e8R+vnoO#LyWa#S_K8CU%>f~W>(M^-!{AAM5f!`I>l1GhU|b{ zjNJ`{87P0|RK%ozIp12eO7?FhOZIOf^EYWY_nIJxcMEyF3~b#%1_rz}1GQq32moCk zQq%XpGC@^q4*9JaT5EdwFLG8t`HZtlwR3!2GiE-6#mUSR_9ELBId8D2HD<;}BpYmM z2{w+{gsQ$}Eym7DY9}!_qd?;bvdhmH3A|0 zNHjW9XO}~|l94)gpGQXn>yvhJC`KWZLZ{G=(6I=PN-ok2$S_RkVR*ePWpy(~gM|J> z7$&oBRD2?L=`5jW403k?a#zC4>B_*D&KywRl}5hQc1V3U(vp~i6IZq4ME-ls1~g~B ziWo&&fD@U8b<)nlD#P5#EUePUoqy!aZgFOpI_SG%P!%b$F zWDgrHCI>xmU?81>b#89OG*`wpag{Y`VPX-B#e(rR`8HfDn-0XNL*`=5jV5DtVuK#K z0Q;NKgsjnYELnv0cPC_F@4d%>Uhwhs6a(^{yVlWLp6Jg6>PB3 zA-=^Jrmc;r`P2gV_i{%1w{k}OKgtWybk``SpzN9IBx=(O%cQ1RB!xROZ^)C z&D!ImlKD9OqdFAyraDxw8c_v>ipGCdm;OnuS{xPagz-+B9547zYT8D02 zi|*1vuX)tQy}TCq5GH#F{3TphdPIc~FfcX*O+bd#wUiy(`pQl%UB~d*dR<5JTbHih zt}fo%If2po+?GMTGR3Tb8Ri%>BcgS98ItR@F*7li=2A^=OC31-B_?dc2pSZL z9zkOX*<(6v1Z?di-~b|lscQg4ISelpkv6iSUq%%uDpqIP(}70HVAed!osc& zQpWJ14P$0B8?+x?A3IaS=)YdZj@M#ntQcR^403dub_OTL+*E3AEz}IbvO#jb{b4;JspxCIJ{=>|iPnyz zx19(U9JG0=U85FSz*5%+NONlkIhmd!(|-gY5o2j9vy@8AL{d7{P5>qZqazdp3IUck zIx7iPUyIZ+WHp+(^&IJ?UmMB>D_HU?y(4jQK^c+;YBNJ})B zbcBibhVeLJed#rf%+ahAIBx)<^NB7mu}_m0KVt(q?nQ-nwx?+qZk{_5N(d}wXinsWWRr)Z6FvRK5HXxNb_f~2G`mcdZXPK z2GzOH&<~Rho5*_8W`R1?2If~N{-(K}tp<@e#oDrM0Fbj!U&03Li5oL3LTx~wBsjWA z9p!Jtpu{w`mo}DLSt{i!ITs-xi0$*_W8~aY`F=TfUH(YU=^-jAiwFx&z^MSb3u)m_ z8jmn`2UMlb;2k{~*(6ht(*m@oE^5WlviSP=70o?i7+(v=q8X|m#~aWjO>n|k9|N8w z!No(~Af_b7%}LtIt%F;<8=vp?p&K{TZL=Ha#wnXN3^lzn~D!?Tq-HA7H$w6=SsMaOWE{AA?6@a-f2Mt?cJ zrDKkN=lGTYsYp)$t+BtMW&DlN#aqT_+EE1*Gb2QdBhxv;k78mHtn4Ar>f&NzY%JtD zY)m6+3u{aoIvN9x6eMyV-6Z`KqMV|W)}dnzO!LM#8O?T`zNo{?XjW;Z7PM0)f|p=+ zPWXquTT7F@lL%Iq{KH|`m`@dG9`ji7S{i2u>uE9QWUaph^dO8ySrLzS70|^6T7=VC z%P5Ug5U@6PiIx@tk+zo768KB#na`LWL#p;nCG|IfzbVdXCh?fS-;udZX>tOFIa8yh zMd$|1D2>I1%p|tCmd3gwZMs;i&6wiI7!r>Zt|Qiq3N+%>(_+x4wf+*&LR!GdbL&_k zEh%E`EfRQ^Ax?$p6%8)~Z?0kzGb=KKzqMH4!3_Q$;t=X@PIwR#1O_X@$*zo}IGxf8 z_*;tK*U}0TG=goXlb4@DnGZNv_xH0tc)wk@Kg58FDl8-&ns50 zRrbwNE4%0C<(G^oP$O7TL4HvxdDby2wJ1L?J2F2fLrW?NorpN_R2k@}3efud5`UcT zqedesf?L9*G99s~r1Y#gQB(@^Z#7)(|7m53v2EJD3pQue) zNJYs6B5f76Mys96zSufbi02*rmLj!Wq%i`&rQn*RUIM}&mUq0Ln>R$jZ zgf~+0Gz0zx;4@nrGF|(QT6>>LV8wekf5=YYLclSias0Jd(?g)~0k?6N-^)CPMhp639gup)KW8S(A!4 zvrw9?XgwnJxmYi0NPT>>91@Q(C7*k(ORJL>KTyYJTmur(|^gogvk7 zm?6w_#CjKD>xQfQT=yPnp(HQz>%CDw1d#{zrJvy272M?@Z6Yb_hpGLPNUuTQu@o&p zkS!zXrQT2&ovbH$R-fNmPqC=Ay(m-^C2A`Q#=^pIQ8!UY-832u)Ax;igyBgy@~x~t zYIfaRHazKu?^C0m3~7K<<7aVrPTFYwI%9Z3bw{E>GBwSaxs<5uJb?#LrRd>BK$S_L zb(&&kSOyy=j?jjdWx;a5;aFp?nCzBhk99YWuq!nNGRGNcC0F46lo)S#0QJ`dJ76@! zEUg#Bls85oKIo$SP}NoFr~-fqY=dr~Efd59qx))yy&u9bUTF`cU<5KF5*#8s&eMJetGAMw6lMTcRJ?~ZN~tW*Y+zO} zi#%vk1Q<_YtZna+xtNzibwF^`$W%sS?G<{7H~ za^?}Un_0z5a6}b$B4uT)8EcM{+OU5xYsp%%)~pR{i(@+N$r*`kBb?&q#5%JsI4Qx6 zRkH4^2kXf;!6BZ_u$74y+k*ARHrhU{FYAXDlPcC9$DFlh+u*44w%F$+mBqjq_GgoUV;+EmMc=~#AE|7bS=NYxEOlOP zc3x?*BtxB}E>TO1GfMLqrQcyxv3?^ z;;ihV>_Tx#vARetrUAt?j70Z1KPNR;Qkb1qT7slf2dRs*#JNaskT^HBFf~(Dl$xo= z8^!8Elj5xGyo~%3NiqE~EzZw`e`%p8HAkJvr>RTCgR*ngIpPf5mvC8XerW1Y@yOH> z*?D}Hx`Z#m--!GS(;=yunb~=%IXnn4(pG1f=BjfAFA%1ArFp^)2uU%X56KddNK6XU z)SoL*%Swt(Bp2d0N*mt@h*w>I_>vQt4n zh=j-@`Rbs*6>>H;FN6A9q~<_Z&VwF2R8783PO^}^MT-n$SxGvC{UBo zLZs&SMtzEAC8-$dS=qY0sB)3RtZOJP1_q2o^b+>xvwc#Av~SW{V+bin-7&gDVH)mg6@u`(T>IVH$m*1V z9F@%Qx*WC4aAzshH-m?{aYkFvx@LGNN3Ap5DM-~ax~-i@a@0w~Ln^}=NNfg@mDmfg z?=oZ|3pw}^B>Ts>SY{3`p7{h93mG{N^rw)4Eabky=DGNGtrlrcYUZFn&LU z6lTFWHVXvYGLwnKx|$rm2s>4Nz(3;0@l*I&Sc$ffUyikVn{dCK--EyX@IQ**D*h~g ziND7G%s)qnUlDF0wgKP}2f3#3uSJbTN>MYBsYro8+gdRj;vGlhJZgxI@;4J-C;}>M zC%(1{`&_v)XP8Uq>8>Exypek>dO{X_3%MuOzr*95Metq1Y(q}%!26By%me+R;XAQB znor@=`15=gAItaT$+@jq!GILS%u-wo_P1IEpEbBR^a{lKupKdx{HvW~-pDa;Ud6ZN z!}v(9A2*4Q#MPDW!T06+gYt&o0{jl7{^VIEp5@@3B6{_}U4LBO^om5T563kQA%v@T z%({5JX`Du}QU2$=HOE-=VFc4?jyg&xxa?%XFh-{!u2aI;z!V zB{a|R?dh*6H-%U53T_H6gy(Gy7mbg^N#euB+aknpglUZ5frtk@P`*f-Bz_Wy@zns& zT%?xgy8IGeb$pVz2#-d*@k*{Ma*wCF4a3aBB}ME02rc$)^%Tc2qfRw~OKR9m{9)D? z?(fvyM_jgu(gbzKGMA})mb$m7i-TL>zn;3Qsk@c9HHRsEnz}fy9ARpxyMwwYMZ`?x z5X<~ZU4Y#|WAirnJ5YKXb-$r*1@#vZK5O<+pJ|lm0P5bNF5vu#0V~kpE~9QYE(UaO zE*fqZZVlY7#AP+?IpT6E)GcS?vJoUa*O<8M2I|t-*tL|_5SO_}=?T=GMO?f|!VBN> z3-wt;eXdh?6mgk9iHoyJ2+feR$a;Uc$Eo`{b-$!;0CCwP#3c*IKvN&s=?LvZU98(g z4s4;c6?JLuabpP0`BN7gq=2@ju5-L2-aUm_>)&vumx2HZtwkx4^*Ol#9 zA%W*ydU|dFqsYj~9t3%gd+j?ctz9z6xyF!TRDL5CVzFk~HNrhdcEQFy=Sq37hqfOE zO}-~;S_XzX!=c+wgEZR$DSDB)j@s~y(Ll?#h6epE-V-tBkj89EUDH!P>Z$8`>V}^B zNl)F>Q$OpeUns?+7gAuYkoDucz+oso(U}13g9d7M_hh*%Cd5QrlC8F+U)+x$q~yvq4=!sJYmEiAUc&oBqxQ z^*wy&VRWM7=rN^;rFTAh7zXX&bHuzFmpMi|>o8{9z-+|a|7P?)R)~v~q%C@679~Q; znal`~UTp#B#ke?TB`zNCY=l3NFVm4j4AmA$%0y2fsqv5^qy|}lvchOjO0^1Ss!zBe zzTM~_NpA?86aGYyBOEv*GG{*iu%!gP-UDO8woC+#&m6rehqTVZ6-wkHs5$iA3!vsv z>N~yPB}%=Gcd&`EhVgoEf2y1p{0FPy;MF%KF-Ts$2g;MlPexJ2x9HYp>_*3hO)R+ z?naS`Y)iJP-9R>Gyw(PyuAtNL~M z+UZT-d!hLxZpALmqUFl=qk1j>Z28QA0YlD2W{h~SVQ6LFD^Kn%oZvij$+*mIM}~|{ z^StO1cFltQ=+4~3`+PGOEXZm$|J!yx`^c;p$mFC`&}rM`G5gxx?>nc*rs~xrb4z+`cC4B!^>SyDW(~{^+S|?ABrLHe`PIryndz#t zWr;}-cZR-eUp7p1<@wi}#(bjLa`MBAs~Z=kgnjeXBhwWgs%?_-mD`lVY{vhHBexlL zMcEov+2^XV>vgC)$f=PnucT?w0$LM@b+1>{#06c-q6)-&KW% z_Fvn!Z?>jMZimXMb=SnBuKG_8Ut(D>c(2Af-Z6Xs>u;lOTJ=}P|C;vx=5>vZw+w3P z`?Y$R^^~R-=_~%|>-^Ha@}k|--W&3w0!*sQ9bWu0C`aDwdBx-2$0}|gR=rmGODDN} z(xP$q3ohK}kH=i+wN2?MnI-~jxC1PFjI z@DIRkpiUT!pb``kMPkDx^zpY*SrPGKicK_N@5s&@RFa?PZ>drcPZJxH-s+6p{JadE zl)~0p1}S7To9FMTau=jjW8>!;YGt47L3xN(*)ysmTL0Un!mbgcFAmt&DP&EX4gObN zHVup!w*Qse;$xi(AD-!a=lrxoL*ja;J)6%R>V7FEr&W{o>V2m?cbRqF^0S<@TaQm50woO3Qa}kDw)I-U7T2K!t?((M1=+6+=gXqL}C?>AC(L7P>AeBwpA{t zhB5`on;%~}++#tnXulQF>5o)ce4OB7Arhf;onX{-sEm1k{iY9Mn>{)8RgaS8{hF6} zmu{O-y*_TvaHjj+Z|*t%kbOk4eAH7e>gYEUt6ub}I=G}FG5=9|^xA0V!QA5uE;#Qt zThd5A=esMe8(WNi_}i-D4KuHW%n1K<@K?dPXD4m;tp4%t#cb*9NfnwK%-%Ln{}}bs z(%Mgauf^PtBZqhu?h2lH-9%nFAnRnsn2tj-*X-T3cSf6Up755VM*e>GdgPDqYi``w zpn3k|1^Kpuiyz&L-x<7ol<)cQ@7tKA1#wHt2769^o{~OuOaHwg-wm9WFs^ay-$OrL zT5i7ly{X%Lb}jq-#QH1Bo%>Xc#w%^*-e2{8*75qgs+%8qWlua%@YB=P>rah|EE=kS zj2Q_Tlctq1sgmYpR6{Z~?p?)@GylU@4edh}3`r9Z;2+Q?Fpvlw71R&hwkEf#va$aW zi6f^K2TGQxdwkE{IswJMK|uYb?5QZ)KKZuulJUn%b`MP9+lDW!oMHe>`Z(cT@Oi)zLpH_f)oXF-?q) zcQBQ|+}LEZB0%tPN>@Z z*yG+B&z15P2VZ@AsDJzP@MAtPX77&}|7g;~!iuQ=H&<+vKTUYm^!iWAbGH|~JLmJ( zzFr?DIVB7>4~Tx4nUnu0c;Q2CJs@Wk06jW*<$Oy_+ap6{-qZ z8niTULhG!Ol7e=vTBR4|_~q)9WWV(M+*SocvWai2f};G4()5zzR#AP>o%q2^)m0}Q zSymLLYNra;-K)3>KH3O}4I9=_gz6%rm`dt2C@OuTTAWU=$hldZduaZ5x#p8Xk9I8{ z+4PjpPeJc5YO|!m^VHWrUP>8ZHN>Wul1=}z=nvDIM@RSaw)Z-J=Jsdaryb>IZ3<_% zxSv?@^5PMBtIcZP-0q!PBo>W}?{IdoOUJaeBT{BOIyP*|3C_!J(XoXsfBDi|diDOi zpMDuR{awpReU@Dv7(eXO!hvg&LuQ{_Z|x?&d#Kaea|e5Uxq0^wuO;J{XC*7Xuc>lb z>M1t)xq0Bhd9xa=D<9bW&Z}`PUC)S4%s5>x|87n9sEE?D*RBqGI3;C>#l(!6+xP6+ zvwl!t_fG3#vu^i&cdBj5pyBstrSO)sO&2v$&b#v?V^y&B<<_EtU7LP7xWt}=^jQSy zGhUEBmV?da$M0vFuDANWlUu)$gO=CHvj4uCN(MfvwyF^Swkm&Bn>Im2^n~E{f1vC1 z#oSkMNosDv-_><~2+Di4`FLb(q2uvWUEBBB|L1z!Jw5?@t>b$iANyPT)|X@aKl0i+ zJL9@r&vAPWc02Q-_{GE0ucsbcb750G$D>87(-D^w zMNUI^G_n$_jx<^4lbT8-Y>RJ1)Yd9ZVO z&6rVP4=#wBb`Kd=Vlv=h%B2ZGKBbk4UtL3_qlRi0<>ZaLe!u<9d5a4b?|H{NrVR{O ze0FS)mL4ftou*!EHO{i<)|WdPPtSSK^fQ|mCoI1kuXt8Iw7BijPev}U8YsCh-ZG)} zt`~EX$8{XnZ~UCREp9$ttMV5{T_1es!)7yv2=b(vZY4{lB5@SW2W?3xpl; zn;d3S41zNMPLB@rzHGC;+k}~4E&O#uXve6d->MqvU$Dhtt`-WZ%U9iomc(MDWOWU_w_nr1^;X!rm z0BAWYT0TZq=d9Tr--2XoF7H%N}m4cPrl#L+(C6>BG7 zyOS9-{h7zyg;iUI_3hQ}Vo~%~&*umZ;$(y2${<-`JvP0;I#rvILLR8J64^+**I z5D3xa?@!gE*21knxmA^I`){a6&9O`fBRVr1*Sx4~fD4M0(S158JN4<&E;ul{wQp-x zV3coQWK?JWrYcVokhgI*4CKf+`Su~wP1#3XG&DOM#<;&2$~_YKZk@ZoaoM1zUo=bG zX4CDIYR`V_;MZm9HYSJLZf%nF+(fkBWZtt~kKcDq^XYuK+sa;TcAd-lt$*nDvCF!I zTbcR=4(W93VAwP+lUwVUeJ}R6<~|R?h9$2&UogL0(m2a+H~YSr>~ibZ7Ta&1UMxvl zUDWqr=+V<1cHh|2&obwi&%Zl#ur#RR+4vh}cf2k+J$|z3arugi-|@?r*o}J?{^$A| zI|Gg{e8Fcz&aM+S0i&lM{a}+rtAN*;dtJ74N_esHPv1df2etTk+}Zxi zJdM>UgFv`5@A)4Or#-%vee<2H9)El~W#rY*{Ay`R4N8pvA5E#GxF9|C-=Zn$Vk&7^ zSQCSRUjLKquhRgjw32ri_TKEUuRjl5`Mp>?&MooD!}+U@nNDxD?PQ0-3ll~SbGv%a zVQa;xn=j`-k#*|2(ROdP&y)6p()vDm@L_YSk3#OBx;(MRq(26B@qE9zU4-e9eR6+M z`K7>}<_no~Q`ZeoJ+fm`$3^Yi{?Kn_^UvB{sgMk?UA5IB?!b(&sZY}8zsUUU!c%9j zEdk$u<1hW{l}A?RxIfPod)#g@!-IL1xKFaFY^mLzHZQ$qxW%T4mree?tjk^bY}4=h zh0b&xBF$dAzw4-k@(%AY!BGn(RUIz1+819e4X@tw?z3a}gAQh-F719kyr3$1i%r>q z^DF!tS7cnAdv;_8@8r&Xq+uudmmS_=swVeI^)DAKfyDX@R%}(-#Q))tjguJ-Bn{T| zrDfl!Z1ug97wd1rqo08|C4H9G!Y$?f&5bPVA{eg?7I-s%h06G;9b}3AMUg)Y0B7^t z-!Yr9D$P0cd~QZX@1kz&cm1mBYZQgKe`i(n(#B&P>p||c;NxY@#x!}OUJsCY{-C1N zf~*lr;|d7#v#1=a8kWrYe#+v_Yj=x?2XseUo?5JNl1^%?>?= zu8jBG^IKd0pBJ8tJ`%U?vy}1q8xwv_-(DH!6zUjx;fKpDgQgtvJ-vOcd`15@?K^FI zF{fjf<#yuVkL=&r`tvHPe)NhepOCoc27?{D*ak6Rt>w|wMu zDD>>lVW#)H)NBiUws=Rc;m^v`cdS{kBw*C69ikJ@r~kSwcvP!Duf|#&`mTI>j;0+G zf4S<Fqw#nV?UvA+cd0wFL#v<*Pt8W`NaUd2nx4fMX& ze#P@$i@rbgiogH(=Fngt<0=A;id2!}!oY}emQSh@9Y1co^pE=!Zr*D0&G6_U@n3C9 z?|M4X{{!3dlY4q@2vpqd-+%JpHvJbbx}FjJ`|#W@qL_B!H#Xd!T`+37OHB8PqOZeU z-STY<7M)r1+2}d1o}P&J?ro2~E-j|Doi6@t%76o3|Nh~}?lm@R2V6bw=vmPFY?oJ+ z$D*$6ZW2EGS>IQi|4euzILmaw)&4By+UanT;M_IB_EF$KB1kR`*KX t?dCmi>U_oBJyY9`Y~SY9(O1iNwm8u4ki%&8;Ob9~IcnWOA+EXjd z^ksO-!XXQsK}9Z3%mRW8;_&Tt?mcksIs44#0{ZLkZ+k9h*wgy&wbx#IpM4s^->3`t zk}!^hu_Q#>{^lc<1PcjCB$#b~I~U*TLNkT4VED_>IhA?>=tfZ-2A$B2H+ zZ!XHquE41y`yic!Ro5(W1e*}tjmX4F1VSr_6_#*vXm_L*Xxb`)RTIL(Q3> zr!Yzhfc^Ydv5P2lEMR2+k>Kv>Em{y%Z^&vHGK7J&u@eW@idNL>{exOV^PrF#Le}P| z1kPuifb(aMi>X>EAPJ&)`HTi@>#qUU#q5tZ2~@ontX?pS=@uyY5F?`^C?SAopN0jD ze|Zr^4j8E_Q6#{|6>k#(9H(7ITOd}f9>7Wf=?s(nM3EpxNG=Lh$M*xg;9{(g33=3!ku(CI< z5aitgwXBvEK6XE&pO~eKjC^1vqn48Ct}uVtWu*Y8^`i!Qfiw?NtpoFQGqH*5x~xEmd?{_U9GeWI+E(gKbcR%r#cJZyn{pfQRB<-&`o``E14m`0%mSXW2_8lD*$ z!at?j4iF;%I(^2me~2-gi+=fEF~U~@B*FfGiPUS@*QSy&IUi!GwZ1?j0j+Bqerb_t zgHVcJi9K+NG#)-Ec9ZJipcnyA{nuFDG-h*whD`^e=F|YS0UA1dD6QCr0DfNiS`u6T zqnXonr&C6{fN#Q<3eHpP04XOL6=DRq#r;D{{i|vDe9$xjzZ+<%!e_x10)P02^@8UQ3 z27`uyI0YNc{(;lK{8c|j5&&nver`2Oe?$!sM%V!~r)-Aa zXq^aRL7NZ~nFvA{<_fl3-HJ{ibOv!@lzKy8>qjkcr$Wzs0L=j;()tm&ib~Z2QN^=? ze3vZFZcRA*lIB@17X1G0)~#FGBWtAG09N}#gr}PmxHvU}!qRHh*}^(Pk12nOTn;qV zFEM4V+5nWQ2f;FMnm@pZZh)))Z=&!i@^9+g7)(KK;6;Sc%Fl&4S6XqM5yqv-3jPZYdbI$~a%~~~8)^ZR{mol9?XIH`dUx=FjzkFfTMU;jSHYiWN*FSz zD?GjU-A!K5tG%~mnk+1N6<|Jk8LnNwDY%BQH{y{3=TCYTZl)U0SP$40VuRo>0zpqB zx|=1|CaPWx!sby7c54C%T-R@41=e!T-@7S{?Gwbbex*2SDTUup7AY@0 zrS#F={Tafk0cxXNDFyc0fK7w^Yus3vkeXFf3KpiSw*G7LCl2b{Kq!190e5x~E!}>3 zYZYq(WIFb3tl@{kzsc$Qo1^gi27!wT;j>7;PzH%d3Ke(q+}nmmG*>PBnle@2g!M_6 zpsM;N^?FrBDR_ALsEQK>zIx#->H--aG_`(y`DqX=3`NjLfNVyaK+ZRSP9N;wxGn$2 z&Du)yc6WkD?rxZ7T}(oWs%Iih-f(vpdmE~_xENAXtwwcpbhK<7*adyRKbKmw z6-1az=1hQ?2cMRGV+qwgwt9&-gt^f5exMuy;(+(Y3kx&~(LuytriEQXcuA6A&3lE@L<`ZX_s8{1V8;gQyRTSpA#J-r^A@%1 z`tU{Cg52|BLp&Plb zT;nil5OdTC9P(kGZ`K))A_ADex<*j)ZCvyb;0u}I5&fxTK<^dyW%v^2D@(S4n}_h8 z;gJE*ImAme4HSM7vIh+bclcpgg2 zuTyJy$A+cw(}ty>17@(ce2bn)SQzqpI1TI?LjLR5L&n5G>}2}H&y@SZB>R4~!rA^u zE}YG|Dx24rMz^i`?dRtwN-!33T3~l-KBIwXz}7#1@?b4m05gTIUM2e{D25t`SR9Dh z18OjLr5T!07JH!JpTAG~#g;}2Jbhf@>`yO(1L>C~?{D4Q4aN^>r78`Cl*jVGDNI*< zIJ$o6t8nm_%}T2b1&=DjsJ)czpk<2~)C49iiFNB61Cw4`PQ8YLcz9s2=(E@-qxx3@ zRyg~K@b{+`NtU#=zZ*O>&{zV<5$|%|MR@0#A)-Zv+AZsF&p@qvCn+2?>`Sm5BzLbM9}z(w;m`az@RbDnV`1iTlW6&Ic6Ab19mSyupL?RIhy;t zUtlo2v0{&Cir((d@XQDkNI{8ka5S)bwY8^00_;mGlq@d#9iHZ-i#7(@8dBJ^XOE;` zKnd~A96JEZ-h6_8TKBL{Ez}TzZwR8AGJ{P`*$BbH1iZZkhCe!ugcl_foE;l3nTPMb z`wn7br9Gb5|Dzp%*mE=={yM|!HYpi+aa21y<5SAmL~~1{Tg5 z1D7&SaxY>X)@T7z=j@KASfBVifz-31c7UdR0!hZ$ZC0`MkF#YCTRv|5h-AR-!ET&1 zXL%x{1*8%k*RK_HXyqxHHacjQED;*QsQPgPz!lEQU71i)E}SXkr+;s+7SJu!eprfr zhNVlFGPVcCjgF@2)2GXN1aa8;>GljoHU3B97TEa79J|YHyY^oa+%5ua^=h)6w%~uH zUJdUe4B0A{5CUsuESu@8C54cCJ{<~kEKpfqN($8no_%|*Y{K2z_`vZvfBgq%#cUVV+fNtVOlh~2_#wsH#!=~%;T=cXuE5 zJiV(HMiT&S0lV=}m%HwP2dDlEE@qsBi)T+Tm4J?*;C7uMxNR3|24W(E;I0nMG-aUV zYBj9doe7l+S|LB}KwnpQd`Kv`Y9PU((?ziRa4z-Q#f%ehfdri7LGlNMw1cqDQQ&Ty z9$q?o9AsP4_>XCx;#C8q2@nT7Z{c_%{HP(dWX`*g!Bj}zg|kd$APIuocCOJ1EMj^D zL7#ASB*-nUg#RXAU`U{~0+0j`4QLHM9?H6*%IX`iJ2elET1xC9MWS2MQkb%$ibtVi zS%X5`3DW=l$F;CML9h#m=Dq*az-R&pRuR3iYCpJo2q$>3g3hI<60L9&u9FHv60{-} z)GVl0{f7s8!HCEfiiC0S)MeOvJf9H=t!OUQmC!yr9lXn}f;t`=0ax6uek{H@g55x$ z4*qagxF695O+?c?LWI8eM7|y2@`!rJGNGEUAvn=?w8<|vmuL*W8{e0I$pUrY7&7{U z5q9dobMImB*zAvGAG|~=49QShQ~+Ln0nnynBq2lX@~DU~To>pKZ35lx1cEI-EAJ{C zAi}4%dRyrNOLF1i-@al2ejcCht_ng48G8tUmy%a~ls^W^WQphGGICttW^LJoyTL|mkhg2*Z zm-1|5>whvyd}q_-j)O@Uq^cr{2vJdEF?I|QHj)%uyi-#b6|vX@{Uz^D(*LrjT1b}L z=J7+JihTp91|@};qVb5s8FU2s1hj(4!DGSGw>dKeMBr~Vm4vD_|KeH5JoX1vlGYa1 ztq&7qGtNOs;W?O)yiW8w3jg=;LDo2BBF)ZBtLduHtJyNFvt3uE7hf-Y3DOQF@=t5p z0#+$Ri)@?x!HIPXSlzs$ueB6hIy4xpgWPRy~axPbbMugxvY5(MvM z34%vHax$&Mq!wYFxo@s;85E>vhgHuTg#9Th2E0nfpu#uK`E&N zBy%IqZv+~Dm7IkkSXb4yYZS0k#0bN@gmN0d#GB+1gFyXHTk;e5Hm{v$zg}HM3TT~~ z!$Mb*!ZW4Hx2~TnBdrSWVc|sjeNVsUR$>st(A4!Vb(!bjv3=_yv{2|6s&aOP<-?w5 zj&eW(B5AoJ8cZL%15_PlMfr^OW6M^Jryf2SPyT1AeDl1Cu&b95*FV@qS zc~OL&bw#&(F_Dd`SHWp8!Uhmn|2{s2CDSTMD8B+#>~9i!3>~Yv04_ur zW+bOsmnbaq$dD z7j^>`5rf9S=x5(?M1HBbRap*=UFBcs2)vRDuGg(v=A3`1O~l9;1g zMD5BQBx2U_KNw-V*aYt8?nU);XvN{ZKfn*4&*h(Xm}}Sw0ti0i^3e1}5Z+5nI~nVH zx_0Uilx$uIfv)^xKQe-n4ev2WpU2zyVGny`q>8yp1G!k9ZvJdHm%%NV*o+&z*!TU%v-l56*<99Te^~B9eSH z#zhF=O@!|ps&0(0#hXY&?zwbWHFpC4v_qUidUGszZ7g=$Lg>&lT2o|ta#=>S020Ax z$`WD_Dp}YejPzF3RVZ2g1~l<$4qlIG+qFz_h05Hx~n; zE(-g9b^WIF&9|z`p)}!jXyoESg!cwHs$bo6b;nAmK79zhyE&2Ikiug5h6aNH|QKzuuvH^+@4HUKU*a289;@9ur&qXXAr zPk?i`L6Z01Dk*@9pH{;4^C!XWzGtDS%>70~tgVz3WW&l=M$;~--U&=HeI3u*eN_Z8 za?)GSWxxX(GGW{}8iCzGRpNT6KE9VxbfX^XJC-H0FBsG3z~UV`o5< zz)<PAaJV|3BVZ2LU1B8lp3H9L?g^l>)eyycMpW z`HLY1A4mu!hf~+Pm6Ol``4o$C=c>2i`0v~Kr_G>pJ6J~)hx)qs^e+z7QD)R<8_96< zO6}xKlK|4%IW~eL2&k^?!VDZw-VVD~y=_bdh^DIz^MN=14-W4M<7bOayDCe@z(GMB zREF^x;FA#TfK_v-lVFA|71LS@!T3M&o=0KOBl<@uMz_RfUM|qRO*4ov`9ZM1JGeEq zt|`1&SPqv5gf4;LB+Kj>MEp;2)KND3{(mI0fwy@)>;g~%khIAnE^e9J!(iw zMtIaZwDN}gdIdxKmdf@nI(RA{e){twTrR6pbiX=i@7%U8dlfQLllZrp!5}+8OHB*> z|A=w3K4ZFp`pOgwZ1LjV9LPK@_(Gcn444johX7Cs9k!SbDH zaO$G?{(g=cLLT~Y6$$^LUDCZwOs&MI9>7sAeGDx-M5&KZBVSPMzdWvcoe7_dHHoJo zIW5n~;>e&8SV-&NwemIEMcsy=+C0w(o(B+dKN6sQ?Yxk3n@C%g#m9uhfKGv$o;3ms zzdH))7wPXBIzkH;UOWw(KcKD#(`^W<&8=VsFk;fj_KpgNbOkny>Dvaz^f7SOP6NtG zcd%gVQBj+~5&Zw+Md~zl0_a>Ps8&+cox|go3OrQ~p+HnSe|T|JSN#zg04oWOz`1-O z35;Cn#A4&ThoSUx4*#?nbb18U%1N*Wz_VEkc<8Nf^hK_q#+rM(!u-d2GW~x;0cwDc zHXnxaYeGMP(OPiFC(|MOG%gJ{sTCDa3}4OuDyhG6Cel)@WNu<1(eFjxPB%kG*ovpTeE8o~NTZAl zjM4&UNbCP?!-up>y51O4lfP)N8i96*82J=LjCjhhRQR{P_HYz*Zh)$vkAf?eFn9eS z#yHdpscOnOlM1^&qpr8mH5AlMfbK;25hLYapj4ir+AQ^I-yCL)>26ruj>g^-Iq=1< zlawp^v>*Zr@V|yhfF~Ie7zxZ2TKn%m*@x)@ZYR9|Z3>(`Pw~#`oCGZ+L%^-?Jx;r1 z1|35|-2~`{1W@n_wOWiH(3S*;Zl)%4A))TLo&s3QU( z1fIb517o4b15;`v)am*7cYJ>^1sb>MQhg%n*d!kl z)kbSs8YDLTmI2@Xo}oLQ>dG?se*SpcB{S3^0R-y-oLxO&)ZG6HBi6uz6;p>mppTp0 zx@u6!FR6g%m;Wkphq8*wKYIjz{o)ncB{S3^0p;%96Xh$D~?Mi_QC#j)Hj87Ee}^qfHuyw56LC8{VnyIOWjWR`q$G;(1PPTR>IkR z-_tHxK|7dhW#p3T%VfWz+s-N4lcrsKJi~10B_5TR11TX<*W)RVv5TIF`ZmJ`k z_gEho&`JK&@wY2p_&f>D=3G&HKMLlw`D-|17TtOucMFZun=d_ccY+T^A)H)2V9>Oc z%u!9MBO*g#cC7C5G)UwYm%~#_c8eFDg3_E!NdA1f)GdbW7^;T=(Lh-sg769ogTBwI ze_3S3)M#ke!bfkJ8XOjEO@W_N&nv#aG&d9eSn~#4uN2*o0#}`efdQY8G5mW0EL!#$ z23(%s;B2iXEgECn!o)$hU!A~laK|L~>{r22itwrcJqU9s-;%pL-A-Dl@ zJ_!Z3W4UZ1Jg6lA>Svs=$1g&%8|~umkdKHxfWk*j5YVx&g6OS461*DQlR4h5*s?DJ z)+VMA;mbEt6nN&Z8{yo+Z3<$BO(bj-xrXniArZ1{zh$9>0N4~!=W zKQc1tGG-dM`Y7MoV`Nk)JUOfr1o^7}`bT}?aApCl-IK-~l_2{_BAg|{uPjzHU2Gvi z$p@JbNPsgS@yTC=909PUrKl)i;na8Zr11QXnDlw;CWBr0fPU zqLfuw1u6!m>KuWs8!h-UBIJtVeCCM8olfW#K8r2<6Ji9wJy*4UJO`UH8ij_o}YLjj`zj@kZph=mB&`2f}(tVrlw7`2HNO9(vrfPx#07*qo IM6N<$g6XpQrT_o{ literal 0 HcmV?d00001 diff --git a/xiaolud/0000/weChat_avatar_modify.png b/xiaolud/0000/weChat_avatar_modify.png new file mode 100644 index 0000000000000000000000000000000000000000..44c8c62c051355aaba340e9782f245cbe0c8c289 GIT binary patch literal 8934 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 Date: Fri, 6 Feb 2015 19:14:18 +0800 Subject: [PATCH 2/3] 0000 0000 --- xiaolud/0000/0000-second.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 xiaolud/0000/0000-second.py diff --git a/xiaolud/0000/0000-second.py b/xiaolud/0000/0000-second.py new file mode 100644 index 00000000..ae86ce93 --- /dev/null +++ b/xiaolud/0000/0000-second.py @@ -0,0 +1,33 @@ +# coding=utf-8 + +from PIL import Image,ImageDraw,ImageFont + + +def img_font_content(img): + + image_content = Image.open(img) + # 定义图片坐标 + font_width = image_content.size[0] - image_content.size[0]/10 + font_high = image_content.size[1]/10 + return (image_content,font_width,font_high) + + +def img_modify(img_font_content): + + image_content,font_width,font_high = img_font_content + # 定义字体 + font_content = ImageFont.truetype('ahronbd.ttf', 30) + # 修改并保存 + draw_instance = ImageDraw.Draw(image_content) + draw_instance.text((font_width, font_high), '4', (255,0,0), font = font_content) + image_content.show() + image_content.save('weChat_avatar_modify.png') + +def main(): + + pre_img = img_font_content('weChat_avatar.png') + end_img = img_modify(pre_img) + + +if __name__ == '__main__': + main() \ No newline at end of file From 2569af1e002e11487bc8b891132b925bd6c5bf6e Mon Sep 17 00:00:00 2001 From: XiaoluD Date: Fri, 6 Feb 2015 19:22:23 +0800 Subject: [PATCH 3/3] 0000 0000 --- .idea/.name | 1 + .idea/encodings.xml | 4 + .idea/misc.xml | 4 + .idea/modules.xml | 8 + .idea/python.iml | 8 + .idea/scopes/scope_settings.xml | 5 + .idea/vcs.xml | 6 + .idea/workspace.xml | 557 ++++++++++++++++++++++++++++++++ burness/0000/test.py | 11 +- renzongxian/0000/0000.py | 7 +- xiaolud/0000/0000-second.py | 7 + xiaolud/0000/0000.py | 7 + xiaolud/0001/0002.py | 11 + xiaolud/README.md | 181 +++++++++++ 14 files changed, 806 insertions(+), 11 deletions(-) create mode 100644 .idea/.name create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/python.iml create mode 100644 .idea/scopes/scope_settings.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 xiaolud/0001/0002.py create mode 100755 xiaolud/README.md diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..d8654aa0 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +python \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..d8210482 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..9c8328fb --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..614b3c13 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/python.iml b/.idea/python.iml new file mode 100644 index 00000000..d0876a78 --- /dev/null +++ b/.idea/python.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml new file mode 100644 index 00000000..922003b8 --- /dev/null +++ b/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..1415580d --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + Python + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + 1423208759222 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/burness/0000/test.py b/burness/0000/test.py index c94f806c..eea3a012 100644 --- a/burness/0000/test.py +++ b/burness/0000/test.py @@ -1,16 +1,19 @@ from PIL import Image, ImageDraw, ImageFont class Image_unread_message: - def open(self,path): - self.im=Image.open(path) - return True + def __init__(self): self.fnt=None self.im=None + def open(self,path): + self.im=Image.open(path) + return True + def setFont(self,font_path,size): self.fnt=ImageFont.truetype(font_path,size) return True + def draw_text(self,position,str,colour,fnt): draw=ImageDraw.Draw(self.im) draw.text(position,str,fill=colour,font=fnt) @@ -24,5 +27,3 @@ def draw_text(self,position,str,colour,fnt): test.setFont('ahronbd.ttf',80) test.draw_text((160,-20),'4',(255,0,0),test.fnt) - - diff --git a/renzongxian/0000/0000.py b/renzongxian/0000/0000.py index aee19fc0..29d0515b 100644 --- a/renzongxian/0000/0000.py +++ b/renzongxian/0000/0000.py @@ -2,12 +2,7 @@ # Author:renzongxian # Date:2014-11-30 # Python 3.4 - -""" - -第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果 - -""" +# coding=utf-8 from PIL import Image, ImageDraw, ImageFont import sys diff --git a/xiaolud/0000/0000-second.py b/xiaolud/0000/0000-second.py index ae86ce93..825c67f2 100644 --- a/xiaolud/0000/0000-second.py +++ b/xiaolud/0000/0000-second.py @@ -1,5 +1,12 @@ # coding=utf-8 +''' +将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果 + +添加未读消息显示 + +''' + from PIL import Image,ImageDraw,ImageFont diff --git a/xiaolud/0000/0000.py b/xiaolud/0000/0000.py index 4ecd0a80..c1544e33 100644 --- a/xiaolud/0000/0000.py +++ b/xiaolud/0000/0000.py @@ -1,4 +1,11 @@ # coding=utf-8 +''' +将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 类似于图中效果 +添加未读消息显示 +''' + + + from PIL import Image,ImageDraw,ImageFont diff --git a/xiaolud/0001/0002.py b/xiaolud/0001/0002.py new file mode 100644 index 00000000..e3e281d7 --- /dev/null +++ b/xiaolud/0001/0002.py @@ -0,0 +1,11 @@ +#coding=utf-8 +#__author__ = 'Sean' + +''' +做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? + +''' + +import random + + diff --git a/xiaolud/README.md b/xiaolud/README.md new file mode 100755 index 00000000..68d11690 --- /dev/null +++ b/xiaolud/README.md @@ -0,0 +1,181 @@ +## Python 练习册,每天一个小程序 ## + + +#### 说明: #### + +- Python 练习册,每天一个小程序。注:将 Python 换成其他语言,大多数题目也适用 +- 不会出现诸如「打印九九乘法表」、「打印水仙花」之类的题目 +- [点此链接,会看到每个题目的代码, 欢迎大家 Pull Request 出题目,贴代码(Gist、Blog皆可):-)](https://github.com/Show-Me-the-Code/python) +- 本文本文由@史江歌(shijiangge@gmail.com QQ:499065469)根据互联网资料收集整理而成,感谢互联网,感谢各位的分享。鸣谢!本文会不断更新。 + +> Talk is cheap. Show me the code.--Linus Torvalds + +---------- + +**第 0000 题:**将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。 +类似于图中效果 + +![头像](http://i.imgur.com/sg2dkuY.png?1) + +**第 0001 题:**做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用**生成激活码**(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? + +**第 0002 题**:将 0001 题生成的 200 个激活码(或者优惠券)保存到 **MySQL** 关系型数据库中。 + +**第 0003 题:**将 0001 题生成的 200 个激活码(或者优惠券)保存到 **Redis** 非关系型数据库中。 + +**第 0004 题:**任一个英文的纯文本文件,统计其中的单词出现的个数。 + +**第 0005 题:**你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。 + +**第 0006 题:**你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词。 + +**第 0007 题:**有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。 + +**第 0008 题:**一个HTML文件,找出里面的**正文**。 + +**第 0009 题:**一个HTML文件,找出里面的**链接**。 + +**第 0010 题:**使用 Python 生成类似于下图中的**字母验证码图片** + +![字母验证码](http://i.imgur.com/aVhbegV.jpg) + +- [阅读资料](http://stackoverflow.com/questions/2823316/generate-a-random-letter-in-python) + +**第 0011 题:** 敏感词文本文件 filtered_words.txt,里面的内容为以下内容,当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights。 + + 北京 + 程序员 + 公务员 + 领导 + 牛比 + 牛逼 + 你娘 + 你妈 + love + sex + jiangge + +**第 0012 题:** 敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」。 + +**第 0013 题:** 用 Python 写一个爬图片的程序,爬 [这个链接里的日本妹子图片 :-)](http://tieba.baidu.com/p/2166231880) + +- [参考代码](http://www.v2ex.com/t/61686 "参考代码") + +**第 0014 题:** 纯文本文件 student.txt为学生信息, 里面的内容(包括花括号)如下所示: + + { + "1":["张三",150,120,100], + "2":["李四",90,99,95], + "3":["王五",60,66,68] + } + +请将上述内容写到 student.xls 文件中,如下图所示: + +![student.xls](http://i.imgur.com/nPDlpme.jpg) + +- [阅读资料](http://www.cnblogs.com/skynet/archive/2013/05/06/3063245.html) 腾讯游戏开发 XML 和 Excel 内容相互转换 + +**第 0015 题:** 纯文本文件 city.txt为城市信息, 里面的内容(包括花括号)如下所示: + + { + "1" : "上海", + "2" : "北京", + "3" : "成都" + } + +请将上述内容写到 city.xls 文件中,如下图所示: + +![city.xls](http://i.imgur.com/rOHbUzg.png) + + +**第 0016 题:** 纯文本文件 numbers.txt, 里面的内容(包括方括号)如下所示: + + [ + [1, 82, 65535], + [20, 90, 13], + [26, 809, 1024] + ] + +请将上述内容写到 numbers.xls 文件中,如下图所示: + +![numbers.xls](http://i.imgur.com/iuz0Pbv.png) + +**第 0017 题:** 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如 + +下所示: + + + + + + { + "1" : ["张三", 150, 120, 100], + "2" : ["李四", 90, 99, 95], + "3" : ["王五", 60, 66, 68] + } + + + +- [阅读资料](http://www.cnblogs.com/skynet/archive/2013/05/06/3063245.html) 腾讯游戏开发 xml 和 Excel 相互转换 + +**第 0018 题:** 将 第 0015 题中的 city.xls 文件中的内容写到 city.xml 文件中,如下所示: + + + + + + { + "1" : "上海", + "2" : "北京", + "3" : "成都" + } + + + +**第 0019 题:** 将 第 0016 题中的 numbers.xls 文件中的内容写到 numbers.xml 文件中,如下 + +所示: + + + + + + + [ + [1, 82, 65535], + [20, 90, 13], + [26, 809, 1024] + ] + + + + +**第 0020 题:** [登陆中国联通网上营业厅](http://iservice.10010.com/index_.html) 后选择「自助服务」 --> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年10月01日~2014年10月31日通话详单.xls 文件。写代码,对每月通话时间做个统计。 + +**第 0021 题:** 通常,登陆某个网站或者 APP,需要使用用户名和密码。密码是如何加密后存储起来的呢?请使用 Python 对密码加密。 + +- 阅读资料 [用户密码的存储与 Python 示例](http://zhuoqiang.me/password-storage-and-python-example.html) + +- 阅读资料 [Hashing Strings with Python](http://www.pythoncentral.io/hashing-strings-with-python/) + +- 阅读资料 [Python's safest method to store and retrieve passwords from a database](http://stackoverflow.com/questions/2572099/pythons-safest-method-to-store-and-retrieve-passwords-from-a-database) + +**第 0022 题:** iPhone 6、iPhone 6 Plus 早已上市开卖。请查看你写得 第 0005 题的代码是否可以复用。 + +**第 0023 题:** 使用 Python 的 Web 框架,做一个 Web 版本 留言簿 应用。 + +[阅读资料:Python 有哪些 Web 框架](http://v2ex.com/t/151643#reply53) + +- ![留言簿参考](http://i.imgur.com/VIyCZ0i.jpg) + + +**第 0024 题:** 使用 Python 的 Web 框架,做一个 Web 版本 TodoList 应用。 + +- ![SpringSide 版TodoList](http://i.imgur.com/NEf7zHp.jpg)