
    %j0k                     F   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	l	m	Z	 dd
l
mZmZmZ ddlmZ ddlmZmZ ej        dk    reZ	 	 	 	 	 	 ddZ G d de          Zd Zd Z G d de          Zd Zd Zd Z eg g g           Zd Z d Z!d Z"dS )    N   )	documentsresults)lists)
transforms   )complex_fields)dingbats)
node_types
XmlElementnull_xml_element)Styles)replace_fragmenturi_to_zip_entry_name)   c                 f    |t           j        }t          | |||||          }t          |          S )N)	numberingcontent_typesrelationshipsstyles	docx_filefiles)r   EMPTY_create_reader_BodyReader)r   r   r   r   r   r   read_alls          ]/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/mammoth/docx/body_xml.pyreaderr      sF     ~##  H x       c                       e Zd Zd Zd ZdS )r   c                     || _         d S N)	_read_all)selfr   s     r   __init__z_BodyReader.__init__,   s    !r    c                 j    |                      |          }t          j        |j        |j                  S r#   )r$   r   Resultelementsmessages)r%   r)   results      r   r   z_BodyReader.read_all/   s)    ))~fov???r    N)__name__
__module____qualname__r&   r    r    r   r   r   +   s7        " " "@ @ @ @ @r    r   c                 J    !"#$%&'()*+,-./0123456789: g -g +g .t          g d          d }&(,468fd}'fd&3fd4d 3d 8d 6#$%(.fd	}'fd
%+fd,+-0fd}	-1fd04fd1-fd}
)fd'd ) fd#d $d }d }d }d }(*7fd}'fd7(fd}(9fd}d 9:fd*d :(fd55fd }(fd!}d" }d# }!fd$} fd%!"fd& fd'"fd(fd)fd*"fd+}d, }d- }5fd.}35fd/}i d0|d1|d2|d3|	d4|
d5|d6|d7|d8|d9|d:|d;|d<5d=5d>5d?5d@5i dA5dB5dC5dD5dE5dF|dG|dH|dI|dJ|dK|dL|dM |dN          dO |dP          dQ|dR|dS|//fdT22fdU((S )VN)zoffice-word:wrapzv:shadowzv:shapetypezw:annotationRefzw:bookmarkEndzw:sectPrz
w:proofErrzw:lastRenderedPageBreakzw:commentRangeStartzw:commentRangeEndw:delzw:footnoteRefzw:endnoteRefw:pPrw:rPrw:tblPrz	w:tblGridw:trPrw:tcPrc                 ^    t          t          j        t          |                               S r#   )_successr   Text_inner_textelements    r   textz_create_reader.<locals>.textS   s"    	{7';';<<===r    c                   	
 |                      d          }|                     d          j                            d          |                     d          j                            d          |                     d          j                            d          }t          |          rt	          |          dz  nd  |                    d                     |                    d	                    	 |                    d
                     |                    d                     |                    d                     |                    d                    
 |                     d          j                            d                    fd}t                               |           | j                  	                    |          	
f
d          S )Nr3   zw:vertAlignw:valzw:rFontszw:asciizw:szr   zw:bzw:izw:uzw:strikezw:capszw:smallCapszw:highlightc                 H                 }|| S t          j        dd| i|gS )Nchildrenr/   r   	hyperlink)rA   hyperlink_kwargscurrent_hyperlink_kwargss     r   add_complex_field_hyperlinkz@_create_reader.<locals>.run.<locals>.add_complex_field_hyperlinkl   s=    7799'!+RRXRAQRRSSr    c                 ^   
 t          j        || d         | d         
	          S )Nr   r	   )rA   style_id
