+
    f7i(  c                   sl    ^RI Ht ^ RIHt ^ RIHt ^ RItRtRtRt	Rt
 ! R	 R
]P                  4      tR# )i   )DefaultTable)sstruct)safeEvalNz
	>                 # big endian
	version:     H    # Version number (0 or 1)
	numRecs:     H    # Number of VDMX groups present
	numRatios:   H    # Number of aspect ratio groupings
z
	>                 # big endian
	bCharSet:    B    # Character set
	xRatio:      B    # Value to use for x-Ratio
	yStartRatio: B    # Starting y-Ratio value
	yEndRatio:   B    # Ending y-Ratio value
z
	>                 # big endian
	recs:        H    # Number of height records in this group
	startsz:     B    # Starting yPelHeight
	endsz:       B    # Ending yPelHeight
z
	>                 # big endian
	yPelHeight:  H    # yPelHeight to which values apply
	yMax:        h    # Maximum value (in pels) for this yPelHeight
	yMin:        h    # Minimum value (in pels) for this yPelHeight
c                   sB   a  ] tR t^'t o RtR tR tR tR tR t	Rt
V tR# )	table_V_D_M_X_zVertical Device Metrics table

The ``VDMX`` table records changes to the vertical glyph minima
and maxima that result from Truetype instructions.

