+
    ˜h©j³G  ã                  ó�  a € 0 t $ R t^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ]'       d   ^RIHt ^RIH t  ]
]!]3,          t"]PF                  t$R]%R&    ! R R]4      t& ! R R]&4      t' ! R  R!]'4      t( ! R" R#]&4      t)/ t*R$]%R%&   ]! R&RR'7      t+R( R) lt,R<R*R+R,R+R-R/R. R/ lllt-]R<R0 R1 ll4       t.]R<R2 R3 ll4       t.R<R4 R5 llt.R6 R7 lt/R8 R9 lt0R: R; lt1R# )=a*  The :class:`.Annotated` class and related routines; creates hash-equivalent
copies of SQL constructs which contain context-specific markers and
associations.

Note that the :class:`.Annotated` concept as implemented in this module is not
related in any way to the pep-593 concept of "Annotated".


)ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)Ú	FrozenSet)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)Ú	operators)ÚHasCacheKey)Úanon_map)ÚExternallyTraversible)ÚInternalTraversal)Úutil)ÚLiteral)ÚSelf)Ú_EntityNamespace)Ú_TraverseInternalsTypeúutil.immutabledict[str, Any]ÚEMPTY_ANNOTATIONSc                  óÄ   € ] tR t^5t$ Rt]tR]R&   R]R&   R]R&   R R lt]	RR	 R
 ll4       t
]	RR R ll4       t
RR R llt
]P                  R R l4       tR R ltRtR# )ÚSupportsAnnotationsr   Ú_annotationsz*util.generic_fn_descriptor[FrozenSet[Any]]Ú	proxy_setÚboolÚ_is_immutablec               ó    € V ^8„  d   QhRRRR/# ©é   ÚvaluesÚ_AnnotationDictÚreturnr   © )Úformats   "ÚT/var/www/html/bestweb/venv/lib/python3.14/site-packages/sqlalchemy/sql/annotation.pyÚ__annotate__Ú SupportsAnnotations.__annotate__>   s   € ÷ $ñ $ ð $°Dñ $ó    c                	ó   € \        4       h©N©ÚNotImplementedError©Úselfr%   s   &&r*   Ú	_annotateÚSupportsAnnotations._annotate>   s   € Ü!Ó#Ð#r-   c               ó$   € V ^8„  d   QhRRRRRR/# ©r$   r%   úLiteral[None]Úcloner    r'   r   r(   )r)   s   "r*   r+   r,   B   ó(   € ÷ ñ àðð ðð 
ñ	r-   c                	ó   € R # r/   r(   ©r3   r%   r9   s   &&&r*   Ú_deannotateÚSupportsAnnotations._deannotateA   ó   € ñ
 r-   c               ó$   € V ^8„  d   QhRRRRRR/# ©r$   r%   úSequence[str]r9   r    r'   r   r(   )r)   s   "r*   r+   r,   I   ó(   € ÷ "ñ "àð"ð ð"ð 
