§
    eŠtjƒ  ã                  ó   — 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j"        d¦  «        Z#dZ$dZ%d:d#„Z&d;d'„Z' G d(„ d)e¦  «        Z( G d*„ d+e(¦  «        Z)d,„ Z* G d-„ d.e¦  «        Z+ G d/„ d0e¦  «        Z, e,¦   «         Z-d1„ Z. G d2„ d3e¦  «        Z/ e/¦   «         Z0 ej1        d4¦  «        d5„ ¦   «         Z2 G d6„ d7eej3        ¦  «        Z4 G d8„ d9e4¦  «        Z5dS )<é    )Ú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_traverseFTÚobj1r   Úobj2ÚkwÚreturnÚboolc                ó†   — |                      dd¦  «        rt          ¦   «         }nt          ¦   «         } |j        | |fi |¤ŽS )NÚuse_proxiesF)ÚgetÚColIdentityComparatorStrategyÚTraversalComparatorStrategyÚcompare)r   r   r   Ústrategys       úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/sql/traversals.pyr'   r'   +   sM   € à	‡v‚vˆm˜UÑ#Ô#ð 1Ý0Ñ2Ô2ˆˆå.Ñ0Ô0ˆàˆ8Ô˜D $Ð-Ð-¨"Ð-Ð-Ð-ó    Útarget_hierarchyú	Type[Any]ÚNonec                ó   — t          j        | ¦  «        D ]x}t          |d¦  «        rft          |d¦  «        rV|                     ¦   «          t                               ||j        d¦  «         t                               ||j        d¦  «         Œyd S )NÚ_generate_cache_attrsÚ_traverse_internalsÚ#_generated_copy_internals_traversalÚ!_generated_get_children_traversal)r   Úwalk_subclassesÚhasattrr/   Ú_copy_internalsÚgenerate_dispatchr0   Ú_get_children)r+   Úclss     r)   Ú_preconfigure_traversalsr9   5   s°   € ÝÔ#Ð$4Ñ5Ô5ð ð ˆÝ�3Ð/Ñ0Ô0ð 	µWØÐ&ñ6
ô 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dS )$ÚHasShallowCopyz”attribute-wide operations that are useful for classes that use
    __slots__ and therefore can't operate on their attributes in a dictionary.


    © Úotherr   r    r-   c                ó   — d S ©Nr<   )Úselfr=   s     r)   Ú!_generated_shallow_copy_traversalz0HasShallowCopy._generated_shallow_copy_traversalR   ó   € € € r*   ÚdúDict[str, Any]c                ó   — d S r?   r<   )r@   rC   s     r)   Ú&_generated_shallow_from_dict_traversalz5HasShallowCopy._generated_shallow_from_dict_traversalT   s   € à�3r*   c                ó   — d S r?   r<   ©r@   s    r)   Ú$_generated_shallow_to_dict_traversalz3HasShallowCopy._generated_shallow_to_dict_traversalX   rB   r*   Úinternal_dispatchr   Úmethod_nameÚstrúCallable[[Self, Self], None]c                ó~   — d                      d„ |D ¦   «         ¦  «        }d|› d|› d�}t          j        |i |¦  «        S )Nú
