+
    S<ÂjÃ{ ã                   óÂ  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
Ht ^ RIHtHt ^ RIHt ^ RIHtHtHtHtHtHt ^ RIHtHt ^ R	IHtHt ^ R
IHt ^ RI H!t! ^ RI"H#t#H$t$H%t%H&t&H't'H(t(H)t) ^ RI*H+t+H,t, ^ RI-H.t. ^ RI/H0t0H1t1 ^ RI2H3t3 ^ RI4H5t5 ^ RI6H7t7  ! R R]4      t8 ! R R4      t9 ! R R]94      t: ! R R]94      t; ! R R]94      t< ! R R]94      t=R t>R# ) é    N)Úpartial)Úchain)ÚEmptyResultSetÚ
FieldErrorÚFullResultSet)ÚDatabaseErrorÚNotSupportedError)Ú
LOOKUP_SEP)ÚColPairsÚFÚOrderByÚRawSQLÚRefÚValue)Ú	AutoFieldÚ	composite)ÚCastÚRandom)ÚLookup)Úselect_related_descend)ÚCURSORÚGET_ITERATOR_CHUNK_SIZEÚMULTIÚ
NO_RESULTSÚ	ORDER_DIRÚ	ROW_COUNTÚSINGLE)ÚQueryÚget_order_dir)ÚTransactionManagementError)ÚRemovedInDjango70WarningÚdjango_file_prefixes)Úcached_property)Úmake_hashable)Ú_lazy_re_compilec                   ó8   a a€ ] tR t^!t oV 3R ltR tRtVtV ;t# )ÚPositionRefc                ó2   <€ Wn         \        SV `	  W#4       R # ©N)ÚordinalÚsuperÚ__init__)Úselfr*   ÚrefsÚsourceÚ	__class__s   &&&&€Ú]/var/www/html/data_capital/venv/lib/python3.14/site-packages/django/db/models/sql/compiler.pyr,   ÚPositionRef.__init__"   s   ø€ ØŒÜ‰Ñ˜Ö&ó    c                ó0   € \        V P                  4      R3# )N© )Ústrr*   )r-   ÚcompilerÚ
connections   &&&r1   Úas_sqlÚPositionRef.as_sql&   s   € Ü�4—<‘<Ó  "Ð$Ð$r3   )r*   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r,   r9   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r0   Ú__classdict__s   @@r1   r'   r'   !   s   ù‡ € õ'÷%ò %r3   r'   c                   ón  a € ] tR t^*t o ]! R]P                  ]P                  ,          4      tR&R lt	R t
R'R ltR'R ltR tR t]R	 4       tR'R
 ltR tR tR tR tR tR tR tR tR tR(R ltR)R ltR tR*R ltR tR t R+R lt!R t"R t#R t$R t%R  t&RRR]'3R! lt(R" t)]*R]'3R# lt+R$ t,R%t-V t.R# ),ÚSQLCompilerz^(.*)\s(?:ASC|DESC).*c                ó€   € Wn         W n        W0n        W@n        R R /V n        RV n        RV n        RV n        RV n        R# )Ú*N)	Úqueryr8   ÚusingÚelide_emptyÚquote_cacheÚselectÚannotation_col_mapÚ
klass_infoÚ_meta_ordering)r-   rH   r8   rI   rJ   s   &&&&&r1   r,   ÚSQLCompiler.__init__1   sE   € ØŒ
Ø$ŒØŒ
ð 'ÔØ ˜:ˆÔð ˆŒØ"&ˆÔØˆŒØ"ˆÖr3   c           	     ó°   € R V P                   P                   RV P                  P                  P                   RV P                  : RV P
                  : R2	# )Ú<z model=z connection=z using=Ú>)r0   r=   rH   Úmodelr8   rI   ©r-   s   &r1   Ú__repr__ÚSQLCompiler.__repr__C   sU   € à�—‘×+Ñ+Ð,ð -Ø—Z‘Z×%Ñ%×2Ñ2Ð3ð 4ØŸ/™/Ñ,¨G°D·J±J±>ÀðDð	
r3   Fc                óŠ  a € \         ;QJ d3    V 3R  lS P                  P                   4       F  '       d   K   RM(	  RM$! V 3R  lS P                  P                   4       4      '       d   S P                  P                  4        S P	                  VR7      w  S n        S n        S n        \        S P
                  4      S n	        R# )c              3   ód   <"  € T F%  pSP                   P                  V,          ^ 8H  x € K'  	  R# 5i©r   N©rH   Úalias_refcount)Ú.0Úar-   s   & €r1   Ú	<genexpr>Ú*SQLCompiler.setup_query.<locals>.<genexpr>K   s'   øé € ÐOÑ:N°Qˆt�z‰z×(Ñ(¨Õ+¨qÖ0Ó:Nùó   ƒ-0FT©Úwith_col_aliasesN)
ÚallrH   Ú	alias_mapÚget_initial_aliasÚ
get_selectrL   rN   rM   ÚlenÚ	col_count)r-   rc   s   f&r1   Úsetup_queryÚSQLCompiler.setup_queryJ   s�   ø€ ß‹3ÔO¸$¿*¹*×:NÒ:NÓO�3�3Š3ÔO¸$¿*¹*×:NÒ:NÓO×OÒOØ�J‰J×(Ñ(Ô*Ø@DÇÁØ-ð APó A
Ñ=ˆŒ�T”_ dÔ&=ô ˜TŸ[™[Ó)ˆŽr3   c                óˆ  € V P                  VR7       V P                  4       pV P                  P                  P	                  V P                  P
                  RJR7      w  V n        V n        V n        V P                  W P                  4      p\        V4      V n        V P                  V P                  V,           V4      pW2V3# )zÀ
Do any necessary class setup immediately prior to producing SQL. This
is for things that can't necessarily be done in __init__ because we
might not have all the pieces in place at that time.
rb   N)Úmust_group_by)rj   Úget_order_byrH   ÚwhereÚsplit_having_qualifyÚgroup_byÚhavingÚqualifyÚget_extra_selectrL   ÚboolÚhas_extra_selectÚget_group_by)r-   rc   Úorder_byÚextra_selectrq   s   &&   r1   Úpre_sql_setupÚSQLCompiler.pre_sql_setupR   s¬   € ð 	×ÑÐ*:ÐÔ;Ø×$Ñ$Ó&ˆØ04·
±
×0@Ñ0@×0UÑ0UØŸ*™*×-Ñ-°TÐ9ð 1Vó 1
Ñ-ˆŒ
�D”K ¤ð ×,Ñ,¨X·{±{ÓCˆÜ $ \Ó 2ˆÔØ×$Ñ$ T§[¡[°<Õ%?ÀÓJˆØ xÐ/Ð/r3   c                ó–  € V P                   P                  f   . # . p\        4       pV P                   P                  RJd½   V P                   P                   F¢  p\        VR4      '       g   V P                   P	                  V4      p\        V\        4      '       dL   VP                  V9  d9   VP                  VP                  4       VP                  VP                  4       K�  K‘  VP                  V4       K¤  	  / p\        V^R7       F<  w  pw  rXp	V	'       d   WvV&   W”9   d   K  VP                  VP                  4       4       K>  	  V P                  '       g9   V F2  w  pw  r«pV'       d   K  VP                  VP                  4       4       K4  	  V P                  '       d   V P                  P                  4       MRpV F  pVP                  V4       K  	  . p\        4       pV P!                  W=4      pV P"                  P$                  P&                  pV F�  p V P)                  V4      w  r«T'       d#   TP/                  T4      ;pe   \1        T4      RrºMTP3                  Y
T4      w  r«\5        T4      pT
T3T9  g   Kk  TP                  Y«34       TP                  T
T34       K’  	  V#   \*        \,        3 d     Kª  i ; i)zÅ
Return a list of 2-tuples of form (sql, params).

The logic of what exactly the GROUP BY clause contains is hard
to describe in other words than "if it passes the test suite,
then it is correct".
Tr9   ©Ústartr5   )rH   rq   ÚsetÚhasattrÚresolve_refÚ
isinstancer   r.   ÚaddÚappendr/   Ú	enumerateÚextendÚget_group_by_colsrO   rr   Úcollapse_group_byr8   ÚfeaturesÚallows_group_by_select_indexÚcompiler   r   Úgetr6   Úselect_formatr$   )r-   rL   rx   ÚexpressionsÚgroup_by_refsÚexprÚselected_expr_positionsr*   Ú_ÚaliasÚsqlÚparamsÚis_refÚhaving_group_byÚresultÚseenrŠ   ÚpositionÚparams_hashs   &&&                r1   rw   ÚSQLCompiler.get_group_byb   sp  € ðL �:‰:×ÑÒ&ØˆIØˆÜ›ˆØ�:‰:×Ñ dÓ*ð Ÿ
™
×+Ô+�Ü˜t X×.Ò.ØŸ:™:×1Ñ1°$Ó7�DÜ˜d¤C×(Ò(Ø—y‘y¨Ô5Ø%×)Ñ)¨$¯)©)Ô4Ø#×*Ñ*¨4¯;©;Ö7ñ 6ð  ×&Ñ& tÖ,ñ ,ð #%ÐÜ)2°6À×)CÑ%ˆGÑ%�d˜ußØ07¨Ñ-ð Ô%ÙØ×Ñ˜t×5Ñ5Ó7Ö8ñ *Dð ×"×"Ð"Û/7Ñ+�Ñ+�s F÷ ‘vØ×&Ñ& t×'=Ñ'=Ó'?Ö@ñ	 08ð
 >B¿[¿[¸[˜$Ÿ+™+×7Ñ7Ô9ÈbˆÛ#ˆDØ×Ñ˜tÖ$ñ $àˆÜ‹uˆØ×,Ñ,¨[ÓJˆð �O‰O×$Ñ$×AÑAð 	%ó  ˆDðØ"Ÿl™l¨4Ó0‘�÷ -Ø!8×!<Ñ!<¸TÓ!BÐB�XÒOä! (›m¨R‘Và"×0Ñ0°¸FÓC‘�Ü'¨Ó/ˆKØ�[Ð!¨Ö-Ø—‘˜s˜mÔ,Ø—‘˜#˜{Ð+Ö,ñ  ð  ˆøô #¤MÐ2ô Úðús   È!J3Ê3KËKc                ó  € V P                   P                  P                  '       dÐ   V Uu0 uFx  p\        VR 4      '       g   K  VP                  P
                  '       g   K5  V P                   P                  P                  VP                  P                  4      '       g   Kv  VkKz  	  ppV Uu0 uF  q3P                  kK  	  ppV Uu. uF%  pW49   g   W29   g   \        VRR4      V9  g   K#  VNK'  	  ppV# u upi u upi u upi )Útargetr“   N)
r8   r‰   Úallows_group_by_selected_pksr€   rž   Úprimary_keyÚ%allows_group_by_selected_pks_on_modelrT   r“   Úgetattr)r-   rŽ   rr   r�   ÚpksÚaliasess   &&&   r1   rˆ   ÚSQLCompiler.collapse_group_byÉ   sö   € ð �?‰?×#Ñ#×@×@Ð@ñ (ó
á'�Dä˜D (×+ô ð Ÿ™×/Õ/ô	 ð
 Ÿ™×0Ñ0×VÑVØŸ™×)Ñ)÷÷ �Ù'ð ð 
ñ /2Ó2©c d—z”z©cˆGÐ2ñ (óá'�DØ”;Ø”>Ü˜4 ¨$Ó/°wÑ>÷	 �Ù'ð ð ð Ðùò'
ùò 3ùòs)   «C8ÁC8Á"<C8Â#C8Â/C=Ã	 DÃ.Dc                óš   € VR ,           F=  pVR,          '       d   VR,          VR,          ,           VR&   V P                  V4       K?  	  R# )Úrelated_klass_infosÚfrom_parentÚselect_fieldsN)Úget_select_from_parent)ÚclsrN   Úkis   && r1   rª   Ú"SQLCompiler.get_select_from_parenté   sG   € àÐ2×3Ð3ˆBØ�-× Ô Ø&0°Õ&AÀBÀÕDWÕ&W��?Ñ#Ø×&Ñ& rÖ*ó 4r3   c           	     óz  € . pRp/ pV P                   P                  '       d   V P                   P                  '       d   Q hV P                   P                  4       pV P                   P                  '       d   V P	                  V4      pMV P                   P                  p. pRpV P                   P
                  f»   . R V P                   P                  P                  4        4       OR V 4       OV P                   P                  P                  4       Op\        \        \        V P                   P                  4      \        V P                   P                  4      \        V4      ,           4      4      pMÈ. p\        V P                   P
                  P                  4       4       F•  w  p	w  r«\        V\        4      '       d   V P                   P                  V,          pM/\        V\         4      '       d   VP#                  V	4       Wk,          p\        V\$        4      '       d   Rp
VP#                  W«34       K—  	  V'       d   RV P                   P&                  RV/p\        V4       F&  w  pw  r«V
'       d   WÄV
&   VP#                  Wº34       K(  	  V P                   P(                  '       d'   V P+                  W%4      pWÓR&   V P-                  V4       . p^pV Fa  w  pp
 V P/                  V4      w  ppVP1                  V VV4      w  ppV
f   V'       d   R
V 2p
V^,          pVP#                  VVV3V
34       Kc  	  WãV3#   \2         dB    \5        TR\6        4      pT\6        J d   RRpp LdT P/                  \9        T4      4      w  pp Lƒ\:         d!    T P/                  \9        R	4      4      w  pp L¬i ; i)a8  
Return three values:
- a list of 3-tuples of (expression, (sql, params), alias)
- a klass_info structure,
- a dictionary of annotations

The (sql, params) is what the expression will produce, and alias is the
"AS alias" for the column (possibly None).

The klass_info structure contains the following information:
- The base model of the query.
- Which columns for that model are present in the query (by
  position of the select clause).
- related_klass_infos: [f, klass_info] to descent into

The annotations is a dictionary of {'attname': column position} values.
Nc              3   ó<   "  € T F  w  rV\        V!  3x € K  	  R # 5ir)   )r   )r]   r“   Úargss   &  r1   r_   Ú)SQLCompiler.get_select.<locals>.<genexpr>  s"   é € ð á'F™˜ð œF D™MÕ*Û'Fùs   ‚c              3   ó*   "  € T F	  pR V3x € K  	  R # 5ir)   r5   )r]   Úcols   & r1   r_   r±     s   é € Ð.© #�4˜•+«ùs   ‚rT   r©   r§   Úempty_result_set_valueÚ0Tr³   r5   )rH   rL   Údefault_colsÚget_select_maskÚget_default_columnsÚselectedry   ÚitemsÚannotation_selectÚlistÚrangerh   r…   r‚   r6   ÚannotationsÚintr„   r   rT   Úselect_relatedÚget_related_selectionsrª   r‹   r�   r   r¢   ÚNotImplementedr   r   )r-   rc   rL   rN   r¾   Úselect_maskÚcolsr¹   r©   Úindexr“   Ú
expressionÚ
select_idxr§   ÚretÚcol_idxr³   r”   r•   r´   s   &&                  r1   rg   ÚSQLCompiler.get_selectð   sH  € ð$ ˆØˆ
ØˆØ—J‘J×%×%Ð%¨$¯*©*×*A×*AÐ*AÐBÐBØ—j‘j×0Ñ0Ó2ˆØ�:‰:×"×"Ð"Ø×+Ñ+¨KÓ8‰Dð —:‘:×$Ñ$ˆDØˆØˆØ�:‰:×ÑÒ&ðñà'+§z¡z×'>Ñ'>×'DÑ'DÔ'Fóðñ
 /©Ó.ðð —‘×-Ñ-×3Ñ3Ó5ðˆHô !ÜÜ˜Ÿ
