ó
    8€‘g%R  ã                   ór  • S r SSKrSSKrSSKrSSKrS\S\R                  4S jrS\4S jr " S S\	5      r
 " S	 S
5      r\R                  S   r\R                  S   r\R                  \\4   rS\\\4   S\S\R$                  \R                     4S jr " S S5      r " S S\5      r " S S\5      rg)z>provides information about Ubuntu's and Debian's distributionsé    NÚstringÚreturnc                 óŽ  • U R                  S5       Vs/ s H  n[        U5      PM     nn[        U5      S:X  a  Uu  p4n[        R                  " X4U5      $ [        U5      S:X  aR  Uu  p4US:X  a  [        R                  " X4S5      $ [        R                  " X4S-   S5      [        R
                  " S5      -
  $ [        S5      es  snf )z9Convert a date string in ISO 8601 into a datetime object.Ú-é   é   é   é   é   zDate not in ISO 8601 format.)ÚsplitÚintÚlenÚdatetimeÚdateÚ	timedeltaÚ
ValueError)r   ÚxÚpartsÚyearÚmonthÚdays         Ú-/usr/lib/python3/dist-packages/distro_info.pyÚconvert_dater      s«   € à#Ÿ\™\¨#Ô.Ó/Ò.˜ŒS�ŽVÑ.€EÐ/Ü
ˆ5ƒz�QƒØ"Ñˆ�cÜ�}Š}˜T¨#Ó.Ð.Ü
ˆ5ƒz�QƒØ‰ˆØ�B‹;Ü—=’= ¨bÓ1Ð1Ü�}Š}˜T¨1¡9¨aÓ0´8×3EÒ3EÀaÓ3HÑHÐHÜ
Ð3Ó
4Ð4ùò 0s   ”Cc                  ó   • g)z4Get the data directory based on the module location.z/usr/share/distro-info© r   ó    r   Ú_get_data_dirr   %   s   € à#r   c                   ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚDistroDataOutdatedé*   zDistribution data outdated.c                 ó$   >• [         TU ]  S5        g )Nz‹Distribution data outdated. Please check for an update for distro-info-data. See /usr/share/doc/distro-info-data/README.Debian for details.©ÚsuperÚ__init__©ÚselfÚ	__class__s    €r   r$   ÚDistroDataOutdated.__init__-   s   ø€ Ü‰ÑðMõ	
r   r   ©r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r$   Ú__static_attributes__Ú__classcell__©r'   s   @r   r   r   *   s   ø† Ù%÷
õ 
r   r   c                   ó¬  • \ rS rSrSr      SS\S\S\S\R                  S\R                  \R                     S	\R                  \R                     S
\R                  \R                     S\R                  \R                     S\R                  \R                     S\R                  \R                     SS4S jjr
S\R                  S\4S jrSrg)ÚDistroReleaseé5   z"Represents a distributions releaseNÚversionÚcodenameÚseriesÚcreatedÚreleaseÚeolÚeol_esmÚeol_ltsÚeol_eltsÚ
eol_serverr   c                 ó|   • Xl         X l        X0l        X@l        XPl        X`l        X€l        X�l        Xpl        X l	        g ©N)
r5   r6   r7   r8   r9   r:   r<   r=   r;   r>   )r&   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   s              r   r$   ÚDistroRelease.__init__9   s6   € ð ŒØ ŒØŒØŒØŒØŒØŒØ ŒØŒØ$�r   r   c                 óÆ   • XR                   :¬  =(       aM    U R                  SL =(       d8    XR                  :*  =(       d#    U R                  SL=(       a    XR                  :*  $ )z:Check whether this release is supported on the given date.N)r8   r:   r>   )r&   r   s     r   Úis_supportedÚDistroRelease.is_supportedQ   sP   € à—|‘|Ñ#÷ 
Ø�H‰H˜Ð÷ IØ—x‘xÑ÷Ià—‘ tÐ+×G°¿¹Ñ0Gð	
r   )
r6   r8   r:   r=   r;   r<   r>   r9   r7   r5   )NNNNNN)r*   r+   r,   r-   r.   Ústrr   r   ÚtypingÚOptionalr$   ÚboolrC   r/   r   r   r   r3   r3   5   só   † Ù,ð 37Ø.2Ø26Ø26Ø37Ø59ñ%àð%ð ð%ð ð	%ð
 —‘ð%ð —‘ §¡Ñ/ð%ð �_‰_˜XŸ]™]Ñ+ð%ð —‘ §¡Ñ/ð%ð —‘ §¡Ñ/ð%ð —/‘/ (§-¡-Ñ0ð%ð —O‘O H§M¡MÑ2ð%ð 
õ%ð0
 §¡ð 
°4÷ 
r   r3   Úobject)r6   Úfullnamer9   ÚrowÚcolumnc                 óJ   • U R                  U5      nU(       d  g [        U5      $ r@   )Úgetr   )rK   rL   Údate_strings      r   Ú	_get_daterP   _   s    € Ø—'‘'˜&“/€KÞØÜ˜Ó$Ð$r   c                   ó¾  • \ rS rSrSrS\SS4S jr\S\\   4S j5       r	\
R                  S\S\\   4S	 j5       r\
R                  S*S\S\\   4S jj5       r S*S\S\
R"                  \\   \\   4   4S jjrS\R&                  S\\   4S jr  S+S\S\
R*                  \R&                     S\
R*                  \   S\
R"                  \\S4   4S jjrS,S\S\
R*                  \   S\
R*                  \   4S jjr\
R                   S,S\
R*                  \R&                     S\S\4S jj5       r\
R                   S-S\
R*                  \R&                     S\S\4S jj5       r S-S\
R*                  \R&                     S\S\
R"                  \\4   4S jjr\
R                  S\S\S\4S j5       r\
R                  S\S\S\4S j5       rS\S\S\
R"                  \\4   4S jr\
R                  S\S\
R4                  \   S\\   4S j5       r\
R                  S\S\
R4                  \   S\\   4S j5       rS\S\
R4                  \   S\
R"                  \\   \\   4   4S jr\
R                   S,S\
R*                  \R&                     S\S\4S jj5       r\
R                   S-S\
R*                  \R&                     S\S\4S  jj5       r S-S\
R*                  \R&                     S\S\
R"                  \\4   4S! jjr\
R                   S,S\
R*                  \R&                     S\S\\   4S" jj5       r\
R                   S-S\
R*                  \R&                     S\S\\   4S# jj5       r S-S\
R*                  \R&                     S\S\
R"                  \\   \\   4   4S$ jjrS
\S\4S% jr\
R                   S,S\
R*                  \R&                     S\S\\   4S& jj5       r \
R                   S-S\
R*                  \R&                     S\S\\   4S' jj5       r  S-S\
R*                  \R&                     S\S\
R"                  \\   \\   4   4S( jjr S)r!g).Ú
DistroInfoéf   zrBase class for distribution information.
Use DebianDistroInfo or UbuntuDistroInfo instead of using this directly.
Údistror   Nc                 óü  • Xl         [        R                  R                  [	        5       UR                  5       S-   5      n[        USS9 n[        R                  " U5      n/ U l	        U Hƒ  n[        US   US   US   [        US   5      [        US5      [        US	5      [        US
5      [        US5      [        US5      [        US5      5
      nU R                  R                  U5        M…     S S S 5        [        R                  R                  S5      nUb.  [         R"                  R%                  ['        U5      5      U l        g [         R"                  R+                  5       U l        g ! , (       d  f       N‚= f)Nz.csvzutf-8)Úencodingr5   r6   r7   r8   r9   r:   zeol-esmzeol-ltszeol-eltsz
eol-serverÚSOURCE_DATE_EPOCH)Ú_distroÚosÚpathÚjoinr   ÚlowerÚopenÚcsvÚ
DictReaderÚ	_releasesr3   r   rP   ÚappendÚenvironrN   r   r   Úfromtimestampr   Ú_dateÚtoday)r&   rT   ÚfilenameÚcsvfileÚ
csv_readerrK   r9   Úsource_date_epochs           r   r$   ÚDistroInfo.__init__k   s(  € ØŒÜ—7‘7—<‘<¤£°·±³À&Ñ1HÓIˆÜ�( WÒ-°ÜŸš¨Ó0ˆJØˆDŒNÛ!�Ü'Ø˜	‘NØ˜
‘OØ˜‘MÜ   Y¡Ó0Ü˜c 9Ó-Ü˜c 5Ó)Ü˜c 9Ó-Ü˜c 9Ó-Ü˜c :Ó.Ü˜c <Ó0ó�ð —‘×%Ñ% gÖ.ñ "÷ .ô" ŸJ™JŸN™NÐ+>Ó?ÐØÑ(Ü!Ÿ™×4Ñ4´SÐ9JÓ5KÓLˆD�Jä!Ÿ™×,Ñ,Ó.ˆD�J÷+ .Õ-ús   Á
B'E-Å-
E;c                 óX   • U R                    Vs/ s H  oR                  PM     sn$ s  snf )z*List codenames of all known distributions.)r`   r7   )r&   r   s     r   ÚallÚDistroInfo.all…   s"   € ð #'§.¢.Ó1¢.˜Q—”¡.Ñ1Ð1ùÒ1s   �'Úresultc                 ó   • g r@   r   ©r&   rn   s     r   Úget_allÚDistroInfo.get_allŠ   s   € ØEHr   r6   c                 ó   • g r@   r   rp   s     r   rq   rr   �   s   € ØKNr   c                 ó8   • U R                  XR                  5      $ )zList all known distributions.)Ú_format_listr`   rp   s     r   rq   rr   �   s   € ð × Ñ  ¯©Ó8Ð8r   r   c                 óh   • U R                    Vs/ s H  o!UR                  :¼  d  M  UPM     sn$ s  snf )z?Return all distributions that were available on the given date.)r`   r8   )r&   r   r   s      r   Ú_availÚDistroInfo._avail–   s'   € àŸ>š>Ó?š>�a°Q·Y±YÑ->—™>Ñ?Ð?ùÒ?s   �/¦/r9   Údefaultc                 ó   • U$ )z3Map codename aliases to the codename they describe.r   ©r&   r9   r   ry   s       r   r6   ÚDistroInfo.codenameš   s	   € ð ˆr   Únamec                 ó~   • U R                    H,  nXR                  UR                  4;   d  M   UR                  s  $    U$ )z!Map codename or series to version)r`   r6   r7   r5   )r&   r}   ry   r9   s       r   r5   ÚDistroInfo.version¤   s6   € à—~”~ˆGØ×(Ñ(¨'¯.©.Ð9Õ9Ø—‘Ò&ñ &ð ˆr   c                ó   • g r@   r   ©r&   r   rn   s      r   ÚdevelÚDistroInfo.devel«   ó   € ð r   c                 ó   • g r@   r   r�   s      r   r‚   rƒ   °   ó   € ð r   c                 ó.  • Uc  U R                   nU R                  U5       Vs/ s HA  nUR                  b/  XR                  :  d  M!  UR                  b  XR                  ::  d  M?  UPMC     nnU(       d
  [	        5       eU R                  X$S   5      $ s  snf )ú<Get latest development distribution based on the given date.éÿÿÿÿ©rd   rw   r9   r:   r   Ú_format©r&   r   rn   r   Údistross        r   r‚   rƒ   µ   sŽ   € ð ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø�y‰yÑ  T¯I©IÑ%5ó à;<¿5¹5¹=ÈD×TYÑTYÉM÷ Ù&ð 	ð 
