§
    r�’j1·  ã                   ó&  — d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ ddlT dZe	eeeeeeee
eiZdZedd	…         Zd
ZeeeeeeeedœZg d¢Zd„ Z d‚d„Z! G d„ de"¦  «        Z# G d„ dee#¦  «        Z$d„ Z%d„ Z& G d„ dee#¦  «        Z'i dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d	d5“i d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“dFdG“dHdI“dJdK“dLdM“dNdO“dPdQ“dRdS“dTdU“dVdW“¥dXdYdZœ¥Z(ddefdd/e	fd1d@efd[d\efdBdPe	fdRdVefd]d]e	fd^d^e
fd_d`efdadbe	fdcdde	fdedfefgZ)i Z*e)D ]\  Z+Z,Z- e.e+e,dz   ¦  «        D ]Z/e-e*e/<   ŒŒ[+[,[-[/ e0dg¦  «        Z1i Z2e1e1 3                    ¦   «         z   D ]Z4de2e4<   Œ[4[1i Z5 e0dh¦  «        D ]Z4de5e4<   Œ e0d¦  «        d e0di¦  «        d e0dj¦  «        diZ6 e0d,¦  «        d e0dX¦  «        d e0d¦  «        d e0dk¦  «        d e0dl¦  «        d e0dY¦  «        diZ7 ej8        dm¦  «        j9        Z:dn„ Z;efdo„Z<dp„ Z=dq„ Z>dr„ Z?ds„ Z@dt„ ZAdu„ ZBdv„ ZCdw„ ZD G dx„ dyee#¦  «        ZE G dz„ d{ee#¦  «        ZF G d|„ d}ee#¦  «        ZG G d~„ dee#¦  «        ZH G d€„ d�e¦  «        ZIdS )ƒz$
Module for formatting information.
é    )Úprint_functionN)Úunpacké   )ÚFDTÚFGEÚFNUÚFTXÚFUNÚXL_CELL_DATEÚXL_CELL_NUMBERÚXL_CELL_TEXTÚ	XL_FORMATÚ
XL_FORMAT2Ú
BaseObjectÚ	XLRDErrorÚfprintfÚunpack_stringÚunpack_unicodeÚupkbitsÚupkbitsL)Ú*)8©r   r   r   ©éÿ   r   r   ©r   r   r   ©r   r   r   ©r   r   r   ©r   r   r   ©r   r   r   ©r   r   r   ©é€   r   r   ©r   r"   r   ©r   r   r"   ©r"   r"   r   ©r"   r   r"   ©r   r"   r"   ©éÀ   r)   r)   ©r"   r"   r"   ©é™   r,   r   ©r,   é3   éf   ©r   r   éÌ   ©r1   r   r   ©r/   r   r/   ©r   r"   r"   ©r   r/   r1   ©r1   r1   r   r$   r   r   r    r&   r!   r'   r   ©r   r1   r   r2   ©r1   r   r1   ©r   r   r,   ©r,   r1   r   ©r   r,   r1   ©r1   r,   r   )éã   r=   r=   ©r.   r/   r   ©r.   r1   r1   ©r,   r1   r   ©r   r1   r   ©r   r,   r   ©r   r/   r   ©r/   r/   r,   ©é–   rF   rF   ©r   r.   r/   ©r.   r,   r/   ©r   r.   r   ©r.   r.   r   ©r,   r.   r   r-   ©r.   r.   r,   ©r.   r.   r.   é   )8r   r   r   r   r   r   r   r    r!   r#   r$   r%   r&   r'   r(   r*   r+   r-   r0   r2   r3   r4   r5   r6   r$   r   r   r    r&   r!   r'   r   r7   r2   r8   r9   r:   r;   r<   )r   r1   r,   r>   r?   r@   rA   rB   rC   rD   rE   rG   rH   rI   rJ   rK   r-   rL   rM   )éP   éF   é2   é-   é(   é   é   é   )
ÚNormalÚ	RowLevel_Ú	ColLevel_ÚCommaÚCurrencyÚPercentz	Comma [0]zCurrency [0]Ú	HyperlinkzFollowed Hyperlinkc                 óp  — i | _         i | _        | j        sd S t          d¦  «        D ]}t          |         | j         |<   Œt
          | j                 }t          |¦  «        }t          |¦  «        D ]}||         | j         |dz   <   Œd | j         |dz   <   d | j         |dz   dz   <   d | j         d<   d | j         d<   d S )Né   r   éQ   éÿ  )Ú
colour_mapÚcolour_indexes_usedÚformatting_infoÚxrangeÚexcel_default_palette_b8Údefault_paletteÚbiff_versionÚlen)ÚbookÚiÚdpalÚndpals       ú=C:\Projects\DSCons\.venv\Lib\site-packages\xlrd\formatting.pyÚinitialise_colour_mapro   i   sÒ   € Ø€D„OØ!€DÔØÔð Øˆå�A‰YŒYð 9ð 9ˆÝ5°aÔ8ˆŒ˜ÑÐå˜4Ô,Ô-€DÝ�‰IŒI€EÝ�E‰]Œ]ð 'ð 'ˆØ# AœwˆŒ˜˜!™ÑÐð  $€D„O�E˜!‘GÑà!%€D„O�E˜!‘G˜A‘IÑà €D„O�DÑà"€D„O�FÑÐÐó    c                 óº   — d}d}|                       ¦   «         D ]@\  }}|€Œd}t          ||¦  «        D ]\  }}	|||	z
  ||	z
  z  z  }Œ||k     r|}|}|dk    r nŒA	 |S )z®
    General purpose function. Uses Euclidean distance.
    So far used only for pre-BIFF8 ``WINDOW2`` record.
    Doesn't have to be fast.
    Doesn't have to be fancy.
    i   r   )ÚitemsÚzipÚprint)
rb   ÚrgbÚdebugÚbest_metricÚbest_colourxÚcolourxÚcand_rgbÚmetricÚv1Úv2s
             rn   Únearest_colour_indexr~   �   s¤   € ð  €KØ€LØ'×-Ò-Ñ/Ô/ð 
ð 
Ñˆ�ØÐØØˆÝ˜#˜xÑ(Ô(ð 	,ð 	,‰FˆB�Ø�r˜B‘w 2¨¡7Ñ+Ñ+ˆFˆFØ�KÒÐØ ˆKØ"ˆLØ˜Š{ˆ{Ø�øðJð Ðrp   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú	EqNeAttrszš
    This mixin class exists solely so that :class:`Format`, :class:`Font`, and
    :class:`XF` objects can be compared by value of their attributes.
    c                 ó"   — | j         |j         k    S ©N©Ú__dict__©ÚselfÚothers     rn   Ú__eq__zEqNeAttrs.__eq__    ó   € ØŒ} ¤Ò.Ð.rp   c                 ó"   — | j         |j         k    S r‚   rƒ   r…   s     rn   Ú__ne__zEqNeAttrs.__ne__£   r‰   rp   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rˆ   r‹   © rp   rn   r€   r€   š   s<   € € € € € ðð ð
/ð /ð /ð/ð /ð /ð /ð /rp   r€   c                   ó`   — e Zd ZdZdZdZdZdZdZdZ	dZ
dZ ed¦  «        ZdZdZdZdZdZdZdS )ÚFontz÷
    An Excel "font" contains the details of not only what is normally
    considered a font, but also several other display attributes.
    Items correspond to those in the Excel UI's Format -> Cells -> Font tab.

    .. versionadded:: 0.6.1
    r   Ú é�  N)rŒ   r�   rŽ   r�   ÚboldÚcharacter_setÚcolour_indexÚ