See also https://learn.microsoft.com/en-us/typography/opentype/spec/vdmx
c                s   ^ p\         P                  ! \        W4      w  rAV\         P                  ! \        4      ,          p. V n        \        V P                  4       Fa  p\         P                  ! \        V4      w  raV\         P                  ! \        4      ,          pRVR&   V P                  P                  V4       Kc  	  \        P                  ! R4      p. p\        V P                  4       FA  p\        P                  ! RV^ V 4      ^ ,          p	WR pW7,          pVP                  V	4       KC  	  . V n        \        V P                  4       EF  p
Tp\         P                  ! \        V4      w  rVP                  R4      pVP                  R4      pVP                  R4      pV\         P                  ! \        4      ,          p\        V4       F`  p\         P                  ! \        V4      w  pp\         P                  ! \        4      pVV,          pVR,          VR,          3VVR	,          &   Kb  	  \!        VP#                  4       4      p\%        VP#                  4       4      pVV8X  g   Q R
VP&                  VV
3,          4       hVV8X  g   Q RVP(                  VV
3,          4       hV P                  P                  V4       \+        V4       F$  w  ppVV8X  g   K  WP                  V,          R&   K&  	  EK  	  \        V P                  4       F?  pV P                  V,          pVR,          e   K#  ^ RIHp VP1                  RV,          4      h	  R# )    N
groupIndex>HrecsstartszendszyMaxyMin
yPelHeightz5startsz (%s) must equal min yPelHeight (%s): group %dz3endsz (%s) must equal max yPelHeight (%s): group %dttLibz no group defined for ratRange %d)r   Zunpack2VDMX_HeaderFmtcalcsize	ratRangesrange	numRatiosVDMX_RatRangeFmtappendstructZunpackgroupsnumRecsVDMX_GroupFmtZpopVDMX_vTableFmtminkeysmaxr   r	   Z	enumerate	fontToolsr   
TTLibError)selfdatattFontposZdummyZiratio	lenOffsetZ_offsetsoffsetr   Z
currOffsetgroupr   r   r	   ZjvTableZvTableLengthZminSizeZmaxSizeZoffsetIndexZoffsetValuer   s   &&&                     F/usr/lib64/python3.14/site-packages/fontTools/ttLib/tables/V_D_M_X_.py	decompileZtable_V_D_M_X_.decompile0   s   oondAw//t~~&A!//*:DAKE7##$455C"&E,NN!!%( ' OOD)	t~~&A]]4a	):;A>F
#DCOOF#	 '
 -JJ!//->KE99V$Dii	*GIIg&E7##M22C4[&~tD&//?|#/5f~vf~.Nf\*+ ! %**,'G%**,'G7"FJ "  DH   KKu%,5h,?([ , AKNN;/= -@E .T t~~&ANN1%E\"*+&&'IA'MNN '    c                s\   \         P                  ! \        4      p\         P                  ! \        4      p\        P                  ! R4      p\         P                  ! \
        4      p\         P                  ! \        4      pWP                  V,          ,           V P                  V,          ,           p. pV P                   F5  pVP                  V4       V\        V4      V,          ,           p	Wi,          pK7  	  . p
V P                   F#  pVR,          pV
P                  W|,          4       K%  	  V
# )z
Calculate offsets to VDMX_Group records.
For each ratRange return a list of offset values from the beginning of
the VDMX table to a VDMX_Group.
r   r   )r   r   r   r   r   r   r   r   r   r   lenr   )r    Z	lenHeaderZlenRatRanger%   ZlenGroupHeaderZ	lenVTabler#   ZgroupOffsetsr'   ZlenGroupZoffsetsr$   r   s   &            r)   _getOffsetsZtable_V_D_M_X_._getOffsetst   s     $$^4	&&'78OOD)	 ))-8$$^4	..;66)9SS[[E$%E
Y(>>HOC ! ^^E|,JNN<34 $ r+   c                s6   V P                   ^ 8X  g:   V P                   ^8X  g)   ^ RIHp VP                  RV P                   ,          4      h\        P
                  ! \        V 4      pV P                   F%  pV\        P
                  ! \        V4      ,          pK'  	  V P                  4        F!  pV\        P
                  ! RV4      ,          pK#  	  V P                   F  p\        V4      p\        VP                  4       4      p\        VP                  4       4      p	RVRVRV	/p
V\        P
                  ! \         V
4      ,          p\#        VP%                  4       4       F2  w  pw  rRVRVR	V/pV\        P
                  ! \&        V4      ,          pK4  	  K  	  V# )
r   r   z)unknown format for VDMX table: version %sr   r   r   r	   r   r
   r   )versionr   r   r   r   Zpackr   r   r   r-   r   r   r,   r   r   r   r   sorteditemsr   )r    r"   r   r!   r$   r&   r'   r   r   r	   ZgHeaderr   r
   r   r(   s   &&             r)   compileZtable_V_D_M_X_.compile   sD   !T\\Q%6'"";dllJ  ||ND1^^EGLL!1599D $ &&(FFKKf--D )[[Eu:D%**,'G

%EtY%HGGLL88D,25;;=,A(
LT&
FD&$O^V<< -B ! r+   c           
     s~   VP                  R V P                  R7       VP                  4        VP                  R4       VP                  4        V P                   FO  pVR,          pVP                  RVR,          VR,          VR,          VR,          VR	7       VP                  4        KQ  	  VP                  R4       VP                  4        VP                  R
4       VP                  4        \        V P                  4       EF  pV P                  V,          p\        V4      p\        VP                  4       4      p\        VP                  4       4      pVP                  RVR7       VP                  4        VP                  RWgV3,          4       VP                  4        \        VP                  4       4       F3  w  p	w  rVP                  RRV	3RV
3RV3.4       VP                  4        K5  	  VP                  R4       VP                  4        EK  	  VP                  R
4       VP                  4        R# )r.   )valuer   r   ratRangebCharSetxRatioyStartRatio	yEndRatio)r4   r5   r6   r7   r   r   r'   )Zindexzrecs=%d, startsz=%d, endsz=%drecordr   r
   r   N)Z	simpletagr.   ZnewlineZbegintagr   Zendtagr   r   r   r,   r   r   r   Zcommentr/   r0   )r    Zwriterr"   r$   r   r'   r   r   r	   r   r
   r   s   &&&         r)   toXMLZtable_V_D_M_X_.toXML   s   $,,7$^^E|,Jz*X!-0,%   NN $ 	k"!-JKK
+Eu:D%**,'G

%EOOG:O6NNNN:dU=SSTNN,25;;=,A(
LT  "J/&$&$P   -B MM'"NN! ." 	hr+   c                sT   VR 8X  d   \        VR,          4      V n        R# VR8X  d   \        V R4      '       g   . V n        V F  p\	        V\
        4      '       g   K  Vw  rpVR8X  g   K)  \        V R4      '       g	   ^V n        MV ;P                  ^,          un        R\        VR,          4      R\        VR,          4      R\        VR,          4      R\        VR,          4      R	\        VR	,          4      /pV P                  P                  V4       K  	  R# VR
8X  Ed   \        V R
4      '       g   . V n        V F  p\	        V\
        4      '       g   K  Vw  rpVR8X  g   K)  \        V R4      '       g	   ^V n	        MV ;P                  ^,          un	        / pV Fd  p\	        V\
        4      '       g   K  Vw  rpVR8X  g   K)  \        VR,          4      p\        VR,          4      p	\        VR,          4      p
W3Wx&   Kf  	  V P                  P                  V4       K  	  R# R# )r.   r2   r   r3   r   r4   r5   r6   r7   r   r   r'   r   r8   r   r
   r   N)
r   r.   Zhasattrr   Z
isinstanceZtupler   r   r   r   )r    ZnameZattrsZcontentr"   Zelementr$   r'   r   r
   r   s   &&&&&      r)   fromXMLZtable_V_D_M_X_.fromXML   s   9#E'N3DL[ 4--!#"!'511'.$W:%"455)*!+"HU:->$? (5?";%xm0D'E#XeK.@%A$hu\/B&CE NN))%0! #" X4** "!'511'.$W7?"433'()E#*)'599$/6,W8+)1%2E)FJ#+E&M#:D#+E&M#:D15E- $+ KK&&u-' # r+   )r   r   r   r   r.   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r*   r-   r1   r9   r:   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r)   r   r   '   s,     BOH00&P-. -.r+   r   )Z r    ZfontTools.miscr   ZfontTools.misc.textToolsr   r   r   r   r   r   r   ) r+   r)   <module>r;      sB     " -  R.\.. R.r+   