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

  \¤O  ã               @   sš  d dl Z d dlZd dlZdddddddd	d
dddddddddgZeefZdd„ ZdBdd„ZdCdd„Z	dd„ Z
dd„ ZejddƒZejddƒZdd„ Zdd„ ZdZdadad d„ ZdDd!d	„Zd"d
„ ZdEd#d„Zdadad$Zd%ZdFd&d'„Zdd ddd(œd)d„Zddd*d+œd,d„Zd-Zda da!da"dGd.d„Z#d/d„ Z$d0Z%e%d1 d2 Z&d3d„ Z'd4d„ Z(d5d6„ Z)d7d„ Z*d8d9„ Z+d:d„ Z,d;d<„ Z-d=d>„ Z.d?d@„ Z/e0dAk�r–e.ƒ  dS )Hé    NÚencodeÚdecodeÚencodebytesÚdecodebytesÚ	b64encodeÚ	b64decodeÚ	b32encodeÚ	b32decodeÚ	b16encodeÚ	b16decodeÚ	b85encodeÚ	b85decodeÚ	a85encodeÚ	a85decodeÚstandard_b64encodeÚstandard_b64decodeÚurlsafe_b64encodeÚurlsafe_b64decodec             C   sx   t | tƒr2y
| jdƒS  tk
r0   tdƒ‚Y nX t | tƒr@| S yt| ƒjƒ S  tk
rr   td| j	j
 ƒd ‚Y nX d S )NÚasciiz4string argument should contain only ASCII charactersz>argument should be a bytes-like object or ASCII string, not %r)Ú
isinstanceÚstrr   ÚUnicodeEncodeErrorÚ
ValueErrorÚbytes_typesÚ
memoryviewÚtobytesÚ	TypeErrorÚ	__class__Ú__name__)Ús© r    ú/usr/lib64/python3.6/base64.pyÚ_bytes_from_decode_data"   s    


r"   c             C   s,   t j| dd�}|d k	r(|jtjd|ƒƒS |S )NF)Únewlines   +/)ÚbinasciiÚ
b2a_base64Ú	translateÚbytesÚ	maketrans)r   ÚaltcharsÚencodedr    r    r!   r   3   s    Fc             C   sP   t | ƒ} |d k	r*t |ƒ}| jtj|dƒƒ} |rFtjd| ƒ rFtjdƒ‚tj| ƒS )Ns   +/s   ^[A-Za-z0-9+/]*={0,2}$zNon-base64 digit found)	r"   r&   r'   r(   ÚreÚmatchr$   ÚErrorÚ
a2b_base64)r   r)   Zvalidater    r    r!   r   A   s    
c             C   s   t | ƒS )N)r   )r   r    r    r!   r   Z   s    c             C   s   t | ƒS )N)r   )r   r    r    r!   r   a   s    s   +/s   -_c             C   s   t | ƒjtƒS )N)r   r&   Ú_urlsafe_encode_translation)r   r    r    r!   r   o   s    c             C   s   t | ƒ} | jtƒ} t| ƒS )N)r"   r&   Ú_urlsafe_decode_translationr   )r   r    r    r!   r   x   s    
s    ABCDEFGHIJKLMNOPQRSTUVWXYZ234567c                sB  t d kr,dd„ tD ƒ‰ ‡ fdd„ˆ D ƒa d ‰ t| tƒsBt| ƒjƒ } t| ƒd }|rb| dd|   } tƒ }tj	}t }xjt
dt| ƒdƒD ]V}|| ||d … dƒ}|||d?  ||d	? d
@   ||d? d
@   ||d
@   7 }q„W |dkrôd|dd …< nF|dk�rd|dd …< n.|dk�r$d|dd …< n|dk�r:d|dd …< t|ƒS )Nc             S   s   g | ]}t |fƒ‘qS r    )r'   )Ú.0Úir    r    r!   ú
<listcomp>•   s    zb32encode.<locals>.<listcomp>c                s   g | ]}ˆ D ]}|| ‘qqS r    r    )r1   ÚaÚb)Úb32tabr    r!   r3   –   s    é   ó    r   Úbigé   é   iÿ  é
   é   s   ======é   é   s   ====é   é   s   ===ó   =iúÿÿÿéüÿÿÿéýÿÿÿéÿÿÿÿ)Ú_b32tab2Ú_b32alphabetr   r   r   r   ÚlenÚ	bytearrayÚintÚ
