ó
    Ý)Ðg—Q  ã                   ó(  • S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSK	J
r
JrJrJrJrJrJrJrJrJr   SSKJr  SSKJrJrJr  SSKJr  SSKrSrS	r / S
Qr!Sr"/ SQr#Sr$Sr%Sr&Sr' " S S\(5      r) " S S\RT                  5      r+ " S S\5      r, " S S5      r- " S S\-5      r. " S S\-5      r/ " S S\5      r0\1S:X  aE  \0" \Rd                  S    S!9r3\3Rh                  Rk                  5       r5\6" \5Ro                  S5      5        gg! \ a     NÔf = f)"zWRepresentation of Debian binary package (.deb) files


Debfile Classes
===============
é    N)ÚPath)
ÚAnyÚBinaryIOÚDictÚIOÚIteratorÚListÚOptionalÚTextÚUnionÚoverload)ÚLiteral)ÚArFileÚArErrorÚArMember)Ú	Changelogzdata.tarzcontrol.tar)ÚgzÚbz2ÚxzÚlzmaÚzstzdebian-binary)ÚpreinstÚpostinstÚprermÚpostrmÚconfigÚcontrolzusr/share/doc/%s/changelog.gzz$usr/share/doc/%s/changelog.Debian.gzÚmd5sumsc                   ó*   • \ rS rSrSrS\S\4S jrSrg)Ú_NormedFilePathéF   a^  File path class for squashing ./ at the start of files for TarFile

This class only replaces the __eq__ method of the file path comparison
so that "./" is always added to the start of the file path
meaning that "is this the right file to extract" will be true when
the code asks for "./control" but the control.tar member contains
the file "control"
ÚvalueÚreturnc                 óÌ   • [        U 5      n[        U5      nUS:X  a  SnOUR                  S5      (       d  SU-   nUS:X  a  SnX#:H  $ UR                  S5      (       d  SU-   nX#:H  $ )NÚ.ú./)ÚstrÚ
startswith)Úselfr"   Ús1Ús2s       Ú0/usr/lib/python3/dist-packages/debian/debfile.pyÚ__eq__Ú_NormedFilePath.__eq__P   sn   € Ü�‹YˆÜ�‹ZˆØ�‹9Ø‰BØ—‘˜t×$Ñ$Ø˜‘ˆBØ�‹9ØˆBð ‰xˆð —‘˜t×$Ñ$Ø˜‘ˆBØ‰xˆó    © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úboolr-   Ú__static_attributes__r0   r/   r,   r    r    F   s   † ñð˜Cð  D÷ r/   r    c                   óf   • \ rS rSr% SrSr\\   \S'   S\\   4S jr	S\SS4S jr
\" \	\
5      rS	rg)
Ú_NormedTarInfoé^   a  TarInfo replacement that uses file path comparison that squashes ./

This class uses the above _NormedFilePath class for file paths when
iterating or inspecting the members of a TarFile. The _NormedFilePath
normalises the file path when inspecting or extracting from a .deb file.

The class replaces the 'name' member that is normally a str with
a property that addresses a _NormedFilePath.

The control tarball members of the .deb may contain an optional entry
for "." and prefix all entries in the tarball with "./".  Archives
generated by dpkg have this prefix but third party tools might not. The
published spec for the .deb file format, deb(5) from dpkg-dev, explicitly
permits this difference and thus it should be supported here.

See https://bugs.debian.org/1031674 for more detail.
NÚ_namer#   c                 ó   • U R                   $ ©N©r;   ©r)   s    r,   Ú	_get_nameÚ_NormedTarInfo._get_names   s   € Ø�z‰zÐr/   Únamec                 ó$   • [        U5      U l        g r=   )r    r;   )r)   rB   s     r,   Ú	_set_nameÚ_NormedTarInfo._set_namev   s   € Ü$ TÓ*ˆ�
r/   r>   )r1   r2   r3   r4   r5   r;   r
   r'   Ú__annotations__r@   rD   ÚpropertyrB   r7   r0   r/   r,   r9   r9   ^   sH   ‡ ñð$  €Eˆ8�C‰=Óð˜8 C™=ô ð+˜cð + dô +ñ �I˜yÓ)ƒDr/   r9   c                   ó   • \ rS rSrSrg)ÚDebErroré|   r0   N©r1   r2   r3   r4   r7   r0   r/   r,   rI   rI   |   s   † Úr/   rI   c                   óæ   • \ rS rSrSrS rS r\S 5       rS\	S\
\	   4S jrSS	 jr\SS j5       r\SS j5       rSS jr\   SS j5       r\  SS j5       r   SS jrS rS rS rSS jrSrg
)ÚDebParté€   al  'Part' of a .deb binary package.

