o 0¦iEmã@sdZddlZddlZddlTeehZeee hZ e e hZ eehZeeehBZdZdd„eDƒZejfdd„Zd d „Zd d „Zd,d d„ZejdZde>dZdZeefdd„Z dd„Z!dd„Z"dd„Z#dd„Z$dd„Z%dd„Z&d d!„Z'd"d#„Z(d$d%„Z)d&d'„Z*d(d)„Z+d-d*d+„Z,dS).zInternal support module for sreéN)Ú*))éii1)ési)éµi¼)iEi¹i¾)i�iÓ)i°iã)i²iÐ)iµiõ)i¸iÑ)iºið)iÀiÖ)iÁiñ)iÂiÃ)iÆiÕ)i2i€)i4i�)i>i‚)iAiƒ)iBi„i…)iJi†)ici‡)iˆiK¦)iai›)iûiûcs.i|]}|D]‰ˆt‡fdd„|Dƒƒ“qqS)c3s�|] }ˆ|kr|VqdS©N©)Ú.0Új©Úirú2/opt/alt/python310/lib64/python3.10/sre_compile.pyÚ Ns€z.)Útuple)rÚtrr r Ú Ns ÿÿrcCs ||@r ||M}||B|@Srr)ÚflagsÚ add_flagsÚ del_flagsÚ TYPE_FLAGSrrr Ú_combine_flagsQs rcCsÐ|j}t}t}t}t}t}d} d} d} |t@r.|t@s.|t@r(t j } t j } t } nt j } t j} |D�]4\} } | |vrµ|t@sF|| ƒ|| ƒq0|t@rU|t| ƒ|| ƒq0| | ƒsb|| ƒ|| ƒq0| | ƒ}| ss|t| ƒ||ƒq0|| vr‚|t| ƒ||ƒq0|tƒ||ƒ}|dƒ| tur–|tƒ|f| |D] }|tƒ||ƒq�|tƒ||ƒ|||<q0| turøt| | | | ƒ\}}|t@rÏ|t@rÏ|tƒn|sÖ|tƒn | sÝ|tƒn|tƒ||ƒ}|dƒt|||ƒ||ƒ|||<q0| tu�r |t@�r|tƒq0|tƒq0| |v�r’|t@�rt 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+ƒ||ddƒt%||t,|||ƒƒ|�rÇ|t+ƒ||dddƒq0| |v�rÒ|| ƒq0| |v�r|| ƒ||ƒ}|dƒ| ddk�rï|dƒn| d -¡\}}||k�rt dƒ‚||ƒt%|| d|ƒ|t&ƒ||ƒ|||<q0| t.u�r=|| ƒ||ƒ}|dƒt%|| |ƒ|t&ƒ||ƒ|||<q0| t/u�rm|| ƒ|t0@�rQt1 2| | ¡} |t@�r]t3 2| | ¡} n |t@�rht4 2| | ¡} || ƒq0| t5u�rº|| ƒg}|j}| dD]'} ||ƒ}|dƒt%|| |ƒ|t6ƒ|||ƒƒ|dƒ||ƒ|||<�q|tƒ|D] }||ƒ|||<�q­q0| t7u�rÛ|| ƒ|t@�rÍt8| } n |t@�rÖt9| } || ƒq0| t:u�r|t@�sê|| ƒn|t@�rô|t;ƒn | �sü|t<ƒn|t=ƒ|| dƒq0| t>u�r_|| ƒ|| ddƒ||ƒ}|dƒt%|| d|ƒ| d�rT|t6ƒ||ƒ}|dƒ||ƒ|d||<t%|| d|ƒ||ƒ|||<q0||ƒ|d||<q0t d| fƒ‚dS)Nrz*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ÚgrouprrÚpÚhiÚtailÚ tailappendÚskipyesÚskipnorrr r=WsJ                              €                 ÿ             �âr=cCsà|j}|D]d\}}||ƒ|turq|tur||ƒq|tus#|tur0||dƒ||dƒq|tur:| |¡q|turD| |¡q|turc|t @rS|t |ƒq|t @r^|t |ƒq||ƒqt d|fƒ‚|tƒdS)Nrrz%internal: unsupported set operator %r)rr,r-ÚRANGEÚRANGE_UNI_IGNOREÚCHARSETÚextendÚ BIGCHARSETrNrrOr rPr8r.)rfrrVrXrarbrrr r3 s,       r3c Csxg}g}tdƒ}d}|D]À\}} z‘|tur?|r:|| ƒ} d|| <|r1| |vr1|| D]} d|| <q*|s9|| ƒr9d}ngd|| <nb|turŽt| d| ddƒ} |r„|rnt|| ƒD]} d|| <| |vrl|| D]} d|| <qeqWn t|| ƒD]} d|| <qs|sƒtt|| ƒƒ}n| D]} d|| <q†n|turš| || f¡n| || f¡Wn(tyÊt |ƒdkr·|dd7}Yq|rÁd}|turÁt }| || f¡Ynw q g}d} |  d|¡}|dkrÝn%t |ƒdkræd}n|  d|¡}|dkrú| |t |ƒf¡n| ||f¡qÒ|du�rB|D] \}}||dk�r| t|f¡�q | t||dff¡�q ||7}|�s:t |ƒt |ƒk�r>||fS||fSt |ƒdk�r\t |ƒ}| t |f¡||7}||fSt|ƒ}i}tdƒ}d}tƒ}tdd dƒD],} || | d…}||v�rŠ|||| d<�qq||| d<||<|d7}||7}�qqt |ƒ}|gt|ƒ|dd…<| t|f¡||7}||fS) NéFTrróiÿri)Ú bytearrayr-roÚrangeÚmapÚanyr,rÚ IndexErrorrrpÚfindÚ _mk_bitmaprqÚbytesÚ_bytes_to_codesrs)rfr^Úfixupr`ÚoutrkÚcharmaprgrarbrcreÚrr ÚrunsÚqriÚdataÚcompsÚmappingÚblockÚchunkrrr r0$sÄ     €   €ü € ÿ€    ë   õ   r0érs0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111cs8| t¡ddd…‰‡‡‡fdd„ttˆƒdˆ ƒDƒS)Néÿÿÿÿcs"g|] }ˆˆ|ˆ|…dƒ‘qS)rr)rr ©Ú _CODEBITSÚ_intÚsrr Ú µsÿz_mk_bitmap..r)Ú translateÚ _BITS_TRANSrwr)Úbitsr�rŽrrŒr r|³sÿr|cCst|ƒ d¡}| ¡S)NÚI)Ú memoryviewÚcastÚtolist)ÚbÚarrr r~¸sr~cCsDt|ƒdkrdS|d\}}|tur|dduot|dƒS|tvS)NrFrr‹)rrBr9Ú _UNIT_CODES)rirarbrrr r9¿s  r9cCs|dgt|ƒ}tdt|ƒƒD]-}||d}||||kr5|dkr'd||<n||d}||||ks|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] rr)rrw)ÚprefixÚtabler Úidxrrr Ú_generate_overlap_tableÈs   ü €ržcCs |t@sdS|t@r tjStjSr)rr r!r"r%)rrrr Ú _get_iscasedÝs rŸcCsäg}|j}d}t|ƒ}|jD]Y\}}|tur#|r||ƒrnO||ƒq|turf|\}} } } t|| | ƒ} | t@r=| t@r=n0t| | ƒ\} }}|dur\|durRt |ƒ}n |dur\t |ƒ|}|  | ¡|senqn||dfS||dfS)NTF) rrŸr…r-rBrrrÚ_get_literal_prefixrrr)rWrr›Ú prefixappendÚ prefix_skipr^rarbrhrrriÚflags1Úprefix1Ú prefix_skip1Úgot_allrrr r ås6       ÿ  r c CsZ |jsdS|jd\}}|turn|\}}}}t|||ƒ}|t@r(|t@r(dSqt|ƒ}|tur>|r9||ƒr9dS||fgS|turng}|j} |dD] } | sRdS| d\}}|turi|rb||ƒsi| ||fƒqKdS|S|t ur«|}|r©|D]0\}}|turˆ||ƒr‡dSqx|t ur¨|ddkr•dSt t |t |d|ddƒƒƒr¨dSqx|SdS)NTrriÿÿ)r…rBrrrrŸr-rLrr/roryrxrw) rWrrarbrhrrr^rfÚ charsetappendrirrr Ú_get_charset_prefixsV  ÷      ÿ  €r¨c Csl| ¡\}}|tkr t}|dkr| tdd||g¡dSg}d}g}|t@r*|t@s9t||ƒ\}}}|s9t||ƒ}|j} | tƒt |ƒ} | dƒd} |rYt } |durX|rX| t B} n|r_| t B} | | ƒ|tkrl| |ƒn | tƒ|dt…}| t |tƒƒ|rž| t |ƒƒ|dur�t |ƒ}| |ƒ| |¡| t|ƒ¡n|r¬t|ƒ\}} t|||ƒt |ƒ| || <dS)Nré)rDÚMAXCODErrÚINFOrrr r¨rrÚSRE_INFO_PREFIXÚSRE_INFO_LITERALÚSRE_INFO_CHARSETÚminržr0r3) rVrWrrcrjr›r¢rfr¦rXrdÚmaskrgrrr Ú _compile_info0sR   €      r±cCst|ttfƒSr)Ú isinstanceÚstrr})Úobjrrr ÚisstringksrµcCs8|jj|B}g}t|||ƒt||j|ƒ| t¡|Sr)Ústaterr±r=r…rr>)rirrVrrr Ú_codens   r·cCsdd dd„|Dƒ¡S)Nú[%s]ú, css&�|]}dtjdd|fVqdS)z%#0*xrN)r!ÚCODESIZE©rÚxrrr r ~s€$z_hex_code..)Újoin©rVrrr Ú _hex_code}sr¿csNddl‰tƒ‰d‰tttˆƒdƒƒ‰‡‡‡‡‡‡fdd„‰ˆdtˆƒƒdS)Nrrc sÄddœ‡‡‡‡fdd„ }‡‡fdd„}ˆd7‰ˆ}||k�rÜ|‰ˆ|}|d7}t|}|tttttttfvr=||ƒ�n›|tt t t t t ttfvr^ˆ|}|d7}||d|t|ƒfƒ�nz|tur{ˆ|}|d7}tt|ƒ}|||dd…ƒ�n]|tur˜ˆ|}|d7}tt|ƒ}|||d d…ƒ�n@|ttttfvr¼ˆ|}|||||d�ˆ|d||ƒ||7}�n|ttfvráˆ||d …\}} |d 7}||d || t|ƒt| ƒfƒ�n÷|turü||tˆ||d t…ƒƒ|d t7}�nÜ|tu�rSˆ|}|d7}t d  !‡fdd„ˆ||d t"j#…Dƒ¡ƒ} |||| ƒ|d t"j#7}ˆd7‰t$|ƒD]} |tˆ||d t…ƒƒ|d t7}�q5ˆd8‰�n…|t%t&t't(t)fv�rlˆ|}|d7}|||ƒ�nl|t*u�r„ˆ|}|||||d�|d7}�nT|t+u�rƈ|}|||||d�|�rÀˆ|d||ƒ||7}|‰ˆ|}|�r¹|d|||d�n|tƒ|�s™|d7}�n|t,t-t.fv�rùˆ||d…\}} } | t/k�ràd} |||| | ||d�ˆ|d||ƒ||7}nß|t0u�rˆ||d …\}}||||||d�|d 7}nÁ|t1t2fv�r@ˆ||d …\}}||||||d�ˆ|d ||ƒ||7}n˜|t3u�rÔˆ||d…\}}} } | t/k�rXd} |||t4|ƒ| | ||d�|d‰|t5@�r·ˆ|d|d…\}}|d|ƒ|d‰ˆˆˆ|…}|ddd !dd„|Dƒ¡dd !t6t|ƒ¡ƒˆ|7‰|dˆˆˆ|…ƒˆ|7‰|t7@�rψd7‰|dƒˆˆ||ƒˆd8‰||7}nt8|ƒ‚||ksˆd8‰dS)N)ÚtocsX|durˆ |¡|d|ff7}tdˆˆˆˆvrdndfdˆdd�t|ŽdS)Nz(to %d)z%*d%s ú:Ú.z r©Úend)ÚaddÚprint)rÀÚargs)ÚlabelsÚlevelÚ offset_widthÚstartrr Úprint_ˆs  ÿ z!dis..dis_..print_cs"tdˆdˆd�t|ŽdS)Nú rrÃ)rÆ)rÇ)rÉrÊrr Úprint_2�s z"dis..dis_..print_2rz %#02x (%r)éé rz%#02x %#02x (%r-%r)rtóc3s �|] }| tjˆj¡VqdSr)Úto_bytesr!rºÚ byteorderr»)Úsysrr r Ás€ÿz$dis..dis_..ÚbranchÚ MAXREPEATr©éz prefix_skipz prefixr¸r¹css�|]}d|VqdS)z%#02xNrr»rrr r üs€z(%r)Úz overlapÚin)9ÚOPCODESr>r.r4r6r@rAr,r-r+ÚLITERAL_IGNOREÚNOT_LITERAL_IGNOREÚLITERAL_UNI_IGNOREÚNOT_LITERAL_UNI_IGNOREÚLITERAL_LOC_IGNOREÚNOT_LITERAL_LOC_IGNOREÚchrrFr³ÚATCODESrNÚCHCODESr/r2r*r1rorprqr¿r�rsÚlistr½r!rºrwrCrQrSrTrRrMrLr?r;r<rÖrUÚASSERTÚ ASSERT_NOTr«Úbinr¬rxr®Ú ValueError)rËrÄrÌrÎr raÚargrdrcrjr‡r r¯ÚmaxrÚ prefix_lenr¢r›©rVÚdis_rÈrÉrÊrÔ)rËr rí‡sô  ÿ ý    "  ÿ    ÿ   ø          þ  � szdis..dis_)rÔÚsetrr³r¾rrìr Údis€srïc Cs–t|ƒr |}t ||¡}nd}t||ƒ}|t@rtƒt|ƒ|jj}dg|jj }|  ¡D]\}}|||<q.t   |||jj B||jj d|t|ƒ¡S)Nr)rµÚ sre_parseÚparser·ÚSRE_FLAG_DEBUGrÆrïr¶Ú groupdictÚgroupsÚitemsr!Úcompilerr)rirrWrVÚ groupindexÚ indexgrouprer rrr rös"   ýrö)NNN)r)-Ú__doc__r!rðÚ sre_constantsr-r+rr?Ú MIN_REPEATr:rr>r.rrårærr4r/ršÚ _equivalencesr$rrr=r3r0rºr�rªr’Úintr|r~r9ržrŸr r¨r±rµr·r¿rïrörrrr ÚsJ   4ÿ ÿ3   ,;