a 9ziYH@sgdZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl mZmZmZddlmZdZd Zd Zd Zd Zed Zed ZdZdaddZddZddZddZ dEddZ!ddZ"ddZ#dZ$ddd d!Z%d"d#Z&d$d%Z'd&d'Z(d(d)Z)dFd+d,Z*dGd-d.Z+dHd/d0Z,d1d2Z-ddd3d4Z.d5d6Z/d7d8Z0dId9d:Z1ed;ej2Z3d@,:;".]z[\\"]z/etc/python/email.cfgcCstdurtatSN)_cached_strict_addr_parsing_use_strict_email_parsing_implrr#/usr/lib64/python3.9/email/utils.py_use_strict_email_parsing7srcCsttjd}|rdSz tt}Wnty6YnV0|@ddl}|jddd}| ||j dddd}Wdn1s0Y|rdSdS) NZ(PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSINGFr)#)Z interpolationZcomment_prefixesZemail_addr_parsing)fallbackT) boolosenvirongetopen_EMAIL_CONFIG_FILEFileNotFoundError configparser ConfigParserZ read_fileZ getboolean)disabledfiler&Zconfigrrrr?s$   .rcCs(z|WdSty"YdS0dS)NFT)encodeUnicodeEncodeError)srrr_has_surrogates\s  r-cCs|dd}|ddS)Nutf-8surrogateescapereplace)r*decode)stringZoriginal_bytesrrr _sanitizeis r3r.cCs|\}}|d|rz|dWn:ty^t|trDt|}||}d||fYS0d}t|rrd}t d|}d||||fS|S)Nasciiz%s <%s>r"z\\\g<0>z %s%s%s <%s>) r*r+ isinstancestrrZ header_encode specialsresearch escapesresub)ZpaircharsetnameaddressZ encoded_nameZquotesrrrrus       rccs\d}d}t|D]8\}}|r0|d|fVd}q|dkr>d}q||fVq|rX|dfVdS)NrF\T) enumerate)addrposescapechrrr_iter_escaped_charss rEcCsd|vr |Sd}d}g}t|D]D\}}|dkr |dur>|}q ||krX|||||d}d}q |t|kr|||dd|S)Nr5rr)rEappendlenjoin)rAstartZopen_posresultrBrDrrr_strip_quoted_realnamess  rLT)strictcCs|dkrt}|s4tdd|D}t|}|jSdd|D}t|}t|}t|}t|j}d}|D]}t|}|d|d7}qnt ||krdgS|S) Ncss|]}t|VqdSrr7.0vrrr zgetaddresses..cSsg|] }t|qSrrNrOrrr rSz getaddresses..rrF,rr) r COMMASPACErI _AddressList addresslist_pre_parse_validation_post_parse_validationrLcountrH)Z fieldvaluesrMallarArKnrQrrrrs$     rcCsVt|}d}t|D]8\}}|dkr.|d7}q|dkr|d8}|dkrdSq|dkS)Nr(rF)F)rLrE)rAZopensrBrDrrr_check_parenthesiss rbcCs(g}|D]}t|sd}||q|S)Nz('', ''))rbrG)Zemail_header_fieldsaccepted_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) ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecrFrr) timetuplezonerrr_format_timetuple_and_zones rlFcCsR|durt}|s|r,tj|tjj}n tj|}|rH|}d}t||S)NF)timedatetimeZ fromtimestamptimezoneutcZutcfromtimestamp astimezoner)timeval localtimeusegmtdtrrrrs rcCsV|}|r2|jdus$|jtjjkr,tdd}n|jdurBd}n |d}t||S)Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)rjtzinfornrorp ValueErrorstrftimerl)rurtnowrkrrrr<s  rcCs^ttd}t}td}|dur0d}nd|}|durHt}d|||||f}|S)Nd@r.z<%d.%d.%d%s@%s>)intrmr getpidrandom getrandbitssocketgetfqdn)ZidstringdomainrrpidrandintZmsgidrrrr Os  r cCsNt|^}}|dur(tj|ddStj|dddttj|diS)Nrervseconds)rrnro timedelta)dataZdtupletzrrrrfs rcCs|dkrt}|s,t|j}|s$dS|dSt|tr>|d}t|tsLdSt|gd}tt|j}|rxt|dkr|dS|dS)NrVrrF) rrXrYr6listr7rZr[rH)rArMaddrsrrrr ns    r cCs`t|dkr\|dr<|dr<|ddddddS|dr\|dr\|ddS|S) NrFr5z\\r?z\"<>)rH startswithendswithr0rNrrrrs   rcCs&|td}t|dkr"dd|fS|S)Nrf)splitTICKrH)r,partsrrrrs   rcCsDtjj|d|pdd}|dur*|dur*|S|dur6d}d|||fS)Nrr4)safeencodingz%s'%s'%s)urllibparser)r,r<languagerrrrs rz&^(?P\w+)\*((?P[0-9]+)\*?)?$c Cs@|dg}i}|ddD]x\}}|d}t|}t|}|r||dd\}}|durbt|}||g|||fq||dt|fq|r<| D]\}}g}d} | |D],\}} }|rt j j| dd } d } || qtt |}| r(t|\} } }||| | d|ffq||d|fq|S) NrrF*r=numz"%s"Fzlatin-1)rT)rrrfc2231_continuationmatchgroupr} setdefaultrGritemssortrr EMPTYSTRINGrIr) params new_paramsZrfc2231_paramsr=valueencodedmorZ continuationsZextendedr,r<rrrrrs8    rr0us-asciicCslt|trt|dkrt|S|\}}}|dur4|}t|d}zt|||WStyft|YS0dS)Nrgzraw-unicode-escape)r6tuplerHrbytesr7 LookupError)rerrorsZfallback_charsetr<rtextZrawbytesrrrrs   rrc Cs|durtjtjjS|jdur.|S|dd|f}t|}t |}z tj |j d}t||j }Wn~t y|tjt|dd}tjo|jdk}|rtjntj }|tj |dkrt|tj|}n t|}Yn0|j|dS)Nrrrer)rv)rnryrorprqrvrjrmmktimersr tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer0) ruZisdstZtmrZlocaltmZdeltardstZgmtoffrrrrss$    rs)r.)NFF)F)NN)NN)r0r)Nr)7__all__r rermrrrn urllib.parserZemail._parseaddrrrrXr r r rZ email.charsetrrWrZ UEMPTYSTRINGZCRLFrcompiler8r:r$rrrr-r3rrErLZsupports_strict_parsingrrbrZr[rlrrr rr rrrASCIIrrrrsrrrrsd        !1     $  0