
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aGh  ã                   @   s$  d Z ddlZddlZddlT ejeks.tdƒ‚eehZe	e
ehZeehZeehZeeehB ZdZdd„ eD ƒZejfdd	„Zd
d„ Zdd„ Zd-dd„Zejd Zde> d ZdZ ee!f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+d,„Z.dS )/zInternal support module for sreé    N)Ú*zSRE module mismatch))éi   i1  )és   i  )éµ   i¼  )iE  i¹  i¾  )i�  iÓ  )i°  iã  )i²  iÐ  )iµ  iõ  )i¸  iÑ  )iº  ið  )iÀ  iÖ  )iÁ  iñ  )iÂ  iÃ  )iÆ  iÕ  )ia  i›  )iû  iû  c                    s.   i | ]&}|D ]‰ ˆ t ‡ fd d„|D ƒƒ“qqS )c                 3   s   | ]}ˆ |kr|V  qd S ©N© )Ú.0Új©Úir   ú0/opt/alt/python38/lib64/python3.8/sre_compile.pyÚ	<genexpr>>   s      z<dictcomp>.<genexpr>)Útuple)r   Útr   r
   r   Ú
<dictcomp>>   s
     ÿ r   c                 C   s    ||@ r| | M } | |B | @ S r   r   )ÚflagsÚ	add_flagsÚ	del_flagsÚ
TYPE_FLAGSr   r   r   Ú_combine_flagsA   s    
r   c                 C   sä  | j }t}t}t}t}t}d }	d }
d }|t@ r\|t@ s\|t@ rPt	j
}	t	j}
t}nt	j}	t	j}
|D �]|\}}||k�rr|t@ sŽ||ƒ ||ƒ nâ|t@ r¬|t| ƒ ||ƒ nÄ|	|ƒsÆ||ƒ ||ƒ nª|
|ƒ}|sè|t| ƒ ||ƒ nˆ||k�r|t| ƒ ||ƒ nh|tƒ || ƒ}|dƒ |tk�r2|tƒ |f||  D ]}|tƒ ||ƒ �q@|tƒ || ƒ| | |< q`|tk�rt||	|
|ƒ\}}|t@ �r¬|t@ �r¬|tƒ n(|�s¼|tƒ n|�sÌ|tƒ n|tƒ || ƒ}|dƒ t||| ƒ || ƒ| | |< q`|tk�r*|t@ �r |tƒ n|tƒ q`||k�r6|t@ �rLt d|f ƒ‚t!|d ƒ�rÈ|t"k�rn|t#ƒ n|t$ƒ || ƒ}|dƒ ||d ƒ ||d ƒ t%| |d |ƒ |t&ƒ || ƒ| | |< nl|t'ƒ || ƒ}|dƒ ||d ƒ ||d ƒ t%| |d |ƒ || ƒ| | |< |t"k�r,|t(ƒ n|t)ƒ q`|t*k�r¢|\}}}}|�rj|t+ƒ ||d d ƒ t%| |t,|||ƒƒ |�rÞ|t+ƒ ||d d d ƒ q`||k�r¶||ƒ q`||k�rD||ƒ || ƒ}|dƒ |d dk�rð|dƒ n*|d  -¡ \}}||k�rt dƒ‚||ƒ t%| |d |ƒ |t&ƒ || ƒ| | |< q`|t.k�rŒ||ƒ || ƒ}|dƒ t%| ||ƒ |t&ƒ || ƒ| | |< q`|t/k�rì||ƒ |t0@ �r´t1 2||¡}|t@ �rÌt3 2||¡}n|t@ �rât4 2||¡}||ƒ q`|t5k�r†||ƒ g }|j }|d D ]N}|| ƒ}|dƒ t%| ||ƒ |t6ƒ ||| ƒƒ |dƒ || ƒ| | |< �q|tƒ |D ]}|| ƒ| | |< �qlq`|t7k�rÈ||ƒ |t@ �r¬t8| }n|t@ �r¾t9| }||ƒ q`|t:k�r |t@ �sæ||ƒ n,|t@ �rú|t;ƒ n|�s
|t<ƒ n|t=ƒ ||d ƒ q`|t>k�rÐ||ƒ ||d d ƒ || ƒ}|dƒ t%| |d |ƒ |d �rº|t6ƒ || ƒ}|dƒ || ƒ| d | |< t%| |d |ƒ || ƒ| | |< n|| ƒ| d | |< q`t d|f ƒ‚q`d S )Nr   z*internal: unsupported template operator %ré   é   z(look-behind requires fixed-width patternz%internal: unsupported operand type %r)?ÚappendÚlenÚ_LITERAL_CODESÚ_REPEATING_CODESÚ_SUCCESS_CODESÚ_ASSERT_CODESÚSRE_FLAG_IGNORECASEÚSRE_FLAG_LOCALEÚSRE_FLAG_UNICODEÚ_sreÚunicode_iscasedÚunicode_tolowerÚ_ignorecase_fixesÚascii_iscasedÚascii_tolowerÚOP_LOCALE_IGNOREÚ	OP_IGNOREÚOP_UNICODE_IGNOREÚIN_UNI_IGNOREÚNOT_LITERALÚNEGATEÚLITERALÚFAILUREÚINÚ_optimize_charsetÚIN_LOC_IGNOREÚ	IN_IGNOREÚ_compile_charsetÚANYÚSRE_FLAG_DOTALLÚANY_ALLÚSRE_FLAG_TEMPLATEÚerrorÚ_simpleÚ
MAX_REPEATÚ
REPEAT_ONEÚMIN_REPEAT_ONEÚ_compileÚSUCCESSÚREPEATÚ	MAX_UNTILÚ	MIN_UNTILÚ
SUBPATTERNÚMARKr   ÚgetwidthÚCALLÚATÚSRE_FLAG_MULTILINEÚAT_MULTILINEÚgetÚ	AT_LOCALEÚ
AT_UNICODEÚBRANCHÚJUMPÚCATEGORYÚ	CH_LOCALEÚ
CH_UNICODEÚGROUPREFÚGROUPREF_LOC_IGNOREÚGROUPREF_IGNOREÚGROUPREF_UNI_IGNOREÚGROUPREF_EXISTS)ÚcodeÚpatternr   ÚemitÚ_lenÚLITERAL_CODESÚREPEATING_CODESÚSUCCESS_CODESÚASSERT_CODESÚiscasedÚtolowerÚfixesÚopÚavÚloÚskipÚkÚcharsetÚhascasedÚgroupr   r   ÚpÚhiÚtailÚ
tailappendÚskipyesÚskipnor   r   r   r=   G   sV   






 




 







  






 


 





  











 
 r=   c                 C   sâ   |j }| D ]Ê\}}||ƒ |tkr$q
