
    iv*                        S SK r S SKrS SKJrJrJrJr  S SKrS SKJ	r	  SSK
Jr  SSK Jr  SrSrS	rS
rSrSrSrSrSrSr\R.                  " SR1                  SR3                  \\\\\\\4 V Vs/ s H  n U  Vs/ s H  nSU 3PM
     snPM     snn  V s/ s H  n SR3                  U 5      PM     sn 5      S95      rSrSrSrSr\\/r " S S5      r gs  snf s  snn f s  sn f )    N)ListOptionalTupleUnion)MessageEntityType   )utils)HTMLz**__z--z~~z||`z```>z**>z({d})|(!?)\[(.+?)\]\((.+?)\)|\ )dz<{}>z</{}>z<a href="{}">{}</a>z<emoji id={}>{}</emoji>c                   v    \ rS rSrS\S   4S jr\S\S\4S j5       r	SS\S\4S jjr
\S\S	\4S
 j5       rSrg)Markdown?   clientzpyrogram.Clientc                 $    [        U5      U l        g )N)r
   html)selfr   s     E/app/mltbenv/lib/python3.13/site-packages/pyrogram/parser/markdown.py__init__Markdown.__init__@   s    L	    textstrictc                   ^^ U R                  5       m/ n/ mSS[        SS 4UU4S jjjnSn[        T5       GH  u  pVUR                  [        5      (       a  U(       dz  U[        [        5      UR                  [         S35      (       a  SOS-   S  nU(       a  [        R                  " U5      OUnTR                  XX45        UR                  U5        SnM  UR                  [        5      (       a  U(       a  UR                  [        5      (       a4  U[        [        5      UR                  [         S35      (       a  SOS-   S  nUS [        [        5      *  nU(       a  [        R                  " U5      OUnTR                  XX45        UR                  U5        SnU" SS	9  U(       d  GMw  U[        [        5      UR                  [         S35      (       a  SOS-   S  nU(       a  [        R                  " U5      OUnTR                  XX45        UR                  U5        GM     [        T5       H  u  pVUc  M
  UR                  [        5      (       ax  U[        [        5      UR                  [         S35      (       a  SOS-   S  nU(       a  [        R                  " U5      OUnTR                  XX45        UR                  U5        M  [        T5      S:  d  M  U" 5         M     U" 5         U(       a4  [        T5       H%  u  pX;  d  M  [        R                  " U5      TU	'   M'     S
R                  T V
s/ s H	  oc  M  U
PM     sn
5      $ s  sn
f )NF
expandablereturnc                    > [        T5      S:X  a  gSR                  T Vs/ s H  oS   PM	     sn5      nTS   u  p4SU (       a  SOS SU S	3TU'   TSS  H  nSTUS   '   M     TR                  5         gs  snf )
z
Merges all lines in quote_queue into first line of queue
Encloses that line in html quote
Replaces rest of the lines with None placeholders to preserve indexes
r   N
r   z<blockquotez expandabler   r   z</blockquote>)lenjoinclear)r    ijoined_linesfirst_line_index_line_to_remove
text_linesto_quote_lists         r   create_blockquote<Markdown.escape_and_create_quotes.<locals>.create_blockquoteM   s     =!Q&99M%BMqdM%BCL"/"2zmrB!L>Q^_ '( #0"304
>!,- #4 ! &Cs   A7 r   r   T)r    r#   F)
splitlinesbool	enumerate
startswithBLOCKQUOTE_EXPANDABLE_DELIMr$   r   escapeappendendswithBLOCKQUOTE_EXPANDABLE_END_DELIMBLOCKQUOTE_DELIMr%   )r   r   html_escaped_listr.   inside_blockquoteindexlinedelim_stripped_lineparsed_lineidx
valid_liner,   r-   s              @@r   escape_and_create_quotes!Markdown.escape_and_create_quotesC   s&   -1__->
 (* 02	"$ 	"4 	" 	", "$Z0KE:;;DU&*3/J+KTXTcTc  hC  gD  DE  eF  UG  UGq  MN  ,O  ,Q  'R#8>DKK 34DW  $$e%9:!((/$(!>??DU??#344$4 5dooQaPbbcNd>e>ekl m opD&*+QS1P-Q,Q&R# 9?DKK 34DW  $$e%9:!((/$)!!T2  "3'7#8TdSeefQgAhAhAno#p#rs:@dkk+6k$$e%9:!((/E 1J %Z0KE|/00&*3/?+@\l[mmnYoIpIpAvw+x+z&{#8>DKK 34DW  $$e%9:!((/]#a'!# 1  &z2	/&*kk$&7JsO 3 yy*4O*JZ*O
 	
Os   =MMc           	        #    U R                  XS9n[        5       nSn[        [        R                  " [
        U5      5       GH  u  pVUR                  5       u  pxUR                  5       u  ppUR                  S5      nU	[        ;   a  U(       + nU(       a  U	[        ;  a  M`  U
(       d4  U(       a-  [        R                  " X[        R                  X5      U5      nM  U
(       a@  UnUR                  S5      n[        R                  " X[        R                  X5      U5      nM  U	[         :X  a  SnOQU	["        :X  a  SnODU	[$        :X  a  SnO7U	[&        :X  a  SnO*U	[(        :X  a  S	nOU	[*        :X  a  S
nOU	[,        :X  a  SnOGM@  X;  a'  UR/                  U	5        [0        R                  U5      nO&UR3                  U	5        [4        R                  U5      nU	[*        :X  a`  X;   a[  XR7                  [*        5      S  R9                  S5      S   nU[;        [*        5      S  n[        R                  " UUSU S3U5      nGM  [        R                  " XUU5      nGM     U R<                  R?                  U5      I S h  vN $  N7f)N)r   Fr   ztg://emoji?id=br'   uscodeprespoilerr#   z<pre language="z">) rD   setr4   refinditerMARKDOWN_REspangroupsgroupFIXED_WIDTH_DELIMSr	   replace_once
URL_MARKUPformatlstripEMOJI_MARKUP
BOLD_DELIMITALIC_DELIMUNDERLINE_DELIMSTRIKE_DELIM
CODE_DELIM	PRE_DELIMSPOILER_DELIMaddOPENING_TAGremoveCLOSING_TAGfindsplitr$   r   parse)r   r   r   delimsis_fixed_widthr'   matchstartr*   delimis_emojitext_urlurlfullemojiemoji_idtagdelim_and_languagelanguages                      r   rg   Markdown.parse   s!    ,,T,A!"++k4"@AHAzz|HE-2\\^*EX;;q>D**%3!3%/A"A))$j6G6G6VX]^ ::&67))$l6I6I(6Z\ab
",&/),&*$)#-'"

5!!((-e$!((-	!eo%)))I*>*?%@%F%Ft%LQ%O"-c)no>))$0BoV^U__aDbdij%%d3>Dg Bj YY__T****s   I7J 9I>:J entitiesc           	         [         R                  " U 5      n / nU GHZ  nUR                  nUR                  nXSR                  -   nU[
        R                  :X  a	  [        =pxGOU[
        R                  :X  a	  [        =pxGOU[
        R                  :X  a	  [        =pxGOU[
        R                  :X  a	  [        =pxGOU[
        R                  :X  a	  [        =pxGO{U[
        R                   :X  a,  [#        USS5      =(       d    Sn	[$         U	 S3nS[$         3nGO;U[
        R&                  :X  a  [(        S-   nSnXU n
U
R+                  S5      nSnU HX  n[-        U5      S:X  a  X:X  a  M  X\-   nU[-        U5      -   nX-   nUR/                  X~45        UR/                  X45        US-   nMZ     GM  U[
        R0                  :X  a  [2        =pxOU[
        R4                  :X  a  UR6                  nSnSU S	3nO_U[
        R8                  :X  a  UR:                  nSnS
UR<                   S	3nO,U[
        R>                  :X  a  UR@                  nSnSU S	3nOGM6  UR/                  Xu45        UR/                  X45        GM]     [C        S [E        [G        U5      S SS95      nU H  u  nnU S U U-   U US  -   n M     [         RH                  " U 5      $ )Nru   r   r#   r0   r   r   [z]()z](tg://user?id=z![z](tg://emoji?id=c                     U S   $ )Nr    xs    r   <lambda>"Markdown.unparse.<locals>.<lambda>  s    adr   c                     U S   S   U S   4$ )Nr   r   r|   r}   s    r   r   r   !  s    qtAw!or   T)keyreverse)%r	   add_surrogatestypeoffsetlengthr   BOLDrZ   ITALICr[   	UNDERLINEr\   STRIKETHROUGHr]   CODEr^   PREgetattrr_   
BLOCKQUOTEr;   rf   r$   r8   SPOILERr`   	TEXT_LINKro   TEXT_MENTIONuseridCUSTOM_EMOJIcustom_emoji_idmapsortedr4   remove_surrogates)r   rw   entities_offsetsentityentity_typerk   end	start_tagend_tagru   blockquote_textlineslast_lengthr?   start_offset
end_offsetro   r   rr   r   s                       r   unparseMarkdown.unparse   s   ##D)F ++KMME--'C/444&00	G 1 8 88&22	G 1 ; ;;&55	G 1 ? ??&22	G 1 6 66&00	G 1 5 55"6:r:@b(k(26	yk* 1 < <<,s2	"&S/'--d3!D4yA~+*< #(#4L"-c$i"7K!-!9J$++Y,FG$++W,BC"-a-K "  1 9 99&33	G 1 ; ;;jj	se1+ 1 > >>{{	+DGG9A6 1 > >>!11 	,XJa8##Y$78##WO4k n *+-
 /NFF=6)DM9D / &&t,,r   )r   Nr1   )__name__
__module____qualname____firstlineno__r   r   staticmethodstrr3   rD   rg   listr   __static_attributes__r|   r   r   r   r   ?   su    !x(9: ! ^
s ^
D ^
 ^
@:+ :+T :+x H-c H-T H- H-r   r   )!r   rN   typingr   r   r   r   pyrogrampyrogram.enumsr   r   r	   r
   rZ   r[   r\   r]   r`   r^   r_   r;   r6   r:   compilerW   r%   rP   rb   rd   rV   rY   rT   r   )r'   js   00r   <module>r      s,  &  	 / /  ,  

	 # "& jj8??	hh 
  !!q!!Xq!
 	 
 
 	 @    "
( ), j- j-) "
 	s   -
C7CCCC