$81 GRAYBYTE WORDPRESS FILE MANAGER $77

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.160.161 | ADMIN IP 216.73.216.86
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python310/lib64/python3.10/email/__pycache__/

HOME
Current File : /opt/alt/python310/lib64/python3.10/email/__pycache__//_header_value_parser.cpython-310.opt-2.pyc
o

0�iҧ�	@s�	ddlZddlZddlZddlmZddlmZddlmZ	ddlm
Z
ddlmZed�Z
e
ed�BZed	�Zee
BZeed
�Zeed�Zeed�Bed
�Zee
BZeed
�BZee
BZeed�ZddhZeeBZdd�Zdd�Zdd�Ze�dejejB�Z Gdd�de!�Z"Gdd�de"�Z#Gdd�de"�Z$Gdd�de"�Z%Gd d!�d!e"�Z&Gd"d#�d#e#�Z'Gd$d%�d%e"�Z(Gd&d'�d'e"�Z)Gd(d)�d)e"�Z*Gd*d+�d+e"�Z+Gd,d-�d-e+�Z,Gd.d/�d/e#�Z-Gd0d1�d1e"�Z.Gd2d3�d3e"�Z/Gd4d5�d5e"�Z0Gd6d7�d7e"�Z1Gd8d9�d9e"�Z2Gd:d;�d;e"�Z3Gd<d=�d=e"�Z4Gd>d?�d?e"�Z5Gd@dA�dAe"�Z6GdBdC�dCe"�Z7GdDdE�dEe"�Z8GdFdG�dGe"�Z9GdHdI�dIe"�Z:GdJdK�dKe"�Z;GdLdM�dMe"�Z<GdNdO�dOe"�Z=GdPdQ�dQe%�Z>GdRdS�dSe"�Z?GdTdU�dUe"�Z@GdVdW�dWe"�ZAGdXdY�dYe"�ZBGdZd[�d[eB�ZCGd\d]�d]e"�ZDGd^d_�d_e"�ZEGd`da�dae"�ZFGdbdc�dce"�ZGGddde�dee"�ZHGdfdg�dgeH�ZIGdhdi�dieH�ZJGdjdk�dke"�ZKGdldm�dme"�ZLGdndo�doe"�ZMGdpdq�dqeM�ZNGdrds�dseN�ZOGdtdu�due"�ZPGdvdw�dweQ�ZRGdxdy�dyeR�ZSGdzd{�d{eR�ZTGd|d}�d}eS�ZUGd~d�de
jV�ZWeTd
d��ZXeTd�d��ZYeTd�d��ZZe�d��[d��\e
���j]Z^e�d��[e�_d��\e����j`Zae�d��jbZce�d��[e�_d��\e����j`Zde�d��[e�_d��\e����j`Zee�d��[e�_d��\e����j`Zfd�d��Zgd�d��Zhd�d��Zid�d�d��Zjd�d��Zkd�d��Zld�d��Zmd�d��Znd�d��Zod�d��Zpd�d��Zqd�d��Zrd�d��Zsd�d��Ztd�d��Zud�d��Zvd�d��Zwd�d��Zxd�d��Zyd�d��Zzd�d��Z{d�d��Z|d�d��Z}d�d��Z~d�d��Zd�d��Z�d�d��Z�d�d��Z�d�dÄZ�d�dńZ�d�dDŽZ�d�dɄZ�d�d˄Z�d�d̈́Z�d�dτZ�d�dфZ�d�dӄZ�d�dՄZ�d�dׄZ�d�dلZ�d�dۄZ�d�d݄Z�d�d߄Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d�Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�dS)��N)�	hexdigits)�
itemgetter)�_encoded_words)�errors)�utilsz 	�(z
()<>@,:;.\"[]�.z."(z/?=z*'%�%�
�
cCs	t|��dd��dd�S)N�\�\\�"z\"��str�replace��value�r�A/opt/alt/python310/lib64/python3.10/email/_header_value_parser.py�make_quoted_pairscsrcCs"	t|��dd��dd��dd�S)Nrr
r�\(�)�\)rrrrr�make_parenthesis_pairshs�rcCst|�}d|�d�S)Nr)r)rZescapedrrr�quote_stringnsrz�
   =\?            # literal =?
   [^?]*          # charset
   \?             # literal ?
   [qQbB]         # literal 'q' or 'b', case insensitive
   \?             # literal ?
  .*?             # encoded word
  \?=             # literal ?=
cs�eZdZdZdZdZ�fdd�Zdd�Z�fdd�Ze	d	d
��Z
e	dd��Zd
d�Ze	dd��Z
e	dd��Zdd�Zddd�Zddd�Zddd�Z�ZS)�	TokenListNTcst�j|i|��g|_dS�N)�super�__init__�defects)�self�args�kw��	__class__rrr�s
zTokenList.__init__cC�d�dd�|D��S)N�cs��|]}t|�VqdSr�r��.0�xrrr�	<genexpr>���z$TokenList.__str__.<locals>.<genexpr>��join�r!rrr�__str__��zTokenList.__str__c�d�|jjt����S�Nz{}({})��formatr%�__name__r�__repr__r1r$rrr9�s
�zTokenList.__repr__cCr&)Nr'css�|]	}|jr|jVqdSrrr*rrrr-�s�z"TokenList.value.<locals>.<genexpr>r/r1rrrr��zTokenList.valuecCstdd�|D�|j�S)Ncs��|]}|jVqdSr)�all_defectsr*rrrr-���z(TokenList.all_defects.<locals>.<genexpr>)�sumr r1rrrr<�szTokenList.all_defectscCs|d��S�Nr)�startswith_fwsr1rrrr@��zTokenList.startswith_fwscCs	tdd�|D��S)Ncsr;r)�
as_ew_allowed)r+�partrrrr-�r=z*TokenList.as_ew_allowed.<locals>.<genexpr>)�allr1rrrrB�szTokenList.as_ew_allowedcCsg}|D]}|�|j�q|Sr)�extend�comments)r!rF�tokenrrrrF�szTokenList.commentscCst||d�S)N��policy)�_refold_parse_tree�r!rIrrr�fold�rAzTokenList.foldr'cCst|j|d��dS)N��indent)�print�ppstr�r!rNrrr�pprint�r3zTokenList.pprintcCsd�|j|d��S)Nr
rM)r0�_pprQrrrrP�szTokenList.ppstrccs|�d�||jj|j�V|D]}t|d�s|d�|�Vq|�|d�EdHq|jr3d�|j�}nd}d�||�VdS)Nz{}{}/{}(rSz*    !! invalid element in token list: {!r}z    z Defects: {}r'z{}){})r7r%r8�
token_type�hasattrrSr )r!rNrGZextrarrrrS�s ��
�z
TokenList._pp�r')r8�
__module__�__qualname__rT�syntactic_break�ew_combine_allowedrr2r9�propertyrr<r@rBrFrLrRrPrS�
__classcell__rrr$rr�s(





rc@s$eZdZedd��Zedd��ZdS)�WhiteSpaceTokenListcC�dS�N� rr1rrrr��zWhiteSpaceTokenList.valuecC�dd�|D�S)NcS�g|]
}|jdkr|j�qS)�comment)rT�contentr*rrr�
<listcomp>��z0WhiteSpaceTokenList.comments.<locals>.<listcomp>rr1rrrrF��zWhiteSpaceTokenList.commentsN)r8rWrXr[rrFrrrrr]�s

