Ë
    ˜…j²  ã                   óº  — 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­ 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 Z2e1e1jg                  «       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jp                  dm«      jr                  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«      ZIy)ƒ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                 ó–  — i | _         i | _        | j                  sy 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<   y )Né   r   éQ   éÿ  )Ú
colour_mapÚcolour_indexes_usedÚformatting_infoÚxrangeÚexcel_default_palette_b8Údefault_paletteÚbiff_versionÚlen)ÚbookÚiÚdpalÚndpals       úP/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/xlrd/formatting.pyÚinitialise_colour_mapro   i   sÍ   € Ø€D„OØ!€DÔØ×ÒØä�A‹Yò 9ˆÜ5°aÑ8ˆ�‰˜Òð9ô ˜4×,Ñ,Ñ-€DÜ�‹I€EÜ�E‹]ò 'ˆØ# A™wˆ�‰˜˜!™Òð'ð  $€D‡O�O�E˜!‘GÑà!%€D‡O�O�E˜!‘G˜A‘IÑà €D‡O�O�DÑà"€D‡O�O�FÒó    c                 ó°   — d}d}| j                  «       D ]=  \  }}|€Œ	d}t        ||«      D ]  \  }}	|||	z
  ||	z
  z  z  }Œ ||k  sŒ3|}|}|dk(  sŒ= n 	 |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ð	,à�KÓØ ˆKØ"ˆLØ˜‹{Ùð
ð 	ð Ðrp   c                   ó   — e Zd ZdZd„ Zd„ Zy)Ú	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                 ó4   — | j                   |j                   k(  S ©N©Ú__dict__©ÚselfÚothers     rn   Ú__eq__zEqNeAttrs.__eq__    ó   € Ø�}‰} §¡Ñ.Ð.rp   c                 ó4   — | j                   |j                   k7  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                   óX   — 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y)Ú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’   ¦   su   „ ñð €Dð0 €Mð €Lð €Jð €Fð €Jð €Fð €Fñ ˜2Ó€Dð €Jð €Nð €Jð €Fð €Gð �Frp   r’   c                 ó`   — | j                   sy t        d|«      d   | j                  d   _        y )Nú<Hr   éÿÿÿÿ)rd   r   Ú	font_listr—   )rj   Údatas     rn   Úhandle_efontrª     s+   € Ø×ÒØÜ&,¨T°4Ó&8¸Ñ&;€D‡N�N�2ÑÕ#rp   c           	      óŽ  — | j                   sy | j                  s| j                  «        t        xs | j                  dk\  }| j
                  }t        | j                  «      }|dk(  rAt        «       }t        d«      |_
        ||_        | j                  j                  |«       |dz  }t        «       }||_        | j                  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;                  | j<                  d|j                  z  d¬«       y y )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‘N aÑ'€DØ	×	Ñ	€BÜˆD�N‰NÓ€AØˆA‚vÜ‹FˆÜ  Ó.ˆŒØˆŒØ�‰×Ñ˜aÔ Ø	ˆQ‰ˆÜ‹€AØ€A„LØ‡N�N×Ñ˜!ÔØ	ˆR‚xô
 �;  Q r 
Ó+ñ		
ØŒH�l A¤N°A´HØŒL˜!Ô*¨A¬HØŒOà Ñ!ˆŒØ  1Ñ$¨Ñ*ˆŒØ$ qÑ(¨QÑ.ˆŒØ$ qÑ(¨QÑ.ˆŒØ! BÑ&¨1Ñ,ˆŒ	Ø  2Ñ%¨!Ñ+ˆŒØ�Š8Ü# D¨"°QÔ7ˆAŽFä" 4¨¨T¯]©]À1ÔEˆAŽFØ	ˆrŠÜ17¸ÀÀQÀqÀ	Ó1JÑ.ˆŒ�, ¤Ø Ñ!ˆŒØ  1Ñ$¨Ñ*ˆŒØ$ qÑ(¨QÑ.ˆŒØ$ qÑ(¨QÑ.ˆŒØ! BÑ&¨1Ñ,ˆŒ	Ø  2Ñ%¨!Ñ+ˆŒÜ˜t Q¨¯©¸aÔ@ˆŒà˜�:˜aŸf™fÑ%ˆŒØˆŒØŸ<™<ˆÔØˆŒØˆ�ä!'¨¨t°A°a¨yÓ!9ÑˆŒ�,ØˆŒØ Ñ!ˆŒØ  1Ñ$¨Ñ*ˆŒØ$ qÑ(¨QÑ.ˆŒØ$ qÑ(¨QÑ.ˆŒØˆŒ	ØˆŒÜ˜t Q¨¯©¸aÔ@ˆŒà˜�:˜aŸf™fÑ%ˆŒØˆŒØŸ<™<ˆÔØˆŒØˆŒÙØ	�‰Ø�L‰LØ2°Q·\±\ÑAØ(ð 	õ 	
ð rp   c                   ó.   — e Zd ZdZdZeZ ed«      Zd„ Z	y)ÚFormatz\
    "Number format" information from a ``FORMAT`` record.

    .. versionadded:: 0.6.1
    r   r“   c                 ó.   — || _         || _        || _        y 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  s&   „ ñð €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 ]d  }|dk(  r0|t        d«      k(  rd}n<|t        d«      v rd}n,|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  rŒaJ ‚ J ‚ | j                  dk\  r#t        dt	        |«      z  | j
                  ¬	«       t        d|«      }|t        v ry
d}d}d}dx}}|D ]4  }|t        v r|t        |   z  }Œ|t        v r|t        |   z  }Œ-||k(  sŒ3d}Œ6 |r|sy|r|sy
|r*| j                  rt        | j
                  d|||«       ||kD  S |s#| j                  rt        | j
                  d|«       ||kD  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Ø”O CÓ(Ò(Ø‘Ø�aŠZàˆEØ�EŒ˜Q‹Ð‰Ðˆð!ð" ‡~�~˜ÒÜÐ;¼dÀ1»gÑEÈDÏLÉLÕYÜ˜"˜aÓ €AØÔÑØØ€EØ€IØ€GØÐ€J�Øò ˆØ”ÑØœ.¨Ñ+Ñ+‰JØ”-ÑØœ qÑ)Ñ)‰IØ�)‹^Ø‰Gðñ ™)ØÙ™ØÙØ�>Š>Ü�D—L‘LØJØ˜I sô,ð ˜	Ñ!Ð!ñ Ø�>Š>Ü�D—L‘LØBØôð ˜	Ñ!Ð!rp   c                 óæ  — d}| j                   }|t        k(  rt        |d«      }| j                  s| j	                  «        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¬«      }|xs | j                  d	k\  }|r$t        | j                  d
| j                  |||«       | j                  |«      }	t        t        g|	   }
|dkD  sa|dk  s\t        j!                  |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'                  | j                  d| j                  dz
  fz  ¬«       || j(                  |<   | j*                  j-                  |«       y )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    så  € Ø€EØ	×	Ñ	€BØ”*ÒÜ��R‹[ˆØ�=Š=Ø×ÑÔØ€FØ	ˆR‚xÜ˜˜d 1 Q˜iÓ(¨Ñ+‰à×$Ñ$ˆØ�Š8ØˆFØ×Ò˜1ÑÕØ	ˆR‚xÜ   qÓ)‰ä  f¨d¯m©mÀAÔFˆØÒ'�D—N‘N aÑ'€DÙÜ�—‘Ø8Ø×Ñ ¨°ô	:ð ×*Ñ*¨7Ó3€IÜ
Œsˆ�IÑ	€BØ�CŠ<˜2 š7ô '×*Ñ*¨6´3Ó7ˆàœc‘Mˆ	Ø�>Š>˜a &œo¨2�o°9¸yÒ3HØˆEÜ�D—L‘Lð?à˜ô!ð �‚zÜ�—‘Ø@Ø�	˜9 gô	/ô �F˜B Ó(€FÙØ�‰�D—L‘LØ/°4×3FÑ3FÀqÑ3HÐ2KÑKð 	ô 	Mà$€D‡O�O�FÑØ×Ñ×Ñ˜FÕ#rp   c                 ó  — | j                   sy t        xs | j                  dk\  }t        d|d d «      \  }d| j                  dk\     }t        s| j                  dk\  r||k7  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                  |«       || j                  d|
z   <   |sŒd||k7  sŒjt        d|
||fz  | j                  ¬«       Œˆ y )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‘N aÑ'€DÜ˜˜d 2 A˜hÓ'�J€IØ! $×"3Ñ"3°rÑ"9Ñ:ÐÝ�—‘ 1Ò$¨)Ð7IÒ*IÜ�—‘ØHØ 	õ	+ñ 
Ü�—‘Ø.°	ô	;à
�YÑ
€CØ˜	‘M AÑ%€MÜ�d“)€KØ€IØ˜KÔD¨=¸9Ñ+DÔDÜÐJÈmÐ]hÐMiÑiÓjÐjÜ�S˜$˜~ Ð.Ó/€GØ×Ñ "Ò$Ð$Ð$ô �IÓò RˆØ�A‰JˆØ˜D‘ˆØ�q‘˜DÑ ˆØ�b‘˜DÑ ˆØ—/‘/ ! A¡#Ñ&ˆØ˜˜tÐ$ˆØ×Ñ×"Ñ" 7Ô+Ø&ˆ�‰˜˜!™ÑÚØ˜'Ó!Ü�o¨¨G°WÐ(=Ñ=ÀDÇLÁLÖQñRrp   c                 ó
  — | j                   D ]§  }|j                  dk(  rŒ|j                  }|dk(  rŒ%|| j                  v rd| j                  |<   ŒC| j
                  sŒPt        dt        | j                  «      | j                  ¬«       t        | j                  d|j                  |j                  |«       Œ© | j
                  dk\  r>t        | j                  j                  «       «      }t        d|z  | j                  ¬«       y y )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ˆØ�?‰?˜aÒØØ×ÑˆØ�Š<ØØ�—‘Ñ Ø+,ˆD×$Ñ$ RÒ(Ø�^‹^ÜÐ)¬3¨t¯©Ó+?ÀdÇlÁlÕSÜ�D—L‘LÐ"WØ—‘ §¡¨Bõ0ð0ð ‡~�~˜ÒÜ�d×.Ñ.×3Ñ3Ó5Ó6ˆÜÐ,¨tÑ3¸$¿,¹,ÖGð rp   c           	      óÌ  — | j                   sy t        xs | 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  r+d}t        |   }	d|cxk  rdk  rdn na|	t        |dz   «      z  }	nOd}d}d}|dk\  r	 t        |dd¬«      }	nt        |d| j                  d¬«      }	|r|	st        d| j                  ¬«       ||f| j
                  |	<   |rt        | j                  d|||||	«       y y # t        $ rD t        d||||fz  | j                  ¬«       t        dt        |dd  «      | j                  ¬«       ‚ w xY w)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‘N aÑ'€DØ	×	Ñ	€BÜ'-¨f°d¸2¸A°hÓ'?Ñ$€L�+˜uØ˜fÑ$€HØˆ{Ò˜x¨t×/BÑ/BÑBð ˆØˆØˆØˆØ‰Ø	˜Ò	àˆÜ# KÑ0ˆØ�Ô ˜qÕ Ø”C˜ ™	“NÑ"‰Dð ˆØˆØˆØ�Š8ðÜ% d¨A°aÔ8‘ô !  q¨$¯-©-ÀÔBˆDÙ™ÜÐKÐRV×R^ÑR^Õ_Ø!)¨8Ð 4€D×Ñ˜ÑÙÜ�—‘Ð`Ø�h ¨U°Dõ	:ð øô &ò ÜÐNØ ¨;¸Ð>ñ?ØEIÇ\Á\õSä�l¤D¨¨a¨b¨£N¸¿¹ÕFØð	ús   Â#D ÄAE#c                 ó`  — t        |j                  j                  «       «      }|D ]†  \  }}t        |d«      rt	        | ||«       Œ |j                  d«      dk\  sŒ5|| j                  v rd| j                  |<   ŒS|j                  j                  }t        d||||fz  | j                  ¬«       Œˆ y )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‰
