
    Mcg                         d dl mZ d dlmZ ddlmZ d dlZdZdZ ej                  e      Z
 ej                  e      Z G d d	e      Zy)
    )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                   ,    e Zd ZddZd Zd Zd Zd Zy)StrikeNc                 <    || _         || _        || _        i | _        y )N)datappem
resolutionglyphs)selfrawdatar   r   s       \/var/www/html/bid-api/venv/lib/python3.12/site-packages/fontTools/ttLib/tables/sbixStrike.py__init__zStrike.__init__   s    		$    c                    | j                   ddlm} |j                  t	        | j                         t
        k  r0ddlm} |j                  dft
        t	        | j                         fz  t        j                  t        | j                   d t
         |        t        j                  d| j                   t
        t
        t        z          \  }|t
        z
  t        z  dz
  | _        g | _        t        | j                  dz         D ]Y  }|t        z  t
        z   }t        j                  d| j                   ||t        z          \  }| j                  j                  |       [ t        | j                        D ]c  }t        | j                   | j                  |   | j                  |dz       |      }|j!                  |       || j"                  |j$                  <   e | `| `| ` y )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#   z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@DKK//0 ' !NIr   c                    d| _         d| _        |j                         }t        t        t        |      dz   z  z   }|D ]  }|| j                  v r| j                  |   }nt        |      }|j                  |       ||_	        | xj                  |j                  z  c_        |t        |j                        z  }| xj                   t        j                  t        |      z  c_          t               }||_	        | xj                   t        j                  t        |      z  c_         t        j                  t        |       | _        | xj                  | j                   | j                  z   z  c_        y )Nr   r   )r$   )r    
bitmapDatagetGlyphOrderr   r   r   r   r   compileglyphDataOffsetr   r   packsbixGlyphDataOffsetFormatr   r
   )r   r%   
glyphOrdercurrentGlyphDataOffsetr$   r*   dummys          r   r.   zStrike.compileW   s3    #))+
 '+s:/BCD 	 $IDKK' $I 6 !&	 :!!&),BM)OO}444O"c-*?*?&@@"!!W\\)=& ! $   6.G!OO LL!7>			T**T__<<	r   c                    |j                  d       |j                          |j                  d| j                         |j                          |j                  d| j                         |j                          |j                         }t        t        |            D ]6  }||   | j                  v s| j                  ||      j                  ||       8 |j                  d       |j                          y )Nstriker   )valuer   )begintagnewline	simpletagr   r   r-   r!   r   r   toXMLendtag)r   	xmlWriterr%   r2   r'   s        r   r;   zStrike.toXML{   s    8$F$))4L@))+
s:'A!}+JqM*00FC ( 	"r   c                 p   |dv rt        | |t        |d                y |dk(  rd|v rt        d|d   z   dz         }nd }d|v rt        d|d   z   dz         }n0d|v rt        d|d   z   dz         }ndd	lm} |j	                  d
      d|v rt        |d         }nd}d|v rt        |d         }	nd}	t        ||||	      }
|D ]>  }t        |t              s|\  }}}|
j                  ||||       |
j                  |       @ |
| j                  |
j                  <   y dd	lm} |j	                  d|z        )N)r   r   r7   glyphgraphicTypez'''	glyphnamenamer   r   zGlyph must have a glyph name.originOffsetXoriginOffsetY)r$   r@   rC   rD   zcan't handle '%s' element)setattrr   r   r   r   r   
isinstancetuplefromXMLr.   r   r$   )r   rB   attrscontentr%   myFormatmyGlyphNamer   	myOffsetX	myOffsetYr*   elements               r   rH   zStrike.fromXML   se   ))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DKK//0'""#>#EFFr   )Nr   H   )__name__
__module____qualname__r   r#   r.   r;   rH    r   r   r   r      s    6p"=H'Gr   r   )fontTools.miscr   fontTools.misc.textToolsr   	sbixGlyphr   r   r   r1   calcsizer   r   objectr   rT   r   r   <module>rZ      s[    " -     .W--.DE  0 0 01J K YGV YGr   