£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    ifQ                     @   s   d ddg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m	Z	 ddl
mZ ddlmZ d	Zd
ZedZedejZedZG dd  d ZG dd deZdZG dd deZeeejd Zde ZejZdS )	GeneratorDecodedGeneratorBytesGenerator    N)deepcopy)StringIOBytesIO)_has_surrogates)HeaderWriteError_
z
\r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]c                   @   s   e Zd Zd&ddddZdd Zd'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eZdd Zdd Zdd Zd d! Zed(d"d#Zed$d% ZdS ))r   Npolicyc                C   s6   |d kr|d krdn|j }|| _|| _|| _|| _d S )NT)mangle_from__fp_mangle_from_maxheaderlenr   )selfoutfpr   r   r    r   4/opt/alt/python38/lib64/python3.8/email/generator.py__init__&   s    zGenerator.__init__c                 C   s   | j | d S N)r   writer   sr   r   r   r   F   s    zGenerator.writeFc                 C   s   | j d kr|j n| j }|d k	r*|j|d}| jd k	rB|j| jd}|j| _| | j| _d| _| | j| _| j }|j }zL|| _ ||_ |r|	 }|sdt
t

  }| || j  | | W 5 || _ ||_ X d S )N)linesepZmax_line_length zFrom nobody )r   cloner   r   _NL_encode_encoded_NLZ_EMPTY_encoded_EMPTYZget_unixfromtimectimer   _write)r   msgunixfromr   r   Zold_gen_policyZold_msg_policyZufromr   r   r   flattenJ   s,    
zGenerator.flattenc                 C   s   | j || jd | jdS Nr   )	__class__r   r   )r   fpr   r   r   r   {   s
    zGenerator.clonec                 C   s   t  S r   )r   r   r   r   r   _new_buffer   s    zGenerator._new_bufferc                 C   s   |S r   r   r   r   r   r   r       s    zGenerator._encodec                 C   sT   |sd S t |}|d d D ]}| | | | j q|d rP| |d  d S )N)NLCREsplitr   r   )r   linesliner   r   r   _write_lines   s    

zGenerator._write_linesc                 C   s   | j }z"d | _|   | _ }| | W 5 || _ | j}| `X |rt|}|dd krd|d |d< n|d|d  |d|d  t|dd }|d kr| | n||  | j 	|
  d S )Ncontent-transfer-encodingr   Content-Transfer-Encodingcontent-type   _write_headers)r   
_munge_cter-   	_dispatchr   getZreplace_headergetattrr8   r   getvalue)r   r&   ZoldfpZ	munge_cteZsfpmethr   r   r   r%      s&    zGenerator._writec                 C   st   |  }| }t||fdd}t| d| d }|d krh|dd}t| d| d }|d krh| j}|| d S )N-r
   Z_handle_)get_content_maintypeget_content_subtype
UNDERSCOREjoinreplacer<   
_writeBody)r   r&   mainsubZspecificr>   Zgenericr   r   r   r:      s    zGenerator._dispatchc                 C   s   |  D ]\}}| j||}| jjr| jj}|| jjsPtd|d||}||rp|d t|  }t	|rtd|| 
| q| 
| j d S )Nz folded header does not end with z: z folded header contains newline: )	raw_itemsr   ZfoldZverify_generated_headersr   endswithr	   lenNEWLINE_WITHOUT_FWSPsearchr   r   )r   r&   hvZfoldedr   Zfolded_no_linesepr   r   r   r8      s"    

zGenerator._write_headersc                 C   s   |  }|d krd S t|ts.tdt| t|jr~|d}|d k	r~t|}|d= |	|| |  }|d |d f| _
| jrtd|}| | d S )Nzstring payload expected: %scharsetr4   r6   >From )get_payload
isinstancestr	TypeErrortyper   _payloadZ	get_paramr   Zset_payloadr9   r   fcrerG   r3   )r   r&   payloadrO   r   r   r   _handle_text   s$    


zGenerator._handle_textc                 C   s  g }|  }|d krg }n(t|tr2| | d S t|tsB|g}|D ]6}|  }| |}|j|d| jd |	|
  qF| }|s| j|}| |}|| |jd k	r| jrtd|j}	n|j}	| |	 | | j | d| | j  |r| j|d |D ],}