|tkr6||ƒ q
|tksF|tkr`||d ƒ ||d ƒ q
|tkrt| |¡ q
|tkrˆ| |¡ q
|tkrÆ|t	@ r¦|t
| ƒ qÔ|t@ r¼|t| ƒ qÔ||ƒ q
td|f ƒ‚q
|tƒ d S )Nr   r   z%internal: unsupported set operator %r)r   r,   r-   ÚRANGEÚRANGE_UNI_IGNOREÚCHARSETÚextendÚ
BIGCHARSETrN   r   rO   r    rP   r8   r.   )rf   r   rV   rX   ra   rb   r   r   r   r3   ù   s,    

r3   c              	   C   s˜  g }g }t dƒ}d}| D �]–\}}	�z,|tkr€|rv||	ƒ}
d||
< |rd|
|krd||
 D ]}d||< qV|s~||	ƒr~d}nd||	< nÎ|tk�r&t|	d |	d d ƒ}|�r|rât||ƒD ]*}d||< ||kr´|| D ]}d||< qÐq´nt||ƒD ]}d||< qì|�s$tt||ƒƒ}n|D ]}d||< �qn(|tk�r@| ||	f¡ n| ||	f¡ W nZ tk
�rª   t	|ƒdk�r€|dd 7 }Y q"|�r˜d}|tk�r˜t
}| ||	f¡ Y nX qq"qg }d}| d|¡}|dk �rÔ�q(t	|ƒdk�rêd }�q(| d|¡}|dk �r| |t	|ƒf¡ �q(| ||f¡ �qº|d k	�r¦|D ]>\}}|| dk�r\| t|f¡ n| t||d ff¡ �q6||7 }|�s–t	|ƒt	| ƒk �rž||fS | |fS t	|ƒdk�rÚt|ƒ}| t|f¡ ||7 }||fS t|ƒ}i }t dƒ}d}t ƒ }tdd	dƒD ]V}|||d … }||k�r4|| ||d < n$| ||d < ||< |d7 }||7 }�qt|ƒ}|gt|ƒ |dd…< | t|f¡ ||7 }||fS )
Né   Fr   Tr   ó    i ÿ  r   i   )Ú	bytearrayr-   ro   ÚrangeÚmapÚanyr,   r   Ú
IndexErrorr   rp   ÚfindÚ
_mk_bitmaprq   ÚbytesÚ_bytes_to_codesrs   )rf   r^   Úfixupr`   Úoutrk   Úcharmaprg   ra   rb   rc   re   Úrr   ÚrunsÚqri   ÚdataÚcompsÚmappingÚblockÚchunkr   r   r   r0     s°    









r0   é   r   s   0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c                    s8   |   t¡d d d… ‰‡ ‡‡fdd„ttˆƒdˆ  ƒD ƒS )Néÿÿÿÿc                    s"   g | ]}ˆˆ|ˆ  |… d ƒ‘qS )r   r   )r   r   ©Ú	_CODEBITSÚ_intÚsr   r   Ú
<listcomp>�  s   ÿz_mk_bitmap.<locals>.<listcomp>r   )Ú	translateÚ_BITS_TRANSrw   r   )Úbitsr�   rŽ   r   rŒ   r   r|   ›  s    ÿr|   c                 C   s@   t | ƒ d¡}|jtjkst‚t|ƒ|j t| ƒks8t‚| ¡ S )NÚI)Ú
memoryviewÚcastÚitemsizer!   ÚCODESIZEÚAssertionErrorr   Útolist)ÚbÚar   r   r   r~      s    r~   c                 C   sD   t | ƒdkrdS | d \}}|tkr<|d d ko:t|d ƒS |tkS )Nr   Fr   r‹   )r   rB   r9   Ú_UNIT_CODES)ri   ra   rb   r   r   r   r9   §  s    r9   c                 C   sn   dgt | ƒ }tdt | ƒƒD ]L}||d  }| | | | kr\|dkrNd||< q||d  }q,|d ||< q|S )aj  
    Generate an overlap table for the following prefix.
    An overlap table is a table of the same size as the prefix which
    informs about the potential self-overlap for each index in the prefix:
    - if overlap[i] == 0, prefix[i:] can't overlap prefix[0:...]
    - if overlap[i] == k with 0 < k <= i, prefix[i-k+1:i+1] overlaps with
      prefix[0:k]
    r   r   )r   rw   )ÚprefixÚtabler   Úidxr   r   r   Ú_generate_overlap_table°  s    	r¡   c                 C   s$   | t @ sd S | t@ rtjS tjS d S r   )r   r    r!   r"   r%   )r   r   r   r   Ú_get_iscasedÅ  s
    r¢   c                 C   sæ   g }|j }d }t|ƒ}| jD ]´\}}|tkrF|r<||ƒr< qÜ||ƒ q|tkrÌ|\}}	}
}t||	|
ƒ}|t@ rz|t@ rz qÜt||ƒ\}}}|d kr¸|d k	r¤t	|ƒ}n|d k	r¸t	|ƒ| }| 
|¡ |sÐ qÜq qÜq||dfS ||dfS )NTF)r   r¢   r…   r-   rB   r   r   r   Ú_get_literal_prefixr   rr   )rW   r   rž   ÚprefixappendÚprefix_skipr^   ra   rb   rh   r   r   ri   Úflags1Úprefix1Úprefix_skip1Úgot_allr   r   r   r£   Í  s4    



r£   c                 C   sd  | j s
d S | j d \}}|tk	r"qP|\}}}} t|||ƒ}|t@ r |t@ r d S q t|ƒ}|tkrz|rp||ƒrpd S ||fgS |tkrÜg }|j}	|d D ]B}
|
s¢ d S |
d \}}|tkrÐ|rÂ||ƒsÐ|	||fƒ q” d S q”|S |t	k�r`|}|�r\|D ]f\}}|tk�r||ƒ�rZ d S qô|t
krô|d dk�r4 d S tt|t|d |d d ƒƒƒrô d S qô|S d S )Nr   r   iÿÿ  )r…   rB   r   r   r   r¢   r-   rL   r   r/   ro   ry   rx   rw   )rW   r   ra   rb   rh   r   r   r^   rf   Úcharsetappendri   r   r   r   Ú_get_charset_prefixì  sN    



 r«   c                 C   s|  |  ¡ \}}|tkrt}|dkr8|  tdd||g¡ d S g }d}g }|t@ rT|t@ srt||ƒ\}}}|srt||ƒ}| j}	|	tƒ t	| ƒ}
|	dƒ d}|r²t
}|d kr¾|r¾|tB }n|r¾|tB }|	|ƒ |tk rØ|	|ƒ n|	tƒ |d t… }|	t|tƒƒ |�r@|	t	|ƒƒ |d k�rt	|ƒ}|	|ƒ |  |¡ |  t|ƒ¡ n(|�rht|ƒ\}}|�r\t‚t||| ƒ t	| ƒ|
 | |
< d S )Nr   é   )rD   ÚMAXCODErr   ÚINFOr   r   r£   r«   r   r   ÚSRE_INFO_PREFIXÚSRE_INFO_LITERALÚSRE_INFO_CHARSETÚminr¡   r0   r™   r3   )rV   rW   r   rc   rj   rž   r¥   rf   r©   rX   rd   Úmaskrg   r   r   r   Ú_compile_info  sT    
 




r´   c                 C   s   t | ttfƒS r   )Ú
isinstanceÚstrr}   )Úobjr   r   r   ÚisstringS  s    r¸   c                 C   s8   | j j|B }g }t|| |ƒ t|| j|ƒ | t¡ |S r   )Ústater   r´   r=   r…   r   r>   )ri   r   rV   r   r   r   Ú_codeV  s    
rº   c                 C   s   dd  dd„ | D ƒ¡ S )Nú[%s]ú, c                 s   s$   | ]}d t jd d |f V  qdS )z%#0*xr   N)r!   r˜   ©r   Úxr   r   r   r   f  s     z_hex_code.<locals>.<genexpr>)Újoin©rV   r   r   r   Ú	_hex_codee  s    rÁ   c                    sN   dd l ‰tƒ ‰d‰tttˆ ƒd ƒƒ‰‡ ‡‡‡‡‡fdd„‰ˆdtˆ ƒƒ d S )Nr   r   c              	      sÚ  d dœ‡‡‡‡ fdd„
}‡‡fdd„}ˆd7 ‰ˆ }||k �rÎ|‰ ˆ| }|d7 }t | }|tttttttfkrx||ƒ q2|tt	t
tttttfkr¸ˆ| }|d7 }||d|t|ƒf ƒ q2|tk�rˆ| }|d7 }tt| ƒ}|d d… d	ksòt‚|||dd … ƒ q2|tk�rVˆ| }|d7 }tt| ƒ}|d d
… dk�sBt‚|||d
d … ƒ q2|ttttfk�ržˆ| }||||| d� ˆ|d || ƒ ||7 }q2|ttfk�rèˆ||d … \}}	|d7 }||d||	t|ƒt|	ƒf ƒ q2|tk�r||tˆ||dt  … ƒƒ |dt 7 }q2|t k�rÊˆ| }|d7 }t!d "‡fdd„ˆ||dt#j$  … D ƒ¡ƒ}
||||
ƒ |dt#j$ 7 }ˆd7 ‰t%|ƒD ].}|tˆ||dt  … ƒƒ |dt 7 }�q�ˆd8 ‰q2|t&t't(t)t*fk�rúˆ| }|d7 }|||ƒ q2|t+k�r(ˆ| }||||| d� |d7 }q2|t,k�r¨ˆ| }||||| d� |�ržˆ|d || ƒ ||7 }|‰ ˆ| }|�r’|d||| d� n|tƒ �qL|d7 }q2|t-t.t/fk�rˆ||d … \}}}|t0k�rÜd}||||||| d� ˆ|d || ƒ ||7 }q2|t1k�rJˆ||d … \}}|||||| d� |d7 }q2|t2t3fk�rœˆ||d … \}}|||||| d� ˆ|d || ƒ ||7 }q2|t4k�rÄˆ||d … \}}}}|t0k�rÌd}|||t5|ƒ|||| d� |d ‰ |t6@ �rŠˆ|d |d … \}}|d|ƒ |d ‰ ˆˆ ˆ | … }|ddd "dd„ |D ƒ¡ dd "t7t|ƒ¡ ƒ ˆ |7 ‰ |dˆˆ ˆ | … ƒ ˆ |7 ‰ |t8@ �rºˆd7 ‰|dƒ ˆˆ || ƒ ˆd8 ‰||7 }q2t9|ƒ‚q2ˆd8 ‰d S )N)Útoc                    sX   | d k	r"ˆ   | ¡ |d| f f7 }tdˆˆˆˆ kr6dndf dˆd  d� t|Ž  d S )Nz(to %d)z%*d%s ú:Ú.z  r   ©Úend)ÚaddÚprint)rÂ   Úargs)ÚlabelsÚlevelÚoffset_widthÚstartr   r   Úprint_p  s    

ÿz!dis.<locals>.dis_.<locals>.print_c                     s"   t dˆdˆ    d� t | Ž  d S )Nú r   rÅ   )rÈ   )rÉ   )rË   rÌ   r   r   Úprint_2x  s    z"dis.<locals>.dis_.<locals>.print_2r   z
%#02x (%r)é   ZAT_é	   Z	CATEGORY_r   z%#02x %#02x (%r-%r)rt   ó    c                 3   s   | ]}|  tjˆ j¡V  qd S r   )Úto_bytesr!   r˜   Ú	byteorderr½   )Úsysr   r   r   ©  s   ÿz$dis.<locals>.dis_.<locals>.<genexpr>ÚbranchÚ	MAXREPEATr¬   é   z  prefix_skipz  prefixr»   r¼   c                 s   s   | ]}d | V  qdS )z%#02xNr   r½   r   r   r   r   ä  s     z(%r)Ú z	  overlapÚin):ÚOPCODESr>   r.   r4   r6   r@   rA   r,   r-   r+   ÚLITERAL_IGNOREÚNOT_LITERAL_IGNOREÚLITERAL_UNI_IGNOREÚNOT_LITERAL_UNI_IGNOREÚLITERAL_LOC_IGNOREÚNOT_LITERAL_LOC_IGNOREÚchrrF   r¶   ÚATCODESr™   rN   ÚCHCODESr/   r2   r*   r1   ro   rp   rq   rÁ   r�   rs   Úlistr¿   r!   r˜   rw   rC   rQ   rS   rT   rR   rM   rL   r?   r;   r<   rØ   rU   ÚASSERTÚ
ASSERT_NOTr®   Úbinr¯   rx   r±   Ú
ValueError)rÍ   rÆ   rÎ   rÐ   r   ra   Úargrd   rc   rj   r‡   r	   r²   Úmaxr   Ú
prefix_lenr¥   rž   ©rV   Údis_rÊ   rË   rÌ   rÖ   )rÍ   r   rï   o  sþ    

  ÿ
   ý


 

ÿ


ÿ












þ


zdis.<locals>.dis_)rÖ   Úsetr   r¶   rÀ   r   rî   r   Údish  s     rñ   c              	   C   s–   t | ƒr| }t | |¡} nd }t| |ƒ}|t@ r>tƒ  t|ƒ | jj}d g| jj	 }| 
¡ D ]\}}|||< q\t ||| jjB || jj	d |t|ƒ¡S )Nr   )r¸   Ú	sre_parseÚparserº   ÚSRE_FLAG_DEBUGrÈ   rñ   r¹   Ú	groupdictÚgroupsÚitemsr!   Úcompiler   r   )ri   r   rW   rV   Ú
groupindexÚ
indexgroupre   r   r   r   r   rø   ÷  s(    

 
 
 ýrø   )NNN)r   )/Ú__doc__r!   rò   Úsre_constantsÚMAGICr™   r-   r+   r   r?   Ú
MIN_REPEATr:   r   r>   r.   r   rç   rè   r   r4   r/   r�   Ú_equivalencesr$   r   r   r=   r3   r0   r˜   r�   r­   r’   Úintr|   r~   r9   r¡   r¢   r£   r«   r´   r¸   rº   rÁ   rñ   rø   r   r   r   r   Ú<module>   sJ   
$ÿÿ
 3
 
	,; 