Ë
    r™ãjä ã            	      ór  — 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 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/ dd*l.m0Z0 dd+l.m1Z1 dd,l2m3Z3 dd-l2m4Z4 dd.l2m5Z5 dd/l2m6Z6 dd0l2m7Z7 dd1l2m8Z8 dd2l2m9Z9 dd3l2m:Z: dd4l2m;Z; dd5l<m=Z= dd6l>m?Z? dd7l>m@Z@ dd8lAmBZB dd9lAmCZC dd:lAmDZD dd;lAmEZE dd<lAmFZF dd=lAmGZG dd>lAmHZH dd?lAmIZI dd@lJmKZK ddAlLmMZM ddBlLmNZN ddClLmOZO erxddDlPmQZQ ddElPmRZR ddFlmSZS ddGlTmUZU ddHlVmWZW ddIlXmYZY ddJlXmZZZ ddKl[m\Z\ ddLl]m^Z^ ddMl.m_Z_ ddNl`maZa ddOl<mbZb ddPl>mcZc ddQlAmdZd ddRlAmeZe ddSlAmfZf ddTlAmgZg ddUlAmhZh ddVlAmiZi ddWljmkZk  edXe¬Y«      Zl eNdZ«      ZmejÜ                  ZoeGjà                  Zp G d[„ d\«      Zq ejä                  d]d^i«      Zs G d_„ d`e7«      Zt G da„ dbet«      Zu G dc„ ddet«      Zv G de„ df«      Zw G dg„ dhew«      Zx G di„ djew«      Zye(j,                  jn                  jõ                  dkdl«       G dm„ dnev«      «       Z{ G do„ dpe?e:eIeOem      «      Z|e(j,                  jn                  jõ                  dkdq«       G dr„ dseueB«      «       Z}e(j,                  jn                  jõ                  dkdt«       G du„ dveveH«      «       Z~	 	 d‰	 	 	 	 	 	 	 dŠdw„Z	 	 	 	 d‹dx„Z€	 	 	 	 d‹dy„Z�	 dŒ	 	 	 	 	 d�dz„Z‚ G d{„ d|«      Zƒ G d}„ d~eƒ«      Z„ G d„ d€eƒ«      Z… G d�„ d‚eƒ«      Z† G dƒ„ d„e†«      Z‡ G d…„ d†e†«      Zˆ G d‡„ dˆeˆ«      Z‰y)Žé    )ÚannotationsN)ÚAbstractSet)ÚAny)Úcast)ÚDict)ÚIterable)ÚList)ÚOptional)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Ú
interfaces)Úloading)Ú_is_aliased_class)ÚORMColumnDescription)ÚORMColumnsClauseRole)ÚPathRegistry)Ú_entity_corresponds_to)Ú_ORMJoin)Ú_TraceAdaptRole)ÚAliasedClass)ÚBundle)Ú
ORMAdapter)ÚORMStatementAdapteré   )Úexc)Úfuture)Úinspect)Úsql)Úutil)Ú	coercions)Ú
expression)Úroles)Úvisitors)Úis_dml)Úis_insert_update)Úis_select_base)Ú_expand_cloned©Ú_from_objects)Ú_select_iterables)ÚCacheableOptions)ÚCompileState)Ú
Executable)ÚExecutableStatement)Ú
Generative)ÚOptions)Ú
UpdateBase)ÚGroupedElement)Ú
TextClause)ÚCompoundSelectState)ÚLABEL_STYLE_DISAMBIGUATE_ONLY)ÚLABEL_STYLE_NONE)ÚLABEL_STYLE_TABLENAME_PLUS_COL)ÚSelect)ÚSelectLabelStyle)ÚSelectState)ÚTypedReturnsRows)ÚInternalTraversal)ÚTupleAny)ÚTypeVarTuple)ÚUnpack)Ú_InternalEntityType)ÚOrmExecuteOptionsParameter)Ú	_PostLoad)ÚMapper)ÚQuery)Ú_BindArguments)ÚSession)ÚResult)Ú_CoreSingleExecuteParams)Ú_ColumnsClauseArgument)ÚSQLCompiler)Ú_DMLTableElement)ÚColumnElement)Ú_JoinTargetElement)Ú_LabelConventionCallable)Ú_SetupJoinsElement)ÚExecutableReturnsRows)Ú
FromClause)Ú
SelectBase)Ú
TypeEngineÚ_T)ÚboundÚ_Tsc                  óŒ   — e Zd ZU dZded<   ded<   ded<   edd„«       Z G d	„ d
e«      Z	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z	dd„Z
y)ÚQueryContext)Útop_level_contextÚcompile_stateÚqueryÚuser_passed_queryÚparamsÚload_optionsÚbind_argumentsÚexecution_optionsÚsessionÚ	autoflushÚpopulate_existingÚinvoke_all_eagersÚversion_checkÚrefresh_stateÚcreate_eager_joinsÚpropagated_loader_optionsr   ÚrunidÚpartialsÚpost_load_pathsÚidentity_tokenÚ	yield_perÚloaders_require_bufferingÚloaders_require_uniquingÚintro   zDict[PathRegistry, _PostLoad]rq   Ú_ORMCompileStater`   c                ó@   — t        | j                  j                  «      S ©N)Úboolr`   Úmulti_row_eager_loaders©Úselfs    úa/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/orm/context.pyÚrequires_uniquingzQueryContext.requires_uniquingŒ   s   € ä�D×&Ñ&×>Ñ>Ó?Ð?ó    c                  ó<   — 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y)ú!QueryContext.default_load_optionsFTN)Ú__name__Ú
__module__Ú__qualname__Ú_only_return_tuplesÚ_populate_existingÚ_version_checkÚ_invoke_all_eagersÚ
_autoflushÚ_identity_tokenÚ
_yield_perÚ_refresh_stateÚ_lazy_loaded_fromÚ_legacy_uniquingÚ_sa_top_level_orm_contextÚ_is_user_refresh© r€   r~   Údefault_load_optionsr‚   �   sE   „ Ø#ÐØ"ÐØˆØ!ÐØˆ
ØˆØˆ
ØˆØ ÐØ ÐØ$(Ð!Ø Ñr€   r“   Nc	                ó¨  ‡ — |‰ _         |xs t        j                  ‰ _        |xs t        j                  ‰ _        |‰ _        |‰ _        |‰ _        |‰ _        d‰ _	        d‰ _
        |‰ _        |j                  ‰ _        |j                  j                  }	|j                  }
t!        ˆ fd„t#        |	|
«      D «       «      ‰ _        t'        |j(                  «      ‰ _        |j*                  ‰ _        |j.                  ‰ _        |j2                  ‰ _        |j6                  ‰ _        |j:                  ‰ _        |j>                  ‰ _         |jB                  ‰ _"        y )NFc              3  ó`   •K  — | ]%  \  }}|j                   r|j                  ‰|«      –— Œ' y ­wry   )Úpropagate_to_loadersÚ'_adapt_cached_option_to_uncached_option)Ú.0ÚoptÚuncached_optr}   s      €r~   ú	<genexpr>z(QueryContext.__init__.<locals>.<genexpr>Ô   s3   øè ø€ ò /
á!��\Ø×'Ò'ð ×7Ñ7¸¸l×Kñ/
ùs   ƒ+.)#rd   r%   Ú
EMPTY_DICTrf   re   r`   ra   rb   rg   rt   ru   rc   r�   r_   Úselect_statementÚ_with_optionsÚtupleÚziprn   Údictr   rŠ   rh   r‡   ri   r‰   rj   rˆ   rk   r�   rl   rŒ   rs   r‹   rr   )r}   r`   Ú	statementrb   rc   rg   rd   rf   re   Úcached_optionsÚuncached_optionss   `          r~   Ú__init__zQueryContext.__init__ž   s)  ø€ ð, )ˆÔØ!2Ò!E´d·o±oˆÔØ,Ò?´·±ˆÔØ*ˆÔØˆŒ
ð "3ˆÔàˆŒØ).ˆÔ&Ø(-ˆÔ%ØˆŒØ!-×!GÑ!GˆÔà&×7Ñ7×EÑEˆØ,×:Ñ:Ðô */ó /
ä%(¨Ð9IÓ%Jô/
ó *
ˆÔ&ô ˜}×7Ñ7Ó8ˆŒà%×0Ñ0ˆŒØ!-×!@Ñ!@ˆÔØ!-×!@Ñ!@ˆÔØ)×8Ñ8ˆÔØ)×8Ñ8ˆÔØ%×0Ñ0ˆŒØ*×:Ñ:ˆÕr€   c                ó"   — | j                   xs | S ry   )r_   r|   s    r~   Ú_get_top_level_contextz#QueryContext._get_top_level_contextä   s   € Ø×%Ñ%Ò-¨Ð-r€   )Úreturnrz   )NN)r`   r2   r¢   úLUnion[Select[Unpack[TupleAny]], FromStatement[Unpack[TupleAny]], UpdateBase]rb   r©   rc   rN   rg   rL   rd   zQUnion[Type[QueryContext.default_load_options], QueryContext.default_load_options]rf   z$Optional[OrmExecuteOptionsParameter]re   zOptional[_BindArguments])r¨   r^   )rƒ   r„   r…   Ú	__slots__Ú__annotations__Úpropertyr   r6   r“   r¥   r§   r’   r€   r~   r^   r^   l   sª   … ð€Ið6 ƒJØ2Ó2Ø#Ó#àò@ó ð@ô!˜wô !ðB CGØ37ð)D;à#ðD;ð
ðD;ð
ðD;ð )ðD;ð ðD;ð
ðD;ð& @ð'D;ð( 1ó)D;ôL.r€   r^   Ú _result_disable_adapt_to_contextTc                  óz   ‡ — e Zd ZdZd„ Ze	 	 	 	 	 	 	 	 dˆ fd„«       Zed„ «       Ze	 	 dd„«       Zed„ «       Z	ˆ xZ
S )	Ú_AbstractORMCompileStateFc               ó¸  — i | _         |€i | _        |sJ ‚y |j                  x| _        }|r7d|d<   |r/|j                  D ]   }|j                  sŒ|j                  | «       Œ" y |j                  dd«      ry |j                  d   }	 |d   }|j                  D ]-  }|j                  sŒ|j                  sŒ|j                  | «       Œ/ 	 d|d<   y # t        $ r Y Œw xY w)NTÚtoplevel_ormFr   Ú
selectable)
r   Úglobal_attributesÚ_global_attributesrž   Ú_is_criteria_optionÚprocess_compile_stateÚgetÚstackÚ_is_compile_stateÚKeyError)	r}   r¢   ÚcompilerÚtoplevelÚprocess_criteria_for_toplevelÚgar™   Ústack_0Útoplevel_stmts	            r~   Ú_init_global_attributesz0_AbstractORMCompileState._init_global_attributesð   sý   € ð ˆŒàÐð &(ˆDÔ"ÙˆO�8Øà*2×*EÑ*EÐEˆDÔ" RáØ!%ˆBˆ~Ñá,Ø$×2Ñ2ò 8�CØ×.Ó.Ø×1Ñ1°$Õ7ð8ð Ø�V‰V�N EÔ*Øà—.‘. Ñ#ˆð	4Ø# LÑ1ˆMð %×2Ñ2ò 4�Ø×(Ó(¨S×-DÓ-DØ×-Ñ-¨dÕ3ñ4ð "ˆˆ>Òøô ò 	Ùð	ús   ÂC Ã	CÃCc                ó&   •— t        ‰| �  ||fi |¤ŽS )aÇ  Create a context for a statement given a :class:`.Compiler`.

        This method is always invoked in the context of SQLCompiler.process().

        For a Select object, this would be invoked from
        SQLCompiler.visit_select(). For the special FromStatement object used
        by Query to indicate "Query.from_statement()", this is called by
        FromStatement._compiler_dispatch() that would be called by
        SQLCompiler.process().
        )ÚsuperÚcreate_for_statement)Úclsr¢   r»   ÚkwÚ	__class__s       €r~   rÄ   z-_AbstractORMCompileState.create_for_statement  s   ø€ ô" ‰wÑ+¨I°xÑFÀ2ÑFÐFr€   c                ó   — t        «       ‚ry   ©ÚNotImplementedError)rÅ   rg   r¢   rc   rf   re   Úis_pre_events          r~   Úorm_pre_session_execz-_AbstractORMCompileState.orm_pre_session_exec*  ó   € ô "Ó#Ð#r€   c                ó^   — |j                  ||xs i |¬«      }| j                  ||||||«      S )N)rf   )ÚexecuteÚorm_setup_cursor_result)rÅ   rg   r¢   rc   rf   re   ÚconnÚresults           r~   Úorm_execute_statementz._AbstractORMCompileState.orm_execute_statement6  sJ   € ð —‘Ø�v’| Ð7Hð ó 
ˆð ×*Ñ*ØØØØØØó
ð 	
r€   c                ó   — t        «       ‚ry   rÉ   ©rÅ   rg   r¢   rc   rf   re   rÒ   s          r~   rÐ   z0_AbstractORMCompileState.orm_setup_cursor_resultL  rÍ   r€   )r¢   r3   r»   rP   rÆ   r   r¨   r2   )r¨   rM   )rƒ   r„   r…   Úis_dml_returningrÁ   ÚclassmethodrÄ   rÌ   rÓ   rÐ   Ú__classcell__©rÇ   s   @r~   r¯   r¯   í   s•   ø„ ØÐò%"ðN ðGàðGð ðGð ð	Gð
 
ôGó ðGð$ ñ	$ó ð	$ð ð
ð 
ò
ó ð
ð* ñ	$ó ô	$r€   r¯   c                  ó0   — e Zd ZdZed„ «       Zed„ «       Zy)Ú_AutoflushOnlyORMCompileStatez>ORM compile state that is a passthrough, except for autoflush.c                ó¨   — t         j                  j                  ddh||j                  «      \  }}|s|j                  r|j	                  «        |||fS )NÚ_sa_orm_load_optionsrh   )r^   r“   Úfrom_execution_optionsÚ_execution_optionsrŠ   )rÅ   rg   r¢   rc   rf   re   rË   rd   s           r~   rÌ   z2_AutoflushOnlyORMCompileState.orm_pre_session_exec\  sc   € ô ×-Ñ-×DÑDØ"àðð Ø×(Ñ(ó
ñ	
ØØñ  × 7Ò 7Ø×ÑÔ àÐ+¨VÐ3Ð3r€   c                ó   — |S ry   r’   rÕ   s          r~   rÐ   z5_AutoflushOnlyORMCompileState.orm_setup_cursor_resulty  s	   € ð ˆr€   N)rƒ   r„   r…   Ú__doc__r×   rÌ   rÐ   r’   r€   r~   rÛ   rÛ   Y  s+   „ ÙHàñ4ó ð4ð8 ñ	ó ñ	r€   rÛ   c                  ó�  — e Zd ZU  G d„ de«      Zded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   eZded<   dZd „ Z	e
	 	 	 	 	 	 	 	 d-d!„«       Ze
	 	 	 	 	 	 	 	 	 	 d.d"„«       Zd#„ Ze
	 	 	 	 	 	 d/d$„«       Ze
d%„ «       Ze
d&„ «       Ze
d'„ «       Zed(„ «       Zd)„ Zd*„ Ze
d+„ «       Zy,)0rw   c                  óZ  — e Zd Zdej                  fdej                  fdej                  fdej
                  fdej                  fdej                  fdej                  fdej                  fd	ej                  fd