c              3  ó,   K  — | ]\  }}d |› d|› �V — ŒdS )z
    other.z = self.Nr<   ©Ú.0ÚattrnameÚ_s      r)   ú	<genexpr>z8HasShallowCopy._generate_shallow_copy.<locals>.<genexpr>`   sJ   è è € ð 
ð 
á�˜!ð 6˜Ð5Ð5¨8Ð5Ð5ð
ð 
ð 
ð 
ð 
ð 
r*   údef z(self, other):
©Újoinr   Ú_exec_code_in_env©r8   rJ   rK   ÚcodeÚ	meth_texts        r)   Ú_generate_shallow_copyz%HasShallowCopy._generate_shallow_copyZ   sc   € ð �yŠyð 
ð 
à0ð
ñ 
ô 
ñ 
ô 
ˆð A˜;Ð@Ð@¸Ð@Ð@Ð@ˆ	ÝÔ,¨Y¸¸KÑHÔHÐHr*   ú Callable[[Self], Dict[str, Any]]c                ó~   — d                      d„ |D ¦   «         ¦  «        }d|› d|› d�}t          j        |i |¦  «        S )Nz,
c              3  ó,   K  — | ]\  }}d |› d|› �V — ŒdS )z    'z': self.Nr<   rQ   s      r)   rU   z;HasShallowCopy._generate_shallow_to_dict.<locals>.<genexpr>m   sJ   è è € ð 
ð 
á�˜!ð 1�HÐ0Ð0 hÐ0Ð0ð
ð 
ð 
ð 
ð 
ð 
r*   rV   z(self):
    return {z}
rW   rZ   s        r)   Ú_generate_shallow_to_dictz(HasShallowCopy._generate_shallow_to_dictg   sc   € ð �zŠzð 
ð 
à0ð
ñ 
ô 
ñ 
ô 
ˆð I˜;ÐHÐH¸dÐHÐHÐHˆ	ÝÔ,¨Y¸¸KÑHÔHÐHr*   ú&Callable[[Self, Dict[str, Any]], None]c                ó~   — d                      d„ |D ¦   «         ¦  «        }d|› d|› d�}t          j        |i |¦  «        S )NrO   c              3  ó.   K  — | ]\  }}d |› d|› d�V — ŒdS )z	    self.z = d['z']Nr<   rQ   s      r)   rU   z=HasShallowCopy._generate_shallow_from_dict.<locals>.<genexpr>z   sM   è è € ð 
ð 
á�˜!ð 5˜Ð4Ð4¨Ð4Ð4Ð4ð
ð 
ð 
ð 
ð 
ð 
r*   rV   z(self, d):
rW   rZ   s        r)   Ú_generate_shallow_from_dictz*HasShallowCopy._generate_shallow_from_dictt   sb   € ð �yŠyð 
ð 
à0ð
ñ 
ô 
ñ 
ô 
ˆð =˜;Ð<Ð<°DÐ<Ð<Ð<ˆ	ÝÔ,¨Y¸¸KÑHÔHÐHr*   c                ó®   — | j         }	 |j        d         }n2# t          $ r% |                      |j        d¦  «        }||_        Y nw xY w || |¦  «         d S )NrF   )Ú	__class__Ú__dict__ÚKeyErrorre   r0   rF   )r@   rC   r8   Úshallow_from_dicts       r)   Ú_shallow_from_dictz!HasShallowCopy._shallow_from_dict�   sŽ   € ØŒnˆð
	KØ #¤Ø8ô!ÐÐøõ ð 	Kð 	Kð 	KØ $× @Ò @ØÔ'Ø8ñ!ô !Ðð
 :KˆCÔ6Ð6Ð6ð	Køøøð 	Ð˜$ Ñ"Ô"Ð"Ð"Ð"ó   ‰ —,AÁAc                ó¨   — | j         }	 |j        d         }n2# t          $ r% |                      |j        d¦  «        }||_        Y nw xY w || ¦  «        S )NrI   )rg   rh   ri   ra   r0   rI   )r@   r8   Úshallow_to_dicts      r)   Ú_shallow_to_dictzHasShallowCopy._shallow_to_dict“   s‚   € ØŒnˆð		GØ!œlØ6ôˆOˆOøõ ð 	Gð 	Gð 	GØ"×<Ò<ØÔ'Ð)Oñô ˆOð 8GˆCÔ4Ð4Ð4ð	Gøøøð ˆ˜tÑ$Ô$Ð$rl   c                ó®   — | j         }	 |j        d         }n2# t          $ r% |                      |j        d¦  «        }||_        Y nw xY w || |¦  «         d S )NrA   )rg   rh   ri   r]   r0   rA   )r@   r=   r8   Úshallow_copys       r)   Ú_shallow_copy_tozHasShallowCopy._shallow_copy_to¤   s†   € ØŒnˆð	AØœ<Ð(KÔLˆLˆLøÝð 	Að 	Að 	AØ×6Ò6ØÔ'Ð)Lñô ˆLð 5AˆCÔ1Ð1Ð1ð	Aøøøð 	ˆ�T˜5Ñ!Ô!Ð!Ð!Ð!rl   r   r   c                ón   — | j                              | j         ¦  «        }|                      |¦  «         |S )zCreate a shallow copy©rg   Ú__new__rr   )r@   r   Úcs      r)   Ú_clonezHasShallowCopy._clone²   s2   € àŒN×"Ò" 4¤>Ñ2Ô2ˆØ×Ò˜aÑ Ô Ð Øˆr*   N)r=   r   r    r-   )rC   rD   r    r-   )r    rD   )rJ   r   rK   rL   r    rM   )rJ   r   rK   rL   r    r^   )rJ   r   rK   rL   r    rb   )r   r   r    r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__ÚtypingÚTYPE_CHECKINGrA   rF   rI   Úclassmethodr]   ra   re   rk   ro   rr   rw   r<   r*   r)   r;   r;   G   s  € € € € € ðð ð €IàÔð NàMÐMÐMÐMð	ð 	ð 	ð 	ð 	NÐMÐMÐMàð
Ið 
Ið 
Iñ „[ð
Ið ð
Ið 
Ið 
Iñ „[ð
Ið ð
Ið 
Ið 
Iñ „[ð
Ið#ð #ð #ð #ð$%ð %ð %ð %ð""ð "ð "ð "ðð ð ð ð ð r*   r;   c                  ó   — e Zd ZdZdZdd„ZdS )ÚGenerativeOnTraversalz˜Supplies Generative behavior but making use of traversals to shallow
    copy.

    .. seealso::

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


    r<   r    r   c                óh   — | j         }|                     |¦  «        }|                      |¦  «         |S r?   rt   )r@   r8   Úss      r)   Ú	_generatezGenerativeOnTraversal._generateÆ   s3   € ØŒnˆØ�KŠK˜ÑÔˆØ×Ò˜aÑ Ô Ð Øˆr*   N)r    r   )rx   ry   rz   r{   r|   r„   r<   r*   r)   r�   r�   ¹   s9   € € € € € ðð ð €Iðð ð ð ð ð r*   r�   c                ó*   — |                       ¦   «         S r?   )rw   )Úelementr   s     r)   rw   rw   Í   s   € Ø�>Š>ÑÔÐr*   c                  ó&   — e Zd ZdZd„ Zddœdd
„ZdS )ÚHasCopyInternalsr<   c                ó   — t          ¦   «         ‚r?   ©ÚNotImplementedError)r@   r   s     r)   rw   zHasCopyInternals._cloneÔ   s   € Ý!Ñ#Ô#Ð#r*   )Ú
omit_attrsrŒ   úIterable[str]r   r   r    r-   c               óÊ   — 	 | j         }n# t          $ r Y dS w xY wt                               | |d¦  «        D ]+\  }}}||v rŒ|� ||| |fi |¤Ž}|�t	          | ||¦  «         Œ,dS )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).

        Nr1   )r0   ÚAttributeErrorr5   Úrun_generated_dispatchÚsetattr)r@   rŒ   r   Útraverse_internalsrS   ÚobjÚmethÚresults           r)   r5   z HasCopyInternals._copy_internals×   s¹   € ð	Ø!%Ô!9ÐÐøÝð 	ð 	ð 	àˆFˆFð	øøøõ $3×#IÒ#IØÐ$Ð&Kñ$
ô $
ð 		4ð 		4ÑˆH�c˜4ð ˜:Ð%Ð%ØàˆØ˜˜h¨¨cÐ8Ð8°RÐ8Ð8�ØÐ%Ý˜D (¨FÑ3Ô3Ð3øð		4ð 		4s   ‚
 Š
—N)rŒ   r�   r   r   r    r-   )rx   ry   rz   r|   rw   r5   r<   r*   r)   rˆ   rˆ   Ñ   sK   € € € € € Ø€Ið$ð $ð $ð .0ð4ð 4ð 4ð 4ð 4ð 4ð 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dS )Ú_CopyInternalsTraversalzmGenerate a _copy_internals internal traversal dispatch for classes
    with a _traverse_internals collection.c                ó   —  ||fi |¤ŽS r?   r<   ©r@   rS   Úparentr†   Úcloner   s         r)   Úvisit_clauseelementz+_CopyInternalsTraversal.visit_clauseelementû   s   € ð ˆu�WÐ#Ð# Ð#Ð#Ð#r*   c                ó$   ‡‡— ˆˆfd„|D ¦   «         S )Nc                ó"   •— g | ]} ‰|fi ‰¤Ž‘ŒS r<   r<   ©rR   Úclauser›   r   s     €€r)   ú
<listcomp>zD_CopyInternalsTraversal.visit_clauseelement_list.<locals>.<listcomp>  ó+   ø€ Ð:Ð:Ð:¨���fÐ#Ð# Ð#Ð#Ð:Ð:Ð:r*   r<   r™   s       ``r)   Úvisit_clauseelement_listz0_CopyInternalsTraversal.visit_clauseelement_list   ó#   øø€ ð ;Ð:Ð:Ð:Ð:°'Ð:Ñ:Ô:Ð:r*   c                ó>   ‡‡— t          ˆˆfd„|D ¦   «         ¦  «        S )Nc                ó"   •— g | ]} ‰|fi ‰¤Ž‘ŒS r<   r<   rŸ   s     €€r)   r¡   zE_CopyInternalsTraversal.visit_clauseelement_tuple.<locals>.<listcomp>  ó+   ø€ Ð@Ð@Ð@¨f�e�e˜FÐ)Ð) bÐ)Ð)Ð@Ð@Ð@r*   ©Útupler™   s       ``r)   Úvisit_clauseelement_tuplez1_CopyInternalsTraversal.visit_clauseelement_tuple  ó,   øø€ õ Ð@Ð@Ð@Ð@Ð@¸Ð@Ñ@Ô@ÑAÔAÐAr*   c                ó>   ‡‡— t          ˆˆfd„|D ¦   «         ¦  «        S )Nc                ó"   •— g | ]} ‰|fi ‰¤Ž‘ŒS r<   r<   rŸ   s     €€r)   r¡   zD_CopyInternalsTraversal.visit_executable_options.<locals>.<listcomp>  r§   r*   r¨   r™   s       ``r)   Úvisit_executable_optionsz0_CopyInternalsTraversal.visit_executable_options
  r«   r*   c                ó$   ‡‡— ˆˆfd„|D ¦   «         S )Nc                ó"   •— h | ]} ‰|fi ‰¤Ž’ŒS r<   r<   rŸ   s     €€r)   ú	<setcomp>zL_CopyInternalsTraversal.visit_clauseelement_unordered_set.<locals>.<setcomp>  r¢   r*   r<   r™   s       ``r)   Ú!visit_clauseelement_unordered_setz9_CopyInternalsTraversal.visit_clauseelement_unordered_set  r¤   r*   c                ó$   ‡‡— ˆˆfd„|D ¦   «         S )Nc                óH   •— g | ]}t          ˆˆfd „|D ¦   «         ¦  «        ‘ŒS )c              3  ó*   •K  — | ]} ‰|fi ‰¤ŽV — Œd S r?   r<   )rR   Útup_elemr›   r   s     €€r)   rU   zP_CopyInternalsTraversal.visit_clauseelement_tuples.<locals>.<listcomp>.<genexpr>  s5   øè è € Ð=Ð=¨H�%�%˜Ð'Ð' BÐ'Ð'Ð=Ð=Ð=Ð=Ð=Ð=r*   r¨   )rR   Úelemr›   r   s     €€r)   r¡   zF_CopyInternalsTraversal.visit_clauseelement_tuples.<locals>.<listcomp>  sI   ø€ ð 
ð 
ð 
àõ Ð=Ð=Ð=Ð=Ð=¸Ð=Ñ=Ô=Ñ=Ô=ð
ð 
ð 
r*   r<   r™   s       ``r)   Úvisit_clauseelement_tuplesz2_CopyInternalsTraversal.visit_clauseelement_tuples  s4   øø€ ð
ð 
ð 
ð 
ð 
àð
ñ 
ô 
ð 	
r*   c                óH   ‡‡— ˆˆfd„|                      ¦   «         D ¦   «         S )Nc                ó*   •— i | ]\  }}| ‰|fi ‰¤Ž“ŒS r<   r<   ©rR   ÚkeyÚvaluer›   r   s      €€r)   ú
<dictcomp>zK_CopyInternalsTraversal.visit_string_clauseelement_dict.<locals>.<dictcomp>  s1   ø€ ÐJÐJÐJ©J¨C°��U�U˜5Ð'Ð' BÐ'Ð'ÐJÐJÐJr*   ©Úitemsr™   s       ``r)   Úvisit_string_clauseelement_dictz7_CopyInternalsTraversal.visit_string_clauseelement_dict  s,   øø€ ð KÐJÐJÐJÐJ¸'¿-º-¹/¼/ÐJÑJÔJÐJr*   c                ó>   ‡‡— t          ˆˆfd„|D ¦   «         ¦  «        S )Nc              3  óp   •K  — | ]0\  }}}}|�	 ‰|fi ‰¤Žnd |�	 ‰|fi ‰¤Žnd |�	 ‰|fi ‰¤Žnd |fV — Œ1d S r?   r<   )rR   ÚtargetÚonclauseÚfrom_Úflagsr›   r   s        €€r)   rU   zA_CopyInternalsTraversal.visit_setup_join_tuple.<locals>.<genexpr>$  s£   øè è € ð 
ð 
ñ 1�˜ 5¨%ð (.Ð'9���fÐ#Ð# Ð#Ð#Ð#¸tØ)1Ð)=���hÐ%Ð% "Ð%Ð%Ð%À4Ø&+Ð&7���eÐ"Ð"˜rÐ"Ð"Ð"¸TØð	ð
ð 
ð 
ð 
ð 
ð 
r*   r¨   r™   s       ``r)   Úvisit_setup_join_tuplez._CopyInternalsTraversal.visit_setup_join_tuple!  sE   øø€ õ ð 
ð 
ð 
ð 
ð 
ð 5<ð
ñ 
ô 
ñ 
ô 
ð 	
r*   c                ó"   —  | j         |||fi |¤ŽS r?   ©rª   )r@   rS   rš   r†   r   s        r)   Úvisit_memoized_select_entitiesz6_CopyInternalsTraversal.visit_memoized_select_entities.  s!   € Ø-ˆtÔ-¨h¸ÀÐNÐNÈ2ÐNÐNÐNr*   c                ó$   ‡‡— ˆˆfd„|D ¦   «         S )Nc                ó^   •— g | ])\  }}t          |d ¦  «        r	 ‰|fi ‰¤Žn| ‰|fi ‰¤Žf‘Œ*S ©Ú__clause_element__©r4   r»   s      €€r)   r¡   zD_CopyInternalsTraversal.visit_dml_ordered_values.<locals>.<listcomp>5  ss   ø€ ð 

ð 

ð 

ñ ��Uõ ˜sÐ$8Ñ9Ô9ð�E�E˜#Ð$Ð$ Ð$Ð$Ð$àà��eÐ"Ð"˜rÐ"Ð"ðð

ð 

ð 

r*   r<   r™   s       ``r)   Úvisit_dml_ordered_valuesz0_CopyInternalsTraversal.visit_dml_ordered_values1  s6   øø€ ð

ð 

ð 

ð 

ð 

ð &ð

ñ 

ô 

ð 
	
r*   c                óH   ‡‡— ˆˆfd„|                      ¦   «         D ¦   «         S )Nc                ó\   •— i | ](\  }}t          |d ¦  «        r	 ‰|fi ‰¤Žn| ‰|fi ‰¤Ž“Œ)S rÎ   rÐ   r»   s      €€r)   r¾   z<_CopyInternalsTraversal.visit_dml_values.<locals>.<dictcomp>B  sk   ø€ ð 
ð 
ð 
ñ ��Uõ %,¨CÐ1EÑ$FÔ$FÐO���cÐ Ð ˜RÐ Ð Ð ÈCØˆu�UÐ!Ð!˜bÐ!Ð!ð
ð 
ð 
r*   r¿   r™   s       ``r)   Úvisit_dml_valuesz(_CopyInternalsTraversal.visit_dml_valuesA  s>   øø€ ð
ð 
ð 
ð 
ð 
ð &Ÿmšm™oœoð	
ñ 
ô 
ð 	
r*   c                ó0   ‡‡‡— ˆˆfd„Šˆfd„|D ¦   «         S )Nc                óÊ   •— t          | t          t          f¦  «        rˆˆfd„| D ¦   «         S t          | t          ¦  «        r!ˆˆfd„|                      ¦   «         D ¦   «         S J ‚)Nc                óF   •— g | ]}t          |d ¦  «        r	 ‰|fi ‰¤Žn|‘ŒS rÎ   rÐ   )rR   r½   r›   r   s     €€r)   r¡   zP_CopyInternalsTraversal.visit_dml_multi_values.<locals>.copy.<locals>.<listcomp>P  sU   ø€ ð ð ð ð õ # 5Ð*>Ñ?Ô?ð#˜˜˜eÐ*Ð* rÐ*Ð*Ð*à"ð	ð ð r*   c                ó€   •— i | ]:\  }}t          |d ¦  «        r	 ‰|fi ‰¤Žn|t          |d ¦  «        r	 ‰|fi ‰¤Žn|“Œ;S rÎ   rÐ   r»   s      €€r)   r¾   zP_CopyInternalsTraversal.visit_dml_multi_values.<locals>.copy.<locals>.<dictcomp>Y  sˆ   ø€ ð ð ð ñ #˜˜Uõ # 3Ð(<Ñ=Ô=ð!˜˜˜cÐ(Ð( RÐ(Ð(Ð(à õ # 5Ð*>Ñ?Ô?ð#˜˜˜eÐ*Ð* rÐ*Ð*Ð*à"ðð ð r*   )Ú
isinstanceÚlistr©   ÚdictrÀ   )r·   r›   r   s    €€r)   Úcopyz<_CopyInternalsTraversal.visit_dml_multi_values.<locals>.copyN  s    ø€ Ý˜$¥¥u Ñ.Ô.ð ðð ð ð ð ð "&ðñ ô ð õ ˜D¥$Ñ'Ô'ð ðð ð ð ð ð '+§j¢j¡l¤lðñ ô ð ð �ur*   c                ó,   •— g | ]}ˆfd „|D ¦   «         ‘ŒS )c                ó&   •— g | ]} ‰|¦  «        ‘ŒS r<   r<   )rR   Úsub_elementrÜ   s     €r)   r¡   zM_CopyInternalsTraversal.visit_dml_multi_values.<locals>.<listcomp>.<listcomp>j  s#   ø€ Ð;Ð;Ð; ;ˆTˆT�+ÑÔÐ;Ð;Ð;r*   r<   )rR   ÚsequencerÜ   s     €r)   r¡   zB_CopyInternalsTraversal.visit_dml_multi_values.<locals>.<listcomp>i  s=   ø€ ð 
ð 
ð 
àð <Ð;Ð;Ð;°(Ð;Ñ;Ô;ð
ð 
ð 
r*   r<   )r@   rS   rš   r†   r›   r   rÜ   s       ``@r)   Úvisit_dml_multi_valuesz._CopyInternalsTraversal.visit_dml_multi_valuesI  sN   øøø€ ð
	ð 	ð 	ð 	ð 	ð 	ð6
ð 
ð 
ð 
à#ð
ñ 
ô 
ð 	
r*   c                ó   — |S r?   r<   r™   s         r)   Úvisit_propagate_attrsz-_CopyInternalsTraversal.visit_propagate_attrsn  s	   € ð ˆr*   N)rx   ry   rz   r{   rw   rœ   r£   rª   r®   r²   r¸   rÁ   rÈ   rË   rÑ   rÔ   rá   rã   r<   r*   r)   r—   r—   ÷   sk  € € € € € ð.ð .ð 06ð$ð $ð $ð $ð 06ð;ð ;ð ;ð ;ð 06ðBð Bð Bð Bð 06ðBð Bð Bð Bð 06ð;ð ;ð ;ð ;ð 06ð
ð 
ð 
ð 
ð 06ðKð Kð Kð Kð 06ð
ð 
ð 
ð 
ðOð Oð Oð 06ð
ð 
ð 
ð 
ð  AGð 
ð 
ð 
ð 
ð 06ð#
ð #
ð #
ð #
ðL 06ðð ð ð ð ð r*   r—   c                ó²   — t          | d¦  «        rFt          | dd¦  «        s5|                      ¦   «         } t          | d¦  «        rt          | dd¦  «        ¯5| S )NrÏ   Úis_clause_elementF)r4   ÚgetattrrÏ   )r†   s    r)   Ú_flatten_clauseelementrç   w  sv   € Ý
�'Ð/Ñ
0Ô
0ð /½ØÐ$ eñ:ô :ð /ð ×,Ò,Ñ.Ô.ˆõ �'Ð/Ñ
0Ô
0ð /½ØÐ$ eñ:ô :ð /ð
 €Nr*   c                  ól   — 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dS )Ú_GetChildrenTraversalzqGenerate a _children_traversal internal traversal dispatch for classes
    with a _traverse_internals collection.c                ó   — dS ©Nr<   r<   ©r@   r†   r   s      r)   Úvisit_has_cache_keyz)_GetChildrenTraversal.visit_has_cache_key„  s	   € ð ˆrr*   c                ó   — |fS r?   r<   rì   s      r)   rœ   z)_GetChildrenTraversal.visit_clauseelementŠ  s
   € ØˆzÐr*   c                ó   — |S r?   r<   rì   s      r)   r£   z._GetChildrenTraversal.visit_clauseelement_list�  ó   € Øˆr*   c                ó   — |S r?   r<   rì   s      r)   rª   z/_GetChildrenTraversal.visit_clauseelement_tuple�  rð   r*   c                ó@   — t           j                             |¦  «        S r?   )Ú	itertoolsÚchainÚfrom_iterablerì   s      r)   r¸   z0_GetChildrenTraversal.visit_clauseelement_tuples“  s   € ÝŒ×,Ò,¨WÑ5Ô5Ð5r*   c                ó   — dS rë   r<   rì   s      r)   Ú,visit_fromclause_canonical_column_collectionzB_GetChildrenTraversal.visit_fromclause_canonical_column_collection–  ó   € Øˆrr*   c                ó*   — |                      ¦   «         S r?   )Úvaluesrì   s      r)   rÁ   z5_GetChildrenTraversal.visit_string_clauseelement_dict™  s   € Ø�~Š~ÑÔÐr*   c                ó   — |S r?   r<   rì   s      r)   Úvisit_fromclause_ordered_setz2_GetChildrenTraversal.visit_fromclause_ordered_setœ  rð   r*   c                ó   — |S r?   r<   rì   s      r)   r²   z7_GetChildrenTraversal.visit_clauseelement_unordered_setŸ  rð   r*   c              +  óÆ   K  — |D ][\  }}}}|�|V — t          |t          ¦  «        st          |¦  «        V — |�&t          |t          ¦  «        st          |¦  «        V — Œ\d S r?   )rÙ   rL   rç   )r@   r†   r   rÄ   rÅ   rÆ   rÇ   s          r)   rÈ   z,_GetChildrenTraversal.visit_setup_join_tuple¢  s‡   è è € Ø.5ð 	7ð 	7Ñ*ˆF�H˜e UØÐ Ø���å˜f¥cÑ*Ô*ð 5Ý,¨VÑ4Ô4Ð4Ð4Ð4àÐ#­J°xÅÑ,EÔ,EÐ#Ý,¨XÑ6Ô6Ð6Ð6Ð6øð	7ð 	7r*   c                ó   —  | j         |fi |¤ŽS r?   rÊ   rì   s      r)   rË   z4_GetChildrenTraversal.visit_memoized_select_entities­  s   € Ø-ˆtÔ-¨gÐ<Ð<¸Ð<Ð<Ð<r*   c              +  óJ   K  — |D ]\  }}t          |d¦  «        r|V — |V — Œd S )NrÏ   rÐ   )r@   r†   r   ÚkÚvs        r)   rÑ   z._GetChildrenTraversal.visit_dml_ordered_values°  sJ   è è € Øð 	ð 	‰DˆAˆqÝ�qÐ.Ñ/Ô/ð Ø���ØˆGˆGˆGˆGð	ð 	r*   c              +  óª   K  — d„ |D ¦   «         }|                      |¦  «        }t          |¦  «        D ]}||         V — Œ|D ]}|V — ||         V — Œd S )Nc                ó2   — h | ]}t          |d ¦  «        ¯|’ŒS rÎ   rÐ   )rR   r  s     r)   r±   z9_GetChildrenTraversal.visit_dml_values.<locals>.<setcomp>·  s(   € ÐNÐNÐN˜Q­W°QÐ8LÑ-MÔ-MÐN�qÐNÐNÐNr*   )Úsymmetric_differenceÚsorted)r@   r†   r   Úexpr_valuesÚ
str_valuesr  s         r)   rÔ   z&_GetChildrenTraversal.visit_dml_values¶  s‹   è è € ØNÐN 'ÐNÑNÔNˆØ ×5Ò5°gÑ>Ô>ˆ
å˜
Ñ#Ô#ð 	ð 	ˆAØ˜!”*ÐÐÐÐØð 	ð 	ˆAØˆGˆGˆGØ˜!”*ÐÐÐÐð	ð 	r*   c                ó   — dS rë   r<   rì   s      r)   rá   z,_GetChildrenTraversal.visit_dml_multi_valuesÀ  rø   r*   c                ó   — dS rë   r<   rì   s      r)   rã   z+_GetChildrenTraversal.visit_propagate_attrsÃ  rø   r*   N)rx   ry   rz   r{   rí   rœ   r£   rª   r¸   r÷   rÁ   rü   r²   rÈ   rË   rÑ   rÔ   rá   rã   r<   r*   r)   ré   ré   €  sÿ   € € € € € ð.ð .ðð ð ðð ð ðð ð ðð ð ð6ð 6ð 6ðð ð ð ð  ð  ðð ð ðð ð ð	7ð 	7ð 	7ð=ð =ð =ðð ð ðð ð ðð ð ðð ð ð ð r*   ré   zsqlalchemy.sql.elementsc                óx   — t          |t          j        j        j        ¦  «        r|                     |¦  «        }|S r?   )rÙ   r   Ú	preloadedÚsql_elementsÚ_anonymous_labelÚ	apply_map)r†   Únamer   r   s       r)   Ú_resolve_name_for_comparer  Ê  s2   € å�$�œÔ3ÔDÑEÔEð (Ø�~Š~˜hÑ'Ô'ˆà€Kr*   c                  ó(  — e Zd ZdZd„ Zd„ Zd8d„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*d0„ Z+d1„ Z,d2„ Z-d3„ Z.d4„ Z/d5„ Z0d6„ Z1d7S )9r&   )ÚstackÚcacher   c                óR   — t          ¦   «         | _        t          ¦   «         | _        d S r?   )r   r  Úsetr  rH   s    r)   Ú__init__z$TraversalComparatorStrategy.__init__Õ  s#   € õ ‰GŒGð 	Œ
õ ‘U”UˆŒ
ˆ
ˆ
r*   c                ó:   — t          ¦   «         t          ¦   «         fS r?   r   rH   s    r)   Ú_memoized_attr_anon_mapz3TraversalComparatorStrategy._memoized_attr_anon_mapÞ  s   € Ý‘
”
�H™JœJÐ'Ð'r*   r   r   r   r   r   r    r!   c                óx  — | j         }| j        }|                     dd¦  «        }|                     ||f¦  «         |�r{|                     ¦   «         \  }}||u rŒ|�|€dS ||f|v rŒ,|                     ||f¦  «         |j        }	|	|j        k    rdS t          | d|	z  d ¦  «        }
|
r  |
||fi |¤Ž}|t          u rdS |t          u rŒŒnd}t          |j        |j        d¬¦  «        D ]Ï\  \  }}\  }}|s|dk    s|dk    rŒ||k    s||ur dS ||v rŒ,|€J ‚|€J ‚|€J ‚|                      |¦  «        }|€ J | j        › d| j        |         › d	�¦   «         ‚ t          j        |¦  «        |¦  «        } t          j        |¦  «        |¦  «        }|€|� dS Œ±|€ dS  ||||||fi |¤Ž}|t          u r dS ŒÐ|�°{d
S )NÚcompare_annotationsFz
compare_%sr<   ©NN©Ú	fillvalueÚ_annotationsz has no dispatch for 'ú'T)r  r  r$   ÚappendÚpopleftÚaddÚ__visit_name__ræ   ÚCOMPARE_FAILEDÚSKIP_TRAVERSEr   r0   Údispatchrg   Ú_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á  sÏ  € ð ”
ˆØ”
ˆà ŸfšfÐ%:¸EÑBÔBÐà�Š�d˜D�\Ñ"Ô"Ð"àñ M	!ØŸ-š-™/œ/‰KˆD�%à�uˆ}ˆ}ØØ�  à�uØ˜� %Ð'Ð'ØØ�IŠI�t˜U�mÑ$Ô$Ð$àÔ,ˆJØ˜UÔ1Ò1Ð1Ø�uå˜4 °
Ñ!:¸DÑAÔAˆDàð )Ø&* d¨4°Ð&=Ð&=¸"Ð&=Ð&=Ð#Ø&­.Ð8Ð8Ø ˜5Ø(­MÐ9Ð9Øð :ð ')Ð#õ
 ØÔ(ØÔ)Ø&ðñ ô ð-!ð -!ñ Ù/� Ù1� ð +ð Ø" nÒ4Ð4Ø&¨.Ò8Ð8àð " ^Ò3Ð3Ø%¨_Ð<Ð<à ˜5˜5Ø"Ð&9Ð9Ð9Øà%Ð1Ð1Ð1Ø$Ð0Ð0Ð0Ø%Ð1Ð1Ð1àŸ=š=¨Ñ8Ô8�ØÐ+Ð+Ø”~ð Að AØÔ-¨nÔ=ðAð Að Añ ,Ô+Ð+ð @�XÔ0°Ñ?Ô?ÀÑEÔE�
ØA�hÔ1°.ÑAÔAÀ%ÑHÔH�ØÐ%Ø"Ð.Ø$˜u˜uà Ø Ð(Ø ˜5˜5à%˜XØ! 4¨°U¸Kðð ØKMðð �
ð ¥Ð/Ð/Ø ˜5˜5ð 0ðY ñ M	!ð^ ˆtr*   c                óH   — |                       ¦   «         } |j        ||fi |¤ŽS r?   )rg   r'   )r@   r   r   r   Ú
comparators        r)   Úcompare_innerz)TraversalComparatorStrategy.compare_inner?  s.   € Ø—^’^Ñ%Ô%ˆ
Ø!ˆzÔ! $¨Ð3Ð3°Ð3Ð3Ð3r*   c                óœ   — |                      | j        d         g ¦  «        |                      | j        d         g ¦  «        k    rt          S d S ©Nr   r   )Ú_gen_cache_keyr   r%  ©r@   rS   Úleft_parentr+  Úright_parentr,  r   s          r)   rí   z/TraversalComparatorStrategy.visit_has_cache_keyC  sX   € ð ×Ò˜tœ}¨QÔ/°Ñ4Ô4¸×8LÒ8LØŒM˜!Ô˜bñ9
ô 9
ò 
ð 
õ "Ð!ð
ð 
r*   c                ó~   — |                       |                     dd ¦  «        |                     dd ¦  «        ¦  «        S )NÚplugin_subject)r8  r$   r<  s          r)   rã   z1TraversalComparatorStrategy.visit_propagate_attrsK  s?   € ð ×!Ò!Ø�HŠHÐ% tÑ,Ô,¨e¯iªiÐ8HÈ$Ñ.OÔ.Oñ
ô 
ð 	
r*   c                ó  — t          ||d ¬¦  «        D ]k\  }}|€|�	t          c S Œ|€	t          c S |                     | j        d         g ¦  «        |                     | j        d         g ¦  «        k    r	t          c S Œld S ©Nr  r   r   )r   r%  r;  r   ©	r@   rS   r=  r+  r>  r,  r   ÚlÚrs	            r)   Úvisit_has_cache_key_listz4TraversalComparatorStrategy.visit_has_cache_key_listR  s¯   € õ    e°tÐ<Ñ<Ô<ð 	&ð 	&‰DˆAˆqØˆyØ�=Ý)Ð)Ð)Ð)àØ�Ý%Ð%Ð%Ð%à×Ò ¤¨aÔ 0°"Ñ5Ô5¸×9IÒ9IØ”˜aÔ  "ñ:ô :ò ð õ &Ð%Ð%Ð%ðð	&ð 	&r*   c                ó&  — t          ||d ¬¦  «        D ]}\  }}|€|�	t          c S Œ|€	t          c S |j        r!|                     | j        d         g ¦  «        n||j        r!|                     | j        d         g ¦  «        n|k    r	t          c S Œ~d S rB  )r   r%  Ú_is_has_cache_keyr;  r   rC  s	            r)   r®   z4TraversalComparatorStrategy.visit_executable_optionsc  sÏ   € õ    e°tÐ<Ñ<Ô<ð 	&ð 	&‰DˆAˆqØˆyØ�=Ý)Ð)Ð)Ð)àØ�Ý%Ð%Ð%Ð%ð Ô&ð�× Ò  ¤¨qÔ!1°2Ñ6Ô6Ð6àð Ô&ð�× Ò  ¤¨qÔ!1°2Ñ6Ô6Ð6àòð õ &Ð%Ð%Ð%ðð	&ð 	&r*   c                ó>   — | j                              ||f¦  «         d S r?   )r  r!  r<  s          r)   rœ   z/TraversalComparatorStrategy.visit_clauseelementz  s$   € ð 	Œ
×Ò˜4 ˜-Ñ(Ô(Ð(Ð(Ð(r*   c                ón   — t          ||d ¬¦  «        D ]!\  }}| j                             ||f¦  «         Œ"d S ©Nr  ©r   r  r!  )	r@   rS   r=  r+  r>  r,  r   ÚlcolÚrcols	            r)   r÷   zHTraversalComparatorStrategy.visit_fromclause_canonical_column_collection  sM   € õ & d¨E¸TÐBÑBÔBð 	,ð 	,‰JˆD�$ØŒJ×Ò˜t T˜lÑ+Ô+Ð+Ð+ð	,ð 	,r*   c                ó   — d S r?   r<   r<  s          r)   Ú*visit_fromclause_derived_column_collectionzFTraversalComparatorStrategy.visit_fromclause_derived_column_collection…  s	   € ð 	ˆr*   c                óØ   — t          t          |¦  «        t          |¦  «        d ¬¦  «        D ]<\  }}||k    r	t          c S | j                             ||         ||         f¦  «         Œ=d S rK  )r   r  r%  r  r!  )	r@   rS   r=  r+  r>  r,  r   ÚlstrÚrstrs	            r)   rÁ   z;TraversalComparatorStrategy.visit_string_clauseelement_dictŠ  s€   € õ &Ý�4‰LŒL�& ™-œ-°4ð
ñ 
ô 
ð 	9ð 	9‰JˆD�$ð �tŠ|ˆ|Ý%Ð%Ð%Ð%ØŒJ×Ò˜t Dœz¨5°¬;Ð7Ñ8Ô8Ð8Ð8ð	9ð 	9r*   c                ó¸   — t          ||d ¬¦  «        D ]F\  }}|�|€	t          c S t          ||d ¬¦  «        D ]!\  }	}
| j                             |	|
f¦  «         Œ"ŒGd S rK  ©r   r%  r  r!  )r@   rS   r=  r+  r>  r,  r   ÚltupÚrtuprD  rE  s              r)   r¸   z6TraversalComparatorStrategy.visit_clauseelement_tuples”  s‰   € õ & d¨E¸TÐBÑBÔBð 	*ð 	*‰JˆD�$Øˆ|˜t˜|Ý%Ð%Ð%Ð%å# D¨$¸$Ð?Ñ?Ô?ð *ð *‘��1Ø”
×!Ò! 1 a &Ñ)Ô)Ð)Ð)ð*ð		*ð 	*r*   c                ón   — t          ||d ¬¦  «        D ]!\  }}| j                             ||f¦  «         Œ"d S rK  rL  rC  s	            r)   r£   z4TraversalComparatorStrategy.visit_clauseelement_listž  óM   € õ    e°tÐ<Ñ<Ô<ð 	&ð 	&‰DˆAˆqØŒJ×Ò˜q !˜fÑ%Ô%Ð%Ð%ð	&ð 	&r*   c                ón   — t          ||d ¬¦  «        D ]!\  }}| j                             ||f¦  «         Œ"d S rK  rL  rC  s	            r)   rª   z5TraversalComparatorStrategy.visit_clauseelement_tuple¤  rY  r*   c                ó8  — |€|d u S t          ¦   «         }|D ]M}t          |¦  «                             |¦  «        D ](} | j        ||fi |¤Žr|                     |¦  «          nŒ)ŒNt	          |¦  «        t	          |¦  «        cxk    ot	          |¦  «        k    nc S r?   )r  Ú
differencer8  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ÐA¸bÐAÐAð Ø—M’M ,Ñ/Ô/Ð/Ø�Eðøõ �9‰~Œ~¥ T¡¤Ð7Ð7Ò7Ð7­c°$©i¬iÒ7Ð7Ð7Ð7Ð7r*   c                ó    —  | j         ||fi |¤ŽS r?   )rb  r<  s          r)   r²   z=TraversalComparatorStrategy.visit_clauseelement_unordered_set¶  s!   € ð 1ˆtÔ0°°uÐCÐCÀÐCÐCÐCr*   c                ón   — t          ||d ¬¦  «        D ]!\  }}| j                             ||f¦  «         Œ"d S rK  rL  rC  s	            r)   rü   z8TraversalComparatorStrategy.visit_fromclause_ordered_set»  rY  r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_stringz(TraversalComparatorStrategy.visit_stringÁ  ó   € ð �uŠ}Ðr*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_string_listz-TraversalComparatorStrategy.visit_string_listÆ  rg  r*   c                ó$  — t          t          |                     ¦   «         ¦  «        t          |                     ¦   «         ¦  «        d¬¦  «        D ]¾\  }}||k    r	t          c S ||         ||         }
}	t	          |t
          ¦  «        }t	          |t
          ¦  «        }|rP|rN|	                     | j        d         g ¦  «        |
                     | j        d         g ¦  «        k    r	t          c S Œ ||k    r	t          c S |	|
k    r	t          c S Œ¿d S )Nr  r  r   r   )r   r  Úkeysr%  rÙ   r   r;  r   )r@   rS   r=  r+  r>  r,  r   ÚlkÚrkÚlvÚrvÚlhcÚrhcs                r)   Úvisit_string_multi_dictz3TraversalComparatorStrategy.visit_string_multi_dictË  s3  € õ "Ý�4—9’9‘;”;ÑÔ¥¨¯
ª
©¬Ñ!5Ô!5Àð
ñ 
ô 
ð 	&ð 	&‰FˆB�ð �RŠxˆxÝ%Ð%Ð%Ð%à˜"”X˜u Rœy�ˆBå˜T¥;Ñ/Ô/ˆCÝ˜U¥KÑ0Ô0ˆCØð &�sð &Ø×$Ò$Ø”M !Ô$ bñô à×&Ò& t¤}°QÔ'7¸Ñ<Ô<ò=ð =õ *Ð)Ð)Ð)ð=ð ˜’�Ý%Ð%Ð%Ð%Ø�r’�Ý%Ð%Ð%Ð%ð ð#	&ð 	&r*   c                ó  — t          |t          ¦  «        }t          |t          ¦  «        }|rO|rM|                     | j        d         g ¦  «        |                     | j        d         g ¦  «        k    rt          S d S ||k    rt          S ||k    S r:  )rÙ   r   r;  r   r%  )	r@   rS   r=  r+  r>  r,  r   rp  rq  s	            r)   Úvisit_multiz'TraversalComparatorStrategy.visit_multiâ  s¡   € õ ˜�{Ñ+Ô+ˆÝ˜¥Ñ,Ô,ˆØð 	!�3ð 	!Ø×"Ò"Ø”˜aÔ  "ñô à×%Ò% d¤m°AÔ&6¸Ñ;Ô;ò<ð <õ &Ð%ð<ð <ð �CŠZˆZÝ!Ð!à˜5’=Ð r*   c                ón   — 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ñ  s^   € õ )Ø˜˜tœ}¨QÔ/ð
ð 
Ø35ð
ð 
å&Ø˜% ¤¨qÔ!1ð
ð 
Ø57ð
ð 
ò
ð 	
r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_booleanz)TraversalComparatorStrategy.visit_booleanú  rg  r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_operatorz*TraversalComparatorStrategy.visit_operatorÿ  rg  r*   c                ó,   — |                      |¦  «        S r?   )Ú_compare_type_affinityr<  s          r)   Ú
visit_typez&TraversalComparatorStrategy.visit_type  s   € ð ×*Ò*¨5Ñ1Ô1Ð1r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_plain_dictz,TraversalComparatorStrategy.visit_plain_dict	  rg  r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_dialect_optionsz1TraversalComparatorStrategy.visit_dialect_options  rg  r*   c                ó6   — |r|r|j         |j         k    S ||k    S r?   )Ú_annotations_cache_keyr<  s          r)   Úvisit_annotations_keyz1TraversalComparatorStrategy.visit_annotations_key  s5   € ð ð 	!�Eð 	!àÔ2ØÔ6ò7ðð
 ˜5’=Ð r*   c                ój   — t          d„ |D ¦   «         ¦  «        t          d„ |D ¦   «         ¦  «        k    S )Nc              3  ó.   K  — | ]\  }}|j         |fV — Œd S r?   ©Ú__code__©rR   ÚfnÚc_keys      r)   rU   zITraversalComparatorStrategy.visit_with_context_options.<locals>.<genexpr>!  s-   è è € Ð@Ð@©i¨b°%�b”k 5Ð)Ð@Ð@Ð@Ð@Ð@Ð@r*   c              3  ó.   K  — | ]\  }}|j         |fV — Œd S r?   r‡  r‰  s      r)   rU   zITraversalComparatorStrategy.visit_with_context_options.<locals>.<genexpr>!  sF   è è € ð J
ð J
Ù%. R¨ˆRŒ[˜%Ð ðJ
ð J
ð J
ð J
ð J
ð J
r*   r¨   r<  s          r)   Úvisit_with_context_optionsz6TraversalComparatorStrategy.visit_with_context_options  sW   € õ Ð@Ð@¸4Ð@Ñ@Ô@Ñ@Ô@ÅEð J
ð J
Ø27ðJ
ñ J
ô J
ñ E
ô E
ò 
ð 	
r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_plain_objz+TraversalComparatorStrategy.visit_plain_obj%  rg  r*   c                ó8   — |€	|�t           S |j        |j        k    S r?   )r%  r  r<  s          r)   Úvisit_named_ddl_elementz3TraversalComparatorStrategy.visit_named_ddl_element*  s$   € ð ˆ<ØÐ Ý%Ð%àŒy˜EœJÒ&Ð&r*   c                ó˜   — t          ||d¬¦  «        D ]6\  \  }}\  }	}
||
k    r	t          c S | j                             ||	f¦  «         Œ7d S ©Nr  r  rU  )r@   rS   r=  r+  r>  r,  r   Úl_clauseÚl_strÚr_clauseÚr_strs              r)   Úvisit_prefix_sequencez1TraversalComparatorStrategy.visit_prefix_sequence3  sx   € õ 5@Ø�% <ð5
ñ 5
ô 5
ð 	8ð 	8Ñ0ÑˆX�uÑ0 ¨%ð ˜Š~ˆ~Ý%Ð%Ð%Ð%à”
×!Ò! 8¨XÐ"6Ñ7Ô7Ð7Ð7ð	8ð 	8r*   c                ó  — t          ||d¬¦  «        D ]r\  \  }}}	}
\  }}}}|
|k    r	t          c S | j                             ||f¦  «         | j                             ||f¦  «         | j                             |	|f¦  «         Œsd S )N)NNNNr  rU  )r@   rS   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ÑIÔIð	0ð 	0ñ 
Ù3ˆX�z 6¨7Ù3ˆX�z 6¨7à˜'Ò!Ð!Ý%Ð%Ð%Ð%ØŒJ×Ò˜x¨Ð2Ñ3Ô3Ð3ØŒJ×Ò˜z¨:Ð6Ñ7Ô7Ð7ØŒJ×Ò˜v vÐ.Ñ/Ô/Ð/Ð/ð	0ð 	0r*   c                ó&   —  | j         |||||fi |¤ŽS r?   rÊ   r<  s          r)   rË   z:TraversalComparatorStrategy.visit_memoized_select_entitiesL  s3   € ð .ˆtÔ-Ø�k 4¨°uð
ð 
Ø@Bð
ð 
ð 	
r*   c                ó  — t          |d„ ¬¦  «        }t          |d„ ¬¦  «        }t          ||d¬¦  «        D ]U\  \  }	}
\  }}|
|k    r	t          c S ||	|
f         |||f         k    r	t          c S | j                             |	|f¦  «         ŒVd S )Nc                ó,   — | d         j         | d         fS r:  ©Úfullname©r·   s    r)   ú<lambda>zCTraversalComparatorStrategy.visit_table_hint_list.<locals>.<lambda>V  s   € °4¸´7Ô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>X  s   €  T¨!¤WÔ%5°t¸A´wÐ$?€ r*   r  r  )r  r   r%  r  r!  )r@   rS   r=  r+  r>  r,  r   Ú	left_keysÚ
right_keysÚltableÚldialectÚrtableÚrdialects                r)   Úvisit_table_hint_listz1TraversalComparatorStrategy.visit_table_hint_listS  sÚ   € õ ˜4Ð%MÐ%MÐNÑNÔNˆ	ÝØÐ?Ð?ð
ñ 
ô 
ˆ
õ 7BØ�z¨\ð7
ñ 7
ô 7
ð 	4ð 	4Ñ2ÑˆV�XÑ 2 ¨ð ˜8Ò#Ð#Ý%Ð%Ð%Ð%Ø�v˜xÐ(Ô)¨U°F¸HÐ3EÔ-FÒFÐFÝ%Ð%Ð%Ð%à”
×!Ò! 6¨6Ð"2Ñ3Ô3Ð3Ð3ð	4ð 	4r*   c                ó   — ||k    S r?   r<   r<  s          r)   Úvisit_statement_hint_listz5TraversalComparatorStrategy.visit_statement_hint_listd  rg  r*   c                ó   — t          ¦   «         ‚r?   rŠ   r<  s          r)   Úvisit_unknown_structurez3TraversalComparatorStrategy.visit_unknown_structurei  s   € õ "Ñ#Ô#Ð#r*   c                ór   — t          ||d¬¦  «        D ]#\  \  }}\  }	}
 | j        ||	fi |¤Žs	t          c S Œ$d S r“  )r   Ú_compare_dml_values_or_cer%  )r@   rS   r=  r+  r>  r,  r   rl  rn  rm  ro  s              r)   rÑ   z4TraversalComparatorStrategy.visit_dml_ordered_valuesn  sr   € õ
 #.Ø�% <ð#
ñ #
ô #
ð 	&ð 	&Ñ‰HˆR�‘h�r˜2ð 2�4Ô1°"°bÐ?Ð?¸BÐ?Ð?ð &Ý%Ð%Ð%Ð%ð&ð	&ð 	&r*   c                ó²   — t          |d¦  «        }t          |d¦  «        }||k    rdS |r | j        ||fi |¤ŽsdS |s||k    rdS  | j        ||fi |¤ŽsdS dS )NrÏ   FT)r4   r8  )r@   rn  ro  r   ÚlvceÚrvces         r)   r¶  z5TraversalComparatorStrategy._compare_dml_values_or_cey  sš   € Ý�rÐ/Ñ0Ô0ˆÝ�rÐ/Ñ0Ô0ˆØ�4Š<ˆ<Ø�5Øð 	Ð,˜$Ô,¨R°Ð:Ð:°rÐ:Ð:ð 	Ø�5Øð 	˜" š(˜(Ø�5Ø#�Ô# B¨Ð1Ð1¨bÐ1Ð1ð 	Ø�5àˆtr*   c                ó  — |�"|� t          |¦  «        t          |¦  «        k    rt          S t          |t          j        ¦  «        r0t          ||¦  «        D ]\  }} | j        ||fi |¤Žs	t          c S Œd S t          |t          j        ¦  «        rt          S t          |                     ¦   «         |                     ¦   «         ¦  «        D ];\  \  }	}\  }
} | j        |	|
fi |¤Žs	t          c S  | j        ||fi |¤Žs	t          c S Œ<d S r?   )r]  r%  rÙ   Úcollections_abcÚSequenceÚzipr¶  rÀ   )r@   rS   r=  r+  r>  r,  r   rn  ro  rl  rm  s              r)   rÔ   z,TraversalComparatorStrategy.visit_dml_values‡  sO  € ð ˆ<˜5˜=­C°©I¬I½¸U¹¼Ò,CÐ,CÝ!Ð!å�d�OÔ4Ñ5Ô5ð 	*Ý˜d EÑ*Ô*ð *ð *‘��BØ5�tÔ5°b¸"ÐCÐCÀÐCÐCð *Ý)Ð)Ð)Ð)ð*ð*ð *õ ˜�Ô7Ñ8Ô8ð 	*Ý!Ð!õ '*¨$¯*ª*©,¬,¸¿º¹¼Ñ&FÔ&Fð *ð *Ñ"‘��R™(˜2˜rØ5�tÔ5°b¸"ÐCÐCÀÐCÐCð *Ý)Ð)Ð)Ð)Ø5�tÔ5°b¸"ÐCÐCÀÐCÐCð *Ý)Ð)Ð)Ð)ð*ð*ð *r*   c           	     óÈ   — t          ||d ¬¦  «        D ]N\  }}|�|€	t          c S t          ||d ¬¦  «        D ])\  }	}
 | j        |||	||
fi |¤Žt          u rt          c c S Œ*ŒOd S rK  )r   r%  rÔ   )r@   rS   r=  r+  r>  r,  r   ÚlseqÚrseqÚldÚrds              r)   rá   z2TraversalComparatorStrategy.visit_dml_multi_valuesž  s¾   € õ & d¨E¸TÐBÑBÔBð 	*ð 	*‰JˆD�$Øˆ|˜t˜|Ý%Ð%Ð%Ð%å% d¨D¸DÐAÑAÔAð *ð *‘��Bà)�DÔ)Ø  +¨r°<Àðð ØGIðð õ &ð&ð &õ
 *Ð)Ð)Ð)Ð)Ð)ð&ð*ð		*ð 	*r*   c                ó¬   — |j         |j         u r@t          j        |j         ¦  «        r$ | j        |j        |j        fi |¤ŽrddgS t
          S dgS t
          S )Nr)  Úclauses)r)  r   Úis_associativerb  rÄ  r%  ©r@   r+  r,  r   s       r)   Úcompare_expression_clauselistz9TraversalComparatorStrategy.compare_expression_clauselist®  st   € ØŒ=˜EœNÐ*Ð*ÝÔ'¨¬Ñ6Ô6ð $Ø4�4Ô4Ø”L %¤-ðð Ø35ðð ð *ð '¨	Ð2Ð2å)Ð)à"�|Ð#å!Ð!r*   c                ó    —  | j         ||fi |¤ŽS r?   )rÇ  rÆ  s       r)   Úcompare_clauselistz.TraversalComparatorStrategy.compare_clauselist¼  s   € Ø1ˆtÔ1°$¸ÐDÐDÀÐDÐDÐDr*   c                óH  — |j         |j         k    rŒt          j        |j         ¦  «        ro | j        |j        |j        fi |¤Žr | j        |j        |j        fi |¤Žs2 | 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_commutativer8  r+  r,  r%  rÆ  s       r)   Úcompare_binaryz*TraversalComparatorStrategy.compare_binary¿  sÜ   € ØŒ=˜EœNÒ*Ð*ÝÔ'¨¬Ñ6Ô6ð .à&�DÔ& t¤y°%´*ÐCÐCÀÐCÐCð	*à*˜Ô*¨4¬:°u´{ÐIÐIÀbÐIÐIð	*ð '�DÔ& t¤y°%´+ÐDÐDÀÐDÐDð		*ð
 +˜Ô*¨4¬:°u´zÐHÐHÀRÐHÐHð	*ð CÐBÐBÐBå)Ð)à" HÐ-Ð-å!Ð!r*   c                óž   — |                      dd¦  «        }|                      dd¦  «        }|rg }nddg}|s|                     d¦  «         |S )NÚcompare_keysTÚcompare_valuesÚcallabler½   r¼   )Úpopr!  )r@   r+  r,  r   rÏ  rÐ  Úomits          r)   Úcompare_bindparamz-TraversalComparatorStrategy.compare_bindparamÑ  sc   € Ø—v’v˜n¨dÑ3Ô3ˆØŸšÐ 0°$Ñ7Ô7ˆàð 	)ØˆDˆDð  Ð(ˆDàð 	Ø�KŠK˜ÑÔÐàˆr*   N)r   r   r   r   r   r   r    r!   )2rx   ry   rz   r|   r  r  r'   r8  rí   rã   rF  r®   rœ   r÷   rP  rÁ   r¸   r£   rª   rb  r²   rü   rf  ri  rr  rt  rv  rx  rz  r}  r  r�  r„  r�  r�  r‘  r˜  rÈ   rË   r°  r²  r´  rÑ   r¶  rÔ   rá   rÇ  rÉ  rÍ  rÔ  r<   r*   r)   r&   r&   Ò  sÛ  € € € € € Ø,€Iðð ð ð(ð (ð (ð\ð \ð \ð \ð|4ð 4ð 4ð"ð "ð "ð
ð 
ð 
ð&ð &ð &ð"&ð &ð &ð.)ð )ð )ð
,ð ,ð ,ðð ð ð
9ð 9ð 9ð*ð *ð *ð&ð &ð &ð&ð &ð &ð
8ð 
8ð 
8ðDð Dð Dð
&ð &ð &ðð ð ð
ð ð ð
&ð &ð &ð.!ð !ð !ð
ð 
ð 
ðð ð ð
ð ð ð
2ð 2ð 2ð
ð ð ð
ð ð ð
	!ð 	!ð 	!ð
ð 
ð 
ðð ð ð
'ð 'ð 'ð	8ð 	8ð 	8ð0ð 0ð 0ð
ð 
ð 
ð4ð 4ð 4ð"ð ð ð
$ð $ð $ð
	&ð 	&ð 	&ðð ð ð*ð *ð *ð.*ð *ð *ð "ð "ð "ðEð Eð Eð"ð "ð "ð$ð ð ð ð r*   r&   c                  ó*   — e Zd Z	 dd„Zd„ Zd„ Zd„ ZdS )	r%   Tr<   c                óô   — |f}|r||v r||                               |¦  «        }|D ]K}|r|                     |¦  «        r	t          c S t          |¦  «        t          |¦  «        k    r	t          c S ŒLt          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â  s�   € ð �Xˆ
Øð 	>˜5 KÐ/Ð/Ø$ UÔ+×1Ò1°*Ñ=Ô=ˆJàð 	"ð 	"ˆCØð %˜t×2Ò2°3Ñ7Ô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           nt          S r?   )r&  r%  rÆ  s       r)   Úcompare_tablez+ColIdentityComparatorStrategy.compare_tableü  s   € ð !%¨  �}ˆ}µ>ÐAr*   N)Tr<   )rx   ry   rz   rÝ  rà  rã  rå  r<   r*   r)   r%   r%   á  s]   € € € € € à9;ð"ð "ð "ð "ð(>ð >ð >ð>ð >ð >ðBð Bð Bð Bð Br*   r%   )r   r   r   r   r   r   r    r!   )r+   r,   r    r-   )6Ú
__future__r   Úcollectionsr   Úcollections.abcÚabcr»  ró   r   r)  r}   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'   r9   r;   r�   rw   rˆ   r—   r5   rç   ré   r7   Úpreload_moduler  ÚMemoizedSlotsr&   r%   r<   r*   r)   ú<module>rò     sÙ  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø *Ð *Ð *Ð *Ð *Ð *Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à�”˜OÑ,Ô,€Ø€ØÐ ð.ð .ð .ð .ðð ð ð ð$oð oð oð oð oÐ)ñ oô oð oðdð ð ð ð ˜Nñ ô ð ð(ð ð ð#4ð #4ð #4ð #4ð #4Ð+ñ #4ô #4ð #4ðLzð zð zð zð zÐ2ñ zô zð zðz *Ð)Ñ+Ô+€ðð ð ðDð Dð Dð Dð DÐ0ñ Dô Dð DðN &Ð%Ñ'Ô'€ð €ÔÐ.Ñ/Ô/ðð ñ 0Ô/ððLð Lð Lð Lð LÐ"6¸Ô8Jñ Lô Lð Lð^Bð Bð Bð Bð BÐ$?ñ Bô Bð Bð Bð Br*   