§
    qŠtj"  ã                  ó$  — d Z ddlmZ ddlZddlmZ ddlmZ ddlZddlmZ d8d„Z	d9d„Z
 ed¦  «        Zd:d„Zd;d„Zd<d„Z ej        dej        ¦  «        Z ej        d¦  «        Z ej        dej        ¦  «        Zd=d„Zd>d „Zd!Z ej        d"ez   d#z   ¦  «        Zd>d$„Zd?d&„Z ej        d'¦  «        Zd>d(„Zd@d*„ZdAd,„Zh d-£ZdBd.„ZdCd/„Z h d0£Z!dDd1„Z"d>d2„Z# ej        d3ej        ¬4¦  «        Z$ ej        d5ej        ¬4¦  «        Z%dEd6„Z&dEd7„Z'dS )Fz!Utilities for parsing source texté    )ÚannotationsN)ÚMatch)ÚTypeVaré   )ÚentitiesÚsrcÚstrÚposÚintÚreturnú
int | Nonec                óP   — 	 t          | |         ¦  «        S # t          $ r Y dS w xY w©a
  
    Returns the Unicode value of the character at the specified location.

    @param - index The zero-based index of the desired character.
    If there is no character at the specified index, NaN is returned.

    This was added for compatibility with python
    N)ÚordÚ
IndexError©r   r
   s     úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/markdown_it/common/utils.pyÚ
charCodeAtr      s9   € ðÝ�3�s”8‰}Œ}ÐøÝð ð ð Øˆtˆtðøøøs   ‚ —
%¤%ú
str | Nonec                ó6   — 	 | |         S # t           $ r Y dS w xY wr   )r   r   s     r   Ú	charStrAtr      s2   € ðØ�3ŒxˆøÝð ð ð Øˆtˆtðøøøs   ‚
 Š
