
    %jv                        d dl mZmZmZmZmZ d dlmZ d dlZd dl	Z	 ej
        d          Z ej
        dej                  Z ej
        d          Z ej
        d          Z ej
        d	          Z ej
        d
          Z ej
        d          Z ej
        d          Z ej
        d          Z ej
        d          Z ej
        d          Z ej
        dej                  Z ej
        d          Z ej
        d          Z ej
        d          Z ej
        d          Z ej
        d          ZdZdZdZ e Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(d Z)d! Z*d" Z+d# Z,d$ Z-d% Z.d& Z/d' Z0d( Z1d) Z2d* Z3 G d+ d,e4          Z5d- Z6dS ).    )BeautifulSoupCommentDoctypeNavigableStringTag)fillNzconvert_h(\d+)z^(.*))flagsz[\t ]+z
[\t \r\n]+z[\t \r\n]*[\r\n][\t \r\n]*zh(\d+)z^ *\nz\n *$z	^[ \n]*\nz[ \n]*$z[\[\]:-]z^(\n*)((?:.*[^\n])?)(\n*)$z([]\\&<`[>~=+|])z(\s|^)(-+(?:\s|$))z(\s|^)(#{1,6}(?:\s|$))z"((?:\s|^)[0-9]{1,9})([.)](?:\s|$))z`+atx
atx_closed
underlinedspaces	backslash*_lstriprstripstrip	strip_onec                 r    t                               d|           } t                              d|           } | S )z;Strip one leading and trailing newline from a <pre> string. )re_pre_lstrip1subre_pre_rstrip1texts    \/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/markdownify/__init__.py
strip1_prer   D   s1    b$''Db$''DK    c                 r    t                               d|           } t                              d|           } | S )z<Strip all leading and trailing newlines from a <pre> string.r   )re_pre_lstripr   re_pre_rstripr   s    r   	strip_prer"   K   s1    R&&DR&&DKr   c                 |    | r| d         dk    rdnd}| r| d         dk    rdnd}|                                  } ||| fS )z
    If the text in an inline tag like b, a, or em contains a leading or trailing
    space, strip the string and return a space as suffix of prefix, if needed.
    This function is used to prevent conversions like
        <b> foo</b> => ** foo**
    r    r   r   )r   prefixsuffixs      r   chompr)   R   sR     3T!W^^SSF4T"X__SS"F::<<DFD!!r   c                       fd}|S )aY  
    This abstracts all simple inline tags like b, em, del, ...
    Returns a function that wraps the chomped text in a pair of the string
    that is returned by markup_fn, with '/' inserted in the string used after
    the text if it looks like an HTML tag. markup_fn is necessary to allow for
    references to self.strong_em_symbol etc.
    c                      |           }|                     d          r#|                    d          rd|dd          z   }n|}d|v r|S t          |          \  }}}|sdS |||||S )N<>z</   	_noformatr   )
startswithendswithr)   )	selfelr   parent_tagsmarkup_prefixmarkup_suffixr'   r(   	markup_fns	           r   implementationz2abstract_inline_conversion.<locals>.implementationg   s    !	$##C(( 	*]-C-CC-H-H 	* =#44MM)M+%%K$T{{ 	2%v}}ddMM66RRr    )r7   r8   s   ` r   abstract_inline_conversionr:   _   s)    S S S S S r   c                 T     t           fdt                     D                       S )Nc              3   f   K   | ]+}|                     d           |t          |          fV  ,dS )r   N)r0   getattr).0kobjs     r   	<genexpr>z_todict.<locals>.<genexpr>w   sA      PPall3>O>OPGCOO$PPPPPPr   )dictdir)r@   s   `r   _todictrD   v   s,    PPPPc#hhPPPPPPr   c                 l    | r| j         sdS t                              | j                   dS | j         dv S )zEReturn to remove whitespace immediately inside a block-level element.FNT)p
blockquotearticledivsectionolullidldtddtabletheadtbodytfoottrtdth)namere_html_headingmatchr3   s    r   should_remove_whitespace_insider\   z   sG     RW uRW%%1t7 ) ) )r   c                 :    t          |           p| o
| j        dk    S )zFReturn to remove whitespace immediately outside a block-level element.pre)r\   rX   r[   s    r    should_remove_whitespace_outsider_      s!    *2..K23J"'U:JKr   c                     t          | t                    rdS t          | t          t          f          rdS t          | t                    r|                                 dk    S dS )z
    In a block context, returns:

    - True for content elements (tags and non-whitespace text)
    - False for non-content elements (whitespace text, comments, doctypes)
    TFr   )