ej                  fdej                  fgZdZdZ	dZ
eZdZdZdZdZdZdZdZy)ú(_ORMCompileState.default_compile_optionsÚ_use_legacy_query_styleÚ_for_statementÚ_bake_okÚ_current_pathÚ_enable_single_critÚ_enable_eagerloadsÚ_only_load_propsÚ_set_base_aliasÚ_for_refresh_stateÚ_render_for_subqueryÚ_is_starFTN)rƒ   r„   r…   rB   Ú
dp_booleanÚdp_has_cache_keyÚdp_plain_objÚ_cache_key_traversalrå   ræ   rç   Ú_path_registryrè   ré   rê   rë   rì   rí   rî   rï   r’   r€   r~   Údefault_compile_optionsrä   ‡  sð   „ à&Ð(9×(DÑ(DÐEØÐ0×;Ñ;Ð<ØÐ*×5Ñ5Ð6ØÐ/×@Ñ@ÐAØ"Ð$5×$@Ñ$@ÐAØ!Ð#4×#?Ñ#?Ð@ØÐ!2×!?Ñ!?Ð@ØÐ 1× <Ñ <Ð=Ø!Ð#4×#?Ñ#?Ð@Ø#Ð%6×%AÑ%AÐBØÐ*×5Ñ5Ð6ð 
Ðð& #(Ðð
 ˆàˆØ&ˆØ"ÐØ!ÐØÐØˆØ"ÐØ$ÐØ‰r€   rõ   zDict[Any, Any]r   r³   r©   r¢   z@Union[Select[Unpack[TupleAny]], FromStatement[Unpack[TupleAny]]]r�   úList[_QueryEntity]Ú	_entitiesz%Dict[_InternalEntityType, ORMAdapter]Ú_polymorphic_adaptersz=Union[Type[default_compile_options], default_compile_options]Úcompile_optionszOptional[_QueryEntity]Ú_primary_entityrz   Úuse_legacy_query_stylerT   Ú_label_conventionzList[ColumnElement[Any]]Úprimary_columnsÚsecondary_columnszSet[ColumnElement[Any]]Údedupe_columnszList[TupleAny]rm   r   Úcurrent_pathFc                ó   — t        «       ‚ry   rÉ   )r}   ÚargrÆ   s      r~   r¥   z_ORMCompileState.__init__Ç  ó   € Ü!Ó#Ð#r€   c                óX   —  | j                   t        d|«      f|j                   |dœ|¤ŽS )NúUnion[Select, FromStatement])r¼   r»   )Ú_create_orm_contextr   r¸   )rÅ   r¢   r»   rÆ   s       r~   rÄ   z%_ORMCompileState.create_for_statementÊ  s@   € ð 'ˆs×&Ñ&ÜÐ/°Ó;ð
à!Ÿ™Ð'Øñ
ð ñ	
ð 	
r€   c               ó   — t        «       ‚ry   rÉ   )rÅ   r¢   r¼   r»   rÆ   s        r~   r  z$_ORMCompileState._create_orm_contextØ  s   € ô "Ó#Ð#r€   c                ój   — | j                   }||vr#|j                  |«       |j                  |«       y y ry   )rÿ   ÚaddÚappend)r}   ÚobjÚcol_collectionÚdedupes       r~   Ú_append_dedupe_col_collectionz._ORMCompileState._append_dedupe_col_collectionã  s3   € Ø×$Ñ$ˆØ�fÑØ�J‰J�sŒOØ×!Ñ! #Õ&ð r€   c                ó<   — |rdd„}|S t        j                  |«      S )Nc                ó"   — |r|S t        | d«      S )NÚkey)Úgetattr)ÚcolÚcol_names     r~   Únamez8_ORMCompileState._column_naming_convention.<locals>.nameï  s   € ÙØ#�Oä" 3¨Ó.Ð.r€   ry   )r@   Ú_column_naming_convention)rÅ   Úlabel_styleÚlegacyr  s       r~   r  z*_ORMCompileState._column_naming_conventioné  s$   € ñ ó/ð ˆKä×8Ñ8¸ÓEÐEr€   c                ó   — t        |«      S ry   )Ú_column_descriptions©rÅ   r¢   s     r~   Úget_column_descriptionsz(_ORMCompileState.get_column_descriptionsù  s   € ä# IÓ.Ð.r€   c                óÞ  — t         j                  j                  dh d£||j                  «      \  }}d|v r5|d   }|j                  j                  j                  |j                  |«      }|st        }n|j                  t        «      }|j                  r|j                  d|j                  i«      }t        |j                  dd «      rHt        |j                  j                  «      dkD  r&|j                  dd«      �|j                  d d	d
œ«      }||d<   	 |j                  d   }	|	r|	j                   |d<   	 |s|j$                  r|j%                  «        |||fS # t"        $ r J d«       ‚w xY w)NrÝ   >   rh   rs   rr   ri   Úsa_top_level_orm_contextr  rs   rè   é
   Úcompiled_cacheTz#excess depth for ORM loader options)r   Ú_cache_disable_reasonÚclauseÚplugin_subjectÚmapperz0statement had 'orm' plugin but no plugin_subject)r^   r“   rÞ   rß   ra   Ú
merge_withrf   Ú_orm_load_exec_optionsÚunionrŒ   r  Ú_compile_optionsÚlenrè   r·   Ú_propagate_attrsr$  rº   rŠ   )
rÅ   rg   r¢   rc   rf   re   rË   rd   Úctxr#  s
             r~   rÌ   z%_ORMCompileState.orm_pre_session_execý  s›  € ô ×-Ñ-×DÑDØ"òð Ø×(Ñ(ó
ñ	
ØØð( &Ð):Ñ:Ø#Ð$>Ñ?ˆCØ #§	¡	× <Ñ <× GÑ GØ×%Ñ%Ð'8ó!Ðñ !Ü 6Ñà 1× 7Ñ 7Ô8NÓ OÐð ×"Ò"Ø 1× 7Ñ 7Ø˜l×5Ñ5Ð6ó!Ðô
 �I×.Ñ.°ÀÔFÜ�I×.Ñ.×<Ñ<Ó=ÀÒBØ!×%Ñ%Ð&6¸Ó=ÐIð "×'Ñ'à*.ð2-ñóð ð $-ˆ�xÑ ð	AØ&×7Ñ7Ð8HÑIˆNñ Ø+9×+@Ñ+@�˜xÒ(á × 7Ò 7Ø×ÑÔ àÐ+¨VÐ3Ð3øô ò 	MØLÐLÓL�5ð	Mús   ÄE ÅE,c           
     ó  — |j                   }|j                  j                  }|j                  dt        j
                  «      }	|j                  j                  r|S t	        ||||||	||«      }
t        j                  ||
«      S )NrÝ   )
ÚcontextÚcompiledr`   r·   r^   r“   rù   rï   r   Ú	instances)rÅ   rg   r¢   rc   rf   re   rÒ   Úexecution_contextr`   rd   Úquerycontexts              r~   rÐ   z(_ORMCompileState.orm_setup_cursor_resultW  s‰   € ð #ŸN™NÐØ)×2Ñ2×@Ñ@ˆð )×,Ñ,Ø"¤L×$EÑ$Eó
ˆð ×(Ñ(×1Ò1ØˆMä#ØØØØØØØØó	
ˆô × Ñ  ¨Ó6Ð6r€   c                ób   — | j                   D �cg c]  }t        |t        «      sŒ|‘Œ c}S c c}w )zºreturn all _MapperEntity objects in the lead entities collection.

        Does **not** include entities that have been replaced by
        with_entities(), with_only_columns()

        )r÷   Ú
isinstanceÚ_MapperEntity)r}   Úents     r~   Ú_lead_mapper_entitiesz&_ORMCompileState._lead_mapper_entities|  s.   € ð  Ÿ>™>ö
Ø¬Z¸¼]Õ-KŠCò
ð 	
ùò 
s   �,¥,c           
     ó  — |j                   sz|j                  j                  | j                  vrW|j                  j	                  «       D ]9  }| j                  |t        t        j                  ||j                  |¬«      «       Œ; yyy)aû  given MapperEntity or ORMColumnEntity, setup polymorphic loading
        if called for by the Mapper.

        As of #8168 in 2.0.0rc1, polymorphic adapters, which greatly increase
        the complexity of the query creation process, are not used at all
        except in the quasi-legacy cases of with_polymorphic referring to an
        alias and/or subquery. This would apply to concrete polymorphic
        loading, and joined inheritance where a subquery is
        passed to with_polymorphic (which is completely unnecessary in modern
        use).

        TODO: What is a "quasi-legacy" case?   Do we need this method with
        2.0 style select() queries or not?   Why is with_polymorphic referring
        to an alias or subquery "legacy" ?

        )Úequivalentsr²   N)
Úis_aliased_classr$  Úpersist_selectablerø   Úiterate_to_rootÚ"_mapper_loads_polymorphically_withr   r   ÚWITH_POLYMORPHIC_ADAPTERÚ_equivalent_columns)r}   Úext_infor²   Úmps       r~   Ú _create_with_polymorphic_adapterz1_ORMCompileState._create_with_polymorphic_adapterˆ  s�   € ð$ ×)Ò)Ø—‘×2Ñ2Ø×-Ñ-ñ.ð —o‘o×5Ñ5Ó7ò 	�Ø×7Ñ7ØÜÜ'×@Ñ@ØØ$&×$:Ñ$:Ø#-ô	õñ	ð.ð *r€   c                óª   — |j                   xs |gD ]?  }|| j                  |<   |j                  «       D ]  }|| j                  |j                  <   Œ ŒA y ry   )Ú_with_polymorphic_mappersrø   r;  Úlocal_table)r}   r$  ÚadapterÚm2Úms        r~   r<  z3_ORMCompileState._mapper_loads_polymorphically_with©  s^   € Ø×2Ñ2Ò>°v°hò 	DˆBØ-4ˆD×&Ñ& rÑ*à×'Ñ'Ó)ò D�Ø<C�×*Ñ*¨1¯=©=Ò9ñDñ	Dr€   c                ó   — t        d«      ‚)Nz0this method only works for ORMSelectCompileStaterÉ   )rÅ   ra   r  s      r~   Ú_create_entities_collectionz,_ORMCompileState._create_entities_collection°  s   € ä!Ø>ó
ð 	
r€   N)r¢   r3   r»   rP   rÆ   r   r¨   rw   )
r¢   r  r¼   rz   r»   úOptional[SQLCompiler]rÆ   r   r¨   rw   )r  r?   r  rz   r¨   rT   )rƒ   r„   r…   r1   rõ   r«   rô   r   Ú_has_mapper_entitiesr¥   r×   rÄ   r  r  r  r  rÌ   rÐ   r¬   r6  rA  r<  rI  r’   r€   r~   rw   rw   †  s¹  … ô#Ð"2ô #ðJ ÓØ%Ó%ðó ðó ð "Ó!Ø@Ó@ðó ð ,Ó+Ø Ó Ø/Ó/Ø-Ó-Ø/Ó/Ø+Ó+ðó ð "0€L�,Ó/Ø Ðò$ð ð
àð
ð ð
ð ð	
ð
 
ò
ó ð
ð ð$à/ð$ð ð	$ð
 (ð$ð ð$ð 
ò$ó ð$ò'ð ðFØ*ðFØ48ðFà	!òFó ðFð ñ/ó ð/ð ñW4ó ðW4ðr ñ"7ó ð"7ðH ñ	
ó ð	
òòBDð ñ
ó ñ
r€   rw   c                  ó&   — e Zd ZdZdZd„ Zd„ Zd„ Zy)Ú_DMLReturningColFilterzûa base for an adapter used for the DML RETURNING cases

    Has a subset of the interface used by
    :class:`.ORMAdapter` and is used for :class:`._QueryEntity`
    instances to set up their columns as used in RETURNING for a
    DML statement.

    )r$  ÚcolumnsÚ__weakref__c                ó¬   — |� |j                   |j                   ur|| _        n|| _        t        j                  | j                  «      x| _        | _        y ry   )rD  r$  r%   ÚWeakPopulateDictÚadapt_check_presentrN  )r}   Útarget_mapperÚimmediate_dml_mappers      r~   r¥   z_DMLReturningColFilter.__init__Ã  sU   € à Ð,Ø×)Ñ)Ø'×3Ñ3ñ4ð /ˆD�Kð (ˆDŒKÜ&*×&;Ñ&;Ø×$Ñ$ó'
ð 	
ˆŒ�t•|r€   c                óf   — t        j                  |«      D ]  }| j                  |«      }|€Œ|c S  y ry   )Úsql_utilÚ_find_columnsrR  )r}   r  Ú	as_filterÚccÚc2s        r~   Ú__call__z_DMLReturningColFilter.__call__Ò  s;   € Ü×(Ñ(¨Ó-ò 	ˆBØ×)Ñ)¨"Ó-ˆBØ‰~Ø’
ð	ð
 r€   c                ó   — t        «       ‚ry   rÉ   )r}   r  s     r~   rR  z*_DMLReturningColFilter.adapt_check_presentÚ  r  r€   N)rƒ   r„   r…   rá   rª   r¥   r[  rR  r’   r€   r~   rM  rM  ·  s   „ ñð 5€Iò
òó$r€   rM  c                  ó   — e Zd ZdZd„ Zy)Ú _DMLBulkInsertReturningColFiltera[  an adapter used for the DML RETURNING case specifically
    for ORM bulk insert (or any hypothetical DML that is splitting out a class
    hierarchy among multiple DML statements....ORM bulk insert is the only
    example right now)

    its main job is to limit the columns in a RETURNING to only a specific
    mapped table in a hierarchy.

    c                ó¢   — | j                   }|j                  j                  |d «      }|€y |j                  j                  j                  |«      S ry   )r$  Ú_columntopropertyr·   rD  ÚcÚcorresponding_column©r}   r  r$  Úprops       r~   rR  z4_DMLBulkInsertReturningColFilter.adapt_check_presenté  sH   € Ø—‘ˆØ×'Ñ'×+Ñ+¨C°Ó6ˆØˆ<ØØ×!Ñ!×#Ñ#×8Ñ8¸Ó=Ð=r€   N©rƒ   r„   r…   rá   rR  r’   r€   r~   r^  r^  Þ  s   „ ñó>r€   r^  c                  ó   — e Zd ZdZd„ Zy)Ú"_DMLUpdateDeleteReturningColFiltera_  an adapter used for the DML RETURNING case specifically
    for ORM enabled UPDATE/DELETE

    its main job is to limit the columns in a RETURNING to include
    only direct persisted columns from the immediate selectable, not
    expressions like column_property(), or to also allow columns from other
    mappers for the UPDATE..FROM use case.

    c                ó¤   — | j                   }|j                  j                  |d «      }|�%|j                  j                  j                  |«      S |S ry   )r$  r`  r·   r:  ra  rb  rc  s       r~   rR  z6_DMLUpdateDeleteReturningColFilter.adapt_check_presentü  sO   € Ø—‘ˆØ×'Ñ'×+Ñ+¨C°Ó6ˆØÐð ×,Ñ,×.Ñ.×CÑCÀCÓHÐHð ˆ
r€   Nre  r’   r€   r~   rg  rg  ñ  s   „ ñó
r€   rg  ÚormÚorm_from_statementc                  ó°   — e Zd ZU dZdZded<   ded<   dZded<   dZdZdZ	dZ
ej                  Zej                  Ze	 	 	 	 	 	 	 	 	 	 dd	„«       Zd
„ Zd„ Zd„ Zy)Ú_ORMFromStatementCompileStateNFÚFromStatementÚstatement_containerz)Union[SelectBase, TextClause, UpdateBase]Úrequested_statementzOptional[_DMLTableElement]Ú	dml_tablec               óp  — |}t        |t        «      sJ ‚|�!|j                  rt        j                  d«      ‚| j                  | «      }d |_        |j                  j                  |_	        |x|_
        |_        |j                  x|_        }|j                  r|j                  |_        d|_        g |_        i |_        |j                  |_        |j                  r_t        |t*        j,                  «      rE|j.                  s9|j                  s-|j0                  t2        u r|j5                  t6        «      |_        n||_        |j;                  |j.                  s|j                  s|j0                  nt2        |j                  «      |_        t>        jA                  ||jB                  |j$                  d¬«       |j                  jD                  |_#        |jI                  ||dd¬«       |jJ                  r/|jJ                  D ]   }|jL                  sŒ|jO                  |«       Œ" |jP                  r|jP                  D ]  \  }}	 ||«       Œ g |_)        g |_*        tW        «       |_,        g |_-        g |_.        d |_/        |j8                  j`                  roi |_1        |j$                  D ]  }
|
je                  |«       Œ dx|_3        |_4        d|_5        |jR                  D ]   }|jm                  |d|jn                  ¬«       Œ" |S tq        tr        jt                  |j8                  |jv                  ¬«      |_<        |S )NzšThe ORM FromStatement construct only supports being invoked as the topmost statement, as it is only intended to define how result rows should be returned.T©Úis_current_entitiesF)r½   r¼   )Úwithin_columns_clauseÚadd_to_result_map)Úadapt_on_names)=r3  rm  r¸   Úsa_excÚCompileErrorÚ__new__rú   r(  rå   rû   rn  r�   Úelementro  r*   Útablerp  rÖ   r÷   rø   rù   r'   rX   Ú_is_textualÚ_label_styler<   Úset_label_styler=   r¢   r  rü   Ú_QueryEntityÚto_compile_stateÚ_raw_columnsrè   r   rÁ   rž   r¹   r¶   Ú_compile_state_funcsrý   rþ   Úsetrÿ   rm   Ú_fallback_from_clausesÚorder_byÚ_is_text_clauseÚextra_criteria_entitiesÚsetup_compile_stateÚ_ordered_columnsÚ_textual_ordered_columnsÚ_loose_column_name_matchingÚprocessÚ_add_to_result_mapr   r   ÚADAPT_FROM_STATEMENTÚ_adapt_on_namesÚ_from_obj_alias)rÅ   r¢   r¼   r»   rÆ   rn  r}   r™   Úfnr  Úentityra  s               r~   r  z1_ORMFromStatementCompileState._create_orm_context  s  € ð (ÐäÐ-¬}Ô=Ð=Ð=àÐ H§N¢NÜ×%Ñ%ð=óð ð �{‰{˜3ÓˆØ#ˆÔð  ×0Ñ0×HÑHð 	Ô#ð <OÐNˆÔ  4Ô#8Ø/B×/JÑ/JÐJˆÔ  9à×ÒØ&Ÿ_™_ˆDŒNØ$(ˆDÔ!àˆŒØ%'ˆÔ"à2×CÑCˆÔð ×'Ò'Ü˜9¤j×&;Ñ&;Ô<Ø×)Ò)Ø×$Ò$Ø×&Ñ&Ô*:Ñ:à&×6Ñ6Ü.óˆD�Nð 'ˆDŒNà!%×!?Ñ!?ð !×,Ò,°Y×5EÒ5Eð ×&Ò&ä%à×'Ñ'ó"
ˆÔô 	×%Ñ%ØØ×,Ñ,Ø�N‰NØ $ð	 	&ô 	
ð 0×@Ñ@×NÑNˆÔà×$Ñ$ØØØ*/Øð	 	%ô 	
ð ×,Ò,Ø*×8Ñ8ò 4�Ø×(Ó(Ø×-Ñ-¨dÕ3ð4ð ×3Ò3Ø.×CÑCò ‘��CÙ�4•ðð  "ˆÔØ!#ˆÔÜ!›eˆÔØ"$ˆÔØ&(ˆÔ#àˆŒà�>‰>×)Ò)ð
 ,.ˆDÔ(àŸ.™.ò 1�Ø×*Ñ*¨4Õ0ð1ð ðˆHÔ%¨Ô(Ið 48ˆHÔ0à×)Ñ)ò �Ø× Ñ ØØ*.Ø&.×&AÑ&Að !õ ðð, ˆô $7Ü×4Ñ4Ø—‘Ø2×BÑBô$ˆDÔ ð ˆr€   c                ó   — |S ry   r’   )r}   ÚcolsÚcurrent_adapters      r~   Ú_adapt_col_listz-_ORMFromStatementCompileState._adapt_col_list¡  ó   € Øˆr€   c                 ó   — y ry   r’   r|   s    r~   Ú_get_current_adapterz2_ORMFromStatementCompileState._get_current_adapter¤  s   € Ør€   c                óØ  — | j                   j                  j                  dd«      }| j                   j                  rt	        ||«      }n;| j                   j
                  s| j                   j                  rt        ||«      }nd}| j                  j                  r-t        | j                  «      dk7  rt        j                  d«      ‚| j                  D ]  }|j                  | |«       Œ y)zused by BulkORMInsert, Update, Delete to set up a handler
        for RETURNING to return ORM objects and expressions

        r#  Nr   úsCan't generate ORM query that includes multiple expressions at the same time as '*'; query for '*' alone if present)r¢   r*  r·   Ú	is_insertr^  Ú	is_updateÚ	is_deleterg  rù   rï   r)  r÷   rw  rx  Ú!setup_dml_returning_compile_state)r}   Ú