ˆˆdÜ�4˜Ô Ü'¨¨d°JÕ?Ø�Y‰Y�~Ó&¨!Ó+Ø�t—‘Ñ&Ø12�×(Ñ(¨Ñ.ØØ—M‘M×*Ñ*ˆEÜÐ:Ø˜u d¨DÐ1ñ2Ø8<¿¹öFñ	Frp   c                 óÈ   — t         j                  «       D ]K  }|| j                  vsŒt         |   }t        j	                  |«      }t        |||«      }|| j                  |<   ŒM y r‚   )r
  r(  r  Ústd_format_stringsr  rÇ   )rj   ÚxrÌ   Úfmt_strr  s        rn   Úfill_in_standard_formatsrI  ±  s^   € Ü"×'Ñ'Ó)ò (ˆØ�D—O‘OÒ#Ü& qÑ)ˆBô )×,Ñ,¨QÓ/ˆGÜ˜A˜r 7Ó+ˆFØ!'ˆD�O‰O˜AÒñ(rp   c                 óX  — t         xs | 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 ]I  \  }}||z  rd-\  }}nd.\  }}t5        |j                  |d/z   |«       t5        |j                  |d0z   |«       ŒK |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        | jF                  «      |_$        | jF                  jK                  |«       | xj&                  dz  c_        |r+|jM                  | jN                  d6|jH                  z  d7¬8«       	 | jP                  |j.                     }tR        |jT                     } | | jZ                  |jH                  <   | j\                  rl| j                  rI|j^                  r=|j@                  d9k7  r.d:}!ta        | jN                  |!|jH                  |j@                  «       tc        | ||jH                  «       |j.                  | jP                  vrMd;}!| j                  r7ta        | jN                  |!|jH                  |j.                  |j.                  «       d|_        y y # tV        $ r
 tX        } Y �Œ	w xY w)<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‘N aÑ'€DØ	×	Ñ	€BÜ	‹€BÜ“=€B„LØ !€B‡L�LÔØ!"€B‡L�LÔØ"#€B‡L�LÔÜ“