ñ	"r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   r>   H   ó   € ñ
 "r-   Nc               ó$   € V ^8„  d   QhRRRRRR/# ©r$   r%   úOptional[Sequence[str]]r9   r    r'   r   r(   )r)   s   "r*   r+   r,   O   s(   € ÷ $ñ $à'ð$ð ð$ð 
ñ	$r-   c                	ó   € \        4       hr/   r0   r<   s   &&&r*   r=   r>   O   s   € ô
 "Ó#Ð#r-   c               ó   € V ^8„  d   QhRR/# )r$   r'   úTuple[Any, ...]r(   )r)   s   "r*   r+   r,   W   s   € ÷ :ñ :¨ñ :r-   c                	ó8   € \        4       pV P                  V4      # r/   )r   Ú_gen_annotations_cache_key)r3   Ú	anon_map_s   & r*   Ú_annotations_cache_keyÚ*SupportsAnnotations._annotations_cache_keyV   s   € ä“Jˆ	à×.Ñ.¨yÓ9Ð9r-   c               ó    € V ^8„  d   QhRRRR/# )r$   r   r'   rK   r(   )r)   s   "r*   r+   r,   \   s   € ÷ 
ñ 
Ø ð
à	ñ
r-   c           
     	óV  a€ R \         ;QJ dM    . V3R l\        V P                  4       Uu. uF  pW P                  V,          3NK  	  up 4       F  NK  	  53# ! V3R l\        V P                  4       Uu. uF  pW P                  V,          3NK  	  up 4       4      3# u upi u upi )r   c              3  ó€   <"  € T F3  w  rT\        V\        4      '       d   VP                  S. 4      MT3x € K5  	  R # 5ir/   )Ú
isinstancer   Ú_gen_cache_key)Ú.0ÚkeyÚvaluer   s   &  €r*   Ú	<genexpr>ÚASupportsAnnotations._gen_annotations_cache_key.<locals>.<genexpr>a   sG   øé € ð ñ#‘J�Cð ô & e¬[×9Ò9ð ×,Ñ,¨X°rÔ:à"õó#ùs   ƒ;>)ÚtupleÚsortedr   )r3   r   rW   s   &f r*   rM   Ú.SupportsAnnotations._gen_annotations_cache_key\   sµ   ø€ ð ßŒEô ô  & d×&7Ñ&7Ô8ó#á8˜ð ×+Ñ+¨CÕ0Ó1Ù8ò#ó�Eð
ð 	
àô ô  & d×&7Ñ&7Ô8ó#á8˜ð ×+Ñ+¨CÕ0Ó1Ù8ò#óó ð
ð 	
ùò#ùò #s   ¬B!
Á7B&r(   ©..©NF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú	__slots__r   r   Ú__annotations__r4   r
   r=   r   Úmemoized_propertyrO   rM   Ú__static_attributes__r(   r-   r*   r   r   5   st   ‡ Ø€Ià1B€LÐ.ÓBà9Ó9àÓõ$ð öó ðð ö"ó ð"÷$ð 
×Ñô:ó ð:÷

ñ 
r-   r   c                  ó¼   € ] tR t^rt$ RtR]R&   ]'       d   ]P                  R R l4       t	R R lt
R R lt]RR	 R
 ll4       t]RR R ll4       tRR R lltRtR# )ÚSupportsWrappingAnnotationsz*Callable[..., SupportsWrappingAnnotations]Ú_constructorc               ó   € V ^8„  d   QhRR/# ©r$   r'   r   r(   )r)   s   "r*   r+   Ú(SupportsWrappingAnnotations.__annotate__z   s   € ×;Ñ;Ð&6Ñ;r-   c                	ó   € R # r/   r(   ©r3   s   &r*   Úentity_namespaceÚ,SupportsWrappingAnnotations.entity_namespacey   s   € Ù8;r-   c               ó    € V ^8„  d   QhRRRR/# r#   r(   )r)   s   "r*   r+   rm   |   s   € ÷ >ñ > ð >°Dñ >r-   c                ó,   € \         P                  W4      # )úWreturn a copy of this ClauseElement with annotations
updated by the given dictionary.

©Ú	AnnotatedÚ_as_annotated_instancer2   s   &&r*   r4   Ú%SupportsWrappingAnnotations._annotate|   ó   € ô
 ×/Ñ/°Ó=Ð=r-   c               ó    € V ^8„  d   QhRRRR/# r#   r(   )r)   s   "r*   r+   rm   ƒ   s   € ÷ >ñ >¨ð >¸Dñ >r-   c                ó,   € \         P                  W4      # )úXreturn a copy of this ClauseElement with annotations
replaced by the given dictionary.

ru   r2   s   &&r*   Ú_with_annotationsÚ-SupportsWrappingAnnotations._with_annotationsƒ   ry   r-   c               ó$   € V ^8„  d   QhRRRRRR/# r7   r(   )r)   s   "r*   r+   rm   ‹   r:   r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   Ú'SupportsWrappingAnnotations._deannotateŠ   r?   r-   c               ó$   € V ^8„  d   QhRRRRRR/# rA   r(   )r)   s   "r*   r+   rm   ’   rC   r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   r�   ‘   rE   r-   Nc               ó$   € V ^8„  d   QhRRRRRR/# rG   r(   )r)   s   "r*   r+   rm   ˜   s(   € ÷ ñ à'ðð ðð 
ñ	r-   c                ó:   € V'       d   V P                  4       pV# V # )ú”return a copy of this :class:`_expression.ClauseElement`
with annotations
removed.