dml_mapperrS  rE  r’  s        r~   rŸ  z?_ORMFromStatementCompileState.setup_dml_returning_compile_state§  sÑ   € ð
 Ÿ™×7Ñ7×;Ñ;Ø˜dó
ˆð �>‰>×#Ò#Ü6Ø˜zó‰Gð �^‰^×%Ò%¨¯©×)AÒ)AÜ8Ø˜zó‰Gð ˆGà×Ñ×(Ò(¬c°$·.±.Ó.AÀQÒ.FÜ×%Ñ%ðJóð ð
 —n‘nò 	DˆFØ×4Ñ4°T¸7ÕCñ	Dr€   )
r¢   r  r¼   rz   r»   rJ  rÆ   r   r¨   rl  )rƒ   r„   r…   r�  rK  r«   rp  Ú_has_orm_entitiesr{   Úeager_adding_joinsÚcompound_eager_adapterr%   rœ   r‡  Úeager_joinsr×   r  r–  r™  rŸ  r’   r€   r~   rl  rl  	  s©   … à€OØ Ðà&Ó&ØBÓBØ,0€IÐ)Ó0àÐØ#ÐØÐØ!Ðà"Ÿo™oÐØ—/‘/€KàðDà/ðDð ð	Dð
 (ðDð ðDð 
'òDó ðDòLòóDr€   rl  c                  ó\  ‡ — e Zd ZU dZdZej                  Zej                  Z	dZ
ded<   ded<   dej                  fdej                  fgej                   z   Zed	ej$                  fgz   Zd
Z	 d	 	 	 	 	 dd„Zd„ Zed„ «       Zd„ Zˆ fd„Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zˆ xZS )rm  a*  Core construct that represents a load of ORM objects from various
    :class:`.ReturnsRows` and other classes including:

    :class:`.Select`, :class:`.TextClause`, :class:`.TextualSelect`,
    :class:`.CompoundSelect`, :class`.Insert`, :class:`.Update`,
    and in theory, :class:`.Delete`.

    rj  Nú(Union[ExecutableReturnsRows, TextClause]rz  rz   r�  r�  r(  Tc           	     óª  — t        j                  |«      D �cg c])  }t        j                  t        j
                  || d¬«      ‘Œ+ c}| _        || _        |j                  | _        |j                  | _	        |j                  | _
        |j                  | _        |j                  | _        t        |«      r|j                  nd | _        || _        y c c}w )NT)Úapply_propagate_attrsÚpost_inspect)r%   Úto_listr&   Úexpectr(   ÚColumnsClauseRoler�  rz  r*   Ú	is_selectrž  rœ  r�  r,   r}  r�  )r}   Úentitiesrz  r�  r5  s        r~   r¥   zFromStatement.__init__æ  s¸   € ô —|‘| HÓ-ö
ð ô ×ÑÜ×'Ñ'ØØ&*Ø!ö	ò
ˆÔð ˆŒØ—n‘nˆŒØ ×*Ñ*ˆŒØ ×*Ñ*ˆŒØ ×*Ñ*ˆŒØ ×*Ñ*ˆŒä$2°7Ô$;ˆG× Ò Àð 	Ôð  /ˆÕùò%
s   ˜.Cc                óÊ   — |j                   r|j                  | «        | j                  | |fi |¤Ž}|j                   }|r||_         |j
                  |j                  fi |¤ŽS )z›provide a fixed _compiler_dispatch method.

        This is roughly similar to using the sqlalchemy.ext.compiler
        ``@compiles`` extension.

        )Ú_collect_paramsÚ_add_to_paramsÚ_compile_state_factoryr¸   r`   rŒ  r¢   )r}   r»   rÆ   r`   r¼   s        r~   Ú_compiler_dispatchz FromStatement._compiler_dispatch   si   € ð ×#Ò#Ø×#Ñ# DÔ)à3˜×3Ñ3°D¸(ÑIÀbÑIˆà—~‘~Ð%ˆáØ%2ˆHÔ"àˆx×Ñ × 7Ñ 7Ñ>¸2Ñ>Ð>r€   c                ól   — t        t        t        j                  | «      «      j                  } || «      S )a@  Return a :term:`plugin-enabled` 'column descriptions' structure
        referring to the columns which are SELECTed by this statement.

        See the section :ref:`queryguide_inspection` for an overview
        of this feature.

        .. seealso::

            :ref:`queryguide_inspection` - ORM background

        )r   Ú_ORMSelectCompileStater@   Úget_plugin_classr  )r}   Úmeths     r~   Úcolumn_descriptionsz!FromStatement.column_descriptions  s3   € ô Ü"¤K×$@Ñ$@ÀÓ$Fó