style_nameis_bold	is_italicis_underlineis_strikethroughis_all_capsis_small_capsvertical_alignmentfont	font_size	highlight)r   run)stylerA   rQ   rR   rS   rN   rJ   rK   rO   rM   rL   rP   s     r   <lambda>z-_create_reader.<locals>.run.<locals>.<lambda>v   sG    IM!q 8#)!1'+#5##% % % r    )
find_child_or_null
attributesget_is_intint
find_child_ReadResultmap_resultsrA   map)r<   
propertiesfont_size_stringrF   rQ   rR   rS   rN   rJ   rK   rO   rM   rL   rP   _read_run_style_read_xml_elementsrE   read_boolean_elementread_highlight_valueread_underline_elements       @@@@@@@@@@r   rT   z_create_reader.<locals>.runV   sE   //88
'..G 	 ,,Z88CGG	RR%88@@KOOPWXX#$$ 	,--1III&&z'<'<U'C'CDD(()>)>u)E)EFF	--j.C.CE.J.JKK//
0E0Ej0Q0QRR**:+@+@+J+JKK,,Z-B-B=-Q-QRR(()F)F})U)U)`)d)del)m)mnn		T 	T 	T 	T 	T &&OJ''w/00445PQQ              	r    c                 *     | ddj                   S )Nzw:rStyleRun)find_character_style_by_idr`   _read_styler   s    r   rb   z'_create_reader.<locals>._read_run_style   s    {:z5&:[\\\r    c                 R    | dS  | j                             d                    S )NFr?   rX   rY   )r<   read_boolean_attribute_values    r   rd   z,_create_reader.<locals>.read_boolean_element   s/    ?5//0B0F0Fw0O0OPPPr    c                 
    | dvS )N)false0r/   values    r   rn   z4_create_reader.<locals>.read_boolean_attribute_value   s    N**r    c                 >    | o| j                             d          dvS )Nr?   )Nrp   rq   nonerm   r;   s    r   rf   z._create_reader.<locals>.read_underline_element   s$    ^7-11'::B^^^r    c                     | r| dk    rd S | S )Nru   r/   rr   s    r   re   z,_create_reader.<locals>.read_highlight_value   s     	4Lr    c                    |                      d                               d                              d          }|&| j        D ]}                    |           t          S                      d          j                            d                                d                    | j        }r
|z   }d d = t                               	           
|          fd          	                                S )Nr2   r3   r1   zw:jcr?   zw:indc                     t          j        || d         | d          | d                             d                              S )Nr   r	   zw:numPr)paragraph_style_idr<   )rA   rH   rI   r   	alignmentindent)r   	paragraphrW   )rU   rA   _read_numbering_propertiesrz   r{   r`   s     r   rV   z3_create_reader.<locals>.paragraph.<locals>.<lambda>   s_    	(;%"1X$Qx88+08 * = =i H H   (!
) 
) 
) r    )
rW   r\   rA   append_empty_resultrX   rY   r]   r^   append_extra)r<   
is_deletedchildchildren_xmlrz   r{   r`   r}   _read_paragraph_indent_read_paragraph_stylerc   deleted_paragraph_contentss       @@@r   r|   z!_create_reader.<locals>.paragraph   s;   //88
227;;FFwOO
! ) 9 9*11%8888   #55f==HLLWUUI++J,I,I',R,RSSF"+L) 29LH.qqq1**%%j11""<00
 
 
 
 
 
 
   <>>"r    c                 *     | ddj                   S )Nzw:pStyle	Paragraph)find_paragraph_style_by_idrj   s    r   r   z-_create_reader.<locals>._read_paragraph_style   s    {:z;@abbbr    c                  r    t                    D ]%} t          | t          j                  r	| j        c S &d S r#   )reversed
isinstancer
   	Hyperlinkkwargs)complex_fieldcomplex_field_stacks    r   rE   z0_create_reader.<locals>.current_hyperlink_kwargs   sK    %&9:: 	, 	,M-)ABB ,$++++, tr    c                 $   | j                             d          }|dk    r.                    t          j        |                      d d = n|dk    r{                                }t          |t          j                  r |          }t          |t          j                  r't          t          j        |j                            S n:|dk    r4                                } |          }                    |           t          S )Nzw:fldCharTypebeginfld_charendcheckedseparate)rX   rY   r~   r
   r   popr   BeginCheckboxr8   r   checkboxr   r   )r<   fld_char_typer   complex_field_separater   current_instr_textparse_current_instr_texts       r   read_fld_charz%_create_reader.<locals>.read_fld_char   s   *..??G##&&~';W'M'M'MNNN"111%%e##/3355M-)=>> H 8 8 G G-)@AA S	 2=;P Q Q QRRRS j((%8%<%<%>%>"445KLLM&&}555r    c                     d                               }t          | t          j                  r| j        }nt
          } ||          S )N r   )joinr   r
   r   r   r   )r   