A .deb package is considered as made of 2 parts: a 'data' part
(corresponding to the possibly compressed 'data.tar' archive embedded
in a .deb) and a 'control' part (the 'control.tar.gz' archive). Each of
them is represented by an instance of this class. Each archive should
be a compressed tar archive although an uncompressed data.tar is permitted;
supported compression formats are: .tar.gz, .tar.bz2, .tar.xz .

When referring to file members of the underlying .tar.gz archive, file
names can be specified in one of 3 formats "file", "./file", "/file". In
all cases the file is considered relative to the root of the archive. For
the control part the preferred mechanism is the first one (as in
deb.control.get_content('control') ); for the data part the preferred
mechanism is the third one (as in deb.data.get_file('/etc/vim/vimrc') ).
c                 ó   • Xl         S U l        g r=   )Ú_DebPart__memberÚ_DebPart__tgz)r)   Úmembers     r,   Ú__init__ÚDebPart.__init__’   s   € àŒØˆ�
r/   c                 ó  ^ • U 4S jnT R                   c°  T R                  R                  n[        R                  R                  U5      S   SS nU[        ;   d  U[        :X  d
  U[        :X  aI  US:X  a  U" SS/5      nOT R                  n [        R                  " US[        S9T l         T R                   $ [        S
U-  5      eT R                   $ ! [        R                  [        R                  4 a  n[        S	U-  5      eSnAff = f)zµReturn a TarFile object corresponding to this part of a .deb
package.

Despite the name, this method gives access to various kind of
compressed tar archives, not only gzipped ones.
c                 óâ  >^•  SS K nSS KmUR                  U UR                  UR                  SU4S jS9nUR                  TR                  R                  5       5      S   nUR                  S:w  a-  [        S	SR                  U 5      < S
UR                  < S35      e[        R                  " U5      $ ! [        [
        4 a(  n[        SSR                  U 5      < SU< S35      eS nAff = f)Nr   Fc                  óP   >• T R                  T R                  T R                  5      $ r=   )ÚsignalÚSIGPIPEÚSIG_DFL)rX   s   €r,   Ú<lambda>Ú9DebPart.tgz.<locals>._custom_decompress.<locals>.<lambda>¬   s   ø€ Ø—M‘M &§.¡.°&·.±.ÔAr/   )ÚstdinÚstdoutÚuniversal_newlinesÚ
preexec_fnzerror while running command 'Ú z' as subprocess: 'Ú'z	command 'z' has failed with code ')Ú
subprocessrX   ÚPopenÚPIPEÚOSErrorÚ
ValueErrorrI   ÚjoinÚcommunicaterP   ÚreadÚ
returncodeÚioÚBytesIO)Úcommand_listrc   ÚprocÚeÚdatarX   r)   s        @€r,   Ú_custom_decompressÚ'DebPart.tgz.<locals>._custom_decompress    sÝ   ù€ ð<ã!Ûð "×'Ñ'Ø Ø$Ÿ/™/°*·/±/Ø',ô Bð	 (ð �ð ×#Ñ# D§M¡M×$6Ñ$6Ó$8Ó9¸!Ñ<ˆDØ�‰ !Ó#ÝØ #§¡¨Ö 6¸¿¼ð Ió Jð Jô —:’:˜dÓ#Ð#øô œZÐ(ó <ÝØ #§¡¨Ö 6»ð ;ó <ð <ûð<ús   „3B6 Â6C.Ã#C)Ã)C.Né   r   Úunzstdz--stdoutzr:*)ÚfileobjÚmodeÚtarinfoz#tarfile has returned an error: '%s'z"part '%s' has unexpected extension)rQ   rP   rB   ÚosÚpathÚsplitextÚ	PART_EXTSÚ	DATA_PARTÚ	CTRL_PARTÚtarfileÚopenr9   Ú	ReadErrorÚCompressionErrorrI   )r)   rr   rB   Ú	extensionÚbufferrp   s   `     r,   ÚtgzÚDebPart.tgz—   sõ   ø€ õ	$ð4 �:‰:ÑØ—=‘=×%Ñ%ˆDÜŸ™×(Ñ(¨Ó.¨qÑ1°!°"Ð5ˆIØœIÓ%¨´Ó):¸dÄiÓ>Oð  Ó%Ù/°¸:Ð0FÓG‘Fà!Ÿ]™]�FðNÜ!(§¢°fÀ5ÔR`Ñ!a�D”Jð
 �z‰zÐô ÐCÀdÑJÓKÐKØ�z‰zÐøô	  ×)Ñ)¬7×+CÑ+CÐDó NÜ"Ð#HÈ1Ñ#LÓMÐMûðNús   ÂC Ã$DÃ5DÄDc                 ó¶   • [        U 5      R                  SS5      n U R                  S5      (       a  U $ U R                  S5      (       a  SU -   $ U S:X  a  gSU -   $ )zntry (not so hard) to obtain a member file name in a form that is
stored in the .tar.gz, i.e. starting with ./ Ú\Ú/r&   r%   )r'   Úreplacer(   )Úfnames    r,   Ú__normalize_memberÚDebPart.__normalize_memberÍ   s_   € ô �E“
×"Ñ" 4¨Ó-ˆà×Ñ˜D×!Ñ!ØˆLà×Ñ˜C× Ñ Ø˜‘;Ðà�C‹<Øà�e‰|Ðr/   rz   r#   c                 ó†  •  / nUR                  S5      SS  Hå  nUR                  U5        [        R                  R	                  SR                  U5      5      n[        R                  U5      nU R                  5       R                  U5      nUR                  5       (       d  M�  UR                  R                  S5      (       a)  UR                  R                  S5      nUR                  nMÖ  UR                  US'   Mç     [        R                  [        R                  R	                  W5      5      $ ! [         a     gf = f)z¦walk the path following symlinks

returns:
    resolved_path, info

if the path is not found even after following symlinks within the
archive, then None is returned.
r‰   rt   Néÿÿÿÿ)ÚsplitÚappendry   rz   Únormpathrh   rM   Ú_DebPart__normalize_memberr…   Ú	getmemberÚissymÚlinknamer(   ÚKeyError)r)   rz   Úresolved_path_partsÚpathpartÚcurrpathÚtinfos         r,   Ú__resolve_symlinksÚDebPart.__resolve_symlinksá   sÿ   € ð	Ø"$ÐØ ŸJ™J s›O¨A¨BÓ/�Ø#×*Ñ*¨8Ô4ÜŸ7™7×+Ñ+¨C¯H©HÐ5HÓ,IÓJ�Ü"×5Ñ5°hÓ?�ØŸ™›
×,Ñ,¨XÓ6�ð —;‘;—=“=Ø—~‘~×0Ñ0°×5Ñ5à.3¯n©n×.BÑ.BÀ3Ó.GÐ+Ø#(§>¡>šð 38·.±.Ð+¨BÓ/ñ% 0ô0 ×)Ñ)¬"¯'©'×*:Ñ*:¸8Ó*DÓEÐEøô	 ó 	áð	ús   ‚BD3 Â%AD3 Ä3
E Ä?E c                 ó´   • [         R                  U5      nU R                  5       R                  5       nX;   a  gU(       a  U R	                  U5      nUSL$ X;   $ )z]Check if this part contains a given file name.

Symlinks within the archive can be followed.
TN)rM   r“   r…   ÚgetnamesÚ_DebPart__resolve_symlinks)r)   r‹   Úfollow_symlinksÚnamesÚ
fname_reals        r,   Úhas_fileÚDebPart.has_file  sV   € ô ×*Ñ*¨5Ó1ˆà—‘“
×#Ñ#Ó%ˆØ‹>ØæØ×0Ñ0°Ó7ˆJØ TÐ)Ð)à‰~Ðr/   Nc                 ó   • g r=   r0   ©r)   r‹   ÚencodingÚerrorsr¡   s        r,   Úget_fileÚDebPart.get_file  ó   € ð 	r/   c                 ó   • g r=   r0   r§   s        r,   rª   r«     r¬   r/   c                 ó>  • [         R                  U5      nU(       a!  U R                  U5      nUc  [        S5      eUn U R	                  5       R                  U5      nUc  [        S5      eUb  [        R                  " XbUS9$ U$ ! [         a    [        S5      ef = f)zöReturn a file object corresponding to a given file name.