ö
 Ü$Ó&Ð&Ø�|‰|˜F¨B¡KÓ0Ð0ùò
s   £ BÁBÁ%BÚformat_stringc                 ó   • g r@   r   ©r&   rŽ   r9   s      r   r‹   ÚDistroInfo._formatÄ   s   € Ø^ar   c                 ó   • g r@   r   r�   s      r   r‹   r‘   Ç   s   € ØWZr   c                 óæ   • US:X  a  U$ US:X  a  UR                   $ US:X  a/  U R                  S-   UR                  -   S-   UR                  -   S-   $ US:X  a  UR                  $ [	        SU-   S	-   5      e)
z"Format a given distribution entry.rI   r6   rJ   Ú z "Ú"r9   zQOnly codename, fullname, object, and release are allowed result values, but not 'z'.)r7   rX   r5   r6   r   r�   s      r   r‹   r‘   Ê   s�   € ð ˜HÓ$ØˆNØ˜JÓ&Ø—>‘>Ð!Ø˜JÓ&Ø—<‘< #Ñ%¨¯©Ñ7¸$Ñ>À×AQÑAQÑQÐTWÑWÐWØ˜IÓ%Ø—?‘?Ð"äð'Ø)6ñ7Ø9=ñ>ó
ð 	
r   Úreleasesc                 ó   • g r@   r   ©r&   rŽ   r–   s      r   ru   ÚDistroInfo._format_listÜ   ó   € ð "r   c                 ó   • g r@   r   r˜   s      r   ru   r™   á   ó   € ð r   c                 óà   • U Vs/ s H  o0R                  X5      PM     nnUS:X  a"  [        R                  " [        [           U5      $ [        R                  " [        [
           U5      $ s  snf )z*Format a sequence of distribution entries.rI   )r‹   rF   ÚcastÚlistr3   rE   )r&   rŽ   r–   r   r�   s        r   ru   r™   æ   sd   € ñ
 5=óF
