ó
    ‰*£hJƒ  ã                  óF  • S r SSKJr  SSKJrJrJr  SSKJrJ	r	J
r
  SSKJr  SSKJrJr  SSKJr  SSKJr  SS	KJrJrJrJrJr  SS
KJr  SSKJrJrJrJ r J!r!J"r"J#r#  SSK$J%r%J&r&J'r'  \(       a  SSKJ(r(  SSK)J*r*  SSKJ+r+J,r,  SSK-J.r.   " S S\5      r/ " S S\5      r0 " S S\5      r1 " S S\5      r2 " S S\5      r3 " S S\5      r4 " S S\5      r5 " S S \5      r6 " S! S"\5      r7 " S# S$\5      r8 " S% S&\5      r9 " S' S(\5      r: " S) S*\5      r; " S+ S,\5      r<g-).z"Custom element classes for tables.é    )Úannotations)ÚTYPE_CHECKINGÚCallableÚcast)ÚWD_CELL_VERTICAL_ALIGNMENTÚWD_ROW_HEIGHT_RULEÚWD_TABLE_DIRECTION)ÚInvalidSpanError)ÚnsdeclsÚqn)Ú	parse_xml)ÚCT_DecimalNumber)ÚST_MergeÚST_TblLayoutTypeÚST_TblWidthÚST_TwipsMeasureÚXsdInt)ÚCT_P)ÚBaseOxmlElementÚOneAndOnlyOneÚ	OneOrMoreÚOptionalAttributeÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOne)ÚEmuÚLengthÚTwips)ÚWD_TABLE_ALIGNMENT)ÚWD_ALIGN_PARAGRAPH)ÚCT_OnOffÚ	CT_String)ÚCT_Jcc                  óR   • \ rS rSr% Sr\" S\5      rS\S'   \" S\	5      r
S\S'   S	rg
)Ú	CT_Heighté&   zBUsed for `w:trHeight` to specify a row height and row height rule.úw:valúLength | NoneÚvalzw:hRuleúWD_ROW_HEIGHT_RULE | NoneÚhRule© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r)   Ú__annotations__r   r+   Ú__static_attributes__r,   ó    ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docx/oxml/table.pyr%   r%   &   s5   ‡ ÙLá*Ø�ó€Cˆó ñ (9ØÐ%ó(€EÐ$ö r4   r%   c                  óZ  • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   \" S
5      rS\S'   \" S5      rS\S'   \	" S5      r
\SS j5       r\SS j5       rSS jr\SS j5       r\S S j5       r\R"                  S!S j5       r\S 5       r\R"                  S"S j5       rS#S jrS$S jrS rSrg)%ÚCT_Rowé1   z``<w:tr>`` element.zCallable[[], CT_Tc]Úadd_tczCallable[[], CT_TrPr]Úget_or_add_trPrÚ	_add_trPrzlist[CT_Tc]Útc_lstz	w:tblPrExzCT_TblPrEx | NoneÚtblPrExzw:trPrzCT_TrPr | NoneÚtrPrzw:tcc                ó:   • U R                   nUc  gUR                  $ ©zCThe number of unpopulated layout-grid cells at the end of this row.r   )r>   Ú
grid_after©Úselfr>   s     r5   rA   ÚCT_Row.grid_after?   s   € ð �y‰yˆØ‰<ØØ�‰Ðr4   c                ó:   • U R                   nUc  gUR                  $ ©zEThe number of unpopulated layout-grid cells at the start of this row.r   )r>   Úgrid_beforerB   s     r5   rG   ÚCT_Row.grid_beforeG   s!   € ð �y‰yˆØ‰<ØØ×ÑÐr4   c                ó    • XR                   -
  nU R                   H#  nUS:  a    OUS:X  a  Us  $ X#R                  -  nM%     [        SU 35      e)zŽThe `tc` element in this tr at exact `grid offset`.

Raises ValueError when this `w:tr` contains no `w:tc` with exact starting `grid_offset`.
r   zno `tc` element at grid_offset=)rG   r<   Ú	grid_spanÚ
ValueError)rC   Úgrid_offsetÚremaining_offsetÚtcs       r5   Útc_at_grid_offsetÚCT_Row.tc_at_grid_offsetO   s]   € ð '×)9Ñ)9Ñ9Ðà—+”+ˆBà !Ó#Ùà 1Ó$Ø’	ð §¡Ñ,Òñ ô Ð:¸;¸-ÐHÓIÐIr4   c                ót   • [        [        U R                  5       5      nUR                  R	                  U 5      $ )z?Index of this `w:tr` element within its parent `w:tbl` element.)r   ÚCT_TblÚ	getparentÚtr_lstÚindex)rC   Útbls     r5   Útr_idxÚCT_Row.tr_idxd   s,   € ô ”6˜4Ÿ>™>Ó+Ó,ˆØ�z‰z×Ñ Ó%Ð%r4   c                ó:   • U R                   nUc  gUR                  $ )zFThe value of `./w:trPr/w:trHeight/@w:hRule`, or |None| if not present.N)r>   ÚtrHeight_hRulerB   s     r5   rZ   ÚCT_Row.trHeight_hRulej   s!   € ð �y‰yˆØ‰<ØØ×"Ñ"Ð"r4   c                ó0   • U R                  5       nXl        g ©N)r:   rZ   ©rC   Úvaluer>   s      r5   rZ   r[   r   s   € à×#Ñ#Ó%ˆØ#Õr4   c                ó:   • U R                   nUc  gUR                  $ )zHReturn the value of `w:trPr/w:trHeight@w:val`, or |None| if not present.N)r>   ÚtrHeight_valrB   s     r5   ra   ÚCT_Row.trHeight_valw   s!   € ð �y‰yˆØ‰<ØØ× Ñ Ð r4   c                ó0   • U R                  5       nXl        g r]   )r:   ra   r^   s      r5   ra   rb      s   € à×#Ñ#Ó%ˆØ!Õr4   c                ó(   • U R                  SU5        g ©Nr   ©Úinsert)rC   r=   s     r5   Ú_insert_tblPrExÚCT_Row._insert_tblPrEx„   s   € Ø�‰�A�wÕr4   c                ój   • U R                   nUb  UR                  U5        g U R                  SU5        g re   )r=   Úaddnextrg   )rC   r>   r=   s      r5   Ú_insert_trPrÚCT_Row._insert_trPr‡   s+   € Ø—,‘,ˆØÑØ�O‰O˜DÕ!à�K‰K˜˜4Õ r4   c                ó*   • [         R                  5       $ r]   )ÚCT_TcÚnew©rC   s    r5   Ú_new_tcÚCT_Row._new_tcŽ   s   € Ü�y‰y‹{Ðr4   r,   N©ÚreturnÚint)rL   rv   ru   ro   ©ru   r*   ©r_   r*   ©r_   r(   )r=   Ú
CT_TblPrEx)r>   ÚCT_TrPr)r-   r.   r/   r0   r1   r2   r   r=   r>   r   rN   ÚpropertyrA   rG   rO   rW   rZ   Úsetterra   rh   rl   rr   r3   r,   r4   r5   r7   r7   1   sñ   ‡ ÙàÓØ*Ó*Ø$Ó$àÓá!*¨;Ó!7€GÐÓ7á$ XÓ.€Dˆ.Ó.Ù	�FÓ	€Bàóó ðð ó ó ð ôJð* ó&ó ð&ð
 ó#ó ð#ð ×Ñó$ó ð$ð ñ!ó ð!ð ×Ñó"ó ð"ô ô!õr4   r7   c                  ód  • \ rS rSr% SrS\S'   S\S'   \" S5      rS\S	'   \" S
