Ë
    ðmxi€ƒ  ã                  ót  — d dl mZ d dlmZ d dlmZ d dlZd dlmZ d dl	Z	d dl
Z
d dl
mZ d dl
mZ d dl
mZ d dl
mZ d d	l
mZ d d
l
mZ d dl
mZ d dl
mZ d dl
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl m!Z!  ejD                  d«      Z#dZ$dZ%d1d„Z&d2d„Z' G d„ d e«      Z( G d!„ d"e(«      Z)d#„ Z* G d$„ d%e«      Z+ G d&„ d'e«      Z, e,«       Z-d(„ Z. G d)„ d*e«      Z/ e/«       Z0 ejb                  d+«      d,„ «       Z2 G d-„ d.eejf                  «      Z4 G d/„ d0e4«      Z5y)3é    )Úannotations)ÚdequeN)Úzip_longest)ÚAny)ÚCallable)ÚDeque)ÚDict)ÚIterable)ÚOptional)ÚSet)ÚTuple)ÚTypeé   )Ú	operators)ÚHasCacheKey)Ú_TraverseInternalsType©Úanon_map)ÚExternallyTraversible)ÚHasTraversalDispatch)ÚHasTraverseInternalsé   )Úutil)Úlanghelpers)ÚSelfÚskip_traverseFTc                óx   — |j                  dd«      rt        «       }n
t        «       } |j                  | |fi |¤ŽS )NÚuse_proxiesF)ÚgetÚColIdentityComparatorStrategyÚTraversalComparatorStrategyÚcompare)Úobj1Úobj2ÚkwÚstrategys       úP/home/htdocs/ttos/venv/lib/python3.12/site-packages/sqlalchemy/sql/traversals.pyr"   r"   ,   s:   € à	‡v�vˆm˜UÔ#Ü0Ó2‰ä.Ó0ˆàˆ8×Ñ˜D $Ñ-¨"Ñ-Ð-ó    c                ó  — t        j                  | «      D ]n  }t        |d«      sŒt        |d«      sŒ|j                  «        t        j                  ||j                  d«       t        j                  ||j                  d«       Œp y )NÚ_generate_cache_attrsÚ_traverse_internalsÚ#_generated_copy_internals_traversalÚ!_generated_get_children_traversal)r   Úwalk_subclassesÚhasattrr*   Ú_copy_internalsÚgenerate_dispatchr+   Ú_get_children)Útarget_hierarchyÚclss     r'   Ú_preconfigure_traversalsr5   6   s   € Ü×#Ñ#Ð$4Ó5ò ˆÜ�3Ð/Õ0´WØÐ&õ6
ð ×%Ñ%Ô'Ü×-Ñ-ØØ×'Ñ'Ø5ôô
 ×+Ñ+ØØ×'Ñ'Ø3õñr(   c                  óÆ   — e Zd ZdZdZej                  rdd„Z	 	 	 	 dd„Zdd„Z	e
	 	 	 	 	 	 dd„«       Ze
	 	 	 	 	 	 dd„«       Ze
	 	 	 	 	 	 dd„«       Zdd	„Zdd
„Zdd„Zdd„Zy)ÚHasShallowCopyz”attribute-wide operations that are useful for classes that use
    __slots__ and therefore can't operate on their attributes in a dictionary.


    © c                 ó   — y ©Nr8   )ÚselfÚothers     r'   Ú!_generated_shallow_copy_traversalz0HasShallowCopy._generated_shallow_copy_traversalS   ó   � r(   c                 ó   — y r:   r8   )r;   Úds     r'   Ú&_generated_shallow_from_dict_traversalz5HasShallowCopy._generated_shallow_from_dict_traversalU   s   € àr(   c                 ó   — y r:   r8   ©r;   s    r'   Ú$_generated_shallow_to_dict_traversalz3HasShallowCopy._generated_shallow_to_dict_traversalY   r>   r(   c                ór   — dj                  d„ |D «       «      }d|› d|› d�}t        j                  |i |«      S )Nú
c              3  ó2   K  — | ]  \  }}d |› d|› �–— Œ y­w)z
    other.z = self.Nr8   ©Ú.0ÚattrnameÚ_s      r'   ú	<genexpr>z8HasShallowCopy._generate_shallow_copy.<locals>.<genexpr>a   s)   è ø€ ò 
á�˜!ð ˜˜
 (¨8¨*Ô5ñ
ùó   ‚údef z(self, other):
©Újoinr   Ú_exec_code_in_env©r4   Úinternal_dispatchÚmethod_nameÚcodeÚ	meth_texts        r'   Ú_generate_shallow_copyz%HasShallowCopy._generate_shallow_copy[   sK   € ð �y‰yñ 
à0ô
ó 
ˆð ˜;˜-Ð'7¸°v¸RÐ@ˆ	Ü×,Ñ,¨Y¸¸KÓHÐHr(   c                ór   — dj                  d„ |D «       «      }d|› d|› d�}t        j                  |i |«      S )Nz,
c              3  ó2   K  — | ]  \  }}d |› d|› �–— Œ y­w)z    'z': self.Nr8   rH   s      r'   rL   z;HasShallowCopy._generate_shallow_to_dict.<locals>.<genexpr>n   s)   è ø€ ò 
á�˜!ð �H�:˜X h ZÔ0ñ
ùrM   rN   z(self):
    return {z}