escapementÚfamilyÚ
font_indexÚheightÚitalicÚUNICODE_LITERALÚnameÚ
struck_outÚunderline_typeÚ
underlinedÚweightÚoutlineÚshadowr�   rp   rn   r’   r’   ¦   s‹   € € € € € ðð ð €Dð0 €Mð €Lð €Jð €Fð €Jð €Fð €Fð ˆ?˜2ÑÔ€Dð €Jð €Nð €Jð €Fð €Gð €F€F€Frp   r’   c                 ód   — | j         sd S t          d|¦  «        d         | j        d         _        d S )Nú<Hr   éÿÿÿÿ)rd   r   Ú	font_listr—   )rj   Údatas     rn   Úhandle_efontrª     s6   € ØÔð ØˆÝ&,¨T°4Ñ&8Ô&8¸Ô&;€D„N�2ÔÔ#Ð#Ð#rp   c           	      óž  — | j         sd S | j        s|                      ¦   «          t          p
| j        dk    }| j        }t          | j        ¦  «        }|dk    rHt          ¦   «         }t          d¦  «        |_
        ||_        | j                             |¦  «         |dz  }t          ¦   «         }||_        | j                             |¦  «         |dk    rÍt          d|dd…         ¦  «        \  |_        }|_        |_        |_        |_        |_        |_        |dz  |_        |dz  dz	  |_        |dz  dz	  |_        |d	z  d
z	  |_        |dz  dz	  |_        |dz  dz	  |_        |dk    rt7          |dd¬¦  «        |_
        �n¡t9          |d| j        d¬¦  «        |_
        �n‚|dk    rÄt          d|dd…         ¦  «        \  |_        }|_        |dz  |_        |dz  dz	  |_        |dz  dz	  |_        |d	z  d
z	  |_        |dz  dz	  |_        |dz  dz	  |_        t9          |d| j        d¬¦  «        |_
        ddg|j                 |_        d|_        |j        |_        d|_        d|_        n¸t          d|dd…         ¦  «        \  |_        }d|_        |dz  |_        |dz  dz	  |_        |dz  dz	  |_        |d	z  d
z	  |_        d|_        d|_        t9          |d| j        d¬¦  «        |_
        ddg|j                 |_        d|_        |j        |_        d|_        d|_        |r'|                     | j        d|j        z  d¬¦  «         d S d S )Né   é   z
Dummy Fontr   rQ   z	<HHHHHBBBr   é   r_   é   rN   é    é   rO   é   ©ÚlenlenrT   z<HHHé   r”   i¼  z<HHra   z--- handle_font: font[%d] ---z-------------------©ÚheaderÚfooter)rd   ÚencodingÚderive_encodingÚDEBUGÚ	verbosityrh   ri   r¨   r’   r�   rž   rš   Úappendr   r›   r—   r¢   r˜   r    r™   r–   r•   rœ   r¡   rŸ   r£   r¤   r   r   ÚdumpÚlogfile)rj   r©   ÚblahÚbvÚkÚfÚoption_flagss          rn   Úhandle_fontrÅ     s‡  € ØÔð ØˆØŒ=ð Ø×ÒÑÔÐÝÐ'�D”N aÒ'€DØ	Ô	€BÝˆDŒNÑÔ€AØˆA‚v€vÝ‰FŒFˆÝ  Ñ.Ô.ˆŒØˆŒØŒ×Ò˜aÑ Ô Ð Ø	ˆQ‰ˆÝ‰Œ€AØ€A„LØ„N×Ò˜!ÑÔÐØ	ˆR‚x€xõ
 �;  Q r T¤
Ñ+Ô+ñ		
ØŒH�l A¤N°A´HØŒL˜!Ô*¨A¬HØŒOà Ñ!ˆŒØ  1Ñ$¨Ñ*ˆŒØ$ qÑ(¨QÑ.ˆŒØ$ qÑ(¨QÑ.ˆŒØ! BÑ&¨1Ñ,ˆŒ	Ø  2Ñ%¨!Ñ+ˆŒØ�Š8ˆ8Ý# D¨"°QÐ7Ñ7Ô7ˆAŒF‰Få" 4¨¨T¬]À1ÐEÑEÔEˆAŒF‰FØ	ˆrŠˆÝ17¸ÀÀQÀqÀSÄ	Ñ1JÔ1JÑ.ˆŒ�, ¤Ø Ñ!ˆŒØ  1Ñ$¨Ñ*ˆŒØ$ qÑ(¨QÑ.ˆŒØ$ qÑ(¨QÑ.ˆŒØ! BÑ&¨1Ñ,ˆŒ	Ø  2Ñ%¨!Ñ+ˆŒÝ˜t Q¨¬¸aÐ@Ñ@Ô@ˆŒà˜�:˜aœfÔ%ˆŒØˆŒØœ<ˆÔØˆŒØˆŒˆå!'¨¨t°A°a°C¬yÑ!9Ô!9ÑˆŒ�,ØˆŒØ Ñ!ˆŒØ  1Ñ$¨Ñ*ˆŒØ$ qÑ(¨QÑ.ˆŒØ$ qÑ(¨QÑ.ˆŒØˆŒ	ØˆŒÝ˜t Q¨¬¸aÐ@Ñ@Ô@ˆŒà˜�:˜aœfÔ%ˆŒØˆŒØœ<ˆÔØˆŒØˆŒØð 
Ø	�ŠØŒLØ2°Q´\ÑAØ(ð 	ñ 	
ô 	
ð 	
ð 	
ð 	
ð
ð 
rp   c                   ó6   — e Zd ZdZdZeZ ed¦  «        Zd„ Z	dS )ÚFormatz\
    "Number format" information from a ``FORMAT`` record.

    .. versionadded:: 0.6.1
    r   r“   c                 ó0   — || _         || _        || _        d S r‚   )Ú
format_keyÚtypeÚ
format_str)r†   rÉ   ÚtyrË   s       rn   Ú__init__zFormat.__init__g  s   € Ø$ˆŒØˆŒ	Ø$ˆŒˆˆrp   N)
rŒ   r�   rŽ   r�   rÉ   r
   rÊ   r�   rË   rÍ   r�   rp   rn   rÇ   rÇ   O  sL   € € € € € ðð ð €Jð €Dð !� Ñ$Ô$€Jð%ð %ð %ð %ð %rp   rÇ   ÚGeneralÚ0r¬   z0.00r¯   z#,##0r­   z#,##0.00r±   z$#,##0_);($#,##0)rµ   z$#,##0_);[Red]($#,##0)é   z$#,##0.00_);($#,##0.00)r_   z$#,##0.00_);[Red]($#,##0.00)é	   z0%é
   z0.00%é   z0.00E+00é   z# ?/?r®   z# ??/??r²   zm/d/yyé   zd-mmm-yyzd-mmmé   zmmm-yyé   z