5      rS\S'   \	" S5      r
\SS j5       r\R                  SS j5       r\S 5       rS r\SS j5       r\SS j5       r\R                  SS j5       r\S S j5       r\S!S j5       r\S"S j5       r\S!S j5       rSrg)#rR   é’   z``<w:tbl>`` element.zCallable[[], CT_Row]Úadd_trzlist[CT_Row]rT   zw:tblPrÚCT_TblPrÚtblPrz	w:tblGridÚ
CT_TblGridÚtblGridzw:trc                óN   • U R                   R                  nUc  gUR                  $ )z�Value of `./w:tblPr/w:bidiVisual/@w:val` or |None| if not present.

Controls whether table cells are displayed right-to-left or left-to-right.
N)r‚   Ú
bidiVisualr)   )rC   r†   s     r5   ÚbidiVisual_valÚCT_Tbl.bidiVisual_valœ   s&   € ð —Z‘Z×*Ñ*ˆ
ØÑØØ�~‰~Ðr4   c                ó€   • U R                   nUc  UR                  5         g [        U5      UR                  5       l        g r]   )r‚   Ú_remove_bidiVisualÚboolÚget_or_add_bidiVisualr)   )rC   r_   r‚   s      r5   r‡   rˆ   §   s1   € à—
‘
ˆØ‰=Ø×$Ñ$Õ&ä04°U³ˆE×'Ñ'Ó)Õ-r4   c                ó@   • [        U R                  R                  5      $ )z)The number of grid columns in this table.)Úlenr„   ÚgridCol_lstrq   s    r5   Ú	col_countÚCT_Tbl.col_count¯   s   € ô �4—<‘<×+Ñ+Ó,Ð,r4   c              #  ó`   #   • U R                    H  nUR                   H  nUv •  M	     M     g7f)z­Generate each of the `w:tc` elements in this table, left to right and top to
bottom.

Each cell in the first row is generated, followed by each cell in the second
row, etc.
N)rT   r<   )rC   ÚtrrN   s      r5   Úiter_tcsÚCT_Tbl.iter_tcs´   s(   é € ð —+”+ˆBØ—i”i�Ø”ó  ò ùs   ‚,.c           
     óT   • [        [        [        U R                  XU5      5      5      $ )zxReturn a new `w:tbl` element having `rows` rows and `cols` columns.

`width` is distributed evenly between the columns.
)r   rR   r   Ú_tbl_xml)ÚclsÚrowsÚcolsÚwidths       r5   Únew_tblÚCT_Tbl.new_tbl¿   s!   € ô ”FœI c§l¡l°4¸uÓ&EÓFÓGÐGr4   c                óN   • U R                   R                  nUc  gUR                  $ )zH`w:tblPr/w:tblStyle/@w:val` (a table style id) or |None| if not present.N)r‚   ÚtblStyler)   ©rC   rŸ   s     r5   ÚtblStyle_valÚCT_Tbl.tblStyle_valÇ   s&   € ð —:‘:×&Ñ&ˆØÑØØ�|‰|Ðr4   c                ól   • U R                   nUR                  5         Uc  gXR                  5       l        g)z†Set the value of `w:tblPr/w:tblStyle/@w:val` (a table style id) to `styleId`.

If `styleId` is None, remove the `w:tblStyle` element.
N)r‚   Ú_remove_tblStyleÚ_add_tblStyler)   )rC   ÚstyleIdr‚   s      r5   r¡   r¢   Ï   s0   € ð —
‘
ˆØ×ÑÔ Ø‰?ØØ$+×ÑÓÕ!r4   c           	     ó¤   • US:”  a  [        X2-  5      O
[        S5      nS[        S5       SU R                  X$5       U R                  XU5       S3$ )Nr   z<w:tbl Úwz×>
  <w:tblPr>
    <w:tblW w:type="auto" w:w="0"/>
    <w:tblLook w:firstColumn="1" w:firstRow="1"
               w:lastColumn="0" w:lastRow="0" w:noHBand="0"
               w:noVBand="1" w:val="04A0"/>
  </w:tblPr>
z	</w:tbl>
)r   r   Ú_tblGrid_xmlÚ_trs_xml)r˜   r™   rš   r›   Ú	col_widths        r5   r—   ÚCT_Tbl._tbl_xmlÛ   s[   € à*.°«(”C˜™Ô&¼¸A»ˆ	à”g˜c“l�^ð $ð ×Ñ Ó0Ð1Ø�|‰|˜D¨	Ó2Ð3Øð	ð	
r4   c                ó\   • Sn[        U5       H  nUSUR                  -  -  nM     US-  nU$ )Nz  <w:tblGrid>
z    <w:gridCol w:w="%d"/>
z  </w:tblGrid>
)ÚrangeÚtwips)r˜   r�   r«   ÚxmlÚ_s        r5   r©   ÚCT_Tbl._tblGrid_xmlë   s:   € àˆÜ�yÖ!ˆAØÐ0°9·?±?ÑBÑBŠCñ "àÐ!Ñ!ˆØˆ
r4   c                ó2   • SU R                  X#5       S3U-  $ )Nz	  <w:tr>
z
  </w:tr>
)Ú_tcs_xml)r˜   Ú	row_countr�   r«   s       r5   rª   ÚCT_Tbl._trs_xmló   s    € à˜CŸL™L¨Ó>Ð?¸{ÐKÈiÑWÐWr4   c                ó(   • SUR                    S3U-  $ )Nz;    <w:tc>
      <w:tcPr>
        <w:tcW w:type="dxa" w:w="z-"/>
      </w:tcPr>
      <w:p/>
    </w:tc>
)r¯   )r˜   r�   r«   s      r5   r´   ÚCT_Tbl._tcs_xml÷   s+   € ð0à09·±Ð/@ð Aðð ñð 	r4   r,   N)ru   zbool | None)r_   zWD_TABLE_DIRECTION | None)r™   rv   rš   rv   r›   r   ru   rR   ©ru   ú
str | None)r¦   rº   ru   ÚNone)r™   rv   rš   rv   r›   r   ru   Ústr)r�   rv   r«   r   ru   r¼   )rµ   rv   r�   rv   r«   r   ru   r¼   )r-   r.   r/   r0   r1   r2   r   r‚   r„   r   r“   r|   r‡   r}   r�   r”   Úclassmethodrœ   r¡   r—   r©   rª   r´   r3   r,   r4   r5   rR   rR   ’   s  ‡ Ùà Ó ØÓá# IÓ.€Eˆ8Ó.Ù'¨Ó4€GˆZÓ4Ù	�FÓ	€Bàóó ðð ×Ñó<ó ð<ð ñ-ó ð-ò	ð óHó ðHð óó ðð ×Ñó	,ó ð	,ð ó
ó ð
ð óó ðð óXó ðXð óó ór4   rR   c                  ó<   • \ rS rSr% SrS\S'   S\S'   \" SSS	9rS
rg)rƒ   i  zi`w:tblGrid` element.