r]c@�eZdZdZdS)�UnstructuredTokenList�unstructuredN�r8rWrXrTrrrrrj��rjc@ri)�Phrase�phraseNrlrrrrrn�rmrnc@ri)�WordZwordNrlrrrrrp�rmrpc@ri)�CFWSList�cfwsNrlrrrrrq�rmrqc@ri)�Atom�atomNrlrrrrrs�rmrsc@�eZdZdZdZdS)�TokenrGFN)r8rWrXrTZencode_as_ewrrrrrv��rvc@seZdZdZdZdZdZdS)�EncodedWord�encoded-wordN)r8rWrXrT�cte�charset�langrrrrrx��
rxc@�4eZdZdZedd��Zedd��Zedd��ZdS)	�QuotedString�
quoted-stringcC�"|D]}|jdkr|jSqdS�N�bare-quoted-string�rTr�r!r,rrrre��


��zQuotedString.contentcCs>g}|D]}|jdkr|�t|��q|�|j�qd�|�S)Nr�r')rT�appendrrr0)r!�resr,rrr�quoted_value�s

zQuotedString.quoted_valuecCr�r�r��r!rGrrr�stripped_valuer�zQuotedString.stripped_valueN)r8rWrXrTr[rer�r�rrrrr�s

	rc@s$eZdZdZdd�Zedd��ZdS)�BareQuotedStringr�cCstd�dd�|D���S)Nr'csr(rr)r*rrrr-r.z+BareQuotedString.__str__.<locals>.<genexpr>)rr0r1rrrr2szBareQuotedString.__str__cCr&)Nr'csr(rr)r*rrrr-r.z)BareQuotedString.value.<locals>.<genexpr>r/r1rrrrr:zBareQuotedString.valueN)r8rWrXrTr2r[rrrrrr�s
r�c@s8eZdZdZdd�Zdd�Zedd��Zedd	��Zd
S)�Commentrdcs(d�tdg�fdd��D�dggg��S)Nr'rcsg|]}��|��qSr)�quoter*r1rrrfsz#Comment.__str__.<locals>.<listcomp>r)r0r>r1rr1rr2s��zComment.__str__cCs2|jdkr	t|�St|��dd��dd��dd�S)Nrdrr
rrrr)rTrr)r!rrrrr�"s
���z
Comment.quotecCr&)Nr'csr(rr)r*rrrr-+r.z"Comment.content.<locals>.<genexpr>r/r1rrrre)r:zComment.contentcCs|jgSr)rer1rrrrF-szComment.commentsN)	r8rWrXrTr2r�r[rerFrrrrr�s
r�c@r~)	�AddressListzaddress-listcCrb)NcS�g|]	}|jdkr|�qS)�address�rTr*rrrrf7�z)AddressList.addresses.<locals>.<listcomp>rr1rrr�	addresses5rhzAddressList.addressescC�tdd�|D�g�S)Ncs� �|]}|jdkr|jVqdS�r�N�rT�	mailboxesr*rrrr-;����z(AddressList.mailboxes.<locals>.<genexpr>�r>r1rrrr�9�
��zAddressList.mailboxescCr�)Ncsr�r��rT�
all_mailboxesr*rrrr-@r�z,AddressList.all_mailboxes.<locals>.<genexpr>r�r1rrrr�>r�zAddressList.all_mailboxesN)r8rWrXrTr[r�r�r�rrrrr�1s

r�c@r~)	�Addressr�cC�|djdkr|djSdS)Nr�group�rT�display_namer1rrrr�H�
�zAddress.display_namecCs4|djdkr|dgS|djdkrgS|djS�Nr�mailbox�invalid-mailboxr�r1rrrr�Ms


zAddress.mailboxescCs:|djdkr|dgS|djdkr|dgS|djSr�r�r1rrrr�Us



zAddress.all_mailboxesN)r8rWrXrTr[r�r�r�rrrrr�Ds

r�c@�(eZdZdZedd��Zedd��ZdS)�MailboxList�mailbox-listcCrb)NcSr�)r�r�r*rrrrfcr�z)MailboxList.mailboxes.<locals>.<listcomp>rr1rrrr�arhzMailboxList.mailboxescCrb)NcSsg|]	}|jdvr|�qS))r�r�r�r*rrrrfgs
�z-MailboxList.all_mailboxes.<locals>.<listcomp>rr1rrrr�erhzMailboxList.all_mailboxesN�r8rWrXrTr[r�r�rrrrr�]s
r�c@r�)�	GroupList�
group-listcC� |r	|djdkrgS|djS�Nrr�r�r1rrrr�o�
zGroupList.mailboxescCr�r�r�r1rrrr�ur�zGroupList.all_mailboxesNr�rrrrr�ks
r�c@r~)	�Groupr�cC�|djdkr	gS|djS�N�r�r�r1rrrr���
zGroup.mailboxescCr�r�r�r1rrrr��r�zGroup.all_mailboxescC�
|djSr?)r�r1rrrr���
zGroup.display_nameN)r8rWrXrTr[r�r�r�rrrrr�|s

r�c@�LeZdZdZedd��Zedd��Zedd��Zedd	��Zed
d��Z	dS)
�NameAddr�	name-addrcCst|�dkrdS|djS�N�r)�lenr�r1rrrr���
zNameAddr.display_namecCr��N�����
local_partr1rrrr��r�zNameAddr.local_partcCr�r���domainr1rrrr��r�zNameAddr.domaincCr�r�)�router1rrrr��r�zNameAddr.routecCr�r���	addr_specr1rrrr��r�zNameAddr.addr_specN�
r8rWrXrTr[r�r�r�r�r�rrrrr��s



r�c@s@eZdZdZedd��Zedd��Zedd��Zedd	��Zd
S)�	AngleAddrz
angle-addrcCr��N�	addr-spec)rTr�r�rrrr��r�zAngleAddr.local_partcCr�r��rTr�r�rrrr��r�zAngleAddr.domaincCr�)N�	obs-route)rT�domainsr�rrrr��r�zAngleAddr.routecCs<|D]}|jdkr|jr|jSt|j�|jSqdS)Nr�z<>)rTr�r�rr�rrrr��s

�zAngleAddr.addr_specN)	r8rWrXrTr[r�r�r�r�rrrrr��s


r�c@�eZdZdZedd��ZdS)�ObsRouter�cCrb)NcSrcr�r�r*rrrrf�rgz$ObsRoute.domains.<locals>.<listcomp>rr1rrrr��rhzObsRoute.domainsN)r8rWrXrTr[r�rrrrr���r�c@r�)
�Mailboxr�cCr��Nrr�r�r1rrrr��r�zMailbox.display_namecCr�r?r�r1rrrr��r�zMailbox.local_partcCr�r?r�r1rrrr��r�zMailbox.domaincCr�r�)rTr�r1rrrr��r�z
Mailbox.routecCr�r?r�r1rrrr��r�zMailbox.addr_specNr�rrrrr��s



r�c@s,eZdZdZedd��ZeZZZZ	dS)�InvalidMailboxr�cC�dSrrr1rrrr��razInvalidMailbox.display_nameNr�rrrrr��s

r�cs(eZdZdZdZe�fdd��Z�ZS)�Domainr�Fc�d�t�j���S�Nr'�r0rr�splitr1r$rrr��z
Domain.domain)r8rWrXrTrBr[r�r\rrr$rr��s
r�c@ri)�DotAtom�dot-atomNrlrrrrr�rmr�c@ru)�DotAtomTextz
dot-atom-textTN�r8rWrXrTrBrrrrr�rwr�c@ru)�
NoFoldLiteralzno-fold-literalFNr�rrrrr�rwr�c@sDeZdZdZdZedd��Zedd��Zedd��Zed	d
��Z	dS)�AddrSpecr�FcCr�r?r�r1rrrr�r�zAddrSpec.local_partcCst|�dkrdS|djS)N�r�)r�r�r1rrrr�r�zAddrSpec.domaincCs<t|�dkr|djS|dj��|dj|dj��S)Nr�rr�r�)r�r�rstrip�lstripr1rrrr$s
&zAddrSpec.valuecCsLt|j�}t|�t|t�krt|j�}n|j}|jdur$|d|jS|S)N�@)�setr�r��
DOT_ATOM_ENDSrr�)r!ZnamesetZlprrrr�*s