€B„IØ€B‡I�IÔØ€B‡I�IÔØ"#€B‡I�IÔØ !€B‡I�IÔÜ “N€B„MÜ “N€B„Mà	ˆR‚x˜Ÿšä  Ô&Ø	ˆRƒxØ"ˆ
ô
 �:˜t A b˜zÓ*ñ		
ØŒM˜2œ=¨,Ø˜Ÿ™Ô-¨zØ�k ;°ä�—‘˜|ð .
ô 	ô 	��Lð #
ô 	ô 	�—‘˜jð +
ô 	ô
 	�—‘˜jð +
ô 	ð
 ˜!‰mˆò
ˆ
ð $ò 	ˆIØ˜‘? WÑ,ˆDÜ�B˜˜c A™gÔ&Ø�A‰I‰Cð	ô 	�—‘˜Kð 	*
ô 		ô 	�—	‘	˜;ð )
ô 	ô 	�—‘ ð .
ô 	ô 	�—‘˜{ð -
ö 	ð 
ˆrŠØˆ
ô
 �:˜t A b˜zÓ*ñ		
ØŒM˜2œ=¨,Ø˜Ø˜ä�—‘˜|ð .
ô 	ô 	��Lð #
ô 	ô
 	�—‘˜jð +
ô 	ð
 &¨Ñ,ˆÚ 1°+Ñ >ˆ�‰ÔØ Ñ"ˆò
ˆ
ð $ò 	ˆIØ˜‘? WÑ,ˆDÜ�B˜˜c A™gÔ&Ø�A‰I‰Cð	ô 	�—‘ ð .
ô 	ô
 	�—‘˜Kð *
ô 	ô 	�—	‘	˜;ð )
ö 	ð 
ˆrŠØˆ
ô
 �:˜t A b˜zÓ*ñ		
ØŒM˜2œ=¨,Ø˜hØ˜
ä�—‘˜|ð .
ô 	ô 	��Lð #
ô 	ô
 	�—‘Ð.ð 1
ô 	ð
 (¨$Ñ.°1Ñ4ˆÚ 1°+Ñ >ˆ�‰ÔØ˜!‰mˆò
ˆ
ð $ò 	ˆIØ˜‘? WÑ,ˆDÜ�B˜˜c A™gÔ&Ø�A‰I‰Cð	ô 	�—‘˜zð ,
ô 	ô
 	�—‘˜Jð 	)
ö 		ð 
ˆrŠØˆ
ô
 �:˜t A b˜zÓ*ñ		
ØŒM˜2œ=¨-Ø�mØ˜
ä�—‘˜}ð /
ô 	ô 	��Mð $
ô 	ô 	�—‘˜mð .
ô 	ô 	��Mð $
ô 	ð ˜!‰mˆò
ˆ
ð $ò 	ˆIØ˜‘? WÑ,ˆDÜ�B˜˜c A™gÔ&Ø�A‰I‰Cð	ô 	�—‘˜zð ,
ô 	ô
 	�—‘˜Jð 	)
ô 		ð #$ˆ�‰ÔØ !ˆ�‰ÖØ	ˆr‹ô
 39¸À$Ó2GÑ/ˆŒ˜
 JØ" TÑ)ˆŒÜ�—‘˜zð ,