Ú4<¨q�L‰L˜Ö*±Hð 	ð F
ð ˜HÓ$Ü—;’;œt¤MÑ2°GÓ<Ð<Ü�{Š{œ4¤™9 gÓ.Ð.ùòF
s   …A+c                ó   • g r@   r   r�   s      r   ÚstableÚDistroInfo.stableñ   r„   r   c                 ó   • g r@   r   r�   s      r   r¡   r¢   ö   r†   r   c                 ó2  • Uc  U R                   nU R                  U5       Vs/ s HC  nUR                  c  M  XR                  :¼  d  M#  UR                  b  XR                  ::  d  MA  UPME     nnU(       d
  [	        5       eU R                  X$S   5      $ s  snf )z7Get latest stable distribution based on the given date.r‰   rŠ   rŒ   s        r   r¡   r¢   û   s“   € ð ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø�y‰yó à)-·±Ñ):ó à@AÇÁÁÐQU×Y^ÑY^ÑQ^÷ Ù&ð 	ð 
ö
 Ü$Ó&Ð&Ø�|‰|˜F¨B¡KÓ0Ð0ùò
s   £B¸BÁ	BÁ'Bc                ó   • g r@   r   r�   s      r   Ú	supportedÚDistroInfo.supported
  rš   r   c                 ó   • g r@   r   r�   s      r   r¦   r§     rœ   r   c                 ó   • [        5       e)z@Get list of all supported distributions based on the given date.)ÚNotImplementedErrorr�   s      r   r¦   r§     s   € ô "Ó#Ð#r   c                 ó   • XR                   ;   $ )ú%Check if the given codename is known.)rl   ©r&   r6   s     r   ÚvalidÚDistroInfo.valid  s   € àŸ8™8Ñ#Ð#r   c                ó   • g r@   r   r�   s      r   ÚunsupportedÚDistroInfo.unsupported  rš   r   c                 ó   • g r@   r   r�   s      r   r±   r²   #  rœ   r   c                 óÐ   • Uc  U R                   nU R                  U5      nU R                  X R                  U5       Vs/ s H  oDR                  U;  d  M  UPM     sn5      $ s  snf )zBGet list of all unsupported distributions based on the given date.)rd   r¦   ru   rw   r7   )r&   r   rn   r¦   r   s        r   r±   r²   (  s\   € ð ‰<Ø—:‘:ˆDØ—N‘N 4Ó(ˆ	Ø× Ñ Ø§¡¨DÔ 1ÓOÒ 1˜1·X±XÀYÑ5N—QÑ 1ÑOó
