From 315134eff38ab3a3e253d4633368a77bef848ece Mon Sep 17 00:00:00 2001 From: hugovk Date: Sun, 6 Jul 2014 00:40:27 +0300 Subject: [PATCH 01/16] Test ImageWin. Not much to test, as it's mostly Windows-only. --- Tests/test_imagewin.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Tests/test_imagewin.py b/Tests/test_imagewin.py index f22babbb3..89e131113 100644 --- a/Tests/test_imagewin.py +++ b/Tests/test_imagewin.py @@ -1,16 +1,36 @@ -from helper import unittest, PillowTestCase, tearDownModule, lena +from helper import unittest, PillowTestCase, tearDownModule -from PIL import Image from PIL import ImageWin class TestImageWin(PillowTestCase): def test_sanity(self): - dir(Image) dir(ImageWin) pass + def test_hdc(self): + # Arrange + dc = 50 + + # Act + hdc = ImageWin.HDC(dc) + dc2 = int(hdc) + + # Assert + self.assertEqual(dc2, 50) + + def test_hwnd(self): + # Arrange + wnd = 50 + + # Act + hwnd = ImageWin.HWND(wnd) + wnd2 = int(hwnd) + + # Assert + self.assertEqual(wnd2, 50) + if __name__ == '__main__': unittest.main() From 2de67423ebc9d1c54b6445f9fa2e351a93414c29 Mon Sep 17 00:00:00 2001 From: hugovk Date: Sun, 6 Jul 2014 00:43:22 +0300 Subject: [PATCH 02/16] flake8 --- PIL/ImageWin.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/PIL/ImageWin.py b/PIL/ImageWin.py index aa90b887b..300d118c9 100644 --- a/PIL/ImageWin.py +++ b/PIL/ImageWin.py @@ -23,23 +23,26 @@ from PIL import Image class HDC: """ - Wraps a HDC integer. The resulting object can be passed to the + Wraps an HDC integer. The resulting object can be passed to the :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` methods. """ def __init__(self, dc): self.dc = dc + def __int__(self): return self.dc + class HWND: """ - Wraps a HWND integer. The resulting object can be passed to the + Wraps an HWND integer. The resulting object can be passed to the :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` methods, instead of a DC. """ def __init__(self, wnd): self.wnd = wnd + def __int__(self): return self.wnd @@ -79,13 +82,12 @@ class Dib: if image: self.paste(image) - def expose(self, handle): """ Copy the bitmap contents to a device context. - :param handle: Device context (HDC), cast to a Python integer, or a HDC - or HWND instance. In PythonWin, you can use the + :param handle: Device context (HDC), cast to a Python integer, or an + HDC or HWND instance. In PythonWin, you can use the :py:meth:`CDC.GetHandleAttrib` to get a suitable handle. """ if isinstance(handle, HWND): @@ -109,7 +111,7 @@ class Dib: necessary. """ if not src: - src = (0,0) + self.size + src = (0, 0) + self.size if isinstance(handle, HWND): dc = self.image.getdc(handle) try: @@ -120,7 +122,6 @@ class Dib: result = self.image.draw(handle, dst, src) return result - def query_palette(self, handle): """ Installs the palette associated with the image in the given device @@ -146,7 +147,6 @@ class Dib: result = self.image.query_palette(handle) return result - def paste(self, im, box=None): """ Paste a PIL image into the bitmap image. @@ -166,7 +166,6 @@ class Dib: else: self.image.paste(im.im) - def frombytes(self, buffer): """ Load display memory contents from byte data. @@ -176,7 +175,6 @@ class Dib: """ return self.image.frombytes(buffer) - def tobytes(self): """ Copy display memory contents to bytes object. @@ -204,6 +202,7 @@ class Dib: ) return self.tobytes() + ## # Create a Window with the given title size. @@ -235,6 +234,7 @@ class Window: def mainloop(self): Image.core.eventloop() + ## # Create an image window which displays the given image. From bd3e54938fc925b31fb7c05d39a5ee23281caf33 Mon Sep 17 00:00:00 2001 From: hugovk Date: Sun, 14 Sep 2014 22:47:43 +0300 Subject: [PATCH 03/16] Made with ImageMagick: convert hopper.jpg -colorspace Gray hopper_gray.jpg --- Tests/images/hopper_gray.jpg | Bin 0 -> 5353 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Tests/images/hopper_gray.jpg diff --git a/Tests/images/hopper_gray.jpg b/Tests/images/hopper_gray.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db3831dedd1c993cbad60da9d0316c8ec7823170 GIT binary patch literal 5353 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 H*w_ErV?`qQ literal 0 HcmV?d00001 From a2e729f487578b8f011c045b5da8cca0504ba35e Mon Sep 17 00:00:00 2001 From: hugovk Date: Sun, 14 Sep 2014 22:58:23 +0300 Subject: [PATCH 04/16] Replace some lena with hopper --- Tests/images/lena.jpg | Bin 4788 -> 0 bytes Tests/images/lena.tif | Bin 49470 -> 0 bytes Tests/images/lena_bw.png | Bin 1943 -> 0 bytes Tests/images/lena_gray.jpg | Bin 23013 -> 0 bytes Tests/test_file_jpeg.py | 70 ++++++++++++++++++------------------- Tests/test_imagecms.py | 36 +++++++++---------- 6 files changed, 51 insertions(+), 55 deletions(-) delete mode 100644 Tests/images/lena.jpg delete mode 100644 Tests/images/lena.tif delete mode 100644 Tests/images/lena_bw.png delete mode 100644 Tests/images/lena_gray.jpg diff --git a/Tests/images/lena.jpg b/Tests/images/lena.jpg deleted file mode 100644 index ed01c4e6769b3f01b13d78c6ee4e99e123d36464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4788 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
  • c}~ zhB}qCoJt4s`U1{o0bgGz)a3G(vbn&2xhQVFFis=SfVRWQWZT(%-|0f%iE8k4Y2;{W z^k8vpPd#p5ov^P@?dYbh`bmp^VtaGSzB#?GpFB0r{(gJqU$@lu$?k=!JgMiinsC2* zr28fmQ~BiMa_VQ8`jwL2R!8lZM458qhPb47w|nTXzhT~ekml<(#6`ghnK^^Hn@{_( zF6OX+ViF_YRYrf3rRh_J(t9_#SFT6?)Az*7kLj*{)VsdKyDtzf_s}kGgj-J`|AZ(& zy!M!M%}w~oy^hJ4%T1lnOHdU>n;S$sts=dg*Mx$V5>Hs^fvtx6u$RDplow)w#6Zr! z7z$hrWg1}xLI?{Cpqh%H#}I#={5#2^UDObWzu^Bb24Q~Sf557t3$YlBRwrN}&xBuo zN)Xyd@))Fg!E|hl=|4j89j6CCj;e}9FT`Lb1d*y_qOmC2P#CR(?pdJ#j=*XLQOcp;r+4+! zK;EXGIxx;18Rzylrd}K7e`nMDad+d7=2fY`cjDu_)reOrF>$MqdQ?vRP{)2>%XnKO zJS>X={=G~>%>8?jUwn)B-i7FLy_bbsNFW{6rku(WSHy@FQRHD|)VqfCw+)5W!QP0! z{|DZ6H_TTzsn=d|T>Z(nJn=W4VQxG|Ubzn{Al-U`ak+>30h-Tus>r12EU~sKYc@A} zv5>ddo_5@up|9lwdEnoO@M%W*)rCSJcrwBbHWxC1KQu)hgRmyvJ4F=m-^?UU@IuQ2 zAA$Wt{ndo=hx!-nAM#IU{O!PaIQc^(8s;64|HC-=ckQ`LiI@?l-y|dH;rRToKs&vJ40a!J~9N%CrG{6=M*Q66t?OtQ6#fIKvF8WDa?NMCuV zdu_-gCEMSSPk|X6tYBU6cWj}6J96?b_Pt-~|Ewm|;ewj6{%ynnXZjp zcFVBGmBhC)-a%QEJ~OJDj!S<2jC|uB=Gud>@2`b?@hgen!|k@B^L^F1aqz=@{oCnA z`#>G>&b6@bF5#}ZL3t~990cVp{q{4;&1W!M!QXa=2^ab9Gpg$&#O2G;FCO=cqc&=D z<_qE%3Zo2ikyRnxtd85Pj90{(AWcputeH0hX5 z!f|l=p8~JD#lBCff?qiKw-Wqe7X|VkB|W4I=Q+iT1pfnUK?cd5+Xeie+H$(d9$oks zkUPPE9_nInKJ)wtXO9T%e>0P_k;a4-DYb;EhX|O>9ZSUa3Bq8or7er!YcDt(ta&qD zztda3J1jexXxg1@+!}2#k1KZPyG}LA!xiQJ$_S7@SW+IShE5iTU#rL7txcY;j5#!- znE>O5ylBrdzqhSA*;1b$>{jnlKfs;z+UK!t*7t_ljML&EL z^2H^e-(KvQrQFWk*n80ho3fCg{U9^9#-q4bLU$!r0@*H*=EHAw7D={t=QvrMF~jE7DF zIFm+H0L0UVNDp~9@b})x#=#;G@c-D(2Nk?;i30wxnF)nC@Q3~n*ncD1&)I(i`-k`o zgWyi=EAT%siv%MFywK!1AFKV`lG8)+f}(y}7%|BWg+*vk4SWF@|56-Aorqr(lUGwH zszd^ePGJ6`N~LvkLOWT(>H^`L{>l&Ib%%Wwmi7Wedm%I*>|=HIX~oV|np$ycuW{^~25n|BU@`Dd$Xce>X)-TrxN@~6YO zk9)JfKhgf@hh4nC|I2Ild|aO59tQPoufnuiOY z%uCYNXTp$3Qx$Jfq*xk6TXo{?2B}ph-Yf_Ho*=Cla3jI3$XAUKkB3>_`Yb1Z&WBFk zdr(2EWB*f|>c~F}yN1s-LD4N)NZ4DToTKwt&WKg94l-{{>h zk84Ie9%DgkI(UHWJs*u6AbEl4E|#K!KddFp#iJLJaZ6$%Y)H0}Jx5}Y+cNRLjn}^) zsxit_4Go#6qxE}AnYq70-(6-=*6z->9jdyZ;i(&vZ%ws zlnteKHO3Er`5WA=+nwoozc*TkDoY```rYo@>#dp7t%;-UsWaQs?_X~#ii;ora5M1s z3*>!okn8DpQEna4*tp&f8B%W=0m*mQ26rYfHcm~R5+2#-)s;Y6{4+1v85pi zoR1b_eN~dZA+3|>--2<>bNg`q-N;uR;g2VnUYi-1gBt3a7S4xm?%Q^bV!~0UaS`LO;RkZ@hpxh-mhAo3Tx(;FsWJCp zKn|Iwb+CS0*=QYZvi`U;%$v0ouyKLk?f==T;f=q8|C`0=_3? zm18vj2}W=~)@zIrrlbVT2vL(!5kq|cpWD?;LqcU(=sMC*{MQ@ve;k^#7&M>DF8F&dDEB>~$&9(=MuWwYORf-t5#Qa4 z_{K%-A2gAjwpx{=DoxSXr5YO~PWYy}1d}WgelEZ_R44XO0y+sky?Fm&Qs5xkvk&=n z9{N8yIN*N=w5@c-B*{Lm=e&LKh#>*)W4zEq&S;9vETy@qJsz<-<`G=TFSp@j@n zgQ2AWt6zO=@7L`q|2bK@D#G+&oaE;W)`djnl2W>i&JrkX=1!SsL0|pViF{T4(xx z+MN2=l|Ex#%5n~6R~~Dr;8|s{=WFdB=M-<2dw~D%4|J!-r4#*8hJesh`N=1Fw*gf)`LZ|mSdxhBC>9dD{mG*%__QUkk)zWv0&5ps|c>ph5hq2dMX2!T*%wbFJVMmdzt#G%iY`rei(owQIRJ+q(wb@pvYsrIgz{zC&8wkV$U3eu}wDaOf(rs6(A5D?5duQR8^~_IUH_*%n)O(MEOrmLlb- zJL|t!+y0>L*l5f7?>+T_dcdmcKQk^Ktq?hPrE3-9?WRm)oyY|IW%0(^ zxC{940ROM~k5Yn%aX!F*ksoL)ApPQh;0VBg_)~MVEe}$c;8Jh5^1v5$2oLDj!P;#v z;ne{C)gZwe{11cx;16AB$Y2#%w{uP7NmD#rX;DQ5F9?H_WOv{X`6nc(LsWl_gtjK8 z!df`2WkSQpS{kJ$1Inc>e5V&*)U$;>L@fc=a|~_?fs?u z%CeoF0z*s2=~y*9Y9svw4Ip_sMM^}oiM4f z%=YZ62RBC)+P=!;*_QXJjR)Y3zq78MpYD2Jx*T@H4Sm-=;>r`$wWn0qR}ccA3rD-&XL?aRRUDZIbl|^72>Ht`8d25$-9r}IS9+o1n)kKXBXPj!JiS>OZ99eKR(wrzv~noRB#=) zTEwVHmiGwV8=9h{%)n`WB=A=!lOXK}6&MTnyH)Wk86yA!CaMSu1W&_ z5P!jvdvJbAVgUI6e$+GYKihc(*h_iW!TsDP0RD~{{e}I5|EchU{*PB98dlK#`^Y~1 zBrhj_@IT#{S7VHj5ms;q;YBC?`T0`K=RV2nIw4F>O&Pd3f!{dW7Zwy@O&3BiglTC0 zYf_o8=c&(yIe6T18bOmy)faL#IV|9BD38+=Mw?`kZH=6m4vt$qsX>(j-74{D{M zuNszKY?H0;G~@5q;2LPC|K%HjSMEhze~!EB8T_p);m-4jA8s-4Kg^5poy|!w*5<4f zCv8-Ttqtjxdhu4h2*fH+w91pWWJzFJmg*!+buy@+gWv;KTDmYkkpB#zUP1g_;QCv0 z@h5f6_no{S`-LBScuxM{|EIWtKlAqk{=G!ly!8bC(~t8|!XhZnYl0O9{F~7aJLymV zIF|RRS9B_8?-r3vndo_;?>O6gnC8`k_gI44KwP+_K(G|Vz#is$2Fp|^m`}li@gFHt zt(A#8H6r-kp!si-rP`Zwmx|+eJBsa{h4!v|5LU1&2+G=ZOg zZ&5+xNHf-9nC*uq-toq?Z64Am<-3h>NTpsc^c_sJ%t7nBxnQ(Rd^p$lNAtS-S6?9S zJc_*egmBNB{wUD*U#?+qJ;L95knHQ-9ZT0$rEb=yu2&@4o3pnXq#Nb2_U6>>x+D>qaJaqxE!hBH$1Ce+SB|2jvO;hp;cf z{vrPUHGlB`PX5qRsPKDM5$IJP>9_&|_TPo|=s~{#`yV2}7NXAp(HD}^cEXdnl+Zs- z<$vr=Jggzvi%^D)P&fiJLO3taq4HW6(+!yd*mGVHGgc+c^$a$+An5rUi-a)s*5wQJ zMX|f}SqterYklrcQ{j4Lx?Y|GEv)tGENe>%$WB|?UT67CPV{D7uDPXnzBu`(`JN4V zo?cOSHrfJX8jU<(*9W%K;Uf&URk#SM1Lx%+LaPnqay!}Ie<(E`vK<{HHZqa9PV9g$PjP1ZPAxc}0X`)Ez~59WYQ=g&B<)0d z1AoXrhw&cH{O51@!wB-YjP2xK9^hFQ;R9nYXn1yF+<`wFfl*3eAKtqU@70BOZ^1s? zETa5*y5Lh^!m*5WP>$KoNA499)k&cv3@@#Ox|JKXnZbu)(_$hGRG`n{TZ*HAKkOn- z#G)3&l#TpYScf=iD>ut>x9UqY<=IQc8Ae6bYGuJlTB3}BuOK0zoo;BT)YX@pnrn7@ znzZuLsXVd0SFzDhdZ27Gv{mjYn`g>X2eV@j$69~VjMzt->?8Fj^DSWfyR%KU`F2O| zNIkT*tOOP8td3jNqu_i#nN%ONw#YI$ZUBg{V7_=kmtsCcNh)+teq8G3DGT#y!}xdO9roXg z@qqlt$$x<8(}8_fA9>eQO8?VT?oWeBZ<}bZWrUMz0xYo`vv3m}AGnRBOJ!-L>~#re zRm@&b<80;%Oa)N@A7&!Zf;&~@ET{5zYO{^y8R~pVDI%~ZPEd+NS5qmqbVf0bxK=IG z)X0l4_~o)nYg^}LQ_Fa6?qoskp>jY~Q9O{55_ai}wT7||sc@z;%e=TG_xQ(MVmr8E!gRn83U5_5mI zGNEs&d-f0iNWTA^aL2>vpRSW`d%~(o$d}*8ym&q+j@_)w2e+@UPBh6=06sW>;19`< z4zf+T$RKyX-;^c6JNnv0=QG6LUP=JuKfr$k?>j~FTa5|(8~zY~f&Xa*7p}Jydp<1o z@u&&$f?JTlzZ(bnzZcYB;D5mRKqCnF%ffD{q!GaX-$q4$9Dv$^dRl}3)X1~s;vobt z#3GjB392}|v3lRTx)E zVTt@BqhAJUYCDdHR8_RNUQt26w2*e+qnOBP5F{0lXpAS%xb82CX(aUREBa3P`{j|D z>WuaFlJ~3qZx%ZbW|~gbJqL^3yYn6Pg|6Mj-u>0VLug`al(0c}rWt{H;r;T^AGG6t z)Q&D!!}?s}D~P`%v_RnB zfVk7ee0)A%^rxxR^Ev5{tyEi4*ii*(GXn+u=VPD+gqs$?6%5X1R`f=?K$FJNX0q2Z z8E}V1lMeUYGPF6dYq?3?Y|?C+xH~GkGdi&Z$7~dcYnaJZOmV#+yD_SuijgLGfk9k( zF_a}^Jq?NX!{YBg_y5)<==&?-*RRz^aeH$_kaNCW9z2@uc(dH~eznIkS_`eA{Y6JH z1xY?Uz^2y8+R*9hz`;W2A1t#!X@_6Wv@0_OX`xR`2z~_^uN<`3SZ>_DvgyaA;TZ2{ zVLyC}xN-x=TQFEheB;J;^+9}fopbm8s5o9zk+D{m1PxmU{Dw5Az%!_016+_CroAGa z+`(U48@Dct0~KiH@sR(+eOTx}0RM4Pzyc=(Zmt3U(|VSZKct{Pb;Uyde^$wZ?7hPG zMVY_X&;G}+8wdHP*9gVG3-J>8!!0o2-$i~}5%$CRdhPjq*7-{2$0ovNhL0l(XQHQg zesj?<2#5gt-;fG)8PRGH6F#40HI=T(g83JHG8$znN?cAAG!sI!1(`EaNjpELMUYrU zi;)CTsP_ZePfxtS9byk45K zm>&<$XG@U@13M5XdyNh0hWfP4x>Q}A7-U19tOfY8M1a30i_^+uHFdGw6koUx4%aAp z(O$q`#SMpRgSLDM@PFUoXns2QcRTtIXO$e-o~j9QuL|~S2={Bp1a{*Bx-ecnSWig) zJ0o9!^9Og-j(Mu&_!M}3>9`xaSa80UbJ|Q;&Gg+VBU%b*Gg0A?`S%h7Hd1*exM7qo zn2RS)$KVzvRJbI*oW|O&NL`c)CgZrvnbK*Aq(4?v5JBd;d1pqjP%iG|dm#c3Vlg=* zJu)fcazH*lJr9?f93nv9@T-r@_y6V&$1~72I$oC;Yo8d{9_=y>HJX(5P-^YXHSf+f z?#wpZ=K6MK`gf+g_8=Ep=s8*JgFPZh@(XC8J!zagf@dMoy^b5K-~?;RQVjCk{XV$j zF+#k1nRNF$^}+q%Z!S^qy@>qbKH<7M*Udlnc>v?)y%r90TTwC(%UTWTJIz^J&6#jj z&7?>(Hl!Nrr4AL;r$L^)A%}w?TCYv~SrR}OJyc)#^Z?ig8^n2o|Cy!-uEj>eVjk2@ zA36k|d!s&faewTJf<>&oLK5urm-{>{^L|ks;L(im@5TkgE?*DE7dk)P80i0a!SZK2 z`bj_4qmS;fTOIXZvqk^0oc?hte!nxyEaPkQ1^ukZ5e{y($d!$K80sbX)Vt;nRWLfM&m0+hQ?VvmJpe^s9t?b=cALG8O*ROv~xOorq zOv+skl*@CtNd&j&V9A+w`+nTZr|Xs3n(|~-9^2X|wl+yXpfQ$V+MxnyevUDMd$6wtD4sn;_X^)D15D3zb?v!bwm%Z}ekw~{%v{Nf z>Y_&)@}%0-IBTH@b}eA@WHt#8pV`vS$C@j1>Ie~OUheB<<&6ws{PSR*Td*{MO}iT& z`ke>qUg)!bypNqh9azLg1*)*2heOEb)abtelQ zFe3)Bj3`XQ4V%Mq{YdTRsLVLt2+Kmd(~gL6Hs7{Xo1TXWghqV>KejPCZc$cdSJrIx zXB%6Swp&D>N2<^DbMY^p1pMX;Nbjkx&xp5Pupb3sZ+HZMb02;63GLo64+kH+XSgo`)neh}iCdzi}$ z)QwkV3@Q5=MiLg49+}|wzg?<%(yr9p7IDJy?0|i|1@0(q4MVG^&OF?pACN(}O*2rT z8?G^qH=L-)Z4+IaJ>`QrywtF#f@gQi2;`~U;xa0uhR^KF;aU6hEuHCqT50<=!R~%XD!{ii zOUzA<-Ux_MA%@OBcp>mV4uP#LS(>gkeWNDLc?t$uK^Odkq5lK<{}9G=h8?h#P5g!b zhb}(&|DW1ofIqB}SNS{w|5F?Iss$O)ix2O^hxFq^28ls^81HFzSUci5OdDbNt7LlD zhut3Jdz>3;ew;~tKa#fBlsFcPoJ}NcWD4Q>A>4dXOB}1ttC{=`Mx-*1Gn^398xvbi zAm@c+nRncC!`Z^882^8Mgu5A1&B_h<`ia~B^8@2a2=p6+zI{Nx7r<}}3;O11F+Ht6 zr%8%oRY%93&W%}>&94`GPgR}3-#Q}SQr2w_)U5YbtPfNeMr*9ojXRSa;PBt5I#e~H za;kp`KDdTP&yK)M7L?`@u`7-F)`7Cak&2_CO3s~cId`w&u3mu;Dk0r|2>cljykXQ5 z_U%3L9e221LAm{)0EL{)7LBHHb+VLg@H}ArO_KjV{$lt7olF9A%&*f0!ybXh>MkVap2DU zqq?-29Qd@T*<|t{A3L2ArHqemXY_DIk755gL$Z9Z?gUOx=~GA{?<^fWw6FP zP`lY%1Ibsm}_fE zH7k-X_@|m1Q%wpf2#g&s>|cD5e>$}Q_iB?hRf%hr39A+Hz+VXi5lRsBp9e5L-Qmwh zDc?;(qFgg^hQ(&sgdAxYYM0#9vtC?!bn0VgKU)VSK3wybmr2 zb`BkzpTZFMs4GZB)mbR`oR&X~=AASp!w0g#JzoXl(K37>hJ-o@S1^+4#`3IgK2w>L z(#}gva1Ulb@PKh@H9duVH<)%0Nq>Ni^Wo;=M3`GXR5yR$FR#-ddWC;~2X*;A=BisI zGbs(ruZT%+%gi$k^=|akZ4cKQddpUtvMs&k#-57JE?AkUF!fh$kIMFD8;?}2A65pT zFa2)z|0CwDnk^3jcm=G~2$pMj1LW9Y zavbm$Mscx#e|Nm^SXS80Z~6ZXf6jOOKXeNoSLe(LFwlS2Mj?!`V1yOjogUwtZaM#f zJ8=<+plKl&i81g-8zV)4Qs8_}SZA8&Wp4D>#ip-YJr|gf;OaI)4u?_u6+WgvH~Mak za#BK@QVN?0#4=P$;t@MuP!h<)gZ}+2)fdAL&lN{8<4;E)D=}& z96N#tRE{Si!@&#mjHq92fz_Gq?`Da4It`4-#-O|s1<@p^+8US7*4{*sB)pBpm-?vYt>aE1@2AUooHNAaP6 zKk(naI$O83{f)?sp3d%E`oFMdjZzQjQ<7E(G%i3??l0X9>YiqCfNm4>GgoRCmj zq&bG*UE|~^Cdn%!!wC%)K9u+H$WHy13{EAI8fyt2wNwI8T?KH2(iq3>{|_h7l_^>pW_<-RYAZGX%+zaFU` z;@}0|-c(0lDKbeAp0Lo^FkM@XI(Lc|6pVs%2AFKN9wd*TG@$o*hk&Xj;iMhT&OPO< zJ;lRw(Wvbc(q}3mnU%9u%=LQSZkr6i-)=4V|KczE{s}f9^UacVv(N&5EqAeoyT__)!Gm|jc}=!3uk4-61q0qvoW`?{BT(91pO;sIM8jD3u80aZ~5T@0cL z8`Y0TgPe0DD+%z2`*#Ev4vnCT#E9$6BvAK&@?tDEyfZc6>%FV5Tk_|mX_NefK4S1l zUJQ)aF9`{HOq9sqm*wTJ&!mD*O&*gSd)zbIJ&KFWM4t^!b3jr2vM|CZhzHISJ`@_3WfzY8cXl> z8uu=>eVFb4xYYk)xf|mBQr~Z@1AklV`1?ZBhw+*Xy+WUa&OBio_v4xBEZTBY^Gv-l z+0j1D(F126lIs>rbPENqB)We@;%P_tEo3@)%ugwJ0IrE3DOv;LQd34`F!)n>ZHyEgn`ekpIIO(a=T! zemJ;00{$;MnQ!{JuY1`07LE2d{JBYhe|1aU6MW7!FC{zD_;axQ8~ zkhTaOfRv~SdNk;K=Y;qb75VE$a}Oc7pA@!GKmbdbD>BleM%GOy7et{Hkr?D(&wxBU z*E^o#mz3=po$V1z@l8Sg?8}eH!@FWNIC)VjC&j@p%iS;V-~UaO7;~jOf61hI)Zg}S zuycE`d$_##(Zt}>$?luol@ErhS87BXCYTy)9(HP<^w+!`HNU#t^6pyu;e5x(m7c@J z-mg0szdpM3_4d#o*BZBU3PWOI)=7KJQ5#t#dZe&uy|X1ZAb{wF$g~e5xy2FOkwmXx zsxR~$+yQ^6dGPkY^K==Ji7w;|W-4Xyp*I^9aG1;+@)m2D3qYPR3YKbw-(%S%g0=&2 zir_d&rzb-ZuR6OnJD8PRxD-rO&NJ_HMC$b`^D2c1048Z>~IdYO31scP#+@vWU z;p^fEaGNi1Fq7hpr84eJvCxo$W_t(Zd4v?i5s*LFl6_E$1Pay$!3s?wctmA;BxE?o zVXR}4ZDZoC5VRn4^a z8s^mW2hBy#I;vjw)w~{Rcs|ep~N9Sm-&J>-;p|_;t1Y>w5p;NW(CL z&T;cgJz`(Q!678?;0(LaY?m0KXGE4qFkJdLCrk1ZT|APl&J-uaPOI~; zm&+IRa+tnZa=S?k&77rr&SI@#p+-1o;9sxiT&rSDYuU4U9{kIqN%TFI>m)1nQV95u z^F{&S-%GS;sG*ZEmA`=oCc2~WE+~>G7Iiw9jl_xKvSLozN)k|u zO}Zu?VX3|dw0P@HB_C#opNw@)8%rLKHr?&1hDYe8QLv@sf4NZiyj8Q;t$R0Ezkj~z zV6yeYZ0E;?_JhT?_bWrcZ;pPw(f@U`>+3?tn?B=ZA-^I9opH)8{^)68Byy*(gB21) z^zbLTL{PjE$v$y-cesy&pzV`t<3e(APdj_2gH63sB8B8%tp#pOA)NV}Ez*q^5yV!j za+BgRJ~b-SI$ zyS;VW&1z`;0-g0>u=3N8{+?cR&{KWbXL{FP_j<7I?Zw8!Yc21l&CjlwK5mSDS|9z} zI#}oRf88Ga+hpgAQmT$ZrT=;sbHXY=A^PdX0cAo=u9q*v55@Gu&;k=dRhQ=APjC&u zoUtQ1yD@w`uN2G2sV|fgY@`v=SoM}v&qKQR@Jgu@%l>3-&*!C%f2?-==Um&1PVE3S zN9^g3{pm#V@l$13)Qj;xBN<0@_hkCUfO?c3gvPmtCENNy^9}INc5<#v#Y}6I=VkPH zt@u_OP%jGLGF_-;E!44>&AgQcF(AJVv-r(tFz=k;Qywd_YHsPLmd^AL^_l|;9rx7 z1pNDn$>3!H`Tw212>3((&vUSIY|L~X>V^XUx}jj4LlSv8Vt@Ikr3%HB0=_a5(Mo4z z*mw*p>f%p?$m0ZNrXlnv&)h&X84-u`2n6LUysdIPBC4}R(pZudMT|P(nq=$NSEw2( zm%qH;cXzDj_ON!PUGey$ac{y5?8@t9yty*Y-3G<1B1?@pRpx&ZrlR-Cg?r|*_q}!R z228I;Y7VY699(bMn{K!>*08@c{Ks1FsiUR@3-=FhMK#fNYq{jgM zz|R5e`2W6tp#(kb7g+M&Kn5SOtTrt4-;`Q3r4!|UyhboAu{ z&a7Itrc+%jWWv;br%E`S6WbW?-GL667Z9G-=D+Ex+#9HReaZOxs_FR^m`IK+wQ1XU zFu_N5f;EkVK9rYd#H8`P1JTD%G6TJr8nhRSl^J$+Odlj4fhKvz0M7yPKie$;hU`Qa zdtd?#i)qsuK6H||&C1ONsimZZs=kpAS1{B$P<%oOx>74%G{6ljf}?(=E`QblH$vf3 zZRwo8=t_lhtVlSld!Y_?DvDb!vXe(0p9z5 z@F@kBPO=v1RUYDRPKfBv08^2$v7Bg7wRETXcP9G-rM3?j1}@xd#W_G`d)r&EYZC4a zG^`n_I@v6`S0KR|A&((35xAl>F+ZAKO(}Ewzs|_9tjJS7$`nS}G3O-v;08f8@>idz zQyxjy?s#`k)aj#jY(gCe2krW$_OefF7oJ{f+3C=}z0_V5<*ma;m7-!q2t04kWac&{kl?p`f&)57a5|Q2XkVcH5WZ z`paM9PXEVhTiJSNDVYB}o-n_dXnj93@O5=UIA#B(%l-_j!}BUAO`b_HN6-ZDKKhTHYyj4s#$%(HLVKpA1hT1 z7s~nzB%LXUHcS8@-gLQ-AAGeE-W8X53chctII;;3iH5r-^Kf3)?f(PDlb1GCtudNFCf z(Ove(^3ccYy}8c6n$lwO?2dC>tQ8>$Rb*t!nX~D()_*L_e7rIy_OSPYCX$9o5+f9#*K6XZcZaV`UX{ zH4V^_76nHD{xIjwa170~2M-y~9CusG)mfCcWDxxq_%Z;0y+*ul5&-`26)dbOqXc5Z zAX?XnS9OvVon_8txu>+!YgLkQwP0Aq>Xqm9E181@95_Qdl7qWaBHBO&h6$^Q^e{!a zf-NEVVZQC;ejMb#A7FkMhwV?dWt5a?PE z;_;~6_^7AmQJ*pL=l?U=#wz0IX$_tcbKH{_fXCP-u#ilmZLXW>Rut|^`+t8XD(b-Fv0U`mJNn)(VLRgTV**Kbiq(J6>OMV%!4cCkoh6#KEh)tsqP96XsG9SQ)x#U8%WUg9#wL&nd z=3Xdf3@OR|GSW~!`EogD+9(C-G^j`6{ROVtt=MpVgu6b{d0v(dez5Plc%O%bpN4s# zNBD3BJg6ls$dWp-!KQHE!HifC+;yb{frrloD_QP-O6p-<6&2i>OL%`_%FP>iv#6g&y~-bP;gh&1-C$0 zXR0j=4paCAXIt4NpF9U|+p;vg3X=-?UxLjjipQj%a|RCwn7QP72Bun{HRU8<(eP#} zcpLSWw1)uj;gJ81|B8tZQVvjSX7L7%Q)kpY4)tz>GH_-pUIeJDIM5k;l%8V`6p0 z%%>x5&xh;(u{7|OfPrGMQ+|er+@>$a=_CkfcheK>(;My1&yJpSD z^NlylSnCqp4N1m>V)7j|?Qx^(>&DpMZj4_w$ZyscgTLH3C$}R5T^SrGadxSSh!%MV zq@T9Vuys_#W8f!nr*F70DOC^*rd4h*X9P(d^xSgXoCc-zF%<=-SC%^$;=gWKKpV8B z(9DNVuxQ{c>bWpjnb(1H7awdZu9R{nN|?in+>6B&Xh*C!N$(C8JiAo3cSZARNlCRJQGe1rssuonUP#| zc3GRu+$5}~gWB=^~%4`_5W?_%Hs=7n+EwBe4QfBjDXUYju|50OsE8?|FdoEvmM=p;jx97v?u4s zwfGz;fk@6iFy+ax^UAbyQpH8Wi)mCr0#?bl(?)1Xd!wbof#L6xfd}}1Z>i1eIrDlR zynLrCxR=Wq7Yga;^Ql+Lp<6Dx)m`v(OuaXu-kU7iyQ12=qUg>_04Ik=Ok_<=5KI-- zK`s@cfPW@fV(zs<Gei)2HNTz2DKPgwwDW%8eP{MPgtz*#6sksOmH;!M=GikC_#=HUpRg&cq3O4w$ zCtV|tI*{DMl1|&CS=;qVvSRW2Yc@uf6O)=ZAk=z5M)g8)%x~ z+ubSWfqThRUiPX~s1HY$h9a}i+R{CJS%^?ZP}p{7pE-|J5SNtg2;DYkyps?5^l4L0 z`qc{2n2L0(MYU?=!BG!i0Wu%%V#_4a2w}m0*1(=MaAtH|NOi#cQVD%DKX+J}4GNuS zW7UV(P48#*ucu0$jmw@-NcN_rO)1gfXJUv8sg4Y+jzkpsJF7z-XXN+?Cia_7;m1J{ zT)|(4g%Hopxoi2!9f{tpasF*6KNy)^pr(v5ahC*ny>$Bhw!x_~^MJI59Y)Obz+heC zI4D|au2PiBF)QnWPlW^=2~2j&=*sV*g;FVqtXgL2bWIN%nFueeq_b|&;6naj4RbxB zi#z(%ufq!2b-i|{tM&Ex;EVnyWsvPCEfy@JVOh+blC0-?_NxZzUULyZ{kFGaudn=R zxB79f`gvc~a}a`=Rd*|x4@xPIK}RD5TlMUR_4$8Z@Bg|x`*_s+qN@znzTDBUZsg}J zi)briP9H9lX=9sn&K~MmMqn_(&GSz0K#y3)M?NTxGS_R{K zsk5x-EbCzg0VfX(bHxh={+y0|UB?3OC(Egm8agyTFO`r7WSJ9c+IC0&yQ$j!Yew)$ ze|=T+@=C$WDaGD3+3V{vGd3E)2T4U$WKb0{DBs7aILQ8*1b4rN^SVO-_`}Wn+mHYP z6fuCm#`|P@d|*#9a-5dDSu9v65R7tJeHg7*`|K zlOu`9v&gVhNdKSw@QU68>`qifc|nN_8!m3E((VaTd-q6E?RQw{Bfns!s1c2h}wRG0t9bRXdVkol1RU}iO=voxHitC>@kbO0aXvYI?rls#USv)&|rajELvRXu?J=34oyt0flv zuPNVL&wn>xWQ-551mvTFHOK%>XrRo~p}@}$mi62-vR}0e-}i~&<@RB~$4oNz0O$D zrv~oJO8QF;bsNO>O6aA_f1B$5x-;|qV$<`kLRk3nNXOYNWvvrlZUKfuRM1DdmiH`dM4}3V3^m!uZG;tpYq8cH4l!!-ZI@;X<7Q_%FactA)lg zbeLHXknPv2SXayQ#`5v!3vr8e%qJJh-p?BV`8U&=H`8UWrc3v(746NG?9XcsmMhDn z5G7%L8e~vuh<_=&afQsYTIp#UK> zS##C=DGha0m3~D-xZNjvd%gT%u3~Sh@YQtj+u5==bLDU5D&Nd&_m_-^D|N+T0r?1@ z;*h|CAin~CAAyUF!rKl!f$!*8FI)NljsM4f?h_MnS&q?%I<=#tuJI|Y>G5rZl&4*7 zGZod)o2?*-8u`WsL1Wm-m?C01C5l->tEiQjxQWzcw}=GWV5|c&?zCUPzn%eOKrkjE zd3X^$Tt}2rMSOIRRH916#9P@#{Cs3ULYpY#eOj3M+twQ5r=J7={Xb-(mT~hn8s?TT z`Jp)Jp)~$!Y1Wf!`hAo5X>0!LcICU?g13Do(BygAk^i_^`oPEmqttuKjEAsmjF+?u zTQD@tmqRuG*qS<+?Y-Y7d)UCS*lw#i+r`4m^c-~%f_TD;>flCo^MS!S`i%8@L(^JA z1Hr)_MlG;0C)?5Xa-ryQ5p%OazE;P*(=J`qQK8iX7Xjq|H~e{5E7?~n8BQW_b{3rCw6CG6-t z9!ikloJNUaOVU+!@@BBcyrAz&28EP&OsZo@qLp{>zn`i|C!0u=OnX}p>>OUZG-oKM z`g!ugBf@_9wUNOXkWlt6w!XYP7;*d<+TMxk7nu0-FTi-Ynwz-G!#orwK9r!Il;9t0 zX?F~QM@@<+4Z@c#l9wIIXPv5NodwTY<$(X4GUBcz`Mxs!1|R03sUR+R*j4`bt%)zI zqjy^*56yg#dxP}yMu~7ZJ45E`mUZkT%gu)$7>2WV1%AbhRzIt)QiO+PoH?CgeNGS@ zFjJwtkWU3x&%BNf)X;e?8IGXUS_}SA=U=ZDT&?0=se+#X8|=l#Rpjw}!lHrkbVT`K zw(M}eaPOMv<+SMayz*eR;&8p@aIJBFrTyJfH%Jo7VggG-U2$^bu!mj}bU7$>tB{^dY zvn%wx21RxeDU#Bo?#S?ocK_#NDUOJACq%lPAI8eL41<$KL|!UVHZzDR=Z=UX0z&@! zFEPh|4gT@SWO;cvpZIm>YP*OY^2<+Q$4(`jwat%=X-Q3-B%-!CNsssmkHn~_#TNW; z8Tbzx6c1~8Pa617nkCR=djdm&Ch_eG3at2nomP(v@pojf@c~F*M4*NLeQO*nvNvnl z_ZqmMvfnIWEy?rxuO$tp?7bj8RdPWRI4UMi6cX=r$v;e2zMn06 zb6v8(Al+Y*9jq1{u9Y9G)x2A2db`~Hc4^?v@~9yxt|BJ9JTe^eU*zFNIeUWda(axD za=V7}vR!o8Z@GWr74~^R_^b|$!cz1Rp0%;aYhuq;#gUJ z*~B19IjuUD=0plL;>OX(Mbdc*Qg(Vxl*RSrcqComF7Czr=K}KCS!pU z{)!QLn0zRHR*cML17p?5u@KlyBCt_~dG3r}bgkMlWV~L+JufC)EzNy7R{F=1{>_x) z`6TcCO8$q9qW2r>{Wa~|m6}(JjjtCw->eMmubnr=M?=|DjtnV51jv0o`EdURIgatt zZq;y}whLbO^567wKMVl=qGz>Kz#qg)btuFrJ*z%BVU)wYAW?}zP$g(`6+x~*^P^88 zOYp_aC??hgo1c+y+|Wn~RN2LM0qj7=Arq>m1qqGDGVNq2IiZ3NFZ z#)gIk`lbs)VdiQ34Diix4B&Vp>8^h0qsM{sDGUj|+toRy%1=6e6nEx_>m{5uJxF@x zI}OS?aD{DUM8u=E-9g6n!d;6GKtn$fT>$THz{`Y>JnZo2gOq;!9w5RiYj zrg^uf+h42QUvJ!BYujJzc(>XPQJ)Z9fkbE{keaaIf*>EcpNl5O=UP7LRvqt2r{GPW z$b$c%=+mI|MLlSx(<(#l8nMW#$bj~&v>_&|iAbvk?s1l|TcpqRO-20ZbJchmk?wXYxf!*yTn4n75qq^@w6c8X-UpAHRDAU?~OtH zsGPB95bW1W_YC~kHNxlB960j<`AG(>ct{!|M~&tsfTs0DyZWHN;%NgHwk@oy*)v6w z(%2;INk{An_l&dNT)#-Fix=^n4aLck=kNQVw`Z)N0Bdzzg>(fQ3UH!>X8x|ZV4;G$ zVUo>Na4coNP5`A2#JA#~cU8-Q2k*5~+GIiYZj12!^{RK*i=oaxSSdT$r~vTat{LC0 znfKRQzTw{ne|fjoSep<7db;XJPz(i^ga#Cc`WUgHD;2D}X5ll~yxcGThQH+VkZjKk z_JDX0YnKE$4^wf~aS>B;g)xmF2#i(45P-3nVjtZt2l5hu6U`RJ3tFTt+<4w}%XK|h z?|;-i@~oGUA#LQyLjQUq`p6lEHxltrKh=>KwK>#F#f2k9(pEvv{@i%7jXmmwEzJ)J zZ-MBak8}O}8Z(l??s$foy3EGx3b6O3DUVf|&q|2T)Ok-djJ+Bm_;$jdZ|fzmOu~J$ z^c!uy3?~i&pr%Atp*4 zil_)j7Kb2;f&)sCesyUP>ss!;M&ZkD@tZ!u>mCl=0-pxuFB@5~E4(cwxG2C8p3K8} zxkGIBQl$}0hg5MyWjqaZC?wxZ&wq2Hhtc@){DRDaW?4%vl3vNEGH}aD!AY!0bQz8W zK6N-JSC(H$J5w+sE4!}aoa*9#AqN^UjKHZ36S64?D`fR`z|Iciz5XRaso-&0oeq9LM5#_CoHd3)uo{nMO*virxR7lDUnByBwC%kkPoH} zwQF_eTb-RH7)&jVoQLp<{`Cl0xPXfz!O@q8h=HAPS?6q9@M*xcgZ$qRrrw3BQi^`0 zN_$>Pc%jL8q|V(c0DpeQi+aKHdhRn58|Hrw~ z&#UF1H?<#c=>He~ko*AtR<|W?bV3w|!W1d6BrHrB5CA1;3DO_%UnytYt>?ggLpXeZ z{|QwnW;{7^s2{j23(@IG*fjBD4XZl9zvV^s?lIW8`1*tNWU2OQNa7Hwf zf~2bO#f&&{1>K-!lnc>0^zdl3oed;;yCAP$%$Y1JJiId5#pi2MQzt6QLE4$)?F0QT zNmv5SBZM0eh5q#{&BeVtho}zrn53cC1u6FwX%A$Whsxw8}{H0>U$om>cc;7I*=V;2i6}-V&Q=>3K_RGSvN?_vLrmg z&LjQQnSxM6eIhva$F6X&@T7X6z}}N3J}OLuSMY-pSPKOcUg|pRd>6&ZHJUCn&amjAB59JVCfH7j8-y-*~X6bnVZzVSaDBRF{C?7Rr}J}hsfI546x zJeKd}MR&5pTmRZ8qI8SM1M-{&9cQVU4!&*R7`&`wF6+O6uVn!KGg=F`&=Oh}e1gm6 z4CuLCRHWW(6CGSG`#7Wd`b1)9Ew6NS5o9OHyVo9!Anl59+atXmqEu+4Wpj77y`SFRn zL!Ip+^3#iLhgXNe7`A~z9FU5$99<%hoJcrrU6_=fdddlZ){P$!1HXdkzaA$$xhoMt zK(_{mghe(Qx(as{m^+e0=)yfL!QC&$KdH#QT}&9y3F=REn_)%4@?}`J1nVXzDB&Og z*)Ai4x!;_UsEc#!0-AkZ`i{POj4#2Tu}eQ=mw4P7c4Cs8z?|Px=#SLIB;`3clI_lA z*&G9&Lx&)1yo>?aK3_=z@YicO3)(yot;4fxwwejuX6Sap;Sb<{!=L@X@K>eXZ5O>A zFa9`J{&m;%#|_=PWzDDUx_9ffaQJ`6|L|rXfd77{=lxC>yt}!c{t(iDAX$LFDHYX% zkA?H+K_mZFkLWx8Uq%#w|1&dZDIedM624NVgeTi5k2}Z}YcK>=907RawBXFh(;@r> z4mX~IcE?<*yDUr<=f!dJ2~~=WvJz4e5s@fMPQ7ZX?37TyKHYfG->Az%k18eCwOUw4 zgLm-;|0uFoFy7iD$KEH~&WGb4ndcphKj$Fy@hJ}vXi5r(^#M1;$*`t*M;!mCDE(0> z{+253Sq1qCti>tB!}{P=E(&5xgod5wcM7wCfVv^aL972`XXQ#hZKVjD<)rh)Wi$t$ z9D5IFEQ6#M98>Au!9ewq_=jl|u({`K4Vc8t(?2PreP;C1OJ%gV>bzyRO^i&-v&)kF zOgMZNja0w?D_-y(%HHAtQ2Co%f)D_o@rX58v{C zMEYO&6UMpO!weFfR3m)ed5KCDn?m-AN<8C_Ivec!S9g9Amy^iN2*g#gv?;!6CFF{N zY%SoQ6H1gMQ`+RpYbNb@g<@~Aw}G0uTwD2Ms4wD&pSg(eWNX)`BWFQl3ujKQgLk$a zZ0m?%c!v?}++;z)RdM0qI|nNcS9unYSGcjTsr+6M{!T&W^Kvr8vr^K7d>r(AwnZ5D z6PB32spkBnyX@;&?bqSj{U-IjO36cg{-Zi=Z3;2@m}5GuD1zC#gDdu&Ei7SY`2-1l z5f!nCbQ=dF7L#p#JU`ZN)m$`dX)mzWj0{MAh!qp}`;c+jBmnTC?4Q;_+lM;^ZsFC! zaSeN=fPGd)IV?6+up4;zg=y3 zyH-bZ@S?f<(_DP>T)k-y4(gat%lThwS*!Hl_lhV%4vBJzP4!6w@YRe;j87^XBc{g)g;y|N|hxhssv+YtU(p2Uy<_aYW1I6 zO1_uJo)Uu`|uX#KF+`hK(VV7)HO4%V^x!dIX=c`{tw zs*|E2|K|#cck7sYojf@FAwCUDJ`F1Xf7q3&j`UFl`#^{4>wSGfW!KB=+G zJPb7Ux8%6ns;mbvkuS-4QcSuJd(&i@0RD~~e^Z9Po`=3w$e5sFp6K!)8;duKh3e3d zlwY0D$30;oV7ilcu3rGr6BgCE6vU#6kg-}+veYw3ACD&6oniUdZMKx%XfFmn!)gr+ zrY!*el93DY78o^tV>Jt)=L2a!S-~H#5I~F+v3umiHZl6eHQk>(?O%49e%oz0*fRch zyXlX+ZLilF4mO(KZ?(VQXan#+Z8d+|s5@LWKmh=&fpONZ6lYJNuYWTkwLLrjx+?2V zEq$+x^Bw<>L*kD^a=;%fN(_leRdC>4v$-M(TY<$f17d2ail~!5h@;-bU_3quA8ZwR zv3^3s*5=02y2}T77|Shenws!^MAKu=B?uVoXL;&lR8;BGKA$V@~no##vGy>?^ut5MMHk)$drknr^-EJ2X zAC{3J?iG{n77?NI^FU31p%*`>;KRxDq^96;P05|=qJiA>l8Eq>6CP~#hHwh{DS><>eh^B?*@9|mPl z%{;(g7auD2_3ENfYSIaOM3f4Zsml?kxkM#7Mi*o$LQaRmv9obun}T9U3CebLPrah8 zh*V0AAhs#={Y6?~Y*N3x;6jlGG91`_V3?faf&h*I2;5)<2}3cwoioYNJ=4}L*DDx= zZ!n#wcq6Fpo-7x8g|A~puxov^Cm3DA`j};L_PRXhW+4d}ZZPnAsLgv^l?OX4UepL* zHOOB#79MnzKdmeJeY9!0Sh%W|b6n3!0s~U5e6i<3Vf}iRXCT4bGuy`n=V)D(j46$b zD-Day_k&h2itFKyw?1lFch#-_-t)AW_LwY^E*SL!_(0|d@Mm=Lt6JG*wfI7raI91a ze8N^?wpoD%vp>a9R z0f|TL@iu-rE+OyWAm)A@O!pd0H2G zoT&`7Z%YciOii8_Wi82YYefXhCQUu-v61_vR=C$Bf7@1g*j@3itLnB<^{h?1rp>=z zEKWP|SGv1God0`T#Xhw!J&Y+pm>` z>(0f1K6F=4-D~H3<39*L^ou|A%c1@R{ME6698Y&cMh4S65H8>N6RujKD8(fb;~bsp zm4tGR_4>uLt+ca@S%C}7&L@|s89F`BWZ>&eyo$~OgCaRsi6L^47&w7p4L7j+l1{l2 zT@l$X0hx~8Y(zNZKQ!T?`Ic_)nc?D>;@}0^XQGQ296?flFNwPy*XD@O=7`46t|v9} z3NsZPq-Uh58^y3IIq#l<^Qczvyixk1RrRj7;$=tKn*qa2Deq3RwuP37KK>Ut>R}IZ zvV9od1Idp;r@6VNIND}7+SO*0iX-Cl5iylf*g7mun-EWNIt4pNHk%8e&jUOYm~(v_ z^$M<6@~%}1LB=wxS6tUCrz+*+W#X|C@kpVdTgEc;@uOP$`8Y-(+r0X#OJ%s zpLQBQY&8M+A68oqX3YoJ>t0RhHk)}PDomQKGf%c1*o_MovD_@%CHYCNnzkzqRD~Dz$DD@M#VcIeSUVH zX}{VauZQ0P0ZBFpn?&ga-Q~k-dO7@ibAIgwL$45%8+P0UhB66fJY!EdsSGzG?hxNjjorU+ziWMynHmHs%8S0cMg7et~tJ5it{%P*vDQ>~( z?m+}^M252$oNsD$R#8-{J~>C?i!@-;%2DBYuE+0plme4*K$JEh${3Mm1ML=QoIqo~ zS}vKcgyhek&`8f0@-CK10sH|a2lC%QP1+eOhMV{6gHGrC54I42j(S?i?ZR`_%FIW`WOnCMz;%(RreqvgD85xwu0 zylLgY{_dxPeS;2FjZP2h!~K$Ij2 zOH8$LhHdp}HXcAk{BE`Y9|Ec%vYT&~wH@2V6?hsA@!?}c>=K{2t;*X_QEn8|Z)uqK zwVVeAE^vFEHHx3MNMU~Tphfw-zv6JB_0^@eNsXi!8%YiFNpf&U9JfU~`OuMZ**?LU zF24NGcnvm35s^}nNKk~vR->`y@nLzczwVgjFvjZQpgWk@E_T|Wh%hRro>$P$tC$xH zdDB%Y$oz{XV$j2$FBEi1s9j=un-KS8qWo_==Ks9Yc(_slou7Z)uKjIG|7NCie@^%A znh8o)cv)ai98LJ~SoS#&fp1hEFuq*DJN+C?ns8^VmB9#gRNzG}4)A}|A^UAWx!=hJ z{NHzq_skqvj`pO#NfI3!bJPmfYGcp(l6@1|q4@Z7L1?>BDl&}_km&R;R{2?Cz`q_0 zmRysg9MCO=1DDOSN@B5wS)~)|3v*RjA*tP^^~KrT&|~&kJ0E2t9=5gO?Y)&z$?#{E zgAaHt!2UAWr3Lw);~5OKDBC}j;_Sw8bu-3CjZyG3yqpy=c|!r6AM!>4Wvd9j0{JF5 z=xWG2RW#UJx}#^_G;*M6`KY^Mf1>Txc;}PR*5~6xtuk3IGCI}6Cp#c0_KbDt&&Mdf z!PS`*acDwuOloN?Rvn*E8XL;?wp!H*&dbuzE3*28nO)p;h)#AUn8HD80vIyGa%P{H zHY8_`1xW8YisTXZiuXN&4_%_) z2NVbG;@xVlIMh=V89iq(M<20Eu?_P5=X3ISdTszV#VLXvOORk`S%K*Avw_X3#=KaD zo?FwS9vRYI&J50BCh<$@lvtMZkAPMxQ7GzGcO3m@Q+SBZdaU$gXIzE z(-tn4#beOU7j~I}*$ePhz*iq;0lDX_E2G0MGKg1MV1`3j6lTv0@vy#URY`=^$y>#w z?J^Q9kK57FwsmZZcx5^7y8W64EPn=W*c=ctcj8Re-MdX_WjAbctU75RGOuMCqjo}bv zz<;}v3_Gdsn*~ogm2b{#KV55nJK6MP)b!+13v7*iGJXE*%e$}UFOv}-e*gYYc|n2F z7!(f?1?99RAx(k^<@;a2`}_7MU!595J_p8(n; zMUX6!;1osFQbm@0pt7fuSxSqH&OfUs`>Lu|EH}>&u0f=P0ZJa%O5u;YuUt9XKRX|FDC@a z3J5KTN#ywj<~Uf7N%B^-(uFGC9MId!SwKF4%IB(@2cKX>LLC-UIvDt_yvz<-dU+zE zgNmI{(u`@ystn)P^Oc`=jDPGj>@Vv+t(pH=Z<{l+_#sv#ryoT@cDiJw8J}RlM(dLz zASz;m+r{$nO5Ip#)rhL3na(VXio~7%sX8%my&~^oI?=`X4)RcRj z^*m%G%x7WC9{Q{w@@H4FUvluzZVC(|;-n`tCNse)q%23FWtJk2`?nW%r1_@jM37?~ z<77BRIisSZq`iVsHmdJWc8?vc?1(t!K3UxwciM&Qjr9Mgp9&Lkz`})fW)NVo3|}F| z&KuTALxYIs?pqp%%5$_U3lF%$BhLtP)>V14{LEDuVN*riDb59*3#?_oS4Dy0*L@=m zb_>4fki6d^Y-}rjiHB=P!L}DZEIqnSd`&v&k6~p z`2|Xl(H#H4^wTF+^d(DLDOiLp87&%iAeMl8z<2yXc|9tnjY()jT+)buWG2Lo3J6yV zs4b+JiIS}S#j3yEH~+b7K3q2Zw%YXcLRAwzHs$pHU6B}AjSj7hLujG{^hu$$$q^=O zSbb`Qp1~R`uew}iyi%#}7t7R%@%S^p7%;&gGkMx7gti0V5BtB~_wb+)x@F*w$T`n1 zPlfz=GTzD~%^{5HpTZ2mV;v&!o~R6uXkc5#I|N3b3rKQ~N_31ZCKg6nN2K|tvEtdl z1r?@>;1d8HqDfhA7VC3@Q#N`g6Ks80VM)P%Jw@>egBBbtl1Ot11R)0O70U5Ok~|O; z?+`vBq7;R0AraZG4*C9W=jj<&xdhmi4C_0$i^u@}ZYcz5yEqGCr!4DcIpMyE{;W;# zs7-jMMev|o@p!Q4`FS-|Ag|^cU(PqZS#H~3?f&D|g|Cn29*%d`bIJ7JAc}7QFBr)Q z3_}0<%bix^e7R)VAf2h=!c=`6SPdHZ6>ve!a;2DmwN!XXn%B?9Ulix|Ga?^~KQ5fgJ@v^E-kF86Mf!FH*4L2#FK$Bk^>)ncr zA|b+B<@uMjwUbpfljT)y3>wMdWJ$E=aybS5_e0z5eZSyCFAw-XuUps~6_iG57Bw&g zb=o25FK2*Bo9+}HcPbDJA))>W`_-)&&mjcHCpd(n?8AbO`{D!A1!zvBZFmkchZIIC zA{A+9n$D8;UQOpnWp|TAk8upm4NQ1Gz8rDHI{N6jynsl^d06LxJ?jZ(kKnfk+K2d~ zXXFtupH06c5tN1p6nH+s;0i3 zDEsMN1H_!)%~t(%w+${?$5ey@q(?IsUrmXwiH+%(^G1@yt!zvq19?o0Z{?#g&aPUa zWXN23p|0gpU1NWC2G41a7VR|)m9rh0?@#7K{KrN??9YTQkT)&L=`vlVLKX7mUXZ>= z{Mo&jn}yvMjJFR17nJRTE*59-{4ppyKa^ci9y0^ygcbzbrXUF)ui@oDbgoQQRwOCZ zNww#i#;cNxaZVxqy4pu)W^v&5I6?@{TNOb9X={p|7o5my6a|tal-+h2!C?&?_E?4r zbPp5fRWlR%4ma71&TUR1svPd{v9(T1|@!hm_>p?U4 zoDkmmVYcaEM_!8*WsLTzhu*$)JakqC{Cj1rCI-5mfovDyj!6hXyY`C^=w3tVH_h#{ zt!=}F8tT437N9+^e!~B+!+Ew4TwnTM2h`97a;_}yo2p_}6h<0|3jWew8b|?UFi8*{ zYZrpv>&Ny&b>x*}?EU!u_|UICyuWZZNegqC=_;HelbURhXwC6v5kgcbEbO=Ro-lV4 zT~P#=2$LXf>;9AIJVBSHf;$U>oVt%^b{8A)!MN8+O2f?CsxPXqawnz0?S$ z-+7on|64xF1Mq*;seV74_tu7g>L>gY0sq0gH0%LKa2n~ZVIp5L>T5rmYc$0S+v{(_#jXy7jzU>67$O`;{62~sXs#zP4eWbu|;vz9w@!3zT83`fAD)7FiN z%E#yHKH=XD_`kn<`p5a1AMRaQ86QOL{)%L`TkLu8Mw9-$C1niAR29H;NZ7{ztSR}7 zK50y=8p)3z*2p0!(U-{_*9q266n(r>`?uNZtvd}{b1<5=ZZs`-<#Z||t7-nn_|ffb z478OWPm*@lSwJSh&$gpSt2jWW2LrbTZMr!47Wh!*Y;{G4H60v z4o&cjit`SYx_F8l998bFEo|ypb^J&I2iT`+j-NyO&bd53Se^$u!Mu*U0G-(l-0dm& zv<0N#2(45kuGH89L8~p4cJqXBbEtH4taANK_2csmuV*{n-RylkH@J=e$N6hp zuQsE0|0(J(Ul`~pC|U$=&&@`N^C$cR|3ttassKg{5(e{>p!wOE&g#jc-|5Kx@mk~0 zx10Zdt9t8h9pL}-)%x$wm0vHH*Ry?VV}1I>F<>x9~N`6v34xu-O1e7{pnEr4pn&22>6CY-lI;W z9`+XaMq&5+kQ@={y@5i1+e9=2i^n5U6o}*cpd)r2NykeW9+>c*Uh+tm=YKdPV#J&P z>aoIBmOrCFPzZkM33FddZe4kT{)C|^pRSDj+5w`S&{qN?KhVVz2qCEf2*qJfxwCVA zu>XKkFq4}!k-`VH1fB1$ll<_xJRVq{ds>bSd?S0w2wMOq0$yPY$QH~BP+x&?&~m+c zr8x%zL93lbn|-FuK@0S2+ZeBXHr?`iw(ISUzSnan-`zg_-GiBLZ(V#nJ6#bcjQHwb z+fw<%TDeUkuQvI-HEyaj?wmPpviKMLhYJ%1G_n)9lGbF(@m$7}3G3EE*LT+|KHMz( z>2?)Zp1;l1KJLvsSIB5)`!>+LdiaQbQOv10dY_QoKt|S4Vmic}b}7G-P66={ubq3) zhdnHbX;-@Y=em0Ve}S8wD!}d=vwXEZ{q0~5@P9!30k*)?R^|0lS(8dC2}LqJ!>F#| zf&Y0J((Wt|oG2hR_HaaXLcSuLLUas_-tP@6&B|~#hzWp&p?aXz)I^*!5`Q?x5^t_d zt!m9bs-|T?QgW!YyQi==121S-8@QgqR432mkQm@ZDLjKg6F}kYmgeJa#YBy%a zlc}5xc*etp582+`IXVMLlcDz+5(RmOkOXpyw|brHjSNrBYyIr7qW~mm6}H zn)8?2i`IKg>;0vhqi_qZdpZTRC*5zZ_rJI{@cQPdcXy`$zB2c5{>Izcb416lPHGc? z&k2$;gPPdsQrVPQd9E17|AT*DuDC6YHdw@e^-b;8LdVNXrVqERKi{j_y4&{MY3r@3 zxY2YRbbxK=_;+$bK%!w-K|V^i^({KaqrzEM&7@mmDFy<;f9C;$hp$1VnmN{Unn_%Kid<7I~dAz zj|RXsR7Dz=hqL!f#qe03Xb{s7_z`2>QCR1&n$%K~8;0sj0T;A7v$n0Utv;*X|0~a! zLt&sl0A1u*9>HC?x+!ZzgEB281ZA`Q&aT_H-8MFPO0Bqi(1BD0`gQ+%yCh8Cnszo znE~P?HH6S+I<`l~tz}S42>4P;Y%!S}xz`1C;BWy?dA_x4=4jWLwJak#MCr5do09lP z$Fd;)^S(FZLx1M`<7p5Gy%={d+;^E`v00TX7w2Xc=))UZ?CB5YW9-zbGse)MP~>Is5l!c)Qe*qo6_`z`v$VyrD}{*?-V)%J&SEit z!Su=a=-3NITp$81>wp(025RV<1$c=`tFCY zWPj*Wf8Uq+ZFkzsW685d*;##lN+bp(VZmI0Py@pwRE1(Py`sSF1kWFId*~jK4A%&j z8_1U8U>0NuwhYN5dEzozX&85Wwjj@%QB|H%A&nO4WSYjTQp%Cwz%O=z-lhge0gWSy z{o#a=a43SH?fgTQk5dyFaY96bHdT`;&?bXh6zI?^K+hFO0sqZXB>=u`7DBhUZTr8h z=fhaj30DoGHKQ1)ajWI=zy)1yNM3A7T{)Jy+?BQ3U$8!Ge0rwh`E(;}0VqOwbpzJ_ z`1cDJq50!a^B2af>hq9Tx1^rdDWJl4#vBi`0EHE2%xR+~>S1H%upxa!pE#7yJ8R&L z6%ubXiI;m5ACG5lJ*@uza`DfTrloSpxs;e;d8DoJy#PE-ybiedeK+n4jhiR|zCGC+SD@V{ad zUoI~xAT#;yu)=-C{!ttssI9}q9toqlBP1adK>$G*7 zT&<2@tWzyDK{_UVxl_H`o40;a|76_qbgK6GOxw$=$6sC_d^I=r?(XEfTNB^iI`i{` zsf*Q`z8t~P1k%YY&Un6HQm>e@WK5N7&R8@frtBeo8m#}3eEw9i@M@L#f`vX|!YvIX zZ7noxJ#75zNYSlg{*W@NiyzX-MRWCgwg~QA@^Bg`S-~sdPqYu9yM)F%h2+F0!bQOI3zt?+eQ9C|(h(JP2q}q? zQ+&wg1idhfT9sHJ3&zQU(7-=LeYKxz@5*&L!n1b(!UL$hLY#9VfpaNK3M1EZS2e~P zx&|+lB;G0DJuQn{FBSv-um!g9w@rsZu%;K-Cc-5CKlm@#s(?n zsLcd{7xescHypt)=SH5+4t=;k{rc+g*6QUxjnu+Jf8d4t{4mw4p znD90Mvz|q*q>;hxspc@tSu`ycofZ-hz0WaXmmN1CY{Xi1{dn(GV|AIBk{Eh$B%8L@ zn)0S61H}K|blX}Wz3ok(vnu=2Rj~enD?)N`rysT@5HWT>!XP}u0|isS@`@G)5;-2o z=slkJ1HPDjzHl#2!^zrmYZEcDHf<{>lq-u?h>;SSU#v-{&10wW{BTs)FyG(rR0g6! zX#}`fj04VsgO0g@{v90hM3Ufq3jbmnzl9W}cKK63Kjvx<5Pp+c zpFUeEYgUTX(G(D)rn&f0o&AYU{)9sT2`DDfDU|7nhIksxg1`q$0Wq1w;lK;!dSc*q zfcV-s6(2Wf={w(cUKtZtB-J(M)}!phQ3pdfJ~+5Fu#SW=odWQ?ofvj*Jo_Ul-o8~N z+!>YhWgyp6bn1Yq|td;J(^#T3nNZF%_+9wyIb>rlR2WQ{j8hGb60A%rbZV>Qv9&~OVvryI zh%?*Em*W>83=Zuz8m{$p&GonU79=Jk><85(!2eZGDmee3KL+|sFOH{7>$u?mq(u=R zR>?dP2&uzZSGf853j%RumvBH5h$yiBLBopY6$3KP6o(LoOH{05B;S{evq$7IGW$z< zjB;ZZGYc5$5(E$97$FOzqjtH+hmoKz9=Fqhy4OkU9eKoAzy3zRK)!La#Wl@Z$ zCd55I!q*rRRt&->G<>6gS<7P@Nf=Wsv7E!K5%VoF+D_a?hjD^XZH<0_mis z^m=dSy`j!QQ!3y;kV#x@O?nB+|NS=ovG0b|kGoW3In+~y8d(3pRR-fva}Hv-BQSQp zBxi8rQGx&x(=!GlKO#Ro#{PZ^i*Tb%WP31+)=UD}0*iXi!y?W@0}mRR&6`CJEs}@jvh68Y zZAn{e&)w+JZVnbd9j)%@a8_p9pz&u343|8VmC?K2YiB91# z(EI%pQ9S5UBoC%Qb_V^mC*Knr`4^A)FgC>n#Sf&%qh)A^NLc)4xj_`hMD6o~%QEN^ zz~U$FcH%g=r}~E$MMd_Cd6#pNKvuof|A6-JAF4wSUd!TN%jH9=3!?o?;NBaB8wT#W zp0QfYSt;SHmGEIBY>%}PAq+Sd;9f9q64>xB6+N(sma7!&P08SkuC``@3dee%etoEH z<1~b$Tc2F&`E(H;d2{2`%gZM}-kDq+Xsi@dtbD@JI6mNSWz%8N8e$0`3Jutiy9s9GLoSB%+MN zXi~^4g?t@_l#RipAP|axfGi@>Bove>mAyv&Onc+?|6pgF^|4oCx6nN^sFZl zEYF9ryl1`X-H9>niAuSDB+JF0?H-?qkiyc+Ldx6hq&IU=O@&DW$|BXliv;y=IWCe-J`|P~ElfxA2?qkA_xM^R8q^;DN+{5CKqyh70&dn(O+Ck-L^&LZ zKj=$w@BzXV_mG>|#Y5$3D*(yxJSf}q`yAIlwG%w109*th7x3e~b06!qrKbfPamI1^Q#vLPjN*Si`|I z^P=0i5ii=be;c-5)q)g&zb4EsEpUGx+AljYEI$ToVX#`1iW;FHJv>Ym=x3sltAyO9 zI9a1oUd&)XmJRd?<^F*}5V!I6&LWfa0zp->3h=+$)ihPBFBhXbQ?S>nWRJR1za7r` z>q!2O6Z-dK`io{o0X~Lu(2ca;!$u+YMoWT;pq>h5pW{P__}V+hE*Knsjz>%hUu|F} zYlw2}{(wS8G6dq}2yS_zk?M)BN-izrWa@btvQTpDAz!+KCxFk`bC9uXkKn-G6!(M1 zNY^%c=t&`BLW-D4K;2Bk-N~We&Y|7TWrEv(Ps>{<;=$p&reoUHzmWx7;MY^IeH_F3 z2mI%aTnJDs!YKepbE#y#Dt@CT1;ipYj^=K36|D7})`rVACTcdOTb^C%d2+e;&5eJsBklr+8i$jQLh?_q=-yT3P;HOgT&r`e0MMM zAtzZ#Xi5wYreLj#G5toPkU@Bn0F`hUJvDM^r#2a^ehyDbikFk z&zFazi<+Vv+%CS z3`#;xN=YVB%JD>i9}B|20_do_dzZ}7-iQo_lysjg8rp|lNWtC8AukqE@8uA#s*tuR z(9mz^+rpkucC=E&*(hRe=;$j(#!4}B8~?RZ-nxYk$1x1(mbh5VwYjFHBHJCgM6g~e zepD5|S)H=ckO_6!8y)#;#|^84rK{tWYm@blW;)i+cRZgRe0%fs_jjg#ymkJ~#j(to zP!m16oJRoV&juy4Ny$2@q<62LChA`zk#1catO`9h?T*#llm4x0EOvGs7$m|K`T{4|k_uTs*aP|C&6|%|Jt1x!4*hr9nw=OJE;Q<_xAV zhg9U#34|d@)Sw_@RE8Z_u?FMW4IHwO5L3A7({GYA~qW7$lq;C-bt7B`4HM z1X>b76&wcO1EX8+9Rk^HflmM^{c?Q*p*ZpRrEi{nbN11>6PKHcTH-O+YZ4y!4yi%`FmL1>HFk zX2BrJ0sPGhZPdZwXvc6~2u*?H<+GDc=<7^erPwQgWq$}t(Y2AG4OCp0kT{-Bn@Gn^ zrJ-liqONB~-cd*0N<~~r41J&hF7FaX0xA9*sLPMX{ zyj8YYCWXbnX^}jwj0f#Rz#lle>qm1}x(XNj3`@h7rPI~R=Ng}1>wkQy@7d*{@8+hS zP7lAHIg=lY)X@-THmY2Jt(Fkm66k|!{#X|8bOwDoJr)`aO(ha8q%lY0XdMD_GoRih z;FXZ6MR>9r5e4`g$b>Q$tx+Zdr?FPTha*@O1QbMfp0gX!DYK&RdLoDCAC1A2r~4fB@JX}98XUM=RYGdjOXGEy{lLbE{rjff#=`CXY=QF?D*|3pWD9o-+y`j4LtwPUw!_+KKsp%FW|FP z`2O!c`==fM1D-#?^Y4H4ozH)Hw*A~MetG^Jp8w;Q@Be;k$BsXI_TN7JK92DG$6ub^ z;rUO$`Z))F^=t>vw%-MQ`%ka`yuO-8FcphFp_E!C}7fmLHvVc z003gUwpJD{*gl6s&tMsXOdntW!P2Y3kutF!N`<~G%Mko78mOVB|4=q7GYfc_bOTe> z3zjqmt6z!ikW{}E5FBvhs2({72Z=*=U@Pe@m5(SgIeMwAvS-H`T5VqVjIUp#Os9gg zzjhP9wS3-vO5?qT+pRHhl_!<=(-#b4d2OmOwhN<__#xUaDruw9MadltnkNU9&E}5C zJ}?qVgmO&yWs?c^nF-2!2MV-3AssyKARm-y7SOwCBc4kf`-38v*f+w<^@lg+N?eiY1p!}#fvn?C)OO|I@N z4{I|xoYye04b86t%|&kVAlAkz{*o!eRXZD-dF=rJdwm6oR@dP`*FLV`-e&prC6ast|< zZ&eE}Ep)r{XTj6mE?yR87y(<0Ok{N5WGhuzBDg8Rkj6*(*ApUdx(pzYXAUbXi#4!0 zzy>#Q#$tf@N5Gb2$I{*{J#n$oIz zA$w~Zi70S3n`-#Sr5*q0Jar)z1ApA!>PpJ0HYQov6Yq?EYEiIEvKj`uH#M&mr!<+I z>%wO%u1*`lc#CW_B>j7xD z+WZpbo!sn~fuKWwqqOkyji?4)yp?&=dnUT}_maSCYu7$l$KjiLs*mHtE_{8`0p|V7@atkk$3PSH5GixlKy1o9U zECy_1H#4N@Yu7UE&ZWhK2{(;I@LPo#HY-=wH56Y=@kKXtr_V+&xNRrxy?{zVRk6BW z{GU2MeByOhrAM(krV}dEe3|_V17oi@7NqY@07YEW`niVcnrrCVPXoc%zb%Ws%6wBtA~K65kC2WB&BQT2X7b|Czy1NhN3paF^0iEO&C4u>_Q&q$(gCGtS z@;sI0pXIU>7jbp(w;H)swOqXlveNOVBzbWdh4tzx-ci0V$@IEm8xqlXLdC!!GRZTL z-HIs?m6pX@ zQrf8vEa=z2uj)un=swVrIA_0{^fk|5{)q>O_aXzCS!gHX_BhiLN!-rQJ->5W<(WqF zuext~`hX>e?zZ*TL{kn`Wb!efc?6vC@(g1euQmdv z65~0&^&KvoYV!3WYy`7r2P#Xn`Qy)ixg?KUn%%;hB_wla`(n%DQ1W9=-6Kk}KPcfC z&^$bEKE<+&2yh$LUz85KV{SLsuV(FAJN%NVz=laOf%I8X{&Z)I221RdF2aey-P#}T zd9Z_#P8I9e<;Cd;nJ#uyo~|0aB^^9^P&|23_&R2I^ci1?wY0h%;wj}}*P4&*D4MN% zy@->$mgaQ-xDZ4kBCCAE#Fa9y&(({fDJfR7-sA~B1a&&bjgI%D6VL(S1OWgj1X3S{ z(1#(BF33}86bfx<07Dp~5s2tEZ_NJ`Lc;K5V$A<90B2{m1qFrgH_*vMA{rkS5D`KM zr2~Qqp?>f{1Gr$CSMR|WNXkDXDk+Q}7DAwhlLG)D4cSy!482a|3eH9 zi=x4(gm4&5;8Fodl*x&hh#LaM{)a*fBhsV%!U+J|5WhfzgI^#yAV}2+ZU{GqnWzdL zih?0bU`S(C9MVXYM5j~HdU{b&QE>8iTM&T_4+{^Ji+5BP91F0;I9fHF^G*2|raWcw diff --git a/Tests/images/lena_gray.jpg b/Tests/images/lena_gray.jpg deleted file mode 100644 index 72e9a4a77172c62812b054e2b05a06f1bdb17002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23013 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 Date: Thu, 18 Sep 2014 17:50:31 +0300 Subject: [PATCH 05/16] Add some Windows-only tests --- Tests/test_imagewin.py | 89 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/Tests/test_imagewin.py b/Tests/test_imagewin.py index 0ff22601e..6fb58a0dc 100644 --- a/Tests/test_imagewin.py +++ b/Tests/test_imagewin.py @@ -1,6 +1,7 @@ -from helper import unittest, PillowTestCase +from helper import unittest, PillowTestCase, hopper from PIL import ImageWin +import sys class TestImageWin(PillowTestCase): @@ -32,6 +33,92 @@ class TestImageWin(PillowTestCase): self.assertEqual(wnd2, 50) +@unittest.skipUnless(sys.platform.startswith('win32'), "Windows only") +class TestImageWinDib(PillowTestCase): + + def test_dib_image(self): + # Arrange + im = hopper() + + # Act + dib = ImageWin.Dib(im) + + # Assert + self.assertEqual(dib.size, im.size) + + def test_dib_mode_string(self): + # Arrange + mode = "RGBA" + size = (128, 128) + + # Act + dib = ImageWin.Dib(mode, size) + + # Assert + self.assertEqual(dib.size, (128, 128)) + + def test_dib_paste(self): + # Arrange + im = hopper() + + mode = "RGBA" + size = (128, 128) + dib = ImageWin.Dib(mode, size) + + # Act + dib.paste(im) + + # Assert + self.assertEqual(dib.size, (128, 128)) + + def test_dib_paste_bbox(self): + # Arrange + im = hopper() + bbox = (0, 0, 10, 10) + + mode = "RGBA" + size = (128, 128) + dib = ImageWin.Dib(mode, size) + + # Act + dib.paste(im, bbox) + + # Assert + self.assertEqual(dib.size, (128, 128)) + + def test_dib_frombytes_tobytes_roundtrip(self): + # Arrange + # Make two different DIB images + im = hopper() + dib1 = ImageWin.Dib(im) + + mode = "RGB" + size = (128, 128) + dib2 = ImageWin.Dib(mode, size) + + # Confirm they're different + self.assertNotEqual(dib1.tobytes(), dib2.tobytes()) + + # Act + # Make one the same as the using tobytes()/frombytes() + buffer = dib1.tobytes() + dib2.frombytes(buffer) + + # Assert + # Confirm they're the same + self.assertEqual(dib1.tobytes(), dib2.tobytes()) + + def test_dib_fromstring_tostring_deprecated(self): + # Arrange + im = hopper() + dib = ImageWin.Dib(im) + buffer = dib.tobytes() + + # Act/Assert + self.assert_warning(DeprecationWarning, lambda: dib.tostring()) + self.assert_warning(DeprecationWarning, lambda: dib.fromstring(buffer)) + + if __name__ == '__main__': unittest.main() From ec3f1a568179b053d5f5562932bf3068ad655830 Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 22 Sep 2014 10:38:50 +0300 Subject: [PATCH 06/16] Temporarily remove fail-fast --- .travis.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 6226e5470..c1e95f87f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,9 @@ script: - CFLAGS="-coverage" python setup.py build_ext --inplace - coverage run --append --include=PIL/* selftest.py - - coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py + # Temporarily remove fail-fast + # - coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py + - coverage run --append --include=PIL/* -m nose -v Tests/test_*.py after_success: # gather the coverage data From 5342390fd2ce0941b837f426ce93a60352aa1e6e Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 22 Sep 2014 10:39:05 +0300 Subject: [PATCH 07/16] Fix test --- Tests/test_file_jpeg.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index 2111cfd59..60eb526c5 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -44,8 +44,9 @@ class TestFileJpeg(PillowTestCase): im = Image.open(TEST_FILE) self.assertEqual( im.applist[0], - ("APP0", b"JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00")) - self.assertEqual(im.applist[1], ("COM", b"Python Imaging Library")) + ("APP0", b"JFIF\x00\x01\x01\x01\x00`\x00`\x00\x00")) + self.assertEqual(im.applist[1], ( + "COM", b"File written by Adobe Photoshop\xa8 4.0\x00")) self.assertEqual(len(im.applist), 2) def test_cmyk(self): From 9ec58dad82aed7782ebee98d29ca98c0b2286678 Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 22 Sep 2014 12:37:35 +0300 Subject: [PATCH 08/16] Fix test --- Tests/test_file_jpeg.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_file_jpeg.py b/Tests/test_file_jpeg.py index 60eb526c5..4198def22 100644 --- a/Tests/test_file_jpeg.py +++ b/Tests/test_file_jpeg.py @@ -308,7 +308,7 @@ class TestFileJpeg(PillowTestCase): tempfile = self.tempfile("temp.jpg") JpegImagePlugin._save_cjpeg(img, 0, tempfile) # Default save quality is 75%, so a tiny bit of difference is alright - self.assert_image_similar(img, Image.open(tempfile), 1) + self.assert_image_similar(img, Image.open(tempfile), 15) def test_no_duplicate_0x1001_tag(self): # Arrange From bfaffaefa0c9d42edf64393e96ed4b7195bbe1e6 Mon Sep 17 00:00:00 2001 From: Hugo Date: Mon, 22 Sep 2014 18:26:53 +0300 Subject: [PATCH 09/16] Re-enable fail-fast --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index c1e95f87f..6226e5470 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,9 +37,7 @@ script: - CFLAGS="-coverage" python setup.py build_ext --inplace - coverage run --append --include=PIL/* selftest.py - # Temporarily remove fail-fast - # - coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py - - coverage run --append --include=PIL/* -m nose -v Tests/test_*.py + - coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py after_success: # gather the coverage data From b23c57e12a982e500c7652086223398f57dc08bd Mon Sep 17 00:00:00 2001 From: Christoph Gohlke Date: Mon, 22 Sep 2014 14:39:08 -0700 Subject: [PATCH 10/16] Fix segfault in TestFileJpeg.test_quality_keep on win-amd64 --- libImaging/JpegEncode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libImaging/JpegEncode.c b/libImaging/JpegEncode.c index 711b201e0..dcb2e1151 100644 --- a/libImaging/JpegEncode.c +++ b/libImaging/JpegEncode.c @@ -151,7 +151,7 @@ ImagingJpegEncode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) if (context->quality > 0) { quality = context->quality; } - for (i = 0; i < sizeof(context->qtables)/sizeof(unsigned int); i++) { + for (i = 0; i < sizeof(context->qtables)/sizeof(unsigned int *); i++) { // TODO: Should add support for none baseline jpeg_add_quant_table(&context->cinfo, i, context->qtables[i], quality, TRUE); From 2bdfb5b25e9142d5ce836d1fd1a134204889b3ab Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Tue, 23 Sep 2014 13:56:22 +0300 Subject: [PATCH 11/16] Mention Image.tobytes() in the API reference It was inexplicably omitted. --- docs/reference/Image.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/Image.rst b/docs/reference/Image.rst index 11666dd0b..249543004 100644 --- a/docs/reference/Image.rst +++ b/docs/reference/Image.rst @@ -135,6 +135,7 @@ ITU-R 709, using the D65 luminant) to the CIE XYZ color space: .. automethod:: PIL.Image.Image.tell .. automethod:: PIL.Image.Image.thumbnail .. automethod:: PIL.Image.Image.tobitmap +.. automethod:: PIL.Image.Image.tobytes .. automethod:: PIL.Image.Image.tostring .. automethod:: PIL.Image.Image.transform .. automethod:: PIL.Image.Image.transpose From a2a033ad2d6636aa40a89d9dbf5ef1deecd0e4cb Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Tue, 23 Sep 2014 13:59:35 +0300 Subject: [PATCH 12/16] Mention that Image.tostring() is deprecated This mirrors the deprecation notice in the docstring of fromstring(). I'm assuming that tostring() and fromstring() were both deprecated at the same time (Pillow 2.0); I haven't gone out of my way to verify that assumption. --- PIL/Image.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/PIL/Image.py b/PIL/Image.py index 54291fbdd..cad13c3b6 100644 --- a/PIL/Image.py +++ b/PIL/Image.py @@ -664,6 +664,10 @@ class Image: # Declare tostring as alias to tobytes def tostring(self, *args, **kw): + """Deprecated alias to tobytes. + + .. deprecated:: 2.0 + """ warnings.warn( 'tostring() is deprecated. Please call tobytes() instead.', DeprecationWarning, From 9c3284977cce0bbfbaabd93151915cee4c9203e4 Mon Sep 17 00:00:00 2001 From: Hugo Date: Tue, 23 Sep 2014 14:20:05 +0300 Subject: [PATCH 13/16] Update CHANGES.rst [CI skip] --- CHANGES.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.rst b/CHANGES.rst index cd00ce285..02e8d318d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,9 @@ Changelog (Pillow) 2.6.0 (unreleased) ------------------ +- Image.tobytes() and Image.tostring() documentation update #916 #917 + [mgedmin] + - On Windows, do not execute convert.exe without specifying path #912 [cgohlke] From 1f377c2ace924332957d2099d325bb2a4a8b30d1 Mon Sep 17 00:00:00 2001 From: wiredfool Date: Tue, 23 Sep 2014 09:52:03 -0700 Subject: [PATCH 14/16] Merge from master --- CHANGES.rst | 3 + PIL/Image.py | 4 ++ PIL/ImageWin.py | 8 +-- Tests/images/hopper_gray.jpg | Bin 0 -> 5353 bytes Tests/images/lena.jpg | Bin 4788 -> 0 bytes Tests/images/lena.tif | Bin 49470 -> 0 bytes Tests/images/lena_bw.png | Bin 1943 -> 0 bytes Tests/images/lena_gray.jpg | Bin 23013 -> 0 bytes Tests/test_file_jpeg.py | 77 ++++++++++++------------ Tests/test_imagecms.py | 26 ++++---- Tests/test_imagewin.py | 113 ++++++++++++++++++++++++++++++++++- docs/reference/Image.rst | 1 + libImaging/JpegEncode.c | 2 +- 13 files changed, 174 insertions(+), 60 deletions(-) create mode 100644 Tests/images/hopper_gray.jpg delete mode 100644 Tests/images/lena.jpg delete mode 100644 Tests/images/lena.tif delete mode 100644 Tests/images/lena_bw.png delete mode 100644 Tests/images/lena_gray.jpg diff --git a/CHANGES.rst b/CHANGES.rst index cd00ce285..02e8d318d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,9 @@ Changelog (Pillow) 2.6.0 (unreleased) ------------------ +- Image.tobytes() and Image.tostring() documentation update #916 #917 + [mgedmin] + - On Windows, do not execute convert.exe without specifying path #912 [cgohlke] diff --git a/PIL/Image.py b/PIL/Image.py index 34b49c802..99ab6327b 100644 --- a/PIL/Image.py +++ b/PIL/Image.py @@ -665,6 +665,10 @@ class Image: # Declare tostring as alias to tobytes def tostring(self, *args, **kw): + """Deprecated alias to tobytes. + + .. deprecated:: 2.0 + """ warnings.warn( 'tostring() is deprecated. Please call tobytes() instead.', DeprecationWarning, diff --git a/PIL/ImageWin.py b/PIL/ImageWin.py index 3e0bbaf99..300d118c9 100644 --- a/PIL/ImageWin.py +++ b/PIL/ImageWin.py @@ -23,7 +23,7 @@ from PIL import Image class HDC: """ - Wraps a HDC integer. The resulting object can be passed to the + Wraps an HDC integer. The resulting object can be passed to the :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` methods. """ @@ -36,7 +36,7 @@ class HDC: class HWND: """ - Wraps a HWND integer. The resulting object can be passed to the + Wraps an HWND integer. The resulting object can be passed to the :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose` methods, instead of a DC. """ @@ -86,8 +86,8 @@ class Dib: """ Copy the bitmap contents to a device context. - :param handle: Device context (HDC), cast to a Python integer, or a HDC - or HWND instance. In PythonWin, you can use the + :param handle: Device context (HDC), cast to a Python integer, or an + HDC or HWND instance. In PythonWin, you can use the :py:meth:`CDC.GetHandleAttrib` to get a suitable handle. """ if isinstance(handle, HWND): diff --git a/Tests/images/hopper_gray.jpg b/Tests/images/hopper_gray.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db3831dedd1c993cbad60da9d0316c8ec7823170 GIT binary patch literal 5353 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 H*w_ErV?`qQ literal 0 HcmV?d00001 diff --git a/Tests/images/lena.jpg b/Tests/images/lena.jpg deleted file mode 100644 index ed01c4e6769b3f01b13d78c6ee4e99e123d36464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4788 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
  • c}~ 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 diff --git a/Tests/images/lena_gray.jpg b/Tests/images/lena_gray.jpg deleted file mode 100644 index 72e9a4a77172c62812b054e2b05a06f1bdb17002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23013 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 > 0) { quality = context->quality; } - for (i = 0; i < sizeof(context->qtables)/sizeof(unsigned int); i++) { + for (i = 0; i < sizeof(context->qtables)/sizeof(unsigned int *); i++) { // TODO: Should add support for none baseline jpeg_add_quant_table(&context->cinfo, i, context->qtables[i], quality, TRUE); From f0591e2ac5060ac3e77e28265a73064528247c20 Mon Sep 17 00:00:00 2001 From: wiredfool Date: Tue, 23 Sep 2014 09:52:34 -0700 Subject: [PATCH 15/16] s/lena/hopper/ --- Tests/test_mode_i16.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/test_mode_i16.py b/Tests/test_mode_i16.py index 9a0f6956c..20e39b235 100644 --- a/Tests/test_mode_i16.py +++ b/Tests/test_mode_i16.py @@ -5,7 +5,7 @@ from PIL import Image class TestModeI16(PillowTestCase): - original = lena().resize((32, 32)).convert('I') + original = hopper().resize((32, 32)).convert('I') def verify(self, im1): im2 = self.original.copy() From 20a90494d1979e5a3d48d95c642d73c13060fbe7 Mon Sep 17 00:00:00 2001 From: wiredfool Date: Tue, 23 Sep 2014 10:11:34 -0700 Subject: [PATCH 16/16] Fix for docs. Can't wrap warning blocks --- PIL/PSDraw.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PIL/PSDraw.py b/PIL/PSDraw.py index 208f7b6a6..5a24441a8 100644 --- a/PIL/PSDraw.py +++ b/PIL/PSDraw.py @@ -74,8 +74,7 @@ class PSDraw: def setink(self, ink): """ - .. warning:: This has been in the PIL API for ages but was never - implemented. + .. warning:: This has been in the PIL API for ages but was never implemented. """ print("*** NOT YET IMPLEMENTED ***")