
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a«4  ã                   @   sf  d ddddddddd	d
ddddg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l	m
Z
 ddl	mZ ddl	mZ ddl	mZmZmZ ddlmZ dZdZdZdZdZe d¡Ze d¡Zdd„ Zdd„ Zd6d!d„Zd"d„ Zd#d$„ Zd7d&d„Z d8d'd„Z!d9d(d„Z"d)d„ Z#d*d
„ Z$d+d„ Z%d,d„ Z&d:d-d„Z'e d.ej(¡Z)d/d„ Z*d;d2d „Z+d<d4d5„Z,dS )=Úcollapse_rfc2231_valueÚdecode_paramsÚdecode_rfc2231Úencode_rfc2231Ú
formataddrÚ
formatdateÚformat_datetimeÚgetaddressesÚ
make_msgidÚ	mktime_tzÚ	parseaddrÚ	parsedateÚparsedate_tzÚparsedate_to_datetimeÚunquoteé    N)Úquote)ÚAddressList)r
   )r   r   Ú_parsedate_tz)ÚCharsetz, Ú z
ú'z[][\\()<>@,:;".]z[\\"]c                 C   s*   z|   ¡  W dS  tk
r$   Y dS X d S )NFT)ÚencodeÚUnicodeEncodeError)Ús© r   ú0/opt/alt/python38/lib64/python3.8/email/utils.pyÚ_has_surrogates3   s
    r   c                 C   s   |   dd¡}| dd¡S )Núutf-8ÚsurrogateescapeÚreplace)r   Údecode)ÚstringZoriginal_bytesr   r   r   Ú	_sanitize@   s    r"   r   c                 C   s”   | \}}|  d¡ |r�z|  d¡ W n< tk
r`   t|tƒrFt|ƒ}| |¡}d||f  Y S X d}t |¡rtd}t 	d|¡}d||||f S |S )NÚasciiz%s <%s>r   ú"z\\\g<0>z%s%s%s <%s>)
r   r   Ú
isinstanceÚstrr   Zheader_encodeÚ
specialsreÚsearchÚ	escapesreÚsub)ZpairÚcharsetÚnameZaddressZencoded_nameZquotesr   r   r   r   L   s     



c                 C   s   t  | ¡}t|ƒ}|jS )N)Ú
COMMASPACEÚjoinÚ_AddressListÚaddresslist)ZfieldvaluesÚallÚar   r   r   r   n   s    
c                 C   sf   ddddddddg| d	  | d
 ddddddddddddg| d d  | d | d | d | d |f S )Nz"%s, %02d %s %04d %02d:%02d:%02d %sZMonZTueZWedZThuZFriZSatZSuné   é   ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecé   r   é   é   é   r   )Ú	timetupleÚzoner   r   r   Ú_format_timetuple_and_zoneu   s&         ÿ
ÿ   úr;   Fc                 C   sR   | d krt   ¡ } |s|r,tj | tjj¡}ntj | ¡}|rH| ¡ }d}t||ƒS )NF)ÚtimeÚdatetimeZfromtimestampÚtimezoneÚutcZutcfromtimestampÚ
astimezoner   )ÚtimevalÚ	localtimeÚusegmtÚdtr   r   r   r   ~   s    c                 C   sV   |   ¡ }|r2| jd ks$| jtjjkr,tdƒ‚d}n| jd krBd}n
|  d¡}t||ƒS )Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)r9   Útzinfor=   r>   r?   Ú
ValueErrorÚstrftimer;   )rD   rC   Únowr:   r   r   r   r   ›   s    

c                 C   s^   t t ¡ d ƒ}t ¡ }t d¡}| d kr0d} nd|  } |d krHt ¡ }d|||| |f }|S )Néd   é@   r   Ú.z<%d.%d.%d%s@%s>)Úintr<   ÚosÚgetpidÚrandomZgetrandbitsÚsocketZgetfqdn)ZidstringZdomainrA   ÚpidZrandintZmsgidr   r   r   r	   ®   s    

c                 C   sN   t | ƒ�^ }}|d kr(tj|d d… Ž S tj|d d… dt tj|d�¡iŽS )Nr3   rE   ©Úseconds)r   r=   r>   Ú	timedelta)ÚdataZdtupleÚtzr   r   r   r   Å   s    ÿc                 C   s   t | ƒj}|sdS |d S )N)r   r   r   )r/   r0   )ZaddrZaddrsr   r   r   r   Í   s    
c                 C   s`   t | ƒdkr\|  d¡r<|  d¡r<| dd…  dd¡ dd¡S |  d¡r\|  d¡r\| dd… S | S )	Nr5   r$   éÿÿÿÿz\\ú\z\"ú<ú>)ÚlenÚ
startswithÚendswithr   )r&   r   r   r   r   Û   s    c                 C   s&   |   td¡}t|ƒdkr"d d | fS |S )Nr4   )ÚsplitÚTICKr[   )r   Úpartsr   r   r   r   ç   s    
c                 C   sD   t jj| d|pdd�} |d kr*|d kr*| S |d kr6d}d||| f S )Nr   r#   )ZsafeÚencodingz%s'%s'%s)ÚurllibÚparser   )r   r+   Úlanguager   r   r   r   ï   s    z&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c                 C   sl  | d d … } g }i }|   d¡\}}| ||f¡ | r¾|   d¡\}}| d¡rRd}nd}t|ƒ}t |¡}|r¦| dd¡\}}|d k	rŒt|ƒ}| |g ¡ |||f¡ q0| |dt	|ƒ f¡ q0|�rh| 
¡ D ]š\}}g }d}	| ¡  |D ].\}}
}|�rtjj|
dd	�}
d}	| |
¡ qèt	t |¡ƒ}|	�rTt|ƒ\}}}| |||d| ff¡ qÌ| |d| f¡ qÌ|S )
Nr   Ú*TFr,   Únumz"%s"zlatin-1)ra   )ÚpopÚappendr]   r   Úrfc2231_continuationÚmatchÚgrouprL   Ú
setdefaultr   ÚitemsÚsortrb   rc   ÚEMPTYSTRINGr.   r   )ZparamsZ
new_paramsZrfc2231_paramsr,   ÚvalueZencodedZmorf   ZcontinuationsZextendedr   r+   rd   r   r   r   r     sD    

