
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aL!  ã                   @   sî   d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ dddddd	d
dgZ	e 
e  d¡jdd„ ¡Zdd„ ZG dd„ deƒZeƒ Zdeedƒ< dd„ Zdd„ Zdd„ Zdd„ Zdd	„ ZeedœZdd
„ ZeedœZeedœZddd„ZdS )é    N)Úascii_lettersÚdigits)ÚerrorsÚdecode_qÚencode_qÚdecode_bÚencode_bÚlen_qÚlen_bÚdecodeÚencodes   =([a-fA-F0-9]{2})c                 C   s   t  |  d¡ ¡ ¡S )Né   )ÚbytesÚfromhexÚgroupr   )Úm© r   ú9/opt/alt/python38/lib64/python3.8/email/_encoded_words.pyÚ<lambda>A   ó    r   c                 C   s   |   dd¡} t| ƒg fS )Nó   _ó    )ÚreplaceÚ_q_byte_subber)Úencodedr   r   r   r   C   s    c                   @   s,   e Zd Zde d¡ e d¡ Zdd„ ZdS )Ú	_QByteMaps   -!*+/Úasciic                 C   s.   || j krt|ƒ| |< nd |¡| |< | | S )Nz={:02X})ÚsafeÚchrÚformat)ÚselfÚkeyr   r   r   Ú__missing__M   s    
z_QByteMap.__missing__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r"   r   r   r   r   r   I   s   r   Ú_ú c                 C   s   d  dd„ | D ƒ¡S )NÚ c                 s   s   | ]}t | V  qd S ©N)Ú_q_byte_map©Ú.0Úxr   r   r   Ú	<genexpr>Z   s     zencode_q.<locals>.<genexpr>)Újoin©Úbstringr   r   r   r   Y   s    c                 C   s   t dd„ | D ƒƒS )Nc                 s   s   | ]}t t| ƒV  qd S r)   )Úlenr*   r+   r   r   r   r.   ]   s     zlen_q.<locals>.<genexpr>)Úsumr0   r   r   r   r	   \   s    c                 C   sø   t | ƒd }|r dd d| … nd}z&tj| | dd�|rDt ¡ gng fW S  tjk
� rò   ztj| dd�t ¡ gfW  Y S  tjk
rì   z,tj| d dd�t ¡ t ¡ gfW  Y  Y S  tjk
ræ   | t ¡ gf Y  Y  Y S X Y nX Y nX d S )Né   s   ===r   T)ZvalidateFs   ==)	r2   Úbase64Z	b64decoder   ZInvalidBase64PaddingDefectÚbinasciiÚErrorZInvalidBase64CharactersDefectZInvalidBase64LengthDefect)r   Zpad_errZmissing_paddingr   r   r   r   d   s(    þþ
ÿþc                 C   s   t  | ¡ d¡S )Nr   )r5   Z	b64encoder   r0   r   r   r   r   Š   s    c                 C   s&   t t| ƒdƒ\}}|d |r dnd S )Né   r4   r   )Údivmodr2   )r1   Zgroups_of_3Zleftoverr   r   r   r
   �   s    )ÚqÚbc           	   
   C   sÚ   |   d¡\}}}}}| d¡\}}}| ¡ }| dd¡}t| |ƒ\}}z| |¡}W nv tk
rŒ   | t 	d 
|¡¡¡ | |d¡}Y nB tk
rÌ   | dd¡}| ¡ dkrÈ| t d 
|¡¡¡ Y nX ||||fS )Nú?Ú*r   Úsurrogateescapez:Encoded word contains bytes not decodable using {} charsetúunknown-8bitz<Unknown charset {} in encoded word; decoded as unknown bytes)ÚsplitÚ	partitionÚlowerr   Ú_cte_decodersr   ÚUnicodeErrorÚappendr   ZUndecodableBytesDefectr   ÚLookupErrorZCharsetError)	Zewr&   ÚcharsetZcteZ
cte_stringÚlangr1   ZdefectsÚstringr   r   r   r   ˜   s&    ÿÿúutf-8r(   c                 C   s|   |dkr|   dd¡}n
|   |¡}|d krTtd |ƒ}td |ƒ}|| dk rPdnd}t| |ƒ}|rld| }d ||||¡S )	Nr?   r   r>   r:   r;   é   r=   z=?{}{}?{}?{}?=)r   Ú_cte_encode_lengthÚ_cte_encodersr   )rI   rG   ÚencodingrH   r1   ZqlenZblenr   r   r   r   r   Ì   s    
)rJ   Nr(   )Úrer5   r6   Ú	functoolsrI   r   r   Zemailr   Ú__all__ÚpartialÚcompileÚsubr   r   Údictr   r*   Úordr   r	   r   r   r
   rC   r   rM   rL   r   r   r   r   r   Ú<module>*   sJ   ùÿ&þ+þþ