<!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>

]$^                 @   sX  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	 e	 j
 Z
 d Z d Z d	 Z d Z d Z d Z d Z e
 d  Z e
 d  Z e j d e j e j Be j B Z e j d  Z e j d  Z e j j Z d d   Z d d d d d  Z Gd d    d   Z Gd d   d  Z  Gd d   d e!  Z" d S)Headerdecode_headermake_header    N)HeaderParseError)charset
         N   z 	zus-asciizutf-8ai  
  =\?                   # literal =?
  (?P<charset>[^?]*?)   # non-greedy up to the next ? is the charset
  \?                    # literal ?
  (?P<encoding>[qb])    # either a "q" or a "b", case insensitive
  \?                    # literal ?
  (?P<encoded>.*?)      # non-greedy up to the next ?= is the encoded string
  \?=                   # literal ?=
  z[\041-\176]+:$z
\n[^ \t]+:c             C   s  t  |  d  r# d d   |  j D St j |   s? |  d  f g Sg  } x |  j   D] } t j |  } d } x | r| j d  } | r | j   } d } | r | j | d  d  f  | rp | j d  j	   } | j d  j	   } | j d  } | j | | | f  qp WqR Wg  }	 xk t
 |  D]] \ }
 } |
 d k r)| d r)| |
 d d r)| |
 d d j   r)|	 j |
 d  q)Wx t |	  D] } | | =qWg  } x| D] \ } } } | d  k r| j | | f  q| d	 k rt j j |  } | j | | f  q| d
 k rt |  d } | rT| d d  d |  7} y t j j |  } Wn! t j k
 rt d   YqX| j | | f  qt d |   qWg  } d  } } x | D] \ } } t | t  rt | d  } | d  k r| } | } q| | k rB| j | | f  | } | } q| d  k r_| t | 7} q| | 7} qW| j | | f  | S)N_chunksc             S   s:   g  |  ]0 \ } } t  j | t |   t |  f  q S )_charsetZ_encodestr).0stringr   r   r   +/opt/alt/python35/lib64/python3.5/header.py
<listcomp>M   s   	z!decode_header.<locals>.<listcomp>Tr   F      qb   z===zBase64 decoding errorzUnexpected encoding: zraw-unicode-escape)hasattrr   ecresearch
splitlinessplitpoplstripappendlower	enumerateisspacereversedemail
quoprimimeZheader_decodelenZ
base64mimedecodebinasciiErrorr   AssertionError
isinstancer   bytesBSPACE)headerZwordslinepartsfirstZ	unencodedr   encodingencodedZdroplistnwdZdecoded_wordsZencoded_stringZwordZpaderrZ	collapsedZ	last_wordlast_charsetr   r   r   r   =   sz    		@
		c             C   sn   t  d | d | d |  } xL |  D]D \ } } | d  k	 rV t | t  rV t |  } | j | |  q" W| S)N
maxlinelenheader_namecontinuation_ws)r   r-   Charsetr!   )Zdecoded_seqr:   r;   r<   hsr   r   r   r   r      s    	c               @   s   e  Z d  Z d d d d d d d d  Z d d   Z d d	   Z d d d
 d  Z d d   Z d d d d d  Z d d   Z	 d S)r   Nr   strictc             C   s   | d  k r t  } n t | t  s0 t |  } | |  _ | |  _ g  |  _ | d  k	 rj |  j | | |  | d  k r| t } | |  _ | d  k r d |  _	 n t
 |  d |  _	 d  S)Nr   r   )USASCIIr-   r=   r   _continuation_wsr   r!   
MAXLINELEN_maxlinelen
_headerlenr(   )selfr?   r   r:   r;   r<   errorsr   r   r   __init__   s    					zHeader.__init__c       	      C   s  |  j    g  } d  } d  } x |  j D] \ } } | } | t j k rk | j d d  } | j d d  } | r | o |  j | d  } | d k r | d k r | r | j t  d  } n  | d	 k r | r | j t  | o |  j | d
  } | } | j |  q& Wt	 j
 |  S)Nasciisurrogateescapereplacer   us-asciir   )NrL   )NrL   )NrL   )