isinstancer   r   r   r   r   r[   s    r   _is_block_content_elementrb      sa     "c t	B'*	+	+ u	B	(	( xxzzRur   c                 >    | | j         } t          |           r| S | dS )zHReturns the first previous sibling that is a content element, else None.N)previous_siblingrb   r[   s    r   _prev_block_content_siblingre      s2    
. $R(( 	I . 4r   c                 >    | | j         } t          |           r| S | dS )zDReturns the first next sibling that is a content element, else None.N)next_siblingrb   r[   s    r   _next_block_content_siblingrh      s1    
._$R(( 	I . 4r   c                      e Zd Z G d d          Z G d de          Zd Zd Zd Zd/d	Zd/d
Z	d Z
d/dZd Zd Zd Zd Zd Zd Z ed           Zd Zd Zd Z ed           Zd ZeZeZ ed           ZeZd ZeZd Zd Z d Z!eZ"d Z#d Z$d  Z%e%Z&e%Z'd! Z(d" Z)d# Z*d$ Z+d% Z,d& Z-eZ.eZ/eZ0 ed'           Z1 ed(           Z2d) Z3d* Z4d+ Z5d, Z6d- Z7d. Z8dS )0MarkdownConverterc                   f    e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZeZg ZeZdZeZeZeZdZdZdZdZdZdS ) MarkdownConverter.DefaultOptionsTzhtml.parserz*+-r   NFP   )__name__
__module____qualname__	autolinksbs4_optionsbulletscode_languagecode_language_callbackconvertdefault_titleescape_asterisksescape_underscoresescape_misc
UNDERLINEDheading_stylekeep_inline_images_inSPACESnewline_styler   STRIPstrip_documentr"   ASTERISKstrong_em_symbol
sub_symbol
sup_symboltable_infer_headerwrap
wrap_widthr9   r   r   DefaultOptionsrl      s        	#!%!" "	#

"


r   r   c                       e Zd ZdS )MarkdownConverter.OptionsN)rn   ro   rp   r9   r   r   Optionsr      s        r   r   c                    t          | j                  | _        | j                            t          | j                             | j                            |           | j        d         | j        d         t          d          t          | j        d         t                    sd| j        d         i| j        d<   i | _        d S )Nr   rv   zFYou may specify either tags to strip or tags to convert, but not both.rr   features)	rD   r   optionsupdater   
ValueErrorra   rB   convert_fn_cache)r2   r   s     r   __init__zMarkdownConverter.__init__   s     t233GDL11222G$$$< ,i1H1T 7 8 8 8 $,}5t<< 	T+5t|M7R*SDL' !#r   c                 \    t          |fi | j        d         }|                     |          S )Nrr   )r   r   convert_soup)r2   htmlsoups      r   rv   zMarkdownConverter.convert   s2    TAAT\-%@AA  &&&r   c                 H    |                      |t                                S Nr4   )process_tagset)r2   r   s     r   r   zMarkdownConverter.convert_soup   s    #%%888r   Nc                     t          |t                    r|                     ||          S |                     ||          S r   )ra   r   process_textr   )r2   noder4   s      r   process_elementz!MarkdownConverter.process_element   sG    dO,, 	C$$T{$CCC##Dk#BBBr   c           
          |t                      }t          |          fdfd|j        D             }t          |                              |j                   t
                              |j                  	|j        dv r                    d           |j        dv r                    d            fd|D             }d |D             }|j        d	k    s|                    d	          rnd
g}|D ]}t                              |          	                                \  }}}	|d         rS|rQ|
                                }
