Files
notifications-admin/tests/non_spreadsheet_files/actually_a_png.csv
Chris Hill-Scott 7bbc307a3e Handle files that can’t be interpreted as spreadsheets
There shouldn’t be a case where we see a `ValueError` on upload any
more. Our file handling should be robust enough to deal with whatever is
thrown at it.

This commit:
- adds test files with bad data (PNG files with their extensions changed to look
  like spreadsheets)
- catches whatever exceptions are raised by trying to parse these files
- returns a helpful flash message to the user

Anything else should raise a `500`, eg if the file can’t be uploaded to S3.
2016-05-15 22:11:01 +01:00

43 KiB

1‰PNG
2
3 IHDR  cT$ pHYs  šœ
4OiCCPPhotoshop ICC profilexÚ�SgTSé=÷ÞôBKˆ€”KoR RB‹€‘&*! Jˆ!¡ÙQÁEEÈ ˆŽŽ€ŒQŠ
5Øä!¢Žƒ£ˆŠÊûá{£kÖ¼÷æÍþµ×>ç¬ó�³ÏÀ –H3Q5€ ©BàƒÇÄÆáä.@�
6�b@q¤øSâ(RÊjJåå4åe˜2AU£šRݨ¡T5�ZB­¡¶R¯Q‡¨4uš9̓IK¥­¢•Óhh÷i¯ètºÝ•N—ÐWÒËéGè—èôw †ƒÇˆg(›gw¯˜L¦Ó‹ÇT071ë˜ç™™oUX*¶*|‘Ê
7•J•&•*/T©ª¦ªÞª UóUËT�©^S}®FU3Sã© Ô–«Uª�PëSSg©;¨‡ªg¨oT?¤~Yý‰YÃLÃOC¤Q ±_ã¼Æ c³x!k «†u�5Ä&±ÍÙ|v*»˜ý»‹=ª©¡9C3J3W³Ró”f?ã˜qøœtN ç(§—ó~ŠÞï)â)¦4L¹1e\kª–—–X«H«Q«Gë½6®í§�¦½E»Yû�AÇJ'\'Gg�Î�çSÙSݧ
8§M=:õ®.ªk¥¡»Dw¿n§î˜ž¾^€žLo§Þy½çú}/ýTýmú§õG X³ $Û Î<Å5qo</ÇÛñQC]Ã@C¥a•a—á„‘¹Ñ<£ÕF�FŒiÆ\ã$ãmÆmÆ£&&!&KMêMîšRM¹¦)¦;L;LÇÍÌÍ¢ÍÖ™5›=1×2ç›ç›×›ß·`ZxZ¶¨¶¸eI²äZ¦Yî¶¼n…Z9Y¥XUZ]³F­�­%Ö»­»§§¹N“N«žÖgðñ¶É¶©·°åØÛ®¶m¶}agbg·Å®Ã“}º}�ý= ‡Ù«Z~s´r:V:ޚΜî?}Åô–é/gXÏÏØ3ã¶Ë)Äi�S›ÓGgg¹sƒóˆ‹‰K‚Ë.—>.›ÆÝȽäJtõq]ázÒõ�›³›Âí¨Û¯î6îiî‡ÜŸÌ4Ÿ)žY3sÐÃÈCàQåÑ? Ÿ•0k߬~OCO�gµç#/c/‘W­×°·¥wª÷aï>ö>rŸã>ã<7Þ2ÞY_Ì7À·È·ËOÃož_…ßC#ÿdÿzÿѧ€%g‰�A�[ûøz|!¿Ž?:Ûeö²ÙíAŒ ¹AA�‚­‚åÁ­!hÈì�­!÷ç˜Î‘Îi…P~èÖÐaæa‹Ã~ '…‡…W†?ŽpˆXÑ1—5wÑÜCsßDúD–DÞ›g1O9¯-J5*>ª.j<Ú7º4º?Æ.fYÌÕX�XIlK9.*®6nl¾ßüíó‡â�â ã{˜/È]py¡ÎÂô…§©.:–@LˆN8”ðA*¨Œ%òw%Ž
9¶B¦èTZ(×*²geWf¿Í‰Ê9–«ž+Íí̳ÊÛ�7œïŸÿíÂá’¶¥†KW-X潬j9²<qyÛ
10ã+†V¬<¸Š¶*mÕO«íW—®~½&zMk�^ÁÊ‚Áµkë U
11¿Ëf¾UU§¦gâÀ|ä豓( (W“�¿Ê5EZü›B àö³®½æÊËwïÚáñ´
12¸†ª­a�HÞÑj˜+<Súe �ñð¯Þ|Ãë_û
13KF†‹ÅW#QUU�)mq}­žç»»»Â¡M‘(:=3÷¾ùP<ž@!TAàP}\«t¥ÖÛq ˆfL¥ÆR@@)E4 Æ1´ðd¨Ê”ÞxÓw;;ÃÏ{Î3Ú?8ã®®ÎÎÎpžX]�(ŠâLo‡Á�ÕÐÖÛÓ
14¹œxë¯ï¼õ×wÀ+
15U@€†ù‡¿ý+·[(²»S“¡P(88ÐogÓ�ËåÚ±}|5]^^qT;*ª ˆ›Û½sÇøVB·‰ÉéŸÿâ¶2ÇB —ê [yn)å¾d쇒wÁ$Oô§ý¥FYâöÿ:<ð
16ÁwË_Å ówþ8ÔïB²óÛáÎ2ßB™¢Z¤Ahšv÷½T\¥4‘HLÏÌÚ?� »«sçŽqö~Ü|V#'õŒtŠî®žžî­d7¡”¾ó½ÿzôØIã¢0ÂPî?¨�nE¸)#n¨fí·ŠÑêËÊïü”»a?
17Ž^âÜ‹��î¸àríÜ1Àm(ËE¨¿¿¯«3¼…¯ññýO=òØ~#M¾hÁ7ûJ¶ü|fBSèvz3Æ•BǨñ/¢¾à Àkú݈\íÍ>3˜öñ:Qa@(Q”Åiye:öôïf0eÝþÎsŸÓsÁKüÃçÛÇH22<äñx—画¢žñÀ²ÛF†·@êUcù‡wàØ‰Såõ*ë(§& ”E÷n ºÕÔUk*ªõ´TÃWoñs@Ïc¤‹8éB!Çp”0”°@  Õ  LIþAþOð�7xí›Ã»®³Ï-ËfsÓ3³šæTBwîtÅív�næ8nk_æ|äCýlÁiZ„²‚Wæ—*O`hºÕƸroC©Ã %§*¡4M­^ö!]ß§Éçƒ|>yž( :G) „- Zé0P†’<ÆQ‚�b€Ðö+v¼ôßx·MnœªªSÓ³¢èäu9wF·`phh+ÝŠÈñ¶¿{ïô̪’*Ï)®2½µÝj‘·2úfö¡= š¦©jY« Nþ.®�:qquÉCP–RƒÄ!¢ƒªƒB¨J
18P„éjnõéÛ¼}»Ý�#¶`(ƒ
19»:Ãv>C]×'§¦—-R—&¢Ó§÷Ƹ–ZR×f@Iš;Eó˜’„ÜzïI@œd–I¢¹³JÇ
20¨Yªžg•²Až]^´ÃX^Y�œš¶yjWWgØVáÀ¸\®¡Á;Ÿ¡$É'NN¤ÓÖè)šNâÚé룹#iä !@&'‹F1 Hf=$N¢JŠæá§ÔIºVK
21tZ]žÖW
22ÆUÈŒ4yàÈq;OlUUíÙ¬ËårõÚ¦þØ8�ÇÝÝÕiOtÓ4Û�¸ý÷ÂÙ'^½F²òÁÿý¼ÍÏ\Ó4{b\wWçfl6¸É!dÃ
23Y^å*Ú²
24¥ª¦=þôÑVóÆ´FزÉÍQ>¬vw)}nÝ ›G*G �éí¨wC~â0iñ²E)‹Y;žËv„B6¹¹v¸®.‹é›®ëËË­âÕ�NH’²áŠO͵„7G3Û£œé­©> ™Êœ4å·H–—Wu]?Ë—³½Îçó
25¾5½ù¡Z³]ˆàò„”ÒÕH¼=3?ÝzÅ¥ÀY´ä-8A°Ò«‰´Üe¾IÔSZZî«ëz3¬F� F6„ ÂòzàÖ—½Ï i@lSf2„ à½Í.<3n
26À{d—_¬bv¢·k×�éåÜÙúZ­Î
27J=�¸c0ééy�êòª¾.14˜=�œÿuÉ!„-ñ-J.×n«*•¶* Î×^€k_˜ÆØãiU€Hã²ú©t›n§$) ”‘5âBÖJj_³˜’NôuàNƒÄud8AU%B€Y�䢴.Ày2J6Pó¬yo#Ÿ)fh!Õ¿UR¸#ùu]Û0ÃZ9öh§¢ªZ;»ˆBRét(hA‘�Ç�1n¼¶�ÁyÜîÖÙrÛ¹(˧CÛ6Ȥ]ä ­3ãrnÙÓ‘r‡R._vMt„uÞ[ƒ;cVç}–·XƒÁ­™co°A¸üÌi{#z«´T„P;#aÛp^Ÿ5þSBH:Ý&7¼«§=ÅÏÐDˆnφ¨¼7Y‘Õ€õtÄ×[®ÕRÓÕœñ²Ô²Þ•õ$�ÎX¥¥¶
28Úp�%£™Î´ïFªªVØÿ[¿0Ê_×µàÎl˦žð*+äíw ¯x»# ¯ÚâÔÊƺöÓVàò3Gkwã BH«ËêØ
29ضͤÖàÖÜ©Úö]jÃ4”¼±§¾±-ÿJý­¼®Ö5¢lvwGlƈ]oÆÔŠߢ´9�©¸4‚ Ê´y<î5MÒ›ŒÁ .W/ç–¸úÅ [n†#ºŽÖ±Ö©¥¥êz›C|MG¶öÒ(Œ…vLkèxÒO%Ijis™¦• 39 )mWo½‡aKŠyü‹)÷m ñµ–Á©ªjU ̶ésx³_Oc¢Ûæ=ÊlÄi³N×upä €®z [�c¦°b‘‡È*×6ÆÓ&€s· à;Ú pÍ5 kE¸/iF½r¤áˆ6ˆõm©ÎB±
30¥4—-ùêÖÁB»Î-X Òfú£ ¡cë¡„ÆÊ$ÍG®öRèv…øÂ`ËZ°·™´ÚpnÁ’̵ýΕvæöšátâè§g~×ÊÒÝ6L'mîF·®Œ˜ —I;aas«¨klMÙvß9Žc7 .dý¼Ow< ƒtµM™-ʱ/Ÿ9Ö\Ö€Û:*ª%]PEIj¿õt­‚­
31)J3\Lo8Óšdë5·Ck®ÚŠ…³¹ãà©§iÛ¤BA:ãîJ™Lº X¾´µE‘¥fÈZ:�:Ã_ÁÅ{Ü.›\µnÅÂi5D´à¬h¥ayd?ƒqG}?B¨±ÕÌÇt*ÙŒ†$æ²oÛpÉæ2ͨ¤Å{Ô`?3îu½죟€fÅÂi5D´ðÓ­ê£a¹Š
32¢«+™tª›TE™Ÿ™2»=Þ©‰Vj1—{êñG Š–vDßZûbÙÊf
33£*KÒ�ÇΤReŒªž<vÄíÍûV–rÙLõgʲ´4? s³SÕ¯æÒ ŸÏk·q°dù´(ZIÏníip âÄÑŠØ¢L:µ8?k<>tà‰ê¤î£‡Ÿ*¾Åíñ躾ÿ±‡¢«+º¦e3™‰G{øþLº´Þ8žGZ°äøBËNI÷?úàñ#Ó©¤®iÉxlÿcI’èñx‹àxôà�
34h „~j¿aaˆG#ÑÕå
35wVFüšDܵHÁÝ [.îTËko$±'}¨ru±œAÒE~ä�{†FƼþ@teiyiÁår ô;ËǸM;wŒ/--Ç¢«±heÞòËIR£0(JH¸«Çð–Ö^„nàZ%®†cîês™55/·ÇSDI]×§'K·r||›ão‡þ»åÌ'v¸�Û뽤Èrgwïú‚®‚!Ž«Û;Òå0¸–1A¨Û«!ÔÙÕ½fLl(ÜÕ »sçŽíÎòqnÝÂ`Æ>'³oï9u¥ÁPÇ×Â0¡Îîžz¸Ý^pdQ�–m¸Î\
36êfZxDwv÷öÿÎsö•ÑóZ&Ô]çžç-¤©z}�júöŒë¯¶í X²|Z
37-8Ý
38@²Z�¤eú<gÁÂÑ65ƒ«3¶àFtÚZ*Ú<C-…G‘%˜™:UÁû·¸Ve€3c…š¦ƒÙ©IÐu­Ø6°Bb‘•÷}Sœ §ÕÑbUµ@Eå8ζeZjÒ’ñXÍʈº®˜I§ª— !æ 
39:k^*hÝÜôäÔ©€ýèá§(%%û‘ƒrg¢”VEÀ屎Òc‡+pa~öÔ±Ãæw®-–©¢èêJ*™1—->쯟€ Xp”ÒVÇÁµ<´OV”öo‚�!4:ÜwøøTžšºÏ�:~¤³»§X'vnf2—ÍV¼wêÔñùÙ)J©®iUµ�ŒÔ3ÒO ƒHM0GE1÷Ð}¿gYN–¥ªÍ[�<qlÇžs‹LüØá§
40t»tãÆFú6ÅX²däÖ猷àÙ¸J1\<-puåñ‡ÿpξ \‚°´0?=q¢6¥W(ˬF5'#õ´‘­˜‚jÖT9Ž—D±^:ÑÌÔ)�èC#£š¦?üt‘¸å5Y„`t¸S …%KF‘·ÀYQØÃåâ‹U†l(��€ß›JgeEŽ®.Ÿ—ÄÜþGl挶yx£P[§fdÖOk*®Æk.AhÐßæg¦æg¦*žL§’éTÒ õvwxÜ.ûBȳuÀ¡å¥>d+!d•Ñ´yG9zðÀé•®ÜnÈSÇü¶hW 1 p§ªpº­µ�< iÚ¦¡o.—%Ä_Þ
41 �
42�îÜó/BÑúU㯸üÒÍqmÕ2ileÕãqÛ|’]ÝÕõÂAŒ¾÷n·çÂK®(æ-ð¼kÏÞ  ˜;Y¡¥V’¸'ÊãU;HC*‚
43t6]¢.†JO-e‘—ù�BPáuŒ ý4ÿ¯ æ–í5߬`(쪊fæOoxíf1}Zµ@Úm¸œpõ¶P¯÷e/{Yamçeû®sØZ‹P‚06“£�±¾i9
44!Tz² Ð¡Ê/+Gü•ƒ#‚�²'[úRFíT~VtEæŸÒÑ%øCÆQ€1.â`u}¤Zúi-F‰Êq×9û*^éK_ÒÛÓíœM¡m—³dA°muߢ<ëú+/½êÚ@0„òúüçžÑÈèö2Ý *JdR´hñ¿*WC ¥ªÀ‚‚VXÀ
45TÇ!BÖ$€mØB†ª[‡‚å
46!´‘÷! —…ñ…'hœ?B@�âêk- ªä«…—M
47°` Œ78
48ãB V?Ƙƒ(mHâŠ(� †­ü2/Q·ÆðW KÕ°eðV¤`¨~ἇ•TW
49r)š
50XS$ŽÒŠˆ2„PÉÊUÆû+àÏŒ€-mQˆª(X5~™ìo´â ¡©QSô ÀB�RŠ*ôÓúWì\CÝ›à\é- p¢(YRÝ×ÐRÛk©ÇŽÖi£YM—0Îg§7Kâ*Q€óÊLt%() *ð&¶ºŠA«Æ¯r²¹†Ñ§ úVbT3Ê·æ…ïÚDÝëôS]×Û\<­­kžRjUê;B(Ô²ÿäÛ9>ܤ!Æ´R›²Ä•#]%:”ó RRgMlÃj®¤`g0ëNƒ¾QJQ£±¬2ÉÎñÍä^u„¬‚ãL6ÛfOc»IM:e™–îØ1J]á`GÁÕÐxb£
51XֈĭkbÕ$Geðg?AÕ‚q1å£6}¨Gß àaX“!õw{=nØ<báBH¥ÒmþÆv\*�¶jpÝnÁíÞqçøP3á¾1¥þPÅ:Ü&Wˆî*‘¸
52ç)ÆŽaØÆÖÆÁ¾.¯GØDgáä—eY’¤³àÀ
53Ë*¯†¿mL“.`­akž<%ĤœCEÊÚžB¥7&ïNEa–i`€Û\îA|Ö).Š¢ˆÅNXfqŒ'’‰kFK­·ŠCE5›•Ì!#%ºR¦¨RJÖE‚ÌO€ÉýØ6щÞÂLµéjœ0¡Äì7(Y*ÍÃUÖ‚•e3�ˆf–áÜær/X;á-\ì–\ÂR€ ƒöoFÓÈÕ€Œ8{óÊ­ô6ÔVT)­0×À*°‰NÚ?Dס âVÈ‚Ì'\Œü¨ö-”FÆH˜/ˆ‡P^E­µ¿xÝü&r/pgmð@â8Y–Ûœv[±wwm·{ÇH=3fJLn¿*oCM�*ÑuTË$_Ï iF@�XS(A×ÔªX<„�¥Ë.À$2ëºVG9-–~+
544�—€ÆTÙ¥‚GïâñÃGŽoúÖÕi¡6-ŠVFMXõO$¬äG�aû“¸±á~ÏÕ4ñ «éºI+¥¦h_³¢Z*Gˆpåz¨‰±UT®à‘¤í7ÀN¯À/Â.LÆ8DËbGJI\˜Dt½¾rZRhÑ“gƒ3µ’íȲ�En¼ù;3³s›‚¾uv†ÏÚen%À% «Š˜S¹Çö zËb¦æö˰Ƙ€ÊZ²³U¦5k¬¨®ë5’Lr%�ׄ?]Ó­]×
55Æ8Á«#8W‰#ŒXU-ù ÒsZ–v
56æ`§œÀ3²BÍIZ5<§%Ž«iªª*„ê…N×µƒà2é”$‰ÈÔqÑx|jbòæo}ßnU@ûûú¬¥o±XÜB#»-bq‹G!ðû|^[MÍ»îùÓšÛ»¬./Ö´ÁT%(a­6Æ•aœ®éá= `Æø<=–dÝã«•åƇ0~®º€1f®˜˜ÇëD#6 '’$!̤¼ž?vD@t•ñ<C™Ÿcàru#DŠð°’4‚Êøk]å´ŒY†‹cj¥1DV–
57!„úû­=‡T:­ªšpÑhÌÚWØÅ~EIºñ¦ï躦•:!±èªyçmp¨`…C€0à „(TGÆ•þÕT•êzg*+qܸ–Î Bø
58y f¹À³åÙY.ØÊÕ‡&–B>Œ±ŠRlÓWSIUWÏO­r>žêûÔh
59»¼DÝ«FãŒg�I1.Ø7µ@ )£±PêÀPÊÊ¢`lÅ.<²$ÐU•i�b‘ó~RãnýõxðQËgQ8Ü!®³|QÛà2™¬%µ¢ÌÒ×ÛÃ4îIÚùÆÍß‹'e½«
60¢+ËP@²¼ŠÊqÅEV\z˜Á¦Ê@´Ìá@)PªiÉf Çóçh±ëö�¾W�@
61æÎSV'¹ÐóÄ)6£%|MU�N�–`œÝ(1—žÓÄeµËäÅUÖ{¥8»Ìúà2i!Ÿ3)š£ ÑÝS‹¥ÜÌ©)¬·ôš©õ*hšJˆŽ1åAà”Òx4ÅŽ´…æÔ•‡Ðÿýègž:dáb¦¯·Çr{B&“uÎd݈XŒ÷ ÃôöZ2òÛ;î:rì82õ4.>Fɲ˜Í¤Êmp\Áï—ÇB@¨ªj6ÆU`%DM& ãö(‘$ë¹DYf)Ye½WKs:³{Ë@!çñH¢XJ×lo©Ë
62r{! ÈêrÀù[á7(²¤©
63!zŒãâIp/‹�‰TJu]¼8CÓ$«ó{ÅÕ9.ø¬ÜÊP]¼˜ËšÛª–ãN{ˆ[™ÿS’rOEÊfÔÁù(P`õ°xœ?‡®2¹]—
64\6›Sãhs:g0� ÒÕ„6³Zjv …¨À! Óæ>¸ Úhy÷ë| ¡‰ò–8Ž/¹ 5UM§’J]´·ÕÂ8¨À8X^‰|ù«7µÇöÂó¼å¾ˆÅâº�’:ìÕ$t5µ>ôã¡¡�¶}Ý¡ÃÇnÿÝ=Řޒé JœL� T×ñHÉÄÀñEÅJSUB(*ã†T§:%”˜1nÍÎ
65aB(ɧs�yù0âpx”@E
66JK+¦KªMâXŽcFs©d躦©
67ËñUEWz�É(¦@
68nw((pN„Ê<Ä%Ç»„D
69µC²™´Kp«
70©ˆª1ùaÍù—&’ÉÇôVè¾dJɰ8ž�
71˦³9øÖM7ï>gÏŽ�;Ï;ïü®®®@ ŸøèÇŽ;�ÅŒ<®Ûÿ»±ññ‰‰‰�ýçGÇã Y’>û…Ͼ20ÊGüÖp§–já!sÒE~¬ ¥²‚Ìi•5’ nƒà8@ ŠRWWW››­)²Û³èÛÖ8JéìÜüŽíã¶:+Ap���wèȱ;yÓ[½b!µ­<Ft-¯uj‡”ëaæÏL³ EJM/*µÌèƒ
72ÉFØL¬Ê‘®D}ÌàUC¿®_¤¼²ËLá?–ãY–‰D
73:»:_ñÊW]smYiÜC¾äe/½íÖ_ÿõßþÍ�þïÿâ±Øøøø×¾~ãoó†awïÞÝÝÓ •qdAâ*ö¡šIÅ�Bõ÷bàˆ ¥®³ #üܧ?<4Øo·Õ7;7oó¼…ÍmƒË«W9qÕ~éoÆesâ·¿û´è7hÓ[U:ò»¨$®·vTQB„P–chÍÎ{:@¶N%%„f0¸†Ç€Ôtž’ªŸÊסÊóPôf°ïöz9ž7v‚h/~ÉKº
74¼îõ¯;øôÁ™™™X4‰D®½îÚÁÁÁx<¾çÜs>÷ÙÏþËÿûÀ׿vãüÜ\(¨a2;Kœ$
751ª…™�¼~TÆ#êbiŽ@ŽP™‚JA£TÐ(hñˆL)4¡ç“¿„0‹€AÈ…Àƒ‘Óe MÆGá=‚þ¤H–TÜW×(É °WMI7ë$W¨ˆY§ˆHƒkZM1¹|ÙKCWmóÐM¨T8œg°›e|Qd}}û;Ý|m'KhqE£# d -Œ3™Q�ë
76b ª« #2̠䤌‡9ÃBŠ‚ s©Çuýx&ûÏŸ¿p³ûýos½ò�j×µZ¦gf3™ÌÙ³êÏ
774¢±Ïò¾i³6McYÖÈœ
78ÿ!MrL&K*î y>ú—®7¼Ä0Ÿ³W^èðŒ€úü²6³}úXêèIujžY\a}â/Gó®’Bi#Ôl8où
79‡[h’ûØç¾zâä!z(èÃk^zù%PIVo½›Ä®×¾¨QМNÔû?}£¶ÿ°ˆ{¾¿¬’¥dRÖ'TP)ÿœ«=}7ì=«nœ~jF¾é'ò~Eu•Ùë*ú‘õƒ™V˜Q^ŸÑÇ
80óFáÏ_…Âõ½çš.}çõ®‡ØËÏ?tÁ®ïÞzûÊrD':!¤¯§ë3ûWŽk‡E›27¿p6çÏ;×*q¹\Û¶ ®�/ �%ÞÿÁO�<ëºË_óò5ßÈUºé'âg¾Nã)ð0xˆ%ÇeæÜ|æ9�e�’iNç_p½ûýoev�žµ÷®˜É‹·ñÌ^�ŠD»;ƒGó�ÉQ™hÈŹþâ5î¿þ“fjº¨šö«Û~÷Ó_üV–e¢ë7¼þ坸ã–D’dyzzV–eg1:×Áôwt„6öc:öýýòÍoxåž]ãÍ¿K½ëáôÿ÷²F�T@ùˆ6îÙ>À ?-‘9•=·çcïa/<ǹw@©ø_ß?u#
813ˆ-+ùI³„œ”ɼ†»ÃÁ~ؤãeiyõË_ûöá#Çß7¾òé–ž~<ž˜_Xl¦ë˜#Eq2Ö»Fh*•–Åï÷m ¿!ô¢ç?c½<Ê-wj>Á>Ç|ù2mù´…’*�QÏÞîýì¿àþçÆ£Ì]y!³o—ú“»hJÃc¼¹óâîãpˆÑ�¥øg^±f9eC|>ï3¯»Òëõ<¾ÿ©—¼è¹›çgVKgçæWVV£Ûzʼnƒ;I$’¹œ82<ä٠ʽÝ�§1é¾„• òV7äø—%3*
82x?û {É>çfUÿükñ/¾šyý;Èlwi¨<ë–jÐz<0¡—¼à9×^uƒ[ÒF+—gfçœôÒÓT¹œ!8=QåÔÄäòòŠU›ê/nûýmÉ8PSwTºª‘{þùí…n”Ò-¦±çí