rO   rR   s        r'   Ú_generate_shallow_to_dictz(HasShallowCopy._generate_shallow_to_dicth   sK   € ð �z‰zñ 
à0ô
ó 
ˆð ˜;˜-Ð'=¸d¸VÀ4ÐHˆ	Ü×,Ñ,¨Y¸¸KÓHÐHr(   c                ór   — dj                  d„ |D «       «      }d|› d|› d�}t        j                  |i |«      S )NrF   c              3  ó4   K  — | ]  \  }}d |› d|› d�–— Œ y­w)z	    self.z = d['z']Nr8   rH   s      r'   rL   z=HasShallowCopy._generate_shallow_from_dict.<locals>.<genexpr>{   s+   è ø€ ò 
á�˜!ð ˜�z ¨ z°Ô4ñ
ùs   ‚rN   z(self, d):
rO   rR   s        r'   Ú_generate_shallow_from_dictz*HasShallowCopy._generate_shallow_from_dictu   sJ   € ð �y‰yñ 
à0ô
ó 
ˆð ˜;˜- |°D°6¸Ð<ˆ	Ü×,Ñ,¨Y¸¸KÓHÐHr(   c                ó²   — | j                   }	 |j                  d   } || |«       y # t        $ r& | j                  |j                  d«      }||_        Y Œ8w xY w)NrA   )Ú	__class__Ú__dict__ÚKeyErrorr]   r+   rA   )r;   r@   r4   Úshallow_from_dicts       r'   Ú_shallow_from_dictz!HasShallowCopy._shallow_from_dict‚   sj   € Ø�n‰nˆð
	KØ #§¡Ø8ñ!Ðñ 	˜$ Õ"øô ò 	KØ $× @Ñ @Ø×'Ñ'Ø8ó!Ðð
 :KˆCÖ6ð	Kúó   Ž' §,AÁAc                ó®   — | j                   }	 |j                  d   } || «      S # t        $ r& | j                  |j                  d«      }||_        Y Œ6w xY w)NrD   )r_   r`   ra   rZ   r+   rD   )r;   r4   Úshallow_to_dicts      r'   Ú_shallow_to_dictzHasShallowCopy._shallow_to_dict”   si   € Ø�n‰nˆð		GØ!Ÿl™lØ6ñˆOñ ˜tÓ$Ð$øô ò 	GØ"×<Ñ<Ø×'Ñ'Ð)OóˆOð 8GˆCÖ4ð	Gús   Ž% ¥,AÁAc                ó²   — | j                   }	 |j                  d   } || |«       y # t        $ r& | j                  |j                  d«      }||_        Y Œ8w xY w)Nr=   )r_   r`   ra   rW   r+   r=   )r;   r<   r4   Úshallow_copys       r'   Ú_shallow_copy_tozHasShallowCopy._shallow_copy_to¥   sf   € Ø�n‰nˆð	AØŸ<™<Ð(KÑLˆLñ 	�T˜5Õ!øô ò 	AØ×6Ñ6Ø×'Ñ'Ð)LóˆLð 5AˆCÖ1ð	Aúrd   c                ór   — | j                   j                  | j                   «      }| j                  |«       |S )zCreate a shallow copy©r_   Ú__new__rj   )r;   r%   Úcs      r'   Ú_clonezHasShallowCopy._clone³   s-   € à�N‰N×"Ñ" 4§>¡>Ó2ˆØ×Ñ˜aÔ Øˆr(   N)r<   r   ÚreturnÚNone)r@   úDict[str, Any]rp   rq   )rp   rr   )rS   r   rT   Ústrrp   zCallable[[Self, Self], None])rS   r   rT   rs   rp   z Callable[[Self], Dict[str, Any]])rS   r   rT   rs   rp   z&Callable[[Self, Dict[str, Any]], None])r%   r   rp   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚtypingÚTYPE_CHECKINGr=   rA   rD   ÚclassmethodrW   rZ   r]   rc   rg   rj   ro   r8   r(   r'   r7   r7   H   sæ   „ ñð €Ià×ÒãMð	Ø#ð	àó	ó 	Nàð
Ià1ð
Ið ð
Ið 
&ò	
Ió ð
Ið ð
Ià1ð
Ið ð
Ið 
*ò	
Ió ð
Ið ð
Ià1ð
Ið ð
Ið 
0ò	
Ió ð
Ió#ó$%ó""ôr(   r7   c                  ó   — e Zd ZdZdZdd„Zy)ÚGenerativeOnTraversalz˜Supplies Generative behavior but making use of traversals to shallow
    copy.

    .. seealso::

        :class:`sqlalchemy.sql.base.Generative`


    r8   c                ób   — | j                   }|j                  |«      }| j                  |«       |S r:   rl   )r;   r4   Úss      r'   Ú	_generatezGenerativeOnTraversal._generateÇ   s,   € Ø�n‰nˆØ�K‰K˜ÓˆØ×Ñ˜aÔ Øˆr(   N)rp   r   )rt   ru   rv   rw   rx   r€   r8   r(   r'   r}   r}   º   s   „ ñð €Iôr(   r}   c                ó"   — | j                  «       S r:   )ro   )Úelementr%   s     r'   ro   ro   Î   s   € Ø�>‰>ÓÐr(   c                  ó.   — e Zd ZdZd„ Zddœ	 	 	 	 	 dd„Zy)ÚHasCopyInternalsr8   c                ó   — t        «       ‚r:   ©ÚNotImplementedError)r;   r%   s     r'   ro   zHasCopyInternals._cloneÕ   s   € Ü!Ó#Ð#r(   )Ú
omit_attrsc               óÂ   — 	 | j                   }t        j                  | |d«      D ])  \  }}}||v rŒ|€Œ ||| |fi |¤Ž}|€Œt	        | ||«       Œ+ y# t        $ r Y yw xY w)at  Reassign internal elements to be clones of themselves.

        Called during a copy-and-traverse operation on newly
        shallow-copied elements to create a deep copy.

        The given clone function should be used, which may be applying
        additional transformations to the element (i.e. replacement
        traversal, cloned traversal, annotations).

        Nr,   )r+   ÚAttributeErrorr0   Úrun_generated_dispatchÚsetattr)r;   rˆ   r%   Útraverse_internalsrJ   ÚobjÚmethÚresults           r'   r0   z HasCopyInternals._copy_internalsØ   sŠ   € ð	Ø!%×!9Ñ!9Ðô
 $3×#IÑ#IØÐ$Ð&Kó$
ò 		4ÑˆH�c˜4ð ˜:Ñ%Øà‰Ù˜h¨¨cÑ8°RÑ8�ØÑ%Ü˜D (¨FÕ3ñ		4øô	 ò 	áð	ús   ‚A Á	AÁAN)rˆ   zIterable[str]r%   r   rp   rq   )rt   ru   rv   rx   ro   r0   r8   r(   r'   r„   r„   Ò   s.   „ Ø€Iò$ð .0ñ4Ø*ð4Ø7:ð4à	ô4r(   r„   c                  óŽ   — e Zd ZdZefd„Zefd„Zefd„Zefd„Zefd„Z	efd„Z
efd„Zefd	„Zd
„ Zefd„Zefd„Zefd„Zefd„Zy)Ú_CopyInternalsTraversalzmGenerate a _copy_internals internal traversal dispatch for classes
    with a _traverse_internals collection.c                ó   —  ||fi |¤ŽS r:   r8   ©r;   rJ   Úparentr‚   Úcloner%   s         r'   Úvisit_clauseelementz+_CopyInternalsTraversal.visit_clauseelementü   s   € ñ �WÑ# Ñ#Ð#r(   c                ó:   — |D �cg c]  } ||fi |¤Ž‘Œ c}S c c}w r:   r8   ©r;   rJ   r•   r‚   r–   r%   Úclauses          r'   Úvisit_clauseelement_listz0_CopyInternalsTraversal.visit_clauseelement_list  ó"   € ð 3:Ö:¨‘�fÑ# Ó#Ò:Ð:ùÒ:ó   …c           
     óL   — t        |D �cg c]  } ||fi |¤Ž‘Œ c}«      S c c}w r:   ©Útupler™   s          r'   Úvisit_clauseelement_tuplez1_CopyInternalsTraversal.visit_clauseelement_tuple  ó'   € ô ¸Ö@¨f‘e˜FÑ) bÓ)Ò@ÓAÐAùÒ@ó   Š!c           
     óL   — t        |D �cg c]  } ||fi |¤Ž‘Œ c}«      S c c}w r:   rŸ   r™   s          r'   Úvisit_executable_optionsz0_CopyInternalsTraversal.visit_executable_options  r¢   r£   c                ó:   — |D �ch c]  } ||fi |¤Ž’Œ c}S c c}w r:   r8   r™   s          r'   Ú!visit_clauseelement_unordered_setz9_CopyInternalsTraversal.visit_clauseelement_unordered_set  rœ   r�   c                óV   ‡‡— |D �cg c]  }t        ˆˆfd„|D «       «      ‘Œ c}S c c}w )Nc              3  ó0   •K  — | ]  } ‰|fi ‰¤Ž–— Œ y ­wr:   r8   )rI   Útup_elemr–   r%   s     €€r'   rL   zE_CopyInternalsTraversal.visit_clauseelement_tuples.<locals>.<genexpr>  s   øè ø€ Ò=¨H‘%˜Ñ' BÕ'Ñ=ùs   ƒrŸ   )r;   rJ   r•   r‚   r–   r%   Úelems       `` r'   Úvisit_clauseelement_tuplesz2_CopyInternalsTraversal.visit_clauseelement_tuples  s0   ù€ ð
  ö