h:mm AM/PMé   zh:mm:ss AM/PMrV   zh:mmrU   zh:mm:ssé   zm/d/yy h:mmé%   z#,##0_);(#,##0)é&   z#,##0_);[Red](#,##0)é'   z#,##0.00_);(#,##0.00)rS   z#,##0.00_);[Red](#,##0.00)é)   z'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)é*   z*_($* #,##0_);_($* (#,##0);_($* "-"_);_(@_)é+   z/_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)é,   z2_($* #,##0.00_);_($* (#,##0.00);_($* "-"??_);_(@_)rR   zmm:ssé.   z	[h]:mm:ssé/   zmm:ss.0z##0.0E+0ú@)é0   é1   é   é$   rä   rå   rQ   é:   é;   é>   éC   rP   éG   r`   Úymdhsz$-+/(): ú#Ú?ÚGENERALÚgeneralz	\[[^]]*\]c                 óÒ  — d}d}|D ]w}|dk    r:|t          d¦  «        k    rd}nH|t          d¦  «        v rd}n4|t          v rn*||z  }n$|dk    r|t          d¦  «        k    rd}n|dk    rd}d|cxk    rdk    sn J ‚Œx| j        dk    r&t          dt	          |¦  «        z  | j        ¬	¦  «         t          d|¦  «        }|t          v rd
S d}d}d}dx}}|D ]>}|t          v r|t          |         z  }Œ|t          v r|t          |         z  }Œ6||k    rd}Œ?|r|sdS |r|sd
S |r | j        rt          | j        d|||¦  «         n|s| j        rt          | j        d|¦  «         ||k    S )Nr   r“   ú"r   z\_*r¬   r­   z+is_date_format_string: reduced format is %s©ÚfileFú;Tz7WARNING *** is_date_format: ambiguous d=%d n=%d fmt=%r
z/WARNING *** format %r produces constant result
)r�   Úskip_char_dictr¼   rt   ÚREPRr¿   Úfmt_bracketed_subÚnon_date_formatsÚdate_char_dictÚnum_char_dictr   )	rj   ÚfmtÚstateÚsÚcÚ	separatorÚgot_sepÚ
date_countÚ	num_counts	            rn   Úis_date_format_stringr  Î  s  € ð €EØ
€Aàð ð ˆØ�AŠ:ˆ:Ø•O CÑ(Ô(Ò(Ð(Ø��Ø•o fÑ-Ô-Ð-Ð-Ø��Ø•nÐ$Ð$Øà�Q‘��Ø�aŠZˆZØ•O CÑ(Ô(Ò(Ð(Ø�øØ�aŠZˆZàˆEØ�EˆˆŠˆ˜QŠˆˆˆˆˆˆØ„~˜ÒÐÝÐ;½dÀ1¹g¼gÑEÈDÌLÐYÑYÔYÐYÝ˜"˜aÑ Ô €AØÕÐÐØˆuØ€EØ€IØ€GØÐ€J�Øð ð ˆØ•ÐÐØ�.¨Ô+Ñ+ˆJˆJØ•-ÐÐØ� qÔ)Ñ)ˆIˆIØ�)Š^ˆ^ØˆGøàð ˜)ð ØˆtØð ˜ð ØˆuØð 	ØŒ>ð 	,Ý�D”LØJØ˜I sñ,ô ,ð ,øð ð ØŒ>ð 	Ý�D”LØBØñô ð ð ˜	Ò!Ð!rp   c                 óî  — d}| j         }|t          k    rt          |d¦  «        }| j        s|                      ¦   «          d}|dk    rt          d|dd…         ¦  «        d         }n| j        }|dk    rd}| xj        dz  c_        |dk    rt          |d¦  «        }nt          ||| j        d¬¦  «        }|p
| j	        d	k    }|rt          | j        d
| j        |||¦  «         |                      |¦  «        }	t          t          g|	         }
|dk    sf|dk     s`t                               |t"          ¦  «        }|t          k    }| j	        r.d|cxk     rdk     r!n n||	z  rd}t          | j        d||¦  «         |dk    rt          | j        d|
||	|¦  «         t%          ||
|¦  «        }|r(|                     | j        d| j        dz
  fz  ¬¦  «         || j        |<   | j                             |¦  «         d S )Nr   rT   r¬   rQ   r¦   r   rO   r³   r¯   z)FORMAT: count=%d fmtkey=0x%04x (%d) s=%r
é£   zHWARNING *** Conflict between std format key %d and its format string %r
z2ty: %d; is_date_c: %r; is_date_s: %r; fmt_strg: %rz--- handle_format [%d] ---)r·   )rh   r   Úminr¹   rº   r   Úactualfmtcountr   r   r¼   r   r¿   r  r   r   Ústd_format_code_typesÚgetr
   rÇ   r¾   Ú
format_mapÚformat_listr½   )r†   r©   Úrectyper»   rÁ   ÚstrposÚfmtkeyÚunistrgrÀ   Ú	is_date_srÌ   Ústd_tyÚ	is_date_cÚfmtobjs                 rn   Úhandle_formatr    sT  € Ø€EØ	Ô	€BØ•*ÒÐÝ��R‰[Œ[ˆØŒ=ð Ø×ÒÑÔÐØ€FØ	ˆR‚x€xÝ˜˜d 1 Q 3œiÑ(Ô(¨Ô+ˆˆàÔ$ˆØ�Š8ˆ8ØˆFØÐÔ˜1ÑÐÔØ	ˆR‚x€xÝ   qÑ)Ô)ˆˆå  f¨d¬mÀAÐFÑFÔFˆØÐ'�D”N aÒ'€DØð :Ý�”Ø8ØÔ ¨°ñ	:ô 	:ð 	:ð ×*Ò*¨7Ñ3Ô3€IÝ
�sˆ�IÔ	€BØ�CŠ<ˆ<˜2 š7˜7õ '×*Ò*¨6µ3Ñ7Ô7ˆà�c’Mˆ	ØŒ>ð 	!˜a &˜o˜ošo˜o¨2šo˜o˜o˜o˜o°9¸yÑ3H˜oØˆEÝ�D”Lð?à˜ñ!ô !ð !ð �‚z€zÝ�”Ø@Ø�	˜9 gñ	/ô 	/ð 	/õ �F˜B Ñ(Ô(€FØð MØ�Š�D”LØ/°4Ô3FÀqÑ3HÐ2KÑKð 	ñ 	Mô 	Mð 	Mà$€D„O�FÑØÔ×Ò˜FÑ#Ô#Ð#Ð#Ð#rp   c                 ó  — | j         sd S t          p
| j        dk    }t          d|d d…         ¦  «        \  }d| j        dk             }t          s| j        dk    r||k    rt          | j        d||¦  «         n|rt          | j        d|¦  «         d|z  }d	|z  dz   }t          |¦  «        }d	}||cxk    r	||z   k    sn t          d
||fz  ¦  «        ‚t          ||d |…         ¦  «        }	| j	        g k    sJ ‚t          |¦  «        D ]}
|	|
         }|dz  }|dz	  dz  }|dz	  dz  }| j        d|
z            }|||f}| j	                             |¦  «         || j        d|
z   <   |r"||k    rt          d|
||fz  | j        ¬¦  «         Œ€d S )Nr¬   r¦   )rN   é8   rQ   r   z9NOTE *** Expected %d colours in PALETTE record, found %d
zPALETTE record with %d colours
z<xx%dir­   z0PALETTE record: expected size %d, actual size %dr   r_   rN   z%2d: %r -> %rrô   )rd   r»   r¼   r   rh   r   r¿   ri   r   Úpalette_recordre   rb   r½   rt   )rj   r©   rÀ   Ú	n_coloursÚexpected_n_coloursrý   Úexpected_sizeÚactual_sizeÚ	toleranceÚcoloursrk   r   ÚredÚgreenÚblueÚold_rgbÚnew_rgbs                    rn   Úhandle_paletter%  A  s  € ØÔð ØˆÝÐ'�D”N aÒ'€DÝ˜˜d 2 A 2œhÑ'Ô'�J€IØ! $Ô"3°rÒ"9Ô:ÐÝð ;�” 1Ò$Ð$¨)Ð7IÒ*IÐ*IÝ�”ØHØ 	ñ	+ô 	+ð 	+ð 	+ð 
ð ;Ý�”Ø.°	ñ	;ô 	;ð 	;à
�YÑ
€CØ˜	‘M AÑ%€MÝ�d‘)”)€KØ€IØ˜KÐDÐDÒDÐD¨=¸9Ñ+DÒDÐDÐDÐDÝÐJÈmÐ]hÐMiÑiÑjÔjÐjÝ�S˜$˜~ ˜~Ô.Ñ/Ô/€GØÔ "Ò$Ð$Ð$Ð$õ �IÑÔð Rð RˆØ�AŒJˆØ˜D‘ˆØ�q‘˜DÑ ˆØ�b‘˜DÑ ˆØ”/ ! A¡#Ô&ˆØ˜˜tÐ$ˆØÔ×"Ò" 7Ñ+Ô+Ð+Ø&ˆŒ˜˜!™ÑØð 	RØ˜'Ò!Ð!Ý�o¨¨G°WÐ(=Ñ=ÀDÄLÐQÑQÔQÐQøðRð Rrp   c                 ó²  — | j         D ]‚}|j        dk    rŒ|j        }|dk    rŒ|| j        v rd| j        |<   Œ0| j        rKt          dt          | j        ¦  «        | j        ¬¦  «         t          | j        d|j        |j
        |¦  «         Œƒ| j        dk    rAt          | j                             ¦   «         ¦  «        }t          d|z  | j        ¬¦  «         d S d S )Nr­   ra   r   zSize of colour table:rô   z2*** Font #%d (%r): colour index 0x%04x is unknown
z
Colour indexes used:
%r
)r¨   rš   r—   rb   rc   r¼   rt   ri   r¿   r   rž   ÚsortedÚkeys)rj   ÚfontÚcxÚuseds       rn   Úpalette_epiloguer,  e  sù   € ð ”ð 0ð 0ˆØŒ?˜aÒÐØØÔˆØ�Š<ˆ<ØØ�”Ð Ð Ø+,ˆDÔ$ RÑ(Ð(ØŒ^ð 	0ÝÐ)­3¨t¬Ñ+?Ô+?ÀdÄlÐSÑSÔSÐSÝ�D”LÐ"WØ” ¤¨Bñ0ô 0ð 0øà„~˜ÒÐÝ�dÔ.×3Ò3Ñ5Ô5Ñ6Ô6ˆÝÐ,¨tÑ3¸$¼,ÐGÑGÔGÐGÐGÐGð Ðrp   c           	      óÜ  — | j         sd S t          p
| j        dk    }| j        }t	          d|d d…         ¦  «        \  }}}|dz  }|dk    rd| j        vrd}d}d}d}	d	}nä|d
z  r5d}t          |         }	d|cxk    rdk    rn nÀ|	t          |dz   ¦  «        z  }	nªd}d}d}|dk    rl	 t          |dd¬¦  «        }	np# t          $ rK t          d||||fz  | j        ¬¦  «         t          dt          |dd …         ¦  «        | j        ¬¦  «         ‚ w xY wt          |d| j        d¬¦  «        }	|r|	st          d| j        ¬¦  «         ||f| j        |	<   |rt          | j        d|||||	¦  «         d S d S )Nr¬   z<HBBr­   éÿ  s       rW   r   r   r   i €  rO   r³   z6STYLE: built_in=%d xf_index=%d built_in_id=%d level=%drô   z
raw bytes:z7WARNING *** A user-defined style has a zero-length namez?STYLE: built_in=%d xf_index=%d built_in_id=%d level=%d name=%r
)rd   r»   r¼   rh   r   Ústyle_name_mapÚbuilt_in_style_namesÚstrr   ÚUnicodeDecodeErrorrt   r¿   Úreprr   r¹   r   )
rj   r©   rÀ   rÁ   Úflag_and_xfxÚbuilt_in_idÚlevelÚxf_indexÚbuilt_inrž   s
             rn   Úhandle_styler9  y  s  € ØÔð ØˆÝÐ'�D”N aÒ'€DØ	Ô	€BÝ'-¨f°d¸2¸A¸2´hÑ'?Ô'?Ñ$€L�+˜uØ˜fÑ$€HØˆ{ÒÐ˜x¨tÔ/BÐBÐBð ˆØˆØˆØˆØˆˆØ	˜Ñ	ð `àˆÝ# KÔ0ˆØ�Ð Ð Ò Ð ˜qÒ Ð Ð Ð Ð Ø•C˜ ™	‘N”NÑ"ˆDøð ˆØˆØˆØ�Š8ˆ8ðÝ% d¨A°aÐ8Ñ8Ô8��øÝ%ð ð ð ÝÐNØ ¨;¸Ð>ñ?ØEIÄ\ðSñ Sô Sð Så�l¥D¨¨a¨b¨b¬¡N¤N¸¼ÐFÑFÔFÐFØð	øøøõ !  q¨$¬-ÀÐBÑBÔBˆDØð 	`˜ð 	`ÝÐKÐRVÔR^Ð_Ñ_Ô_Ð_Ø!)¨8Ð 4€DÔ˜ÑØð :Ý�”Ð`Ø�h ¨U°Dñ	:ô 	:ð 	:ð 	:ð 	:ð:ð :s   Â%B8 Â8ADc                 óR  — t          |j                             ¦   «         ¦  «        }|D ]}\  }}t          |d¦  «        rt	          | ||¦  «         Œ'|                     d¦  «        dk    r=|| j        v rd| j        |<   ŒT|j        j	        }t          d||||fz  | j        ¬¦  «         Œ~d S )Nr¾   r—   r   r   z&*** xf #%d : %s.%s =  0x%04x (unknown)rô   )r'  r„   rr   ÚhasattrÚcheck_colour_indexes_in_objÚfindrb   rc   Ú	__class__rŒ   rt   r¿   )rj   ÚobjÚ
orig_indexÚalistÚattrÚnobjÚonames          rn   r<  r<  ¤  sÙ   € Ý�3”<×%Ò%Ñ'Ô'Ñ(Ô(€EØð 	Fð 	F‰
ˆˆdÝ�4˜Ñ Ô ð 	FÝ'¨¨d°JÑ?Ô?Ð?Ð?Ø�YŠY�~Ñ&Ô&¨!Ò+Ð+Ø�t”Ð&Ð&Ø12�Ô(¨Ñ.ØØ”MÔ*ˆEÝÐ:Ø˜u d¨DÐ1ñ2Ø8<¼ðFñ Fô Fð Føð	Fð 	Frp   c                 óÔ   — t                                ¦   «         D ]M}|| j        vrBt           |         }t                               |¦  «        }t          |||¦  «        }|| j        |<   ŒNd S r‚   )r
  r(  r  Ústd_format_stringsr  rÇ   )rj   ÚxrÌ   Úfmt_strr  s        rn   Úfill_in_standard_formatsrI  ±  sq   € Ý"×'Ò'Ñ)Ô)ð (ð (ˆØ�D”OÐ#Ð#Ý& qÔ)ˆBõ )×,Ò,¨QÑ/Ô/ˆGÝ˜A˜r 7Ñ+Ô+ˆFØ!'ˆDŒO˜AÑøð(ð (rp   c                 óš  — t           p
| j        dk    }| j        }t          ¦   «         }t	          ¦   «         |_        d|j        _        d|j        _        d|j        _        t          ¦   «         |_
        d|j
        _        d|j
        _        d|j
        _        d|j
        _        t          ¦   «         |_        t#          ¦   «         |_        |dk    r| j        st)          | ¦  «         |dk    �rd}t+          ||dd…         ¦  «        \
  |_        |_        }}|j        _        }}	}
}}t3          |j        |d¦  «         t3          ||d¦  «         t3          |j        |d	¦  «         t3          |j        |d
¦  «         |	dz	  }g d¢}|D ]#}d|z   dz   }t5          |||dz  ¦  «         |dz  }Œ$t7          |j
        |