Child of `w:tbl`, holds `w:gridCol> elements that define column count, width, etc.
zCallable[[], CT_TblGridCol]Úadd_gridColzlist[CT_TblGridCol]r�   z	w:gridCol)zw:tblGridChange©Ú
successorsr,   N)	r-   r.   r/   r0   r1   r2   r   ÚgridColr3   r,   r4   r5   rƒ   rƒ     s"   ‡ ñð
 -Ó,Ø$Ó$á˜Ð1EÑFƒGr4   rƒ   c                  óJ   • \ rS rSr% Sr\" S\5      rS\S'   \	S	S j5       r
Srg)
ÚCT_TblGridColi  zB`w:gridCol` element, child of `w:tblGrid`, defines a table column.úw:wr(   r¨   c                ót   • [        [        U R                  5       5      nUR                  R	                  U 5      $ )zHIndex of this `w:gridCol` element within its parent `w:tblGrid` element.)r   rƒ   rS   r�   rU   )rC   r„   s     r5   ÚgridCol_idxÚCT_TblGridCol.gridCol_idx  s.   € ô ”z 4§>¡>Ó#3Ó4ˆØ×"Ñ"×(Ñ(¨Ó.Ð.r4   r,   Nrt   )r-   r.   r/   r0   r1   r   r   r¨   r2   r|   rÇ   r3   r,   r4   r5   rÄ   rÄ     s/   ‡ ÙLá(Øˆó€A€}ó ð ó/ó ó/r4   rÄ   c                  ó6   • \ rS rSr% Sr\" S\5      rS\S'   Sr	g)ÚCT_TblLayoutTypei  zu`w:tblLayout` element.

Specifies whether column widths are fixed or can be automatically adjusted based on
content.
úw:typerº   Útyper,   N)
r-   r.   r/   r0   r1   r   r   rÌ   r2   r3   r,   r4   r5   rÊ   rÊ     s    ‡ ññ )ØÐ"ó€Dˆ*ö r4   rÊ   c                  óŽ  • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   Sr\" S\SS S9rS\S'   \" S\SS S9r	S\S'   \" S\SS S9r
S\S'   \" S\SS S9rS \S!'   C\S)S" j5       r\R                  S*S# j5       r\S+S$ j5       r\R                  S,S% j5       r\S& 5       r\R                  S-S' j5       rS(rg).r�   i)  zy``<w:tblPr>`` element, child of ``<w:tbl>``, holds child elements that define
table properties such as style and borders.zCallable[[], CT_OnOff]rŒ   zCallable[[], CT_Jc]Úget_or_add_jczCallable[[], CT_TblLayoutType]Úget_or_add_tblLayoutzCallable[[], CT_String]r¥   úCallable[[], None]rŠ   Ú
_remove_jcr¤   )ú
w:tblStylezw:tblpPrzw:tblOverlapúw:bidiVisualzw:tblStyleRowBandSizezw:tblStyleColBandSizezw:tblWúw:jcúw:tblCellSpacingzw:tblIndzw:tblBordersúw:shdúw:tblLayoutzw:tblCellMarz	w:tblLookzw:tblCaptionzw:tblDescriptionzw:tblPrChangerÒ   é   NrÀ   zCT_String | NonerŸ   rÓ   é   zCT_OnOff | Noner†   rÔ   é   zCT_Jc | NoneÚjcr×   é   zCT_TblLayoutType | NoneÚ	tblLayoutc                óN   • U R                   nUc  g[        SUR                  5      $ )zAHorizontal alignment of table, |None| if `./w:jc` is not present.NúWD_TABLE_ALIGNMENT | None)rÛ   r   r)   )rC   rÛ   s     r5   Ú	alignmentÚCT_TblPr.alignmentW  s'   € ð �W‰WˆØ‰:ØÜÐ/°·±Ó8Ð8r4   c                ón   • U R                  5         Uc  g U R                  5       n[        SU5      Ul        g )Nr    )rÑ   rÎ   r   r)   )rC   r_   rÛ   s      r5   rà   rá   _  s1   € à�‰ÔØ‰=ØØ×ÑÓ!ˆÜÐ*¨EÓ2ˆ�r4   c                óB   • U R                   nUc  S$ UR                  S:g  $ )zW|False| when there is a `w:tblLayout` child with `@w:type="fixed"`.

Otherwise |True|.
TÚfixed)rÝ   rÌ   )rC   rÝ   s     r5   ÚautofitÚCT_TblPr.autofitg  s&   € ð —N‘Nˆ	Ø Ñ(ˆtÐG¨i¯n©nÀÑ.GÐGr4   c                óP   • U R                  5       nU(       a  SUl        g SUl        g )Nrå   rä   )rÏ   rÌ   )rC   r_   rÝ   s      r5   rå   ræ   p  s   € à×-Ñ-Ó/ˆ	Þ&+˜ˆ	�°ˆ	�r4   c                ó:   • U R                   nUc  gUR                  $ )zaReturn the value of the ``val`` attribute of the ``<w:tblStyle>`` child or
|None| if not present.N)rŸ   r)   r    s     r5   ÚstyleÚCT_TblPr.styleu  s    € ð —=‘=ˆØÑØØ�|‰|Ðr4   c                óT   • U R                  5         Uc  g XR                  5       l        g r]   )r¤   r¥   r)   ©rC   r_   s     r5   ré   rê   ~  s%   € à×ÑÔØ‰=ØØ#(×ÑÓÕ r4   r,   )ru   rß   )r_   rß   ©ru   r‹   )r_   r‹   ©r_   rº   )r-   r.   r/   r0   r1   r2   Ú_tag_seqr   rŸ   r†   rÛ   rÝ   r|   rà   r}   rå   ré   r3   r,   r4   r5   r�   r�   )  s?  ‡ ñ3ð 2Ó1Ø&Ó&Ø8Ó8Ø*Ó*Ø*Ó*Ø"Ó"Ø(Ó(ð€Hñ( "+Ø ¨!¨" ñ"€HÐó ñ #,Ø 8¨A¨B <ñ#€J�ó ñ !Ø˜8 A B˜<ñ€Bˆó ñ *3Ø (¨2¨3 -ñ*€IÐ&ó ð 	àó9ó ð9ð ×Ñó3ó ð3ð óHó ðHð ‡^�^ó9ó ð9ð ñó ðð ‡\�\ó)ó ó)r4   r�   c                  ó   • \ rS rSrSrSrg)rz   i†  zç`w:tblPrEx` element, exceptions to table-properties.

Applied at a lower level, like a `w:tr` to modify the appearance. Possibly used when
two tables are merged. For more see:
http://officeopenxml.com/WPtablePropertyExceptions.php
r,   N)r-   r.   r/   r0   r1   r3   r,   r4   r5   rz   rz   †  s   † ôr4   rz   c                  ó„   • \ rS rSr% Sr\" S\5      rS\S'   \" S\	5      r
\SS j5       r\R                  SS j5       rS	rg
)ÚCT_TblWidthi�  zJUsed for `w:tblW` and `w:tcW` and others, specifies a table-related width.rÅ   rv   r¨   rË   c                óN   • U R                   S:w  a  g[        U R                  5      $ )z>EMU length indicated by the combined `w:w` and `w:type` attrs.ÚdxaN)rÌ   r   r¨   rq   s    r5   r›   ÚCT_TblWidth.width˜  s!   € ð �9‰9˜ÓØÜ�T—V‘V‹}Ðr4   c                óF   • SU l         [        U5      R                  U l        g )Nrô   )rÌ   r   r¯   r¨   rì   s     r5   r›   rõ   Ÿ  s   € àˆŒ	Ü�U“×!Ñ!ˆ�r4   )rÌ   r¨   N©ru   r(   ©r_   r   )r-   r.   r/   r0   r1   r   r   r¨   r2   r   rÌ   r|   r›   r}   r3   r,   r4   r5   rò   rò   �  sN   ‡ ÙTñ
 ˜u fÓ-€A€sÓ-Ù˜X {Ó3€Dàóó ðð ‡\�\ó"ó ó"r4   rò   c                  óú  • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   \" S5      rS\S'   \" S5      r	\" S5      r
\S8S j5       rS r\S8S j5       r\S8S j5       r\R                   S9S j5       r\S:S j5       rS r\S8S j5       rS;S jr\S<S j5       r\S8S j5       r\S8S j5       r\S=S j5       r\R                   S>S  j5       r\S?S! j5       r\R                   S@S" j5       rSAS# jrSBSCS% jjrSDS& jr\SES' j5       rSAS( jrSFS) jr \SGS* j5       r!S+ r"S, r#SHS- jr$SIS. jr%SJS/ jr&\SKS0 j5       r'\S<S1 j5       r(\SGS2 j5       r)\SLS3 j5       r*\SLS4 j5       r+\SMS5 j5       r,\S8S6 j5       r-S7r.g$)Nro   i¥  z`w:tc` table cell element.zCallable[[], CT_P]Úadd_pzCallable[[], CT_TcPr]Úget_or_add_tcPrz
list[CT_P]Úp_lstzlist[CT_Tbl]Útbl_lstzCallable[[CT_Tbl], CT_Tbl]Ú_insert_tblÚ_new_pzw:tcPrzCT_TcPr | NoneÚtcPrúw:púw:tblc                ó¬   • U R                   b9  U R                  nUb*  UR                   [        R                  :X  a  UR                  $ U R
                  S-   $ )zÔThe row index that marks the bottom extent of the vertical span of this cell.

This is one greater than the index of the bottom-most row of the span, similar
to how a slice of the cell's rows would be specified.
rØ   )ÚvMergeÚ	_tc_belowr   ÚCONTINUEÚbottomÚ_tr_idx)rC   Útc_belows     r5   r  ÚCT_Tc.bottom´  sG   € ð �;‰;Ñ"Ø—~‘~ˆHØÑ#¨¯©¼8×;LÑ;LÓ(LØ—‘Ð&Ø�|‰|˜aÑÐr4   c                óV   • U R                  S5       H  nU R                  U5        M     g)a  Remove all content elements, preserving `w:tcPr` element if present.

Note that this leaves the `w:tc` element in an invalid state because it doesn't
contain at least one block-level element. It's up to the caller to add a
`w:p`child element as the last content element.
z./*[not(self::w:tcPr)]N)ÚxpathÚremove)rC   Úes     r5   Úclear_contentÚCT_Tc.clear_contentÁ  s#   € ð —‘Ð4Ö5ˆAØ�K‰K˜ŽNò 6r4   c                óx   • U R                   R                  n[        S U R                  S5       5       5      nX-   $ )zsStarting offset of `tc` in the layout-grid columns of its table.

A cell in the leftmost grid-column has offset 0.
c              3  ó8   #   • U  H  oR                   v •  M     g 7fr]   )rJ   )Ú.0rN   s     r5   Ú	<genexpr>Ú$CT_Tc.grid_offset.<locals>.<genexpr>Ó  s   é € ð &
Ú#J˜R�LŽLÒ#Jùs   ‚z./preceding-sibling::w:tc)Ú_trrG   Úsumr  )rC   rG   Úpreceding_tc_grid_spanss      r5   rL   ÚCT_Tc.grid_offsetÌ  s@   € ð —h‘h×*Ñ*ˆÜ"%ñ &
Ø#'§:¡:Ð.IÔ#Jó&
ó #
Ðð Ñ4Ð4r4   c                ó<   • U R                   nUc  S$ UR                  $ )zjThe integer number of columns this cell spans.

Determined by ./w:tcPr/w:gridSpan/@val, it defaults to 1.
rØ   )r   rJ   ©rC   r   s     r5   rJ   ÚCT_Tc.grid_spanØ  s    € ð �y‰yˆØ‘LˆqÐ4 d§n¡nÐ4r4   c                ó0   • U R                  5       nXl        g r]   )rû   rJ   ©rC   r_   r   s      r5   rJ   r  á  s   € à×#Ñ#Ó%ˆØ�r4   c                ó$   • U R                  S5      $ )z¼Generate all `w:p` and `w:tbl` elements in this document-body.

Elements appear in document order. Elements shaded by nesting in a `w:ins` or
other "wrapper" element will not be included.
z./w:p | ./w:tbl©r  rq   s    r5   Úinner_content_elementsÚCT_Tc.inner_content_elementsæ  s   € ð �z‰zÐ+Ó,Ð,r4   c              #  óŠ   #   • [        S5      [        S5      [        S5      4nU  H  nUR                  U;   d  M  Uv •  M     g7f)zhGenerate a reference to each of the block-level content elements in this
cell, in the order they appear.r  r  zw:sdtN)r   Útag)rC   Úblock_item_tagsÚchilds      r5   Úiter_block_itemsÚCT_Tc.iter_block_itemsï  s:   é € ô ˜e›9¤b¨£k´2°g³;Ð?ˆÛˆEØ�y‰y˜OÕ+Ø”ò ùs
   ‚4Aº	Ac                ó   • U R                   $ )z?The grid column index at which this ``<w:tc>`` element appears.)rL   rq   s    r5   ÚleftÚ
CT_Tc.left÷  s   € ð ×ÑÐr4   c                ó    • U R                  U5      u  p#pEU R                  R                  U   R                  U5      nUR	                  XT5        U$ )z¥Return top-left `w:tc` element of a new span.

Span is formed by merging the rectangular region defined by using this tc
element and `other_tc` as diagonal corners.
)Ú_span_dimensionsÚ_tblrT   rO   Ú_grow_to)rC   Úother_tcÚtopr*  Úheightr›   Útop_tcs          r5   ÚmergeÚCT_Tc.mergeü  sI   € ð $(×#8Ñ#8¸Ó#BÑ ˆ�6Ø—‘×!Ñ! #Ñ&×8Ñ8¸Ó>ˆØ�‰˜Ô&Øˆr4   c           	     óL   • [        [        [        S[        S5      -  5      5      $ )zUA new `w:tc` element, containing an empty paragraph as the required EG_BlockLevelElt.z<w:tc %s><w:p/></w:tc>r¨   )r   ro   r   r   )r˜   s    r5   rp   Ú	CT_Tc.new  s    € ô ”Eœ9Ð%=ÄÈÃÑ%LÓMÓNÐNr4   c                ó4   • U R                   U R                  -   $ )zçThe grid column index that marks the right-side extent of the horizontal span
of this cell.

This is one greater than the index of the right-most column of the span, similar
to how a slice of the cell's columns would be specified.
)rL   rJ   rq   s    r5   ÚrightÚCT_Tc.right  s   € ð ×Ñ $§.¡.Ñ0Ð0r4   c                óœ   • U R                   b  U R                   [        R                  :X  a  U R                  $ U R                  R
                  $ )z9The top-most row index in the vertical span of this cell.)r  r   ÚRESTARTr  Ú	_tc_abover1  rq   s    r5   r1  Ú	CT_Tc.top  s9   € ð �;‰;Ñ $§+¡+´×1AÑ1AÓ"AØ—<‘<ÐØ�~‰~×!Ñ!Ð!r4   c                ó:   • U R                   nUc  gUR                  $ )zCValue of ./w:tcPr/w:vMerge/@val, |None| if w:vMerge is not present.N)r   Ú
vMerge_valr  s     r5   r  ÚCT_Tc.vMerge  s   € ð �y‰yˆØ‰<ØØ�‰Ðr4   c                ó0   • U R                  5       nXl        g r]   )rû   r@  r  s      r5   r  rA  %  s   € à×#Ñ#Ó%ˆØ�r4   c                ó:   • U R                   nUc  gUR                  $ )zDEMU length represented in `./w:tcPr/w:tcW` or |None| if not present.N)r   r›   r  s     r5   r›   ÚCT_Tc.width*  s   € ð �y‰yˆØ‰<ØØ�z‰zÐr4   c                ó0   • U R                  5       nXl        g r]   )rû   r›   r  s      r5   r›   rD  2  s   € à×#Ñ#Ó%ˆØ�
r4   c                óš   • U R                   (       a:  UR                   (       a(  [        U R                   UR                   -   5      U l         ggg)zyAdd the width of `other_tc` to this cell.

Does nothing if either this tc or `other_tc` does not have a specified width.
N)r›   r   )rC   r0  s     r5   Ú_add_width_ofÚCT_Tc._add_width_of7  s1   € ð
 �:�:˜(Ÿ.Ÿ.Ü §
¡
¨X¯^©^Ñ ;Ó<ˆD�Jð )ˆ:r4   Nc                ó´   ^ ^• SUU 4S jjnUc  T OUnT R                  XU" U5      5        TS:”  a(  T R                  nUc   eUR                  UTS-
  U5        gg)z¦Grow this cell to `width` grid columns and `height` rows.

This is accomplished by expanding horizontal spans and creating continuation
cells to form vertical spans.
c                ó^   >• U TLa  [         R                  $ TS:X  a  S $ [         R                  $ ©NrØ   )r   r  r<  )r3  r2  rC   s    €€r5   r@  Ú"CT_Tc._grow_to.<locals>.vMerge_valF  s@   ø€ ð  Ò%ô ×!Ñ!ðð ˜Q“;ð ðô
 ×%Ñ%ðr4   NrØ   )r3  ro   )Ú_span_to_widthr  r/  )rC   r›   r2  r3  r@  r	  s   ` `   r5   r/  ÚCT_Tc._grow_to?  sf   ù€ ÷	ð 	ð  ™‘¨VˆØ×Ñ˜E©:°fÓ+=Ô>Ø�A‹:Ø—~‘~ˆHØÑ'Ð'Ð'Ø×Ñ˜e V¨a¡Z°Õ8ð r4   c                ó*   • U R                  SU5        U$ )z#Override default `._insert_tcPr()`.r   rf   r  s     r5   Ú_insert_tcPrÚCT_Tc._insert_tcPrV  s   € ð 	�‰�A�tÔØˆr4   c                ó¼   • [        U R                  5       5      n[        U5      S:”  a  gUS   n[        U[        5      =(       a    [        UR
                  5      S:H  $ )z=True if this cell contains only a single empty `w:p` element.rØ   Fr   )Úlistr'  rŽ   Ú
isinstancer   Úr_lst)rC   Úblock_itemsÚ	only_items      r5   Ú	_is_emptyÚCT_Tc._is_empty]  sR   € ô ˜4×0Ñ0Ó2Ó3ˆÜˆ{Ó˜aÓØð   ‘Nˆ	Ü˜)¤TÓ*×H¬s°9·?±?Ó/CÀqÑ/HÐHr4   c                óà   • XL a  gU R                   (       a  gUR                  5         U R                  5        H  nUR                  U5        M     U R                  U R	                  5       5        g)zhAppend the content of this cell to `other_tc`.

Leaves this cell with a single empty ``<w:p>`` element.
N)rX  Ú_remove_trailing_empty_pr'  Úappendrÿ   )rC   r0  Úblock_elements      r5   Ú_move_content_toÚCT_Tc._move_content_toh  sV   € ð
 ÒØØ�>�>ØØ×)Ñ)Ô+à!×2Ñ2Ö4ˆMØ�O‰O˜MÖ*ñ 5ð 	�‰�D—K‘K“MÕ"r4   c                ó   • [        S5      e)NzDuse CT_Tbl.new_tbl() to add a new table, specifying rows and columns)ÚNotImplementedErrorrq   s    r5   Ú_new_tblÚCT_Tc._new_tblx  s   € Ü!ØRó
ð 	
r4   c                ó@   • U R                  S5      nU(       a  US   $ S$ )zwThe `w:tc` element immediately following this one in this row, or |None| if
this is the last `w:tc` element in the row.z./following-sibling::w:tcr   Nr   )rC   Úfollowing_tcss     r5   Ú_next_tcÚCT_Tc._next_tc}  s%   € ð Ÿ
™
Ð#>Ó?ˆÞ#0ˆ}˜QÑÐ:°dÐ:r4   c                óP   • U R                  5       nUc   eUR                  U 5        g)z-Remove this `w:tc` element from the XML tree.N)rS   r  )rC   Úparent_elements     r5   Ú_removeÚCT_Tc._remove„  s(   € àŸ™Ó)ˆØÑ)Ð)Ð)Ø×Ñ˜dÕ#r4   c                óÆ   • [        U R                  5       5      nUS   n[        U[        5      (       d  gUn[	        UR
                  5      S:”  a  gU R                  U5        g)zJRemove last content element from this cell if it's an empty `w:p` element.éÿÿÿÿNr   )rS  r'  rT  r   rŽ   rU  r  )rC   rV  Úlast_content_elmÚps       r5   r[  ÚCT_Tc._remove_trailing_empty_pŠ  sS   € ä˜4×0Ñ0Ó2Ó3ˆØ& r™?ÐÜÐ*¬D×1Ñ1ØØˆÜˆq�w‰w‹<˜!ÓØØ�‰�A�r4   c                óH  • SS jnSS jnU" X5        U" X5        [        U R                  UR                  5      n[        U R                  UR                  5      n[        U R                  UR                  5      n[        U R
                  UR
                  5      nXEXd-
  Xu-
  4$ )z˜Return a (top, left, height, width) 4-tuple specifying the extents of the
merged cell formed by using this tc and `other_tc` as opposite corner
extents.c                ó  • U R                   UR                   :X  a%  U R                  UR                  :w  a  [        S5      eU R                  UR                  :X  a&  U R                  UR                  :w  a  [        S5      eg g ©Nzrequested span not rectangular©r1  r  r
   r*  r9  )ÚaÚbs     r5   Úraise_on_inverted_LÚ3CT_Tc._span_dimensions.<locals>.raise_on_inverted_Lš  s_   € Ø�u‰u˜Ÿ™‹~ !§(¡(¨a¯h©hÓ"6Ü&Ð'GÓHÐHØ�v‰v˜Ÿ™Ó A§G¡G¨q¯w©wÓ$6Ü&Ð'GÓHÐHð %7Ðr4   c                óŠ  • U R                   UR                   :  a  X4OX4u  p#UR                   UR                   :  a%  UR                  UR                  :”  a  [        S5      eU R                  UR                  :  a  X4OX4u  pCUR                  UR                  :  a&  UR                  UR                  :”  a  [        S5      eg g rs  rt  )ru  rv  Útop_mostÚotherÚ	left_mosts        r5   Úraise_on_tee_shapedÚ3CT_Tc._span_dimensions.<locals>.raise_on_tee_shaped   s˜   € Ø()¯©°·±«˜q™f¸A¸6‰OˆHØ�|‰|˜eŸi™iÓ'¨H¯O©O¸e¿l¹lÓ,JÜ&Ð'GÓHÐHà)*¯©°!·&±&« ™v¸q¸fÑˆIØ�~‰~ §
¡
Ó*¨y¯©ÀÇÁÓ/LÜ&Ð'GÓHÐHð 0MÐ*r4   )ru  ro   rv  ro   )Úminr1  r*  Úmaxr  r9  )rC   r0  rw  r}  r1  r*  r  r9  s           r5   r-  ÚCT_Tc._span_dimensions•  s�   € ô
	Iô	Iñ 	˜DÔ+Ù˜DÔ+ä�$—(‘(˜HŸL™LÓ)ˆÜ�4—9‘9˜hŸm™mÓ,ˆÜ�T—[‘[ (§/¡/Ó2ˆÜ�D—J‘J §¡Ó/ˆà˜&™,¨©Ð4Ð4r4   c                ó˜   • U R                  U5        U R                  U:  a#  U R                  X5        U R                  U:  a  M#  X0l        g)aF  Incorporate `w:tc` elements to the right until this cell spans `grid_width`.

Incorporated `w:tc` elements are removed (replaced by gridSpan value).

Raises |ValueError| if `grid_width` cannot be exactly achieved, such as when a
merged cell would drive the span width greater than `grid_width` or if not
enough grid columns are available to make this cell that wide. All content from
incorporated cells is appended to `top_tc`. The val attribute of the vMerge
element on the single remaining cell is set to `vMerge`. If `vMerge` is |None|,
the vMerge element is removed if present.
N)r^  rJ   Ú_swallow_next_tcr  )rC   Ú
grid_widthr3  r  s       r5   rM  ÚCT_Tc._span_to_width³  s?   € ð 	×Ñ˜fÔ%Ø�n‰n˜zÓ)Ø×!Ñ! *Ô5ð �n‰n˜zÕ)à�r4   c                óî   ^ ^• SUU 4S jjnT R                   nU" U5        Uc   eUR                  U5        T R                  U5        T =R                  UR                  -  sl        UR	                  5         g)aÇ  Extend the horizontal span of this `w:tc` element to incorporate the
following `w:tc` element in the row and then delete that following `w:tc`
element.

Any content in the following `w:tc` element is appended to the content of
`top_tc`. The width of the following `w:tc` element is added to this one, if
present. Raises |InvalidSpanError| if the width of the resulting cell is greater
than `grid_width` or if there is no next `<w:tc>` element in the row.
c                ór   >• U c  [        S5      eTR                  U R                  -   T:”  a  [        S5      eg )Nznot enough grid columnszspan is not rectangular)r
   rJ   )Únext_tcr„  rC   s    €€r5   Úraise_on_invalid_swallowÚ8CT_Tc._swallow_next_tc.<locals>.raise_on_invalid_swallowÏ  s<   ø€ Ø‰Ü&Ð'@ÓAÐAØ�~‰~ × 1Ñ 1Ñ1°JÓ>Ü&Ð'@ÓAÐAð ?r4   N)rˆ  úCT_Tc | None)rf  r^  rG  rJ   rj  )rC   r„  r3  r‰  rˆ  s   ``   r5   rƒ  ÚCT_Tc._swallow_next_tcÄ  sh   ù€ ÷	Bð 	Bð —-‘-ˆÙ  Ô)ØÑ"Ð"Ð"Ø× Ñ  Ô(Ø×Ñ˜7Ô#Ø�Š˜'×+Ñ+Ñ+�Ø�‰Õr4   c                óF   • [        [        U R                  S5      S   5      $ )z+The tbl element this tc element appears in.z./ancestor::w:tbl[position()=1]r   )r   rR   r  rq   s    r5   r.  Ú
CT_Tc._tblÝ  s    € ô ”F˜DŸJ™JÐ'HÓIÈ!ÑLÓMÐMr4   c                óL   • U R                   R                  U R                  5      $ )zAThe `w:tc` element immediately above this one in its grid column.)Ú	_tr_aboverO   rL   rq   s    r5   r=  ÚCT_Tc._tc_aboveâ  s   € ð �~‰~×/Ñ/°×0@Ñ0@ÓAÐAr4   c                óX   • U R                   nUc  gUR                  U R                  5      $ )z=The tc element immediately below this one in its grid column.N)Ú	_tr_belowrO   rL   )rC   Útr_belows     r5   r  ÚCT_Tc._tc_belowç  s-   € ð —>‘>ˆØÑØØ×)Ñ)¨$×*:Ñ*:Ó;Ð;r4   c                óF   • [        [        U R                  S5      S   5      $ )z*The tr element this tc element appears in.z./ancestor::w:tr[position()=1]r   )r   r7   r  rq   s    r5   r  Ú	CT_Tc._trï  s    € ô ”F˜DŸJ™JÐ'GÓHÈÑKÓLÐLr4   c                óR   • U R                  S5      nU(       d  [        S5      eUS   $ )zThe tr element prior in sequence to the tr this cell appears in.

Raises |ValueError| if called on a cell in the top-most row.
z9./ancestor::w:tr[position()=1]/preceding-sibling::w:tr[1]zno tr above topmost tr in w:tblr   )r  rK   )rC   Ú	tr_abovess     r5   r�  ÚCT_Tc._tr_aboveô  s,   € ð —J‘JÐZÓ[ˆ	ÞÜÐ>Ó?Ð?Ø˜‰|Ðr4   c                ó”   • U R                   R                  nUR                  U R                  5      n XS-      $ ! [         a     gf = f)zrThe tr element next in sequence after the tr this cell appears in, or |None|
if this cell appears in the last row.rØ   N)r.  rT   rU   r  Ú
IndexError)rC   rT   rW   s      r5   r“  ÚCT_Tc._tr_belowÿ  sI   € ð —‘×!Ñ!ˆØ—‘˜dŸh™hÓ'ˆð	Ø 1™*Ñ%Ð%øÜó 	Ùð	ús   ³: º
AÁAc                ó`   • U R                   R                  R                  U R                  5      $ )z;The row index of the tr element this tc element appears in.)r.  rT   rU   r  rq   s    r5   r  ÚCT_Tc._tr_idx
  s#   € ð �y‰y×Ñ×%Ñ% d§h¡hÓ/Ð/r4   )r  r›   rt   ©r_   rv   )ru   zlist[CT_P | CT_Tbl])r0  ro   ru   ro   )ru   ro   r¹   rî   r÷   rø   )r0  ro   r]   )r›   rv   r2  rv   r3  r‹  )r   ÚCT_TcPrru   r¡  rí   )ru   r»   )ru   r‹  )r0  ro   ru   ztuple[int, int, int, int])r„  rv   r3  ro   r  rº   )r„  rv   r3  ro   )ru   rR   )ru   r7   )ru   zCT_Row | None)/r-   r.   r/   r0   r1   r2   r   r   r   ro  rV   r|   r  r  rL   rJ   r}   r!  r'  r*  r4  r½   rp   r9  r1  r  r›   rG  r/  rP  rX  r^  rb  rf  rj  r[  r-  rM  rƒ  r.  r=  r  r  r�  r“  r  r3   r,   r4   r5   ro   ro   ¥  s]  ‡ Ù$àÓØ*Ó*ØÓØÓØ+Ó+ØÓñ % XÓ.€Dˆ.Ó.Ù�%Ó€AÙ