àô Ô=¸Ô=Õ=ò
ð 	
ùò 
s   ‡&c           
     ód   — |j                  «       D ��ci c]  \  }}| ||fi |¤Ž“Œ c}}S c c}}w r:   )Úitems©r;   rJ   r•   r‚   r–   r%   ÚkeyÚvalues           r'   Úvisit_string_clauseelement_dictz7_CopyInternalsTraversal.visit_string_clauseelement_dict  s2   € ð ;B¿-¹-»/×J©J¨C°�‘U˜5Ñ' BÑ'Ñ'ÓJÐJùÓJs   ”,c                ó0   ‡‡— t        ˆˆfd„|D «       «      S )Nc              3  óv   •K  — | ]0  \  }}}}|�	 ‰|fi ‰¤Žnd |�	 ‰|fi ‰¤Žnd |�	 ‰|fi ‰¤Žnd |f–— Œ2 y ­wr:   r8   )rI   ÚtargetÚonclauseÚfrom_Úflagsr–   r%   s        €€r'   rL   zA_CopyInternalsTraversal.visit_setup_join_tuple.<locals>.<genexpr>%  sd   øè ø€ ò 
ñ 1�˜ 5¨%ð (.Ð'9‘�fÑ# Ò#¸tØ)1Ð)=‘�hÑ% "Ò%À4Ø&+Ð&7‘�eÑ"˜rÒ"¸TØô	ñ
ùs   ƒ69rŸ   r”   s       ``r'   Úvisit_setup_join_tuplez._CopyInternalsTraversal.visit_setup_join_tuple"  s!   ù€ ô ô 
ð 5<ô
ó 
ð 	
r(   c                ó,   —  | j                   |||fi |¤ŽS r:   ©r¡   )r;   rJ   r•   r‚   r%   s        r'   Úvisit_memoized_select_entitiesz6_CopyInternalsTraversal.visit_memoized_select_entities/  s   € Ø-ˆt×-Ñ-¨h¸ÀÑNÈ2ÑNÐNr(   c           
     ót   — |D ��cg c]%  \  }}t        |d«      r	 ||fi |¤Žn| ||fi |¤Žf‘Œ' c}}S c c}}w ©NÚ__clause_element__©r/   r¯   s           r'   Úvisit_dml_ordered_valuesz0_CopyInternalsTraversal.visit_dml_ordered_values2  sV   € ð &÷

ñ ��Uô ˜sÐ$8Ô9ñ ˜#Ñ$ Ò$àá�eÑ"˜rÑ"òó

ð 
	
ùó 

s   †*4c           
     óŽ   — |j                  «       D ��ci c]$  \  }}t        |d«      r	 ||fi |¤Žn| ||fi |¤Ž“Œ& c}}S c c}}w r¾   )r®   r/   r¯   s           r'   Úvisit_dml_valuesz(_CopyInternalsTraversal.visit_dml_valuesB  sX   € ð
 &Ÿm™m›o÷	
ñ ��Uô %,¨CÐ1EÔ$F‘�cÑ ˜RÒ ÈCÙ�UÑ!˜bÑ!ñ"ó
ð 	
ùó 
s   ”)Ac           
     ót   ‡‡— ˆˆfd„}|D ��cg c]  }|D �cg c]
  } ||«      ‘Œ c}‘Œ c}}S c c}w c c}}w )Nc           
     óP  •— t        | t        t        f«      r%| D �cg c]  }t        |d«      r	 ‰|fi ‰¤Žn|‘Œ c}S t        | t        «      rN| j                  «       D ��ci c]2  \  }}t        |d«      r	 ‰|fi ‰¤Žn|t        |d«      r	 ‰|fi ‰¤Žn|“Œ4 c}}S J ‚c c}w c c}}w r¾   )Ú
isinstanceÚlistr    r/   Údictr®   )r«   r±   r°   r–   r%   s      €€r'   Úcopyz<_CopyInternalsTraversal.visit_dml_multi_values.<locals>.copyO  sÓ   ø€ Ü˜$¤¤u Ô.ð "&öð ô # 5Ð*>Ô?ñ ˜eÑ* rÒ*à"ñ#òð ô ˜D¤$Ô'ð '+§j¡j£l÷ñ #˜˜Uô # 3Ð(<Ô=ñ ˜cÑ( RÒ(à ô # 5Ð*>Ô?ñ ˜eÑ* rÒ*à"ñ#óð ð �uùò/ùós   œBÁ 7B"r8   )	r;   rJ   r•   r‚   r–   r%   rÉ   ÚsequenceÚsub_elements	       ``   r'   Úvisit_dml_multi_valuesz._CopyInternalsTraversal.visit_dml_multi_valuesJ  s=   ù€ õ
	ð: $÷
