From 142473c7b43a72b5dba534a26cb614b5b207ada5 Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Tue, 26 Mar 2024 21:29:25 +1100 Subject: [PATCH] Support GZIP_1 compression --- Tests/images/m13.fits | Bin 0 -> 184320 bytes Tests/images/m13_gzip.fits | 366 +++++++++++++++++++++++++++ Tests/test_file_fits.py | 7 +- docs/handbook/image-file-formats.rst | 3 +- src/PIL/FitsImagePlugin.py | 96 ++++++- 5 files changed, 459 insertions(+), 13 deletions(-) create mode 100644 Tests/images/m13.fits create mode 100644 Tests/images/m13_gzip.fits diff --git a/Tests/images/m13.fits b/Tests/images/m13.fits new file mode 100644 index 0000000000000000000000000000000000000000..1f2f82a4f18e809fcad980498cb2f3b126903a37 GIT binary patch literal 184320 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

#nO<8I*45$V*nejI(>nRP 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 X?w|bkNeO&X0-uz?CnfOzr3C&r4ZA<1 literal 0 HcmV?d00001 diff --git a/Tests/images/m13_gzip.fits b/Tests/images/m13_gzip.fits new file mode 100644 index 000000000..cf7acea4e --- /dev/null +++ b/Tests/images/m13_gzip.fits @@ -0,0 +1,366 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 0 / number of data axes EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H CHECKSUM= '0aE73a960aC60a96' / HDU checksum updated 2006-11-15T17:28:30 DATASUM = ' 0' / data unit checksum updated 2006-11-15T17:28:30 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / 8-bit bytes NAXIS = 2 / 2-dimensional binary table NAXIS1 = 8 / width of table in bytes NAXIS2 = 300 / number of rows in table PCOUNT = 111820 / size of special data area GCOUNT = 1 / one data group (required keyword) TFIELDS = 1 / number of fields in each row TTYPE1 = 'COMPRESSED_DATA' / label for field 1 TFORM1 = '1PB(506)' / data format of field: variable length array ZIMAGE = T / extension contains compressed image ZTILE1 = 300 / size of tiles to be compressed ZTILE2 = 1 / size of tiles to be compressed ZCMPTYPE= 'GZIP_1 ' / compression algorithm EXTNAME = 'COMPRESSED_IMAGE' ZSIMPLE = T / file does conform to FITS standard ZBITPIX = 16 / number of bits per data pixel ZNAXIS = 2 / number of data axes ZNAXIS1 = 300 / length of data axis 1 ZNAXIS2 = 300 / length of data axis 2 ZEXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format is defined in 'AstronomyCOMMENT and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H COMMENT COMMENT This file was produced by the SkyView survey analysis system from COMMENT available astronomical surveys. The data are formatted COMMENT as a simple two-dimensional FITS image with the same units as COMMENT the orginal survey. CTYPE1 = 'RA---TAN' / X-axis type CTYPE2 = 'DEC--TAN' / Y-axis type CRVAL1 = 250.4226 / Reference pixel value CRVAL2 = 36.4602 / Reference pixel value CRPIX1 = 150.500 / Reference pixel CRPIX2 = 150.500 / Reference pixel CDELT1 = -0.00027770002 / Degrees/pixel CDELT2 = 0.00027770002 / Degrees/pixel CROTA1 = 0.00000 / Rotation in degrees. EQUINOX = 2000.00 /Equinox of coordinates ZHECKSUM= '2f4R3c4O2c4O2c4O' / HDU checksum updated 2006-11-15T17:18:55 ZDATASUM= '1803906202' / data unit checksum updated 2006-11-15T17:18:55 CHECKSUM= 'CeA6FZ03Cd73CZ73' / HDU checksum updated 2006-11-15T17:28:30 DATASUM = '3567348586' / data unit checksum updated 2006-11-15T17:28:30 END "/"6QOSP)SyK7 +- N { & )2&[/**',Q}" -!;# 9$D6%}8&-')*-+? ,]$-}./013 4*5J?6gQ7p8e:gi;g=5H>8?A"B5BCWYDiEG[zHiJThKnM%rNfPaQkjR{T6UW3XrZ?_[m]o^}}_ai~bdoegiljnlmvnprit*uwy"z}|<}Qw<C9vH)oW!gG!ùūǒxb:Խ֚zQ#qO}gX?q> +  clA "6#%p'0(*,../1J24c6 79;m=+>l@flAoC>qDzFGI!zJkL"{MfOqPntQnSSoTV0WYJZ\p]_xa{btdbeuXfDh/@is0jGkRm*Qn|]obq*\r^scuF`vKx @yT>z;{/} (~<'d $).D,r4@99K3 (,6I"       7Uce^_["c' ;n13pH\ +.M +"%"}DA GR7я ŧc^wly s^ؾg_Ap?.A &u:'SЀJB\2'73Xw/&؀wWQSi19) bo<܍+4uE57%˯gqj˦rx2>`žk]>[V+nb2=a o0B{/paC+quk}.mM}Y.݇~8s;)q~?iNAВLT< rw cb1( /@G =O`eſOor3;3̝drG6!~gd +>Ejx۠ xKLRb3~ ԰S'k֭Z]<}S=CBU@ +75v6YI؀{P$ϥKy;Șwoק5ƹzG^nټxNĊNYohfF!]b/CQ rwQ4/|LϰA.Q˄c:p KiL̐Y̊ `cao!n` -%X|zz,YvIAJmv)G7}p^z`[=c0'w θ?uWI!Ae]`:` P{jjwhp[ծH3h!{Poaaԫk2mkd53sD?=k=2d<.f7oU;<ǜK%z]gMo9><^GԢswj])g]{~=N@ +ZTq vb#"A + +(h.@ 7jd'g&ޙokf@D&<'<P'֋_x>>Wx~gn;GN.J CMN` v'<.u|s_7a3)BR +}J +kI<•};t +V?K3LL]msn53xjs<3b)KB:۩~;<{ﴯZ~MfNgR%5{J@lm| |c}Csj#"Y[#bkc/Xi#ٙNBClL8?wؾFk+]f n=W s ^3GQ|"ۇΏTk_؞JX4Jk8=&þtL߃![_fa8|Ã6ou^ME-]>KDzyc/恺Vy>*'qAesgw3TooUzWI޴=]wh_}^??rAJiRZ*KJ@x/<1d& ]F\xK'ڿLN̬4E +.UH\ ˰ Gp gp [8;rrt̥&u&-p [>_'X! Zk~Oz8Gxgbm]v|6|< >\^cǩoI;0eusjܳf +g_+ N>9c }>sxu2 +0kLm+_^z|>em(x(I6"D$ IX-h^Y؃9 3Π#)#bZv 6[ X5:}͡Gz0C:vOoGvN$YESOҫ2z^?2e-V&~Q.r>04?^'wtţo(mx|c{{ Mn09qU]UXz $6ܤ{b:‚.>EN&c%6'3780. tPs<"eWy +Rsap/xk](Ì7_E-5|W>EZǔ8.#Oi/]G̹6/g8;l#0Ӵ=n}'ͣuM.7;a?6ͫ -hvCC*>wR^+x-<_<+S Kk9nA8+0ݳ c"CB%@}Fw!*8y h*D|#|>nkʘPöϭ3G5oN#uRy=Osx}7;l*2^}Ը1}Ww$r~?};NAޏ + Cs@D +$*i(ve'qʾ}Cx~.Jy _={}ۇ|}mw{՝y-w!Z/_gL(H@MNAKxNCa@4*Q6lX`jBa-8vH,pa#"=i! + z뫞Ë拾GpSA̤T)Gx-`i{?*=p)H Tq֏@w!ٛ=+ϛ*Vګgxb3c.p~3jX+̥ٱ:x|WI\}J.` ;ާ4;-y{;/Oo.^xpkMNA;xWO ¥p :2K ,3=]կ{0Mna X c*~4Id25< <@jƺ )V` >ʘozj9OQSuL-3CT|VtPskwˬΙk06$OiNw1YsW?/ lB{g-טI|[~ws2skhω7ڃ?{9#Pӱ}>$ צMn@  +naHLDK6,Xp^oijj ,>ebǿcGD + 5XOSƠsl +ڧ{`LɄ$Hg($-Q/5}Xy桽 mz9{kH֚>{j#Wk> LXfdv`6rգ1m ꯑ~s +Yx?uq_{i4y}y/~s>xvMNA 02Nh&0a͚n('Y`0!8`L>GoDy^wT^xUy=^jz^ǁ1zKzg} A.Ҿ>Fgwy8ޯ8o]uܛ_Tfq9M0{b(@'Ɲ x i2/_tZBXoJЁ#(&ԮrB["I$RZт'xq #؃-XVzn`xo~zs 멟8ez-FzѺRq?V& 9i4.=sn/_Rrշ?Soͽz}\t孞m\ϫ/{gL6OXgԧkĜ8Ͻ1m8SJ@DLL6F]\Ae=x<~5K5egRHɠ+Ҿ{Y%[p-u=yA9:-VB=xo ܁x@#)ՋV 6+KDͲ7D0?wvF(Bǘ +3g8p{?7;( r~mzBɆ{WO$gu\ͧׯh}|#?q6e°KN@DcpI@#>(kv!%7Ԑ*)bL{zi 7-57`01Gr%iS y!=.;i?HOẈxw`^ٓ~=ײWq>'[[qJMZ|Oy$O>~u:;W<^ʓ5v]>YGթyҹ~:woΈs?VWC;`Ț6#~~kMNA˽W$IQzf@6? 7,H KڼJO`e~^tٵ2 7}Fdm``h#+rs"%wC[aL2)x SG&G-`֬s~.ѹzWzJ%?|7W>N}/Ta|Te>'9'S#?6NWs-xuǺjzI3_qsk95]=4;;olEϟ}S9jAEUmf׌ B@@ʜl9tH|ƿwѣ TWCW?f hF{F/'c0D}b l D}+<;Ѓܷzʄ%I̱KI/Fs cv-5x_^:4\0.ޞWӠ-s5z񨖭?ܓ&'xkp+Fpy2ѿog^_j>9o}oAmO!\L~w߅a}ɨS| _tG; 5!xӀRSXASװqˏTpXCbP݂ZT"ʼ~=9 Y~:~fK0DghQͺc+89[c+5wzVC~ygxo݇7#,޶sҞ(0o>^ٯ/츷Fj뻑d7WJίr6ܓ NcΏ??HgpfB??|6OnpSuN`GEJ[( &'!<}3N2/wQE safT|$׌_sˤr݀7:㚼Em5:s$VXde{`m:,ŷh=gێ>_3ms]%[˳}{?R:|ϝ9b5S4;8~Gݗ9}/q1u_.7=NP18} I!h8D:.@IGA˅i4r}}?UT +K@V(^X$uSoӁx7> Z;nbHg[ҙmЄp ;0=͋H o_^ϑ쬆5eb :uԞ|>+ n`Gj39uǙ{Hk?Sq!ݹ&oyNOd󒟬q/|^E*TN0M&V +\ H<W^ Q"Ƴ㵝h#KM-ߛ$Y%1i4*X} {pnB1~ҝ_N+~Ҥ5I1cGʵ.QF3SOjI'Eg َ N:=9i˗VoɆcϾ x8ZDg'gxȿѷ'_81|.|uu_<:^e_'=ڥ/~߽^MG^CľuMN0 X rJmY !!ł O&]|v\;3Kfփ3҂~쉿;; sP\q=}# p.׹u/ў+ 1 :+#x/s܉qDاIaOF㤀dxVCM/w=w vNvѷ#wC`? \,nIcwYzޥz\R^=OW5[sJV.JaXcǹ$u?wJT۬gQ {ZF1jnkr8۟ϣ-"kE'#Їf3p>7$:x:zn1Qܟwz ~2T)5f|'r6Evo.ۭؐĐ=NQ @h8Jn7 AҀhRFPWy̷^u%kMPI3~ &ܿ ,{MN0 *]BHhb' + +UaSq$6,r.8=1ŧcZ3k9iHK:;ҭ/I )wzp +dۊ^#^[/z;B@De_ѯ߃[GƞCՃQ}F['O +o\/ XXT_rqp={o|.1֧·~ ՇsYs9?_=gu|G8c޲383҉{?%uNA Do\۽KH DCi(Z +>Y4#ѥx:=g{mED3pNf# s|[!4MD> ly-OZRQ|OMqJ򩯹+^'j#x,k<5)Mn0sbTP(TZXu; 0a3yɲly2b>7O Xg\i t9+ Is'#_`:kx!򕆄׭~ܗ滚$+{p˵+0p/4%36d$kE~|\|`-3}ț˞FGO8z7rUjy_'uD~>V +ɸ} k&"/bQk0bY5XTmٱ{ޛ& !dðC0Dױ TPYצh=U' ||'?-roS1gy]ØRzQo[.[}:=סJ]2άޗh=Gk{g~wt>GFf@wy:;nADg4 +؏g?`! G$SXG\ZQ-J 4S=ٞ !Í0&Df{Ȉs;{tb6I9mE}5GI: x-)\QZ' 5\۾%fu{R^05Y5؃_G X7Jw>vSw'pYگJ4%󫸯iKɥۼ٬.M}g̿8E" {Kk?twKXAJ@+؂wN`M^+L~_pH;Ż,HM/&׵~j;CM[4c?x'f  @Oߑ ?zcEfe\=Wca!Ͼ/8˓< {ˍƒGRo7 ]_*}?d&Mn0`_-Up6lz.P/+E}O'3MJ~=GZ +3(O9)Ny:ߺB y7C +ߪqR\TQ 0 Jʍn7GxΧKuk~ס)c' cUfoZaMgq/k*йa.ޟi^{~},Wm񪗅zuuwt߸ %mKK1}d2zqԓ"Mk +2N:Ri㌜p` pGp&Ɲ>\Eu3ޓ. +fp wXO+('o;4Ct[pUD`ԈO~oIϻ+5~^x9ϒ10Ӹ#OsMzswe=>)AX}~߃߻h=~!KjgU<}&huN0ƐMS(J"$ Q[_;1f9|Jٟ*)t=ѹ#1X-xP@& HjCz+`Q <.Xci9F}c>8⤭=xO!S3#m>BOp|V] ~(Q/8>wMϖcQ3x,׼WδD=L>b\1{|s~hp9Fְun@3 )"pÌ+7R -0_g8 |#xg'p0[i +dƬoH C]/\uQC.ؚT~g+&=LicS=8ϫ{?>{J\Z;t*MR1* !d{pI8'|]>*_t:yta~#FG#A+ lkAWB$>_Iw ؃-x}c|V=Lz$n'f3 3,5^c5=8׬<0WLYf$=.Q-o xkklxGG5IK׷,wz7{sut}5o{]O $9sw3}MR@xB0!$FX.Yv8g/{UmW&=Ýko)YhA~I>/cl@ r"}+Vװ_P_w^g tغo~C=`yV֙YS\ k}6Xޜ}Yz_9+ ʧ4 ˜Վ}*~lS%}zc߯szbq:I)?05{oӑwF;NPaTg;q @A@((h`t@I"hQȑ(7?ȶtL`9cc i`~c4?1~\F4~sL^0v9@X:>! +:(~{WEWyR~O>rV|.o9ϠmH:$\E'{|= 0-SiOP}Bu>;wM#2!-m\;޸}n%q*߃9>3t{+C\wu޺Bn5u<.\g+x/뼣}}|zu=N@'{Pp7Db?$@ QRP"JnAxHQ\|웙]P:FdP{`` +rRPh$ pmyD9}voƳSOHJ-ޯs/\o%Qdc5hwqA݉84xNihWs^i8=|bf}[(C)Aͻ9|t<r FNC +tp=Ҟ-AKUM>g`j~1udll{fxGm}SR+qDjR1/9})Y. |? srJGʫ}?% }=NA Mr .KP!Hl2%BHj +"*::܁C[:srVzҺ﷒ulэǔxVV~G߉ij)u<;R0ϰ<= 6ȰN@CLbs@@&B Q@sʌ4Z]AI3wuJi4de)Y5)kKpRAqZЁ\' ikY= |{Z^x--53ՙm,o[p<7 +d=O\1OQgv:{g)1.DhjZCswjn)}9m3;y97q aXO=:qxt3hsm=Yn 9}ODx@k¦}n0`?q$TC/zԵ:# #$Y;)eh3XՄ:XAbZhEva +r-ecx~^h>&*23-5nqظbz[㷰:.Nxy?!G`b/l1=~GYnX/b?[ +?gx<2F4s%tt\9bds{k签w8xwfƿ#pMJP+"܍bML<**8IQΝ9p %|{3Ρ*OSRJ*c$u,+Tu 1ks6e^74q~*+ޮ,aE ӆx߯%G[xo}|?1|>3[U( 7pO pKCyz٨>rg_X!?9>x5Ac?7#1=Ɇwˋyk\;gkc1r9r+Qٰ=N@'@ ;Nb8!\VzOpߗ:G[*E%`:cl0xԛЯԈ)OZgMP1Ot%PH_q]{9nY + +֟13W窩wޞCΫ_h sp ^#R3XkxI& sn/Ԉ{,kZϮyuͧdЯw6~?ZKKg(ؗP3x\+S|9,EQuȠ@/,}MN@ %i4IТ#@.` +$6HHHl8Y}fX|Jfb{lOD%"MC"Klu|z;x)(x܁~o_ڠt6yy=}p`8)cE"e +:m=0LwD]-OLb._yyg`Hm38qzruŸҘg]Q[XG<96zf'=sG]ƺ_и .+p?T~Y3* O86c:=\󷞗ZWyYxGmV +_u{gze cHuԹN@ax?N| .!8$A"!=-/A2ZS$ιs.)eZ2dSŅfG$50gxX'Rܑ;44^'P&BPj1KLЈk409cZfxcncv[ }s%kYzĐc_c^9w=Xg2vnap[qN >6g#qk;1Z'+FjƶcAtlt^Afp̺l}_?smxw>3Hp3ܼg燼)p{)ܼ4}W LLݖ{oyM|Xr=N@[PpNCIb;v1A!4HP!JhqN@[4šdٝ]H 1H.qv:v#/\9I)%a>eݧkbX?l*pDc;ı5s_M|- p9gԠ>5 z +/oв_`F}\g5׌~B67pz~kշU}ԇ_2jykwދ+,{kN};܌γ\p/WzoB)?n9micc^ư};N@-8@b;vID /Ax PpJJWUDI^{g6 2jݡN׃= +tF»q |V|B4SE%f0f*z *G1~?ՌçYk p +4qG}j!? xx/e𽵅7ܱy 7p]<7Ѿwyh}gl69W6YNc +'>7[uP=>h&x|շ'wr:➯yʖ&szS8wxelc˺wuvbA{nWV,JPGOiӦI4iV+ZTE]p#7OVpz\ +.>g. %-NtNH>胆my 9{#M* ^GdH[?_1ߛa;܃ TKױ&j1czO,5 8b8cMi?3QNő.g܁wZPne]W)khGQ~%Hzgc +wX_q|[y2jܲgI1Ҁ{q^'L~[bw=Mvb_Vju.Ak9<ctL݆aa 6Vba!$֩9qˤ޺U5fmf_pPB]"-rK=(ǥ~IiΡ5毸EG7șѼXcnn̍R`^>f`fѾr#p lűb{ĵ n^Naӭc8ḓȝ{T@}=5\;u \WcKWp=r [UZF麅}*y> 4O^֞+('1T'sukߧ:{fh{g;XW|տf$ԿQ;N@ t a;6~MЀq(8g_ 'e׳;;qD"#a$A)m:(8'!?w5U.w r.?☒4Ϙ{{ +פW?YYn*7;#^M`FAxД[ ko[Ӑ}u0a$uN)$zpKwpXEVW~˳M{̗sPz yuy`_[SƔ6g̽3ٝuٽ*7]s"=BmNA E*<6n%!< ^@E Q#* +;pbGy}+c[6y @d\ +4Iہf@룎T%PGAn^ ʭu7_AZ?;>#of [3[ĸ%:_}֤ܘ)1UfđH>7 +kKM5}Sj/]}c:#pNž]\ g'ͻ̨Iq 38?ދ{GΡ;9u-+gn\]ӹ*FK=]Nw<3[KTϿz_(}mMN0qNaq Iڤ)nZӦAˏ@H NذBbUXY}.>){xby5h@ I^b~ HQ$F՞! iM> +<{3热\iIAWdg<7 +#9p+&ij}jsܟPqfC̘`)YY'S_E䡄8&~%{7Z'SRp=ẢMGDޒ9.8sF<x\K,u)YclA9gf991YnDl_݀o*ߺyB#90h\Wg~@ qYcŚI]wk <>#y6So;wl3Z/3ZoȰm=N@jz +n8 ׀$Ipb BTP_@ Ppn;bbQMm׌_ħf=u?P4̟;S6޳ q_mwu;N@'s& @ +D +\?yڳ3>Dd @lۻ#<u$!cP!č9wnx'`B~;8?}\5Ωi29(3RsnrZ9cӱnRҐ9 SPou3ҰKp9^Pŝ׾\Aу7/U_l:;3ݍdmآkmN:H) NNa4fmȩO_3#Q\%kpHsW2gFAZc`̡ ሽ}Gxgc)?].~:o:5LH{I(g݉yƱԾyyxc 9¹_s8='1=pDZ: }jfʹ}/u}%Q;N@alPVBgb{؎'|Bt4Q A +XK^1Dqd{smt;eHi^;2Z&~z1$B_ +#h| p5a5\!|\s1LpGgPCż7<kyn3gxceTg슔ļ/œw66a'sѾ1]# Uù4NbL}?G5.}(P6ڿѷ 훺(gO]#>/Z-gb̫a ny +;0u{+uĭIhnlsҝxkm]N1N\[pCfgg?`P&܌xΉ7_s9wv֎s]ƍLA +rU?cg gFl-Cg~ +CC +fԒ(܀g + '1*NCKt`Z`5xo1I KsϽwfs霫:Є?Lk⊏uD&b_EN-Z''hs +1)}Cf4( +.!E?Z܊b.#1c;EKp)ģx1=&>p/Ľx"іa q<u0bx[JgeWԙC}e .>4戾2T쉺G}-s = 1s z;]'n}'m1kh[ +>a~6^^lc/ Gݎ};N@Dh8-uH؎@$ x +DAGEE Z:Ea(>9z7HDhPZ|H.n"Ykަͥ08(9Q׉]Ƶy݄ˠQ0fk̙Qjv`Ǭmnazn99<5kV̝n},^^1 3x7^o&\?vYk~ -}}xe\[;+=N85.:n+7 ^:{@gh?kZ#1ڌ sN@L~l(vYM=;B7Ѹ Hdm=N@(7c'Ώ$v@HD@ (x#=yvvr3;"]OZR˭3ڠC%9hXG`% 4$.43`n>;qa^4zVDrm[ ǩx?Gu(Sp {t(uK9u>VVw^xGMCϿ=k9ʞ1r>t?.d/YnIBƝSwR;!c_ӌs2fSףV?s?B&9HBg׉9I=wo/ue]`@VMP _F*Tݣe]#xH~4RmKNA+x23<AT|$Wİr ;[ŗ{̬cf8|!E]4EUDMKh$P\#ւ-8 q !袷Xï ܼsQ "H[8^ŋ-S#?ˆ<.y;m|oĻيzj% fhMfk`ymyZ\NYߝ01|?'qEaB61S|=Ǡ 1{~B#VǘSb{<x̔ZzSga_&QߓDU{wo/G>kt{s~?>PuԻN1z:> ;d!wK*h(-5%ܑ%k̺fV<ȟsF ԡ )ԠpMƔP!ۉ F1+|'ޮFwԧJyYxwopz?/!6F6nj!c& 8fH[}x0Y4]0[UpGgUttv߶~{:||?MVyƉﮄ%5TJHm.aǧ}:JkGU[%{D%V".ĕb/|svFDb)%R& d_5$`uvU9Bn&Ű:Ϩ>j4I|rȞRpE +` +gky0;ߨE&\#Ș+q:1#968o? #n%E" +֑2W;ͻe_B|Ogxޠ:O{}>rs`&|!+ck|.؜[|{ +܀ N9:SW1إ^gM߯IG r 1mK;~Ϫ:&#ݰ}ԻN07Vx +&%MZ6-".K$&ÈXY+# ;#1|'vE$ + {aB*q\X)+Sdbj~? +i|bOB5ObXo׹-xo`f~SB + Kh6ի!tztɽۄ;# ;|-r 9fwSye&ۙqM9k0-o}=>;[3xF2![3gva}5 h5c܃75Zߦ0qz3fe5q29Sc֣9ӡL?z;ѠCOUߙL.uJ@q4^jD B.A\"]("\Vܺr?8⣝9g.ͩskMhC8e̸ab{J tLpP:28m` VO8Z݀n +[pO38 lR w pr337㑩'9 s̽2_q;pC؃ +J؅ xoz`|νȈ skŅ}ʘoQq͚wRp^+y ?i +E3~odبhnw7ǂy)kkT$&.5s:\Ntp濻 73qv P_G?>>vMsuаuKJA|+hBs31h$>AAD\B7э+O7_HSG{j&B?KUYA&E8CW̱˿eC:RK']ir5r:YC3&!;r,Wr+*2a=k1.#DzkM:^Ie>k5Jm^3!^Jԓ;V_I[JT瘂Qw=|ȧ ll-}U`ޛbeJsТvQbv;Fe||w#|[[tUt7w& N@mI/CQӦ;*m E̒"!!ba!6vb+,%l_{ωœscMlᖏ)R g'YA ΡκH qm:kTriC *Ѐ1c+sf*k)PJ$e3,1V`cv8|;\M-rCy֘6i6T⟇:u¹fXwQj13~oq-$pB>+wNc7|uWUEy)߄WgL'6ۗ?169 <߂ڧ2p1&em7ap/L|3e;+wXޣ }%sߏ}/qߗns>M~{\shFH/ҿEfmԿNTAl `|(@|:k#v,fA+ ,A!B 44+ _@KH,N2⓽3wf9sgF-5"˘x+̢vA4?BFQ|^x~%, +zD< IXcѺO9r Ӫux=|>QG3C inPȬ,`ﱉMOswuJh:3Z3Na&֕bE5TTNJl*΂=׊Wz͞WScnSWG]B?_.s[wxoCI]ʵѷMu<6~nYgY)x} /787M-*/C,Ʒ:'}O7e/YzfKus8(Ih~%{-*Ę]?hO*?bS殟K/Q5t=XXKKw3aFJ-,h*,'hHl-$6"} 89!<_΅YwKJ?4;">$Ac xO֜ȀN~~aEF}bLhNVy_.P$rշ3X:Vˬf)jIJdZqr-c׸å.[]A$-IusS/aQǜ N&.9| }:S=Ļ'x[rLI~_K^˪^>k2ꫨ{\U1akvs{R9g{f-(H˟#Nk1*֩iPVwvgݷ1q=Kר鴗1lڣ .CQik&Fx.UPjKi HD!fx ';;/眵^HLDi;́EI,X`=0Ez!,"8'R3~E-%&oI]- `yyP5~(Xa18dSo\0/>{RGlPO}T_ |G~ߪw:̑?d-3@.}V ƱDM"a;z(}'poU{4ƹiUiƫݚxA"w"}C66TX>-]"F+:[o :йAc/웞?s}KZu'qsG,{Iza/2klvm.CAJ6;/`!7 +T9%e{uܷe+KwOD7gYfL1UqgADճUX ~䙷h{tϓfcuTq>)㙺^w XWuJA +.GBl&uL6$C4D݃E!(" YĿ_6펈E$G(d)·":5̷2@뎳Z/WW1^~ZP +2^g9FSZ=s!i\A d+ܧցl>\;|'<3suv-؃ځ>sco]\~qmn_ 5:&`-M̉Ly{g1z1 ,#WAx6M&TBڿp*S]XǞ:sNx>#;0Z}sa{;L8wx1Z8/Y,Űu.A,l$wz~7~iuKNPjVTZWA +j|EF&q7_O<)/m܊HADbH`N6k2CqU93HeӺGmN[̡a,9GWL_Ŭ58[>űm6u 8Wx{ DB0.1< &p u28uĘz8.i} 97rO! ~Liu)2!]7攙35aOK<:y{YZ+ u}n-qZizZ+.c9s[.yVcҺ3\_!G䉹nYDwlvox/_Ϧ%m2AByod"7MRAĥ*nE,UP ?U'⫙>tHJD"@!4x +d9s--ųdCbj_Hb&pgpHr\dt>b{e ܓl6>lAZaom9`lv!}9tٯ5n >u$J3| Ϋu֨߀{:nmk޾ U;k~SwlbՃzEG]'?Ӹ;y{^w_<; C;7Daio*m.Q{xә~N)5UJERc!V6>"V6+IO&%s{+"P(kRyHIsS"k;?`AD*9`c`Ye݊y +Yʝ&܈d&2h\="c3h! +p t1@n# مǯ aZWnq~cZ.l)-׾ľ`_3`s1ҵ̾yL> o\bN_7\kgb֍)Y}\sMe^ѽӻvy{o|7'̧5w6AulZN^ӡ}m/A"q;.mnJUBS4W\D"A wI/';ٙ5d1 @N(g/Kn|"/yB*1W}$~Y^%GȾ"#Rθ +k6u֘1i<> mSm,L~7Ø3Ck`%e ^3Ѕ1vȹz=r>wy&vW|kλtgs ̹b[\kȶ-\vg]<}3."{DGW}הu ٷGΥx}4 Oəg g[#%Nrg?/9.Q;+{/etacZ* QBH^$_f{Ϲ=uesY !eȧߌ'0=Ӥ?)*,$s}"8%*Pެ'd_ *R9k8%m@lM>+%ƪrN 9oX}xA p ;Ѕml4o=؂u`<{B( nָ xbS5d=|vSr1 emv9-3R*fkw[޻%yڮq?zg={#,e) +\=8_sS g\OtfRt^~wm?&lMK{?Rt.AA"sx֥ZZPE\q !DXYXX$d3s̥3 !CYȈ$03c1;>ͷIxX,>>>.&GE(Eڲ3ob^&#R> +2||Ok}eJ]ILDXqL);r)^+̻*{r*%-aIZne_ڕ#rnEmsz%n5?ɛ#~iOjþ䄲>Y +{lDb+ؼwy7/H8O^=CKWcNXW3ڬl +9 v6g=Gk"%s"6_M[}?j[mԹN@z*j:^'- $8'rpH$hDIC Ŀ_exFg>%)(P* T; `^j>1BG=סsdӠ +r2ǬS")rl ;y-jCyT61p>DFf`0+zOO$`snq=_<%r5{fjqH=*XeNϡȽ6Wy%4/>|%2w`bVdsCl +N3w@ڼ3 +՜3uʳyIS3nz;5,{PEIm.Qҕ"v5mNI[."DH<V$^_f9w#""! $C +| -h@̑y̛"`}iGnb|2_}n_[8cv8/pm: +M#p"洼%lߦ:2 n6hm:l3^mλB&EjD\}ߘ; H*C^krOaU4OϩY +]sm<%}U5|'дHb5B&7ʺdZI)sy1cM~SUϼESwϸt$f μ @uJACO> iM&,fsKbw"TyA <4>zfDdZDkƤ`rPE2!G̹?cd?q,&& =+G:Wsdxv&9sY89ZZ +a%Ɩ>[uhBZp +m&c-'Vs=FDp a,zF=0̵}N :p\k 68ޡK ps՘CDHe'Sas]6DN |G wV9fTq681Qz9_aqV7֚֘֋sRzeip,yUA{9 y>=[l\I6fs? D|SdQ/%˰mK/CAsIFv+[.ՖVQhh;B<"JV"??ɍ/73ssgD$,Ϡ1eD`2*i3'$Iƕ#n5(&9BD>` _'N J1M&*u/.g,A̶S7^<,*l6l{Ђ}h:C8?;mH5骉D"" "9d7Oxk5Ov{^Fa%Ȝ-o.ֲʶ=Sy,ή.gp}8V`\[,Vzch}ˌK\:.;c\3`_g.׫/h~=zs1?k{&oH˹r/QC"XXH,E$$>]E(T"%,+BB,HZb;qM"̝{;sq6Fdz/0c I G?ĜB w\:+>` +KgC8:N K.٤:5˺ͳ.efnZE֪ykEmyf(l߰:6.Es 7p`{(l.{ۚ稲n >>03g?k*|ᄊkݻa~W>NUK/CAH|;JV[-UJhxm" V؈!IOX;9sfιH-c0E`"QHYޅIcȶP*g)\dE-y3PX%([܌eҵ&H島}0,5~+5akfDz:k'U7}_J} + >8~s%iÞMgzFL|Op;k]99Mr.?m"kN^mK/CAi#"ai';;k_Qh{)+HH$k!숈OdrbK̜93뜋?1¨! Rm7F_PʓX:TsP`L˯suy")g 雀Isl8? O6` V8sl v`aZ/ė/yiqž&5jr/3w 0tssWty_}p(\=c;<pS8c>_=_!g/|cW@MCrƟ$ynXKy%֦ܗpZTYE9GռPg x4sލ7)1FztL s:n缜=24>iZȿä_FmE?].CQ70yjE7R.%QqIML$L` $eZgӽ`\g {d#0B#Y<aci渺im3F h8${'ymZ嚖k\<` +n `J읥@%*:* +/7.Vp /{EDF4>aڠ:5_pps]U>CkۇgW8f߲)\e\f{F~W0Sei4XaQ{$ūRɲO2&(8.{ZuoF=L{%.,?wQc鹶z\u>$}uԻJA೦H7-KwMhE# + +/"93;{vD$.RR'i$Hڸɧ)#͙<$Ђ*s,-E)Ĺy-AY68N /bʫ/3_:m‹H}>%Dq 'w-w@U^r+m~։3!ax_25S6Wc2S*Zkkqy/ΛC)CCڲqgI܌QΓo`}.CAh3{ vέj][k%""" $ ^Z;& ?s1E {{WvWϵĈ'1cyy~I34JRz}ۜ&0IOUG\bX/` 8g\c,aAul^Yk4FA7'ۨaUsv+OZCj1  ;uCo.{j]o[תh/ =ZBm^q}grz5*nͶZ@7Z[UQ_t=^t_RXV2^ݳP@"خ_YO~;oߡ+%kGD\?'j~/>^V}ԹN[A1(B4<O+Mjۘ-!̾-""Q(()x#,D;93sBk(ivIt!,0/FNS|QGjeЇ^tt5.I-p%ؼdU+ES,XWIdGC؍hj[ +i'\D{8™}渢i"wj%Ay_Q ֢nI5#kP1͎8 Eմwu#S.; 9}7o*A.i|NYqχ_};_tRnN,c:ݮE(K3{-1m9KAIcao¯#YsDݘ#1DC<@@DA,l m̛7ovG)գL`8F1E1S3,֜VU/.vPq9y*c^)/\5Ng|Я%\!zj?5ω]QZ)Uj)oF4\ǡ~WsNkΪ? }޹3sf||uwCja"0ވb3jK,Wgo6iIi ]nk<۪1 +p]s^= ݴ'a?4n%ݰuOSA)nM`玸1ᯀ \(ibPJh +TVc+7v~'7a Μ9psoø$ҁGw-1FPĠUDſ[ꥐb-}}~6~֋9)LsSym+w.^ڈ?qݼa{=zp]EE3ÔjY/ bϡ]3GE9)5~s z zfoo >}"w 8sߵp]b+,WC[hvP]&}r;:UlߡOXVu] uGf4oPk%BAl/ m~Y3.ɴ–fYS:)=d=gQiɊ'%Ê[dp>{}?pr?ḚuJUQFjO @G=^SDJyAˉ(b  DK 7|{_ufVbw!JTT+GF ծ4$* R&>/wxZ$1^BqI a hPy wRq.SZ1CHx%koQ&<d=K生)*qyh^Q:֓;#)~=xA|z4.Sr&^K;XnQYٰuOSA)Vlʖ?=ZLy#ZAZ(B WY(!!Ix$%{oMX|r;3uոZy*uv$y">O} lD+ZTYfLbML:эQ|%αjXϑV$U[ݹHs:Wxb0AgTEq cHuZտUhU\ѼcoR-YoY|6V\f<;L1}Crzf.cO,q#|fk57\ 5/ۓ9FeÐsBFu/uvh:ˤ}M/tnޫ.NbWluj@:=Z4n5_q+ +EF.[^ {\kMi>>]',Gm@8 h(}/uK[QНtQܸs_ҿUjL'TjLqcg,⬨ƅ]]x}Ň޹1ιZWT' q#{OI )$(nFF8H >j85Pm/xNTXSL}jTVy[QSV{8w\ϊq]@ Ǵ~hۯNW<Ν?;뭮xy1-`5Ϫoy]|;[ a\&ܿw6uH\S{bu.Cq?k/ 6ހO`RcPcSJfb6켆{??osqWIkH"'xh'Q&H~0n閴lʩIشɗs R'>顾7beX$#1$yj~ٳG e_Ns=)"*6Ϲ, + eY7kDdeu˱Ɂlryz[\Ebu\_Įʻ| ^Y&iZֲ||Ηe22GM,\$w3[<}ٓ]JZ|[o*ꝫi{\= qw2(9w S&ʱ5#s%)zfo(Wjm/CQ[?/O5RPJC[CL!LX;K6{׸^,>y{=\L>*Oe Bc^Lu@8Ǐ^"R#~bjьAùPgdЏi0^ ;A;:Љ.U9^c 1I٥s;^6 +J+A)(Rk-;͓ѺGuz3=OTϺKy9SڇjN+I ?k;+l'19P'\6WR&lǖSLޯ U-Mﻝ- +G\Hn/ y?O7WuOAj`"Á w/\sDwuh8P{Lzہss\9)cOb8RHk _ NXpOA[(-jB&46o09mQLes Q9ޢm# ]9ٸ1U[J,ir\GSn jm|V7`[Xm{'CZU)Y{!EgSud1~:/sVv\!usN뷽^ j;qi\_ +6ΤΨղ+4ݿro>fjodkj|޺bI[XִV_+;5._]\@DQIo灝!.wDÏw&uKTas$Am;ZoGF2G3_20,|CKUJ3A){pvνy5kouGp5!KknV|M j%F[hF^q}v̢=*4+ۢ]K$:ч"FpMh]ԼvKFj\y Wb6ikN9ѫ!L(Y_Ũ{z. m(=6x$?.b /@mm<#q)%xiS>_%S.j}wh2}>f/sB oS\ o^E__vң}֙cGӲ +T-C ޓ~ǬjQZY|[z'x6DgT_.Et:a}IwC$|g _V}9;_$ \#;w om;OTAYAB(Pz:h()| +r۰˲\Y`&! jDDH V +*>' 'sfy=gf1&d0x刪݋KxqN\'~׊iS{cyPoC q}N7Sה3z78;vYyY"N+ե}>v޷8>O_Ni5c9U\P>5+~`G8!vSӲ= /PZeg[LaEskUOiqE +su% 8g+n&nVvoz]sێ{zk/iMv#P j2$9ߤֲ^͗sؽ81:hD!m:̶I(|l=-9}'vТܭ3ֶGA8*̰mKAJVٶ=dkyԆvhDE ". V74,]|}ygfY3fD 2\??&xpkȡ7xiDe|7ޙ5O\2 (aD!ֻ; +>✸ Mj HQ +. +{Pnksx$`;}|.> tm K5%^Z+.&VJ8 sKUskZoSS[ZxU ۱3q5xN + tF,*Z"*?qp@^ƈo_iIյX9J|F3ev4k_w{w*xbq&/4%| 4euJ#Ag(D)[MרqCř((;zqEz[4xеUUm)2)bKU>?'TBW9*рa<>'t7Z QԠ#S1uI1ѡxamDD3>wLbgc7kxdYH|q[5IVA/T64X:NNdR~pc #B:1 lj̒rњWڷW<=nky6IO^kJ9vҷKBAwM{k;b ڜ\Юѡ46{b&uƢV-& ͍+ߤ蛏bW8w{^!5Ǟ{)ؼa+LٻW ]vjsDyWܐ٧> _|$uY+QF +Jފ1XXǖ5{E"'\HʍߙzzŧYcLIȇ-Qڃ>P"F'^&s*iʩ7HʾeQb(RI +Ƭ^jcc[nN4ѿL#h`,~!aރ#$e%O=߅beْc_lRɦ1rr WORZ}S-ʱksX 6PnY^Or&|wL~;{y` 78%+ق,l#=kG'`*=7yg-|ei:ϙE9Qʍ{WZbn^E8irعvKyc{1J~Ʋܣarc?[u\ܽ97{v]!ߘLL'^uNSAu^0r !Jhiiip 40TML1aِhXcXwD'{朙sgsے>;c;ibEdV<)PTc2*^_E /|eՔƢְ9F qWeՖmй`! c:V5F +jb} lj&┱Kt/0A>ޣ7Iȿ=q^^H[R*"oF{koݛjwXK皋3wxY /wšֱ,[Q_}[(vN*\ϊy党qK+)Kʫi>O{f${hο}dZR ZڗWr~xMc:u;OA󂕡4ۙHGcAAE_@evWX{ +& Xy)F + c $XcϛlB23gΜw3ksM;[$qۆ 4:Ѯ.w5}J/\}[VSwI*hgzW2k 1aL}!g]Cwu>eK͝8&0Q (nCwfר2+<}{|1c8 *jq T21lG|k`=[{6E5gc&gQ|o1}k{='܈*~Zsl3vK~יkOu~wS̴{^1݋)zY^DFۯyq 9+ͬYFwԔp;w?.[s=/b/Q%%՛ O:o)62uJ\An7.VqpALحmmJB88"& +ua@\%߅b?Uuϩ1dՅp{4H?hAZ{3$&qJBA ^0Yz08*^˓)ong!.|!Ė16iW)S~%,cZ˨ z hpM\%iLyϧ}8O9m0`\jAn;t%8ET#~ZdžrB1s259%~W͢ZӺf1˳";x$>눖spN=yIfm+A=RG-<4+g i:AOߩhC17Z׀7^)>'P_Piw\&'yƵkTZy71/2$dK^g`mKTQEZ+hcLhMYJXQD 1EJ/&E-\&=9gs3kXkB$^ۧ@gt(~ܯxreqz#w>ܜ$tk ^JNK҇xfI4 E;oZ48q 2stc(ysISķpU|G%_{pv1 zX?kqUTO'xw -xJĺ斵FI< {1Ģ#wLg ],v(0˪7<^-KC5cTAZsjm^y5|*'KQ;FRTt~/Ι]KG}KQm\?E"7mLa̗23 "TBAMM#P+A>Ps_Ͻ>N&Wq)9рx uno>P@4F񼯠r,'Mc=~kغ zI`{CPϒO>;ofx4F#kaSQpH2\5g|.vA>Ёlo!\(M'YQU-S+#AW^i)%UʃLY/X+w; ?:9cC:*8; +o{C@Z~Y3\]0.Y$þ!$i/.<9vg(q_7z4o߃y{^,[wkHh?歰KVAk㪕ZĕH LxL"BFY(Hb.EuH 78`->̙y93m3(wH Њ8'NՃ0.՘&I3UBA]QE:ߍNۢq|0i$rb krGq%&O jq1ڋ^hݥ~M{gKMW:mKVAJQp] ]q'X;k?WTA]DJ$Ȳ҅$B`m\;ap᜙y˙9flfhifiQ{E҅ S:Ϸd|/q~>N7z1=Eڝң|y;{'08v͒ >i|%(x/X²a~h%ʧĄLa +^=_8&o(Ge s\睾oZ}6 1q߫nEk]Vy'Sc))㦕fE̊pM2}~iZ>hCkфj{xx'w(buKUQuB!A4,/3Mj^QHE>%-{(IH (EQRBd&5)X40.o`8k?1Z3;sF-h@J׌K6%sQKG^o &pWSy'% Կ̢JQE. +zTvhOhVхN\L5 )όpWU^!P>}/*xxe5 La\ƿ,a:C)E8cKuKJmR2} ꧈=._[,`i d(6]:w߭3||s&1IpƑ׫-+v4W A'#O$wj-hK̛ar;IlcuMKQsGň\eE +w&p%63ڤib!Y&FI%"=-Ѕn +*$Q{.]\|w{1]4!^ f\F'.k=+!OFrFt~QZ.(EK4K~. B>nJ_s4C5M:S}W<{ǼO1^_1Ag0z | ;ٷ}8\~m!px 9T+fEfod!;+yS`ߎw 8NyHwӬ>dl0+EgYnwGb~V}T߽i;x)'x{7u]Nq [RGa':Kklg>9ņl)oji-)|_?#{Ց5KTQsG\.XHh ŜQgi)i5m*"_Ph AVDAA/+qD/~ QŇ{ssιι.^$1 طrYZǠXQ62xm ??-*f1ze{9wl,h,{ዼ +汊ss/UZqe+:$΂GN;І?"F8m~czo[Y ^yp +?B=3޿c]^?`K>GqG'[2[{\gչ>CAK곢}&aL& #Q/o91$1I#ֱZ| !ֻkL"} e<~ ʑVʗZۃQMtm,/wx%PBZ_u+?,9ZT ۣ}-V;w/ۼW#7g>U pL]WpRh +mL \@3.CMC:Њ  #L k_'>e`Cƞ^I^=h}U̪6+g5űySa6RS-j{l))FQcט;L ;Zڞg{Rq{nq߳рC""brouOA H 1bBxƓGn[Zʋ%(P[B%HQzp |M'̳kgBw%))q_R}CPe$3^@N)&0Kw9V \Q}5o@e>g[8!\2aX\9a/#^+[c)5\QŬ1zURQ7XRW*7#W߶{:\ێ;~*n xGZr.Xv9g8/KqܿlI۸^ +-]}~glD޿&uYԽY|>hh\tXҙuS{b\ ^fo̹iL;X6{'zQּri棓m>G][Ns\ɰi~Wn>1o*?vo\&/ m/^AΚY4[kP*EiW"in,ؔشbA "i&|ojrb9g.̙yf̬cjR'Є]?XZStzvk +]$:ч!kKAoS6P55]a#x=161acKHaBX |ź&4֘TO*7aΏ|W5}.p\)g|'lWj,*Q5c +O RR=W܏S4B=VEqu)~a#vޣhC=]|g{Wn͸Bzuh,Z#}ı|nR<|M\b XZ)]ڗ~+&^RCUYwzG=Mh\%ks)֗aՍ7~6<)ȀsasQИ)}?{.{ny +8Οi72(j៓XgxxmKTQ:*"[UkآZ)KS,5V  Eh;{.->ssfaNt!x\F:qw湏~ENd3[;Cx(ރPu'VVc\QPL2.P5A>E e|6 jю&߱V8h${zeՋ?=c7<2{~qpU X[ +Z( &Ne/\L$xRf4OfCwz &u1vњnm/;-5aZ- &U9Ω:{GrYŪ(GcRͪk5^^OK4#gntF=(HroB^ +V{v;VkN|:%nڒwYf k_U9=0uKUQuT'f F:kz>4+ jVAQ)e/ҁB +H .ဃ^{}fv̒Vhjb:Z_G'))G5"fܔEi5HJ"9<0` H|j7!zz0` ox}}WEtWXm^]hNŇs\~oF_=>aJYŅ߶iK0~f_Ps%cטN>;VU2~8 =(3+"ɫfі\5'.{ȕXz^yVL|~Muvz:>!ŹGE"W.us }-.b+8jgÿn$+Vޟ>F8t|&;N%ɟ !47={iV_?SsxuKUQAHt᰼WU#E-bJmc o2 *+AQh𻽿M >k}Z3k44.iII:RXbϘ@rhEym)ޢhI+sml` +ZYgoվ c+Ő>+uzǴƽg{O4=G:~ײEdԗOѻ7f̒jP_w*cI-c/?puP/bVJ/䞔㼧;P{3RgUNnE]̩_ê}^׹RG>ND}0 Fj*@"vʵ-)_i{a +g4\t߉{gۿ +m5/cL~F$|sÜv)r?J/~u?hSQ"1[WWuѭKG柩-Ė$QD+E""8 1B~s{ν1%q99+?)})Y1DgpYrj$#~M im +/p(wcS"</Wqw&*TYVZdƷ!nimY_n`Q+;q^c ߱Gbdqx˝֕U8JbZ3;bZ7k,klQbEʵ_WH-ݕruvx`0FjNNK^]ok 9ϊvw: c3yi}FگA+_̰uKTa8ղ v-@4si4]f0P] b +jQ:FX MP7Bw0μ}yw,if}.Ko@ +<ź;&09W ')%BR5n~NkG 5Lc +A\KKF/5)(]Lb? /Q%vk\SU V^tF0|'ZshbV]={%Q. ݶU&~a9s=b>_s(.9;8?KY[Yoyڗ٣9)E|_^y|}'qZx z׸F祮ڌ㡾TϊjW kWW]\)vinU{6>_:G3ܕL>\ך JzQ_Iۿ%+ɵ:??B`}0}O(9OAYAN` r5h[l)_mb0K)1JQ ƨ1~>g}fv1gM(xIH?ܼ2"F0FFxt}#/\:SD31=5xnބbxW0:>.iyyzUŴuTj9PƴTpSϱ'`ǘ`ߌi^C/: [x{|gXxuߐ:֍9?Ž]4ߌ ܃Ϩ`}0}asԯjK˚ seϒ=s$k1]܂c1qtXV :6~+IzA~<ĸicQUWm1̱;oz~7?hljVu;ԑi/xWxǒ2W-e/~bRzӨ9'*$ *"ZHmѼHl#~-Ň33ƘjcL5bW?XH0>+1mI H;yq:ѡxީT~\yrK6>!53f142~kܪѭiO65l. +x +)7&8K^{S&vU? f\JP|kP L~6✘kCQ1Ŭͼ9܋,_'7_ǼG~7+Ưkgl`Fak z[گΤ_g<{uasBQoCwCw-&4Kr:%~{ƿVp%hGvOjwĎw+֫~‰E>Gl=qemKQZr)A &a l6qg45mfsjQ))ڕ.%j6.{/pوﳿ)k|wۿ]|#Gd #nw#{7Za.Ancxh_f,cI$XcHX> 'v*Ztտw1ewUR@vR*w;]ϩRDoq ;":G#Ђ{<F\z1lbSיpkc^c:!qѫF1GeLYI WcbcBmd Bѯ>C[:A< (gᵃw9}9\F1ֻv>coɦ=g?cL]"i/WJ9?׮R:4Wy5\Z;A4dΘx!1v氈YeTd +[~YZS0Ll0aw/ᒵfTcx?sb\#N}ߍKG HFXs9)o<9`_=ј ;9YmuwnmEc&t,3sukHSD + +#[D bCVdK(?)чoM R)^68k%61c g5?0rT UOE/$Wrܩ}=qc`WvtVL3/T=&1q5}Λt^-֭v[rR R꼃&i0oﷻuj9Ş޹օ{7WD>cBcz_hKQg\_CBZܷQ3ǙQTfI /%+R`h6.D.6.>/S<}(ig:V^jsL2s+,L ++()7&W=eo}+~ <^tVA,Ą9dvLG)!G?hu9LTQĞ*Z: t$t6TԢ0bA6Q!d LDbK5tD- ^y9}3kWͣY^h|y(ц$:Ѓ~||2_uSG*oGx+wYI +̍(Z8ß\_66fQ\ڦ1!qkİNbJ1= +](nbEy| %>EWPg(F*QDkPWvORԡ*?%9n`kۿ8oYnD1긳3YkߨWZYqPg4MF9ўqKܢ^pw |R{ĕeIyos$[Rާ{mո=GƈJ,7n!(_KTA^Jx7 ŗ}BMUTBV6]V@ +E*AHo7tn+ucƈʫ^q\FI*N_}lׅ8H}ju\S[M<X{>gYjrI.J C+2߇{=5i|RhkFЁ)6q,uެfMwbjKLQ^St⸈qGpJ{MF|%Awj ?!UI}@{,:+?s'μGø_q\ma}%+-I^B*Z$#Y m9b&zqNK.yp4/}]EغG~=9qư]9OQ2#@BbufpYd !(D1ƈ,nq + +B 7S2ν.cfWm 匄e,5iAѦfxS^B$/}el%gR5f)穨Zz߀=|Vy&f ȫ +1$ Hkn eJiY}̫챫QUrU8u* 2o1ث9*΁)N +MXSN|_Y3Ms=P>09\:uRҽ :abA#js+S87[:pv+J˒~.5G aLN2m݆~y$S&[&qݮR$]KQ}'I\- nm.ܷh?R63H"e]EQ)"*ސ !]t7q~^fasy#颶ЩY9 lEfKSRtq5?1{a<=O' kZSNkhѾ|Kb *$">o]2 }O߬GmOsF=1<Ǥ,X*p}_f5uisMakqU\okx~' +紃#ʼn};hZǟ?g1?So\7 g]rKmҷ}x<;uF~׹!:=$w5|/a'^ ֦tu.01[C<׳ߥlB9qw$0(!6 w8 w8ćvHH?tرxmKAj` xiiγWm ZǂߙXt2{qqڿ*紾au;d\KGKB~{B]|MkU_tKuKTQ:h&ᮝ j"N325M-ޥu L!q#B+E Mta9<9猙 e"2R_ޗ3?ZQ)FBc41;f^ 1;}C;&$S%5NK/Oi8Р:W'/1ʵ'S~]3@F0%ѼilbS++=i?V<iĸY5[5[ѿƬλ|b&W>#rX" +-w>cT?Kk_- \EDk)qm{ wY3Ή+klT=1/ig{Rӻ);]XޏIGs^`wμǧ_Qo#钬;5j|cW?]OAbLrlś^7bE+5#B& +DES A! E0'۝>ή1暩w=&OH +noZcI:ǹvŤwCk#rCj(.TNڡ7[ǭ3 ޭ?t͢Wu8UO4gƢ]]0a#14N{(i'+yceLa5wk/2}.쵽slaUec.Άe -z>Oꡬ~>b _ŋ~P : 涇p{C+Yb!/wt6YH+wLFFR}}kjq׳7~)wB32Z9y= Mɨ>C=]UL: oI}K\V\}ԻK\As] +k;4'X7W]u}k|"Q|E!SH (o`"ŇYΝ93gkfo,V# S+hD",W>`32Iƌc&[y*=]| qssA>XE KpwBxp[rڿ.eF?"y<mKTQs+$f`+7nۋ6&uq|p^T ,AV +Ѣ(..>sy{9Ϲι;u[Zp+[ڥMxkˠSVqC('d],F3y<@A٠o d9~k.4ű7z#*ma2ƹieO5{X&>+X*cUhlေWPG'7ܑo4wMsY߰wXX\Ui}5/[buGTOl7t y}Q{g+E|[̫^йT6g:Qfh}S{T|] 9ϼgk7SڣI}!,?im(,ﺳ{sw2Geoi~_ggzf;Tש9ck/|}ʿM;'~Kٿ;NC'+uJAD +ģ|.1%Q#[p'E + (( z=+49|LtwMwHBvƴZ^|? +a>-mni)R*u[4K 0LIc\Z{ pJ0Iz|N"8O=T^s~5%=l}asZtQO p Tvdѩr2 '%%M}\HڤUmik-xuKbtJ6VO0(2)Ăʡ~,Q:ԢM<0&3ڪ8@Nq{O} OsxBl{j[PaNEpwԿf1oW}n)\Zs xecF{A9{Eq~9m5`o8|SXFƝԸ;r ĺ"[O k_7P֬kSWX'ϯ_qչo|9q(7A>߭Ckժý8} ϴN}KKBAE_}>CeVA쪙ajҴZ0"hSVA h`iޙ{̙wxEāA!Aű!1H:8V>NJ 7f^}~a5YOȊ `fôa78E)fG! 0U 8uiȲ)Ĺt>`f ES\˔UG&h+ex󌈻]v'v8Fm>5%sJfme1׾ ,}̼GGp OȹR]Kknwvs\p,QE{;PnI~̳k|gOdn^DP 7(<keHg!,s-25iQ X&~Amĵ9yvӜ=&NS_^u.CA9mB,lوhO[RjX-ZFBB$Dbbr9og(OkЂ82B^)W;zan 6`h/3v\[O}$va#sx/x[`jWa?| \q"<=b=ú)oC}ȷ=giss6W{ޭ17F[6ei'gQq}gdcs9ٖf>#?Drk;sa 9I~}Xq OyJuK/Al ?EJQuoh+u!BD"6cމI.43s̙fr)?$cA^r[ڞ:^B.Nَrn۞0g]8c?` ۴4N?m|tӼpWOWx5 [4]#5kZ]O5<Čf1yS;a-]8->5[w]56=5k]e#_*_{UUs|㎍zԈyƜ{\-k5e\9dttJxy.bþcycJm8ǙI_uG-w{ )vи?}z]]IJAn9\x͜h`"ql#qD A("A"2^<ū &)I#)QLfxٶ8#N5l'Of.֊MTq"Ӓe.q.|7R7/E%wҩB $[2`eNF5H2{[ٖ=㫏#R+9rRyj1N6h[mR&&`ǩQ}_XM\ͽ:̩I~^>Le, \}kdwY"l|ne=Cq^ȷ|P{-9$n7I=^3=suأaƔĴ;tϤ=cκg&&+Ɯޥ<"rȘ3􍓧~(w+RgoBet].dAbaa<ރ6j6!wgi 3gF"J,faĝ^|roݪ:uS7!/^ ѧ:%g)$F)fVmR~26۞_w,v5U1#l.Bg()TLZ1@L*tͼa9'{˧iQоl.ֱmmJ\Р6Y/̪1K[OYs+sb*Oqol[c8o{em>ZІ&7879TWc[A;gk\IclCmS'93l :/1Wc<(gFe.0nU9lX8W9 I2'h0v{pļ +n5+YȽLY=ӿ/CQ#-lXb5 (OiU5V6D&"H0 Dl,'{O;w/c&/! q9Wg!:GE.E'%8_z, +,/`mkg:x -^x!(" +ފ b' +8@LO&1HH)I#Ԙ@./&MzDkNՔ0gAIjߗ7wY)xs b6qgbV}(֎?5qLcR"汆mr1uճK|Ԁ2v|sXP xe e=r'ı\T7x;^pu:+jO*yV;X^q ٘*ˠ[SQw#d#י薼w +:3|KF1ߝ'~*>~ߝtw/~]Vi6qmOi>u$|9? p۰mԻOTAYi,) 'v{Yd!A( mȣMBj2&w'7{3sf ![z eѕDm칵/qMwJ\}!q}'$(I^DZf*;ØGZwxN1]Vm ?jwclXpb+PB\޽+)Yinc]\p ;l}uHX>7wB л fpذmI/Qۮ,->mbkk1fjXH$"HDBb%tsⶱ{=wy Zp' + |QL霗[Jm: ,z|;O@j'}c*P:e[wC]F\3/ğPP_r=6(}i3j6ߗnpCӱ>vq~4֟g:U>ŧγtW3XQ`UȘ0;7;Ɛ][-wuVVVWa}gl>W#V?ٸd+~\b~=˺_ |1}.CASKHZmݖV*UmQ*>B`oecJbIMXrΝ9gfz"RyB4ylk0)caCf!1?6.8)(>\9 8d4mqIp;o=I>Sϴ3&EOPt|`NaXwt^oϥ +{ OpRΊj-k:ǚ^oMլ* uhG>b^ٹilYy7iϤŝOA2:swsNgݙg5Ӝ[6w1wbpw2dͥT/-w7j~Rtۗ5_}/&ݚ]/"VuԻNAL| +_W0\V`"xxZX 5vVDqŗ͞9sHR4s! Y!Ÿpȷe8F +0 T: pcT%}Zpd97SkqeX5 +38_"CӸ| aypo@-#gM3?=@Lq\ o1\Gq㺧pe^wYa/m8kzcqk}6aP-6SHUGe`//sZrtyQ9ߤ~+a9xΫZC|kYhŏ6`<.GJ,CyʪwikU7sĝ(W^ /ςڷpO+sc"5~چnǔ^8PrW4u_}lx>osi7k_7/y~;v]m>b@9ւ[G9 guVK3)+]nU=%՛ҷ1S߇ t?Xs_n|'Ρ_9u.CAl-/@k)][oq A\@ @""M29'ssfc":E^E11ю+x3%<_2LUnяf6qg +gPkHkjCZS^5Ϛĸ]d|Ah9ꔤ{RlP9ms4rgnƌwŝww/Ғjswokw<ߛ9ߡ_" MuKKQO!Z;+iXi^F-)d*ZAMEAk&hӲsC3g\9gD$ 6F(FF-! +io!iLAE|gų3}'6`fKటq59HE˓NW$HQ}<{pcXʰ%'}ƹiuXM8KqowooenUg){hKm1U_3cN:mCN0v\!c?2n8G{kۃxuu97l/}/jzK\GߦČ:U" wzY~8=Yu8~̳13&֘ڰˑ63f{S{&Y0-:4z:78fiGv mNSAi7.\|ZKB)-±RJ@%!! P7q!7Ntr⓹rcLsIxD +HeDY5 '#Mbu (^FrHb y/&vQ +!ީꎍEa׬27RC `;<{Zrr> +X\x7:~|d ㊵h=e g's=;h[~0h/_pF#R>zgα9I蝱kWWc #:I;0ŕuݓ}VzweXg os[R{7ݷծd=J5;n݇/w4 @{+y{q}@J}$8º_l\zmJBQѠqP&A[ Ԏe!$]A a4QэY"hРI 6}]{1&h ,%1}#؂s`V߉1tu{P,L$%`L)X+;(_/CiΗ`}kȵ9f -cP=׬7eg +[rЉ7gc. ^Я:)g6*6"7Ǹ̘7~=Ї Ϸon391u3[g㑺W׬u޺߯|ѳ{K9isM)|sQe抴m3fكQsNC}ﲌ>j{Y~cE׹56e:6r?/s>szʎmԹ.DQc4 +o@ e0؃ b !J%!*o 'w{:ܷ4Zh tJHJzkfXɨ\:W.RYG/}>'93nMcU?7!`- =/-&#޹7 +K+dQe[eMfoZVeC։wgr$8SOUJ~?M1/'ϊ}Pfe,~߶;')*1r_j0?L^_!R;':>3<GP$ɰ8HI2ۜ.d413܈ap};Eukt3I"ljqj gs?Q[o#z;ho0e.CQ͕gpm)H3oìALp<-haRa}Ƶ5\=}+݁U؄#`q3!FM|,zy~` 8]Xa}Uw +f3T2{Zf_9?3gcƘDCbԥ#Mp.ט'ۼț&y6>wBҫ &E˜f,KܗK)DDs IdMNUQY:Р}WY"/}z!]\%}^:@d:5ƿ-/?,_"#2y#_=5mu֭A.WI7gQVe_{Bcf?YWynomȷïS ޲'C\v_TCPǶe=>ON\vwN|<1I 10 sk`k%Ϣ;OCCq!O|K!};N@r @$$£AQD< +/#F+zbcL# 9X"!d{J+/+Y5n^㩸y%([&4!:TXg5VM]8S8} poO|>5%5aWc&afv\y~bwp0[y5j;s$[\l29滩q~d9mn+"u_tIʼH ;r}\l0NZk!ϵs9rr+P4p,Py|',ߍ&5[ +|ԻJA_ǰ-|515&&D +X"Vډ`%Vc̙HVDf`feXcfb!``WecOY6cNϑ!o}#j3\e'p,`")$E\`\ei~ס!G\ϵbՃ.cMX~ 5hp g5LuyW^k̓٤:sѼČ<3?Oͳ(8=xۙ?eLwUxJ~J2V#C^q:v~d^v` {p˼Me̴-Ru}C{߼G-v=u.CAֻxK ;ނӛKڣUBDD"K $"i1lv_m茌yN_KG#iJUVPe]Ǯחc\as߫|ɓ#rA=zv{yBjr&ɸ[+ul챀ƾai&+J1X4h$Sm䲟ŷx.#νxP +ë,҃GD>p?#E)m`/p5X*Gy[c.0i^G<<֦?KX:Zڇ`p{!l1O%h1<@v9KxoA^@8zFGs ȽlucNavu15T9*W`>=VkJlXKTiXmy~6vΓ:9E7IB!=59v'<{ZǾhW`,+L'YuNSQťqء# 0xU%VI&Ł `Ȉ ߊ0%:k3{nw0ILa\H&=iTyE)IpLJ{3gPyEfnLA>y=t,~: +U ?f}f=f#3枘>a{5N.z'eB߳xE,NWUEsZ;5%Q _j}o>띪:uMihb[8c7u뢶Y.ud~;Q~OU^rbw~_%5ztsާޓ~~-n*(N.X(֨1yw!Mߨ O[7.uUY +9c&ĿonuҰu;KA'Ieoe!؉@ BCs^^.р7b_rhcowgg3;"_R r`4E MeHyVe|shQfѪ,V9KH[-1*hm*9~Ğ>:X: &US\H'b*5h:`eckU18[PcLN=pqZ6Gw9[Bk u0¦ 7/٦Kpx ƮSFFqt |#{Mku +)Ykt`sH +$lQܱFÕND{!9 lFo>0;E" u4_+R/qP83&ȷ1=o/r 8Wx eC+|yZfk5*7 Ђ\u)XqKUp[|w]|fk|2s1\ kf:5Ca9ejEhQ ;!na+\+Q\Pem/Y ,>Ǵ&r&9cTY' uBWz١p\C>TbQ_l̘AԫQF/kz>4I3FQu.CQW<3^-GO/7(1(bL\ffb$1xӕ|ٗ׿^""2 NVB$ȃȁ HGGhc4Hr>~1S#.*WCddHd +L.0 +!hZ1U.8M%E6% 3p v@k~WT^Z=ƭu_a-`@i pGL5bq'7|#]?9̿^{pK:b> D Ƌaa4Y3{'=}YuO7;%i] +JÌ]vd&֬󙗉$CpǧE&fE0;T a 晛þ='Gf`3~I}9N@q8G + !`E,bA@B(G#ˡd<6,:-9l{XW\ss'>sT{g6ƛYA^z\7u;e-ϛXNwD73}뜨8{Ok=NNNK!^^J,;S 5rUWU{u\G(^` П_ĩԹN@dj vb!@* +DA@HT@AG(őywmY0j"4 > ]BB!Z&y$ik03f/cMKP@~CCЙ#Tv>ټ ^8u2RA,k]S3KX p7pñMaks)c+~{ nay#u _ȼg̼Xvl{ + W`퐙\QBaa +) ~D:)eS!uyts}4Q0,Z؃+[s89㶸dkA^VCPs G9M2P>{^yjnפӼyϺ׊cۊM;>4s{ҹk1YȹOYg}=oc^vqvk䙵?a0OLj3j/PZ䔚$/*_#Hm Y/dmKnIo09||^|NS{Għg(g"dM\ƿQ3_6͊=X7>ٽ3&yTcH\_Ҥm԰Vm9N@y8@qlǎda1 "6AACEDn@My'(>َgefܚsn6 =K;{T5|CӇ1r2# FcS1&' Jc pPzl)k)yzV|Sy#*L߉yp pSܹ + FgϿp5s'R~j(n9*^}3^} o ?)L,Lzd2ucmدgy/k1W{tؗs#9> <_3Olۺ3ÀW!ϡ}#p>'x'g/'[j̝utk|eYۙԈmZt=j΂gk|}? J霸 S΄=MB_M{{m?:aͿ!]w30kߙ?p_5bl k~SPC}.Ax ZMOї1CbK,\a1ai=<IgKs㜛q{bk>]obѼh?juhߠڌmO/CQů/K}zZJiʂ H",W7gLd/Ν93Na1,;<7A4 0 ^bD }~M:$1DܫO&r`yccCJ_B[%&^uΌ^}El9`>e.xgߛɓVwc2oy=mP2/Ru(k* g?#J[Wz?k?uv;-}]8P VkgC:ymt{m~q4g]L԰}IN@cpIO1c bF,,`Kœݝjܒv[i]VgW넹c]8ffM͚ +wD1c~bW MN:mYKޏ݇vē{Nnug)Kk^/јlZvlYD}N@ Čs0,Ҕ-IHӦ-110 l0, [-YVӝu>B8 !m!=8[_ +. #_!p|'P#37Ѕ}"3P|jp^xa /YeUh !'Cqs[P{HVɵ"ߐkz=?!`>RWbiُI-}E,3cPWRg}52"cc5iIC4W=s`K):Kgx]Zb,ۀչ9);#s$p.`uIN@E+\5#&vll$1 !!HG`1p$~)JCOTu:"2 {D$=x38XOJ8`BQ_x@C[| +l3:3VsFMЯZGx'` + Y'1q% l@Ø=L@^Ǧ^^Ԡ~fL}Ƶc'g435Fr;Kpĵ|-ٙ}sjy!/-W[{ԯԬ#72=zK:{M j~kɌ]Q='5W(W?1Mx'hyKVߣ2&%Oj7?#:kQoq<Ȼoކ=5!SyðuIN@ʎp`$H ,`7%Jxk"@_7hCWmJ &p s8#;H)ᾈ4VLQ WNyIYC8/1f2vg0`/?<ڧ+' 8+3Fgcp7%[u@ϽU=!t.j3d9egcTfN1.=fކc֘~jg:J;+|/&?p Zg5)W<4ñɛK߱myK3;=^|wsjj+Q6}-c}.Q e <0mH6HDBX HXI<%O`\s**7ŗSH[DE",REң-']'DcuH}p +^8Ȩ藚6\ϲD +Sj:Sf7܀[p.#GV:C|wpk"=jh~h9o<Fgh슽hg3E]}9O')& +df_A-29nE&a!ؑ} I!rnkxd:5ߞ{Leہ廓2d3^=>x6괽r牾mkhJ@'_G_j4?j?P< œ x cz2\Oe\ϛ:yj̩8 X,2w\ག154cyR֣*y=s +&Y +\/@u#5ta8/!br_VZ_Μ +6whdܟS` '|awj@GAT' av\Ǵg[ /pppļ w c:_]><+s?RW{2{}sߦ#|{cT{_wN߰mJAk@S_ħ5L|=w]]DDcHL} co/h >GDVE` d ')hQ;so]I:(>O܂ : yS\hv>+70c&D4.23V]m\p b6h~)cvLn`F|x$9-ڏghn@c:߈D{Q励2sGzOVj2߾wpuEºjlg `wѐ&92@M_2^W=O;;wsY  !hl\c>F͞V桥2}RG +bֈ\@ΦΜ* XNckpUg W;w )659{җM9te인3%t).ֶiHѓқ{[\Ԭ}/Ktxca6o+@3޻W͒Mu܁NK=n3xt(v5=zַɻo&.>7|Y[{|݀wjm2zsʎuu/XJذu?/ag"E*[{nwC8"F": +5Qk$JBy31^2<+" Y$-.@hXh=o=ud`"#"cs"wCdSdh`t@:-ӧ)I<}i =8dĤM .\+p +QĆ~e޹կ:5S:cWcGKcv>G;`:+nM}׭~>My0Z +nj'}/G^5Gkw9 j"= rnҿ=NdRUsz{2دa mvz_ϥuԻ.aJ$:oDyvٙ*B%PPiI4Η|=efA}SD(}"Z k65o6l6Ӄjh{]!9#W8r\y[k0 <5X%@=ϟ0\ <yRm$gҿ>3\rPk*d\s2)~F[syBTL=ȱ>n:Î䫢9s9{> SD^g߁_ѼsΥ_/{`9'7ܳvOm7 +oplwswY-}qu9NP p .((8$Ď % tZ.@KMOhŧ-"MIEC]H߄cAPr½HcIdfMdv wy]@\<'f_jt ͯ5o.cGz`}op;&OlB +Sݗ9Hum9k2nu`ފg7ߧSxOW8mOɜ֥c~u XӀ},d.m_߿ϯ༒q.^<sx/)c7c<^N/]s SO$_ +,\m~Svd:fnww=&m;N0` Tt\cK + +Y'8&l DAtPP!@8H!'9=8ιMc҈v +lAilJh^ǹdmPp)׈M"S +o!s&pok 07Y7MKj׈^%d!l 1FԞ^JW>#8d?+c*Z+u$ӷ8W=* 8f 8g}g(hKGb͚uҋFјyؚײ{n_|}~ރpf`~ה=&{|kA7܍m &ғ |%*јw'=B;rL95nx+з#-ߑT@}quN0M_H4MZBJ N\y ހ+Ẍx׳㵓aag` +2 B|*ϙ%`N*Ё#p +`ZڂTd~e~ ƣ#xsC`ZSךK Pǂ4̯8ZS\w1o`n51GjCW{'obzx> 5 ֳxF'<>col~I|ߩ?,&=/9i< {[K}X5߁w^]O_#Gֹn/?"4ի;<`97ޙg?Oe+w _9pF:w gLg0Zϔڮ{NvݲGy;MӰuJ@;wЦicӦ1Vm*hEDQ/E| _,Gw9mB؇=$B;31zڳ^b"NŅ8>U{ߩi{vW_;mw;x۷yOV[Z'i,}KNAl+2Py(ho W.L\.ti<~!vm8mAE}3ǏElBr 2'Req'N-cb<)%[?}ᐱk׌;XvCm̡BI![H.^^IecuZ{yw~@%ySVfM.YEcӰs]yٷc\.|1˰1ߛ9d)&gb#~Vw7@ޫ:v.{':Yt;#G﾿6y_{|ֿ ÷gNP LKBڤIKP + $X`a`c̱t,\ro}}}+"it $.(AEtx##ru .O , 0>ߢe93Ѐ+Ev^Dv_;?Nu_󯺇sE3:wg3WgS#p V܃ z0e>-KjsP3}F[??CǘN]=7gf xw}}FŚY83Oſ 7rw`u{>]Rk;3^0:m_WZl2ٜ %ξtg>^!OԳD5x"NADτ6-#ABBBG@P#UIMsI==]5=UfV#sX0`r)8 +qit`Z}P3kkO &N'uqdϋ֛w? [:%[]VϺSOԃ6x=!ptְMJA+[ 2;d&I& EA\zkn=.>f^U ͬ2Y`;;t`u.mn=8e~u #f^' سE*NG_9[e_Aj0' S:yfdJ] yy_.R%fNj!Qt59$-Y ^JrSuR5ҌLTl,_Fa_e4gvaK~;eW +firs:upŽT.n96SCxYZuXw`p^2֢pZ u861sarwN0Wa Oiam&VcVйzW~޼!{Z?ov%}=N@qSp9Dq6ĀB QDI4 Q-H3V!QS;ov#"Aװ##Vt=AUڒ:: n> @-x`n5*ЂKp Ч Ay]|~9VSpuIߒu7R4[{moٛ 9mz'0coqF?"[`Τf>A\^KQug^|Qht8^4NXUc̹Lj=L7_ֽi J@}cmSl6m'<R +*"x?ff'u%ιmfDH<ߦ8^Z44oua ;8J)T0Ccq>={xs^k+Ԗq6\c1n(!'OϢz**( MgQ^S&ľ淘\_p/ p p؛G7U_sw{^+wFqt~}&fi= 7)HI`n k~D0Kp/ + I %Og-kr*Wh4˒v;2Lj(_ek?8f{A߯xd;Tǜȿt6i˃}iyC~TO;:*Ɣ圄|4{ÞDEZ: +ο!>O.AeMN0́8 +Wu64.+B$Xh{b4JS2eN"tsI/CU|C$-5'(V~xspV h[}Qj\O>1!3;φ_%Qs5 5ߢIe^v$F%akzv`6`Mߋ0_^MWnC{UovL-CӧCIYu+/|y}[jAY7gcwQ51}! GBu;N1Dp ε~X + bDJD8 J*5v].1#' iYBq+ ZoPޒxSE3Ox\:;0th|GD} _HY܁7vo x_h|;{&82q[XYU!5s(=שnW"kК+':W5S؁/sI} }{g ޳fku}t\ =Jq`89gx`3xN[}>GPSGfFkgN'iy,ubkfX_;ww坶~y\7-Vu]N0&ı(OKpiM>Uެwwv#bWd5@7+kﹷ[pv٥qOt$ZQܓg/d$uyH%;:^ =S}S#xϜiZ;\Oh|r]^j:53{ ~#..>7~"GX, uGSSȷ¹hsTc$}mL|v?}.݁|\Z8cn}_0=Mq(Ӂo0?l;I:`F4j܊W1d|V=f#T@ǥ-8y1wB<= o6~x$g4>@oX9CnŸ7h^@u? w_k0`Ogh$DWF߁s#5ɼگ#< W^= zC~Ճ7|@Rl-f + s,'M:u[+EqٯVsM~owEEj*=zkV_|8miKj@DĉcYrdolY UAQ[LgZJ)mRJ[&tAXP31zJ~&KRy=Yރ߰`}׺5&@܃[#\h)˷>3Kp sZϽ S5gcx5~ܗ+9htι=|Z pȰ}n0 ƉXr_d,ڌd%S!K#i)eo`#l4geƀֹP>r?=4`}5 Okp_1p]MK߄)n|{ϢXS>JS`/q6{\??~v+ND/Y\'ɩ;V$Mm Ooܜ˴.e\wKTvJK0 DscKҖ` +pN +W k'9cݤ!&1 V;h/d@/_넶qϰ+}0^I%b܍7i2O|TG._t\a +Tr'sHn? z=F?W$3ڏzk 3Of>$rυGcj[ѷ5;[CiڿѰY0 DsbhK.lb\p +QTŎ=B4c zAZЀ@{70Z@u73{*\qp}L {ŷ3Om|z9{c_Eh0It''a<}ֳo& x.Wen6?+}'?.틳i]?(ڮ;5.WX}u|kVCI0 E}b(mBK p,Z`;"RH,5X +8kC= Q9+;%{3nu奼rA8{" 7{BƟgaŌϛS[en!r[s.giVk̫3q#Hv]A^tw;һb?n2N۵۩q~?3{n + +0jM*E xP~;wUɿzO-\_"MN0mv҄KܠW鎱:u)vfy~dҘu+aJ'x69E{O5F9N=PRX-3ui _&tK:5ԓFjm0hm-Ѿ|ޮ3\Hx3N˸gR zUcߔ?'4?wL=ΚugfdɽzN-ADܜaZ?KN1D;p"'`&{>DR6KB}†KЎdG,fqW6̞@vBNΈPwș@:N/~/@NAKF_7U88/s)sˍ~fFݲRC-}UW|3r+9 PW@ݵ8Ls㺞GyZ|:?ηmɹ=<:[g@La_j:kqYSz'w[ӳk͠w? ō}Kn@DMn8Kl RHQ d8 +jj(Yv]OYOUs|лНdzO橿uSCU[w̵wf7~@|eMN@ !$m@E,X T$3,`Y,=VɌR̈Hzo<5z"{1У־\W:W`RXg?~=`SoÎ=nMugd};O)}ܛ}b/AO1߂ݥ +xD̓ oɛ8×lә7oZDd@ЂF6`VՑ\/AJAE+2q&3ݓIbE 7W#$A CQSEwuկ1."WKhAr,2sp{Ag7nHKOh/[Έ( VdN;;7s-vO :*Ioyf7؂_b.BD_7cb<e/z܂{;' s:5;)txVq㬩Sf^ip)gMsܿo7iF4)U=Oԩ5}yx^#u;N1 )8'UZ;-̨sx6l` @~?wAh6|G̳l.>N qzx <=?빢?o(yַVRuLԧcڅkj6E-|ccS{ޞ:s̗,;k}]QU?8'׾9lkx +^~Mа;KQ'Gv7k*TJ&M E*M҈3p^->;;{foHɞ5c6fm|  { U9^:{#0b΃D7ZL!ۘuB~~ , ܂p^'x,.S]~_~w?d9kr>p]{>4;V+Gs=7sJ yҨ7}jq]Y=CW{nz{OAN@ E wT,L!)E,(M +cq + c&xj|?Ml!Yy t%@C(w-5zpBf q祻OԟtKg/P3)ѽsuM)ԌQ_ $3=iqD4x`=x>bd9b\} _j>Ր7=ϜO>Ͷ^̶"nmvZ%N{j;]e͚~t/c~3zS<׶ٿ6%]n0g)ΏIoP jx2=Eoӱ:#-X<|Jlw'"yu,I)N륡 l /"@='BTts[0ݝiε8G2yrtPg {֓VLijh߯[}x_gK$9JLmswlfx7> 1ϑ:n[[˘qyo3𙜎OΞL55wpƷ=7Ǚx27NAqw`p +AcwH8B^UT؍/W]=R?F\p:">`LjKW=N{on|5R"1f͵.ҞxqQ܃ 7\+V9_s0c>r}LWgW˄x<׶/w |/I&k/KW>/~o1&qo xZoP?t_5ބusjzLCc3gn3ioxk=+N[%uz=?M"KnA D Cp @LBBb#5prKf4Ic۟jMlF)IFfŸi"c={Kof]ݏ}Q9Tw:5YI*w;_<P?g/@1n1E{"5 (ER$5 GHACs(RCXpt5&"|_|Lt?"]yz)^o g쯒Xm'ܗz~izK3q79 zׅ߂7>o8G^{{ ̬]N1 s6n[ԇhOQc1C6={SJ#hXa}Wʷ6\z~` 7#yJq?gYK]0'Pg V8{g;m#8"wn}e=u;IfQ]暍uqo]Bϩ޻6`[sfs gp k7hz0 D-mӍ!N,ߋfOmǓqBBX +0dF4[^bZƈo~!ܹZ;;l>}= :3A b5O榎m@h2꧁͸'x}hG =O8GĤØ5}R&㾕zK'n]},xvj\gC&}؃Weq|[Ib<'^|/կgK0 D}b(MXp$.QJY<)MS{<*p*ÿH j9MvN4sFj̨rvZԍdPUBPߓu=AfW=ڷ/?Ἔ?ѓ&hqI ̃׭}֧phθ'C#={9y^G5f"`Xwы`,xg/_]rm;0 m}P lAtS2|j:VιDCO^ G"{wGɭQ8 w)܄=t gyxs'a+\sNDs@-|jO{41tScuj}y}Wl|B+'eDSmAC7 F/`vK3=ro(E=Oxfw/A +0EsbmZ* +K7!2z(v5TvJic1/kAOFdgy^7\0ÿ'υu>\ng}n,Лύxi~F;g.p}-1lm@"D(M%hFY';{N)?}nە__]'84;T @x)Or7n-~cLѿ6dFѷen/s[:_}hGW!ˠQNg܂pk`\c:q?Λ{ ~ɉ}I\_{yS,y@TSyzX[+K 1 DM?4D|]'@p 0AɌ63'1[T`=@W}u]QCw.nj'x^ +sUs$)؀#8؃UsC@w6z)}F}jQw[ܯ<֙xdzO +}^gs_a!#x=<3uVƹf)Ob}[gYjV;w?1&VM +0ڦik +* BӝY3,ɢA#X򷗺넞t uUox |wMQVn:_I׳ӽ^;TJ>k^peuksyDOEw< sܸ,5%߻7Te _ZZZ}kNA8 'V9^BOOo])ge=ۏZ3̉# + X 4>ǽZڷKuXZkГ6H!2kf/<GG׽*g?Op? x&+?TwרS-3 OxιbξzGš;~Yy_Œ;X۵J{wWfH5^w_O+ ak \';0D@H/|tqJJ% 4+œzv=kYf_$K0"c2<>%DUOשx.h?$ςBR}k{ٳk2*wV߬}5A]_`(|v<X7X7of7%Ka:P}u%g`>G!ԏT}wsbHDtlFz5=TMߺӷ!*}1@  =qKH  +QA vYqSع޳a %@)0@ZO\~!A_o5X=?kg z:)ܱqfxܝ?o1VҾusvpk2yP?GE_YKuN}'WH!։xwN߀}cq_rscL[Bv߮zS2zʻ' bi +@ S䵴tZۺ +W@^ <2cLIDh{RMⲿ-؀z$0; tN%}{$l-Q9('eo&|DPZ[Cr#ۛܖG1yGDY\ ~f܍8oQ}~_ޯɥ+s_^'`;Vhzavؿ,uWΐ' zs=^r;턽|D~/OY0 D}ahnaEp >SjK(ؓ"R)Jy(b^7U&Jq$݇>{|Ur-s5kbgoX}QQoozD){ `n<_Iؿ/Tֿc|4]#~4;+Y +Qa֬-y0彜v= 0  M[TK 8sX`[_zQĎLR֙ RJݟK|#DlHmqO|vp a&:S1+؋%&{RuHCxoXA$GlŜ_q~s<\?ϙׇ^'槑7Z;7x0~7\=Nm+o8ofܽzP; +@ѫx߂XX +6v6+^E30kd1cD$TH" +$#}մ3s X . t*4-ߏ1yrE`}q渂=kS/s* շOBws_9z*k3R;]g, n猭~;5~wؼ/hT35#mJ}uŝ)8jNTc]ODQط` +;W9z1?ȼ{'RԱNA_&/#q!XIBK6!l-l?I&-vvgwvhq2+2ϷR룸zF.>94'iBK^b^W܍k^MT;z9d[94Кd_ +6<=O)_}o_GOk%9B`(Z]ߗ98k+\\W@h0;-=>z'Sx(O;<1NBA"x+oO#$j@)lLION޲_2;;f\+G/C?|8)F¯~N⎌\݋cd_?I3y'Hg꾯sz} -ԗ'7Tc}gMun~{)2:sJV@tH /h%<[s~o쩧M.hHS.ݰ \ No newline at end of file diff --git a/Tests/test_file_fits.py b/Tests/test_file_fits.py index cce0b05cd..1c1df0d98 100644 --- a/Tests/test_file_fits.py +++ b/Tests/test_file_fits.py @@ -6,7 +6,7 @@ import pytest from PIL import FitsImagePlugin, Image -from .helper import assert_image_equal, hopper +from .helper import assert_image_equal, assert_image_equal_tofile, hopper TEST_FILE = "Tests/images/hopper.fits" @@ -22,6 +22,11 @@ def test_open() -> None: assert_image_equal(im, hopper("L")) +def test_gzip1() -> None: + with Image.open("Tests/images/m13_gzip.fits") as im: + assert_image_equal_tofile(im, "Tests/images/m13.fits") + + def test_invalid_file() -> None: # Arrange invalid_file = "Tests/images/flower.jpg" diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index 54f983b69..35bc87bd9 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -1339,7 +1339,8 @@ FITS .. versionadded:: 9.1.0 -Pillow identifies and reads FITS files, commonly used for astronomy. +Pillow identifies and reads FITS files, commonly used for astronomy. Uncompressed and +GZIP_1 compressed images can be read. FLI, FLC ^^^^^^^^ diff --git a/src/PIL/FitsImagePlugin.py b/src/PIL/FitsImagePlugin.py index e69890bab..071918925 100644 --- a/src/PIL/FitsImagePlugin.py +++ b/src/PIL/FitsImagePlugin.py @@ -10,6 +10,7 @@ # from __future__ import annotations +import gzip import math from . import Image, ImageFile @@ -27,14 +28,32 @@ class FitsImageFile(ImageFile.ImageFile): assert self.fp is not None headers: dict[bytes, bytes] = {} + header_in_progress = False + decoder_name = "" while True: header = self.fp.read(80) if not header: msg = "Truncated FITS file" raise OSError(msg) keyword = header[:8].strip() - if keyword == b"END": + if keyword in (b"SIMPLE", b"XTENSION"): + header_in_progress = True + elif headers and not header_in_progress: + # This is now a data unit break + elif keyword == b"END": + # Seek to the end of the header unit + self.fp.seek(math.ceil(self.fp.tell() / 2880) * 2880) + if not decoder_name: + decoder_name, offset, args = self._parse_headers(headers) + + header_in_progress = False + continue + + if decoder_name: + # Keep going to read past the headers + continue + value = header[8:].split(b"/")[0].strip() if value.startswith(b"="): value = value[1:].strip() @@ -43,32 +62,87 @@ class FitsImageFile(ImageFile.ImageFile): raise SyntaxError(msg) headers[keyword] = value - naxis = int(headers[b"NAXIS"]) - if naxis == 0: + if not decoder_name: msg = "No image data" raise ValueError(msg) - elif naxis == 1: - self._size = 1, int(headers[b"NAXIS1"]) - else: - self._size = int(headers[b"NAXIS1"]), int(headers[b"NAXIS2"]) - number_of_bits = int(headers[b"BITPIX"]) + offset += self.fp.tell() - 80 + self.tile = [(decoder_name, (0, 0) + self.size, offset, args)] + + def _get_size( + self, headers: dict[bytes, bytes], prefix: bytes + ) -> tuple[int, int] | None: + naxis = int(headers[prefix + b"NAXIS"]) + if naxis == 0: + return None + + if naxis == 1: + return 1, int(headers[prefix + b"NAXIS1"]) + else: + return int(headers[prefix + b"NAXIS1"]), int(headers[prefix + b"NAXIS2"]) + + def _parse_headers( + self, headers: dict[bytes, bytes] + ) -> tuple[str, int, tuple[str | int, ...]]: + prefix = b"" + decoder_name = "raw" + offset = 0 + if ( + headers.get(b"XTENSION") == b"'BINTABLE'" + and headers.get(b"ZIMAGE") == b"T" + and headers[b"ZCMPTYPE"] == b"'GZIP_1 '" + ): + no_prefix_size = self._get_size(headers, prefix) or (0, 0) + number_of_bits = int(headers[b"BITPIX"]) + offset = no_prefix_size[0] * no_prefix_size[1] * (number_of_bits // 8) + + prefix = b"Z" + decoder_name = "fits_gzip" + + size = self._get_size(headers, prefix) + if not size: + return "", 0, () + + self._size = size + + number_of_bits = int(headers[prefix + b"BITPIX"]) if number_of_bits == 8: self._mode = "L" elif number_of_bits == 16: - self._mode = "I" + self._mode = "I;16" elif number_of_bits == 32: self._mode = "I" elif number_of_bits in (-32, -64): self._mode = "F" - offset = math.ceil(self.fp.tell() / 2880) * 2880 - self.tile = [("raw", (0, 0) + self.size, offset, (self.mode, 0, -1))] + args = (self.mode, 0, -1) if decoder_name == "raw" else (number_of_bits,) + return decoder_name, offset, args + + +class FitsGzipDecoder(ImageFile.PyDecoder): + _pulls_fd = True + + def decode(self, buffer): + assert self.fd is not None + value = gzip.decompress(self.fd.read()) + + rows = [] + offset = 0 + number_of_bits = min(self.args[0] // 8, 4) + for y in range(self.state.ysize): + row = bytearray() + for x in range(self.state.xsize): + row += value[offset + (4 - number_of_bits) : offset + 4] + offset += 4 + rows.append(row) + self.set_as_raw(bytes([pixel for row in rows[::-1] for pixel in row])) + return -1, 0 # -------------------------------------------------------------------- # Registry Image.register_open(FitsImageFile.format, FitsImageFile, _accept) +Image.register_decoder("fits_gzip", FitsGzipDecoder) Image.register_extensions(FitsImageFile.format, [".fit", ".fits"])