t          dt          t          |
          t          |                              }d|z  }|                    |||	g           |}d
                    |          }                     |j                  }| ||||          }|S )Nc                    t          | t                    rdS t          | t          t          f          rdS t          | t                    rjt          j        |                                           dk    rdS r| j        r| j	        sdS t          | j                  st          | j	                  rdS dS | dS t          dt          |           z            )NFTr   zUnexpected element type: %s)ra   r   r   r   r   six	text_typer   rd   rg   r_   r   type)r3   should_remove_insides    r   _can_ignorez2MarkdownConverter.process_tag.<locals>._can_ignore   s    "c"" KuB' 233 K tB00 K=$$**,,22 5) !23F !bo !45b6IJJ !Nnoqo~NN !4 5t !>b!IJJJr   c                 *    g | ]} |          |S r9   r9   )r>   r3   r   s     r   
<listcomp>z1MarkdownConverter.process_tag.<locals>.<listcomp>  s&    QQQbRQrQQQr   >   rV   rW   _inline>   kbdr^   codesampr/   c                 >    g | ]}                     |           S )r   )r   )r>   r3   parent_tags_for_childrenr2   s     r   r   z1MarkdownConverter.process_tag.<locals>.<listcomp>  s=     
 
 
   1I JJ
 
 
r   c                     g | ]}||S r9   r9   )r>   ss     r   r   z1MarkdownConverter.process_tag.<locals>.<listcomp>%  s    777qQ7777r   r^   r   r%      
r   )r   r\   childrenaddrX   rY   rZ   find_parentre_extract_newlinesgroupspopminmaxlenextendjoinget_conv_fn_cached)r2   r   r4   children_to_convertchild_stringsupdated_child_stringschild_string
leading_nlcontenttrailing_nlprev_trailing_nlnum_newlinesr   
convert_fnr   r   r   s   `             @@@r   r   zMarkdownConverter.process_tag   sW   %%K  ?tDD	K 	K 	K 	K 	K2 RQQQDMQQQ $'{#3#3  $$TY/// !!$),,8yL(($((333 9666$((555
 
 
 
 
)
 
 
 87M777 9!1!1%!8!8 &(D! - Q Q3F3L3L\3Z3Z3a3a3c3c0
G[ ), 5 5'<'@'@'B'B$#&q#c2B.C.CS__*U*U#V#VL!%!4J &,,j';-OPPPP1M ww}%% ,,TY77
!:dDkBBBDr   c                 d   | j         d         t          k    r|                    d          }n| j         d         t          k    r|                    d          }nW| j         d         t
          k    r|                    d          }n+| j         d         nt          d| j         d         z            |S )zTFinal document-level formatting for BeautifulSoup object (node.name == "[document]")r   r   Nz$Invalid value for strip_document: %s)r   LSTRIPr   RSTRIPr   r   r   r   r2   r3   r   r4   s       r   convert__document_z$MarkdownConverter.convert__document_H  s    <()V33;;t$$DD\*+v55;;t$$DD\*+u44::d##DD\*+3CdlScFddeeer   c                 Z   |t                      }t          j        |          pd}d|vr_| j        d         rt                              d|          }n6t                              d|          }t                              d|          }d|vr|                     ||          }t          |j
                  st          |j                  r|j
        s|                    d          }t          |j                  st          |j                  r|j        s|                                }|S )Nr   r^   r   r$   r   r/    	
)r   r   r   r   re_all_whitespacer   re_newline_whitespacere_whitespaceescaper_   rd   r\   parentr   rg   r   )r2   r3   r4   r   s       r   r   zMarkdownConverter.process_textW  s)   %%K}R  &B ##|F# 4(,,S$77,00t<<$((d33 k));;t[11D
 -R-@AA 	*3BI>>	*/	* ;;y))D,R_== 	!3BI>>	!O	! ;;==Dr   c                 h    || j         vr|                     |          | j         |<   | j         |         S )zAGiven a tag name, return the conversion function using the cache.)r   get_conv_fn)r2   tag_names     r   r   z$MarkdownConverter.get_conv_fn_cachedx  s=     4000.2.>.>x.H.HD!(+ $X..r   c                 N    |                                 }                     |          sdS dt                              d|          z  }t	           |d          }|r|S t
                              |          }|r(t          |                    d                     fdS dS )z:Given a tag name, find and return the conversion function.Nz
convert_%sr   r.   c                 4                         | ||          S N)
convert_hN)r3   r   r4   nr2   s      r   <lambda>z/MarkdownConverter.get_conv_fn.<locals>.<lambda>  s    Bk1Z1Z r   )	lowershould_convert_tagre_make_convert_fn_namer   r=   rY   rZ   intgroup)r2   r   convert_fn_namer   rZ   r   s   `    @r   r   zMarkdownConverter.get_conv_fn  s    >>## &&x00 	4 ')@)D)DS()S)SST?D99
 	  %%h// 	[EKKNN##AZZZZZZ tr   c                 R    | j         d         }| j         d         }|||vS |||v S dS )zKGiven a tag name, return whether to convert based on strip/convert options.r   rv   NTr   )r2   tagr   rv   s       r   r   z$MarkdownConverter.should_convert_tag  s@    W%,y)e## '>!4r   c                    |sdS | j         d         rlt                              d|          }t                              d|          }t                              d|          }t
                              d|          }| j         d         r|                    dd          }| j         d         r|                    d	d
          }|S )Nr   rz   z\\\1z\1\\\2rx   r   z\*ry   r   \_)r   re_escape_misc_charsr   re_escape_misc_dash_sequencesre_escape_misc_hashesre_escape_misc_list_itemsreplace)r2   r   r4   s      r   r   zMarkdownConverter.escape  s     	2<& 	B'++GT::D044YEED(,,Y==D,00DAAD<*+ 	,<<U++D<,- 	,<<U++Dr   c                 h    |pd                                 }|rd|d|t          |          z  dndS )Nr   