d¦  «         t3          |j
        |d¦  «         t7          |j        |d¦  «         t3          |j        |d¦  «         �nõ|dk    rõd}t+          ||dd…         ¦  «        \  |_        |_        }}}}
}t3          |j        |d¦  «         t3          ||d¦  «         t3          |j        |d	¦  «         |dz  }g d¢|         |j        _        |dz	  }g d¢}|D ]#}d|z   dz   }t5          |||dz  ¦  «         |dz  }Œ$t7          |j        |
d¦  «         t7          |j
        |
d¦  «         t3          |j
        |d¦  «         �nú|dk    râd}t+          ||dd…         ¦  «        \  |_        |_        }}}	}}t3          |j        |d¦  «         t3          ||d¦  «         t3          |j        |d¦  «         |dz  dz	  }g d¢|         |j        _        |	dz	  }g d¢}|D ]#}d|z   dz   }t5          |||dz  ¦  «         |dz  }Œ$t3          |j        |d ¦  «         t7          |j
        |d!¦  «         �n|d"k    rïd#}t+          ||dd…         ¦  «        \  |_        |_        }}	}}}t3          |j        |d¦  «         t3          ||d$¦  «         t3          |j        |d%¦  «         t3          ||d&¦  «         |	dz	  }g d¢}|D ]#}d|z   dz   }t5          |||dz  ¦  «         |dz  }Œ$t3          |j        |d ¦  «         t7          |j
        |d!¦  «         d|j        _        d|j        _        �n|d'k    �rt+          d(|¦  «        \  |_        }}|d)z  |_        t3          |j        |d*¦  «         t3          |j        |d+¦  «         d,D ]G\  }}||z  rd-\  }}nd.\  }}t5          |j
        |d/z   |¦  «         t5          |j
        |d0z   |¦  «         ŒH|j        }|d1z  rd2|_        nd|_        d3|_        d4|_        d|_         d|j        _        d|j        _        g d¢}|D ]}d|z   dz   }t5          ||d¦  «         ŒntC          d5|z  ¦  «        ‚tE          | j#        ¦  «        |_$        | j#         %                    |¦  «         | xj        dz  c_        |r%| &                    | j'        d6|j$        z  d7¬8¦  «         	 | j(        |j                 }tR          |j*                 } n# tV          $ r
 tX          } Y nw xY w| | j-        |j$        <   | j.        rR| j        r5|j/        r.|j         d9k    r#d:}!ta          | j'        |!|j$        |j         ¦  «         tc          | ||j$        ¦  «         |j        | j(        vr9d;}!| j        r'ta          | j'        |!|j$        |j        |j        ¦  «         d|_        d S d S )<Nr¯   r   rQ   rO   z<HHHBBBBIiHrV   ))r   r   Úcell_locked)r   r¬   Úformula_hidden)©r¬   r­   Úis_style©r¯   r_   Úlotus_123_prefix©r­   iðÿ  Úparent_style_index)©r   rÐ   Ú	hor_align©r¯   r_   Útext_wrapped)r­   ép   Ú