instr_textr   r   parse_instr_texts      r   r   z0_create_reader.<locals>.parse_current_instr_text   sO    WW/00
m^%9:: 	($-HH'H
X>>>>r    c                b   t          j        d|           }|5t          j        t	          |                    d                              S t          j        d|           }|5t          j        t	          |                    d                              S t          j        d|           }|~|                    d                              d          }|                    d	          }| |                    d
                    }n |          }t          j        |          S d S )Nz\s*HYPERLINK "(.*)"r	   hrefz\s*HYPERLINK\s+\\l\s+"(.*)"anchorz\s*FORMCHECKBOX\s*zw:ffDataz
w:checkBoxz	w:checkedz	w:defaultr   )	rematchr
   rC   dictgrouprW   r\   r   )	r   r   external_link_resultinternal_link_resultcheckbox_resultcheckbox_elementchecked_elementr   rd   s	           r   r   z(_create_reader.<locals>.parse_instr_text   s.   !x(>
KK+!+D6J6P6PQR6S6S,T,T,TUUU!x(F
SS+!+D8L8R8RST8U8U,V,V,VWWW(#8*EE&'##J//##L11  /99+FFO&../?/J/J;/W/WXX..??!*7;;;;tr    c                 V                         t          |                      t          S r#   )r~   r:   r   )r<   r   s    r   read_instr_textz'_create_reader.<locals>.read_instr_text   s%    !!+g"6"6777r    c                     g }|                      |          j                            d          }|d }n6 ||          }|"d }|                     ||                     n|j        }t          ||gg |          S )Nr?   )rW   rX   rY   r~   namer]   )	r`   style_tag_name
style_typefind_style_by_idr*   rH   rI   rU   _undefined_style_warnings	           r   rk   z#_create_reader.<locals>._read_style  s    //G 	 JJ$$X..E}!
 8 8X N NOOOO"Z
Hj12x@@@r    c                 R    t          j        d                    | |                    S )NzD{0} style with ID {1} was referenced but not defined in the document)r   warningformat)r   rH   s     r   r   z0_create_reader.<locals>._undefined_style_warning  s8    ellmw  zB   C   C  D  D  	Dr    c                 V   |                     d          j                            d          }|                     d          j                            d          }||                    ||          S |                     |           }||S |                    |d          S d S )Nzw:numIdr?   zw:ilvlrq   )rW   rX   rY   
find_level find_level_by_paragraph_style_id)ry   r<   num_idlevel_indexlevelr   s        r   r}   z2_create_reader.<locals>._read_numbering_properties  s    ++I66AEEgNN00::EII'RR+"9''<<<)>>?QRRE 
 ''444tr    c                 ,   | j         }t          j        |                    d          p|                    d          |                    d          p|                    d          |                    d          |                    d                    S )Nzw:startzw:leftzw:endzw:rightzw:firstLinez	w:hanging)startr   
first_linehanging)rX   r   paragraph_indentrY   )r<   rX   s     r   r   z._create_reader.<locals>._read_paragraph_indent+  s    '
)..++Gz~~h/G/Gw''D:>>)+D+D!~~m44NN;//	
 
 
 	