—Ú_ItemTVúlist[_ItemTV]ÚnewElementsc                ó8   — | d|…         |z   | |dz   d…         z   S )zw
    Remove element from array and put another array at those position.
    Useful for some operations with tokens
    Nr   © )r   r
   r   s      r   ÚarrayReplaceAtr   .   s(   € ð ˆt�ˆtŒ9�{Ñ" S¨¨q©¨¨¤^Ñ3Ð3ó    ÚcÚboolc                óÔ   — | dk    r| dk    rdS | dk    r| dk    rdS | dz  dk    s	| dz  dk    rdS | dk    r| d	k    rdS | d
k    rdS | dk    r| dk    rdS | dk    r| dk    rdS | dk     S )Ni Ø  iÿß  FiÐý  iïý  iÿÿ  iþÿ  r   é   é   é   é   é   éŸ   iÿÿ r   ©r   s    r   ÚisValidEntityCoder)   8   s­   € àˆF‚{€{�q˜F’{�{ØˆuàˆF‚{€{�q˜F’{�{ØˆuØ	
ˆV‰˜ÒÐ Q¨¡Z°FÒ$:Ð$:ØˆuàˆD‚y€y�Q˜$’Y�YØˆuØˆD‚y€yØˆuØˆD‚y€y�Q˜$’Y�YØˆuØˆD‚y€y�Q˜$’Y�YØˆuà�H’ÐÐr   c                ó    — t          | ¦  «        S )zÛConvert ordinal to unicode.

    Note, in the original Javascript two string characters were required,
    for codepoints larger than `0xFFFF`.
    But Python 3 can represent any unicode codepoint in one character.
    )Úchrr(   s    r   ÚfromCodePointr,   N   s   € õ ˆq‰6Œ6€Mr   zD\\([!"#$%&\'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])|&([a-z#][a-z0-9]{1,31});z#([0-9]{1,8})z#x([a-f0-9]{1,8})ÚmatchÚnamec                ót  — |t           v rt           |         S d}t                               |¦  «        x}r$t          |                     d¦  «        d¦  «        }n?t
                               |¦  «        x}r#t          |                     d¦  «        d¦  «        }|�t          |¦  «        rt          |¦  «        S | S )z^Convert HTML entity patterns,
    see https://spec.commonmark.org/0.30/#entity-references
    Nr   é
   é   )r   ÚDIGITAL_ENTITY_BASE10_REÚ	fullmatchr   ÚgroupÚDIGITAL_ENTITY_BASE16_REr)   r,   )r-   r.   ÚcodeÚpats       r   ÚreplaceEntityPatternr8   b   s¯   € ð �xÐÐÝ˜Œ~Ðà€DÝ&×0Ò0°Ñ6Ô6Ð6€sð %Ý�3—9’9˜Q‘<”< Ñ$Ô$ˆˆÝ(×2Ò2°4Ñ8Ô8Ð	8ˆð %Ý�3—9’9˜Q‘<”< Ñ$Ô$ˆàÐÕ-¨dÑ3Ô3ÐÝ˜TÑ"Ô"Ð"à€Lr   Ústringc                óT   — dd„}d| vrd| vr| S t                                || ¦  «        S )	Nr-   ú
Match[str]r   r	   c                ó¢   — |                       d¦  «        }|r|S |                       d¦  «        }t          |                       ¦   «         |¦  «        S )Nr   é   )r4   r8   )r-   ÚescapedÚentitys      r   Úreplacer_funcz"unescapeAll.<locals>.replacer_funcv   sE   € Ø—+’+˜a‘.”.ˆØð 	ØˆNØ—’˜Q‘”ˆÝ# E§K¢K¡M¤M°6Ñ:Ô:Ð:r   ú\ú&)r-   r;   r   r	   )ÚUNESCAPE_ALL_REÚsub)r9   r@   s     r   ÚunescapeAllrE   u   sH   € ð;ð ;ð ;ð ;ð �6ÐÐ˜c¨Ð/Ð/ØˆÝ×Ò˜}¨fÑ5Ô5Ð5r   z#\\!"#$%&'()*+,./:;<=>?@\[\]^`{}|_~-z\\([z])c                ó8   — t                                d| ¦  «        S )zStrip escape \ charactersz\1)ÚESCAPE_CHARrD   ©r9   s    r   ÚstripEscaperI   †   s   € å�?Š?˜5 &Ñ)Ô)Ð)r   Úrawc                ó¶   — |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } | S )	zHReplace special characters "&", "<", ">" and '"' to HTML-safe sequences.rB   z&amp;ú<z&lt;ú>z&gt;ú"z&quot;)Úreplace)rJ   s    r   Ú
escapeHtmlrP   ‹   sU   € ð �+Š+�c˜7Ñ
#Ô
#€CØ
�+Š+�c˜6Ñ
"Ô
"€CØ
�+Š+�c˜6Ñ
"Ô
"€CØ
�+Š+�c˜8Ñ
$Ô
$€CØ€Jr   z[.?*+^$[\]\\(){}|-]c                ó<   — t                                d| ¦  «        } | S )Nz\$&)ÚREGEXP_ESCAPE_RErD   rH   s    r   ÚescapeRErS   š   s   € Ý×!Ò! &¨&Ñ1Ô1€FØ€Mr   r6   c                ó
   — | dv S )z(Check if character code is a whitespace.)é	   é    r   ©r6   s    r   ÚisSpacerX   ¢   s   € à�<ÐÐr   Úchc                ó
   — | dv S )z#Check if character is a whitespace.)ú	ú r   ©rY   s    r   Ú
isStrSpacer^   §   s   € à�ÐÐr   >   é 0  é/   é_   é€  rU   r0   r#   é   é   rV   é    c                ó0   — | dk    r| dk    rdS | t           v S )z"Zs (unicode class) || [\t\f\v\r\n]i    i
   T)ÚMD_WHITESPACErW   s    r   ÚisWhiteSpacerh   »   s#   € àˆv‚~€~˜$ &š.˜.ØˆtØ•=Ð Ð r   c                óP   — t          j        | ¦  «                             d¦  «        S )z.Check if character is a punctuation character.)ÚPÚS)ÚunicodedataÚcategoryÚ