r   )r   r   )r2   r   pad_chars      r   	underlinezMarkdownConverter.underline  sD    
""$$BFNN444CII)=)=)=>>BNr   c                    d|v r|S t          |          \  }}}|sdS |                    d          }|                    d          }| j        d         r.|                    dd          |k    r|s| j        d         sd	|z  S | j        d         r|s|}|rd
|                    dd          z  nd}|r|d|d||d|n|S )Nr/   r   hreftitlerq   r   r   rw   z<%s> "%s""\"[]())r)   getr   r   )	r2   r3   r   r4   r'   r(   r   r   
title_parts	            r   	convert_azMarkdownConverter.convert_a  s   +%%K$T{{ 	2vvf~~wL% 	!LL,,44 5_5 5 D= <( 	 	E<AIWu}}S%8888r
NR\666444zzz66JJX\\r   c                 "    d| j         d         z  S )Nr   r   r   r2   s    r   r   zMarkdownConverter.<lambda>  s    DLI[<\8\ r   c                     |pd                     d          }d|v rd|z   dz   S |sdS d }t                              ||          }d|z   dz   S )Nr   r   r   r$   r   c                 >    |                      d          }|rd|z   ndS )Nr.   z> r-   r   rZ   line_contents     r   _indent_for_blockquotezDMarkdownConverter.convert_blockquote.<locals>._indent_for_blockquote  s&     ;;q>>L*6?4,&&C?r   r   r   re_line_with_contentr   )r2   r3   r   r4   r  s        r   convert_blockquotez$MarkdownConverter.convert_blockquote  sy    
!!),,##:## 	4	@ 	@ 	@ $''(>EEd{V##r   c                 f    d|v rdS | j         d                                         t          k    rdS dS )Nr   r$   r   z\
z  
)r   r   	BACKSLASHr   s       r   
convert_brzMarkdownConverter.convert_br  s:    ##3<(..00I==66r   c                     d|v r|S t          |          \  }}}|sdS t          d t          j        t          |          D             d          }d|dz   z  }|dk    rd|z   dz   }|||||S )	Nr/   r   c              3   4   K   | ]}t          |          V  d S r   )r   )r>   rZ   s     r   rA   z1MarkdownConverter.convert_code.<locals>.<genexpr>  s(      XXESZZXXXXXXr   r   )default`r.   r$   )r)   r   refindallre_backtick_runs)r2   r3   r   r4   r'   r(   max_backticksmarkup_delimiters           r   convert_codezMarkdownConverter.convert_code  s    +%%K$T{{ 	2 XXRZ@PRV5W5WXXXbcddd-!"34 1:#D%v'7'7?O?OQWQWXXr   c                     dS )Nz~~r9   r   s    r   r   zMarkdownConverter.<lambda>  s    $ r   c                 x    d|v rd|                                 z   dz   S |                                 }|rd|z  ndS )Nr   r$   