ç
!Ñ
!ð 	ñ �D‹zÐr€   c                ó   — | S ry   r’   r|   s    r~   Ú_ensure_disambiguated_namesz)FromStatement._ensure_disambiguated_names&  r—  r€   c              +  ó´   •K  — t         j                  j                  d„ | j                  D «       «      E d {  –—†  t	        ‰| �  di |¤ŽE d {  –—†  y 7 Œ7 Œ­w)Nc              3  ó4   K  — | ]  }|j                   –— Œ y ­wry   r.   ©r˜   rz  s     r~   r›   z-FromStatement.get_children.<locals>.<genexpr>*  s   è ø€ ò 1
Ø&-ˆG×!Õ!ñ1
ùó   ‚r’   )Ú	itertoolsÚchainÚfrom_iterabler�  rÃ   Úget_children)r}   rÆ   rÇ   s     €r~   rÂ  zFromStatement.get_children)  sY   øè ø€ Ü—?‘?×0Ñ0ñ 1
Ø15×1BÑ1Bô1
ó 
÷ 	
ð 	
ô ‘7Ñ'Ñ-¨"Ñ-×-Ñ-ð	
øð 	.ús!   ƒ4A·A¸AÁAÁAÁAc                ó.   — | j                   j                  S ry   )rz  Ú_all_selected_columnsr|   s    r~   rÄ  z#FromStatement._all_selected_columns/  s   € à�|‰|×1Ñ1Ð1r€   c                ó\   — t        | j                  «      r| j                  j                  S d S ry   )r*   rz  Ú_return_defaultsr|   s    r~   rÆ  zFromStatement._return_defaults3  s"   € ä06°t·|±|Ô0Dˆt�|‰|×,Ñ,ÐNÈ$ÐNr€   c                ó\   — t        | j                  «      r| j                  j                  S d S ry   )r*   rz  Ú
_returningr|   s    r~   rÈ  zFromStatement._returning7  s"   € ä*0°·±Ô*>ˆt�|‰|×&Ñ&ÐHÀDÐHr€   c                ó\   — t        | j                  «      r| j                  j                  S d S ry   )r+   rz  Ú_inliner|   s    r~   rÊ  zFromStatement._inline;  s"   € ä'7¸¿¹Ô'Eˆt�|‰|×#Ñ#ÐOÈ4ÐOr€   )T)r®  z%Iterable[_ColumnsClauseArgument[Any]]rz  r¦  r�  rz   ) rƒ   r„   r…   rá   Ú__visit_name__rl  rõ   r(  rÄ   r²  Ú_for_update_argr«   rB   Údp_clauseelement_listÚdp_clauseelementr4   Ú_executable_traverse_internalsÚ_traverse_internalsrñ   ró   Úis_from_statementr¥   r³  r¬   r¸  rº  rÂ  rÄ  rÆ  rÈ  rÊ  rØ   rÙ   s   @r~   rm  rm  Å  s8  ø… ñð *€Nà4×LÑLÐà:×OÑOÐà€Oà5Ó5àÓð 
Ð*×@Ñ@ÐAØ	Ð%×6Ñ6Ð7ðð 	×:Ñ:ñ;Ðð
 /Ø	Ð.×?Ñ?Ð@ð2ñ Ðð Ðð !%ð	/à7ð/ð :ð/ð ó	/ò4?ð( ñó ðò"ô.ð ñ2ó ð2ð ñOó ðOð ñIó ðIð ñPó ôPr€   rm  Úcompound_selectc                  ó   — e Zd Zy)Ú_CompoundSelectCompileStateN)rƒ   r„   r…   r’   r€   r~   rÔ  rÔ  @  s   „ ð 	r€   rÔ  Úselectc                  ó¸  — e Zd ZU dZej
                  ZdZdZdZ	dZ
dZdZdZdZdZdZej"                  Zded<   ej"                  Zded<   e	 	 	 	 	 	 	 	 	 	 d&d„«       Zd„ Zd	„ Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d'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/e0d!„ «       Z1e0d"„ «       Z2d#„ Z3d$„ Z4d%„ Z5y)(rµ  r’   NFzAbstractSet[FromClause]Ú_explicit_correlate_fromsÚ_implicit_correlate_fromsc               ó.  — | j                  | «      }|sQ|€J ‚|j                  |j                  d   |j                  dd«      |j                  dd«      «      \  |_        |_        |}| j                  j                  |j                  «      |_        |j                  r5|j                  «       |_        t        j                  |j                  _	        n||_        |j                  j                  |_        |j                  j                   |_        g |_        d |_        i |_        |j                  |_        |s|xj*                  dddœz  c_        |j"                  r@|j                  j,                  t.        u r$|j                  st0        |_        n't4        |_        n|j                  j,                  |_        |j6                  rA|j6                  D �ci c]&  }|t8        j;                  ||j<                  g d¬«      “Œ( c}|_        |jA                  |j,                  |j"                  «      |_!        t8        j;                  ||j<                  |j$                  d¬«       |j                  jD                  |_#        d|_$        |jK                  |||d¬	«       |r½|jL                  s|j6                  r¥|j6                  D ]]  }|jL                  D ]L  }|jN                  sŒ|jQ                  ||j>                  |   D �	cg c]  }	tS        |	tT        «      r|	‘Œ c}	«       ŒN Œ_ |j                  jL                  D ]   }|jN                  sŒ|jW                  |«       Œ" |jX                  r|jX                  D ]  \  }
} |
|«       Œ g |_-        g |_.        t_        «       |_0        i |_1        i |_2        g |_3        g |_4        |jk                  d
„ |jl                  D «       «      |_7        |jq                  «        ts        jt                  ||jv                  |fi |¤Ž |S c c}w c c}	w )NéÿÿÿÿÚasfromFÚlateralT)rê   rî   rr  r’   )r¼   r½   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wry   )r²   )r˜   Úinfos     r~   r›   z=_ORMSelectCompileState._create_orm_context.<locals>.<genexpr>   s   è ø€ ò 2
Ø $ˆD�O�Oñ2
ùr¾  )<ry  Ú_enclosing_correlate_fromsr¸   r·   r×  rØ  rõ   Ú
safe_merger(  rß   Ú_cloner�   r%   rœ   ræ   Úfor_statementrå   rû   r÷   rú   rø   rù   r}  ÚLABEL_STYLE_LEGACY_ORMr=   r  r;   Ú_memoized_select_entitiesr  r€  r�  Ú_memoized_entitiesr  rü   rè   r   Úeager_order_byrÁ   rž   r¹   Ú'process_compile_state_replaced_entitiesr3  r4  r¶   r‚  rý   rþ   rƒ  rÿ   r¤  r‡  rm   r„  Ú_normalize_fromsÚ	_from_objÚfrom_clausesÚ_setup_for_generater@   r¥   r¢   )rÅ   r¢   r¼   r»   rÆ   r}   r�   Úmemoized_entitiesr™   r5  r‘  r  s               r~   r  z*_ORMSelectCompileState._create_orm_context^  s  € ð �{‰{˜3ÓˆáØÐ'Ð'Ð'ð ×3Ñ3Ø—‘˜rÑ"Ø—‘�x Ó'Ø—‘�y %Ó(óñØÔ.ØÔ.ð %Ðð &)×%@Ñ%@×%KÑ%KØ×&Ñ&ó&
ˆ	Ô"ð ×.Ò.ð %5×$;Ñ$;Ó$=ˆDÔ!Ü7;·±ˆD×!Ñ!Õ4à$4ˆDÔ!ð .×>Ñ>×MÑMˆÔð ×-Ñ-×EÑEð 	Ô#ð ˆŒØ#ˆÔØ%'ˆÔ"à/×@Ñ@ˆÔáð × Ò Ø&+Ø(,ñ%ñ Õ ð ×'Ò'Ø×%Ñ%×2Ñ2Ô6LÑLà×%Ò%Ü#A�Õ ä#@�Õ à#×4Ñ4×AÑAˆDÔà×5Ò5ð %×>Ñ>ö
'ð &ð "¤<×#@Ñ#@ØØ%×2Ñ2ØØ(-ð	 $Aó $ñ ò
'ˆDÔ#ð  "&×!?Ñ!?Ø×"Ñ" D×$?Ñ$?ó"
ˆÔô 	×%Ñ%ØØ×)Ñ)Ø�N‰NØ $ð	 	&ô 	
ð -×=Ñ=×KÑKˆÔà ˆÔà×$Ñ$ØØØØ*/ð	 	%ô 	
ñ Ø×*Ò*Ø×9Ò9ð "×;Ñ;òØ!à,×:Ñ:ò �CØ×,Ó,Ø×CÑCØ ð ,0×+BÑ+BØ$5ñ,"öà$'ô $.¨c´=Ô#Aò	 !$òõ	ñðð  ×,Ñ,×:Ñ:ò 4�Ø×(Ó(Ø×-Ñ-¨dÕ3ð4ð ×0Ò0Ø+×@Ñ@ò ‘��CÙ�4•ðð  "ˆÔØ!#ˆÔÜ!›eˆÔØˆÔØ')ˆÔ$Ø"$ˆÔØ&(ˆÔ#ð !×1Ñ1ñ 2
Ø(8×(BÑ(Bô2
ó 
ˆÔð 	× Ñ Ô"ä×Ñ˜T 4§>¡>°8ÑB¸rÒBØˆùò}
'ùòbs   Ç+PË4Pc                ó  — t        d«       t        d| j                  › �«       | j                  D ]Ø  }t        |t        «      rm|d   dk(  ret        dt        j                  |d   «      › �«       t        d| j                  |   › �«       t        d| j                  |   j                  › �«       Œ€t        |t        «      sŒ‘|d   dk(  sŒšt        d	t        j                  |d   «      › �«       t        d| j                  |   › �«       ŒÚ y )
Nz5
---------------------------------------------------
zcurrent path: r   Úloaderz
Loader:           r   z    Úpath_with_polymorphicz
With Polymorphic: )Úprintr   r   r3  rŸ   r   ÚcoerceÚ__dict__)r}   r  s     r~   Ú_dump_option_structz*_ORMSelectCompileState._dump_option_struct  sð   € ÜÐGÔHÜ�˜t×0Ñ0Ð1Ð2Ô3Ø—?‘?ò 	5ˆCÜ˜#œuÔ%¨#¨a©&°HÒ*<ÜÐ,¬\×-@Ñ-@ÀÀQÁÓ-HÐ,IÐJÔKÜ˜˜TŸ_™_¨SÑ1Ð2Ð3Ô4Ü˜˜TŸ_™_¨SÑ1×:Ñ:Ð;Ð<Õ=Ü˜C¤Õ'¨C°©FÐ6MÓ,MÜÐ,¬\×-@Ñ-@ÀÀQÁÓ-HÐ,IÐJÔKÜ˜˜TŸ_™_¨SÑ1Ð2Ð3Õ4ñ	5r€   c           	     óÌ	  ‡
— | j                   }d | _        d| _        | j                  j                  r| j                  «        |j                  D ]8  }|j                  sŒ| j                  |j                  | j                  |   «       Œ: |j                  r&| j                  |j                  | j                  «       | j                  «       Š
|j                  r6|j                  | _        ‰
r#t        ˆ
fd„| j                  D «       «      | _        ‰
r*|j                  dvr| j                  |j                  ‰
«      n|j                  | _        |j"                  r#t        ˆ
fd„|j"                  D «       «      | _        ‰
r=|j$                  dvr/| j                  t'        j(                  |j$                  «      ‰
«      n|j$                  xs d | _        | j,                  r9| j.                  d   j0                  }|j3                  | j,                  «      | _        |j4                  r"| j                  |j4                  ‰
«      | _        nd| _        |j8                  | _        |j=                  «       j?                  «       D ��ci c]  \  }}|‰
r	 ‰
|d«      n|“Œ c}}| _         |jB                  r5t        t'        j(                  d„ |jB                  D «       «      «      | _"        nT|jF                  �5t        t'        j(                  d„ |jF                  D «       «      «      | _$        n|jJ                  sd	| _"        |jL                  | _&        | j                  jN                  r-tQ        | j                  «      d
k7  rtS        jT                  d«      ‚| j                  D ]  }|jW                  | «       Œ | jX                  D ]  }|d   } || g|d
d  ¢­Ž  Œ | j                  jZ                  r| j]                  «        | j^                  s2| j                  j`                  rJ d«       ‚tS        jb                  d«      ‚| j.                  ste        | jf                  «      | _        | j                   du rd | _        | jh                  r| jk                  «       | _        n| jm                  «       | _        | jn                  r6| jq                  «       }	|	�#| j                  js                  d|	i«      | _        y y y c c}}w )Nr’   c              3  ó0   •K  — | ]  } ‰|d «      –— Œ y­w©TNr’   ©r˜   Úcritr•  s     €r~   r›   z=_ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>2  s    øè ø€ ò -àñ $ D¨$×/ñ-ùs   ƒ©NFc              3  ó8   •K  — | ]  }‰r	 ‰|d «      n|–— Œ y­wrö  r’   r÷  s     €r~   r›   z=_ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>A  s'   øè ø€ ò *àñ 0?‘  dÔ+ÀDÓHñ*ùs   ƒr   Tc              3  óN   K  — | ]  }|�t        j                  |«      nd –— Œ y ­wry   ©rV  Úsurface_selectables©r˜   Úss     r~   r›   z=_ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>e  ó,   è ø€ ò &àð 89°}”H×0Ñ0°Ô3È$ÓNñ&ùó   ‚#%c              3  óN   K  — | ]  }|�t        j                  |«      nd –— Œ y ­wry   rü  rþ  s     r~   r›   z=_ORMSelectCompileState._setup_for_generate.<locals>.<genexpr>l  r   r  ry   r   r›  Fz,no columns were included in _only_load_propsz4Query contains no columns with which to SELECT from.Ú
deepentity):r�   r¢   Ú_join_entitiesrù   rì   Ú_set_select_from_aliasrä  Ú_setup_joinsÚ_joinrå  r÷   r™  Ú_where_criteriarŸ   Ú_order_by_clausesr–  r…  Ú_having_criteriaÚ_group_by_clausesr%   Úflatten_iteratorÚgroup_byræ  rê  Ú_target_adapterÚcopy_and_processÚ_distinct_onÚdistinct_onÚ	_distinctÚdistinctÚ_get_syntax_extensions_as_dictÚitemsÚsyntax_extensionsÚ
_correlateÚ	correlateÚ_correlate_exceptÚcorrelate_exceptÚ_auto_correlaterÌ  rï   r)  rw  rx  rˆ  rm   ré   Ú_adjust_for_extra_criteriarý   rë   ÚInvalidRequestErrorÚlistr„  Ú_should_nest_selectableÚ_compound_eager_statementÚ_simple_statementrâ  Ú_mapper_zeroÚ	_annotate)r}   ra   rì  rE  r  Úvaluer’  ÚrecÚstrategyÚezeror•  s             @r~   rë  z*_ORMSelectCompileState._setup_for_generate  sv  ø€ Ø×%Ñ%ˆàˆŒØ ˆÔà×Ñ×/Ò/à×'Ñ'Ô)à!&×!@Ñ!@ò 	ÐØ ×-Ó-Ø—
‘
Ø%×2Ñ2Ø×+Ñ+Ð,=Ñ>õð	ð ×ÒØ�J‰J�u×)Ñ)¨4¯>©>Ô:à×3Ñ3Ó5ˆà× Ò Ø#(×#8Ñ#8ˆDÔ áÜ',ó -à $× 4Ñ 4ô-ó (�Ô$ñ  5×#:Ñ#:À-Ñ#Oð × Ñ  ×!8Ñ!8¸/ÔJà×(Ñ(ð 	Œð ×!Ò!Ü$)ó *à!×2Ñ2ô*ó %ˆDÔ!ñ  5×#:Ñ#:À-Ñ#Oð × Ñ Ü×%Ñ% e×&=Ñ&=Ó>Àôð ×(Ñ(Ò0¨Dð 	Œð ×ÒØ×'Ñ'¨Ñ*×:Ñ:ˆGØ")×":Ñ":¸4×;NÑ;NÓ"OˆDÔà×ÒØ#×3Ñ3Ø×"Ñ" Oó ˆDÕð  "ˆDÔàŸ™ˆŒð $×BÑBÓD×JÑJÓL÷"
á��Uð ±‘ ¨Ô-ÀeÑKó"
ˆÔð
 ×Òô #Ü×%Ñ%ñ &à"×-Ñ-ô&ó óˆD�Nð ×$Ñ$Ð0Ü$)Ü×%Ñ%ñ &à"×4Ñ4ô&ó ó%ˆDÕ!ð ×&Ò&Ø$ˆDŒNð  %×4Ñ4ˆÔà×Ñ×(Ò(¬c°$·.±.Ó.AÀQÒ.FÜ×%Ñ%ðJóð ð —n‘nò 	-ˆFØ×&Ñ& tÕ,ð	-ð ×*Ñ*ò 	%ˆCØ˜1‘vˆHÙ�TÐ$˜C  ˜GÔ$ð	%ð ×Ñ×3Ò3Ø×+Ñ+Ô-à×#Ò#Ø×#Ñ#×4Ò4ØLÐLÓL�uä×,Ñ,ØFóð ð × Ò Ü $ T×%@Ñ%@Ó AˆDÔà�=‰=˜EÑ!Ø ˆDŒMà×'Ò'Ø!×;Ñ;Ó=ˆD�Nà!×3Ñ3Ó5ˆDŒNà×ÒØ×%Ñ%Ó'ˆEØÐ ð "&§¡×!9Ñ!9Ø! 5Ð)ó"�•ð !ð ùóE"
s   É9S c                óî   — | j                  | «      }g |_        d|_        i |_        |j	                  |j
                  |«      |_        t        j                  ||j                  |j                  d¬«       |S )a  Creates a partial ORMSelectCompileState that includes
        the full collection of _MapperEntity and other _QueryEntity objects.

        Supports a few remaining use cases that are pre-compilation
        but still need to gather some of the column  / adaption information.

        NTrr  )
ry  r÷   rú   rø   r  r}  rü   r  r€  r�  )rÅ   ra   r  r}   s       r~   rI  z2_ORMSelectCompileState._create_entities_collection¦  sv   € ð �{‰{˜3ÓˆàˆŒØ#ˆÔØ%'ˆÔ"à!%×!?Ñ!?Ø×Ñ ó"
ˆÔô 	×%Ñ%Ø�%×$Ñ$ d§n¡nÈ$ð 	&ô 	
ð ˆr€   c                ó¾  — d„ }t         ||j                  «      «      }|j                  D ]#  }|j                   ||j                  «      «       Œ% |j                  d„ |j                  D «       «       |j
                  D ][  }d|j                  v r!|j                  d   }|j                  |«       Œ2d|j                  vsŒA|j                  |j                  «       Œ] |S )aÜ  Return all ORM entities for filter_by() searches.

        the ORM version for Select is special vs. update/delete since it needs
        to navigate along select.join() paths which have ORM specific
        directives.

        beyond that, it delivers other entities as the Mapper or Aliased
        object rather than the Table or Alias, which mostly affects
        how error messages regarding ambiguous entities or entity not
        found are rendered; class-specific attributes like hybrid,
        column_property() etc. work either way since
        _entity_namespace_key_search_all() uses _entity_namespace().

        DML Update and Delete objects, even though they also have filter_by()
        and also accept ORM objects, don't use this routine since they
        typically just have a single table, and if they have multiple tables
        it's only via WHERE clause, which interestingly do not maintain ORM
        annotations when used (that is, (User.name ==
        'foo').left.table._annotations is empty; the ORMness of User.name is
        lost in the expression construction process, since we don't annotate
        (copy) Column objects with ORM entities the way we do for Table.

        .. versionadded:: 2.1
        c              3  ó–   K  — | D ]@  ^}}t        |t        j                  «      r|j                  –— Œ.d|j                  vsŒ=|–— ŒB y ­w)NÚ_no_filter_by)r3  r   ÚQueryableAttributer’  Ú_annotations)Ú
collectionÚtargetÚ_s      r~   Ú_setup_join_targetszK_ORMSelectCompileState._get_filter_by_entities.<locals>._setup_join_targetsÛ  sF   è ø€ Ø *ò !��˜!Ü˜f¤j×&CÑ&CÔDØ Ÿ-™-Ó'Ø$¨F×,?Ñ,?Ò?Ø “Lñ	!ùs   ‚?A	ÁA	c              3  óv   K  — | ]1  }d |j                   vr!d|j                   v r|j                   d   n|–— Œ3 y­w)r+  ÚparententityN)r-  )r˜   Úfrom_objs     r~   r›   zA_ORMSelectCompileState._get_filter_by_entities.<locals>.<genexpr>ç  sK   è ø€ ò 
ð Ø h×&;Ñ&;Ñ;ð	 " X×%:Ñ%:Ñ:ð ×%Ñ% nÒ5àóñ
ùs   ‚79Úentity_namespacer+  )	rƒ  r  rä  Úupdateré  r�  r-  r	  r/   )rÅ   r¢   r1  r®  Úmemoizedrz  Úenss          r~   Ú_get_filter_by_entitiesz._ORMSelectCompileState._get_filter_by_entitiesÀ  sÚ   € ò6	!ô Ñ*¨9×+AÑ+AÓBÓCˆà!×;Ñ;ò 	HˆHØ�O‰OÑ/°×0EÑ0EÓFÕGð	Hð 	�‰ñ 
ð &×/Ñ/ô
ô 	
ð !×-Ñ-ò 	7ˆGØ! W×%9Ñ%9Ñ9Ø×*Ñ*Ð+=Ñ>�Ø—‘˜SÕ!Ø ¨×(<Ñ(<Ò<Ø—‘ × 5Ñ 5Õ6ð	7ð ˆr€   c              #  óJ  K  — |j                   D ]Š  }|j                  rhd|j                  v rZ|j                  d   }|j                  s!|j                  st        |g«      E d {  –—†  ŒYt        |j                  «      E d {  –—†  Œwt        |g«      E d {  –—†  ŒŒ y 7 Œ:7 Œ7 Œ­w)Nr5  )r�  Úis_selectabler-  Ú	is_mapperr9  r0   Ú_all_column_expressions)rÅ   r¢   rz  r8  s       r~   Úall_selected_columnsz+_ORMSelectCompileState.all_selected_columnsú  s“   è ø€ à ×-Ñ-ò 	8ˆGà×%Ò%Ø&¨'×*>Ñ*>Ñ>à×*Ñ*Ð+=Ñ>�Ø—}’}¨S×-AÒ-AÜ0°'°Ó;×;Ñ;ä0°×1LÑ1LÓM×MÑMä,¨g¨YÓ7×7Ñ7ñ	8ð <øàMøà7ús6   ‚A B#Á"BÁ#B#Â BÂB#ÂB!ÂB#ÂB#Â!B#c                ó€   — | j                  t        j                  j                  d„ |j                  D «       «      «      S )Nc              3  óŒ   K  — | ]<  }d |j                   vr|j                  n|j                   d    j                  «       g–— Œ> y­w)r3  N)r-  r/   Ú__clause_element__r½  s     r~   r›   zB_ORMSelectCompileState.get_columns_clause_froms.<locals>.<genexpr>  sV   è ø€ ò *ð ð &¨W×-AÑ-AÑAð ×)Ò)ð  ×,Ñ,Ø*ñç,Ñ,Ó.ðóñ*ùs   ‚AA)rè  r¿  rÀ  rÁ  r�  r  s     r~   Úget_columns_clause_fromsz/_ORMSelectCompileState.get_columns_clause_froms	  s<   € à×#Ñ#Ü�O‰O×)Ñ)ñ *ð  )×5Ñ5ô*ó ó
ð 	
r€   c                ó  — t        j                  t        j                  ||¬«      }t	        |j
                  |«      }|j                  j                  |j                  |j                  |j                  |j                  ¬«       |S )N)r¨  )rž   r‚  rß   r*  )r&   r«  r(   ÚReturnsRowsRolerm  r�  rò  r6  rž   r‚  rß   r*  )rÅ   r¢   Úfrom_statementÚstmts       r~   rE  z%_ORMSelectCompileState.from_statement  sw   € ä"×)Ñ)Ü×!Ñ!ØØ"+ô
ˆô ˜Y×3Ñ3°^ÓDˆà�‰×ÑØ#×1Ñ1Ø!*×!?Ñ!?Ø(×;Ñ;Ø&×7Ñ7ð	 	ô 	
ð ˆr€   c                óþ   — | j                   }| j                  j                  sJ ‚t        |j                  «      dk(  sJ ‚| j                  |j                  d   «      }|r| xj                  ddiz  c_        || _        yy)ú used only for legacy Query casesr   r   ré   FN)r�   rù   rì   r)  ré  Ú_get_select_from_alias_from_objr�  )r}   ra   rE  s      r~   r  z-_ORMSelectCompileState._set_select_from_alias,  s{   € ð ×%Ñ%ˆà×#Ñ#×3Ò3Ð3Ð3Ü�5—?‘?Ó# qÒ(Ð(Ð(à×6Ñ6°u·±ÀqÑ7IÓJˆÙØ× Ò Ð%:¸EÐ$BÑBÕ Ø#*ˆDÕ ð r€   c                óœ  — |}d|j                   v r|j                   d   }t        |d«      r-|j                  st        j                  d«      ‚|j
                  S t        |j                  t        j                  j                  «      rF| j                  «       }||j                  u sJ ‚t        t        j                  |j                  |¬«      S y)rH  r3  r$  zPA selectable (FromClause) instance is expected when the base alias is being set.©r8  N)r-  Úhasattrr9  rw  ÚArgumentErrorÚ_adapterr3  r²   r$   ÚAliasedReturnsRowsÚ_all_equivsr   r   ÚLEGACY_SELECT_FROM_ALIAS)r}   r4  rÞ  Úequivss       r~   rI  z6_ORMSelectCompileState._get_select_from_alias_from_obj9  s¼   € ð ˆà˜T×.Ñ.Ñ.Ø×$Ñ$ ^Ñ4ˆDä�4˜Ô"Ø×(Ò(Ü×*Ñ*ðAóð ð
 —}‘}Ð$ä˜Ÿ™¬¯©×)JÑ)JÔKØ×%Ñ%Ó'ˆFØ˜4Ÿ?™?Ñ*Ð*Ð*Ü&Ü×8Ñ8Ø—‘Ø"ôð ð r€   c                ó4   — | j                   d   j                  S )z8return the Mapper associated with the first QueryEntity.r   )r÷   r$  r|   s    r~   r"  z#_ORMSelectCompileState._mapper_zeroU  s   € à�~‰~˜aÑ ×'Ñ'Ð'r€   c                óº   — | j                   D ]!  }d|j                  v sŒ|j                  d   c S  | j                  D ]  }|j                  sŒ|j                  c S  y)z›Return the 'entity' (mapper or AliasedClass) associated
        with the first QueryEntity, or alternatively the 'select from'
        entity if specified.r3  N)rê  r-  r÷   Úentity_zero)r}   r5  Úqents      r~   Ú_entity_zeroz#_ORMSelectCompileState._entity_zeroY  sg   € ð
 ×$Ñ$ò 	8ˆCØ ×!1Ñ!1Ò1Ø×'Ñ'¨Ñ7Ò7ð	8ð —N‘Nò 	(ˆDØ×ÓØ×'Ñ'Ò'ð	(ð r€   c                ó’   — | j                   | j                  gk7  rt        j                  d|z  «      ‚| j                  j                  S )Nz4%s() can only be used against a single mapped class.)r÷   rú   rw  r  rU  )r}   Úmethnames     r~   Ú_only_full_mapper_zeroz-_ORMSelectCompileState._only_full_mapper_zerog  sK   € Ø�>‰>˜d×2Ñ2Ð3Ò3Ü×,Ñ,ð)Ø+3ñ4óð ð ×#Ñ#×/Ñ/Ð/r€   c                ó„   — t        | j                  «      dkD  rt        j                  |xs d«      ‚| j	                  «       S )Nr   z8This operation requires a Query against a single mapper.)r)  r÷   rw  r  rW  )r}   Ú	rationales     r~   Ú_only_entity_zeroz(_ORMSelectCompileState._only_entity_zeroo  sD   € Üˆt�~‰~Ó Ò"Ü×,Ñ,Øò +ð+óð ð
 × Ñ Ó"Ð"r€   c                óš  — i }| j                   j                  «       D ]L  }|D �cg c]  }t        |t        «      r|‘Œ c}D ]'  }|j	                  |j
                  j                  «       Œ) ŒN | j                  D �cg c]  }t        |t        «      sŒ|‘Œ c}D ]'  }|j	                  |j
                  j                  «       Œ) |S c c}w c c}w ry   )rå  Úvaluesr3  r4  r6  r$  r>  r÷   )r}   rR  rì  r5  s       r~   rP  z"_ORMSelectCompileState._all_equivsx  sÃ   € Øˆà!%×!8Ñ!8×!?Ñ!?Ó!Aò 	>Ðð -öàÜ˜c¤=Ô1ò òò >�ð
 —‘˜cŸj™j×<Ñ<Õ=ñ>ð	>ð  Ÿ>™>ö
Ø¬Z¸¼]Õ-KŠCò
ò 	:ˆCð �M‰M˜#Ÿ*™*×8Ñ8Õ9ð	:ð ˆùòùò
s   ¤CÁ:CÂCc           	     óf  — | j                   rj| j                   D �cg c]4  }t        |t        j                  j                  «      r|j
                  n|‘Œ6 }}t        j                  | j                  |«      }ng }d } | j                  | j                  |D �cg c]  }|| j                  vsŒ|‘Œ c}z   | j                  | j                  | j                  | j                  | j                   f| j                  | j                   j"                  | j                   j$                  | j&                  | j(                  dœ| j*                  ¤Ž}|j-                  «       }| j/                  «       }t1        t2        j4                  ||¬«      | _        t9        j:                  |g| j<                  z   Ž }| j                  |_        | j                  �'| j                  j@                  €| j                  |_        |}| jB                  jE                  «       D ]#  }	t        jF                  ||	|	jH                  «      }Œ% |jJ                  jM                  ||«       |r6 |j                   jL                  |g| j6                  jO                  |«      ¢­Ž   |j                   jL                  |g| jP                  ¢­Ž  |S c c}w c c}w )N©Ú
for_updateÚhintsÚstatement_hintsr  r  rK  ))r…  r3  r$   ÚelementsÚ_label_referencerz  rV  Ú expand_column_list_from_order_byrý   Ú_select_statementrÿ   rê  r  r
  r  rÌ  r�   Ú_hintsÚ_statement_hintsr  r  Ú_select_argsÚaliasrP  r   r   ÚCOMPOUND_EAGER_STATEMENTr£  r"   rÕ  rþ   r}  Úofr¤  r_  Úsplice_joinsÚstop_onÚselect_fromÚnon_generativer  ræ  )
r}   ÚelemÚunwrapped_order_byÚorder_by_col_exprra  ÚinnerrR  r¢   Úfrom_clauseÚ
eager_joins
             r~   r   z0_ORMSelectCompileState._compound_eager_statement‰  s‘  € ð
 �=Š=ð !ŸM™Mö"ð ô " $¬¯©×(EÑ(EÔFð —L’Làñð"Ðð "ô !)× IÑ IØ×$Ñ$Ð&8ó!Ñð !#ÐØ!%Ðð '�×&Ñ&Ø× Ñ Ø+ÖL�Q¨q¸×8KÑ8KÒ/KŠqÒLñMà×ÑØ× Ñ Ø×!Ñ!Ø×ÑØ�M‰Mð
ð ×+Ñ+Ø×'Ñ'×.Ñ.Ø ×1Ñ1×BÑBØ—n‘nØ!×2Ñ2ñ
ð ×Ññ
ˆð  —‘“ˆà×!Ñ!Ó#ˆä&9Ü×4Ñ4°eÈô'
ˆÔ#ô —M‘MØˆg˜×.Ñ.Ñ.ð
ˆ	ð "&×!1Ñ!1ˆ	Ôð × Ñ Ð,Ø×$Ñ$×'Ñ'Ð/à(,×(<Ñ(<ˆIÔ%àˆØ×*Ñ*×1Ñ1Ó3ò 	ˆJô #×/Ñ/Ø˜Z¨×);Ñ);ó‰Kð		ð 	×Ñ×,Ñ,¨Y¸ÔDáØ-ˆI×Ñ×-Ñ-Øðà×,Ñ,×=Ñ=Ø&óóð 	*ˆ	×Ñ×)Ñ)¨)ÐJ°d×6IÑ6IÓJØÐùò["ùò( Ms   ›9J)ÂJ.
Â*J.
c           	     ó4  —  | j                   | j                  | j                  z   t        | j                  «      t        | j
                  j                  «       «      z   | j                  | j                  | j                  | j                  f| j                  | j                  j                  | j                  j                  | j                  | j                   dœ| j"                  ¤Ž}| j$                  r' |j                  j&                  |g| j$                  ¢­Ž  |S )Nra  )rh  rý   rþ   rŸ   rê  r¤  r_  r  r
  r  r…  rÌ  r�   ri  rj  r  r  rk  ræ  rr  )r}   r¢   s     r~   r!  z(_ORMSelectCompileState._simple_statementä  sñ   € Ø*�D×*Ñ*Ø× Ñ  4×#9Ñ#9Ñ9Ü�$×#Ñ#Ó$¤u¨T×-=Ñ-=×-DÑ-DÓ-FÓ'GÑGØ× Ñ Ø×!Ñ!Ø×ÑØ�M‰Mð
ð ×+Ñ+Ø×'Ñ'×.Ñ.Ø ×1Ñ1×BÑBØ—n‘nØ!×2Ñ2ñ
ð ×Ññ
ˆ	ð ×ÒØ-ˆI×Ñ×-Ñ-¨iÐN¸$×:MÑ:MÓNØÐr€   c                ó\  — t        j                  |||¬«      }|r||_        |r||_        |r|xj                  t        |«      z  c_        |rd|_        ||_        n	|rd|_        |r|xj                  t        |«      z  c_        ||_	        ||_
        ||_        ||_        ||_        ||_        |r |j                  di |¤Ž |r||_        |r||_        ||_        |r||_        |	r|	|_        |
r |j*                  j,                  |g|
¢­Ž  |� |j.                  j,                  |g|¢­Ž  |S )N)r�  ré  r}  Tr’   )r>   Ú_create_raw_selectr  r
  r	  rŸ   r  r  r  Ú_limit_clauseÚ_offset_clauseÚ_fetch_clauseÚ_fetch_clause_optionsÚ_independent_ctesÚ_independent_ctes_optsÚ_set_syntax_extensionsÚ	_prefixesÚ	_suffixesrÌ  ri  rj  r  rr  r  )r}   Úraw_columnsr4  Úwhere_criteriaÚhaving_criteriar  r…  rb  rc  rd  r  r  Úlimit_clauseÚoffset_clauseÚfetch_clauseÚfetch_clause_optionsr  r  ÚprefixesÚsuffixesr  Úindependent_ctesÚindependent_ctes_optsr  r¢   s                            r~   rh  z(_ORMSelectCompileState._select_statementø  sK  € ô4 ×-Ñ-Ø$ØØ$ô
ˆ	ñ Ø(6ˆIÔ%ÙØ)8ˆIÔ&áØ×'Ò'¬5°«?Ñ:Õ'áØ"&ˆIÔØ%0ˆIÕ"ÙØ"&ˆIÔáØ×'Ò'¬5°«?Ñ:Õ'à".ˆ	ÔØ#0ˆ	Ô Ø".ˆ	ÔØ*>ˆ	Ô'Ø&6ˆ	Ô#Ø+@ˆ	Ô(ÙØ,ˆI×,Ñ,ÑAÐ/@ÒAáØ"*ˆIÔáØ"*ˆIÔà$.ˆ	Ô!áØ$ˆIÔÙØ)8ˆIÔ&áØ.ˆI×Ñ×.Ñ.¨yÐE¸9ÓEàÐ'Ø5ˆI×&Ñ&×5Ñ5ØðØ,óð Ðr€   c                óh  — d|j                   v r>|j                   d   }| j                  j                  |d «      }|r|j                  |«      S t	        |t
        j                  «      r|}nt        |d«      r|j                  }ny | j                  j                  |d «      }|r|j                  |«      S y )Nr3  r{  )	r-  rø   r·   Úadapt_clauser3  r'   rW   rL  r{  )r}   rz  Úsearchrl  s       r~   Ú_adapt_polymorphic_elementz1_ORMSelectCompileState._adapt_polymorphic_elementI  s¨   € Ø˜W×1Ñ1Ñ1Ø×)Ñ)¨.Ñ9ˆFØ×.Ñ.×2Ñ2°6¸4Ó@ˆEÙØ×)Ñ)¨'Ó2Ð2ä�gœz×4Ñ4Ô5Ø‰FÜ�W˜gÔ&Ø—]‘]‰Fàà×*Ñ*×.Ñ.¨v°tÓ<ˆÙØ×%Ñ% gÓ.Ð.ð r€   c                óB   — |r|D �cg c]  } ||d«      ‘Œ c}S |S c c}w )NTr’   )r}   r”  r•  Úos       r~   r–  z&_ORMSelectCompileState._adapt_col_list[  s'   € ÙØ6:Ö;°‘O A tÕ,Ò;Ð;àˆKùò <s   ‡c                óÌ   ‡— g Š| j                   r%‰j                  | j                   j                  «       | j                  r‰j                  | j                  «       ‰sy ˆfd„}|S )Nc                ó<   •— ˆfd„}t        j                  | i |«      S )Nc                ó0   •— ‰D ]  } || «      }|€Œ|c S  y ry   r’   )rs  rE  ÚeÚadapterss      €r~   ÚreplacezS_ORMSelectCompileState._get_current_adapter.<locals>._adapt_clause.<locals>.replace  s%   ø€ Ø'ò !�GÙ ›�AØ‘}Ø šñ!r€   )r)   Úreplacement_traverse)r"  rX  r›  rš  s      €r~   Ú_adapt_clausezB_ORMSelectCompileState._get_current_adapter.<locals>._adapt_clause{  s   ø€ ô!ô ×0Ñ0°¸¸WÓEÐEr€   )r�  r
  r›  rø   r“  )r}   r�  rš  s     @r~   r™  z+_ORMSelectCompileState._get_current_adaptera  s_   ø€ Øˆà×Òð �O‰OØ×$Ñ$×,Ñ,ôð ×%Ò%Ø�O‰O˜D×;Ñ;Ô<áØô
	Fð Ðr€   c           
     óâ  — |D �]¿  \  }}}}|d   }|d   }t        |«      }|�t        |«      }t        |t        j                  «      r|�t	        j
                  d«      ‚|}d }nd|j                  v r|j                  d   }|€-|j                  s!t        |d«      st	        j                  d«      ‚t        |t        j                  «      r×t        |dd «      }	|€|	r|	}n|j                  }	 |j                  }|j                  }|j                  }t        |t        j                   «      s|}|||j"                  f| j$                  v r�ŒE|�b||ur^|j                  j'                  dd «      |ur@t	        j
                  d	|j                  j'                  d|«      ›d
|›�«      ‚|�d }|}nd x}}| j)                  |||||||«       �ŒÂ y # t        $ r}
t	        j                  d|z  «      |
‚d }
~
ww xY w)NÚisouterÚfullzUNo 'on clause' argument may be passed when joining to a relationship path as a targetr3  r$  z9Expected mapped entity or selectable/table as join targetÚ_of_typez0Join target %s does not refer to a mapped entityzexplicit from clause z4 does not match left side of relationship attribute )r#   r3  r   ÚPropComparatorrw  r  r-  r;  rL  rM  r  r¬   r’  ÚAttributeErrorÚ_parententityr   r,  r  Ú_already_joined_edgesr·   Ú_join_left_to_right)r}   ÚargsÚentities_collectionÚrightÚonclauseÚfrom_ÚflagsrŸ  r   Úof_typeÚerrÚleftrd  s                r~   r  z_ORMSelectCompileState._join‰  s@  € Ø-1ó Z	Ñ)ˆE�8˜U EØ˜IÑ&ˆGØ˜‘=ˆDä˜E“NˆEØÐ#Ü" 8Ó,�ä˜%¤×!:Ñ!:Ô;ØÐ'Ü ×4Ñ4ð=óð ð
 !�Ø‘Ø 5×#5Ñ#5Ñ5Ø×*Ñ*¨>Ñ:�àÐØ×*Ò*´7¸5À(Ô3KÜ ×.Ñ.ð:óð ô
 ˜(¤J×$=Ñ$=Ô>ô " (¨J¸Ó=�à�=ÙØ '™à (× 1Ñ 1˜ð'Ø$)§L¡L˜Eð  ×-Ñ-�à×(Ñ(�Ü! (¬J×,IÑ,IÔJØ#�Hð ˜% §¡Ð*¨d×.HÑ.HÑHÙàÐ$à TÑ)Ø!×.Ñ.×2Ñ2°>À4ÓHØ#ñ$ô %×8Ò8ð !&× 2Ñ 2× 6Ñ 6°~ÀuÕ MÙ (ð	óð ð Ð"Ø�Ø‘ð #Ð"��tð ×$Ñ$Ø#ØØØØØØöñeZ	øôR  .ò 'Ü"(×"6Ñ"6ð!0Ø27ñ!8ó#ð $'ð'ûð'ús   Ã+GÇ	G.ÇG)Ç)G.c           	     ó†  — |}|€|�J ‚| j                  ||||«      \  }}	}
n| j                  ||«      \  }	}
||u rt        j                  d|›d|›d�«      ‚| j	                  ||||«      \  }}}|j
                  s| j                  |«      }nd}|	�d| j                  |	   }|�|€t        j                  ||«      }| j                  d|	 t        ||||||¬«      gz   | j                  |	dz   d z   | _        y|
�%t        ||
   t        «      sJ ‚||
   j                  }n|}| j                  t        ||||||¬«      gz   | _        y)zÆgiven raw "left", "right", "onclause" parameters consumed from
        a particular key within _join(), add a real ORMJoin object to
        our _from_obj list (or augment an existing one)

        NzCan't construct a join from z to z, they are the same entityr’   )rŸ  r   Ú_extra_criteriar   )Ú"_join_determine_implicit_left_sideÚ_join_place_explicit_left_siderw  r  Ú _join_check_and_adapt_right_sider;  Ú_get_extra_criteriarê  r   Ú_join_conditionr3  r4  r²   )r}   r¨  r¯  r©  rª  rd  Ú	outerjoinr   Úexplicit_leftÚreplace_from_obj_indexÚuse_entity_indexÚr_infoÚextra_criteriaÚleft_clauses                 r~   r¦  z*_ORMSelectCompileState._join_left_to_rightæ  sÍ  € ð  ˆØˆ<ð �<Ð�<ð
 ×7Ñ7Ø# T¨5°(óñ	ØØ&Ù ð ×3Ñ3Ð4GÈÓNñØ&Ø ð �5‰=Ü×,Ò,â)-ªuð6óð ð #'×"GÑ"GØ�%˜ 4ó#
Ñˆ��xð ×#Ò#Ø!×5Ñ5°fÓ=‰NàˆNà!Ð-ð ×+Ñ+Ð,BÑCˆKàÐ(¨XÐ-=Ü#×3Ñ3°MÀ5ÓI�ð ×!Ñ!Ð"9Ð#9Ð:äØ#ØØ Ø )Ø!Ø(6ôð	ñ
ð ×#Ñ#Ð$:¸QÑ$>Ð$@ÐAñBð Õð   Ð+ô "Ø'Ð(8Ñ9¼=ôð ð ð 2Ð2BÑC×NÑN‘à"�à $× 1Ñ 1ÜØØØØ%ØØ$2ôð	5ñ 	!ˆDÕr€   c                óz  — t        |«      }dx}}| j                  r‹t        j                  | j                  |j                  |«      }t        |«      dk(  r|d   }| j                  |   }�nMt        |«      dkD  rt        j                  d«      ‚t        j                  d|›d�«      ‚|rúi }	t        |«      D ]W  \  }
}|j                  }|€Œt        |«      }||u rŒ%t        |t        «      r|
|f|	|j                  <   ŒGd|f|	|j                  <   ŒY t        |	j                  «       «      }t        j                  ||j                  |«      }t        |«      dk(  r|	||d         \  }}nQt        |«      dkD  rt        j                  d«      ‚t        j                  d|›d�«      ‚t        j                  d«      ‚|||fS )z­When join conditions don't express the left side explicitly,
        determine if an existing FROM or entity in this query
        can serve as the left hand side.

        Nr   r   a  Can't determine which FROM clause to join from, there are multiple FROMS which can join to this entity. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zDon't know how to join to z«. Please use the .select_from() method to establish an explicit left side, as well as providing an explicit ON clause if not present already to help resolve the ambiguity.zgNo entities to join from; please use select_from() to establish the left entity/selectable of this join)r#   rê  rV  Úfind_left_clause_to_join_fromr²   r)  rw  r  Ú	enumerateÚentity_zero_or_selectabler3  r4  r  Úkeys)r}   r¨  r¯  r©  rª  r»  r¹  rº  ÚindexesÚ	potentialÚentity_indexr5  r’  Úent_infoÚall_clausess                  r~   r²  z9_ORMSelectCompileState._join_determine_implicit_left_sideM  sü  € ô& ˜“ˆà48Ð8ÐÐ!1à×Òô ×<Ñ<Ø×!Ñ! 6×#4Ñ#4°hóˆGô �7‹|˜qÒ Ø)0°©Ð&Ø×(Ñ(Ð)?Ñ@’Ü�W“ Ò!Ü×0Ñ0ð5óð ô ×0Ò0ò
 9>ð	@óð ñ !ð ˆIÜ%.Ð/BÓ%Cò DÑ!�˜cØ×6Ñ6�Ø�>ØÜ" 6›?�Ø˜vÑ%Øô
 ˜c¤=Ô1Ø1=¸vÐ0F�I˜cŸn™nÒ-à6:¸F°^�I˜h×1Ñ1Ò2ðDô  ˜yŸ~™~Ó/Ó0ˆKÜ×<Ñ<Ø˜V×.Ñ.°óˆGô �7‹|˜qÒ Ø)2°;¸wÀq¹zÑ3JÑ)KÑ&Ð ¡$Ü�W“ Ò!Ü×0Ñ0ð5óð ô ×0Ò0ò
 9>ð	@óð ô ×,Ñ,ð1óð ð Ð+Ð-=Ð=Ð=r€   c                ó€  — dx}}t        |«      }| j                  rTt        j                  | j                  |j                  «      }t        |«      dkD  rt        j                  d«      ‚|r|d   }|€J|rHt        |d«      r<t        |«      D ].  \  }}t        |t        «      sŒ|j                  |«      sŒ)|} ||fS  ||fS )zøWhen join conditions express a left side explicitly, determine
        where in our existing list of FROM clauses we should join towards,
        or if we need to make a new join, and if so is it from one of our
        existing entities.

        Nr   zrCan't identify which entity in which to assign the left side of this join.   Please use a more specific ON clause.r   r$  )r#   rê  rV  Ú#find_left_clause_that_matches_givenr²   r)  rw  r  rL  rÀ  r3  r4  Úcorresponds_to)	r}   r¨  r¯  r¹  rº  Úl_inforÃ  Úidxr5  s	            r~   r³  z5_ORMSelectCompileState._join_place_explicit_left_side·  sâ   € ð2 59Ð8ÐÐ!1ä˜“ˆØ×ÒÜ×BÑBØ×!Ñ! 6×#4Ñ#4óˆGô �7‹|˜aÒÜ×0Ñ0ð!óð ñ Ø)0°©Ð&ð #Ð*Ù#Ü˜ Ô)ä%Ð&9Ó:ò ‘��Sô ˜c¤=Õ1°c×6HÑ6HÈÕ6NØ'*Ð$Øà%Ð'7Ð7Ð7ðð &Ð'7Ð7Ð7r€   c           	     ó€  — t        |«      }t        |«      }d}t        |dd«      }|r•|j                  s$t        |j                  t
        j                  «      re| j                  xs |j                  gD ]G  }	t        j                  |j                  |	«      sŒ$t        j                  |	|j                  «      sŒEd} n |r:|j                  |j                  u r"t        j                  d|j                  z  «      ‚t        |dd«      |j                  t        |dd«      }}
}|r8|r6|j                  |j                  «      st        j                  d|›d|›�«      ‚t        |d«      r| xj                   |fz  c_        d}|j"                  rô|r|j                  }|
j$                  r| j'                  «       }|�È ||d«      }n¾|r¼|
j)                  |j                  «      s:t        j                  d	|
j*                  ›d
|j                  j*                  ›d�«      ‚t        |
t
        j,                  «      r&t/        j0                  t2        j4                  |
«      }
d}t7        ||
«      }t9        j:                  d|z  dd¬«       |xr | xr |}|s+|r)t7        |d¬«      }d}t9        j<                  d|z  d¬«       |rF|sJ ‚t?        t@        jB                  t        |«      |jD                  ¬«      }| jG                  ||«       n[|j"                  sO|sM|jH                  rA| jG                  |t?        t@        jJ                  ||j                  |jD                  ¬«      «       t        |t
        jL                  «      r| j'                  «       }|r	 ||d«      }|r#| xjN                  |||jP                  ffz  c_'        t        |«      ||fS )zútransform the "right" side of the join as well as the onclause
        according to polymorphic mapping translations, aliasing on the query
        or on the join, special cases where the right and left side have
        overlapping tables.

        Fr$  NTz*Can't join table/selectable '%s' to itselfr9  zJoin target z9 does not correspond to the right side of join condition zSelectable 'z' is not derived from 'ú'zÕAn alias is being generated automatically against joined entity %s for raw clauseelement, which is deprecated and will be removed in a later release. Use the aliased() construct explicitly, see the linked example.z1.4Úxaj1)Úcode)Úflatz÷An alias is being generated automatically against joined entity %s due to overlapping tables.  This is a legacy pattern which may be deprecated in a later release.  Use the aliased(<entity>, flat=True) construct explicitly, see the linked example.Úxaj2rK  )r²   r8  ))r#   r  Úwith_polymorphicr3  r:  r'   ÚJoinrê  r²   rV  Úselectables_overlaprw  r  Úcommon_parentr$  rL  r  Úis_clause_elementÚ_is_lateralr™  Úis_derived_fromÚdescriptionrX   r&   r«  r(   ÚFromClauseRoler   r%   Úwarn_deprecatedÚwarnr   r   Ú DEPRECATED_JOIN_ADAPT_RIGHT_SIDEr>  r<  Ú#_has_aliased_polymorphic_fromclauseÚ#WITH_POLYMORPHIC_ADAPTER_RIGHT_JOINÚClauseElementr¥  r  )r}   r¯  r©  rª  rd  rË  r»  ÚoverlapÚright_mapperr4  Úright_selectableÚright_is_aliasedÚneed_adapterr•  Úaliased_entityrE  s                   r~   r´  z7_ORMSelectCompileState._join_check_and_adapt_right_sideù  s·  € ô ˜“ˆÜ˜“ˆàˆä˜v x°Ó6ˆñ Ø×)Ò)Ü˜,×9Ñ9¼:¿?¹?ÔKà ×-Ñ-ÒD°&×2CÑ2CÐ1Dò �Ü×/Ñ/Ø×%Ñ% xõä×2Ñ2Ø˜f×/Ñ/õð #�GÙðñ �v×(Ñ(¨F×,=Ñ,=Ñ=Ü×,Ñ,Ø<Ø×#Ñ#ñ$óð ô �F˜H dÓ+Ø×ÑÜ�FÐ.°Ó6ð )9Ð&ˆñ ÙØ ×.Ñ.¨t¯{©{Ô;ä×,Ò,â9>ÁðJóð ô �6˜8Ô$Ø×Ò F 9Ñ,Õàˆð ×#Ò#ÙØ#Ÿ{™{�à×+Ò+ð #'×";Ñ";Ó"=�Ø"Ð.ñ ,¨E°4Ó8‘Eáð (×7Ñ7Ø ×3Ñ3ôô !×4Ò4ð -×8Ó8Ø(×;Ñ;×GÓGðóð ô Ð.´
×0EÑ0EÔFÜ'0×'7Ñ'7Ü×,Ñ,Ð.>ó(Ð$ð $(�Lô % \Ð3CÓD�ä×$Ñ$ðDð
 #ñ#ð Øõ	ð &ÒJÐ.>Ð*>ÒJÀ7ˆá¡ô ! ¨TÔ2ˆEØˆLä�I‰Ið@ð
 COñOð õñ ñ  Ð�<ä Ü×@Ñ@Ü˜“Ø(×<Ñ<ôˆGð ×3Ñ3°LÀ'ÕJà×(Ò(Ù$Ø×@Ò@ð ×3Ñ3ØÜÜ#×GÑGØ Ø+×6Ñ6Ø ,× @Ñ @ô	ôô �h¤
× 8Ñ 8Ô9Ø"×7Ñ7Ó9ˆOÙÙ*¨8°TÓ:�ñ Ø×&Ò&¨D°%¸¿¹Ð+BÐ*DÑDÕ&ä�u‹~˜u hÐ.Ð.r€   c                ó¸  — | j                   j                  | j                   j                  | j                  | j                  | j                   j
                  | j                   j                  | j                  xs d | j                   j                  | j                   j                  | j                   j                  | j                   j                  | j                  dœS )N)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    r~   rk  z#_ORMSelectCompileState._select_args¶	  s«   € ð !×1Ñ1×?Ñ?Ø!×2Ñ2×AÑAØŸ™Ø×+Ñ+Ø×-Ñ-×7Ñ7Ø×-Ñ-×7Ñ7ØŸ™Ò-¨Ø ×1Ñ1×?Ñ?à×%Ñ%×;Ñ;à $× 5Ñ 5× GÑ Gà×%Ñ%×<Ñ<à!%×!7Ñ!7ñ!
ð 	
r€   c                ó4  — | j                   }| j                  sy|j                  d«      d uxr | j                  xs] |j                  d«      d uxr | j                  xs: |j                  dd«      xs& |j                  dd«      xs |j                  dd«      S )NFrˆ  r‰  r  r  r’   r  )rk  r¢  r·   r{   )r}   Úkwargss     r~   r  z._ORMSelectCompileState._should_nest_selectableË	  s¤   € à×"Ñ"ˆà×&Ò&Øð —
‘
˜>Ó*°$Ð6ò 1Ø×0Ñ0ò
-ð
 —
‘
˜?Ó+°4Ð7ò 1Ø×0Ñ0ò
-ð �z‰z˜* eÓ,ò
-ð �z‰z˜-¨Ó,ò
-ð �z‰z˜* eÓ,ð	
r€   c                ó˜   ‡ ‡— d‰j                   f‰ j                  v r.t        ˆˆ fd„‰ j                  d‰j                   f   D «       «      S y)NÚadditional_entity_criteriac              3  ó–   •K  — | ]@  }|j                   s|j                  ‰u r$|j                  ‰«      r|j                  ‰«      –— ŒB y ­wry   )Úinclude_aliasesr’  Ú_should_includeÚ_resolve_where_criteria)r˜   Úaer?  r}   s     €€r~   r›   z=_ORMSelectCompileState._get_extra_criteria.<locals>.<genexpr>å	  sH   øè ø€ ò àð ×&Ò&¨"¯)©)°xÑ*?Ø×&Ñ& tÔ,ð ×*Ñ*¨8×4ñùs   ƒAA	r’   )r$  r³   rŸ   )r}   r?  s   ``r~   rµ  z*_ORMSelectCompileState._get_extra_criteriaà	  sZ   ù€ à(Ø�O‰Oð
ð ×#Ñ#ñ$ô ô à×0Ñ0Ø1°8·?±?ÐCñôó ð ð r€   c                ó  — | j                   s| j                  st        j                  S | j	                  | j
                  «      }| j                  r| j                  D �cg c]  }|€Œ|‘Œ	 }}nd}t        | j                  || j
                  || j                  | j
                  j                  | j                   | j                  «      «      }t        t        t        |D �cg c]	  }||vsŒ|‘Œ c}Ž «      «      S c c}w c c}w )zûReturn the set of FROM objects that will be correlated away
        from this SELECT, given its current state.

        This runs ahead of the final statement being generated, so the
        FROM list is derived from the ORM-level statement.

        N)r×  rØ  r%   Ú	EMPTY_SETÚ
_get_fromsr�   r  rƒ  Ú_correlate_fromsr  r  r-   r/   )r}   Úfromsra  Úto_correlateÚdisplay_fromsÚfs         r~   Ú_get_correlated_fromsz,_ORMSelectCompileState._get_correlated_fromsð	  sé   € ð ×-Ò-Ø×.Ò.ä—>‘>Ð!à—‘ × 5Ñ 5Ó6ˆà�>Š>Ø'+§~¡~ÖG !¸¹šAÐGˆLÑGàˆLäØ×!Ñ!ØØ×%Ñ%ØØ×%Ñ%Ø×%Ñ%×5Ñ5Ø×.Ñ.Ø×.Ñ.óó

ˆô ÜÜ¨5ÖK a°A¸]Ò4J¢ÒKÐLóó
ð 	
ùò! Hùò$  Ls   ÁC8Á&C8Ã	C=Ã(C=c                óÐ  ‡‡— | j                   j                  r| j                  «       nt        j                  Š| j
                  D �cg c]  }|j                  j                  dd«      ‘Œ  c}| j                   j                  D ��cg c]:  }t        j                  |«      D ]   }||j                  j                  dd«      f‘Œ" Œ< c}}D ��cg c]5  \  }}|r.‰r*|j                  rt        ˆfd„|j                  D «       «      s|‘Œ7 c}}z   }|D ]n  }|sŒ|j                  j                  €d|j                  f| j                  v sŒ7|| j                  vsŒF||j                   r|j"                  ndf| j                  |<   Œp d}t%        j&                  d„ «      }t        j(                  | j                  j+                  «       «      D ]õ  \  }Š|| j,                  v rŒ|j                   r+|j/                  «       j0                  r|j/                  «       }n|}|j                  j2                  }	|	�Q|	\  }
}|
j5                  ||j                  dœ«      }
|||
f   \  }}|j7                  |«       ‰r|j9                  ‰«       | j:                  j<                  rŒÎ| j?                  |«      }|tA        ˆfd„|D «       «      z  }Œ÷ |jC                  «       D ]:  \  \  }}
\  }}|
jE                  |«      }|D ]  Š‰jG                  |«      }Œ ||fz  }Œ< | jI                  «       }|r'|D ]!  } ||d	«      }| xj                  |fz  c_        Œ# y| xj                  |z  c_        yc c}w c c}}w c c}}w )
aà  Apply extra criteria filtering.

        For all distinct single-table-inheritance mappers represented in
        the columns clause of this query, as well as the "select from entity",
        add criterion to the WHERE
        clause of the given QueryContext such that only the appropriate
        subtypes are selected from the total results.

        Additionally, add WHERE criteria originating from LoaderCriteriaOptions
        associated with the global context.

        r3  Nc              3  óT   •K  — | ]  }‰j                  |j                  «      –— Œ! y ­wry   )ÚintersectionÚ_cloned_set)r˜   r«  Úcorrelated_fromss     €r~   r›   zD_ORMSelectCompileState._adjust_for_extra_criteria.<locals>.<genexpr>?
  s*   øè ø€ ò àð %×1Ñ1°%×2CÑ2C×Dñùs   ƒ%(rì  r’   c                 ó>   — t        j                  «       t        «       fS ry   )r%   Ú
OrderedSetrƒ  r’   r€   r~   ú<lambda>zC_ORMSelectCompileState._adjust_for_extra_criteria.<locals>.<lambda>Y
  s   € ”T—_‘_Ó&¬«Ð.€ r€   )r3  Úparentmapperc              3  óH   •K  — | ]  }‰r‰j                  |«      n|–— Œ y ­wry   )Útraverse)r˜   rø  rE  s     €r~   r›   zD_ORMSelectCompileState._adjust_for_extra_criteria.<locals>.<genexpr>ˆ
  s+   øè ø€ ò 0àñ /6�G×$Ñ$ TÔ*¸4Ó?ñ0ùs   ƒ"F)%r�   r  rú  r%   ró  rê  r-  r·   rV  Úsurface_expressionsr/   Úallr$  Ú_single_table_criterionr³   r‡  r9  rN  ÚcollectionsÚdefaultdictr  r_  r  Ú_base_aliasÚ_is_with_polymorphicÚ _single_table_criteria_componentr#  r6  r	  rù   rí   rµ  rŸ   r  Úin_r  r™  )r}   Ú
fromclauseÚ
where_critrs  r?  Ú	ext_infosÚ_where_criteria_to_addÚmerged_single_critÚhierarchy_rootÚsingle_crit_componentÚpolymorphic_onÚcriteriaÚlist_of_single_critsrš  rì  Úmerged_critÚnew_critr•  rø  rE  rÿ  s                      @@r~   r  z1_ORMSelectCompileState._adjust_for_extra_criteria
  s«  ù€ ð& ×$Ñ$×4Ò4ð ×&Ñ&Ô(ä—‘ð 	ð #×/Ñ/ö
àð ×#Ñ#×'Ñ'¨¸Õ=ò
ð #'×"7Ñ"7×"GÑ"G÷#àÜ$×8Ñ8¸ÓDò#ð ð �t×(Ñ(×,Ñ,¨^¸TÓBÒCð#ØCó#÷
á��hñ
 ñ !Ø×&Ò&Üó à!%×!3Ñ!3ôô ò ó
ñ
ˆ	ð4 "ò 	ˆHò à—O‘O×;Ñ;ÐGØ4°h·o±oÐFØ×-Ñ-ò.ð  D×$@Ñ$@Ò@ð Ø)1×)BÒ)B�H×%Ò%Èð:�×,Ñ,¨XÒ6ð	ð  "$Ðä(×4Ñ4Ù.ó
Ðô "&§¡Ø×(Ñ(×/Ñ/Ó1ó"
ò /	ÑˆH�gð ˜4×.Ñ.Ñ.Øð ×)Ò)Ø×(Ñ(Ó*×?Ò?ð "*×!5Ñ!5Ó!7‘à!)�ð ×%Ñ%×FÑFð "ð %Ð0Ø+@Ñ(� à!/×!9Ñ!9à(6Ø(6×(=Ñ(=ñó"�ð 2DØ# ^Ð4ñ2Ñ.Ð$ hð %×+Ñ+¨HÔ5ÙØ—L‘L Ô)ð ×'Ñ'×:Ó:Ø-1×-EÑ-EÀhÓ-OÐ*Ø&¬%ó 0à :ô0ó +ñ Ñ&ðY/	ðl  ×%Ñ%Ó'ò	2ñ 
Ñ&ˆX�~ñ )
ØØà%×)Ñ)¨+Ó6ˆHØ#ò 6�Ø"×+Ñ+¨HÓ5‘ð6à" x kÑ1Ñ"ð	2ð ×3Ñ3Ó5ˆÙð /ò 0�Ù& t¨UÓ3�Ø×$Ò$¨¨Ñ/Ö$ñ0ð
 × Ò Ð$:Ñ:Ö ùòk
ùó
#ùó
s   Á#MÂ?MÃ:M")
r¢   r  r¼   rz   r»   rJ  rÆ   r   r¨   rµ  ry   )6rƒ   r„   r…   r¥  r%   rœ   rå  r�  rK  r¡  r{   r¢  r£  r  r  r  r
  ró  r×  r«   rØ  r×   r  ró  rë  rI  r9  r>  rB  rE  r  rI  r"  rW  rZ  r]  rP  r   r!  rh  r“  r–  r™  r  r¦  r²  r³  r´  r¬   rk  r  rµ  rú  r  r’   r€   r~   rµ  rµ  G  sÊ  … àÐàŸ™Ðà€OØ ÐàÐØ#ÐØÐØ!Ðà€IØÐØ€OØÐð :>¿¹ÐÐ6ÓGØ9=¿¹ÐÐ6ÓGàðkà/ðkð ð	kð
 (ðkð ðkð 
 òkó ðkòZ
5òLð\ ñó ðð2 ñ7ó ð7ðr ñ8ó ð8ð ñ
ó ð
ð  ñó ðò"+òò8(òò0ó#òò"Yòvò(Oòb/ò$ò&òP[òzeòNh>òT@8òD{/ðz ñ
ó ð
ð( ñ
ó ð
ò(ò $
óLK;r€   rµ  c                ój  — |€t         j                  | |¬«      }|}|j                  D �cg c]  }||j                  f‘Œ c}D ��cg c][  \  }}|j                  |j
                  t        |dd«      |j                  |j                  �|j                  st        |dd «      nd dœ‘Œ] }}}|S c c}w c c}}w )N)r  r9  Fr’  )r  ÚtypeÚaliasedÚexprr’  )	rµ  rI  r÷   rU  Ú_label_namer  r  r  r×  )Úquery_or_select_stmtr`   r  r+  Ú_entr5  Úinsp_entÚds           r~   r  r  ¤
  sÍ   € ð
 ÐÜ.×JÑJØ ¨ð Kó 
