509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \nO  ã               @   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gZd\Z	Z
ZZZd\ZZddd„Zdd„ ZG dd„ dƒZG dd„ dejƒZG dd„ dejƒZddd„Zdd„ Zdd„ ZedkrÎeƒ  dS )é    NÚGzipFileÚopenÚcompressÚ
decompressé   é   é   é   é   Úrbé	   c             C   sÈ   d|kr d|krPt d|f ƒ‚n0|d k	r0t dƒ‚|d k	r@t dƒ‚|d k	rPt dƒ‚|j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
j||||ƒ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#   ú/usr/lib64/python3.6/gzip.pyr      s$    c             C   s   | j tjd|ƒƒ d S )Nz<L)r   ÚstructZpack)ÚoutputÚvaluer#   r#   r$   Úwrite32u@   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__J   s    
z_PaddedFile.__init__c             C   s~   | j d kr| jj|ƒS | j | | jkrJ| j }|  j |7  _ | j|| j … S | j }d | _ | j|d … | jj|| j | ƒ S d S )N)r/   r.   r   r-   r+   )r0   Úsizer   r#   r#   r$   r   P   s    
z_PaddedFile.readc             C   s>   | j d kr|| _n|  j t|ƒ8  _ d S t| jƒ| _d| _ d S )Nr   )r/   r+   r,   r-   )r0   r2   r#   r#   r$   r2   ]   s    
z_PaddedFile.prependc             C   s   d | _ d | _| jj|ƒS )N)r/   r+   r.   Úseek)r0   Zoffr#   r#   r$   r5   f   s    z_PaddedFile.seekc             C   s   dS )NTr#   )r0   r#   r#   r$   Úseekablek   s    z_PaddedFile.seekableN)r*   )r*   )Ú__name__Ú
__module__Ú__qualname__r3   r   r2   r5   r6   r#   r#   r#   r$   r)   E   s
   

	r)   c               @   sÐ   e Zd ZdZd,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d0d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d2d*d+„ZdS )3r   Nr   c             C   s2  |r"d|ksd|kr"t dj|ƒƒ‚|r6d|kr6|d7 }|d krTtj||pJdƒ }| _|d kr|t|ddƒ}t|ttfƒs†d}n
t	j
|ƒ}|d kršt|ddƒ}|jd	ƒrÆt| _t|ƒ}tj|ƒ| _|| _nN|jdƒ�rt| _| j|ƒ tj|tjtj tjdƒ| _|| _nt dj|ƒƒ‚|| _| jtk�r.| jƒ  d S )Nr   ÚUzInvalid mode: {!r}r   r   Únamer   r   ÚrÚwÚaÚxr   )r=   r>   r?   )r   ÚformatÚbuiltinsr   Ú	myfileobjÚgetattrr   r   r   r   ÚfspathÚ
startswithÚREADr   Ú_GzipReaderr   ÚBufferedReaderr+   r;   ÚWRITEÚ_init_writeÚzlibZcompressobjZDEFLATEDÚ	MAX_WBITSZDEF_MEM_LEVELr   Ú_write_mtimeÚfileobjÚ_write_gzip_header)r0   r   r   r   rN   ÚmtimeÚrawr#   r#   r$   r3   {   s>    #


zGzipFile.__init__c             C   sB   dd l }|jdtdƒ | jtkr<| jdd … dkr<| jd S | jS )Nr   zuse the name attributer   é   z.gzéýÿÿÿ)ÚwarningsÚwarnÚDeprecationWarningr   rI   r;   )r0   rT   r#   r#   r$   r   Ä   s
    
zGzipFile.filenamec             C   s
   | j jjS )N)r+   rQ   Ú_last_mtime)r0   r#   r#   r$   rP   Ì   s    zGzipFile.mtimec             C   s.   t | jƒ}d|dd…  d tt| ƒƒ d S )Nz<gzip r   ú ú>éÿÿÿÿ)ÚreprrN   ÚhexÚid)r0   Úsr#   r#   r$   Ú__repr__Ñ   s    
zGzipFile.__repr__c             C   s.   || _ tjdƒ| _d| _g | _d| _d| _d S )Nr*   r   )r;   rK   Úcrc32Úcrcr4   ZwritebufÚbufsizeÚoffset)r0   r   r#   r#   r$   rJ   Õ   s    zGzipFile._init_writec             C   sæ   | j jdƒ | j jdƒ y<tjj| jƒ}t|tƒs<|jdƒ}|j	dƒrR|d d… }W n t
k
rl   d}Y nX d}|rzt}| j jt|ƒjdƒƒ | j}|d kr¦tjƒ }t| j t|ƒƒ | j jdƒ | j jd	ƒ |râ| j j|d
 ƒ d S )Ns   ‹ó   zlatin-1s   .gzrR   r*   r   ó   ó   ÿó    rS   )rN   r   r   ÚpathÚbasenamer;   r   r   ÚencodeÚendswithÚUnicodeEncodeErrorÚFNAMEÚchrrM   Útimer(   Úint)r0   ZfnameÚflagsrP   r#   r#   r$   rO   Ý   s,    