If encoding is given, then the file object will return Unicode data;
otherwise, it will return binary data.

If follow_symlinks is True, then symlinks within the archive will be
followed.
zFile not found inside package©r¨   r©   )	rM   r“   r    rI   r…   Úextractfiler—   rl   ÚTextIOWrapper)r)   r‹   r¨   r©   r¡   r£   Úfobjs          r,   rª   r«   "  s§   € ô ×*Ñ*¨5Ó1ˆæØ×0Ñ0°Ó7ˆJØÑ!ÜÐ>Ó?Ð?ØˆEð	<Ø—8‘8“:×)Ñ)¨%Ó0ˆDð ‰<ÜÐ:Ó;Ð;àÑÜ×#Ò# DÀFÑKÐKàˆøô ó 	<ÜÐ:Ó;Ð;ð	<ús   ¿B ÂBc                 ó   • g r=   r0   r§   s        r,   Úget_contentÚDebPart.get_contentB  ó   € ð 	r/   c                 ó   • g r=   r0   r§   s        r,   r´   rµ   L  r¶   r/   c                 óŒ   • U R                  [        U5      X#US9nSnU(       a   UR                  5       nUR                  5         U$ )a  Return the string content of a given file, or None (e.g. for
directories).

If encoding is given, then the content will be a Unicode object;
otherwise, it will contain binary data.

