
    h                         S SK Jr  S SKJr  SSKJr  S SKrSrSr\R                  " \5      r
\R                  " \5      r " S S	\5      rg)
    )sstruct)safeEval   )GlyphNz
	>
	ppem:          H	# The PPEM for which this strike was designed (e.g., 9,
						# 12, 24)
	resolution:    H	# The screen resolution (in dpi) for which this strike
						# was designed (e.g., 72)
zz
	>
	glyphDataOffset:   L	# Offset from the beginning of the strike data record
							# to data for the individual glyph
c                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
Strike   Nc                 6    Xl         X l        X0l        0 U l        g )N)datappem
resolutionglyphs)selfrawdatar   r   s       S/var/www/html/env/lib/python3.13/site-packages/fontTools/ttLib/tables/sbixStrike.py__init__Strike.__init__   s    		$    c                    U R                   c  SSKJn  UR                  e[	        U R                   5      [
        :  a0  SSKJn  UR                  S4[
        [	        U R                   5      4-  e[        R                  " [        U R                   S [
         U 5        [        R                  " SU R                   [
        [
        [        -    5      u  nU[
        -
  [        -  S-
  U l        / U l        [        U R                  S-   5       HZ  nU[        -  [
        -   n[        R                  " SU R                   XU[        -    5      u  nU R                  R                  U5        M\     [        U R                  5       H`  n[        U R                   U R                  U   U R                  US-       US9nUR!                  U5        XpR"                  UR$                  '   Mb     U ?U ?U ? g )Nr   ttLibz-Strike header too short: Expected %x, got %x.z>Lr   )r   gid)r   	fontToolsr   
TTLibErrorlensbixStrikeHeaderFormatSizer   unpacksbixStrikeHeaderFormatstructsbixGlyphDataOffsetFormatSize	numGlyphsglyphDataOffsetsrangeappendr   	decompiler   	glyphName)r   ttFontr   firstGlyphDataOffsetistartcurrent_offsetcurrent_glyphs           r   r%   Strike.decompile   s   99'"""tyy>66'   ? ,S^<= = 	"DII.I/I$JD	

 #)--II*-G/.0#
	 !#==*+-./ !#NNQ
A 558RRE &dii0M(MN!^ !!((8
 t~~&A!		))!,t/D/DQU/K 	M ##F+3@KK//0 ' !NIr   c                    SU l         SU l        UR                  5       n[        [        [        U5      S-   -  -   nU H  nX@R                  ;   a  U R                  U   nO	[        US9nUR                  U5        X5l	        U =R                  UR                  -  sl        U[        UR                  5      -  nU =R                   [        R                  " [        U5      -  sl         M     [        5       nX6l	        U =R                   [        R                  " [        U5      -  sl         [        R                  " [        U 5      U l        U =R                  U R                   U R                  -   -  sl        g )Nr   r   )r&   )r"   
bitmapDatagetGlyphOrderr   r    r   r   r   compileglyphDataOffsetr   r   packsbixGlyphDataOffsetFormatr   r   )r   r'   
glyphOrdercurrentGlyphDataOffsetr&   r,   dummys          r   r1   Strike.compileW   s-    #))+
 '+s:/BCD 	 $IKK' $I 6 !&	 :!!&),B)OO}444O"c-*?*?&@@"!!W\\)=& ! $   6.G!OO LL!7>			T**T__<<	r   c                    UR                  S5        UR                  5         UR                  SU R                  S9  UR                  5         UR                  SU R                  S9  UR                  5         UR                  5       n[        [        U5      5       H7  nX4   U R                  ;   d  M  U R                  X4      R                  X5        M9     UR                  S5        UR                  5         g )Nstriker   )valuer   )begintagnewline	simpletagr   r   r0   r#   r   r   toXMLendtag)r   	xmlWriterr'   r5   r)   s        r   r?   Strike.toXML{   s    8$F$))4L@))+
s:'A}+JM*00C ( 	"r   c                    US;   a  [        X[        US   5      5        g US:X  Ga  SU;   a  [        SUS   -   S-   5      nOS nSU;   a  [        SUS   -   S-   5      nO2SU;   a  [        SUS   -   S-   5      nOSS	KJn  UR	                  S
5      eSU;   a  [        US   5      nOSnSU;   a  [        US   5      n	OSn	[        UUUU	S9n
U HB  n[        U[        5      (       d  M  Uu  pnU
R                  XX45        U
R                  U5        MD     XR                  U
R                  '   g SS	KJn  UR	                  SU-  5      e)N)r   r   r;   glyphgraphicTypez'''	glyphnamenamer   r   zGlyph must have a glyph name.originOffsetXoriginOffsetY)r&   rE   rH   rI   zcan't handle '%s' element)setattrr   r   r   r   r   
isinstancetuplefromXMLr1   r   r&   )r   rG   attrscontentr'   myFormatmyGlyphNamer   	myOffsetX	myOffsetYr,   elements               r   rM   Strike.fromXML   s^   ))Dw 89W_%#EE-,@$@5$HIe#&uu[/A'AE'IJ5&uuV}'<u'DE+&&'FGG%'$U?%;<		%'$U?%;<		!%$''	M #gu--+2(D!))$wG!))&1	 #
 4AKK//0'""#>#EFFr   )r/   r   r"   r   r!   r   r   )Nr   H   )
__name__
__module____qualname____firstlineno__r   r%   r1   r?   rM   __static_attributes__ r   r   r   r      s    6p"=H'Gr   r   )fontTools.miscr   fontTools.misc.textToolsr   	sbixGlyphr   r   r   r4   calcsizer   r    objectr   r\   r   r   <module>rb      sW    " -     %--.DE  ' 0 01J K YGV YGr   