zAddrSpec.addr_specN)
r8rWrXrTrBr[r�r�rr�rrrrr�s


r�c@ru)�ObsLocalPartzobs-local-partFNr�rrrrr�6�r�cs4eZdZdZdZedd��Ze�fdd��Z�ZS)�DisplayNamezdisplay-nameFcCs�t|�}t|�dkr
|jS|djdkr|�d�n|ddjdkr/t|ddd��|d<|djdkr=|��|jS|ddjdkrRt|ddd��|d<|jS)Nrrrr�r�)rr�rrT�pop)r!r�rrrr�As�zDisplayName.display_namecs�d}|jrd}n|D]	}|jdkrd}q
t|�dkrM|rMd}}|djdks0|ddjdkr2d}|djdksB|ddjdkrDd}|t|j�|St�jS)	NFTr�rr'rrr`r�)r rTr�rr�rr)r!r�r,ZpreZpostr$rrrRs
�  zDisplayName.value)	r8rWrXrTrZr[r�rr\rrr$rr�<s
r�c@s,eZdZdZdZedd��Zedd��ZdS)�	LocalPartz
local-partFcCs"|djdkr|djS|djS)Nrr�)rTr�rr1rrrrks

zLocalPart.valuecCs�tg}t}d}|dtgD]J}|jdkrq|r.|jdkr.|djdkr.t|dd��|d<t|t�}|rM|jdkrM|djdkrM|�t|dd���n|�|�|d}|}qt|dd��}|jS)NFrrr�dotr�r�)�DOTrTr�
isinstancer�r)r!r�ZlastZ
last_is_tl�tokZis_tlrrrr�rs$


zLocalPart.local_partN)r8rWrXrTrBr[rr�rrrrr�fs
r�cs4eZdZdZdZe�fdd��Zedd��Z�ZS)�
DomainLiteralzdomain-literalFcr�r�r�r1r$rrr��r�zDomainLiteral.domaincCr�)N�ptextr�r�rrr�ip�r�zDomainLiteral.ip)	r8rWrXrTrBr[r�r�r\rrr$rr��sr�c@seZdZdZdZdZdS)�MIMEVersionzmime-versionN)r8rWrXrT�major�minorrrrrr��sr�c@s4eZdZdZdZdZdZedd��Zedd��Z	dS)	�	Parameter�	parameterF�us-asciicCs|jr|djSdSr�)�	sectioned�numberr1rrr�section_number�szParameter.section_numbercCsf|D].}|jdkr|jS|jdkr0|D]}|jdkr/|D]}|jdkr.|jSqqqdS)Nrr�r�r')rTr�r�rrr�param_value�s




��zParameter.param_valueN)
r8rWrXrTr��extendedr{r[r�r�rrrrr��s
r�c@ri)�InvalidParameter�invalid-parameterNrlrrrrr��sr�c@r�)�	Attribute�	attributecCs$|D]
}|j�d�r|jSqdS)N�attrtext)rT�endswithrr�rrrr��s

��zAttribute.stripped_valueN�r8rWrXrTr[r�rrrrr�r�rc@seZdZdZdZdS)�Section�sectionN)r8rWrXrTr�rrrrr�r�rc@r�)�ValuercCs2|d}|jdkr
|d}|j�d�r|jS|jS)Nrrrr�)r�rzextended-attribute)rTrr�rr�rrrr��s
�zValue.stripped_valueNrrrrrr�r�rc@s(eZdZdZdZedd��Zdd�ZdS)�MimeParameters�mime-parametersFccs��i}|D]*}|j�d�sq|djdkrq|dj��}||vr%g||<||�|j|f�q|��D]�\}}t|td�d�}|dd}|j	}|j
smt|�dkrm|dddkrm|ddj�t
�d��|dd�}g}d}|D]n\}	}
|	|kr�|
j
s�|
j�t
�d��qs|
j�t
�d��|d7}|
j}|
j
r�ztj�|�}Wnty�tjj|d	d
�}Yn(wz|�|d�}Wnttfy�|�dd�}Ynwt�|�r�|
j�t
���|�|�qsd
�|�}||fVq4dS)Nr�rr)�keyr�z.duplicate parameter name; duplicate(s) ignoredz+duplicate parameter name; duplicate ignoredz(inconsistent RFC2231 parameter numberingzlatin-1)�encoding�surrogateescaper�r')rTrr�stripr�r��items�sortedrr{r�r�r r�InvalidHeaderDefectr��urllib�parseZunquote_to_bytes�UnicodeEncodeErrorZunquote�decode�LookupErrorr�_has_surrogates�UndecodableBytesDefectr0)r!�paramsrG�name�partsZfirst_paramr{Zvalue_parts�ir��paramrrrrr�sh��
�
���

�zMimeParameters.paramscCsTg}|jD]\}}|r|�d�|t|���q|�|�qd�|�}|r(d|SdS)N�{}={}z; r`r')rr�r7rr0)r!rrrrrrr2,s
zMimeParameters.__str__N)r8rWrXrTrYr[rr2rrrrr	�s
Er	c@r�)�ParameterizedHeaderValueFcCs&t|�D]}|jdkr|jSqiS)Nr
)�reversedrTrr�rrrr=s


�zParameterizedHeaderValue.paramsN)r8rWrXrYr[rrrrrr7src@seZdZdZdZdZdZdS)�ContentTypezcontent-typeF�textZplainN)r8rWrXrTrB�maintype�subtyperrrrr!Er}r!c@seZdZdZdZdZdS)�ContentDispositionzcontent-dispositionFN)r8rWrXrTrB�content_dispositionrrrrr%L�r%c@seZdZdZdZdZdS)�ContentTransferEncodingzcontent-transfer-encodingFZ7bitN)r8rWrXrTrBrzrrrrr(Rr'r(c@ru)�HeaderLabelzheader-labelFNr�rrrrr)Xrwr)c@seZdZdZdZdd�ZdS)�MsgIDzmsg-idFcCst|�|jSr)r�lineseprKrrrrLarhz
MsgID.foldN)r8rWrXrTrBrLrrrrr*]sr*c@ri)�	MessageIDz
message-idNrlrrrrr,frmr,c@ri)�InvalidMessageIDzinvalid-message-idNrlrrrrr-jrmr-c@ri)�Header�headerNrlrrrrr.nrmr.csreZdZdZdZdZ�fdd�Z�fdd�Zdd�Ze	dd	��Z
d�fdd�	Zd
d�Ze	dd��Z
dd�Z�ZS)�TerminalTcst��||�}||_g|_|Sr)r�__new__rTr )�clsrrTr!r$rrr1|szTerminal.__new__cr4r5r6r1r$rrr9�szTerminal.__repr__cCst|jjd|j�dS)N�/)rOr%r8rTr1rrrrR�szTerminal.pprintcCs
t|j�Sr)�listr r1rrrr<�r�zTerminal.all_defectsr'c	s6d�||jj|jt���|jsd�gSd�|j��gS)Nz
{}{}/{}({}){}r'z {})r7r%r8rTrr9r rQr$rrrS�s�
�zTerminal._ppcCr�rrr1rrr�pop_trailing_ws�razTerminal.pop_trailing_wscCsgSrrr1rrrrF�razTerminal.commentscCst|�|jfSr)rrTr1rrr�__getnewargs__�szTerminal.__getnewargs__rV)r8rWrXrBrZrYr1r9rRr[r<rSr5rFr6r\rrr$rr0vs
	
r0c@� eZdZedd��Zdd�ZdS)�WhiteSpaceTerminalcCr^r_rr1rrrr�razWhiteSpaceTerminal.valuecCs|o|dtvSr?��WSPr1rrrr@�sz!WhiteSpaceTerminal.startswith_fwsN�r8rWrXr[rr@rrrrr8��
r8c@r7)�
ValueTerminalcCs|Srrr1rrrr�razValueTerminal.valuecCr^)NFrr1rrrr@��zValueTerminal.startswith_fwsNr;rrrrr=�r<r=c@r7)�EWWhiteSpaceTerminalcCr^r�rr1rrrr�razEWWhiteSpaceTerminal.valuecCr^r�rr1rrrr2�r>zEWWhiteSpaceTerminal.__str__N)r8rWrXr[rr2rrrrr?�r<r?c@seZdZdS)�_InvalidEwErrorN)r8rWrXrrrrr@�sr@r��,�list-separatorr�zroute-component-markerz([{}]+)r'z[^{}]+z[\x00-\x20\x7F]cCsD	t|�}|r|j�t�|��t�|�r |j�t�d��dSdS)Nz*Non-ASCII characters found in header token)�_non_printable_finderr r�rZNonPrintableDefectrrr)�xtextZnon_printablesrrr�_validate_xtext�s


��rEcCs�	t|d�^}}g}d}d}tt|��D]&}||dkr&|r#d}d}nd}q|r+d}n|||vr3n|�||�q|d}d�|�d�||d�g|�|fS)Nr�FrTr')�
_wsp_splitter�ranger�r�r0)r�endcharsZfragment�	remainderZvchars�escape�had_qp�posrrr�_get_ptext_to_endchars�s&$rMcCs0	|��}t|dt|�t|��d�}||fS)N�fws)r�r8r�)rZnewvaluerNrrr�get_fwssrO�vtextc	Cs�	t�}|�d�st�d�|���|dd��dd�^}}||dd�kr-t�d�|���d�|�}t|�dkrY|dtvrY|dtvrY|�	d�dkrY|�dd�^}}|d|}t|���dkrj|j
�t�d	��||_
d�|�}zt�d|d�\}}}	}
Wnttfy�td
�|j
���w||_|	|_|j
�|
�|r�|dtvr�t|�\}}|�|�q�t|d�^}}t||�}
t|
�|�|
�d�|�}|s�|r�|dtvr�|j
�t�d��||fS)N�=?z"expected encoded word but found {}r�z?=r�r'r�?zwhitespace inside encoded wordz!encoded word format invalid: '{}'z.missing trailing whitespace after encoded-word)rx�
startswithr�HeaderParseErrorr7r�r0r�r�countr r�rrz�_ewr�
ValueError�KeyErrorr@r{r|rEr:rOrFr=rE)rZ
terminal_typeZewr�rIZremstr�restr"r{r|r rG�charsrPrrr�get_encoded_wordsd
��

�

��



�
�r[cCsB	t�}|r�|dtvrt|�\}}|�|�qd}|�d�ruz	t|d�\}}Wnty3d}YnBtjy<Yn9wd}t	|�dkrW|dj
dkrW|j�t�d��d}|rot	|�d	kro|d
j
dkrot
|dd�|d<|�|�qt|d	�^}}|r�t�|�r�|�d�^}}t|d�}t|�|�|�d�|�}|s|S)
NrTrQZutextFr�rNz&missing whitespace before encoded wordr����ryr')rjr:rOr�rSr[r@rrTr�rTr rr?rF�rfc2047_matcher�search�	partitionr=rEr0)rrkrG�valid_ewZhave_wsr�rIrPrrr�get_unstructuredOsN

�
��



�)racC�,	t|d�\}}}t|d�}t|�||fS)Nz()r�)rMr8rE�rr��_rrr�get_qp_ctext�s

recCrb)Nrr�)rMr=rErcrrr�get_qcontent�s
	
rfcC�P	t|�}|st�d�|���|��}|t|�d�}t|d�}t|�||fS)Nzexpected atext but found '{}'�atext)�_non_atom_end_matcherrrTr7r�r�r=rE)r�mrhrrr�	get_atext�s�
rkcCsp	|ddkrt�d�|���t�}|dd�}|r+|ddkr+t|�\}}|�|�|r�|ddkr�|dtvr@t|�\}}nT|dd�dkr�d}zt|�\}}|j	�t�
d��d	}Wntjymt|�\}}Ynw|r�t|�dkr�|d
jdkr�|djd
kr�t
|d
d�|d
<nt|�\}}|�|�|r�|ddks3|s�|j	�t�
d��||fS||dd�fS)Nrrzexpected '"' but found '{}'r�r�rQFz!encoded word inside quoted stringTr�rNr\ryz"end of header inside quoted string)rrTr7r�rfr�r:rOr[r rr�rTr?)rZbare_quoted_stringrGr`rrr�get_bare_quoted_string�sP�

