+
    Zi                       ^ RI Ht ^ RIt^ RIHt ^ RIHtHtHtH	t	H
t
 ^ RIHtHtHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ R	IHt ]P2                  R
,          R8H  t]'       d   R R ltM^ RIHt . ROtR R ltR R ltR R ltR R lt RR R llt!]! RRRR7      t"]!! ]"RR7       ]"PF                  t#]"PH                  t$]! RRRR7      t%]!! ]%RR7       R# )    )annotationsN)partial)AnyCallableTupleTypecast)fieldshasresolve_types)	Converter)make_dict_structure_fnmake_dict_unstructure_fnoverride)AttributeOverride	Transform:N   Nc                    V ^8  d   QhRRRR/# )r   cl	Type[Any]returnr    )formats   "4/usr/lib/python3/dist-packages/ufoLib2/converters.py__annotate__r      s     / /y /S /    c                    \        V R R4      # )
__origin__N)getattr)r   s   &r   
get_originr!      s    r<..r   )r!   c                    V ^8  d   QhRRRR/# r   clsr   r   boolr   )r   s   "r   r   r      s     * *) * *r   c                R    \        V R R4      pVP                  R4      ^ ,          R8H  # )
__module__ .ufoLib2)r    split)r$   mods   & r   is_ufoLib2_classr-      s(    sL"-C99S>!	))r   c                    V ^8  d   QhRRRR/# r#   r   )r   s   "r   r   r   $   s     H H	 Hd Hr   c                v    \        V 4      ;'       d(    \        V 4      ;'       g    \        \        V 4      4      # N)r-   r   r!   r$   s   &r   is_ufoLib2_attrs_classr2   $   s*    C GGc#h&F&F#jo2FGr   c                    V ^8  d   QhRRRR/# r#   r   )r   s   "r   r   r   (   s     B B) B Br   c                @    \        V 4      ;'       d    \        V R 4      # )_unstructurer-   hasattrr1   s   &r   (is_ufoLib2_class_with_custom_unstructurer8   (   s    C AAWS.%AAr   c                    V ^8  d   QhRRRR/# r#   r   )r   s   "r   r   r   ,   s     @ @	 @d @r   c                @    \        V 4      ;'       d    \        V R 4      # )
_structurer6   r1   s   &r   &is_ufoLib2_class_with_custom_structurer<   ,   s    C ??WS,%??r   Tc               $    V ^8  d   QhRRRRRR/# )r   convr   allow_bytesr%   r   Noner   )r   s   "r   r   r   0   s&     X= X= X= X= X=r   c           	       a a	a
 R  V 3R llpR V 3R llpR V 3R llpR R lpR R	 lpS P                  \        \        V\        R
R7      4       S P                  \        V4       S P                  \        \        \        ,          \        4      V4       S P                  \        \        \        ,          \        4      V4       S P                  \        \        V\        RR7      4       S P                  \        V4       V'       gI   ^ RIHo	Ho
 R V
3R llpR V	3R llpS P                  \         V4       S P                  \         V4       R# R# )c               (    V ^8  d   QhRRRRRRRR/# )	r   r$   r   gen_fnz!Callable[..., Callable[..., Any]]structuringr%   r   zCallable[..., Any]r   )r   s   "r   r   $register_hooks.<locals>.__annotate__1   s,     )+ )+)+ A)+PT)+	)+r   c           	       < \        V 4      pVf   T p\        V4      p\        V4       RSP                  /pV'       d    SP                  VR&   SP
                  VR&   MSP                  VR&   V F  pVP                  SP                  9   d   SP                  VP                  ,          pM\        VP                  P                  RVP                  R J ;'       g    R 4      VP                  P                  RVP                  ^ ,          R8X  d   VP                  R,          MR 4      VP                  '       * R	7      pWuVP                  &   K  	  V! V S3/ VB # )
N_cattrs_detailed_validation_cattrs_forbid_extra_keys _cattrs_prefer_attrib_converters_cattrs_omit_if_defaultomit_if_defaultrename_attr_:   NN)rK   renameomit)r!   r
   r   detailed_validationforbid_extra_keys_prefer_attrib_convertersrK   typetype_overridesr   metadatagetdefaultnameinit)	r$   rC   rD   baseattribskwargsaattrib_overrider>   s	   &&&     r   attrs_hook_factory*register_hooks.<locals>.attrs_hook_factory1   s3    #<D,d)4+C+C7
 262H2HF./9=9W9WF56040D0DF,-Avv,,, #'"5"5aff"= #+$%JJNN)199+<+D+D% ::>>%QVVAY#5Eqvvbz4 VV# -166N- 0 c4*6**r   c                    V ^8  d   QhRRRR/# )r   r$   r   r   zCallable[[Any], Any]r   )r   s   "r   r   rE   \   s     9 9Y 9;O 9r   c                2   < \        V P                  SR 7      # )	converter)r   r5   r$   r>   s   &r   custom_unstructure_hook_factory7register_hooks.<locals>.custom_unstructure_hook_factory\   s    s''488r   c                    V ^8  d   QhRRRR/# )r   r$   r   r   zCallable[[Any, Any], Any]r   )r   s   "r   r   rE   _   s     7 79 79R 7r   c                2   < \        V P                  SR 7      # rd   )r   r;   rf   s   &r   custom_structure_hook_factory5register_hooks.<locals>.custom_structure_hook_factory_   s    s~~66r   c                    V ^8  d   QhRRRR/# )r   tr   r   Tuple[float]r   )r   s   "r   r   rE   b   s     , , ,| ,r   c                J    \        \        \        ,          \        V 4      4      # r0   )r	   r   floattuple)rn   s   &r   unstructure_transform-register_hooks.<locals>.unstructure_transformb   s    E%L%(++r   c               $    V ^8  d   QhRRRRRR/# )r   rn   ro   rM   r   r   r   r   )r   s   "r   r   rE   e   s!      |  	 r   c                    \        V !  # r0   r   )rn   rM   s   &&r   structure_transform+register_hooks.<locals>.structure_transforme   s    !}r   F)rC   rD   T)	b64decode	b64encodec                    V ^8  d   QhRRRR/# )r   vbytesr   strr   )r   s   "r   r   rE      s     	? 	? 	?3 	?r   c                d   < V '       d   S! V 4      P                  R4      # R P                  R4      # )r   utf8)decode)r|   rz   s   &r   unstructure_bytes)register_hooks.<locals>.unstructure_bytes   s*    $%IaL66v>>366v>>r   c               $    V ^8  d   QhRRRRRR/# )r   r|   r~   rM   r   r   r}   r   )r   s   "r   r   rE      s!     	  	 s 	 s 	 u 	 r   c                   < S! V 4      # r0   r   )r|   rM   ry   s   &&r   structure_bytes'register_hooks.<locals>.structure_bytes   s    Q<r   N)!register_unstructure_hook_factoryr2   r   r   r8   register_unstructure_hookr	   r   r   register_structure_hookregister_structure_hook_factoryr   r<   base64ry   rz   r}   )r>   r?   r`   rg   rk   rs   rw   r   r   ry   rz   s   f&       @@r   register_hooksr   0   s   )+ )+V9 97 7, 	**"+CQVW 	**0' 	""T)_i(*? 	  d9oy!ACVW(("+AtT 	((.%
 /	? 	?	  	  	&&u.?@$$UO< r   F)rK   rR   prefer_attrib_converters)r?   )      )r   	structureunstructure)T)&
__future__r   sys	functoolsr   typingr   r   r   r   r	   attrsr
   r   r   cattrsr   
cattrs.genr   r   r   cattrs.gen._constsr   fontTools.misc.transformr   version_infois_py37r!   __all__r-   r2   r8   r<   r   default_converterr   r   binary_converterr   r   r   <module>r      s    " 
  3 3 , ,  Q Q 0 .


2
&
(
/ "*
HB@X=v " 
  e 4''	++ " 
 T 2r   