+
    ä�i
  ã                  óÒ   € ^ RI Ht ^ RIHt ^ RIHt ^ RIt^ RIHtH	t	H
t
Ht ^ RIt^RIHt RtR R ltR	 R
 lt]P$                  ! R4      t]P$                  ! R4      tRR R lltR# )é    )Úannotations)ÚCallable)ÚsuppressN)ÚquoteÚunquoteÚurlparseÚ
urlunparse)Ú	_punycodec               ó    € V ^8„  d   QhRRRR/# ©é   ÚurlÚstrÚreturn© )Úformats   "ÚB/usr/lib/python3/dist-packages/markdown_it/common/normalize_url.pyÚ__annotate__r      s   € ÷ .ñ .�sð .˜sñ .ó    c                ó¾  € \         P                  ! V RR7      pVP                  '       dx   VP                  '       d   VP                  \        9   dQ   \        \        4      ;_uu_ 4        VP                  \        P                  ! VP                  4      R7      pRRR4       \         P                  ! \         P                  ! V4      4      #   + '       g   i     L:; i)zfNormalize destination URLs in links

::

    [label]:   destination   'title'
            ^^^^^^^^^^^
T©Úslashes_denote_host©ÚhostnameN)ÚmdurlÚparser   ÚprotocolÚRECODE_HOSTNAME_FORr   Ú	ExceptionÚ_replacer
   Úto_asciiÚencoder   ©r   Úparseds   & r   ÚnormalizeLinkr%      s†   € ô �[Š[˜°$Ô7€Fð ‡‡€Ø�O�OˆO˜vŸ™Ô2EÔEä”i× Õ Ø—_‘_¬i×.@Ò.@ÀÇÁÓ.Q�_ÓRˆF÷ !ô �<Š<œŸš VÓ,Ó-Ð-÷ !× ús   Á)1CÃC	c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   (   s   € ÷ Pñ P˜3ð P 3ñ Pr   c                óê  € \         P                  ! V RR7      pVP                  '       dx   VP                  '       d   VP                  \        9   dQ   \        \        4      ;_uu_ 4        VP                  \        P                  ! VP                  4      R7      pRRR4       \         P                  ! \         P                  ! V4      \         P                  R,           4      #   + '       g   i     LP; i)zCNormalize autolink content

::

    <destination>
     ~~~~~~~~~~~
Tr   r   NÚ%)r   r   r   r   r   r   r   r    r
   Ú
to_unicodeÚdecoder   ÚDECODE_DEFAULT_CHARSr#   s   & r   ÚnormalizeLinkTextr,   (   s“   € ô �[Š[˜°$Ô7€Fð ‡‡€Ø�O�OˆO˜vŸ™Ô2EÔEä”i× Õ Ø—_‘_¬i×.BÒ.BÀ6Ç?Á?Ó.S�_ÓTˆF÷ !ô �<Š<œŸš VÓ,¬e×.HÑ.HÈ3Õ.NÓOÐO÷	 !× ús   Á)1C"Ã"C2	z!^(vbscript|javascript|file|data):z!^data:image\/(gif|png|jpeg|webp);c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Ú	validatorzCallable[[str], bool] | Noner   Úboolr   )r   s   "r   r   r   F   s'   € ÷ Pñ P�cð PÐ&Bð PÈdñ Pr   c                óÌ   € Ve	   V! V 4      # V P                  4       P                  4       p \        P                  V 4      '       d   \	        \
        P                  V 4      4      # R# )züValidate URL link is allowed in output.

This validator can prohibit more than really needed to prevent XSS.
It's a tradeoff to keep code simple and to be secure by default.

Note: url should be normalized at this point, and existing entities decoded.
T)ÚstripÚlowerÚBAD_PROTO_REÚsearchr/   ÚGOOD_DATA_RE)r   r.   s   &&r   ÚvalidateLinkr6   F   sS   € ð ÒÙ˜‹~ÐØ
�)‰)‹+×
Ñ
Ó
€CÜ-9×-@Ñ-@À×-EÒ-EŒ4”×#Ñ# CÓ(Ó)ÐOÈ4ÐOr   )zhttp:zhttps:zmailto:)N)Ú
__future__r   Úcollections.abcr   Ú
contextlibr   ÚreÚurllib.parser   r   r   r	   r   Ú r
   r   r%   r,   Úcompiler3   r5   r6   r   r   r   Ú<module>r>      sZ   ðÝ "å $Ý Û 	ß =Ó =ã å à4Ð õ.õ2Pð4 �zŠzÐ>Ó?€Ø�zŠzÐ>Ó?€÷Pñ Pr   