:param values: optional tuple of individual values
 to remove.

)Ú_clone)r3   r%   r9   Úss   &&& r*   r=   r�   ˜   s   € ÷ Ø—‘“ˆAØˆHàˆKr-   r(   r^   r_   )r`   ra   rb   rc   rd   re   r   r   Úro_non_memoized_propertyrp   r4   r}   r
   r=   rg   r(   r-   r*   ri   ri   r   s`   ‡ Ø€Ià<Ó<çà	×	&Ñ	&Ü;ó 
'Ø;õ>õ>ð öó ðð ö"ó ð"÷ó r-   ri   c                  óÄ   € ] tR t^¬t$ ]P
                  '       g   RtR]P                  3.t	R]
R&   R R ltR R lt]RR R	 ll4       t]RR
 R ll4       tRR R lltRtR# )ÚSupportsCloneAnnotationsr   r   Ú%_clone_annotations_traverse_internalsc               ó    € V ^8„  d   QhRRRR/# r#   r(   )r)   s   "r*   r+   Ú%SupportsCloneAnnotations.__annotate__»   s   € ÷ 	ñ 	 ð 	°Dñ 	r-   c                óÖ   € V P                  4       pVP                  P                  V4      Vn        VP                  P	                  RR4       VP                  P	                  RR4       V# )rt   rO   NÚ_generate_cache_key)r‡   r   ÚunionÚ__dict__Úpop©r3   r%   Únews   && r*   r4   Ú"SupportsCloneAnnotations._annotate»   sW   € ð
 �k‰k‹mˆØ×+Ñ+×1Ñ1°&Ó9ˆÔØ�‰×ÑÐ1°4Ô8Ø�‰×ÑÐ.°Ô5Øˆ
r-   c               ó    € V ^8„  d   QhRRRR/# r#   r(   )r)   s   "r*   r+   rŽ   Æ   s   € ÷ 	ñ 	¨ð 	¸Dñ 	r-   c                óÌ   € V P                  4       p\        P                  ! V4      Vn        VP                  P                  RR4       VP                  P                  RR4       V# )r|   rO   Nr�   )r‡   r   Úimmutabledictr   r’   r“   r”   s   && r*   r}   Ú*SupportsCloneAnnotations._with_annotationsÆ   sQ   € ð
 �k‰k‹mˆÜ×-Ò-¨fÓ5ˆÔØ�‰×ÑÐ1°4Ô8Ø�‰×ÑÐ.°Ô5Øˆ
r-   c               ó$   € V ^8„  d   QhRRRRRR/# r7   r(   )r)   s   "r*   r+   rŽ   Ò   r:   r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   Ú$SupportsCloneAnnotations._deannotateÑ   r?   r-   c               ó$   € V ^8„  d   QhRRRRRR/# rA   r(   )r)   s   "r*   r+   rŽ   Ù   rC   r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   r�   Ø   rE   r-   Nc               ó$   € V ^8„  d   QhRRRRRR/# rG   r(   )r)   s   "r*   r+   rŽ   ß   s(   € ÷ ñ à'ðð ðð 
ñ	r-   c                óÊ   € V'       g   V P                   '       dI   V P                  4       p\        P                  ! 4       Vn         VP                  P                  RR4       V# V # )r†   rO   N)r   r‡   r   r™   r’   r“   )r3   r%   r9   r•   s   &&& r*   r=   r�   ß   sO   € ÷ �D×%×%Ð%ð —+‘+“-ˆCÜ#×1Ò1Ó3ˆCÔØ�L‰L×ÑÐ5°tÔ<ØˆJàˆKr-   r(   r^   r_   )r`   ra   rb   rc   Útypingr   rd   r   Údp_annotations_keyrŒ   re   r4   r}   r
   r=   rg   r(   r-   r*   r‹   r‹   ¬   ss   ‡ ð ××ÐØˆ	ð 
Ð*×=Ñ=Ð>ðEÐ)Ð+Aó õ	õ	ð öó ðð ö"ó ð"÷ó r-   r‹   c                  ób  € ] tR t^÷t$ RtRt]R R l4       tR]R&   R]R&   R	]R
&   R R lt	R R lt
R R ltR R lt]R(R R ll4       t]R(R R ll4       tR)R R llt]P                   '       g   R R lt]R 4       tR R ltR R  ltR! R" ltR# R$ lt]P2                  R% R& l4       tR'tR# )*rv   a  clones a SupportsAnnotations and applies an 'annotations' dictionary.

