
    ,hh9`                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKr/ SQr	Su  r
rrrrSrSrSrSrSrS	rS
\R*                  -  rS\SSS4S jrS r " S S5      r " S S\5      r " S S\R8                  5      r " S S\ R<                  5      rS r S r! " S S\ RD                  5      r#\4SS.S jjr$S r%S r&\'S:X  a  \&" 5         gg)    N)BadGzipFileGzipFileopencompress
decompress)               rbwbr      	   i   r
   c                     SU;   a  SU;   a  [        SU< 35      eO*Ub  [        S5      eUb  [        S5      eUb  [        S5      eUR                  SS5      n[        U [        [        [
        R                  45      (       a  [        XU5      nO;[        U S5      (       d  [        U S	5      (       a  [        S XbU 5      nO[        S
5      eSU;   a-  [        R                  " U5      n[        R                  " XsXE5      $ U$ )NtbzInvalid mode: z0Argument 'encoding' not supported in binary modez.Argument 'errors' not supported in binary modez/Argument 'newline' not supported in binary mode readwritez1filename must be a str or bytes object, or a file)
ValueErrorreplace
isinstancestrbytesosPathLiker   hasattr	TypeErroriotext_encodingTextIOWrapper)filenamemodecompresslevelencodingerrorsnewlinegz_modebinary_files           -/opt/python-3.13.8/usr/lib/python3.13/gzip.pyr   r   !   s    ( d{$;49::  OPPMNNNOOll3#G(S%566x-@	6	"	"gh&@&@tWXFKLL
d{##H-vGG    c                 P    U R                  [        R                  " SU5      5        g )Nz<L)r   structpack)outputvalues     r+   write32ur2   N   s     LLT5)*r,   c                   :    \ rS rSrS	S jrS rS	S jrS rS rSr	g)
_PaddedFileS   c                 J    X l         [        U5      U l        Xl        SU l        g Nr   )_bufferlen_lengthfile_read)selffprepends      r+   __init___PaddedFile.__init__X   s    7|	
r,   c                    U R                   c  U R                  R                  U5      $ U R                   U-   U R                  ::  a9  U R                   nU =R                   U-  sl         U R                  X R                    $ U R                   nS U l         U R                  US  U R                  R                  XR                  -
  U-   5      -   $ N)r<   r;   r   r:   r8   )r=   sizer   s      r+   r   _PaddedFile.read^   s    ::99>>$''::,::DJJ$J<<ZZ00::DDJ<<&99>>$||"3D"89: :r,   c                     U R                   c  Xl        OU =R                   [        U5      -  sl         g [        U R                  5      U l        SU l         g r7   )r<   r8   r9   r:   )r=   r?   s     r+   r?   _PaddedFile.prependk   s=    ::"LJJ#g,&J4<<(
r,   c                 T    S U l         S U l        U R                  R                  U5      $ rC   )r<   r8   r;   seek)r=   offs     r+   rI   _PaddedFile.seekt   s#    
yy~~c""r,   c                     gNT r=   s    r+   seekable_PaddedFile.seekabley       r,   )r8   r:   r<   r;   N)r,   )
__name__
__module____qualname____firstlineno__r@   r   r?   rI   rP   __static_attributes__rN   r,   r+   r4   r4   S   s    
:#
r,   r4   c                       \ rS rSrSrg)r   }   rN   N)rS   rT   rU   rV   rW   rN   r,   r+   r   r   }   s     r,   r   c                   ,    \ rS rSrS rS rS rS rSrg)_WriteBufferStream   c                 :    [         R                  " U5      U l        g rC   )weakrefref	gzip_file)r=   r`   s     r+   r@   _WriteBufferStream.__init__   s     Y/r,   c                 `    U R                  5       nUc  [        S5      eUR                  U5      $ )Nzlost gzip_file)r`   RuntimeError
_write_raw)r=   datar`   s      r+   r   _WriteBufferStream.write   s1    NN$	/00##D))r,   c                     g)NFrN   rO   s    r+   rP   _WriteBufferStream.seekable   s    r,   c                     grM   rN   rO   s    r+   writable_WriteBufferStream.writable   rR   r,   )r`   N)	rS   rT   rU   rV   r@   r   rP   rj   rW   rN   r,   r+   r[   r[      s    0*r,   r[   c                     ^  \ rS rSrSrSS\SS4S jr\S 5       rS r	S r
U 4S jrS rS	 rS
 rSS jrSS jrS r\S 5       rS rS r\R,                  4S jrS rS rS rS rS r\R<                  4S jrSS jr Sr!U =r"$ )r      Nc                    U(       a&  SU;   d  SU;   a  [        SR                  U5      5      eU(       a  SU;  a  US-  n Uc%  [        R                  " X=(       d    S5      =o@l        Uc+  [        USS5      n[        U[        [        45      (       d  SnO[        R                  " U5      nUnUc  [        USS5      nUR                  S	5      (       a8  [        U l        [        U5      n[        R                   " U5      U l        Xl        OUR                  S
5      (       a  Uc  SS KnUR)                  S[*        S5        [,        U l        U R/                  U5        [0        R2                  " U[0        R4                  [0        R6                  * [0        R8                  S5      U l        XPl        [>        U l         [        RB                  " [E        U 5      U R@                  S9U l        O[        SR                  U5      5      eX@l#        U R                  [,        :X  a  U RI                  U5        g g !   U RK                  5         e = f)Nr   UzInvalid mode: {!r}r   r   namer   r$   r)waxr   zGzipFile was opened for writing, but this will change in future Python releases.  Specify the mode argument for opening it for writing.r	   )buffer_size)&r   formatbuiltinsr   	myfileobjgetattrr   r   r   r   fspath
startswithREADr$   _GzipReaderr    BufferedReaderr8   rp   warningswarnFutureWarningWRITE_init_writezlibcompressobjDEFLATED	MAX_WBITSDEF_MEM_LEVELr   _write_mtime_WRITE_BUFFER_SIZE_buffer_sizeBufferedWriterr[   fileobj_write_gzip_header_close)	r=   r#   r$   r%   r   mtimeorigmoderawr   s	            r+   r@   GzipFile.__init__   s   H SD[C4K188>??CtOCKD2	+3==<4+PP."7FB7!(S%L99!H99X.H|w5 s## 	!'*!005$	11##MMP &q	*
 "	  * $ 0 01526..151C1C12	!4
 %*!$6!!001CD1I=A=N=N P !!5!<!<T!BCC"LyyE!''6 "	 KKMs   G*H- -I c                 B    U R                   R                  R                  $ rC   )r8   r   _last_mtimerO   s    r+   r   GzipFile.mtime   s     ||+++r,   c                 r    [        U R                  5      nSUSS -   S-   [        [        U 5      5      -   S-   $ )Nz<gzip r    >)reprr   hexid)r=   ss     r+   __repr__GzipFile.__repr__  s8    !Ab'!C'#bh-7#==r,   c                 ~    Xl         [        R                  " S5      U l        SU l        / U l        SU l        SU l        g Nr,   r   )rp   r   crc32crcrD   writebufbufsizeoffset)r=   r#   s     r+   r   GzipFile._init_write  s2    	::c?	r,   c                 t   > U R                  5         U R                  R                  5         [        TU ]  5       $ rC   )_check_not_closedr8   flushsupertellr=   	__class__s    r+   r   GzipFile.tell  s+     w|~r,   c                 f   U R                   R                  S5        U R                   R                  S5         [        R                  R	                  U R
                  5      n[        U[        5      (       d  UR                  S5      nUR                  S5      (       a  US S nSnU(       a  [        nU R                   R                  [        U5      R                  S5      5        U R                  nUc  [        R                  " 5       n[        U R                   [!        U5      5        U["        :X  a  SnOU[$        :X  a  S	nOS
nU R                   R                  U5        U R                   R                  S5        U(       a  U R                   R                  US
-   5        g g ! [         a    Sn GNf = f)N      zlatin-1s   .gzr,   r                )r   r   r   pathbasenamerp   r   r   encodeendswithUnicodeEncodeErrorFNAMEchrr   timer2   int_COMPRESS_LEVEL_BEST_COMPRESS_LEVEL_FAST)r=   r%   fnameflagsr   xfls         r+   r   GzipFile._write_gzip_header  sP   ;'7#		 GG$$TYY/EeU++Y/~~f%%cr
 E3u:,,Y78!!=IIKEs5z*00C22CC37#LLuw/ % " 	E	s   A*F   F0/F0c                     U R                  5         U R                  [        :w  a  SS Kn[	        UR
                  S5      eU R                  c  [        S5      eU R                  R                  U5      $ )Nr   z$write() on read-only GzipFile objectz!write() on closed GzipFile object)
r   r$   r   errnoOSErrorEBADFr   r   r8   r   )r=   re   r   s      r+   r   GzipFile.write3  sZ     99%++'MNN<<@AA||!!$''r,   c                    [        U[        [        45      (       a  [        U5      nO[	        U5      nUR
                  nUS:  a  U R                  R                  U R                  R                  U5      5        U =R                  U-  sl	        [        R                  " XR                  5      U l        U =R                  U-  sl        U$ r7   )r   r   	bytearrayr9   
memoryviewnbytesr   r   r   rD   r   r   r   r   )r=   re   lengths      r+   rd   GzipFile._write_raw>  s    dUI.//YF d#D[[FA:LLt}}55d;<IIIzz$1DHKK6!Kr,   c                     U R                  5         U R                  [        :w  a  SS Kn[	        UR
                  S5      eU R                  R                  U5      $ )Nr   z$read() on write-only GzipFile object)r   r$   r|   r   r   r   r8   r   r=   rD   r   s      r+   r   GzipFile.readO  sD     99%++'MNN||  &&r,   c                     U R                  5         U R                  [        :w  a  SS Kn[	        UR
                  S5      eUS:  a  [        R                  nU R                  R                  U5      $ )Nr   z%read1() on write-only GzipFile object)
r   r$   r|   r   r   r   r    DEFAULT_BUFFER_SIZEr8   read1r   s      r+   r   GzipFile.read1V  sX     	 99%++'NOO!8))D||!!$''r,   c                     U R                  5         U R                  [        :w  a  SS Kn[	        UR
                  S5      eU R                  R                  U5      $ )Nr   z$peek() on write-only GzipFile object)r   r$   r|   r   r   r   r8   peek)r=   nr   s      r+   r   GzipFile.peekc  sD     99%++'MNN||  ##r,   c                     U R                   S L $ rC   )r   rO   s    r+   closedGzipFile.closedj  s    ||t##r,   c                    U R                   nUb  U R                  R                  (       a  g  U R                  [        :X  aq  U R                  R                  5         UR                  U R                  R                  5       5        [        XR                  5        [        XR                  S-  5        O.U R                  [        :X  a  U R                  R                  5         U R                  5         g ! U R                  5         f = f)N    )r   r8   r   r$   r   r   r   r   r2   r   rD   r|   closer   )r=   r   s     r+   r   GzipFile.closen  s    ,,?dll11
	yyE!""$dmm1134((+))j"89d"""$KKMDKKMs   B3C1 1Dc                 `    S U l         U R                  nUb  S U l        UR                  5         g g rC   )r   rx   r   )r=   rx   s     r+   r   GzipFile._close~  s.    NN	 !DNOO !r,   c                    U R                  5         U R                  [        :X  ai  U R                  R	                  5         U R
                  R                  U R                  R	                  U5      5        U R
                  R	                  5         g g rC   )r   r$   r   r8   r   r   r   r   )r=   	zlib_modes     r+   r   GzipFile.flush  s`     99LL LLt}}229=>LL 	 r,   c                 6    U R                   R                  5       $ rC   )r   filenorO   s    r+   r   GzipFile.fileno  s     ||""$$r,   c                 x    U R                   [        :w  a  [        S5      eU R                  R	                  S5        g )NzCan't rewind in write moder   )r$   r|   r   r8   rI   rO   s    r+   rewindGzipFile.rewind  s.     99677!r,   c                 (    U R                   [        :H  $ rC   )r$   r|   rO   s    r+   readableGzipFile.readable  s    yyD  r,   c                 (    U R                   [        :H  $ rC   )r$   r   rO   s    r+   rj   GzipFile.writable  s    yyE!!r,   c                     grM   rN   rO   s    r+   rP   GzipFile.seekable  rR   r,   c                    U R                   [        :X  a  U R                  5         U R                  R	                  5         U[
        R                  :w  a/  U[
        R                  :X  a  U R                  U-   nO[        S5      eXR                  :  a  [        S5      eXR                  -
  nSU R                  -  n[        X0R                  -  5       H  nU R                  U5        M     U R                  SX0R                  -  -  5        U R                  $ U R                   [        :X  a+  U R                  5         U R                  R                  X5      $ U R                  $ )NzSeek from end not supportedzNegative seek in write moder   )r$   r   r   r8   r   r    SEEK_SETSEEK_CURr   r   r   r   ranger   r|   rI   )r=   r   whencecountchunkis         r+   rI   GzipFile.seek  s   99""$LL $R[[(![[61F$%BCC#;<<[[(ED---E5$5$556

5! 7JJu(9(9 9:;
 {{	 YY$""$<<$$V44{{r,   c                 X    U R                  5         U R                  R                  U5      $ rC   )r   r8   readline)r=   rD   s     r+   r  GzipFile.readline  s#     ||$$T**r,   )r8   r   r   r   r   r   r   r$   rx   rp   r   rD   r   r   )#rS   rT   rU   rV   rx   r   r@   propertyr   r   r   r   r   r   rd   r   r   r   r   r   r   r   Z_SYNC_FLUSHr   r   r   r   rj   rP   r    r   rI   r  rW   __classcell__r   s   @r+   r   r      s     I $43T[z , ,>
0@	("'($ $ $  ".. !%!" #%++ .+ +r,   r   c                     U R                  U5      n[        U5      U:  aD  U R                  U[        U5      -
  5      nU(       d  [        S5      eX#-  n[        U5      U:  a  MD  U$ )NACompressed file ended before the end-of-stream marker was reached)r   r9   EOFError)fpr   re   r   s       r+   _read_exactr    sb     771:D
d)a-GGAD	M" > ? ?	 d)a- Kr,   c                 4   U R                  S5      nUS:X  a  g US:w  a  [        SU-  5      e[        R                  " S[	        U S5      5      u  p#nUS:w  a  [        S5      eU[
        -  (       a.  [        R                  " S[	        U S5      5      u  n[	        X5        U[        -  (       a"   U R                  S	5      nU(       a  US
:X  a  OM!  U[        -  (       a"   U R                  S	5      nU(       a  US
:X  a  OM!  U[        -  (       a  [	        U S5        U$ )Nr	   r,   r   zNot a gzipped file (%r)z<BBIxxr   zUnknown compression methodz<Hr   r   )	r   r   r.   unpackr  FEXTRAr   FCOMMENTFHCRC)r  magicmethodflag
last_mtime	extra_lenr   s          r+   _read_gzip_headerr    s    
 GGAJE|3e;<<!'xR9K!LV:{677f}]]4R);<
	B"e|
A7
  h
A7
  e|Br,   c                   P   ^  \ rS rSrU 4S jrS rS rS	S jrS rU 4S jr	Sr
U =r$ )
r}   i  c                    > [         TU ]  [        U5      [        R                  [        R
                  * S9  SU l        S U l        g )NwbitsT)r   r@   r4   r   _ZlibDecompressorr   _new_memberr   )r=   r  r   s     r+   r@   _GzipReader.__init__  s>    R$*@*@ $ 	 	0  r,   c                 H    [         R                  " S5      U l        SU l        g r   )r   r   _crc_stream_sizerO   s    r+   
_init_read_GzipReader._init_read  s    JJsO	r,   c                 B    [        U R                  5      nUc  gXl        g)NFT)r  _fpr   )r=   r  s     r+   r  _GzipReader._read_gzip_header  s"    &txx0
%r,   c                    US:  a  U R                  5       $ U(       d  g U R                  R                  (       a8  U R                  5         SU l        U R
                  " S0 U R                  D6U l        U R                  (       a>  U R                  5         U R                  5       (       d  U R                  U l
        gSU l        U R                  R                  (       a;  U R                  R                  [        5      nU R                  R                  X!5      nOU R                  R                  SU5      nU R                  R                   S:w  a/  U R                  R#                  U R                  R                   5        US:w  a  OWS:X  a  [%        S5      eGMx  [&        R(                  " X0R*                  5      U l        U =R,                  [/        U5      -  sl        U =R                  [/        U5      -  sl	        U$ )Nr   r,   TFr	  rN   )readall_decompressoreof	_read_eofr  _decomp_factory_decomp_argsr"  r  _pos_sizeneeds_inputr%  r   READ_BUFFER_SIZEr   unused_datar?   r
  r   r   r   r!  r9   )r=   rD   buf
uncompresss       r+   r   _GzipReader.read	  s   !8<<>!
 !!%%
  #' %)%9%9 &)''&)"  !--//!%DJ#(  !!--hhmm$45!//::3E
!//::3E
!!--4   !3!3!?!?@S cz  B C CG L JJz995	S_,		S_$	r,   c                    [         R                  " S[        U R                  S5      5      u  pXR                  :w  a/  [        S[        U5      < S[        U R                  5      < 35      eX R                  S-  :w  a  [        S5      eSnUS:X  a#  U R                  R                  S5      nUS:X  a  M#  U(       a  U R                  R                  U5        g g )	N<IIr   zCRC check failed z != r   !Incorrect length of data producedr   r   )
r.   r  r  r%  r   r   r   r!  r   r?   )r=   r   isizecs       r+   r+  _GzipReader._read_eof>  s    
 }}UK!,DEIISZ=@^M N N((:56ABB
 7la A 7lHHQ r,   c                 0   > [         TU ]  5         SU l        g rM   )r   _rewindr  r   s    r+   r=  _GzipReader._rewindS  s    r,   )r   r)  r   r  r/  r!  r  )rS   rT   rU   rV   r@   r"  r  r   r+  r=  rW   r  r  s   @r+   r}   r}     s'     3j *   r,   r}   )r   c                    [         R                  " XSS9nUc  [        R                  " 5       n[        R                  " SU[        U5      US   S5      nXCSS  -   $ )N   )levelr  z<4sLBBr      
   )r   r   r   r.   r/   r   )re   r%   r   	gzip_dataheaders        r+   r   r   X  sS     drBI}		 [[9c%j)A,LFbcN""r,   c                    / n [         R                  " U 5      n[        U5      c  SR                  U5      $ [        R
                  " [        R                  * S9nUR                  XR                  5       S  5      nUR                  (       a  [        UR                  5      S:  a  [        S5      e[        R                  " SUR                  S S 5      u  pVU[        R                  " U5      :w  a  [!        S5      eU[        U5      S-  :w  a  [!        S5      eUR#                  U5        UR                  SS  R%                  S	5      n GMF  )
Nr,   r  r   r	  r7  zCRC check failedr   r8  r   )r    BytesIOr  joinr   decompressobjr   r   r   r*  r9   r2  r
  r.   r  r   r   appendlstrip)re   decompressed_membersr  dodecompressedr   r   s          r+   r   r   i  s    
ZZR (88011t~~o6}}T'')*%56vvR^^,q0 0 1 1mmE2>>"1+=>$**\**011c,'*45ABB##L1~~ab!((1# r,   c                     SSK Jn   U " SS9nUR                  5       nUR                  SSSS9  UR                  S	SS
S9  UR                  SSSSS9  UR                  SSS/SS9  UR	                  5       n[
        nUR                  (       a  [        nOUR                  (       a  [        nUR                   GH  nUR                  (       a  US:X  a>  [        SS[        R                  R                  S9n[        R                   R                  nOUSS  S:w  a  [        R"                  " SU< 35        [%        US5      n[&        R$                  " US S S5      nOkUS:X  a?  [        R                  R                  n[        SS[        R                   R                  US9nO&[&        R$                  " US5      n[%        US-   S5      n UR)                  [*        5      nU(       d  OUR-                  U5        M0  U[        R                   R                  La  UR/                  5         U[        R                  R                  Ld  GM  UR/                  5         GM     g )Nr   )ArgumentParserzeA simple command line interface for the gzip module: act like gzip, but do not delete the input file.)descriptionz--fast
store_truezcompress faster)actionhelpz--bestzcompress betterz-dz--decompresszact like gunzip instead of gzipargs*-r;   )nargsdefaultmetavarr   r   )r#   r$   r   r   z.gzzfilename doesn't end in .gz: r   )r#   r$   r   r%   )argparserP  add_mutually_exclusive_groupadd_argument
parse_args_COMPRESS_LEVEL_TRADEOFFfastr   bestr   rU  r   r   sysstdinbufferstdoutexitr   rw   r   r1  r   r   )	rP  parsergrouprU  r%   argr>   gr   s	            r+   mainrk    s   '	,-F //1E	x;LM	x;LM	t^L>  @ cC5&ID,Myy,	,yy??czbtSYY=M=MNJJ%%rs8u$HH<SGDEdOMM#cr(D1czII$$btSZZ=N=N+8: MM#t,ud+FF+,EGGEN	 
 CJJ%%%GGICII$$$GGI5 r,   __main__)(_compressionrw   r    r   r.   rb  r   r^   r   __all__FTEXTr  r  r   r  r|   r   r   r_  r   r1  r   r   r   r2   r4   r   r   	RawIOBaser[   
BaseStreamr   r  r  DecompressReaderr}   r   r   rk  rS   rN   r,   r+   <module>rs     s     	 	  
   
G(6 %ufeX    ///  ,@tT+Z+
' 'TA' A $k+|&& k+\	 "J_ ,// _ D "6 # #"22.` zF r,   