™
×/Ñ/Ó0Ü˜Ÿ
™
×/Ñ/Ó0´3°t³9Õ<óó‰Mð ˆMÜ.7¸¿
¹
×8KÑ8K×8QÑ8QÓ8SÖ.TÑ*�Ñ*˜ä˜j¬#×.Ò.Ø!%§¡×!7Ñ!7¸
Õ!C‘Jä 
¬C×0Ò0Ø!×(Ñ(¨Ô/Ø!%Õ!1�Jä˜j¬(×3Ò3Ø �EØ—‘ Ð 3Ö4ñ /U÷ Ø! 4§:¡:×#3Ñ#3°_ÀmÐTˆJä/8¸Ö/BÑ+ˆJÑ+˜ßØ%/˜EÑ"Ø�M‰M˜:Ð-Ö.ñ 0Cð
 �:‰:×$×$Ð$Ø"&×"=Ñ"=¸fÓ"RÐØ0CÐ,Ñ-à×'Ñ'¨
Ô3àˆØˆÛ ‰JˆC�ðCØ"Ÿl™l¨3Ó/‘��Vð "×/Ñ/°°c¸6ÓB‘��VØŠ}×!1Ø˜g˜Y˜�Ø˜1•�Ø�J‰J˜˜c 6˜]¨EÐ2Ö3ñ' !ð(  Ð+Ð+øô# "ô NÜ)0ØÐ1´>ó*Ð&ð *¬^Ó;à"% r˜�C™à"&§,¡,¬uÐ5KÓ/LÓ"M‘K�CšÜ ô 8Ø"Ÿl™l¬5°«;Ó7‘�’Vð8ús$   Ë#MÍ*N:Í1N:ÎN:ÎN:Î9N:c           
   #  óæ  "  € V P                   P                  '       d   V P                   P                  pM¯V P                   P                  '       g   V P                   P                  pM|V P                   P                  '       d   V P                   P                  pMIV P                   P	                  4       ;p'       d&   VP
                  '       d   VP
                  pWn        M. pV P                   P                  '       d   \        R ,          w  r4M\        R,          w  r4/ pV'       d³   V P                  ;p'       dŸ   V P                   P                  pV P                   P                  p/ p	\        V^R7       F_  w  p
w  r´p\        W¬V4      pV'       d)   \        V\        4      '       g   V	P!                  W½4      pMTpV'       d   WÈ9   d   TMTW\&   WåV&   Ka  	  V EF
  p\#        VR4      '       Ed´   \        V\$        4      '       d   \'        WÿP(                  4      p\        V\*        4      '       g   VP-                  4       pV P                   P                  '       g!   VP/                  4       pVP1                  4        VP3                  VP4                  4      pV'       gN   \        VP4                  \6        4      '       dÙ   VP3                  VP4                  P8                  4      ;p'       d¬   VP:                  f   VP<                  e'   V P>                  P@                  PB                  '       d   VP/                  4       pVVn        MQV P                   PD                  '       d6   VP/                  4       p\G        VPH                  VPJ                  4      Vn        VVRJ3x € EKÊ  VR8X  d   \+        \M        4       4      R3x € EKë  \O        Wó4      w  ppVR8H  pVP3                  V4      ;p'       d   \+        VVR7      R3x € EK+  V P                   PP                  P3                  V4      ;p'       d   Tp. pM<VPS                  \T        4      vppV P                   PP                  P3                  V4      pV'       d¹   V P                   PD                  '       d1   V P                  '       d   V'       d   \W        R	4      h\7        V4      pV'       d&   V F  pV P                   PY                  VV4      pK!  	  \        V\$        4      '       d   \'        W»P(                  4      p\+        VVR7      R3x € EKY  R
V9   dd   WðP                   P                  9   dJ   VPS                  R
^4      w  pp\+        \        V P[                  V4      : R
V: 2. 4      VR7      R3x € EKÃ  V P                   P\                  '       d­   VV P                   P\                  9   d’   VV P                   P^                  9   dA   \+        \G        V\        V P                   P\                  V,          !  4      VR7      R3x € EKU  \+        \        V P                   P\                  V,          !  VR7      R3x € EK‹  V P                   PD                  '       d0   V P                  '       d   \+        \7        V4      VR7      R3x € EKÖ  V Pa                  VV P                   P	                  4       VR7       Rj  x€L
  EK  	  R#  L5i)ÚASCÚDESCr}   Úresolve_expressionNÚ?F©Ú
descendingTz;Ordering combined queries by transforms is not implemented.Ú.)Údefault_order)1rH   Úextra_order_byÚdefault_orderingrx   Úget_metaÚorderingrO   Ústandard_orderingr   rL   Údistinct_fieldsr»   r…   r'   r‚   r   Ú
setdefaultr€   r   r   Úoutput_fieldr   ÚascÚcopyÚreverse_orderingrŒ   rÆ   r   ÚnameÚnulls_firstÚ
nulls_lastr8   r‰   Ú supports_order_by_nulls_modifierÚ
combinatorr   r.   r/   r   r   r¾   Úsplitr
   ÚNotImplementedErrorÚtry_transformÚ
quote_nameÚextrary   Úfind_ordering_name)r-   r×   ÚmetarÓ   r’   Úselected_exprsrL   rÙ   r»   Úfirst_positionsr*   r�   r“   Úpos_exprÚfirst_pos_exprÚfieldÚ
select_refr³   ÚorderrÑ   ÚrefÚ
transformsrß   Útables   &                       r1   Ú_order_by_pairsÚSQLCompiler._order_by_pairsR  sy  é € Ø�:‰:×$×$Ð$Ø—z‘z×0Ñ0‰HØ—‘×,×,Ð,Ø—z‘z×*Ñ*‰HØ�Z‰Z× × Ð Ø—z‘z×*Ñ*‰HØ—j‘j×)Ñ)Ó+Ð+ˆdÖ+°··°Ø—}‘}ˆHØ"*ÕàˆHØ�:‰:×'×'Ð'Ü(¨Õ/ÑˆM˜1ä(¨Õ0ÑˆMàˆ÷  4§;¡;Ð.˜Ö.Ø"Ÿj™j×8Ñ8ˆOØ $§
¡
× <Ñ <Ðð !ˆOÜ-6°vÀQ×-GÑ)�Ñ)˜$ 5Ü& w°tÓ<�ß"¬:°d¼F×+CÒ+CØ%4×%?Ñ%?ÀÓ%O‘Nà%-�Nßð %*Ô$>™ÀNð #Ñ)ð (6˜tÓ$ñ .Hô ˆEÜ�uÐ2×3Ó3Ü˜e¤U×+Ò+ä  ×(:Ñ(:Ó;�EÜ! %¬×1Ò1Ø!ŸI™I›K�EØ—z‘z×3×3Ð3Ø!ŸJ™J›L�EØ×*Ñ*Ô,Ø+×/Ñ/°×0@Ñ0@ÓA�
ßÜ˜u×/Ñ/´×3Ò3Ø'5×'9Ñ'9¸%×:JÑ:J×:OÑ:OÓ'PÐP˜ÖPð
 ×)Ñ)Ò1°e×6FÑ6FÒ6NØŸ™×1Ñ1×R×RÐRØ %§
