
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a¥S  ã                   @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZdddddgZd\Z	Z
ZZZd\ZZd	Zd
ZdZdedddfdd„Zdd„ ZG dd„ dƒZG dd„ deƒZG dd„ dejƒZG dd„ dejƒZefddœdd„Zdd„ Zdd„ Zedkrþeƒ  dS )é    NÚBadGzipFileÚGzipFileÚopenÚcompressÚ
decompress)é   é   é   é   é   )r   r   r   é   é	   Úrbc                 C   sÈ   d|kr d|krPt d|f ƒ‚n0|d k	r0t dƒ‚|d k	r@t dƒ‚|d k	rPt dƒ‚| dd¡}t| tttjfƒr|t| ||ƒ}n,t| dƒs�t| d	ƒr td ||| ƒ}nt	d
ƒ‚d|krÀt
 ||||¡S |S d S )NÚtÚbzInvalid mode: %rz0Argument '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ÚTextIOWrapper)ÚfilenameÚmodeÚcompresslevelÚencodingÚerrorsÚnewlineZgz_modeZbinary_file© r%   ú)/opt/alt/python38/lib64/python3.8/gzip.pyr      s$    c                 C   s   |   t d|¡¡ d S )Nz<L)r   ÚstructZpack)ÚoutputÚvaluer%   r%   r&   Úwrite32uE   s    r*   c                   @   s8   e Zd Zddd„Zdd„ Zddd„Zdd	„ Zd
d„ ZdS )Ú_PaddedFileó    c                 C   s    || _ t|ƒ| _|| _d| _d S ©Nr   )Ú_bufferÚlenÚ_lengthÚfileÚ_read)ÚselfÚfÚprependr%   r%   r&   Ú__init__O   s    
z_PaddedFile.__init__c                 C   s~   | j d kr| j |¡S | j | | jkrJ| j }|  j |7  _ | j|| j … S | j }d | _ | j|d … | j || j | ¡ S d S ©N)r2   r1   r   r0   r.   )r3   Úsizer   r%   r%   r&   r   U   s    
ÿz_PaddedFile.readc                 C   s>   | j d kr|| _n|  j t|ƒ8  _ d S t| jƒ| _d| _ d S r-   )r2   r.   r/   r0   )r3   r5   r%   r%   r&   r5   b   s    
z_PaddedFile.prependc                 C   s   d | _ d | _| j |¡S r7   )r2   r.   r1   Úseek)r3   Zoffr%   r%   r&   r9   k   s    z_PaddedFile.seekc                 C   s   dS ©NTr%   ©r3   r%   r%   r&   Úseekablep   s    z_PaddedFile.seekableN)r,   )r,   )Ú__name__Ú
__module__Ú__qualname__r6   r   r5   r9   r<   r%   r%   r%   r&   r+   J   s
   

	r+   c                   @   s   e Zd ZdS )r   N)r=   r>   r?   r%   r%   r%   r&   r   t   s   c                   @   sÚ   e Zd ZdZddeddfdd„Zedd„ ƒZedd„ ƒZdd	„ Z	d
d„ Z
dd„ Zdd„ Zd+dd„Zd,dd„Zdd„ Zedd„ ƒZdd„ Zejfdd„Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zejfd'd(„Zd-d)d*„ZdS ).r   Nc                 C   s4  |r"d|ksd|kr"t d |¡ƒ‚|r6d|kr6|d7 }|d krTt ||pJd¡ }| _|d kr|t|ddƒ}t|ttfƒs†d}n
t	 
|¡}|d kršt|ddƒ}| d	¡rÆt| _t|ƒ}t |¡| _|| _nN| d
¡�rt| _|  |¡ t |tjtj tjd¡| _|| _nt d |¡ƒ‚|| _| jtk�r0|  |¡ d S )Nr   ÚUzInvalid mode: {!r}r   r   Únamer   r    Úr)ÚwÚaÚxr   )r   ÚformatÚbuiltinsr   Ú	myfileobjÚgetattrr   r   r   r   ÚfspathÚ
startswithÚREADr    Ú_GzipReaderr   ÚBufferedReaderr.   rA   ÚWRITEÚ_init_writeÚzlibZcompressobjZDEFLATEDÚ	MAX_WBITSZDEF_MEM_LEVELr   Ú_write_mtimeÚfileobjÚ_write_gzip_header)r3   r   r    r!   rT   ÚmtimeÚrawr%   r%   r&   r6   …   s@    #


