ÿØÿàJFIFHHÿÛC     ÿÛC   ÿÀ,,ÿÄ ÿÄQ  !1"AQa 2#q�3BR‘$Cb‚¡ÁScrsƒ’£±4Â%6DTu„“¢²ÃÑÒðÿÄÿÄB!1AQaq�"2‘¡±#BÁÑáRbð$¢ñ%3Cr‚’²Â4ScÿÚ ?õN€P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €‡y�©{7_£ã±l×<·'v8˜»e§Ò@ŠÁQJ]}ç–†Û )PJvT®Õi:Ží­•{Ù8ÐŽqÏ¢ø˜­CU³Ò ª]Ïw<—6ü3ü5Íö>iµOzÝu¦ëly1îV[£iD¨kR{�UÚ¥!hZ~$¸…)*èì8kЩmQÒª°ÑÙ´¼¡E\[Kz/¯åÜû‰¸à €P @( €P @( €P @( €P @(Œ¹ŒAaoÉy¸ì mN: ”¤}Éð(Ì9ñ®1Ñ"+íÉa¥ÖV•<â/–å]?f‰ñ�ô¯ò�äú½£Üöozò<ê€ïP‡© Ï‹ùs-Ìî–«ŒÌBþÌ9_¶m°�˜˜G`0¶d!¤©m¤„¥Ä¹ÚQµ¬’÷ R·³ŒéWxËÎqò+-¯Ðou:”®-öêÝqÊOžr³ÃÇÈ�zä«·1u…{È0È“UÇ1ƒj¹ÝaM1.@Ô`¡úÒVçh?o¨HÖ;Z½¥}p¥K’XÏoS7²ÚUÆ“déÜûÒ–qÏøðãƒÒŠÀ� €P @( €P @( €P @( €à�PF}ÔÞ„ã÷©±opò{¥²KVõXìrÙ‘5É®•cv| WjÎÖ@JPµN¹iR�iªtÖ[äuî+Òµ¥*Õ¥»¬·ØWÛç]ùOͶ_ù°[°iSÚƒ-6y2%M¶‡{»RÔ„¡ä¤§ãBN‰)îÖŽr÷E­cAW©$øã ¿¼Ô´­©¶Õï¥r\MãŽ;º"~Gm¶c²o²f4Õ¢;U°u]ªšvŸwY8¨ïGšXã⑎£­kZ}¬£9MB¢öe,ð}±mvtóF+‘Y¶ðdœ 0Ä,¶Û-ÒÛ–Û»¤DІÖë.•´óKXÊBе$‚~cæcõëZl³J >Òä’í3[!¨]\길«)fæÛê�V|Up^% æ¼£'Ê9ç:µ£3Élvœ|Àƒ†ä¨M÷9ZûÖ¢^HÙ>@ó[†‰¥ÛßR�J鼸ëàl]r­ÞíÊ­ÇwKÕÖýÀ‹e›´�Ì¼ßæW¬Ùt€uÞ”¨¿ÔªÃêÖÔ­.åF�%�¡³ìåõÆ£¦ÂæéæMË’Çð¸õJ I$èrklåY³uÌnçöƒ?U\Qý°ÞgçvK7¨mN‰ñ5¸²}%�‚¦–B“ó#[ɬ.ëÎ0m{Ñ–x2H°ä6¼ªÕée¹D»Ûd'¹™�_C̺7­¥i$ü |ŸFB€P @( €P @( €P ­q¸Å´@“:t–aBŒÚž~L‡m´„�©JQ % I>Y/½áÖ³sÞ²]•Æþ²"¹›„�+QÒ^Lë—zO®‰ ¥*IÓîcoëRŽ#ýñÇa„޵c;ßá𩚘|¹péžÞ¸,ݾãío�:†¥Ã”Ò^bC+ C¨P J’G‚ ‚>F±Ælê[²›=ÞcÑ ÝaM”Çõ¬G’‡ßýd¤’?�FIÃFR¤‚°uÄÍÑØnOšÆ6èí²õ¥Çy¯ó?YM�¥3ê!M”w©O#»`j³M:o!Náe?¯CXÚJ×vúeJÖRÝ”pÛë»×�®Jç'ޱûfI`É�ÐÎ=[m†’Ë(iă½$;pïþ‘_Z´ekF5a]$·]œèPÔ.gB­£“—¥”[âÛmgë•ðD ›f™Y¸[ˆñä™PÞaÄÞ &8(_pîî#´©!E)î* û ÒµMj…å ÛÂ/šÃð}…©³û+w¥ÝÓ½«R<žb³Ã+·“ÃæzÎN]­}9àËÖ묬rÕk�áÚã*�¨ÑßB‡È€âÁþu©P‚©Z}Z_2Ç»¨èÛU¨¹Æ2Ê­Ôî[+á ÂçmZ£KC+6tZ.¸–»“ô!*:úUµª×•½•IÞ1ñx<ß³–°½Õ(Rª³å÷ágò8Àº"Ç:égåGÓ&O%È‘fšôÃ!ijyrØmÈ©h•Ëå*R‰VÈ׊¬tÚ²¥{JQxâ—“à_ºí¼.4»ˆMgÙmx¥”þF«Å~W‡•'çõm{MHþ5amÍ„»šú”¶ÆË¼;ã/¡êþÇa#ÈÖêª=P̳ræ.`�½÷åJŽÙ˜0ÚÿÕ&¬Ý›X²o¶Oò(M¹žöª£ÙüÛfWðð†™ÜãÔ�ðü]×[e± úXw¸¼V—¬Ë~þ«ïÇÁ`´¶^Ÿ£Ñí×v~-²ËuI˜HÂ8 4¸AQMÑø&݃¢%JRc2Gð[É?ʱt©ºÕ#N<ÛKâlWãmFuçÊ)¿‚ÉP¥@·ã8c�?:‹M®ßoü¨š¥%";(k°9µxHÞÏή·R¢ã�Ô–3ذyN©qr§»½)K8ímçdWÁ|±ÄW’°®?ZY‘‚¡Ý M™‰@KõUñ: <üZ:ö0úuæŸ)z­§ wc>}|ÍŸ[Ó5˜C×õ.)¾Üîç’Âà—N‚à+²xã¨Ú×ÀÃ’ØŽd5)(½�ºÚ”ïJ“ݲ„šÀm%¥*jXmá÷õɸì.£qZUlªÉÊ1JKuõ8IIsGH*°•9ri¯‰GÓyæ5v³dÖÁgsö‹í¥g»Ð�Ÿ…æÁù§ÈZóJ›P÷«ŽÚ½-N×}®Xkê�1_Z\h:ƒ¦ž%œ_jèÿ_4hC3?•ˆÌál²èû˜>#ÑŠ#º¶œ½Æ{nFnBÓ¢Xi_»J* VÒÞŽ©§hpWUÂÌaŒwç“~];KZÚÊ’ÓèJÉîΪ{ϬqÁ¥ßž½œ¹›d,»�þH¶Y‘c²]„·L5�b—£”¸Ú�ù… Úåges ȵݎEw KU±¨ªúYž<[ãå. ™ø‹ª;§d–¼?”.йã÷G“Ë™Ê C�>DK�H îW²$µ¥€¯ˆ×š¶“+ oÃŒ˹þE׳›G f•d£Z<×F»Wæºx?›xá®\✗S¿—zãI‹'ÿ«ÊI ŽïñC¨m_ìÖ¿JS�5ÄÜêS�X:sYMaø2ˆ£¿”¸ÂTiHUºeÞÞü Œû*,¢•²ûgèPèXÿf®ZsŽ¡g½Ç†VÁž^­Jz.¤á%—Jiø¤ò¾(— 5Ûct¢Å‘ˆíƽYo—W¦Æ»Œ°ïwr¾Õ) Ñ:ùU78:rp—5Àôý*‘­ÔƒÊk+Á“7X6IÞš9¨¨.H‹lUÅ´uËL�¿îkê”ýHϱ§ðgÍÅ?MFt¿™5ñX(ßR6rf­É2–üÏÆKc¸¸¤¾;~¤¥'_Æ­ÍR“¹±©qá•åÄó^ÏÜ+V„êpIî¾ì§«-PY¾óÑ ¶L7�nB±&ÒÚO—Þqø«e)úþžã¯d¥GåUMš”®i¨sÞ_SÑ:”¡NƼª¼% gàʇÖz=Nžò·QçÒz+ÉþR›ÿù«;]YÓêy}QAìƒÝÖhxKÿz£d’&Ù ¿½‡c¶½ÿƒÿ©�Gȱ7#Îå¤ìLÌïkê5l�÷4*×Ð!»aÚßÔó®ØÔßÖj÷(¯ò¯ÔÝ ˜Ê›†óB¿&çÈ…}PÛmÿúÍV·Óߺ«.Ù?©zé4ýŸB��Ñ×Y׿Ï]øßA=p ”ÿE ®ÖÁC"K}ÛûVWA¡é¯£'Ê9’ù³^Û ¿VÒgøÔj?›ù"£s>%'›9Œ8f$·¢±•Ý&ìäÔ›tdúŽŸç¥k~;’šÙ6–áÂŒ(EûÏ/Á~ÿCGØK%Vê­Ü—¸°¼_?’ù“‡5aØž%˘vˆãöÛ£ Ç�”[‚ÂPCÓi*PRƒQä(•Ip³æ±[5C~âuŸáXó±°mÝߢ³¥j¹ÎY~ýÚ4®$…'�zñÁ­ñ”¿È`¶9·ù¥'Iõ¤£òÍ Ÿ¯k€ëéºûÚjûÕ¡A~Ÿ7û{gèíªÝ¾sx^ýßÈô^\¶-ñ^“%æãÆeÇua(B@ÙR‰ð’Mie¤S¼£ª|ç‘eºþ»~%ˆþev¹À3gÜ‘ò} ©hC «ÝýëRt¢”l Ûl6~¥Õ5V´·Sä±Çö+}clèØVvö°ô’�ÛÄSìXâûú¬g©þIÂBòx6þ@±§ËÎÙbVSóRY+[R4?°•6£òî:’ïfëR‹�¼·»¹?.�äpé»smq5NöŸ£ÏâO1óê¼x–¿ ÌlÜ�‹Ûr,zàÕÒÍqd?[;íZOØè¤‚) �A‚+Okf¦šÊ35Š@( €P @( €©}[à#Èãò¤vZe†m¹RìÚAì‹<�ú2¯IÃÿ6´¨øj¶MPõ:þŽoØŸÉô“4]¬Ñ¿‰ÚzzKïiñ]ëªü׉]zˆjì8O66$¸.ÆÜ  ÷¾˜PõHó°Ùs_Äê¬ QTõ:¾‹ÞÇúü²Sz£üRßÖ=Íî¼³Óçƒré¤\?-è« È1%Fµr4Öžº7“¡;Z¥z‹A‹#^WH )£àh­:^•U5µÕ[Jª­'†¾}ϸômý…¾¥o+k˜æ/âŸjìhÂÜ­9k¹Ù/öåÂÒõ¶çox÷9Sk(uþóN'a_=$�­ªr£ªÚeû³_û3ΩÜìö¥ºŸ·Må>ÕúIs&Óžnü‡Ç÷î:Ìe9ÇK™RVÜ™jß$�“¤)üûRIÚª¡¯FVõeJ|âðzVÒæ–ð¸§îÉ&¼Íc–ñCÇý’[P�NÓ•¶rk~� L�¥©í¿ ÷ÿxUo;5u½ Ú˧á×çõ*M»Ó÷*ÓÔ ¸KÙ—Šâ¾++ÈÕºLÉÏuŸ“â/Ò±òU°^`¤è$\£J~êoÔQþ ¬.Ð[z Ç5Ê||úþ¾fÕ±·Þ·¦ªR~Õ7»åÎ?.G¡R£563±ßm0ê ÚÆÒ´‘¢ù‚«Y7ÃÏkÆ<çå©ãÛó†$4©C¹ÊWkW8 í¶Ráñù†CkléE)BÀ!GV^‰ªS­F6õe‰Ç‚ÏUÓÌ¡ö¯gëZÜÎöÞ¥>/…¾yîoŠ~DiÊ™. Àxñ¿Èm*¸DªËdTç\m¹¾ÿËFRÊ Ùï[hN�WŸ:=»¨Øi{×J Mòío¹tïf>ÂzÆÐîiò«'Ic-òIv¾½É·ÄÓú–æL *à\¦ÝnËìÓî2¢4X‰R\uj¶¾Ð‘ç`½ûh×_U¿µ­cR¨›ipO½Í�Ò5mZ�Z´%ż¶°¹4zÁÆhñ¦),‡íPÝß×¹”øÕb_…ã“rñA4¸…:õÂå1ä…¤)sä8 ¡îß�}µVî�ˆØRðýÏ4í>ôõ‹œ¯Å�’DÇøTÄíé* ÐûÝï—Iå_ÞÜ‚Þÿò꥜·¤åÚzF”=8ñ$`yŠ÷ý+ê72–\|~,y‚“±êv™rûíöìë~ÙŠ§R»êñðãù”îß]oV¡hŸºœŸ‹à¾IšÿEVò‡Õ§'çn¤9oÃíÌb–å“´þaÃêÉR~ã·´ý—X zãÓÞÉ.QáúüÍËd,ýSJ„šãS2~|¾I_Fožç¹yq*bñ}y˜®�Óù8š†Écèºçýá5¸lõEd¦ùÉ·åÉ–Ú]úΪé.TÒ�Ÿ7õÁ´~Øÿô•ŽUåÉYf@¨6åŸ?æǦÙIù¥(U{¨\zÕÕJ½ááÉ|‹£F³õ >�¿XÅgÅñ6MýiÊr/MY‡kªf;ÿ“‹1iVµÙŒ7'gèY[€ý‰® eW„gɵŸ �ËùT…¥iR÷”e�<óœï™-Æ—™˜š#7{BÙa‡$ö¥˜É[ÈmN«»á @Vö¯„³à¶õ:Õm­'V‡¼¾\yùnÐmmïµ6÷OØ“ðËÆRÏ{1X9ÍO˜Cù�@¸ª}¹Ë¥ªõöÖ•%§CÍ,¥(ý>³d‘îtT=°:©^îr£]ç )þ¦ãµÛ?i¦Ò§ugÔÞëŽ[èÚk9ìâYþˆ/‰~åÊvh™•d‡w�1ŸAahfL˜Ár[Ö”¸G÷�QùÖ¯®F𾛦ùá¼võ7Ý’�yéÕtÓ‹igùSáú/ÔVÜE €P @( €P @t¯VhYžuªå©ÖéÌ.4˜¯'¹4´”­ 0A ÿ‚»‹Mâ¬ÂëÇwGœ’»J"Ñ9óÜ©ö¥’–V¢S�XsêP…ëZZ¡ët=ß·šèÿ&yóktoá·žž’ûºœWtº¯Í~ÇC¤ÎEk¥þo¸q�áá�³w×qÆå¼®Ö-×"?}¨�%.´ó Ê�iÚÖŸêUÜ ½‰q]Ý«ôî,í–ÖŠÚ*uÞÃík¤¼ú÷™¬–éj¾ów(\qé,N°É¸DÔ¨Š aÙˆˆ†åö(xVŠJˆþØX÷¶}™Sõiï{»Ü>Mo'¨SP~Ò‡µñxÏ—È�z]½ÿDÿ›Ý¶ôÆI‹ŸÍ´=½T4Ó¡GïûŸÿ1úÖ³¯ÅFþXê“ùæÆÔ”ôzj]’ðÉtºµãKži…Úoøí¹Ë¦KŠÜq�>½iq–’Ô¸èÙ©M,©#æ¶›�Óî½Jæº.~™�ÖtõªXTµê×é.+ôð<ùËîü™È\Í‚§Ž¸4þ’awÆ®fáx¶ªÞ×¥°ieÐâG’¥èÖoYÕ(_Æ0¥ì¾oô5M–ÙûÍs«s5í¤·W)ðmòí\;yž¼§}£c_jÕ Àg\�òn7'Êìpr4�z°®,%ÖÉÊÑöPù(h�‘g·~}>[òô_UŒOš†Ü"Õ6êóІŽÀ(QîRG÷T¢±T¶ß2K‚%l¯£îÍò)Ûçã—¬„¥/Iv As´h N€ÖôÒ ’Z�5® xpØn,Hí¥–Xi!(m %)ÀûPƒ�ÿ î!ç¼ÊVW=«¾1–“ù¹XܤFLµŸôŽ¡M­%U ¿µ³æ¥6¹2Š—4LÜ ÂÖnžøšÃÇö æZ­u-Èœ¤©ç Ž­Õ)E)Hßrϰ5P}‡©î™9Š OÍ8Fmžå îá›vÅoÊJA™Ú”—£¸@Ðq(Or´€¤ìl+C1eªÜØÇr“[½�lÖ5]œ°Õçén"ÔñŒ§‡�šù�I|7›p'G÷¦eÚûyNꛥþL´)J¸ºè6V•“¤2=ô 5Š©7RNræÍŠ•8Ñ„iÁpŠIx"“ä¼ó†âý?Ý-˜î@Ó¹¶Ò›KVÉ[“-I «¹•€®àµ-JÖôA«*¦§iKOq·¨›QÂ\Ÿg"Š£ êUõ¨Îö‹Q”Ü›ç'žk‡q}q²¾�:9Ä-±m(¹ÝípíöÔÁuïA·nÞB\p%E(õŸZ”BIÐð7ª®hÒ•z±¥ri…ÕÄ,íçqSÝ‚mãŸJ±òî[Ì\n1äx8Ãø¶qm¹ZÝjÊÄ–ÞeIŽWá×\!eHõ4;A@P>¬Î£¤ON¥’žrñË‘«h{KO[¯RŒ)8n¬ñiçŽ9`†ñHWÌznAÆ™ÓI™‘ãA$IufñĨG–ðC¨J’±òZVÒ·mù_Û8Tã(ð}ë£óêU[Q¤=õT¡Âãtkšò|Ww�°ÆéÆßÖ?·ÆyE>Ïvã[ªn½2Ð�ü‹<–{ÙaÎõ ‘Ùéÿî©$£Uþ§kê7S¥wšð¡rh‡ñm:�ÅO}pó.¾|üËKÒÏKØÏIüw#Æeθµ.rî2¦ÜK~«®©Gö�„€5õòwX“d&J@( €P @( €P ê�ˆåò÷�GK¹¦2µÎµ·¾ßÎ6S©”ºò†üÒ¿³]ë+¹ÙW�htçÞº£ªéÔõ[9ÚÔëÉö5Éÿ}2Tù79†«„+|{ü9QL†`NBB_Ð'ÓXX!*žáð¨u£Vÿ¤…ÅI¤šÊ]§š= [;¿CVNœ¢ðÚÎWà ö÷£KÁù©Œë]×�¸ç2Ê#CQ‰û>ÇdÚ#º¢¥!E è(ø;Ö¾ö†Êý„óÙŒ~Æå‹ÕªÖûÉG ñ–ö|ñÍù’g@}(g–Î[ÉyÛ•íß°2 £.EµXVAv3kí qÀ ìÒ–Ò’{´VTÅW·W»­*ÓæË¯O±§§ZÂÖ—(¬xö¿6zï]C";EÍ�¿äÌVÍ2ïy¸EµZá¶]‘6kÉi–P=Ôµ¨€‘÷&€©W¯Ä«¾ÞäYø‹Ì9–tu”;#·©¸)?w”’Ÿf�Èšu—Ö¿6Z’e^:LÌ·ˆ®ÝrD·’Ÿ¯¤–vOÛÅH$N ëÇŠùÆú1¸÷ ˜žgÝéœg(�ù)¥ÝFÉBÕþªUÝþ­A%‰Ø ?+y ë½aöî:ÝúØ ñªÏú0ážLÍce×ÜÜîHÌÖçªã®3�º…÷¦¤‡vR7Þõæ€Øú‹ã)\»Ã>1m}1/XL‹d…þ–æ²â_Œ£ôOªÚ7ö&¹)ÎT¦§içàpÖ¥ ô¥F¢Ìdš~�B°¼ÞÕ̶…ÇwóXþ]e– ûk/.6KƒJ ©yªîz) ”¨©5kÑ­k­Û8KÍuOûäÏ:ÜÛj)|ªSxÆweŽ]�ó]¼WFnŠnY»\ò\“"—�ÞŽÓ2.×_E¯J3!E „´„6ÚVâ‰ÐÚ–¥í®{>†› z7Ï›}ß‘ÓÕµ«½r¤=:^Ï¢Ÿ7ñm²Oü?.IÏäÌþ&ÅtºÇ´ZÞP׿X„ÉJžOúªu÷@û&«}^î7—r©up^]KÏf´êš^› 5–&Û“]�ôòXó-ÝaM¤P @( €P @( €P{Ðk™ÜW—gÞŒÏ-Å-7‰jŸ:Ëc’Â":úõꬴ¥€áJGwgr”®Ý“]Õyq®¦÷;?¾�ÜŒ\´»9Ýúô©'WχË=üÉ“„xéãN7‚Ù´@*¾çqqùNèQ×µ-ZÀ{ŠéBAðÒ€‚ù£­¾àY®Ûr¬Ò ½¶t«=µ ›1*þê›hLÿ×) "�ýª<\”úÎaüŒÔϯýƾ»õw¯åRFIc‹zÝáN`·Ë“�g¶ßZw%I…p*‡%¦�’§é:T�I)î ‚J׆a×ÏÄ»6{8Í\�héâÏ5mc˜«n)…_ÜmE*•$‚fÁ=¼¡$ijP‚øâØ•—±E²ãö˜vKDTö1 e–ÇÙ P“-ÚÈ ê+¥>êc\,¦Ò†îí#üÃ!„w+R¦ÝHÏb¶“ôÞˆ´â|Õîcx]ËÍb8M…ÕCk'³6½_Ø÷me}ÝÍé$$©JJ¶ߨˆ6æ? ž!”�W ¼f¹UÉCn\.—õ—T¯™øþ´:S¿¬§ŠÁ¹p?6å˜}ů�|†Wí[äeh)øAú”/_Jféÿ¬KôŽFGs¦:ÖÊ]›·Èe[¶_‘çKŒ²H :?È$WÀ–ÏÞ€P;ªÃÛêþs<~ï/�9)öõ¨ÉZO®ÚT’¥ïJ’­hàp©:rÞƒÃî8jѧ^�X©Eôk+æVø?…�2f÷F-Ü•ÍÉ�ˆ%`ºÅ¹r}äíØàJ£ýåwëßF»uo®kÇr­F×cf>ßI°´Ÿ¤·¡˵%“ÑÎ6ã«à¶\C‚›uŠÑF‹'d$y*Q>T¥T¥$’O½tL±²Ð @( €P @(uÈü•Åvh9 €Gäk\Pâ®ö–'*=È#áì\dö).hw÷#]Çáí΀‰¸×ñ2âìÎÄÝÏ ·d˜$RáaÉ·{ZÞ‚ÛÀè¶©1ýD¡Cæ#æt½v×Óú¯¤^“žëx–;R|ZïYGÖì±½Ž”Â93ä»h¸bY5§%…ãoÚf·%)ßÈö£ö:®éòDÜ'ÖßóUÝËSdb¹kr^‰ýÈÛd<ãN)µ†U²ÛÚRH!µ y¾ã&âžZçÝâ øר9 €¤œÛÌçSüÃtàŽ»¯³Ùtœß?d¨[$‘H#÷§E$‚TJP¥ÛÀÝñ_OæS�cQäÞ€ÛùÕ “q�¿š‹ªÏžÔ§íBI³´}ÿÆ€€:…èk‰º�¶Èý·Ž±iÈ“èäVfÓkkù( :?Õp+í£æ„…Z¸ã ±âöHé‹i³Ãj f’Óm¤$oêN¶OÌ’hI swUœgÓï¡.È›nó$ÅomRî7íØÃ`¨òR»S÷¯‰Î4âç7„º±Ï‘žº3›àüÎ+Ónwr¶«ËoÞ$Fµ­iùÚÊ�ûëK¹Ûmœ´›§Vö]�{ÿÎÔmkIeEŸF?Ø8£¨¥ÅßDQø®Ò öö¿ë¼ÆÈÿÂk'§m&�«KrÊê—b’ÏÁáüŽ9Ñ©OŒâÑfp>BƹC��bwÈ9šOõsmï['æ’GéPù¤è�˜²&ÂN†ÏŠ7âÞ£øËšå̉„æ¶œ†l5(?3ý¯ $è«ÒX )ßö€)ûЗX}4ÀêS‰å[ZÔÂÕ»†7xhö=j>$±å)YHJ¿’½ÒãÑ=Kê€l÷»Ò},²Øë–kó%=¥3XÒV¢>Ei(Y"¢>Tù@( 8$sª¿??ð 5l£•°¬ (äY}†Àîn—6#kÿÅJMò@ŒçuÇÂdªºÿ“îGq?¿¸Åd9ð‘ìÕÆ7é}'ÛÔðâw°N€¬±¡ØkÖþ¯Oyt|¥ÛÍ?¯\œ´êΔ· ÊÎ0ž=¾çÑñžS㨜WËk%PîV).[Ú»‘þšß=‚ߪ}‰iÏÞ'z ן5›®Ø|×ÓîçZÕvû{«²QyÂþ¨ávS¶ºá8¥#~Å:QìضE‹Þ×;;³^®«»–ò…¦L˜òœHK«D€°µ¥]à…oggf«]Gmµ[ûêz¤$¨Ö„w\¡”¤“ÊÞ‹mÒtó¯Ch;_­z8G]Óê$Òj¥89E§ÉÊ1Ë\:¬ø# ZÚ–~êkÁ²ÓpWXÜkÏr—i´]¿dåŒø‘ŒÞ œ‚=ÊQCÉù÷´¥ hø«~�jwÕZO1f9¦ž8×1KÕ‡,»ÁÝ:癬e϶ÛWù"¯”—i“÷ÓŽ$ëí@j}p£<)Ón/äwä7Æ}½Ks˯Ë��áïQòJP�öIùš1Ô÷U¸ÇL¶yŸVE–^\ü½�µù—¶ Ô@*Ñò@Dꀊ°H=crMúÓ’d¼7‹1ÅJiçqV`þИ¨ÝÀ©·\PP )ØøV’ öOµ.¡%iêϨlƒºXø·ŒRÄ®UÊ[S¬È�žæ,�Rtä÷ƈñ¢’4Tƒ •`õ­b×A±©vñôêÛåÞÿwÁ´©Ê¬Ô"j<5Ó¾5ĽÑ%ì�5žK·Lºð}k„×OêWz¶[Ný�“í­•5â�¤ÚÝKi«7s=Ú])§ì¯æ}ïÉ%ÀÚh[B‚áÏ´”ˆ $Ÿ$üÍiGháHJ›Z ªA B>cøÔç=A]ó~¾ðfC+”ø”Zïm~þù„´J-™ ò´†‡†¤²• ŸHUõ±?h·u¡§ë5èË‚›÷ úo>±ï|cÚ×,=Õ’’ߤ°û …Â<Å`ç®1±æØÛª]ºæ×qeÝz±�Iíq—öZ OðØðEz·™¯�ŸRÝ bü›yo°ÏrÝ­Fe£#±¤D.È!4•Ÿdw û‘´‘ÏÑgPóz‡áÑ:ÿ6ìâÃ1Û&E$#Ӛ΂”ý�±¥kØà?M +–)?™zOç>n{à›Ö„e¼C‘nœÜH©$¸¦ÑÚ²¾â½{êþ) —øÛñ㌛'kÍí÷Î"Ëœ! ¶æ‘ FÜQ:/„}Šû7òÝA%«BÒâ’B’FÁÁ ?T€‡:¡ã¬û�p‘ÇYŒüZýñ$ʼn!1“uh~¸Ê±J`¨oµÄì%_¨íÅUNTä©KvXxxÎG޾IXϱñwq—ƒÉ›Qµ[g¢^ÊÆòáCªpŒR”z4ðÚð|Sø› ½½­XoEgÄý^ì�á>™&½J¸J|?2b°ô•xÍYC¼¹—®í�þeâ>¥ªÆ�ýÇJH~Xöþ±IAÿ›¯@h›¢èmU§OÒU_ާµ,÷g„|–{Ì=[ªµx7…Ø‹ ‹âVL"ÉÍ�ZaXí1SÚÄtt0ËcýT$?·ã¨e¨ €P @(ªrgb¼ÃŠJÆó $kåžGÄX�Ÿ-¬{8ÚÆ”ÚÇÉi!CäjMa‚¯_qÎFéYÀô£tåŽ(a@‹ƒhõ² @ÿ§HÿßXHþÚ@u#{46Öý˜[ê*wz6)Õyn¡/äå}‹™–·¿•?f¯ÛÔït'Ža|§ÀæÙlÙE­y]ôÇv|ä!Ö—9Ç I:)X>Gή]"�Zu½:«Œ šìj)5ñ1µ”ä×,’}×¢N»Îfbø¯‡)—Róo[aˆKBÒ ¤¨J4AÖY¶ø³‹Çw»B°Z¦\î2š…o†ÊäH’úÂi´$©KR�€“ö¨$óòæ¬çñBºN·À”þ ÓT¡³80?häδ½÷7Þ?vÚT6²N¶ R�ÏAáCjÛ ˆ¬ŽÖYBZ@úúP’’ty`k¨>¤9wŸ2ÿ>»UéìKmíA‹iÇ%,->G�­ßïP‚ñªtËï@Pž–ß<¥“òo5Îýü̶úý¾Öµú˜kô˜m?Nå$•kܤògÚί;�Nž™ìQŠ“_Õ/Ò8Ç‹6:š�7S´°•Esã*lh zÒd3žàŸQ÷„ì�²@Ù$>f¾á Ô{°M¾åŸ¡ ¥ÌûGÁúWÁ#dAÑA* éŠGù"êû’øÚ?î1̺ÚÖokŠ›bO¨š„aÜ®Õkè‘^×û8Õç«hÕg™Òn›}ZXqö´¼�Zöš§Yã“â]~“ü*Ñ:š˜'Tœ}Ò—ZýJ[ó Œ›]Š÷t�*;±¡9%´IôJß+ôÁ)Ù{éçGéRA{8£ž¸ïœíÎNÁ2Û^JÛ@[ˆ÷ï™ظҴ´oýdŠ‚O¿.ðžθ£øîo�Ä¿[\³óýë ?ÛiÁñ6¯õ’Gó( ‘ÃùFUÐÏ7Y8S9¼Éȸ›)YkÉ®o@` {êöÖÔ”§ä �RT¤ A{ÇšC=@uoÇ=8ÇiœšôÓ¹ ?'�ÃqµM�O±!JJZG¿ïR4|ü«Ž¥HÒƒ©>K¹¿’Ë~D¥—‚¦Þ:‚GQ²]k,È®wË@ÿâ¬}žû8´Ùû¨ÞÒ»¨ê.ÍØÅ®Æ°òŸc3¥ZöU£ºâ°ZŒÅtÆ0ë=¦õ~'ºCŒ†d^$°†\–°4\Rð‚~Õn˜ã=@( €P @( 8#t>ÇŽZ±˜ÏG´[!Ú£¼û’\je+uÅw8á (�•{“äК~"—Û¦jŽ3àk ÕÂ�É—¡ã!£ñµl`¥oŸç°~áµcB c…áöŽ?ÄíÝ‚vë5®3q"Fhi-¶�¤�¹ù“îI$ù4$«�Ys e|¹�ôùÄÿ`e¨Fí~Ê{ �šØRT×ý"ˆ ämUÜ‘·øf¶¾1s™ø^é1Ro˜ŽZô óþ•B|‚µéwëŸ4à÷¡'NöÓ¯Ùç6Æýe°âQ¯~⓯÷Ð[ G_Ix;VÊf2ê~aÄÌ{¸¾ëÃßh±”v¢ï{®ïÃr&ÕeÿÇ�÷Ô“9O•leÜÍæõÅ6úã¶ûL©È?•=%)°ëším;íò²ÿÕ´�"ëUœåoIÔ�$¥5{s)=ÕÍ¿'b­XÓKyã<�>²žaºóGLѬ»ÃÙ–q!uæ¬îÇ\‰rá6©Jü³e*m‡ÝuÖÜ ZG�ê½i¢PÐö†WVÔÕySIÍ5Æ~‘5¿$Ô§¨Ê<Ó“é“*®­Ù<Ë?,wv%¿«(°º�‹¾FŒÿÙq�ì©%1æ–ãi„­!×eþaM|ÙÞÆÉ­"¦ÇÎz¿Á5yR®ã½φZ{±§¸¥Åó—'Á¨Ü⯽ì¥ýù—*Åy‹‘Ù-×h+[�gÆn[ qµ6¥6âB’JTIÑتFâ„íkN…_z §ÇÝÅ;=»¡&ñâvyc¥ŒÑ¤7«½Š*² \„8̈ ¹´Ÿ‘Rˆÿj€ßºdä·y‹§ü1’{¦]¬ì=(ýdö=ÿ˜•ÐYÇ32ÙùDœ•‘ÎZW&í&Ö˲\RR’\RIð”�ü©È³1ÛŽÒi i´ %©è ?`ì5@s@( €P @( €P @SYí?Š :ô%t1;½½}Hî×ß·T ¹Ô$ë lAq3ÄfDâÐ`ÉôǨ[aÚßnÉ:Þ·@yÝÖž�Në_µðÆI+äìÚÀý»#•M‹RTe­[ÚV…€F•û¦ûJN‰]® áËoq•§ µÜnWv!w­s®Ò ÒuŸµàmD�‘à}ü’$ßÈØ (G´xgš¹W„÷Gr¬h/@H¶KWrÒ�¯¤çÂ~ýßC^\û[ÑgN掱M{3[’î’Ë‹~++ÈÏiÕS‹¤üIo”øîßË\w�â$!Q¯ÜŠ•­!^‹ªIôÝöRÚ ~ÕHé:�]þŽ¡Eñ§$üRæ¼Ê2µiª°p}LGO¹›ùÏ â—iM&%Í0ÿ!pŽÒCif\e$ $xH4¢ð6+¹´v1°Õ®(AæÛÑoŽc5½ž¾Ë\Ošߦ›çú¯-Û"òG7ñž*+-öÌfw$<Ð^ƒ$1 G€·ÜRˆþÐgÎë/£Už—£ßj0“ŒªnÐŽ=ïjoÊ %Ù¼qUJ¥XAôãú_óóõ&´S¸Cý±þXº‡åNhhz˜äVšÂ±É=¾$²Âƒ’žNÿ²§{tG¾Ïҽϰš,ô= � Ë'™Év9tòXO½�ÝUV«k—"éÕ‚tϛϷӰžå¨²tŸ©: ?jý'øP¿£D&ÙÕïV–Ëx±S|·Ë¡2]må=¯¹Q;þ ¶™Þ8¼¿ È,M¼˜ë¹ÛäBK«OrP]iH #ævõBJ¿ødeΞ—Æ—X¿³òž7»K°]#I߬ãˆp}�rÒ?ìÉùЂÞБ@~BÁ$²<|¨AØÐÐ @( €P @jü�–]0lñ~²ã3³”½f¬–׉‡pî+ðHNÕ¯$öèHpÂzÂäŽTÇZ½b\KbrÞâ‹~­Ë7Cn2àýM:ÓqT¦ÜIð¤+JÜUk«ý èÚ%Ì­/#QT�OGóM´š}àwiÙÕ«èã&JO,õûn:›XÙBJÖ¹w‹„°ÚG¹QK �®À­bkº.wi[Õ“}Ñ_û6v?‡UêÑÆêG¨ÞPº*ÕÅÒ0,ÊCoz2nÖ› ÔÙa�Gw©p~PCŠý !Õ}…Xú6­«%V­Œ¨S|œä·Ÿ„Êÿ©££RœiðSËîýK•Å–ÌÊÓ…Âc=½[o¹>Ô¹Rí•0ÙØB¥(�‘ã¸è«[Ðö­¨à*ÿâ'd¹à®q=Ø¡®l¾6½nl2>7m’ Pÿøh°tŸaB i‡e¶œó´äV)­\l÷HÍˉ)£´¸ÒÒ Oø#äv>T$Ì—ñh¸þ'¼ë&à�g[ñ›T[p_’˜ËC p§íß­ëûÆ„F„Š»u{Ó•Ó—-v\Ö՛–0÷.Å9Íå$�ÞÂ|üÛtxóàò Ucu:ÛV´©ewêsXkó]�>)ôgÜ'*rR�4hüÎ09«–W Ü-³»ù+þ7,ɶJ IÉA ö«ç­ ׆ö§f.ö^õÛ×ö©ËŒ'ÒKò’üKÍphÚíëÆ¼2¹õ:49ÈüÊ�ØÃÖr¨ù%›„d¸½}½vd2i®‰°Óoººn›ñ¥&—ù%GÙœáߟ�+Gôƒ™ùƒ'_ƘӡbÑT~MÃŒxâüµïîšjïÕ´�:ÉuŒë?’Ý�ù ¾"—µRsð_õ5.[ËrzÏdp?ÊSœ@–TÐîjÃ^ÊT=ä¸6��v6G�ˆ¢Îû9؉^T†·¨Çî£Æœ_âk”Ÿô¯ÃüÏ�%Ç¡}uº�(sê]N1ã{à6<;† Øìñ“3;Ú´<•(ÿijQ*R¾eDת ´PÏñ?–©ücÆØ¬U¬\r,öÕ –Û$)@¨ŸEº„2å#éçþ4$‰z{éÊÏÓó{�®“¯×|¦öýîåu¹—ÝZÉíAíñÚ€N¾¥J>7 ¶Fƨ aÁì§üK:€´Áýܵ†Õw} ~\%¤“¯©õV�.~À¡'Bó¶c°W6ëp‹l†�Õ"kÉe´ÿ(�N`óç‘ãðþgÖR&c™z/ïævÿJT¬/"�Ô‹MÎ*@mÅ;À”¶û:A Ø2“ý£U¦ß_jºF�GK¯¹*oÚ‹QjQ}Ò\âðøtlîÙÂ�J›•rKq°^IÅ’?¢¼á“! v!å°¢^Ù?bâ�Óúÿ¼ÝS¶_kú¥,+ËhT]«0û/‘“–›îɯ™™�Ë\ÿ‹�Ü1œ>Œ‘®ûEÊM’J¾þ›èy²~Þ ¾Øý­èÕð®¨Ô¤ü×ɧò:“ÓªÇÝi™hýedz%#5âüû×õ’Ûµ¢ï ?V ÝV¾å·ë±ÙýG… Èg²Oqü$‘Ó�µh{Ñfå…õeÃÜ€ù�eä[³wÛùrÄI@ý /v,·mn”g(4Ó긣­Ë™,6âm.6 ´(%I;}A¯ ~¨ €P Oäî\Ä8w7¬ÂûËKô™§d¸}še¤‚·\?$!*QúW̤¡)<%Íô@©¬Ør.Uæø¼—Žãnñ™C¶æ‰iïºeM;?7 'ÒŽçµÅ•HÇÂ<4ý¡m†�¨Û½>…5^¢åS8ŒôËœ»Òö_VÌå�µhK}¼.ÎÓ#Ϲ'^±+†ÉY5™˜3€ ·—l v•6ÛD»Ü·ÂGÔj¨önÏhiÝÂ÷E¡9N<š†cÇšm­Ü?Œ�yQqqªÑ�é–³i×±ƒÊÆï™&ìÙì¬}v@H=±ßaÔ¶P¼Â@WŽäµW¶t{�FêÒ55KuF·T¤¤¼V3Œö<µÚÍ^¢„eŠo(¶•›8Ž•îÍ"³Íµ\âµ:Û5•Æ“ô…6óKIJР}Á‚>ô–½.^yë‰'r›1g‰ÈÕ”sѪèÍMä>«x‚R³ïmò Ÿö Ó�ùž¢û˜óœR~÷ŸQöþɯ.Oduê›= gi/K ÒipÎìé¤ß>[Ñ_=ë4•g-î ~du¬LW éÇ)sËmnrNA�Ý$EŒ· Urî.%¹ *Ohc±`“ãIßµm+b/u-¡¶§yA«ZtéE¾{”ÖcÏ#ؾ¿ùp)Wr¸Ÿq_ÞrTÄÑ$¸$ ƒÆíx}†’É‹]¦)�T4ËiJR‘ì©J€P @(_ú‹äÞhµÎþ‹pßíÙøéu̦÷-˜ö¨A[JK�o85²�6ŸÕ½PæÒ4ÏÈ?¥YfgŒÛs‘§2Gâ;�ÝZIÙ-ÇSÞ„Xˆò~Y×Ôª´�Oeá®K­ÄçOÿ®/ÑÃÏ”¼\¼;0®é»ŠO·›%¸Ýãw�žf9¯")Cã�u½®$"~Ña†[×ÙAUÞÓö_CÒ°ìí!ºãyüe—ó>g^­OzL”ðÀx­ ŒC ±cg]¥Ëe½¦\_ýe„÷(ýÉ5´ç¡Àn€PhµJº4�Ž8곩n/œ?/&Uõ9u¹µ¦�$mjOÔ'½�~äý(Au¨H 8W„Ÿá@R¾˜jóø€uEu¹žûÜj·ÃïýMÃ-l„ý-´Oò¡Õ¡%ë–âÖ5Ô÷^_ÅWÊI Ýc7‚Æh?%J- þu¶Ô’Ùìñ²½Ú4F‰Hƒ,ždpƒ£\´þǶþ*`×'ó#Êãl�.ôm‘– ¶@_ç-�)™Ú—é÷/CõÐO�Zyè2 mÝqS ¼7}H³!bc%E )kW¤;€?ºß¥¢õt$žÏ�@Tn|ʺ‡å¬öñż_‹¹Ç˜ÓE,Ü92ð¿ÖÒÐ ¿"Ú|•h”÷ �G»G⡵žþ•ƒ†--q{²l³Š¥W F`‡½9“¦�I’¡áIpøó{Ú{‚€›z4êÞ£ø2Õ’\cˆY47\´ßa„öú3™ÐsIþÈP)X.ý|¨I rï-ã€\ó<ÂríÖ ¦}¶ú�ZÒÚB'jRG·ÏÎ…çgW]y朹ijàñž�cpGÛù‡¾7–_[oDGƒ+·¿éÞ=m}Â~¢„2ý~·b¶)÷›¼Öm¶¨ .T©rVÛ -jQöI¡'ÏÊ-uš5ÚÅt‡yµÉHS`>—™t}R´’øÐ¿õ‡‹söN;: ¬;'&Ç…nº¨v]�!Æ\r#Ú x¥MžöÆ–‚ÁN”zÔîhV©R�9§*m).«+++¦WÚKM$ÚæO~õÙ æ€P @( €P @( !žEê¿Áoò1›zçç£'µxÖ)Ζҽ¿~ CQÀñ²òÑüë¨jvZU^ú´iǶO;ä™÷J£ÄH–ù«–îÐa·uœß¦òé‰gÃpµ7tÊ.Жâ}à‰n6ÚƒIÙ.{n³¥·Uuë·a³6îm{Õj&¡Ûº½§Ü›‹}œÙÞvŠ”wë¼w.fùÒŸEÖ¾#½Ëäl½¤^yBê6©2%»8Z›#^‹O¼JÝpƒûÇÔv¢HHB>jÛR©F”aZ£œºÉ¤²ü»åÞø˜ù4ÞRÁiÝvˆ*Ÿ8t)�_²¹œ—ÇÙMˆy([òoxùÔiZK2cí)^õµGw’ £B3¦ÎnëC–øªß˜Xǹuš[ÏÆfEù§!ËsÒYl¸RÑB4H:ןb¤nfÈ:—ɹSŽ8³˜sk7â\†ûð̬ •)jR?ÍVó‡¹*p­øTSûÁ°¯) /—t÷�ð×#�ñ»fñ¥6¤J�-ó9Kqr ‡ï¡àìkZI»cØõ¯²B³ÙmÑm6˜M%ˆÐa2–™e±ì”! �ôyÎý6a�CC³§&j|K�™åHµÞ¬Ó|¨¿IÔû6#À>àŠó¿áÑÎѳ…/Š9^ûpÅe+KYW-©Q�öZ �q']ÁZl‚O¹óBLµZy“¯®5à®vµq¶U!ئL$È›ylwǶ8â¿rÛé¹!i]Ã}  ‘¥l,%ƒ#µev˜÷K-Ê%ÞÛ!=ÌÌ€ú_eÁõJÐH?ãBL‰PHÙð>´eê¯<ˆ ±Üiïò�ÉR�åíØ¦:4êß>S{ €}Ç•ëÙ?0 ëômÓ†KƒÎÈù_•¤·sæÐ…Ï(!MÚ¢�á5¢F†“Ý¢GÀ„‚{{”$³Òc52;±ßi0êJmÄ…%i#D|GÈÐ}r/MLô‰œË˰«åïãÛİë׋ÝÈÇ$¨é"dG™“oZˆø–Žæ ×pA:†¿-bÒŸ¯hø¨â½ªRå5Û¸Æk³”»3ϱGÑÉîTáÞnxoES;ä Vì§Ö½N¾¢é µCô\�ú¤&C îŽâTµ¤,ëÆ”Ey/VÚû«�yëzb•�E5ÏŠXi¯Äž95žäÍŠ•´cGÑOŠ6œc›ò®ž–ͯ”eIÊð‰Ègr­é>›«HSòüÛc´øõ’J«Ñ[#öƒe´IZÝb•Ïgá—ü­õþ—dz&âÎT}¨ñ‰im×(—ˆçA’ÌØR[KÌHŽàq·P¡´©*…$ƒ°GƒVÉ�;4€P @( €P @as,ÎÇÇØÕà É.±l¶X dΚèm¦“÷'æN€É$ 4<Å"MÎ9ªíʘý¥î6À®•ùؓ鿓¹¯‚ã"2´˜A#ô¬þùÀv°…ywí3h´mOwO´¦ª×ƒÿx¹G¶1kßoª÷W{3Ö4jÓöäð» W$æøç4zvn=�}Ïs[D�^×{Â�‹$À4Uɘ̓úVÙZÂÒJJ˰»1µvw�¿¶� ¦ýïI”§ÍÅí>ç…‡ÉóÏÝÝ{yÇqñ}ß©q8•y›œq�žBjØÎgùT‹¢lî)q}PHÚ €>F‰À’ }dkÆÝ@W~¿9cü‘t­›O޲.×hß°­¨@Ú×"VÚø~éAqìPƒvé{‹ ôû�án#²U®ÔÒ%�küåcÔÿ1k¡&•×_ Zy§€®È™z‰‹]ñå å£!˜øa¨™…-Ãú¡´“òÚU¢R§ô×=�©Ì>%Šù65¿“mÌO·•‰á#FTqý¤«[RG”øí)$B-°;¡'4]Ï}JñÿMxË7¬îø‹kR FˆÒ}YRNÀQm¡ñ($©^À|ö@ g¸Ó™°~c³7t²›^I iî&„­mý–ßëAû(@m’çG�Ù2žn4v“Ü·^PB>¤Ÿ€©\å×Õ¢ÐñÿCµÊ³¶Ìh–ßÀ‚}‹Ò°¥;ÙJU¯�(Aœé§£ n€äëåÂä<ï:sóy\ë‹)�ËÊßrc¶?«A;µ@HJ@Önÿ†A¹¿pãܯ7â©/½Mb÷µ¡�ÿÕ_r¿—v¨0uUøiBÈÕéfüÝÊy•¿ZT wÎÆV>ŠVÇðÕ ó…z^âþžâ°LB–BÑØíô½1Ñó }ÂVGÏ·`}¨I*P ¯>k¬¦Çj\9 ©—£¾€¶ÝB†”•$øRH$|h 1ÎX„î–ðl¶Æ¢ýÆo6©Ðí3\*uÌZK¬8–á¾|•BZÔÓ‡~’ˆm_ IªSjö\juÍ.8©ÂU"¿RMÉRê¿ãïsÉÛÝnÁÒ©ËÕÄÝ()|+‚Þøë<¿`³.8ô OÚ¥«öÅ™å¹ sº$‚J;ŠŽý÷>+}ÖvGDÖäçun·ÿž>̼r±Ÿ<�JWi,F\; ¯¨Nޝ?�°ñÔ|ÇuâåÏÃ&)èhî$©øQýü'=Ê™G¬Ê¶Aø«!¥ØÞiÑõz×µ5¼]Òk„üqväø©8ÏŠX/غ\IËiÂaåñ–˜O©l¹áq¤ÆyµÆ]m`­*Ø>ãÇ‚GšÏFå@( €P @(uÕÓ..‹ŽO5R.²ÁM²Á'\\ö i¿¦õµ�$oÜ’«X,¼çÕI1½àÌ[ÑÏÌY™ÍK‘¬–OîºÍ¼ÌN”ßæ ¤û°‘æ´�_HÔuüÛU®íí¹55&¿ª\¡éŽó}_C³N¤){If]ü‘?Yú4´_ßjw+ä×NVš•¾ã¨vF–ÁE½’¿ûâéû×wFÙ}@Šõ u3ã/ûŸ†qóV½JÞû'ÛEš‚Ûßl…Ý2lDˆÒZi¤�d¥ $}€­¨à;´Ôä·åi×~1�Eÿ;À¸�WëúÇÄÓ÷UkÐ`ü‰F“ãìðùP‚êdY ·°Ï½^g1mµ@areL’°†Ùm#jZ‰ö PË5£!üMó�Û—Á?é¦Å0‹m¤1#*�Ú´^t�Ð#ýŸÒŸ�½IÌŸy¿¡n1æ[E™,[—„dPÍ— ŵT#ú´'´¤$û$ù{JI&„‘s?ZÜCÛÅšá»fkheÜž;‘'önõ#·¸ýËŠ?z’«­uËÈ?æn;Æ\gCKŸ;6BGÕ Qu$ÿmá~�qœ+.9ç"ß®ÃÈî'F÷’Žö#xöb9*JÙÑQV¿³ÛPÖøjðFsx]Þ65'º­EJ•ŠN\'èØÛiÿe"€ÖÚü+xŠSÍ›í÷;Êâ ïòwœ…Kd�¦�„Ÿð"¤`²ÒÍä<›)Úpߨ²d~y(&rVA_v´�|@v���i^>Zá»’(;$æ€P ¥z²ÀÈímWHl\-³Y\y1$¶iæÔ T…$ø) �A [4vÏÕlŠÔl‹+ ím–��”!#ä@}¨á j€æ€P @( €P #ÇeåŒåØ­¯dŒGü£Ww"6©m³ÜUé¥Ò;‚v¥­“@fÀÕÍ Ú€óߤA±t‡Êü™Ãüµ27’Ý/.d6ü¾æ÷¤ÆAíö©O,ö¥iÑÐ'[S‰ýI=Â×(å’?gGaW7ã.µ31ÈíË!»³àí¸L8<);ãÁ!KòŽà/v;ŽÛq+¾Ëf‚ŶÕ„F‹2e¤ % Ø(IðË2û a•{ȮЬvˆ©î~uÁô²ËcØmJ lŸ{“àPïü·¸£Õî+á�­þÒÍËòšúúž†»Ööû×wÔn·wý±àÌWñm?Òz/X†÷fòýI‡ÌlYí†-ï»Â¾Z%'¹™¶÷ÒóK׃¥$‘°|îƒ]#+ÌË:êmN8 „$mJQÐêM«ÃåŒ&ã‘3`‹˜Xdß^îô­lÜØ\¥ö‚UÚÐ_qП*Ö9š>EÕßc7¹v™A�2…©BÏn—qn2ÇêKŽGihJ�ðRNÇÌ ìS¶­YoSƒk¹6tk_ZÛIB½XžŽI?›$|37°r&;û�]â^íAô¦Bt8…t¤ì{(‚“¢ €k�¦¸3¸šk+‘ õ¹i á–r4‚\ÅoP/^ŸD:‘ü½Þ'øWO­ê÷tªv5óàaµ«_\ÓkÐ\Ü^ê {¨ëÊŽÉùš7>t{d)%¼ˆÑc¶§]yÕv¥´$¥òOð <þ¾åÒ¹ë(o<¿ªÐ…—qk<�û«|Cú%)Á”ò~2³å´)(N´¢«+DÒ¡B’¹¬³7Åw/Ô¢¶¯hjÝו…´±J/‰õò\’êøö廫{=ÿ1¸À±ãYöÁk^®YM¾2�‡ ;ÑyÎÐJYIZˆð Šå–ÐÚªþ…'»Ë{§úXìV ìýa´¥Œîqφyg»Ë$å�eJá>Qµd°"X/—-™,$ÖõÖbqO°u·TÚT±åm­A[íIM Ó¡*NîšÄ—>õÛ⾆Sbõª°¸ZmifÎîz5Ç ¹®�‰=uÁ Mà…%ä‡` õ˜LŒ±¶ßeW¶ÜO²’{ÆÁðuZVž¢îé)¬­åõ-=eÎ:mæڒ„°×5…Ъ9gÀ¸Ú-ð¬écnLL\«KHˆóm·Ýê-° ¤)IîÀQ5jÝØR¹¤¨á(å7Žç�;W¸±¹wJNSÝ’Ymñk Ÿg3ÆœáÇ9EíXVt`»ld†!ÄŽ¦£úhð}h%A?o>M|Úju§êÖòã˜ÂáØrj:6§kKׯ`ñ7Ŷ›Ëþn«?±,ð_%#‹zž²c$í<‘J\m>›¤D¡ò?¼ãm¨û¨¶Öý«PÚ[xS« Ñ\eœù©dìåJ¶õ­fò Ó]Éç+Ã+>eÉäœ=žBãÌ›�@bõl“oR”7 ëJFÿ—vÿ•i…¥âyëiJù†Ú�5?çW[*¡ÊB½Ãå¥2è?pêUþsR’½²Oùãõ_©åÛˆ=+T”Wü:Ÿ%,¯‘c <¹Y_Fø#oùËBdÙßI>RX}iHÿðËuM5‡†z‚-Ie† ú€P @( €P @( €P @( €‚úÒ½»oà;½¦;ËbNK.:• è†åHCOä—«·gGÖ.)Ò}ZýÌn§rì¬k\®q‹kÇ>e%êbû:ÉÄSíöÊo×ãØ-­4{O|…úa)ú|À´5šîÚÆn<à¼ÿb€Ù{5}ªÓ�N*9“òåóÁk®üKŽt¯Ð~WˆÛØkÓ‰‹Ë�)ä#J¸O}‚ÒœW�’ã«JFý‡jG€*¥Qrj+›=9ªqs—%Åùs�‡ì>Ÿ2ô>éKÐì…°îü‡�”% ëÞGÞ® I(ØURþSÌÚsÖ-å³OË‹úóª ²/Ý^î��Iý›oº¸5­)·ã¾¯÷¤ÕMo-Êð—c_SÑ×°ô¶•aÛ/“)çU—I–^Τ@p´ÿå}ô�…¼„/_Å*Pþuljó”,jÊ<ñõi3Î{3JµkxÔYYÏšM¯š%L£„qÞà^ž¡X­‘¢>ÝѤN˜ÛIË~E¦R�qÅ�µ°5¿`€*¾Ð¥»¨Sóú2èÚèoèµ»·_ù‘dþK©Þœfûk'z6ÿí ÿ�l{N¾î“ïDi,W¸�t~¬ôå?Õ�®ª½.ƒÎŒ®ñcáþHäÓÍÝ¢kw=·/rá Km)™Hð~clñ­ ósÖ*:o1ËÇĸt¿Kê4}~£Þ»÷EkNpœŸ†ˆ²Ø�B½OñmB=xï?,pø²Óô'ÒM„äw>dåÒ‡¹2ôÉb%¸¤Ùâ�6�¥.(žÔ“Ø‘­’¥ÕysqRê««Uå²é±²¡§Ð�µ¼qýåö¶[ìÚÆr|6ûgp�"&�·ïR?ø«ªÌ‚àÏ!ùo›±;^ð,‚á"Óœ5�&Ù&Ë6í>Ô´°”+¹‰>¾Ò4A Õ�_V³©§Ê–ÿ´ãŒaóÇ�GZlæ§CY�wKîãS9Ê÷rÞyç—qw%خ܋ø~q³¶+s÷›¤;67vnP Ϧ2£:ê[€¥úhsIßÄt’+D´ª¨\Ó«.Qi–ö£m+»Öðç(´¼ZàQžEêÏ93Œ1ë<;ãWë6yk’üyöÅÆS]�„© J�p^Ô>÷­£YÕm¯¨F�å<òîe²Û?¥]ʽÊJ.8àòó”û;�gíüëL-"çÞ�år}êÛ”ã7¦,dª€µNŒ©0çÅ+ï ¼„­+IBö¤8…m=Ë(+C%aWO¨êRãžiõ0Z¾�m­QTn2°òšæ¿gÕ_ô%ž\º†Åù“rë›^&á“g²cqßBTÿÉn©ß#GµGEDö¤|#{ú¿ÔkjR©Á.I>‰m¢Ò•: ·.móxåà‘x€Ð¬Y°Ð @( €P @( €P @( €P @pFèƒøÑ\qÆc´ÓŽ­M $«ø‘ï@v(¬ä|eˆf3Ú�~Ål—¹­7é7&ånfCˆF÷Ú´’Îõí@l!±oˆÌX¬·3(Km2Ò„ ”¤x L6ò� ¶QÙ_hî?ÏÞ€ûP @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @( €P @(ÿÙ# frozen_string_literal: true # # = pathname.rb # # Object-Oriented Pathname Class # # Author:: Tanaka Akira # Documentation:: Author and Gavin Sinclair # # For documentation, see class Pathname. # require 'pathname.so' class Pathname # to_path is implemented so Pathname objects are usable with File.open, etc. TO_PATH = :to_path SAME_PATHS = if File::FNM_SYSCASE.nonzero? # Avoid #zero? here because #casecmp can return nil. proc {|a, b| a.casecmp(b) == 0} else proc {|a, b| a == b} end if File::ALT_SEPARATOR SEPARATOR_LIST = "#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}" SEPARATOR_PAT = /[#{SEPARATOR_LIST}]/ else SEPARATOR_LIST = "#{Regexp.quote File::SEPARATOR}" SEPARATOR_PAT = /#{Regexp.quote File::SEPARATOR}/ end # :startdoc: # chop_basename(path) -> [pre-basename, basename] or nil def chop_basename(path) # :nodoc: base = File.basename(path) if /\A#{SEPARATOR_PAT}?\z/o =~ base return nil else return path[0, path.rindex(base)], base end end private :chop_basename # split_names(path) -> prefix, [name, ...] def split_names(path) # :nodoc: names = [] while r = chop_basename(path) path, basename = r names.unshift basename end return path, names end private :split_names def prepend_prefix(prefix, relpath) # :nodoc: if relpath.empty? File.dirname(prefix) elsif /#{SEPARATOR_PAT}/o =~ prefix prefix = File.dirname(prefix) prefix = File.join(prefix, "") if File.basename(prefix + 'a') != 'a' prefix + relpath else prefix + relpath end end private :prepend_prefix # Returns clean pathname of +self+ with consecutive slashes and useless dots # removed. The filesystem is not accessed. # # If +consider_symlink+ is +true+, then a more conservative algorithm is used # to avoid breaking symbolic linkages. This may retain more +..+ # entries than absolutely necessary, but without accessing the filesystem, # this can't be avoided. # # See Pathname#realpath. # def cleanpath(consider_symlink=false) if consider_symlink cleanpath_conservative else cleanpath_aggressive end end # # Clean the path simply by resolving and removing excess +.+ and +..+ entries. # Nothing more, nothing less. # def cleanpath_aggressive # :nodoc: path = @path names = [] pre = path while r = chop_basename(pre) pre, base = r case base when '.' when '..' names.unshift base else if names[0] == '..' names.shift else names.unshift base end end end pre.tr!(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR if /#{SEPARATOR_PAT}/o =~ File.basename(pre) names.shift while names[0] == '..' end self.class.new(prepend_prefix(pre, File.join(*names))) end private :cleanpath_aggressive # has_trailing_separator?(path) -> bool def has_trailing_separator?(path) # :nodoc: if r = chop_basename(path) pre, basename = r pre.length + basename.length < path.length else false end end private :has_trailing_separator? # add_trailing_separator(path) -> path def add_trailing_separator(path) # :nodoc: if File.basename(path + 'a') == 'a' path else File.join(path, "") # xxx: Is File.join is appropriate to add separator? end end private :add_trailing_separator def del_trailing_separator(path) # :nodoc: if r = chop_basename(path) pre, basename = r pre + basename elsif /#{SEPARATOR_PAT}+\z/o =~ path $` + File.dirname(path)[/#{SEPARATOR_PAT}*\z/o] else path end end private :del_trailing_separator def cleanpath_conservative # :nodoc: path = @path names = [] pre = path while r = chop_basename(pre) pre, base = r names.unshift base if base != '.' end pre.tr!(File::ALT_SEPARATOR, File::SEPARATOR) if File::ALT_SEPARATOR if /#{SEPARATOR_PAT}/o =~ File.basename(pre) names.shift while names[0] == '..' end if names.empty? self.class.new(File.dirname(pre)) else if names.last != '..' && File.basename(path) == '.' names << '.' end result = prepend_prefix(pre, File.join(*names)) if /\A(?:\.|\.\.)\z/ !~ names.last && has_trailing_separator?(path) self.class.new(add_trailing_separator(result)) else self.class.new(result) end end end private :cleanpath_conservative # Returns the parent directory. # # This is same as self + '..'. def parent self + '..' end # Returns +true+ if +self+ points to a mountpoint. def mountpoint? begin stat1 = self.lstat stat2 = self.parent.lstat stat1.dev == stat2.dev && stat1.ino == stat2.ino || stat1.dev != stat2.dev rescue Errno::ENOENT false end end # # Predicate method for root directories. Returns +true+ if the # pathname consists of consecutive slashes. # # It doesn't access the filesystem. So it may return +false+ for some # pathnames which points to roots such as /usr/... # def root? !!(chop_basename(@path) == nil && /#{SEPARATOR_PAT}/o =~ @path) end # Predicate method for testing whether a path is absolute. # # It returns +true+ if the pathname begins with a slash. # # p = Pathname.new('/im/sure') # p.absolute? # #=> true # # p = Pathname.new('not/so/sure') # p.absolute? # #=> false def absolute? !relative? end # The opposite of Pathname#absolute? # # It returns +false+ if the pathname begins with a slash. # # p = Pathname.new('/im/sure') # p.relative? # #=> false # # p = Pathname.new('not/so/sure') # p.relative? # #=> true def relative? path = @path while r = chop_basename(path) path, = r end path == '' end # # Iterates over each component of the path. # # Pathname.new("/usr/bin/ruby").each_filename {|filename| ... } # # yields "usr", "bin", and "ruby". # # Returns an Enumerator if no block was given. # # enum = Pathname.new("/usr/bin/ruby").each_filename # # ... do stuff ... # enum.each { |e| ... } # # yields "usr", "bin", and "ruby". # def each_filename # :yield: filename return to_enum(__method__) unless block_given? _, names = split_names(@path) names.each {|filename| yield filename } nil end # Iterates over and yields a new Pathname object # for each element in the given path in descending order. # # Pathname.new('/path/to/some/file.rb').descend {|v| p v} # # # # # # # # # # # # Pathname.new('path/to/some/file.rb').descend {|v| p v} # # # # # # # # # # Returns an Enumerator if no block was given. # # enum = Pathname.new("/usr/bin/ruby").descend # # ... do stuff ... # enum.each { |e| ... } # # yields Pathnames /, /usr, /usr/bin, and /usr/bin/ruby. # # It doesn't access the filesystem. # def descend return to_enum(__method__) unless block_given? vs = [] ascend {|v| vs << v } vs.reverse_each {|v| yield v } nil end # Iterates over and yields a new Pathname object # for each element in the given path in ascending order. # # Pathname.new('/path/to/some/file.rb').ascend {|v| p v} # # # # # # # # # # # # Pathname.new('path/to/some/file.rb').ascend {|v| p v} # # # # # # # # # # Returns an Enumerator if no block was given. # # enum = Pathname.new("/usr/bin/ruby").ascend # # ... do stuff ... # enum.each { |e| ... } # # yields Pathnames /usr/bin/ruby, /usr/bin, /usr, and /. # # It doesn't access the filesystem. # def ascend return to_enum(__method__) unless block_given? path = @path yield self while r = chop_basename(path) path, = r break if path.empty? yield self.class.new(del_trailing_separator(path)) end end # # Appends a pathname fragment to +self+ to produce a new Pathname object. # # p1 = Pathname.new("/usr") # Pathname:/usr # p2 = p1 + "bin/ruby" # Pathname:/usr/bin/ruby # p3 = p1 + "/etc/passwd" # Pathname:/etc/passwd # # # / is aliased to +. # p4 = p1 / "bin/ruby" # Pathname:/usr/bin/ruby # p5 = p1 / "/etc/passwd" # Pathname:/etc/passwd # # This method doesn't access the file system; it is pure string manipulation. # def +(other) other = Pathname.new(other) unless Pathname === other Pathname.new(plus(@path, other.to_s)) end alias / + def plus(path1, path2) # -> path # :nodoc: prefix2 = path2 index_list2 = [] basename_list2 = [] while r2 = chop_basename(prefix2) prefix2, basename2 = r2 index_list2.unshift prefix2.length basename_list2.unshift basename2 end return path2 if prefix2 != '' prefix1 = path1 while true while !basename_list2.empty? && basename_list2.first == '.' index_list2.shift basename_list2.shift end break unless r1 = chop_basename(prefix1) prefix1, basename1 = r1 next if basename1 == '.' if basename1 == '..' || basename_list2.empty? || basename_list2.first != '..' prefix1 = prefix1 + basename1 break end index_list2.shift basename_list2.shift end r1 = chop_basename(prefix1) if !r1 && (r1 = /#{SEPARATOR_PAT}/o =~ File.basename(prefix1)) while !basename_list2.empty? && basename_list2.first == '..' index_list2.shift basename_list2.shift end end if !basename_list2.empty? suffix2 = path2[index_list2.first..-1] r1 ? File.join(prefix1, suffix2) : prefix1 + suffix2 else r1 ? prefix1 : File.dirname(prefix1) end end private :plus # # Joins the given pathnames onto +self+ to create a new Pathname object. # # path0 = Pathname.new("/usr") # Pathname:/usr # path0 = path0.join("bin/ruby") # Pathname:/usr/bin/ruby # # is the same as # path1 = Pathname.new("/usr") + "bin/ruby" # Pathname:/usr/bin/ruby # path0 == path1 # #=> true # def join(*args) return self if args.empty? result = args.pop result = Pathname.new(result) unless Pathname === result return result if result.absolute? args.reverse_each {|arg| arg = Pathname.new(arg) unless Pathname === arg result = arg + result return result if result.absolute? } self + result end # # Returns the children of the directory (files and subdirectories, not # recursive) as an array of Pathname objects. # # By default, the returned pathnames will have enough information to access # the files. If you set +with_directory+ to +false+, then the returned # pathnames will contain the filename only. # # For example: # pn = Pathname("/usr/lib/ruby/1.8") # pn.children # # -> [ Pathname:/usr/lib/ruby/1.8/English.rb, # Pathname:/usr/lib/ruby/1.8/Env.rb, # Pathname:/usr/lib/ruby/1.8/abbrev.rb, ... ] # pn.children(false) # # -> [ Pathname:English.rb, Pathname:Env.rb, Pathname:abbrev.rb, ... ] # # Note that the results never contain the entries +.+ and +..+ in # the directory because they are not children. # def children(with_directory=true) with_directory = false if @path == '.' result = [] Dir.foreach(@path) {|e| next if e == '.' || e == '..' if with_directory result << self.class.new(File.join(@path, e)) else result << self.class.new(e) end } result end # Iterates over the children of the directory # (files and subdirectories, not recursive). # # It yields Pathname object for each child. # # By default, the yielded pathnames will have enough information to access # the files. # # If you set +with_directory+ to +false+, then the returned pathnames will # contain the filename only. # # Pathname("/usr/local").each_child {|f| p f } # #=> # # # # # # # # # # # # # # # # # # # # # # # # Pathname("/usr/local").each_child(false) {|f| p f } # #=> # # # # # # # # # # # # # # # # # # # # # # # # Note that the results never contain the entries +.+ and +..+ in # the directory because they are not children. # # See Pathname#children # def each_child(with_directory=true, &b) children(with_directory).each(&b) end # # Returns a relative path from the given +base_directory+ to the receiver. # # If +self+ is absolute, then +base_directory+ must be absolute too. # # If +self+ is relative, then +base_directory+ must be relative too. # # This method doesn't access the filesystem. It assumes no symlinks. # # ArgumentError is raised when it cannot find a relative path. # def relative_path_from(base_directory) dest_directory = self.cleanpath.to_s base_directory = base_directory.cleanpath.to_s dest_prefix = dest_directory dest_names = [] while r = chop_basename(dest_prefix) dest_prefix, basename = r dest_names.unshift basename if basename != '.' end base_prefix = base_directory base_names = [] while r = chop_basename(base_prefix) base_prefix, basename = r base_names.unshift basename if basename != '.' end unless SAME_PATHS[dest_prefix, base_prefix] raise ArgumentError, "different prefix: #{dest_prefix.inspect} and #{base_directory.inspect}" end while !dest_names.empty? && !base_names.empty? && SAME_PATHS[dest_names.first, base_names.first] dest_names.shift base_names.shift end if base_names.include? '..' raise ArgumentError, "base_directory has ..: #{base_directory.inspect}" end base_names.fill('..') relpath_names = base_names + dest_names if relpath_names.empty? Pathname.new('.') else Pathname.new(File.join(*relpath_names)) end end end class Pathname # * Find * # # Iterates over the directory tree in a depth first manner, yielding a # Pathname for each file under "this" directory. # # Returns an Enumerator if no block is given. # # Since it is implemented by the standard library module Find, Find.prune can # be used to control the traversal. # # If +self+ is +.+, yielded pathnames begin with a filename in the # current directory, not +./+. # # See Find.find # def find(ignore_error: true) # :yield: pathname return to_enum(__method__, ignore_error: ignore_error) unless block_given? require 'find' if @path == '.' Find.find(@path, ignore_error: ignore_error) {|f| yield self.class.new(f.sub(%r{\A\./}, '')) } else Find.find(@path, ignore_error: ignore_error) {|f| yield self.class.new(f) } end end end class Pathname # * FileUtils * # Creates a full path, including any intermediate directories that don't yet # exist. # # See FileUtils.mkpath and FileUtils.mkdir_p def mkpath require 'fileutils' FileUtils.mkpath(@path) nil end # Recursively deletes a directory, including all directo