àð 3;Ö; ;‰T�+ÕÔ;ó
ð 	
ùÚ;ùó
s   Ž	4—/¦4¯4c                ó   — |S r:   r8   r”   s         r'   Úvisit_propagate_attrsz-_CopyInternalsTraversal.visit_propagate_attrso  s	   € ð ˆr(   N)rt   ru   rv   rw   ro   r—   r›   r¡   r¥   r§   r¬   r²   r¹   r¼   rÁ   rÃ   rÌ   rÎ   r8   r(   r'   r’   r’   ø   s‹   „ ñ.ð 06ó$ð 06ó;ð 06óBð 06óBð 06ó;ð 06ó
ð 06óKð 06ó
òOð 06ó
ð  AGó 
ð 06ó#
ðL 06ôr(   r’   c                óŒ   — t        | d«      r7t        | dd«      s*| j                  «       } t        | d«      rt        | dd«      sŒ*| S )Nr¿   Úis_clause_elementF)r/   Úgetattrr¿   )r‚   s    r'   Ú_flatten_clauseelementrÒ   x  sO   € Ü
�'Ð/Ô
0¼ØÐ$ eô:ð ×,Ñ,Ó.ˆô �'Ð/Ô
0¼ØÐ$ eõ:ð
 €Nr(   c                  ój   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)Ú_GetChildrenTraversalzqGenerate a _children_traversal internal traversal dispatch for classes
    with a _traverse_internals collection.c                 ó   — y©Nr8   r8   ©r;   r‚   r%   s      r'   Úvisit_has_cache_keyz)_GetChildrenTraversal.visit_has_cache_key…  s   € ð r(   c                ó   — |fS r:   r8   r×   s      r'   r—   z)_GetChildrenTraversal.visit_clauseelement‹  s
   € ØˆzÐr(   c                ó   — |S r:   r8   r×   s      r'   r›   z._GetChildrenTraversal.visit_clauseelement_listŽ  ó   € Øˆr(   c                ó   — |S r:   r8   r×   s      r'   r¡   z/_GetChildrenTraversal.visit_clauseelement_tuple‘  rÛ   r(   c                ó@   — t         j                  j                  |«      S r:   )Ú	itertoolsÚchainÚfrom_iterabler×   s      r'   r¬   z0_GetChildrenTraversal.visit_clauseelement_tuples”  s   € Ü�‰×,Ñ,¨WÓ5Ð5r(   c                 ó   — yrÖ   r8   r×   s      r'   Ú,visit_fromclause_canonical_column_collectionzB_GetChildrenTraversal.visit_fromclause_canonical_column_collection—  ó   € Ør(   c                ó"   — |j                  «       S r:   )Úvaluesr×   s      r'   r²   z5_GetChildrenTraversal.visit_string_clauseelement_dictš  s   € Ø�~‰~ÓÐr(   c                ó   — |S r:   r8   r×   s      r'   Úvisit_fromclause_ordered_setz2_GetChildrenTraversal.visit_fromclause_ordered_set�  rÛ   r(   c                ó   — |S r:   r8   r×   s      r'   r§   z7_GetChildrenTraversal.visit_clauseelement_unordered_set   rÛ   r(   c              +  ó¬   K  — |D ]K  \  }}}}|�|–— t        |t        «      st        |«      –— |€Œ.t        |t        «      rŒ?t        |«      –— ŒM y ­wr:   )rÆ   rs   rÒ   )r;   r‚   r%   rµ   r¶   r·   r¸   s          r'   r¹   z,_GetChildrenTraversal.visit_setup_join_tuple£  sX   è ø€ Ø.5ò 	7Ñ*ˆF�H˜e UØÐ Ø’ä˜f¤cÔ*Ü,¨VÓ4Ò4àÑ#¬J°xÄÕ,EÜ,¨XÓ6Ó6ñ	7ùs   ‚0A³AÁAc                ó(   —  | j                   |fi |¤ŽS r:   r»   r×   s      r'   r¼   z4_GetChildrenTraversal.visit_memoized_select_entities®  s   € Ø-ˆt×-Ñ-¨gÑ<¸Ñ<Ð<r(   c              +  óH   K  — |D ]  \  }}t        |d«      r|–— |–— Œ y ­wr¾   rÀ   )r;   r‚   r%   ÚkÚvs        r'   rÁ   z._GetChildrenTraversal.visit_dml_ordered_values±  s.   è ø€ Øò 	‰DˆAˆqÜ�qÐ.Ô/Ø’Ø‹Gñ	ùs   ‚ "c              +  óÂ   K  — |D �ch c]  }t        |d«      sŒ|’Œ }}|j                  |«      }t        |«      D ]	  }||   –— Œ |D ]  }|–— ||   –— Œ y c c}w ­wr¾   )r/   Úsymmetric_differenceÚsorted)r;   r‚   r%   rì   Úexpr_valuesÚ
str_valuess         r'   rÃ   z&_GetChildrenTraversal.visit_dml_values·  su   è ø€ Ø")ÖN˜Q¬W°QÐ8LÕ-M’qÐNˆÐNØ ×5Ñ5°gÓ>ˆ
ä˜
Ó#ò 	ˆAØ˜!‘*Óð	àò 	ˆAØŠGØ˜!‘*Óñ	ùò Oùs   ‚A‡A™A�AAc                 ó   — yrÖ   r8   r×   s      r'   rÌ   z,_GetChildrenTraversal.visit_dml_multi_valuesÁ  rã   r(   c                 ó   — yrÖ   r8   r×   s      r'   rÎ   z+_GetChildrenTraversal.visit_propagate_attrsÄ  rã   r(   N)rt   ru   rv   rw   rØ   r—   r›   r¡   r¬   râ   r²   rç   r§   r¹   r¼   rÁ   rÃ   rÌ   rÎ   r8   r(   r'   rÔ   rÔ   �  sR   „ ñ.òòòòò6òò òòò	7ò=òòòór(   rÔ   zsqlalchemy.sql.elementsc                ó„   — t        |t        j                  j                  j                  «      r|j                  |«      }|S r:   )rÆ   r   Ú	preloadedÚsql_elementsÚ_anonymous_labelÚ	apply_map)r‚   Únamer   r%   s       r'   Ú_resolve_name_for_comparerû   Ë  s/   € ä�$œŸ™×3Ñ3×DÑDÔEØ�~‰~˜hÓ'ˆà€Kr(   c                  ó6  — e Zd ZdZd„ Zd„ Z	 	 	 	 	 	 	 	 d1d„Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d*„ Z,d+„ Z-d,„ Z.d-„ Z/d.„ Z0d/„ Z1y0)2r!   )ÚstackÚcacher   c                ó@   — t        «       | _        t        «       | _        y r:   )r   rý   Úsetrþ   rC   s    r'   Ú__init__z$TraversalComparatorStrategy.__init__Ö  s   € ô ‹Gð 	Œ
ô “Uˆ�
r(   c                ó*   — t        «       t        «       fS r:   r   rC   s    r'   Ú_memoized_attr_anon_mapz3TraversalComparatorStrategy._memoized_attr_anon_mapß  s   € Ü“
œH›JÐ'Ð'r(   c                ób  — | j                   }| j                  }|j                  dd«      }|j                  ||f«       |�ro|j	                  «       \  }}||u rŒ|�|€y||f|v rŒ'|j                  ||f«       |j                  }	|	|j                  k7  ryt        | d|	z  d «      }
|
r |
||fi |¤Ž}|t        u ry|t        u rŒ„d}t        |j                  |j                  d¬«      D ]Ã  \  \  }}\  }}|s|dk(  s|dk(  rŒ||k7  s||ur y||v rŒ)|€J ‚|€J ‚|€J ‚| j                  |«      }|€$J | j                  › d| j                  |   › d	�«       ‚ t        j                   |«      |«      } t        j                   |«      |«      }|€|� yŒ©|€ y ||||||fi |¤Ž}|t        u sŒÃ y |r�Œoy
)NÚcompare_annotationsFz
compare_%sr8   ©NN©Ú	fillvalueÚ_annotationsz has no dispatch for 'ú'T)rý   rþ   r   ÚappendÚpopleftÚaddÚ__visit_name__rÑ   ÚCOMPARE_FAILEDÚSKIP_TRAVERSEr   r+   Údispatchr_   Ú_dispatch_lookupÚoperatorÚ
attrgetter)r;   r#   r$   r%   rý   rþ   r  ÚleftÚrightÚ
visit_namer�   Úattributes_comparedÚleft_attrnameÚleft_visit_symÚright_attrnameÚright_visit_symr  Ú
left_childÚright_childÚ
comparisons                       r'   r"   z#TraversalComparatorStrategy.compareâ  sF  € ð —
‘
ˆØ—
‘
ˆà Ÿf™fÐ%:¸EÓBÐà�‰�d˜D�\Ô"âØŸ-™-›/‰KˆD�%à�u‰}ØØ�  àØ˜� %Ñ'ØØ�I‰I�t˜U�mÔ$à×,Ñ,ˆJØ˜U×1Ñ1Ò1Øä˜4 °
Ñ!:¸DÓAˆDáÙ&*¨4°Ñ&=¸"Ñ&=Ð#Ø&¬.Ñ8Ø Ø(¬MÑ9Øð ')Ð#ô
 Ø×(Ñ(Ø×)Ñ)Ø&ôò-!ñ Ù/� Ù1� ñ +Ø" nÒ4Ø&¨.Ò8àð " ^Ò3Ø%¨_Ñ<á Ø"Ð&9Ñ9Øà%Ð1Ð1Ð1Ø$Ð0Ð0Ð0Ø%Ð1Ð1Ð1àŸ=™=¨Ó8�ØÐ+ð Ø—~‘~Ð&ð 'Ø×-Ñ-¨nÑ=Ð>¸aðAóÐ+ð @œX×0Ñ0°Ó?ÀÓE�
ØAœh×1Ñ1°.ÓAÀ%ÓH�ØÐ%Ø"Ð.Ù$à Ø Ð(Ù á%Ø! 4¨°U¸KñØKMñ�
ð ¤Ò/Ù ð[-!óA ð^ r(   c                óJ   — | j                  «       } |j                  ||fi |¤ŽS r:   )r_   r"   )r;   r#   r$   r%   Ú
comparators        r'   Úcompare_innerz)TraversalComparatorStrategy.compare_inner@  s(   € Ø—^‘^Ó%ˆ
Ø!ˆz×!Ñ! $¨Ñ3°Ñ3Ð3r(   c                óŽ   — |j                  | j                  d   g «      |j                  | j                  d   g «      k7  rt        S y ©Nr   r   )Ú_gen_cache_keyr   r  ©r;   rJ   Úleft_parentr  Úright_parentr  r%   s          r'   rØ   z/TraversalComparatorStrategy.visit_has_cache_keyD  sJ   € ð ×Ñ˜tŸ}™}¨QÑ/°Ó4¸×8LÑ8LØ�M‰M˜!Ñ˜bó9
ò 
ô "Ð!ð
r(   c                óf   — | j                  |j                  dd «      |j                  dd «      «      S )NÚplugin_subject)r"  r   r&  s          r'   rÎ   z1TraversalComparatorStrategy.visit_propagate_attrsL  s4   € ð ×!Ñ!Ø�H‰HÐ% tÓ,¨e¯i©iÐ8HÈ$Ó.Oó
ð 	
r(   c                óì   — t        ||d ¬«      D ]c  \  }}|€|�t        c S Œ|€t        c S |j                  | j                  d   g «      |j                  | j                  d   g «      k7  sŒ]t        c S  y ©Nr  r   r   )r   r  r%  r   ©	r;   rJ   r'  r  r(  r  r%   ÚlÚrs	            r'   Úvisit_has_cache_key_listz4TraversalComparatorStrategy.visit_has_cache_key_listS  s   € ô    e°tÔ<ò 	&‰DˆAˆqØˆyØ�=Ü)Ò)àØ�Ü%Ò%à×Ñ §¡¨aÑ 0°"Ó5¸×9IÑ9IØ—‘˜aÑ  "ó:ó ô &Ò%ñ	&r(   c                ó$  — t        ||d ¬«      D ]  \  }}|€|�t        c S Œ|€t        c S |j                  r|j                  | j                  d   g «      n||j                  r|j                  | j                  d   g «      n|k7  sŒyt        c S  y r,  )r   r  Ú_is_has_cache_keyr%  r   r-  s	            r'   r¥   z4TraversalComparatorStrategy.visit_executable_optionsd  s�   € ô    e°tÔ<ò 	&‰DˆAˆqØˆyØ�=Ü)Ò)àØ�Ü%Ò%ð ×&Ò&ð × Ñ  §¡¨qÑ!1°2Ô6àð ×&Ò&ð × Ñ  §¡¨qÑ!1°2Ô6àóô &Ò%ñ%	&r(   c                ó>   — | j                   j                  ||f«       y r:   )rý   r  r&  s          r'   r—   z/TraversalComparatorStrategy.visit_clauseelement{  s   € ð 	�
‰
×Ñ˜4 ˜-Õ(r(   c                ój   — t        ||d ¬«      D ]"  \  }}| j                  j                  ||f«       Œ$ y ©Nr  ©r   rý   r  )	r;   rJ   r'  r  r(  r  r%   ÚlcolÚrcols	            r'   râ   zHTraversalComparatorStrategy.visit_fromclause_canonical_column_collection€  s6   € ô & d¨E¸TÔBò 	,‰JˆD�$Ø�J‰J×Ñ˜t T˜lÕ+ñ	,r(   c                 ó   — y r:   r8   r&  s          r'   Ú*visit_fromclause_derived_column_collectionzFTraversalComparatorStrategy.visit_fromclause_derived_column_collection†  s   € ð 	r(   c                ó´   — t        t        |«      t        |«      d ¬«      D ]5  \  }}||k7  rt        c S | j                  j	                  ||   ||   f«       Œ7 y r5  )r   rð   r  rý   r  )	r;   rJ   r'  r  r(  r  r%   ÚlstrÚrstrs	            r'   r²   z;TraversalComparatorStrategy.visit_string_clauseelement_dict‹  sY   € ô &Ü�4‹Lœ& ›-°4ô
ò 	9‰JˆD�$ð �tŠ|Ü%Ò%Ø�J‰J×Ñ˜t D™z¨5°©;Ð7Õ8ñ	9r(   c                ó®   — t        ||d ¬«      D ]D  \  }}|�|€t        c S t        ||d ¬«      D ]"  \  }	}
| j                  j                  |	|
f«       Œ$ ŒF y r5  ©r   r  rý   r  )r;   rJ   r'  r  r(  r  r%   ÚltupÚrtupr.  r/  s              r'   r¬   z6TraversalComparatorStrategy.visit_clauseelement_tuples•  sa   € ô & d¨E¸TÔBò 	*‰JˆD�$Øˆ|˜t˜|Ü%Ò%ä# D¨$¸$Ô?ò *‘��1Ø—
‘
×!Ñ! 1 a &Õ)ñ*ñ		*r(   c                ój   — t        ||d ¬«      D ]"  \  }}| j                  j                  ||f«       Œ$ y r5  r6  r-  s	            r'   r›   z4TraversalComparatorStrategy.visit_clauseelement_listŸ  ó6   € ô    e°tÔ<ò 	&‰DˆAˆqØ�J‰J×Ñ˜q !˜fÕ%ñ	&r(   c                ój   — t        ||d ¬«      D ]"  \  }}| j                  j                  ||f«       Œ$ y r5  r6  r-  s	            r'   r¡   z5TraversalComparatorStrategy.visit_clauseelement_tuple¥  rC  r(   c                ó  — |€|d u S t        «       }|D ]H  }t        |«      j                  |«      D ])  } | j                  ||fi |¤ŽsŒ|j                  |«        ŒH ŒJ t	        |«      t	        |«      cxk(  xr t	        |«      k(  S c S r:   )r   Ú
differencer"  r  Úlen)r;   Úseq1Úseq2r%   Ú	completedrš   Úother_clauses          r'   Ú_compare_unordered_sequencesz8TraversalComparatorStrategy._compare_unordered_sequences«  s�   € Øˆ<Ø˜4�<Ðä!$£ˆ	Øò 	ˆFÜ # D£	× 4Ñ 4°YÓ ?ò �Ø%�4×%Ñ% f¨lÑA¸bÓAØ—M‘M ,Ô/Ùñð	ô
 �9‹~¤ T£Ö7¬c°$«iÑ7Ð7Ñ7Ð7r(   c                ó*   —  | j                   ||fi |¤ŽS r:   )rL  r&  s          r'   r§   z=TraversalComparatorStrategy.visit_clauseelement_unordered_set·  s   € ð 1ˆt×0Ñ0°°uÑCÀÑCÐCr(   c                ój   — t        ||d ¬«      D ]"  \  }}| j                  j                  ||f«       Œ$ y r5  r6  r-  s	            r'   rç   z8TraversalComparatorStrategy.visit_fromclause_ordered_set¼  rC  r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_stringz(TraversalComparatorStrategy.visit_stringÂ  ó   € ð �u‰}Ðr(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_string_listz-TraversalComparatorStrategy.visit_string_listÇ  rQ  r(   c                óÆ  — t        t        |j                  «       «      t        |j                  «       «      d¬«      D ]¢  \  }}||k7  rt        c S ||   ||   }
}	t	        |t
        «      }t	        |t
        «      }|rJ|rH|	j                  | j                  d   g «      |