vert_align))r   rÕ   Úindent_level)r­   rN   Úshrink_to_fit)rµ   r)   Útext_directionr¬   )Úformatr)  Ú	alignmentÚborderÚ
backgroundÚ
protectionÚ_Ú_flagr   ))r   rÕ   Úleft_line_style)r­   éð   Úright_line_style)r_   i   Útop_line_style)rÔ   i ð  Úbottom_line_style©rN   i   Úleft_colour_index©é   i  €?Úright_colour_index)rT   i   @Ú	diag_down)é   l        Údiag_up))r   é   Útop_colour_index)rÐ   é€?  Úbottom_colour_index)r²   i À Údiag_colour_index)rU   i  àÚdiag_line_style))é   l      x Úfill_pattern)©r   rp  Úpattern_colour_index©rÐ   rr  Úbackground_colour_indexz<HHHBBIirN   )r   r   éZ   é´   )rx  rz  )rN   i  ? rw  ))rÙ   i  Àrg  )é   l      | rs  )©r   rÐ   rf  )r¯   r  rc  )rµ   iÀ  re  )rÑ   i þ  rq  rh  rj  rS   z<BBHBBHIrÔ   )rS  rU  )r­   rä   rX  r)   rµ   ))r   é?   rw  )rµ   iÀ  ry  )rÓ   é ø  r{  )r  )r¯   éø   rq  )r_   i   rc  )rÓ   r�  ri  )rN   i   rg  )rØ   i  ø rs  )é   i   re  )ræ   l      p rl  rT   z<BBBBHHI)rM  rO  )rS  rU  )rQ  rU   z<BxBBr€  ))rµ   é@   rK  )rÐ   r"   rL  )rS  ))r_   Úleft)rN   Úright)r°   Útop)r„  Úbottom)r_   r   )r   r   Ú_colour_indexÚ_line_styler"   rÖ   rÑ   r_   zprogrammer stuff-up: bv=%dz--- handle_xf: xf[%d] ---ú r¶   r.  zNWARNING *** XF[%d] is a style XF but parent_style_index is 0x%04x, not 0x0fff
z9WARNING *** XF[%d] unknown (raw) format key (%d, 0x%04x)
)2r»   r¼   rh   ÚXFÚXFAlignmentr]  rY  rZ  r[  ÚXFBorderr^  ro  rm  rt  ru  ÚXFBackgroundr_  ÚXFProtectionr`  ÚxfcountrI  r   rš   rÉ   Úrotationr   Úsetattrr   rX  rw  r{  ry  rR  r   ri   Úxf_listr7  r½   r¾   r¿   r  Ú_cellty_from_fmttyrÊ   ÚKeyErrorr   Ú_xf_index_to_xl_type_maprd   rN  r   r<  )"r†   r©   rÀ   rÁ   ÚxfÚ
unpack_fmtÚpkd_type_parÚ
pkd_align1Ú
pkd_align2Úpkd_usedÚpkd_brdbkg1Úpkd_brdbkg2Úpkd_brdbkg3ÚregÚ
attr_stemsÚ	attr_stemrB  Úpkd_orient_usedÚorientationÚpkd_align_orientÚ
pkd_bkg_34Ú
pkd_brd_34Úpkd_type_protÚpkd_align_parÚ
format_etcÚ
halign_etcÚmaskÚsider—   Ú
line_styleÚbgrý   ÚcelltyÚmsgs"                                     rn   Ú	handle_xfr³  ¼  s�	  € õ Ð'�D”N aÒ'€DØ	Ô	€BÝ	‰Œ€BÝ‘=”=€B„LØ !€B„LÔØ!"€B„LÔØ"#€B„LÔÝ‘
”
€B„IØ€B„IÔØ€B„IÔØ"#€B„IÔØ !€B„IÔÝ ‘N”N€B„MÝ ‘N”N€B„Mà	ˆR‚x€x˜œ€xå  Ñ&Ô&Ð&Ø	ˆR‚x�xØ"ˆ
õ
 �:˜t A b DœzÑ*Ô*ñ		
ØŒM˜2œ=¨,Ø˜œÔ-¨zØ�k ;°å�”˜|ð .
ñ 	ô 	ð 	õ 	��Lð #
ñ 	ô 	ð 	õ 	�”˜jð +
ñ 	ô 	ð 	õ
 	�”˜jð +
ñ 	ô 	ð 	ð
 ˜!‰mˆð
ð 
ð 
ˆ
ð $ð 	ð 	ˆIØ˜‘? WÑ,ˆDÝ�B˜˜c A™gÑ&Ô&Ð&Ø�A‰IˆCˆCÝ�”˜Kð 	*
ñ 		ô 		ð 		õ 	�”	˜;ð )
ñ 	ô 	ð 	õ 	�” ð .
ñ 	ô 	ð 	õ 	�”˜{ð -
ñ 	ô 	ð 	ñ 	ð 
ˆrŠˆØˆ
õ
 �:˜t A b DœzÑ*Ô*ñ		
ØŒM˜2œ=¨,Ø˜Ø˜å�”˜|ð .
ñ 	ô 	ð 	õ 	��Lð #
ñ 	ô 	ð 	õ
 	�”˜jð +
ñ 	ô 	ð 	ð
 &¨Ñ,ˆØ 1Ð 1Ð 1°+Ô >ˆŒÔØ Ñ"ˆð
ð 
ð 
ˆ
ð $ð 	ð 	ˆIØ˜‘? WÑ,ˆDÝ�B˜˜c A™gÑ&Ô&Ð&Ø�A‰IˆCˆCÝ�” ð .
ñ 	ô 	ð 	õ
 	�”˜Kð *
ñ 	ô 	ð 	õ 	�”	˜;ð )
ñ 	ô 	ð 	ñ 	ð 
ˆrŠˆØˆ
õ
 �:˜t A b DœzÑ*Ô*ñ		
ØŒM˜2œ=¨,Ø˜hØ˜
å�”˜|ð .
ñ 	ô 	ð 	õ 	��Lð #
ñ 	ô 	ð 	õ
 	�”Ð.ð 1
ñ 	ô 	ð 	ð
 (¨$Ñ.°1Ñ4ˆØ 1Ð 1Ð 1°+Ô >ˆŒÔØ˜!‰mˆð
ð 
ð 
ˆ
ð $ð 	ð 	ˆIØ˜‘? WÑ,ˆDÝ�B˜˜c A™gÑ&Ô&Ð&Ø�A‰IˆCˆCÝ�”˜zð ,
ñ 	ô 	ð 	õ
 	�”˜Jð 	)
ñ 		ô 		ð 		ñ 		ð 
ˆrŠˆØˆ
õ
 �:˜t A b DœzÑ*Ô*ñ		
ØŒM˜2œ=¨-Ø�mØ˜
å�”˜}ð /
ñ 	ô 	ð 	õ 	��Mð $
ñ 	ô 	ð 	õ 	�”˜mð .
ñ 	ô 	ð 	õ 	��Mð $
ñ 	ô 	ð 	ð ˜!‰mˆð
ð 
ð 
ˆ
ð $ð 	ð 	ˆIØ˜‘? WÑ,ˆDÝ�B˜˜c A™gÑ&Ô&Ð&Ø�A‰IˆCˆCÝ�”˜zð ,
ñ 	ô 	ð 	õ
 	�”˜Jð 	)
ñ 		ô 		ð 		ð #$ˆŒÔØ !ˆŒÔÑØ	ˆrŠ‰õ
 39¸À$Ñ2GÔ2GÑ/ˆŒ˜
 JØ" TÑ)ˆŒÝ�”˜zð ,
ñ 	ô 	ð 	õ 	�”˜jð +
ñ 	ô 	ð 	ð ]ð 	Að 	A‰JˆD�$Ø˜DÑ ð 0Ø+/Ñ(�˜j˜jà+/Ñ(�˜jÝ�B”I˜t oÑ5°|ÑDÔDÐDÝ�B”I˜t mÑ3°ZÑ@Ô@Ð@Ð@ØŒ]ˆØ˜Ñð 	 Ø ˆBŒOˆOàˆBŒOØ%&ˆÔ"Ø"#ˆÔØ !ˆÔØ"#ˆŒÔØ !ˆŒÔð
ð 
ð 
ˆ
ð $ð 	!ð 	!ˆIØ˜‘? WÑ,ˆDÝ�B˜˜aÑ Ô Ð Ð ð	!õ Ð4°rÑ9Ñ:Ô:Ð:å�d”lÑ#Ô#€B„KØ„L×Ò˜ÑÔÐØ€L„L�AÑ€L„LØð 
Ø
�ŠØŒLØ.°´Ñ<Øð 	ñ 	
ô 	
ð 	
ð
 ØŒo˜bœmÔ,ˆÝ# C¤HÔ-ˆˆøÝð  ð  ð  Ýˆˆˆð øøøà17€DÔ! "¤+Ñ.ð Ôð ;ØŒ>ð 	K˜bœkð 	K¨bÔ.CÀvÒ.MÐ.MØcˆCÝ�D”L # r¤{°BÔ4IÑJÔJÐJÝ# D¨"¨b¬kÑ:Ô:Ð:Ø	„}˜DœOÐ+Ð+ØJˆØŒ>ð 	;Ý�D”L #Ø”˜Rœ]¨B¬Mñ;ô ;ð ;àˆŒˆˆð ,Ð+s   Ù $Z ÚZÚZc                 ó0  — d| _         t          | j        ¦  «        }t          p
| j        dk    }t          p
| j        dk    }|rt          | j        d¦  «         d„ }t          |¦  «        D �]«}| j        |         }	 | j        |j	                 }t          |j                 }n# t          $ r
 t          }Y nw xY w|| j        |j        <   | j        sŒd|j        rŒld|j        cxk    r|k     s2n |r't          | j        d|j        |j        |j        ¦  «         d|_        | j        dk    �rï|rj|j        |j        k    r"t          | j        d|j        |j        ¦  «         n8| j        |j                 j        s!t          | j        d	|j        |j        ¦  «         |r1|j        |j        k    r!t          | j        d
|j        |j        ¦  «         | j        |j                 }	|j        s|	j        s|r || ||	d¦  «         |j        s|	j        s|r || ||	d¦  «         |j        s|	j        s|r || ||	d¦  «         |j        s|	j        s|r || ||	d¦  «         |j        sr|	j        sk|ri|j	        |	j	        k    rYt          | j        d|j        |j	        |	j        |	j	        | j        |j	                 j        | j        |	j	                 j        ¦  «         |j        sF|	j        s?|r=|j        |	j        k    r-t          | j        d|j        |j        |	j        |	j        ¦  «         �Œ­d S )Nr   r¯   zxf_epilogue called ...
c                 ó’   — t          ||¦  «        t          ||¦  «        k    r$t          | j        d|j        |j        |¦  «         d S d S )Nz(NOTE !!! XF[%d] parent[%d] %s different
)Úgetattrr   r¿   r7  )Úbook_argÚxf_argÚ
parent_argrB  s       rn   Ú
check_samezxf_epilogue.<locals>.check_same  sY   € å�6˜4Ñ Ô ¥G¨J¸Ñ$=Ô$=Ò=Ð=Ý�HÔ$Ø;Ø” Ô!4°dñ<ô <ð <ð <ð <ð >Ð=rp   r   z:WARNING *** XF[%d]: is_style=%d but parent_style_index=%d
rT   z/NOTE !!! XF[%d]: parent_style_index is also %d
z>NOTE !!! XF[%d]: parent_style_index is %d; style flag not set
z9NOTE !!! XF[%d]: parent_style_index is %d; out of order?
r]  r_  r^  r`  z4NOTE !!! XF[%d] fmtk=%d, parent[%d] fmtk=%r
%r / %r
z.NOTE !!! XF[%d] fontx=%d, parent[%d] fontx=%r
)Ú_xf_epilogue_doneri   r”  r»   r¼   r   r¿   re   r  rÉ   r•  rÊ   r–  r   r—  r7  rd   rN  rR  rh   Ú_alignment_flagÚ_background_flagÚ_border_flagÚ_protection_flagÚ_format_flagrË   Ú
_font_flagrš   )
r†   Únum_xfsrÀ   Úblah1rº  Úxfxr˜  rý   r±  Úparents
             rn   Úxf_epiloguerÆ  ø  sÛ  € à€DÔÝ�$”,ÑÔ€GÝÐ'�D”N aÒ'€DÝÐ(�T”^ qÒ(€EØð :Ý�”Ð8Ñ9Ô9Ð9ð<ð <ð <õ �g‰Œð 7Xñ 7XˆØŒ\˜#Ôˆð	"Ø”/ "¤-Ô0ˆCÝ'¨¬Ô1ˆFˆFøÝð 	"ð 	"ð 	"Ý!ˆFˆFˆFð	"øøøà5;ˆÔ% b¤kÑ2àÔ#ð 	ØØŒ;ð 	ØØ�BÔ)Ð3Ð3Ò3Ð3¨GÒ3Ð3Ð3Ð3Øð EÝ˜œØQØ”K ¤¨bÔ.CñEô Eð Eð %&ˆBÔ!ØÔ Ò"Ñ"Øð <ØÔ(¨B¬KÒ7Ð7Ý˜DœLØJØœ RÔ%:ñ<ô <ð <ð <ð œ bÔ&;Ô<ÔEð <Ý˜DœLØYØœ RÔ%:ñ<ô <ð <ð ð 8˜Ô.°´Ò<Ð<Ý˜œØPØ”K Ô!6ñ8ô 8ð 8ð ”\ "Ô"7Ô8ˆFØÔ%ð D¨fÔ.Dð DØÐC˜*˜* T¨2¨v°{ÑCÔCÐCØÔ&ð E¨vÔ/Fð EØÐD˜*˜* T¨2¨v°|ÑDÔDÐDØ”?ð A¨6Ô+>ð AØÐ@˜*˜* T¨2¨v°xÑ@Ô@Ð@ØÔ&ð E¨vÔ/Fð EØÐD˜*˜* T¨2¨v°|ÑDÔDÐDØ”?ð G¨6Ô+>ð GØð G˜Rœ]¨fÔ.?Ò?Ð?Ý˜DœLØPØœ R¤]°F´OÀVÔEVØœ¨¬Ô6ÔAØœ¨Ô(9Ô:ÔEñ	Gô Gð Gð
 ”=ð X¨Ô):ð XØð X˜Rœ]¨fÔ.?Ò?Ð?Ý˜DœLØIØœ R¤]°F´OÀVÔEVñXô Xð Xùðk7Xð 7Xs   Á:$BÂB3Â2B3c           	      óâ   — t          | ¦  «         d| _        t          t          t          t
          t          t          t          t          t          f	}|D ]}t          | j        |j        |¦  «         Œd S )Nr   )ro   r»  rÅ   rª   r  r  r%  r,  r9  r³  rÆ  r“  r>  rŒ   )rj   ÚmethodsÚmethods      rn   Úinitialise_bookrÊ  A  sn   € Ý˜$ÑÔÐØ€DÔåÝÝÝÝÝÝÝÝð
