
     i                     t    d dl mZ d dlmZ d dlmZ ddlmZ ddlmZ d dl	Z	dZ
 G d	 d
ej                  ZdS )    )sstruct)floatToFixedToStr)safeEval   )DefaultTable)grUtilsNz
    >
    version:    16.16F
c                   2    e Zd ZdZddZd Zd Zd Zd ZdS )	table_S__i_l_lzlGraphite Languages table

    See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
    Nc                 T    t           j                             | |           i | _        d S N)r   __init__langs)selftags     i/srv/www/vhosts/g4struct/public_html/venv/lib/python3.11/site-packages/fontTools/ttLib/tables/S__i_l_l.pyr   ztable_S__i_l_l.__init__   s&    !**4555


    c                    t          j        t          ||           \  }}t          t	          | j        d                    | _        t          j        d|d d                   \  }|dd          }d}g }t          |          D ]}t          j        d||dz  |dz   dz                     \  }}	}
t          |
dz            |dz   z
  }
|
                    d	d
          }|                    |                    d          |	|
f           t          ||
|	z             }||dz  d          }g }t          |          D ]C}t          j        d||dz  |dz   dz                     \  }}}|                    ||f           Di | _        |D ]L\  }}}g | j        |<   t          |||z             D ](}| j        |                             ||                    )Md S )N   )precisionBitsz>H      r   >4sHHr       r   zutf-8>LHH)r   unpack2Sill_hdrfloatr   versionstructunpackrangeintreplaceappenddecodemaxr   )r   datattFont_numLangs
maxsettinglanginfoilangcodenumsettingsoffsetfinfofidvalcnos                    r   	decompileztable_S__i_l_l.decompile   s   OHdD99	D.t|2NNNOOmD$rr(33ABBx
x 	? 	?A.4ma!eq1uk12/ /+X{F !__15F''55HOOX__W55{FKLLLZ+)=>>JJHqLNN#z"" 	% 	%A"M&$q1uA{7J2KLLMS#qLL#s$$$$
 	/ 	/GAq!DJqM1a!e__ / /
1$$U1X..../	/ 	/r   c           	      @   d}d}t          | j                  }t          | j                                                  D ]y\  }}|t	          j        d|                    d          t          |          d|z  dz             z  }|D ]\  }}|t	          j        d||d          z  } |t          |          z  }z|t	          j        dddd|z  dz             z  }t          j        t          |           t          j
        t          | j                            z   |z   |z   S )	Nr   r   utf8r      r   r   l     )lenr   sorteditemsr   packencoder   r   r   bininfo)	r   r(   ldatfdatr0   r4   infr2   r3   s	            r   compileztable_S__i_l_l.compile2   s   TZTZ--//00 	 	FAsFK&)9)93s88QZRT_UUUD 9 9SFCa888c#hhFFFJ1v:?CCCL4((oc$*oo../ 	
r   c                    |                     d| j                   |                                 t          | j                                                  D ]\  }}|                    d|           |                                 |D ]C\  }}|                     dt          j        |          |           |                                 D|	                    d           |                                 d S )Nr   )r   lang)namefeature)r2   r3   )
	simpletagr   newliner<   r   r=   begintagr   num2tagendtag)r   writerr(   r4   rC   r2   r3   s          r   toXMLztable_S__i_l_l.toXMLC   s    DL999TZ--//00 	 	FAsOOFO+++NN ! !S  0D0D# NNN    MM&!!!NN	 	r   c           
         |dk    r)t          t          |d                             | _        d S |dk    r|d         }g | j        |<   |D ]}t	          |t
                    s|\  }}}	|dk    rZ| j        |                             t          j        |d                   t          t          |d                             f           d S d S )Nr   rF   rG   rH   r2   r3   )
r   r   r   r   
isinstancetupler$   r   tag2numr"   )
r   rG   attrscontentr(   r4   elementr   a
subcontents
             r   fromXMLztable_S__i_l_l.fromXMLO   s    9 %	*:!;!;<<DLLLV^^fADJqM"  !'511 %,"Q
)##JqM(( 522C58J8J4K4KL   ^ r   r   )	__name__
__module____qualname____doc__r   r7   rD   rO   rY    r   r   r
   r
      sn         
   / / /4
 
 
"
 
 
    r   r
   )fontTools.miscr   fontTools.misc.fixedToolsr   fontTools.misc.textToolsr    r   r   r   r   r
   r^   r   r   <module>rc      s    " " " " " " 7 7 7 7 7 7 - - - - - -             N N N N N\. N N N N Nr   