_normalizer   r   UNKNOWN8BITencoder)   	_nonctextr!   SPACEEMPTYSTRINGjoin)	rF   Zuchunkslastcs	lastspacer   r   ZnextcsZoriginal_byteshasspacer   r   r   __str__   s*    
	zHeader.__str__c             C   s   | t  |   k S)N)r   )rF   otherr   r   r   __eq__  s    zHeader.__eq__c             C   s   | d  k r |  j  } n t | t  s3 t |  } t | t  s | j pN d } | t  j k ru | j d d  } n | j | |  } | j p d } | t  j k r y | j | |  Wn' t	 k
 r | d k r   t
 } Yn X|  j j | | f  d  S)Nzus-asciirJ   )r   r-   r=   r   Zinput_codecrO   r)   Zoutput_codecrP   UnicodeEncodeErrorUTF8r   r!   )rF   r?   r   rG   Zinput_charsetoutput_charsetr   r   r   r!   	  s$    zHeader.appendc             C   s   | j    p | d k S)N()\)r^   r_   r`   )r$   )rF   r?   r   r   r   rQ   4  s    zHeader._nonctextz;, 	r   c             C   sD  |  j    | d  k r |  j } | d k r1 d } t |  j | |  j |  } d  } d  } } x|  j D]\ } }	 | d  k	 r | o |  j | d  } | d	 k r | s |	 d
 k r | j   n |	 d k r | r | j   | o |  j | d  } |	 } d } | j   }
 |
 r1| j	 d |
 d |	  n | j	 d d |	  x |
 d d   D] } | j
   |	 j d  k	 r| j	 |  j d | j   |	  qU| j   } | d  t |  t |   } | j	 | | |	  qUWt |
  d k rf | j
   qf W|  j r| j   | j |  } t j |  r@t d j |    | S)Nr   i@B us-asciir   Fr   r   z8header value appears to contain an embedded header: {!r})Nra   )Nra   )Nra   rM   )rN   rD   _ValueFormatterrE   rB   r   rQ   add_transitionr   feednewlineheader_encodingr    r(   _str_embeded_headerr   r   format)rF   
splitcharsr:   linesep	formatterrU   rW   rV   r   r   linesr1   Zslinefwsvaluer   r   r   rP   9  sR    !
	



 	
	zHeader.encodec             C   s   g  } d  } g  } xj |  j  D]_ \ } } | | k rD | j |  q | d  k	 rl | j t j |  | f  | g } | } q W| r | j t j |  | f  | |  _  d  S)N)r   r!   rR   rT   )rF   chunksr9   Z
last_chunkr   r   r   r   r   rN     s    	
zHeader._normalize)
__name__
__module____qualname__rH   rX   rZ   r!   rQ   rP   rN   r   r   r   r   r      s   - +Pc               @   s|   e  Z 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 S)rb   c             C   sF   | |  _  | |  _ t |  |  _ | |  _ g  |  _ t |  |  _ d  S)N)_maxlenrB   r(   _continuation_ws_len_splitchars_lines_Accumulator_current_line)rF   Z	headerlenmaxlenr<   rj   r   r   r   rH     s    				z_ValueFormatter.__init__c             C   s   |  j    | j |  j  S)N)re   rT   rw   )rF   rk   r   r   r   rg     s    
z_ValueFormatter._strc             C   s   |  j  t  S)N)rg   NL)rF   r   r   r   rX     s    z_ValueFormatter.__str__c             C   s   |  j  j   } | d k r+ |  j  j |   t |  j   d k r |  j  j   rl |  j d t |  j   7<n |  j j t |  j    |  j  j   d  S)Nr   r   r   r   )r   r   rM   )	ry   r   pushr(   	is_onlywsrw   r   r!   reset)rF   Zend_of_liner   r   r   re     s    z_ValueFormatter.newlinec             C   s   |  j  j d d  d  S)Nr   r   )ry   r|   )rF   r   r   r   rc     s    z_ValueFormatter.add_transitionc             C   s   | j  d  k r) |  j | | |  j  d  S| j | |  j    } y | j d  } Wn t k
 rl d  SYn X| d  k	 r |  j | |  y | j   } Wn t k
 r d  SYn X|  j   |  j	 j
 |  j |  x% | D] } |  j j |  j |  q Wd  S)Nr   )rf   _ascii_splitrv   Zheader_encode_lines_maxlengthsr   
IndexError_append_chunkre   ry   r|   rB   rw   r!   )rF   rn   r   r   Zencoded_linesZ
first_lineZ	last_liner1   r   r   r   rd     s$    		
z_ValueFormatter.feedc             c   s/   |  j  t |  j  Vx |  j  |  j Vq Wd  S)N)rt   r(   ry   ru   )rF   r   r   r   r     s    z_ValueFormatter._maxlengthsc             C   s   t  j d t d | |  } | d r> d g | d  d  <n | j d  x7 t t |  g d   D] \ } } |  j | |  qe Wd  S)Nz([z]+)r   r   r   )rer   FWSr   zipiterr   )rF   rn   r   rj   r2   partr   r   r   r     s    
&z_ValueFormatter._ascii_splitc             C   s`  |  j  j | |  t |  j   |  j k r\x |  j D] } x t |  j  j   d d d  D]f } | j   r |  j  | d } | r | d | k r P|  j  | d d } | r[ | d | k r[ Pq[ Wq5 Pq5 W|  j  j   \ } } |  j  j	 d k r
|  j
   | s
d } |  j  j | |  d  S|  j  j |  } |  j j t |  j    |  j  j |  d  S)Nr   r   r   rM   rM   )ry   r|   r(   rt   rv   range
part_countr$   r   _initial_sizere   pop_fromrw   r!   r   r~   )rF   rn   r   ZchiZprevpartr   Z	remainderr   r   r   r     s.    &
z_ValueFormatter._append_chunkN)rq   rr   rs   rH   rg   rX   re   rc   rd   r   r   r   r   r   r   r   rb     s   %rb   c                   s   e  Z d  Z d   f d d  Z d d   Z d d d  Z   f d d	   Z d
 d   Z d d   Z d d d  Z	 d d   Z
   f d d   Z   S)rx   r   c                s   | |  _  t   j   d  S)N)r   superrH   )rF   Zinitial_size)	__class__r   r   rH     s    	z_Accumulator.__init__c             C   s   |  j  | | f  d  S)N)r!   )rF   rn   r   r   r   r   r|   #  s    z_Accumulator.pushc             C   s$   |  | d   } g  |  | d   <| S)Nr   )rF   r   Zpoppedr   r   r   r   &  s    z_Accumulator.pop_fromc                s#   |  j    d k r d St   j   S)Nr   r   )r   r   )r   r   r   )rF   )r   r   r   r   +  s    z_Accumulator.popc             C   s   t  d d   |  D |  j  S)Nc             s   s+   |  ]! \ } } t  |  t  |  Vq d  S)N)r(   )r   rn   r   r   r   r   	<genexpr>1  s    z'_Accumulator.__len__.<locals>.<genexpr>)sumr   )rF   r   r   r   __len__0  s    z_Accumulator.__len__c             C   s   t  j d d   |  D  S)Nc             s   s*   |  ]  \ } } t  j | | f  Vq d  S)N)rS   rT   )r   rn   r   r   r   r   r   5  s   z'_Accumulator.__str__.<locals>.<genexpr>)rS   rT   )rF   r   r   r   rX   4  s    z_Accumulator.__str__Nc             C   s/   | d  k r g  } | |  d  d   <d |  _  d  S)Nr   )r   )rF   Zstartvalr   r   r   r~   8  s    z_Accumulator.resetc             C   s&   |  j  d k o% |  p% t |   j   S)Nr   )r   r   r$   )rF   r   r   r   r}   >  s    z_Accumulator.is_onlywsc                s   t    j   S)N)r   r   )rF   )r   r   r   r   A  s    z_Accumulator.part_count)rq   rr   rs   rH   r|   r   r   r   rX   r~   r}   r   r   r   )r   r   rx     s   rx   z        )#__all__r   r*   Zemail.quoprimimer&   Zemail.base64mimeZemail.errorsr   r   r   r=   r{   rR   r/   ZSPACE8rS   rC   r   rA   r\   compileVERBOSE
IGNORECASE	MULTILINEr   Zfcrerh   r'   Z_max_appendr   r   r   rb   listrx   r   r   r   r   <module>   s:   		_