
    ^h,                         % S r SSKrSSSSSSS	S
SSS.
r\\\4   \S'   S\R                  \   S\4S jrS\S\4S jrSS jr	\
S:X  a  \	" 5         gg)z<Safely evaluate Python string literals without using eval().    N
	'"\)
abfnrtvr
   r   r   simple_escapesmreturnc                    U R                  SS5      u  pUR                  S5      (       d   e[        R                  U5      nUb  U$ UR                  S5      (       a1  USS  n[	        U5      S:  a  [        SU S35      e [        US5      nO [        US	5      n[        U5      $ ! [
         a    [        SU S35      S ef = f! [
         a    [        S
U S35      S ef = f)Nr      r   x   zinvalid hex string escape ('\z')      zinvalid octal string escape ('\)group
startswithr   getlen
ValueErrorintchr)r   alltaileschexesis         Q/home/james-whalen/.local/lib/python3.13/site-packages/blib2to3/pgen2/literals.pyescaper*      s    1IC>>$


T
"C

sQRu:>=dV2FGG	RE2A	TD!A q6M  	R=dV2FGTQ	R
  	T?vRHItS	Ts   B& C &CCsc                    U R                  S5      (       d)  U R                  S5      (       d   [        U S S 5      5       eU S   nU S S US-  :X  a  US-  nU R                  U5      (       d   [        U [        U5      * S  5      5       e[        U 5      S[        U5      -  :  d   eU [        U5      [        U5      *  n [        R
                  " S[        U 5      $ )Nr
   r   r   r      r   z)\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3}))r   reprendswithr    resubr*   )r+   qs     r)   
evalStringr3   ,   s    <<S 1 1>4"1;>1	!A!uA~E::a==,$q#a&|,,=q6QQZ	#a&CF7A66>JJ    c                      [        S5       H7  n [        U 5      n[        U5      n[        U5      nX1:w  d  M+  [	        XX#5        M9     g )N   )ranger#   r.   r3   print)r(   cr+   es       r)   testr;   7   s:    3ZFGqM6! r4   __main__)r   N)__doc__r0   r   dictstr__annotations__Matchr*   r3   r;   __name__ r4   r)   <module>rD      s    C 	 
								
"S#X bhhsm  ,K# K# K zF r4   