r    c                 B    t          t          j                              S r#   )r8   r   tabr;   s    r   r   z_create_reader.<locals>.tab4  s    	(((r    c                 ^    t          t          j        t          d                              S )Ni   )r8   r   r=   unichrr;   s    r   no_break_hyphenz'_create_reader.<locals>.no_break_hyphen8  s     	vf~~66777r    c                 D    t          t          j        d                    S )N   ­)r8   r   r=   r;   s    r   soft_hyphenz#_create_reader.<locals>.soft_hyphen<  s    	y11222r    c                    | j                             d          }| j                             d          }t          j        |t          |d          f          }|At	          j        d|          r,t          j        |t          |dd          d          f          }|7t          j        d                    ||                    }t          |          S t          t          j        t          |                              S )Nzw:fontzw:char   z^F0..r   zOA w:sym element with an unsupported character was ignored: char {0} in font {1})rX   rY   r   r[   r   r   r   r   r   _empty_result_with_messager8   r   r=   r   )r<   rQ   charunicode_code_pointr   s        r   symbolz_create_reader.<locals>.symbol?  s    !%%h//!%%h//%\4T2*?@@%"(7D*A*A%!)tSabb25F5F.G!H!H%o&w&~&~' '  G .g666IN62D+E+EFFGGGr    c                     |                      d          }t                               |           | j                                                d           S )Nr4   c                 H    t          j        || d         | d                   S )Nr   r	   )rA   rH   rI   )r   table)rU   rA   s     r   rV   z/_create_reader.<locals>.table.<locals>.<lambda>Z  s(    IO!q 8% % % r    )rW   r]   r^   rA   flat_map)r<   r`   rc   calculate_row_spansread_table_styles     r   r   z_create_reader.<locals>.tableS  se    //	::
&&Z((w/00-.. 

 

 
	
r    c                 *     | ddj                   S )Nz
w:tblStyleTable)find_table_style_by_idrj   s    r   r   z(_create_reader.<locals>.read_table_styleb  s    {:|Wf>[\\\r    c                    |                      d          }t          |                    d                    }|rt          S t          |                    d                     | j                                      fd          S )Nr5   r1   zw:tblHeaderc                 0    t          j        |           S )NrA   	is_header)r   	table_rowr   s    r   rV   z3_create_reader.<locals>.table_row.<locals>.<lambda>p  s    )"5!## # # r    )rW   boolr\   r   rA   r_   )r<   r`   r   r   rc   s      @r   r   z!_create_reader.<locals>.table_rowf  s    //99
 *//8899
 	!  ..}==>>	!!'"233S      	r    c                    |                      d                               d          j                            d          }|dnt          |           | j                                      fd          S )Nr6   z