Unlike regular clones, this clone also mimics __hash__() and
__eq__() of the original element so that it takes its place
in hashed collections.

A reference to the original element is maintained, for the important
reason of keeping its hash value current.  When GC'ed, the
hash value may be reused, causing conflicts.

.. note::  The rationale for Annotated producing a brand new class,
   rather than placing the functionality directly within ClauseElement,
   is **performance**.  The __hash__() method is absent on plain
   ClauseElement which leads to significantly reduced function call
   overhead, as the use of sets and dictionaries against ClauseElement
   objects is prevalent, but most are not "annotated".

Fc               ó$   € V ^8„  d   QhRRRRRR/# )r$   Úelementri   r%   r&   r'   rv   r(   )r)   s   "r*   r+   ÚAnnotated.__annotate__  s$   € ÷ $ñ $Ø1ð$Ø;Jð$à	ñ$r-   c                	ó�   €  \         VP                  ,          p V ! W4      #   \         d    \        TP                  T 4      p  L+i ; ir/   )Úannotated_classesÚ	__class__ÚKeyErrorÚ_new_annotation_type)Úclsr¦   r%   s   &&&r*   rw   Ú Annotated._as_annotated_instance  sG   € ð	?Ü# G×$5Ñ$5Õ6ˆCñ �7Ó#Ð#øô ô 	?Ü& w×'8Ñ'8¸#Ó>ŠCð	?ús   ‚! ¡!AÁAr   r   ri   Ú_Annotated__elementÚintÚ_hashc               ó$   € V ^8„  d   QhRRRRRR/# )r$   r­   z
Type[Self]Úargsr   r'   r   r(   )r)   s   "r*   r+   r§     s!   € ÷ #ñ #�Zð #¨ð #°ñ #r-   c                	ó,   € \         P                  V 4      # r/   )ÚobjectÚ__new__)r­   r³   s   &*r*   r¶   ÚAnnotated.__new__  s   € Ü�~‰~˜cÓ"Ð"r-   c               ó    € V ^8„  d   QhRRRR/# )r$   r¦   ri   r%   r&   r(   )r)   s   "r*   r+   r§     s   € ÷ #ñ #Ø2ð#Ø<Kñ#r-   c                	ó  € VP                   P                  4       V n         V P                   P                  R R4       V P                   P                  RR4       Wn        \        P
                  ! V4      V n        \        V4      V n        R# ©rO   Nr�   )	r’   Úcopyr“   r¯   r   r™   r   Úhashr±   )r3   r¦   r%   s   &&&r*   Ú__init__ÚAnnotated.__init__  sg   € ð  ×(Ñ(×-Ñ-Ó/ˆŒØ�‰×ÑÐ2°DÔ9Ø�‰×ÑÐ/°Ô6Ø ŒÜ ×.Ò.¨vÓ6ˆÔÜ˜'“]ˆŽ