����
�
�rlcCs�	|r|ddkrt�d�|���t�}|dd�}|rO|ddkrO|dtvr/t|�\}}n|ddkr<t|�\}}nt|�\}}|�|�|rO|ddks"|s^|j	�t�
d��||fS||dd�fS)Nrrzexpected '(' but found '{}'r�rzend of header inside comment)rrTr7r�r:rO�get_commentrer�r r)rrdrGrrrrm�s*�
�
�rmcCs`	t�}|r,|dtvr,|dtvrt|�\}}nt|�\}}|�|�|r,|dtvs||fSr?)rq�CFWS_LEADERr:rOrmr�)rrrrGrrr�get_cfwss
�rocCsr	t�}|r|dtvrt|�\}}|�|�t|�\}}|�|�|r5|dtvr5t|�\}}|�|�||fSr?)rrnror�rl)rZ
quoted_stringrGrrr�get_quoted_strings


rpcCs�	t�}|r|dtvrt|�\}}|�|�|r'|dtvr't�d�|���|�d�rEzt	|�\}}WntjyDt
|�\}}Ynwt
|�\}}|�|�|rc|dtvrct|�\}}|�|�||fS)Nrzexpected atom but found '{}'rQ)rsrnror��	ATOM_ENDSrrTr7rSr[rk)rrtrGrrr�get_atom%s*
�
�

rrcCs�	t�}|r|dtvrt�d�|���|rB|dtvrBt|�\}}|�|�|r:|ddkr:|�t�|dd�}|rB|dtvs|dturRt�d�d|���||fS)Nrz8expected atom at a start of dot-atom-text but found '{}'rr�r�z4expected atom at end of dot-atom-text but found '{}')r�rqrrTr7rkr�r�)rZ
dot_atom_textrGrrr�get_dot_atom_text@s$�

�
�rscCs�	t�}|dtvrt|�\}}|�|�|�d�r3zt|�\}}Wntjy2t|�\}}Ynwt|�\}}|�|�|rQ|dtvrQt|�\}}|�|�||fS)NrrQ)	r�rnror�rSr[rrTrs)rZdot_atomrGrrr�get_dot_atomSs"

�

rtcCs�	|dtvrt|�\}}nd}|st�d��|ddkr$t|�\}}n|dtvr2t�d�|���t|�\}}|durC|g|dd�<||fS)Nrz5Expected 'atom' or 'quoted-string' but found nothing.rz1Expected 'atom' or 'quoted-string' but found '{}')rnrorrTrp�SPECIALSr7rr)r�leaderrGrrr�get_wordls$��rwcCs	t�}z
t|�\}}|�|�Wntjy$|j�t�d��Ynw|r|dtvr|ddkrH|�t�|j�t�	d��|dd�}n/zt|�\}}Wn!tjyq|dt
vrnt|�\}}|j�t�	d��n�Ynw|�|�|r|dtvs-||fS)Nzphrase does not start with wordrrzperiod in 'phrase'r�zcomment found without atom)rnrwr�rrTr r�PHRASE_ENDSr��ObsoleteHeaderDefectrnro)rrorGrrr�
get_phrase�s>

��

�
���
�rzcCsn	t�}d}|dtvrt|�\}}|st�d�|���zt|�\}}Wn-tjyQzt|�\}}WntjyN|ddkrI|dtvrI�t	�}YnwYnw|dur]|g|dd�<|�
|�|r�|ddksp|dtvr�tt|�|�\}}|j
dkr�|j�
t�d��n	|j�
t�d��||d<z|j�d�W||fSty�|j�
t�d��Y||fSw)	Nrz"expected local-part but found '{}'r�invalid-obs-local-partz<local-part is not dot-atom, quoted-string, or obs-local-partz,local-part is not a dot-atom (contains CFWS)�asciiz)local-part contains non-ASCII characters))r�rnrorrTr7rtrwrxrr��get_obs_local_partrrTr rryr�encoderZNonASCIILocalPartDefect)rr�rvrG�obs_local_partrrr�get_local_part�sV�
���


�
��
��r�cCs�	t�}d}|r�|ddks|dtvr�|ddkr3|r%|j�t�d��|�t�d}|dd�}q|ddkrU|�t|dd��|dd�}|j�t�d	��d}q|rg|d
jdkrg|j�t�d��z
t	|�\}}d}Wntj
y�|dtvr��t|�\}}Ynw|�|�|r�|ddks|dtvs|djdks�|djd
kr�|djdkr�|j�t�d��|d
jdks�|d
jd
kr�|djdkr�|j�t�d��|jr�d|_||fS)NFrrrzinvalid repeated '.'Tr��misplaced-specialz/'\' character outside of quoted-string/ccontentr�r�zmissing '.' between wordsrrz!Invalid leading '.' in local partr\z"Invalid trailing '.' in local partr{)
r�rxr r�rrr�r=rTrwrTrnro)rrZlast_non_ws_was_dotrGrrrr}�sh
�
�
�
��
�
�
�r}cCsB	t|d�\}}}t|d�}|r|j�t�d��t|�||fS)Nz[]r�z(quoted printable found in domain-literal)rMr=r r�rryrE)rr�rKrrr�	get_dtext
s

�r�cCs,|rdS|�t�d��|�tdd��dS)NFz"end of input inside domain-literal�]�domain-literal-endT)r�rrr=)r�domain_literalrrr�_check_for_early_dl_ends�r�cCsf	t�}|dtvrt|�\}}|�|�|st�d��|ddkr*t�d�|���|dd�}t||�r9||fS|�tdd��|dt	vrRt
|�\}}|�|�t|�\}}|�|�t||�rf||fS|dt	vrwt
|�\}}|�|�t||�r�||fS|ddkr�t�d�|���|�tdd	��|dd�}|r�|dtvr�t|�\}}|�|�||fS)
Nrzexpected domain-literal�[z6expected '[' at start of domain-literal but found '{}'r�zdomain-literal-startr�z4expected ']' at end of domain-literal but found '{}'r�)r�rnror�rrTr7r�r=r:rOr�)rr�rGrrr�get_domain_literal&sJ

�





�
r�cCst	t�}d}|dtvrt|�\}}|st�d�|���|ddkr<t|�\}}|dur3|g|dd�<|�|�||fSzt|�\}}WntjyTt	|�\}}Ynw|rb|ddkrbt�d��|durm|g|dd�<|�|�|r�|ddkr�|j
�t�d��|djdkr�|d|dd�<|r�|ddkr�|�t
�t	|d	d��\}}|�|�|r�|ddks�||fS)
Nrzexpected domain but found '{}'r�r�zInvalid Domainrz(domain is not a dot-atom (contains CFWS)r�r�)r�rnrorrTr7r�r�rtrrr ryrTr�)rr�rvrGrrr�
get_domainMsJ�
�


�

�r�cCs~	t�}t|�\}}|�|�|r|ddkr$|j�t�d��||fS|�tdd��t|dd��\}}|�|�||fS)Nrr�z#addr-spec local part with no domain�address-at-symbolr�)r�r�r�r rrr=r�)rr�rGrrr�
get_addr_specss

�
r�cCs�	t�}|rC|ddks|dtvrC|dtvr$t|�\}}|�|�n|ddkr5|�t�|dd�}|rC|ddks|dtvs|rK|ddkrSt�d�|���|�t�t	|dd��\}}|�|�|r�|ddkr�|�t�|dd�}|s}n3|dtvr�t|�\}}|�|�|ddkr�|�t�t	|dd��\}}|�|�|r�|ddkso|s�t�d��|ddkr�t�d�|���|�t
dd	��||dd�fS)
NrrAr�r�z(expected obs-route domain but found '{}'z%end of header while parsing obs-route�:z4expected ':' marking end of obs-route but found '{}'zend-of-obs-route-marker)r�rnror��
ListSeparatorrrTr7�RouteComponentMarkerr�r=)rZ	obs_routerGrrr�
get_obs_route�sL
��





�
�r�cCs�	t�}|dtvrt|�\}}|�|�|r|ddkr%t�d�|���|�tdd��|dd�}|ddkrT|�tdd��|j�t�	d��|dd�}||fSzt
|�\}}Wn7tjy�zt|�\}}|j�t�d	��Wntjy�t�d
�|���w|�|�t
|�\}}Ynw|�|�|r�|ddkr�|dd�}n	|j�t�	d��|�tdd��|r�|dtvr�t|�\}}|�|�||fS)Nr�<z"expected angle-addr but found '{}'zangle-addr-startr��>zangle-addr-endznull addr-spec in angle-addrz*obsolete route specification in angle-addrz.expected addr-spec or obs-route but found '{}'z"missing trailing '>' on angle-addr)
r�rnror�rrTr7r=r rr�r�ry)rZ
angle_addrrGrrr�get_angle_addr�sZ
�
�

���
�


�
r�cCs>	t�}t|�\}}|�|dd��|jdd�|_||fSr)r�rzrEr )rr�rGrrr�get_display_name�sr�cCs�	t�}d}|dtvrt|�\}}|st�d�|���|ddkrT|dtvr0t�d�|���t|�\}}|s@t�d�|���|durO|g|ddd�<d}|�|�t	|�\}}|dure|g|dd�<|�|�||fS)Nrz!expected name-addr but found '{}'r�)
r�rnrorrTr7rxr�r�r�)rZ	name_addrrvrGrrr�
get_name_addr�s8���

r�cCs�	t�}zt|�\}}Wn#tjy/zt|�\}}Wntjy,t�d�|���wYnwtdd�|jD��r=d|_|�	|�||fS)Nzexpected mailbox but found '{}'cs��|]	}t|tj�VqdSr)r�rrr*rrrr-���zget_mailbox.<locals>.<genexpr>r�)
r�r�rrTr�r7�anyr<rTr�)rr�rGrrr�get_mailboxs(�����
r�cCst	t�}|r6|d|vr6|dtvr#|�t|dd��|dd�}nt|�\}}|�|�|r6|d|vs||fS)Nrr�r�)r�rxr�r=rz)rrHZinvalid_mailboxrGrrr�get_invalid_mailbox��
�r�cCs�	t�}|r�|ddkr�z
t|�\}}|�|�Wn�tjy�d}|dtvrgt|�\}}|r7|ddvrF|�|�|j�t�d��nQt	|d�\}}|durX|g|dd�<|�|�|j�t�
d��n0|ddkrw|j�t�d��n t	|d�\}}|dur�|g|dd�<|�|�|j�t�
d��Ynw|r�|ddvr�|d}d|_t	|d�\}}|�|�|j�t�
d��|r�|ddkr�|�t
�|d	d�}|r�|ddks||fS)
Nr�;z,;zempty element in mailbox-listzinvalid mailbox in mailbox-listrAr�r�r�)r�r�r�rrTrnror ryr�rrTrEr�)rZmailbox_listrGrvr�rrr�get_mailbox_list.s`