zGzipFile._write_gzip_headerc             C   s¦   | j ƒ  | 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j|ƒƒ |  j|7  _tj|| jƒ| _|  j|7  _|S )Nr   z$write() on read-only GzipFile objectz!write() on closed GzipFile object)Ú_check_not_closedr   rI   ÚerrnoÚOSErrorÚEBADFrN   r   r   r   r,   Ú
memoryviewÚnbytesr   r   r4   rK   r`   ra   rc   )r0   Údatars   Zlengthr#   r#   r$   r   ÷   s     



zGzipFile.writer   c             C   s2   | j ƒ  | jtkr&dd l}t|jdƒ‚| jj|ƒS )Nr   z$read() on write-only GzipFile object)rr   r   rF   rs   rt   ru   r+   r   )r0   r4   rs   r#   r#   r$   r     s
    
zGzipFile.readc             C   s@   | j ƒ  | jtkr&dd l}t|jdƒ‚|dk r4tj}| jj	|ƒS )Nr   z%read1() on write-only GzipFile object)
rr   r   rF   rs   rt   ru   r   ÚDEFAULT_BUFFER_SIZEr+   Úread1)r0   r4   rs   r#   r#   r$   rz     s    
zGzipFile.read1c             C   s2   | j ƒ  | jtkr&dd l}t|jdƒ‚| jj|ƒS )Nr   z$peek() on write-only GzipFile object)rr   r   rF   rs   rt   ru   r+   Úpeek)r0   Únrs   r#   r#   r$   r{   #  s
    
zGzipFile.peekc             C   s
   | j d kS )N)rN   )r0   r#   r#   r$   Úclosed*  s    zGzipFile.closedc             C   sˆ   | j }|d krd S d | _ zP| jtkrR|j| jjƒ ƒ t|| jƒ t|| jd@ ƒ n| jt	krf| j
jƒ  W d | j}|r‚d | _|jƒ  X d S )Nl   ÿÿ )rN   r   rI   r   r   Úflushr(   ra   r4   rF   r+   ÚcloserB   )r0   rN   rB   r#   r#   r$   r   .  s    

zGzipFile.closec             C   s4   | j ƒ  | jtkr0| jj| jj|ƒƒ | jjƒ  d S )N)rr   r   rI   rN   r   r   r~   )r0   Z	zlib_moder#   r#   r$   r~   A  s    
zGzipFile.flushc             C   s
   | j jƒ S )N)rN   Úfileno)r0   r#   r#   r$   r€   H  s    zGzipFile.filenoc             C   s"   | j tkrtdƒ‚| jjdƒ d S )NzCan't rewind in write moder   )r   rF   rt   r+   r5   )r0   r#   r#   r$   ÚrewindP  s    
zGzipFile.rewindc             C   s
   | j tkS )N)r   rF   )r0   r#   r#   r$   ÚreadableW  s    zGzipFile.readablec             C   s
   | j tkS )N)r   rI   )r0   r#   r#   r$   ÚwritableZ  s    zGzipFile.writablec             C   s   dS )NTr#   )r0   r#   r#   r$   r6   ]  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d }xt|d ƒD ]}| j	|ƒ qdW | j	d|d  ƒ n | j t
krª| jƒ  | jj||ƒS | jS )NzSeek from end not supportedzNegative seek in write moderg   i   )r   rI   r   ÚSEEK_SETÚSEEK_CURrc   r   rt   Úranger   rF   rr   r+   r5   )r0   rc   ÚwhenceÚcountÚchunkÚir#   r#   r$   r5   `  s     





zGzipFile.seekc             C   s   | j ƒ  | jj|ƒS )N)rr   r+   Úreadline)r0   r4   r#   r#   r$   r‹   t  s    zGzipFile.readline)NNr   NNrZ   )rZ   rZ   )rZ   rZ   )rZ   )r7   r8   r9   rB   r3   Úpropertyr   rP   r_   rJ   rO   r   r   rz   r{   r}   r   rK   ZZ_SYNC_FLUSHr~   r€   r�   r‚   rƒ   r6   r   r„   r5   r‹   r#   r#   r#   r$   r   n   s,    
H

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 )rG   c                s,   t ƒ jt|ƒtjtj d� d| _d | _d S )N)ZwbitsT)Úsuperr3   r)   rK   ZdecompressobjrL   Ú_new_memberrW   )r0   Úfp)Ú	__class__r#   r$   r3   z  s    z_GzipReader.__init__c             C   s   t jdƒ| _d| _d S )Nr*   r   )rK   r`   Ú_crcÚ_stream_size)r0   r#   r#   r$   Ú
_init_read�  s    z_GzipReader._init_readc             C   sJ   | j j|ƒ}x8t|ƒ|k rD| j j|t|ƒ ƒ}|s:tdƒ‚||7 }qW |S )NzACompressed file ended before the end-of-stream marker was reached)Ú_fpr   r,   ÚEOFError)r0   r|   rx   r   r#   r#   r$   Ú_read_exact…  s    z_GzipReader._read_exactc             C   sæ   | j jdƒ}|dkrdS |dkr,td| ƒ‚tjd| jdƒƒ\}}| _|dkrVtdƒ‚|t@ r|tjd	| jdƒƒ\}| j|ƒ |t@ r¦x | j jd
ƒ}| s |dkr†P q†W |t	@ rÐx | j jd
ƒ}| sÊ|dkr°P q°W |t
@ râ| jdƒ dS )Nr   r*   Fs   ‹zNot a gzipped file (%r)z<BBIxxr	   zUnknown compression methodz<Hr   rg   T)r”   r   rt   r%   Úunpackr–   rW   ÚFEXTRArm   ÚFCOMMENTÚFHCRC)r0   ÚmagicÚmethodÚflagZ	extra_lenr^   r#   r#   r$   Ú_read_gzip_header•  s0    

