
    F\hf                     j   S r SSKrSSKJr  SSK7  SSKJr  \R                  \:X  d   S5       e\\	1r
\\1r\\1r\
\\1-  r\\\\4\\\\4\\\\40r\R<                  4S jrS	 r S
 r!SS jr"\RF                  S-  r$S\$-  S-
  r%Sr&\$\'4S jr(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3SS jr4g)zInternal support module for sre    N   )_parser)*)_EXTRA_CASESzSRE module mismatchc                 .    X-  (       a  X) -  n X-  U) -  $ N )flags	add_flags	del_flags
TYPE_FLAGSs       #/usr/lib/python3.13/re/_compiler.py_combine_flagsr      s"    )++    c           
         U R                   n[        n[        n[        n[        n[
        nS n	S n
S nU[        -  (       ac  U[        -  (       dU  U[        -  (       a'  [        R                  n	[        R                  n
[        nO [        R                  n	[        R                  n
U GH  u  pX;   Ga  U[        -  (       d  U" U5        U" U5        M,  U[        -  (       a  U" [        U   5        U" U5        MS  U	" U5      (       d  U" U5        U" U5        Mr  U
" U5      nU(       d  U" [         U   5        U" U5        M  X;  a  U" ["        U   5        U" U5        M  U" [$        5        U" U 5      o" S5        U[&        L a  U" [(        5        U4X   -    H  nU" [*        5        U" U5        M     U" [,        5        U" U 5      U-
  X'   GM'  U[.        L a  [1        XX5      u  nnU[        -  (       a  U[        -  (       a  U" [2        5        O4U(       d  U" [.        5        O U(       d  U" [4        5        OU" [$        5        U" U 5      o" S5        [7        UX 5        U" U 5      U-
  X'   GM  U[8        L a,  U[:        -  (       a  U" [<        5        GM  U" [8        5        GM  X;   a  [?        US   5      (       a]  U" Xl   S   5        U" U 5      o" S5        U" US   5        U" US   5        [A        XS   U5        U" [B        5        U" U 5      U-
  X'   GMq  U" Xl   S   5        U" U 5      o" S5        U" US   5        U" US   5        [A        XS   U5        U" U 5      U-
  X'   U" Xl   S   5        GM  U[D        L aj  Uu  nnnnU(       a  U" [F        5        U" US-
  S-  5        [A        U U[I        UUU5      5        U(       a   U" [F        5        U" US-
  S-  S-   5        GM?  GMB  U[J        L aC  U" [J        5        U" U 5      o" S5        [A        XU5        U" [B        5        U" U 5      U-
  X'   GM  X;   a  U" U5        GM  X;   a  U" U5        U" U 5      o" S5        US   S:  a	  U" S5        ODUS   RM                  5       u  nnU[N        :  a  [Q        S5      eUU:w  a  [S        S5      eU" U5        [A        XS   U5        U" [B        5        U" U 5      U-
  X'   GM;  U[T        L a}  U" U5        U[V        -  (       a  [X        R[                  X5      nU[        -  (       a  [\        R[                  X5      nO#U[        -  (       a  [^        R[                  X5      nU" U5        GM  U[`        L a  U" U5        / nUR                   nUS    HM  nU" U 5      o" S5        [A        XU5        U" [b        5        U" U" U 5      5        U" S5        U" U 5      U-
  X'   MO     U" [,        5        U H  nU" U 5      U-
  U U'   M     GM\  U[d        L aB  U" U5        U[        -  (       a
  [f        U   nOU[        -  (       a	  [h        U   nU" U5        GM  U[j        L a`  U[        -  (       d	  U" U5        O;U[        -  (       a  U" [l        5        O U(       d  U" [n        5        OU" [p        5        U" US-
  5        GM  U[r        L a  U" U5        U" US   S-
  5        U" U 5      nU" S5        [A        XS   U5        US   (       aM  U" [b        5        U" U 5      nU" S5        U" U 5      U-
  S-   U U'   [A        XS   U5        U" U 5      U-
  U U'   GM  U" U 5      U-
  S-   U U'   GM  [S        SU< 35      e   g )Nr      r   zlooks too much behindz(look-behind requires fixed-width patternz#internal: unsupported operand type ):appendlen_LITERAL_CODES_REPEATING_CODES_SUCCESS_CODES_ASSERT_CODESSRE_FLAG_IGNORECASESRE_FLAG_LOCALESRE_FLAG_UNICODE_sreunicode_iscasedunicode_tolowerr   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_simple_compileSUCCESS
SUBPATTERNMARKr   ATOMIC_GROUPgetwidthMAXCODEerrorPatternError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skipnos                               r   r2   r2   %   sG   ;;DD"M&O"M LGGE""5?+B##**G**G E((G((G..RR(%b)*RR[[RRR[2'H_*2./H':DtAw[(V UUY.WQ / M!%dd!2DJ2X 1"w NGX**u/F]#RY]#:DtAwWe2dd*DJ3Y&WS	"r!u~~_(+,Dz47RURU!ue,W!$Z$.
_(+,Dz47RURU!ue,!$Z$.
_(+,:-/*E9iT
eAgq[!T1nUIyIJT
eAgq[]#  < :DtAwTu%Mdd*DJ HH:DtAw!uzQA)B< 7888&'QRRRTa5%(Mdd*DJ2XH))!%%b-&]]2*))^^B+H6\HDJeDz475)T
4:&Q!$Z$.
  M!$Z$.T
 8^H&r]))^H8^..R(()_%()AJ?"HAqM4jG$q'Ta5%(!uT
dT!W $T
W 4q 8W!ue,#DzF2V $T
W 4q 8W!DRFKLLy r   c                    UR                   nU  H  u  pEU" U5        U[        L a  M  U[        L a
  U" U5        M+  U[        L d	  U[        L a  U" US   5        U" US   5        MU  U[
        L a  UR                  U5        Mq  U[        L a  UR                  U5        M  U[        L aH  U[        -  (       a  U" [        U   5        M  U[        -  (       a  U" [        U   5        M  U" U5        M  [        SU< 35      e   U" [        5        g )Nr   r   z#internal: unsupported set operator )r   r&   r'   RANGERANGE_UNI_IGNORECHARSETextend
BIGCHARSETrC   r   rD   r   rE   r:   r(   )r[   r
   rK   rM   rV   rW   s         r   r-   r-      s    ;;DR<7]H5[B"22AKAK7]KKO:KKO8^&Yr]#))Z^$R!DRFKLL+ , 	Mr   c                    / n/ n[        S5      nSnU  GH#  u  p  U[        L aJ  U(       a>  U" U	5      n	SXi'   U(       a  X;   a  X9    H  n
SXj'   M	     U(       d  U" U	5      (       a  SnOSXi'   OU[        L a  [        U	S   U	S   S-   5      nU(       af  U(       a-  [	        X+5       H  nSXl'   X;   d  M  X<    H  n
SXj'   M	     M     O[	        X+5       H  nSXl'   M	     U(       d  [        [	        X5      5      nO=U H  nSXl'   M	     O/U[        L a  UR                  X45        OUR                  X45         GM&     / nSn UR                  SU5      nUS:  a  O[[        U5      S:  a  S nOIUR                  SU5      nUS:  a  UR                  U[        U5      45        OUR                  X45        Mt  Ubp  U HA  u  pX-
  S:X  a  UR                  [        U45        M&  UR                  [        XS-
  445        MC     XE-  nU(       d  [        U5      [        U 5      :  a  XG4$ X4$ [        U5      S:X  a)  [        U5      nUR                  [        U45        XE-  nXG4$ [        U5      n0 n[        S5      nSn[        5       n[        SS	S5       H4  nXlUS-    nUU;   a  UU   UUS-  '   M  U=UUS-  '   UU'   US-  nUU-  nM6     [        U5      nU/[        U5      -   USS& UR                  [         U45        XE-  nXG4$ ! [         ar    [        U5      S:X  a  USS-  -  n GM  U(       a:  U[        L a  U(       a  [        nSnO!U[        L d   eU(       d  U" U	5      (       a  SnUR                  X45         GNHf = f)
N   FTr   r       i   r   i   )	bytearrayr'   re   rangemapanyr&   r   
IndexErrorr   rf   find
_mk_bitmaprg   bytes_bytes_to_codesri   )r[   rS   fixuprU   outr`   charmapr\   rV   rW   rZ   rirunsqr^   datacompsmappingblockchunks                        r   r*   r*      s   
CDnGH;&="2Y&' R[%*Y-.
 &/'GBKK'+H&'5[beRU1W-A %(]-.
#$:-2X56
 .6 &3 &)]-.
 &3''*3w?';H!"A)*GJ "#6\JJx(KK)8 } B D	A
LLAq5t9>DLLAq5KKCL)*QF  DAuz

GQ<(

EA1u:./	 
 	s3x#g,.=    7|s'"

GT?#}, GnGEnGE;D1eS!1s7#E> %eGAH/44GAHeQJEEMD " dD/'22D1IJJ
D!"KC=M  &w<3&uv~-G  U{ !1B#'!W},}'GBKK'+HRH%5&s?   AL*L/AL4AL:LL$L!N )AN ?N    s   0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c                     U R                  [        5      S S S2   n[        [        U5      SU* 5       Vs/ s H  nU" X4U-
  U S5      PM     sn$ s  snf )Nr   r   )	translate_BITS_TRANSrn   r   )bits	_CODEBITS_intsrz   s        r   rs   rs     s]    {#DbD)A3q61yj131 y=!$a(13 3 3s   Ac                     [        U 5      R                  S5      nUR                  [        R                  :X  d   e[        U5      UR                  -  [        U 5      :X  d   eUR                  5       $ )NI)
memoryviewcastitemsizer   CODESIZEr   tolist)bas     r   ru   ru     sW    13A::&&&q6AJJ#a&(((88:r   c                     [        U 5      S:w  a  gU S   u  pU[        L a  US   S L =(       a    [        US   5      $ U[        ;   $ )Nr   Fr   r   )r   r4   r1   _UNIT_CODES)r^   rV   rW   s      r   r1   r1     sI    
1v{qTFB	Z!u}0B0r   c                     S/[        U 5      -  n[        S[        U 5      5       H:  nXS-
     nX   X   :w  a  US:X  a  SX'   M   XS-
     nX   X   :w  a  M  US-   X'   M<     U$ )aN  
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   rn   )prefixtablerz   idxs       r   _generate_overlap_tabler     s~     C#f+E1c&k"Eli6;&axa.C	 i6;& QwEH # Lr   c                 |    U [         -  (       d  g U [        -  (       a  [        R                  $ [        R                  $ r   )r   r   r   r   r   )r
   s    r   _get_iscasedr     s/    &&	!	!###!!!r   c                    / nUR                   nS n[        U5      nU R                   H  u  pgU[        L a   U(       a  U" U5      (       a    OU" U5        M.  U[        L a|  Uu  pp[        XU
5      nU[        -  (       a  U[        -  (       a    OU[        X5      u  pnUc   Ub  [        U5      nOUb  [        U5      U-   nUR                  U5        U(       d    O
M    O   X$S4$ X$S4$ )NTF)r   r   r}   r'   r4   r   r   r   _get_literal_prefixr   rh   )rL   r
   r   prefixappendprefix_skiprS   rV   rW   r]   r   r   r^   flags1prefix1prefix_skip1got_alls                   r   r   r     s    F==LK5!G,,=72;;:-/*Ei#Ei@F++0H-@-K*G7"$"%f+K!-"%f+"<KMM'"  ) , D((%%r   c                     U R                   (       d  g U R                   S   u  p#U[        La  O0Uu  pEp`[        XU5      nU[        -  (       a  U[        -  (       a  g M]  [        U5      nU[        L a  U(       a  U" U5      (       a  g X#4/$ U[        L aT  / nUR                  n	US    H;  n
U
(       d    g U
S   u  p#U[        L a  U(       a  U" U5      (       d  U	" X#45        M;    g    U$ U[        L au  UnU(       aj  U Hd  u  p#U[        L a  U" U5      (       a    g M  U[        L d  M*  US   S:  a    g [        [        U[        US   US   S-   5      5      5      (       d  Md    g    U$ g )Nr   r   i  )r}   r4   r   r   r   r   r'   rA   r   r)   re   rp   ro   rn   )rL   r
   rV   rW   r]   r   r   rS   r[   charsetappendr^   s              r   _get_charset_prefixr     sU   
||aZ/1,)u;&&5?+B  5!G	W}wr{{z	vAAqTFBW}g'"++rh'  	r!=r{{# #5[!uv~#3wbeRU1W(=>??# " r   c                 \   UR                  5       u  p4U[        :  a  [        nUS:X  a  U R                  [        SSX4/5        g / nSn/ nU[        -  (       a  U[
        -  (       d   [        X5      u  pVnU(       d  [        X5      nU R                  n	U	" [        5        [        U 5      o" S5        SnU(       a  [        nUc  W(       a	  U[        -  nOU(       a	  U[        -  nU	" U5        U[        :  a	  U	" U5        OU	" [        5        US [         nU	" U5        U(       aS  U	" [        U5      5        Uc  [        U5      nU	" U5        U R                  U5        U R                  [        U5      5        O)U(       a"  [        U5      u  p|U(       a   e[        XrU 5        [        U 5      U
-
  X
'   g )Nr      )r7   r8   rh   INFOr   r   r   r   r   r   SRE_INFO_PREFIXSRE_INFO_LITERALSRE_INFO_CHARSETr   r*   r-   )rK   rL   r
   rX   r_   r   r   r[   r   rM   rY   maskr\   s                r   _compile_infor     so    FB	G|	QwT1a()FKG''EO,C':7'J$W)'9G ;;DJt9Dd1gD7**D	&&J	G|RW!HS[v;K[F+F34	-g6|.TT!DJr   c                 .    [        U [        [        45      $ r   )
isinstancestrrt   )objs    r   isstringr   =  s    cC<((r   c                     U R                   R                  U-  n/ n[        X U5        [        X R                  U5        UR                  [        5        U$ r   )stater
   r   r2   r}   r   r3   )r^   r
   rK   s      r   _coder   @  sF    GGMME!ED $5! T665!KKKr   c                 8    SSR                  S U  5       5      -  $ )N[%s], c              3   X   #    U  H   nS [         R                  S-  S-   U4-  v   M"     g7f)z%#0*xr   N)r   r   .0xs     r   	<genexpr>_hex_code.<locals>.<genexpr>P  s'     M1gq):A(>>s   (*)join)rK   s    r   	_hex_coder   O  s    DIIMMMMMr   c                    ^ ^^^^^ SS K m[        5       mSm[        [        [        T 5      S-
  5      5      mU UUUUU4S jmT" S[        T 5      5        g )Nr   r   c                 r
  >^  S S.UUUU 4S jjnUU4S jnTS-  mT nXA:  Ga  Um TU   nUS-  n[         U   nU[        [        [        [        [
        [        [        4;   a
  U" U5        GOU[        [        [        [        [        [        [        [        4;   a#  TU   nUS-  nU" USU[!        U5      4-  5        GOnU["        L a4  TU   nUS-  n[%        [&        U   5      nUS S S:X  d   eU" XVSS  5        GO1U[(        L a4  TU   nUS-  n[%        [*        U   5      nUS S S	:X  d   eU" XVSS  5        GOU[,        [.        [0        [2        4;   a"  TU   nU" XWXG-   S9  T" US-   XG-   5        XG-  nGOU[4        [6        4;   a1  TXDS
-    u  pUS
-  nU" USX[!        U5      [!        U	5      4-  5        GOwU[8        L a,  U" U[;        TXDS[<        -  -    5      5        US[<        -  -  nGOBU[>        L a  TU   nUS-  n[A        SRC                  U4S jTXDS[D        RF                  -  -     5       5      5      n
U" XVU
5        US[D        RF                  -  -  nTS-  m[I        U5       H,  nU" [;        TXDS[<        -  -    5      5        US[<        -  -  nM.     TS-  mGOU[J        [L        [N        [P        [R        4;   a  TU   nUS-  nU" XV5        GO\U[T        L a  TU   nU" XWXG-   S9  US-  nGO>U[V        L a\  TU   nU" XWXG-   S9  U(       a@  T" US-   XG-   5        XG-  nUm TU   nU(       a  U" SXtU-   S9  OU" [        5        U(       a  M@  US-  nGOU[X        [Z        [\        [^        [`        4;   a4  TXDS-    u  p|nU[b        :X  a  SnU" XWXXG-   S9  T" US-   XG-   5        XG-  nGOU[d        L a  TXDS
-    u  pgU" XVXtU-   S9  US
-  nGOcU[f        [h        4;   a'  TXDS
-    u  pvU" XWXdU-   S9  T" US
-   XG-   5        XG-  nGO,U[j        L a"  TU   nU" XWXG-   S9  T" US-   XG-   5        XG-  nGOU[l        L a  TXDS-    u  p~pU[b        :X  a  SnU" XW[o        U5      XXG-   S9  US-   m U[p        -  (       a  TUS-   US-    u  nnU" SU5        US-   m TT T U-    nU" SSSRC                  S U 5       5      -  SSRC                  [s        [         U5      5      -  5        T U-  m U" STT T U-    5        T U-  m U[t        -  (       a  TS-  mU" S5        T" T XG-   5        TS-  mXG-  nO[w        U5      eXA:  a  GM  TS-  mg )N)toc                    > U b  TR                  U 5        USU 4-  4-  n[        STTTT;   a  SOS4-  STS-
  -  S9  [        U6   g )Nz(to %d)z%*d%s :.z  r   end)addprint)r   argslabelsleveloffset_widthstarts     r   print_!dis.<locals>.dis_.<locals>.print_Z  sW    ~

2bU*,,(lE%6/3sSSE!Gn&4Lr   c                  :   > [        STST-  -   -  S9  [        U 6   g )N r   r   )r   )r   r   r   s    r   print_2"dis.<locals>.dis_.<locals>.print_2b  s     c<!E'1234Lr   r   z
%#02x (%r)   AT_	   	CATEGORY_r   z%#02x %#02x (%r-%r)rk   r   c              3   x   >#    U  H/  nUR                  [        R                  TR                  5      v   M1     g 7fr   )to_bytesr   r   	byteorder)r   r   syss     r   r   $dis.<locals>.dis_.<locals>.<genexpr>  s/      (R1PA )*

4==#--(P(P1Ps   7:branch	MAXREPEATr      z  prefix_skipz  prefixr   r   c              3   ,   #    U  H
  nS U-  v   M     g7f)z%#02xNr	   r   s     r   r   r     s     .KFqw{Fs   z(%r) z	  overlapin)<OPCODESr3   r(   r.   r0   	MAX_UNTIL	MIN_UNTILr&   r'   r%   LITERAL_IGNORENOT_LITERAL_IGNORELITERAL_UNI_IGNORENOT_LITERAL_UNI_IGNORELITERAL_LOC_IGNORENOT_LITERAL_LOC_IGNOREchrr;   r   ATCODESrC   CHCODESr)   r,   r$   r+   re   rf   rg   r   r   ri   listr   r   r   rn   r5   rF   rH   rI   rG   rB   rA   REPEAT
REPEAT_ONEMIN_REPEAT_ONEPOSSESSIVE_REPEATPOSSESSIVE_REPEAT_ONEr   rJ   ASSERT
ASSERT_NOTr6   r   binr   ro   r   
ValueError)r   r   r   r   rz   rV   argrY   rX   r_   r   jminmaxr
   
prefix_lenr   r   rK   dis_r   r   r   r   s   `                 r   r  dis.<locals>.dis_Y  s   ! 	 		
 	
gEaBFABgwWF4 4r
&(:*,B*,BD D 1gQr<3C/9:r1gQ'#,'2Aw%'''rqr7#x1gQ'#,'2Aw+---rqr7#I}mDDAwrAF+QqS!&!	/00a1Qr0BCGSW3MMNwr9T!i-?%@ABS)^#z!1gQsxx (R15aS$--=O9O1P(R  R Sr(S$--''
sAId1#y..@&ABCi'A $ 
h9L+- -1gQrtAwrAF+QvAwrAF+1af%IAE7DxD&9w d Q
N)+@B B!%a13)#%Craf5QqS!&!	& aCL	r40Q
++ aCL	r40QqS!&!	|#AwrAF+QqS!&!	t(,Q!%S)#%CrUS!&A!?*.21Q3!n+JO[9EE!%z)9:FJ"TYY.KF.K%KK"RWWSf-=%>>@ Z'EKeU:5E)FGZ'E++QJEDM'QJE	 n$o gr 	
r   )r   setr   r   )rK   r  r   r   r   r   s   `@@@@@r   disr  R  sF    UFEs3t9q=)*LI IV 	CIr   c           
         [        U 5      (       a  U n[        R                  " X5      n OS n[        X5      nU[        -  (       a  [        5         [        U5        U R                  R                  nS /U R                  R                  -  nUR                  5        H	  u  pgXeU'   M     [        R                  " X!U R                  R                  -  UU R                  R                  S-
  U[        U5      5      $ )Nr   )r   r   parser   SRE_FLAG_DEBUGr   r  r   	groupdictgroupsitemsr   compiler
   tuple)r^   r
   rL   rK   
groupindex
indexgrouprZ   rz   s           r   r  r    s     {{MM!#?D~D	 ""J!''..(J  "1 # <<&	qE*%
 
r   )NNN)r   )5__doc__r   r   r   
_constants_casefixr   MAGICr'   r%   r   r3   r(   r   r   r   r   r.   r)   r   
MIN_REPEATr   r   r   
MAX_REPEATr   r   r   r   r   r   r   r2   r-   r*   r   r   r8   r   intrs   ru   r1   r   r   r   r   r   r   r   r   r  r  r	   r   r   <module>r     s   &    "zzU 11 1;'7#$Ry( N3J/)74IJ  &00,oMb6Ob MMA		>Q
(s 3
*"&>*X9"v)NRj
r   