ó
    î9bh±7  ã                   ó  • S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  Sr
\R                  " \
5      r\R                  " S\R                  5      r\ R                  " \5      r\R$                  " S5      r\R$                  " S	5      r\(       a  \(       d]  \" 5       r\R-                  S
5        \(       d  \R%                  SS5      SS r\(       d"  \R%                  SS5      R/                  SS5      r \" S \R3                  S5       5       5      r \" S \R3                  S5       5       5      r " S S5      rSS jrS r S r!S r"S r#S r$S S jr%g! \ a    \R9                  S5         N\f = f! \ a    \R9                  S5         NZf = f)!é    N)Úenviron©Úexists)ÚConfigParser)ÚGeneratorTypez(-)?(\d\.\d+)(?:(-)(\d\.\d+)?)?z”
    (?P<major>\d+)\.?
    (?P<minor>\d+)?\.?
    (?P<micro>\d+)?[.\s]?
    (?P<releaselevel>alpha|beta|candidate|final)?[.\s]?
    (?P<serial>\d+)?ÚDEBPYTHON3_SUPPORTEDÚDEBPYTHON3_DEFAULTz"/usr/share/python3/debian_defaultsÚDEFAULTzdefault-versioné   zsupported-versionsÚpythonÚ c              #   ó8   #   • U  H  n[        U5      v •  M     g 7f©N©Úint©Ú.0Úis     Ú'/usr/share/python3/debpython/version.pyÚ	<genexpr>r   5   s   é € Ð8Ò$7˜q”C˜—F�FÒ$7ùó   ‚Ú.zcannot read debian_defaultsc              #   ó€   #   • U  H4  n[        S  UR                  5       R                  S5       5       5      v •  M6     g7f)c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r   )r   Újs     r   r   Ú<genexpr>.<genexpr>9   s   é € ÐAÒ,@ qœC ŸF˜FÒ,@ùr   r   N)ÚtupleÚstripÚsplitr   s     r   r   r   9   s4   é € ð 6Ú4˜!ô ÑA¨A¯G©G«I¯O©O¸CÔ,@ÓA×AÐAÚ4ùs   ‚<>Ú,c                   ót   • \ rS rSr  SS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rS rSS jrSrg)ÚVersioné?   Nc           	      óT  • [        U[        [        45      (       a  SR                  S U 5       5      n[        U[        5      (       a  S H  n[        X[        X5      5        M     g [        5       nUS	 US	 U(       aU  [        R                  U5      n	U	(       a  U	R                  5       R                  5       O/  H  u  pqUc  M
  X‡   b  M  XU'   M     UR                  5        H%  u  pqUS:w  a  Ub  [        U5      n[        XU5        M'     U R                  (       d  [        S5      eg )Nr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   ©Ústrr   s     r   r   Ú#Version.__init__.<locals>.<genexpr>C   s   é € Ð3ªU¨œS ŸV˜VªUùr   ©ÚmajorÚminorÚmicroÚreleaselevelÚserialÚselfÚvaluer-   zmajor component is required)Ú
isinstancer   ÚlistÚjoinr"   ÚsetattrÚgetattrÚlocalsÚ
VERSION_REÚmatchÚ	groupdictÚitemsr   r*   Ú
ValueError)
r/   r0   r*   r+   r,   r-   r.   ÚnameÚcompr8   s
             r   Ú__init__ÚVersion.__init__@   sÿ   € ä�eœe¤T˜]×+Ñ+Ø—H‘HÑ3©UÓ3Ó3ˆEÜ�eœW×%Ñ%ÛM�Ü˜¤G¨EÓ$8Ö9ñ NàÜ‹xˆØ�ˆLØ�ˆMÞÜ×$Ñ$ UÓ+ˆEÞ<A˜uŸ™Ó0×6Ñ6Ô8ÀrÒI‘�ØÓ$¨©Ó);Ø!&˜“Jñ  Jð  Ÿ:™:ž<‰KˆDØ�~Ó%¨%Ñ*;Ü˜E›