z_GzipReader._read_gzip_headerr   c             C   sü   |dk r| j ƒ S |sdS xÂ| jjr@| jƒ  d| _| jf | jŽ| _| jrh| jƒ  | jƒ sb| j	| _
dS d| _| jjtjƒ}| jj||ƒ}| jjdkr¢| jj| jjƒ n| jjdkr¾| jj| jjƒ |dkrÈP |dkrtdƒ‚qW | j|ƒ |  j	t|ƒ7  _	|S )Nr   r*   TFzACompressed file ended before the end-of-stream marker was reached)ÚreadallZ_decompressorÚeofÚ	_read_eofrŽ   Z_decomp_factoryZ_decomp_argsr“   rž   Z_posZ_sizer”   r   r   ry   r   Zunconsumed_tailr2   Zunused_datar•   Ú_add_read_datar,   )r0   r4   ÚbufZ
uncompressr#   r#   r$   r   ¶  s:    

z_GzipReader.readc             C   s$   t j|| jƒ| _| jt|ƒ | _d S )N)rK   r`   r‘   r’   r,   )r0   rx   r#   r#   r$   r¢   é  s    z_GzipReader._add_read_datac             C   s„   t jd| jdƒƒ\}}|| jkr<tdt|ƒt| jƒf ƒ‚n|| jd@ krRtdƒ‚d}x|dkrn| jjdƒ}qXW |r€| jj	|ƒ d S )Nz<IIr	   zCRC check failed %s != %sl   ÿÿ z!Incorrect length of data producedrg   r   )
r%   r—   r–   r‘   rt   r\   r’   r”   r   r2   )r0   r`   ZisizeÚcr#   r#   r$   r¡   í  s    


z_GzipReader._read_eofc                s   t ƒ jƒ  d| _d S )NT)r�   Ú_rewindrŽ   )r0   )r�   r#   r$   r¥     s    
z_GzipReader._rewindrZ   )rZ   )r7   r8   r9   r3   r“   r–   rž   r   r¢   r¡   r¥   Ú__classcell__r#   r#   )r�   r$   rG   y  s   !
3rG   c          	   C   s4   t jƒ }t|d|d��}|j| ƒ W d Q R X |jƒ S )NÚwb)rN   r   r   )r   ÚBytesIOr   r   Úgetvalue)rx   r   r£   r1   r#   r#   r$   r     s    c          	   C   s$   t tj| ƒd��
}|jƒ S Q R X d S )N)rN   )r   r   r¨   r   )rx   r1   r#   r#   r$   r     s    c              C   s>  t jdd … } | o| d dk}|r.| dd … } | s8dg} � xþ| D ]ö}|r¬|dkrltddt jjd�}t jj}qê|dd … d	krŒtd
t|ƒƒ q@t|dƒ}t	j|d d… dƒ}n>|dkrÐt jj}tddt jjd�}nt	j|dƒ}t|d	 dƒ}x |j
dƒ}|� sþP |j|ƒ qìW |t jjk	�r"|jƒ  |t jjk	r@|jƒ  q@W d S )Nr   r   z-dú-r   r   )r   r   rN   rR   z.gzzfilename doesn't end in .gz:r§   i   rS   rS   )ÚsysÚargvr   ÚstdinÚbufferÚstdoutÚprintr[   r   rA   r   r   r   )Úargsr   Úargr1   Úgr‰   r#   r#   r$   Ú_test  s<    


r´   Ú__main__)r   r   r   r	   r
   )r   r   )r   r   NNN)r   )r%   r«   ro   r   rK   rA   r   Z_compressionÚ__all__ZFTEXTrš   r˜   rm   r™   rF   rI   r   r(   r)   Z
BaseStreamr   ZDecompressReaderrG   r   r   r´   r7   r#   r#   r#   r$   Ú<module>   s*     
+)   
	&