¡
£˜Ø+5˜Õ(ð Ÿ™×.×.Ð.Ø %§
¡
£˜Ü+.¨z¯©À
×@QÑ@QÓ+R˜Ô(Ø˜Z¨tÐ3Ð3Ò3ÚØ˜Œ|Üœf›hÓ'¨Ð.Ò.Úä& uÓ<‰JˆC�Ø &™ˆJà+×/Ñ/°Ó4Ð4ˆzÖ4ô Ø"Ø#-ôð ðò ò à—z‘z×-Ñ-×1Ñ1°#Ó6Ð6ˆtÖ6Ø�Ø‘
à#&§9¡9¬ZÓ#8Ð ��jØ—z‘z×-Ñ-×1Ñ1°#Ó6�ßØ—:‘:×(×(Ð(¨T¯[¯[¨[ß!Ü1ð+óð ô ˜S›6�DßÛ *˜Ø#Ÿz™z×7Ñ7¸¸dÓCšñ !+ä˜d¤E×*Ò*ä ×&7Ñ&7Ó8�DÜ˜d¨zÔ:¸EÐAÒAÚà�eŒ| ¯©×)BÑ)BÔ Bð !ŸY™Y s¨AÓ.‘
��säÜ¨$¯/©/¸%Ö*@Â#ÐFÈÓKØ#-ôð ðò ò à�z‰z××Ð C¨4¯:©:×+;Ñ+;Ô$;Ø˜$Ÿ*™*×1Ñ1Ô1äÜ ¤V¨T¯Z©Z×-=Ñ-=¸cÕ-BÑ%CÓDØ'1ôð ðõ ô  ¤¨¯
©
×(8Ñ(8¸Õ(=Ñ >È:ÔVØðõ ð
 —:‘:×(×(Ð(¨T¯[¯[¨[ô "¤! C£&°ZÔ@À%ÐGÕGð  $×6Ñ6ØØŸ
™
×+Ñ+Ó-Ø&3ð  7ó  ÷ ó óY ñXùs    ‚A[1Á2[1Â8[1Â>[1Ã0[1Ä([1Ä*[1Ä>B	[1ÇB[1É"A[1Ê%A[1Ë2A[1Ì43[1Í(C[1Ð6A[1Ñ?[1Ò[1Ò-[1Ò5[1ÓC)[1Ö=C[1Ú[1ÚA[1Û#[/Û$[1c                óÜ  € . p\        4       pV P                  4        EFJ  w  r4VP                  V P                  RRR7      pV'       Eg«   V P                  P                  '       EdŽ   V P
                  '       Ed{   VP                  pVP                  pV P
                   F¦  w  r‰p
Wh8X  g   K  V P                  P                  '       dC   W P                  P                  9   d)   \        V\        4      '       d   W§P                  8X  g   Kl  TP                  \        V
'       d   T
MVP                  P                  V4      .4        M®	  \!        V P                  P
                  4      ^,           pRV 2p
V P                  P"                   F1  pVP                  '       d   \%        R4      hVP'                  Wz4       K3  	  V P                  P)                  WZ4       VP                  \        W¦4      .4       V P+                  V4      w  rÞV P,                  P/                  V4      ^,          p\1        V4      pVV3V9   d   EK#  VP3                  VV34       VP5                  W]Wä334       EKM  	  V# )zÿ
Return a list of 2-tuples of the form (expr, (sql, params, is_ref)) for
the ORDER BY clause.

The order_by clause can alter the select clause (for example it can add
aliases to clauses that do not yet have one, or it can add totally new
select clauses).
TN)Úallow_joinsÚreuseÚ__orderbycolz:ORDER BY term does not match any column in the result set.)r   rõ   rÎ   rH   rã   rL   rÆ   Úhas_select_fieldsr»   r‚   r   rß   Úset_source_expressionsr   rž   Úcolumnrh   Úcombined_queriesr   Úadd_annotationÚadd_select_colr‹   Úordering_partsÚsearchr$   rƒ   r„   )r-   r˜   r™   r�   r–   ÚresolvedÚsrcÚexpr_srcÚsel_exprr’   Ú	col_aliasÚorder_by_idxÚqr”   r•   Úwithout_orderingr›   s   &                r1   rn   ÚSQLCompiler.get_order_byò  s  € ð ˆÜ‹uˆØ ×0Ñ0×2‰LˆDØ×.Ñ.¨t¯z©zÀtÐSWÐ.ÓXˆHß�6˜dŸj™j×3×3Ñ3¸¿¿¹Ø×)Ñ)�ØŸ?™?�Ø.2¯k¬kÑ*�H Ø–ð !ŸJ™J×8×8Ð8Ø )¯Z©Z×-IÑ-IÔ Iä *¨8´Q× 7Ò 7¸IÏÉÔ<Vñ %Ø ×7Ñ7Ü ¯i¡¸S¿Z¹Z×=NÑ=NÐPSÓTÐUôñ ñ /:ô& $' t§z¡z×'8Ñ'8Ó#9¸AÕ#=�LØ".¨|¨nÐ =�IØ!ŸZ™Z×8Ô8˜ð ×.×.Ð.Ü"/ð!2ó#ð ð ×(Ñ(¨Ö=ñ 9ð —J‘J×-Ñ-¨hÔBØ×3Ñ3´S¸Ó5HÐ4IÔJØŸ,™, xÓ0‰KˆCð
  $×2Ñ2×9Ñ9¸#Ó>¸qÕAÐÜ'¨Ó/ˆKØ  +Ð.°$Ô6ÚØ�H‰HÐ&¨Ð4Ô5Ø�M‰M˜8¨6Ð%:Ð;×<ñ_ 3ð` ˆr3   c                óf  € . pV P                   P                  '       dŽ   V P                   P                  '       gr   V Uu. uF  qD^,          NK  	  ppV FT  w  pw  rxp	V P                  P	                  V4      ^,          p
V	'       d   K5  W¨3V9  g   K?  VP                  WjV3R34       KV  	  V# u upi ©é   N)rH   ÚdistinctrÙ   r  r  r„   )r-   rx   rL   ry   ÚtÚ
select_sqlr�   r”   r•   r–   r
  s   &&&        r1   rt   ÚSQLCompiler.get_extra_select/  s£   € ØˆØ�:‰:××Ð t§z¡z×'A×'AÐ'AÙ(.Ó/© 1˜AŸ$˜$©ˆJÐ/Û/7Ñ+�Ñ+�s FØ#'×#6Ñ#6×#=Ñ#=¸cÓ#BÀ1Õ#EÐ ß‘vÐ#3Ð"<ÀJÖ"NØ ×'Ñ'¨À&Ð/IÈ4Ð(PÖQñ 08ð Ðùò 0s   ¿B.c                ó®   € V P                   P                  V4      ;pe   V# V P                  P                  P	                  V4      pW P                   V&   V# )zN
A wrapper around connection.ops.quote_name that memoizes quoted
name values.
)rK   rŒ   r8   Úopsrç   )r-   rß   Úquoteds   && r1   rç   ÚSQLCompiler.quote_name9  sR   € ð
 ×&Ñ&×*Ñ*¨4Ó0Ð0ˆFÒ=ØˆMØ—‘×$Ñ$×/Ñ/°Ó5ˆØ!'×Ñ˜ÑØˆr3   c                ón   € \         P                  ! R \        \        4       R7       V P	                  V4      # )zOSQLCompiler.quote_name_unless_alias() is deprecated. Use .quote_name() instead.)ÚcategoryÚskip_file_prefixes)ÚwarningsÚwarnr!   r"   rç   )r-   rß   s   &&r1   Úquote_name_unless_aliasÚ#SQLCompiler.quote_name_unless_aliasE  s/   € Ü�Šð-ô .Ü3Ó5õ	
ð �‰˜tÓ$Ð$r3   c                óÐ   € \        VR V P                  P                  ,           R4      pV'       d   V! W P                  4      w  r4W43# VP                  W P                  4      w  r4W43# )Úas_N)r¢   r8   Úvendorr9   )r-   ÚnodeÚvendor_implr”   r•   s   &&   r1   r‹   ÚSQLCompiler.compileP  sZ   € Ü˜d E¨D¯O©O×,BÑ,BÕ$BÀDÓIˆßÙ% d¯O©OÓ<‰KˆCð ˆ{Ðð Ÿ+™+ d¯O©OÓ<‰KˆCØˆ{Ðr3   c                ó¸  a€ V P                   P                  pV P                  P                   Uu. uF4  pVP	                  V P
                  V P                   V P                  4      NK6  	  ppVP                  '       gR   V FK  pVP                  P                  '       d   \        R 4      hVP                  4       '       g   KB  \        R4      h	  . pRpV F$  p VP                  V P                  V4      4       K&  	  V'       g   \        h\        V4      ^8X  dK   VR8X  dD   V P                  P                  '       d(   RVn        VP                  V P                  V4      4       V P                   P                  P                   V,          p	V'       d   VR8X  d
   V	R,          p	RoV P                  P"                  '       g   VP                  '       d   Ro\%        V3R	 lV 4       !  w  r«R
P'                  V	4      P)                  V
4      .p. pV F  pVP+                  V4       K  	  WÍ3# u upi   \         d    TR8X  g   TR8X  d   T'       d   Tp EK‚  h i ; i)z>LIMIT/OFFSET not allowed in subqueries of compound statements.z:ORDER BY not allowed in subqueries of compound statements.NÚunionÚ
differenceFz ALLz{}ú({})c              3   óN   <"  € T F  w  rSP                  V4      V3x € K  	  R # 5ir)   )Úformat)r]   r”   r°   Úbracess   &  €r1   r_   Ú1SQLCompiler.get_combinator_sql.<locals>.<genexpr>…  s!   øé € Ð@¹%©Y¨Sˆv�}‰}˜SÓ! 4Õ(»%ùó   ƒ"%z {} )r8   r‰   rH   rþ   Úget_compilerrI   rJ   Ú%supports_slicing_ordering_in_compoundÚ	is_slicedr   rn   r„   Ú_get_combinator_part_sqlr   rh   r  Úset_operatorsÚsubqueryÚzipr)  Újoinr†   )r-   rã   rd   r‰   rH   Ú	compilersr7   ÚpartsÚempty_compilerÚcombinator_sqlÚ	sql_partsÚ
args_partsr˜   r•   Úpartr*  s   &&&            @r1   Úget_combinator_sqlÚSQLCompiler.get_combinator_sqlX  s  ø€ Ø—?‘?×+Ñ+ˆð Ÿ™×4Ò4ó
á4�ð ×Ñ˜tŸz™z¨4¯?©?¸D×<LÑ<LÖMÙ4ð 	ð 
ð ×=×=Ð=Û%�Ø—>‘>×+×+Ð+Ü'ØXóð ð ×(Ñ(×*Ô*Ü'ØTóð ñ &ð ˆØˆÛ!ˆHðØ—‘˜T×:Ñ:¸8ÓDÖEñ "÷ Ü Ð Ü�‹Z˜1Œ_ ¨wÔ!6¸4¿:¹:×;O×;OÐ;Oð */ˆNÔ&Ø�L‰L˜×6Ñ6°~ÓFÔGØŸ™×,Ñ,×:Ñ:¸:ÕFˆß�: Ô(Ø˜fÕ$ˆNØˆØ�z‰z×"×"Ð" x×'U×'UÐ'UØˆFÜ #Ü@¹%Ó@ñ!
Ñˆ	ð —-‘- Ó/×4Ñ4°YÓ?Ð@ˆØˆÛˆDØ�M‰M˜$Öñ àˆ~Ðùòc
øô& "ô ð  Ô(¨Z¸<Ô-GÏEØ%-�NÛØðús   °:H+Ã H0È0 IÉIÉIc                óº  € V P                   P                  pV P                  P                  pVeS   VP                  P                  f;   VP                  P	                  4       Vn        VP                  P                  V4       VP                  RR7      w  rEVP                  P                  '       di   VP                  '       g   RP                  V4      pWE3# V P                  P                  '       g   VP                  '       g   RP                  V4      pWE3# V P                  P                  '       d$   VP                  '       d   RP                  V4      pWE3# )NTrb   zSELECT * FROM ({})r'  )r8   r‰   rH   r¹   ÚcloneÚ
set_valuesr9   rã   Ú supports_parentheses_in_compoundr)  r2  r.  )r-   r7   r‰   r¹   Úpart_sqlÚ	part_argss   &&    r1   r0  Ú$SQLCompiler._get_combinator_part_sql�  s  € Ø—?‘?×+Ñ+ˆð —:‘:×&Ñ&ˆØÒ H§N¡N×$;Ñ$;Ò$CØ%Ÿ^™^×1Ñ1Ó3ˆHŒNØ�N‰N×%Ñ% hÔ/Ø&Ÿo™o¸t˜oÓDÑˆØ�>‰>×$×$Ð$ð ×<×<Ð<Ø/×6Ñ6°xÓ@�ð Ð"Ð"ð —
‘
×#×#Ð#Ø×E×EÐEà!Ÿ=™=¨Ó2�ð Ð"Ð"ð �Z‰Z× × Ð  X×%S×%SÐ%SØ—}‘} XÓ.ˆHØÐ"Ð"r3   c                ó@  aaaaa€ . pV P                   '       d   VP                  V P                   4       V P                  '       d   VP                  V P                  4       V P                  P	                  4       oR Sn        SP                   P                  V4      Sn         V P                  R R7      ^ ,           UUUu/ uF  w  r#qBVbK
  	  upppo\        SP                  4       4      o\        4       o/ oVVVVV3R lpV! \        V P                  P                  4       4      4       V P                  P                  SP                  4        UUu/ uF  w  r$V\        WB4      bK  	  upp4      V n        . pV P!                  4        Ff  vrsV! VP#                  4       4       TP                  TP                  SP                  4        UUu/ uF  w  r$V\        WB4      bK  	  upp4      4       Kh  	  SP%                  V P&                  V P(                  V P*                  R7      pVP-                  RR R7      w  ršV P/                  V P                  4      w  r¼RV	RV P(                  P0                  P3                  R4      R	V.pS'       d   SP                  4        Uu. uF'  q@P(                  P0                  P3                  V4      NK)  	  ppR
RP5                  V4      R.VORNV P(                  P0                  P3                  R4      Np\        V
4      V,           pV'       dd   . pV F9  pV P/                  V4      w  ppVP                  V4       VP7                  V4       K;  	  VP7                  RRP5                  V4      .4       Wß3# u upppi u uppi u uppi u upi )Trb   c                 óþ  <€ V '       dô   V P                  4       pVS9   d   K!  SP                  V4      ;p'       d   VSV&   KA  \        V\        4      '       d"   V P	                  VP                  4       4       Kx  \        V\        4      '       d5   VP                  S9  d"   V P	                  VP                  4       4       KÀ  KÂ  \        S4      pR V 2pSP                  V4       SP                  W4       VSV&   Kû  R# )ÚqualN)ÚpoprŒ   r‚   r   r†   Úget_source_expressionsr   r.   rh   rƒ   rÿ   )	rŽ   r�   Úselect_aliasÚnum_qual_aliasÚinner_queryÚqual_aliasesÚreplacementsrL   Úselect_aliasess	   &   €€€€€r1   Úcollect_replacementsÚ9SQLCompiler.get_qualify_sql.<locals>.collect_replacements»  sØ   ø€ ßØ"—‘Ó(�Ø˜<Ô'ÙØ%+§Z¡Z°Ó%5Ð5�\Ö5Ø)5�L Ó&Ü ¤f×-Ò-Ø×&Ñ& t×'BÑ'BÓ'DÖEÜ ¤c×*Ò*Ø—y‘y¨Ô6Ø#×*Ñ*¨4×+FÑ+FÓ+HÖIñ 7ô &)¨Ó%6�NØ%)¨.Ð)9Ð#:�LØ ×$Ñ$ \Ô2Ø×.Ñ.¨tÔBØ)5�L Ó&ñ! r3   )r8   rJ   F)Úwith_limitsrc   úSELECT * FROM (Ú)rs   ÚWHEREÚSELECTú, zFROM (Úqualify_maskzORDER BY)ro   r„   rr   rH   r?  r2  r0   rg   r   Úvaluesr¼   rs   ÚleavesÚreplace_expressionsrº   r   rn   rI  r-  rI   r8   rJ   r9   r‹   r  rç   r4  r†   )r-   Úwhere_partsr�   r’   r“   rP  rx   Úorder_by_exprÚinner_query_compilerÚ	inner_sqlÚinner_paramsÚqualify_sqlÚqualify_paramsr˜   rÄ   r•   Úordering_sqlsr×   Úordering_sqlÚordering_paramsrL  rM  rN  rL   rO  s   &                   @@@@@r1   Úget_qualify_sqlÚSQLCompiler.get_qualify_sql§  s=  ü€ ØˆØ�:�:ˆ:Ø×Ñ˜tŸz™zÔ*Ø�;�;ˆ;Ø×Ñ˜tŸ{™{Ô+Ø—j‘j×&Ñ&Ó(ˆØ#ˆÔØ'×-Ñ-×7Ñ7¸ÓDˆÔð /3¯o©oÈt¨oÓ.TÐUVÖ.Wõ
Ù.W™N˜D U�%ŠKÑ.Wó
ˆô ˜VŸ]™]›_Ó-ˆÜ“uˆØˆ÷	6ñ 	6ñ& 	œT $§,¡,×"5Ñ"5Ó"7Ó8Ô9Ø—|‘|×7Ñ7Ø7C×7IÑ7IÔ7KÔLÑ7K©¨ˆT”3�uÓ#Ò#Ñ7KÒLó
ˆŒð ˆØ!%×!2Ñ!2Ö!4ÐˆMÙ  ×!EÑ!EÓ!GÔHØ�O‰OØ×1Ñ1Ø?K×?QÑ?QÔ?SÔTÑ?S±°�Tœ3˜uÓ+Ò+Ñ?SÒTóöñ "5ð  +×7Ñ7Ø�J‰J 4§?¡?À×@PÑ@Pð  8ó  
Ðð #7×"=Ñ"=ð ð "ð #>ó #
Ñˆ	ð '+§l¡l°4·<±<Ó&@Ñ#ˆàØØØ�O‰O×Ñ×*Ñ*¨9Ó5ØØð
ˆ÷ ð HNÇ}Á}ÄÓWÁ¸e—O‘O×'Ñ'×2Ñ2°5Ö9ÁˆDÐWàØ—	‘	˜$“Øðð ð	ð
 ðð —‘×#Ñ#×.Ñ.¨~Ó>ðˆFô �lÓ# nÕ4ˆ÷ ØˆMÛ$�Ø04·±¸XÓ0FÑ-�˜oØ×$Ñ$ \Ô2Ø—‘˜oÖ.ñ %ð �M‰M˜: t§y¡y°Ó'?Ð@ÔAØˆ~Ðùôc
ùó8 Mùó Uùò4 Xs   Ã NÅN
ÇNÊ-Nc                ó.  € V P                   P                  P                  4       p V P                   P                  pT P	                  T;'       g    \        V4      R7      w  rVpRpT;'       d    V P                   P                  p	V P                   P                  pV P                  P                  p
V'       de   \        V
RP                  V4      4      '       g   \        RP                  V4      4      hV P                  W@P                   P                  4      w  r¼EM@V P                  '       d   V P                  4       w  r¼RpEMV P!                  4       w  rÞV P#                  4       w  pp V P$                  e   V P'                  V P$                  4      MR. 3w  pp V P.                  e   V P'                  V P.                  4      MR. 3w  ppR.p. pV P                   P0                  '       d;   V P                  P2                  P5                  VV4      w  ppVV,          pWÎ,          p. pV P6                  V,            F`  w  pw  pppV'       d-   V: RV P                  P2                  P9                  V4      : 2pVP;                  V4       VP=                  V4       Kb  	  VR	P?                  V4      .,          pV'       d   VR
.VO,          pMMV P                  P                  P@                  '       d(   W°P                  P                  P@                  .,          pVP;                  V4       V P                   PB                  '       Ed™   V
PD                  '       Ed†   V P                  PG                  4       '       d   V
PH                  '       d   \K        R4      hV	'       d   V
PL                  '       g   \        R4      hV P                   PN                  pV P                   PP                  pV P                   PR                  pV P                   PT                  pV'       d   V
PV                  '       g   \        R4      hV'       d   V
PX                  '       g   \        R4      hV'       d   V
PZ                  '       g   \        R4      hV'       d   V
P\                  '       g   \        R4      hV P                  P2                  P_                  VVV Pa                  4       VR7      pV'       d$   V
Pb                  '       d   VP=                  V4       V'       d*   VP=                  RV,          4       VP;                  V4       . pV F(  w  p p!VP=                  V 4       VP;                  V!4       K*  	  V'       d}   V'       d   \e        R4      hT;'       g%    V P                  P2                  Pg                  4       pVP=                  RR	P?                  V4      ,          4       V Ph                  '       d   RpV'       de   V'       g4   VP;                  V P                  P2                  Pk                  4       4       VP=                  RV,          4       VP;                  V4       V P                   Pl                  '       dt   VPo                  ^ V P                  P2                  Pp                  ! V P                   Pl                  P                  3/ V P                   Pl                  Pr                  B 4       V'       d‚   . p"V F,  w  pw  p#p$pV"P=                  V#4       VP;                  V$4       K.  	  RR	P?                  V"4      ,          p%V'       d   V
Pt                  '       d   R.VORNV%NpMVP=                  V%4       V	'       d^   VP=                  V P                  P2                  Pw                  V P                   Px                  V P                   Pz                  4      4       V'       d$   V
Pb                  '       g   VP=                  V4       V P                   P|                  '       EdN   V'       EdE   . p&. p'\        V P6                  ^R7       FÏ  w  p(w  p)ppV'       da   V&P=                  V P                  P2                  P9                  R4      : RV P                  P2                  P9                  V4      : 24       Kr  V)P�                  V)P‚                  R/4      p*V*P…                  W P                  4      w  p+p,V&P=                  V+4       V'P;                  V,4       KÑ  	  RR	P?                  V&4      : RRP?                  V4      : R2\‡        V'V,           4      3V P                   P‰                  V4       # RP?                  V4      \‡        V4      3V P                   P‰                  V4       #   \(         d    T P*                  '       d   h R. pp EL0\,         d	    R. pp ELAi ; i  \,         d	    R. pp EL&i ; i  T P                   P‰                  T4       i ; i) z¥
Create the SQL for this query. Return the SQL string and list of
parameters.

If 'with_limits' is False, any limit/offset information is not included
in the query.
rb   Nzsupports_select_{}z-{} is not supported on this database backend.Ú z0 = 1rV  z AS rW  ÚFROMz:select_for_update cannot be used outside of a transaction.zNLIMIT/OFFSET is not supported with select_for_update on this database backend.z1NOWAIT is not supported on this database backend.z6SKIP LOCKED is not supported on this database backend.z8FOR UPDATE OF is not supported on this database backend.z<FOR NO KEY UPDATE is not supported on this database backend.)ÚnowaitÚskip_lockedÚofÚno_keyúWHERE %sz1annotate() + distinct(fields) is not implemented.zGROUP BY %sz	HAVING %szORDER BY %srS  rT  r}   r2  rÒ   úSELECT ú FROM (Ú ú
) subquery)ErH   r\   rÝ   rã   rz   ru   r/  r8   r‰   r¢   r)  r	   r<  Úcombinator_allrs   rf  Úget_distinctÚget_from_clausero   r‹   r   rJ   r   rr   r  r  Údistinct_sqlrL   rç   r†   r„   r4  Úbare_select_suffixÚselect_for_updateÚhas_select_for_updateÚget_autocommitÚsupports_transactionsr    Ú%supports_select_for_update_with_limitÚselect_for_update_nowaitÚselect_for_update_skip_lockedÚselect_for_update_ofÚselect_for_no_key_updateÚhas_select_for_update_nowaitÚ!has_select_for_update_skip_lockedÚhas_select_for_update_ofÚhas_select_for_no_key_updateÚfor_update_sqlÚ"get_select_for_update_of_argumentsÚfor_update_after_frområ   Úforce_no_orderingrO   Úforce_group_byÚexplain_infoÚinsertÚexplain_query_prefixÚoptionsÚ#requires_compound_order_by_subqueryÚlimit_offset_sqlÚlow_markÚ	high_markr2  r…   Úrelabeled_cloner“   r9   ÚtupleÚreset_refcounts)-r-   rR  rc   Úrefcounts_beforerã   ry   rx   rq   Úfor_update_partÚwith_limit_offsetr‰   r˜   r•   rÙ   Údistinct_paramsÚfrom_Úf_paramsro   Úw_paramsrr   Úh_paramsÚdistinct_resultÚout_colsr’   Ús_sqlÚs_paramsr“   rk  rl  rm  rn  ÚgroupingÚg_sqlÚg_paramsr×   Úo_sqlÚo_paramsÚorder_by_sqlÚsub_selectsÚ
sub_paramsrÅ   rL   Úselect_cloneÚ	subselectÚ	subparamss-   &&&                                          r1   r9   ÚSQLCompiler.as_sql  sA  € ð  Ÿ:™:×4Ñ4×9Ñ9Ó;ÐðX	9ØŸ™×.Ñ.ˆJØ/3×/AÑ/AØ!1×!EÐ!E´T¸*Ó5Eð 0Bó 0Ñ,ˆL Hð #ˆOà +× DÐ D°·
±
×0DÑ0DÐØŸ™×.Ñ.ˆJØ—‘×/Ñ/ˆHßÜ˜xÐ)=×)DÑ)DÀZÓ)P×QÒQÜ+ØG×NÑNØ&óóð ð
 "&×!8Ñ!8Ø§