from_bytesÚranger'   )r   Úleftoverr*   rK   Zb32tab2r2   Úcr    )r6   r!   r   Ž   s4    
*


c             C   s‚  t d krdd„ ttƒD ƒa t| ƒ} t| ƒd r8tjdƒ‚|d k	r^t|ƒ}| jtj	dd| ƒƒ} |rj| j
ƒ } t| ƒ}| jdƒ} |t| ƒ }tƒ }t }x€tdt| ƒdƒD ]l}| ||d … }d}	y"x|D ]}
|	d	> ||
  }	qÄW W n  tk
rþ   tjd
ƒd ‚Y nX ||	jd	dƒ7 }q¤W |d �s(|dk�r2tjdƒ‚|�rz|�rz|	d	| K }	|	jd	dƒ}dd	|  d }|d |… |dd …< t|ƒS )Nc             S   s   i | ]\}}||“qS r    r    )r1   ÚkÚvr    r    r!   ú
<dictcomp>Ê   s    zb32decode.<locals>.<dictcomp>é   zIncorrect paddings   01ó   OrB   r   r7   zNon-base32 digit foundr9   r=   rA   r@   r>   é+   >   r   r=   rA   r@   r>   éûÿÿÿ)Ú_b32revÚ	enumeraterG   r"   rH   r$   r-   r&   r'   r(   ÚupperÚrstriprI   rL   ÚKeyErrorÚto_bytes)r   ÚcasefoldZmap01ÚlZpadcharsÚdecodedZb32revr2   ZquantaÚaccrN   ZlastrM   r    r    r!   r	   ´   s@    



c             C   s   t j| ƒjƒ S )N)r$   ZhexlifyrX   )r   r    r    r!   r
   ÷   s    c             C   s4   t | ƒ} |r| jƒ } tjd| ƒr*tjdƒ‚tj| ƒS )Ns	   [^0-9A-F]zNon-base16 digit found)r"   rX   r+   Úsearchr$   r-   Z	unhexlify)r   r\   r    r    r!   r   ý   s    

s   <~s   ~>c       	         s®   t | tƒst| ƒjƒ } t| ƒ d }|r4| d|  } tjdt| ƒd  ƒj| ƒ}‡ ‡‡‡fdd„|D ƒ}|r¤| r¤|d dkrŽˆ d d	 |d< |d d | … |d< d
j|ƒS )Nr@   r8   z!%dIc                sR   g | ]J}ˆr| rd n6ˆr&|dkr&dn&ˆ|d  ˆ|d d   ˆ |d   ‘qS )ó   zi    ó   yií^	 éU   i9  r    )r1   Zword)ÚcharsÚchars2ÚfoldnulsÚ
foldspacesr    r!   r3   !  s   z_85encode.<locals>.<listcomp>r=   ra   r   r7   ó    rE   rE   rE   rE   )	r   r   r   r   rH   ÚstructÚStructZunpackÚjoin)	r5   rd   re   Úpadrf   rg   ÚpaddingZwordsÚchunksr    )rd   re   rf   rg   r!   Ú	_85encode  s    

