o
    3ŠØf?E  ã                   @   s¢   	 g d ¢Z ddlZddlZdZdZdZg d¢Zg d¢Zdddddd	d
ddd
dddddœZdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZG dd„ dƒZG dd„ deƒZdS ))Ú	mktime_tzÚ	parsedateÚparsedate_tzÚquoteé    Nú Ú z, )ZjanZfebZmarZaprÚmayZjunZjulZaugÚsepÚoctZnovZdecZjanuaryZfebruaryZmarchZaprilr   ZjuneZjulyZaugustZ	septemberZoctoberZnovemberZdecember)ZmonZtueZwedZthuZfriZsatZsunipþÿÿiÔþÿÿiþÿÿi¨ýÿÿiDýÿÿiàüÿÿ)ZUTZUTCZGMTÚZZASTZADTZESTZEDTZCSTZCDTZMSTZMDTZPSTZPDTc                 C   s.   	 t | ƒ}|s	d S |d d u rd|d< t|ƒS )Né	   r   )Ú_parsedate_tzÚtuple)ÚdataÚres© r   úb/home/ych/rk3568/buildroot/output/rockchip_rk3568_recovery/host/lib/python3.10/email/_parseaddr.pyr   -   s   r   c              
   C   s¶  	 | sd S |   ¡ } | sd S | d  d¡s| d  ¡ tv r | d= n| d  d¡}|dkr7| d |d d … | d< t| ƒdkrR| d   d¡}t|ƒdkrR|| dd …  } t| ƒdkr„| d }| d¡}|dkrj| d¡}|dkr|d |… ||d … g| dd …< n|  d	¡ t| ƒd
k rŒd S | d d
… } | \}}}}}| ¡ }|tvr®|| ¡ }}|tvr®d S t 	|¡d }|dkr½|d8 }|d dkrÉ|d d… }| d¡}|dkr×||}}|d dkrã|d d… }|d  
¡ sî||}}|d dkrú|d d… }|  d¡}t|ƒdkr|\}	}
d}nAt|ƒdkr|\}	}
}n4t|ƒdkrLd|d v rL|d   d¡}t|ƒdkr=|\}	}
d}nt|ƒdkrJ|\}	}
}nd S d S zt|ƒ}t|ƒ}t|	ƒ}	t|
ƒ}
t|ƒ}W n tyo   Y d S w |dk rƒ|dkr|d7 }n|d7 }d }| ¡ }|tv r“t| }nzt|ƒ}W n
 ty£   Y nw |dkr±| d¡r±d }|rÏ|dk r¿d}| }nd}||d d |d d   }||||	|
|ddd|g
S )Nr   ú,é   é   ú-é   ú+éÿÿÿÿr   é   é   ú:é   Ú0Ú.éd   éD   il  iÐ  i  é<   )ÚsplitÚendswithÚlowerÚ	_daynamesÚrfindÚlenÚfindÚappendÚ_monthnamesÚindexÚisdigitÚintÚ
ValueErrorÚupperÚ
_timezonesÚ
startswith)r   ÚiÚstuffÚsÚddZmmZyyZtmZtzZthhZtmmZtssZtzoffsetZtzsignr   r   r   r   9   s¸   	

"




ÿ




ÿ
r   c                 C   s$   	 t | ƒ}t|tƒr|d d… S |S )Nr   )r   Ú
isinstancer   ©r   Útr   r   r   r   ²   s
   
r   c                 C   s:   	 | d d u rt  | d d… d ¡S t | ¡}|| d  S )Nr   é   )r   )ÚtimeÚmktimeÚcalendarZtimegmr8   r   r   r   r   »   s
   