�GÓ
€Càó
 ó ð
 ò	ð ó	5ó ð	5ð ó5ó ð5ð ×Ñóó ðð ó-ó ð-òð ó ó ð ô	ð óOó ðOð ó1ó ð1ð ó"ó ð"ð óó ðð ‡]�]ó ó ð ð óó ðð ‡\�\óó ðô=ö9ô.ð óIó ðIô#ô 
ð
 ó;ó ð;ò$ò	ô5ô<ô"ð2 óNó ðNð óBó ðBð ó<ó ð<ð óMó ðMð óó ðð óó ðð ó0ó ó0r4   ro   c                  óÆ  • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   Sr\" S\SS S9rS\S'   \" S\SS S9r	S\S'   \" S\SS S9r
S\S'   \" S\SS S9rS \S!'   C\S+S" j5       r\R                  S,S# j5       r\S$ 5       r\R                  S-S% j5       r\S& 5       r\R                  S.S' j5       r\S/S( j5       r\R                  S0S) j5       rS*rg)1r¡  i  z5``<w:tcPr>`` element, defining table cell properties.zCallable[[], CT_DecimalNumber]Úget_or_add_gridSpanzCallable[[], CT_TblWidth]Úget_or_add_tcWzCallable[[], CT_VerticalJc]Úget_or_add_vAlignzCallable[[], CT_VMerge]Ú_add_vMergerÐ   Ú_remove_gridSpanÚ_remove_vAlignÚ_remove_vMerge)ú
w:cnfStyleúw:tcWú
w:gridSpanzw:hMergeúw:vMergezw:tcBordersrÖ   zw:noWrapzw:tcMarzw:textDirectionzw:tcFitTextúw:vAlignz
w:hideMarkz	w:headersz	w:cellInsz	w:cellDelzw:cellMergezw:tcPrChanger«  é   NrÀ   zCT_TblWidth | NoneÚtcWr¬  é   úCT_DecimalNumber | NoneÚgridSpanr­  é   zCT_VMerge | Noner  r®  é   zCT_VerticalJc | NoneÚvAlignc                ó<   • U R                   nUc  S$ UR                  $ )zcThe integer number of columns this cell spans.

