<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
a
    XC?hB                     @   s  g d 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d@ddZdd Zdd ZdZ ddddZ!dd Z"dd  Z#d!d" Z$d#d$ Z%dAd&d'Z&dBd(d)Z'dCd*d+Z(d,d- Z)ddd.d/Z*d0d1 Z+d2d3 Z,dDd4d5Z-ed6ej.Z/d7d8 Z0dEd;d<Z1dFd>d?Z2dS )G)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y"   Y dS 0 d S )NFT)encodeUnicodeEncodeError)s r   0/opt/alt/python39/lib64/python3.9/email/utils.py_has_surrogates4   s
    r   c                 C   s   |  dd}|ddS )Nutf-8surrogateescapereplace)r   decode)stringZoriginal_bytesr   r   r   	_sanitizeA   s    r"   r   c                 C   s   | \}}| d |rz| d W n: ty^   t|trDt|}||}d||f  Y S 0 d}t|rrd}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   M   s     



r   c                 c   s\   d}d}t | D ]8\}}|r0|d| fV  d}q|dkr>d}q||fV  q|rX|dfV  d S )Nr   F\T)	enumerate)addrposescapechr   r   r   _iter_escaped_charsn   s    r3   c                 C   s   d| vr| S d}d }g }t | D ]D\}}|dkr |d u r>|}q ||krX|| ||  |d }d }q |t| k r|| |d   d|S )Nr$   r      r   )r3   appendlenjoin)r/   startZopen_posresultr0   r2   r   r   r   _strip_quoted_realnames}   s     r:   T)strictc                C   s   |s&t dd | D }t|}|jS dd | D } t| } t | }t|}t|j}d}| D ]}t|}|d|d 7 }q`t||krdgS |S )	Nc                 s   s   | ]}t |V  qd S )Nr&   .0vr   r   r   	<genexpr>       zgetaddresses.<locals>.<genexpr>c                 S   s   g | ]}t |qS r   r<   r=   r   r   r   
<listcomp>   rA   z getaddresses.<locals>.<listcomp>r   r4   ,r   r   )	
COMMASPACEr7   _AddressListaddresslist_pre_parse_validation_post_parse_validationr:   countr6   )Zfieldvaluesr;   allar/   r9   nr?   r   r   r   r      s     

r   c                 C   sV   t | } d}t| D ]8\}}|dkr.|d7 }q|dkr|d8 }|dk r dS q|dkS )Nr   (r4   )F)r:   r3   )r/   Zopensr0   r2   r   r   r   _check_parenthesis   s    
rP   c                 C   s(   g }| D ]}t |sd}|| q|S )Nz('', ''))rP   r5   )Zemail_header_fieldsaccepted_valuesr?   r   r   r   rH      s    rH   c                 C   s,   g }| D ]}d|d v rd}| | q|S )N[r4   rD   )r5   )Zparsed_email_header_tuplesrQ   r?   r   r   r   rI      s    rI   c              	   C   sH   dg d| d  | d g d| d d  | d | d | d	 | d
 |f S )Nz"%s, %02d %s %04d %02d:%02d:%02d %s)ZMonZTueZWedZThuZFriZSatZSun      )ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecr4   r            r   )	timetuplezoner   r   r   _format_timetuple_and_zone   s    
rZ   Fc                 C   sR   | d u 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    r   c                 C   sV   |   }|r2| jd u s$| jtjjkr,tdd}n| jd u rBd}n
| d}t||S )Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)rX   tzinfor\   r]   r^   
ValueErrorstrftimerZ   )rc   rb   nowrY   r   r   r   r     s    

r   c                 C   s^   t t d }t }td}| d u r0d} nd|  } |d u rHt }d|||| |f }|S )Nd   @   r   .z<%d.%d.%d%s@%s>)intr[   osgetpidrandomZgetrandbitssocketZgetfqdn)ZidstringZdomainr`   pidZrandintZmsgidr   r   r   r	   "  s    

r	   c                 C   sN   t | ^ }}|d u r(tj|d d  S tj|d d dttj|diS )NrS   rd   seconds)r   r\   r]   	timedelta)dataZdtupletzr   r   r   r   9  s    r   c                C   sv   |st | j}|sdS |d S t| tr0| d } t| ts>dS t| gd } tt | j}|rjt|dkrndS |d S )NrD   r   r4   )rF   rG   r%   listr&   rH   rI   r6   )r/   r;   Zaddrsr   r   r   r   A  s    	


r   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 )	Nr4   r$   z\\r-   z\"<>)r6   
startswithendswithr   r<   r   r   r   r   `  s    r   c                 C   s&   |  td}t|dkr"d d | fS |S )NrT   )splitTICKr6   )r   partsr   r   r   r   l  s    
r   c                 C   sD   t jj| d|pdd} |d u r*|d u r*| S |d u r6d}d||| f S )Nr   r#   )Zsafeencodingz%s'%s'%s)urllibparser   )r   r+   languager   r   r   r   t  s    r   z&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c                 C   s@  | d g}i }| dd  D ]x\}}| d}t|}t|}|r||dd\}}|d urbt|}||g |||f q||dt| f q|r<|	 D ]\}}g }d}	|
  |D ],\}}
}|rtjj|
dd	}
d
}	||
 qtt|}|	r(t|\}}}||||d| ff q||d| f q|S )Nr   r4   *r,   numz"%s"Fzlatin-1)r   T)r{   r   rfc2231_continuationmatchgrouprk   
setdefaultr5   r   itemssortr   r   EMPTYSTRINGr7   r   )params
new_paramsZrfc2231_paramsr,   valueZencodedZmor   ZcontinuationsZextendedr   r+   r   r   r   r   r     s8    


r   r   us-asciic                 C   sl   t | trt| dkrt| S | \}}}|d u r4|}t|d}zt|||W S  tyf   t| Y S 0 d S )NrU   zraw-unicode-escape)r%   tupler6   r   bytesr&   LookupError)r   errorsZfallback_charsetr+   r   textZrawbytesr   r   r   r     s    

r   rw   c           	      C   s  | d u rt j t jj S | jd ur.|  S |  d d |f }t|}t	|}z t j
|jd}t ||j}W n~ ty   | t j t|d d   }tjo|jdk}|rtjntj }|t j
|dkrt |tj| }n
t |}Y n0 | j|dS )Nrw   rq   rS   r   )rd   )r\   rg   r]   r^   r_   rd   rX   r[   mktimera   rs   	tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer   )	rc   ZisdstZtmrr   ZlocaltmZdeltaru   ZdstZgmtoffr   r   r   ra     s$    


ra   )r   )NFF)F)NN)NN)r   r   )Nrw   )3__all__rl   rer[   rn   ro   r\   Zurllib.parser   Zemail._parseaddrr   r   rF   r
   r   r   r   Zemail.charsetr   rE   r   ZUEMPTYSTRINGZCRLFr}   compiler'   r)   r   r"   r   r3   r:   Zsupports_strict_parsingr   rP   rH   rI   rZ   r   r   r	   r   r   r   r   r   ASCIIr   r   r   ra   r   r   r   r   <module>   s\   


!,
	



0  
