+
    f7i  c                   sJ   R t ^ RIHtHtHtHtHt ^ RIHt ^RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHt ^ RIt^ RIt]P(                  ! ]4      tRt]P0                  ! ]4      tR	t]P0                  ! ]4      t ! R
 R]
P                  4      t ! R R]4      t] ! R R]4      4       tR# )a  Compiles/decompiles SVG table.

https://docs.microsoft.com/en-us/typography/opentype/spec/svg

The XML format is:

.. code-block:: xml

        <SVG>
                <svgDoc endGlyphID="1" startGlyphID="1">
                        <![CDATA[ <complete SVG doc> ]]
                </svgDoc>
        ...
                <svgDoc endGlyphID="n" startGlyphID="m">
                        <![CDATA[ <complete SVG doc> ]]
                </svgDoc>
        </SVG>
)	bytesjoinsafeEvalstrjointobytestostr)sstruct)DefaultTable)Sequence)	dataclassastuple)BytesIONzj
	>   # big endian
	version:                  H
	offsetToSVGDocIndex:      L
	reserved:                 L
z
	>   # big endian
	startGlyphID:             H
	endGlyphID:               H
	svgDocOffset:             L
	svgDocLength:             L
c                   s<   a  ] tR t^5t o RtR tR tR tR tRt	V t
R# )table_S_V_G_zScalable Vector Graphics table

The ``SVG`` table contains representations for glyphs in the SVG
image format.

See also https://learn.microsoft.com/en-us/typography/opentype/spec/stat
c           	     s0   . V n         \        P                  ! \        VR \         V 4       V P
                  ^ 8w  d!   \        P                  RV P
                  4       V P                  ;r4\        P                  ! RWV^,            4      ^ ,          V n
        V^,          pV P                  ^ 8  EdT   WR  p. p\        V P                  4       FZ  pVV\        ,          V^,           \        ,           p\        P                  ! \        V\        4       4      p	VP                  V	4       K\  	  V F  p
V
P                   V,           pWP"                  ,           pWV pRpVP%                  R4      '       dH   ^ R Ip\)        V4      pVP+                  R RVR7      ;_uu_ 4       pVP-                  4       pR R R 4       ?Rp\/        VR4      pV P                   P                  \1        WP2                  V
P4                  V4      4       K  	  R # R #   + '       g   i     La; i)	Nz9Unknown SVG table version '%s'. Decompiling as version 0.>HF   Zr)fileobjTutf_8)docListr   ZunpackSVG_format_0SVG_format_0SizeversionlogwarningoffsetToSVGDocIndexstruct
numEntriesZrangedoc_index_entry_format_0Sizedoc_index_entry_format_0DocumentIndexEntryappendsvgDocOffsetsvgDocLength
startswithgzipr
   GzipFileZreadr   SVGDocumentstartGlyphID
endGlyphID)selfdatattFontZposZsubTableStartZdata2ZentriesiZrecord_dataZdocIndexEntryentryZstartZenddoc
compressedr    bytesIOZ	gunzippers   &&&               D/usr/lib64/python3.14/site-packages/fontTools/ttLib/tables/S_V_G_.py	decompileZtable_S_V_G_.decompile>   s    	|T*;+;%<dC<<1KKK #666 --dq.AB1Eq??QJEG4??+#2367!e263
 !(,k;M;O! }- , !**]:000o"
>>+..%clGtS'BBi'nn. C!%JC)##%7%79I9I:V ! . CBs   HHc                s   ^ p\         p. p. p\        V P                  4      p\        P                  ! RV4      pVP                  V4       \        V4      \        V,          ,           p/ p	\        V RR4      p
\        V P                  4       EFl  w  r\        V\        \        34      '       d   \        V!  pWP                  V&   \        VP                  RR7      pV
'       g   VP                  '       d   VP!                  R4      '       gs   ^ RIp\%        4       pVP'                  RRV^ R	7      ;_uu_ 4       pVP)                  V4       RRR4       VP+                  4       p\        V4      \        V4      8  d   Tp??\        V4      pW9   d
   W,          pM TpVV,          pVW&   VP                  V4       \        P                  ! R