¡
× 9Ñ 9ó"‘�™ð ——�Ø!%×!5Ñ!5Ó!7‘�Ø’à37×3DÑ3DÓ3FÑ0�ð #'×"6Ñ"6Ó"8‘��xð
-à48·J±JÒ4J˜Ÿ™ T§Z¡ZÔ0ÐQSÐUWÐPXñ $�E˜8ð.ð  Ÿ;™;Ò2ð Ÿ™ T§[¡[Ô1à  "˜Xñ %�F˜Hð #˜�Ø�à—:‘:×&×&Ð&Ø7;·±×7JÑ7J×7WÑ7WØ'Ø'ó8Ñ4�O _ð ˜oÕ-�FØÕ-�Fà�Ø37·;±;À×3MÐ3MÑ/�AÑ(˜˜x¨%ßã!Ø ŸO™O×/Ñ/×:Ñ:¸5ÕAð!˜ð —M‘M (Ô+Ø—O‘O EÖ*ñ 4Nð ˜4Ÿ9™9 XÓ.Ð/Õ/�ßØ˜vÐ.¨Ð.Õ.‘FØ—_‘_×-Ñ-×@×@Ð@ØŸ™×7Ñ7×JÑJÐKÕK�FØ—‘˜hÔ'à—:‘:×/×/Ñ/°H×4R×4RÑ4RàŸ™×6Ñ6×8Ò8ð %×:×:Ð:ä8ØXóð ÷
 *Ø (× N× NÐ Nä/ðJóð ð "ŸZ™Z×@Ñ@�FØ"&§*¡*×"JÑ"J�KØŸ™×8Ñ8�BØ!ŸZ™Z×@Ñ@�F÷  h×&K×&KÐ&KÜ/ØOóð ÷ %¨X×-W×-WÐ-WÜ/ØTóð ÷  H×$E×$EÐ$EÜ/ØVóð ÷  ¨×(M×(MÐ(MÜ/ð0óð ð '+§o¡o×&9Ñ&9×&HÑ&HØ%Ø$/Ø×BÑBÓDØ%ð	 'Ió '�O÷ # x×'E×'EÐ'EØ—M‘M /Ô2çØ—M‘M *¨uÕ"4Ô5Ø—M‘M (Ô+à�Û'/‘O�E˜8Ø—O‘O EÔ*Ø—M‘M (Ö+ñ (0÷ ß&Ü1ØOóð ð  (×RÐR¨4¯?©?×+>Ñ+>×+PÑ+PÓ+R�HØ—M‘M -°$·)±)¸HÓ2EÕ"EÔFØ×*×*Ð*Ø#'˜ßß#ØŸ™ d§o¡o×&9Ñ&9×&HÑ&HÓ&JÔKØ—M‘M +°Õ"6Ô7Ø—M‘M (Ô+à�z‰z×&×&Ð&Ø—‘ØØ—O‘O×'Ñ'×<Ò<ØŸ
™
×/Ñ/×6Ñ6ñàŸ*™*×1Ñ1×9Ñ9ñô÷ Ø�Û/7Ñ+�AÑ+˜˜x¨Ø—O‘O EÔ*Ø—M‘M (Ö+ñ 08ð  -¨t¯y©y¸Ó/BÕB�ß (×"N×"NÐ"NØ/ÐL°&ÐL¸#ÐL¸|ÐL‘Fà—M‘M ,Ô/ç Ø—‘Ø—O‘O×'Ñ'×8Ñ8ØŸ
™
×+Ñ+¨T¯Z©Z×-AÑ-Aóô÷  x×'E×'EÐ'EØ—‘˜oÔ.à�z‰z×"×"Ñ"§| |ð !�Ø�
Ü1:¸4¿;¹;Èa×1PÑ-�EÑ-˜F A ußØ#×*Ñ*ð !%§¡× 3Ñ 3× >Ñ >¸zÖ JØ $§¡× 3Ñ 3× >Ñ >¸uÕ Eðöð (.×'=Ñ'=Ø#Ÿ\™\¨:Ð6ó(˜ð 0<×/BÑ/BØ §/¡/ó0Ñ,˜	 9ð $×*Ñ*¨9Ô5Ø"×)Ñ)¨)Ö4ò# 2Qð& —I‘I˜kÖ*Ø—H‘H˜VÖ$ðô ˜ fÕ,Ó-ð.ð �J‰J×&Ñ&Ð'7Õ8ð —8‘8˜FÓ#¤U¨6£]Ð2ð �J‰J×&Ñ&Ð'7Õ8øôq &ô 2Ø×'×'Ð'Øà&-¨r˜8�Eš8Ü$ô -Ø&(¨"˜8�Eš8ð-ûô %ô .Ø')¨2˜H�FšHð.ûðV �J‰J×&Ñ&Ð'7Õ8úsb  ¦)g7 Ág7 Á/A
g7 Â:A5g7 Ä0;g7 Å,0f' Æ0g! Ç g7 Ç.Cg7 Ë2g7 Ë5Ag7 Í
g7 Íg7 Í=g7 Îg7 Î"g7 Î4A*g7 Ðg7 Ð1g7 Ñg7 Ñg7 Ñ)g7 Ñ;g7 Òg7 Ò A	g7 Ó*g7 Ó<g7 ÔA g7 Õ6g7 Õ>g7 ÖAg7 ×0	g7 ×:g7 ØA7g7 Ù:A:g7 Û5Ag7 Ý	g7 Ý"g7 Ý>A$g7 ß#g7 ß5-g7 à#g7 à,D(g7 å0g7 æ'gçgç	g7 çgçgçg7 çgçg7 ç!g4ç0g7 ç3g4ç4g7 ç7hNc                ó–  € . pVf!   V P                   P                  4       ;pf   V# T;'       g    V P                   P                  4       pRV/p\        \        P
                  ! V4      4      pVP                   FË  pVP                  P                  P                  p	W“P                  8X  d   Rp	V'       dA   V	e=   \        VP                  P                  V	P                  P                  4      '       d   K}  V'       d	   W‡9  d   K�  V P                   P                  W9W&4      p
VP                  V
4      pVP                  V4       KÍ  	  V# )a  
Compute the default columns for selecting every field in the base
model. Will sometimes be called to pull in related models (e.g. via
select_related), in which case "opts" and "start_alias" will be given
to provide a starting point for the traversal.

Return a list of strings, quoted appropriately for use in SQL
directly, as well as a set of aliases used in the select statement (if
'as_pairs' is True, return a list of (alias, col_name) pairs instead
of strings as the first component and None as the second component).
N)rH   rÖ   rf   r   r   ÚunnestÚconcrete_fieldsrT   Ú_metaÚconcrete_modelÚ
issubclassÚjoin_parent_modelÚget_colr„   )r-   rÃ   Ústart_aliasÚoptsr¨   r˜   Úseen_modelsÚselect_mask_fieldsrï   rT   r“   rý   s   &&&&&       r1   r¸   ÚSQLCompiler.get_default_columnsê  s  € ð ˆØŠ<ØŸ
™
×+Ñ+Ó-Ð-�Ò6Ø�Ø!×CÐC T§Z¡Z×%AÑ%AÓ%Cˆð ˜[Ð)ˆÜ ¤×!1Ò!1°+Ó!>Ó?Ðà×)Ô)ˆEØ—K‘K×%Ñ%×4Ñ4ˆEð Ÿ
™
Ô"Ø�çØÒ%ÜØ×%Ñ%×4Ñ4°e·k±k×6PÑ6P÷ò ñ ß˜uÔ>ÙØ—J‘J×0Ñ0°¸kÓWˆEØ—]‘] 5Ó)ˆFØ�M‰M˜&Ö!ñ/ *ð0 ˆr3   c                ó<  € . p. pV P                   P                  4       pV P                   P                   Fâ  pVP                  \        4      pV P                  WSR4      w  rgr‰r¦pV P                   P                  WyV
4      w  rxpV FŽ  pW@P                   P                  9   d7   VP                  V P                  P                  P                  V4      4       KS  V P                  V! WÈ4      4      w  rÞVP                  V4       VP                  V4       K�  	  Kä  	  W3# )z®
Return a quoted list of fields to use in DISTINCT ON part of the query.

This method can alter the tables in the query, and thus it must be
called before get_from_clause().
N)rH   rÖ   rÙ   rä   r
   Ú_setup_joinsÚ
trim_joinsr»   r„   r8   r  rç   r‹   )r-   r˜   r•   r·  rß   r6  r’   Útargetsr“   ÚjoinsÚpathÚtransform_functionrž   ÚrÚps   &              r1   ru  ÚSQLCompiler.get_distinct  sò   € ð ˆØˆØ�z‰z×"Ñ"Ó$ˆà—J‘J×.Ô.ˆDØ—J‘JœzÓ*ˆEØDH×DUÑDUØ˜TóEÑAˆA˜ dÐ/Að !%§
¡
× 5Ñ 5°gÀdÓ KÑˆG˜AÛ!�ØŸ:™:×7Ñ7Ô7Ø—M‘M $§/¡/×"5Ñ"5×"@Ñ"@ÀÓ"FÖGàŸ<™<Ñ(:¸6Ó(IÓJ‘D�AØ—M‘M !Ô$Ø—M‘M !Ö$ó "ñ /ð ˆ~Ðr3   c                óR  a a€ \        SV4      w  opVR8H  pSP                  \        4      pS P                  W‚V4      w  p	p
pppppV	P                  '       Ed‡   VP
                  '       Edt   \        V	RR4      VR,          8w  EdZ   SR8w  EdR   \        VRR4      '       Eg>   T;'       g    \        4       p\        ;QJ d    . V 3R lV 4       F  NK  	  5M! V 3R lV 4       4      pWå9   d   \        R4      hVP                  V4       . pVP
                   FÁ  p\        VR	4      '       d?   \        V\        4      '       g)   V'       d   VP                  4       MVP                  4       p\        V\        4      '       d-   VP!                  VP#                  S \         24      R34       K•  VP%                  V3R
 lS P'                  VW#We4       4       4       KÃ  	  V# S P(                  P+                  W«V4      w  r£pV
 Uu. uF  p\        V! VV4      VR7      R3NK  	  up# u upi )zÂ
Return the table alias (the name might be ambiguous, the alias will
not be) and column name for ordering by the given 'name' parameter.
The 'name' is of the form 'field1__field2__...__fieldN'.
rÍ   ÚattnameNÚpkÚhas_transformsFc              3   ót   <"  € T F-  p\        SP                  P                  V,          R R4      x € K/  	  R# 5i)Ú	join_colsN)r¢   rH   re   )r]   Újr-   s   & €r1   r_   Ú1SQLCompiler.find_ordering_name.<locals>.<genexpr>Y  s/   øé € ð ÙMRÈ”˜Ÿ
™
×,Ñ,¨QÕ/°¸d×CÐCËUùs   ƒ58z!Infinite loop caused by ordering.rÎ   c              3   ó^   <"  € T F"  w  rVP                  S \         24      V3x € K$  	  R # 5ir)   )Úprefix_referencesr
   )r]   r�   r–   rß   s   &  €r1   r_   rÌ  k  s7   øé € ð ñ)™˜ð ×+Ñ+¨t¨f´Z°LÐ,AÓBÀFÕKó)ùs   ƒ*-rÐ   éÿÿÿÿ)r   rä   r
   r¼  Úis_relationr×   r¢   r   r”  r   rƒ   r€   r‚   r   ÚdescrÜ   r„   rÎ  r†   ré   rH   r½  )r-   rß   r·  r“   rÓ   Úalready_seenrñ   rÑ   Úpiecesrï   r¾  r¿  rÀ  rÁ  Ú
join_tupleÚresultsÚitemr’   r  s   ff&&&&             r1   ré   ÚSQLCompiler.find_ordering_name7  s  ù€ ô $ D¨-Ó8‰ˆˆeØ˜f‘_ˆ
Ø—‘œJÓ'ˆð ×Ñ˜f¨EÓ2ñ	
ØØØØØØØð ××ÑØ——‘Ü˜˜y¨$Ó/°6¸"µ:Õ=Ø˜•ÜÐ.Ð0@À%×HÓHð (×0Ð0¬3«5ˆLßœô ÙMRóŸ™ô ÙMRóó ˆJð Ô)Ü Ð!DÓEÐEØ×Ñ˜ZÔ(àˆGØŸœ�Ü˜4Ð!5×6Ò6¼zØœ'÷@ò @÷ +5˜4Ÿ9™9œ;¸$¿(¹(»*�DÜ˜d¤G×,Ò,Ø—N‘NØ×/Ñ/°4°&¼¸Ð0EÓFÈÐNôñ Ø—‘ô à(,×(?Ñ(?Ø˜d¨5ô)óö ñ &ð  ˆNØ ŸJ™J×1Ñ1°'À$ÓGÑˆ˜ñ ó
á�ô Ñ'¨¨5Ó1¸jÔIÈ5ÓQÙñ
ð 	
ùò 
s   ÈH$c                ó¨   € T;'       g    V P                   P                  4       pV P                   P                  WV4      w  rEr&rxVR,          pWEW6WrV3# )zü
Helper method for get_order_by() and get_distinct().

get_ordering() and get_distinct() must produce same target columns on
same input, as the prefixes of get_ordering() and get_distinct() must
match. Executing SQL where this is not true is an error.
rÏ  )rH   rf   Úsetup_joins)	r-   rÓ  r·  r“   rï   r¾  r¿  rÀ  rÁ  s	   &&&&     r1   r¼  ÚSQLCompiler._setup_joinsx  sZ   € ð ×7Ð7˜Ÿ™×5Ñ5Ó7ˆØ@DÇ
Á
×@VÑ@VØ˜%óA
Ñ=ˆ˜ Tð �b•	ˆØ˜u¨TÐ9KÐKÐKr3   c                ón  € . p. p\        V P                  P                  P                  4       4       F_  w  r4V P                  P                  V,          '       g   K*  V P                  V4      w  rVVP                  V4       VP                  V4       Ka  	  V P                  P                   F…  pV P                  P                  V4      w  r8W0P                  P                  9  g%   V P                  P                  V,          ^8X  g   K^  VP                  RV P                  V4      ,          4       K‡  	  W3# )a›  
Return a list of strings that are joined together to go after the
"FROM" part of the query, as well as a list any extra parameters that
need to be included. Subclasses, can override this to create a
from-clause via a "select".