ð 	
ùÚOs   ¿A#
ÁA#
)rd   rX   r`   )r6   ©NNr@   ©Nr6   )"r*   r+   r,   r-   r.   rE   r$   ÚpropertyrŸ   rl   rF   ÚoverloadÚ_ObjectResultr3   rq   Ú_NonObjectResultÚ
_AnyResultÚUnionr   r   rw   rG   r6   r5   r‚   r‹   ÚSequenceru   r¡   r¦   rH   r®   r±   r/   r   r   r   rR   rR   f   s´  † ñð/˜sð / tô /ð4 ð2�T˜#‘Yó 2ó ð2ð ‡_�_ØH˜mÐH°°]Ñ0CÓHó ØHà‡_�_ÙNÐ.ÐNÀÀSÁ	ÔNó ØNð $.ñ9Ø ð9à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5õ9ð@˜8Ÿ=™=ð @¨T°-Ñ-@ô @ð 04Ø(,ñ	àðð �o‰o˜hŸm™mÑ,ðð —‘ Ñ%ð	ð
 
�‰�m S¨$Ð.Ñ	/õñ˜Cð ¨&¯/©/¸#Ñ*>ð È&Ï/É/ÐZ]ÑJ^õ ð ‡_�_à59ñØ—O‘O H§M¡MÑ2ðØFSðà	ôó ðð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ôó ðð
 Q[ñ1Ø—O‘O H§M¡MÑ2ð1ØCMð1à	�‰�m SÐ(Ñ	)õ1ð ‡_�_Øa ]Ða¸]ÐaÈ}Óaó Øaà‡_�_ØZÐ%5ÐZÀÐZÐRUÓZó ØZð
Ø'ð
Ø2?ð
à	�‰�m SÐ(Ñ	)ô
ð$ ‡_�_ð"Ø*ð"Ø6<·o±oÀmÑ6Tð"à	ˆmÑ	ó"ó ð"ð ‡_�_ðØ-ðØ9?¿¹ÈÑ9Wðà	ˆc‰óó ðð	/Ø'ð	/Ø39·?±?À=Ñ3Qð	/à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5ô	/ð ‡_�_à59ñØ—O‘O H§M¡MÑ2ðØFSðà	ôó ðð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ôó ðð
 Q[ñ1Ø—O‘O H§M¡MÑ2ð1ØCMð1à	�‰�m SÐ(Ñ	)õ1ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð
 Q[ñ$Ø—O‘O H§M¡MÑ2ð$ØCMð$à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5õ$ð$˜cð $ dô $ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð
 Q[ñ	
Ø—O‘O H§M¡MÑ2ð	
ØCMð	
à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5÷	
ð 	
r   rR   c                   ód  ^ • \ rS rSrSrS U 4S jjr  S!S\S\R                  \	R                     S\R                  \   S\R                  \\S4   4S	 jjr\R                   S"S\R                  \	R                     S
\S\4S jj5       r\R                   S#S\R                  \	R                     S
\S\4S jj5       r S#S\R                  \	R                     S
\S\R                  \\4   4S jjr\R                   S"S\R                  \	R                     S
\S\4S jj5       r\R                   S#S\R                  \	R                     S
\S\4S jj5       r S#S\R                  \	R                     S
\S\R                  \\4   4S jjr\R                   S"S\R                  \	R                     S
\S\\   4S jj5       r\R                   S#S\R                  \	R                     S
\S\\   4S jj5       r S#S\R                  \	R                     S
\S\R                  \\   \\   4   4S jjr\R                   S"S\R                  \	R                     S
\S\\   4S jj5       r\R                   S#S\R                  \	R                     S
\S\\   4S jj5       r S#S\R                  \	R                     S
\S\R                  \\   \\   4   4S jjr\R                   S"S\R                  \	R                     S
\S\\   4S jj5       r\R                   S#S\R                  \	R                     S
\S\\   4S jj5       r S#S\R                  \	R                     S
\S\R                  \\   \\   4   4S jjr\R                   S"S\R                  \	R                     S
\S\4S jj5       r\R                   S#S\R                  \	R                     S
\S\4S jj5       r S#S\R                  \	R                     S
\S\R                  \\4   4S jjrS\S\4S jrSrU =r$ )$ÚDebianDistroInfoi4  z1provides information about Debian's distributionsr   Nc                 ó$   >• [         TU ]  S5        g )NÚDebianr"   r%   s    €r   r$   ÚDebianDistroInfo.__init__7  ó   ø€ Ü‰Ñ˜Õ"r   r9   r   ry   c                 ó¾   • US:X  a  U R                  U5      $ US:X  a  U R                  U5      $ US:X  a  U R                  U5      $ US:X  a  U R                  U5      $ U$ )z3Map 'unstable', 'testing', etc. to their codenames.ÚunstableÚtestingr¡   Ú	oldstable)r‚   rÆ   r¡   Úoldr{   s       r   r6   ÚDebianDistroInfo.codename:  sd   € ð �jÓ Ø—:‘:˜dÓ#Ð#Ø�iÓØ—<‘< Ó%Ð%Ø�hÓØ—;‘;˜tÓ$Ð$Ø�kÓ!Ø—8‘8˜D“>Ð!Øˆr   rn   c                ó   • g r@   r   r�   s      r   r‚   ÚDebianDistroInfo.develK  r„   r   r6   c                 ó   • g r@   r   r�   s      r   r‚   rË   P  s   € ð
 r   c                 ó>  • Uc  U R                   nU R                  U5       Vs/ s HA  nUR                  b/  XR                  :  d  M!  UR                  b  XR                  ::  d  M?  UPMC     nn[	        U5      S:  a
  [        5       eU R                  X$S   5      $ s  snf )rˆ   r   éþÿÿÿ)rd   rw   r9   r:   r   r   r‹   rŒ   s        r   r‚   rË   Y  s—   € ð ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø�y‰yÑ  T¯I©IÑ%5ó à;<¿5¹5¹=ÈD×TYÑTYÉM÷ Ù&ð 	ð 
ô
 ˆw‹<˜!ÓÜ$Ó&Ð&Ø�|‰|˜F¨B¡KÓ0Ð0ùò
s   £ BÁBÁ%Bc                ó   • g r@   r   r�   s      r   rÈ   ÚDebianDistroInfo.oldh  r„   r   c                 ó   • g r@   r   r�   s      r   rÈ   rÐ   m  r†   r   c                 ó  • Uc  U R                   nU R                  U5       Vs/ s H$  o3R                  c  M  XR                  :¼  d  M"  UPM&     nn[        U5      S:  a
  [	        5       eU R                  X$S   5      $ s  snf )z=Get old (stable) Debian distribution based on the given date.r   rÎ   )rd   rw   r9   r   r   r‹   rŒ   s        r   rÈ   rÐ   r  sp   € ð ‰<Ø—:‘:ˆDØ"Ÿk™k¨$Ô/Ó_Ò/˜·9±9“1ÈT×U^ÑU^ÑM^—1Ñ/ˆÐ_Üˆw‹<˜!ÓÜ$Ó&Ð&Ø�|‰|˜F¨B¡KÓ0Ð0ùò `s   £A=·A=ÁA=c                ó   • g r@   r   r�   s      r   r¦   ÚDebianDistroInfo.supported}  rš   r   c                 ó   • g r@   r   r�   s      r   r¦   rÔ   ‚  ó   € ð
 r   c                 óÈ   • Uc  U R                   nU R                  U5       Vs/ s H"  o3R                  b  XR                  ::  d  M   UPM$     nnU R                  X$5      $ s  snf )zGGet list of all supported Debian distributions based on the given