w:gridSpanr?   r	   c                 F    t          j        | d                     S )Nr	   )rA   colspanrowspanvmerge)r   table_cell_unmerged)rA   r   r`   read_vmerges    r   rV   z4_create_reader.<locals>.table_cell.<locals>.<lambda>  s/    )"?!"{:..	# # # r    )rW   rX   rY   r[   rA   r_   )r<   gridspanr   r`   rc   r   s     @@r   
table_cellz"_create_reader.<locals>.table_cellv  s    //99
--G 	 GG(mmG!!'"233S        	r    c                 z    |                      d          }|dS |j                            d          }|dk    p| S )Nzw:vMergeFr?   continue)r\   rX   rY   )r`   vmerge_elementvals      r   r   z#_create_reader.<locals>.read_vmerge  sH    #..z::!5 +//88C*$/C/r    c                    t          d | D                       }|r. |           } t          | t          j        d          g          S t          d | D                       }|r. |           } t          | t          j        d          g          S i }| D ]F}d}|j        D ]:}|j        r||v r||         xj        dz  c_        n|||<   d|_        ||j        z  };G| D ]}d |j        D             |_        t          |           S )	Nc              3   L   K   | ]}t          |t          j                   V   d S r#   )r   r   TableRow).0rows     r   	<genexpr>z>_create_reader.<locals>.calculate_row_spans.<locals>.<genexpr>  sF       "
 "
 3	 2333"
 "
 "
 "
 "
 "
r    zBunexpected non-row element in table, cell merging may be incorrectc              3   `   K   | ])}|j         D ]}t          |t          j                   V   *d S r#   )rA   r   r   TableCellUnmerged)r   r   cells      r   r   z>_create_reader.<locals>.calculate_row_spans.<locals>.<genexpr>  s_       #
 #
#
 #
  4!<===#
 #
 #
 #
 #
 #
 #
r    zGunexpected non-cell element in table row, cell merging may be incorrectr   r	   Fc                 h    g | ]/}|j         	t          j        |j        |j        |j                   0S )rA   r   r   )r   r   r   rA   r   r   )r   r   s     r   
<listcomp>z?_create_reader.<locals>.calculate_row_spans.<locals>.<listcomp>  sS        {$!] L L    r    )	any_elements_result_with_messagesr   r   rA   r   r   r   r8   )rowsunexpected_non_rowsunexpected_non_cellscolumnsr   
cell_indexr   remove_unmerged_table_cellss          r   r   z+_create_reader.<locals>.calculate_row_spans  s   ! "
 "
"
 "
 "
 
 
  	..t44D1$T: : 9     # #
 #
#
 #
 #
  
  

   	..t44D1$Y: : 9     	+ 	+CJ + +; (:#8#8J'//14///*.GJ'"'DKdl*

+  		 		C   L  CLL ~~r    c                 x    t          t          t          j        t          j        d           |                     S )Nc                 N    t          j        | j        | j        | j                  S )Nr   )r   r   rA   r   r   )r   s    r   rV   zE_create_reader.<locals>.remove_unmerged_table_cells.<locals>.<lambda>  s'    Y1!] L L   r    )listr_   r   element_of_typer   r   )r  s    r   r  z3_create_reader.<locals>.remove_unmerged_table_cells  sE    C&+   

 

 
 
 
	r    c                 $     | j                   S r#   )rA   )r<   rc   s    r   read_child_elementsz+_create_reader.<locals>.read_child_elements  s    !!'"2333r    c                 >     |                                            S r#   )to_extrar<   r  s    r   pictz_create_reader.<locals>.pict  s     ""7++44666r    c                 ^   | j                             d          }| j                             d          }| j                             d          pd  | j                  fd}|3                    |          }|t	          ||          } ||          S | ||          S S )Nr:idzw:anchorz
w:tgtFramec                  8                           fd          S )Nc                 ,    t          j        d| dS )N)rA   target_framer/   rB   )rA   r   r  s    r   rV   zC_create_reader.<locals>.hyperlink.<locals>.create.<locals>.<lambda>  s.    	8K 9!)9 9 9 9 r    )r_   )r   children_resultr  s   `r   createz1_create_reader.<locals>.hyperlink.<locals>.create  s5    "&& ( ( ( ( (   r    r   r   )rX   rY   rA   find_target_by_relationship_idr   )	r<   relationship_idr   r  r   r  r  rc   r   s	        @@r   rC   z!_create_reader.<locals>.hyperlink  s    !,0088#''
33)--l;;Ct,,W-=>>	 	 	 	 	 	 & ??PPD!'f556t$$$$6((((""r    c                     | j                             d          }|dk    rt          S t          t	          j        |                    S )Nzw:name_GoBack)rX   rY   r   r8   r   bookmark)r<   r   s     r   bookmark_startz&_create_reader.<locals>.bookmark_start  sB    !%%h//9  I.t44555r    c                 `   | j                             d          }|r|dk    rt          t          j                  S |dk    rt          t          j                  S |dk    rt          t          j                  S t          j        d	                    |                    }t          |          S )Nzw:typetextWrappingpagecolumnzUnsupported break type: {0})rX   rY   r8   r   
line_break
page_breakcolumn_breakr   r   r   r   )r<   
break_typer   s      r   break_z_create_reader.<locals>.break_  s    '++H55
 	7Z>99I01116!!I01118##I2333o&C&J&J:&V&VWWG-g666r    c                    |                      d          j        }|                    dd                                          r|                    d          }n|                    d          }|                     d                              d                              d                              d                              d	          } ||          S )