ˆð €Cð 25·±ö
Ø)-ˆT�4×#Ñ#Ò$ò
÷	ñ ˆC�ð —O‘OØ—H‘HÜ˜xÐ);¸UÓCØ—H‘Hð —?‘?Ð.Ø ×2Ò2ô ˜ (¨DÔ1ð ó	
ð	€Añ 	ð" €Hùò	
ùó	s   ªB*ÁA B/c                óÚ   — | }|j                   r|j                  }|�|S |j                  r7d|j                  d   j                  v r|j                  d   j                  d   S t	        |«      S )Nr3  r   )r  Ú_last_joined_entityré  r-  Ú_entity_from_pre_ent_zero)Úquery_or_augmented_selectr}   r%  s      r~   Ú_legacy_filter_by_entity_zeror(  Â
  sl   € ð %€DØ×ÒØ"×6Ñ6ÐØÐ*Ø&Ð&à‡~‚~˜.¨D¯N©N¸1Ñ,=×,JÑ,JÑJØ�~‰~˜aÑ ×-Ñ-¨nÑ=Ð=ä$ TÓ*Ð*r€   c                óî   — | }|j                   sy |j                   d   }d|j                  v r|j                  d   S t        |t        «      r|j                  S d|j                  v r|j                  d   S |S )Nr   r3  Úbundle)r�  r-  r3  r   r’  )r'  r}   r5  s      r~   r&  r&  Ñ
  s}   € ð %€DØ×ÒØà