If follow_symlinks is True, then symlinks within the archive will be
followed.
)r¨   r©   r¡   N)rª   r'   rj   Úclose)r)   r‹   r¨   r©   r¡   ÚfÚcontents          r,   r´   rµ   V  sG   € ð  �M‰MÜ�‹JØØ+ð ð 
ˆð
 ˆÞØ—f‘f“hˆGØ�G‰GŒIØˆr/   c                 óP   • [        U R                  5       R                  5       5      $ r=   )Úiterr…   rŸ   r?   s    r,   Ú__iter__ÚDebPart.__iter__s  s   € ä�D—H‘H“J×'Ñ'Ó)Ó*Ð*r/   c                 ó$   • U R                  U5      $ r=   )r¤   ©r)   r‹   s     r,   Ú__contains__ÚDebPart.__contains__w  s   € à�}‰}˜UÓ#Ð#r/   c                 ó$   • U R                  U5      $ r=   )r´   rÁ   s     r,   Ú__getitem__ÚDebPart.__getitem__{  s   € à×Ñ Ó&Ð&r/   c                 ó8   • U R                   R                  5         g r=   )rP   r¹   r?   s    r,   r¹   ÚDebPart.close  s   € Ø�‰×ÑÕr/   )Ú__memberÚ__tgz)F)NNF)NF©r#   N)r1   r2   r3   r4   r5   rS   r…   Ústaticmethodr“   r'   r
   r    r¤   r   rª   r´   r¾   rÂ   rÅ   r¹   r7   r0   r/   r,   rM   rM   €   sÓ   † ñò"ò
4ðl ñó ðð&#F sð #F¨x¸©}ô #FôJð$ óó ðð óó ðôð@ ð "ØØ$)ó	ó ðð ð  Ø$)ó	ó ðð "ØØ$)ô	ò:+ò$ò'÷r/   rM   c                   ó   • \ rS rSrSrg)ÚDebDataiƒ  r0   NrK   r0   r/   r,   rÎ   rÎ   ƒ  s   † âr/   rÎ   c            
       ó´   • \ rS rSrS\\\4   4S jrS\R                  R                  4S jr\SS j5       r\SS\S\\   S\\\4   4S	 jj5       rSS
 jrSrg)Ú