date.)rd   rw   r:   ru   rŒ   s        r   r¦   rÔ   ‹  sV   € ð
 ‰<Ø—:‘:ˆDØ"Ÿk™k¨$Ô/ÓRÒ/˜·5±5±=ÀDÏEÉEÁM—1Ñ/ˆÐRØ× Ñ  Ó1Ð1ùò Ss   £AÁAc                ó   • g r@   r   r�   s      r   Últs_supportedÚDebianDistroInfo.lts_supported•  rš   r   c                 ó   • g r@   r   r�   s      r   rÙ   rÚ   š  rœ   r   c                 ó  • Uc  U R                   nU R                  U5       Vs/ s HE  nUR                  c  M  XR                  :”  d  M#  UR                  c  M2  XR                  ::  d  MC  UPMG     nnU R	                  X$5      $ s  snf )zKGet list of all LTS supported Debian distributions based on the given
date.)rd   rw   r:   r<   ru   rŒ   s        r   rÙ   rÚ   Ÿ  s‰   € ð
 ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø—‘ó à&*¯U©U¡ló ð —‘ó ð ,0·9±9Ñ+<÷ Ù&ð 	ð 
ð × Ñ  Ó1Ð1ùò
ó   £B¸BÁ	BÁBÁ)Bc                ó   • g r@   r   r�   s      r   Úelts_supportedÚDebianDistroInfo.elts_supported®  rš   r   c                 ó   • g r@   r   r�   s      r   rß   rà   ³  rœ   r   c                 ó  • Uc  U R                   nU R                  U5       Vs/ s HE  nUR                  c  M  XR                  :”  d  M#  UR                  c  M2  XR                  ::  d  MC  UPMG     nnU R	                  X$5      $ s  snf )zTGet list of all Extended LTS supported Debian distributions based on
the given date.)rd   rw   r<   r=   ru   rŒ   s        r   rß   rà   ¸  sŠ   € ð
 ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø—	‘	ó à*.·±Ñ*:ó ð —‘ó ð -1·J±JÑ,>÷ Ù&ð 	ð 