Determined by ./w:gridSpan/@val, it defaults to 1.
rØ   )r³  r)   )rC   r³  s     r5   rJ   ÚCT_TcPr.grid_span=  s!   € ð —=‘=ˆØÑ$ˆqÐ6¨(¯,©,Ð6r4   c                óZ   • U R                  5         US:”  a  XR                  5       l        g g rK  )r§  r£  r)   rì   s     r5   rJ   r¸  F  s)   € à×ÑÔØ�1‹9Ø-2×$Ñ$Ó&Õ*ð r4   c                ó:   • U R                   nUc  gUR                  $ )z—Value of `w:val` attribute on  `w:vAlign` child.

Value is |None| if `w:vAlign` child is not present. The `w:val` attribute on
`w:vAlign` is required.
N)r¶  r)   )rC   r¶  s     r5   Ú
vAlign_valÚCT_TcPr.vAlign_valL  s   € ð —‘ˆØ‰>ØØ�z‰zÐr4   c                óT   • Uc  U R                  5         g XR                  5       l        g r]   )r¨  r¥  r)   rì   s     r5   r»  r¼  X  s%   € à‰=Ø×ÑÔ!ØØ',×ÑÓ Õ$r4   c                ó:   • U R                   nUc  gUR                  $ )z]The value of the ./w:vMerge/@val attribute, or |None| if the w:vMerge element
is not present.N)r  r)   )rC   r  s     r5   r@  ÚCT_TcPr.vMerge_val_  s   € ð —‘ˆØ‰>ØØ�z‰zÐr4   c                óT   • U R                  5         Ub  XR                  5       l        g g r]   )r©  r¦  r)   rì   s     r5   r@  r¿  h  s(   € à×ÑÔØÑØ%*×ÑÓÕ"ð r4   c                ó:   • U R                   nUc  gUR                  $ )zJEMU length in `./w:tcW` or |None| if not present or its type is not 'dxa'.N)r°  r›   )rC   r°  s     r5   r›   ÚCT_TcPr.widthn  s   € ð �h‰hˆØ‰;ØØ�y‰yÐr4   c                ó0   • U R                  5       nXl        g r]   )r¤  r›   )rC   r_   r°  s      r5   r›   rÂ  v  s   € à×!Ñ!Ó#ˆØ�	r4   r,   rt   r   )r_   z!WD_CELL_VERTICAL_ALIGNMENT | Nonerî   r÷   rø   )r-   r.   r/   r0   r1   r2   rï   r   r°  r³  r  r¶  r|   rJ   r}   r»  r@  r›   r3   r,   r4   r5   r¡  r¡    sk  ‡ Ù?à7Ó7Ø-Ó-Ø2Ó2Ø(Ó(Ø(Ó(Ø&Ó&Ø&Ó&ð€Hñ( (Ø˜H Q R˜Lñ€CÐ	ó ñ )2Ø ¨!¨" ñ)€HÐ%ó ñ  )Ø˜x¨¨˜|ñ €FÐó ñ $-Ø˜x¨¨˜}ñ$€FÐ ó ð 	àó7ó ð7ð ×Ñó3ó ð3ð
 ñ	ó ð	ð ×Ñó-ó ð-ð ñó ðð ×Ñó+ó ð+ð
 óó ðð ‡\�\óó ór4   r¡  c                  ó   • \ rS rSr% SrS\S'   Sr\" S\SS S	9rS
