ó
    Ñ]jYÖ ã                  óV	  • S r SSKJr  SSKrSSKrSSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SS	KJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJr  S
SKJ r   S
SK!J"r"  S
SK!J#r#  S
SK!J$r$  S
SK!J%r%  S
S KJ&r&  S
S!KJ'r'  S
S"K(J)r)  S
S#K*J+r+  S
S$K,J-r-  S
S%KJ.r.  S
S&KJ/r/  S'S(KJ0r0  S'SKJr1  S'S)KJ2r2  S'S*KJ3r3  S'S+KJ4r4  S'SKJr  S'SK4Jr5  S'S,K4J6r6  S'S-K7J8r8  S'S.K7J9r9  S'S/K:J;r;  \
(       a  S
S0K<J=r=  S
S1KJ>r>  S'S2K?J@r@        SdS4 jrA\R„                  R‡                  S3S3S59 " S6 S7\&5      5       rD\3RŠ                  \R„                  R‡                  S8S3S59 " S9 S:\&5      5       5       rF\3RŠ                  \R„                  R‡                  S8S;9 " S< S=\F5      5       5       rG\3RŠ                  \R„                  R‡                  S8S8S>9\R„                  R‡                  S8S8S8S?9\R„                  R‡                  S8S@9 " SA SB\&5      5       5       5       5       rH " SC SD5      rI " SE SF\&5      rJ\3RŠ                  \R|                  R‡                  S8S@9 " SG SH\&5      5       5       rK\3RŠ                  \R|                  R‡                  SISJ9\R|                  R‡                  SSJ9 " SK SL\J5      5       5       5       rL\3RŠ                  \R|                  R‡                  S8SJ9\R|                  R‡                  SMSJ9\R|                  R‡                  SNSJ9\R|                  R‡                  SOSJ9\R|                  R‡                  SPSJ9 " SQ SR\J\Rš                  \3Rœ                  5      5       5       5       5       5       5       rO " SS ST5      rP " SU SV\J5      rQ\R|                  R‡                  SWSJ9 " SX SY\Q5      5       rR\3RŠ                  \R|                  R‡                  SZSJ9 " S[ S\\Q5      5       5       rS\3RŠ                  \R|                  R‡                  S]SJ9\R|                  R‡                  S3SJ9 " S^ S_\J5      5       5       5       rT\3RŠ                  \R|                  R‡                  S`SJ9 " Sa Sb\Q\Rš                  5      5       5       rUSc rVg)ezTsqlalchemy.orm.interfaces.LoaderStrategy
implementations, and related MapperOptions.é    )ÚannotationsN)ÚAny)ÚDict)ÚOptional)ÚTuple)ÚTYPE_CHECKING)ÚUnioné   )Ú
attributes)Úexc)Ú
interfaces)Úloading)Úpath_registry)Ú
properties)Úquery)Úrelationships)Ú
unitofwork)Úutil)Ú_DEFER_FOR_STATE)Ú_RAISE_FOR_STATE)Ú_SET_DEFERRED_EXPIRED)ÚATTR_WAS_SET)ÚLoaderCallableStatus)ÚPASSIVE_OFF)ÚPassiveFlag)Ú_column_descriptions)ÚORMCompileState)ÚORMSelectCompileState)ÚQueryContext)ÚLoaderStrategy)ÚStrategizedProperty)Ú_state_session)ÚInstanceState)ÚLoad)Ú_none_only_set)ÚAliasedClassé   )Úevent)Úinspect)Úlog)Úsql)Úvisitors)ÚLABEL_STYLE_TABLENAME_PLUS_COL)ÚSelect)ÚLiteral)ÚMapper)ÚRelationshipProperty)ÚColumnElementFc	                ó@  ^^^^• / n
U=(       a    U R                   mU(       a&  U R                  (       a  U
R                  [        5        U R                  U R
                  R                  ;   a<  U R
                  R                  U R                     u  mmU
R                  UU4S j5        U(       a  U
R                  [        R                  5        U(       a:  U R                  mT(       a'  U R                  (       a  U
R                  UU4S j5        UR                   Hÿ  nXR                  R                  U R                  5      L d  M,  UR                  R                  U R                  5      (       a  MX  [         R"                  " UR$                  U R                  4U TUUU=(       a/    U R                  =(       d    U R&                  [(        R*                  L UUUUU(       + =(       d    U R,                  (       + U R.                  S.U	D6nU
 H  nU" XÀ5        M     GM     g )Nc                óH   >• [         R                  " XR                  T40 TD6$ ©N)Úorm_utilÚ_validator_eventsÚkey)ÚdescÚpropÚfnÚoptss     €€ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/orm/strategies.pyÚ<lambda>Ú%_register_attribute.<locals>.<lambda>\   s!   ø€ œx×9Ò9Ø—h‘h ñ Ø&*ò ó    c                ó4   >• [         R                  " U TT5      $ r5   )r   Úbackref_listeners)r9   r:   ÚbackrefÚuselists     €€r=   r>   r?   j   s   ø€ ¤:×#?Ò#?Ø˜' 7ô$r@   )Úparent_tokenrD   Úcompare_functionÚ	useobjectÚtrackparentÚtypecallableÚ	callable_Úactive_historyÚ
impl_classÚsend_modified_eventsÚdoc)rD   Úsingle_parentÚappendÚsingle_parent_validatorr8   ÚparentÚ
validatorsr   Útrack_cascade_eventsÚback_populatesÚ_effective_sync_backrefÚself_and_descendantsÚ_propsÚgetÚclass_managerÚ_attr_has_implr   Úregister_attribute_implÚclass_Ú	directionr   Ú	ONETOMANYÚviewonlyrN   )r:   ÚmapperrG   rF   rI   rJ   Úproxy_propertyrK   rL   ÚkwÚlisten_hooksÚmr9   ÚhookrC   r;   r<   rD   s                 @@@@r=   Ú_register_attributerg   F   s   û€ ð €Là×(˜DŸL™L€Gæ�T×'×'Ø×ÑÔ3Ô4à‡x�x�4—;‘;×)Ñ)Ó)Ø—;‘;×)Ñ)¨$¯(©(Ñ3‰ˆˆDØ×Ñõô	
ö Ø×ÑœJ×;Ñ;Ô<ö Ø×%Ñ%ˆÞ�t×3×3Ø×Ñõôð" ×(Ô(ˆØ—8‘8—<‘<Ø�H‰Hó
ô 
à—/‘/×0Ñ0°·±×:Ó:Ü×5Ò5Ø—‘Ø—‘ðð "ØØ!1Ø#Ø%÷ à×&Ñ&÷ >Ø—~‘~¬×)=Ñ)=Ð=à)Ø#Ø-Ø%Ø)2¤]×%G¸$¿-¹-Ô6GØ—H‘Hñ#ð$ ñ%ˆDó* %�Ù�TÖ ô %ò3 )r@   )Ú
instrumentÚdeferredc                  óB   ^ • \ rS rSrSrSrU 4S jr SS jrS rSr	U =r
$ )ÚUninstrumentedColumnLoaderé—   zªRepresent a non-instrumented MapperProperty.

The polymorphic_on argument of mapper() often results in this,
if the argument is against the with_polymorphic selectable.

)Úcolumnsc                óZ   >• [         TU ]  X5        U R                  R                  U l        g r5   )ÚsuperÚ__init__Úparent_propertyrm   ©ÚselfrR   Ústrategy_keyÚ	__class__s      €r=   rp   Ú#UninstrumentedColumnLoader.__init__¢   s#   ø€ Ü‰Ñ˜Ô.Ø×+Ñ+×3Ñ3ˆ�r@   c                óx   • U R                    H*  nU(       a  UR                   U   nUR                  X†5        M,     g r5   )rm   Ú_append_dedupe_col_collection)	rs   Úcompile_stateÚquery_entityÚpathÚloadoptÚadapterÚcolumn_collectionÚkwargsÚcs	            r=   Úsetup_queryÚ&UninstrumentedColumnLoader.setup_query¦   s1   € ð —”ˆAÞØ—O‘O AÑ&�Ø×7Ñ7¸ÖMò r@   c	                ó   • g r5   © ©	rs   Úcontextrz   r{   r|   ra   Úresultr}   Ú
populatorss	            r=   Úcreate_row_processorÚ/UninstrumentedColumnLoader.create_row_processorµ   s   € ð 	r@   r5   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__rp   r�   r‰   Ú__static_attributes__Ú__classcell__©ru   s   @r=   rk   rk   —   s)   ø† ñð €Iõ4ð ôN÷ð r@   rk   Tc                  óH   ^ • \ rS rSrSrSrU 4S jr S	S jrS rS r	Sr
U =r$ )
ÚColumnLoaderéÃ   z8Provide loading behavior for a :class:`.ColumnProperty`.)rm   Úis_compositec                ó�   >• [         TU ]  X5        U R                  R                  U l        [	        U R                  S5      U l        g )NÚcomposite_class)ro   rp   rq   rm   Úhasattrr—   rr   s      €r=   rp   ÚColumnLoader.__init__Ê   s9   ø€ Ü‰Ñ˜Ô.Ø×+Ñ+×3Ñ3ˆŒÜ# D×$8Ñ$8Ð:KÓLˆÕr@   c	                ó"  • U R                    HH  n
U(       a-  U(       a  UR                  U
5      n
U
c    g OUR                   U
   n
UR                  X¦5        MJ     U R                   S   nU(       a  UR                   U   nUc  g X·U R                  '   g ©Nr   )rm   Úadapt_check_presentrx   rq   )rs   ry   rz   r{   r|   r}   r~   Úmemoized_populatorsÚcheck_for_adaptr   r€   Úfetchs               r=   r�   ÚColumnLoader.setup_queryÏ   s‹   € ð —”ˆAÞÞ"Ø×3Ñ3°AÓ6�AØ‘yÙð !ð  Ÿ™¨Ñ*�Aà×7Ñ7¸ÖMñ ð —‘˜Q‘ˆÞØ—O‘O EÑ*ˆEØ‰}ð à49˜D×0Ñ0Ò1r@   c                óŽ  • SU l         U R                  S   R                  nU R                  R                  =(       dg    U R                  S   R
                  =(       dG    UR                  S L=(       a2    UR                  R                  UR                  S 5      U R                  L n[        U R                  USUR                  US9  g )NTr   F)rG   rF   rK   )Úis_class_levelrm   Útyperq   rK   Úprimary_keyÚversion_id_colÚ_columntopropertyrY   rg   Úcompare_values)rs   ra   ÚcoltyperK   s       r=   Úinit_class_attributeÚ!ColumnLoader.init_class_attributeð   s²   € Ø"ˆÔØ—,‘,˜q‘/×&Ñ&ˆð × Ñ ×/Ñ/÷ Ø�|‰|˜A‰×*Ñ*÷ð ×%Ñ%¨TÐ1÷ (Ø×,Ñ,×0Ñ0°×1FÑ1FÈÓMØ×'Ñ'ð(ð 	ô 	Ø× Ñ ØØØ$×3Ñ3Ø)ó	
r@   c	                ó  • U R                    HT  n	U(       a  UR                   U	   n	UR                  U	S5      n
U
(       d  M4  US   R                  U R                  U
45          g    US   R                  U R                  S45        g ©NFÚquickÚexpireT)rm   Ú_getterrP   r8   )rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   ÚcolÚgetters              r=   r‰   Ú!ColumnLoader.create_row_processor  su   € ð —<”<ˆCÞØ—o‘o cÑ*�Ø—^‘^ C¨Ó/ˆFßˆvØ˜7Ñ#×*Ñ*¨D¯H©H°fÐ+=Ô>Ùñ  ð �xÑ ×'Ñ'¨¯©°4Ð(8Õ9r@   )rm   r¤   r—   ©F)r‹   rŒ   r�   rŽ   r�   r�   rp   r�   r«   r‰   r‘   r’   r“   s   @r=   r•   r•   Ã   s.   ø† ñ Cà)€IõMð ô:òB
÷,:ð :r@   r•   )Úquery_expressionc                  ó:   ^ • \ rS rSrU 4S jrS rS rS rSrU =r	$ )ÚExpressionColumnLoaderi  c                óÊ   >^• [         TU ]  X5        [        R                  " 5       R	                  S 5      m[        U4S jU R                  R                   5       5      U l        g )Nc              3  óN   >#   • U  H  oR                  T5      (       + v •  M     g 7fr5   )Úcompare)Ú.0r€   Únulls     €r=   Ú	<genexpr>Ú2ExpressionColumnLoader.__init__.<locals>.<genexpr>)  s!   øé € ð ,
Ú)E A—	‘	˜$“×ÑÒ)Eùs   ƒ"%)	ro   rp   r+   r½   ÚlabelÚanyrq   rm   Ú_have_default_expression)rs   rR   rt   r½   ru   s      @€r=   rp   ÚExpressionColumnLoader.__init__"  sN   ù€ Ü‰Ñ˜Ô.ô
 �xŠx‹z×Ñ Ó%ˆÜ(+ô ,
Ø)-×)=Ñ)=×)EÒ)Eó,
ó )
ˆÕ%r@   c                ób  • S n	U(       a  UR                   (       a  UR                   n	O'U R                  (       a  U R                  R                  n	U	c  g U	 H*  n
U(       a  UR                  U
   n
UR	                  X¦5        M,     U	S   nU(       a  UR                  U   nUc  g X·U R                  '   g r�   )Ú_extra_criteriarÂ   rq   rm   rx   )rs   ry   rz   r{   r|   r}   r~   rŸ   r   rm   r€   r¡   s               r=   r�   Ú"ExpressionColumnLoader.setup_query-  sž   € ð ˆÞ�w×.×.Ø×-Ñ-‰Gà×*×*Ø×*Ñ*×2Ñ2ˆGà‰?ØãˆAÞØ—O‘O AÑ&�Ø×7Ñ7¸ÖMñ ð
 ˜‘
ˆÞØ—O‘O EÑ*ˆEØ‰}ð à49˜D×0Ñ0Ò1r@   c	                óD  • U(       a™  UR                   (       a‡  UR                   n	U	 HT  n
U(       a  UR                  U
   n
UR                  U
S5      nU(       d  M4  US   R                  U R                  U45          g    US   R                  U R                  S45        g g g r®   )rÅ   rm   r±   rP   r8   )rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   rm   r²   r³   s               r=   r‰   Ú+ExpressionColumnLoader.create_row_processorR  sŽ   € ö �w×.×.Ø×-Ñ-ˆGã�ÞØ!Ÿ/™/¨#Ñ.�CØŸ™¨¨UÓ3�ß�6Ø˜wÑ'×.Ñ.°·±¸&Ð/AÔBÙñ ð ˜8Ñ$×+Ñ+¨T¯X©X°tÐ,<Õ=ð /ˆ7r@   c                ó‚   • SU l         [        U R                  USU R                  S   R                  R
                  SS9  g )NTFr   )rG   rF   Úaccepts_scalar_loader)r¤   rg   rq   rm   r¥   r©   ©rs   ra   s     r=   r«   Ú+ExpressionColumnLoader.init_class_attributel  s;   € Ø"ˆÔäØ× Ñ ØØØ!Ÿ\™\¨!™_×1Ñ1×@Ñ@Ø"'ó	
r@   )rÂ   r¤   )
r‹   rŒ   r�   rŽ   rp   r�   r‰   r«   r‘   r’   r“   s   @r=   r¸   r¸     s   ø† õ	
ò#:òJ>÷4	
ð 	
r@   r¸   )ri   rh   )ri   rh   Ú	raiseload)Ú
do_nothingc                  óT   ^ • \ rS rSrSrSrU 4S jrS rS r SS jr	S r
S	 rS
rU =r$ )ÚDeferredColumnLoaderix  zAProvide loading behavior for a deferred :class:`.ColumnProperty`.)rm   ÚgrouprÍ   c                ó  >• [         TU ]  X5        [        U R                  S5      (       a  [	        S5      eU R
                  R                  SS5      U l        U R                  R                  U l        U R                  R                  U l	        g )Nr™   z8Deferred loading for composite types not implemented yetrÍ   F)
ro   rp   rš   rq   ÚNotImplementedErrorÚstrategy_optsrY   rÍ   rm   rÑ   rr   s      €r=   rp   ÚDeferredColumnLoader.__init__ƒ  sv   ø€ Ü‰Ñ˜Ô.Ü�4×'Ñ'Ð):×;Ñ;Ü%ØJóð ð ×+Ñ+×/Ñ/°¸UÓCˆŒØ×+Ñ+×3Ñ3ˆŒØ×)Ñ)×/Ñ/ˆ�
r@   c	           
     óP  • UR                   (       a…  UR                  R                  R                  (       a`  U R                  UR                  R                  R                  ;   a2  U R
                  R                  S5      R                  UUUUUUUU5        g U R                  (       d_  U R                  (       a  U R
                  R                  n	OU R
                  R                  n	US   R                  U R                  U	45        g US   R                  U R                  S45        g )N©)ri   F©rh   TÚnewr°   F)Úrefresh_stater   Ú_compile_optionsÚ_only_load_propsr8   rq   Ú_get_strategyr‰   r¤   rÍ   Ú_raise_column_loaderÚ_deferred_column_loaderrP   )
rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   Úset_deferred_for_local_states
             r=   r‰   Ú)DeferredColumnLoader.create_row_processor�  sí   € ð* ×!×!Ø—‘×.Ñ.×?×?Ø—‘˜GŸM™M×:Ñ:×KÑKÓKà× Ñ ×.Ñ.Ø;óç"Ñ"ØØØØØØØØõ	ð ×$×$Ø�~�~à×(Ñ(×=Ñ=ñ -ð
 ×(Ñ(×@Ñ@ð -ð �uÑ×$Ñ$ d§h¡hÐ0LÐ%MÕNà�xÑ ×'Ñ'¨¯©°5Ð(9Õ:r@   c           	     ó˜   • SU l         [        U R                  USU R                  S   R                  R
                  U R                  SS9  g )NTFr   )rG   rF   rJ   Úload_on_unexpire)r¤   rg   rq   rm   r¥   r©   Ú_load_for_staterË   s     r=   r«   Ú)DeferredColumnLoader.init_class_attributeÀ  sD   € Ø"ˆÔäØ× Ñ ØØØ!Ÿ\™\¨!™_×1Ñ1×@Ñ@Ø×*Ñ*Ø"ó	
r@   c	           	     óÌ  • UR                   R                  (       a  U R                  R                  (       d¡  U(       a=  [	        U R
                  5      R                  U R                  R                  5      (       d]  U(       a?  U R                  (       a.  UR                  R                  SU R                  -  S5      (       d  U(       aC  U R                  U;   a3  U R                  R                  S5      R                  " UUUUUUU40 U	D6  g U R                  (       a  [         XpR                  '   g U R"                  (       d  [$        XpR                  '   g [&        XpR                  '   g )Nzundefer_group_%sFr×   )Úcompile_optionsÚ_render_for_subqueryrq   Ú_renders_in_subqueriesÚsetrm   ÚintersectionrR   Ú_should_undefer_in_wildcardrÑ   Ú
local_optsrY   r8   rÝ   r�   r¤   r   rÍ   r   r   )
rs   ry   rz   r{   r|   r}   r~   rŸ   Úonly_load_propsrc   s
             r=   r�   Ú DeferredColumnLoader.setup_queryÌ  s  € ð ×-Ñ-×B×BØ×(Ñ(×?×?ö Ü˜Ÿ™Ó%×2Ñ2Ø—K‘K×;Ñ;÷ñ ö
 Ø—J—JØ×&Ñ&×*Ñ*Ø&¨¯©Ñ3°U÷ñ ö   D§H¡H°Ó$?à× Ñ ×.Ñ.Ø;óç‰kðð ØØØØØ!Ø#ñð óð × × Ü8MÐ× 4Ñ 4Ò5Ø——Ü8HÐ× 4Ñ 4Ò5ä8HÐ× 4Ñ 4Ò5r@   c                ó¨  • UR                   (       d  [        R                  $ U[        R                  -  (       d  [        R
                  $ UR                  R                  nU R                  (       a{  UR                   Vs/ s Hc  n[        U[        5      (       d  M  [        UR                  [        5      (       d  M;  UR                  U R                  :X  d  MW  UR                   PMe     nnOU R                   /nU Vs/ s H  ofUR                  ;   d  M  UPM     nn[        U5      nUc=  [         R"                  " S[$        R&                  " U5      < SU R                   < S35      eU R(                  (       a  U R+                  XS5        [,        R.                  " UR                  U[1        U5      [2        5        [        R4                  $ s  snf s  snf )NúParent instance zB is not bound to a Session; deferred load operation of attribute 'ú' cannot proceedÚraise)r8   r   Ú
ATTR_EMPTYr   ÚSQL_OKÚPASSIVE_NO_RESULTÚmanagerra   rÑ   Úiterate_propertiesÚ
isinstancer!   ÚstrategyrÐ   Ú
unmodifiedr"   Úorm_excÚDetachedInstanceErrorr6   Ú	state_strrÍ   Ú_invoke_raise_loadr   Úload_scalar_attributesrê   r   r   )	rs   ÚstateÚpassiveÚlocalparentÚpÚtoloadÚkrÑ   Úsessions	            r=   rä   Ú$DeferredColumnLoader._load_for_stateÿ  sh  € Ø�y�yÜ'×2Ñ2Ð2àœ×+Ñ+×+Ü'×9Ñ9Ð9à—m‘m×*Ñ*ˆà�:�:ð %×7Ò7óâ7�AÜ˜aÔ!4×5ó ô ˜qŸz™zÔ+?×@ó ð —G‘G˜tŸz™zÑ)ó	 �—”Ù7ð ð ˆFð —h‘h�ZˆFñ #Ó<šF�q¨5×+;Ñ+;Ñ&;—™FˆÐ<ä  Ó'ˆØ‰?Ü×/Ó/ô ×%Ò% eÖ,¨d¯h¬hð8óð ð �>�>Ø×#Ñ# E°GÔ<ä×&Ò&Ø�L‰L˜%¤ U£¬[ô	
ô $×0Ñ0Ð0ùò9ùò =s$   Á?G
ÂG
Â=G
ÃG
Ã=GÄGc                ó8   • [         R                  " SU < S35      e)NÚ'z(' is not available due to raiseload=True©Úsa_excÚInvalidRequestError©rs   r  r  Úlazys       r=   rÿ   Ú'DeferredColumnLoader._invoke_raise_load'  s   € Ü×(Ó(Û=AÐCó
ð 	
r@   )rm   rÑ   r¤   rÍ   r5   )r‹   rŒ   r�   rŽ   r�   r�   rp   r‰   r«   r�   rä   rÿ   r‘   r’   r“   s   @r=   rÐ   rÐ   x  s:   ø† ñ Là/€Iõ0ò1;òf

ð* ô1Iòf&1÷P
ð 
r@   rÐ   c                  óF   • \ rS rSrSrSSS jjr\R                  4S jrSr	g)	ÚLoadDeferredColumnsi-  z7serializable loader object used by DeferredColumnLoaderc                ó   • Xl         X l        g r5   ©r8   rÍ   )rs   r8   rÍ   s      r=   rp   ÚLoadDeferredColumns.__init__0  s   € ØŒØ"�r@   c                óÔ   • U R                   nUR                  R                  nUR                  U   nU R                  (       a  SnOSnUR                  U5      nUR                  X5      $ )N)©ri   TrØ   )rÍ   T)r  rØ   )r8   r÷   ra   rX   rÍ   rÝ   rä   )rs   r  r  r8   r  r:   rt   rú   s           r=   Ú__call__ÚLoadDeferredColumns.__call__4  sa   € Ø�h‰hˆà—m‘m×*Ñ*ˆØ×!Ñ! #Ñ&ˆØ�>�>ð‰Lð FˆLØ×%Ñ% lÓ3ˆØ×'Ñ'¨Ó7Ð7r@   r  Nrµ   )r8   ÚstrrÍ   Úbool)
r‹   rŒ   r�   rŽ   r�   rp   r   r   r  r‘   r„   r@   r=   r  r  -  s   † ÙAö#ð '1×&<Ñ&<÷ 8r@   r  c                  ó6   ^ • \ rS rSrSrSrU 4S jrS rSrU =r	$ )ÚAbstractRelationshipLoaderiE  z0LoaderStratgies which deal with related objects.)ra   ÚtargetrD   Úentityc                óü   >• [         TU ]  X5        U R                  R                  U l        U R                  R                  U l        U R                  R
                  U l        U R                  R                  U l        g r5   )ro   rp   rq   ra   r  r  rD   rr   s      €r=   rp   Ú#AbstractRelationshipLoader.__init__J  s\   ø€ Ü‰Ñ˜Ô.Ø×*Ñ*×1Ñ1ˆŒØ×*Ñ*×1Ñ1ˆŒØ×*Ñ*×1Ñ1ˆŒØ×+Ñ+×3Ñ3ˆ�r@   c	           
     ód   • U R                   R                  S5      R                  UUUUUUUU5      $ )N))r  Ú	immediate)rq   rÝ   r‰   r…   s	            r=   Ú#_immediateload_create_row_processorÚ>AbstractRelationshipLoader._immediateload_create_row_processorQ  sC   € ð ×#Ñ#×1Ñ1Ø$ó
ç
Ñ
ØØØØØØØØó	
ð	
r@   )r  ra   r  rD   )
r‹   rŒ   r�   rŽ   r�   r�   rp   r$  r‘   r’   r“   s   @r=   r  r  E  s   ø† Ù:à7€Iõ4÷
ð 
r@   r  c                  ó   • \ rS rSrSrSrg)ÚDoNothingLoaderij  zÏRelationship loader that makes no change to the object's state.

Compared to NoLoader, this loader does not initialize the
collection/attribute to empty/none; the usual default LazyLoader will
take effect.

r„   N)r‹   rŒ   r�   rŽ   r�   r‘   r„   r@   r=   r'  r'  j  s   † ôr@   r'  Únoload)r  c                  ó(   • \ rS rSrSrSrS rS rSrg)ÚNoLoaderiv  zIProvide loading behavior for a :class:`.Relationship`
with "lazy=None".

r„   c                óf   • SU l         [        U R                  USU R                  R                  S9  g )NT)rG   rI   )r¤   rg   rq   Úcollection_classrË   s     r=   r«   ÚNoLoader.init_class_attribute�  s0   € Ø"ˆÔäØ× Ñ ØØØ×-Ñ-×>Ñ>ó		
r@   c	                óR   ^ • U 4S jn	US   R                  T R                  U	45        g )Nc                óŠ   >• TR                   (       a"  [        R                  " XTR                  5        g S UTR                  '   g r5   )rD   r   Úinit_state_collectionr8   )r  Údict_Úrowrs   s      €r=   Úinvoke_no_loadÚ5NoLoader.create_row_processor.<locals>.invoke_no_load–  s+   ø€ Ø�|�|Ü×0Ò0°¸t¿x¹xÕHà"&��d—h‘h’r@   rÙ   )rP   r8   )
rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   r3  s
   `         r=   r‰   ÚNoLoader.create_row_processor‹  s&   ø€ õ	'ð 	�5Ñ× Ñ  $§(¡(¨NÐ!;Õ<r@   )r¤   N)	r‹   rŒ   r�   rŽ   r�   r�   r«   r‰   r‘   r„   r@   r=   r*  r*  v  s   † ñð
 €Iò
õ=r@   r*  Úselectró   Úraise_on_sqlÚbaked_selectc                  óì   ^ • \ rS rSr% SrSrS\S'   S\S'   S\S'   S\S	'   S
\S'       SU 4S jjrS rS r	S r
S rSSSS\R                  4S jrS r\R                   " S5      S 5       rS rSrU =r$ )Ú
LazyLoaderiŸ  zlProvide loading behavior for a :class:`.Relationship`
with "lazy=True", that is loads when first accessed.

)Ú
_lazywhereÚ_rev_lazywhereÚ_lazyload_reverse_optionÚ	_order_byÚuse_getÚis_aliased_classÚ_bind_to_colÚ_equated_columnsÚ_rev_bind_to_colÚ_rev_equated_columnsÚ_simple_lazy_clauseÚ_raise_alwaysÚ_raise_on_sqlzColumnElement[bool]r;  zDict[str, ColumnElement[Any]]rA  r<  rC  úRelationshipProperty[Any]rq   c                ó  >• [         TU ]  X5        U R                  S   S:H  U l        U R                  S   S:H  U l        [        U R                  5      R                  U l        U R                  R                  nUR                  5       u  U l        U l        U l        UR                  SS9u  U l        U l        U l        U R                  R"                  (       aX  [$        R&                  " U R                  R"                  5       Vs/ s H  n[(        R*                  " USS05      PM     snU l        OS U l        U R.                  R1                  SX R                  5        U R                  (       + =(       a_    U R2                  (       + =(       aG    U R                  R4                  S   R7                  U R                  SS	U R8                  R:                  S
9U l        U R<                  (       a�  [?        U R                  5       HZ  nXPR8                  R:                  ;   d  M  U R8                  R:                  U    H  nU R                  U   U R                  U'   M!     M\     U R.                  R1                  SU 5        g g s  snf )Nr  ró   r7  T)Úreverse_directionÚ
_orm_adaptz%s lazy loading clause %sr   F©Úuse_proxiesÚcompare_keysÚequivalentsz4%s will use Session.get() to optimize instance loads) ro   rp   rÔ   rF  rG  r)   r  r@  rq   Ú_join_conditionÚcreate_lazy_clauser;  rA  rB  r<  rC  rD  Úorder_byr   Úto_listÚsql_utilÚ_deep_annotater>  ÚloggerÚinforD   Ú_get_clauser»   ra   Ú_equivalent_columnsr?  Úlist)rs   rR   rt   Újoin_conditionÚelemr²   r€   ru   s          €r=   rp   ÚLazyLoader.__init__Ä  s  ø€ ô 	‰Ñ˜Ô.Ø!×/Ñ/°Ñ7¸7ÑBˆÔØ!×/Ñ/°Ñ7¸>ÑIˆÔä '¨¯©Ó 4× EÑ EˆÔà×-Ñ-×=Ñ=ˆð
 ×-Ñ-Ó/ñ		
ØŒOØÔØÔ!ð ×-Ñ-ÀÐ-ÐEñ		
ØÔØÔ!ØÔ%ð ×Ñ×(×(ô !ŸLšL¨×)=Ñ)=×)FÑ)FÔGóâG�Dô ×'Ò'¨¨|¸TÐ.BÖCÙGñˆD�Nð
 "ˆDŒNà�‰×ÑÐ4°d¿O¹OÔLð ×%Ñ%Ô%÷ Ø—L‘LÔ ÷à—‘×'Ñ'¨Ñ*×2Ñ2Ø—‘Ø Ø"Ø ŸK™K×;Ñ;ð	 3ð ð 	Œð �<�<Ü˜D×1Ñ1Ö2�ØŸ+™+×9Ñ9Õ9Ø!Ÿ[™[×<Ñ<¸SÔA˜Ø37×3HÑ3HÈÑ3M˜×-Ñ-¨aÓ0ó Bñ 3ð
 �K‰K×ÑØFÈõð ùò7s   Ä#I<c           
     ó„  • SU l         U R                  R                  nU R                  R                  (       a  SnSnOLU R                  R                  [
        R                  Ld  U R                  (       d  U(       a  SnSnOSnSnOS=p4[        U R                  USU R                  U R                  R                  UUS9  g )NTF)rG   rJ   rI   rK   Ú_deferred_history)r¤   rq   Ú_legacy_inactive_history_stylerK   r^   r   Ú	MANYTOONEr?  rg   rä   r,  )rs   ra   r`  rK   r_  s        r=   r«   ÚLazyLoader.init_class_attribute   sµ   € Ø"ˆÔð × Ñ ×?Ñ?ð 	'ð ×Ñ×.×.Ø!ˆNØ %Ñð × Ñ ×*Ñ*´*×2FÑ2FÒFØ—<—<æ-Ø!%�Ø$)Ñ!à!&�Ø$(Ñ!à16Ð6ˆNäØ× Ñ ØØØ×*Ñ*Ø×-Ñ-×>Ñ>Ø)Ø/ó	
r@   c                óð   ^^• [         R                  " U R                  SS05      nXR                  snm/ mS n[        R
                  " U0 SU05        UU4S jn[        R                  " U0 SU05      nUT4$ )NrK  Tc                ó   • SU l         g )NF)Úunique)Ú	bindparams    r=   Úvisit_bindparamÚFLazyLoader._memoized_attr__simple_lazy_clause.<locals>.visit_bindparam+  s
   € Ø$ˆIÕr@   rf  c                óê   >• U R                   T;   a,  TR                  U R                  TU R                      S 45        g U R                  c)  TR                  U R                  S U R                  45        g g r5   )Ú_identifying_keyrP   r8   ÚcallableÚvalue)rf  Úbind_to_colÚparamss    €€r=   rg  rh  0  sh   ø€ Ø×)Ñ)¨[Ó8Ø—‘à!Ÿ™Ø# I×$>Ñ$>Ñ?Øðõð ×#Ñ#Ñ+Ø—‘˜yŸ}™}¨d°I·O±OÐDÕEð ,r@   )rT  rU  r;  rA  r,   ÚtraverseÚcloned_traverse)rs   Ú	lazywhereÚ	criterionrg  rm  rn  s       @@r=   Ú"_memoized_attr__simple_lazy_clauseÚ-LazyLoader._memoized_attr__simple_lazy_clause"  s‡   ù€ Ü×+Ò+Ø�O‰O˜l¨DÐ1ó
ˆ	ð #,×->Ñ->Ðˆ	�;àˆò	%ô 	×Ò˜) R¨+°Ð)GÔHö
	Fô ×,Ò,Ø�r˜K¨Ð9ó
ˆ	ð ˜&Ð Ð r@   c                ó  • U R                   u  p4Uc-  [        R                  " X4 VVVs/ s H  u  pVouPM	     snnn5      $ U R                  R                  nUR                  5       n	[        R                  " U	5      n
U[        R                  -  (       a  U[        R                  -  n0 nU HQ  u  pVnUbD  U(       a+  U[        R                  -  (       a  UR                  XXb5      nOUR                  XXb5      nX{U'   MS     X;4$ s  snnnf r5   )rE  rT  Úadapt_criterion_to_nullrq   rR   Úobjr   Úinstance_dictr   ÚINIT_OKÚLOAD_AGAINST_COMMITTEDÚ#_get_committed_state_attr_by_columnÚ_get_state_attr_by_column)rs   r  r  rr  Ú
param_keysr8   Úidentrl  ra   Úor1  rn  s               r=   Ú_generate_lazy_clauseÚ LazyLoader._generate_lazy_clauseB  sý   € Ø $× 8Ñ 8Ñˆ	à‰=Ü×3Ò3Ø¸ÕDºÑ$5 C°šC¹ÓDóð ð ×%Ñ%×,Ñ,ˆà�I‰I‹KˆÜ×(Ò(¨Ó+ˆà”[×(Ñ(×(Ø”{×*Ñ*Ñ*ˆGàˆÛ!+ÑˆC˜ØÑ Þ˜w¬×)KÑ)K×KØ"×FÑFØ eó‘Eð #×<Ñ<Ø eó�Eð  �3‹Kñ ",ð Ð Ð ùô3 Es   ¨Dc                ó@   • [         R                  " SU < SU< S35      e)Nr
  z ' is not available due to lazy='r  r  s       r=   rÿ   ÚLazyLoader._invoke_raise_loadb  s   € Ü×(Ó(Û8<»dÐCó
ð 	
r@   Nr„   c                ó’  • UR                   (       dM  U R                  R                  (       d  UR                  (       a  UR                  (       d  [
        R                  $ UR                   (       + nS n	U R                  =(       a    U(       + =(       d    UR                  (       + n
U[        R                  -  (       d  U
(       a  U[        R                  -  (       d  U(       a  [
        R                  $ U R                  (       aI  U[        R                  -  (       d1  U
(       a  U[        R                   -  (       a  U R#                  XS5        [%        U5      nU(       de  U[        R                  -  (       a  [
        R                  $ [&        R(                  " S[*        R,                  " U5      < SU R                   < S35      eU
(       Gae  U R/                  X±U5      n	[
        R                  U	;   a  [
        R                  $ [
        R0                  U	;   a  [
        R0                  $ U R2                  R4                  (       d  [6        R8                  " U	5      (       a  g O[6        R:                  " U	5      (       a  g U R                   UR<                  ;   a(  U[        R>                  -  (       d  [
        R@                  $ URC                  U RD                  U	UUS9nUb  U[
        RF                  L a  g U$ U[        R                  -  (       a  U[        R                   -  (       d  [
        R                  $ U RI                  UUU	UUUUUU5	      $ )Nró   rñ   z> is not bound to a Session; lazy load operation of attribute 'rò   )r  Úlazy_loaded_from)%r8   rq   Úload_on_pendingÚ_load_pendingÚ
session_idr   rô   r?  rÅ   r   rõ   r   ÚNON_PERSISTENT_OKrö   rF  ÚNO_RAISEÚRELATED_OBJECT_OKrÿ   r"   rü   rý   r6   rþ   Ú_get_ident_for_use_getÚ	NEVER_SETra   Úallow_partial_pksr%   rë   Ú
issupersetÚdictÚDEFERRED_HISTORY_LOADr   Ú_identity_lookupr  ÚPASSIVE_CLASS_MISMATCHÚ_emit_lazyload)rs   r  r  r|   Úextra_criteriaÚextra_optionsÚalternate_effective_pathÚexecution_optionsÚpendingÚprimary_key_identityr?  r  Úinstances                r=   rä   ÚLazyLoader._load_for_stateg  s‚  € ð �y�yà×(Ñ(×8×8Ø×+×+à×#×#ä'×2Ñ2Ð2à—i‘i”-ˆØ#Ðà—,‘,×O¨¤K×$N°w×7NÑ7NÔ3Nˆàœ+×,Ñ,×,¶WØœ*×6Ñ6×6¾7ä'×9Ñ9Ð9ð ××àœk×2Ñ2×2ö Øœ[×:Ñ:×:ð ×#Ñ# E°GÔ<ä  Ó'ˆÞØœ×-Ñ-×-Ü+×=Ñ=Ð=ä×/Ó/ô ×%Ò% eÖ,¨d¯h¬hð8óð ÷ Ø#'×#>Ñ#>Ø ó$Ð ô $×5Ñ5Ð9MÓMÜ+×=Ñ=Ð=Ü%×/Ñ/Ð3GÓGÜ+×5Ñ5Ð5ð
 —;‘;×0×0Ü!×.Ò.Ð/C×DÑDØð Eô "×,Ò,Ð-A×BÑBØð —‘˜EŸJ™JÓ&Ø¤+×"CÑ"C×Cä+×8Ñ8Ð8ð ×/Ñ/Ø—‘Ø$ØØ!&ð	 0ð ˆHð Ñ#ØÔ3×JÑJÒJØà#�Oàœk×0Ñ0×0Ø¤×!>Ñ!>×>ä+×=Ñ=Ð=à×"Ñ"ØØØ ØØØØØ$Øó

ð 
	
r@   c           
     ó&  • UR                   R                  nU[        R                  -  (       a  UR                  nOUR
                  nUR                  nU R                  R                   Vs/ s H  nU" X&U R                  U   US9PM     sn$ s  snf )N©r  )	r÷   ra   r   rz  r{  r|  r�  r¦   rB  )rs   r  r  r  Úinstance_mapperÚget_attrr1  Úpks           r=   rŒ  Ú!LazyLoader._get_ident_for_use_getÞ  sƒ   € ØŸ-™-×.Ñ.ˆà”[×7Ñ7×7Ø&×JÑJ‰Hà&×@Ñ@ˆHà—
‘
ˆð —k‘k×-Ò-ó
â-�ñ �U 4×#8Ñ#8¸Ñ#<ÀgÔNÙ-ñ
ð 	
ùò 
s   Á,Bzsqlalchemy.orm.strategy_optionsc
                óV	  ^ ^• [         R                  R                  mT R                  R	                  5       n
[
        R                  " U
/U
R                  [        [        R                  S9n[        R                  nUSUS.-  nT R                  R                  b0  UR                  T R                   T R                  R                  5      nUR"                  (       + nU(       d  U[$        R&                  -  (       a  [         R(                  " SS05      Ul        T R,                  nUR.                  (       d  U(       a�  UR0                  (       a  Uc  UR2                  T R                     nOUT R                     nUR.                  nU(       a8  UR0                  (       a'  SnU[4        R6                  " T R                  U5      4-  nUUl        O6Uc$  UR                   R:                  T R                     nOUT R                     nU(       a  U=R8                  U-  sl        U=R<                  SU0-  sl        U(       aS  T R>                  (       a*  U[@        RB                  -  (       d  T RE                  X$S5        [F        RH                  " UUUUU	S9$ T RJ                  (       a  T RJ                  Ul&        U U4S jnU=RN                  UT R                  44-  sl'        T RQ                  X$5      u  nnU	(       a#  [         RR                  RU                  U	S	U05      n	OS	U0n	T R"                  URV                  ;   a(  U[@        RX                  -  (       d  [Z        R\                  $ U(       a:  [         R^                  " [4        R`                  URc                  5       5      (       a  g O9[         R^                  " [4        Rd                  URc                  5       5      (       a  g T R>                  (       a*  U[@        RB                  -  (       d  T RE                  X$S5        U4Ul3        URi                  UUU	S
9nURk                  5       Rm                  5       Ro                  5       nT Rp                  (       a  U$ [s        U5      nU(       a.  US:”  a#  [         Rt                  " ST R                  -  5        US   $ g )N)Ú_raw_columnsÚ_propagate_attrsÚ_label_stylerÛ   F)Ú_invoke_all_eagersÚ_lazy_loaded_fromÚ	autoflushÚ_current_pathr7  )Úload_optionsr˜  c                óš  >• TR                   R                   H°  nUR                  [        R                  L d  M"  UR
                  (       d  M5  [        UR                  [        5      (       a  MV  TR                  R                  U R                  R                  UR                     5      R                  U5      R                  U 5        M²     g r5   )rq   Ú_reverse_propertyr^   r   ra  Ú_use_getrù   rú   r:  r$   Ú_construct_for_existing_pathrç   rª  rR   ÚlazyloadÚprocess_compile_state)Úcompile_contextÚrevrs   Ústrategy_optionss     €€r=   Ú_lazyload_reverseÚ4LazyLoader._emit_lazyload.<locals>._lazyload_reverseB  sŒ   ø€ Ø×+Ñ+×=Ô=�ð —M‘M¤Z×%9Ñ%9Ô9ØŸŸ™Ü& s§|¡|´Z×@Ó@à$×)Ñ)×FÑFØ'×7Ñ7×EÑEØŸJ™Jñó÷ ‘h˜s“m×$9Ñ$9¸/Ö$Jò >r@   Ú_sa_orm_load_options)r˜  r
   zKMultiple rows returned with uselist=False for lazily-loaded attribute '%s' r   );r   Ú	preloadedÚorm_strategy_optionsr  Ú__clause_element__r.   Ú_create_raw_selectr¥  r-   r   Údefault_compile_optionsr   Údefault_load_optionsrq   Ú	secondaryÚselect_fromra   r8   r   ÚNO_AUTOFLUSHÚimmutabledictÚ_execution_optionsr?  r«  rÅ   Ú	load_pathr6   ÚLoaderCriteriaOptionÚ_with_optionsÚ_path_registryrÛ   rG  r   rŠ  rÿ   r   Úload_on_pk_identityr>  Ú_order_by_clausesÚ_with_context_optionsr€  Ú
EMPTY_DICTÚ
merge_withr�  r‘  r   r   Úhas_intersectionÚ	_none_setÚvaluesÚ
_never_setÚ_where_criteriaÚexecutere  ÚscalarsÚallrD   ÚlenÚwarn)rs   r  r  rš  r  r|   r•  r–  r—  r˜  ÚclauseelementÚstmtr«  r™  r?  Úeffective_pathr<   rµ  Úlazy_clausern  r‡   Úlr´  s   `                     @r=   r”  ÚLazyLoader._emit_lazyloadí  sÙ  ù€ ô  Ÿ>™>×>Ñ>ÐàŸ™×6Ñ6Ó8ˆÜ×(Ò(Ø'˜Ø*×;Ñ;Ü7Ü,×DÑDñ	
ˆô $×8Ñ8ˆàØ"'Ø!&ñ
ñ 	
ˆð
 ×Ñ×)Ñ)Ñ5Ø×#Ñ#Ø—‘˜T×1Ñ1×;Ñ;óˆDð —i‘i”-ˆö �g¤
× 7Ñ 7×7Ü&*×&8Ò&8¸+ÀuÐ9MÓ&NˆDÔ#à—,‘,ˆà××¦'¨g×.E×.EØ'Ñ/Ø!&§¡°×1EÑ1EÑ!F‘à!9¸$×:NÑ:NÑ!O�à×%Ñ%ˆDæ˜7×2×2Ø�ØÜ×1Ò1°$·+±+¸~ÓNðñ �ð "&ˆDÕØ%Ñ-ð #Ÿ\™\×8Ñ8¸×9MÑ9MÑN‰Nð 6°d×6JÑ6JÑKˆNæØ×Ò -Ñ/Õà×Ò /°>Ð!BÑBÕæØ×!×!¨'´K×4HÑ4H×*HØ×'Ñ'¨¸ÔGä×.Ò.ØØØ$Ø)Ø"3ñð ð �>�>Ø%)§^¡^ˆDÔ"ö	Kð 	×"Ò"Ø × 4Ñ 4Ð5ð'
ñ 	
Õ"ð #×8Ñ8¸ÓHÑˆ�VæÜ $§¡× :Ñ :Ø!à*¨Lðó!Ñð '¨ð!Ðð
 �H‰H˜Ÿ
™
Ó"Øœk×?Ñ?×?ä'×4Ñ4Ð4æÜ×$Ò$¤X×%7Ñ%7¸¿¹»×IÑIØð Jô ×"Ò"¤8×#6Ñ#6¸¿¹»×HÑHØà×× g´×0DÑ0D×&DØ×#Ñ# E°NÔCà +˜~ˆÔà—‘Ø�&Ð,=ð !ð 
ˆð —‘“×(Ñ(Ó*×.Ñ.Ó0ˆà�<�<ØˆMä�F“ˆAÞØ�q“5Ü—I’IðJà×.Ñ.ñ/ôð ˜a‘yÐ àr@   c	                óð  ^• U R                   mUR                  R                  (       ak  UR                  R                  R
                  (       aF  U R                   UR                  R                  R
                  ;   a  U R                  UUUUUUUU5      $ U R                  (       a  U(       a‚  UR                  (       aq  [        R                  " UR                  [        TU UUR                  (       a  UR                  U5      OS 5      T5      n	US   R                  U R                   U	45        g UR                  (       d  UR                   (       a'  U4S jn
US   R                  U R                   U
45        g g )NrÙ   c                ó*   >• U R                  UT5        g r5   )Ú_reset)r  r1  r2  r8   s      €r=   Úreset_for_lazy_callableÚ@LazyLoader.create_row_processor.<locals>.reset_for_lazy_callableÅ  s   ø€ ð —‘˜U CÕ(r@   )r8   r«  Ú_is_user_refreshr   rÛ   rÜ   r$  r¤   rÅ   r#   Ú"_instance_level_callable_processorrZ   ÚLoadLazyAttributeÚ_generate_extra_criteriarP   Úpopulate_existingÚalways_refresh)rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   Úset_lazy_callablerß  r8   s              @r=   r‰   ÚLazyLoader.create_row_processor‹  s8  ø€ ð �h‰hˆð × Ñ ×1×1Ø—‘×.Ñ.×?×?Ø—‘˜GŸM™M×:Ñ:×KÑKÓKà×;Ñ;ØØØØØØØØó	ð 	ð ×"×"¦w°7×3J×3Jô ×@Ò@à×$Ñ$Ü!ØØØð #×2×2ð  ×8Ñ8¸ÔAà!ó	ð ó!Ðð" �uÑ×$Ñ$ d§h¡hÐ0AÐ%BÕCØ×&×&¨&×*?×*?õ	)ð �uÑ×$Ñ$ d§h¡hÐ0GÐ%HÕIð +@r@   )rA  rB  r;  r>  rF  rG  rC  rD  r<  r@  r¤   r?  )rR   rH  rt   zTuple[Any, ...])r‹   rŒ   r�   rŽ   r�   r�   Ú__annotations__rp   r«   rs  r€  rÿ   r   rÊ  rä   rŒ  Úpreload_moduler”  r‰   r‘   r’   r“   s   @r=   r:  r:  Ÿ  s®   ø‡ ñð
€Ið  $Ó#Ø/Ó/Ø'Ó'Ø3Ó3à.Ó.ð:Ø/ð:Ø?N÷:òx 
òD!ò@!ò@
ð ØØØ!%ØŸ/™/ôu
òn
ð 
×ÒÐ:Ó;ñ[ó <ð[÷zEJð EJr@   r:  c                  óD   • \ rS rSrSrS rS r\R                  4S jr	Sr
g)rã  iÓ  az  semi-serializable loader object used by LazyLoader

Historically, this object would be carried along with instances that
needed to run lazyloaders, so it had to be serializable to support
cached instances.

this is no longer a general requirement, and the case where this object
is used is exactly the case where we can't really serialize easily,
which is when extra criteria in the loader option is present.

We can't reliably serialize that as it refers to mapped entities and
AliasedClass objects that are local to the current process, which would
need to be matched up on deserialize e.g. the sqlalchemy.ext.serializer
approach.

c                óJ   • Xl         UR                  U l        X0l        X@l        g r5   ©r8   rt   r|   r•  )rs   r8   Úinitiating_strategyr|   r•  s        r=   rp   ÚLoadLazyAttribute.__init__å  s    € ØŒØ/×<Ñ<ˆÔØŒØ,Õr@   c                ó’   • U R                   b  [        R                  " S5        U R                  U R                  U R
                  SS.$ )NzvCan't reliably serialize a lazyload() option that contains additional criteria; please use eager loading for this caser„   rí  )r•  r   rÕ  r8   rt   r|   )rs   s    r=   Ú__getstate__ÚLoadLazyAttribute.__getstate__ë  sE   € Ø×ÑÑ*Ü�IŠIð ôð —8‘8Ø ×-Ñ-Ø—|‘|Ø ñ	
ð 	
r@   c                óâ   • U R                   nUR                  R                  nUR                  U   nUR                  U R
                     nUR                  UUU R                  U R                  S9$ )N)r|   r•  )	r8   r÷   ra   rX   Ú_strategiesrt   rä   r|   r•  )rs   r  r  r8   rŸ  r:   rú   s          r=   r  ÚLoadLazyAttribute.__call__ù  sn   € Ø�h‰hˆØŸ-™-×.Ñ.ˆØ×%Ñ% cÑ*ˆØ×#Ñ# D×$5Ñ$5Ñ6ˆà×'Ñ'ØØØ—L‘LØ×.Ñ.ð	 (ð 
ð 	
r@   )r•  r8   r|   rt   N)r‹   rŒ   r�   rŽ   r�   rp   rñ  r   r   r  r‘   r„   r@   r=   rã  rã  Ó  s!   † ñò"-ò
ð '1×&<Ñ&<÷ 
r@   rã  c                  ó&   • \ rS rSrSrSrSS jrSrg)Ú
PostLoaderi  z;A relationship loader that emits a second SELECT statement.r„   Nc                óæ  • UR                   R                  =(       d    [        R                  R                  U-   nUR                  5       n[        R                  " SU05      nU(       a"  UR                  R                  SS 5      nUS:H  n	OS nSn	Ub£  U R                  R                  (       d$  [        R                  " SU R                   S35      eUR                  R                  S[        U 5       3U5      nU	(       d  US:  a  USUU4$ U	(       d"  UR!                  S[        U 5       3US	-
  05      n["        R$                  R'                  XU R                  5      (       a  USXx4$ X R                     n
XPR                     nU
R)                  UR*                  S
5      (       dG  U(       a  UR,                  S-  U:”  a  USUU4$ O&UR/                  U R0                  5      (       a  USUU4$ USXx4$ )NÚsa_top_level_orm_contextÚrecursion_depthéÿÿÿÿFz'recursion_depth option on relationship z0 not valid for non-self-referential relationshipÚ_recursion_depth_r   r
   Úloaderr'   T)ry   Úcurrent_pathr6   ÚPathRegistryÚrootÚ_get_top_level_contextr   rÁ  rí   rY   rq   Ú_is_self_referentialr  r  r˜  ÚidÚunionr   ÚPostLoadÚpath_existsÚcontainsr   ÚlengthÚcontains_mapperra   )rs   r†   r{   r|   Ú
join_depthrØ  Útop_level_contextr˜  rú  Úunlimited_recursionÚpath_w_propÚeffective_path_w_props               r=   Ú_setup_for_recursionÚPostLoader._setup_for_recursion  s!  € à×!Ñ!×.Ñ.×L´(×2GÑ2G×2LÑ2LØñˆð $×:Ñ:Ó<ÐÜ ×.Ò.Ø'Ð):Ð;ó
Ðö Ø%×0Ñ0×4Ñ4Ð5FÈÓMˆOØ"1°RÑ"7Ñà"ˆOØ"'ÐàÑ&Ø×'Ñ'×<×<Ü×0Ò0Ø=Ø×+Ñ+Ð,ð -8ð8óð ð
 &×7Ñ7×;Ñ;Ø#¤B t£H :Ð.°óˆOö '¨?¸QÓ+>à"ØØ%Ø#ð	ð ö 'Ø$5×$;Ñ$;à+¬B¨t«H¨:Ð6¸È!Ñ8Kðó%Ð!ô ×Ñ×'Ñ'Ø T×%9Ñ%9÷
ñ 
ð " 5Ð*;ÐLÐLà×/Ñ/Ñ0ˆØ .×/CÑ/CÑ DÐà×#Ñ# G×$6Ñ$6¸×AÑAÞØ(×/Ñ/°!Ñ3°jÓ@à&ØØ)Ø'ð	ð ð Að '×6Ñ6°t·{±{×CÑCà"ØØ%Ø#ð	ð ð ˜tÐ%6ÐGÐGr@   r5   )r‹   rŒ   r�   rŽ   r�   r�   r  r‘   r„   r@   r=   r÷  r÷    s   † ÙEà€I÷DHr@   r÷  r#  c                  ó>   ^ • \ rS rSrSrU 4S jrS rS rS rSr	U =r
$ )ÚImmediateLoaderiS  ©r
  c                óZ   >• [         TU ]  X5        U R                  R                  U l        g r5   ©ro   rp   rq   r
  rr   s      €r=   rp   ÚImmediateLoader.__init__W  ó#   ø€ Ü‰Ñ˜Ô.Ø×.Ñ.×9Ñ9ˆ�r@   c                óX   • U R                   R                  S5      R                  U5        g ©N©)r  r6  ©rq   rÝ   r«   rË   s     r=   r«   Ú$ImmediateLoader.init_class_attribute[  ó$   € Ø×Ñ×*Ñ*Ø!ó	
ç
Ñ
˜vÕ
&r@   c	                ó°  • UR                   R                  R                  (       d  g U R                  XX@R                  5      u  n	n
nnU
(       d"  [
        R                  [        R                  -  nO![
        R                  [        R                  -  n[        R                  R                  UU	U R                  U R                  U R                  UUUU5	        g r5   )ry   rç   Ú_enable_eagerloadsr  r
  r   ÚPASSIVE_NO_FETCH_RELATEDr   rŠ  r   r   r  Úcallable_for_pathrR   rq   Ú_load_for_path)rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   rØ  Ú
run_loaderr˜  rú  Úflagss                 r=   r‰   Ú$ImmediateLoader.create_row_processor`  sµ   € ð ×$Ñ$×4Ñ4×G×GØð ×%Ñ% g°W¿o¹oÓNñ	
ØØØØö ô
 ×7Ñ7¼+×:NÑ:NÑN‰Eä×*Ñ*¬[×-AÑ-AÑAˆEä×Ñ×*Ñ*ØØØ�K‰KØ× Ñ Ø×ÑØØØØõ
	
r@   c	           	     óê  • U(       aJ  [        UR                  R                  5      n	UUR                  5       4U	l        UR                  5       n
U	4nOUn
SnU R                  nU R                  R                  S5      nU Hq  u  pïUR                  nU(       d  UU;  d  M   UR                  UUUU
US9nU[        [        R                  4;  d  MO  UR                  U5      R                  UUU5        Ms     g )Nr„   r  )r–  r—  r˜  )r$   r{   r  Ú_recurser†   Ú_truncate_recursiver8   rq   rÝ   r�  rä   r   r   rö   Úget_implÚset_committed_value)rs   r†   r{   ÚstatesÚ	load_onlyr|   r$  rú  r˜  Únew_optr—  r–  r8   Ú
lazyloaderr  Ú	overwriter1  rl  s                     r=   r"  ÚImmediateLoader._load_for_pathŠ  sõ   € ö Ü˜7Ÿ<™<×.Ñ.Ó/ˆGàØ× Ñ Ó"ðˆGŒOð (,×'?Ñ'?Ó'AÐ$Ø$˜J‰Mà'+Ð$ØˆMà�h‰hˆØ×)Ñ)×7Ñ7Ð8MÓNˆ
Û &ÑˆEØ—J‘JˆEæ˜C uÕ,Ø"×2Ñ2ØØØ"/Ø-EØ&7ð 3ð �ð Ü Ü(×:Ñ:ð!õ ð —N‘N 3Ó'×;Ñ;Ø˜u eöò !'r@   )r‹   rŒ   r�   rŽ   r�   rp   r«   r‰   r"  r‘   r’   r“   s   @r=   r  r  S  s"   ø† à€Iõ:ò'ò
(
÷T*ð *r@   r  Úsubqueryc                  ó‚   ^ • \ rS rSrSrU 4S jrS rS rS rS r	S r
S	 rS
 r " S S5      rS rS rS rS rSrU =r$ )ÚSubqueryLoaderi·  r  c                óZ   >• [         TU ]  X5        U R                  R                  U l        g r5   r  rr   s      €r=   rp   ÚSubqueryLoader.__init__¼  r  r@   c                óX   • U R                   R                  S5      R                  U5        g r  r  rË   s     r=   r«   Ú#SubqueryLoader.init_class_attributeÀ  r  r@   c                ó’  • UnUR                   n[        R                  " US   5      nU R                  R	                  U5      (       a*  U R
                  US   L a  U R                  U R
                  p‡OXbS   p‡U(       aj  UR                  U   R                  R                  U   n	[        U5      [        U	5      -
  n
U
(       a%  U	[        R                  R                  X** S  5      -  n	OUn	UR                  nU Vs/ s H=  n[        U	R                   S   R                  UR                   U   R"                  5      PM?     nnX}X‰4$ s  snf )Nr   r
   )r{   r6   Ú_class_to_mapperrR   Úisarq   Ú	_entitiesÚentity_zerorÆ  rÔ  r   rÿ  ÚcoerceÚlocal_columnsÚgetattrr  r¨   r8   )rs   Úorig_query_entity_indexÚ	subq_pathÚcurrent_compile_stateÚis_rootÚgiven_subq_pathÚsubq_mapperÚleftmost_mapperÚleftmost_propÚnew_subq_pathÚ
additionalÚleftmost_colsr€   Úleftmost_attrs                 r=   Ú_get_leftmostÚSubqueryLoader._get_leftmostÅ  sF  € ð $ˆØ—N‘Nˆ	Ü×/Ò/°	¸!±Ó=ˆð �K‰K�O‰O˜K×(Ñ(Ø×$Ñ$¨	°!©Ò4à-1¯[©[¸$×:NÑ:N™]à-8ÀA¹,˜]æð 2×;Ñ;Ø'ñç‰kŸ.™.¨ñ8ˆMô ˜Y›¬#¨mÓ*<Ñ<ˆJÞØ¤×!;Ñ!;×!BÑ!BØ˜k˜lÐ+ó"ñ �øð ,ˆMà%×3Ñ3ˆñ #ó
ò
 #�ô	 Ø×"Ñ" 1Ñ%×,Ñ,Ø×1Ñ1°!Ñ4×8Ñ8öñ #ð 	ð 
ð ¨}ÐKÐKùò
s   Ã:AEc           	     óÌ  • UR                  5       R                  S 5      n[        R                  R	                  [        R                  5      nUR
                  R                  UR
                  5        UnUR                  (       dG  SUl        UR                  R                  " U/[        X!S9 V	s1 s H  n	U	S   c  M  U	S   iM     sn	Q76   UR                  U V
s/ s H;  n
[        R                  R                  [        R                   R"                  U
5      PM=     sn
UR%                  5       5      nX·l        UR(                  nUSL a  SUl        OXUcU  U Vs1 s H  oÝR,                  iM     sn H5  n[/        U5      R1                  UR2                  5      (       a  M.  SUl          O   UR4                  (       d  SUl        UR*                  SL aK  UR6                  (       a:  [8        R:                  " X·R6                  5      nU(       a  UR=                  X¿-   5        UR?                  [@        5      RC                  5       n[D        RF                  " UUSS9nU$ s  sn	f s  sn
f s  snf )NF)ry   r  Tr„   ©Úuse_mapper_path)$Ú_cloneÚ	correlater   ÚQueryÚ__new__Ú__dict__ÚupdateÚ	_from_objÚ_enable_assertionsr¿  Únon_generativer   Ú_adapt_col_listr+   Ú	coercionsÚexpectÚrolesÚColumnsClauseRoleÚ_get_current_adapterr¤  Údistinct_target_keyÚ	_distinctÚtablerê   r�  r¦   Ú_has_row_limiting_clauserÈ  rT  Ú expand_column_list_from_order_byÚ_set_entitiesÚset_label_styler-   r1  r6   r&   )rs   Úorig_compile_stateÚ
orig_queryrF  rK  Úleftmost_relationshipÚorig_entityÚqÚq2Úentr  Útarget_colsr`  r€   ÚtÚto_addÚembed_qÚ
left_aliass                     r=   Ú_generate_from_original_queryÚ,SubqueryLoader._generate_from_original_queryö  s  € ð ×ÑÓ×)Ñ)¨$Ó/ˆô �[‰[× Ñ ¤§¡Ó-ˆØ
�‰×Ñ˜1Ÿ:™:Ô&Øˆð �{�{Ø#(ˆAÔ Ø�M‰M×(Ò(Øð	ô  4Ø"ò óò ˜ð ˜8‘}ó	 "�C˜”Mñ ñó	ð0 )×8Ñ8ñ 'óâ&�Aô —‘×$Ñ$¤S§Y¡Y×%@Ñ%@À!ÖDÙ&ñð ×3Ñ3Ó5ó
ˆð %Œà3×GÑGÐà $Ò&ØˆA�KØ Ñ(ñ (3Ó3¢{ !—g”g¡{Ô3�Ü˜;Ó'×2Ñ2°1·=±=×AÓAØ"&�A”KÙñ 4ð ×)×)Ø"$ˆAÔà�;‰;˜$Ò 1×#6×#6ô ×>Ò>Ø×0Ñ0óˆFö Ø—‘ Ñ 4Ô5ð ×#Ñ#Ô$BÓC×LÑLÓNˆÜ×*Ò*Ø˜W°dñ
ˆ
ð ÐùòAùò.ùò 4s   Â/
I
Â=	I
ÃAIÅI!c                ó‚  • / n[        UR                  5       5      n[        U5       H[  u  nu  pgUS:”  a/  XES-
     S   R                  nUR	                  U5      (       a  UOUn	OUn	UR                  X—R                  45        M]     [        U5      S:  a  Un
ON[        US   S   5      nUR                  (       a  UR                  n
O[        R                  " UR                  SS9n
U R                  R                  nU Vs/ s H/  n[        X R                   R"                  U   R                  5      PM1     nnX>U
4$ s  snf )Nr   r
   r'   rû  TrO  )rZ  ÚpairsÚ	enumeratera   r:  rP   r8   rÔ  r)   r@  r  r6   r&   rq   r>  r?  rR   r¨   )rs   rr  rA  Úto_joinrv  Úira   r:   Úprev_mapperÚ	to_appendÚparent_aliasrW  Ú
local_colsr€   Ú
local_attrs                  r=   Ú_prep_for_joinsÚSubqueryLoader._prep_for_joinsZ  s.  € àˆÜ�Y—_‘_Ó&Ó'ˆä!*¨5Ö!1ÑˆA‰~�Ø�1‹uð $¨¡E™l¨1™o×4Ñ4�Ø+6¯?©?¸6×+BÑ+B™KÈ‘	à"�	à�N‰N˜I§x¡xÐ0Ö1ñ "2ô& ˆw‹<˜!Óð &‰Lä˜7 2™; q™>Ó*ˆDØ×$×$Ø#Ÿ{™{‘ô  (×4Ò4Ø—K‘K°ñ �ð ×)Ñ)×7Ñ7ˆ
ñ  ó
â�ô �L§+¡+×"?Ñ"?ÀÑ"B×"FÑ"FÖGÙð 	ð 
ð  LÐ0Ð0ùò	
s   Ä 6D<c                ó–  • [        U5      nUS:X  a#  [        X2S   S   5      R                  U5      /nGOuUS:X  aB  [        X2S   S   5      R                  U5      [        XBS   S   5      R                  U5      /nGO-US:”  Ga&  USS  Vs/ s HM  n[        US   5      R                  (       d  [
        R                  " US   5      OUS   R                  US   4PMO     nn/ n	U(       am  UR                  S5      n[        US   US   5      n
U(       a  U
R                  US   S   5      n
OU
R                  U5      n
U	R                  U
5        U(       a  Mm  [        X2S   S   5      R                  U	S   R                  5      /U	-   [        XBS   S   5      R                  U5      /-   nU H  n
UR                  U
5      nM     U$ s  snf )Nr
   r   r'   rû  )rÔ  r?  Úof_typer)   r@  r6   r&   r  ÚpoprP   rR   Újoin)rs   rk  rx  rr  r|  Úeffective_entityÚltjÚitemÚmiddleÚinnerÚattrs              r=   Ú_apply_joinsÚSubqueryLoader._apply_joins‰  sÙ  € ô �'‹lˆØ�!‹8ä˜
¨A¡J¨q¡MÓ2×:Ñ:Ð;KÓLðŠGð �A‹Xä˜
¨A¡J¨q¡MÓ2×:Ñ:¸<ÓHÜ˜¨b¡k°!¡nÓ5×=Ñ=Ø$óðŠGð �1ŒWð $ A b™Mó
ò *�Dô  ' t¨A¡wÓ/×@×@ô !×-Ò-¨d°1©gÔ6à! !™WŸ^™^à˜‘Góñ *ð ð 
ð ˆEæØ—z‘z !“}�Ü˜t A™w¨¨Q©Ó0�ÞØŸ<™<¨¨q©	°!©Ó5‘DàŸ<™<¨Ó5�Dà—‘˜TÔ"÷ �&ô ˜¨Q¡Z°¡]Ó3×;Ñ;¸EÀ!¹H¿O¹OÓLÐMØñô ˜L°"©+°a©.Ó9×AÑAØ(óðñð ó ˆDØ—‘�t“ŠAñ ð ˆùòI
s   ÂAGc                óö   • UR                   nU(       aE  UR                  (       a4  U[        R                  " U R                  UR                  U5      5      4-  nUR                  U5      nUR                  " U6 nU$ r5   )rÅ  rÅ   r6   rÄ  r  rä  Ú_with_current_pathÚoptions)	rs   r†   rk  rA  Úrewritten_pathrh  r…  r|   Únew_optionss	            r=   Ú_setup_optionsÚSubqueryLoader._setup_options¿  sq   € ð" !×.Ñ.ˆæ�w×.×.ØÜ×-Ò-Ø—K‘KØ×4Ñ4°WÓ=óðñ ˆKð × Ñ  Ó0ˆØ�IŠI�{Ð#ˆàˆr@   c                ó‚   ^ • T R                   R                  (       a"  U 4S jnUR                  UT R                   5      nU$ )Nc                ó’   >• U =R                   [        [        R                  " TR                  R
                  5      5      -  sl         g r5   ©Úeager_order_byÚtupler   rS  rq   rR  ©r²  rs   s    €r=   Ú_setup_outermost_orderbyÚISubqueryLoader._setup_outermost_orderby.<locals>._setup_outermost_orderbyä  s3   ø€ Ø×.Ò.´%Ü—L’L ×!5Ñ!5×!>Ñ!>Ó?ó3ñ Ö.r@   )rq   rR  Ú_add_context_option)rs   rk  rš  s   `  r=   rš  Ú'SubqueryLoader._setup_outermost_orderbyá  s;   ø€ Ø×Ñ×(×(õð
 ×%Ñ%Ø(¨$×*>Ñ*>óˆAð ˆr@   c                  ó4   • \ rS rSrSrSrS rS rS rS r	Sr
g	)
ÚSubqueryLoader._SubqCollectionsiï  z™Given a :class:`_query.Query` used to emit the "subquery load",
provide a load interface that executes the query at the
first moment a value is needed.

©r  r˜  r«  rn  ÚsubqÚ_datac                ó¸   • UR                   U l         UR                  U l        UR                  U l        UR                  =(       d    0 U l        X l        S U l        g r5   r   )rs   r†   r¡  s      r=   rp   Ú(SubqueryLoader._SubqCollections.__init__ÿ  sG   € ð #Ÿ?™?ˆDŒLØ%,×%>Ñ%>ˆDÔ"Ø '× 4Ñ 4ˆDÔØ!Ÿ.™.×.¨BˆDŒKØŒIØˆD�Jr@   c                ór   • U R                   c  U R                  5         U R                   R                  X5      $ r5   )r¢  Ú_loadrY   )rs   r8   Údefaults      r=   rY   Ú#SubqueryLoader._SubqCollections.get	  s(   € Ø�z‰zÑ!Ø—
‘
”Ø—:‘:—>‘> #Ó/Ð/r@   c                óØ  • [         R                  " [        5      U l        U R                  nUR
                  b   eUR                  U R
                  5      nU R                  R                  (       a  UR                  5       n[        UR                  U R                  5      5      n[        R                  " US 5       H*  u  p4U R                  U   R                  S U 5       5        M,     g )Nc                ó   • U SS  $ )Nr
   r„   ©Úxs    r=   r>   Ú7SubqueryLoader._SubqCollections._load.<locals>.<lambda>  s
   € ¸!¸A¸B¹%r@   c              3  ó*   #   • U  H	  oS    v •  M     g7f)r   Nr„   ©r¼   Úvvs     r=   r¾   Ú8SubqueryLoader._SubqCollections._load.<locals>.<genexpr>  s   é € Ð$7²Q¨r¨¦U²Qùó   ‚)ÚcollectionsÚdefaultdictrZ  r¢  r¡  r  Úwith_sessionr«  Ú_populate_existingrå  rn  Ú	itertoolsÚgroupbyÚextend)rs   rk  Úrowsr  Úvs        r=   r¦  Ú%SubqueryLoader._SubqCollections._load  s«   € Ü$×0Ò0´Ó6ˆDŒJà—	‘	ˆAØ—9‘9Ñ$Ð$Ð$à—‘˜tŸ|™|Ó,ˆAà× Ñ ×3×3Ø×'Ñ'Ó)�ô ˜Ÿ™ §¡Ó-Ó.ˆDÜ!×)Ò)¨$±Ö@‘�Ø—
‘
˜1‘×$Ñ$Ñ$7±QÓ$7Ö7ò Ar@   c                ó@   • U R                   c  U R                  5         g g r5   )r¢  r¦  )rs   r  r1  r2  s       r=   rý  Ú&SubqueryLoader._SubqCollections.loader  s   € Ø�z‰zÑ!Ø—
‘
•ð "r@   )r¢  r˜  r«  rn  r  r¡  N)r‹   rŒ   r�   rŽ   r�   r�   rp   rY   r¦  rý  r‘   r„   r@   r=   Ú_SubqCollectionsrŸ  ï  s"   † ñ	ð
ˆ	ò	ò	0ò
	8õ"	r@   r¿  c           	     ó–  • UR                   nUR                  R                  (       a  UR                  R                  (       a  g UR                  R                  U5      nSUl        X0R                     nUR                  UR                  SS 5      n	U	b  U	n
OU R                  n
UR                  R                  R                  S[        R                  R                  [        R                  R                  45      u  p¼U[        R                  R                  L nX³-   nXÃ-   nUR                  R                  R                  S[         4UR                  5      n["        R$                  " US5      nUR&                  (       aB  UR(                  R*                  c  [,        R.                  " SU < SU< S35        UR0                  nUR3                  US	S
9nU R5                  UUUU5      u  nnnnU R7                  UUUUUU5      n[        R8                  " U
5      nUR                  R                  R;                  UR<                  S[         4USX¼405      Ul        UR?                  S	5      nU RA                  UU5      u  nnnURB                  " U6 nU RE                  UUUUU
5      nU RG                  UUUUUU
U5      nU RI                  U5      nU$ )NTÚpath_with_polymorphic)Úsubquery_pathsNrh  Úormzsubqueryloader for "z!" must invoke lambda callable at z  in order to produce a new query, decreasing the efficiency of caching for this statement.  Consider using selectinload() for more effective full-lambda cachingF)Úlegacy)%ry   rç   r  Ú_for_refresh_stater;  ÚindexÚloaders_require_bufferingrq   rY   r   r  r   rÂ  r6   rÿ  r   r3  r   Ú_get_plugin_class_for_pluginÚ_is_lambda_elementr«  r¨  r   rÕ  Ú	_resolvedÚ_create_entities_collectionrL  rs  rS  rË  r˜  Ú_set_enable_single_critr  Úadd_columnsr‹  r’  rš  )rs   r†   rz   r{   r  r|   r}   ry   r@  Úwith_poly_entityr…  rA  r�  rC  rh  Úcompile_state_clsrg  rF  rK  ri  rr  rk  rx  r~  r|  s                            r=   Ú_setup_query_from_rowprocÚ(SubqueryLoader._setup_query_from_rowproc#  sÕ  € ð  ×-Ñ-ˆà×-Ñ-×@×@Ø×,Ñ,×?×?àà"/×"9Ñ"9×"?Ñ"?ÀÓ"MÐØ,0ˆÔ)à×(Ñ(Ñ)ˆð  Ÿ8™8Ø×$Ñ$Ð&=¸tó
Ðð Ñ'Ø/Ñà#Ÿ{™{Ðà$+§M¡M×$DÑ$D×$HÑ$HØ$Ü×"Ñ"×'Ñ'¬×)>Ñ)>×)CÑ)CÐDó%
Ñ!ˆ	ð œx×4Ñ4×9Ñ9Ð9ˆØÑ$ˆ	Ø'Ñ.ˆð —]‘]×5Ñ5×9Ñ9Øœ>Ð*¨G¯M©Mó
ˆ
ô ,×HÒHØ˜ó
Ðð ×(×(Ø×#Ñ#×5Ñ5Ñ=Ü—	“	ó ›Zð)ôð $×-Ñ-ˆJð
 /×JÑJØ˜uð Kð 
Ðð ×ÑØ#ØØØó	
ñ	
ØØØ!Øð ×7Ñ7ØØØØØ!Øó
ˆ
ô �KŠKÐ(Ó)ˆà&Ÿ}™}×?Ñ?×JÑJØ×%Ñ%àœ~Ð.°
Ø(¨9Ð*Eðó 
ˆÔð ×%Ñ% eÓ,ˆØ,0×,@Ñ,@Ø˜	ó-
Ñ)ˆ�˜\ð �MŠM˜:Ð&ˆØ×ÑØˆw˜
 LÐ2Bó
ˆð ×ÑØØØØØØØó
ˆð ×)Ñ)¨!Ó,ˆàˆr@   c	           
     ór  • U(       aS  UR                   R                  b<  UR                   R                  R                  (       a  [        R                  " SS5        UR
                  (       a  U R                  UUUUUUUU5      $ U R                  XX@R                  5      u  pš  n	U
(       d  g [        UR                   [        5      (       d  g U R                  R                  U R                     R                  R                  (       d  [         R"                  " SU -  5      e[%        U5      S:X  a2  [&        R(                  " UR*                  U R                  5      (       d  g OW[&        R(                  " US   U R                  5      (       d.  U R                  R-                  US   R.                  5      (       d  g U R1                  UUUUS   UU5      nUc  g UR2                  b   eX0R4                     nU R4                  R6                  nUR9                  UR:                  S5      nUc.  U R=                  X5      nUR?                  UR:                  SU5        U(       a  U Vs/ s H  oçR@                  U   PM     nnU RB                  (       a  U RE                  XXÜU5        g U RG                  XXÜU5        g s  snf )Nz°The subqueryload loader option is not compatible with DML statements such as INSERT, UPDATE.  Only SELECT may be used.This warning will become an exception in a future release.ú2.0úJ'%s' does not support object population - eager loading cannot be applied.r
   rû  r³  )$ry   Ú	statementÚis_dmlr   Úwarn_deprecatedrÚ   r$  r  r
  rù   r   rR   rZ   r8   ÚimplÚsupports_populationr  r  rÔ  r6   Ú_entity_isar<  r:  ra   rÐ  r  rq   r>  rY   r   r¿  rê   rm   rD   Ú_create_collection_loaderÚ_create_scalar_loader)rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   Ú_r#  r¡  r}  r³  r€   s                  r=   r‰   Ú#SubqueryLoader.create_row_processor«  sq  € ö Ø×%Ñ%×/Ñ/Ñ;Ø×%Ñ%×/Ñ/×6×6ä× Ò ðMð ô	ð × × Ø×;Ñ;ØØØØØØØØó	ð 	ð #×7Ñ7Ø˜7§O¡Oó
Ñˆ�q˜!ö Øä˜'×/Ñ/Ô1F×GÑGð à�{‰{×(Ñ(¨¯©Ñ2×7Ñ7×K×KÜ×,Ò,ð@ØBFñGóð ô ˆt‹9˜‹>Ü×'Ò'¨×(@Ñ(@À$Ç+Á+×NÑNØð Oä×%Ò%Ø�‰H�d—k‘k÷
ñ 
à—+‘+—/‘/ $ r¡(§/¡/×2Ñ2ð à×-Ñ-ØØØØ�‰HØØó
ˆð ‰<Øà�|‰|Ñ#Ð#Ð#à×(Ñ(Ñ)ˆà×)Ñ)×7Ñ7ˆ
ð
 —h‘h˜w×1Ñ1°=ÓAˆØÑØ×/Ñ/°Ó>ˆKØ�H‰H�W×'Ñ'¨¸ÔDæÙ6@ÓA²j°Ÿ/™/¨!Ô,±jˆJÐAà�<�<Ø×*Ñ*Ø ¸*õð ×&Ñ&Ø ¸*õùò Bs   É!J4c                óD  ^ ^^^• UR                  U5      mUU U4S jmUU 4S jnUS   R                  T R                  T45        US   R                  T R                  U45        UR                  (       a+  US   R                  T R                  TR                  45        g g )Nc                óŽ   >• TR                   " T" U5      S5      nU R                  TR                  5      R                  XU5        g )Nr„   )rY   r)  r8   r*  )r  r1  r2  Ú
collectionr³  rs   Útuple_getters       €€€r=   Úload_collection_from_subqÚKSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq  s8   ø€ Ø$Ÿš©°cÓ):¸BÓ?ˆJØ�N‰N˜4Ÿ8™8Ó$×8Ñ8Ø˜jõr@   c                ó:   >• TR                   U;  a
  T" XU5        g g r5   ©r8   )r  r1  r2  rã  rs   s      €€r=   Ú&load_collection_from_subq_existing_rowÚXSubqueryLoader._create_collection_loader.<locals>.load_collection_from_subq_existing_row   s   ø€ Ø�x‰x˜uÓ$Ù)¨%¸Õ<ð %r@   rÙ   ÚexistingÚeager©Ú_tuple_getterrP   r8   Úinvoke_all_eagersrý  )	rs   r†   r‡   r³  r}  rˆ   rç  rã  râ  s	   `  `   @@r=   rÛ  Ú(SubqueryLoader._create_collection_loader  s�   û€ ð ×+Ñ+¨JÓ7ˆ÷	ö	=ð 	�5Ñ× Ñ  $§(¡(Ð,EÐ!FÔGØ�:Ñ×%Ñ%Ø�X‰XÐ=Ð>ô	
ð ×$×$Ø�wÑ×&Ñ&¨¯©°+×2DÑ2DÐ'EÕFð %r@   c                óD  ^ ^^^• UR                  U5      mUU U4S jmUU 4S jnUS   R                  T R                  T45        US   R                  T R                  U45        UR                  (       a+  US   R                  T R                  TR                  45        g g )Nc                óè   >• TR                   " T" U5      S5      n[        U5      S:”  a  [        R                  " ST-  5        US   nU R	                  TR
                  5      R                  XU5        g )Nr5   r
   úLMultiple rows returned with uselist=False for eagerly-loaded attribute '%s' r   )rY   rÔ  r   rÕ  r)  r8   r*  )r  r1  r2  rá  Úscalarr³  rs   râ  s        €€€r=   Úload_scalar_from_subqÚCSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq1  sg   ø€ Ø$Ÿš©°cÓ):¸GÓDˆJÜ�:‹ Ó"Ü—	’	ðGØIMñNôð
   ‘]ˆFØ�N‰N˜4Ÿ8™8Ó$×8Ñ8¸ÀvÕNr@   c                ó:   >• TR                   U;  a
  T" XU5        g g r5   ræ  )r  r1  r2  ró  rs   s      €€r=   Ú"load_scalar_from_subq_existing_rowÚPSubqueryLoader._create_scalar_loader.<locals>.load_scalar_from_subq_existing_row<  s   ø€ Ø�x‰x˜uÓ$Ù% e°CÕ8ð %r@   rÙ   ré  rê  rë  )	rs   r†   r‡   r³  r}  rˆ   rö  ró  râ  s	   `  `   @@r=   rÜ  Ú$SubqueryLoader._create_scalar_loader,  s‘   û€ ð ×+Ñ+¨JÓ7ˆ÷		Oö	9ð 	�5Ñ× Ñ  $§(¡(Ð,AÐ!BÔCØ�:Ñ×%Ñ%Ø�X‰XÐ9Ð:ô	
ð ×$×$Ø�wÑ×&Ñ&¨¯©°+×2DÑ2DÐ'EÕFð %r@   )r‹   rŒ   r�   rŽ   r�   rp   r«   rL  rs  r  r‹  r’  rš  r¿  rÐ  r‰   rÛ  rÜ  r‘   r’   r“   s   @r=   r3  r3  ·  sd   ø† ð  €Iõ:ò'ò
/LòbbòH-1ò^4òl òD÷2ñ 2òhFòPhòTG÷.Gð Gr@   r3  Újoinedc                  óŽ   ^ • \ rS rSrSrSrU 4S jrS r   SS jrS r	S r
S	 rS
 r  S   SS jjrS rS rS rS rSrU =r$ )ÚJoinedLoaderiH  zSProvide loading behavior for a :class:`.Relationship`
using joined eager loading.

r
  c                óZ   >• [         TU ]  X5        U R                  R                  U l        g r5   r  rr   s      €r=   rp   ÚJoinedLoader.__init__S  r  r@   c                óX   • U R                   R                  S5      R                  U5        g r  r  rË   s     r=   r«   Ú!JoinedLoader.init_class_attributeW  r  r@   c	                ó¢  • UR                   R                  (       d  gU(       a@  UR                  b3  UR                  R                  (       a  [        R
                  " SS5        OU R                  (       a  SUl        X0R                     nU(       a  U R                  XAUR                  5      OSn
U
SLa  U R                  UUUUU
5      u  nnnO–UR                  UR                  S5      (       dQ  U R                  (       a  UR                  S-  U R                  :”  a  gO!UR                  U R                   5      (       a  gU R#                  UUUUUUUU5      u  nnnnSUl        UR'                  UR                  SS5      nUb  [)        U5      R*                  nOSnX0R,                     n[.        R0                  " UU R                   UUUUUU R                   US	9	  [        R2                  R5                  UR6                  5      nU(       aA  Ub  [8        R:                  " S
5      eUR6                   Vs/ s H
  nUc  M  UPM     snUl        ggs  snf )z@Add a left outer join to the statement that's being constructed.Nz®The joinedload loader option is not compatible with DML statements such as INSERT, UPDATE.  Only SELECT may be used.This warning will become an exception in a future release.rÓ  TFrý  r'   rÁ  )Úwith_polymorphicÚparentmapperÚchained_from_outerjoinz–Detected unaliased columns when generating joined load.  Make sure to use aliased=True or flat=True when using joined loading with with_polymorphic().)rç   r  rÕ  rÖ  r   r×  rD   Úmulti_row_eager_loadersrq   Ú_init_user_defined_eager_procr   Ú$_setup_query_on_user_defined_adapterr  r
  r  r	  ra   Ú_generate_row_adapterÚeager_adding_joinsrY   r)   Úwith_polymorphic_mappersr  r   Ú_setup_entity_queryÚNONE_SETrë   Úsecondary_columnsr  r  )rs   ry   rz   r{   r|   r}   r~   r  r  r   Úuser_defined_adapterÚclausesÚadd_to_collectionrÎ  r  Ú	has_nonesr€   s                    r=   r�   ÚJoinedLoader.setup_query\  sS  € ð ×,Ñ,×?×?ØæØ×'Ñ'Ñ3Ø×'Ñ'×.×.ä× Ò ðMð õ	ð �\�\Ø48ˆMÔ1à×(Ñ(Ñ)ˆö ð ×.Ñ.Ø¨×(@Ñ(@ôð ð 	ð   uÒ,ð ×9Ñ9ØØØØØ$óñ	ØØÙ!ð  —=‘= ×!9Ñ!9¸8×DÑDØ—?—?Ø—{‘{ Q‘¨¯©Ó8Øð 9à×)Ñ)¨$¯+©+×6Ñ6Øð ×*Ñ*ØØØØØØ!ØØ&ó	ñØØØ!Ø&ð 04ˆMÔ,àŸ8™8Ø×$Ñ$Ð&=¸tó
Ðð Ñ'Ü&Ø ó ç&Ñ&ñ ð  $Ðà—K‘KÑ ˆä×#Ò#ØØ�K‰KØØØØØ-ØŸ™Ø#9ò
	
ô —M‘M×.Ñ.¨}×/NÑ/NÓOˆ	æØÑ+Ü×0Ò0ðIóð ð  -×>Ò>ó3Ú>˜!À!—AÑ>ñ3�Õ/ð ùò3s   È1IÈ<Ic                ó>  • SUR                   ;  a  gUR                  R                  nUR                  UR                  SS5      nUSLa  U$ UR                   S   nUSS  u  pxUb  [        U[        5      (       a  UR                  R                  U5      n[        R                  " [        R                  R                  UR                  UUR                  R                  SS9nO¦UR                  UR                  S5      (       a_  UR                  UR                  S5      n	[        R                  " [        R                  R                   U	UR                  R                  S9nO&UR"                  R                  UR                  S 5      nUR%                  USU5        U$ )NÚeager_from_aliasFÚ user_defined_eager_row_processoréþÿÿÿ)Ú
selectablerO  Úlimit_on_entityrÁ  )rO  )rí   r{   rR   rY   r   rù   r  r  Úaliasr6   Ú
ORMAdapterÚ_TraceAdaptRoleÚJOINEDLOAD_USER_DEFINED_ALIASra   rY  r  Ú JOINEDLOAD_PATH_WITH_POLYMORPHICÚ_polymorphic_adaptersrê   )
rs   r|   ry   Útarget_attributesr{   r}   r  Úroot_mapperr:   rÎ  s
             r=   r  Ú*JoinedLoader._init_user_defined_eager_procÜ  s~  € ð  W×%7Ñ%7Ó7àà�|‰|×"Ñ"ˆð —(‘(Ø×$Ñ$Ð&HÈ%ó
ˆð ˜%ÒàˆNð ×"Ñ"Ð#5Ñ6ˆØ   ˜IÑˆàÑÜ˜%¤×%Ñ%ØŸ™×)Ñ)¨%Ó0�Ü×)Ò)Ü×(Ñ(×FÑFØ—‘Ø Ø ŸK™K×;Ñ;Ø %ñ‰Gð �}‰}Ø×(Ñ(Ð*A÷ñ ð $(§8¡8Ø!×,Ñ,Ð.Eó$Ð ô #×-Ò-Ü×,Ñ,×MÑMØ$Ø $§¡× ?Ñ ?ñ‘ð (×=Ñ=×AÑAØ—K‘K ó�ð 	�‰ØØ.Øô	
ð ˆr@   c                ó
  • UR                  U5      nU(       a6  U(       a/  UR                  U5      nUR                  UR                  SU5        O&U(       a  UnUR                  UR                  SU5        UR                  nXTU4$ )Nr  )Ú_get_entity_clausesÚwraprê   r   Úprimary_columns)rs   r†   r  r{   r}   r  r  s          r=   r  Ú1JoinedLoader._setup_query_on_user_defined_adapter	  s†   € ð
 ×,Ñ,¨WÓ5ˆæÖ+Ø#7×#<Ñ#<¸WÓ#EÐ Ø�H‰HØ×"Ñ"Ø2Ø$õö
 Ø#*Ð Ø�H‰HØ×"Ñ"Ø2Ø$ôð $×3Ñ3ÐØ#Ð.?Ð?Ð?r@   c	                ó‚  • UR                  UR                  SS 5      n	U	(       a  U	n
Oh[        U R                  5      nUR                  (       a  UR
                  nOS n[        R                  " U R                  Ub  UR                  SS9OS SSS9n
[        U
5      nUR                  SU 4[        R                  [        R                  R                  UU R                  R                  SSSS9nUR                  (       d   eUb0  UR                  R                  SU R                   R"                  5      OU R                   R"                  nU(       d  SnUR$                  R'                  U R(                  UUUUUUUU(       a  UR*                  OS	4	5        UR,                  nUR/                  UR                  S
U5        XåUU4$ )NrÁ  T)Úflat)r  r'  rP  Újoinedloader_ormadapterF)rO  Úadapt_requiredÚallow_label_resolveÚanonymize_labelsÚ	innerjoinr„   Úeager_row_processor)rY   r   r)   r  r@  r  r6   r&   ra   Ú_anonymous_fromclauseÚ_memor  r  ÚJOINEDLOAD_MEMOIZED_ADAPTERrY  rí   rq   r,  Úcreate_eager_joinsrP   Ú_create_eager_joinrÅ   r  rê   )rs   ry   r  r{   r|   r}   r~   r  r  rÎ  Úto_adaptÚinspÚalt_selectableÚto_adapt_inspr  r,  r  s                    r=   r  Ú"JoinedLoader._generate_row_adapter.	  s»  € ð  Ÿ8™8Ø×$Ñ$Ð&=¸tó
Ðö Ø'‰Hä˜4Ÿ;™;Ó'ˆDØ×$×$Ø!%§¡‘à!%�ä×,Ò,Ø—‘ð &Ñ1ð #×8Ñ8¸dÐ8ÑCààØ $ñ	ˆHô   Ó)ˆà×%Ñ%Ø&¨Ð-Ü×ÑÜ×$Ñ$×@Ñ@ØØŸ™×7Ñ7ØØ %Ø!ð &ð 	
ˆð ×'×'Ð'Ð'ð Ñ"ð ×Ñ×"Ñ" ;°×0DÑ0D×0NÑ0NÔOà×%Ñ%×/Ñ/ð 	ö ð &*Ð"à×(Ñ(×/Ñ/à×'Ñ'ØØØØØØØ&Þ+2�×'Ò'¸ð
ô	
ð *×;Ñ;ÐØ�‰�×)Ñ)Ð+@À'ÔJàÐ!2Ð4JÐJÐJr@   c
           
     ó˜  ^ • Uc  UR                   n
OUn
UR                  =(       a    UR                  nS nX!R                  ;  a‡  U(       d€  UR                  (       ao  [
        R                  " UR                  UR                  5      n[        U5      S:”  a  [        R                  " S5      eU(       a  UR                  US      nUS   UpüUc  UUR                  püUR                  R                  UW5      nU(       aÏ  [        USS5      (       as  UR                  R                  U
R                  T R                   5      (       a  U
OT R                   5      n[        UR"                  T R$                  T R&                  5      nOV[        [(        R*                  " T R                   UR                  SS9T R$                  T R&                  5      nOT R&                  nUR,                  (       d   eU(       + =(       d0    U(       + =(       d"    US:H  =(       d    UR.                  R0                  nU	nUR2                  R5                  S	T R                   4S
5      nU(       a  U[7        U 4S jU 5       5      -  nU(       aˆ  [(        R8                  " UUR                  UU(       + =(       d@    UR.                  R0                  =(       d#    U=(       a    [;        U[<        R>                  5      T R                   UT R                      US9nOT RA                  X3S   UUUU5      nUUR                  U'   UR                  Ul!        U(       d�  [
        RD                  " T R&                  RF                  5       Ha  nU
RH                  RJ                  RM                  U5      (       d  M/  U(       a  URN                  U   nURQ                  UURR                  5        Mc     T R&                  RT                  (       a`  U=RV                  [7        URX                  R[                  [\        R^                  " T R&                  RT                  5      5      5      -  sl+        g g )Nr
   z€Can't identify which query entity in which to joined eager load from.   Please use an exact match when specifying the join path.r   r@  FTrO  ÚunnestedÚadditional_entity_criteriar„   c              3  ó€   >#   • U  H3  nUR                   (       d  M  UR                  TR                  5      v •  M5     g 7fr5   )Úpropagate_to_loadersÚ_resolve_where_criteriara   )r¼   Úaers   s     €r=   r¾   Ú2JoinedLoader._create_eager_join.<locals>.<genexpr>å	  s5   øé € ð )â4�BØ×*Õ*ó 8�×*Ñ*¨4¯;©;×7Ð7Ú4ùs   ƒ>œ">©ÚisouterÚ
_left_memoÚ_right_memorÅ   r  )0ra   r  Ú_should_nest_selectableÚeager_joinsÚfrom_clausesrT  Ú#find_left_clause_that_matches_givenr  rÔ  r  r  Ú
setdefaultr?  Úaliased_inspÚ_entity_for_mapperr:  rR   r  r8   rq   r6   r&   r@  r<  Úrepresents_outer_joinÚglobal_attributesrY   r˜  Ú_ORMJoinrù   r+   ÚJoinÚ_splice_nested_inner_joinÚstop_onÚ_find_columnsÚprimaryjoinÚpersist_selectabler€   Úcontains_columnrm   rx   r$  rR  r—  Ú_target_adapterÚcopy_and_processr   rS  )rs   ry   rz   r{   r}   r  r  r,  r  r•  r  Úshould_nest_selectableÚquery_entity_keyÚindexesÚclauseÚdefault_towrapÚtowrapÚefmÚonclauseÚattach_on_outsideÚextra_join_criteriar:  Ú	eagerjoinr²   s   `                       r=   r2  ÚJoinedLoader._create_eager_join}	  sÉ  ø€ ð ÑØ&×-Ñ-‰Kà&ˆKð ×1Ñ1÷ 6Ø×5Ñ5ð 	ð
  Ðð × 9Ñ 9Ó9Þ*Ø×*×*ä×BÒBØ×*Ñ*¨L×,CÑ,CóˆGô �7‹|˜aÓô ×0Ò0ð0óð ö Ø&×3Ñ3°G¸A±JÑ?�ð
 4;¸1±:¸v .àÑ#àØ×'Ñ'ð -ð
 ×*Ñ*×5Ñ5Ø˜nó
ˆö Ü�wÐ 2°E×:Ñ:ð
 ×*Ñ*×=Ñ=à"—‘ t§{¡{×3Ñ3ñ  àŸ™ó�ô # 3§:¡:¨t¯x©x¸×9MÑ9MÓN‘ä"Ü×)Ò)ØŸ™ W×%7Ñ%7Èñð —H‘HØ×(Ñ(ó‘ð ×+Ñ+ˆHà×'×'Ð'Ð'ð 'Ô&÷ >ØŒ}÷>à˜JÑ&÷>ð ×'Ñ'×=Ñ=ð	 	ð -ÐØ%2×%DÑ%D×%HÑ%HØ)¨4¯;©;Ð7¸ó&
Ð"ö &Ø¤5ô )á4ó)ó $ñ Ðö ä ×)Ò)ØØ×$Ñ$ØØ%œ÷ MØ×+Ñ+×AÑA÷Mà*×K¬z¸&Ä#Ç(Á(Ó/KØŸ;™;Ø  §¡Ñ-Ø 3ñ
‰Ið ×6Ñ6Ø˜2‘h ¨°Ð;NóˆIð 7@ˆ×!Ñ!Ð"2Ñ3ð )×3Ñ3ˆ	Ôæô  ×-Ò-Ø×$Ñ$×0Ñ0ö�ð ×1Ñ1×3Ñ3×CÑCÀC×HÓHÞØ%Ÿo™o¨cÑ2˜Ø!×?Ñ?Ø˜]×:Ñ:öñð ×Ñ×(×(Ø×(Ò(¬EØ×*Ñ*×;Ñ;Ü—L’L ×!5Ñ!5×!>Ñ!>Ó?óó-ñ Ö(ð )r@   c	                óà  • X!S   L d   eUSL a!  [        U[        R                  5      (       d   e[        U[        R                  R
                  5      (       a!  U R                  UUUR                  UUUU5      $ [        U[        R                  5      (       GaU  UR                  n	U R                  UUUR                  UUUU	b  U	S   R                  OS S9n
U
b‡  UR                  (       d#  U
R                  (       d  UR                  U
5      nO@[        R                  " UR                  U
UR                  UR                  UR                  S9nU
R                   Ul        U$ U R                  UUUR                  UUUUR                  U	S9n
U
bS  [        R                  " U
UR                  UR                  UR                  UR                  S9nU
R                   Ul        U$ USL a    S5       eg UR#                  U5      (       d  g U(       a0  [%        U5      S	:”  a!  US
   UL d   eUSS UR&                  SS :w  a  g [        R                  " UUR(                  USUXS   R                     US9$ )Nr  Frû  )Úentity_inside_join_structure)rA  rB  )rd  Údetected_existing_path)rA  rC  z9assertion failed attempting to produce joined eager loadsr'   éýÿÿÿr   r@  )rù   r6   rM  r+   r  ÚFromGroupingrO  ÚelementrC  Úrightra   rA  Ú_splice_into_centerÚleftr^  rB  rU  r:  rÔ  r{   rI  )rs   r{   Úentity_we_want_to_splice_ontoÚjoin_objr  r^  r•  rd  re  Újoin_right_pathÚtarget_joinra  s               r=   rO  Ú&JoinedLoader._splice_nested_inner_join
  sŸ  € ð* -°R±Ò8Ð8Ð8à'¨5Ò0Ü˜h¬×(9Ñ(9×:Ñ:Ð:Ð:ä�h¤§¡× ;Ñ ;×<Ñ<à×1Ñ1ØØ-Ø× Ñ ØØØØ,óð ô ˜¤(×"3Ñ"3×4Ò4ð '×2Ñ2ˆOð ×8Ñ8ØØ-Ø—‘ØØØð 'Ñ2ð $ BÑ'×.Ò.àð 9ð ˆKð Ñ&ð  ×'×'°×0C×0CØ (× <Ñ <¸[Ó I‘Iä (× 1Ò 1Ø Ÿ™Ø#Ø ×)Ñ)Ø (× 0Ñ 0Ø#+×#6Ñ#6ñ!�Ið -8×,GÑ,G�	Ô)Ø Ð ð #×<Ñ<ØØ1Ø—M‘MØØØ"Ø19×1DÑ1DØ+:ð =ð 	�ð Ñ*Ü (× 1Ò 1Ø#Ø Ÿ™Ø ×)Ñ)Ø (× 0Ñ 0Ø$,×$8Ñ$8ñ!�Ið 1<×0KÑ0K�IÔ-Ø$Ð$ð ,¨uÒ4àðOàNóOØàð -×0Ñ0Ð1M×NÑNØö "¤cÐ*@Ó&AÀAÓ&Eð
 *¨"Ñ-Ð1MÒMÐMÐMðH & a¨Ð+¨t¯y©y¸¸2¨Ó>Øä× Ò ØØ× Ñ ØØØ3Ø "™XŸ_™_Ñ-Ø*ñ
ð 	
r@   c                óœ  • UR                   nU(       a  U R                  XVUR                  5      OSnUSLaT  UnUR                  (       a#  U(       a  UR	                  UR                  5      nO>UR                  (       a  UR                  nO UR                  UR                  S5      nUc  gU R                  R                  X(5      (       a  U$ g)NFr-  )ry   r  r   Úcompound_eager_adapterr#  rY   ra   Ú_result_has_identity_key)	rs   r†   r‡   r}   r{   r|   ry   r  Ú	decorators	            r=   Ú_create_eager_adapterÚ"JoinedLoader._create_eager_adapterÉ
  sÆ   € Ø×-Ñ-ˆö ð ×.Ñ.Ø¨×(:Ñ(:ôð ð 	ð   uÒ,Ø,ˆIð ×3×3¾	Ø%ŸN™NØ!×8Ñ8ó‘	ð ×5×5Ø)×@Ñ@�	øàŸ™Ø×(Ñ(Ð*?óˆIð Ñ Øà�;‰;×/Ñ/°×BÑBØÐð r@   c	           
     óÀ  • UR                   R                  R                  (       d  g U R                  R                  U R
                     R                  R                  (       d  [        R                  " SU -  5      eU R                  (       a  SUl        X0R                     n	U R                  XXyU5      n
U
SLat  U R
                  n[        R                  " UU R                   UUX�R"                     U
5      nU R                  (       d  U R%                  XXÈ5        g U R'                  XXÈ5        g U R                  R)                  S5      R+                  UUUUUUUU5        g )NrÔ  TFr  )ry   rç   r  rR   rZ   r8   rØ  rÙ  r  r  rD   Úloaders_require_uniquingrq   ru  r   Ú_instance_processorra   r  rÜ  rÛ  rÝ   r‰   )rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   Úour_pathÚeager_adapterr8   Ú	_instances                r=   r‰   Ú!JoinedLoader.create_row_processorí
  s>  € ð ×$Ñ$×4Ñ4×G×GØà�{‰{×(Ñ(¨¯©Ñ2×7Ñ7×K×KÜ×,Ò,ð@ØBFñGóð ð
 �<�<Ø/3ˆGÔ,à×,Ñ,Ñ-ˆà×2Ñ2Ø˜W°ó
ˆð  Ò%Ø—(‘(ˆCä×3Ò3ØØ—‘ØØØŸ™Ñ%ØóˆIð —<—<Ø×*Ñ*¨7¸ÕOà×.Ñ.Ø )õð × Ñ ×.Ñ.Ø%óç"Ñ"ØØØØØØØØõ	r@   c                ó  ^^^• UUU4S jnUUU4S jnU4S jnUS   R                  U R                  U45        US   R                  U R                  U45        TR                  (       a!  US   R                  U R                  U45        g g )Nc                ó¾   >• [         R                  " XT5      n[        R                  " US5      nUTR                   U T4'   T" U5      nUb  UR	                  U5        g g ©NÚappend_without_event©r   r0  r   ÚUniqueAppenderrP   )	r  r1  r2  rá  Úresult_listÚinstr|  r†   r8   s	         €€€r=   Ú#load_collection_from_joined_new_rowÚSJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_new_row,  se   ø€ ô $×9Ò9¸%ÈÓLˆJÜ×-Ò-ØÐ2óˆKð 0;ˆG×Ñ  s˜|Ñ,Ù˜S“>ˆDØÑØ×"Ñ" 4Õ(ð  r@   c                ó  >• U T4TR                   ;   a  TR                   U T4   nO?[         R                  " XT5      n[        R                  " US5      nUTR                   U T4'   T" U5      nUb  UR	                  U5        g g r€  r‚  )	r  r1  r2  r„  rá  r…  r|  r†   r8   s	         €€€r=   Ú(load_collection_from_joined_existing_rowÚXJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_existing_row9  s�   ø€ Ø�sˆ|˜w×1Ñ1Ó1Ø%×0Ñ0°%¸°Ñ>‘ô (×=Ò=Ø #ó�
ô #×1Ò1ØÐ 6ó�ð 4?�×"Ñ" E¨3 <Ñ0Ù˜S“>ˆDØÑØ×"Ñ" 4Õ(ð  r@   c                ó   >• T" U5        g r5   r„   ©r  r1  r2  r|  s      €r=   Ú load_collection_from_joined_execÚPJoinedLoader._create_collection_loader.<locals>.load_collection_from_joined_execL  ó
   ø€ Ù�c�Nr@   rÙ   ré  rê  ©rP   r8   rí  )rs   r†   r8   r|  rˆ   r†  r‰  r�  s    ```    r=   rÛ  Ú&JoinedLoader._create_collection_loader+  s†   ú€ ÷	)÷	)õ&	ð 	�5Ñ× Ñ Ø�X‰XÐ:Ð;ô	
ð 	�:Ñ×%Ñ%Ø�X‰XÐ?Ð@ô	
ð ×$×$Ø�wÑ×&Ñ&Ø—‘Ð;Ð<õð %r@   c                ó  ^ ^^• UU4S jnUUU 4S jnU4S jnUS   R                  T R                  U45        US   R                  T R                  U45        UR                  (       a!  US   R                  T R                  U45        g g )Nc                ó   >• T" U5      UT'   g r5   r„   )r  r1  r2  r|  r8   s      €€r=   Úload_scalar_from_joined_new_rowÚKJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_new_row[  s   ø€ ñ # 3›ˆE�#ŠJr@   c                ón   >• T" U5      nTU;   a"  X1T   La  [         R                  " ST-  5        g g X1T'   g )Nrñ  )r   rÕ  )r  r1  r2  ré  r|  r8   rs   s       €€€r=   Ú$load_scalar_from_joined_existing_rowÚPJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_existing_row`  sI   ø€ ñ ! “~ˆHð �e‹|Ø¨¡:Ò-Ü—I’IðKàñõð .ð &�c’
r@   c                ó   >• T" U5        g r5   r„   rŒ  s      €r=   Úload_scalar_from_joined_execÚHJoinedLoader._create_scalar_loader.<locals>.load_scalar_from_joined_execs  r�  r@   rÙ   ré  rê  r�  )rs   r†   r8   r|  rˆ   r”  r—  rš  s   ` ``    r=   rÜ  Ú"JoinedLoader._create_scalar_loaderZ  s�   ú€ ö	(÷
	&õ&	ð 	�5Ñ× Ñ  $§(¡(Ð,KÐ!LÔMØ�:Ñ×%Ñ%Ø�X‰XÐ;Ð<ô	
ð ×$×$Ø�wÑ×&Ñ&Ø—‘Ð7Ð8õð %r@   r  )NNF)FN)rd  z#Union[Mapper, None, Literal[False]]re  z$Optional[path_registry.PathRegistry])r‹   rŒ   r�   rŽ   r�   r�   rp   r«   r�   r  r  r  r2  rO  ru  r‰   rÛ  rÜ  r‘   r’   r“   s   @r=   rû  rû  H  sˆ   ø† ñð
 €Iõ:ò'ð ØØ$ô~ò@7òr@ò2MKò^]ðR ØGKðk
ð'
ðk
ð !Eõk
òZ"òH<ò|-÷^#ð #r@   rû  Úselectinc                  óŠ   ^ • \ rS rSrSr\R                  " S/ SQ5      rSrU 4S jr	S r
S rS	 rS
 rS rS rS rS rSrU =r$ )ÚSelectInLoaderi€  )r
  Ú	omit_joinÚ_parent_aliasÚ_query_infoÚ_fallback_query_infoÚ	queryinfo)Úload_only_childÚload_with_joinÚin_exprÚpk_colsÚzero_idxÚchild_lookup_colsiô  c                óè  >• [         TU ]  X5        U R                  R                  U l        U R                  R                  [
        R                  L nU R                  R                  b  U R                  R                  U l        O€U R                  R                  S5      nU(       a  UR                  U l        OLU R                  R                  S   R                  UR                  SSU R                  R                  S9U l        U R                  (       aH  U(       a+  U R                  5       U l        U R#                  5       U l        g U R'                  5       U l        g U R#                  5       U l        g )Nr  r   TFrL  )ro   rp   rq   r
  r^   r   ra  r   rÝ   r?  rR   rX  r»   r<  rY  Ú_init_for_omit_join_m2or¢  Ú_init_for_joinr£  Ú_init_for_omit_join)rs   rR   rt   Úis_m2or.  ru   s        €r=   rp   ÚSelectInLoader.__init__™  s"  ø€ Ü‰Ñ˜Ô.Ø×.Ñ.×9Ñ9ˆŒØ×%Ñ%×/Ñ/´:×3GÑ3GÐGˆà×Ñ×)Ñ)Ñ5Ø!×1Ñ1×;Ñ;ˆD�Nà×-Ñ-×;Ñ;Ø%óˆJö Ø!+×!3Ñ!3�•à!%§¡×!8Ñ!8¸Ñ!;×!CÑ!CØ×-Ñ-Ø $Ø!&Ø $§¡× ?Ñ ?ð	 "Dð "�”ð �>�>ÞØ#'×#?Ñ#?Ó#A�Ô Ø,0×,?Ñ,?Ó,A�Õ)à#'×#;Ñ#;Ó#=�Õ à#×2Ñ2Ó4ˆDÕr@   c                ó’  ^ ^• [        T R                  R                  R                  5      mTR	                  UU 4S j[        T5       5       5        T R                  R                   Vs/ s H  oT;   d  M
  TU   PM     sn=p#[        U5      S:”  a  [        R                  " U6 nSnOUS   nSnT R                  SSXBUS 5      $ s  snf )Nc              3  óŽ   >#   • U  H:  nTR                   R                  R                  US 5        H  nUTU   4v •  M     M<     g7f)r„   N)rR   rY  rY   )r¼   r  ÚequivÚpk_to_fkrs   s      €€r=   r¾   Ú5SelectInLoader._init_for_omit_join.<locals>.<genexpr>»  sE   øé € ð 
â#�ØŸ™×8Ñ8×<Ñ<¸QÀ×C�ð �H˜Q‘KÕ áCñ !Ú#ùs   ƒAAr
   Fr   T)r�  rq   rP  Úlocal_remote_pairsrV  rZ  rR   r¦   rÔ  r+   Útuple_Ú
query_info)rs   r²   r¨  Úfk_colsr§  r©  r´  s   `     @r=   r®  Ú"SelectInLoader._init_for_omit_join·  sÁ   ù€ ÜØ× Ñ ×0Ñ0×CÑCó
ˆð 	�‰õ 
ä˜(”^ó
ô 	
ð &*§[¡[×%<Ò%<ó
Ú%<˜cÀxÁ‹MˆH�SŒMÑ%<ñ
ð 	
ˆô ˆw‹<˜!ÓÜ—j’j 'Ð*ˆGØ‰Hà˜a‘jˆGØˆHà�‰˜u e¨W¸xÈÓNÐNùò
s   Á)	CÁ6	Cc                ó*  • U R                   R                  n[        U5      S:”  a  [        R                  " U6 nSnOUS   nSnU R
                  R                  S5      nU Vs/ s H  oTR                  U   PM     nnU R                  SSX!X65      $ s  snf )Nr
   Fr   Tr  )	ra   r¦   rÔ  r+   r·  rq   rÝ   rB  r¸  )rs   r¨  r§  r©  r.  r¡  Úlookup_colss          r=   r¬  Ú&SelectInLoader._init_for_omit_join_m2oÍ  s’   € Ø—+‘+×)Ñ)ˆÜˆw‹<˜!ÓÜ—j’j 'Ð*ˆGØ‰Hà˜a‘jˆGØˆHà×)Ñ)×7Ñ7Ð8MÓNˆ
ÙAHÓIÂ¸2×2Ñ2°2Ô6ÁˆÐIà�‰Ø�%˜¨8ó
ð 	
ùò Js   Á"Bc                óh  • [        U R                  R                  5      U l        [	        U R                  5      nU R                  R
                   Vs/ s H  o!R                  U5      PM     nn[        U5      S:”  a  [        R                  " U6 nSnOUS   nSnU R                  SSXCUS 5      $ s  snf )Nr
   Fr   T)r&   rR   r]   r¡  r)   r¦   Ú_adapt_elementrÔ  r+   r·  r¸  )rs   Úpa_inspr²   r¨  r§  r©  s         r=   r­  ÚSelectInLoader._init_for_joinÝ  s¤   € Ü)¨$¯+©+×*<Ñ*<Ó=ˆÔÜ˜$×,Ñ,Ó-ˆà37·;±;×3JÒ3Jó
Ú3J¨C×"Ñ" 3Ö'Ñ3Jð 	ð 
ô ˆw‹<˜!ÓÜ—j’j 'Ð*ˆGØ‰Hà˜a‘jˆGØˆHØ�‰˜u d¨G¸hÈÓMÐMùò
s   ÁB/c                óX   • U R                   R                  S5      R                  U5        g r  r  rË   s     r=   r«   Ú#SelectInLoader.init_class_attributeë  r  r@   c	                óä  • UR                   (       a  U R                  UUUUUUUU5      $ U R                  XX@R                  S9u  n	n
nnU
(       d  g UR                  R
                  R                  (       d  g U R                  R                  U R                     R                  R                  (       d  [        R                  " SU -  5      e[        U5      S:X  a2  [        R                   " UR"                  U R                  5      (       d  g OW[        R                   " US   U R                  5      (       d.  U R                  R%                  US   R&                  5      (       d  g U	nX0R(                     nUR+                  UR,                  SS 5      nUb  [/        U5      nOU R0                  n[2        R4                  R7                  UUU R                  U R(                  U R8                  UUUU5	        g )Nr  rÔ  r
   rû  rÁ  )rÚ   r$  r  r
  ry   rç   r  rR   rZ   r8   rØ  rÙ  r  r  rÔ  r6   rÚ  r<  r:  ra   rq   rY   r   r)   r  r   r  r!  r"  )rs   r†   rz   r{   r|   ra   r‡   r}   rˆ   rØ  r#  r˜  rú  Úselectin_pathr  rÎ  r…  s                    r=   r‰   Ú#SelectInLoader.create_row_processorð  sÍ  € ð × × Ø×;Ñ;ØØØØØØØØó	ð 	ð  ×%Ñ%Ø˜7¯©ð &ð 
ñ	
ØØØØö
 Øà×$Ñ$×4Ñ4×G×GØà�{‰{×(Ñ(¨¯©Ñ2×7Ñ7×K×KÜ×,Ò,ð@ØBFñGóð ô ˆt‹9˜‹>Ü×'Ò'¨×(@Ñ(@À$Ç+Á+×NÑNØð Oä×%Ò%Ø�‰H�d—k‘k÷
ñ 
à—+‘+—/‘/ $ r¡(§/¡/×2Ñ2ð à&ˆà×/Ñ/Ñ0ˆð 'Ÿ?™?Ø×ÑÐ 7¸ó
Ðð Ñ'Ü&Ð'7Ó8Ñà#Ÿ{™{Ðä×Ñ×*Ñ*ØØØ�K‰KØ× Ñ Ø×ÑØØØØõ
	
r@   c	                óº	  ^ ^^ ^!• U(       a  T R                   U;  a  g T R                  n	U	R                  (       aµ  [        R                  " [
        5      n
/ nT R                  m U H‡  u  mnTR                  m![        U UU!4S jU	R                   5       5      n[        R                  U;   a  T R                  n	  O6S U;  a  X­   R                  TT!U45        Ms  UR                  TT!U45        M‰     U	R                  (       d0  U VVs/ s H!  u  pìUR                   S   XîR                  U4PM#     n
nnU	R                  nU	R                  nU	R                   (       dC  UR"                  (       a2  U Vs/ s H  nUR%                  U5      PM     nnUR%                  U5      n[&        R(                  " S/UQ76 nUR+                  5       nUR+                  5       n[,        R.                  " UU/[0        [2        R4                  SUS.S9nU	R                   (       d  UR7                  U5      nOaUR7                  T R8                  5      R;                  [=        T R8                  T R>                  R                   5      RA                  U5      5      nURC                  URE                  [F        RH                  " S5      5      5      nURJ                  RL                  nUT R>                     nUURN                  L a  URP                  nOSURP                  nURN                  RP                  n[S        UU5       VVs/ s H  u  nnURU                  UU5      PM     nnnU(       a;  URV                  (       a*  U[&        RX                  " UUR[                  U5      5      4-  nUb  UR]                  5       nUR^                  " U6 nURa                  SU05      nURb                  (       a  URe                  S	S
9nT R>                  Rf                  (       a‹  U	R                   (       dX  T R>                  Rf                  nUR"                  (       a!  U Vs/ s H  nUR%                  U5      PM     nnURf                  " U6 nO"U 4S jnURi                  UT R>                  5      nU	R                  (       a  T Rk                  W
WU	UUU5        g T Rm                  W
U	UX5        g s  snnf s  snf s  snnf s  snf )Nc              3  ód   >#   • U  H%  nTR                  TTU[        R                  S 9v •  M'     g7f)rž  N)r|  r   ÚPASSIVE_NO_FETCH)r¼   Úlkra   r  Ú
state_dicts     €€€r=   r¾   Ú0SelectInLoader._load_for_path.<locals>.<genexpr>_  s>   øé € ð &ò ;˜ð ×4Ñ4ØØ"ØÜ *× ;Ñ ;ð	 5õ ò ;ùs   ƒ-0r
   r¡  rÃ  )Úcompile_state_pluginÚplugin_subject)r¤  r¦  rÛ   r¥  Úprimary_keysrª  T)rå  c                ó’   >• U =R                   [        [        R                  " TR                  R
                  5      5      -  sl         g r5   r–  r™  s    €r=   rš  Ú?SelectInLoader._load_for_path.<locals>._setup_outermost_orderby  s3   ø€ Ø#×2Ò2´eÜŸš T×%9Ñ%9×%BÑ%BÓCó7ñ Ö2r@   )7r8   r¢  r¥  r³  r´  rZ  rR   r�  r˜  rª  r   rö   r£  rP   r¨  r§  r¦  r@  r¿  r6   ÚBundlerº  r.   r»  r-   r   r¼  r¿  r¡  r„  r?  rq   r‚  ÚfilterÚin_r+   rf  ry   Úselect_statementÚuser_passed_queryrÅ  ÚzipÚ'_adapt_cached_option_to_uncached_optionrÅ   rÄ  rä  r(  r�  Ú_update_compile_optionsrå  r˜  rR  rœ  Ú_load_via_childÚ_load_via_parent)"rs   r†   r{   r+  r,  r…  r|   rú  r˜  r¸  Ú
our_statesÚnone_statesr/  Úrelated_identr  r¨  r§  r²   Ú
bundle_entÚ
bundle_sqlÚ
entity_sqlrk  rh  rØ  r‘  Úcached_optionsÚuncached_optionsÚorig_optÚuncached_optr—  r\  rš  ra   rË  s"   `             `                 @@r=   r"  ÚSelectInLoader._load_for_pathG  s…  û€ ö ˜Ÿ™¨Ó2Øà×%Ñ%ˆ
à×%×%Ü$×0Ò0´Ó6ˆJØˆKà—[‘[ˆFã$*Ñ ��yØ"ŸZ™Z�
Ü %ö &ð )×:Ò:ó&ó !�ô (×9Ñ9¸]ÓJØ!%×!:Ñ!:�JÙð ˜}Ó,ØÑ-×4Ñ4Ø 
¨IÐ6öð  ×&Ñ&¨¨z¸9Ð'EÖFñ7 %+ð< ×)×)ñ )/ôâ(.Ñ$�Eð —‘˜1‘˜u§j¡j°)Ó<Ù(.ð ñ ð
 ×$Ñ$ˆØ×$Ñ$ˆà×(×(ð  ×0×0áDKóÚDK¸SÐ$×3Ñ3°CÖ8ÁGð ð ð +×9Ñ9¸'ÓB�ä—_’_ TÐ4¨GÒ4ˆ
Ø×2Ñ2Ó4ˆ
à%×8Ñ8Ó:ˆ
Ü×%Ò%Ø$ jÐ1Ü7Ü,×DÑDà(-Ø"2ññ	
ˆð ×(×(ð —‘Ð.Ó/‰Að
 —‘˜d×0Ñ0Ó1×6Ñ6Ü˜×*Ñ*¨D×,@Ñ,@×,DÑ,DÓE×MÑMØ$óóˆAð �H‰H�W—[‘[¤§¢¨~Ó!>Ó?Ó@ˆð ×*Ñ*×;Ñ;ˆ
ð2 ˜d×2Ñ2Ñ3ˆà˜×2Ñ2Ò2Ø$×2Ñ2‰Kà'×5Ñ5ˆNØ&×8Ñ8×FÑFÐô /2Ø"Ð$4ô/ô	ò/Ñ*�H˜lð ×@Ñ@Ø˜\öñ/ð	 ñ ö �w×.×.ØÜ×-Ò-Ø$Ø×4Ñ4°WÓ=óðñ ˆKð Ñ&Ø+×?Ñ?ÓAˆNà�IŠI�{Ð#ˆà×%Ñ% ¸Ð&GÓHˆØ×$×$Ø×#Ñ#°dÐ#Ð;ˆAà×Ñ×(×(Ø×,×,Ø!%×!5Ñ!5×!>Ñ!>�Ø#×4×4ñ %3ó&â$2˜Dð )×7Ñ7¸Ö=Ù$2ð #ð &ð —J’J Ð/‘õð
 ×)Ñ)Ø,¨d×.BÑ.Bó�ð ×%×%Ø× Ñ ØØØØØØ!õð ×!Ñ!Ø˜J¨¨7õùóuùò ùódùò<&s   Ä(SÅ.SÌ+SÐ;Sc           	     ó  • U R                   n[        U5      nU(       Ga  USU R                   n	X€R                  S  nUR                  R	                  USU	 V
s/ s H  n
UR
                  (       a  U
S   OU
PM     sn
0US9R                  5        VVs0 s H  u  p¼X¼_M	     nnnU	 Hs  n
UR                  U
S 5      nX    HV  u  nnnU(       d  U R                  U;   a  M   UR                  U R                  5      R                  UUU(       d  UOU/5        MX     Mu     U(       a  GM  U HL  u  nnnU(       d  U R                  U;   a  M   UR                  U R                  5      R                  UUS 5        MN     g s  sn
f s  snnf )Nr   rÏ  ©rn  r˜  )rD   ÚsortedÚ
_chunksizer  rÑ  r©  re  rY   r8   r)  r*  )rs   rÜ  rÝ  r¸  rk  r†   r˜  rD   Úour_keysÚchunkr8   r  r»  ÚdataÚrelated_objr  r1  r/  s                     r=   rÚ  ÚSelectInLoader._load_via_child  s†  € ð —,‘,ˆô ˜*Ó%ˆßØ˜Q §¡Ð1ˆEØ§¡Ð 1Ð2ˆHð $ŸO™O×3Ñ3Øà&á',ó)â', ð '1×&9×&9˜C šF¸sÒBÙ',ñ)ðð '8ð 4ð 	÷ ‘&“(ð	ôò	‘D�Að ’ñ	ð ñ ó �ð #Ÿh™h s¨DÓ1�Ø/9¬Ñ+�E˜5 )Þ$¨¯©°UÓ):Ù à—N‘N 4§8¡8Ó,×@Ñ@ØØÞ+2™¸¸öó	 0?ñ ÷# ‰hóD (3Ñ#ˆE�5˜)Þ §¡¨UÓ!2Ùð �N‰N˜4Ÿ8™8Ó$×8Ñ8¸ÀÀtÖLò (3ùò5)ùós   Á"E9ÂE>c           
     ó�  • U R                   nU(       a  SOS nU(       GaŸ  USU R                   nXR                  S  nU V	V
VVs/ s H  u  pšp¼UR                  (       a  U	S   OU	PM      nnn
n	n[        R                  " [
        5      n[        R                  " UR                  R                  USU0US9R                  5       S 5       H   u  nnXï   R                  S U 5       5        M"     U HÁ  u  pšp¼U(       d  U R                  U;   a  M  UR                  X—5      nU(       d_  U(       aX  [        U5      S:”  a  [        R                   " SU -  5        U
R#                  U R                  5      R%                  X«US   5        M–  U
R#                  U R                  5      R%                  X«U5        MÃ     U(       a  GMž  g g s  snnn
n	f )	Nr„   r   rÏ  rè  c                ó   • U S   $ r�   r„   r«  s    r=   r>   Ú1SelectInLoader._load_via_parent.<locals>.<lambda>g  s   € ˜!˜Aš$r@   c              3  ó*   #   • U  H	  oS    v •  M     g7f)r
   Nr„   r¯  s     r=   r¾   Ú2SelectInLoader._load_via_parent.<locals>.<genexpr>i  s   é € Ð1ªq¨ !žuªqùr²  r
   rñ  )rD   rê  r©  r³  r´  rZ  r·  r¸  r  rÑ  re  r¹  r8   rY   rÔ  r   rÕ  r)  r*  )rs   rÜ  r¸  rk  r†   r˜  rD   Ú_empty_resultrì  r8   r  rË  r/  rÏ  rí  r  r»  rá  s                     r=   rÛ  ÚSelectInLoader._load_via_parentQ  s�  € ð —,‘,ˆÞ%™¨4ˆçØ˜q 4§?¡?Ð3ˆEØ#§O¡OÐ$5Ð6ˆJñ :?öâ9>Ñ5�C 
ð %×-×-��A’°3Ò6Ù9>ð ó ô
 ×*Ò*¬4Ó0ˆDÜ!×)Ò)Ø—‘×'Ñ'ØØ*¨LÐ9Ø&7ð (ð ÷ ‘&“(Ùö‘��1ð ‘—‘Ñ1©qÓ1Ö1ñó 6;Ñ1�˜JÞ  T§X¡X°Ó%;Ùà!ŸX™X cÓ9�
æ¦:Ü˜:“¨Ó*ÜŸ	š	ð.à04ñ5ôð
 —N‘N 4§8¡8Ó,×@Ñ@Ø¨:°a©=öð —N‘N 4§8¡8Ó,×@Ñ@Ø¨:öñ' 6;÷) ‹jùõs   Á%G 
)r£  r¡  r¢  r
  r   )r‹   rŒ   r�   rŽ   r�   r³  Ú
namedtupler¸  rê  rp   r®  r¬  r­  r«   r‰   r"  rÚ  rÛ  r‘   r’   r“   s   @r=   rŸ  rŸ  €  se   ø† ð€Ið ×'Ò'Øò	
ó
€Jð €Jõ5ò<Oò,
ò Nò'ò
U
ònQòf5M÷n/ð /r@   rŸ  c           	     ó�   ^^• U4S jmU4S jnU4S jn[         R                  " U SUSSSS9  [         R                  " U SUSSSS9  g )Nc           	     ó"  >• UbŠ  UR                   TR                   :X  ap  UR                  [        R                  " U5      5      nU(       aD  X!La@  [        R
                  " S[        R                  " U5      < SU R                  < ST< S3SS9eU$ )Nz	Instance z+ is already associated with an instance of z	 via its z0 attribute, and is only allowed a single parent.Úbbf1)Úcode)	r8   Ú	hasparentr   Úinstance_stater  r  r6   Úinstance_strr]   )r  rl  ÚoldvalueÚ	initiatorrü  r:   s        €r=   Ú	_do_checkÚ*single_parent_validator.<locals>._do_check„  sx   ø€ ØÑ §¡°$·(±(Ó!:Ø!×+Ñ+¬J×,EÒ,EÀeÓ,LÓMˆIÞ˜XÒ2Ü×0Ó0ô  ×,Ò,¨UÖ3°U·\´\Ã4ðIð  ñð ð ˆr@   c                ó   >• T" XS U5      $ r5   r„   )r  rl  r   r  s      €r=   rP   Ú'single_parent_validator.<locals>.append‘  s   ø€ Ù˜ t¨YÓ7Ð7r@   c                ó   >• T" XX#5      $ r5   r„   )r  rl  rÿ  r   r  s       €r=   Úset_Ú%single_parent_validator.<locals>.set_”  s   ø€ Ù˜ xÓ;Ð;r@   rP   T)ÚrawÚretvalrK   rê   )r(   Úlisten)r9   r:   rP   r  r  s    `  @r=   rQ   rQ   ƒ  sE   ù€ õõ8õ<ô 
‡L‚LØˆh˜ D°Àdòô 
‡L‚L��u˜d¨°TÈ$ÓOr@   )NNNNFN)Wr�   Ú
__future__r   r³  r·  Útypingr   r   r   r   r   r	   Ú r   r   rü   r   r   r   r   r   r   r   r   r6   Úbaser   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+   rT  r,   Úsql.selectabler-   r.   Úutil.typingr/   ra   r0   r1   Úsql.elementsr2   rg   ÚColumnPropertyÚstrategy_forrk   Úclass_loggerr•   r¸   rÐ   r  r  r'  r*  ÚMemoizedSlotsÚ
Identifiedr:  rã  r÷  r  r3  rû  rŸ  rQ   r„   r@   r=   Ú<module>r     s¾  ðñ/õ #ã Û Ý Ý Ý Ý Ý  Ý å Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý "Ý "Ý 'Ý Ý &Ý Ý Ý )Ý $Ý *Ý !Ý &Ý +Ý #Ý  Ý "Ý  Ý Ý Ý Ý Ý Ý Ý Ý "Ý Ý ;Ý #Ý !æÝÝ3Ý,ð ØØØØØôN!ðb ×Ñ×'Ñ'°5À5Ð'ÐIô( ó (ó Jð(ðV ×ÑØ×Ñ×'Ñ'°4À%Ð'ÐHôW:�>ó W:ó Ió ðW:ðt ×ÑØ×Ñ×'Ñ'¸Ð'Ð>ôT
˜\ó T
ó ?ó ðT
ðn ×ÑØ×Ñ×'Ñ'°À$Ð'ÐGØ×Ñ×'Ñ'Ø˜d¨dð (ð ð ×Ñ×'Ñ'°4Ð'Ð8ôl
˜>ó l
ó 9óó Hó ðl
÷^8ñ 8ô0"
 ô "
ðJ ×ÑØ×#Ñ#×0Ñ0¸DÐ0ÐAô�nó ó Bó ðð ×ÑØ×#Ñ#×0Ñ0°hÐ0Ð?Ø×#Ñ#×0Ñ0°dÐ0Ð;ô#=Ð)ó #=ó <ó @ó ð#=ðL ×ÑØ×#Ñ#×0Ñ0°dÐ0Ð;Ø×#Ñ#×0Ñ0°hÐ0Ð?Ø×#Ñ#×0Ñ0°gÐ0Ð>Ø×#Ñ#×0Ñ0°nÐ0ÐEØ×#Ñ#×0Ñ0°nÐ0ÐEôkJØ × 2Ñ 2°C·N±NókJó Fó Fó ?ó @ó <ó ðkJ÷\1
ñ 1
ôhIHÐ+ô IHðX ×#Ñ#×0Ñ0°kÐ0ÐBô`�jó `ó Cð`ðF ×ÑØ×#Ñ#×0Ñ0°jÐ0ÐAôL
G�Zó L
Gó Bó ðL
Gð^ ×ÑØ×#Ñ#×0Ñ0°hÐ0Ð?Ø×#Ñ#×0Ñ0°eÐ0Ð<ôrÐ-ó ró =ó @ó ðrðj ×ÑØ×#Ñ#×0Ñ0°jÐ0ÐAô~�Z ×!3Ñ!3ó ~ó Bó ð~óBPr@   