ð × Ñ  Ó1Ð1ùò
rÝ   c                ó   • g r@   r   r�   s      r   rÆ   ÚDebianDistroInfo.testingÇ  r„   r   c                 ó   • g r@   r   r�   s      r   rÆ   rä   Ì  r†   r   c                 ón  • Uc  U R                   nU R                  U5       Vs/ s Ha  nUR                  c  UR                  (       d>  UR                  c  M0  XR                  :  d  MA  UR                  b  XR                  ::  d  M_  UPMc     nnU(       d
  [        5       eU R                  X$S   5      $ s  snf )z?Get latest testing Debian distribution based on the given date.r‰   )rd   rw   r9   r5   r:   r   r‹   rŒ   s        r   rÆ   rä   Ñ  s©   € ð ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø—	‘	Ñ! a§i§iØ—	‘	ó ð +/·±Ñ*:ó ð ABÇÁÁÐQU×Y^ÑY^ÑQ^÷ Ù&ð 	ð 
ö Ü$Ó&Ð&Ø�|‰|˜F¨B¡KÓ0Ð0ùò
s   £/B2ÁB2Á'B2ÂB2c                 óD   • [         R                  X5      =(       d    US;   $ )r¬   )rÅ   rÆ   r¡   rÇ   )rR   r®   r­   s     r   r®   ÚDebianDistroInfo.validá  s'   € ä×Ñ Ó/÷ 
°8ð @
ñ 4
ð 	
r   r   r)   rµ   r@   r¶   )r*   r+   r,   r-   r.   r$   rE   rF   rG   r   r   r¼   r3   r6   r¸   r¹   r‚   rº   r»   rÈ   rŸ   r¦   rÙ   rß   rÆ   rH   r®   r/   r0   r1   s   @r   r¿   r¿   4  s4  ø† Ù;÷#ð 04Ø(,ñ	àðð �o‰o˜hŸm™mÑ,ðð —‘ Ñ%ð	ð
 