This should only be called after any SQL construction methods that
might change the tables that are needed. This means the select columns,
ordering, and distinct must be done first.
z, %s)r”  rH   re   rº   r\   r‹   r„   r†   Úextra_tablesÚtable_aliasrç   )	r-   r˜   r•   r“   Úfrom_clauseÚ
clause_sqlÚclause_paramsr  r’   s	   &        r1   rv  ÚSQLCompiler.get_from_clause‡  sð   € ð ˆØˆô #(¨¯
©
×(<Ñ(<×(BÑ(BÓ(DÖ"EÑˆEØ—:‘:×,Ñ,¨U×3Ô3ÙØ(,¯©°[Ó(AÑ%ˆJØ�M‰M˜*Ô%Ø�M‰M˜-Ö(ñ #Fð —‘×(Ô(ˆAØ—z‘z×-Ñ-¨aÓ0‰HˆEð
 ŸZ™Z×1Ñ1Ô1Ø—:‘:×,Ñ,¨UÕ3°qÖ8à—‘˜f t§¡°uÓ'=Õ=Ö>ñ )ð ˆ~Ðr3   c                ó|  a a€ VV 3R lp. p	V'       g   VS P                   P                  8”  d   V	# S'       g5   S P                   P                  4       oS P                   P                  4       p\	        4       p
VfC   \        S P                   P                  \        4      pV'       d   S P                   P                  pR pSP                   EF-  pV
P                  VP                  4       V'       d„   VP                  VP                  / 4      pVP                  '       gU   V'       g   VP                  V9   d<   \        RVP                  : RRP                  V! 4       4      ;'       g    R: 24      hMRp\        WÇWb4      '       g   KÀ  VP                  V4      ;'       g    / pR	VP                   P"                  R
TRRRVP$                  RVP&                  '       d   VP                   P$                  MR RR/pV	P)                  V4       . pS P                   P+                  VP                  .SV4      w    pp pVR,          pS P-                  VVVP                   P"                  P.                  R7      pV F0  pVP)                  \1        V4      4       VP)                  VR34       K2  	  VVR&   S P3                  VVVP                   P"                  P.                  VV^,           VV4      pV! VV4       EK0  	  V'       Ed1   SP4                   Uu. uFN  pVP6                  P&                  '       g   K!  VP8                  '       d   K5  VVP6                  VP:                  3NKP  	  ppV EF“  w  ppp\        VVVV4      '       g   K  VP                  V4      ;'       g    / pVP=                  4       pV
P                  V4       S P                   P+                  V.SV4      pVP>                  R,          p\A        VSP"                  4      ;'       d    VSP"                  JpR	VR
VRRRVP$                  RVP$                  RV/pV	P)                  V4       . pS P-                  VVVP.                  SP"                  R7      pV F0  pVP)                  \1        V4      4       VP)                  VR34       K2  	  VVR&   VP                  V/ 4      pS P3                  VVVP.                  VV^,           VV4      pV! VV4       EK–  	  R pR p R p!\C        V4       EF®  p"V^8”  d    EM¥V"S P                   PD                  9   g   K+  V
P                  V"4       S P                   P+                  V".SV4      w  p#pp$p pV$P"                  pVR,          p\A        VSP"                  4      ;'       d    VSP"                  JpR	TR
T#RRR\1        V4      ^8:  d   \G        VV#4      MT R\G        V!V"4      RV/pV	P)                  V4       . pVP                  V"V#34      ;'       g    / p%S P-                  V%VVP.                  SP"                  R7      pV F0  pVP)                  \1        V4      4       VP)                  VR34       K2  	  VVR&   VP                  V"/ 4      p&S P3                  VV%VP.                  VV^,           V&VR7      pV! VV4       EK±  	  \	        V4      PI                  V
4      p'V''       dJ   R V' 4       p(\        RRP                  V(4      : RRP                  V! 4       4      ;'       g    R: 24      hV	# u upi )zõ
Fill in the information needed for a select_related query. The current
depth is measured as the number of connections away from the root model
(for example, cur_depth=1 means we are looking at models with direct
connections to the root model).
c                  ó�   <€ R  SP                    4       p R SP                   4       p\        WSP                  P                  4      # )c              3   ó`   "  € T F$  qP                   '       g   K  VP                  x € K&  	  R # 5ir)   )rÐ  rß   ©r]   Úfs   & r1   r_   ÚQSQLCompiler.get_related_selections.<locals>._get_field_choices.<locals>.<genexpr>»  s   é € ÐK©k¨¿]½]œf˜aŸfžf«kùs   ‚.š.c              3   ó’   "  € T F=  pVP                   P                  '       g   K!  VP                   P                  4       x € K?  	  R # 5ir)   )rï   ÚuniqueÚrelated_query_namerå  s   & r1   r_   rç  ¼  s4   é € ð á-�AØ—7‘7—>•>ô -�—‘×*Ñ*×,Ð,Û-ùs
   ‚A¥"A)ÚfieldsÚrelated_objectsr   rH   Ú_filtered_relations)Údirect_choicesÚreverse_choicesr·  r-   s     €€r1   Ú_get_field_choicesÚ>SQLCompiler.get_related_selections.<locals>._get_field_choicesº  sD   ø€ ÙK¨d¯kªkÓKˆNñà×-Ò-óˆOô
 Ø°·±×1OÑ1Oóð r3   Nc                 ó   € WR &   R# )r§   Nr5   )rN   r§   s   &&r1   Úget_related_klass_infosÚCSQLCompiler.get_related_selections.<locals>.get_related_klass_infosÖ  s   € Ø0CÐ,Ó-r3   z/Non-relational field given in select_related: 'z'. Choices are: rW  z(none)FrT   rï   ÚreverseÚlocal_setterÚremote_setterc                 ó   € R # r)   r5   )ÚxÚys   &&r1   Ú<lambda>Ú4SQLCompiler.get_related_selections.<locals>.<lambda>ö  s   € ÑRVr3   r¨   )r¶  r·  r©   T)r¶  r·  r¨   c                 óP   € V'       d   V P                   P                  W!4       R # R # r)   )Úremote_fieldÚset_cached_value)Úfinal_fieldÚobjÚfrom_objs   &&&r1   rö  Ú8SQLCompiler.get_related_selections.<locals>.local_setterH  s   € çØ×,Ñ,×=Ñ=¸hÖLñ r3   c                 ó   € R # r)   r5   )r  r  s   &&r1   Úlocal_setter_noopÚ=SQLCompiler.get_related_selections.<locals>.local_setter_noopM  s   € Ùr3   c                 ó   € \        W V4       R # r)   )Úsetattr)rß   r  r  s   &&&r1   r÷  Ú9SQLCompiler.get_related_selections.<locals>.remote_setterP  s   € Ü˜¨Ö,r3   )r·  Ú
root_aliasÚ	cur_depthÚ	requestedÚ
restrictedc              3   ó4   "  € T F  pR V,          x € K  	  R# 5i)z'%s'Nr5   )r]   Úss   & r1   r_   Ú5SQLCompiler.get_related_selections.<locals>.<genexpr>‡  s   é € Ð!GÑ6F° &¨1§*¢*Ó6Fùó   ‚z/Invalid field name(s) given in select_related: z. Choices are: rÏ  )%rH   Ú	max_depthrÖ   rf   r   r‚   rÀ   Údictrë  rƒ   rß   rŒ   rÐ  r   r4  r   rþ  rT   rÿ  ré  r„   rÙ  r¸   r±  rh   rÁ   rì  rï   Úmany_to_manyÚrelated_modelrê  r¿  r³  r¼   rí  r   r&  ))r-   rL   rÃ   r·  r
  r  r  r  rð  r§   Úfields_foundró  ræ  ÚnextÚrelated_select_maskrN   r©   r’   r¿  r“   Úcolumnsr³   Únext_klass_infosÚoÚrelated_fieldsÚrelated_objectÚrelated_fieldrT   Úrelated_field_nameÚ	join_infor¨   rö  r  r÷  rß   r   Ú	join_optsÚfield_select_maskÚnext_requestedÚfields_not_foundÚinvalid_fieldss)   f&&f&&&&                                 r1   rÁ   Ú"SQLCompiler.get_related_selections©  sÖ  ù€ ö"		ð !Ðß˜i¨$¯*©*×*>Ñ*>Ô>à&Ð&çØ—:‘:×&Ñ&Ó(ˆDØŸ™×5Ñ5Ó7ˆJô “uˆØÒÜ# D§J¡J×$=Ñ$=¼tÓDˆJßØ ŸJ™J×5Ñ5�	ò	Dð —•ˆAØ×Ñ˜QŸV™VÔ$çØ —}‘} Q§V¡V¨RÓ0�Ø—}—}�}÷ ˜qŸv™v¨Ô2Ý(ð !"§¤Ø $§	¡	Ñ*<Ó*>Ó ?× KÐ KÀ8Ñ Kð	óð øð �ä)¨!¸×PÒPÙØ"-§/¡/°!Ó"4×":Ð":¸Ðà˜Ÿ™×-Ñ-Ø˜Ø˜5Ø × 2Ñ 2ØØ78·x·x°x�A—N‘N×3Ò3ÑEVà˜uð	ˆJð  ×&Ñ& zÔ2ØˆMØ#'§:¡:×#9Ñ#9¸1¿6¹6¸(ÀDÈ*Ó#UÑ ˆAˆq�!�U˜A˜qØ˜"•IˆEØ×.Ñ.Ø#°¸Q¿^¹^×=QÑ=Q×=WÑ=Wð /ó ˆGó �Ø×$Ñ$¤S¨£[Ô1Ø—‘˜s D˜kÖ*ñ ð +8ˆJ�Ñ'Ø#×:Ñ:ØØ#Ø—‘×$Ñ$×*Ñ*ØØ˜A•ØØó Ðñ $ JÐ0@×Añk ÷n ˆ:ð ×-Ò-óá-�AØ—7‘7—>•>ô .à*+¯.­.ô .��A—G‘G˜QŸ_™_Ó-Ù-ð ð ô
 9GÑ4� ¨uÜ-Ø"ØØØ÷	ò ñ à&1§o¡o°nÓ&E×&KÐ&KÈÐ#Ø%2×%EÑ%EÓ%GÐ"Ø× Ñ Ð!3Ô4à ŸJ™J×2Ñ2Ø'Ð(¨$°
ó�	ð "Ÿ™¨Õ+�Ü(¨°·
±
Ó;×WÐWÀÈTÏZÉZÐ@W�à˜UØ˜]Ø˜tØ" N×$CÑ$CØ# ]×%CÑ%CØ! ;ð�
ð $×*Ñ*¨:Ô6Ø "�Ø×2Ñ2Ø'Ø %ØŸ™Ø $§
¡
ð	 3ó �ó #�CØ!×(Ñ(¬¨V«Ô5Ø—M‘M 3¨ +Ö.ñ #ð /<�
˜?Ñ+Ø —}‘}Ð%7¸Ó<�Ø#'×#>Ñ#>ØØ'Ø—K‘KØØ •MØØó$Ð ñ (¨
Ð4D×Eña 9GòdMò
ò-ô ˜YŸ�à˜q”=ÚØ˜4Ÿ:™:×9Ñ9Ö9Ø ×$Ñ$ TÔ*Ø=A¿Z¹Z×=SÑ=SØ˜  jó>Ñ:�K  I¨u°a¸ð &ŸO™O�EØ! "�I�Eä" 5¨$¯*©*Ó5×QÐQ¸%ÀtÇzÁzÐ:Qð  ð   Ø Ø! 4Ø&ä" 5›z¨Qœô $ L°+Ô>à!2à'¬°ÀÓ)EØ% {ð"�Jð (×.Ñ.¨zÔ:Ø$&�MØ(3¯©¸¸{Ð8KÓ(L×(RÐ(RÐPRÐ%Ø"×6Ñ6Ø)Ø$)Ø"Ÿ[™[Ø$(§J¡Jð	 7ó �Gó  '˜Ø%×,Ñ,¬S°«[Ô9ØŸ™ s¨D kÖ2ñ  'ð 3@�J˜Ñ/Ø%.§]¡]°4¸Ó%<�NØ'+×'BÑ'BØØ)Ø"Ÿ[™[Ø#(Ø"+¨a¥-Ø"0Ø#-ð (Có (Ð$ñ ,¨JÐ8H×Iñc (ôd  # 9›~×8Ñ8¸ÓFÐßÙ!GÑ6FÓ!G�Ý ð Ÿ	™	 .Ö1ØŸ	™	Ñ"4Ó"6Ó7×CÐC¸8ÑCð	óð ð #Ð"ùòs   Ì\9Ì8\9Í\9c           	     óŽ  a a€ V 3R loV 3R lpVV 3R lpS P                   '       g   . # . p. pS P                  P                   EF=  pS P                   pVR8X  d
   V! V4      pM�VP                  \        4       Fe  p. VP                  R. 4      OS! V4      O5p	V	 F=  p
V
R,          pV
R,          '       d   VP                  pVP                  V8X  g   K:  T
p Ka  	  Rp M	  Vf   VP                  V4       Kµ  V! V4      pVf   KÃ  S P                  P                  P                  '       d+   VP                  S P                  V4      ^ ,          4       EK  VP                  S P                  VP                  4      4       EK@  	  V'       d8   \        R	R
P!                  V4      : RR
P!                  V! 4       4      : R24      hV# )zS
Return a quoted list of arguments for the SELECT FOR UPDATE OF part of
the query.
c              3   óð  <"  € V R ,          P                   P                  pVP                   P                  P                  4        F¦  w  r#VP                   P                  pR TRTRRRV R,           Uu. uFm  pSP
                  V,          ^ ,          P                  P                  V8X  g6   SP
                  V,          ^ ,          P                  P                  V9   g   Kk  VNKo  	  up/x € K¨  	  R# u upi 5i)rT   rï   rõ  Fr©   N)r±  r²  Úparentsrº   Úall_parentsrL   rž   rT   )rN   r²  Úparent_modelÚparent_linkr*  Úselect_indexr-   s   &     €r1   Ú_get_parent_klass_infoÚNSQLCompiler.get_select_for_update_of_arguments.<locals>._get_parent_klass_info˜  sÙ   øé € Ø'¨Õ0×6Ñ6×EÑEˆNØ-;×-AÑ-A×-IÑ-I×-OÑ-OÖ-QÑ)�Ø*×0Ñ0×<Ñ<�à˜\Ø˜[Ø˜uØ#à,6°Ö,Gó&á,G˜Lð !ŸK™K¨Õ5°aÕ8×?Ñ?×EÑEÈÔUØ#Ÿ{™{¨<Õ8¸Õ;×BÑB×HÑHÈKÑW÷ %˜Ù,Gñ&ð	ô ó .Rùò&ùs   ƒA/C6Á2A(C1ÃC1Ã%C6c                ó   <€ V R,          P                   P                  pV R,           FR  pSP                  V,          ^ ,          P                  P                  V8X  g   K8  SP                  V,          ^ ,          u # 	  R# )z°
Find the first selected column from a model. If it doesn't exist,
don't lock a model.

select_fields is filled recursively, so it also contains fields
from the parent models.
rT   r©   N)r±  r²  rL   rž   rT   )rN   r²  r-  r-   s   &  €r1   Ú"_get_first_selected_col_from_modelÚZSQLCompiler.get_select_for_update_of_arguments.<locals>._get_first_selected_col_from_model«  sc   ø€ ð (¨Õ0×6Ñ6×EÑEˆNØ *¨?× ;Ð ;�Ø—;‘;˜|Õ,¨QÕ/×6Ñ6×<Ñ<ÀÖNØŸ;™; |Õ4°QÕ7Ò7ó !<r3   c               3  óÖ  <a"  € \         P                  ! RSP                  3.4      p V '       d¸   V P                  4       w  rVf   . oRx € MLVR,          pVR,          '       d   VP                  p. VOVP
                  No\        P                  ! S4      x € V P                  V3R lS! V4       4       4       V P                  V3R lVP                  R. 4       4       4       K¿  R# 5i)z<Yield all allowed field paths in breadth-first search order.Nr-   rï   rõ  c              3   ó,   <"  € T F	  pSV3x € K  	  R # 5ir)   r5   ©r]   rN   rÀ  s   & €r1   r_   Ú]SQLCompiler.get_select_for_update_of_arguments.<locals>._get_field_choices.<locals>.<genexpr>Æ  s   øé € ð á&H˜
ð ˜:Õ&Û&Hùó   ƒc              3   ó,   <"  € T F	  pSV3x € K  	  R # 5ir)   r5   r5  s   & €r1   r_   r6  Ê  s   øé € ð á&O˜
ð ˜:Õ&Û&Oùr7  r§   )
ÚcollectionsÚdequerN   Úpopleftrþ  rß   r
   r4  r†   rŒ   )ÚqueueÚparent_pathrN   rï   rÀ  r.  r-   s       @€€r1   rð  ÚJSQLCompiler.get_select_for_update_of_arguments.<locals>._get_field_choices¸  sÏ   ùé € ä×%Ò%¨¨d¯o©oÐ'>Ð&?Ó@ˆEßØ*/¯-©-«/Ñ'�ØÒ&Ø�DØ “Là& wÕ/�EØ! )×,Ô,Ø %× 2Ñ 2˜Ø5˜[Ð5¨%¯*©*Ð5�DÜ$Ÿ/š/¨$Ó/Ò/Ø—‘ô á&<¸ZÔ&Hóô ð —‘ô à&0§n¡nÐ5JÈBÔ&Oóö ñ ùs   „+C)°4C)Á%BC)r-   r§   rï   rõ  Nz<Invalid field name(s) given in select_for_update(of=(...)): rW  zI. Only relational fields followed in the query are allowed. Choices are: rÒ   )rN   rH   r€  rä   r
   rŒ   rþ  rß   r„   r8   r‰   Úselect_for_update_of_columnr‹   rç   r“   r   r4  )r-   r1  rð  r˜   Úinvalid_namesrß   rN   r³   r;  Úklass_infosÚrelated_klass_inforï   r.  s   f           @r1   r‡  Ú.SQLCompiler.get_select_for_update_of_arguments’  s�  ù€ õ	õ&	8ö	ð. ��ˆØˆIØˆØˆØ—J‘J×3Õ3ˆDØŸ™ˆJØ�vŒ~Ù8¸ÓD‘à ŸJ™J¤zÖ2�Dð#Ø#Ÿ™Ð(=¸rÓBð#á/°
Ó;ñ#�Kó /:Ð*Ø 2°7Õ ;˜Ø-¨i×8Ô8Ø$)×$6Ñ$6˜EØ Ÿ:™:¨Ö-Ø);˜JÚ!ñ /:ð &*˜
Ùñ 3ð Ò%Ø!×(Ñ(¨Ô.ÙÙ8¸ÓD�ØŒØ—?‘?×+Ñ+×G×GÐGØ—M‘M $§,¡,¨sÓ"3°AÕ"6×7à—M‘M $§/¡/°#·)±)Ó"<×=ñ9 4÷: Ýð
 —I‘I˜mÖ,Ø—I‘IÑ0Ó2Ö3ðóð ð ˆr3   c                óö  € ^ p/ pV Fî  p\        V\        4      '       d^   VP                  4       pV P                  V4      pVP	                  4        F  w  pw  r‰W‰3W2V,           &   K  	  V\        V4      ,          pKv  V'       dh   V P                  P                  P                  V4      p
VP                  V P                  4      pV
'       g	   V'       d   W«,           V3W2&   V^,          pKå  V^,          pKð  	  V# )r   )	r‚   r   rI  Úget_convertersrº   rh   r8   r  Úget_db_converters)r-   rŽ   ÚiÚ
convertersrÆ   rÄ   Úcols_convertersrË  Úconvsr³   Úbackend_convertersÚfield_converterss   &&          r1   rE  ÚSQLCompiler.get_convertersü  sØ   € ØˆØˆ
ã%ˆJÜ˜*¤h×/Ò/Ø!×8Ñ8Ó:�Ø"&×"5Ñ"5°dÓ";�Ø'6×'<Ñ'<Ö'>‘O�A‘|˜Ø).¨�J 1�uÓ%ñ (?à”S˜“_Õ$’ßØ%)§_¡_×%8Ñ%8×%JÑ%JÈ:Ó%VÐ"Ø#-×#?Ñ#?ÀÇÁÓ#PÐ ß%×)9Ø%7Õ%JÈJÐ$W�J‘MØ�Q•’à�Q•’ñ &ð  Ðr3   c              #  óæ   "  € V P                   p\        VP                  4       4      p\        \        V4       F3  pV F&  w  pw  rgWE,          pV F  p	V	! W‡V4      pK  	  W„V&   K(  	  Vx € K5  	  R # 5ir)   )r8   r¼   rº   Úmap)
r-   ÚrowsrH  r8   ÚrowÚposrJ  rÆ   ÚvalueÚ	converters
   &&&       r1   Úapply_convertersÚSQLCompiler.apply_converters  sn   é € Ø—_‘_ˆ
Ü˜*×*Ñ*Ó,Ó-ˆ
Ü”t˜T–?ˆCÛ,6Ñ(�Ñ(�eØ��Û!&�IÙ% e¸ÓD’Eñ "'à �C“ñ	 -7ð
 ŒIó #ùs   ‚A/A1c                ój   € \         ;QJ d    R  V 4       F  '       g   K   R# 	  R# ! R  V 4       4      # )c              3   óB   "  € T F  p\        V\        4      x € K  	  R # 5ir)   )r‚   r   )r]   rÆ   s   & r1   r_   Ú3SQLCompiler.has_composite_fields.<locals>.<genexpr>   s   é € ÐRÁk¸
”:˜j¬(×3Ð3Ãkùs   ‚TF)Úany)r-   rŽ   s   &&r1   Úhas_composite_fieldsÚ SQLCompiler.has_composite_fields  s-   € ÷ ‹sÑRÁkÓR�sŒsÐRŠsÐRˆsÑRÁkÓRÓRÐRr3   c              #  ó(  "  € \        V4       UUu. uF8  w  r4\        V\        4      '       g   K  \        W3\	        V4      ,           4      NK:  	  ppp\        \        V4       F$  pV F  p\        Wg,          4      3Wg&   K  	  Vx € K&  	  R # u uppi 5ir)   )r…   r‚   r   Úslicerh   rO  r¼   r”  )r-   rP  rŽ   rG  rÆ   Úcol_pair_slicesrQ  rR  s   &&&     r1   Úcomposite_fields_to_tuplesÚ&SQLCompiler.composite_fields_to_tuples"  s€   é € ô "+¨;Ô!7ô
á!7‘�Ü˜*¤h×/ô *ŒE�!œ˜Z›Õ(Ö)Ù!7ð 	ñ 
ô ”t˜T–?ˆCÛ&�Ü! #¥(›OÐ-�“ñ 'ð ŒIó	 #ùó
ùs   ‚B‘B°BÁABc                ó¢  € Vf   V P                  \        W4R7      pV P                  ^ V P                    Uu. uF  qU^ ,          NK  	  ppV P	                  V4      p\
        P                  ! V4      pV'       d   V P                  W‡4      pV P                  V4      '       d   V P                  W†4      pV'       d   \        \        V4      pV# u upi )z>Return an iterator over the results from executing this query.)Úchunked_fetchÚ
chunk_size)Úexecute_sqlr   rL   ri   rE  r   Úfrom_iterablerU  r[  r`  rO  r”  )	r-   rÕ  Útuple_expectedrc  rd  r  rë  rH  rP  s	   &&&&&    r1   Úresults_iterÚSQLCompiler.results_iter/  s¼   € ð Š?Ø×&Ñ&Ü ]ð 'ó ˆGð !%§¡¨A°·±Ñ ?Ó@Ñ ?˜1�A—$�$Ñ ?ˆÐ@Ø×(Ñ(¨Ó0ˆ
Ü×"Ò" 7Ó+ˆßØ×(Ñ(¨Ó:ˆDØ×$Ñ$ V×,Ò,Ø×2Ñ2°4Ó@ˆDßÜ”u˜dÓ#ˆDØˆùò As   ·Cc                ó>   € \        V P                  \        4      4      # )zh
Backends (e.g. NoSQL) can override this in order to use optimized
versions of "query has any results."
)ru   re  r   rU   s   &r1   Úhas_resultsÚSQLCompiler.has_resultsF  s   € ô
 �D×$Ñ$¤VÓ,Ó-Ð-r3   c                ór  € T;'       g    \         p V P                  4       w  rEV'       g   \        h T'       d   T P
                  P                  4       pMT P
                  P                  4       p TP                  YE4       T\        8X  d    TP                  TP                  4        # T\        8X  d   T# T\        8X  dK    TP!                  4       pT'       d    T^ T P"                   TP                  4        # TTP                  4        # T\         8X  d   TP                  4        R# \%        TT P
                  P&                  P(                  T P*                  '       d   T P"                  MRT4      p	T'       d'   T P
                  P&                  P,                  '       g   \/        T	4      # T	#   \         d    T\        8X  d   \	        . 4      u #  R# i ; i  \         d*   p TP                  4        h   \         d    TRhi ; iRp?ii ; i  TP                  4        i ; i  TP                  4        i ; i)aÒ  
Run the query against the database and return the result(s). The
return value depends on the value of result_type.

When result_type is:
- MULTI: Retrieves all rows using fetchmany(). Wraps in an iterator for
   chunked reads when supported.
- SINGLE: Retrieves a single row using fetchone().
- ROW_COUNT: Retrieves the number of rows in the result.
- CURSOR: Runs the query, and returns the cursor object. It is the
   caller's responsibility to close the cursor.
N)r   r9   r   r   Úiterr8   Úchunked_cursorÚcursorÚexecuteÚ	ExceptionÚcloser   r   Úrowcountr   r   Úfetchoneri   Úcursor_iterr‰   Úempty_fetchmany_valuerv   Úcan_use_chunked_readsr¼   )
r-   Úresult_typerc  rd  r”   r•   rp  ÚeÚvalr˜   s
   &&&&      r1   re  ÚSQLCompiler.execute_sqlM  sÌ  € ð "×/Ð/¤Zˆð	ØŸ+™+›-‰KˆCßÜ$Ð$ð ÷ Ø—_‘_×3Ñ3Ó5‰Fà—_‘_×+Ñ+Ó-ˆFð	Ø�N‰N˜3Ô'ð œ)Ô#ðØ—‘à—‘•Øœ&Ô àˆMØœ&Ô ðØ—o‘oÓ'�ßØ˜q 4§>¡>Ð2ð —‘•ð ð —‘•Øœ*Ô$Ø�L‰LŒNÙäØØ�O‰O×$Ñ$×:Ñ:Ø"×3×3Ð3ˆD�NŠN¸Øó	
ˆ÷  D§O¡O×$<Ñ$<×$R×$RÐ$Rô
 ˜“<ÐØˆøôi ô 	ØœeÔ#Ü˜B“x’âð		ûô ô 	ð"Ø—‘”ð øô !ô "Ø˜TÐ!ð"þð		ûð —‘•ûð —‘•ús_   ’ F. Á1G ÂH ÃH$ ÃH$ Ã:H$ Æ.!GÇGÇHÇ$G5Ç4HÇ5HÈHÈHÈH!È$H6c           
   #  óœ  "  € \        V P                  4       4      pV P                  P                  P                  pV'       d&   VP                  4       R 8X  d   \        P                  M\        pV FP  pV FG  p\        V\        4      '       g+   RP                  V Uu. uF
  qc! V4      NK  	  up4      x € KC  Vx € KI  	  KR  	  R# u upi 5i)Újsonrr  N)r¼   re  rH   r‹  r)  Úlowerr~  Údumpsr6   r‚   r4  )r-   r˜   Úformat_Úoutput_formatterrQ  rS  Úcs   &      r1   Úexplain_queryÚSQLCompiler.explain_query—  s›   é € Ü�d×&Ñ&Ó(Ó)ˆð —*‘*×)Ñ)×0Ñ0ˆß)0°W·]±]³_ÈÔ5Nœ4Ÿ:š:ÔTWÐÛˆCÛ�Ü! %¬×-Ò-ØŸ(™(ÁÓ#GÁ¸AÐ$4°QÖ$7ÁÑ#GÓHÔHà”Kó	 ó ùò $Hùs   ‚BCÂCÂ.C)rO   rM   ri   r8   rJ   rv   rr   rN   rs   rH   rK   rL   rI   ro   )T)F)TF)NNN)NrÌ   N)NNr  NN)/r;   r<   r=   r>   r%   ÚreÚ	MULTILINEÚDOTALLr  r,   rV   rj   rz   rw   rˆ   Úclassmethodrª   rg   rõ   rn   rt   rç   r  r‹   r<  r0  rf  r9   r¸   ru  ré   r¼  rv  rÁ   r‡  rE  rU  r[  r`  r   rh  rk  r   re  r„  r?   r@   ©rC   s   @r1   rE   rE   *   s  ø‡ € á%Ø Ø
�‰�r—y‘yÕ ó€Nô
#ò$
ô*ô0ò eòNð@ ñ+ó ð+ô`,òD^ò@;òzò	ò	%òò3òj#ò4^ô@a9ôF1òfô4?
òBLò ôDg#òRhòTò,	òSò
ð ØØØ*ôò..ð  ¨uÐAXôH÷T ð  r3   rE   c                   óP   a € ] tR tRt o RtR
tR tR tR tR t	R t
RR ltR	tV tR# )ÚSQLInsertCompileri¥  Nc                óê   € Vf   T. rTMDVe   V! W0V P                   4      w  rEM*\        VR4      '       d   V P                  V4      w  rEMRV.rTV P                   P                  P	                  WE4      pWE3# )aG  
Take a field and a value intended to be saved on that field, and
return placeholder SQL and accompanying params. Check for raw values,
fields with get_placeholder_sql(), and compilable defined in that
order.

When field is None, consider the value raw and use it as the
placeholder, with no corresponding parameters returned.
r9   z%s)r8   r€   r‹   r  Úmodify_insert_params)r-   rï   Úget_placeholder_sqlr{  r”   r•   s   &&&&  r1   Úfield_as_sqlÚSQLInsertCompiler.field_as_sql©  sz   € ð Š=à˜r‘Ø Ò,ñ .¨c¸¿¹ÓI‰KˆC�Ü�S˜(×#Ò#àŸ,™, sÓ+‰KˆC�ð   �ð —‘×$Ñ$×9Ñ9¸#ÓFˆàˆ{Ðr3   c                ó¦  € \        VR4      '       d¥   VP                  V P                  RRR7      pVP                  '       d   \	        RV: RV: R24      hVP
                  '       d   \        RVP                  : R	V: R
24      hVP                  '       d   \        RVP                  : R	V: R
24      hVP                  W P                  R7      # )z„
Prepare a value to be used in a query by resolving it if it is an
expression and otherwise calling the field's get_db_prep_save().
rÎ   FT©rø   Úfor_savezFailed to insert expression "z" on z<. F() expressions can only be used to update, not to insert.ú3Aggregate functions are not allowed in this query (Ú=ú).ú2Window expressions are not allowed in this query (©r8   )r€   rÎ   rH   Úcontains_column_referencesÚ
ValueErrorÚcontains_aggregater   rß   Úcontains_over_clauseÚget_db_prep_saver8   )r-   rï   rS  s   &&&r1   Úprepare_valueÚSQLInsertCompiler.prepare_valueÊ  sÄ   € ô
 �5Ð.×/Ò/Ø×,Ñ,Ø—
‘
¨¸ð -ó ˆEð ×/×/Ð/Ý ãDIË5ðRóð ð ×'×'Ð'Ý à"'§*¤*«eð5óð ð ×)×)Ð)Ý à—z”z£5ð*óð ð ×%Ñ% e¿¹Ð%ÓHÐHr3   c                óŠ   € V P                   P                  '       d   \        W!P                  4      # VP	                  VRR7      # )zŽ
Get the given field's value off the given obj. pre_save() is used for
things like auto_now on DateTimeField. Skip it if this is a raw query.
T)rƒ   )rH   Úrawr¢   rÆ  Úpre_save)r-   rï   r  s   &&&r1   Úpre_save_valÚSQLInsertCompiler.pre_save_valç  s3   € ð
 �:‰:�>�>ˆ>Ü˜3§¡Ó.Ð.Ø�~‰~˜c tˆ~Ó,Ð,r3   c                ó"  a aa€ V'       g   . . 3# S Uu. uF  p\        VRR4      NK  	  upoVVV 3R lV 4       pR V 4       p\        V!  w  rgV UU	U
u. uF  qˆ U	U
u. uF  q™ F  qªNK  	  K  	  up
p	NK  	  pp	pp
Wg3# u upi u up
p	i u up
p	pi )aã  
Take a sequence of N fields and a sequence of M rows of values, and
generate placeholder SQL and parameters for each field and value.
Return a pair containing:
 * a sequence of M rows of N SQL placeholder strings, and
 * a sequence of M rows of corresponding parameter values.

Each placeholder string may contain any number of '%s' interpolation
strings, and each parameter row will contain exactly as many params
as the total number of '%s's in the corresponding placeholder row.
r�  Nc              3   óR   <"  € T F  pV3R  l\        SSV4       4       x € K  	  R# 5i)c              3   óN   <"  € T F  w  rpSP                  WV4      x € K  	  R # 5ir)   )r�  )r]   rï   r�  rS  r-   s   &   €r1   r_   Ú>SQLInsertCompiler.assemble_as_sql.<locals>.<genexpr>.<genexpr>  s1   øé € ð ñ:Ñ5�E°ð ×!Ñ! %¸e×DÐDó:ùr,  N©r3  )r]   rQ  rë  Úget_placeholder_sqlsr-   s   & €€€r1   r_   Ú4SQLInsertCompiler.assemble_as_sql.<locals>.<genexpr>  s6   øé € ð !
ñ "�ôä9<ØÐ0°#ô:÷ð ó "ùs   ƒ$'c              3   ó4   "  € T F  p\        V!  x € K  	  R # 5ir)   rª  )r]   rQ  s   & r1   r_   r¬    s   é € Ð"NÑ8M°¤3¨¦9Ó8Mùr  )r¢   r3  )r-   rë  Ú
value_rowsrï   Úrows_of_fields_as_sqlÚsql_and_param_pair_rowsÚplaceholder_rowsÚ
param_rowsrQ  ÚpsrÃ  r«  s   ff&        @r1   Úassemble_as_sqlÚ!SQLInsertCompiler.assemble_as_sqlð  s°   ú€ ÷ Ø�r�6ˆMñ
 FLó 
ÙEK¸EŒG�EÐ0°$Ö7ÁVñ 
Ðö!
ñ "ó!
Ðñ #OÑ8MÓ"NÐô (+Ð,CÑ'DÑ$Ðñ @JÕJ¹z¸ 3Ô3¡3˜R²¨1’q±‘q¡3Õ3¹zˆ
ÒJàÐ+Ð+ùò1 
ùó, 4ùÔJs   ”A?Á	B
ÁBÁ0B
ÂB
c                ó°  aa€ V P                   oV P                  P                  4       pV P                  P                  P                  V P                  P                  R 7      pV: RS! VP                  4      : 2.p\        V P                  P                  4      ;p'       Edð   ^ RI
Ho V P                  P                  P                  p. p\        V4       EFs  p\        V P                  V4      p\        V P                   V4      p	. p
V P                  P"                   F6  pV	! V4      p\%        VS4      '       g	   V! V4      pV
P'                  V4       K8  	  VP)                  4       '       g   VP'                  V
4       K«  \+        V4      ^8”  dU   \,        ;QJ d    V3R lV
 4       F  '       d   K   RM	  RM! V3R lV
 4       4      '       d   VP/                  V4       EK  V'       d   VP'                  V
4       EK+  V! VP0                  4      pV
 Uu. uF  p\%        VS4      '       d   TMTNK  	  p
pVP'                  V
4       EKv  	  \        \3        V!  4      pVP'                  RRP5                  V3R lV 4       4      ,          4       M|V P                  P"                   Uu. uF'  qðP                  P                  P7                  4       .NK)  	  ppR	.pVP'                  RS! VP8                  P:                  4      ,          4       V P<                  '       * ;'       d!    V P                  P                  P>                  pV PA                  WN4      w  ppV P                  P                  PC                  VV P                  P                  R
 V P                  PD                   4       R V P                  PF                   4       4      pV P<                  '       Edl   V P                  P                  PH                  '       EdE   V P                  P                  PJ                  '       d9   VP'                  V P                  P                  PM                  VV4      4       TpM8VP'                  RRP5                  V^ ,          4      ,          4       V^ ,          .pV'       d   VP'                  V4       V P                  P                  PO                  V P<                  4      w  pV n(        V'       d&   VP'                  V4       VV PP                  .,          pRP5                  V4      \S        \T        PV                  ! V4      4      3.# V'       d�   VP'                  V P                  P                  PM                  VV4      4       V'       d   VP'                  V4       RP5                  V4      \R        ;QJ d    . R V 4       F  NK  	  53.# ! R V 4       4      3.# V'       d   VP'                  V4       \3        VV4       UUu. uF3  w  ppRP5                  . VORRP5                  V4      ,          N4      V3NK5  	  upp# u upi u upi u uppi ))Úon_conflictrr  )ÚDatabaseDefaultc              3   ó<   <"  € T F  p\        VS4      x € K  	  R # 5ir)   )r‚   )r]   rS  r¸  s   & €r1   r_   Ú+SQLInsertCompiler.as_sql.<locals>.<genexpr>=  s   øé € ð +ÙDP¸5”J˜u o×6Ð6ÃLùs   ƒFTz(%s)rW  c              3   óH   <"  € T F  pS! VP                   4      x € K  	  R # 5ir)   ©rý   )r]   ræ  Úqns   & €r1   r_   rº  V  s   øé € Ð,JÁ6¸a©R°·±¯\¨\Ã6ùó   ƒ"Nc              3   ó8   "  € T F  qP                   x € K  	  R # 5ir)   r¼  rå  s   & r1   r_   rº  o  ó   é € Ð8Ñ7˜!�XŽXÓ7ùó   ‚c              3   ó8   "  € T F  qP                   x € K  	  R # 5ir)   r¼  rå  s   & r1   r_   rº  p  rÀ  rÁ  zVALUES (%s)c              3   ó4   "  € T F  q F  q"x € K  	  K  	  R # 5ir)   r5   )r]   r³  rÃ  s   &  r1   r_   rº  Ž  s   é € Ð,P¹°2ÊRÈ¬QÉR©Q»ùr  ),rç   rH   rÖ   r8   r  Úinsert_statementr·  Údb_tabler¼   rë  Údjango.db.models.expressionsr¸  r‰   Ú'supports_default_keyword_in_bulk_insertr   rŸ  r¤  Úobjsr‚   r„   Úhas_db_defaultrh   rd   ÚremoveÚ
db_defaultr3  r4  Úpk_default_valuerÇ  rý   Úreturning_fieldsÚhas_bulk_insertr´  Úon_conflict_suffix_sqlÚupdate_fieldsÚunique_fieldsÚcan_return_columns_from_insertÚ can_return_rows_from_bulk_insertÚbulk_insert_sqlÚreturning_columnsÚreturning_paramsr”  r   rf  )r-   r·  rÄ  r˜   rë  rÇ  Ú
value_colsrï   Úfield_prepareÚfield_pre_saveÚfield_valuesr  rS  Úprepared_db_defaultr®  r’   Úcan_bulkr±  r²  rÏ  r•   Úr_sqlrÃ  Úvalsr¸  r½  s   &                       @@r1   r9   ÚSQLInsertCompiler.as_sql  s$  ù€ Ø�_‰_ˆØ�z‰z×"Ñ"Ó$ˆØŸ?™?×.Ñ.×?Ñ?ØŸ
™
×.Ñ.ð @ó 
Ðó .©r°$·-±-Õ/@ÐAÐBˆä˜$Ÿ*™*×+Ñ+Ó,Ð,ˆ6×,ÝDð —‘×(Ñ(×PÑPð 4ð ˆJÜ˜fŸ�Ü '¨×(:Ñ(:¸EÓ B�Ü!(¨×):Ñ):¸EÓ!B�à!�ØŸ:™:Ÿ?œ?�CÙ*¨3Ó/�EÜ% e¨_×=Ò=Ù -¨eÓ 4˜Ø ×'Ñ'¨Ö.ñ	 +ð ×+Ñ+×-Ò-Ø×%Ñ% lÔ3Ùô �v“; ”?§s£sô +ÙDPó+§s§s¢sô +ÙDPó+÷ (ò (ð —M‘M %Ô(Úç:Ø×%Ñ% lÔ3Úñ '4°E×4DÑ4DÓ&EÐ#ñ ".ó ñ ".˜ô & e¨_×=Ò=ñ ,à"ò#ñ ".ð ð  ð ×!Ñ! ,×/ñU &ôV œc :Ñ.Ó/ˆJØ�M‰M˜& 4§9¡9Ô,JÁ6Ó,JÓ#JÕJÕKð CGÇ*Á*Ç/Â/óÙBQ¸Q—‘×$Ñ$×5Ñ5Ó7Ó8Á/ð ð ð �VˆFØ�M‰M˜&¡2 d§g¡g§n¡nÓ#5Õ5Ô6ð ×%Ñ%Ô%×RÐR¨$¯/©/×*BÑ*B×*RÑ*Rð 	ð (,×';Ñ';¸FÓ'OÑ$Ð˜*à!%§¡×!4Ñ!4×!KÑ!KØØ�J‰J×"Ñ"Ù8˜tŸz™z×7Ò7Ó8Ù8˜tŸz™z×7Ò7Ó8ó	"
Ðð ×!×!Ñ!Ø—‘×(Ñ(×G×GÑGà�‰×'Ñ'×H×HÐHØ—‘Ø—O‘O×'Ñ'×7Ñ7¸Ð@PÓQôð $‘à—‘˜m¨d¯i©iÐ8HÈÕ8KÓ.LÕLÔMØ$ Q�-˜�ß%Ø—‘Ð4Ô5ð ,0¯?©?×+>Ñ+>×+PÑ+PØ×%Ñ%ó,Ñ(ˆE�4Ô(÷ Ø—‘˜eÔ$Ø˜4×0Ñ0Ð1Õ1�Ø—X‘X˜fÓ%¤u¬U×-@Ò-@ÀÓ-HÓ'IÐJÐKÐKçØ�M‰M˜$Ÿ/™/×-Ñ-×=Ñ=¸fÐFVÓWÔXß%Ø—‘Ð4Ô5Ø—X‘X˜fÓ%§u¤uÑ,P¹Ó,P§uÐQÐRÐR uÑ,P¹Ó,PÓ'PÐQÐRÐRç%Ø—‘Ð4Ô5ô  #Ð#3°ZÔ@ôá@‘G�A�tð —‘ÐA˜FÐA M°D·I±I¸a³LÕ$@ÐAÓBÀDÓIÙ@òð ùòM ùò ùóls   ÈYÊ,-YØ9Yc                óB  € V'       dM   \        V P                  P                  4      ^8w  d)   V P                  P                  P
                  '       g   Q hV P                  P                  4       pWn        . pV P                  P                  4       ;_uu_ 4       pV P                  4        F  w  rVVP                  WV4       K  	  V P                  '       g   . uuRRR4       # \        V P                  P                  4      pV P                  P                  P
                  '       d   V^8”  g.   V P                  P                  P                  '       dk   V^8X  dd   V P                  P                  P                  W@P                  4      pV P                   U	u. uF  q™P                  VP                   4      NK  	  pp	M�V'       dz   \#        V^ ,          ;p
\$        4      '       d[   V
P                  VP                   4      .pV P                  P                  P'                  VVP                   V
P(                  4      3.pM. uuRRR4       # RRR4       V P+                  V4      pV'       d   V P-                  XV4      p\/        X4      # u up	i   + '       g   i     LK; ir  )rh   rH   rÈ  r8   r‰   rÓ  rÖ   rÍ  rp  r9   rq  rÒ  r  Úfetch_returned_rowsrÖ  rµ  rÅ  r‚   r   Úlast_insert_idrý   rE  rU  r¼   )r-   rÍ  r·  rÄ   rp  r”   r•   Úobj_lenrP  rï   Úreturning_fieldrH  s   &&          r1   re  ÚSQLInsertCompiler.execute_sql—  s  € çÜ�D—J‘J—O‘OÓ$¨Ô)Ø—O‘O×,Ñ,×M×MÐMð	
ð 
ð
 �z‰z×"Ñ"Ó$ˆØ 0ÔØˆØ�_‰_×#Ñ#×%Ô%¨Ø#Ÿ{™{ž}‘�Ø—‘˜sÖ+ñ  -à×(×(Ð(Ø÷	 &Ò%ô
 ˜$Ÿ*™*Ÿ/™/Ó*ˆGà—‘×(Ñ(×I×IÐIØ˜a”Kà—‘×(Ñ(×G×GÐGÈGÐWXÌLà—‘×*Ñ*×>Ñ>Ø×1Ñ1ó�ð CG×BWÒBWÓXÑBW¸Ÿ™ d§m¡mÖ4ÑBW�ÐX�ß!¤jØ#3°AÕ#6Ð6�¼	÷'ò 'ð (×/Ñ/°·±Ó>Ð?�ð Ÿ™×+Ñ+×:Ñ:Ø"Ø ŸM™MØ+×2Ñ2óðð‘ð ÷A &×%Ò%ðB ×(Ñ(¨Ó.ˆ
ßØ×(Ñ(¨¨zÓ:ˆDÜ�D‹zÐùò+ Y÷ &×%ús9   Â<JÃJÃ"A1JÅAJÆ#J	Æ;
JÇA:JÊ	JÊJ	©rÍ  rÖ  r5   r)   )r;   r<   r=   r>   rÍ  rÖ  r�  rŸ  r¤  r´  r9   re  r?   r@   rŠ  s   @r1   rŒ  rŒ  ¥  s9   ø‡ € ØÐØÐòòBIò:-ò),òVz÷x-ò -r3   rŒ  c                   ó\   a € ] tR tRt o ]R 4       t]R 4       t]R 4       tR t	R t
RtV tR# )	ÚSQLDeleteCompileriÇ  c                ó�   a € S P                   P                  4        \        V 3R  lS P                   P                   4       4      ^8H  # )c              3   ód   <"  € T F%  pSP                   P                  V,          ^ 8„  x € K'  	  R# 5irZ   r[   )r]   r  r-   s   & €r1   r_   Ú1SQLDeleteCompiler.single_alias.<locals>.<genexpr>Ì  s'   øé € ÐRÑ=Q¸�4—:‘:×,Ñ,¨QÕ/°!Ö3Ó=Qùra   )rH   rf   Úsumre   rU   s   fr1   Úsingle_aliasÚSQLDeleteCompiler.single_aliasÈ  s6   ø€ ð 	�
‰
×$Ñ$Ô&ÜÔR¸T¿Z¹Z×=QÒ=QÓRÓRÐVWÑWÐWr3   c                ó(  a a€ \        V\        4      '       d   VP                  S8H  # \        VR 4      '       g   R# \        ;QJ d.    VV 3R lVP                  4        4       F  '       g   K   R# 	  R# ! VV 3R lVP                  4        4       4      # )rI  Fc              3   óH   <"  € T F  pSP                  VS4      x € K  	  R # 5ir)   )Ú_expr_refs_base_model)r]   Úsource_exprÚ
base_modelr«   s   & €€r1   r_   Ú:SQLDeleteCompiler._expr_refs_base_model.<locals>.<genexpr>Ô  s(   øé € ð 
á<�ð ×%Ñ% k°:×>Ð>Û<ùr¾  T)r‚   r   rT   r€   rZ  rI  )r«   r�   ró  s   f&fr1   rñ  Ú'SQLDeleteCompiler._expr_refs_base_modelÎ  s}   ù€ ä�dœE×"Ò"Ø—:‘: Ñ+Ð+Ü�tÐ5×6Ò6Ùß‹sõ 
à#×:Ñ:Ô<ó
�sŒsð 	
Šsð 	
ˆsõ 
à#×:Ñ:Ô<ó
ó 
ð 	
r3   c                ó   a € \         ;QJ di    V 3R  l\        S P                  P                  P	                  4       S P                  P
                  P                  4       4       F  '       g   K   R# 	  R# ! V 3R  l\        S P                  P                  P	                  4       S P                  P
                  P                  4       4       4      # )c              3   óp   <"  € T F+  pSP                  VSP                  P                  4      x € K-  	  R # 5ir)   )rñ  rH   rT   )r]   r�   r-   s   & €r1   r_   ÚESQLDeleteCompiler.contains_self_reference_subquery.<locals>.<genexpr>Û  s6   øé € ð 
ñ�ð ×&Ñ& t¨T¯Z©Z×-=Ñ-=×>Ð>óùs   ƒ36TF)rZ  r   rH   r¾   rY  ro   ÚchildrenrU   s   fr1   Ú contains_self_reference_subqueryÚ2SQLDeleteCompiler.contains_self_reference_subqueryÙ  s˜   ø€ ç‹sô 
äØ—
‘
×&Ñ&×-Ñ-Ó/°·±×1AÑ1A×1JÑ1Jôó
�sŒsð 	
Šsð 	
ˆsô 
äØ—
‘
×&Ñ&×-Ñ-Ó/°·±×1AÑ1A×1JÑ1Jôó
ó 
ð 	
r3   c                óÐ   € R V P                  VP                  4      ,          p V P                  VP                  4      w  r4T RT 2\        T4      3#   \         d    TR3u # i ; i)zDELETE FROM %sz WHERE r5   )rç   Ú
base_tabler‹   ro   r   r”  )r-   rH   Údeletero   r•   s   &&   r1   Ú_as_sqlÚSQLDeleteCompiler._as_sqlâ  sk   € Ø! D§O¡O°E×4DÑ4DÓ$EÕEˆð	Ø ŸL™L¨¯©Ó5‰MˆEð �˜  Ð(¬%°«-Ð7Ð7øô ô 	Ø˜2�:Òð	ús   ¤A ÁA%Á$A%c                ó6  € V P                   '       dT   V P                  P                  P                  '       g   V P                  '       g   V P                  V P                  4      # V P                  P                  4       p\        Vn	        VP                  4        V P                  P                  P                  P                  pVP                  V P                  P                  4       4      .Vn        \        V P                  P                  4      pV P                  P                  P"                  '       g@   VP%                  V P                  R7      P'                  4       w  rE\)        RV,          V4      pVP+                  RV4       V P                  V4      # )úN
Create the SQL for this query. Return the SQL string and list of
parameters.
r™  zSELECT * FROM (%s) subqueryÚpk__in)rí  r8   r‰   Ú"delete_can_self_reference_subqueryrú  rÿ  rH   r?  r   r0   Úclear_select_clauserT   r±  rÇ  rµ  rf   rL   Úupdate_can_self_selectr-  r9   r   Ú
add_filter)r-   ÚinnerqrÇ  Úouterqr”   r•   s   &     r1   r9   ÚSQLDeleteCompiler.as_sqlê  s%  € ð
 ××ÐØ�O‰O×$Ñ$×G×GÐGØ×8×8Ð8à—<‘< §
¡
Ó+Ð+Ø—‘×!Ñ!Ó#ˆÜ ˆÔØ×"Ñ"Ô$Ø�Z‰Z×Ñ×#Ñ#×&Ñ&ˆØŸ™ D§J¡J×$@Ñ$@Ó$BÓCÐDˆŒÜ�t—z‘z×'Ñ'Ó(ˆØ�‰×'Ñ'×>×>Ð>ð !×-Ñ-¸¿¹Ð-ÓI×PÑPÓR‰KˆCÜÐ9¸CÕ?ÀÓHˆFØ×Ñ˜( FÔ+Ø�|‰|˜FÓ#Ð#r3   r5   N)r;   r<   r=   r>   r#   rí  r‰  rñ  rú  rÿ  r9   r?   r@   rŠ  s   @r1   rè  rè  Ç  sP   ø‡ € ØñXó ðXð
 ñ
ó ð
ð ñ
ó ð
ò8÷$ð $r3   rè  c                   óR   a a€ ] tR tRt oRtRtR tV 3R ltR tV 3R lt	Rt
VtV ;t# )	ÚSQLUpdateCompileri  Nc           
     ó>  € V P                  4        V P                  P                  '       g   R# V P                  p. . r2V P                  P                   EF  w  rEp\	        VR4      '       d²   VP                  V P                  RRR7      pVP                  '       d   \        RVP                  : RV: R24      hVP                  '       d   \        RVP                  : RV: R24      h\        V\        4      '       d   \        R	VP                  ,          4      hMb\	        VR
4      '       dQ   VP                  '       d   VP                  V4      pM,\        RV: RV: RVP                  P                   : R24      hVP#                  W`P$                  R7      pV! VP&                  4      p\)        VRR4      ;p e@   V! W`V P$                  4      w  ršVP+                  V RV	 24       VP-                  V
4       EK«  \	        VR4      '       d>   V P/                  V4      w  ršVP+                  V RV	 24       VP-                  V
4       EKú  VP+                  V R24       VP+                  V4       EK"  	  V P                  P0                  pRV! V4      ,          RP3                  V4      .p V P/                  V P                  P4                  4      w  rÚVP+                  RV,          4       V P8                  '       dk   V P$                  P:                  P=                  V P8                  4      w  qàn        V'       d-   VP+                  V4       V
P-                  V P>                  4       RP3                  V4      \A        W:,           4      3#   \6         d    . p
 L­i ; i)r  rÎ   FTr“  r•  r–  r—  r˜  zNComposite primary keys expressions are not allowed in this query (%s=F('pk')).Úprepare_database_savezTried to update field z with a model instance, z. Use a value compatible with rÒ   r™  r�  Nz = r9   z = %szUPDATE %s SETrW  ro  rr  )ri  r5   )!rz   rH   rY  rç   r€   rÎ   rœ  r   rß   r�  r‚   r   rþ  r  Ú	TypeErrorr0   r;   rž  r8   rý   r¢   r„   r†   r‹   rý  r4  ro   r   rÍ  r  rÕ  rÖ  r”  )r-   r½  rY  Úupdate_paramsrï   rT   r{  Úquoted_namer�  r”   r•   rô   r˜   ro   rÝ  s   &              r1   r9   ÚSQLUpdateCompiler.as_sql  s!  € ð
 	×ÑÔØ�z‰z× × Ð ØˆMØ�_‰_ˆØ " B�Ø!%§¡×!2Õ!2ÑˆE˜#Ü�sÐ0×1Ò1Ø×,Ñ,Ø—J‘J¨E¸Dð -ó �ð ×)×)Ð)Ý$à&+§j¤j³#ð7óð ð ×+×+Ð+Ý$à&+§j¤j³#ð7óð ô ˜c¤8×,Ò,Ü$ð6Ø8=¿
¹
õCóð ð -ô
 ˜Ð5×6Ò6Ø×%×%Ð%Ø×3Ñ3°EÓ:‘Cå#ó !£# u§¡×'?Ô'?ðAóð ð
 ×(Ñ(¨¿¹Ð(ÓIˆCá˜UŸ\™\Ó*ˆKä'.¨uÐ6KÈTÓ'RÐRÐ#Øòñ 2°#¸T¿_¹_ÓM‘�Ø—‘  ¨S°°Ð6Ô7Ø×$Ñ$ V×,Ü˜˜h×'Ò'Ø"Ÿl™l¨3Ó/‘�Ø—‘  ¨S°°Ð6Ô7Ø×$Ñ$ V×,à—‘  ¨UÐ3Ô4Ø×$Ñ$ S×)ñY "3ðZ —
‘
×%Ñ%ˆà™b ›iÕ'Ø�I‰I�fÓð
ˆð	.Ø ŸL™L¨¯©×)9Ñ)9Ó:‰MˆEð �M‰M˜* uÕ,Ô-Ø× × Ð ð ,0¯?©?×+>Ñ+>×+PÑ+PØ×%Ñ%ó,Ñ(ˆEÔ(÷ Ø—‘˜eÔ$Ø—‘˜d×3Ñ3Ô4Ø�x‰x˜Ó¤ }Õ'=Ó!>Ð>Ð>øô ô 	ØŠFð	ús   Ê/'N ÎNÎNc                ó  <€ \         SV `  V4      pVRJ pT;'       g    ^ pV P                  P                  4        FE  pVP	                  V P
                  4      P                  V4      pV'       g   K7  V'       g   KA  TpRpKG  	  V# )zë
Execute the specified update. Return the number of rows affected by
the primary update query. The "primary update query" is the first
non-empty query that is executed. Row counts for any subsequent,
related queries are not available.
NF)r+   re  rH   Úget_related_updatesr-  rI   )r-   ry  Ú	row_countÚis_emptyrH   Úaux_row_countr0   s   &&    €r1   re  ÚSQLUpdateCompiler.execute_sqlT  s|   ø€ ô ‘GÑ'¨Ó4ˆ	Ø Ð$ˆØ—N�N ˆ	à—Z‘Z×3Ñ3Ö5ˆEà!×.Ñ.¨t¯z©zÓ:×FÑFÀ{ÓSˆMß‰xŸM™Mð *�	Ø ’ñ 6ð Ðr3   c                ó.  € V P                   P                  4       '       d   \        R4      hV'       d'   V P                  P                  P
                  '       g    V P                  \        4      pR.V,          # Wn        V P                  P                  4       ;_uu_ 4       pV P                  4       w  rEVP                  WE4       V P                  P                  P                  W0P                  4      pRRR4       V P                   P                  4       pV P                   Uu. uF  qˆP!                  VP"                  4      NK  	  p	pV P%                  V	4      p
V
'       d   V P'                  XV
4      p\)        X4      #   + '       g   i     L“; iu upi )z�
Execute the specified update and return rows of the returned columns
associated with the specified returning_field if the backend supports
it.
zEUpdate returning is not implemented for queries with related updates.Nr5   )rH   r  rå   r8   r‰   Úcan_return_rows_from_updatere  r   rÍ  rp  r9   rq  r  rá  rÖ  rÖ   rµ  rÅ  rE  rU  r¼   )r-   rÍ  r  rp  r”   r•   rP  r·  rï   rÄ   rH  s   &&         r1   Úexecute_returning_sqlÚ'SQLUpdateCompiler.execute_returning_sqli  s3  € ð �:‰:×)Ñ)×+Ò+Ü%ØWóð ÷
 !Ø—?‘?×+Ñ+×G×GÐGà×(Ñ(¬Ó3ˆIØ�4˜)Õ#Ð#à 0ÔØ�_‰_×#Ñ#×%Ô%¨ØŸ+™+›-‰KˆCØ�N‰N˜3Ô'Ø—?‘?×&Ñ&×:Ñ:Ø×-Ñ-óˆD÷ &ð �z‰z×"Ñ"Ó$ˆØ:>×:OÒ:OÓPÑ:O°—‘˜dŸm™mÖ,Ñ:OˆÐPØ×(Ñ(¨Ó.ˆ
ßØ×(Ñ(¨¨zÓ:ˆDÜ�D‹zÐ÷ &×%üò Qs   Â!AE?Ä$#FÅ?F	c                óö  <a€ V P                   P                  P                  4       pV P                   P                  4        V P                   P	                  4       pV P                   P
                  '       g
   V^8X  d   R# V P                   P                  \        R7      pRVn        VP                  RR7       / Vn
        . Vn        VP                  4       pVP                  P                  .p. pV P                   P
                   F»  p\        ;QJ d+    R VP!                  V4       4       F  '       d   K   RM 	  RM! R VP!                  V4       4       4      '       d   VP#                  V^ 34       Kp  VP#                  V\%        V4      34       VP#                  VP&                  P                  P                  4       K½  	  VP)                  V4       \*        SV `Y  4        VP.                  pV^8„  ;'       d&    V P0                  P2                  P4                  '       * p	V P                   P7                  4        V P                   P
                  '       g	   V	'       dÞ   . p
\8        P:                  ! \<        4      pVP?                  V P@                  4      PC                  \D        4       Fb  pV Uu. uF  qØ'       d   TMV^ ,          NK  	  ppV
PG                  V4       V F'  w  poW¿,          PG                  V3R lV 4       4       K)  	  Kd  	  V P                   PI                  RV
4       W°P                   n%        MV P                   PI                  RV4       V P                   PM                  V4       R# u upi )	a  
If the update depends on results from other tables, munge the "where"
conditions to match the format required for (portable) SQL updates.

If multiple updates are required, pull out the id values to update at
this point so that they don't change as a result of the progressive
updates.
N)ÚklassFT)Úforcec              3   óL   "  € T F  qP                   P                  x € K  	  R # 5ir)   )Ú
join_fieldr    )r]   rÀ  s   & r1   r_   Ú2SQLUpdateCompiler.pre_sql_setup.<locals>.<genexpr>¡  s   é € ð Ù8X°—‘×+Ö+Ó8Xùs   ‚"$c              3   ó4   <"  € T F  qS,          x € K  	  R # 5ir)   r5   )r]   rÂ  rÅ   s   & €r1   r_   r"  Â  s   øé € Ð.FÁ¸A°¯xªxÃùs   ƒr  )'rH   r\   rÝ   rf   Úcount_active_tablesÚrelated_updatesr   r   rÀ   Úclear_orderingrè   rL   rÖ   rÇ  rß   rd   Úget_path_to_parentr„   rh   r±  Ú
add_fieldsr+   rz   Úis_composite_pkr8   r‰   r  Úclear_wherer9  Údefaultdictr¼   r-  rI   re  r   r†   r  Úrelated_idsr•  )r-   r–  ÚcountrH   rê   rë  Úrelated_ids_indexÚrelatedr)  Úmust_pre_selectÚidentsr,  rP  rQ  r£   ÚparentrÅ   r0   s   &               @€r1   rz   ÚSQLUpdateCompiler.pre_sql_setup‰  s¨  ù€ ð  Ÿ:™:×4Ñ4×9Ñ9Ó;Ðà�
‰
×$Ñ$Ô&Ø—
‘
×.Ñ.Ó0ˆØ�z‰z×)×)Ð)¨e°q¬jÙØ—
‘
× Ñ ¤uÐ Ó-ˆØ$ˆÔØ×Ñ 4ÐÔ(ØˆŒØˆŒØ�~‰~ÓˆØ—'‘'—,‘,�ˆØÐØ—z‘z×1Ô1ˆGß‹sñ Ø8<×8OÑ8OÐPWÔ8Xó�s�sŠsñ Ø8<×8OÑ8OÐPWÔ8Xó÷ ò ð
 "×(Ñ(¨'°1¨Ö6ð
 "×(Ñ(¨'´3°v³;Ð)?Ô@Ø—‘˜gŸm™m×.Ñ.×3Ñ3Ö4ñ 2ð 	×Ñ˜Ô Ü‰ÑÔà×.Ñ.ˆà�A‰I×MÐM˜dŸo™o×6Ñ6×MÑMÔMð 	ð 	�
‰
×ÑÔ Ø�:‰:×%×%Ð%¯ð ˆFÜ%×1Ò1´$Ó7ˆKØ×*Ñ*¨4¯:©:Ó6×BÑBÄ5ÖI�ÙEIÓJÁT¸cžo‘s°3°qµ6Ò9ÁT�ÐJØ—‘˜cÔ"Û%6‘M�F˜EØÕ'×.Ñ.Ô.FÁÓ.FÖFó &7ñ Jð
 �J‰J×!Ñ! (¨FÔ3Ø%0�J‰JÕ"ð �J‰J×!Ñ! (¨EÔ2Ø�
‰
×"Ñ"Ð#3Ö4ùò Ks   Ê1M6ræ  r5   )r;   r<   r=   r>   rÍ  rÖ  r9   re  r  rz   r?   r@   rA   rB   s   @@r1   r  r    s-   ù‡ € ØÐØÐòK?õZò*÷@?5õ ?5r3   r  c                   ó&   a € ] tR tRt o R tRtV tR# )ÚSQLAggregateCompileriË  c                ó6  € . . r!V P                   P                  P                  4        FL  pV P                  V4      w  rEVP	                  WV4      w  rEVP                  V4       VP                  V4       KN  	  \        V P                   P                  4      V n        RP                  V4      p\        V4      pV P                   P                  P                  V P                  V P                  R7      P                  RR7      w  rgRV: RV: R2pW',          pW3# )r  rW  )rJ   Trb   rp  rq  rs  )rH   r»   rY  r‹   r�   r„   r†   rh   ri   r4  r”  rL  r-  rI   rJ   r9   )r-   r”   r•   Ú
annotationÚann_sqlÚ
ann_paramsÚinner_query_sqlÚinner_query_paramss   &       r1   r9   ÚSQLAggregateCompiler.as_sqlÌ  s÷   € ð
 ˜"ˆVØŸ*™*×6Ñ6×=Ñ=Ö?ˆJØ"&§,¡,¨zÓ":ÑˆGØ",×":Ñ":¸4È*Ó"UÑˆGØ�J‰J�wÔØ�M‰M˜*Ö%ñ	 @ô
 ˜TŸZ™Z×9Ñ9Ó:ˆŒØ�i‰i˜‹nˆÜ�v“ˆà.2¯j©j×.DÑ.D×.QÑ.QØ�J‰JØ×(Ñ(ð /Ró /
÷ ‰& $ˆ&Ó
'ñ 	,ˆÐ+ó 14³_ÐEˆØÕ$ˆØˆ{Ðr3   )ri   N)r;   r<   r=   r>   r9   r?   r@   rŠ  s   @r1   r5  r5  Ë  s   ø‡ € ÷ð r3   r5  c              #  óÐ   a a"  €  \        V V3R lV4       F  pVf   TMV Uu. uF  qURV NK	  	  upx € K!  	  S P                  4        R# u upi   S P                  4        i ; i5i)zO
Yield blocks of rows from a cursor and ensure the cursor is closed when
done.
c                  ó&   <€ S P                  S4      # r)   )Ú	fetchmany)rp  Úitersizes   €€r1   rû  Úcursor_iter.<locals>.<lambda>ê  s   ø€  &×"2Ñ"2°8Ô"<r3   N)rn  rs  )rp  Úsentinelri   r@  rP  rÂ  s   f&&f  r1   rv  rv  ä  sY   ùé € ð
ÜÕ<¸xÖHˆDØ#Ò+‘$ÉÓ1NÉÀA°J°Y³-ÉÑ1NÔNñ Ið 	�‰Žùò 2Oøà�‰�üs+   „A&†A ¤A±	A ºA&ÁA ÁA#Á#A&)?r9  r~  r†  r  Ú	functoolsr   Ú	itertoolsr   Údjango.core.exceptionsr   r   r   Ú	django.dbr   r	   Údjango.db.models.constantsr
   rÆ  r   r   r   r   r   r   Údjango.db.models.fieldsr   r   Údjango.db.models.functionsr   r   Údjango.db.models.lookupsr   Údjango.db.models.query_utilsr   Údjango.db.models.sql.constantsr   r   r   r   r   r   r   Údjango.db.models.sql.queryr   r   Údjango.db.transactionr    Údjango.utils.deprecationr!   r"   Údjango.utils.functionalr#   Údjango.utils.hashabler$   Údjango.utils.regex_helperr%   r'   rE   rŒ  rè  r  r5  rv  r5   r3   r1   Ú<module>rS     s­   ðÛ Û Û 	Û Ý Ý ç LÑ Lß 6Ý 1ß Q× Qß 8ß 3Ý +Ý ?÷÷ ñ ÷ <Ý <ß SÝ 3Ý /Ý 6ô%�#ô %÷x ñ x ôv3_˜ô _ôD	9$˜ô 9$ôxE5˜ô E5ôP˜;ô ô2	r3   