DebControliˆ  r#   c                 óˆ   • 0 n[          H5  nU R                  U5      (       d  M  U R                  U5      nUc  M1  X1U'   M7     U$ )zfReturn a dictionary of maintainer scripts (postinst, prerm, ...)
mapping script names to script text. )ÚMAINT_SCRIPTSr¤   r´   )r)   Úscriptsr‹   rq   s       r,   rÓ   ÚDebControl.scriptsŠ  sF   € ð %'ˆß"ˆEØ�}‰}˜U×#Ó#Ø×'Ñ'¨Ó.�ØÓ#Ø%)˜E“Nñ	 #ð ˆr/   c                 óf   • [         R                  R                  U R                  [        5      5      $ )z¨Return the debian/control as a deb822.DebControl (a Debian-specific dict-like
class) object.

For a string representation of debian/control try
.get_content('control') )ÚdebianÚdeb822rÐ   r´   ÚCONTROL_FILEr?   s    r,   Ú
debcontrolÚDebControl.debcontrol—  s$   € ô �}‰}×'Ñ'¨×(8Ñ(8¼Ó(FÓGÐGr/   Nc                 ó   • g r=   r0   ©r)   r¨   r©   s      r,   r   ÚDebControl.md5sums   r¬   r/   r¨   r©   c                 ó   • g r=   r0   rÜ   s      r,   r   rÝ   ¥  ó   € àr/   c                 ó†  • U R                  [        5      (       d  [        S[        -  5      eU R                  [        XS9n0 nSnUc  SnUR	                  5        HS  nUR                  U5      R                  SS5      u  px[        U[        5      (       a  UR                  5       XH'   MO  XtU'   MU     UR                  5         U$ )aÂ  Return a dictionary mapping filenames (of the data part) to
md5sums. Fails if the control part does not contain a 'md5sum' file.

Keys of the returned dictionary are the left-hand side values of lines
in the md5sums member of control.tar.gz, usually file names relative to
the file system root (without heading '/' or './').

The returned keys are Unicode objects if an encoding is specified,
otherwise binary. The returned values are always Unicode.z('%s' file not found, can't list MD5 sumsr¯   z
Ns   
rt   )r¤   ÚMD5_FILErI   rª   Ú	readlinesÚrstripr�   Ú
isinstanceÚbytesÚdecoder¹   )	r)   r¨   r©   Úmd5_fileÚsumsÚnewlineÚlineÚmd5r‹   s	            r,   r   rÝ   ©  sµ   € ð �}‰}œX×&Ñ&ÜØ:¼XÑEóGð Gð —=‘=¤°H�=ÐLˆØ!ˆà%+ˆØÑØˆGà×&Ñ&Ö(ˆDàŸ™ WÓ-×3Ñ3°D¸!Ó<‰JˆCÜ˜#œu×%Ñ%Ø!Ÿj™j›l�“à!�U“ñ )ð 	�‰ÔØˆr/   r0   ©NNr=   )r1   r2   r3   r4   r   r'   rå   rÓ   rÖ   r×   rÐ   rÙ   r   r   r
   r7   r0   r/   r,   rÐ   rÐ   ˆ  s~   † ð˜˜c 5˜jÑ)ô ðH˜FŸM™M×4Ñ4ô Hð óó ðð ñ ð ¨X°c©]ð ÀdÈ3ÐPSÈ8Ánô ó ð÷r/   rÐ   c            
       ó8  • \ rS rSrSrSS jrSS jr\S\4S j5       r	\S 5       r
\S	 5       rS\R                  R                  4S
 jrS\\\4   4S jr\SS j5       r\SS\S\\   S\\\4   4S jj5       rSS jrS rSS jrSS jrS\S\S\SS4S jrSrg)ÚDebFileiË  a®  Representation of a .deb file (a Debian binary package)

DebFile objects have the following (read-only) properties:
    - version       debian .deb file format version (not related with the
                    contained package version), 2.0 at the time of writing
                    for all .deb packages in the Debian archive
    - data          DebPart object corresponding to the data.tar.gz (or
                    other compressed or uncompressed tar) archive contained
                    in the .deb file
    - control       DebPart object corresponding to the control.tar.gz (or
                    other compressed tar) archive contained in the .deb
                    file
Nc                 óF  ^• [         R                  " XX#5        [        U R                  5       5      mS[        S[        4U4S jjn[
        T;  a  [        S[
        -  5      e0 U l        [        U R                  U" [        5      5      5      U R                  [        '   [        U R                  U" [        5      5      5      U R                  [        '   S U l        U R                  [
        5      nUR                  5       R                  5       U l        UR#                  5         g )NÚbasenamer#   c                 ó<  >• [          Vs/ s H  o< SU< 3PM     nnU [        [        4;   a  UR                  U 5        TR	                  [        U5      5      nU(       d  [        SU-  5      e[        U5      S:”  a  [        SU-  5      e[        U5      S   $ s  snf )Nr%   z9missing required part in given .deb (expected one of: %s)rt   z>too many parts in given .deb (was looking for only one of: %s)r   )	r|   r}   r~   r‘   ÚintersectionÚsetrI   ÚlenÚlist)rð   ÚextÚ
candidatesÚpartsÚactual_namess       €r,   Úcompressed_part_nameÚ.DebFile.__init__.<locals>.compressed_part_nameà  s¨   ø€ Ý?HÓIºy¸¢XªsÓ3¹yˆJÐIàœI¤yÐ1Ó1Ø×!Ñ! (Ô+Ø ×-Ñ-¬c°*«oÓ>ˆEÞÜð-Ø/9ñ:ó;ð ;ô �5‹z˜A‹~Üð9Ø;EñFóGð Gô ˜“;˜q‘>Ð!ùò Js   ŠBz4missing required part in given .deb (expected: '%s'))r   rS   ró   rŸ   r'   Ú	INFO_PARTrI   Ú_DebFile__partsrÐ   r”   r~   rÎ   r}   Ú_DebFile__pkgnamerj   ÚstripÚ_DebFile__versionr¹   )r)   Úfilenamerw   rv   rú   rº   rù   s         @r,   rS   ÚDebFile.__init__Û  sß   ø€ ä�Š˜¨Ô6Ü˜4Ÿ=™=›?Ó+ˆð	"¬3ð 	"´3÷ 	"ô$ ˜LÓ(Üð$Ü&/ñ0ó1ð 1ð ˆŒÜ",¨T¯^©^Ù ¤Ó+ó.-ó #.ˆ�‰”YÑä")¨$¯.©.Ù ¤Ó+ó+-ó #.ˆ�‰”YÑàˆŒà�N‰Nœ9Ó%ˆØŸ™›Ÿ™Ó)ˆŒØ	�‰�	r/   r#   c                 ó4   • U R                  5       S   U l        g )NÚpackage)rÙ   rþ   r?   s    r,   Ú__updatePkgNameÚDebFile.__updatePkgName  s   € ØŸ™Ó*¨9Ñ5ˆ�r/   c                 ó   • U R                   $ r=   )r   r?   s    r,   ÚversionÚDebFile.version  s   € à�~‰~Ðr/   c                 ó(   • U R                   [           $ r=   )rý   r}   r?   s    r,   rq   ÚDebFile.data	  ó   € ð �|‰|œIÑ&Ð&r/   c                 ó(   • U R                   [           $ r=   )rý   r~   r?   s    r,   r   ÚDebFile.control  r  r/   c                 ó6   • U R                   R                  5       $ )zSee .control.debcontrol() )r   rÙ   r?   s    r,   rÙ   ÚDebFile.debcontrol  s   € à�|‰|×&Ñ&Ó(Ð(r/   c                 ó6   • U R                   R                  5       $ )zSee .control.scripts() )r   rÓ   r?   s    r,   rÓ   ÚDebFile.scripts  s   € à�|‰|×#Ñ#Ó%Ð%r/   c                 ó   • g r=   r0   rÜ   s      r,   r   ÚDebFile.md5sums  r¬   r/   r¨   r©   c                 ó   • g r=   r0   rÜ   s      r,   r   r  "  rß   r/   c                 ó4   • U R                   R                  XS9$ )zSee .control.md5sums() r¯   )r   r   rÜ   s      r,   r   r  &  s   € ð �|‰|×#Ñ#¨XÐ#ÐEÐEr/   c                 ó‚  • U R                   c  U R                  5         [        U R                   -  [        U R                   -  4 HV  n U R                  R                  USS9n[        R                  " US9 nUR                  5       nSSS5        [        W5      s  $    g! [         a     Mh  f = f! , (       d  f       N/= f)z}Return a Changelog object for the changelog.Debian.gz of the
present .deb package. Return None if no changelog can be found. NT)r¡   )rv   )rþ   Ú_DebFile__updatePkgNameÚCHANGELOG_DEBIANÚCHANGELOG_NATIVErq   rª   rI   ÚgzipÚGzipFilerj   r   )r)   r‹   Úfhr   Úraw_changelogs        r,   Ú	changelogÚDebFile.changelog+  s©   € ð
 �>‰>Ñ!Ø× Ñ Ô"ä&¨¯©Ñ7Ü&¨¯©Ñ7ó9ˆEðØ—Y‘Y×'Ñ'¨¸tÐ'ÐD�ô —’ rÒ*¨bØ "§¡£	�÷ +ä˜]Ó+Ò+ñ9ð øô ó Úðú÷ +Õ*ús   ÁBÁ6B0Â
B-Â,B-Â0
B>	c                 ól   • U R                   R                  5         U R                  R                  5         g r=   )r   r¹   rq   r?   s    r,   r¹   ÚDebFile.close@  s    € Ø�‰×ÑÔØ�	‰	�‰Õr/   c                 ó   • U $ r=   r0   r?   s    r,   Ú	__enter__ÚDebFile.__enter__D  s   € Øˆr/   Úexc_typeÚexc_valÚexc_tbc                 ó$   • U R                  5         g r=   )r¹   )r)   r&  r'  r(  s       r,   Ú__exit__ÚDebFile.__exit__G  s   € Ø�
‰
�r/   )Ú__partsÚ	__pkgnameÚ	__version)NÚrNrË   rì   r=   )r#   rî   )r1   r2   r3   r4   r5   rS   r  rG   rå   r  rq   r   rÖ   r×   rÐ   rÙ   r   r'   rÓ   r   r   r
   r  r¹   r$  r   r*  r7   r0   r/   r,   rî   rî   Ë  sÿ   † ñô%ôN6ð ð˜ó ó ðð ñ'ó ð'ð ñ'ó ð'ð)˜FŸM™M×4Ñ4ô )ð&˜˜c 5˜jÑ)ô &ð óó ðð ñ ð ¨X°c©]ð ÀDÈÈcÈÁNô ó ðôFò
