o
    8"<fË&  ã                   @   s&   d dl Z ddlmZ G dd„ dƒZdS )é    Né   )Úxrangec                   @   sL   e Zd ZdZdZdZdZdZdZdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ ZdS )ÚXlsDoci   é   éÿÿÿÿéþÿÿÿéýÿÿÿéüÿÿÿc                 C   s:   g | _ d| _g | _d| _g | _d| _d| _g | _d| _d S )NÚ )	Úbook_stream_sectÚ
dir_streamÚdir_stream_sectÚ
packed_SATÚSAT_sectÚpacked_MSAT_1stÚpacked_MSAT_2ndÚMSAT_sect_2ndÚheader)Úself© r   úG/var/www/html/kck/venv/lib/python3.10/site-packages/xlwt/CompoundDoc.pyÚ__init__   s   
zXlsDoc.__init__c                 C   sr  d| _ d d¡}t|ƒ}dd|  }d}d}d}d}d}d	}	d
}
|  j t d|| ||||||d
d
d
d
d
d
d
d
d
|	|
d
¡7  _ d d¡}t|ƒ}dd|  }d}d}d}d}d}d
}	| j}
|  j t d|| ||||||d
d
d
d
d
d
d
d
d
|	|
d
¡7  _ d}t|ƒ}dd|  }d
}d}d}d}d}d	}	d
}
|  j t d|| ||||||d
d
d
d
d
d
d
d
d
|	|
d
¡d 7  _ d S )Nó    zRoot Entry z	utf-16-leó    é@   é   r   r   r   r   z<64s H 2B 3l 9L l L Lz	Workbook é   )r   ÚencodeÚlenÚstructÚpackÚbook_stream_len)r   Údentry_nameÚdentry_name_szÚdentry_name_padÚdentry_typeÚdentry_colourÚdentry_did_leftÚdentry_did_rightÚdentry_did_rootÚdentry_start_sidÚdentry_stream_szr   r   r   Ú_build_directory,   s   
õ
õõôzXlsDoc._build_directoryc                 C   sî  | j d? }t| jƒd? }|| }d}d}d}|d| ks ||krB|d7 }|d7 }||kr8|d7 }|d7 }|d7 }|d| ks ||ks | jgd | }d}||d k rh| j |¡ |d ||< |d7 }||d k sR| j |¡ | j||< |d7 }||| k r’| j |¡ | j||< |d7 }||| k s}||| | k r±| j	 |¡ | j
||< |d7 }||| | k sš||| | | d k rÙ| j |¡ |d ||< |d7 }||| | | d k s½| j |¡ | j||< |d7 }tjd|d  g|¢R Ž | _| jgd }	ttddƒ| j	ƒD ]	\}
}||	|
< qtjdg|	¢R Ž | _| jgd | }|dkr+| j|d	< d}
d}d}|
|k rg|d d dkrS|d7 }|t| jƒk rR| j| ||< n| j	|
 ||< |
d7 }
|d7 }|
|k s6tjd|d  g|¢R Ž | _d S )
Né	   r   ém   é€   r   é   z<%dlz<109lr   )r!   r   r   ÚSID_FREE_SECTORr   ÚappendÚSID_END_OF_CHAINr   ÚSID_USED_BY_MSATr   ÚSID_USED_BY_SATr   r   r    r   ÚzipÚranger   r   )r   Úbook_sect_countÚdir_sect_countÚtotal_sect_countÚSAT_sect_countÚMSAT_sect_countÚSAT_sect_count_limitÚSATÚsectÚMSAT_1stÚiÚSAT_sect_numÚMSAT_2ndÚ	msat_sectÚsid_numr   r   r   Ú
_build_sat{   s€   
ú	ý

ý
ýý



€
õ zXlsDoc._build_satc                 C   sì   d}d}d}d}d}t  dd¡}t  dd¡}d	}t  d
t| jƒ¡}	t  d| jd ¡}
d}t  d
d¡}t  dd¡}t  d
d¡}t| jƒdkrLt  dd¡}n	t  d| jd ¡}t  d
t| jƒ¡}d |||||||||	|
||||||g¡| _d S )Ns   ÐÏà¡±ás                   s   > s    s   þÿz<Hr-   é   s
             z<Lz<lr   s       r   r   r   )r   r    r   r   r   r   Újoinr   )r   Ú	doc_magicÚfile_uidÚrev_numÚver_numÚ
byte_orderÚlog_sect_sizeÚlog_short_sect_sizeÚ	not_used0Útotal_sat_sectorsÚdir_start_sidÚ	not_used1Úmin_stream_sizeÚssat_start_sidÚtotal_ssat_sectorsÚmsat_start_sidÚtotal_msat_sectorsr   r   r   Ú_build_headerÐ   sF   ñzXlsDoc._build_headerc           	   
   C   s"  ddt |ƒd   }t |ƒt |ƒ | _|  ¡  |  ¡  |  ¡  |}t|dƒ }|r.t|dƒ}| | j¡ | | j	¡ z| |¡ W n. t
yo } z"|jdkrO‚ d}tdt |ƒ|ƒD ]}| t|||ƒ¡ qYW Y d }~nd }~ww | |¡ | | j¡ | | j¡ | | j¡ |r| ¡  d S d S )Nr   r   Úwritezw+bé   i  @ r   )r   r!   r,   rF   rY   ÚhasattrÚopenrZ   r   r   ÚIOErrorÚerrnor   Úbufferr   r   r   Úclose)	r   Úfile_name_or_filelike_objÚstreamÚpaddingÚfÚ	we_own_itÚeÚ
chunk_sizeÚoffsetr   r   r   Úsaveú   s:   

ÿ€ü
ÿzXlsDoc.saveN)Ú__name__Ú
__module__Ú__qualname__ÚSECTOR_SIZEÚ	MIN_LIMITr1   r3   r5   r4   r   r,   rF   rY   rj   r   r   r   r   r      s    OU*r   )r   Úcompatr   r   r   r   r   r   Ú<module>   s   