€Gð ð 9ð 9ˆÝ�” ¤°Ñ8Ô8Ð8Ð8ð9ð 9rp   c                   óB   — 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S )rŽ  ao  
    A collection of the border-related attributes of an ``XF`` record.
    Items correspond to those in the Excel UI's Format -> Cells -> Border tab.

    An explanations of "colour index" is given in :ref:`palette`.

    There are five line style attributes; possible values and the
    associated meanings are::

      0 = No line,
      1 = Thin,
      2 = Medium,
      3 = Dashed,
      4 = Dotted,
      5 = Thick,
      6 = Double,
      7 = Hair,
      8 = Medium dashed,
      9 = Thin dash-dotted,
      10 = Medium dash-dotted,
      11 = Thin dash-dot-dotted,
      12 = Medium dash-dot-dotted,
      13 = Slanted medium dash-dotted.

    The line styles 8 to 13 appear in BIFF8 files (Excel 97 and later) only.
    For pictures of the line styles, refer to OOo docs s3.10 (p22)
    "Line Styles for Cell Borders (BIFF3-BIFF8)".</p>

    .. versionadded:: 0.6.1
    r   N)rŒ   r�   rŽ   r�   rq  rs  ri  rl  rt  rf  rg  rc  re  ru  rm  ro  r�   rp   rn   rŽ  rŽ  R  sr   € € € € € ðð ð@ ÐàÐð Ðð Ðð Ðð €Nð Ðð €Oð Ðð €Oð €Ið €G€G€Grp   rŽ  c                   ó   — e Zd ZdZdZdZdZdS )r�  a  
    A collection of the background-related attributes of an ``XF`` record.
    Items correspond to those in the Excel UI's Format -> Cells -> Patterns tab.

    An explanations of "colour index" is given in :ref:`palette`.

    .. versionadded:: 0.6.1
    r   N)rŒ   r�   rŽ   r�   rw  r{  ry  r�   rp   rn   r�  r�  •  s1   € € € € € ðð ð €Lð  Ðð ÐÐÐrp   r�  c                   ó.   — e Zd ZdZdZdZdZdZdZdZ	dZ
dS )r�  zÂ
    A collection of the alignment and similar attributes of an ``XF`` record.
    Items correspond to those in the Excel UI's Format -> Cells -> Alignment tab.

    .. versionadded:: 0.6.1
    r   N)rŒ   r�   rŽ   r�   rT  rX  r’  rV  rY  rZ  r[  r�   rp   rn   r�  r�  ©  sI   € € € € € ðð ð €Ið €Jð €Hð €Lð €Lð €Mð €N€N€Nrp   r�  c                   ó   — e Zd ZdZdZdZdS )r�  ad  
    A collection of the protection-related attributes of an ``XF`` record.
    Items correspond to those in the Excel UI's Format -> Cells -> Protection tab.
    Note the OOo docs include the "cell or style" bit in this bundle of
    attributes. This is incorrect; the bit is used in determining which bundles
    to use.

    .. versionadded:: 0.6.1
    r   N)rŒ   r�   rŽ   r�   rK  rL  r�   rp   rn   r�  r�  Ë  s&   € € € € € ðð ð €Kð €N€N€Nrp   r�  c                   óN   — 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ZdZdZdS )rŒ  a¿  
    eXtended Formatting information for cells, rows, columns and styles.

    Each of the 6 flags below describes the validity of
    a specific group of attributes.

    In cell XFs:

    - ``flag==0`` means the attributes of the parent style ``XF`` are
      used, (but only if the attributes are valid there);

    - ``flag==1`` means the attributes of this ``XF`` are used.

    In style XFs:

    - ``flag==0`` means the attribute setting is valid;
    - ``flag==1`` means the attribute should be ignored.

    .. note::
      the API provides both "raw" XFs and "computed" XFs. In the latter case,
      cell XFs have had the above inheritance mechanism applied.

    .. versionadded:: 0.6.1
    r   N)rŒ   r�   rŽ   r�   rN  rR  rÀ  rÁ  r¼  r¾  r½  r¿  r7  rš   rÉ   r`  r_  r]  r^  r�   rp   rn   rŒ  rŒ  Þ  s‚   € € € € € ðð ð4 €Hð
 Ðð €Lð €Jð €Oð €Lð ÐàÐð €Hð €Jð €Jð €Jð €Jð €Ið €F€F€Frp   rŒ  )r   )Jr�   Ú
__future__r   ÚreÚstructr   Úbiffhr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Útimemachiner»   r•  Úexcel_default_palette_b5Úexcel_default_palette_b2rf   rg   r0  ro   r~   Úobjectr€   r’   rª   rÅ   rÇ   rF  Úfmt_code_rangesr
  ÚloÚhirÌ   re   rG  r�   Ú
date_charsrû   ÚupperÚ_cr÷   rü   rú   ÚcompileÚsubrù   r  r  r%  r,  r9  r<  rI  r³  rÆ  rÊ  rŽ  r�  r�  r�  rŒ  r�   rp   rn   ú<module>rà     sÖ  ððð ð &Ð %Ð %Ð %Ð %Ð %à 	€	€	€	Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð à	€ð ˆØˆØˆØˆØˆðÐ ðÐ ð" 4°C°R°CÔ8Ð ðÐ ð$ 	!Ø Ø Ø Ø Ø Ø Ø ð	ð 	€ð*ð ð Ð ð#ð #ð #ð0ð ð ð ð2
/ð 
/ð 
/ð 
/ð 
/�ñ 
/ô 
/ð 
/ðYð Yð Yð Yð Yˆ:�yñ Yô Yð Yðv<ð <ð <ð
E
ð E
ð E
ðR%ð %ð %ð %ð %ˆZ˜ñ %ô %ð %ð:(ð 	ˆ)ð	(ð
 	ˆ#ð(ð 	ˆ&ð(ð 	ˆ'ð(ð 	ˆ*ð(ð 	Ð
ð(ð 	Ð
"ð(ð 	Ð
#ð(ð 	Ð
(ð(ð 	ˆ$ð(ð 	ˆ'ð(ð 	ˆ*ð(ð  	ˆ'ð!(ð" 	ˆ)ð#(ð$ 	ˆ(ð%(ð& 	ˆ*ð'(ð( 	ˆ'ð)(ð (ð* 	ˆ(ð+(ð, 	ˆ,ð-(ð. 	ˆ/ð/(ð0 	ˆ&ð1(ð2 	ˆ)ð3(ð4 	ˆ-ð5(ð6 	Ð
ð7(ð8 	Ð
 ð9(ð: 	Ð
!ð;(ð< 	Ð
&ð=(ð> 	Ð
5ð?(ð@ 	Ð
8ðA(ðB 	Ð
=ðC(ðD 	Ð
@ðE(ðF 	ˆ'ðG(ðH 	ˆ+ðI(ðJ 	ˆ)ðK(ð (ðL Ø
ðO(ð (ð (Ð ðZ ˆ!ˆS€MØˆˆS€MØˆˆS€MØˆˆS€MØˆˆS€MØˆˆS€MØˆˆS€MØˆˆS€MàˆˆS€MØˆˆS€MØˆˆS€MØˆˆS€Mð€ð$ Ð Ø!ð &ð &�J€BˆˆBØˆV�B˜˜1™ÑÔð &ð &ˆØ#%Ð˜aÑ Ð ð&àˆˆB�àˆ_˜WÑ%Ô%€
Ø€Ø
�z×'Ò'Ñ)Ô)Ñ
)ð ð €BØ€N�2ÑÐØˆ
à€Ø
ˆ/˜*Ñ
%Ô
%ð ð €BØ€N�2ÑÐð €O�CÑÔ˜!Ø€O�CÑÔ˜!Ø€O�CÑÔ˜!ð€ð €O�JÑÔ Ø€O�JÑÔ Ø€O�IÑÔ Ø€O�IÑÔ Ø€O�IÑÔ Ø€O�CÑÔ ðÐ ð �B”J˜|Ñ,Ô,Ô0Ð ð="ð ="ð ="ð~ '0ð 0$ð 0$ð 0$ð 0$ðh"Rð "Rð "RðHHð Hð Hð():ð ):ð ):ðVFð Fð Fð	(ð 	(ð 	(ðzð zð zðx	GXð GXð GXðR9ð 9ð 9ð"Að Að Að Að Aˆz˜9ñ Aô Að AðFð ð ð ð �:˜yñ ô ð ð( ð  ð  ð  ð  �*˜iñ  ô  ð  ðDð ð ð ð �:˜yñ ô ð ð&Nð Nð Nð Nð Nˆñ Nô Nð Nð Nð Nrp   