ro   )rg   Úwrapcolrl   Úadobec               sº   t d kr*dd„ tddƒD ƒa dd„ t D ƒat| t t|d|ƒ‰ |rHtˆ  ‰ ˆrªt|rVdndˆƒ‰‡ ‡fd	d„td
tˆ ƒˆƒD ƒ}|r t|d ƒd ˆkr |jdƒ dj|ƒ‰ |r¶ˆ t	7 ‰ ˆ S )Nc             S   s   g | ]}t |fƒ‘qS r    )r'   )r1   r2   r    r    r!   r3   D  s    za85encode.<locals>.<listcomp>é!   év   c             S   s   g | ]}t D ]}|| ‘qqS r    )Ú	_a85chars)r1   r4   r5   r    r    r!   r3   E  s    Tr?   r=   c                s   g | ]}ˆ ||ˆ … ‘qS r    r    )r1   r2   )Úresultrp   r    r!   r3   M  s   r   rh   ó   
rE   )
rt   rL   Ú
_a85chars2ro   Ú	_A85STARTÚmaxrH   Úappendrk   Ú_A85END)r5   rg   rp   rl   rq   rn   r    )ru   rp   r!   r   /  s"    

s    	
)rg   rq   Úignorecharsc            C   s¤  t | ƒ} |rH| jtƒs$tdjtƒƒ‚| jtƒr<| dd… } n| d d… } tjdƒj	}g }|j
}g }|j
}|j}	�x| d D � ]ö}
d|
  ko’dkn  �r||
ƒ t|ƒdk�rrd}x|D ]}
d	| |
d
  }qºW y|||ƒƒ W n" tjk
�r   tdƒd ‚Y nX |	ƒ  qz|
dk�r0|�r&tdƒ‚|dƒ qz|�rX|
dk�rX|�rNtdƒ‚|dƒ qz|
|k�rfqzqztd|
 ƒ‚qzW dj|ƒ}dt|ƒ }|�r |d | … }|S )Nz1Ascii85 encoded byte sequences must end with {!r}r?   z!Ió   ur@   ó   !r   r7   rc   rr   zAscii85 overflowra   zz inside Ascii85 5-tuples       rb   zy inside Ascii85 5-tuples       zNon-Ascii85 digit found: %crh   éþÿÿÿr   s   uuuurr   éu   éz   éy   )r"   Úendswithr{   r   ÚformatÚ
startswithrx   ri   rj   Úpackrz   ÚclearrH   Úerrorrk   )r5   rg   rq   r|   ÚpackIr^   Zdecoded_appendZcurrZcurr_appendZ
curr_clearÚxr_   ru   rm   r    r    r!   r   X  sV    







sU   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~c             C   s2   t d kr$dd„ tD ƒa dd„ t D ƒat| t t|ƒS )Nc             S   s   g | ]}t |fƒ‘qS r    )r'   )r1   r2   r    r    r!   r3   °  s    zb85encode.<locals>.<listcomp>c             S   s   g | ]}t D ]}|| ‘qqS r    )Ú	_b85chars)r1   r4   r5   r    r    r!   r3   ±  s    )r‹   Ú_b85alphabetÚ
_b85chars2ro   )r5   rl   r    r    r!   r   ¦  s    	c       
      C   sZ  t d kr0d gd a xttƒD ]\}}|t |< qW t| ƒ} t| ƒ d }| d|  } g }tjdƒj}xÔtdt| ƒdƒD ]À}| ||d … }d}y"x|D ]}|d t |  }q”W W nJ t	k
rø   x2t|ƒD ]&\}}t | d krÈt
d||  ƒd ‚qÈW ‚ Y nX y|j||ƒƒ W qt tjk
�r2   t
d| ƒd ‚Y qtX qtW d	j|ƒ}	|�rV|	d | … }	|	S )
Né   r7   ó   ~z!Ir   rc   z#bad base85 character at position %dz+base85 overflow in hunk starting at byte %drh   )Ú_b85decrW   rŒ   r"   rH   ri   rj   r†   rL   r   r   rz   rˆ   rk   )
r5   r2   rN   rm   Úoutr‰   Úchunkr_   Újru   r    r    r!   r   ´  s<    


