ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3

  \X                 @   s   d dgZ ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ej
dZej
d	Zej
d
Zej
d	Zej
dZdZdZe ZG dd deZG dd  d ZG dd deZdS )
FeedParserBytesFeedParser    N)errors)compat32)deque)StringIOz
\r\n|\r|\nz(\r\n|\r|\n)z(\r\n|\r|\n)\Zz%^(From |[\041-\071\073-\176]*:|[\t ]) 
c               @   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d ZdS )BufferedSubFilec             C   s$   t dd| _t | _g | _d| _d S )Nr   )newlineF)r   _partialr   _lines	_eofstack_closed)self r   (/usr/lib64/python3.6/email/feedparser.py__init__5   s    zBufferedSubFile.__init__c             C   s   | j j| d S )N)r   append)r   Zpredr   r   r   push_eof_matcher@   s    z BufferedSubFile.push_eof_matcherc             C   s
   | j j S )N)r   pop)r   r   r   r   pop_eof_matcherC   s    zBufferedSubFile.pop_eof_matcherc             C   s<   | j jd | j| j j  | j jd | j j  d| _d S )Nr   T)r   seek	pushlines	readlinestruncater   )r   r   r   r   closeF   s
    
zBufferedSubFile.closec             C   sN   | j s| jrdS tS | j j }x*t| jD ]}||r*| j j| dS q*W |S )Nr   )r   r   NeedMoreDatapopleftreversedr   
appendleft)r   lineZateofr   r   r   readlineN   s    
zBufferedSubFile.readlinec             C   s   | j j| d S )N)r   r    )r   r!   r   r   r   
unreadline`   s    zBufferedSubFile.unreadlinec             C   sx   | j j| d|kr d|kr d S | j jd | j j }| j jd | j j  |d jdsj| j j|j  | j| d S )Nr	   r      )r   writer   r   r   endswithr   r   )r   datapartsr   r   r   pushe   s    

zBufferedSubFile.pushc             C   s   | j j| d S )N)r   extend)r   linesr   r   r   r   z   s    zBufferedSubFile.pushlinesc             C   s   | S )Nr   )r   r   r   r   __iter__}   s    zBufferedSubFile.__iter__c             C   s   | j  }|dkrt|S )Nr   )r"   StopIteration)r   r!   r   r   r   __next__   s    zBufferedSubFile.__next__N)__name__
__module____qualname__r   r   r   r   r"   r#   r+   r   r.   r0   r   r   r   r   r
   -   s   r
   c               @   s\   e Zd Zde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dS )r   N)policyc            C   s   || _ d| _|d kr<|jd kr2ddlm} || _qn|j| _n2|| _y|| j d W n tk
rl   d| _Y nX t | _g | _	| j
 j| _d | _d | _d| _d S )NFr   )Message)r4   T)r4   _old_style_factoryZmessage_factoryZemail.messager5   _factory	TypeErrorr
   _input	_msgstack	_parsegenr0   _parse_cur_last_headersonly)r   r7   r4   r5   r   r   r   r      s$    

zFeedParser.__init__c             C   s
   d| _ d S )NT)r?   )r   r   r   r   _set_headersonly   s    zFeedParser._set_headersonlyc             C   s   | j j| | j  d S )N)r9   r+   _call_parse)r   r)   r   r   r   feed   s    zFeedParser.feedc             C   s&   y| j   W n tk
r    Y nX d S )N)r<   r/   )r   r   r   r   rA      s    zFeedParser._call_parsec             C   sJ   | j j  | j  | j }|j dkrF|j  rFtj }| jj	|| |S )N	multipart)
r9   r   rA   _pop_messageget_content_maintypeZis_multipartr   Z!MultipartInvariantViolationDefectr4   handle_defect)r   rootdefectr   r   r   r      s    

zFeedParser.closec             C   sn   | j r| j }n| j| jd}| jr<| jj dkr<|jd | jrR| jd j| | jj| || _|| _	d S )N)r4   zmultipart/digestzmessage/rfc822r%   r&   )
r6   r7   r4   r=   get_content_typeZset_default_typer:   Zattachr   r>   )r   msgr   r   r   _new_message   s    

zFeedParser._new_messagec             C   s(   | j j }| j r| j d | _nd | _|S )Nr%   r&   )r:   r   r=   )r   retvalr   r   r   rD      s
    
zFeedParser._pop_messagec             c   s6  | j   g }xb| jD ]X}|tkr(tV  qtj|sbtj|s`tj }| jj	| j
| | jj| P |j| qW | j| | jrg }x2| jj }|tkrtV  q|dkrP |j| qW | j
jtj| d S | j
j dkrx| jjtj x$| j D ]}|tkrtV  qP qW | j }| jj  x&| jj }|tkrFtV  q(P q(W x&| jj }|tkrntV  qPP qPW |dkrP | jj| qW d S | j
j dkrx(| j D ]}|tkrtV  qP qW | j  d S | j
j dkr| j
j }|d krbtj }| jj	| j
| g }x.| jD ]$}|tkr<tV  q$|j| q$W | j
jtj| d S | j
jddj dkrtj }| jj	| j
| d	| }tjd
tj | d }	d}
g }d}d}x| jj }|tkrtV  q|dkrP |	j|}|r|j!drd}|j!d}P |
r~|rj|d }t"j#|}|r\|d t$|j!d  |d< tj|| j
_%d}
| jj| qxB| jj }|tkrtV  q|	j|}|s| jj| P qW | jj|	j x(| j D ]}|tkrtV  qP qW | j&j dkrb| j&j'}|dkr&d | j&_'n:|d k	rt"j#|}|rt$|j!d}|d |  | j&_'nD| j&j(}t)|t*rt"j#|}|r|d t$|j!d  }|| j&_(| jj  | j  | j
| _&n
|j| qW |
r>tj+ }| jj	| j
| | j
jtj| g }x$| jD ]}|tkrtV  qqW tj|| j
_'d S |s`tj, }| jj	| j
| d S |rndg}ng }x.| jD ]$}|tkrtV  qz|j| qzW |r|d }t-j|}|r|t$|j!dd  |d< tj|| j
_'d S g }x.| jD ]$}|tkrtV  q|j| qW | j
jtj| d S )Nr   zmessage/delivery-statusmessagerC   zcontent-transfer-encoding8bit7bitbinaryz--z(?P<sep>z4)(?P<end>--)?(?P<ws>[ \t]*)(?P<linesep>\r\n|\r|\n)?$TFendlinesepr%   r   )rO   rN   rP   r&   r&   ).rK   r9   r   headerREmatchNLCREr   Z MissingHeaderBodySeparatorDefectr4   rF   r=   r#   r   _parse_headersr?   r"   Zset_payloadEMPTYSTRINGjoinrI   r   r;   rD   r   rE   Zget_boundaryZNoBoundaryInMultipartDefectgetlowerZ-InvalidMultipartContentTransferEncodingDefectrecompileescapegroup	NLCRE_eolsearchlenpreambler>   epilogueZ_payload
isinstancestrZStartBoundaryNotFoundDefectZCloseBoundaryNotFoundDefect	NLCRE_bol)r   Zheadersr!   rH   r-   rL   rJ   boundaryZ	separatorZ
boundaryreZcapturing_preamblerb   rR   Zclose_boundary_seenmoZlastlineZeolmorc   rQ   Zpayload	firstlineZbolmor   r   r   r;      sf   




