j                  | j                  d   g «      k7  sŒ�t        c S ||k7  rt        c S |	|
k7  sŒœt        c S  y )Nr  r  r   r   )r   rð   Úkeysr  rÆ   r   r%  r   )r;   rJ   r'  r  r(  r  r%   ÚlkÚrkÚlvÚrvÚlhcÚrhcs                r'   Úvisit_string_multi_dictz3TraversalComparatorStrategy.visit_string_multi_dictÌ  sÒ   € ô "Ü�4—9‘9“;Ó¤¨¯
©
«Ó!5Àô
ò 	&‰FˆB�ð �RŠxÜ%Ò%à˜"‘X˜u R™y�ˆBä˜T¤;Ó/ˆCÜ˜U¤KÓ0ˆCÙ‘sØ×$Ñ$Ø—M‘M !Ñ$ bóà×&Ñ& t§}¡}°QÑ'7¸Ó<ó=ô *Ò)Ø˜’Ü%Ò%Ø�r“Ü%Ò%ñ%	&r(   c                óö   — t        |t        «      }t        |t        «      }|rH|rF|j                  | j                  d   g «      |j                  | j                  d   g «      k7  rt        S y ||k7  rt        S ||k(  S r$  )rÆ   r   r%  r   r  )	r;   rJ   r'  r  r(  r  r%   rZ  r[  s	            r'   Úvisit_multiz'TraversalComparatorStrategy.visit_multiã  s�   € ô ˜œ{Ó+ˆÜ˜¤Ó,ˆÙ‘3Ø×"Ñ"Ø—‘˜aÑ  "óà×%Ñ% d§m¡m°AÑ&6¸Ó;ò<ô &Ð%ð<ð �CŠZÜ!Ð!à˜5‘=Ð r(   c                óp   — t        ||| j                  d   fi |¤Žt        ||| j                  d   fi |¤Žk(  S r$  )rû   r   r&  s          r'   Úvisit_anon_namez+TraversalComparatorStrategy.visit_anon_nameò  sN   € ô )Ø˜˜tŸ}™}¨QÑ/ñ
Ø35ñ
ä&Ø˜% §¡¨qÑ!1ñ
Ø57ñ
ñ
ð 	
r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_booleanz)TraversalComparatorStrategy.visit_booleanû  rQ  r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_operatorz*TraversalComparatorStrategy.visit_operator   rQ  r(   c                ó$   — |j                  |«      S r:   )Ú_compare_type_affinityr&  s          r'   Ú
visit_typez&TraversalComparatorStrategy.visit_type  s   € ð ×*Ñ*¨5Ó1Ð1r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_plain_dictz,TraversalComparatorStrategy.visit_plain_dict
  rQ  r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_dialect_optionsz1TraversalComparatorStrategy.visit_dialect_options  rQ  r(   c                óF   — |r|r|j                   |j                   k(  S ||k(  S r:   )Ú_annotations_cache_keyr&  s          r'   Úvisit_annotations_keyz1TraversalComparatorStrategy.visit_annotations_key  s1   € ñ ‘Eà×2Ñ2Ø×6Ñ6ñ7ðð
 ˜5‘=Ð r(   c                óL   — t        d„ |D «       «      t        d„ |D «       «      k(  S )Nc              3  ó>   K  — | ]  \  }}|j                   |f–— Œ y ­wr:   ©Ú__code__©rI   ÚfnÚc_keys      r'   rL   zITraversalComparatorStrategy.visit_with_context_options.<locals>.<genexpr>"  s   è ø€ Ò@©i¨b°%�b—k‘k 5Ô)Ñ@ùó   ‚c              3  ó>   K  — | ]  \  }}|j                   |f–— Œ y ­wr:   rq  rs  s      r'   rL   zITraversalComparatorStrategy.visit_with_context_options.<locals>.<genexpr>"  s$   è ø€ ò J
