
     iq                         d Z ddlZddlZddlZddlmZ ddlmZ  ej        e	          Z
 G d dej                  ZdS )zTSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI5 contains the VTT character groups.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
    N)safeEval   )DefaultTablec                   &    e Zd Zd Zd Zd Zd ZdS )table_T_S_I__5c           	         |d         j         }t          j        d          }|                    |           t          j        dk    r|                                 i | _        t          |          dz  }||k    r6||z
  }t          	                    dt          |           d| d| d           t          |          D ]%}||         | j        |                    |          <   &d S )	NmaxpHbig   zCNumber of entries differs from the number of glyphs in the font by z (z entries vs. z	 glyphs).)	numGlyphsarray	frombytessys	byteorderbyteswapglyphGroupinglenlogwarningabsrangegetGlyphName)selfdatattFontr   a
numEntriesdiffis           i/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/fontTools/ttLib/tables/T_S_I__5.py	decompileztable_T_S_I__5.decompile   s   6N,	K	D=E!!JJLLLYY!^
""	)DKKQ$iiQ Q#-Q Q<EQ Q Q   z"" 	> 	>A9:1Dv2215566	> 	>    c                 (   |                                 }t          j        d          }|D ]0}|                    | j                            |d                     1t
          j        dk    r|                                 |                                S )Nr
   r   r   )	getGlyphOrderr   appendr   getr   r   r   tobytes)r   r   
glyphNamesr   	glyphNames        r!   compileztable_T_S_I__5.compile&   s    ))++
K# 	; 	;IHHT'++Iq99::::=E!!JJLLLyy{{r#   c                     t          | j                                                  }|D ]9}|                    d|| j        |                    |                                 :d S )N
glyphgroup)namevalue)sortedr   keys	simpletagnewline)r   writerr   namesr*   s        r!   toXMLztable_T_S_I__5.toXML/   sx    t)..0011 	 	I9D4Fy4Q     NN		 	r#   c                     t          | d          si | _        |dk    rd S t          |d                   | j        |d         <   d S )Nr   r-   r/   r.   )hasattrr   r   )r   r.   attrscontentr   s        r!   fromXMLztable_T_S_I__5.fromXML7   sO    t_-- 	$!#D<F,4U7^,D,D5=)))r#   N)__name__
__module____qualname__r"   r+   r6   r;    r#   r!   r   r      sU        > > >"    E E E E Er#   r   )__doc__r   loggingr   fontTools.misc.textToolsr    r   	getLoggerr<   r   r   r?   r#   r!   <module>rE      s       



 - - - - - -      g!!(E (E (E (E (E\. (E (E (E (E (Er#   