%s

r   r&   r   s       r   convert_divzMarkdownConverter.convert_div  sG    ##%++zz||&*2|d""2r   c                     | j         d         S )Nr   r   r   s    r   r   zMarkdownConverter.<lambda>  s    FX9Y r   c                     |pd                                 }d|v rd|z   dz   S |sdS d }t                              ||          }d|dd          z   }d|z  S )	Nr   r   r$   r   c                 >    |                      d          }|rd|z   ndS )Nr.   z    r   r  r  s     r   _indent_for_ddz4MarkdownConverter.convert_dd.<locals>._indent_for_dd  s&     ;;q>>L,8@6L((b@r   :r.   %s
r  )r2   r3   r   r4   r  s        r   
convert_ddzMarkdownConverter.convert_dd	  s    
!!####:## 	4	A 	A 	A $''== T!""X~}r   c                     |pd                                 }t                              d|          }d|v rd|z   dz   S |sdS d|z  S )Nr   r$   r   r   z

%s
)r   r   r   r   s       r   
convert_dtzMarkdownConverter.convert_dt   s`    
!!## $$S$//##:## 	4
 D  r   c                    d|v r|S t          dt          d|                    }| j        d                                         }|                                }|t
          k    r&|dk    r |dk    rdnd}|                     ||          S t                              d|          }d	|z  }|t          k    rd
|d|d|d
S d
|d|d
S )Nr   r.      r|   r   =-r$   #r   )
r   r   r   r   r   r{   r   r   r   
ATX_CLOSED)r2   r   r3   r   r4   stylelinehashess           r   r   zMarkdownConverter.convert_hN.  s    ##K 3q!99_-3355zz||J166q&&33cD>>$--- $$S$//qJ)/vvv>> "(&&$$$//r   c                     dS )Nz

---

r9   r   s       r   
convert_hrzMarkdownConverter.convert_hrA  s    }r   c                 >   |j                             dd           pd}|j                             dd           pd}|j                             dd           pd}|rd|                    dd          z  nd}d|v r|j        j        | j        d	         vr|S d
|d||dS )Naltr   srcr   r   r   r   r   r}   ![r   r   )attrsr   r   r   rX   r   )r2   r3   r   r4   r0  r1  r   r   s           r   convert_imgzMarkdownConverter.convert_imgF  s    hll5$''-2hll5$''-2Wd++1r<AIWu}}S%8888r
$$IN$,7N*OOOJ #SS***55r   c                    d|v r|j         j        | j        d         vr|S |j                            dd           pd}|s>|                    dddi          }|r#|d         j                            dd           pd}|j                            d	d           pd}|r|rd
|d|d|dS |r	d|d|dS |r	d|d|dS |S )Nr   r}   r1  r   sourceT)r3  r   posterz[![r   z)](r   r   r2  )r   rX   r   r3  r   find_all)r2   r3   r   r4   r1  sourcesr7  s          r   convert_videozMarkdownConverter.convert_videoQ  s   $$IN$,7N*OOOKhll5$''-2 	>kk(5$-k@@G >aj&**5$77=2h--3 	;6 	; 	;(,fffccc:: 	, 	,!%sss++ 	0 	0"&$$//r   c                     d}t          |          }|r|j        dvrd}d|v rd|                                z   S d|z   |rdndz   S )NF)rL   rK   TrM   r   r   r   )rh   rX   r   )r2   r3   r   r4   before_paragraphrg   s         r   convert_listzMarkdownConverter.convert_listc  si    
 !2266 	$L-\AA#;$++--''}(8 @bAAr   c                    |pd                                 }|sdS |j        }||j        dk    r|                    d          rWt	          |                    d                                                    r#t          |                    d                    }nd}d|t          |                    d                    z   z  }nBd}|r|j        d	k    r|dz  }|j        }|| j	        d
         }||t          |          z           }|dz   }t          |          }	d|	z  fd}
t                              |
|          }|||	d          z   }d|z  S )Nr   r   rK   startr.   z%s.rM   r%   rL   rs   r$   c                 @    |                      d          }|r|z   ndS )Nr.   r   r  )rZ   r  bullet_indents     r   _indent_for_liz4MarkdownConverter.convert_li.<locals>._indent_for_li  s'     ;;q>>L3?G=<//RGr   r   )r   r   rX   r   str	isnumericr   r   find_previous_siblingsr   r  r   )r2   r3   r   r4   r   r?  bulletdepthrs   bullet_widthrB  rA  s              @r   
convert_lizMarkdownConverter.convert_lit  s   
!!## 	4 &+"5"5zz'"" s6::g+>+>'?'?'I'I'K'K FJJw//00ec"*C*CD*I*I&J&JJKFFE 7d??QJEY   l9-GUS\\12F#6{{l*	H 	H 	H 	H 	H $''== \]]++}r   c                    d|v rd|                     d          z   dz   S |                     d          }| j        d         r| j        d         |                    d          }g }|D ]x}|                    d          }|                                }|t          |          d          }t          || j        d         dd          }|                    ||z              yd                    |          }|rd	|z  nd
S )Nr   r$   r   r   r   r   F)widthbreak_long_wordsbreak_on_hyphensr  r   )	r   r   splitr   r   r   r   appendr   )	r2   r3   r   r4   lines	new_linesr+  line_no_trailingtrailings	            r   	convert_pzMarkdownConverter.convert_p  s   ##I...44zz)$$< 	, |L)5

4((	! 6 6D;;y11D'+{{}}$#C(8$9$9$:$:;H&*l<&@16168 8 8D $$TH_5555yy++&*2|d""2r   c                 n   |sdS | j         d         }| j         d         r | j         d         |          p|}| j         d         t          k    rt          |          }nQ| j         d         t          k    rt	          |          }n+| j         d         nt          d| j         d         z            d|d|dS )	Nr   rt   ru   r"   zInvalid value for strip_pre: %sz

```r   z
```

)r   r   r"   	STRIP_ONEr   r   )r2   r3   r   r4   rt   s        r   convert_prezMarkdownConverter.convert_pre  s     	2_5<01 	XBDL)AB2FFW-M<$--T??DD\+&)33d##DD\+&.>kAZZ[[[+8==$$$??r   c                     d|z   dz   S )Nr   r9   r   s       r   	convert_qzMarkdownConverter.convert_q  s    TzCr   c                     dS Nr   r9   r   s       r   convert_scriptz MarkdownConverter.convert_script      rr   c                     dS r[  r9   r   s       r   convert_stylezMarkdownConverter.convert_style  r]  r   c                     | j         d         S )Nr   r   r   s    r   r   zMarkdownConverter.<lambda>      $,|:T r   c                     | j         d         S )Nr   r   r   s    r   r   zMarkdownConverter.<lambda>  ra  r   c                 6    d|                                 z   dz   S Nr   r&   r   s       r   convert_tablezMarkdownConverter.convert_table      

$v--r   c                 0    |                                 dz   S rd  r&   r   s       r   convert_captionz!MarkdownConverter.convert_caption  s    zz||f$$r   c                 6    d|                                 z   dz   S rd  r&   r   s       r   convert_figcaptionz$MarkdownConverter.convert_figcaption  rf  r   c           
         d}d|j         v rK|d                                         r1t          dt          dt	          |d                                       }d|                                                    dd          z   d|z  z   S Nr.   colspan  r$   r    |r3  isdigitr   r   r   r   r   r2   r3   r   r4   rm  s        r   
convert_tdzMarkdownConverter.convert_td  z      R	]%:%:%<%< !Ss2i='9'9::;;GTZZ\\))$444tg~EEr   c           
         d}d|j         v rK|d                                         r1t          dt          dt	          |d                                       }d|                                                    dd          z   d|z  z   S rl  rp  rr  s        r   
convert_thzMarkdownConverter.convert_th  rt  r   c                 6   |                     ddg          }|                                d u }t          d |D                       p:|j        j        dk    o*t          |j                             d                    dk    }|r|j        j        dk     pB|o@|j        j        dk    o0t          |j        j                             dg                    dk     }d}d}	d	}
|D ]_}d
|j        v rO|d
                                         r5|
t          dt          dt          |d
                                       z  }
Z|
dz  }
`|s|r5| j        d         r(|r&|	dd                    dg|
z            z   dz   dz   z  }	n|r| j        d         r;|r|j        j        dk    s)|j        j        dk    rc|j                                        sJ|dd                    dg|
z            z   dz   dz   z  }|dd                    dg|
z            z   dz   dz   z  }|dz   |z   dz   |	z   S )NrV   rW   c                 $    g | ]}|j         d k    S )rW   )rX   )r>   cells     r   r   z0MarkdownConverter.convert_tr.<locals>.<listcomp>  s    555td"555r   rR   rU   r.   rS   r   r   rm  rn  r   z| z | z---ro  r   rQ   |)r8  find_previous_siblingallr   rX   r   r3  rq  r   r   r   r   r   )r2   r3   r   r4   cellsis_first_row
is_headrowis_head_row_missingoverliner   full_colspanry  s               r   
convert_trzMarkdownConverter.convert_tr  s   T4L))//11T955u55566 8	') 7	**40011Q6	 	 ;").G";; nl7!:ls29CSC\C\^e]fCgCg?h?hkl?l 	 	 	" 	"DDJ&&4	?+B+B+D+D&As4T)_1E1E'F'F G GG! 	P$	P\"67	P !	P 