Nzwp:docPrdescrr   titlez	a:graphicza:graphicDatazpic:piczpic:blipFillza:blip)rW   rX   rY   stripfind_children)r<   r`   alt_textblips_read_blipss       r   inlinez_create_reader.<locals>.inline  s    //
;;F
>>'2&&,,.. 	/!~~g..HH!~~g..H%%k22]?++]9%%]>**]8$$	 	
 {5(+++r    c                 h    t                               t          j        fd|                     S )Nc                      |           S r#   r/   )blip
_read_blipr.  s    r   rV   z5_create_reader.<locals>._read_blips.<locals>.<lambda>  s    D(9S9S r    )r]   concatr   r_   )r/  r.  r5  s    `r   r0  z#_create_reader.<locals>._read_blips  s2    !!%),S,S,S,S,SUZ"["[\\\r    c                 |     |           }|#t          j        d          }t          |          S  ||          S )Nz,Could not find image file for a:blip element)r   r   r   )r<   r.  
blip_imager   _find_blip_image_read_images       r   r5  z"_create_reader.<locals>._read_blip  sI    %%g..
o&TUUG-g666;z8444r    c                     | \  }}                     |          }t          j        |||          }|dv rg }n(t          j        d                    |                    g}t          ||          S )N)r.  content_typeopen)z	image/pngz	image/gifz
image/jpegzimage/svg+xmlz
image/tiffz8Image of type {0} is unlikely to display in web browsers)find_content_typer   imager   r   r   _element_result_with_messages)
image_filer.  
image_path
open_imager<  r?  r*   r   s          r   r:  z#_create_reader.<locals>._read_image  s|    !+
J$66zBBS]^^^bbbHH(b(i(ijv(w(wxxyH,UH===r    c                     | j                             d          }| j                             d          }| |          S | |          S d S )Nzr:embedzr:linkrm   )r<   embed_relationship_idlink_relationship_id_find_embedded_image_find_linked_images      r   r9  z(_create_reader.<locals>._find_blip_image+  sf     ' 2 6 6y A A&155h?? ,''(=>>>!-%%&:;;;4r    c                 d                         |           }t          d|          fd}|fS )Nwordc                  z                                   } t          | d          r| S t          j        |           S )N__exit__)r=  hasattr
contextlibclosing)rA  r   rB  s    r   rC  z@_create_reader.<locals>._find_embedded_image.<locals>.open_image9  s=    "
33Jz:.. 6!!!)*555r    )r  r   )r  targetrC  rB  r   r   s      @r   rG  z,_create_reader.<locals>._find_embedded_image5  sQ    ==oNN*66::
	6 	6 	6 	6 	6 	6 :%%r    c                 D                         |           fd}|fS )Nc                  .                                    S r#   )r=  )r   rB  s   r   rC  z>_create_reader.<locals>._find_linked_image.<locals>.open_imageF  s    ::j)))r    )r  )r  rC  rB  r   r   s     @r   rH  z*_create_reader.<locals>._find_linked_imageC  sB    "AA/RR
	* 	* 	* 	* 	* 	* :%%r    c                     | j                             d          }|#t          j        d          }t	          |          S | j                             d          }  |          |          S )Nr  z;A v:imagedata element without a relationship ID was ignoredzo:title)rX   rY   r   r   r   )r<   r  r   r+  rG  r:  s       r   read_imagedataz&_create_reader.<locals>.read_imagedataK  sq    !,0088"o&cddG-g666&**955E;33ODDeLLLr    c                       fd}|S )Nc                 ^    t          t          j        | j        d                             S Nzw:id)r8   r   note_referencerX   )r<   	note_types    r   rX  zE_create_reader.<locals>.note_reference_reader.<locals>.note_referenceU  s'    I4Y@RSY@Z[[\\\r    r/   )rY  rX  s   ` r   note_reference_readerz-_create_reader.<locals>.note_reference_readerT  s)    	] 	] 	] 	] 	] r    c                 Z    t          t          j        | j        d                             S rW  )r8   r   comment_referencerX   r;   s    r   read_comment_referencez._create_reader.<locals>.read_comment_referenceZ  s#    	3G4Fv4NOOPPPr    c                 @     |                      d                    S )Nzmc:Fallback)rW   r  s    r   alternate_contentz)_create_reader.<locals>.alternate_content]  s"    ""7#=#=m#L#LMMMr    c                 x                            d                    } fd}|                    |          S )Nzw:sdtContentc                                         d                              d          }|| S |                    d          }|d uo" 	|j                            d                    }t	          j        |          dfd}t          t          t          j	        t          j
        |          |                     }r|S S )Nzw:sdtPrzwordml:checkboxzwordml:checkedz
