Ë
    £eh’  ã                   ó`   — d Z ddlmZ ddlmZ ddlmZmZmZ  G d„ deej                  «      Z	y)	a]   TSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI1 contains the text of the glyph programs in the form of low-level assembly
code, as well as the 'extra' programs 'fpgm', 'ppgm' (i.e. 'prep'), and 'cvt'.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
é   )ÚDefaultTableé    )ÚLogMixin)ÚstrjoinÚtobytesÚtostrc                   ó6   — e Zd ZdddddœZdZd„ Zd„ Zd	„ Zd
„ Zy)Útable_T_S_I__1ÚppgmÚcvtÚreservedÚfpgm)iúÿ  iûÿ  iüÿ  iýÿ  ÚTSI0c                 óü  — t        |«      }|| j                     }t        |j                  |j                  fd«      D �]<  \  }}i }t        |«      D �]  \  }\  }	}
}|r| j                  |	   }n|j                  |	«      }||kD  r| j                  j                  d|z  «       ŒR|
dk  rnŽ|
dk(  rm|t        |«      dz
  k(  }|r|r|}n|j                  d   d   }n||dz      d   }||k\  sJ d«       ‚||kD  r | j                  j                  d|z  «       |}||z
  }
ndd	l
m} |j                  d
||
fz  «      ‚||||
z    }t        |«      |
k(  sJ ‚t        |d¬«      }|s�Œ|||<   �Œ |r	|| _        �Œ6|| _        �Œ? y )N)FTz$textOffset > totalLength; %r skippedé €  r   r   é   zentries not sorted by offsetz*nextTextOffset > totalLength; %r truncated)ÚttLibz&%r textLength (%d) must not be > 32768úutf-8©Úencoding)ÚlenÚ
indextableÚzipÚindicesÚextra_indicesÚ	enumerateÚextrasÚgetGlyphNameÚlogÚwarningÚ	fontToolsr   Ú
TTLibErrorr   ÚextraProgramsÚglyphPrograms)ÚselfÚdataÚttFontÚtotalLengthr   r   ÚisExtraÚprogramsÚiÚglyphIDÚ
textLengthÚ
textOffsetÚnameÚisLastÚnextTextOffsetr   Útexts                    ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/ttLib/tables/T_S_I__1.pyÚ	decompileztable_T_S_I__1.decompile   sÒ  € Ü˜$“iˆØ˜DŸO™OÑ,ˆ
Ü #Ø×Ñ ×!9Ñ!9Ð:¸Mó!
ó <	.ÑˆG�Wð ˆHÜ8AÀ'Ó8Jó 4*Ñ4�Ñ4�G˜Z¨ÙØŸ;™; wÑ/‘Dà!×.Ñ.¨wÓ7�DØ Ò+Ø—H‘H×$Ñ$Ð%KÈdÑ%RÔSØØ Ò&ð Ø 6Ò)à¤3 w£<°!Ñ#3Ñ4�FÙÙ"ð
 .9™Nð .8×-EÑ-EÀaÑ-HÈÑ-K™Nð
 *1°°Q±©¸Ñ):˜Ø)¨ZÒ7ÐWÐ9WÓWÐ7Ø%¨Ò3ØŸ™×(Ñ(ØHÈ4ÑOôð *5˜Ø!/°*Ñ!<‘Jå/à×*Ñ*Ø@ÀDÈ*ÐCUÑUóð ð ˜J¨°jÑ)@ÐA�Ü˜4“y JÒ.Ð.Ð.Ü˜T¨GÔ4�ÛØ%)�H˜T“Nði4*ñj Ø%-�Ö"à%-�Ö"ñy<	.ó    c                 ó4  — t        | d«      si | _        i | _        d}|| j                     }|j	                  «       }g }t        t        |«      «      D ]y  }t        |«      dz  r|dz   }||   }|| j                  v rt        | j                  |   d¬«      }nd}t        |«      }	|	dk\  rd}	|j                  ||	t        |«      f«       ||z   }Œ{ g }
t        | j                  j                  «       «      }t        t        |«      «      D ]|  }t        |«      dz  r|dz   }||   \  }}|| j                  v rt        | j                  |   d¬«      }nd}t        |«      }	|	dk\  rd}	|
j                  ||	t        |«      f«       ||z   }Œ~ |j                  ||
«       |S )Nr$   r5   r   ó   r   r   r   )Úhasattrr$   r#   r   ÚgetGlyphOrderÚranger   r   ÚappendÚsortedr   ÚitemsÚset)r%   r'   r&   r   Ú
glyphNamesr   r+   r/   r2   r-   r   ÚcodesÚcodes                r3   Úcompileztable_T_S_I__1.compileU   s¯  € Ü�t˜_Ô-Ø!#ˆDÔØ!#ˆDÔØˆØ˜DŸO™OÑ,ˆ
Ø×)Ñ)Ó+ˆ
àˆÜ”s˜:“Ó'ò 	ˆAÜ�4‹y˜1Š}à˜7‘Nð ð ˜a‘=ˆDØ�t×)Ñ)Ñ)Ü˜t×1Ñ1°$Ñ7À'ÔJ‘à�Ü˜T›ˆJØ˜VÒ#Ø#�
Ø�N‰N˜A˜z¬3¨t«9Ð5Ô6Ø˜$‘;‰Dð	ð  ˆÜ�t—{‘{×(Ñ(Ó*Ó+ˆÜ”s˜5“zÓ"ò 	ˆAÜ�4‹y˜1Š}à˜7‘Nð ð ˜q™‰JˆD�$Ø�t×)Ñ)Ñ)Ü˜t×1Ñ1°$Ñ7À'ÔJ‘à�Ü˜T›ˆJØ˜VÒ#Ø#�
Ø× Ñ  $¨
´C¸³IÐ!>Ô?Ø˜$‘;‰Dð	ð 	�‰�w Ô.Øˆr5   c                 ó(  — t        | j                  j                  «       «      }|j                  «        |D ]™  }| j                  |   }|sŒ|j	                  d|¬«       |j                  «        |j                  |j                  dd«      «       |j                  «        |j                  d«       |j                  «        |j                  «        Œ› t        | j                  j                  «       «      }|D ]™  }| j                  |   }|sŒ|j	                  d|¬«       |j                  «        |j                  |j                  dd«      «       |j                  «        |j                  d«       |j                  «        |j                  «        Œ› y )NÚglyphProgram)r/   úú
ÚextraProgram)	r<   r$   ÚkeysÚnewlineÚbegintagÚwrite_noindentÚreplaceÚendtagr#   )r%   Úwriterr'   Únamesr/   r2   Úextra_namess          r3   ÚtoXMLztable_T_S_I__1.toXML‚   sD  € Ü�t×)Ñ)×.Ñ.Ó0Ó1ˆØ�‰ÔØò 
	ˆDØ×%Ñ% dÑ+ˆDÙØØ�O‰O˜N°ˆOÔ6Ø�N‰NÔØ×!Ñ! $§,¡,¨t°TÓ":Ô;Ø�N‰NÔØ�M‰M˜.Ô)Ø�N‰NÔØ�N‰NÕð
	ô ˜T×/Ñ/×4Ñ4Ó6Ó7ˆØò 
	ˆDØ×%Ñ% dÑ+ˆDÙØØ�O‰O˜N°ˆOÔ6Ø�N‰NÔØ×!Ñ! $§,¡,¨t°TÓ":Ô;Ø�N‰NÔØ�M‰M˜.Ô)Ø�N‰NÔØ�N‰NÕñ
	r5   c                 ó  — t        | d«      si | _        i | _        t        |«      j	                  dd«      j                  d«      }dj                  |dd «      }|dk(  r|| j                  |d   <   y |dk(  r|| j                  |d   <   y y )	Nr$   rE   rF   r   éÿÿÿÿrD   r/   rG   )r8   r$   r#   r   rL   ÚsplitÚjoin)r%   r/   ÚattrsÚcontentr'   Úlinesr2   s          r3   ÚfromXMLztable_T_S_I__1.fromXML�   s�   € Ü�t˜_Ô-Ø!#ˆDÔØ!#ˆDÔÜ˜Ó ×(Ñ(¨¨tÓ4×:Ñ:¸4Ó@ˆØ�y‰y˜˜q ˜Ó%ˆØ�>Ò!Ø04ˆD×Ñ˜u V™}Ò-Ø�^Ò#Ø04ˆD×Ñ˜u V™}Ò-ð $r5   N)	Ú__name__Ú
__module__Ú__qualname__r   r   r4   rB   rQ   rY   © r5   r3   r
   r
      s+   „ Ø e°ZÈÑP€Fà€Jò?.òB+òZó6	5r5   r
   N)
Ú__doc__Ú r   ÚfontTools.misc.loggingToolsr   ÚfontTools.misc.textToolsr   r   r   r
   r]   r5   r3   ú<module>rb      s.   ðñõ Ý 0ß <Ñ <ôW5�X˜|×8Ñ8õ W5r5   