�

�
�

���

�
�)r�cCs	t�}|s|j�t�d��||fSd}|rF|dtvrFt|�\}}|s7|j�t�d��|�|�||fS|ddkrF|�|�||fSt|�\}}t|j	�dkrn|dur\|�|�|�
|�|j�t�d��||fS|dury|g|dd�<|�|�||fS)Nzend of header before group-listrzend of header in group-listr�zgroup-list with empty entries)r�r r�rrrnror�r�r�rEry)rZ
group_listrvrGrrr�get_group_listgs@
�
�




�
r�cCs	t�}t|�\}}|r|ddkrt�d�|���|�|�|�tdd��|dd�}|rE|ddkrE|�tdd��||dd�fSt|�\}}|�|�|s\|j�t�	d��n|ddkrjt�d	�|���|�tdd��|dd�}|r�|dt
vr�t|�\}}|�|�||fS)
Nrr�z8expected ':' at end of group display name but found '{}'zgroup-display-name-terminatorr�r�zgroup-terminatorzend of header in groupz)expected ';' at end of group but found {})r�r�rrTr7r�r=r�r rrnro)rr�rGrrr�	get_group�s:�


��
r�cCsr	t�}zt|�\}}Wn#tjy/zt|�\}}Wntjy,t�d�|���wYnw|�|�||fS)Nzexpected address but found '{}')r�r�rrTr�r7r�)rr�rGrrr�get_address�s ����
r�c
Cs�	t�}|r�z
t|�\}}|�|�Wn�tjy�}z�d}|dtvret|�\}}|r2|ddkrA|�|�|j�t�d��nWt	|d�\}}|durS|g|dd�<|�t
|g��|j�t�d��n3|ddkru|j�t�d��n#t	|d�\}}|dur�|g|dd�<|�t
|g��|j�t�d��WYd}~nd}~ww|r�|ddkr�|dd}d|_t	|d�\}}|�
|�|j�t�d��|r�|�tdd��|d	d�}|s||fS)
NrrAz"address-list entry with no contentzinvalid address in address-listzempty element in address-listr�r�rBr�)r�r�r�rrTrnror ryr�r�rrTrEr=)rZaddress_listrG�errrvr�rrr�get_address_list�s`	

�
�
�
���

��)r�cCs�	t�}|st�d�|���|ddkrt�d�|���|�tdd��|dd�}t|�\}}|�|�|r=|ddkrEt�d�|���|�tdd	��||dd�fS)
Nz'expected no-fold-literal but found '{}'rr�z;expected '[' at the start of no-fold-literal but found '{}'zno-fold-literal-startr�r�z9expected ']' at the end of no-fold-literal but found '{}'zno-fold-literal-end)r�rrTr7r�r=r�)rZno_fold_literalrGrrr�get_no_fold_literal�s,��
�r�cCsr	t�}|r|dtvrt|�\}}|�|�|r|ddkr't�d�|���|�tdd��|dd�}zt|�\}}Wn,tjyizt	|�\}}|j
�t�d��Wntjyft�d�|���wYnw|�|�|rw|ddkr�|j
�t�d	��|r�|dd
kr�|�td
d��|dd�}||fS|�tdd��|dd�}zt|�\}}WnHtjy�zt
|�\}}Wn5tjy�}z(zt|�\}}|j
�t�d
��Wntjy�t�d�|���wWYd}~nd}~wwYnw|�|�|�r|dd
k�r|dd�}n	|j
�t�d��|�td
d��|�r5|dtv�r5t|�\}}|�|�||fS)Nrr�zexpected msg-id but found '{}'zmsg-id-startr�zobsolete id-left in msg-idz4expected dot-atom-text or obs-id-left but found '{}'r�zmsg-id with no id-rightr�z
msg-id-endr�zobsolete id-right in msg-idzFexpected dot-atom-text, no-fold-literal or obs-id-right but found '{}'zmissing trailing '>' on msg-id)r*rnror�rrTr7r=rsr}r ryrr�r�)rZmsg_idrG�errr�
get_msg_ids�
�

�����


�

��������

�
r�c
Cs�	t�}z
t|�\}}|�|�Wn(tjy9}zt|�}t|�}|j�t�d�	|���WYd}~|Sd}~ww|rH|j�t�d�	|���|S)NzInvalid msg-id: {!r}zUnexpected {!r})
r,r�r�rrTrar-r rr7)rZ
message_idrGZexrrr�parse_message_idYs&���
�r�cCs�	t�}|s|j�t�d��|S|dtvr-t|�\}}|�|�|s-|j�t�d��d}|rW|ddkrW|dtvrW||d7}|dd�}|rW|ddkrW|dtvs=|��sp|j�t�d�	|���|�t
|d��n
t|�|_|�t
|d	��|r�|dtvr�t|�\}}|�|�|r�|ddkr�|jdur�|j�t�d
��|r�|�t
|d��|S|�t
dd��|dd�}|r�|dtvr�t|�\}}|�|�|s�|jdur�|j�t�d
��|Sd}|�r|dtv�r||d7}|dd�}|�r|dtvs�|���s |j�t�d�	|���|�t
|d��n
t|�|_
|�t
|d	��|�rB|dtv�rBt|�\}}|�|�|�rV|j�t�d
��|�t
|d��|S)Nz%Missing MIME version number (eg: 1.0)rz0Expected MIME version number but found only CFWSr'rr�z1Expected MIME major version number but found {!r}rD�digitsz0Incomplete MIME version; found only major numberzversion-separatorz1Expected MIME minor version number but found {!r}z'Excess non-CFWS text after MIME version)r�r r�r�HeaderMissingRequiredValuernro�isdigitrr7r=�intr�r�)rZmime_versionrGr�rrr�parse_mime_versionus�
�

��
�



�


��

�


�r�cCst	t�}|r6|ddkr6|dtvr#|�t|dd��|dd�}nt|�\}}|�|�|r6|ddks||fS)Nrr�r�r�)r�rxr�r=rz)rZinvalid_parameterrGrrr�get_invalid_parameter�r�r�cCrg)Nzexpected ttext but found '{}'�ttext)�_non_token_end_matcherrrTr7r�r�r=rE)rrjr�rrr�	get_ttext���
r�cC�	t�}|r|dtvrt|�\}}|�|�|r'|dtvr't�d�|���t|�\}}|�|�|rE|dtvrEt|�\}}|�|�||fS�Nrzexpected token but found '{}')	rvrnror��
TOKEN_ENDSrrTr7r�)rZmtokenrGrrr�	get_token��
�

r�cCrg)Nz expected attrtext but found {!r}r)�_non_attribute_end_matcherrrTr7r�r�r=rE�rrjrrrr�get_attrtext�r�r�cCr�r�)	rrnror��ATTRIBUTE_ENDSrrTr7r��rrrGrrr�
get_attribute	r�r�cCrg)Nz)expected extended attrtext but found {!r}�extended-attrtext)�#_non_extended_attribute_end_matcherrrTr7r�r�r=rEr�rrr�get_extended_attrtext	s�
r�cCr�r�)	rrnror��EXTENDED_ATTRIBUTE_ENDSrrTr7r�r�rrr�get_extended_attribute1	s
�

r�cCs�	t�}|r|ddkrt�d�|���|�tdd��|dd�}|r*|d��s2t�d�|���d}|rP|d��rP||d7}|dd�}|rP|d��s<|ddkrc|dkrc|j�t�d	��t	|�|_
|�t|d
��||fS)Nr�*zExpected section but found {}zsection-markerr�z$Expected section number but found {}r'�0z'section number has an invalid leading 0r�)rrrTr7r�r=r�r rr�r�)rrr�rrr�get_sectionG	s0���
�
r�cCs�	t�}|st�d��d}|dtvrt|�\}}|s#t�d�|���|ddkr0t|�\}}nt|�\}}|durA|g|dd�<|�|�||fS)Nz&Expected value but found end of stringrz Expected value but found only {}r)	rrrTrnror7rpr�r�)r�vrvrGrrr�	get_valuee	s$
�
r�cCsz	t�}t|�\}}|�|�|r|ddkr'|j�t�d�|���||fS|ddkrfzt|�\}}d|_|�|�Wn
tj	yGYnw|sOt�	d��|ddkrf|�t
dd��|dd�}d|_|dd	krqt�	d
��|�t
d	d��|dd�}d}|r�|dtvr�t
|�\}}|�|�d}|}|j�r|�r|ddk�rt|�\}}|j}d
}|jdkr�|r�|ddkr�d}n#t|�\}}	|	r�|	ddkr�d}nzt|�\}}	WnYn|	s�d}|�r
|j�t�d��|�|�|D]}
|
jdk�r	g|
dd�<|
}nq�|}nd}|j�t�d��|�r%|ddk�r%d}nt|�\}}|j�r5|jdk�rX|�r?|ddk�rO|�|�|du�rK|}||fS|j�t�d��|�ss|j�t�d��|�|�|du�rr||fSnw|du�r�|D]}
|
jdk�r�n�qz|
jdk|�|
�|
j|_|ddk�r�t�	d�|���|�t
dd��|dd�}|�r�|ddk�r�t|�\}}|�|�|j|_|�r�|ddk�r�t�	d�|���|�t
dd��|dd�}|du�r't�}|�r$|dtv�rt|�\}}n|ddk�rt
dd�}|dd�}nt|�\}}|�|�|�s�|}nt|�\}}|�|�|du�r9|}||fS)Nrr�z)Parameter contains name ({}) but no valuer�TzIncomplete parameterzextended-parameter-markerr��=zParameter not followed by '='�parameter-separatorrF�'z5Quoted string value for extended parameter is invalidr�zZParameter marked as extended but appears to have a quoted string value that is non-encodedzcApparent initial-extended-value but attribute was not marked as extended or was not initial sectionz(Missing required charset/lang delimitersr�rz=Expected RFC2231 char/lang encoding delimiter, but found {!r}zRFC2231-delimiterz;Expected RFC2231 char/lang encoding delimiter, but found {}ZDQUOTE)r�r�r�r rrr7r�r�rTr=r�rnrorpr�r�r�r�rTr�rr{r|rr:rOrf)rrrGrvrIZappendtoZqstringZinner_valueZ
semi_validrY�tr�rrr�
get_parameter{	s�

��



�
�
�
�


�
�

�
�

�
�


�	

r�c
Csn	t�}|r�z
t|�\}}|�|�Wnitjy|}z\d}|dtvr*t|�\}}|s9|�|�|WYd}~S|ddkrR|durH|�|�|j�t�d��n t	|�\}}|ra|g|dd�<|�|�|j�t�d�
|���WYd}~nd}~ww|r�|ddkr�|d}d|_t	|�\}}|�|�|j�t�d�
|���|r�|�t
dd��|d	d�}|s|S)
Nrr�zparameter entry with no contentzinvalid parameter {!r}r�rz)parameter with invalid trailing text {!r}r�r�)r	r�r�rrTrnror rr�r7rTrEr=)rZmime_parametersrGr�rvrrrr�parse_mime_parameters	
sR


�

���

��$r�cCs�	|r3|ddkr3|dtvr |�t|dd��|dd�}nt|�\}}|�|�|r3|ddks	|s7dS|�tdd��|�t|dd���dS)Nrr�r�r�r�)rxr�r=rzr�)Z	tokenlistrrGrrr�_find_mime_parameters=
s
�r�c
Cs�	t�}d}|s|j�t�d��|Szt|�\}}Wntjy8|j�t�d�|���t	||�|YSw|�|�|rF|ddkrX|j�t�d��|rVt	||�|S|j
����|_
|�tdd��|dd�}zt|�\}}Wntjy�|j�t�d	�|���t	||�|YSw|�|�|j
����|_|s�|S|dd
kr�|j�t�d�|���|`
|`t	||�|S|�td
d��|�t|dd���|S)
NFz"Missing content type specificationz(Expected content maintype but found {!r}rr3zInvalid content typezcontent-type-separatorr�z'Expected content subtype but found {!r}r�z<Only parameters are valid after content type, but found {!r}r�)r!r r�rr�r�rTrr7r�rr�lowerr#r=r$r�)rZctypeZrecoverrGrrr�parse_content_type_headerM
sh
�
�
�

�

�
�

�
r�c
Cs�	t�}|s|j�t�d��|Szt|�\}}Wntjy6|j�t�d�|���t	||�|YSw|�|�|j
����|_
|sH|S|ddkra|j�t�d�|���t	||�|S|�tdd��|�t|dd���|S)NzMissing content dispositionz+Expected content disposition but found {!r}rr�zCOnly parameters are valid after content disposition, but found {!r}r�r�)r%r r�rr�r�rTrr7r�rrr�r&r=r�)rZdisp_headerrGrrr� parse_content_disposition_header�
s<
�
�
�

�
r�c
Cs�	t�}|s|j�t�d��|Szt|�\}}Wntjy/|j�t�d�|���Ynw|�|�|j	�
���|_|sA|S|rp|j�t�d��|dt
vrc|�t|dd��|dd�}nt|�\}}|�|�|sC|S)Nz!Missing content transfer encodingz1Expected content transfer encoding but found {!r}z*Extra text after content transfer encodingrr�r�)r(r r�rr�r�rTrr7rrr�rzrxr=rz)rZ
cte_headerrGrrr�&parse_content_transfer_encoding_header�
s:
�

��

�
�	r�cCsDd}|r |dr |ddtvr |dd}|ddd�|d<|S)Nr'r�r9)�linesZwsprrr�_steal_trailing_WSP_if_exists�
s
r�cCs	|jptj}|jrdnd}dg}d}d}d}tdd�}t|�}	|	�r�|	�d�}
|
|ur1|d8}q t|
�}|sI|
jdvrCt	�
|�}nt�
|�}z	|�|�|}Wnt
yltd	d
�|
jD��rfd}nd}d}Ynw|
jd
krzt|
|||�q |r�|s�|
js�d}d}|
jr�|
j|d�dt|j��}
|j|
vr�t|
�|t|d�kr�t|�}|�|�|d|
7<q t|
d�s�t|
�|	}	n
t|||||
j|�}d}q t|�|t|d�kr�|d|7<q |
j�r	t|�d|k�r	t|�}|s�|
���r	|�||�d}q t|
d��sWt|
�}|
jdk�r,tdd�gdd�|D�tdd�g}|
jdk�rEtdd�gdd�|D�tdd�g}|
j�sR|d7}|�|�||	}	q |
j�rg|�sg|	�d|
�d}q t|�}|�ss|
���r{|�||�n|d|7<|	s#|j�|�|jS)N�utf-8r�r'rF�wrap_as_ew_blockedr�)r�rPcsr�r)r�rrr*rrrr-�
r�z%_refold_parse_tree.<locals>.<genexpr>�unknown-8bitTr
rHr�r~r�rr�cSsg|]	}tt|�d��qS�r�)r=r�r+�prrrrf7s�z&_refold_parse_tree.<locals>.<listcomp>rdrcSs(g|]}|jdkrtt|�d�n|�qSr�)rTr=rr�rrrrf=s
���r)Zmax_line_length�sys�maxsize�utf8r0r4r�rrT�
SPECIALSNL�
isdisjoint�NLSETr~rr�r<�_fold_mime_parametersrBrYrLr�r+r�r�rU�_fold_as_ewrZr@r=�insertr0)Z
parse_treerI�maxlenrr��last_ewr�Z
want_encodingZend_ew_not_allowedrrC�tstrr{Zencoded_part�newlineZnewpartsrrrrJ�
s�



��
	



�
��
��
��
��
�lrJcCs�	|dur|rtt|d|d�|��}|dd|�|d<|dtvrF|d}|dd�}t|d�|kr>|�t|��|d|7<d}|dtvrX|d}|dd�}|durbt|d�n|}|dkrjdn|}	t|	�d}
|
d|kr}t�d��|r�|t|d�}||
}|dkr�|�d	�q}|d|�}
tj	|
|	d
�}t|�|}|dkr�|
dd�}
tj	|
|	d
�}t|�|}|dks�|d|7<|t|
�d�}|r�|�d	�t|d�}|s|d|7<|r�|SdS)Nr�rr�r'r�r��z3max_line_length is too small to fit an encoded wordr`)r{)
rrar:r�r�r�rrTrVr~)Z	to_encoder�r�r�rZr{Zleading_wspZtrailing_wspZnew_last_ewZ	encode_as�
chrome_lenZremaining_spaceZ
text_spaceZto_encode_wordZencoded_wordZexcessrrrr�UsZ
��
�
�r�c	Cs�	|jD]�\}}|d���d�s|dd7<|}d}z	|�|�d}Wnty=d}t�|�r9d}d}nd}Ynw|rQtjj	|d	|d
�}	d�
|||	�}
nd�
|t|��}
t|d�t|
�d
|krr|dd|
|d<qt|
�d|kr�|�
d|
�qd}|d}|r�t|�tt|��dt|�}
||
dkr�d}||
d}}	|d|�}tjj	|d	|d
�}	t|	�|kr�n|d
8}q�|�
d�
||||	��d	}|d
7}||d�}|r�|dd7<|s�qdS)Nr�r��strictFTr�r
r�r')Zsaferz
{}*={}''{}rr�r`r�rz''r��Nz {}*{}*={}{})rr�rr~rrrrrr�r7rr�r�r)rCr�r�rrrr{Z
error_handlerZencoding_requiredZ
encoded_valuer�rZextra_chromer�Z
splitpointZmaxchars�partialrrrr��sp

��� ������r�)rP)��rer�r�stringr�operatorrZemailrrVrrr�r:rnrurqr�rxZ	TSPECIALSr�Z	ASPECIALSr�r�r�r�rrr�compile�VERBOSE�	MULTILINEr]r4rr]rjrnrprqrsrvrxrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	rr!r%r(r)r*r,r-r.rr0r8r=r?rTr@r�r�r�r7r0r�rFrJ�matchri�findallrCr�r�r�rErMrOr[rarerfrkrlrmrorprrrsrtrwrzr�r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rJr�r�rrrr�<module>sHE
�C"	
!*$
V	+





��������

1C+
"&'/'&).9%7ED49/{A

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 May 2026 11.11 PM
root / linksafe
0755
__init__.cpython-310.opt-1.pyc
1.539 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
__init__.cpython-310.opt-2.pyc
0.937 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
__init__.cpython-310.pyc
1.539 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_encoded_words.cpython-310.opt-1.pyc
5.621 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_encoded_words.cpython-310.opt-2.pyc
3.791 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_encoded_words.cpython-310.pyc
5.621 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_header_value_parser.cpython-310.opt-1.pyc
76.979 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_header_value_parser.cpython-310.opt-2.pyc
60.619 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_header_value_parser.cpython-310.pyc
77.01 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_parseaddr.cpython-310.opt-1.pyc
12.234 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_parseaddr.cpython-310.opt-2.pyc
9.422 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_parseaddr.cpython-310.pyc
12.234 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_policybase.cpython-310.opt-1.pyc
14.898 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_policybase.cpython-310.opt-2.pyc
5.933 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
_policybase.cpython-310.pyc
14.898 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
base64mime.cpython-310.opt-1.pyc
3.18 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
base64mime.cpython-310.opt-2.pyc
1.465 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
base64mime.cpython-310.pyc
3.18 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
charset.cpython-310.opt-1.pyc
11.299 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
charset.cpython-310.opt-2.pyc
5.151 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
charset.cpython-310.pyc
11.319 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
contentmanager.cpython-310.opt-1.pyc
7.231 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
contentmanager.cpython-310.opt-2.pyc
7.231 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
contentmanager.cpython-310.pyc
7.231 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
encoders.cpython-310.opt-1.pyc
1.604 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
encoders.cpython-310.opt-2.pyc
1.277 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
encoders.cpython-310.pyc
1.604 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
errors.cpython-310.opt-1.pyc
5.729 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
errors.cpython-310.opt-2.pyc
4.36 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
errors.cpython-310.pyc
5.729 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
feedparser.cpython-310.opt-1.pyc
10.214 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
feedparser.cpython-310.opt-2.pyc
8.621 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
feedparser.cpython-310.pyc
10.346 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
generator.cpython-310.opt-1.pyc
12.906 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
generator.cpython-310.opt-2.pyc
9.325 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
generator.cpython-310.pyc
12.906 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
header.cpython-310.opt-1.pyc
16.092 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
header.cpython-310.opt-2.pyc
10.631 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
header.cpython-310.pyc
16.092 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
headerregistry.cpython-310.opt-1.pyc
21.372 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
headerregistry.cpython-310.opt-2.pyc
15.906 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
headerregistry.cpython-310.pyc
21.407 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
iterators.cpython-310.opt-1.pyc
1.938 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
iterators.cpython-310.opt-2.pyc
1.352 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
iterators.cpython-310.pyc
1.938 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
message.cpython-310.opt-1.pyc
36.97 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
message.cpython-310.opt-2.pyc
20.973 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
message.cpython-310.pyc
36.97 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
parser.cpython-310.opt-1.pyc
5.556 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
parser.cpython-310.opt-2.pyc
2.639 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
parser.cpython-310.pyc
5.556 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
policy.cpython-310.opt-1.pyc
9.442 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
policy.cpython-310.opt-2.pyc
3.404 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
policy.cpython-310.pyc
9.442 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
quoprimime.cpython-310.opt-1.pyc
7.46 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
quoprimime.cpython-310.opt-2.pyc
4.105 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
quoprimime.cpython-310.pyc
7.46 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
utils.cpython-310.opt-1.pyc
11.604 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
utils.cpython-310.opt-2.pyc
8.121 KB
17 Apr 2026 11.34 AM
root / linksafe
0644
utils.cpython-310.pyc
11.604 KB
17 Apr 2026 11.34 AM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF Static GIF