startswithr]   s    r   ÚisPunctCharro   Å   s!   € åÔ Ñ#Ô#×.Ò.¨zÑ:Ô:Ð:r   >    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é:   é;   é<   é=   é>   é?   é@   é[   é\   é]   é^   é_   é`   é{   é|   é}   é~   c                ó   — | t           v S )a9  Markdown ASCII punctuation characters.

    ::

        !, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, `, {, |, }, or ~

    See http://spec.commonmark.org/0.15/#ascii-punctuation-character

    Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.

    )ÚMD_ASCII_PUNCTr]   s    r   ÚisMdAsciiPunctr’   î   s   € ð •ÐÐr   c                óž   — t          j        dd|                      ¦   «         ¦  «        } |                      ¦   «                              ¦   «         S )z#Helper to unify [reference labels].z\s+r\   )ÚrerD   ÚstripÚlowerÚupperrH   s    r   ÚnormalizeReferencer˜   ý   s<   € õ ŒV�F˜C §¢¡¤Ñ0Ô0€FðX �<Š<‰>Œ>×ÒÑ!Ô!Ð!r   z^<a[>\s])Úflagsz^</a\s*>c                óP   — t          t                               | ¦  «        ¦  «        S ©N)r    ÚLINK_OPEN_REÚsearchrH   s    r   Ú
isLinkOpenrž   4  s   € Ý•×#Ò# FÑ+Ô+Ñ,Ô,Ð,r   c                óP   — t          t                               | ¦  «        ¦  «        S r›   )r    ÚLINK_CLOSE_REr�   rH   s    r   ÚisLinkCloser¡   8  s   € Ý•×$Ò$ VÑ,Ô,Ñ-Ô-Ð-r   )r   r	   r
   r   r   r   )r   r	   r
   r   r   r   )r   r   r
   r   r   r   r   r   )r   r   r   r    )r   r   r   r	   )r-   r	   r.   r	   r   r	   )r9   r	   r   r	   )rJ   r	   r   r	   )r6   r   r   r    )rY   r   r   r    )r6   r   r   r    )rY   r	   r   r    )rY   r   r   r    )r9   r	   r   r    )(Ú__doc__Ú
__future__r   r”   r   Útypingr   rl   r   r   r   r   r   r)   r,   ÚcompileÚ
IGNORECASErC   r2   r5   r8   rE   Ú	ESCAPABLErG   rI   rP   rR   rS   rX   r^   rg   rh   ro   r‘   r’   r˜   rœ   r    rž   r¡   r   r   r   ú<module>r¨      sÁ  ðØ 'Ð 'à "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ð Ð ðð ð ð ðð ð ð ð ˆ'�)Ñ
Ô
€ð4ð 4ð 4ð 4ðð ð ð ð,ð ð ð ð �"”*ØVØ„Mñô €ð &˜2œ:Ð&6Ñ7Ô7Ð Ø%˜2œ:Ð&:¸B¼MÑJÔJÐ ðð ð ð ð&
6ð 
6ð 
6ð 
6ð 7€	ØˆbŒj˜ 9Ñ,¨uÑ4Ñ5Ô5€ð*ð *ð *ð *ð
ð ð ð ð �2”:Ð4Ñ5Ô5Ð ðð ð ð ð ð  ð  ð  ð
ð ð ð ð
ð ð €ð!ð !ð !ð !ð;ð ;ð ;ð ;ð
!ð !ð !€ðH ð  ð  ð  ð0"ð 0"ð 0"ð 0"ðf ˆrŒz˜+¨R¬]Ð;Ñ;Ô;€Ø�”
˜;¨b¬mÐ<Ñ<Ô<€ð-ð -ð -ð -ð.ð .ð .ð .ð .ð .r   