| | jd | | j  | j|
 q| | jd | d | j  |jd k	r| jrtd|j}n|j}| | d S )NFr'   r   rP   z--r   )rQ   rR   rS   r   listr-   r   r(   r   appendr=   Zget_boundaryr!   rC   _make_boundaryZset_boundarypreambler   rW   rG   r3   r   popepilogue)r   r&   ZmsgtextsZsubpartspartr   gboundaryZalltextr^   Z	body_partr`   r   r   r   _handle_multipart  sJ    







zGenerator._handle_multipartc                 C   s0   | j }|jdd| _ z| | W 5 || _ X d S )Nr   r   )r   r   rd   )r   r&   pr   r   r   _handle_multipart_signedJ  s
    z"Generator._handle_multipart_signedc                 C   s   g }|  D ]t}|  }| |}|j|d| jd | }|| j}|rv|d | jkrv|	| j
|d d  q|	| q| j| j
| d S )NFrZ   r.   )rQ   r-   r   r(   r   r=   r0   r!   r"   r\   rC   r   r   )r   r&   Zblocksra   r   rb   textr1   r   r   r   _handle_message_delivery_statusU  s    
z)Generator._handle_message_delivery_statusc                 C   s^   |   }| |}|j}t|trD|j|dd| jd | }n
| 	|}| j
| d S )Nr   FrZ   )r-   r   rV   rR   r[   r(   rQ   r   r=   r    r   r   )r   r&   r   rb   rX   r   r   r   _handle_messagej  s    




zGenerator._handle_messagec                 C   sv   t tj}dt|  d }|d kr(|S |}d}| dt| d tj}|	|sXqr|d t
| }|d7 }q0|S )Nz===============z==r   z^--z(--)?$.r7   )randomZ	randrangesysmaxsize_fmt_compile_rereescape	MULTILINErL   rS   )clsrg   tokenrc   bZcounterZcrer   r   r   r]     s    

zGenerator._make_boundaryc                 C   s   t ||S r   )rp   compilers   r   flagsr   r   r   ro     s    zGenerator._compile_re)NN)FN)N)__name__
__module____qualname__r   r   r(   r   r-   r    r3   r%   r:   r8   rY   rE   rd   rf   rh   ri   classmethodr]   ro   r   r   r   r   r      s,   
 
1':c                       sL   e Zd Zdd Zdd Zdd Zdd Z fd	d
ZeZe	dd Z
  ZS )r   c                 C   s   | j |dd d S )Nasciisurrogateescape)r   r   encoder   r   r   r   r     s    zBytesGenerator.writec                 C   s   t  S r   )r   r,   r   r   r   r-     s    zBytesGenerator._new_bufferc                 C   s
   | dS Nr}   )r   r   r   r   r   r      s    zBytesGenerator._encodec                 C   s8   |  D ]\}}| j| j|| q| | j d S r   )rH   r   r   r   Zfold_binaryr   )r   r&   rM   rN   r   r   r   r8     s    zBytesGenerator._write_headersc                    s\   |j d krd S t|j rH| jjdksH| jr:td|j |_ | |j  ntt	| 
| d S )NZ7bitrP   )rV   r   r   Zcte_typer   rW   rG   r3   superr   rY   )r   r&   r*   r   r   rY     s    
zBytesGenerator._handle_textc                 C   s   t |d|S r   )rp   rv   r   rw   r   r   r   ro     s    zBytesGenerator._compile_re)ry   rz   r{   r   r-   r    r8   rY   rE   r|   ro   __classcell__r   r   r   r   r     s   zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c                   @   s$   e Zd ZdddddZdd ZdS )r   Nr   c                C   s.   t j| ||||d |d kr$t| _n|| _d S r)   )r   r   _FMTrn   )r   r   r   r   Zfmtr   r   r   r   r     s    zDecodedGenerator.__init__c                 C   s   |  D ]v}| }|dkr2t|jdd| d q|dkr<qt| j| | | |d|dd|d	d
d | d qd S )Nrg   F)decode)fileZ	multipartz[no filename]zContent-Descriptionz[no description]r5   z[no encoding])rU   maintypeZsubtypefilenameZdescriptionencoding)	walkr@   printrQ   rn   Zget_content_typerA   get_filenamer;   )r   r&   ra   r   r   r   r   r:     s(    	zDecodedGenerator._dispatch)NNN)ry   rz   r{   r   r:   r   r   r   r   r     s   r7   z%%0%dd)__all__rp   rl   r#   rk   copyr   ior   r   Zemail.utilsr   Zemail.errorsr	   rB   NLrv   r/   rr   rW   rK   r   r   r   r   rJ   reprrm   Z_widthrn   r]   r   r   r   r   <module>   s.   


   3;