ô 	ô 	�—‘˜jð +
ô 	ð ]ò 	A‰JˆD�$Ø˜DÒ Ø+/Ñ(�™jà+/Ñ(�˜jÜ�B—I‘I˜t oÑ5°|ÔDÜ�B—I‘I˜t mÑ3°ZÕ@ð	Að �]‰]ˆØ˜ÒØ ˆB�OàˆBŒOØ%&ˆÔ"Ø"#ˆÔØ !ˆÔØ"#ˆ�‰ÔØ !ˆ�‰Ôò
ˆ
ð $ò 	!ˆIØ˜‘? WÑ,ˆDÜ�B˜˜aÕ ñ	!ô Ð4°rÑ9Ó:Ð:ä�d—l‘lÓ#€B„KØ‡L�L×Ñ˜ÔØ‡L‚L�AÑ…LÙØ
�‰Ø�L‰LØ.°·±Ñ<Øð 	ô 	
ð
 Ø�o‰o˜bŸm™mÑ,ˆÜ# C§H¡HÑ-ˆð 28€D×!Ñ! "§+¡+Ñ.ð ×ÒØ�>Š>˜bŸkšk¨b×.CÑ.CÀvÒ.MØcˆCÜ�D—L‘L # r§{¡{°B×4IÑ4IÔJÜ# D¨"¨b¯k©kÔ:Ø	‡}�}˜DŸO™OÑ+ØJˆØ�>Š>Ü�D—L‘L #Ø—‘˜RŸ]™]¨B¯M©Mô;àˆ�ð ,øô ò  Ü‹ð ús   Ù3,^ Þ^)Þ(^)c                 óL  — d| _         t        | j                  «      }t        xs | j                  dk\  }t        xs | j                  dk\  }|rt        | j                  d«       d„ }t        |«      D �]š  }| j                  |   }	 | j                  |j                     }t        |j                     }|| j                  |j                  <   | j                   sŒf|j"                  rŒsd|j$                  cxk  r|k  sBn |r7t        | j                  d|j                  |j"                  |j$                  «       d|_        | j&                  dk\  sŒÚ|r•|j$                  |j                  k(  r-t        | j                  d|j                  |j$                  «       nO| j                  |j$                     j"                  s,t        | j                  d	|j                  |j$                  «       |rE|j$                  |j                  kD  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«       |j0                  s­|	j0                  s¡|rŸ|j                  |	j                  k7  r†t        | j                  d|j                  |j                  |	j                  |	j                  | j                  |j                     j2                  | j                  |	j                     j2                  «       |j4                  r�Œ,|	j4                  r�Œ:|s�Œ>|j6                  |	j6                  k7  s�ŒYt        | j                  d|j                  |j6                  |	j                  |	j6                  «       �Œ� y # t        $ r
 t        }Y �Œqw xY w)Nr   r¯   zxf_epilogue called ...