wordml:valr   Fc                 D    t          | j                  dk    rsdS | S )Nr   T)lenrs   )r=   document_checkboxhas_checkboxs    r   transform_textzP_create_reader.<locals>.read_sdt.<locals>.handle_content.<locals>.transform_texty  s+    tz??Q&&|&#'L,,Kr    )rW   r\   rX   rY   r   r   r  r_   r   r  r9   )
contentr   r   
is_checkedrf  replaced_contentrd  re  r<   rn   s
         @@r   handle_contentz8_create_reader.<locals>.read_sdt.<locals>.handle_contentc  s     11)<<GGHYZZH&112BCCOt+ [,,_-G-K-KL-Y-YZZ  !* 2: F F F L             $C*9>>JJ% %    
  )''((r    )rW   r_   )r<   content_resultrj  rn   r  s   `  r   read_sdtz _create_reader.<locals>.read_sdt`  sW    ,,W-G-G-W-WXX&	) &	) &	) &	) &	) &	)P !!.111r    zw:tzw:rzw:pz	w:fldCharzw:instrTextzw:tabzw:noBreakHyphenzw:softHyphenzw:symzw:tblzw:trzw:tczw:inszw:objectz
w:smartTagz	w:drawingzv:groupzv:rectzv:roundrectzv:shapez	v:textboxzw:txbxContentzw:pictzw:hyperlinkzw:bookmarkStartzw:brz	wp:inlinez	wp:anchorzv:imagedatazw:footnoteReferencefootnotezw:endnoteReferenceendnotezw:commentReferencezmc:AlternateContentzw:sdtc                                          | j                  }|K| j        vr;t          j        d                    | j                            }t          |          S t          S  ||           S )Nz(An unrecognised element was ignored: {0})rY   r   r   r   r   r   r   )r<   handlerr   _ignored_elementshandlerss      r   readz_create_reader.<locals>.read  so    ,,w|,,?|#444!/*T*[*[\c\h*i*ijj1':::$$77###r    c                     t          d |           }t                              t          j        |                    S )Nc                 ,    t          | t                    S r#   )r   r   nodes    r   rV   z<_create_reader.<locals>._read_xml_elements.<locals>.<lambda>  s    z$
'C'C r    )filterr]   r6  r   r_   )nodesr)   rs  s     r   rc   z*_create_reader.<locals>._read_xml_elements  s6    CCUKK!!%)D(";";<<<r    )set);r   r   r   r   r   r   r=   rT   r|   r   r   r   r   r   r   r   r   r   r  rC   r  r(  r1  rT  rZ  r]  r_  rl  r9  rG  rH  rq  r5  r0  r:  r}   r   r   rb   rk   rc   r   r   r   rE   r   r   rr  r   r   rs  rn   rd   r  re   r   rf   r   r  s;   ``````                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@r   r   r   4   s    
 "$     ,> > >. . . . . . . . . .`] ] ] ] ] ]Q Q Q Q Q+ + +_ _ _   "  "  "  "  "  "  "  "  "Dc c c c c c          *? ? ? ? ? ?    2    A A A A A$D D D    &
 
 
) ) )8 8 83 3 3H H H(
 
 
 
 
 
 
] ] ] ] ] ]          &0 0 0, , , , ,^  4 4 4 4 47 7 7 7 7# # # # # #26 6 67 7 7, , , , ,] ] ] ] ]5 5 5 5 5 5
> 
> 
> 
> 
>     & & & & & && & & & & &M M M M M M  Q Q QN N N N N+2 +2 +2 +2 +2 +2Z#t#s# 	y# 	]	#
 	# 	# 	?# 	# 	# 	# 		# 	
