
    hU	                     b    S SK Jr  S SKr\R                  " S5      rS rS r\" \SS9S 5       rg)	    )DefaultTableNzfontTools.mergec                  <   ^ ^ UR                  SS5      mUU 4S jnU$ )zKReturns a decorator function that adds a new method to one or
more classes.allowDefaultTableFc                 $  > / nT H  nX!;   a  M
  UR                  U5        T(       d  U[        :w  d   S5       eU R                  UR                  ;  d$   SUR                  < SU R                  < S35       e[	        X R                  U 5        M     g )NzOops, table class not found.zOops, class 'z' has method 'z'.)appendr   __name____dict__setattr)methoddoneclazzallowDefaultclazzess      F/var/www/html/env/lib/python3.13/site-packages/fontTools/merge/base.pywrapperadd_method.<locals>.wrapper   s~    E}KK5L#8X:XX8u~~5W6;nnfooVW5E??F3      )get)r   kwargsr   r   s   `  @r   
add_methodr      s"     ::159L Nr   c           	        ^^	 U  Vs/ s H  o[         Ld  M  UPM     n nU (       d  [         $ U  Vs/ s H	  oc  M  UPM     n nU (       d  g U S   R                  m[        U4S jU  5       5      (       d   U 5       eTR                  nT" 5       n0 n[        R
                  " [	        5       /S U  5       Q76 nU H5  m	 UT	   nU[         L a  M  U" U	4S jU  5       5      nU[         Ld  M1  XtT	'   M7     XCl	        U$ s  snf s  snf ! [         a4     US   n NT! [         a    [        ST	< STR                  < 35      ef = ff = f)Nr   c              3   @   >#    U  H  n[        U5      T:H  v   M     g 7fN)type).0itemr   s     r   	<genexpr>mergeObjects.<locals>.<genexpr>*   s     3sttDzU"ss   c              3   T   #    U  H  n[        U5      R                  5       v   M      g 7fr   )varskeys)r   tables     r   r   r   0   s       Ee!1!1!3!3s   &(*zDon't know how to merge key z
 of class c              3   F   >#    U  H  n[        UT[        5      v   M     g 7fr   )getattrNotImplemented)r   r"   keys     r   r   r   =   s     PC575#~>>Cs   !)
r&   	__class__allmergeMapsetunionKeyError	Exceptionr   r	   )
lstr   logicreturnTable
returnDictallKeys
mergeLogicvaluer   r'   s
           @@r   mergeObjectsr6   !   s>   
>CD~#=4CC
>
4CD4CC
4FE3s3338S83NNE'KJiiF E EFG	sJ 'PCPP&#sO   &C ? 5  	"3Z
 DGX 	s2   C8C8C=C=;D
E D(D<<E T)r   c                     [        U S5      (       d&  [        R                  SU R                  5        [        $ U R
                  n[        U[        5      (       a  UR                  X R
                  U5      $ U" U5      $ )Nr*   zDon't know how to merge '%s'.)	hasattrloginfotableTagr&   r*   
isinstancedictr6   )selfmtablesr0   s       r   mergerA   F   s]    4$$0$--@MME%~~dMM6::V}r   )#fontTools.ttLib.tables.DefaultTabler   logging	getLoggerr9   r   r6   rA    r   r   <module>rF      sF   
 =  )**"J LD1
 2
r   