E7\+A B BBTIDPPII" 	P|$89	P	P y~009>W44#%9#B#B#D#D 5 uzz2$*=>>>ELLHuzz5'L*@AAADH4OOH#~$t+i77r   r   )9rn   ro   rp   r   r   r   rv   r   r   r   r   r   r   r   r   r   r   r   r:   	convert_br	  r  r  convert_delr  convert_articleconvert_section
convert_emconvert_kbdr!  
convert_dlr#  r   r.  	convert_ir4  r:  r=  
convert_ul
convert_olrI  rT  rW  rY  r\  r_  	convert_sconvert_strongconvert_sampconvert_subconvert_supre  rh  rj  rs  rv  r  r9   r   r   rj   rj      sU              0    .   # # #"' ' '9 9 9C C C C\ \ \ \|     B/ / /  .	 	 	  O O O] ] ]( +*+\+\]]I$ $ $   Y Y Y( -,->->??K3 3 3 "O!O++,Y,YZZJK  * J! ! !0 0 0&   I	6 	6 	6  $B B B JJ# # #J3 3 3.@ @ @&          INL,,-T-TUUK,,-T-TUUK. . .% % %. . .F F FF F F+8 +8 +8 +8 +8r   rj   c                 @    t          di |                    |           S )Nr9   )rj   rv   )r   r   s     r   markdownifyr    s$    ''w''//555r   )7bs4r   r   r   r   r   textwrapr   r  r   compilere_convert_heading	MULTILINEr  r   r   r   rY   r   r   r    r!   r   DOTALLr   r   r   r   r   r  ATXr)  r{   SETEXTr~   r  r   
UNDERSCOREr   r   r   rV  r   r"   r)   r:   rD   r\   r_   rb   re   rh   objectrj   r  r9   r   r   <module>r     s   E E E E E E E E E E E E E E       				 



  RZ 122 !rz(",??? 
9%%BJ}-- "
#@AA "*Y''H%%H%%
<((
:&& %"*[11  !bj!>biPPP  "rz"566  !+
+@ A A 
 #
#<==  'BJ'LMM  2:e$$  

	 
	 
 
		    
" 
" 
"  .Q Q Q) ) )L L L
  "    f	8 f	8 f	8 f	8 f	8 f	8 f	8 f	8R6 6 6 6 6r   