r-   c               ó    € V ^8„  d   QhRRRR/# r#   r(   )r)   s   "r*   r+   r§   (  s   € ÷ ñ  ð °Dñ r-   c                	ó^   € V P                   P                  V4      pV P                  V4      pV# r/   )r   r‘   r}   )r3   r%   Ú_valuesr•   s   &&  r*   r4   ÚAnnotated._annotate(  s-   € Ø×#Ñ#×)Ñ)¨&Ó1ˆØ×$Ñ$ WÓ-ˆØˆ
r-   c               ó    € V ^8„  d   QhRRRR/# r#   r(   )r)   s   "r*   r+   r§   -  s   € ÷ ñ ¨ð ¸Dñ r-   c                	ó4  € V P                   P                  V P                   4      pV P                  P                  4       Vn        VP                  P	                  R R4       VP                  P	                  RR4       \
        P                  ! V4      Vn        V# rº   )rª   r¶   r’   r»   r“   r   r™   r   r<   s   && r*   r}   ÚAnnotated._with_annotations-  sp   € Ø—‘×&Ñ& t§~¡~Ó6ˆØŸ™×+Ñ+Ó-ˆŒØ�‰×ÑÐ3°TÔ:Ø�‰×ÑÐ0°$Ô7Ü!×/Ò/°Ó7ˆÔØˆr-   c               ó$   € V ^8„  d   QhRRRRRR/# r7   r(   )r)   s   "r*   r+   r§   6  r:   r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   ÚAnnotated._deannotate5  r?   r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   r%   rB   r9   r    r'   rv   r(   )r)   s   "r*   r+   r§   =  s(   € ÷ ñ àðð ðð 
ñ	r-   c                	ó   € R # r/   r(   r<   s   &&&r*   r=   rÈ   <  s   € ñ
 r-   Nc               ó$   € V ^8„  d   QhRRRRRR/# rG   r(   )r)   s   "r*   r+   r§   C  s(   € ÷ ñ à'ðð ðð 
ñ	r-   c           
     	óà   € Vf   V P                   # T P                  \        P                  ! V P                  P                  4        UUu/ uF  w  r4W19  g   K  W4bK  	  upp4      4      # u uppi r/   )r¯   r}   r   r™   r   Úitems)r3   r%   r9   rW   rX   s   &&&  r*   r=   rÈ   C  sq   € ð
 Š>Ø—>‘>Ð!à×)Ñ)Ü×"Ò"ð +/×*;Ñ*;×*AÑ*AÔ*Côá*C™J˜CØÑ,ô #˜š
Ù*Còóóð ùós   Á	
A*ÁA*c               ó$   € V ^8„  d   QhRRRRRR/# )r$   Úvisitorr   Úkwr'   r(   )r)   s   "r*   r+   r§   W  s!   € ÷ 	ñ 	¨cð 	¸ð 	Àñ 	r-   c                	óP   € V P                   P                  P                  ! W3/ VB # r/   )r¯   rª   Ú_compiler_dispatch)r3   rÏ   rÐ   s   &&,r*   rÒ   ÚAnnotated._compiler_dispatchW  s*   € Ø—>‘>×+Ñ+×>Ò>ØñØ!#ñð r-   c                	ó.   € V P                   P                  # r/   )r¯   rj   ro   s   &r*   rj   ÚAnnotated._constructor\  s   € à—>‘>×.Ñ.Ð.r-   c               ó    € V ^8„  d   QhRRRR/# )r$   rÐ   r   r'   r   r(   )r)   s   "r*   r+   r§   `  s   € ÷ 	<ñ 	<˜3ð 	< 4ñ 	<r-   c                	óÜ   € V P                   P                  ! R/ VB pW P                   J d   V # VP                  P                  V P                  4       V P	                  W P
                  4      # )Nr(   )r¯   r‡   r’   Úupdaterª   r   )r3   rÐ   r9   s   &, r*   r‡   ÚAnnotated._clone`  sU   € Ø—‘×%Ò%Ñ+¨Ñ+ˆØ—N‘NÓ"àˆKð �N‰N×!Ñ! $§-¡-Ô0Ø—>‘> %×):Ñ):Ó;Ð;r-   c               ó   € V ^8„  d   QhRR/# )r$   r'   z'Tuple[Type[Annotated], Tuple[Any, ...]]r(   )r)   s   "r*   r+   r§   k  s   € ÷ Cñ CÐCñ Cr-   c                	óJ   € V P                   V P                  V P                  33# r/   )rª   r¯   r   ro   s   &r*   Ú