�Ü�D Ö&ñ (ð �z�zÜÐ:Ó;Ð;ð ó    c                 ó†   • [        U R                  5      nU R                  b  USR                  U R                  5      -  nU$ )z•Return major.minor or major string.

>>> str(Version(major=3, minor=2, micro=1, releaselevel='final', serial=4))
'3.2'
>>> str(Version(major=2))
'2'
ú.{})r'   r*   r+   Úformat)r/   Úresults     r   Ú__str__ÚVersion.__str__W   s7   € ô �T—Z‘Z“ˆØ�:‰:Ñ!Ø�e—l‘l 4§:¡:Ó.Ñ.ˆFØˆr@   c                 ó*   • [        [        U 5      5      $ r   )ÚhashÚrepr)r/   s    r   Ú__hash__ÚVersion.__hash__d   s   € Ü”D˜“JÓÐr@   c                 ó˜   • SR                  U 5      nS H/  n[        X5      nU(       d    US-   $ USR                  U5      -  nM1     US-   $ )z¯Return full version string.

>>> repr(Version(major=3, minor=2, micro=1, releaselevel='final', serial=4))
"Version('3.2.1.final.4')"
>>> repr(Version(major=2))
"Version('2')"
zVersion('{})r,   r-   r.   rB   z'))rC   r5   )r/   rD   r<   r0   s       r   Ú__repr__ÚVersion.__repr__g   sY   € ð ×%Ñ% dÓ+ˆÛ7ˆDÜ˜DÓ'ˆEÞØà˜‰}Ðð �e—l‘l 5Ó)Ñ)ŠFñ	 8ð
 ˜‰}Ðr@   c                 ó²   • [        U 5      nU R                  c   U=R                  [        U5      -  sl        U$ U=R                  [        U5      -  sl        U$ )z`Return next version.

>>> Version('3.1') + 1
Version('3.2')
>>> Version('2') + '1'
Version('3')
)r"   r+   r*   r   )r/   ÚotherrD   s      r   Ú__add__ÚVersion.__add__w   sI   € ô ˜“ˆØ�:‰:ÑØ�LŠLœC ›JÑ&�Lð ˆð �LŠLœC ›JÑ&�LØˆr@   c                 ó  • [        U 5      nU R                  c+  U=R                  [        U5      -  sl        UR                  nO*U=R                  [        U5      -  sl        UR                  nUS:  a  [	        S5      eU$ )zdReturn previous version.

>>> Version('3.1') - 1
Version('3.0')
>>> Version('3') - '1'
Version('2')
r   zcannot decrease version further)r"   r+   r*   r   r;   )r/   rP   rD   Únews       r   Ú__sub__ÚVersion.__sub__†   se   € ô ˜“ˆØ�:‰:ÑØ�LŠLœC ›JÑ&�LØ—,‘,‰Cà�LŠLœC ›JÑ&�LØ—,‘,ˆCØ�‹7ÜÐ>Ó?Ð?Øˆr@   c                 ó*   • U R                  U5      S:H  $ ©Nr   ©Ú_Version__cmp©r/   rP   s     r   Ú__eq__ÚVersion.__eq__™   ó   € Ø�z‰z˜%Ó  AÑ%Ð%r@   c                 ó*   • U R                  U5      S:  $ rX   rY   r[   s     r   Ú__lt__ÚVersion.__lt__œ   ó   € Ø�z‰z˜%Ó  1Ñ$Ð$r@   c                 ó*   • U R                  U5      S:*  $ rX   rY   r[   s     r   Ú__le__ÚVersion.__le__Ÿ   r^   r@   c                 ó*   • U R                  U5      S:„  $ rX   rY   r[   s     r   Ú__gt__ÚVersion.__gt__¢   rb   r@   c                 ó*   • U R                  U5      S:¬  $ rX   rY   r[   s     r   Ú__ge__ÚVersion.__ge__¥   r^   r@   c                 óÂ   • [        U[        5      (       d  [        U5      nU R                  b  UR                  c  U R                  USS9S:  $ U R                  USS9S:  $ )a  Compare major.minor or major only (if minor is not set).

>>> Version('2.6') << Version('2.7')
True
>>> Version('2.6') << Version('2.6.6')
False
>>> Version('3') << Version('2')
False
>>> Version('3.1') << Version('2')
False
>>> Version('2') << Version('3.2.1.alpha.3')
True
r+   ©Úignorer   r,   ©r1   r"   r+   rZ   r[   s     r   Ú
__lshift__ÚVersion.__lshift__¨   ó]   € ô ˜%¤×)Ñ)Ü˜E“NˆEØ�:‰:Ñ §¡Ñ!4Ø—:‘:˜e¨G�:Ð4°qÑ8Ð8à—:‘:˜e¨G�:Ð4°qÑ8Ð8r@   c                 óÂ   • [        U[        5      (       d  [        U5      nU R                  b  UR                  c  U R                  USS9S:„  $ U R                  USS9S:„  $ )a  Compare major.minor or major only (if minor is not set).

>>> Version('2.6') >> Version('2.7')
False
>>> Version('2.6.7') >> Version('2.6.6')
False
>>> Version('3') >> Version('2')
True
>>> Version('3.1') >> Version('2')
True
>>> Version('2.1') >> Version('3.2.1.alpha.3')
False
r+   rm   r   r,   ro   r[   s     r   Ú
__rshift__ÚVersion.__rshift__½   rr   r@   c                 ó6  • [        U[        5      (       d  [        U5      nS Hs  nX2:X  a    g[        X5      =(       d    Sn[        X5      =(       d    SnUS:X  a+  SSSSS.nUR                  US5      nUR                  US5      nXE:X  a  Mj  XE:„  XE:  -
  s  $    g)Nr)   r   r-   éýÿÿÿéþÿÿÿéÿÿÿÿ)ÚalphaÚbetaÚ	candidateÚfinal)r1   r"   r5   Úget)r/   rP   rn   r<   Úvalue1Úvalue2Úrmaps          r   Ú__cmpÚVersion.__cmpÒ   s£   € Ü˜%¤×)Ñ)Ü˜E“NˆEÛIˆDØ‹~Øð ô ˜TÓ(×-¨AˆFÜ˜UÓ)×.¨QˆFØ�~Ó%Ø!#¨R¸bÈ1ÑM�ØŸ™ &¨!Ó,�ØŸ™ &¨!Ó,�ØÓÙØ‘O¨©Ñ8Ò8ñ Jð r@   © )NNNNNNr   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r>   rE   rJ   rM   rQ   rU   r\   r`   rd   rg   rj   rp   rt   rZ   Ú__static_attributes__r„   r@   r   r"   r"   ?   sN   † ØAEØ+/ô<ò.ò òò òò&&ò%ò&ò%ò&ò9ò*9÷*r@   r"   c                 ó´  ^^• [        U [        5      (       a  [        U 5      n U (       a  [        U 5      SS/:X  a  [	        [
        5      nO[U S   c  SOU S   mU S   c  SOU S   mTT:X  a!  [	        T[
        ;   a  T4O	[        5       5      nO[	        UU4S j[
         5       5      nU(       a  [	        S U 5       5      nU$ USL a  [	        S	 U 5       5      nU$ )
a  Return a set of requested and supported Python versions.

:param available: if set to `True`, return installed versions only,
    if set to `False`, return requested versions that are not installed.
    By default returns all requested versions.
:type available: bool

>>> sorted(get_requested_versions([(3, 0), None]))
[(3, 2), (3, 3)]
>>> sorted(get_requested_versions('')) == sorted(SUPPORTED)
True
>>> sorted(get_requested_versions([None, None])) == sorted(SUPPORTED)
True
>>> get_requested_versions([(5, 0), None]) == set()
True
Nr   )r   r   é   )éc   rŒ   c              3   óN   >#   • U  H  nTUs=::  a  T:  d  M  O  M  Uv •  M     g 7fr   r„   )r   ÚvÚmaxvÚminvs     €€r   r   Ú)get_requested_versions.<locals>.<genexpr>   s"   øé € ÐD¢i °4¸1Õ3C¸tÑ3C›1Ñ3CŸ1¢iùs   ƒ%˜%œ	%c              3   óP   #   • U  H  n[        S U-  5      (       d  M  Uv •  M     g7f©z/usr/bin/python%d.%dNr   ©r   rŽ   s     r   r   r‘     s%   é € ð >¢(˜QÜ Ð!7¸!Ñ!;×<÷ ‘q¢(ùó   ‚&�	&Fc              3   óP   #   • U  H  n[        S U-  5      (       a  M  Uv •  M     g7fr“   r   r”   s     r   r   r‘     s&   é € ð B¢(˜QÜ$Ð%;¸aÑ%?×@÷ ‘q¢(ùr•   )r1   r'   Úparse_vranger2   ÚsetÚ	SUPPORTEDr   )ÚvrangeÚ	availableÚversionsr�   r�   s      @@r   Úget_requested_versionsr�   ä   s×   ù€ ô" �&œ#×ÑÜ˜fÓ%ˆæ”T˜&“\ d¨D \Ó1Ü”y“>‰à ™Ñ*‰v°°q±	ˆØ! !™9Ñ,‰x°&¸±)ˆØ�4‹<Ü d¬iÓ&7˜D™7¼U»WÓE‰HäÕD¥iÓDÓDˆHæÜñ >¡(ó >ó >ˆð €Oð	 
�eÒ	Üñ B¡(ó Bó Bˆð €Or@   c                 ó8  • U S;   a  g[         R                  U 5      nU(       d  [        SU -  5      eUR                  5       n[	        U5      R                  S5      S:X  a'  [        S US   R                  S5       5       5      nX34$ S=p4US	   (       a  US   nO
US   nUS   nU(       a!  [        S
 UR                  S5       5       5      OSnU(       a!  [        S UR                  S5       5       5      OSnU(       a  U(       a  X4:”  a  [        SU -  5      eX44$ )aO  Return minimum and maximum Python version from given range.

>>> parse_vrange('3.0-')
((3, 0), None)
>>> parse_vrange('3.1-3.3')
((3, 1), (3, 3))
>>> parse_vrange('3.2-4.0')
((3, 2), (4, 0))
>>> parse_vrange('-3.7')
(None, (3, 7))
>>> parse_vrange('3.2')
((3, 2), (3, 2))
>>> parse_vrange('') == parse_vrange('-') == (None, None)
True
)r   Ú-©NNzversion range is invalid: %sNé   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r   r   s     r   r   Úparse_vrange.<locals>.<genexpr>%  s   é € Ð:Ò%9 ”S˜—V�VÒ%9ùr   r‹   r   r   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r   r   s     r   r   r£   /  ó   é € Ð1¢˜A”�Q—�¢ùr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r   r   s     r   r   r£   0  r¥   r   )ÚRANGE_REr8   r;   Úgroupsr2   Úcountr   r   )r0   r8   r¨   r�   r�   s        r   r—   r—     sü   € ð  �	ÓØä�N‰N˜5Ó!€EÞÜÐ7¸%Ñ?Ó@Ð@Ø�\‰\‹^€FäˆFƒ|×Ñ˜$Ó 1Ó$ÜÑ: V¨A¡Y§_¡_°SÔ%9Ó:Ó:ˆØˆzÐàÐ€DØˆa‡yØ�a‰y‰à�a‰yˆØ�a‰yˆæ59Œ5Ñ1 §¡¨C¤Ó1Ô1¸t€DÞ59Œ5Ñ1 §¡¨C¤Ó1Ô1¸t€Dæ–˜›ÜÐ7¸%Ñ?Ó@Ð@àˆ:Ðr@   c                 ó¶  • S=p[        5       nU R                  S5       H¾  nUR                  5       n[        R                  " SU5      nU(       a  SUR                  S5      -  nMG  [        R                  " SU5      nU(       a  SUR                  S5      -  nM{  [        R                  " SU5      nU(       d  M›  UR                  SUR                  S5      -  5        MÀ     [        U5      S:X  a&  UR                  5       n[        U5      [        U5      4$ U(       d  U(       a  [        U5      S   nU(       a  [        U5      OSU(       a  [        U5      4$ S4$ )	zëParse X-Python3-Version.

>>> parse_pycentral_vrange('>= 3.1')
((3, 1), None)
>>> parse_pycentral_vrange('<< 4.0')
(None, (4, 0))
>>> parse_pycentral_vrange('3.1')
((3, 1), (3, 1))
>>> parse_pycentral_vrange('3.1, 3.2')
((3, 1), None)
Nr    z>=\s*([\d\.]+)z%.3sr‹   z<<\s*([\d\.]+)z	^[\d\.]+$r   )r˜   r   r   Úrer8   ÚgroupÚaddÚlenÚpopÚgetverÚsorted)r0   r�   r�   Ú	hardcodedÚitemr8   Úvers          r   Úparse_pycentral_vrangerµ   8  s  € ð Ð€DÜ“€Ià—‘˜CÖ ˆØ�z‰z‹|ˆä—’Ð*¨DÓ1ˆÞØ˜EŸK™K¨›NÑ*ˆDÙÜ—’Ð*¨DÓ1ˆÞØ˜EŸK™K¨›NÑ*ˆDÙÜ—’˜ tÓ,ˆßˆ5Ø�M‰M˜& 5§;¡;¨q£>Ñ1Ö2ñ !ô ˆ9ƒ~˜ÓØ�m‰m‹oˆÜ�c‹{œF 3›KÐ'Ð'æ–Iä�iÓ  Ñ#ˆæŒ6�$Œ< T¾4¬6°$«<ÐIÐIÀTÐIÐIr@   c                 óz  • U S   U S   s=L a  c   g  U S   U S   :X  a  SR                  S U S    5       5      $ U S   c  SSR                  S U S    5       5      -   $ U S   c  SR                  S U S    5       5      S-   $ SR                  S U S    5       5      < SSR                  S	 U S    5       5      < 3$ )
a  Return version range string from given range.

>>> vrange_str(((3, 4), None))
'3.4-'
>>> vrange_str(((3, 4), (3, 6)))
'3.4-3.6'
>>> vrange_str(((3, 4), (4, 0)))
'3.4-4.0'
>>> vrange_str((None, (3, 7)))
'-3.7'
>>> vrange_str(((3, 5), (3, 5)))
'3.5'
>>> vrange_str((None, None))
'-'
r   r‹   rŸ   r   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   Úvrange_str.<locals>.<genexpr>v  ó   é € Ð2ª	 1œ˜AŸ˜ª	ùr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   r¸   x  s   é € Ð8ªi¨œc !Ÿf˜fªiùr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   r¸   z  r¹   r   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   r¸   |  ó   é € Ð"=²9¨a¤3 q§6 6²9ùr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   r¸   }  r½   r   )r3   )rš   s    r   Ú
vrange_strr¿   c  sË   € ð  ˆa�y�F˜1‘I×%Øð &àˆa�y�F˜1‘IÓØ�x‰xÑ2¨¨qª	Ó2Ó2Ð2Ø	�‰Ñ	Ø�S—X‘XÑ8¨f°QªiÓ8Ó8Ñ8Ð8Ø	�‰Ñ	Ø�x‰xÑ2¨¨qª	Ó2Ó2°SÑ8Ð8àŸ(™(Ñ"=°6¸!²9Ó"=Ö=ØŸ(™(Ñ"=°6¸!²9Ó"=Õ=ð?ð 	?r@   c                 ó~  • [        U [        5      (       a  U $ [        U [        [        45      (       d0  [        U S   [        5      (       a  SR                  S U  5       5      $ / nU  HR  n[        U[        5      (       a  UR                  U5        M+  UR                  SR                  S U 5       5      5        MT     U$ )z„
>>> vrepr(([3, 4], [3, 2]))
['3.4', '3.2']
>>> vrepr(('2.6', '3.1'))
['2.6', '3.1']
>>> vrepr('3.2')
'3.2'
>>> vrepr((3, 2))
'3.2'
r   r   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   Úvrepr.<locals>.<genexpr>Ž  s   é € Ð.ª 1œ˜AŸ˜ªùr   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r&   r   s     r   r   rÂ   •  s   é € Ð";²7¨a¤3 q§6 6²7ùr   )r1   r'   r   r˜   r   r3   Úappend)r0   rD   Úversions      r   ÚvreprrÆ   €  s—   € ô �%œ×ÑØˆÜ˜¤¬sÐ3×4Ñ4¼ÀEÈ!ÁHÌc×9RÑ9RØ�x‰xÑ.©Ó.Ó.Ð.à€FÛˆÜ�gœs×#Ñ#Ø�M‰M˜'Ö"à�M‰M˜#Ÿ(™(Ñ";±7Ó";Ó;Ö<ñ	 ð
 €Mr@   c                 ó�   • U (       d  g[        U [        5      (       a  U SS $ [        S U R                  SS5       5       5      SS $ )z–Return pair of integers that represent version.

>>> getver('3.2')
(3, 2)
>>> getver('3.1.4')
(3, 1)
>>> getver((3, 3, 1))
(3, 3)
>>> getver(None)
''
r   Né   c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr   r   r   s     r   r   Úgetver.<locals>.<genexpr>©  s   é € Ð5Ò!4˜A”�Q—�Ò!4ùr   r   )r1   r   r   )r0   s    r   r°   r°   ™  sF   € ö ØÜ�%œ×ÑØ�R�aˆyÐÜÑ5 §¡¨S°!Ô!4Ó5Ó5°b°qÐ9Ð9r@   c                 ó4  • / n/ n[        U 5       HQ  n[        U[        5      (       a  [        U5      nU[        :  a  UR                  U5        M@  UR                  U5        MS     UR                  [        U5      5        U(       a  U(       a  [        U5      $ U$ )ak  Return sorted list of versions starting with default Python
version (if available) then list of suppored versions greater than default
one followed by reversed list of older versions.

List of versions sorted this way can be used in Depends field.

:param vrepr: return string represenatations of versions, by default the
    same format is used as in :param:`versions`

>>> debsorted([(2, 6), (3, 1), (3, 2), (3, 3), (2, 7)])[0] == DEFAULT
True
>>> debsorted(('2.4', '3.2', '2.6', '2.7'))[-1]
(2, 4)
>>> debsorted(set([(2, 1), (2, 2)]))
[(2, 2), (2, 1)]
>>> debsorted([(2, 1), (2, 2)], return_str=True)
['2.2', '2.1']
)	r±   r1   r'   r°   r
   rÄ   ÚextendÚreversedrÆ   )rœ   Ú
return_strrD   Úold_versionsrÅ   s        r   Ú	debsortedrÐ   ¬  s|   € ð& €FØ€LÜ˜(Ö#ˆÜ�gœs×#Ñ#Ü˜W“oˆGØ”WÓØ×Ñ Ö(à�M‰M˜'Ö"ñ $ð ‡M�M”(˜<Ó(Ô)Þ–fÜ�V‹}ÐØ€Mr@   r    r   )&Úloggingr«   Úosr   Úos.pathr   Úconfigparserr   Útypesr   ÚRANGE_PATTERNÚcompiler§   ÚVERBOSEr7   Ú	getLoggerr…   Úlogr~   Ú
_supportedÚ_defaultÚ_configÚreadÚreplacer   r   r
   Ú	ExceptionÚ	exceptionr™   r"   r�   r—   rµ   r¿   rÆ   r°   rÐ   r„   r@   r   Ú<module>râ      s†  ðó, Û 	Ý Ý Ý %Ý à2€Ø�:Š:�mÓ$€Ø�ZŠZð ð
 Ÿ™ó%€
ð ×Ò˜Ó!€ð �[Š[Ð/Ó0€
Ø�;Š;Ð+Ó,€ÞžÙ‹n€GØ‡L�LÐ5Ô6ÞØ—;‘;˜yÐ*;Ó<¸Q¸RÐ@ˆÞØ—[‘[ Ð,@ÓAß‰W�X˜rÓ"ð 	ð1ÙÑ8 H§N¡N°3Ô$7Ó8Ó8€Gð1Ùñ 6Ø)×/Ñ/°Ô4ó6ó 6€I÷bñ bôJ%òP)òX(JòV?ò:ò2:õ&øðm ó 1Ø‡M�MÐ/Ö0ð1ûð
 ó 1Ø‡M�MÐ/Ö0ð1ús$   Ã4E ÄE2 ÅE/Å.E/Å2FÆF