\S'   \" S\SS S	9r	S
\S'   \" S\SS S	9r
S\S'   C\SS j5       r\SS j5       r\SS j5       r\R                  SS j5       r\S 5       r\R                  SS j5       rSrg)r{   i|  z4``<w:trPr>`` element, defining table row properties.zCallable[[], CT_Height]Úget_or_add_trHeight)rª  zw:divIdúw:gridBeforeúw:gridAfterz	w:wBeforezw:wAfterzw:cantSplitú
w:trHeightzw:tblHeaderrÕ   rÔ   zw:hiddenzw:inszw:delzw:trPrChangerÇ  rÙ   NrÀ   r²  Ú	gridAfterrÆ  r±  Ú
gridBeforerÈ  rÚ   zCT_Height | NoneÚtrHeightc                ó<   • U R                   nUc  S$ UR                  $ r@   )rÉ  r)   )rC   rÉ  s     r5   rA   ÚCT_TrPr.grid_after�  s!   € ð —N‘Nˆ	ØÑ%ˆqÐ8¨9¯=©=Ð8r4   c                ó<   • U R                   nUc  S$ UR                  $ rF   )rÊ  r)   )rC   rÊ  s     r5   rG   ÚCT_TrPr.grid_before£  s!   € ð —_‘_ˆ
ØÑ&ˆqÐ:¨J¯N©NÐ:r4   c                ó<   • U R                   nUc  S$ UR                  $ )zCReturn the value of `w:trHeight@w:hRule`, or |None| if not present.N)rË  r+   ©rC   rË  s     r5   rZ   ÚCT_TrPr.trHeight_hRule©  s!   € ð —=‘=ˆØÑ'ˆtÐ;¨X¯^©^Ð;r4   c                óR   • Uc  U R                   c  g U R                  5       nXl        g r]   )rË  rÅ  r+   ©rC   r_   rË  s      r5   rZ   rÒ  ¯  s&   € à‰=˜TŸ]™]Ñ2ØØ×+Ñ+Ó-ˆØ�r4   c                ó<   • U R                   nUc  S$ UR                  $ )zAReturn the value of `w:trHeight@w:val`, or |None| if not present.N)rË  r)   rÑ  s     r5   ra   ÚCT_TrPr.trHeight_val¶  s!   € ð —=‘=ˆØÑ'ˆtÐ9¨X¯\©\Ð9r4   c                óR   • Uc  U R                   c  g U R                  5       nXl        g r]   )rË  rÅ  r)   rÔ  s      r5   ra   rÖ  ¼  s&   € à‰=˜TŸ]™]Ñ2ØØ×+Ñ+Ó-ˆØ�r4   r,   rt   rw   rx   ry   )r-   r.   r/   r0   r1   r2   rï   r   rÉ  rÊ  rË  r|   rA   rG   rZ   r}   ra   r3   r,   r4   r5   r{   r{   |  sö   ‡ Ù>à0Ó0ð€Hñ" *3Ø (¨1¨2 ,ñ*€IÐ&ó ñ +4Ø 8¨A¨B <ñ+€JÐ'ó ñ "+Ø ¨!¨" ñ"€HÐó ð 	àó9ó ð9ð
 ó;ó ð;ð
 ó<ó ð<ð
 ×Ñóó ðð ñ:ó ð:ð
 ×Ñóó ór4   r{   c                  ó6   • \ rS rSr% Sr\" S\5      rS\S'   Sr	g)ÚCT_VerticalJciÄ  z:`w:vAlign` element, specifying vertical alignment of cell.r'   r   r)   r,   N)
r-   r.   r/   r0   r1   r   r   r)   r2   r3   r,   r4   r5   rÙ  rÙ  Ä  s   ‡ ÙDá&7ØÐ+ó'€CÐ	#ö r4   rÙ  c                  óH   • \ rS rSr% Sr\" S\\R                  S9rS\	S'   Sr
g)	Ú	CT_VMergeiÌ  zG``<w:vMerge>`` element, specifying vertical merging behavior of a cell.r'   )Údefaultrº   r)   r,   N)r-   r.   r/   r0   r1   r   r   r  r)   r2   r3   r,   r4   r5   rÛ  rÛ  Ì  s#   ‡ ÙQá'Ø� 8×#4Ñ#4ñ€Cˆö r4   rÛ  N)=r1   Ú
__future__r   Útypingr   r   r   Údocx.enum.tabler   r   r	   Údocx.exceptionsr
   Údocx.oxml.nsr   r   Údocx.oxml.parserr   Údocx.oxml.sharedr   Údocx.oxml.simpletypesr   r   r   r   r   Údocx.oxml.text.paragraphr   Údocx.oxml.xmlchemyr   r   r   r   r   r   r   Údocx.sharedr   r   r   r   Údocx.enum.textr    r!   r"   Údocx.oxml.text.parfmtr#   r%   r7   rR   rƒ   rÄ   rÊ   r�   rz   rò   ro   r¡  r{   rÙ  rÛ  r,   r4   r5   Ú<module>rê     s  ðÙ (å "ç 0Ñ 0ç ^Ñ ^Ý ,ß $Ý &Ý -÷õ õ *÷÷ ñ ÷ +Ñ *æÝ2Ý1ß4Ý+ô�ô ô^ˆ_ô ^ôBnˆ_ô nôb	G�ô 	Gô/�Oô /ô	�ô 	ôZ)ˆô Z)ôz�ô ô"�/ô "ô,h0ˆOô h0ôViˆoô iôXEˆoô EôP�Oô ô�õ r4   