ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     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re.  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 }qW |dkrd|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 }xtdt| dD ]l}| ||d  }d}	y"x|D ]}
|	d	> ||
  }	qW W n  tk
r   tjd
d Y nX ||	jd	d7 }qW |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   rt|rVdnd fd	dtd
t D }|rt|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odkn  r||
 t|dkrrd}x|D ]}
d	| |
d
  }qW 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}xtdt| dD ]}| ||d  }d}y"x|D ]}|d t |  }qW W nJ t	k
r   x2t|D ]&\}}t | d krt
d||  d qW  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rd|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rt}|dkrt	}|dkrt	}|d	krt
  d S qW |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deutzusage: %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
-	
	