×
Ñ
˜AÑ
€Cà˜×)Ñ)Ñ)Ø×Ñ Ñ/Ð/Ü	�CÔ-Ô	.Ø�z‰zÐØ	�S×%Ñ%Ñ	%Ø×Ñ Ñ)Ð)àˆ
r€   c                ól   — | sy | d   \  }}}}t        |t        j                  «      r|j                  S |S )NrÚ  )r3  r   r,  r’  )Úsetup_joinsrU  r/  rª  r«  r¬  s         r~   Ú_determine_last_joined_entityr-  ä
  sA   € ñ Øà%0°¡_Ñ"€FˆH�e˜UäØÜ×%Ñ%ôð �}‰}Ðàˆr€   c                  ó†   — e Zd ZU dZdZded<   dZdZdZded<   ded	<   d
ed<   ded<   dd„Z		 	 	 	 	 	 dd„Z
d„ Zed„ «       Zy)r  z:represent an entity column returned within a Query result.r’   rz   Úsupports_single_entityFzOptional[str]r  z!Union[Type[Any], TypeEngine[Any]]r  z.Union[_InternalEntityType, ColumnElement[Any]]r  zOptional[_InternalEntityType]rU  c                ó   — t        «       ‚ry   rÉ   ©r}   r`   s     r~   rˆ  z _QueryEntity.setup_compile_state  r  r€   c                ó   — t        «       ‚ry   rÉ   ©r}   r`   rE  s      r~   rŸ  z._QueryEntity.setup_dml_returning_compile_state	  s   € ô
 "Ó#Ð#r€   c                ó   — t        «       ‚ry   rÉ   )r}   r-  rÒ   s      r~   Úrow_processorz_QueryEntity.row_processor  r  r€   c                óŒ  — t        |«      D �]4  \  }}|j                  r7|j                  r| j                  ||j                  ||«       Œ>|j                  }|j
                  rÄ|j                  rAd|j                  v rt        ||||«       Œt        j                  ||j                  |||«       Œ£|j                  j                  dd«      rt        ||||«       ŒÎ|j                  r$t        j                  ||j                  |||«       Œþt        j                  ||g|||«       �Œ|j                  s�Œ(t        |||«       �Œ7 |S )Nr3  r*  F)rÀ  Ú_is_lambda_elementÚ_is_sequencer€  Ú	_resolvedr×  r;  r-  r4  Ú_ColumnEntityÚ_for_columnsÚ_select_iterabler·   Ú_BundleEntityÚ_is_clause_listÚ	is_bundle)rÅ   r`   r®  r¨  rs  rÌ  r’  s          r~   r€  z_QueryEntity.to_compile_state  sX  € ô % XÓ.ó 9	J‰KˆC�Ø×(Ò(Ø×&Ò&Ø×(Ñ(Ø%Ø×(Ñ(Ø+Ø+ô	ð à#×-Ñ-�Fà×'Ò'Ø×'Ò'Ø%¨×)<Ñ)<Ñ<Ü%Ø)Ø"Ø/Ø/õ	ô &×2Ñ2Ø)Ø"×3Ñ3Ø/ØØ/õð ×*Ñ*×.Ñ.¨x¸Ô?Ü%Ø)Ø"Ø/Ø/õ	ð  ×/Ò/ô &×2Ñ2Ø)Ø"×3Ñ3Ø/ØØ/õô &×2Ñ2Ø)Ø#˜HØ/ØØ/öð ×!Ô!Ü˜m¨VÐ5HÖIðs9	Jðv #Ð"r€   N)r`   rw   r¨   ÚNone©r`   rw   rE  z Optional[_DMLReturningColFilter]r¨   r@  )rƒ   r„   r…   rá   rª   r«   Ú_non_hashable_valueÚ_null_column_typeÚuse_id_for_hashrˆ  rŸ  r5  r×   r€  r’   r€   r~   r  r  ö
  sx   … ÙDà€Ià Ó àÐØÐØ€OàÓØ
+Ó+Ø
8Ó8Ø.Ó.ó$ð$à'ð$ð 2ð$ð 
ó	$ò$ð ñ>#ó ñ>#r€   r  c                  ó°   — e Zd ZU dZdZded<   ded<   ded<   ded	<   d
ed<   ded<   d„ ZdZdZdZ	e
d„ «       Ze
d„ «       Zd„ Zd„ Zd„ Z	 	 	 	 	 	 dd„Zd„ Zy)r4  z mapper/class/AliasedClass entity)
r  r$  rU  r9  ÚpathÚ_extra_entitiesr  rC  r²   Ú_polymorphic_discriminatorrF   r  zMapper[Any]r$  rU  rz   r9  r   rF  Ústrr  c                ó’  — |j                  | «       |r!|j                  €| |_        d|_        d|_        |j                  d   }|j
                   |x}| _        |j                  }|| _        |j                  x| _	        }| j                  f| _
        |j                  r|j                  | _        n|j                  j                  | _        |j                  | _        |j                   | _        |j$                  | _        |j&                  | _        |j*                  | _        |j.                  r|j1                  || j$                  «       y y )NTr3  )r
  rú   rK  r¡  r-  Ú_post_inspectrU  r’  r  r$  rG  r9  r  r  Úclass_rƒ   rô   rF  r²   Úwith_polymorphic_mappersrC  r  rH  Ú _should_select_with_poly_adapterrA  )r}   r`   r’  r¨  rs  r?  r$  s          r~   r¥   z_MapperEntity.__init__l  s  € ð 	×"Ñ" 4Ô(ÙØ×,Ñ,Ð4Ø04�Ô-Ø15ˆMÔ.Ø.2ˆMÔ+à×$Ñ$ ^Ñ4ˆØ×ÒØ&,Ð,ˆ�4Ô#Ø—‘ˆàˆŒ	Ø'Ÿ™Ð.ˆŒ�fà $§	¡	˜|ˆÔà×$Ò$Ø'Ÿ}™}ˆDÕà%Ÿ}™}×5Ñ5ˆDÔà (× 9Ñ 9ˆÔØ×+Ñ+ˆŒ	à"×-Ñ-ˆŒØ)1×)JÑ)JˆÔ&Ø*2×*AÑ*AˆÔ'à×2Ò2Ø×:Ñ:Ø˜$Ÿ/™/õð 3r€   Tc                ó.   — | j                   j                  S ry   )r$  rL  r|   s    r~   r  z_MapperEntity.type–  s   € à�{‰{×!Ñ!Ð!r€   c                ó   — | j                   S ry   )rU  r|   s    r~   rÁ  z'_MapperEntity.entity_zero_or_selectableš  s   € à×ÑÐr€   c                ó.   — t        | j                  |«      S ry   )r   rU  ©r}   r’  s     r~   rÊ  z_MapperEntity.corresponds_tož  s   € Ü% d×&6Ñ&6¸Ó?Ð?r€   c                ó*  — d }| j                   s3|j                  r=|j                  j                  | j                  d «      }n| j                  j
                  }|r-|j                  r|j                  |j                  «      }|S |}|S |j                  }|S ry   )r9  rø   r·   r$  rU  rN  r�  Úwrap)r}   r`   rE  Úrets       r~   Ú_get_entity_clausesz!_MapperEntity._get_entity_clauses¡  s’   € Øˆà×$Ò$Ø×2Ò2Ø'×=Ñ=×AÑAØ—K‘K ó‘ð ×&Ñ&×/Ñ/ˆGáØ×,Ò,Ø—l‘l =×#@Ñ#@ÓA�ð ˆ
ð	 �ð ˆ
ð  ×/Ñ/ˆCàˆ
r€   c                óÀ  — |j                   }| j                  |«      }|j                  r|r|j                  |j                  «      }n|s|j                  }|j                  | u r#|j
                  j                  }|j                  }nd x}}t        j                  | | j                  ||| j                  |||| j                  ¬«	      }|| j                  | j                  fS )N)Úonly_load_propsrl   Úpolymorphic_discriminator)r`   rV  r£  rT  rú   rù   rë   rl   r   Ú_instance_processorr$  rF  rH  r  rG  )r}   r-  rÒ   r`   rE  rX  rl   Ú	_instances           r~   r5  z_MapperEntity.row_processor¶  sÒ   € Ø×-Ñ-ˆØ×*Ñ*¨=Ó9ˆà×/Ò/±GØ—l‘l =×#GÑ#GÓH‰GÙØ#×:Ñ:ˆGà×(Ñ(¨DÑ0Ø+×;Ñ;×LÑLˆOØ#×1Ñ1‰Mà.2Ð2ˆO˜mä×/Ñ/ØØ�K‰KØØØ�I‰IØØ+Ø'Ø&*×&EÑ&Eô

ˆ	ð ˜$×*Ñ*¨D×,@Ñ,@Ð@Ð@r€   c                óÌ   — t        j                  || j                  | | j                  ||j                  | j
                  |j                  j                  | j                  ¬«	       y )N©rÓ  rX  rY  )	r   Ú_setup_entity_queryr$  rF  rý   rC  rù   rë   rH  r3  s      r~   rŸ  z/_MapperEntity.setup_dml_returning_compile_stateÓ  sS   € ô
 	×#Ñ#ØØ�K‰KØØ�I‰IØØ×)Ñ)Ø!×;Ñ;Ø)×9Ñ9×JÑJØ&*×&EÑ&Eö
	
r€   c                ó  — | j                  |«      }| j                  j                  }|€d| j                  f|j                  v r5| j                  }||j
                  r|j                  nd f|j                  |<   t        j                  || j                  | | j                  ||j                  | j                  |j                  j                  | j                  ¬«	       |j                   j#                  | j$                  «       y )Nrì  r]  )rV  r$  r  r³   rU  r9  rN  r‡  r   r^  rF  rý   rC  rù   rë   rH  r„  r
  r²   )r}   r`   rE  Úsingle_table_critr?  s        r~   rˆ  z!_MapperEntity.setup_compile_stateä  sâ   € Ø×*Ñ*¨=Ó9ˆà ŸK™K×?Ñ?ÐàÐ)Ø,¨d¯k©kÐ:Ø×.Ñ.ñ/ð ×'Ñ'ˆHàØ%-×%>Ò%>�×!Ò!ÀDð?ˆM×1Ñ1°(Ñ;ô
 	×#Ñ#ØØ�K‰KØØ�I‰IØØ×)Ñ)Ø!×;Ñ;Ø)×9Ñ9×JÑJØ&*×&EÑ&Eõ
	
ð 	×,Ñ,×3Ñ3°D·O±OÕDr€   NrA  )rƒ   r„   r…   rá   rª   r«   r¥   r/  rB  rD  r¬   r  rÁ  rÊ  rV  r5  rŸ  rˆ  r’   r€   r~   r4  r4  U  s©   … Ù*ð€Ið ÓØÓØ$Ó$ØÓØ
ÓØÓò#ðJ "ÐàÐØ€Oàñ"ó ð"ð ñ ó ð ò@òò*Að:
à'ð
ð 2ð
ð 
ó	
ó"Er€   r4  c                  ó´   — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   	 	 dd„Zed„ «       Zed„ «       Z	d„ Z
ed„ «       Zd„ Z	 	 	 	 	 	 dd„Zd„ Zy)r=  r’   )r*  r  r  r  r÷   r/  rö   r÷   r   r*  z	Type[Any]r  rI  r  rz   r/  r  Nc           	     óˆ  — d|_         |j                  d   }|r|j                  j                  | «       n|j                  | «       t	        |t
        j                  t        j                  f«      r|j                  «       }n|}|x| _
        | _        t        |«      | _        |j                  | _        g | _        |rm|j                  D ]^  }d|j                  v rt!        ||||| ¬«       Œ"t	        |t"        «      rt!        ||||| ¬«       ŒCt$        j'                  ||g|d || ¬«       Œ` | j                  j(                  | _        y )NTr*  ©Úparent_bundle)r¡  r-  r÷   r
  r3  r   r,  r   r¢  rA  r*  r  r  r  r  Úexprsr=  r   Ú_ORMColumnEntityr;  Úsingle_entityr/  )r}   r`   r  r¨  rs  Úsetup_entitiesrd  r*  s           r~   r¥   z_BundleEntity.__init__  s;  € ð +/ˆÔ'à× Ñ  Ñ*ˆÙØ×#Ñ#×*Ñ*¨4Õ0à×&Ñ& tÔ,äØ”:×0Ñ0´*×2KÑ2KÐLô
ð ×,Ñ,Ó.‰FàˆFà"(Ð(ˆŒ�d”iÜ˜“LˆŒ	Ø!Ÿ;™;ˆÔØˆŒáØŸ™ò �Ø˜t×0Ñ0Ñ0Ü!Ø%ØØ+Ø+Ø&*öô   ¤fÔ-Ü!Ø%ØØ+Ø+Ø&*öô %×1Ñ1Ø%Ø˜Ø+ØØ+Ø&*ð 2õ ð%ð6 '+§k¡k×&?Ñ&?ˆÕ#r€   c                ó8   — | j                   }|�|j                  S y ry   )rU  r$  )r}   r'  s     r~   r$  z_BundleEntity.mapperO  s    € à× Ñ ˆØÐØ—<‘<Ðàr€   c                óJ   — | j                   D ]  }|j                  }|€Œ|c S  y ry   )r÷   rU  ©r}   r5  r'  s      r~   rU  z_BundleEntity.entity_zeroW  s.   € à—>‘>ò 	ˆCØ—O‘OˆEØÑ Ø’ð	ð
 r€   c                 ó   — yrù  r’   rR  s     r~   rÊ  z_BundleEntity.corresponds_to`  s   € ð r€   c                óJ   — | j                   D ]  }|j                  }|€Œ|c S  y ry   )r÷   rÁ  rk  s      r~   rÁ  z'_BundleEntity.entity_zero_or_selectablee  s0   € à—>‘>ò 	ˆCØ×1Ñ1ˆEØÑ Ø’ð	ð
 r€   c                óH   — | j                   D ]  }|j                  |«       Œ y ry   )r÷   rˆ  )r}   r`   r5  s      r~   rˆ  z!_BundleEntity.setup_compile_staten  s#   € Ø—>‘>ò 	3ˆCØ×#Ñ# MÕ2ñ	3r€   c                ó$   — | j                  |«      S ry   ©rˆ  r3  s      r~   rŸ  z/_BundleEntity.setup_dml_returning_compile_stater  ó   € ð
 ×'Ñ'¨Ó6Ð6r€   c           	     óô   — t        | j                  D �cg c]  }|j                  ||«      ‘Œ c}Ž \  }}}| j                  j	                  |j
                  ||«      }|| j                  | j                  fS c c}w ry   )r    r÷   r5  r*  Úcreate_row_processorra   r  rG  )r}   r-  rÒ   r5  ÚprocsÚlabelsÚextraÚprocs           r~   r5  z_BundleEntity.row_processory  so   € Ü"Ø<@¿N¹NÖK°Sˆc×Ñ ¨Õ0ÒKð 
Ñˆˆv�uð �{‰{×/Ñ/°·±¸uÀfÓMˆà�T×%Ñ% t×';Ñ';Ð;Ð;ùò Ls   ”A5rö  rA  )rƒ   r„   r…   rG  rª   r«   r¥   r¬   r$  rU  rÊ  rÁ  rˆ  rŸ  r5  r’   r€   r~   r=  r=    s¬   … Ø€Oð€Ið "Ó!ØƒNØ
ƒOØÓØ Ó Ø
ƒLð Øó9@ðv ñó ðð ñó ðòð
 ñó ðò3ð7à'ð7ð 2ð7ð 
ó	7ó<r€   r=  c                  óZ   — e Zd ZdZe	 dd„«       Zed„ «       Zed„ «       Zed„ «       Z	d„ Z
y)	r:  )Ú_fetch_columnÚ_row_processorÚraw_column_indexÚtranslate_raw_columnNc           
     óø   — |D ]u  }|j                   }d|v r|d   }	nt        j                  |d«      }	|	r4d|j                   v rt        ||||	|||¬«       ŒRt	        ||||	|||¬«       Œet        ||||||¬«       Œw y )Nr3  rr   rc  )r-  rV  Úextract_first_column_annotationÚ_IdentityTokenEntityrf  Ú_RawColumnEntity)
rÅ   r`   rN  r¨  r{  rs  rd  Úcolumnr   Ú_entitys
             r~   r;  z_ColumnEntity._for_columns‹  s°   € ð ò &	ˆFØ ×-Ñ-ˆKØ Ñ,Ø% nÑ5‘ä"×BÑBØ˜Nó�ñ Ø# v×':Ñ':Ñ:Ü(Ø%ØØ+ØØ(Ø+Ø&3öô %Ø%ØØ+ØØ(Ø+Ø&3öô !Ø!ØØ'Ø$Ø'Ø"/öñ?&	r€   c                ó.   — | j                   j                  S ry   )r�  r  r|   s    r~   r  z_ColumnEntity.type½  s   € à�{‰{×ÑÐr€   c                óD   — | j                   j                  j                   S ry   )r�  r  Úhashabler|   s    r~   rB  z!_ColumnEntity._non_hashable_valueÁ  s   € à—;‘;×#Ñ#×,Ñ,Ð,Ð,r€   c                óB   — | j                   j                  j                  S ry   )r�  r  Ú_isnullr|   s    r~   rC  z_ColumnEntity._null_column_typeÅ  s   € à�{‰{×Ñ×'Ñ'Ð'r€   c                óÖ  — |j                   }| j                  �H| j                  \  }}}| j                  r'||j                  j                  | j
                     fz  }|||fS | j                  �| j                  }nM| j                  }|j                  r|j                  j                  |   }|j                  r|j                  «       }|j                  r|j                  j                  |   }|j                  |«      }|| j                  | j                  f}|| _        | j                  r@| j                  |j                  j                  | j
                     fz   }|| j                  |fS |S ry   )r`   rz  r|  ra   r�  r{  ry  r�  r�  rN  r-  Ú_deannotater£  Ú_getterr  rG  )	r}   r-  rÒ   r`   ÚgetterÚ
