
    jke                         d dl mZ ddlmZ ddlmZ ddlmZmZm	Z	 dZ
 ej                  e
      Z G d dej                        Zy	)
   )DefaultTable    )sstruct)	bytesjoin)compileTupleVariationStoredecompileTupleVariationStoreTupleVariationz
    > # big endian
    majorVersion:        H
    minorVersion:        H
    tupleVariationCount: H
    offsetToData:        H
c                   6    e Zd ZddgZd	dZd
dZd Zd Zd Zy)table__c_v_a_rcvt fvarNc                 p    t         j                   j                  | |       d\  | _        | _        g | _        y )N)r   r   )r   __init__majorVersionminorVersion
variations)selftags     A/usr/lib/python3/dist-packages/fontTools/ttLib/tables/_c_v_a_r.pyr   ztable__c_v_a_r.__init__   s/    !!**45/3,4,    c                    t        | j                  D cg c]  }|j                         s| c}t        |d   j                        |d   j
                  D cg c]  }|j                   c}i |      \  }}}| j                  | j                  |t        t        |      z   d}dj                  t        j                  t        |      ||g      S c c}w c c}w )Nr   r   )r   
pointCountaxisTagssharedTupleIndicesuseSharedPoints)r   r   tupleVariationCountoffsetToDatar   )r   r   	hasImpactlenvaluesaxesaxisTagr   r   CVAR_HEADER_SIZEjoinr   packCVAR_HEADER_FORMAT)	r   ttFontr   vaxisr   tuplesdataheaders	            r   compileztable__c_v_a_r.compile"   s    ,F#'??DaakkmD6&>001/5f~/B/BCtdllC!+-
)VT !-- --#6,s6{:	
 xx&8&A64PQQ ECs   CCCc                    |d   j                   D cg c]  }|j                   }}i }t        j                  t        |dt
         |       |d   | _        |d   | _        | j                  dk(  sJ | j                         t        | j                  ||d   t        |d   j                        d |t
        |d   	      | _        y c c}w )
Nr   r   r   r   r   r   r   r   )tableTagr   r   r   sharedTuplesr+   posdataPos)r!   r"   r   unpackr&   r#   r   r   r   r/   r   r    r   )r   r+   r'   r)   r   r,   s         r   	decompileztable__c_v_a_r.decompile2   s    -3F^-@-@ATDLLAA)42B+CVL">2">2  A%8t'8'88%6]] &'< =6&>001 >*	
 Bs   Cc                    |dk(  rAt        |j                  dd            | _        t        |j                  dd            | _        y |dk(  rut	        |d   j
                        }t        i d g|z        }| j                  j                  |       |D ],  }t        |t              s|\  }}	}
|j                  ||	|
       . y y )Nversionmajor1minor0tupler   )intgetr   r   r   r    r	   r   append
isinstancer;   fromXML)r   nameattrscontentr'   
valueCountvartupleElement	tupleName
tupleAttrstupleContents              r   r@   ztable__c_v_a_r.fromXMLD   s    9 #EIIgs$; <D #EIIgs$; <DW_VF^223J dVj%89COO""3' ' ElE2:F7Iz<KK	:|DE	 r   c                    |d   j                   D cg c]  }|j                   }}|j                  d| j                  | j                         |j                          | j                  D ]  }|j                  ||        y c c}w )Nr   r6   )r7   r9   )r!   r"   	simpletagr   r   newliner   toXML)r   writerr'   r)   r   rE   s         r   rM   ztable__c_v_a_r.toXMLQ   su    -3F^-@-@ATDLLAA$*;*;4CTCTU?? 	(CIIfh'	( Bs   B)N)F)	__name__
__module____qualname__dependenciesr   r-   r4   r@   rM    r   r   r   r      s'    F#L
R 
$E(r   r   N) r   fontTools.miscr   fontTools.misc.textToolsr   %fontTools.ttLib.tables.TupleVariationr   r   r	   r&   calcsizer#   r   rS   r   r   <module>rY      sH     " .   $7##$67 <(\.. <(r   