Ù%. R¨ˆR�[‰[˜%Ô ñJ
ùrv  rŸ   r&  s          r'   Úvisit_with_context_optionsz6TraversalComparatorStrategy.visit_with_context_options  s3   € ô Ñ@¸4Ô@Ó@ÄEñ J
Ø27ôJ
ó E
ñ 
ð 	
r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_plain_objz+TraversalComparatorStrategy.visit_plain_obj&  rQ  r(   c                óH   — |€|�t         S |j                  |j                  k(  S r:   )r  rú   r&  s          r'   Úvisit_named_ddl_elementz3TraversalComparatorStrategy.visit_named_ddl_element+  s(   € ð ˆ<ØÐ Ü%Ð%à�y‰y˜EŸJ™JÑ&Ð&r(   c                ó�   — t        ||d¬«      D ]5  \  \  }}\  }	}
||
k7  rt        c S | j                  j                  ||	f«       Œ7 y ©Nr  r  r?  )r;   rJ   r'  r  r(  r  r%   Úl_clauseÚl_strÚr_clauseÚr_strs              r'   Úvisit_prefix_sequencez1TraversalComparatorStrategy.visit_prefix_sequence4  sU   € ô 5@Ø�% <ô5
ò 	8Ñ0ÑˆX�uÑ0 ¨%ð ˜Š~Ü%Ò%à—
‘
×!Ñ! 8¨XÐ"6Õ7ñ	8r(   c                ó  — t        ||d¬«      D ]s  \  \  }}}	}
\  }}}}|
|k7  rt        c S | j                  j                  ||f«       | j                  j                  ||f«       | j                  j                  |	|f«       Œu y )N)NNNNr  r?  )r;   rJ   r'  r  r(  r  r%   Úl_targetÚ
l_onclauseÚl_fromÚl_flagsÚr_targetÚ
r_onclauseÚr_fromÚr_flagss                  r'   r¹   z2TraversalComparatorStrategy.visit_setup_join_tuple?  s‰   € ô ˜˜uÐ0HÔIò	0ñ 
Ù3ˆX�z 6¨7Ù3ˆX�z 6¨7à˜'Ò!Ü%Ò%Ø�J‰J×Ñ˜x¨Ð2Ô3Ø�J‰J×Ñ˜z¨:Ð6Ô7Ø�J‰J×Ñ˜v vÐ.Õ/ñ	0r(   c                ó0   —  | j                   |||||fi |¤ŽS r:   r»   r&  s          r'   r¼   z:TraversalComparatorStrategy.visit_memoized_select_entitiesM  s,   € ð .ˆt×-Ñ-Ø�k 4¨°uñ
Ø@Bñ
ð 	
r(   c                óö   — t        |d„ ¬«      }t        |d„ ¬«      }t        ||d¬«      D ]L  \  \  }	}
\  }}|
|k7  rt        c S ||	|
f   |||f   k7  rt        c S | j                  j	                  |	|f«       ŒN y )Nc                ó*   — | d   j                   | d   fS r$  ©Úfullname©r«   s    r'   ú<lambda>zCTraversalComparatorStrategy.visit_table_hint_list.<locals>.<lambda>W  s   € °4¸±7×3CÑ3CÀTÈ!ÁWÐ2M€ r(   )r°   c                ó*   — | d   j                   | d   fS r$  r�  r’  s    r'   r“  zCTraversalComparatorStrategy.visit_table_hint_list.<locals>.<lambda>Y  s   €  T¨!¡W×%5Ñ%5°t¸A±wÐ$?€ r(   r  r  )rð   r   r  rý   r  )r;   rJ   r'  r  r(  r  r%   Ú	left_keysÚ
right_keysÚltableÚldialectÚrtableÚrdialects                r'   Úvisit_table_hint_listz1TraversalComparatorStrategy.visit_table_hint_listT  s—   € ô ˜4Ñ%MÔNˆ	ÜØÑ?ô
ˆ
ô 7BØ�z¨\ô7
ò 	4Ñ2ÑˆV�XÑ 2 ¨ð ˜8Ò#Ü%Ò%Ø�v˜xÐ(Ñ)¨U°F¸HÐ3EÑ-FÒFÜ%Ò%à—
‘
×!Ñ! 6¨6Ð"2Õ3ñ	4r(   c                ó   — ||k(  S r:   r8   r&  s          r'   Úvisit_statement_hint_listz5TraversalComparatorStrategy.visit_statement_hint_liste  rQ  r(   c                ó   — t        «       ‚r:   r†   r&  s          r'   Úvisit_unknown_structurez3TraversalComparatorStrategy.visit_unknown_structurej  s   € ô "Ó#Ð#r(   c                ót   — t        ||d¬«      D ]'  \  \  }}\  }	}
 | j                  ||	fi |¤ŽrŒ!t        c S  y r~  )r   Ú_compare_dml_values_or_cer  )r;   rJ   r'  r  r(  r  r%   rV  rX  rW  rY  s              r'   rÁ   z4TraversalComparatorStrategy.visit_dml_ordered_valueso  sK   € ô
 #.Ø�% <ô#
ò 	&Ñ‰HˆR�‘h�r˜2ð 2�4×1Ñ1°"°bÑ?¸BÓ?Ü%Ò%ñ		&r(   c                ó¨   — t        |d«      }t        |d«      }||k7  ry|r | j                  ||fi |¤Žsy|s||k7  ry | j                  ||fi |¤Žsyy)Nr¿   FT)r/   r"  )r;   rX  rY  r%   ÚlvceÚrvces         r'   r¡  z5TraversalComparatorStrategy._compare_dml_values_or_cez  sl   € Ü�rÐ/Ó0ˆÜ�rÐ/Ó0ˆØ�4Š<ØÙÐ,˜$×,Ñ,¨R°Ñ:°rÒ:ØÙ˜" š(ØØ#�×#Ñ# B¨Ñ1¨bÒ1Øàr(   c                óø  — |�|�t        |«      t        |«      k7  rt        S t        |t        j                  «      r1t        ||«      D ]!  \  }} | j                  ||fi |¤ŽrŒt        c S  y t        |t        j                  «      rt        S t        |j                  «       |j                  «       «      D ]C  \  \  }	}\  }
} | j                  |	|
fi |¤Žst        c S  | j                  ||fi |¤ŽrŒ=t        c S  y r:   )rG  r  rÆ   Úcollections_abcÚSequenceÚzipr¡  r®   )r;   rJ   r'  r  r(  r  r%   rX  rY  rV  rW  s              r'   rÃ   z,TraversalComparatorStrategy.visit_dml_valuesˆ  sì   € ð ˆ<˜5˜=¬C°«I¼¸U»Ò,CÜ!Ð!ä�dœO×4Ñ4Ô5Ü˜d EÓ*ò *‘��BØ5�t×5Ñ5°b¸"ÑCÀÓCÜ)Ò)ñ*ô ˜œ×7Ñ7Ô8Ü!Ð!ô '*¨$¯*©*«,¸¿¹»Ó&Fò *Ñ"‘��R™(˜2˜rØ5�t×5Ñ5°b¸"ÑCÀÒCÜ)Ò)Ø5�t×5Ñ5°b¸"ÑCÀÓCÜ)Ò)ñ	*r(   c           	     óÂ   — t        ||d ¬«      D ]N  \  }}|�|€t        c S t        ||d ¬«      D ],  \  }	}
 | j                  |||	||