r   úus-asciic                 C   sn   t | tƒrt| ƒdkrt| ƒS | \}}}|d kr4|}t|dƒ}zt|||ƒW S  tk
rh   t|ƒ Y S X d S )Nr6   zraw-unicode-escape)r%   Útupler[   r   Úbytesr&   ÚLookupError)rp   ÚerrorsZfallback_charsetr+   rd   ÚtextZrawbytesr   r   r   r   9  s    

rW   c           	      C   s  | d krt j  t jj¡ ¡ S | jd k	r.|  ¡ S |  ¡ d d… |f }t |¡}t 	|¡}z t j
|jd�}t  ||j¡}W n€ tk
rø   | t j t |¡d d… Ž  }tjo²|jdk}|r¾tjntj }|t j
|d�krêt  |tj| ¡}n
t  |¡}Y nX | j|d�S )NrW   rR   r3   r   )rE   )r=   rH   r>   r?   r@   rE   r9   r<   ÚmktimerB   rT   Ú	tm_gmtoffÚtm_zoneÚAttributeErrorÚgmtimeÚdaylightÚtm_isdstÚaltzoneÚtznamer   )	rD   ZisdstZtmrS   ZlocaltmZdeltarV   ZdstZgmtoffr   r   r   rB   S  s$    


rB   )r   )NFF)F)NN)NN)r   rq   )NrW   )-Ú__all__rM   Úrer<   rO   rP   r=   Zurllib.parserb   Zemail._parseaddrr   r   r/   r
   r   r   r   Zemail.charsetr   r-   ro   ZUEMPTYSTRINGZCRLFr_   Úcompiler'   r)   r   r"   r   r   r;   r   r   r	   r   r   r   r   r   ÚASCIIri   r   r   rB   r   r   r   r   Ú<module>   sn   ñ


"	



ÿ8  ÿ
