JFIF$        dd7 

Viewing File: /usr/lib64/python3.9/email/__pycache__/utils.cpython-39.opt-2.pyc

a

�DiYH�@s�gd�ZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddl	m
Z
ddl	mZmZmZddlmZdZd	Zd	Zd
ZdZe�d�Ze�d
�ZdZdadd�Zdd�Zdd�Zdd�Z dEdd�Z!dd�Z"dd�Z#dZ$dd�d d!�Z%d"d#�Z&d$d%�Z'd&d'�Z(d(d)�Z)dFd+d,�Z*dGd-d.�Z+dHd/d0�Z,d1d2�Z-dd�d3d4�Z.d5d6�Z/d7d8�Z0dId9d:�Z1e�d;ej2�Z3d<d=�Z4dJd@dA�Z5dKdCdD�Z6dS)L)�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[\\"]z/etc/python/email.cfgcCstdurt�atS�N)�_cached_strict_addr_parsing�_use_strict_email_parsing_impl�rr�#/usr/lib64/python3.9/email/utils.py�_use_strict_email_parsing7srcCs�ttj�d��}|rdSztt�}Wnty6YnV0|�@ddl}|jddd�}|�	|�|j
dddd�}Wd�n1s�0Y|r�dSdS)	NZ(PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSINGFr)�#)Z
interpolationZcomment_prefixesZemail_addr_parsing)�fallbackT)�bool�os�environ�get�open�_EMAIL_CONFIG_FILE�FileNotFoundError�configparser�ConfigParserZ	read_fileZ
getboolean)�disabled�filer&Zconfigrrrr?s$�
.rcCs(z|��WdSty"YdS0dS)NFT)�encode�UnicodeEncodeError)�srrr�_has_surrogates\s
r-cCs|�dd�}|�dd�S)N�utf-8�surrogateescape�replace)r*�decode)�stringZoriginal_bytesrrr�	_sanitizeisr3r.cCs�|\}}|�d�|r�z|�d�Wn:ty^t|t�rDt|�}|�|�}d||fYS0d}t�|�rrd}t�	d|�}d||||fS|S)N�asciiz%s <%s>r�"z\\\g<0>z%s%s%s <%s>)
r*r+�
isinstance�strrZ
header_encode�
specialsre�search�	escapesre�sub)Zpair�charset�name�addressZencoded_nameZquotesrrrrus 




rccs\d}d}t|�D]8\}}|r0|d|fVd}q|dkr>d}q||fVq|rX|dfVdS)NrF�\T)�	enumerate)�addr�pos�escape�chrrr�_iter_escaped_chars�srEcCs�d|vr|Sd}d}g}t|�D]D\}}|dkr |dur>|}q ||krX|�|||��|d}d}q |t|�kr�|�||d��d�|�S)Nr5r�r)rE�append�len�join)rA�startZopen_pos�resultrBrDrrr�_strip_quoted_realnames�s rLT)�strictcCs�|dkrt�}|s4t�dd�|D��}t|�}|jSdd�|D�}t|�}t�|�}t|�}t|j�}d}|D]}t|�}|d|�d�7}qnt	|�|kr�dgS|S)	Ncss|]}t|�VqdSr�r7��.0�vrrr�	<genexpr>��zgetaddresses.<locals>.<genexpr>cSsg|]}t|��qSrrNrOrrr�
<listcomp>�rSz getaddresses.<locals>.<listcomp>rrF�,�rr)
r�
COMMASPACErI�_AddressList�addresslist�_pre_parse_validation�_post_parse_validationrL�countrH)ZfieldvaluesrM�all�arArK�nrQrrrr�s$

rcCsVt|�}d}t|�D]8\}}|dkr.|d7}q|dkr|d8}|dkrdSq|dkS)Nr�(rF�)F)rLrE)rAZopensrBrDrrr�_check_parenthesis�s
rbcCs(g}|D]}t|�sd}|�|�q|S)Nz('', ''))rbrG)Zemail_header_fields�accepted_valuesrQrrrrZsrZcCs,g}|D]}d|dvrd}|�|�q|S)N�[rFrV)rG)Zparsed_email_header_tuplesrcrQrrrr[
sr[c	CsHdgd�|d|dgd�|dd|d|d|d	|d
|fS)Nz"%s, %02d %s %04d %02d:%02d:%02d %s)ZMonZTueZWedZThuZFriZSatZSun��)ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecrFr���r)�	timetuple�zonerrr�_format_timetuple_and_zones
��rlFcCsR|durt��}|s|r,tj�|tjj�}ntj�|�}|rH|��}d}t||�S)NF)�time�datetimeZ
fromtimestamp�timezone�utcZutcfromtimestamp�
astimezoner)�timeval�	localtime�usegmt�dtrrrrsrcCsV|��}|r2|jdus$|jtjjkr,td��d}n|jdurBd}n
|�d�}t||�S)Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)rj�tzinfornrorp�
ValueError�strftimerl)rurt�nowrkrrrr<s