__reduce__ÚAnnotated.__reduce__k  s    € Ø�~‰~ §¡°×0AÑ0AÐBÐBÐBr-   c               ó   € V ^8„  d   QhRR/# )r$   r'   r°   r(   )r)   s   "r*   r+   r§   n  s   € ÷ ñ ˜#ñ r-   c                	ó   € V P                   # r/   )r±   ro   s   &r*   Ú__hash__ÚAnnotated.__hash__n  s   € Ø�z‰zÐr-   c               ó    € V ^8„  d   QhRRRR/# )r$   Úotherr   r'   r    r(   )r)   s   "r*   r+   r§   q  s   € ÷ -ñ -˜Cð - Dñ -r-   c                	óž   € V P                   '       d&   V P                  P                  P                  W4      # \	        V4      \	        V 4      8H  # r/   )Ú_is_column_operatorsr¯   rª   Ú__eq__r¼   )r3   rã   s   &&r*   ræ   ÚAnnotated.__eq__q  s<   € Ø×$×$Ð$Ø—>‘>×+Ñ+×2Ñ2°4Ó?Ð?ä˜“;¤$ t£*Ñ,Ð,r-   c               ó   € V ^8„  d   QhRR/# rl   r(   )r)   s   "r*   r+   r§   x  s   € ÷ 3ñ 3Ð"2ñ 3r-   c                	ó¦   € R V P                   9   d,   \        \        V P                   R ,          4      P                  # V P                  P                  # )rp   )r   r   ri   rp   r¯   ro   s   &r*   rp   ÚAnnotated.entity_namespacew  sI   € à ×!2Ñ!2Ô2ÜÜ+Ø×!Ñ!Ð"4Õ5ó÷ Ñðð
 —>‘>×2Ñ2Ð2r-   )r’   Ú	__elementr   r±   r^   )NT)r`   ra   rb   rc   Ú__doc__rå   Úclassmethodrw   re   r¶   r½   r4   r}   r
   r=   r¢   r   rÒ   Úpropertyrj   r‡   rÜ   rà   ræ   r   r‰   rp   rg   r(   r-   r*   rv   rv   ÷   sË   ‡ ñð& !Ðàô$ó ð$ð /Ó.Ø*Ó*ØƒJõ#õ#õõ
ð öó ðð öó ð÷ð$ ××Ðõ	ð
 
ñ	/ó 
ð	/õ	<õCõõ-ð 
×"Ñ"ô3ó #ô3r-   rv   z8Dict[Type[SupportsWrappingAnnotations], Type[Annotated]]r©   Ú_SA)Úboundc               ó$   € V ^8„  d   QhRRRRRR/# )r$   Úto_annotaterï   r   r&   r'   r(   )r)   s   "r*   r+   r+   Ž  s!   € ÷ 	&ñ 	& ð 	&°/ð 	&Àcñ 	&r-   c                óR   €  V P                   pV! V4      #   \         d    T u # i ; ir/   )r4   ÚAttributeError)rò   r   r4   s   && r*   Ú_safe_annotaterõ   Ž  s8   € ð&Ø×)Ñ)ˆ	ñ ˜Ó%Ð%øô ô ð Òð	ús   ‚ –&¥&Údetect_subquery_colsFÚind_cols_on_fromclauseÚannotate_callablec               ó4   € V ^8„  d   QhRRRRRRRRR	RR
RRR/# )r$   r¦   rï   r   r&   Úexcludez'Optional[Sequence[SupportsAnnotations]]rö   r    r÷   rø   zOOptional[Callable[[SupportsAnnotations, _AnnotationDict], SupportsAnnotations]]r'   r(   )r)   s   "r*   r+   r+   š  sW   € ÷ Eñ EØðEà ðEð 5ðEð
 ðEð !ðEððEð 	ñEr-   c               ón   aaaaaaa€ / oR VVVVVVV3R lloV e   \        \        S! V 4      4      p RoV # )z­Deep copy the given ClauseElement, annotating each element
with the given annotations dictionary.

Elements within the exclude collection will be cloned but not annotated.

c               ó$   € V ^8„  d   QhRRRRRR/# ©r$   Úelemr   rÐ   r   r'   r(   )r)   s   "r*   r+   Ú$_deep_annotate.<locals>.__annotate__±  s#   € ÷ )ñ )Ð'ð )¨sð )Ð7Jñ )r-   c                óà  <€ S	VR &   \        V 4      pVS9   d
   SV,          # S
'       dI   \        V R4      '       d7   V P                  P                  S
4      '       d   V P                  ! RRS/VB pMcSV P
                  8w  dQ   S	'       d(   V P                  '       d   V P                  ! RRS/VB pMT pS'       d   S! VS4      pM\        VS4      pMT pVP                  SSRR7       VSV&   V# )rö   r   r9   T)r9   r÷   Ú_annotations_traversalr(   )	ÚidÚhasattrr   Úintersectionr‡   r   r!   rõ   Ú_copy_internals)rþ   rÐ   Úid_Únewelemrò   rø   r   r9   Ú
cloned_idsrö   rú   r÷   s   &,   €€€€€€€r*   r9   Ú_deep_annotate.<locals>.clone±  së   ø€ ð &:ˆÐ!Ñ"Ü�‹hˆà�*ÔØ˜c•?Ð"÷ Ü˜˜k×*Ò*Ø—‘×+Ñ+¨G×4Ò4à—k’kÑ4¨Ð4°Ñ4‰GØ˜D×-Ñ-Ô-ß#¨×(:×(:Ð(:Ø"ŸkškÑ<°Ð<¸Ñ<‘à"�ß Ù+¨K¸ÓE‘ä(¨°kÓB‘àˆGà×ÑØØ#9Ø#'ð 	 ô 	
ð "ˆ
�3‰Øˆr-   N©r   rï   )r¦   r   rú   rö   r÷   rø   r9   r  s   &ffddd@@r*   Ú_deep_annotater  š  s7   þ€ ð* 24€J÷)ö )ðV ÒÜ”s™E '›NÓ+ˆØ€EØ€Nr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   r¦   r8   r%   rH   r'   r(   )r)   s   "r*   r+   r+   ã  s$   € ÷ ñ ØðØ$;ðàñr-   c                ó   € R # r/   r(   ©r¦   r%   s   &&r*   Ú_deep_deannotater  â  s   € ñ r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   r¦   rï   r%   rH   r'   r(   )r)   s   "r*   r+   r+   é  s$   € ÷ ñ ØðØ1ðàñr-   c                ó   € R # r/   r(   r  s   &&r*   r  r  è  s   € ñ r-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   r¦   zOptional[_SA]r%   rH   r'   r(   )r)   s   "r*   r+   r+   î  s$   € ÷ ñ ØðØ$;ðàñr-   c                ó^   aaa€ / oR VVV3R lloV e   \        \        S! V 4      4      p RoV # )z2Deep copy the given element, removing annotations.c               ó$   € V ^8„  d   QhRRRRRR/# rý   r(   )r)   s   "r*   r+   Ú&_deep_deannotate.<locals>.__annotate__õ  s#   € ÷ ñ Ð'ð ¨sð Ð7Jñ r-   c                óª   <€ S'       d   \        V 4      pMT pVS9  d.   V P                  SR R7      pVP                  SR R7       VSV&   V# SV,          # )T)r%   r9   )r9   r  )r  r=   r  )rþ   rÐ   rW   r  r9   Úclonedr%   s   &,  €€€r*   r9   Ú_deep_deannotate.<locals>.cloneõ  s\   ø€ çÜ�T“(‰CàˆCà�fÔØ×&Ñ&¨f¸DÐ&ÓAˆGØ×#Ñ#¨%ÈÐ#ÔMØ!ˆF�3‰KØˆNà˜#•;Ðr-   Nr
  )r¦   r%   r9   r  s   &f@@r*   r  r  î  s6   ú€ ð
 .0€F÷ò ð ÒÜ”s™E '›NÓ+ˆØ€EØ€Nr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   r¦   rï   r   r&   r'   r(   )r)   s   "r*   r+   r+   
  s!   € ÷ 
ñ 
˜sð 
°ð 
ÀSñ 
r-   c                óL   € V P                  V4      p V P                  RR7       V # )zùAnnotate the given ClauseElement and copy its internals so that
internal objects refer to the new annotated object.

Basically used to apply a "don't traverse" annotation to a
selectable, without digging throughout the whole
structure wasting time.
T)r  )r4   r  )r¦   r   s   &&r*   Ú_shallow_annotater  
  s*   € ð ×Ñ Ó,€GØ×Ñ°4ÐÔ8Ø€Nr-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   r­   ú!Type[SupportsWrappingAnnotations]Úbase_clsúType[Annotated]r'   r(   )r)   s   "r*   r+   r+     s$   € ÷ ,ñ ,Ø	*ð,Ø6Eð,àñ,r-   c                ó’  € \        V \        4      '       d   V # V \        9   d   \        V ,          # V P                   F  pV\        9   g   K  \        V,          p M	  \	        \
        \        ,          \        RV P                  ,          W3/ 4      4      ;\        V &   pV\        4       RV P                  ,          &   RV P                  9   d4   \        V P                  4      R\        P                  3.,           Vn        MTV P                  P                  RR4      '       d3   \        V P                  4      R\        P                  3.,           Vn        V P                  P                  RR4      '       d	   RVn        M)RV P                  9   d   V P                  R,          Vn        \        V \         P"                  4      Vn        V# )zSGenerates a new class that subclasses Annotated and proxies a given
element type.

zAnnotated%sÚ_traverse_internalsr   Úinherit_cacheFT)Ú
issubclassrv   r©   Ú__mro__r   r   Útyper`   Úglobalsr’   Úlistr!  r   r£   Úgetr"  r   ÚColumnOperatorsrå   )r­   r  Úsuper_Úanno_clss   &&  r*   r¬   r¬     su  € ô �#”y×!Ò!Øˆ
Ø	Ô!Ô	!Ü  Õ%Ð%à—+”+ˆð Ô&Ö&Ü(¨Õ0ˆHÙñ ô )-ÜŒY�Üˆ]˜SŸ\™\Õ)¨H¨?¸BÓ?ó)ð Ô�cÑ˜Xð /7„GƒIˆm˜cŸl™lÕ*Ñ+à §¡Ô,Ü'+¨C×,CÑ,CÓ'DØÔ.×AÑAÐBðH
õ (
ˆÕ$ð 
�‰×	Ñ	˜/¨5×	1Ò	1Ü'+¨C×,CÑ,CÓ'DØÔ.×AÑAÐBðH
õ (
ˆÔ$ð ‡|�|×Ñ˜¨×/Ò/Ø!%ˆÕØ	˜CŸL™LÔ	(Ø!$§¡¨oÕ!>ˆÔä$.¨s´I×4MÑ4MÓ$N€HÔ!à€Or-   c               ó$   € V ^8„  d   QhRRRRRR/# )r$   Útarget_hierarchyr  r  r  r'   ÚNoner(   )r)   s   "r*   r+   r+   F  s&   € ÷ ,ñ ,Ø7ð,àð,ð 
ñ,r-   c                óV   € \         P                  ! V 4       F  p\        W!4       K  	  R # r/   )r   Úwalk_subclassesr¬   )r-  r  r­   s   && r*   Ú_prepare_annotationsr1  F  s"   € ô ×#Ò#Ð$4Ö5ˆÜ˜SÖ+ó 6r-   r/   )2Ú__conditional_annotations__rì   Ú
__future__r   r¢   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Ú r   Ú	cache_keyr   Úvisitorsr   r   r   r   Úutil.typingr   r   Úbaser   r   Ústrr&   Ú
EMPTY_DICTr   re   r   ri   r‹   rv   r©   rï   rõ   r  r  r  r¬   r1  )r2  s   @r*   Ú<module>r;     sF  øðôõ #ã Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý å Ý "Ý Ý +Ý 'Ý Ý !Ý çÝ&Ý0à˜#˜s˜(Õ#€à26·/±/Ð Ð/Ó Aô:
Ð/ô :
ôz7Ð"5ô 7ôtHÐ:ô HôVH3Ð#ô H3ðb ð ÐKó ñ ˆeÐ0Ô1€õ	&ñEð
 "'ðEð $)ðEð 	÷Eð EðP 
öó 
ðð
 
öó 
ð÷
õ8
õ,÷^,r-   