r   c                 C   s   	 |   dd¡  dd¡S )Nú\z\\ú"z\")Úreplace)Ústrr   r   r   r   Å   s   r   c                   @   sz   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d„Z
dd„ Zdd„ Zdd„ Zddd„Zdd„ ZdS )ÚAddrlistClassc                 C   s\   	 d| _ d| _d| _d| _| j| j | _| j | j | j | _| j dd¡| _|| _g | _	d S )Nz()<>@,:;."[]r   z 	z
r   r   )
ÚspecialsÚposÚLWSZCRÚFWSÚatomendsr@   Ú
phraseendsÚfieldÚcommentlist©ÚselfrI   r   r   r   Ú__init__Ù   s   
zAddrlistClass.__init__c                 C   sœ   	 g }| j t| jƒk rI| j| j  | jd v r/| j| j  dvr'| | j| j  ¡ |  j d7  _ n| j| j  dkr@| j |  ¡ ¡ nn| j t| jƒk st |¡S )Nz
r   ú()	rD   r(   rI   rE   r*   rJ   Ú
getcommentÚEMPTYSTRINGÚjoin)rL   Zwslistr   r   r   Úgotonextì   s   ø
	zAddrlistClass.gotonextc                 C   sJ   	 g }| j t| jƒk r#|  ¡ }|r||7 }n| d¡ | j t| jƒk s|S )N)r   r   )rD   r(   rI   Ú
getaddressr*   )rL   ÚresultZadr   r   r   Úgetaddrlistú   s   