VP,                  VP.                  VV4      pVP                  V4       EKo  	  VP1                  V4       \3        V4      p^ p\        P                  ! RW#V4      pVV.p\3        V4      pV#   + '       g   i     EL; i)i    r   r+   Fr   )Zencodingr   NZw)r   Zmtimez>HHLLz>HLL)r   Zlenr   r   Zpackr   r   Zgetattr	enumerate
isinstancelisttupler"   r   r&   r+   r   r    r
   r!   ZwriteZgetvaluer#   r$   Zextendr    )r%   r'   r   r   r   Z	entryListr   ZdatumZ	curOffsetZseenDocsZallCompressedr(   r*   ZdocBytesr    r,   ZgzipperZgzippedZ	docLengthZ	docOffsetr)   Z
svgDocDataZreservedZheaderr&   s   &&                       r-   compileZtable_S_V_G_.compilem   s    	 	&
D*-J!=
!JJ	lE:-FA#e}--!3'"%Qsxx':H9L9L: : !) ]]4gQ]GG7MM(+ H!**,w<#h-/&HWHI#$.	%	Y&	%."x(KK))3>>9iE U#= .> 	!y)
VW8L
#3 HGGs   7IIc                s   \        V P                  4       F  w  r4\        V\        \        34      '       d   \        V!  pW@P                  V&   R VP                  RVP                  /pVP                  '       d   ^VR&   VP                  ! R/ VB  VP                  4        VP                  VP                  4       VP                  4        VP                  R4       VP                  4        K  	  R# )r#   r$   r+   svgDocN)r4   )r/   r   r0   r1   r2   r"   r#   r$   r+   ZbegintagZnewlineZ
writecdatar&   Zendtag)r%   Zwriterr'   r(   r*   attrss   &&&   r-   toXMLZtable_S_V_G_.toXML   s    -FA#e}--!3'"%Q#S%5%5|S^^TE~~~&'l#OO..NNchh'NNMM(#NN .    c                s   VR 8X  d   \        V R4      '       g   . V n        \        V4      pVP                  4       p\	        VR,          4      p\	        VR,          4      p\        \        VP                  RR4      4      4      pV P                  P                  \        WVWx4      4       R# \        P                  RW4       R# )r4   r   r#   r$   r+   Z0zUnknown %s %sN)Zhasattrr   r   Zstripintboolr   Zgetr   r"   r   r   )	r%   Znamer5   Zcontentr'   r*   ZstartGIDZendGIDr+   s	   &&&&&    r-   fromXMLZtable_S_V_G_.fromXML   s    84++!'"C))+C501H|,-Fhuyys'CDEJLLC6 NOKK7r7   )r   r   N)__name__
__module____qualname____firstlineno____doc__r.   r3   r6   r:   __static_attributes____classdictcell____classdict__   @r-   r   r   5   s%     -^4l8 8r7   r   c                   s,   a  ] tR t^t o R tR tRtV tR# )r   c                s>    R V n         R V n        R V n        R V n        R # )Nr#   r$   r   r   r%      &r-   __init__ZDocumentIndexEntry.__init__   s!       r7   c                sv    R V P                   : RV P                  : RV P                  : RV P                  : 2# )zstartGlyphID: z, endGlyphID: z, svgDocOffset: z, svgDocLength: rE   rF   rG   r-   __repr__ZDocumentIndexEntry.__repr__   s.       $//43D3DdFWFWY	
r7   )r$   r#   r   r   N)r;   r<   r=   r>   rH   rI   r@   rA   rB   rD   r-   r   r      s     !
 
r7   r   c                   s<   a  ] tR t^t o RtR tR tV 3R ltRtV t	R# )r"   Fc                s4    \        V 4      R ,          V,          # ):N   N)r	   )r%   Zindexs   &&r-   __getitem__ZSVGDocument.__getitem__   s    t}R ''r7   c                s    ^# )rJ    rF   rG   r-   __len__ZSVGDocument.__len__   s    r7   c                sJ   < V ^8  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   # )i   r&   r#   r$   r+   )Zstrr8   r9   )ZformatrC   s   "r-   Z__annotate__ZSVGDocument.__annotate__   s5     
I    O	 
  r7   rL   N)
r;   r<   r=   r>   r+   rK   rM   Z__annotate_func__r@   rA   rB   rD   r-   r"   r"      s     
 J(!  r7   r"   ) r?   ZfontTools.misc.textToolsr    r   r   r   r   ZfontTools.miscr   Z r   Zcollections.abcr   Zdataclassesr   r	   Zior
   r   ZloggingZ	getLoggerr;   r   r   Zcalcsizer   r   r   r   Zobjectr   r"   rL   r7   r-   <module>rN      s   & R Q "  $ *    ! ##L1    '//0HI H8<,, H8V
 
 (  r7   