rcCs^tt��d�}t��}t�d�}|dur0d}nd|}|durHt��}d|||||f}|S)N�d�@r�.z<%d.%d.%d%s@%s>)�intrmr �getpid�random�getrandbits�socket�getfqdn)Zidstring�domainrr�pid�randintZmsgidrrrr	Os

r	cCsNt|��^}}|dur(tj|dd��Stj|dd�dt�tj|d��i�S)Nrerv��seconds)rrnro�	timedelta)�dataZdtuple�tzrrrrfs�rcCs�|dkrt�}|s,t|�j}|s$dS|dSt|t�r>|d}t|t�sLdSt|g�d}tt|�j�}|rxt|�dkr|dS|dS)NrVrrF)	rrXrYr6�listr7rZr[rH)rArM�addrsrrrrns 


rcCs`t|�dkr\|�d�r<|�d�r<|dd��dd��dd�S|�d�r\|�d�r\|dd�S|S)	NrFr5���z\\r?z\"�<�>)rH�
startswith�endswithr0rNrrrr�srcCs&|�td�}t|�dkr"dd|fS|S)Nrf)�split�TICKrH)r,�partsrrrr�s
rcCsDtjj|d|pdd�}|dur*|dur*|S|dur6d}d|||fS)Nrr4)�safe�encodingz%s'%s'%s)�urllib�parser)r,r<�languagerrrr�srz&^(?P<name>\w+)\*((?P<num>[0-9]+)\*?)?$c
Cs@|dg}i}|dd�D]x\}}|�d�}t|�}t�|�}|r||�dd�\}}|durbt|�}|�|g��|||f�q|�|dt|�f�q|�r<|�	�D]�\}}g}d}	|�
�|D],\}}
}|r�tjj|
dd	�}
d
}	|�|
�q�tt
�|��}|	�r(t|�\}}}|�|||d|ff�q�|�|d|f�q�|S)NrrF�*r=�numz"%s"Fzlatin-1)r�T)r�r�rfc2231_continuation�match�groupr}�
setdefaultrGr�items�sortr�r��EMPTYSTRINGrIr)
�params�
new_paramsZrfc2231_paramsr=�value�encoded�mor�Z
continuationsZextendedr,r<r�rrrr�s8


rr0�us-asciicCslt|t�rt|�dkrt|�S|\}}}|dur4|}t|d�}zt|||�WStyft|�YS0dS)Nrgzraw-unicode-escape)r6�tuplerHr�bytesr7�LookupError)r��errorsZfallback_charsetr<r��textZrawbytesrrrr�s

rr�c	Cs|durtj�tjj���S|jdur.|��S|��dd�|f}t�|�}t�	|�}z tj
|jd�}t�||j�}Wn~t
y�|tjt�|�dd��}tjo�|jdk}|r�tjntj}|tj
|d�kr�t�|tj|�}n
t�|�}Yn0|j|d�S)Nr�r�rer)rv)rnryrorprqrvrjrm�mktimersr��	tm_gmtoff�tm_zone�AttributeError�gmtime�daylight�tm_isdst�altzone�tznamer0)	ruZisdstZtmr�ZlocaltmZdeltar��dstZgmtoffrrrrss$


rs)r.)NFF)F)NN)NN)r0r�)Nr�)7�__all__r �rermrr�rn�urllib.parser�Zemail._parseaddrrrrXr
rr
rZ
email.charsetrrWr�ZUEMPTYSTRINGZCRLFr��compiler8r:r$rrrr-r3rrErLZsupports_strict_parsingrrbrZr[rlrrr	rrrrr�ASCIIr�rrrsrrrr�<module>sd



!1
	


$
�0�

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg