o
    K+gEm                     @   s$  d Z ddlZddlZddlT ejeksJ 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  )i2  i  )i4  i  )i>  i  )iA  i  )iB  i  i  )iJ  i  )ic  i  )i  iK  )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   =/var/www/html/squashfs-root/usr/lib/python3.10/sre_compile.py	<genexpr>N   s    z<dictcomp>.<genexpr>)tuple)r   tr   r
   r   
<dictcomp>N   s
    r   c                 C   s    ||@ r	| | M } | |B | @ S r   r   )flags	add_flags	del_flags
TYPE_FLAGSr   r   r   _combine_flagsQ   s   
r   c                 C   s  | j }t}t}t}t}t}d }	d }
d }|t@ r.|t@ s.|t@ r(t	j
}	t	j}
t}nt	j}	t	j}
|D ]4\}}||v r|t@ sF|| || q0|t@ rU|t|  || q0|	|sb|| || q0|
|}|ss|t|  || q0||vr|t|  || q0|t || }|d |tu r|t |f||  D ]
}|t || q|t || | | |< q0|tu rt||	|
|\}}|t@ r|t@ r|t n|s|t n|s|t n|t || }|d t|||  || | | |< q0|tu r|t@ r|t q0|t q0||v r|t@ rt d|f t!|d r[|t"u r.|t# n|t$ || }|d ||d  ||d  t%| |d | |t& || | | |< q0|t' || }|d ||d  ||d  t%| |d | || | | |< |t"u r|t( q0|t) q0|t*u r|\}}}}|r|t+ ||d d  t%| |t,||| |r|t+ ||d d d  q0||v r|| q0||v r|| || }|d |d dkr|d n|d - \}}||kr t d|| t%| |d | |t& || | | |< q0|t.u r=|| || }|d t%| || |t& || | | |< q0|t/u rm|| |t0@ rQt12||}|t@ r]t32||}n|t@ rht42||}|| q0|t5u r|| g }|j }|d D ]'}|| }|d t%| || |t6 |||  |d || | | |< q|t |D ]}|| | | |< qq0|t7u r|| |t@ rt8| }n	|t@ rt9| }|| q0|t:u r|t@ s|| n|t@ r|t; n|s|t< n|t= ||d  q0|t>u r_|| ||d d  || }|d t%| |d | |d rT|t6 || }|d || | d | |< t%| |d | || | | |< q0|| | d | |< q0t d|f 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_iscasedZunicode_tolower_ignorecase_fixesascii_iscasedZascii_tolowerZOP_LOCALE_IGNOREZ	OP_IGNOREZ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   getwidthZCALLATSRE_FLAG_MULTILINEZAT_MULTILINEgetZ	AT_LOCALEZ
AT_UNICODEBRANCHJUMPCATEGORY	CH_LOCALE
CH_UNICODEGROUPREFGROUPREF_LOC_IGNOREGROUPREF_IGNOREGROUPREF_UNI_IGNOREGROUPREF_EXISTS)codepatternr   emit_lenZLITERAL_CODESZREPEATING_CODESZSUCCESS_CODESZASSERT_CODESiscasedZtolowerfixesopavloskipkcharsethascasedgroupr   r   phitailZ
tailappendZskipyesZskipnor   r   r   r8   W   sJ  













































 r8   c                 C   s   |j }| D ]d\}}|| |tu rq|tu r|| q|tu s#|tu r0||d  ||d  q|tu r:|| q|tu rD|| q|tu rc|t	@ rS|t
|  q|t@ r^|t|  q|| qtd|f |t d S )Nr   r   z%internal: unsupported set operator %r)r   r'   r(   RANGERANGE_UNI_IGNORECHARSETextend
BIGCHARSETrE   r   rF   r    rG   r3   r)   )rX   r   rM   rO   rS   rT   r   r   r   r.   	  s,   

r.   c              	   C   sx  g }g }t d}d}| D ]\}}		 z|tu r?|r:||	}
d||
< |r1|
|v r1||
 D ]}d||< q*|s9||	r9d}ngd||	< nb|tu rt|	d |	d d }|r|rnt||D ]}d||< ||v rl|| D ]}d||< qeqWnt||D ]}d||< qs|stt||}n|D ]}d||< qn|tu r|||	f n|||	f W n( ty   t	|dkr|dd 7 }Y q|rd}|tu rt
}|||	f Y nw 	 qg }d}	 |d|}|dk rn%t	|dkrd }n|d|}|dk r||t	|f n|||f q|d urB|D ] \}}|| dkr|t|f q	|t||d ff q	||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 ],}|||d  }||v r|| ||d < qq| ||d < ||< |d7 }||7 }qqt|}|gt| |dd< |t|f ||7 }||fS )
N   FTr   r       i   r   i   )	bytearrayr(   r^   rangemapanyr'   r   
IndexErrorr   r_   find
_mk_bitmapr`   bytes_bytes_to_codesrb   )rX   rQ   ZfixuprR   outr]   ZcharmaprY   rS   rT   rU   rW   rr   Zrunsqr[   datacompsmappingZblockZchunkr   r   r   r+   $  s   







r+      r   s   0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c                    s8   |  td d d  fddttd  D S )Nc                    s"   g | ]}|  | d qS )r   r   )r   r   	_CODEBITS_intsr   r   
<listcomp>  s    z_mk_bitmap.<locals>.<listcomp>r   )	translate_BITS_TRANSrf   r   )bitsrw   rx   r   rv   r   rk     s   rk   c                 C   s@   t | d}|jtjksJ t||j t| ksJ | S )NI)
memoryviewcastitemsizer!   CODESIZEr   tolist)bar   r   r   rm     s   rm   c                 C   sD   t | dkrdS | d \}}|tu r|d d u ot|d S |tv S )Nr   Fr   ru   )r   r=   r4   _UNIT_CODES)r[   rS   rT   r   r   r   r4     s   r4   c                 C   s|   dgt |  }tdt | D ]-}||d  }| | | | kr5|dkr'd||< n||d  }| | | | ks|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   rf   )prefixZtabler   Zidxr   r   r   _generate_overlap_table  s   	r   c                 C   s    | t @ sd S | t@ rtjS tjS r   )r   r    r!   r"   r$   )r   r   r   r   _get_iscased  s
   r   c                 C   s   g }|j }d }t|}| jD ]Y\}}|tu r#|r||r nO|| q|tu rf|\}}	}
}t||	|
}|t@ r=|t@ r= n0t||\}}}|d u r\|d urRt	|}n
|d ur\t	|| }|
| |se nq n||dfS ||dfS )NTF)r   r   rq   r(   r=   r   r   r   _get_literal_prefixr   ra   )rN   r   r   Zprefixappendprefix_skiprQ   rS   rT   rZ   r   r   r[   Zflags1Zprefix1Zprefix_skip1got_allr   r   r   r     s6   




r   c                 C   sZ  	 | j sd S | j d \}}|turn|\}}}} t|||}|t@ r(|t@ r(d S qt|}|tu r>|r9||r9d S ||fgS |tu rng }|j}	|d D ] }
|
sR d S |
d \}}|tu ri|rb||si|	||f qK d S |S |t	u r|}|r|D ]0\}}|tu r||r d S qx|t
u r|d dkr d S tt|t|d |d d r d S qx|S d S )NTr   r   i  )rq   r=   r   r   r   r   r(   rC   r   r*   r^   rh   rg   rf   )rN   r   rS   rT   rZ   r   r   rQ   rX   Zcharsetappendr[   r   r   r   _get_charset_prefix  sV   
 r   c                 C   st  |  \}}|tkrt}|dkr| tdd||g d S g }d}g }|t@ r*|t@ s9t||\}}}|s9t||}| j}	|	t t	| }
|	d d}|rYt
}|d u rX|rX|tB }n|r_|tB }|	| |tk rl|	| n
|	t |d t }|	t|t |r|	t	| |d u rt	|}|	| | | | t| n|rt|\}}|rJ t|||  t	| |
 | |
< d S )Nr      )r?   MAXCODEra   INFOr   r   r   r   r   r   SRE_INFO_PREFIXZSRE_INFO_LITERALSRE_INFO_CHARSETminr   r+   r.   )rM   rN   r   rU   r\   r   r   rX   r   rO   rV   ZmaskrY   r   r   r   _compile_info0  sT   


r   c                 C   s   t | ttfS r   )
isinstancestrrl   )objr   r   r   isstringk  s   r   c                 C   s8   | j j|B }g }t|| | t|| j| |t |S r   )stater   r   r8   rq   r   r9   )r[   r   rM   r   r   r   _coden  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   ~  s   $ z_hex_code.<locals>.<genexpr>)joinrM   r   r   r   	_hex_code}  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v r=|| n|tt	t
tttttfv r^| }|d7 }||d|t|f  n|tu r| }|d7 }tt| }|d d d	kszJ |||dd   nh|tu r| }|d7 }tt| }|d d
 dksJ |||d
d   nA|ttttfv rЈ| }||||| d |d ||  ||7 }n|ttfv r||d  \}}	|d7 }||d||	t|t|	f  n|tu r||t||dt    |dt 7 }n|tu rh| }|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 }qJd8 n|t%t&t't(t)fv r| }|d7 }||| nl|t*u r| }||||| d |d7 }nT|t+u rۈ| }||||| d |rՈ|d ||  ||7 }| | }|r|d||| d n|t |s|d7 }n|t,t-t.fv r||d  \}}}|t/krd}||||||| d |d ||  ||7 }n|t0u r,||d  \}}|||||| d |d7 }n|t1t2fv rU||d  \}}|||||| d |d ||  ||7 }n|t3u r||d  \}}}}|t/krmd}|||t4||||| d |d  |t5@ r̈|d |d  \}}|d| |d    |  }|ddd!dd |D  dd!t6t|   |7  |d  |    |7  |t7@ rd7 |d  ||  d8 ||7 }nt8|||k sd8 d S )N)toc                    sX   | d ur  |  |d| f f7 }td v rd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_  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_2  s   z"dis.<locals>.dis_.<locals>.print_2r   z
%#02x (%r)   ZAT_	   Z	CATEGORY_r   z%#02x %#02x (%r-%r)rc       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>Z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)9ZOPCODESr9   r)   r/   r1   r;   r<   r'   r(   r&   ZLITERAL_IGNOREZNOT_LITERAL_IGNOREZLITERAL_UNI_IGNOREZNOT_LITERAL_UNI_IGNOREZLITERAL_LOC_IGNOREZNOT_LITERAL_LOC_IGNOREchrr@   r   ZATCODESrE   ZCHCODESr*   r-   r%   r,   r^   r_   r`   r   rw   rb   listr   r!   r   rf   r>   rH   rJ   rK   rI   rD   rC   r:   r6   r7   r   rL   ASSERT
ASSERT_NOTr   binr   rg   r   
ValueError)r   r   r   r   r   rS   argrV   rU   r\   rs   r	   r   maxr   Z
prefix_lenr   r   rM   dis_r   r   r   r   )r   r   r     s   

"





	










szdis.<locals>.dis_)r   setr   r   r   r   r   r   dis  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   Z	groupdictZgroupsitemsr!   compiler   r   )r[   r   rN   rM   Z
groupindexZ
indexgrouprW   r   r   r   r   r     s"   


r   )NNN)r   ).__doc__r!   r   sre_constantsZMAGICr(   r&   r   r:   Z
MIN_REPEATr5   r   r9   r)   r   r   r   r   r/   r*   r   Z_equivalencesr#   r   r   r8   r.   r+   r   rw   r   r|   intrk   rm   r4   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sL   

4
 3
 
	,; 