üzGzipFile.__init__c                 C   sB   dd l }| dtd¡ | jtkr<| jdd … dkr<| jd S | jS )Nr   zuse the name attributer   éýÿÿÿú.gz)ÚwarningsÚwarnÚDeprecationWarningr    rO   rA   )r3   rZ   r%   r%   r&   r   Î   s
    
zGzipFile.filenamec                 C   s
   | j jjS r7   )r.   rW   Ú_last_mtimer;   r%   r%   r&   rV   Ö   s    zGzipFile.mtimec                 C   s.   t | jƒ}d|dd…  d tt| ƒƒ d S )Nz<gzip r   éÿÿÿÿú ú>)ÚreprrT   ÚhexÚid)r3   Úsr%   r%   r&   Ú__repr__Û   s    
zGzipFile.__repr__c                 C   s.   || _ t d¡| _d| _g | _d| _d| _d S ©Nr,   r   )rA   rQ   Úcrc32Úcrcr8   ZwritebufÚbufsizeÚoffset)r3   r   r%   r%   r&   rP   ß   s    zGzipFile._init_writec                 C   s  | j  d¡ | j  d¡ z<tj | j¡}t|tƒs<| d¡}| 	d¡rR|d d… }W n t
k
rl   d}Y nX d}|rzt}| j  t|ƒ d¡¡ | j}|d kr¦t ¡ }t| j t|ƒƒ |tkrÄd}n|tkrÒd	}nd
}| j  |¡ | j  d¡ |�r| j  |d
 ¡ d S )Nó   ‹ó   zlatin-1s   .gzrX   r,   r   ó   ó   ó    ó   ÿ)rT   r   r   ÚpathÚbasenamerA   r   r   ÚencodeÚendswithÚUnicodeEncodeErrorÚFNAMEÚchrrS   Útimer*   ÚintÚ_COMPRESS_LEVEL_BESTÚ_COMPRESS_LEVEL_FAST)r3   r!   ZfnameÚflagsrV   Zxflr%   r%   r&   rU   ç   s6    



zGzipFile._write_gzip_headerc                 C   s¦   |   ¡  | jtkr&dd l}t|jdƒ‚| jd kr8tdƒ‚t|t	ƒrLt
|ƒ}nt|ƒ}|j}|dkr¢| j | j |¡¡ |  j|7  _t || j¡| _|  j|7  _|S )Nr   z$write() on read-only GzipFile objectz!write() on closed GzipFile object)Ú_check_not_closedr    rO   ÚerrnoÚOSErrorÚEBADFrT   r   r   r   r/   Ú
memoryviewÚnbytesr   r   r8   rQ   rg   rh   rj   )r3   Údatar~   Zlengthr%   r%   r&   r     s     



zGzipFile.writer^   c                 C   s2   |   ¡  | jtkr&dd l}t|jdƒ‚| j |¡S )Nr   z$read() on write-only GzipFile object)r}   r    rL   r~   r   r€   r.   r   ©r3   r8   r~   r%   r%   r&   r     s
    
zGzipFile.readc                 C   s@   |   ¡  | jtkr&dd l}t|jdƒ‚|dk r4tj}| j 	|¡S )Nr   z%read1() on write-only GzipFile object)
r}   r    rL   r~   r   r€   r   ÚDEFAULT_BUFFER_SIZEr.   Úread1r„   r%   r%   r&   r†   &  s    
zGzipFile.read1c                 C   s2   |   ¡  | jtkr&dd l}t|jdƒ‚| j |¡S )Nr   z$peek() on write-only GzipFile object)r}   r    rL   r~   r   r€   r.   Úpeek)r3   Únr~   r%   r%   r&   r‡   3  s
    
zGzipFile.peekc                 C   s
   | j d kS r7   ©rT   r;   r%   r%   r&   Úclosed:  s    zGzipFile.closedc                 C   sˆ   | j }|d krd S d | _ zP| jtkrR| | j ¡ ¡ t|| j	ƒ t|| j
d@ ƒ n| jtkrf| j ¡  W 5 | j}|r‚d | _| ¡  X d S )Nì   ÿÿ )rT   rH   Úcloser    rO   r   r   Úflushr*   rh   r8   rL   r.   )r3   rT   rH   r%   r%   r&   rŒ   >  s    