# 	$# 	'# 	)#  	(!#" 	&## #$ 	%%#& 	*'#( 	&)#* 	(+#, 	,-#. 	$/#0 	y1#2 	>3#4 	5#6 	V7#8 	V9#: 	~;#< 	44Z@@=#> 	33I>>?#@ 	4A#B 	0C#D 	E# #HJ	$ 	$ 	$ 	$ 	$ 	$= = = = = r    c                     | j         t          j        k    r| j        S d                    d | j        D                       S )Nr   c              3   4   K   | ]}t          |          V  d S r#   )r:   )r   r   s     r   r   z_inner_text.<locals>.<genexpr>  s*      EEe{5))EEEEEEr    )	node_typer   r=   rs   r   rA   rv  s    r   r:   r:     s<    ~((zwwEEt}EEEEEEr    c                   X    e Zd Zed             Zed             Zd Zd Zd Zd Z	d Z
dS )	r]   c                     t          t          j        d |           t          j        d |           t          j        d |                     S )Nc                     | j         S r#   r)   r+   s    r   rV   z$_ReadResult.concat.<locals>.<lambda>      &/ r    c                     | j         S r#   )extrar  s    r   rV   z$_ReadResult.concat.<locals>.<lambda>  s    &, r    c                     | j         S r#   )r*   r  s    r   rV   z$_ReadResult.concat.<locals>.<lambda>  r  r    )r]   r   r   r   s    r   r6  z_ReadResult.concat  sP    N997CCN66@@N997CCE E 	Er    c                     t           || j        |j                  g| j        |j        z   | j        |j        z             S r#   )r]   r)   r  r*   )firstsecondfuncs      r   r^   z_ReadResult.map_results  sB    T%.&/223K&,&NV_,. . 	.r    c                 0    || _         || _        || _        d S r#   )r)   r  r*   )r%   r)   r  r*   s       r   r&   z_ReadResult.__init__  s     
 r    c                      || j                   }t          |t                    s|g}t          || j        | j                  S r#   )r)   r   r  r]   r  r*   )r%   r  r)   s      r   r_   z_ReadResult.map  sK    4&&(D)) 	" zHJM  	r    c                      || j                   }t          |j         | j        |j        z   | j        |j        z             S r#   )r)   r]   r  r*   )r%   r  r+   s      r   r   z_ReadResult.flat_map  sB    dm$$OJ%MFO+- - 	-r    c                 ^    t          g t          | j        | j                  | j                  S r#   )r]   _concatr  r)   r*   r%   s    r   r  z_ReadResult.to_extra  s$    2wtz4=AA4=QQQr    c                 ^    t          t          | j        | j                  g | j                  S r#   )r]   r  r)   r  r*   r  s    r   r   z_ReadResult.append_extra  s$    74=$*==r4=QQQr    N)r,   r-   r.   staticmethodr6  r^   r&   r_   r   r  r   r/   r    r   r]   r]     s        E E \E . . \.! ! !
  - - -R R RR R R R Rr    r]   c                 T    t          | t                    s| g} t          | g g           S r#   )r   r  r]   r  s    r   r8   r8     s-    h%% :xR(((r    c                 $    t          | g|          S r#   )r  )r<   r*   s     r   r@  r@    s    )7)X>>>r    c                 $    t          | g |          S r#   r]   )r)   r*   s     r   r  r    s    xX...r    c                 &    t          g g | g          S r#   r  )messages    r   r   r     s    r2y)))r    c                  H    g }| D ]}|D ]}|                     |           |S r#   )r~   )valuesr+   rs   r<   s       r   r  r  	  sD    F # # 	# 	#GMM'""""	#Mr    c                 R    | dS 	 t          |            n# t          $ r Y dS w xY wdS )NFT)r[   
ValueErrorrr   s    r   rZ   rZ     sG    }uE



   uu 4s    
$$)NNNNNN)#rN  r   sysr   r   r   r   r   r
   r   	xmlparserr   r   r   
styles_xmlr   urisr   r   version_infochrr   r   objectr   r   r:   r]   r8   r@  r  r   r   r  rZ   r/   r    r   <module>r     s       				 



                                     ? ? ? ? ? ? ? ? ? ?       9 9 9 9 9 9 9 9uF 
! ! ! !0@ @ @ @ @& @ @ @N
 N
 N
bF F F*R *R *R *R *R& *R *R *RX) ) )
? ? ?/ / / BB''* * *  	 	 	 	 	r    