ô*ôð ð ¨sð ¸Cð ÀD÷ r/   rî   Ú__main__rt   )r  )8r5   r  rl   r   ÚsysÚos.pathry   Úpathlibr   Útypingr   r   r   r   r   r	   r
   r   r   r   Útyping_extensionsr   ÚImportErrorÚdebian.arfiler   r   r   Údebian.changelogr   Údebian.deb822rÖ   r}   r~   r|   rü   rÒ   rØ   r  r  rá   r'   r    ÚTarInfor9   rI   rM   rÎ   rÐ   rî   r1   ÚargvÚdebr   r…   Úprintr”   r0   r/   r,   Ú<module>r>     s,  ðñó0 Û 	Û Û 
Û Ý ÷÷ ÷ ð	õ÷ 4Ñ 3Ý &Û ð €	Ø€	Ú.€	Ø€	ÚD€à€Ø2Ð Ø9Ð Ø€ô
�cô ô0*�W—_‘_ô *ô<	ˆwô 	÷@ñ @ôF	ˆgô 	ô
@�ô @ôF}ˆfô }ð@ ˆzÓÙ
˜3Ÿ8™8 A™;Ñ
'€CØ
�+‰+�/‰/Ó
€CÙ	ˆ#�-‰-˜	Ó
"Õ#ð øðw ó 	Ùð	ús   ¶D ÄDÄD