Ë
    ì—0j1  ã                   ó„   — d Z ddlZddlZej                  Z G d„ dej
                  «      Z G d„ dej                  «      Zy)z7Internal classes used by the gzip, lzma and bz2 modulesé    Nc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Ú
BaseStreamzMode-checking helper functions.c                 ó2   — | j                   rt        d«      ‚y )NzI/O operation on closed file)ÚclosedÚ
ValueError©Úselfs    ú)/usr/local/lib/python3.12/_compression.pyÚ_check_not_closedzBaseStream._check_not_closed   s   € Ø�;Š;ÜÐ;Ó<Ð<ð ó    c                 óN   — | j                  «       st        j                  d«      ‚y )NzFile not open for reading)ÚreadableÚioÚUnsupportedOperationr   s    r
   Ú_check_can_readzBaseStream._check_can_read   ó"   € Ø�}‰}ŒÜ×)Ñ)Ð*EÓFÐFð r   c                 óN   — | j                  «       st        j                  d«      ‚y )NzFile not open for writing)Úwritabler   r   r   s    r
   Ú_check_can_writezBaseStream._check_can_write   r   r   c                 ó˜   — | j                  «       st        j                  d«      ‚| j                  «       st        j                  d«      ‚y )Nz3Seeking is only supported on files open for readingz3The underlying file object does not support seeking)r   r   r   Úseekabler   s    r
   Ú_check_can_seekzBaseStream._check_can_seek   sO   € Ø�}‰}ŒÜ×)Ñ)ð +Fó Gð Gà�}‰}ŒÜ×)Ñ)ð +Eó Fð Fð r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r
   r   r   	   s   „ Ù)ò=òGòGóFr   r   c                   ót   ‡ — e Zd ZdZd„ Zdd„Zˆ fd„Zd„ Zd„ Zdd„Z	d„ Z
d	„ Zej                  fd
„Zd„ Zˆ xZS )ÚDecompressReaderz5Adapts the decompressor API to a RawIOBase reader APIc                  ó   — y)NTr   r   s    r
   r   zDecompressReader.readable$   s   € Ør   c                 ó¨   — || _         d| _        d| _        d| _        || _        || _         | j                  di | j
                  ¤Ž| _        || _        y )NFr   éÿÿÿÿr   )Ú_fpÚ_eofÚ_posÚ_sizeÚ_decomp_factoryÚ_decomp_argsÚ_decompressorÚ_trailing_error)r	   ÚfpÚdecomp_factoryÚtrailing_errorÚdecomp_argss        r
   Ú__init__zDecompressReader.__init__'   sZ   € ØˆŒØˆŒ	ØˆŒ	ð ˆŒ
ð  .ˆÔØ'ˆÔØ1˜T×1Ñ1ÑF°D×4EÑ4EÑFˆÔð  .ˆÕr   c                 ó.   •— d | _         t        ‰| �	  «       S ©N)r)   ÚsuperÚclose)r	   Ú	__class__s    €r
   r3   zDecompressReader.close;   s   ø€ Ø!ˆÔÜ‰w‰}‹Ðr   c                 ó6   — | j                   j                  «       S r1   )r#   r   r   s    r
   r   zDecompressReader.seekable?   s   € Ø�x‰x× Ñ Ó"Ð"r   c                 ó  — t        |«      5 }|j                  d«      5 }| j                  t        |«      «      }||d t        |«       d d d «       d d d «       t        «      S # 1 sw Y   ŒxY w# 1 sw Y   t        «      S xY w)NÚB)Ú