label_nameÚextra_entitiesr�  rU  s	            r~   r5  z_ColumnEntity.row_processorÉ  sg  € Ø×-Ñ-ˆð ×ÑÐ*Ø15×1DÑ1DÑ.ˆF�J Ø×(Ò(ØØ—M‘M×.Ñ.¨t×/DÑ/DÑEð#ñ �ð ˜: ~Ð5Ð5ð ×ÑÐ)Ø×'Ñ'‰Fð —[‘[ˆFð ×,Ò,Ø&×6Ñ6×>Ñ>¸vÑF�à×"Ò"ð  ×+Ñ+Ó-�à×/Ò/Ø"×9Ñ9×AÑAÀ&ÑIˆFà—‘ Ó'ˆØ�d×&Ñ&¨×(<Ñ(<Ð<ˆØ!ˆÔà×$Ò$Ø!×1Ñ1Ø—‘×*Ñ*¨4×+@Ñ+@ÑAð5ñ ˆNð ˜4×+Ñ+¨^Ð;Ð;àˆJr€   ry   )rƒ   r„   r…   rª   r×   r;  r¬   r  rB  rC  r5  r’   r€   r~   r:  r:  ƒ  sd   „ ð€Ið ð ò/ó ð/ðb ñ ó ð ð ñ-ó ð-ð ñ(ó ð(ó0r€   r:  c                  óF   — e Zd ZdZdZdZdZ	 dd„Zd„ Z	 	 	 	 	 	 d	d„Z	d„ Z
y)
r€  NF)r  r�  r  rÁ  rG  c                ó&  — || _         || _        |d u| _        |j                  r|xj                  ddiz  c_        |r|j
                  rd | _        n*|r|j                  | _        n|j                  |«      | _        |r|j                  j                  | «       n|j                  | «       || _        | j                  j                  r| j                  j                  d   nd | _        | j                   | j                  f| _        d x| _        | _        y )Nrï   Tr   )r  r{  r|  rï   rù   r†  r  Ú
_proxy_keyrü   r÷   r
  r�  r/   rÁ  rG  ry  rz  )r}   r`   r�  r¨  r{  rs  rd  s          r~   r¥   z_RawColumnEntity.__init__	  sï   € ð ˆŒ	Ø 0ˆÔØ$4¸DÐ$@ˆÔ!à�?Š?Ø×)Ò)¨j¸$Ð-?Ñ?Õ)á" f×&<Ò&<Ø#ˆDÕáØ#)×#4Ñ#4�Õ à#0×#BÑ#BÀ6Ó#J�Ô áØ×#Ñ#×*Ñ*¨4Õ0à×&Ñ& tÔ,àˆŒà,0¯K©K×,EÒ,EˆD�K‰K×%Ñ% aÒ(È4ð 	Ô&ð !%§	¡	¨4¯;©;Ð7ˆÔØ37Ð7ˆÔ˜TÕ0r€   c                 ó   — yrù  r’   rR  s     r~   rÊ  z_RawColumnEntity.corresponds_to-  s   € Ør€   c                ó$   — | j                  |«      S ry   rp  r3  s      r~   rŸ  z2_RawColumnEntity.setup_dml_returning_compile_state0  rq  r€   c                ó  — |j                  «       }|r || j                  d«      }|€y | j                  }|j                  r|j                  «       }|j                  j                  |«       |j                  j                  |«       || _        y rù  )	r™  r�  r-  r‰  rÿ   r	  rý   r
  ry  )r}   r`   r•  r�  s       r~   rˆ  z$_RawColumnEntity.setup_compile_state7  s}   € Ø'×<Ñ<Ó>ˆÙÙ$ T§[¡[°%Ó8ˆFØˆ~Øà—[‘[ˆFà×Òð ×'Ñ'Ó)ˆFà×$Ñ$×(Ñ(¨Ô0Ø×%Ñ%×,Ñ,¨VÔ4Ø#ˆÕr€   ry   rA  )rƒ   r„   r…   rU  r$  r/  rª   r¥   rÊ  rŸ  rˆ  r’   r€   r~   r€  r€  ü  sO   „ Ø€KØ€FØ"Ðð€Ið ó"8òHð7à'ð7ð 2ð7ð 
