
    Ph                     n    d dl mZ d dlmZmZmZ d dlmZ ddlm	Z	 dZ
dZ G d d	e	j                        Zy
)    )sstruct)	bytesjoinstrjoinreadHex)
TTLibError   )DefaultTablez`
    > # big endian
    version:     L
    flags:       L
    dataOffset:  L
    numDataMaps: L
zN
    > # big endian
    tag:         4s
    dataOffset:  L
    dataLength:  L
c                   0    e Zd ZdZddZd Zd Zd Zd Zy)	table__m_e_t_azMetadata table

    The ``meta`` table contains various metadata values for the font. Each
    category of metadata in the table is identified by a four-character tag.

    See also https://learn.microsoft.com/en-us/typography/opentype/spec/meta
    Nc                 R    t         j                   j                  | |       i | _        y N)r	   __init__data)selftags     jC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\fontTools/ttLib/tables/_m_e_t_a.pyr   ztable__m_e_t_a.__init__#   s    !!**45	    c                    t        j                  t              }t        j                  t        |d|       }|d   dk7  rt	        d|d   z        t        j                  t
              }t        |d         D ]|  }|||z  z   }t        j                  t
        ||||z          }|d   }	|d   }
||
|
|d   z    | j                  |	<   |	d	v sR| j                  |	   j                  d
      | j                  |	<   ~ y )Nr   versionr   zunsupported 'meta' version %dnumDataMapsr   
dataOffset
dataLengthdlngslngutf-8)	r   calcsizeMETA_HEADER_FORMATunpackr   DATA_MAP_FORMATranger   decode)r   r   ttFont
headerSizeheaderdataMapSizeidataMapOffsetdataMapr   offsets              r   	decompileztable__m_e_t_a.decompile'   s    %%&89
 2D:4FG)!<vi?PPQQ&&7vm,-A&[8Mnnmmk6Q!RG %.C\*F!&6GL4I+IJDIIcN&&!%3!6!6w!?		# .r   c                 b   t        | j                  j                               }t        j                  t
              }|t        |      t        j                  t              z  z   }t        j                  t
        dd|t        |      d      }g }g }|D ]  }|dv r| j                  |   j                  d      }	n| j                  |   }	|j                  t        j                  t        ||t        |	      d             |j                  |	       |t        |	      z  } t        |g|z   |z         S )Nr   r   )r   flagsr   r   r   r   )r   r   r   )sortedr   keysr   r   r   lenr    packencodeappendr   )
r   r#   r/   r$   r   r%   dataMaps
dataBlocksr   r   s
             r   compileztable__m_e_t_a.compile8   s   diinn&'%%&89
#d)g.>.>.O"OO
("4y	
 
C&&yy~,,W5yy~OO#zTS d##d)#J  &H,z9::r   c                    t        | j                  j                               D ]-  }|dv rs|j                  d|       |j	                          |j                  | j                  |          |j	                          |j                  d       |j	                          {|j                  d|       |j	                          | j                  |   }t        |      dk\  rAt        |      dk  r3|j                  d|j                  d      z          |j	                          |j                  |       |j                  d       |j	                          0 y )	Nr   text)r   hexdata    ~   zascii: ascii)r.   r   r/   begintagnewlinewriteendtagminmaxcommentr"   dumphex)r   writerr#   r   r   s        r   toXMLztable__m_e_t_a.toXMLV   s    $))..*+C&&C0 TYYs^, f% 	s3 yy~t9$Td):NN9t{{7/C#CDNN$t$i( # ,r   c                     |dk(  rt        |      | j                  |d   <   y |dk(  r1|d   dv r*t        |      j                         | j                  |d   <   y t	        d|z        )Nr9   r   r8   r   zcan't handle '%s' element)r   r   r   stripr   )r   nameattrscontentr#   s        r   fromXMLztable__m_e_t_a.fromXMLj   se    9&-g&6DIIeEl#V^e0@ @&-g&6&<&<&>DIIeEl#84?@@r   r   )	__name__
__module____qualname____doc__r   r+   r6   rF   rL    r   r   r   r      s"    @";<!(Ar   r   N)fontTools.miscr   fontTools.misc.textToolsr   r   r   fontTools.ttLibr    r	   r   r    r   rQ   r   r   <module>rV      s9    " @ @ & 
 VA\.. VAr   