memoryviewÚcastÚreadÚlen)r	   ÚbÚviewÚ	byte_viewÚdatas        r
   ÚreadintozDecompressReader.readintoB   sc   € Ü˜Œ]˜d D§I¡I¨c¤N°iØ—9‘9œS ›^Ó,ˆDØ$(ˆI�j”s˜4“yÐ!÷ %3�]ô �4‹yÐ÷ %3 Nú�]ô �4‹yÐús"   ŒA.ž)A"ÁA.Á"A+	Á'A.Á.Bc                 óÖ  — |dk  r| j                  «       S |r| j                  ryd }	 | j                  j                  ry| j                  j                  xs | j
                  j                  t        «      }|sn£ | j                  di | j                  ¤Ž| _        	 | j                  j                  ||«      }n`| j                  j                  r,| j
                  j                  t        «      }|st        d«      ‚d}| j                  j                  ||«      }|rnŒó|sd| _        | j                  | _        y| xj                  t!        |«      z  c_        |S # | j                  $ r Y ŒLw xY w)Nr   r   TzACompressed file ended before the end-of-stream marker was reachedr   )Úreadallr$   r)   ÚeofÚunused_datar#   r:   ÚBUFFER_SIZEr'   r(   Ú
decompressr*   Úneeds_inputÚEOFErrorr%   r&   r;   )r	   Úsizer?   Úrawblocks       r
   r:   zDecompressReader.readH   sY  € Ø�!Š8Ø—<‘<“>Ð!á�t—y’yØØˆð Ø×!Ñ!×%Ò%Ø ×.Ñ.×:Ñ:ò 7Ø ŸH™HŸM™M¬+Ó6ð áØà%9 T×%9Ñ%9ñ &)Ø×'Ñ'ñ&)�Ô"ðØ×-Ñ-×8Ñ8¸À4ÓH‘Dð
 ×%Ñ%×1Ò1Ø#Ÿx™xŸ}™}¬[Ó9�HÙ#Ü&ð (Jó Kð Kð  #�HØ×)Ñ)×4Ñ4°X¸tÓD�ÙØð1 ñ2 ØˆDŒIØŸ™ˆDŒJØØ�	Š	”S˜“YÑ�	Øˆøð' ×+Ñ+ò áðús   ÂE ÅE(Å'E(c                 óÐ   — g }| j                  t        j                  «      x}r3|j                  |«       | j                  t        j                  «      x}rŒ3dj	                  |«      S )Nr   )r:   ÚsysÚmaxsizeÚappendÚjoin)r	   Úchunksr?   s      r
   rB   zDecompressReader.readallq   sX   € Øˆð —i‘i¤§¡Ó,Ð,ˆdÐ,Ø�M‰M˜$Ôð —i‘i¤§¡Ó,Ð,ˆdÑ,ð �x‰x˜ÓÐr   c                 ó˜   — | j                   j                  d«       d| _        d| _         | j                  di | j
                  ¤Ž| _        y )Nr   Fr   )r#   Úseekr$   r%   r'   r(   r)   r   s    r
   Ú_rewindzDecompressReader._rewind|   s>   € Ø�‰�‰�aÔØˆŒ	ØˆŒ	Ø1˜T×1Ñ1ÑF°D×4EÑ4EÑFˆÕr   c                 ó   — |t         j                  k(  rn¯|t         j                  k(  r| j                  |z   }nŒ|t         j                  k(  r_| j
                  dk  r@| j                  t         j                  «      r!	 | j                  t         j                  «      rŒ!| j
                  |z   }nt        dj                  |«      «      ‚|| j                  k  r| j                  «        n|| j                  z  }|dkD  rL| j                  t        t         j                  |«      «      }|s	 | j                  S |t        |«      z  }|dkD  rŒL| j                  S )Nr   zInvalid value for whence: {})r   ÚSEEK_SETÚSEEK_CURr%   ÚSEEK_ENDr&   r:   ÚDEFAULT_BUFFER_SIZEr   ÚformatrS   Úminr;   )r	   ÚoffsetÚwhencer?   s       r
   rR   zDecompressReader.seek‚   s  € à”R—[‘[Ò ØØ”r—{‘{Ò"Ø—Y‘Y Ñ'‰FØ”r—{‘{Ò"à�z‰z˜AŠ~Ø—i‘i¤× 6Ñ 6Ô7Øð —i‘i¤× 6Ñ 6Õ7à—Z‘Z &Ñ(‰FäÐ;×BÑBÀ6ÓJÓKÐKð �D—I‘IÒØ�L‰L�Nà�d—i‘iÑˆFð �qŠjØ—9‘9œS¤×!7Ñ!7¸Ó@ÓAˆDÙØð �y‰yÐð ”c˜$“iÑˆFð	 �q‹jð �y‰yÐr   c                 ó   — | j                   S )z!Return the current file position.)r%   r   s    r
   ÚtellzDecompressReader.tell    s   € à�y‰yÐr   )r   )r"   )r   r   r   r   r   r/   r3   r   r@   r:   rB   rS   r   rU   rR   r^   Ú__classcell__)r4   s   @r
   r   r   !   sC   ø„ Ù?òó.ô(ò#òó'òR òGð #%§+¡+ó ö<r   r   )	r   r   rL   rX   rE   ÚBufferedIOBaser   Ú	RawIOBaser   r   r   r
   Ú<module>rb      s?   ðÙ =ã 	Û 
à×$Ñ$€ôF�×"Ñ"ô Fô0A�r—|‘|õ Ar   