zFeedParser._parsegenc       	      C   s^  d}g }x4t |D ]&\}}|d dkrV|sJtj|}| jj| j| q|j| q|rx| jj| jj|  dg  }}|j	d r|dkrt
j|}|r|d t|jd  }| jj| qn:|t|d kr| jj| d S tj|}| jjj| q|jd}|dkr*tjd}| jjj| q|d | }|g}qW |rZ| jj| jj|  d S )Nr   r   z 	zFrom r%   :zMissing header name.)	enumerater   Z#FirstHeaderLineIsContinuationDefectr4   rF   r=   r   Zset_rawZheader_source_parse
startswithr_   r`   ra   r^   Zset_unixfromr9   r#   ZMisplacedEnvelopeHeaderDefectZdefectsfindZInvalidHeaderDefect)	r   r-   Z
lastheaderZ	lastvaluelinenor!   rH   rh   ir   r   r   rV     sF    








zFeedParser._parse_headers)N)r1   r2   r3   r   r   r@   rB   rA   r   rK   rD   r;   rV   r   r   r   r   r      s    ~c                   s   e Zd Z fddZ  ZS )r   c                s   t  j|jdd d S )Nasciisurrogateescape)superrB   decode)r   r)   )	__class__r   r   rB     s    zBytesFeedParser.feed)r1   r2   r3   rB   __classcell__r   r   )rt   r   r     s   )__all__r[   Zemailr   Zemail._policybaser   collectionsr   ior   r\   rU   rf   r_   ZNLCRE_crackrS   rW   NLobjectr   r
   r   r   r   r   r   r   <module>   s&   




[   