éL   r@   rA   c             C   s`   xZ| j tƒ}|sP x0t|ƒtk rB| j tt|ƒ ƒ}|s8P ||7 }qW tj|ƒ}|j|ƒ qW d S )N)ÚreadÚ
MAXBINSIZErH   r$   r%   Úwrite)ÚinputÚoutputr   ÚnsÚliner    r    r!   r   ä  s    

c             C   s,   x&| j ƒ }|sP tj|ƒ}|j|ƒ qW d S )N)Úreadliner$   r.   r—   )r˜   r™   r›   r   r    r    r!   r   ó  s    
c             C   s’   yt | ƒ}W n8 tk
rD } zd| jj }t|ƒ|‚W Y d d }~X nX |jdkrjd|j| jjf }t|ƒ‚|jdkrŽd|j| jjf }t|ƒ‚d S )	Nz"expected bytes-like object, not %srN   r5   ÚBz-expected single byte elements, not %r from %sr=   z(expected 1-D data, not %d-D data from %s)rN   r5   r�   )r   r   r   r   r„   Úndim)r   ÚmÚerrÚmsgr    r    r!   Ú_input_type_checkü  s    

r¢   c             C   sP   t | ƒ g }x8tdt| ƒtƒD ]$}| ||t … }|jtj|ƒƒ qW dj|ƒS )Nr   rh   )r¢   rL   rH   r–   rz   r$   r%   rk   )r   Úpiecesr2   r’   r    r    r!   r     s    c             C   s   dd l }|jdtdƒ t| ƒS )Nr   zAencodestring() is a deprecated alias since 3.1, use encodebytes()r?   )ÚwarningsÚwarnÚDeprecationWarningr   )r   r¤   r    r    r!   Úencodestring  s    r§   c             C   s   t | ƒ tj| ƒS )N)r¢   r$   r.   )r   r    r    r!   r     s    c             C   s   dd l }|jdtdƒ t| ƒS )Nr   zHdecodestring() is a deprecated alias since Python 3.1, use decodebytes()r?   )r¤   r¥   r¦   r   )r   r¤   r    r    r!   Údecodestring$  s    r¨   c        	      C   s  dd l } dd l}y|j| jdd … dƒ\}}W nP |jk
r~ } z2| j| _t|ƒ td| jd  ƒ | jdƒ W Y d d }~X nX t}xF|D ]>\}}|dkržt}|dkrªt	}|dkr¶t	}|d	krŠt
ƒ  d S qŠW |oÚ|d d
k�rt|d dƒ�}||| jjƒ W d Q R X n|| jj| jjƒ d S )Nr   r=   Zdeutz�usage: %s [-d|-e|-u|-t] [file|-]
        -d, -u: decode
        -e: encode (default)
        -t: encode and decode string 'Aladdin:open sesame'r?   z-ez-dz-uz-tú-Úrb)ÚsysÚgetoptÚargvrˆ   ÚstderrÚstdoutÚprintÚexitr   r   ÚtestÚopenÚbufferÚstdin)	r«   r¬   ZoptsÚargsr¡   ÚfuncÚor4   Úfr    r    r!   Úmain.  s0         rº   c              C   s<   d} t t| ƒƒ t| ƒ}t t|ƒƒ t|ƒ}t t|ƒƒ d S )Ns   Aladdin:open sesame)r°   Úreprr   r   )Zs0Ús1Ús2r    r    r!   r²   H  s    r²   Ú__main__)N)NF)FN)F)FFF)F)1r+   ri   r$   Ú__all__r'   rI   r   r"   r   r   r   r   r(   r/   r0   r   r   rG   rF   rV   r   r	   r
   r   rt   rw   rx   r{   ro   r   r   rŒ   r‹   r�   r�   r   r   ZMAXLINESIZEr–   r   r   r¢   r   r§   r   r¨   rº   r²   r   r    r    r    r!   Ú<module>	   sf   

	&
C

)H
-	
	