�‰�m S¨$Ð.Ñ	/õð" ‡_�_à59ñØ—O‘O H§M¡MÑ2ðØFSðà	ôó ðð ‡_�_ð WañØ—O‘O H§M¡MÑ2ðØCSðà	ôó ðð Q[ñ1Ø—O‘O H§M¡MÑ2ð1ØCMð1à	�‰�m SÐ(Ñ	)õ1ð ‡_�_à59ñØ—O‘O H§M¡MÑ2ðØFSðà	ôó ðð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ôó ðð
 Q[ñ	1Ø—O‘O H§M¡MÑ2ð	1ØCMð	1à	�‰�m SÐ(Ñ	)õ	1ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_ð WañØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð Q[ñ2Ø—O‘O H§M¡MÑ2ð2ØCMð2à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5õ2ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð
 Q[ñ2Ø—O‘O H§M¡MÑ2ð2ØCMð2à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5õ2ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð
 Q[ñ2Ø—O‘O H§M¡MÑ2ð2ØCMð2à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5õ2ð ‡_�_à59ñØ—O‘O H§M¡MÑ2ðØFSðà	ôó ðð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ôó ðð
 Q[ñ1Ø—O‘O H§M¡MÑ2ð1ØCMð1à	�‰�m SÐ(Ñ	)õ1ð 
˜cð 
 d÷ 
ò 
r   r¿   c            
       ó  ^ • \ rS rSrSrSU 4S jjr\R                   SS\R                  \	R                     S\S\4S jj5       r\R                   SS\R                  \	R                     S\S\4S	 jj5       r SS\R                  \	R                     S\S\R"                  \\4   4S
 jjrS\S\4S jr\R                   SS\R                  \	R                     S\S\\   4S jj5       r\R                   SS\R                  \	R                     S\S\\   4S jj5       r SS\R                  \	R                     S\S\R"                  \\   \\   4   4S jjr\R                   SS\R                  \	R                     S\S\\   4S jj5       r\R                   SS\R                  \	R                     S\S\\   4S jj5       r SS\R                  \	R                     S\S\R"                  \\   \\   4   4S jjrSrU =r$ )ÚUbuntuDistroInfoië  z1provides information about Ubuntu's distributionsr   c                 ó$   >• [         TU ]  S5        g )NÚUbuntur"   r%   s    €r   r$   ÚUbuntuDistroInfo.__init__î  rÃ   r   r   rn   c                ó   • g r@   r   r�   s      r   ÚltsÚUbuntuDistroInfo.ltsñ  r„   r   r6   c                 ó   • g r@   r   r�   s      r   rï   rð   ö  r†   r   c                 óˆ  • Uc  U R                   nU R                   Vs/ s Hs  nUR                  R                  S5      S:¼  d  M$  UR                  (       d  M7  UR
                  (       d  MJ  UR                  Us=::  a  UR
                  ::  d  Mm  O  Mq  UPMu     nnU(       d
  [        5       eU R                  X$S   5      $ s  snf )zOGet latest long term support (LTS) Ubuntu distribution based on the
given date.ÚLTSr   r‰   )rd   r`   r5   Úfindr9   r:   r   r‹   rŒ   s        r   rï   rð   û  s±   € ð
 ‰<Ø—:‘:ˆDð —^’^ó
â#�Ø�y‰y�~‰~˜eÓ$¨Ñ)ó à./¯i­ió à<=¿E½Eó àFGÇiÁiÐSWÕF`Ð[\×[`Ñ[`ÑF`ó áF`õ Ù#ð 	ð 
ö
 Ü$Ó&Ð&Ø�|‰|˜F¨B¡KÓ0Ð0ùò
s#   ž#B?ÁB?ÁB?Á+B?ÂB?ÂB?c                 óš   • U R                    Vs/ s H  o"R                  U:X  d  M  UPM     nnU(       d  gSUS   R                  ;   $ s  snf )zIs codename an LTS release?Fró   r   )r`   r7   r5   )r&   r6   r   r�   s       r   Úis_ltsÚUbuntuDistroInfo.is_lts  sD   € à"ŸnšnÓEšn˜·±¸HÑ0D—1™nˆÐEÞØØ˜ ™
×*Ñ*Ñ*Ð*ùò Fs
   �A¦Ac                ó   • g r@   r   r�   s      r   r¦   ÚUbuntuDistroInfo.supported  rš   r   c                 ó   • g r@   r   r�   s      r   r¦   rù     rÖ   r   c                 ó  • Uc  U R                   nU R                  U5       Vs/ s HE  nUR                  (       a  XR                  ::  d   UR                  c  M2  XR                  ::  d  MC  UPMG     nnU R	                  X$5      $ s  snf )zGGet list of all supported Ubuntu distributions based on the given
date.)rd   rw   r:   r>   ru   rŒ   s        r   r¦   rù      s{   € ð
 ‰<Ø—:‘:ˆDð —[‘[ Ô&ó
â&�Ø——˜$§%¡%›-¨Q¯\©\ó àJN×R^ÑR^ÑJ^÷ Ù&ð 	ð 
ð
 × Ñ  Ó1Ð1ùò
s   £1BÁBÁ)Bc                ó   • g r@   r   r�   s      r   Úsupported_esmÚUbuntuDistroInfo.supported_esm.  rš   r   c                 ó   • g r@   r   r�   s      r   rý   rþ   3  rœ   r   c                 óÌ   • Uc  U R                   nU R                  U5       Vs/ s H$  o3R                  c  M  XR                  ::  d  M"  UPM&     nnU R                  X$5      $ s  snf )zKGet list of all ESM supported Ubuntu distributions based on the
given date.)rd   rw   r;   ru   rŒ   s        r   rý   rþ   8  sY   € ð
 ‰<Ø—:‘:ˆDØ"Ÿk™k¨$Ô/Ó_Ò/˜·9±9“1ÈT×U^ÑU^ÑM^—1Ñ/ˆÐ_Ø× Ñ  Ó1Ð1ùò `s   £A!·A!ÁA!r   r)   r@   r¶   )r*   r+   r,   r-   r.   r$   rF   r¸   rG   r   r   r¹   r3   rï   rº   rE   r»   r¼   rH   rö   rŸ   r¦   rý   r/   r0   r1   s   @r   rê   rê   ë  sˆ  ø† Ù;÷#ð ‡_�_à59ñØ—O‘O H§M¡MÑ2ðØFSðà	ôó ðð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ôó ðð
 Q[ñ1Ø—O‘O H§M¡MÑ2ð1ØCMð1à	�‰�m SÐ(Ñ	)õ1ð +˜sð + tô +ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_ð WañØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð Q[ñ2Ø—O‘O H§M¡MÑ2ð2ØCMð2à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5õ2ð ‡_�_à59ñ"Ø—O‘O H§M¡MÑ2ð"ØFSð"à	ˆmÑ	ô"ó ð"ð ‡_�_àV`ñØ—O‘O H§M¡MÑ2ðØCSðà	ˆc‰ôó ðð
 Q[ñ2Ø—O‘O H§M¡MÑ2ð2ØCMð2à	�‰�d˜=Ñ)¨4°©9Ð4Ñ	5÷2ó 2r   rê   )r.   r^   r   rY   rF   rE   r   r   r   Ú	Exceptionr   r3   ÚLiteralr¹   rº   r¼   r»   ÚdictrG   rP   rR   r¿   rê   r   r   r   Ú<module>r     sÞ   ðñ Eã 
Û Û 	Û ð5˜ð 5 §¡ô 5ð$�sô $ô

˜ô 
÷"
ñ "
ðJ —‘˜xÑ(€Ø—>‘>Ð"CÑDÐ Ø�\‰\˜-Ð)9Ð9Ñ:€
ð%�4˜˜S˜‘>ð %¨3ð %°6·?±?À8Ç=Á=Ñ3Qô %÷K
ñ K
ô\t
�zô t
ônU2�zõ U2r   