fi |¤Žt        u sŒ$t        c c S  ŒP y r5  )r   r  rÃ   )r;   rJ   r'  r  r(  r  r%   ÚlseqÚrseqÚldÚrds              r'   rÌ   z2TraversalComparatorStrategy.visit_dml_multi_valuesŸ  s€   € ô & d¨E¸TÔBò 	*‰JˆD�$Øˆ|˜t˜|Ü%Ò%ä% d¨D¸DÔAò *‘��Bà)�D×)Ñ)Ø  +¨r°<ÀñØGIñô &ò&ô
 *Ô)ñ*ñ		*r(   c                óæ   — |j                   |j                   u rTt        j                  |j                   «      r2 | j                  |j                  |j                  fi |¤ŽrddgS t
        S dgS t
        S )Nr  Úclauses)r  r   Úis_associativerL  r¯  r  ©r;   r  r  r%   s       r'   Úcompare_expression_clauselistz9TraversalComparatorStrategy.compare_expression_clauselist¯  sj   € Ø�=‰=˜EŸN™NÑ*Ü×'Ñ'¨¯©Ô6Ø4�4×4Ñ4Ø—L‘L %§-¡-ñØ35òð '¨	Ð2Ð2ä)Ð)à"�|Ð#ä!Ð!r(   c                ó*   —  | j                   ||fi |¤ŽS r:   )r²  r±  s       r'   Úcompare_clauselistz.TraversalComparatorStrategy.compare_clauselist½  s   € Ø1ˆt×1Ñ1°$¸ÑDÀÑDÐDr(   c                óÚ  — |j                   |j                   k(  rÍt        j                  |j                   «      rª | j                  |j                  |j                  fi |¤Žr( | j                  |j
                  |j
                  fi |¤ŽsP | j                  |j                  |j
                  fi |¤Žr, | j                  |j
                  |j                  fi |¤Žrg d¢S t        S ddgS t        S )N)r  Únegater  r  r  r¶  )r  r   Úis_commutativer"  r  r  r  r±  s       r'   Úcompare_binaryz*TraversalComparatorStrategy.compare_binaryÀ  s½   € Ø�=‰=˜EŸN™NÒ*Ü×'Ñ'¨¯©Ô6à&�D×&Ñ& t§y¡y°%·*±*ÑCÀÒCØ*˜×*Ñ*¨4¯:©:°u·{±{ÑIÀbÒIà&�D×&Ñ& t§y¡y°%·+±+ÑDÀÒDØ*˜×*Ñ*¨4¯:©:°u·z±zÑHÀRÒHâBÐBä)Ð)à" HÐ-Ð-ä!Ð!r(   c                ó†   — |j                  dd«      }|j                  dd«      }|rg }nddg}|s|j                  d«       |S )NÚcompare_keysTÚcompare_valuesÚcallabler±   r°   )Úpopr  )r;   r  r  r%   rº  r»  Úomits          r'   Úcompare_bindparamz-TraversalComparatorStrategy.compare_bindparamÒ  sK   € Ø—v‘v˜n¨dÓ3ˆØŸ™Ð 0°$Ó7ˆáØ‰Dð  Ð(ˆDáØ�K‰K˜Ôàˆr(   N)r#   r   r$   r   r%   r   rp   Úbool)2rt   ru   rv   rx   r  r  r"   r"  rØ   rÎ   r0  r¥   r—   râ   r:  r²   r¬   r›   r¡   rL  r§   rç   rP  rS  r\  r^  r`  rb  rd  rg  ri  rk  rn  rx  rz  r|  rƒ  r¹   r¼   r›  r�  rŸ  rÁ   r¡  rÃ   rÌ   r²  r´  r¸  r¿  r8   r(   r'   r!   r!   Ó  s  „ Ø,€Iòò(ð\à#ð\ð $ð\ð ð	\ð
 
ó\ò|4ò"ò
ò&ò"&ò.)ò
,òò
9ò*ò&ò&ò
8òDò
&òò
ò
&ò.!ò
òò
ò
2ò
ò
ò
	!ò
òò
'ò	8ò0ò
ò4ò"ò
$ò
	&òò*ò.*ò "òEò"ó$r(   r!   c                  ó(   — e Zd Z	 dd„Zd„ Zd„ Zd„ Zy)r    c                óÊ   — |f}|r||v r||   j                  |«      }|D ]<  }|r|j                  |«      rt        c S t        |«      t        |«      k(  sŒ6t        c S  t        S )z…Compare ColumnElements using proxies and equivalent collections.

        This is a comparison strategy specific to the ORM.
        )ÚunionÚshares_lineager  Úhashr  )r;   r  r  r   Úequivalentsr%   Ú
to_compareÚoths           r'   Úcompare_column_elementz4ColIdentityComparatorStrategy.compare_column_elementã  sm   € ð �Xˆ
Ù˜5 KÑ/Ø$ UÑ+×1Ñ1°*Ó=ˆJàò 	"ˆCÙ˜t×2Ñ2°3Ô7Ü$Ò$Ü�d“œt E›{Ó*Ü$Ò$ð		"ô "Ð!r(   c                ó*   —  | j                   ||fi |¤ŽS r:   ©rÉ  r±  s       r'   Úcompare_columnz,ColIdentityComparatorStrategy.compare_column÷  ó   € Ø*ˆt×*Ñ*¨4°Ñ=¸"Ñ=Ð=r(   c                ó*   —  | j                   ||fi |¤ŽS r:   rË  r±  s       r'   Úcompare_labelz+ColIdentityComparatorStrategy.compare_labelú  rÍ  r(   c                ó"   — ||u rt         S t        S r:   )r  r  r±  s       r'   Úcompare_tablez+ColIdentityComparatorStrategy.compare_tableý  s   € ð !%¨¡Œ}ÐA´>ÐAr(   N)Tr8   )rt   ru   rv   rÉ  rÌ  rÏ  rÑ  r8   r(   r'   r    r    â  s   „ à9;ó"ò(>ò>óBr(   r    )r#   r   r$   r   r%   r   rp   rÀ  )r3   z	Type[Any]rp   rq   )6Ú
__future__r   Úcollectionsr   Úcollections.abcÚabcr¦  rÞ   r   r  ry   r   r   r   r	   r
   r   r   r   r   Ú r   Ú	cache_keyr   Úvisitorsr   r   r   r   r   r   r   Úutil.typingr   Úsymbolr  r  ÚCOMPARE_SUCCEEDEDr"   r5   r7   r}   ro   r„   r’   r0   rÒ   rÔ   r2   Úpreload_modulerû   ÚMemoizedSlotsr!   r    r8   r(   r'   ú<module>rÞ     s-  ðõ #å Ý )Û Ý !Û Û Ý Ý Ý Ý Ý Ý Ý Ý Ý å Ý "Ý ,Ý Ý +Ý *Ý *Ý Ý Ý ð �—‘˜OÓ,€Ø€ØÐ ó.óô$oÐ)ô oôd˜Nô ò(ô#4Ð+ô #4ôLzÐ2ô zñz *Ó+€òôDÐ0ô DñN &Ó'€ð €×ÑÐ.Ó/ñó 0ðôLÐ"6¸×8JÑ8Jô Lô^BÐ$?õ Br(   