
    Xh                     z   d dl Z d dlmZ d dlmZ d dlmZ  e j                  de j                        Z	dde
ded	e
fd
Zdde
de
d	e
fdZdde
ded	e
fdZde
d	e
fdZde
d	e
fdZde
d	e
fdZ e j                  d      Zde
d	e
fdZ e j                  d      Zde
d	e
fdZ e j                  d      Zde
d	e
fdZy)    N)_replace_charref)Match)quotez^( {0,3})\t)flagstextwidthreturnc                 b    dt         t           dt        ffd}t        j                  ||       S )Nmr	   c                 N    | j                  d      }|dt        |      z
  z  z   S )N    )grouplen)r   sr   s     @/var/www/html/myenv/lib/python3.12/site-packages/mistune/util.pyreplz expand_leading_tab.<locals>.repl
   s(    GGAJ3%#a&.)))    )r   str_expand_tab_resub)r   r   r   s    ` r   expand_leading_tabr   	   s/    *c
 *s * dD))r   spacec                 8    d|z   }t         j                  ||       S )Nz\1)r   r   )r   r   r   s      r   
expand_tabr      s    5=DdD))r   r   r   c                     | j                  dd      } | j                  dd      } | j                  dd      } |r| j                  dd      } | S )	zXEscape characters of ``&<>``. If quote=True, ``"`` will be
    converted to ``&quote;``.&z&amp;<z&lt;>z&gt;"z&quot;)replace)r   r   s     r   escaper"      sL     	
		#wA			#vA			#vAIIc8$Hr   linkc                 2    d}t        t        |       |      S )zEscape URL for safety.z:/?#@!$&()*+,;=%)safe)r   unescape)r#   r%   s     r   
escape_urlr'   !   s    	 	
 $d++r   c                 *    t        t        |             S )zEscape characters for safety.)r"   r&   r   s    r   safe_entityr*   +   s    (1+r   c                     dj                  | j                               j                         }|j                         j	                         S )z.Generate a unique key for links and footnotes.r   )joinsplitstriplowerupper)r   keys     r   unikeyr2   0   s4    
((1779

#
#
%C99;r   z8&(#[0-9]{1,7};|#[xX][0-9a-fA-F]+;|[^\t\n\f <&#;]{1,32};)c                 B    d| vr| S t         j                  t        |       S )z
    Copy from `html.unescape`, but `_charref` is different. CommonMark
    does not accept entity references without a trailing semicolon
    r   )_charref_rer   r   r)   s    r   r&   r&   =   s"    
 !|??+Q//r   z(<!--.*?-->|<[^>]*>)c                 .    t         j                  d|       S )N )_striptags_rer   r)   s    r   	striptagsr8   J   s    R##r   z\n\s+$srcc                 .    t         j                  d|       S )N
)_strip_end_rer   )r9   s    r   	strip_endr=   Q   s    T3''r   )   )z    )T)rehtmlr   typingr   urllib.parser   compileMr   r   intr   r   boolr"   r'   r*   r2   r4   r&   r7   r8   r<   r=    r   r   <module>rH      s#   	 !  N"$$7*S * *S **S * *# *
c $ # ,S ,S ,3 3 
c c  bjj0 0 0 

23$ $ $ 

9%(3 (3 (r   