zGzipFile.closec                 C   s4   |   ¡  | jtkr0| j | j |¡¡ | j ¡  d S r7   )r}   r    rO   rT   r   r   r�   )r3   Z	zlib_moder%   r%   r&   r�   Q  s    
zGzipFile.flushc                 C   s
   | j  ¡ S r7   )rT   Úfilenor;   r%   r%   r&   rŽ   X  s    zGzipFile.filenoc                 C   s"   | j tkrtdƒ‚| j d¡ d S )NzCan't rewind in write moder   )r    rL   r   r.   r9   r;   r%   r%   r&   Úrewind`  s    
zGzipFile.rewindc                 C   s
   | j tkS r7   )r    rL   r;   r%   r%   r&   Úreadableg  s    zGzipFile.readablec                 C   s
   | j tkS r7   )r    rO   r;   r%   r%   r&   Úwritablej  s    zGzipFile.writablec                 C   s   dS r:   r%   r;   r%   r%   r&   r<   m  s    zGzipFile.seekablec                 C   s¨   | j tkr‚|tjkr2|tjkr*| j| }ntdƒ‚|| jk rDtdƒ‚|| j }d}t|d ƒD ]}|  	|¡ q^|  	d|d  ¡ n | j t
kr¢|  ¡  | j ||¡S | jS )NzSeek from end not supportedzNegative seek in write modes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   é   ro   )r    rO   r   ÚSEEK_SETÚSEEK_CURrj   r   r   Úranger   rL   r}   r.   r9   )r3   rj   ÚwhenceÚcountÚchunkÚir%   r%   r&   r9   p  s     





zGzipFile.seekc                 C   s   |   ¡  | j |¡S r7   )r}   r.   Úreadline)r3   r8   r%   r%   r&   rš   „  s    zGzipFile.readline)r^   )r^   )r^   )r=   r>   r?   rH   rz   r6   Úpropertyr   rV   re   rP   rU   r   r   r†   r‡   rŠ   rŒ   rQ   ZZ_SYNC_FLUSHr�   rŽ   r�   r�   r‘   r<   r   r“   r9   rš   r%   r%   r%   r&   r   x   s8     ÿ
I

 


c                       sZ   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zdd
d„Zdd„ Zdd„ Z	‡ fdd„Z
‡  ZS )rM   c                    s,   t ƒ jt|ƒtjtj d� d| _d | _d S )N)ZwbitsT)Úsuperr6   r+   rQ   ZdecompressobjrR   Ú_new_memberr]   )r3   Úfp©Ú	__class__r%   r&   r6   Š  s
    ÿz_GzipReader.__init__c                 C   s   t  d¡| _d| _d S rf   )rQ   rg   Ú_crcÚ_stream_sizer;   r%   r%   r&   Ú
_init_read‘  s    z_GzipReader._init_readc                 C   sF   | j  |¡}t|ƒ|k rB| j  |t|ƒ ¡}|s8tdƒ‚||7 }q|S )NúACompressed file ended before the end-of-stream marker was reached)Ú_fpr   r/   ÚEOFError)r3   rˆ   rƒ   r   r%   r%   r&   Ú_read_exact•  s    
z_GzipReader._read_exactc                 C   sÚ   | j  d¡}|dkrdS |dkr,td| ƒ‚t d|  d¡¡\}}| _|dkrVtdƒ‚|t@ r|t d	|  d¡¡\}|  |¡ |t@ r | j  d
¡}|r |dkr„q q„|t	@ rÄ| j  d
¡}|rÄ|dkr¨qÄq¨|t
@ rÖ|  d¡ dS )Nr   r,   Frk   zNot a gzipped file (%r)z<BBIxxr
   zUnknown compression methodz<Hr   ro   T)r¥   r   r   r'   Úunpackr§   r]   ÚFEXTRArv   ÚFCOMMENTÚFHCRC)r3   ÚmagicÚmethodÚflagZ	extra_lenrd   r%   r%   r&   Ú_read_gzip_header¥  s0    ÿ