ûzAddrlistClass.getaddrlistc                 C   sì  	 g | _ |  ¡  | j}| j }|  ¡ }|  ¡  g }| jt| jƒkr.|r-t | j ¡|d fg}n«| j| j dv rJ|| _|| _ |  ¡ }t | j ¡|fg}n| j| j dkrg }t| jƒ}|  jd7  _| jt| jƒk r|  ¡  | j|k r| j| j dkr|  jd7  _n||  	¡  }| jt| jƒk shnI| j| j dkr»|  
¡ }| j r²t |¡d d | j ¡ d	 |fg}n't |¡|fg}n|rÉt | j ¡|d fg}n| j| j | jv rÙ|  jd7  _|  ¡  | jt| jƒk rô| j| j d
krô|  jd7  _|S )Nr   z.@r   r   ú;ú<z (r   ú)r   )rJ   rR   rD   Úgetphraselistr(   rI   ÚSPACErQ   ÚgetaddrspecrS   ÚgetrouteaddrrC   )rL   ZoldposZoldclÚplistZ
returnlistZaddrspecZfieldlenZ	routeaddrr   r   r   rS     s`   €
û€
ÿÿÿ zAddrlistClass.getaddressc                 C   sö   	 | j | j dkrd S d}|  jd7  _|  ¡  d}| jt| j ƒk ry|r+|  ¡  d}nB| j | j dkr=|  jd7  _	 |S | j | j dkrO|  jd7  _d}n| j | j dkr_|  jd7  _n|  ¡ }|  jd7  _	 |S |  ¡  | jt| j ƒk s"|S )	NrW   Fr   r   ú>ú@Tr   )rI   rD   rR   r(   Ú	getdomainr[   )rL   ZexpectrouteZadlistr   r   r   r\   C  s6   õþðzAddrlistClass.getrouteaddrc                 C   s\  	 g }|   ¡  | jt| jƒk rzd}| j| j dkr4|r%|d  ¡ s%| ¡  | d¡ |  jd7  _d}n1| j| j dkrH| dt|  ¡ ƒ ¡ n| j| j | j	v r^|r]|d  ¡ s]| ¡  n| |  
¡ ¡ |   ¡ }|rr|rr| |¡ | jt| jƒk s| jt| jƒksŠ| j| j dkrt |¡S | d¡ |  jd7  _|   ¡  |  ¡ }|s§tS t |¡| S )	NTr   r   r   Fr?   z"%s"r_   )rR   rD   r(   rI   ÚstripÚpopr*   r   ÚgetquoterG   ÚgetatomrP   rQ   r`   )rL   ZaslistZpreserve_wsÚwsÚdomainr   r   r   r[   c  s>   

î 

zAddrlistClass.getaddrspecc                 C   sô   	 g }| j t| jƒk ru| j| j  | jv r|  j d7  _ nQ| j| j  dkr-| j |  ¡ ¡ n@| j| j  dkr=| |  ¡ ¡ n0| j| j  dkrR|  j d7  _ | d¡ n| j| j  dkr\tS | j| j  | j	v rfn| |  
¡ ¡ | j t| jƒk st |¡S )Nr   rN   ú[r   r_   )rD   r(   rI   rE   rJ   r*   rO   ÚgetdomainliteralrP   rG   rd   rQ   )rL   Zsdlistr   r   r   r`   ‰  s&   ï
zAddrlistClass.getdomainTc                 C   sî   	 | j | j |krdS dg}d}|  jd7  _| jt| j ƒk rr|r-| | j | j ¡ d}n6| j | j |v r=|  jd7  _n5|rO| j | j dkrO| |  ¡ ¡ q| j | j dkrZd}n	| | j | j ¡ |  jd7  _| jt| j ƒk st |¡S )Nr   Fr   rN   r>   T)rI   rD   r(   r*   rO   rP   rQ   )rL   Z	begincharZendcharsZallowcommentsZslistr   r   r   r   Úgetdelimited   s,   ò
zAddrlistClass.getdelimitedc                 C   ó   	 |   ddd¡S )Nr?   z"F©ri   ©rL   r   r   r   rc   Å  ó   zAddrlistClass.getquotec                 C   rj   )NrN   z)Trk   rl   r   r   r   rO   É  rm   zAddrlistClass.getcommentc                 C   s   	 d|   ddd¡ S )Nz[%s]rg   z]Frk   rl   r   r   r   rh   Í  s   zAddrlistClass.getdomainliteralNc                 C   sr   	 dg}|d u r| j }| jt| jƒk r4| j| j |v rn| | j| j ¡ |  jd7  _| jt| jƒk st |¡S )Nr   r   )rG   rD   r(   rI   r*   rP   rQ   )rL   rG   Zatomlistr   r   r   rd   Ñ  s   û
zAddrlistClass.getatomc                 C   s¸   	 g }| j t| jƒk rZ| j| j  | jv r|  j d7  _ n6| j| j  dkr,| |  ¡ ¡ n&| j| j  dkr=| j |  ¡ ¡ n| j| j  | jv rI	 |S | |  	| j¡¡ | j t| jƒk s|S )Nr   r?   rN   )
rD   r(   rI   rF   r*   rc   rJ   rO   rH   rd   )rL   r]   r   r   r   rY   å  s   þözAddrlistClass.getphraselist)T©N)Ú__name__Ú
__module__Ú__qualname__rM   rR   rU   rS   r\   r[   r`   ri   rc   rO   rh   rd   rY   r   r   r   r   rB   Ï   s    	; &
%
rB   c                   @   sF   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S )ÚAddressListc                 C   s(   t  | |¡ |r|  ¡ | _d S g | _d S rn   )rB   rM   rU   ÚaddresslistrK   r   r   r   rM   þ  s   
zAddressList.__init__c                 C   s
   t | jƒS rn   )r(   rs   rl   r   r   r   Ú__len__  s   
zAddressList.__len__c                 C   s>   t d ƒ}| jd d … |_|jD ]}|| jvr|j |¡ q|S rn   ©rr   rs   r*   ©rL   ÚotherZnewaddrÚxr   r   r   Ú__add__  s   

€zAddressList.__add__c                 C   s&   |j D ]}|| j vr| j  |¡ q| S rn   )rs   r*   ©rL   rw   rx   r   r   r   Ú__iadd__  ó
   

€zAddressList.__iadd__c                 C   s.   t d ƒ}| jD ]}||jvr|j |¡ q|S rn   ru   rv   r   r   r   Ú__sub__  s   

€zAddressList.__sub__c                 C   s&   |j D ]}|| j v r| j  |¡ q| S rn   )rs   Úremoverz   r   r   r   Ú__isub__   r|   zAddressList.__isub__c                 C   s
   | j | S rn   )rs   )rL   r,   r   r   r   Ú__getitem__'  s   
zAddressList.__getitem__N)
ro   rp   rq   rM   rt   ry   r{   r}   r   r€   r   r   r   r   rr   ü  s    	rr   )Ú__all__r;   r=   rZ   rP   Z
COMMASPACEr+   r&   r1   r   r   r   r   r   rB   rr   r   r   r   r   Ú<module>   s0   û	y	

  /