c                 ó’   — t        ||«      t        ||«      k7  r.t        | j                  d|j                  |j                  |«       y y )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  sA   € ä�6˜4Ó ¤G¨J¸Ó$=Ò=Ü�H×$Ñ$Ø;Ø—‘ ×!4Ñ!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Æ  ø  sD  € à€DÔÜ�$—,‘,Ó€GÜÒ'�D—N‘N aÑ'€DÜÒ(�T—^‘^ qÑ(€EÙÜ�—‘Ð8Ô9ò<ô �g‹ó 7XˆØ�\‰\˜#Ñˆð	"Ø—/‘/ "§-¡-Ñ0ˆCÜ'¨¯©Ñ1ˆFð 6<ˆ×%Ñ% b§k¡kÑ2à×#Ò#ØØ�;Š;ØØ�B×)Ñ)Ô3¨GÔ3ÙÜ˜Ÿ™ØQØ—K‘K §¡¨b×.CÑ.CôEð %&ˆBÔ!Ø×Ñ Ó"ÙØ×(Ñ(¨B¯K©KÒ7Ü˜DŸL™LØJØŸ™ R×%:Ñ%:õ<ð Ÿ™ b×&;Ñ&;Ñ<×EÒEÜ˜DŸL™LØYØŸ™ R×%:Ñ%:ô<ñ ˜×.Ñ.°·±Ò<Ü˜Ÿ™ØPØ—K‘K ×!6Ñ!6ô8ð —\‘\ "×"7Ñ"7Ñ8ˆFØ×%Ò%¨f×.DÒ.DÙ™* T¨2¨v°{ÔCØ×&Ò&¨v×/FÒ/FÙ™* T¨2¨v°|ÔDØ—?’?¨6×+>Ò+>Ù™* T¨2¨v°xÔ@Ø×&Ò&¨v×/FÒ/FÙ™* T¨2¨v°|ÔDØ—?’?¨6×+>Ò+>Ù˜RŸ]™]¨f×.?Ñ.?Ò?Ü˜DŸL™LØPØŸ™ R§]¡]°F·O±OÀV×EVÑEVØŸ™¨¯©Ñ6×AÑAØŸ™¨×(9Ñ(9Ñ:×EÑEô	Gð
 —=”=¨×):Ô):Û˜RŸ]™]¨f×.?Ñ.?Ô?Ü˜DŸL™LØIØŸ™ R§]¡]°F·O±OÀV×EVÑEVöXñk7Xøô ò 	"Ü!‹Fð	"ús   Â,PÐP#Ð"P#c           	      óÖ   — t        | «       d| _        t        t        t        t
        t        t        t        t        t        f	}|D ]#  }t        | j                  |j                  |«       Œ% y )Nr   )ro   r»  rÅ   rª   r  r  r%  r,  r9  r³  rÆ  r“  r>  rŒ   )rj   ÚmethodsÚmethods      rn   Úinitialise_bookrÊ  A  sY   € Ü˜$ÔØ€DÔäÜÜÜÜÜÜÜÜð
€Gð ò 9ˆÜ�—‘ §¡°Õ8ñ9rp   c                   ó@   — 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y)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  sa   „ ñð@ ÐàÐð Ðð Ðð Ðð €Nð Ðð €Oð Ðð €Oð €Ið �Grp   rŽ  c                   ó   — e Zd ZdZdZdZdZy)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�  •  s   „ ñð €Lð  Ðð Ñrp   r�  c                   ó,   — e Zd ZdZdZdZdZdZdZdZ	dZ
y)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�  ©  s8   „ ñð €Ið €Jð €Hð €Lð €Lð €Mð �Nrp   r�  c                   ó   — e Zd ZdZdZdZy)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ð �Nrp   r�  c                   óL   — 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y)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Œ  Þ  sq   „ ñð4 €Hð
 Ðð €Lð €Jð €Oð €Lð ÐàÐð €Hð €Jð €Jð €Jð €Jð €Ið �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Ð8Ð ðÐ ð$ 	!Ø Ø Ø Ø Ø Ø Ø ñ	€ò*Ð ò#ó0ô2
/�ô 
/ôYˆ:�yô Yòv<ò
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Ù�B˜˜1™Óò &ˆØ#%Ð˜aÒ ñ&ð&ð ˆˆB�á˜WÓ%€
Ø€Ø
�z×'Ñ'Ó)Ñ
)ò €BØ€N�2Òðàˆ
à€Ù
˜*Ó
%ò €BØ€N�2Òðñ �CÓ˜!Ù�CÓ˜!Ù�CÓ˜!ð€ñ �JÓ Ù�JÓ Ù�IÓ Ù�IÓ Ù�IÓ Ù�CÓ ðÐ ð �B—J‘J˜|Ó,×0Ñ0Ð ò="ð~ '0ó 0$òh"RòHHò():òVFò	(òzòx	GXòR9ô"Aˆz˜9ô AôF�:˜yô ô( �*˜iô  ôD�:˜yô ô&Nˆõ Nrp   