z_GzipReader._read_gzip_headerr^   c                 C   sø   |dk r|   ¡ S |sdS | jjr>|  ¡  d| _| jf | jŽ| _| jrf|  ¡  |  ¡ s`| j	| _
dS d| _| j tj¡}| j ||¡}| jjdkr | j | jj¡ n| jjdkr¼| j | jj¡ |dkrÆqØ|dkrtdƒ‚q|  |¡ |  j	t|ƒ7  _	|S )Nr   r,   TFr¤   )ÚreadallZ_decompressorÚeofÚ	_read_eofr�   Z_decomp_factoryZ_decomp_argsr£   r¯   Z_posZ_sizer¥   r   r   r…   r   Zunconsumed_tailr5   Zunused_datar¦   Ú_add_read_datar/   )r3   r8   ÚbufZ
uncompressr%   r%   r&   r   Æ  s:    ÿ

z_GzipReader.readc                 C   s$   t  || j¡| _| jt|ƒ | _d S r7   )rQ   rg   r¡   r¢   r/   )r3   rƒ   r%   r%   r&   r³   ù  s    z_GzipReader._add_read_datac                 C   s€   t  d|  d¡¡\}}|| jkr<tdt|ƒt| jƒf ƒ‚n|| jd@ krRtdƒ‚d}|dkrl| j d¡}qV|r|| j 	|¡ d S )Nz<IIr
   zCRC check failed %s != %sr‹   z!Incorrect length of data producedro   r   )
r'   r¨   r§   r¡   r   rb   r¢   r¥   r   r5   )r3   rg   ZisizeÚcr%   r%   r&   r²   ý  s    

ÿ
z_GzipReader._read_eofc                    s   t ƒ  ¡  d| _d S r:   )rœ   Ú_rewindr�   r;   rŸ   r%   r&   r¶     s    
z_GzipReader._rewind)r^   )r=   r>   r?   r6   r£   r§   r¯   r   r³   r²   r¶   Ú__classcell__r%   r%   rŸ   r&   rM   ‰  s   !
3rM   )rV   c             	   C   s6   t  ¡ }t|d||d��}| | ¡ W 5 Q R X | ¡ S )NÚwb)rT   r    r!   rV   )r   ÚBytesIOr   r   Úgetvalue)rƒ   r!   rV   r´   r4   r%   r%   r&   r     s    c              
   C   s0   t t | ¡d��}| ¡ W  5 Q R £ S Q R X d S )Nr‰   )r   r   r¹   r   )rƒ   r4   r%   r%   r&   r     s    c            	      C   sŽ  ddl m}  | dd�}| ¡ }|jdddd� |jd	dd
d� |jddddd� |jdddgdd� | ¡ }t}|jr|t}n
|jr†t	}|j
D ]ü}|jrú|dkrºtddtjjd�}tjj}n>|dd … dkrÚt d|›�¡ t|dƒ}t |d d… d¡}nB|dk�r"tjj}tddtjj|d�}nt |d¡}t|d dƒ}| d¡}|�sP�q^| |¡ �q<|tjjk	�rt| ¡  |tjjk	rŒ| ¡  qŒd S )Nr   )ÚArgumentParserzeA simple command line interface for the gzip module: act like gzip, but do not delete the input file.)Zdescriptionz--fastÚ
store_truezcompress faster)ÚactionÚhelpz--bestzcompress betterz-dz--decompresszact like gunzip instead of gzipÚargsÚ*ú-r1   )ÚnargsÚdefaultÚmetavarr   r   )r   r    rT   rX   rY   zfilename doesn't end in .gz: r¸   )r   r    rT   r!   r’   )Úargparser»   Zadd_mutually_exclusive_groupÚadd_argumentÚ
parse_argsÚ_COMPRESS_LEVEL_TRADEOFFZfastr{   Zbestrz   r¿   r   r   ÚsysÚstdinÚbufferÚstdoutÚexitr   rG   r   r   rŒ   )	r»   ÚparserÚgroupr¿   r!   Úargr4   Úgr˜   r%   r%   r&   Úmain'  sR    ÿ
ÿ



ÿ
rÒ   Ú__main__) r'   rÉ   rx   r   rQ   rG   r   Z_compressionÚ__all__ZFTEXTr«   r©   rv   rª   rL   rO   r{   rÈ   rz   r   r*   r+   r   r   Z
BaseStreamr   ZDecompressReaderrM   r   r   rÒ   r=   r%   r%   r%   r&   Ú<module>   s8      ÿ
,*   	0