ó	7ó$r€   r€  c                  óB   — e Zd ZdZdZdZ	 d	d„Zd„ Z	 	 	 	 	 	 d
d„Zd„ Z	y)rf  zColumn/expression based entity.F)r  r$  r�  r  rÁ  rU  rG  Nc                óØ  — |j                   }|}	 |j                  dd «      }
 |j                  d|	«      }|
r#t        |j                  |
«      | _        d| _        n|| _        |d u| _        || _        |r1|r|
r|
n|j                  | _        n |j                  ||
¬«      | _        nd | _        |	j                   |	x| _        x| _        }|	j                  x| _        }|r|j                  j                  | «       n|j                  | «       d|_        || _        d x| _        | _        | j                  | j"                  f| _        |j*                  r|j-                  ||j.                  «       y y )NÚ	proxy_keyÚproxy_ownerF)r  T)r-  r·   r  r’  r  r|  r{  r�  r  rü   rK  rU  rÁ  r$  r÷   r
  r¡  r�  ry  rz  rG  rN  rA  r²   )r}   r`   r�  r¨  r3  r{  rs  rd  r   r‚  Úorm_keyr—  r'  r$  s                 r~   r¥   z_ORMColumnEntity.__init__Y  se  € ð ×)Ñ)ˆàˆð "�+—/‘/ +¨tÓ4ˆØ%�k—o‘o m°WÓ=ˆÙÜ × 2Ñ 2°GÓ<ˆDŒIØ(-ˆDÕ%ð ˆDŒIØ(8ÀÐ(DˆDÔ%à 0ˆÔáÙÙ.5¡7¸6×;LÑ;L�Õ à#0×#BÑ#BØ Wð $Có $�Õ ð  $ˆDÔà×ÒØDKÐKˆÔÐK˜4Ô9¸EØ&Ÿ~™~Ð-ˆŒ�fáØ×#Ñ#×*Ñ*¨4Õ0à×&Ñ& tÔ,à*.ˆÔ'àˆŒà37Ð7ˆÔ˜TÔ0à $§	¡	¨4¯;©;Ð7ˆÔà×2Ò2Ø×:Ñ:Ø�u×'Ñ'õð 3r€   c                óš   — t        |«      r|| j                  u S t        | j                  «       xr |j                  | j                  «      S ry   )r   rU  rÖ  rR  s     r~   rÊ  z_ORMColumnEntity.corresponds_toœ  sO   € Ü˜VÔ$à˜T×-Ñ-Ð-Ð-ä(Ø× Ñ óð ò 9à×&Ñ& t×'7Ñ'7Ó8ð9r€   c                ó²   — | j                   x| _        }|r	 ||d«      }|�7|j                  j                  |«       |j                  j                  |«       y y rù  )r�  ry  rÿ   r	  rý   r
  )r}   r`   rE  r�  s       r~   rŸ  z2_ORMColumnEntity.setup_dml_returning_compile_state¥  sW   € ð '+§k¡kÐ1ˆÔ˜VÙÙ˜V UÓ+ˆFàÐØ×(Ñ(×,Ñ,¨VÔ4Ø×)Ñ)×0Ñ0°Õ8ð r€   c                ó  — |j                  «       }|r5 || j                  d«      }|€,|j                  sJ ‚| j                  | _        y | j                  }| j                  }| j
                  j                  }|€d| j
                  f|j                  v r)||j                  r|j                  nd f|j                  |<   |j                  r|j                  s|j                  «       }t        | j                  j                  «      j!                  |j"                  j                  «      r%|j$                  j'                  |j"                  «       |j(                  j+                  |«       |j,                  j'                  |«       || _        y )NFrì  )r™  r�  rÖ   ry  rU  r$  r  r³   r9  rN  r‡  r-  Ú_expression_labelr‰  rƒ  r/   rý  r²   r„  r
  rÿ   r	  rý   )r}   r`   r•  r�  r'  r`  s         r~   rˆ  z$_ORMColumnEntity.setup_compile_state³  sO  € Ø'×<Ñ<Ó>ˆÙÙ$ T§[¡[°%Ó8ˆFØˆ~Ø$×5Ò5Ð5Ð5Ø%)§[¡[�Ô"Øà—[‘[ˆFà× Ñ ˆà ŸK™K×?Ñ?ÐàÐ)Ø,¨d¯k©kÐ:Ø×.Ñ.ñ/ð Ø"'×"8Ò"8�—’¸dð<ˆM×1Ñ1°%Ñ8ð
 ×Ò v×'?Ò'?ð ×'Ñ'Ó)ˆFô ˆt�{‰{×(Ñ(Ó)×6Ñ6Ø×Ñ×*Ñ*ô
ð ×0Ñ0×7Ñ7¸×8HÑ8HÔIà×$Ñ$×(Ñ(¨Ô0Ø×%Ñ%×,Ñ,¨VÔ4Ø#ˆÕr€   ry   rA  )
rƒ   r„   r…   rá   r/  rª   r¥   rÊ  rŸ  rˆ  r’   r€   r~   rf  rf  J  sI   „ Ù)à"Ðð€Ið$ óAòF9ð9à'ð9ð 2ð9ð 
ó	9ó)$r€   rf  c                  ó   — e Zd ZdZd„ Zd„ Zy)r  Fc                 ó   — y ry   r’   r1  s     r~   rˆ  z(_IdentityTokenEntity.setup_compile_stateâ  s   € Ør€   c                ó@   ‡— ˆfd„}|| j                   | j                  fS )Nc                ó0   •— ‰j                   j                  S ry   )rd   r‹   )Úrowr-  s    €r~   r‹  z2_IdentityTokenEntity.row_processor.<locals>.getteræ  s   ø€ Ø×'Ñ'×7Ñ7Ð7r€   )r  rG  )r}   r-  rÒ   r‹  s    `  r~   r5  z"_IdentityTokenEntity.row_processorå  s#   ø€ ô	8ð �t×'Ñ'¨×)=Ñ)=Ð=Ð=r€   N)rƒ   r„   r…   r|  rˆ  r5  r’   r€   r~   r  r  ß  s   „ Ø Ðòó>r€   r  rù  )r   z#Union[Query, Select, FromStatement]r`   z Optional[_ORMSelectCompileState]r  rz   r¨   zList[ORMColumnDescription])r'  z+Union[Query[Any], Select[Unpack[TupleAny]]]r¨   ú"Optional[_InternalEntityType[Any]]ry   )r,  zTuple[_SetupJoinsElement, ...]rU  r¢  r¨   z=Optional[Union[_InternalEntityType[Any], _JoinTargetElement]])ŠÚ
__future__r   r	  r¿  Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   Ú r   r   r   Úbaser   r   r   Úpath_registryr   r%   r   r   r   r   r   r   r   r!   rw  r"   r#   r$   r&   r'   r(   rV  r)   Úsql._typingr*   r+   r,   Úsql.baser-   r/   r0   r1   r2   r3   r4   r5   r6   Úsql.dmlr7   Úsql.elementsr8   r9   Úsql.selectabler:   r;   r<   r=   r>   r?   r@   rA   Úsql.visitorsrB   Úutil.typingrC   rD   rE   Ú_typingrF   rG   rH   r$  rI   ra   rJ   rg   rK   rL   ÚenginerM   Úengine.interfacesrN   rO   Úsql.compilerrP   rQ   rR   rS   rT   rU   rV   rW   rX   Úsql.type_apirY   rZ   r\   Úrootrô   rã  r^   Úimmutabledictr&  r¯   rÛ   rw   rM  r^  rg  Ú
plugin_forrl  rm  rÔ  rµ  r  r(  r&  r-  r  r4  r=  r:  r€  rf  r  r’   r€   r~   ú<module>r·     si  ðõ #ã Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý å Ý Ý Ý #Ý ,Ý ,Ý 'Ý (Ý Ý !Ý Ý Ý Ý %Ý Ý Ý Ý Ý Ý Ý Ý Ý "Ý Ý  Ý *Ý (Ý %Ý $Ý (Ý 'Ý #Ý !Ý *Ý !Ý Ý  Ý )Ý %Ý 0Ý :Ý -Ý ;Ý #Ý -Ý (Ý -Ý ,Ý "Ý &Ý  áÝ,Ý3Ý"ÝÝÝ'Ý ÝÝ<Ý4Ý*Ý*Ý,Ý3Ý9Ý3Ý6Ý+Ý+Ý)áˆT˜Ô€Ù�5Ó€Ø×"Ñ"€à)×@Ñ@Ð ÷y.ñ y.ðx ,˜×+Ñ+Ø'¨Ð.óÐ ô
i$˜|ô i$ôX*Ð$<ô *ôZn
Ð/ô n
÷b	$$ñ $$ôN>Ð'=ô >ô&Ð)?ô ð0 ‡�×Ñ×!Ñ! %Ð)=Ó>ôxDÐ$4ó xDó ?ðxDôvxP�N JÐ0@ÀÈÁÑ0Mô xPðv ‡�×Ñ×!Ñ! %Ð):Ó;ô	Ø!Ð#6ó	ó <ð	ð ‡�×Ñ×!Ñ! %¨Ó2ôY;Ð-¨{ó Y;ó 3ðY;ð|2 7;ØðØ=ðà3ðð ðð  ó	ð<+ØJð+à'ó+ðØJðà'óð* 7;ðØ/ðà3ðð Có÷$\#ñ \#ô~iE�Lô iEôX<�Lô <ôDv�Lô vôrK$�}ô K$ô\R$�}ô R$ôj
>Ð+õ 
>r€   