ó
    ¼Rj�þ  ã                   óJ  • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
  S SKJrJrJr  S SKJrJrJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJr  S SKJ r    " S S5      r! " S S5      r" " S S5      r#\ " S S\#\"5      5       r$\%" S5      r&\"RN                  \"RP                  \"RR                  \"RT                  \"RV                  \"RX                  4 V s0 s Hl  n U \RZ                  \RZ                  \RZ                  4\R\                  \R\                  \R\                  4\R^                  \R^                  \R^                  4/_Mn     sn \"RN                  \"RP                  \"RR                  \"RT                  \"RV                  4 V s0 s HŽ  n U \RZ                  \R^                  \R^                  4\R^                  \RZ                  \R^                  4\RZ                  \R\                  \R\                  4\R\                  \RZ                  \R\                  4/_M�     sn \"R`                  \"Rb                  \"Rd                  \"Rf                  \"Rh                  4 V s0 s H(  n U \RZ                  \RZ                  \RZ                  4/_M*     sn \"RN                  \"RP                  \"RR                  \"RT                  \"RV                  \"RX                  4 V Vs0 s H8  n \RZ                  \R^                  \R\                  4  H  nU U\&U4\&X4/_M     M:     snn \"RN                  \Rj                  \Rl                  \Rn                  4\Rn                  \Rl                  \Rn                  4\Rl                  \Rj                  \Rn                  4\Rl                  \Rn                  \Rn                  4\Rl                  \Rl                  \Rl                  4\Rp                  \Rl                  \Rp                  4\Rl                  \Rp                  \Rp                  4/0\"RP                  \Rj                  \Rl                  \Rn                  4\Rn                  \Rl                  \Rn                  4\Rj                  \Rj                  \Rl                  4\Rj                  \Rn                  \Rl                  4\Rn                  \Rj                  \Rl                  4\Rn                  \Rn                  \Rl                  4\Rl                  \Rl                  \Rl                  4\Rp                  \Rl                  \Rp                  4\Rp                  \Rp                  \Rl                  4/	0/r9\" \:5      r;S r<\9 H5  r=\=R}                  5        H  u  r?r@\@ H  u  rArBrC\<" \A\?\B\C5        M     M      M7     \Rˆ                  " SS9S 5       rE " S S\!\$5      rF " S S\F5      rG " S S\F5      rH\" S S!9 " S" S#\"5      5       rI " S$ S%\I5      rJ " S& S'\I5      rK\" S(S!9 " S) S*\!\$5      5       rL\" S+S!9 " S, S-\!\$5      5       rM " S. S/\$5      rN " S0 S1\$5      rO " S2 S3\$5      rP " S4 S5\$5      rQ " S6 S7\L5      rR " S8 S9\L5      rS\" S:S!9 " S; S<\!\$5      5       rT " S= S>\T5      rU\" S?S!9 " S@ SA\$5      5       rV\" SBS!9 " SC SD\!\$5      5       rW " SE SF\#\"5      rX " SG SH\X5      rY\" SIS!9 " SJ SK\$5      5       rZ " SL SM\!\$5      r[ " SN SO\$5      r\ " SP SQ\\5      r] " SR SS\\5      r^gs  sn f s  sn f s  sn f s  snn f )Té    N)Údefaultdict©ÚDecimal)ÚUUID)ÚEmptyResultSetÚ
FieldErrorÚFullResultSet)ÚDatabaseErrorÚNotSupportedErrorÚ
connection)Úfields)Ú
LOOKUP_SEP)ÚQ)Údeconstructible)ÚRemovedInDjango50Warning)Úcached_property)Úmake_hashablec                   ó   • \ rS rSrSrS rSrg)ÚSQLiteNumericMixiné   zd
Some expressions with output_field=DecimalField() must be cast to
numeric to be properly filtered.
c                 óž   • U R                   " X40 UD6u  pE U R                  R                  5       S:X  a  SU-  nXE4$ ! [         a     XE4$ f = f)NÚDecimalFieldzCAST(%s AS NUMERIC))Úas_sqlÚoutput_fieldÚget_internal_typer   )ÚselfÚcompilerr   Úextra_contextÚsqlÚparamss         ÚHD:\diplom_project\venv\Lib\site-packages\django/db/models/expressions.pyÚ	as_sqliteÚSQLiteNumericMixin.as_sqlite   sc   € Ø—k’k (ÑH¸-ÑH‰ˆð	Ø× Ñ ×2Ñ2Ó4¸ÓFØ+¨cÑ1�ð ˆ{Ðøô ó 	ØØˆ{Ðð	ús   —#= ½
AÁA© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r"   Ú__static_attributes__r$   ó    r!   r   r      s   † ñõ
r+   r   c                   óà   • \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S(r*g))*Ú
Combinableé%   zi
Provide the ability to combine one or two objects with
some connector. For example F('foo') + F('bar').
Ú+Ú-Ú*Ú/Ú^z%%Ú&Ú|z<<z>>Ú#c                 óx   • [        US5      (       d  [        U5      nU(       a  [        XU 5      $ [        XU5      $ ©NÚresolve_expression)ÚhasattrÚValueÚCombinedExpression)r   ÚotherÚ	connectorÚreverseds       r!   Ú_combineÚCombinable._combine>   s6   € Ü�uÐ2×3Ñ3ä˜%“LˆEæÜ% e¸Ó=Ð=Ü! $°5Ó9Ð9r+   c                 ó<   • U R                  SU R                  S5      $ )NéÿÿÿÿF©r@   ÚMUL©r   s    r!   Ú__neg__ÚCombinable.__neg__K   s   € Ø�}‰}˜R §¡¨5Ó1Ð1r+   c                 ó:   • U R                  XR                  S5      $ ©NF©r@   ÚADD©r   r=   s     r!   Ú__add__ÚCombinable.__add__N   ó   € Ø�}‰}˜U§H¡H¨eÓ4Ð4r+   c                 ó:   • U R                  XR                  S5      $ rJ   ©r@   ÚSUBrM   s     r!   Ú__sub__ÚCombinable.__sub__Q   rP   r+   c                 ó:   • U R                  XR                  S5      $ rJ   rD   rM   s     r!   Ú__mul__ÚCombinable.__mul__T   rP   r+   c                 ó:   • U R                  XR                  S5      $ rJ   ©r@   ÚDIVrM   s     r!   Ú__truediv__ÚCombinable.__truediv__W   rP   r+   c                 ó:   • U R                  XR                  S5      $ rJ   ©r@   ÚMODrM   s     r!   Ú__mod__ÚCombinable.__mod__Z   rP   r+   c                 ó:   • U R                  XR                  S5      $ rJ   ©r@   ÚPOWrM   s     r!   Ú__pow__ÚCombinable.__pow__]   rP   r+   c                 óŽ   • [        U SS5      (       a)  [        USS5      (       a  [        U 5      [        U5      -  $ [        S5      e©NÚconditionalFúFUse .bitand(), .bitor(), and .bitxor() for bitwise logical operations.©Úgetattrr   ÚNotImplementedErrorrM   s     r!   Ú__and__ÚCombinable.__and__`   óC   € Ü�4˜¨×.Ñ.´7¸5À-ÐQV×3WÑ3WÜ�T“7œQ˜u›XÑ%Ð%Ü!ØTó
ð 	
r+   c                 ó:   • U R                  XR                  S5      $ rJ   )r@   ÚBITANDrM   s     r!   ÚbitandÚCombinable.bitandg   ó   € Ø�}‰}˜U§K¡K°Ó7Ð7r+   c                 ó:   • U R                  XR                  S5      $ rJ   )r@   ÚBITLEFTSHIFTrM   s     r!   ÚbitleftshiftÚCombinable.bitleftshiftj   s   € Ø�}‰}˜U×$5Ñ$5°uÓ=Ð=r+   c                 ó:   • U R                  XR                  S5      $ rJ   )r@   ÚBITRIGHTSHIFTrM   s     r!   ÚbitrightshiftÚCombinable.bitrightshiftm   s   € Ø�}‰}˜U×$6Ñ$6¸Ó>Ð>r+   c                 óŽ   • [        U SS5      (       a)  [        USS5      (       a  [        U 5      [        U5      -  $ [        S5      eri   rl   rM   s     r!   Ú__xor__ÚCombinable.__xor__p   rq   r+   c                 ó:   • U R                  XR                  S5      $ rJ   )r@   ÚBITXORrM   s     r!   ÚbitxorÚCombinable.bitxorw   rv   r+   c                 óŽ   • [        U SS5      (       a)  [        USS5      (       a  [        U 5      [        U5      -  $ [        S5      eri   rl   rM   s     r!   Ú__or__ÚCombinable.__or__z   rq   r+   c                 ó:   • U R                  XR                  S5      $ rJ   )r@   ÚBITORrM   s     r!   ÚbitorÚCombinable.bitor�   s   € Ø�}‰}˜U§J¡J°Ó6Ð6r+   c                 ó:   • U R                  XR                  S5      $ ©NTrK   rM   s     r!   Ú__radd__ÚCombinable.__radd__„   ó   € Ø�}‰}˜U§H¡H¨dÓ3Ð3r+   c                 ó:   • U R                  XR                  S5      $ rŽ   rR   rM   s     r!   Ú__rsub__ÚCombinable.__rsub__‡   r‘   r+   c                 ó:   • U R                  XR                  S5      $ rŽ   rD   rM   s     r!   Ú__rmul__ÚCombinable.__rmul__Š   r‘   r+   c                 ó:   • U R                  XR                  S5      $ rŽ   rZ   rM   s     r!   Ú__rtruediv__ÚCombinable.__rtruediv__�   r‘   r+   c                 ó:   • U R                  XR                  S5      $ rŽ   r_   rM   s     r!   Ú__rmod__ÚCombinable.__rmod__�   r‘   r+   c                 ó:   • U R                  XR                  S5      $ rŽ   rd   rM   s     r!   Ú__rpow__ÚCombinable.__rpow__“   r‘   r+   c                 ó   • [        S5      e©Nrk   ©rn   rM   s     r!   Ú__rand__ÚCombinable.__rand__–   ó   € Ü!ØTó
ð 	
r+   c                 ó   • [        S5      er¢   r£   rM   s     r!   Ú__ror__ÚCombinable.__ror__›   r¦   r+   c                 ó   • [        S5      er¢   r£   rM   s     r!   Ú__rxor__ÚCombinable.__rxor__    r¦   r+   c                 ó   • [        U 5      $ ©N)ÚNegatedExpressionrF   s    r!   Ú
__invert__ÚCombinable.__invert__¥   s   € Ü  Ó&Ð&r+   r$   N)+r%   r&   r'   r(   r)   rL   rS   rE   r[   re   r`   rs   rŠ   rx   r|   rƒ   r@   rG   rN   rT   rW   r\   ra   rf   ro   rt   ry   r}   r€   r„   r‡   r‹   r�   r“   r–   r™   rœ   rŸ   r¤   r¨   r«   r°   r*   r$   r+   r!   r-   r-   %   sÆ   † ñð €CØ
€CØ
€CØ
€CØ
€Cð €Cð
 €FØ€EØ€LØ€MØ€Fò:ò2ò5ò5ò5ò5ò5ò5ò
ò8ò>ò?ò
ò8ò
ò7ò4ò4ò4ò4ò4ò4ò
ò

ò

õ
'r+   r-   c                   ó`  • \ rS rSrSr\rSrSrSr	Sr
S(S jrS rS rS	 rS
 rS rS r\S 5       r\S 5       r\S 5       r\S 5       r S)S jr\S 5       r\S 5       r\S 5       r\S 5       rS r\S 5       r\S 5       r S r!S r"S r#S r$S r%S r&S r'S  r(S! r)S" r*S# r+S$ r,S% r-S& r.S'r/g)*ÚBaseExpressioné©   z%Base class for all query expressions.FTNc                 ó   • Ub  Xl         g g r®   ©r   ©r   r   s     r!   Ú__init__ÚBaseExpression.__init__µ   s   € ØÑ#Ø ,Õð $r+   c                 ó^   • U R                   R                  5       nUR                  SS 5        U$ )NÚconvert_value)Ú__dict__ÚcopyÚpop)r   Ústates     r!   Ú__getstate__ÚBaseExpression.__getstate__¹   s'   € Ø—‘×"Ñ"Ó$ˆØ�	‰	�/ 4Ô(Øˆr+   c                 óŠ   • U R                   U R                  L a  / OU R                   /U R                  R                  U5      -   $ r®   )r»   Ú_convert_value_noopr   Úget_db_converters©r   r   s     r!   rÄ   Ú BaseExpression.get_db_converters¾   sG   € ð ×!Ñ! T×%=Ñ%=Ò=ñ à×$Ñ$Ð%Ø×Ñ×/Ñ/°
Ó;ñ	<ð 	<r+   c                 ó   • / $ r®   r$   rF   s    r!   Úget_source_expressionsÚ%BaseExpression.get_source_expressionsÅ   ó   € Øˆ	r+   c                 ó   • U(       a   eg r®   r$   ©r   Úexprss     r!   Úset_source_expressionsÚ%BaseExpression.set_source_expressionsÈ   s   € ÞÐˆy�5r+   c                 óª   • U Vs/ s HA  n[        US5      (       a  UO*[        U[        5      (       a  [        U5      O
[	        U5      PMC     sn$ s  snf r8   )r:   Ú
isinstanceÚstrÚFr;   )r   ÚexpressionsÚargs      r!   Ú_parse_expressionsÚ!BaseExpression._parse_expressionsË   s\   € ñ
 #ó	
ò #�ô �sÐ0×1Ñ1ñ ä& s¬C×0Ñ0”!�C”&´e¸C³jòBñ #ñ	
ð 	
ùò 
s   …AAc                 ó   • [        S5      e)a.  
Responsible for returning a (sql, [params]) tuple to be included
in the current query.

Different backends can provide their own implementation, by
providing an `as_{vendor}` method and patching the Expression:

```
def override_as_sql(self, compiler, connection):
    # custom logic
    return super().as_sql(compiler, connection)
setattr(Expression, 'as_' + connection.vendor, override_as_sql)
```

Arguments:
 * compiler: the query compiler responsible for generating the query.
   Must have a compile method, returning a (sql, [params]) tuple.
   Calling compiler(value) will return a quoted `value`.

 * connection: the database connection used for the current query.

Return: (sql, params)
  Where `sql` is a string containing ordered sql parameters to be
  replaced with the elements of the list `params`.
z"Subclasses must implement as_sql()r£   ©r   r   r   s      r!   r   ÚBaseExpression.as_sqlÓ   s   € ô4 "Ð"FÓGÐGr+   c                 óB   • [        S U R                  5        5       5      $ )Nc              3   óJ   #   • U  H  o=(       a    UR                   v •  M     g 7fr®   )Úcontains_aggregate©Ú.0Úexprs     r!   Ú	<genexpr>Ú4BaseExpression.contains_aggregate.<locals>.<genexpr>ñ   s    é € ð 
Ú9V°×,�T×,Ñ,Ô,Ò9Vùó   ‚!#©ÚanyrÈ   rF   s    r!   rÝ   Ú!BaseExpression.contains_aggregateï   s%   € äñ 
Ø9=×9TÑ9TÔ9Vó
ó 
ð 	
r+   c                 óB   • [        S U R                  5        5       5      $ )Nc              3   óJ   #   • U  H  o=(       a    UR                   v •  M     g 7fr®   )Úcontains_over_clauserÞ   s     r!   rá   Ú6BaseExpression.contains_over_clause.<locals>.<genexpr>÷   s    é € ð 
Ú;X°4×.�T×.Ñ.Ô.Ò;Xùrã   rä   rF   s    r!   ré   Ú#BaseExpression.contains_over_clauseõ   s%   € äñ 
Ø;?×;VÑ;VÔ;Xó
ó 
ð 	
r+   c                 óB   • [        S U R                  5        5       5      $ )Nc              3   óL   #   • U  H  nU=(       a    UR                   v •  M     g 7fr®   )Úcontains_column_referencesrÞ   s     r!   rá   Ú<BaseExpression.contains_column_references.<locals>.<genexpr>ý   s%   é € ð 
â5�ð ×4�T×4Ñ4Ô4Ú5ùs   ‚"$rä   rF   s    r!   rî   Ú)BaseExpression.contains_column_referencesû   ó%   € äñ 
à×3Ñ3Ô5ó
ó 
ð 	
r+   c                 óB   • [        S U R                  5        5       5      $ )Nc              3   ót   #   • U  H.  nU=(       a     [        US S5      =(       d    UR                  v •  M0     g7f)ÚsubqueryFN)rm   Úcontains_subqueryrÞ   s     r!   rá   Ú3BaseExpression.contains_subquery.<locals>.<genexpr>  s3   é € ð 
â5�ð ×Q”g˜d J°Ó6×P¸$×:PÑ:PÔQÚ5ùs   ‚68rä   rF   s    r!   rõ   Ú BaseExpression.contains_subquery  rñ   r+   c                 óÎ   • U R                  5       nXFl        UR                  UR                  5        Vs/ s H  nU(       a  UR	                  XX45      OSPM      sn5        U$ s  snf )a²  
Provide the chance to do any preprocessing or validation before being
added to the query.

Arguments:
 * query: the backend query implementation
 * allow_joins: boolean allowing or denying use of joins
   in this query
 * reuse: a set of reusable joins for multijoins
 * summarize: a terminal aggregate clause
 * for_save: whether this expression about to be used in a save or update

Return: an Expression to be added to the query.
N)r½   Ú
is_summaryrÎ   rÈ   r9   )r   ÚqueryÚallow_joinsÚreuseÚ	summarizeÚfor_saveÚcrà   s           r!   r9   Ú!BaseExpression.resolve_expression	  sr   € ð" �I‰I‹KˆØ ŒØ	× Ñ ð
 ×4Ñ4Ô6ó	ò 7�Dö ð ×'Ñ'¨¸EÔMàòñ 7ñ	ô	
ð ˆùòs   ´%A"c                 óJ   • [        U R                  [        R                  5      $ r®   )rÑ   r   r   ÚBooleanFieldrF   s    r!   rj   ÚBaseExpression.conditional&  s   € ä˜$×+Ñ+¬V×-@Ñ-@ÓAÐAr+   c                 ó   • U R                   $ r®   r¶   rF   s    r!   ÚfieldÚBaseExpression.field*  s   € à× Ñ Ð r+   c                 óP   • U R                  5       nUc  SU l        [        S5      eU$ )z+Return the output type of this expressions.Tz4Cannot resolve expression type, unknown output_field)Ú_resolve_output_fieldÚ_output_field_resolved_to_noner   r·   s     r!   r   ÚBaseExpression.output_field.  s2   € ð ×1Ñ1Ó3ˆØÑØ26ˆDÔ/ÜÐSÓTÐTØÐr+   c                 ó`   •  U R                   $ ! [         a    U R                  (       d  e  gf = f)zn
Return the output field of this expression, or None if
_resolve_output_field() didn't return an output type.
N)r   r   r	  rF   s    r!   Ú_output_field_or_noneÚ$BaseExpression._output_field_or_none7  s3   € ð	Ø×$Ñ$Ð$øÜó 	Ø×6×6Øñ 7ð	ús   ‚ Ž-¬-c           	      ó  • S U R                  5        5       nU Hd  nU HY  n[        X#R                  5      (       a  M  [        SUR                  R                  < SUR                  R                  < S35      e   Us  $    g)aE  
Attempt to infer the output type of the expression.

As a guess, if the output fields of all source fields match then simply
infer the same type here.

If a source's output field resolves to None, exclude it from this check.
If all sources are None, then an error is raised higher up the stack in
the output_field property.
c              3   ó.   #   • U  H  oc  M  Uv •  M     g 7fr®   r$   )rß   Úsources     r!   rá   Ú7BaseExpression._resolve_output_field.<locals>.<genexpr>Q  s   é € ð 
Ú!9�v�F‰FÒ!9ùs   ‚Œ	z!Expression contains mixed types: ú, ú. You must set output_field.N)Úget_source_fieldsrÑ   Ú	__class__r   r%   )r   Úsources_iterr   r  s       r!   r  Ú$BaseExpression._resolve_output_fieldC  s{   € ñ
Ø!%×!7Ñ!7Ô!9ó
ˆó )ˆLÛ&�Ü! ,×0@Ñ0@×AÓAÝ$ð )×2Ñ2×;Ô;Ø"×,Ñ,×5Ô5ð	óð ñ 'ð  Òò )r+   c                 ó   • U $ r®   r$   ©ÚvalueÚ
expressionr   s      r!   rÃ   Ú"BaseExpression._convert_value_noopa  s   € àˆr+   c                 ó¨   • U R                   nUR                  5       nUS:X  a  S $ UR                  S5      (       a  S $ US:X  a  S $ U R                  $ )z±
Expressions provide their own converters because users have the option
of manually specifying the output_field which may be a different type
from the one the database returns.
Ú
FloatFieldc                 ó"   • U c  S $ [        U 5      $ r®   )Úfloatr  s      r!   Ú<lambda>Ú.BaseExpression.convert_value.<locals>.<lambda>p  s   € Ø‘=ð 7;ð 7"ä˜5“\ð7"r+   ÚIntegerFieldc                 ó"   • U c  S $ [        U 5      $ r®   )Úintr  s      r!   r!  r"  v  s   € Ø‘=ð 7;ð 7 ä˜“Zð7 r+   r   c                 ó"   • U c  S $ [        U 5      $ r®   r   r  s      r!   r!  r"  |  s   € Ø‘=ð 7;ð 7$ä˜U“^ð7$r+   )r   r   ÚendswithrÃ   )r   r  Úinternal_types      r!   r»   ÚBaseExpression.convert_valuee  sn   € ð ×!Ñ!ˆØ×/Ñ/Ó1ˆØ˜LÓ(ñ"ðð
 ×#Ñ# N×3Ñ3ñ ðð
 ˜nÓ,ñ$ðð
 ×'Ñ'Ð'r+   c                 ó8   • U R                   R                  U5      $ r®   )r   Ú
get_lookup)r   Úlookups     r!   r+  ÚBaseExpression.get_lookup‚  s   € Ø× Ñ ×+Ñ+¨FÓ3Ð3r+   c                 ó8   • U R                   R                  U5      $ r®   )r   Úget_transform©r   Únames     r!   r/  ÚBaseExpression.get_transform…  s   € Ø× Ñ ×.Ñ.¨tÓ4Ð4r+   c                 ó¸   • U R                  5       nUR                  U R                  5        Vs/ s H  nUb  UR                  U5      OS PM     sn5        U$ s  snf r®   )r½   rÎ   rÈ   Úrelabeled_clone)r   Ú
change_mapÚcloneÚes       r!   r4  ÚBaseExpression.relabeled_cloneˆ  sa   € Ø—	‘	“ˆØ×$Ñ$ð ×4Ñ4Ô6óâ6�Að 23±�×!Ñ! *Ô-ÀDÒHÙ6ñô	
ð ˆùòs   ® Ac                 óø   • UR                  U 5      =n(       a  U$ U R                  5       nUR                  5       nUR                  U Vs/ s H  nU(       a  UR	                  U5      OS PM     sn5        U$ s  snf r®   )Úgetr½   rÈ   rÎ   Úreplace_expressions)r   ÚreplacementsÚreplacementr6  Úsource_expressionsrà   s         r!   r;  Ú"BaseExpression.replace_expressions’  s�   € Ø&×*Ñ*¨4Ó0Ð0ˆ;Õ0ØÐØ—	‘	“ˆØ"×9Ñ9Ó;ÐØ×$Ñ$ñ /óâ.�Dö ;?�×(Ñ(¨Ô6ÀDÒHÙ.ñô	
ð ˆùòs   Á
$A7c                 ól   • [        5       nU R                  5        H  nXR                  5       -  nM     U$ r®   )ÚsetrÈ   Úget_refs)r   Úrefsrà   s      r!   rB  ÚBaseExpression.get_refsŸ  s/   € Ü‹uˆØ×/Ñ/Ö1ˆDØ—M‘M“OÑ#ŠDñ 2àˆr+   c                 ó.   • [         R                   " U 5      $ r®   ©r½   rF   s    r!   r½   ÚBaseExpression.copy¥  ó   € Ü�yŠy˜‹Ðr+   c           	      ó
  • U R                  5       nUR                  U R                  5        Vs/ s HB  n[        U[        5      (       a  [	        U UR
                   35      OUR                  U5      PMD     sn5        U$ s  snf r®   )r½   rÎ   rÈ   rÑ   rÓ   r1  Úprefix_references)r   Úprefixr6  rà   s       r!   rJ  Ú BaseExpression.prefix_references¨  s…   € Ø—	‘	“ˆØ×$Ñ$ð
 !×7Ñ7Ô9ó	ò :�Dô ˜d¤A×&Ñ&ô �V�H˜TŸY™Y˜KÐ(Ô)à×+Ñ+¨FÓ3ò4ñ :ñ	ô	
ð ˆùòs   ®A	B c                 óž   • U R                   (       d  U /$ / nU R                  5        H"  nUR                  UR                  5       5        M$     U$ r®   )rÝ   rÈ   ÚextendÚget_group_by_cols©r   Úcolsr  s      r!   rO  Ú BaseExpression.get_group_by_cols´  sD   € Ø×&×&Ø�6ˆMØˆØ×1Ñ1Ö3ˆFØ�K‰K˜×0Ñ0Ó2Ö3ñ 4àˆr+   c                 ó`   • U R                  5        Vs/ s H  oR                  PM     sn$ s  snf )z9Return the underlying field types used by this aggregate.)rÈ   r  )r   r7  s     r!   r  Ú BaseExpression.get_source_fields¼  s)   € à15×1LÑ1LÔ1NÓOÒ1N¨A×'Ô'Ñ1NÑOÐOùÒOs   “+c                 ó   • [        U 40 UD6$ r®   ©ÚOrderBy©r   Úkwargss     r!   ÚascÚBaseExpression.ascÀ  ó   € Ü�tÑ&˜vÑ&Ð&r+   c                 ó   • [        U 4SS0UD6$ ©NÚ
descendingTrV  rX  s     r!   ÚdescÚBaseExpression.descÃ  ó   € Ü�tÑ7¨Ð7°Ñ7Ð7r+   c                 ó   • U $ r®   r$   rF   s    r!   Úreverse_orderingÚBaseExpression.reverse_orderingÆ  ó   € Øˆr+   c              #   ó¶   #   • U v •  U R                  5        H;  nU(       d  M  [        US5      (       a  UR                  5        Sh  v•N   M7  Uv •  M=     g N7f)zQ
Recursively yield this expression and all subexpressions, in
depth-first order.
ÚflattenN)rÈ   r:   rh  )r   rà   s     r!   rh  ÚBaseExpression.flattenÉ  sJ   é € ð
 Š
Ø×/Ñ/Ö1ˆDßˆtÜ˜4 ×+Ñ+Ø#Ÿ|™|›~×-Ò-à”Jò 2ñ .ùs   ‚A£$AÁAÁAc                 óv   • [        U R                  S5      (       a  U R                  R                  XU5      $ X#4$ )zn
Custom format for select clauses. For example, EXISTS expressions need
to be wrapped in CASE WHEN on Oracle.
Úselect_format)r:   r   rk  ©r   r   r   r    s       r!   rk  ÚBaseExpression.select_formatÖ  s8   € ô
 �4×$Ñ$ o×6Ñ6Ø×$Ñ$×2Ñ2°8À&ÓIÐIØˆ{Ðr+   )r	  r   r®   ©NTNFF)0r%   r&   r'   r(   r)   ÚNotImplementedÚempty_result_set_valuerù   r	  Ú
filterableÚwindow_compatibler¸   rÀ   rÄ   rÈ   rÎ   rÖ   r   r   rÝ   ré   rî   rõ   r9   Úpropertyrj   r  r   r  r  ÚstaticmethodrÃ   r»   r+  r/  r4  r;  rB  r½   rJ  rO  r  rZ  r`  rd  rh  rk  r*   r$   r+   r!   r³   r³   ©   sg  † Ù/à+Ðà€JØ%*Ð"à€JàÐô-òò
<òòò
òHð8 ñ
ó ð
ð
 ñ
ó ð
ð
 ñ
ó ð
ð ñ
ó ð
ð SXôð: ñBó ðBð ñ!ó ð!ð ñó ðð ñ	ó ð	ò ð< ñó ðð ñ(ó ð(ò84ò5òòòòò
òòPò'ò8òòõr+   r³   c                   ó4   • \ rS rSrSr\S 5       rS rS rSr	g)Ú
Expressionià  z:An expression that can be combined with other expressions.c                 óJ  • [         R                  " U R                  5      nU R                  u  p#UR                  " U0 UD6nUR                  5         UR                  R                  5       nU R                  /nU Hœ  u  px[        U[        R                  5      (       a[  UR                  (       a>  UR                  (       a-  UR                  R                  R                  UR                  4nO[!        U5      nO[#        U5      nUR%                  Xx45        Mž     ['        U5      $ r®   )ÚinspectÚ	signaturer¸   Ú_constructor_argsÚbind_partialÚapply_defaultsÚ	argumentsÚitemsr  rÑ   r   ÚFieldr1  ÚmodelÚ_metaÚlabelÚtyper   ÚappendÚtuple)	r   Úconstructor_signatureÚargsrY  ry  r}  ÚidentityrÕ   r  s	            r!   rˆ  ÚExpression.identityä  sÚ   € ä '× 1Ò 1°$·-±-Ó @ÐØ×-Ñ-‰ˆØ)×6Ò6¸ÐGÀÑGˆ	Ø× Ñ Ô"Ø×'Ñ'×-Ñ-Ó/ˆ	Ø—N‘NÐ#ˆÛ#‰JˆCÜ˜%¤§¡×.Ñ.Ø—:—: %§+§+Ø"Ÿ[™[×.Ñ.×4Ñ4°e·j±jÐA‘Eä  ›K‘Eä% eÓ,�Ø�O‰O˜S˜LÖ)ñ $ô �X‹Ðr+   c                 ój   • [        U[        5      (       d  [        $ UR                  U R                  :H  $ r®   )rÑ   rv  ro  rˆ  rM   s     r!   Ú__eq__ÚExpression.__eq__÷  s(   € Ü˜%¤×,Ñ,Ü!Ð!Ø�~‰~ §¡Ñ.Ð.r+   c                 ó,   • [        U R                  5      $ r®   )Úhashrˆ  rF   s    r!   Ú__hash__ÚExpression.__hash__ü  s   € Ü�D—M‘MÓ"Ð"r+   r$   N)
r%   r&   r'   r(   r)   r   rˆ  r‹  r�  r*   r$   r+   r!   rv  rv  à  s!   † áDàñó ðò$/õ
#r+   rv  c                 ó8   • [         U   R                  XU45        g)z¦
Register combinable types:
    lhs <connector> rhs -> result
e.g.
    register_combinable_fields(
        IntegerField, Combinable.ADD, FloatField, FloatField
    )
N)Ú_connector_combinatorsr„  )Úlhsr>   ÚrhsÚresults       r!   Úregister_combinable_fieldsr–  l  s   € ô ˜9Ñ%×,Ñ,¨c¸Ð-?Õ@r+   é€   )Úmaxsizec                 ó”   • [         R                  U S5      nU H,  u  pEn[        X5      (       d  M  [        X%5      (       d  M*  Us  $    g )Nr$   )r’  r:  Ú
issubclass)r>   Úlhs_typeÚrhs_typeÚcombinatorsÚcombinator_lhs_typeÚcombinator_rhs_typeÚcombined_types          r!   Ú_resolve_combined_typer¡  ~  sH   € ä(×,Ñ,¨Y¸Ó;€KÛCNÑ?Ð°-Ü�h×4Ó4¼Ø÷:
ó :
ð !Ò ò	 DOr+   c                   ó\   ^ • \ rS rSrSU 4S jjrS rS rS rS rS r	S r
 SS	 jrS
rU =r$ )r<   iˆ  c                 óD   >• [         TU ]  US9  X l        Xl        X0l        g ©Nr¶   )Úsuperr¸   r>   r“  r”  )r   r“  r>   r”  r   r  s        €r!   r¸   ÚCombinedExpression.__init__‰  s"   ø€ Ü‰Ñ lÐÑ3Ø"ŒØŒØ�r+   c                 óN   • SR                  U R                  R                  U 5      $ )Nz<{}: {}>)Úformatr  r%   rF   s    r!   Ú__repr__ÚCombinedExpression.__repr__�  s   € Ø× Ñ  §¡×!8Ñ!8¸$Ó?Ð?r+   c                 ód   • SR                  U R                  U R                  U R                  5      $ )Nz{} {} {})r¨  r“  r>   r”  rF   s    r!   Ú__str__ÚCombinedExpression.__str__’  s#   € Ø× Ñ  §¡¨4¯>©>¸4¿8¹8ÓDÐDr+   c                 ó2   • U R                   U R                  /$ r®   ©r“  r”  rF   s    r!   rÈ   Ú)CombinedExpression.get_source_expressions•  s   € Ø—‘˜$Ÿ(™(Ð#Ð#r+   c                 ó"   • Uu  U l         U l        g r®   r¯  rÌ   s     r!   rÎ   Ú)CombinedExpression.set_source_expressions˜  s   € Ø"ÑˆŒ�$•(r+   c           	      ó˜  • [        U R                  [        U R                  R                  5      [        U R
                  R                  5      5      nUcp  [        SU R                  < SU R                  R                  R                  R                   SU R
                  R                  R                  R                   S35      eU" 5       $ )NzCannot infer type of z# expression involving these types: r  r  )
r¡  r>   rƒ  r“  r  r”  r   r   r  r%   )r   r   s     r!   r  Ú(CombinedExpression._resolve_output_field›  s­   € ô /Ø�N‰NÜ�—‘×/Ñ/Ó0Ü�—‘×/Ñ/Ó0ó
ˆð
 Ñ ÜØ'¨¯©Ñ'9ð :ØŸ(™(×/Ñ/×9Ñ9×BÑBÐCÀ2Ø—8‘8×(Ñ(×2Ñ2×;Ñ;Ð<ð = ð!óð ñ ‹Ðr+   c                 ób  • / n/ nUR                  U R                  5      u  pVUR                  U5        UR                  U5        UR                  U R                  5      u  pVUR                  U5        UR                  U5        SnUR
                  R                  U R                  U5      nXu-  U4$ ©Nz(%s))Úcompiler“  r„  rN  r”  ÚopsÚcombine_expressionr>   )r   r   r   rÔ   Úexpression_paramsr   r    Úexpression_wrappers           r!   r   ÚCombinedExpression.as_sql¬  s    € ØˆØÐØ×&Ñ& t§x¡xÓ0‰ˆØ×Ñ˜3ÔØ× Ñ  Ô(Ø×&Ñ& t§x¡xÓ0‰ˆØ×Ñ˜3ÔØ× Ñ  Ô(à#ÐØ�n‰n×/Ñ/°·±ÀÓLˆØ!Ñ'Ð):Ð:Ð:r+   c                 ó
  • U R                   R                  XX4U5      nU R                  R                  XX4U5      n[        U [        [
        45      (       dÛ   UR                  R                  5       n UR                  R                  5       n	SX‰1;   aC  X‰:w  a>  [	        U R                   U R                  U R                  5      R                  UUUUU5      $ 1 Skn
U R                  U R                  :X  a=  XŠ;   a8  X‰:X  a3  [        U R                   U R                  5      R                  UUUUU5      $ U R                  5       nXKl        Xkl         X{l        U$ ! [        [        4 a    S n Nøf = f! [        [        4 a    S n	 Nõf = f)NÚDurationField>   Ú	DateFieldÚ	TimeFieldÚDateTimeField)r“  r9   r”  rÑ   ÚDurationExpressionÚTemporalSubtractionr   r   ÚAttributeErrorr   r>   rS   r½   rù   )r   rú   rû   rü   rý   rþ   r“  r”  r›  rœ  Údatetime_fieldsrÿ   s               r!   r9   Ú%CombinedExpression.resolve_expressionº  s|  € ð �h‰h×)Ñ)Ø °(ó
ˆð �h‰h×)Ñ)Ø °(ó
ˆô ˜$Ô!3Ô5HÐ I×JÑJð Ø×+Ñ+×=Ñ=Ó?�ð Ø×+Ñ+×=Ñ=Ó?�ð  8Ð"6Ó6¸8Ó;OÜ)Ø—H‘H˜dŸn™n¨d¯h©hóç$Ñ$ØØØØØóðò JˆOà—‘ $§(¡(Ó*ØÓ/ØÓ(ä*¨4¯8©8°T·X±XÓ>×QÑQØØØØØóð ð �I‰I‹KˆØ ŒØŒØŒØˆøôC #¤JÐ/ó  Ø’ð ûô #¤JÐ/ó  Ø’ð ús$   ÁE Á2E- ÅE*Å)E*Å-FÆF)r>   r“  r”  r®   rn  )r%   r&   r'   r(   r¸   r©  r¬  rÈ   rÎ   r  r   r9   r*   Ú__classcell__©r  s   @r!   r<   r<   ˆ  s9   ø† ÷ò@òEò$ò#òò";ð SX÷-ò -r+   r<   c                   ó4   ^ • \ rS rSrS rU 4S jrS rSrU =r$ )rÂ  iê  c                 óè   •  UR                   nUR                  5       S:X  a0  UR                  U5      u  pVUR                  R	                  U5      U4$  UR                  U5      $ ! [
         a     Nf = f)Nr¾  )r   r   r·  r¸  Úformat_for_duration_arithmeticr   )r   Úsider   r   Úoutputr   r    s          r!   r·  ÚDurationExpression.compileë  s~   € ð	RØ×&Ñ&ˆFð ×'Ñ'Ó)¨_Ó<Ø&×.Ñ.¨tÓ4‘�Ø!—~‘~×DÑDÀSÓIÈ6ÐQÐQð =ð ×Ñ Ó%Ð%øô ó 	Ùð	ús   ‚A$ Á$
A1Á0A1c                 óò  >• UR                   R                  (       a  [        TU ]  X5      $ UR                  R                  U 5        / n/ nU R                  U R                  X5      u  pVUR                  U5        UR                  U5        U R                  U R                  X5      u  pVUR                  U5        UR                  U5        SnUR                  R                  U R                  U5      nXu-  U4$ r¶  )ÚfeaturesÚhas_native_duration_fieldr¥  r   r¸  Úcheck_expression_supportr·  r“  r„  rN  r”  Úcombine_duration_expressionr>   )	r   r   r   rÔ   rº  r   r    r»  r  s	           €r!   r   ÚDurationExpression.as_sqlö  sÑ   ø€ Ø×Ñ×8×8Ü‘7‘> (Ó7Ð7Ø�‰×/Ñ/°Ô5ØˆØÐØ—l‘l 4§8¡8¨XÓB‰ˆØ×Ñ˜3ÔØ× Ñ  Ô(Ø—l‘l 4§8¡8¨XÓB‰ˆØ×Ñ˜3ÔØ× Ñ  Ô(à#ÐØ�n‰n×8Ñ8¸¿¹ÈÓUˆØ!Ñ'Ð):Ð:Ð:r+   c                 ó¦  • U R                   " X40 UD6u  pEU R                  [        R                  [        R                  1;   at   U R
                  R                  R                  5       nU R                  R                  R                  5       n1 SknXh;  d  Xx;  a  [        SU R                   S35      e XE4$ XE4$ ! [        [        4 a     XE4$ f = f)N>   r  r   r#  r¾  zInvalid arguments for operator Ú.)r   r>   r-   rE   r[   r“  r   r   r”  r
   rÄ  r   )	r   r   r   r   r   r    r›  rœ  Úallowed_fieldss	            r!   r"   ÚDurationExpression.as_sqlite  sÑ   € Ø—k’k (ÑH¸-ÑH‰ˆØ�>‰>œjŸn™n¬j¯n©nÐ=Ó=ðØŸ8™8×0Ñ0×BÑBÓD�ØŸ8™8×0Ñ0×BÑBÓD�ò"�ð Ó1°XÓ5SÜ'Ø9¸$¿.¹.Ð9IÈÐKóð ð 6Tð ˆ{Ðˆsˆ{Ðøô #¤JÐ/ó Øð ˆ{Ððús   ÁAB; Â;CÃCr$   )	r%   r&   r'   r(   r·  r   r"   r*   rÇ  rÈ  s   @r!   rÂ  rÂ  ê  s   ø† ò	&õ;÷"ð r+   rÂ  c                   óP   ^ • \ rS rSr\R
                  " 5       rU 4S jrS rSr	U =r
$ )rÃ  i  c                 ó:   >• [         TU ]  XR                  U5        g r®   )r¥  r¸   rS   )r   r“  r”  r  s      €r!   r¸   ÚTemporalSubtraction.__init__   s   ø€ Ü‰Ñ˜Ÿh™h¨Õ,r+   c                 ó   • UR                   R                  U 5        UR                  U R                  5      nUR                  U R                  5      nUR                   R                  U R                  R                  R                  5       X45      $ r®   )r¸  rÒ  r·  r“  r”  Úsubtract_temporalsr   r   )r   r   r   r“  r”  s        r!   r   ÚTemporalSubtraction.as_sql#  sk   € Ø�‰×/Ñ/°Ô5Ø×Ñ˜tŸx™xÓ(ˆØ×Ñ˜tŸx™xÓ(ˆØ�~‰~×0Ñ0Ø�H‰H×!Ñ!×3Ñ3Ó5°só
ð 	
r+   r$   )r%   r&   r'   r(   r   r¾  r   r¸   r   r*   rÇ  rÈ  s   @r!   rÃ  rÃ    s    ø† Ø×'Ò'Ó)€Lõ-÷
ð 
r+   rÃ  zdjango.db.models.F)Úpathc                   óT   • \ rS rSrSrS rS r SS jrS rS r	S	 r
S
 rS rS rSrg)rÓ   i,  zDAn object capable of resolving references to existing query objects.c                 ó   • Xl         g)zF
Arguments:
 * name: the name of the field this expression references
N©r1  r0  s     r!   r¸   Ú
F.__init__0  s	   € ð
 �	r+   c                 ób   • SR                  U R                  R                  U R                  5      $ ©Nú{}({}))r¨  r  r%   r1  rF   s    r!   r©  Ú
F.__repr__7  s!   € Ø�‰˜tŸ~™~×6Ñ6¸¿	¹	ÓBÐBr+   Nc                 ó<   • UR                  U R                  X#U5      $ r®   )Úresolve_refr1  ©r   rú   rû   rü   rý   rþ   s         r!   r9   ÚF.resolve_expression:  s   € ð × Ñ  §¡¨KÀ	ÓJÐJr+   c                 ó$   • UR                  X 5      $ r®   )r:  )r   r<  s     r!   r;  ÚF.replace_expressions?  s   € Ø×Ñ Ó+Ð+r+   c                 ó   • [        U 40 UD6$ r®   rV  rX  s     r!   rZ  ÚF.ascB  r\  r+   c                 ó   • [        U 4SS0UD6$ r^  rV  rX  s     r!   r`  ÚF.descE  rb  r+   c                 ót   • U R                   UR                   :H  =(       a    U R                  UR                  :H  $ r®   )r  r1  rM   s     r!   r‹  ÚF.__eq__H  s'   € Ø�~‰~ §¡Ñ0×L°T·Y±YÀ%Ç*Á*Ñ5LÐLr+   c                 ó,   • [        U R                  5      $ r®   )rŽ  r1  rF   s    r!   r�  Ú
F.__hash__K  s   € Ü�D—I‘I‹Ðr+   c                 ó.   • [         R                   " U 5      $ r®   rF  rF   s    r!   r½   ÚF.copyN  rH  r+   râ  rn  )r%   r&   r'   r(   r)   r¸   r©  r9   r;  rZ  r`  r‹  r�  r½   r*   r$   r+   r!   rÓ   rÓ   ,  s<   † áNòòCð SXôKò
,ò'ò8òMòõr+   rÓ   c                   óF   ^ • \ rS rSrSrSrSrS rU 4S jrS r	S r
SrU =r$ )	ÚResolvedOuterRefiR  z¯
An object that contains a reference to an outer query.

In this case, the reference to the outer query has been resolved because
the inner query has been used as a subquery.
Fc                 ó   • [        S5      e)NzXThis queryset contains a reference to an outer query and may only be used in a subquery.)Ú
ValueError©r   r‡  rY  s      r!   r   ÚResolvedOuterRef.as_sql]  s   € Üð*ó
ð 	
r+   c                 ó¬   >• [         TU ]  " U0 UD6nUR                  (       a  [        SU R                   S35      e[
        U R                  ;   Ul        U$ )Nz<Referencing outer query window expression is not supported: rÖ  )r¥  r9   ré   r   r1  r   Úpossibly_multivalued)r   r‡  rY  Úcolr  s       €r!   r9   Ú#ResolvedOuterRef.resolve_expressionc  sX   ø€ Ü‰gÒ(¨$Ð9°&Ñ9ˆØ×#×#Ü#ØNØ—9‘9�+˜Qð óð ô $.°·±Ñ#:ˆÔ Øˆ
r+   c                 ó   • U $ r®   r$   ©r   Úrelabelss     r!   r4  Ú ResolvedOuterRef.relabeled_clonep  rf  r+   c                 ó   • / $ r®   r$   rF   s    r!   rO  Ú"ResolvedOuterRef.get_group_by_colss  rÊ   r+   r$   )r%   r&   r'   r(   r)   rÝ   ré   r   r9   r4  rO  r*   rÇ  rÈ  s   @r!   rù  rù  R  s/   ø† ñð ÐØ Ðò
õò÷ð r+   rù  c                   ó(   • \ rS rSrSrSrS rS rSrg)ÚOuterRefiw  Fc                 óŽ   • [        U R                  U R                  5      (       a  U R                  $ [        U R                  5      $ r®   )rÑ   r1  r  rù  rü  s      r!   r9   ÚOuterRef.resolve_expression{  s0   € Ü�d—i‘i §¡×0Ñ0Ø—9‘9ÐÜ §	¡	Ó*Ð*r+   c                 ó   • U $ r®   r$   r  s     r!   r4  ÚOuterRef.relabeled_clone€  rf  r+   r$   N)	r%   r&   r'   r(   rÝ   ré   r9   r4  r*   r$   r+   r!   r	  r	  w  s   † ØÐØ Ðò+õ
r+   r	  zdjango.db.models.Funcc                   ó„   ^ • \ rS rSrSrSrSrSrSrSS.U 4S jjr	S r
S	 rS
 rS r SS jr   SS jrU 4S jrSrU =r$ )ÚFunci„  zAn SQL function call.Nz%(function)s(%(expressions)s)r  r¶   c                óJ  >• U R                   bn  [        U5      U R                   :w  aU  [        SU R                  R                  < SU R                   < SU R                   S:X  a  SOS< S[        U5      < S3	5      e[
        TU ]  US	9  U R                  " U6 U l        X0l	        g )
NÚ'z' takes exactly Ú é   Úargumentr}  z (z given)r¶   )
ÚarityÚlenÚ	TypeErrorr  r%   r¥  r¸   rÖ   r>  Úextra)r   r   rÔ   r  r  s       €r!   r¸   ÚFunc.__init__�  s‰   ø€ Ø�:‰:Ñ!¤c¨+Ó&6¸$¿*¹*Ó&DÝð —N‘N×+Ô+Ø—J”JØ"&§*¡*°£/‘J°{ÒBÜ˜Ö$ðóð ô 	‰Ñ lÐÑ3Ø"&×"9Ò"9¸;Ð"GˆÔØ�
r+   c                 óš  • U R                   R                  S U R                   5       5      n0 U R                  EU R	                  5       EnU(       aU  SR                  S [        UR                  5       5       5       5      nSR                  U R                  R                  X5      $ SR                  U R                  R                  U5      $ )Nc              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr®   ©rÒ   ©rß   rÕ   s     r!   rá   Ú Func.__repr__.<locals>.<genexpr>�  ó   é € Ð#PÒ8O°¤C¨§H HÒ8Oùó   ‚r  c              3   óZ   #   • U  H!  u  p[        U5      S -   [        U5      -   v •  M#     g7f)Ú=Nr  )rß   ÚkeyÚvals      r!   rá   r     s'   é € ð Ú:O©h¨c”�C“˜3‘¤ S£Ö)Ò:Oùs   ‚)+ú
{}({}, {})ræ  )
Ú
arg_joinerÚjoinr>  r  Ú_get_repr_optionsÚsortedr~  r¨  r  r%   )r   r‡  r  s      r!   r©  ÚFunc.__repr__œ  s¡   € Ø�‰×#Ñ#Ñ#P¸×8OÒ8OÓ#PÓPˆØ:�4—:‘:Ð: ×!7Ñ!7Ó!9Ð:ˆÞØ—I‘Iñ Ü:@ÀÇÁÃÔ:Oóó ˆEð  ×&Ñ& t§~¡~×'>Ñ'>ÀÓLÐLØ�‰˜tŸ~™~×6Ñ6¸Ó=Ð=r+   c                 ó   • 0 $ )zAReturn a dict of extra __init__() options to include in the repr.r$   rF   s    r!   r(  ÚFunc._get_repr_options¦  s   € àˆ	r+   c                 ó   • U R                   $ r®   ©r>  rF   s    r!   rÈ   ÚFunc.get_source_expressionsª  s   € Ø×&Ñ&Ð&r+   c                 ó   • Xl         g r®   r.  rÌ   s     r!   rÎ   ÚFunc.set_source_expressions­  s   € Ø"'Õr+   c                 ó®   • U R                  5       nXFl        [        UR                  5       H%  u  pxUR	                  XX4U5      UR                  U'   M'     U$ r®   )r½   rù   Ú	enumerater>  r9   )	r   rú   rû   rü   rý   rþ   rÿ   ÚposrÕ   s	            r!   r9   ÚFunc.resolve_expression°  sT   € ð �I‰I‹KˆØ ŒÜ! !×"6Ñ"6Ö7‰HˆCØ(+×(>Ñ(>Ø E°hó)ˆA× Ñ  Ó%ñ 8ð ˆr+   c                 óì  • UR                   R                  U 5        / n/ nU R                   H9  n	 UR                  U	5      u  p«UR                  U
5        UR                  U5        M;     0 U R                  EUEnUb  X=S'   OUR                  SU R                  5        U=(       d    UR                  SU R                  5      nU=(       d    UR                  SU R                   5      nUR#                  U5      =US'   US'   XM-  U4$ ! [         a;    [        U	S[        5      nU[        L a  e UR                  [        U5      5      u  p« GN[         a     UR                  [        S5      5      u  p« GN/f = f)Nrp  TÚfunctionÚtemplater&  rÔ   r  )r¸  rÒ  r>  r·  r   rm   ro  r;   r	   r„  rN  r  Ú
setdefaultr7  r:  r8  r&  r'  )r   r   r   r7  r8  r&  r   Ú	sql_partsr    rÕ   Úarg_sqlÚ
arg_paramsrp  Údatas                 r!   r   ÚFunc.as_sql»  sg  € ð 	�‰×/Ñ/°Ô5Øˆ	ØˆØ×*Ô*ˆCð
DØ&.×&6Ñ&6°sÓ&;Ñ#�ð ×Ñ˜WÔ%Ø�M‰M˜*Ö%ñ +ð /�$—*‘*Ð. Ð.ˆð ÑØ'�Òà�O‰O˜J¨¯©Ô6Ø×B˜tŸx™x¨
°D·M±MÓBˆØ×J 4§8¡8¨L¸$¿/¹/Ó#Jˆ
Ø.8¯o©o¸iÓ.HÐHˆˆ]Ñ˜d 7™mØ‰ Ð&Ð&øô- "ó VÜ)0ØÐ1´>ó*Ð&ð *¬^Ò;ØØ&.×&6Ñ&6´uÐ=SÓ7TÓ&UÑ#�šÜ ó DØ&.×&6Ñ&6´u¸T³{Ó&CÑ#�šðDús   °DÄAE3Å
%E3Å2E3c                 óŠ   >• [         TU ]  5       nU R                  S S  Ul        U R                  R                  5       Ul        U$ r®   )r¥  r½   r>  r  )r   r½   r  s     €r!   r½   Ú	Func.copyâ  s8   ø€ Ü‰w‰|‹~ˆØ"&×"9Ñ"9¹!Ð"<ˆÔØ—Z‘Z—_‘_Ó&ˆŒ
Øˆr+   )r  r>  rn  )NNN)r%   r&   r'   r(   r)   r7  r8  r&  r  r¸   r©  r(  rÈ   rÎ   r9   r   r½   r*   rÇ  rÈ  s   @r!   r  r  „  sb   ø† áà€HØ.€HØ€JØ€Eà26÷ ð ò>òò'ò(ð SXô	ð ØØô%'÷Nó r+   r  zdjango.db.models.Valuec                   ón   ^ • \ rS rSrSrSrSU 4S jjrS rS r SU 4S jjr	S r
S	 r\S
 5       rSrU =r$ )r;   ié  z9Represent a wrapped value as a node within an expression.Fc                 ó,   >• [         TU ]  US9  Xl        g)a
  
Arguments:
 * value: the value this expression represents. The value will be
   added into the sql parameter list and properly quoted.

 * output_field: an instance of the model field type that this
   expression will return, such as IntegerField() or CharField().
r¶   N)r¥  r¸   r  )r   r  r   r  s      €r!   r¸   ÚValue.__init__ñ  s   ø€ ô 	‰Ñ lÐÑ3Ø�
r+   c                 óP   • U R                   R                   SU R                  < S3$ )NÚ(Ú))r  r%   r  rF   s    r!   r©  ÚValue.__repr__ý  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯J©J©>¸Ð;Ð;r+   c                 ó2  • UR                   R                  U 5        U R                  nU R                  nUbV  U R                  (       a  UR                  X2S9nOUR                  X2S9n[        US5      (       a  UR                  X1U5      U/4$ Uc  S/ 4$ SU/4$ )N)r   Úget_placeholderÚNULLz%s)	r¸  rÒ  r  r  rþ   Úget_db_prep_saveÚget_db_prep_valuer:   rI  )r   r   r   r$  r   s        r!   r   ÚValue.as_sql   s¢   € Ø�‰×/Ñ/°Ô5Ø�j‰jˆØ×1Ñ1ˆØÑ#Ø�}�}Ø"×3Ñ3°CÐ3ÐO‘à"×4Ñ4°SÐ4ÐP�Ü�|Ð%6×7Ñ7Ø#×3Ñ3°CÀ:ÓNÐQTÐPUÐUÐUØ‰;ð ˜2�:ÐØ�c�Uˆ{Ðr+   c                 ó6   >• [         TU ]  XX4U5      nXVl        U$ r®   )r¥  r9   rþ   )r   rú   rû   rü   rý   rþ   rÿ   r  s          €r!   r9   ÚValue.resolve_expression  s"   ø€ ô ‰GÑ& u¸5ÈXÓVˆØŒ
Øˆr+   c                 ó   • / $ r®   r$   rF   s    r!   rO  ÚValue.get_group_by_cols  rÊ   r+   c                 óÌ  • [        U R                  [        5      (       a  [        R                  " 5       $ [        U R                  [
        5      (       a  [        R                  " 5       $ [        U R                  [        5      (       a  [        R                  " 5       $ [        U R                  [        5      (       a  [        R                  " 5       $ [        U R                  [        R                  5      (       a  [        R                  " 5       $ [        U R                  [        R                  5      (       a  [        R                  " 5       $ [        U R                  [        R                  5      (       a  [        R                   " 5       $ [        U R                  [        R"                  5      (       a  [        R$                  " 5       $ [        U R                  [&        5      (       a  [        R(                  " 5       $ [        U R                  [*        5      (       a  [        R,                  " 5       $ [        U R                  [.        5      (       a  [        R0                  " 5       $ g r®   )rÑ   r  rÒ   r   Ú	CharFieldÚboolr  r%  r#  r   r  ÚdatetimerÁ  Údater¿  ÚtimerÀ  Ú	timedeltar¾  r   r   ÚbytesÚBinaryFieldr   Ú	UUIDFieldrF   s    r!   r  ÚValue._resolve_output_field  s{  € Ü�d—j‘j¤#×&Ñ&Ü×#Ò#Ó%Ð%Ü�d—j‘j¤$×'Ñ'Ü×&Ò&Ó(Ð(Ü�d—j‘j¤#×&Ñ&Ü×&Ò&Ó(Ð(Ü�d—j‘j¤%×(Ñ(Ü×$Ò$Ó&Ð&Ü�d—j‘j¤(×"3Ñ"3×4Ñ4Ü×'Ò'Ó)Ð)Ü�d—j‘j¤(§-¡-×0Ñ0Ü×#Ò#Ó%Ð%Ü�d—j‘j¤(§-¡-×0Ñ0Ü×#Ò#Ó%Ð%Ü�d—j‘j¤(×"4Ñ"4×5Ñ5Ü×'Ò'Ó)Ð)Ü�d—j‘j¤'×*Ñ*Ü×&Ò&Ó(Ð(Ü�d—j‘j¤%×(Ñ(Ü×%Ò%Ó'Ð'Ü�d—j‘j¤$×'Ñ'Ü×#Ò#Ó%Ð%ð (r+   c                 ó   • U R                   $ r®   ©r  rF   s    r!   rp  ÚValue.empty_result_set_value4  s   € à�z‰zÐr+   r^  r®   rn  )r%   r&   r'   r(   r)   rþ   r¸   r©  r   r9   rO  r  rs  rp  r*   rÇ  rÈ  s   @r!   r;   r;   é  sF   ø† áCð €H÷
ò<òð& SX÷òò&ð0 ñó ör+   r;   c                   óP   ^ • \ rS rSrSU 4S jjrS rS rS r S	U 4S jjrSr	U =r
$ )
ÚRawSQLi9  c                 ól   >• Uc  [         R                  " 5       nXsU l        U l        [        TU ]  US9  g r¤  )r   r  r   r    r¥  r¸   )r   r   r    r   r  s       €r!   r¸   ÚRawSQL.__init__:  s2   ø€ ØÑÜ!Ÿ<š<›>ˆLØ #ÐˆŒ�$”+Ü‰Ñ lÐÒ3r+   c                 óx   • SR                  U R                  R                  U R                  U R                  5      $ ©Nr%  )r¨  r  r%   r   r    rF   s    r!   r©  ÚRawSQL.__repr__@  s)   € Ø×"Ñ" 4§>¡>×#:Ñ#:¸D¿H¹HÀdÇkÁkÓRÐRr+   c                 ó8   • SU R                   -  U R                  4$ r¶  )r   r    rÙ   s      r!   r   ÚRawSQL.as_sqlC  s   € Ø˜Ÿ™Ñ  $§+¡+Ð-Ð-r+   c                 ó   • U /$ r®   r$   rF   s    r!   rO  ÚRawSQL.get_group_by_colsF  ó	   € Øˆvˆr+   c                 ó”  >• UR                   (       a¦  UR                   R                  R                  5        H~  nUR                  R                   Ha  nUR	                  5       u  p‰U	R                  5       U R                  R                  5       ;   d  MC  UR                  UR                  X#U5          M|     M€     [        T
U ])  XX4U5      $ r®   )r€  r�  Úget_parent_listÚlocal_fieldsÚget_attname_columnÚlowerr   ré  r1  r¥  r9   )r   rú   rû   rü   rý   rþ   ÚparentÚparent_fieldÚ_Úcolumn_namer  s             €r!   r9   ÚRawSQL.resolve_expressionI  s¤   ø€ ð �;�;ØŸ+™+×+Ñ+×;Ñ;Ö=�Ø$*§L¡L×$=Ô$=�LØ%1×%DÑ%DÓ%F‘N�AØ"×(Ñ(Ó*¨d¯h©h¯n©nÓ.>Õ>Ø×)Ñ)Ø(×-Ñ-¨{À9ôò ó %>ñ >ô ‰wÑ)Ø °(ó
ð 	
r+   )r    r   r®   rn  )r%   r&   r'   r(   r¸   r©  r   rO  r9   r*   rÇ  rÈ  s   @r!   ra  ra  9  s)   ø† ÷4òSò.òð SX÷
õ 
r+   ra  c                   ó    • \ rS rSrS rS rSrg)ÚStari[  c                 ó   • g)Nz'*'r$   rF   s    r!   r©  ÚStar.__repr__\  s   € Ør+   c                 ó
   • S/ 4$ )Nr1   r$   rÙ   s      r!   r   ÚStar.as_sql_  s   € Ø�Bˆwˆr+   r$   N)r%   r&   r'   r(   r©  r   r*   r$   r+   r!   rw  rw  [  s   † òõr+   rw  c                   óR   ^ • \ rS rSrSrSrSU 4S jjrS rS rS r	S r
S	 rS
rU =r$ )ÚColic  TFc                 óF   >• Uc  Un[         TU ]  US9  XsU l        U l        g r¤  )r¥  r¸   ÚaliasÚtarget)r   r  r€  r   r  s       €r!   r¸   ÚCol.__init__g  s,   ø€ ØÑØ!ˆLÜ‰Ñ lÐÑ3Ø"'ÐˆŒ
�D•Kr+   c                 óÚ   • U R                   U R                  p!U(       a  U[        U5      4O[        U5      4nSR                  U R                  R
                  SR                  U5      5      $ )Nræ  r  )r  r€  rÒ   r¨  r  r%   r'  )r   r  r€  Úidentifierss       r!   r©  ÚCol.__repr__m  sM   € ØŸ
™
 D§K¡KˆvÞ.3�uœc &›kÑ*¼#¸f»+¸ˆØ�‰˜tŸ~™~×6Ñ6¸¿	¹	À+Ó8NÓOÐOr+   c                 ó°   • U R                   U R                  R                  pCU(       a  X44OU4nSR                  [	        UR
                  U5      5      nU/ 4$ )NrÖ  )r  r€  Úcolumnr'  ÚmapÚquote_name_unless_alias)r   r   r   r  r†  rƒ  r   s          r!   r   Ú
Col.as_sqlr  sH   € ØŸ
™
 D§K¡K×$6Ñ$6ˆvÞ).�u‘o°V°IˆØ�h‰h”s˜8×;Ñ;¸[ÓIÓJˆØ�Bˆwˆr+   c                 ó¶   • U R                   c  U $ U R                  UR                  U R                   U R                   5      U R                  U R                  5      $ r®   )r  r  r:  r€  r   r  s     r!   r4  ÚCol.relabeled_clonex  sF   € Ø�:‰:ÑØˆKØ�~‰~Ø�L‰L˜Ÿ™ T§Z¡ZÓ0°$·+±+¸t×?PÑ?Pó
ð 	
r+   c                 ó   • U /$ r®   r$   rF   s    r!   rO  ÚCol.get_group_by_cols  rk  r+   c                 óÚ   • U R                   U R                  :X  a  U R                  R                  U5      $ U R                  R                  U5      U R                   R                  U5      -   $ r®   )r€  r   rÄ   rÅ   s     r!   rÄ   ÚCol.get_db_converters‚  s^   € Ø�;‰;˜$×+Ñ+Ó+Ø×$Ñ$×6Ñ6°zÓBÐBØ× Ñ ×2Ñ2Øó
à�K‰K×)Ñ)¨*Ó5ñ6ð 	6r+   )r  r€  r®   )r%   r&   r'   r(   rî   rÿ  r¸   r©  r   r4  rO  rÄ   r*   rÇ  rÈ  s   @r!   r}  r}  c  s3   ø† Ø!%ÐØ Ð÷0òPò
ò
ò÷6ð 6r+   r}  c                   ób   ^ • \ rS rSrSrU 4S jrS rS rS r SS jr	S r
S	 rS
 rS rSrU =r$ )ÚRefiŠ  zr
Reference to column alias of the query. For example, Ref('sum_cost') in
qs.annotate(sum_cost=Sum('cost')) query.
c                 ó>   >• [         TU ]  5         XsU l        U l        g r®   )r¥  r¸   rC  r  )r   rC  r  r  s      €r!   r¸   ÚRef.__init__�  s   ø€ Ü‰ÑÔØ!%ÐˆŒ	�4•;r+   c                 óx   • SR                  U R                  R                  U R                  U R                  5      $ re  )r¨  r  r%   rC  r  rF   s    r!   r©  ÚRef.__repr__”  s)   € Ø×"Ñ" 4§>¡>×#:Ñ#:¸D¿I¹IÀtÇ{Á{ÓSÐSr+   c                 ó   • U R                   /$ r®   ©r  rF   s    r!   rÈ   ÚRef.get_source_expressions—  s   € Ø—‘ˆ}Ðr+   c                 ó   • Uu  U l         g r®   r—  rÌ   s     r!   rÎ   ÚRef.set_source_expressionsš  s   € Ø‰ˆ�r+   c                 ó   • U $ r®   r$   rê  s         r!   r9   ÚRef.resolve_expression�  s	   € ð
 ˆr+   c                 ó   • U R                   1$ r®   )rC  rF   s    r!   rB  ÚRef.get_refs¤  s   € Ø—	‘	ˆ{Ðr+   c                 óf   • U R                  5       nU R                  R                  U5      Ul        U$ r®   )r½   r  r4  )r   r  r6  s      r!   r4  ÚRef.relabeled_clone§  s(   € Ø—	‘	“ˆØ—{‘{×2Ñ2°8Ó<ˆŒØˆr+   c                 óP   • UR                   R                  U R                  5      / 4$ r®   )r¸  Ú
quote_namerC  rÙ   s      r!   r   Ú
Ref.as_sql¬  s    € Ø�~‰~×(Ñ(¨¯©Ó3°RÐ7Ð7r+   c                 ó   • U /$ r®   r$   rF   s    r!   rO  ÚRef.get_group_by_cols¯  rk  r+   )rC  r  rn  )r%   r&   r'   r(   r)   r¸   r©  rÈ   rÎ   r9   rB  r4  r   rO  r*   rÇ  rÈ  s   @r!   r‘  r‘  Š  sB   ø† ñõ
.òTòòð SXôòòò
8÷ð r+   r‘  c                   ó<   ^ • \ rS rSrSrSrU 4S jrS rS rSr	U =r
$ )ÚExpressionListi³  zœ
An expression containing multiple expressions. Can be used to provide a
list of expressions as an argument to another expression, like a partition
clause.
z%(expressions)sc                 óx   >• U(       d"  [        SU R                  R                  -  5      e[        TU ]  " U0 UD6  g )Nz$%s requires at least one expression.)rû  r  r%   r¥  r¸   ©r   rÔ   r  r  s      €r!   r¸   ÚExpressionList.__init__¼  s9   ø€ ÞÜØ6¸¿¹×9PÑ9PÑPóð ô 	‰Ò˜+Ð/¨Ó/r+   c                 óZ   • U R                   R                  S U R                   5       5      $ )Nc              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr®   r  r  s     r!   rá   Ú)ExpressionList.__str__.<locals>.<genexpr>Ä  r  r   )r&  r'  r>  rF   s    r!   r¬  ÚExpressionList.__str__Ã  s#   € Ø�‰×#Ñ#Ñ#P¸×8OÒ8OÓ#PÓPÐPr+   c                 ó(   • U R                   " X40 UD6$ r®   )r   )r   r   r   r   s       r!   r"   ÚExpressionList.as_sqliteÆ  s   € à�{Š{˜8ÑA°=ÑAÐAr+   r$   )r%   r&   r'   r(   r)   r8  r¸   r¬  r"   r*   rÇ  rÈ  s   @r!   r§  r§  ³  s&   ø† ñð !€Hõ0òQ÷Bð Br+   r§  c                   ó>   ^ • \ rS rSrSrU 4S jrU 4S jrS rSrU =r	$ )ÚOrderByListiË  zORDER BY %(expressions)sc                 ó8   >• S U 5       n[         TU ]  " U0 UD6  g )Nc              3   óŽ   #   • U  H;  n[        U[        5      (       a  US    S:X  a  [        [        USS 5      SS9OUv •  M=     g7f)r   r0   r  NT©r_  )rÑ   rÒ   rW  rÓ   rÞ   s     r!   rá   Ú'OrderByList.__init__.<locals>.<genexpr>Ï  sM   é € ð 
ò $�ô ˜d¤C×(Ñ(¨T°!©W¸«^ô œ˜$˜q˜r˜(›°Ò5àôò $ùs   ‚AA)r¥  r¸   r©  s      €r!   r¸   ÚOrderByList.__init__Î  s(   ø€ ñ
ñ $ó
ˆô 	‰Ò˜+Ð/¨Ó/r+   c                 óH   >• U R                   (       d  g[        TU ]  " U0 UD6$ )N)Ú r$   )r>  r¥  r   )r   r‡  rY  r  s      €r!   r   ÚOrderByList.as_sqlÙ  s#   ø€ Ø×&×&ØÜ‰wŠ~˜tÐ. vÑ.Ð.r+   c                 óv   • / nU R                  5        H"  nUR                  UR                  5       5        M$     U$ r®   ©rÈ   rN  rO  )r   Úgroup_by_colsÚorder_bys      r!   rO  ÚOrderByList.get_group_by_colsÞ  s7   € ØˆØ×3Ñ3Ö5ˆHØ× Ñ  ×!;Ñ!;Ó!=Ö>ñ 6àÐr+   r$   )
r%   r&   r'   r(   r8  r¸   r   rO  r*   rÇ  rÈ  s   @r!   r²  r²  Ë  s   ø† Ø)€Hõ	0õ/÷
ð r+   r²  z"django.db.models.ExpressionWrapperc                   óP   ^ • \ rS rSrSrU 4S jrS rS rU 4S jrS r	S r
S	rU =r$ )
ÚExpressionWrapperiå  zˆ
An expression that can wrap another expression so that it can provide
extra context to the inner expression, such as the output_field.
c                 ó,   >• [         TU ]  US9  Xl        g r¤  )r¥  r¸   r  )r   r  r   r  s      €r!   r¸   ÚExpressionWrapper.__init__ì  s   ø€ Ü‰Ñ lÐÑ3Ø$�r+   c                 ó   • US   U l         g ©Nr   ©r  rÌ   s     r!   rÎ   Ú(ExpressionWrapper.set_source_expressionsð  ó   € Ø ™(ˆ�r+   c                 ó   • U R                   /$ r®   rÆ  rF   s    r!   rÈ   Ú(ExpressionWrapper.get_source_expressionsó  ó   € Ø—‘Ð Ð r+   c                 óÔ   >• [        U R                  [        5      (       a;  U R                  R                  5       nU R                  Ul        UR                  5       $ [        TU ]  5       $ r®   )rÑ   r  rv  r½   r   rO  r¥  ©r   r  r  s     €r!   rO  Ú#ExpressionWrapper.get_group_by_colsö  sS   ø€ Ü�d—o‘o¤z×2Ñ2ØŸ™×-Ñ-Ó/ˆJØ&*×&7Ñ&7ˆJÔ#Ø×/Ñ/Ó1Ð1ô ‰wÑ(Ó*Ð*r+   c                 ó8   • UR                  U R                  5      $ r®   )r·  r  rÙ   s      r!   r   ÚExpressionWrapper.as_sqlÿ  s   € Ø×Ñ §¡Ó0Ð0r+   c                 ób   • SR                  U R                  R                  U R                  5      $ rå  )r¨  r  r%   r  rF   s    r!   r©  ÚExpressionWrapper.__repr__  s!   € Ø�‰˜tŸ~™~×6Ñ6¸¿¹ÓHÐHr+   rÆ  )r%   r&   r'   r(   r)   r¸   rÎ   rÈ   rO  r   r©  r*   rÇ  rÈ  s   @r!   rÁ  rÁ  å  s-   ø† ñõ
%ò#ò!õ+ò1÷Ið Ir+   rÁ  c                   óV   ^ • \ rS rSrSrU 4S jrS rU 4S jr S	U 4S jjrS r	Sr
U =r$ )
r¯   i  z1The logical negation of a conditional expression.c                 óH   >• [         TU ]  U[        R                  " 5       S9  g r¤  )r¥  r¸   r   r  rÍ  s     €r!   r¸   ÚNegatedExpression.__init__	  s   ø€ Ü‰Ñ˜´&×2EÒ2EÓ2GÐÒHr+   c                 ó6   • U R                   R                  5       $ r®   )r  r½   rF   s    r!   r°   ÚNegatedExpression.__invert__  s   € Ø�‰×#Ñ#Ó%Ð%r+   c                 óX  >•  [         TU ]  X5      u  p4UR                  R                  nUR                  U R                  5      (       d  SU S3U4$ SU 3U4$ ! [         aF    UR                  R                  nUR
                  (       d   gUR                  [        S5      5      s $ f = f)N)z1=1r$   Tz
CASE WHEN z = 0 THEN 1 ELSE 0 ENDzNOT )r¥  r   r   r   rÐ  Ú&supports_boolean_expr_in_select_clauser·  r;   r¸  Ú0conditional_expression_supported_in_where_clauser  )r   r   r   r   r    rÐ  r¸  r  s          €r!   r   ÚNegatedExpression.as_sql  s«   ø€ ð	1Ü™'™.¨Ó>‰KˆCð ×!Ñ!×%Ñ%ˆð ×CÑCÀDÇOÁO×TÑTØ ˜uÐ$:Ð;¸VÐCÐCØ�c�Uˆ|˜VÐ#Ð#øô ó 	1Ø×*Ñ*×3Ñ3ˆHØ×B×BÙ Ø×#Ñ#¤E¨$£KÓ0Ò0ð		1ús   ƒA Á1B)ÂB)Â(B)c                 óx   >• [         TU ]  XX4U5      n[        UR                  SS5      (       d  [	        S5      eU$ )Nrj   Fz*Cannot negate non-conditional expressions.)r¥  r9   rm   r  r  )r   rú   rû   rü   rý   rþ   Úresolvedr  s          €r!   r9   Ú$NegatedExpression.resolve_expression  sC   ø€ ô ‘7Ñ-Ø °(ó
ˆô �x×*Ñ*¨M¸5×AÑAÜÐHÓIÐIØˆr+   c                 óâ   • UR                   R                  R                  nUR                   R                  R                  (       d(  U" U R
                  5      (       a  SR                  U5      nX#4$ ©NzCASE WHEN {} THEN 1 ELSE 0 END)r   r¸  rÚ  rÐ  rÙ  r  r¨  )r   r   r   r    Ú$expression_supported_in_where_clauses        r!   rk  ÚNegatedExpression.select_format)  s\   € ð
 ×Ñ×#Ñ#×TÑTð 	-ð ×#Ñ#×,Ñ,×S×Sá4°T·_±_×EÑEà2×9Ñ9¸#Ó>ˆCØˆ{Ðr+   r$   rn  )r%   r&   r'   r(   r)   r¸   r°   r   r9   rk  r*   rÇ  rÈ  s   @r!   r¯   r¯     s,   ø† Ù;õIò&õ$ð" SX÷÷ð r+   r¯   zdjango.db.models.Whenc                   ón   ^ • \ rS rSrSrSrSU 4S jjrS rS rS r	S r
S	 r SS
 jrSS jrS rSrU =r$ )ÚWheni9  z"WHEN %(condition)s THEN %(result)sFc                 óf  >• U(       a/  Uc  [        S0 UD6S p1O[        USS5      (       a  [        U40 UD6S p1Ub  [        USS5      (       a  U(       a  [        S5      e[        U[         5      (       a  U(       d  [	        S5      e[
        TU ]  S S9  Xl        U R                  U5      S   U l	        g )Nrj   FzLWhen() supports a Q object, a boolean expression, or lookups as a condition.z1An empty Q() can't be used as a When() condition.r¶   r   r$   )
r   rm   r  rÑ   rû  r¥  r¸   Ú	conditionrÖ   r•  )r   ræ  ÚthenÚlookupsr  s       €r!   r¸   ÚWhen.__init__?  s«   ø€ ÞØÑ Ü%&¡\¨¡\°4™7Ü˜ M°5×9Ñ9Ü%& yÑ%<°GÑ%<¸d˜7ØÑ¤G¨I°}Àe×$LÑ$LÖPWÜð"óð ô �i¤×#Ñ#®IÜÐPÓQÐQÜ‰Ñ dÐÑ+Ø"ŒØ×-Ñ-¨dÓ3°AÑ6ˆ�r+   c                 ó>   • SU R                   < SU R                  < 3$ )NzWHEN z THEN ©ræ  r•  rF   s    r!   r¬  ÚWhen.__str__P  s   � Ø$(§N¤N°D·K³KÐ@Ð@r+   c                 ó@   • SU R                   R                  < SU < S3$ ©NÚ<z: Ú>©r  r%   rF   s    r!   r©  ÚWhen.__repr__S  ó   � Ø!Ÿ^™^×4Ô4³dÐ;Ð;r+   c                 ó2   • U R                   U R                  /$ r®   rë  rF   s    r!   rÈ   ÚWhen.get_source_expressionsV  s   € Ø—‘ §¡Ð,Ð,r+   c                 ó"   • Uu  U l         U l        g r®   rë  rÌ   s     r!   rÎ   ÚWhen.set_source_expressionsY  s   € Ø&+Ñ#ˆŒ˜�r+   c                 ó0   • U R                   R                  /$ r®   )r•  r  rF   s    r!   r  ÚWhen.get_source_fields\  s   € à—‘×1Ñ1Ð2Ð2r+   c                 óð   • U R                  5       nXFl        [        UR                  S5      (       a"  UR                  R	                  XX4S5      Ul        UR
                  R	                  XX4U5      Ul        U$ )Nr9   F)r½   rù   r:   ræ  r9   r•  )r   rú   rû   rü   rý   rþ   rÿ   s          r!   r9   ÚWhen.resolve_expression`  si   € ð �I‰I‹KˆØ ŒÜ�1—;‘;Ð 4×5Ñ5ØŸ+™+×8Ñ8Ø E°eóˆAŒKð —8‘8×.Ñ.Ø °(ó
ˆŒð ˆr+   c                 ó  • UR                   R                  U 5        Un/ nUR                  U R                  5      u  pxXuS'   UR                  U R                  5      u  pšX•S'   U=(       d    U R
                  nX5-  / UQUQU
Q74$ )Nræ  r•  )r¸  rÒ  r·  ræ  r•  r8  )r   r   r   r8  r   Útemplate_paramsÚ
sql_paramsÚcondition_sqlÚcondition_paramsÚ
result_sqlÚresult_paramss              r!   r   ÚWhen.as_sqln  s™   € Ø�‰×/Ñ/°Ô5Ø'ˆØˆ
Ø*2×*:Ñ*:¸4¿>¹>Ó*JÑ'ˆØ'4˜Ñ$Ø$,×$4Ñ$4°T·[±[Ó$AÑ!ˆ
Ø$.˜Ñ!Ø×,˜tŸ}™}ˆØÑ)ð ,
Øð,
àð,
ð ñ,
ð 
ð 	
r+   c                 óv   • / nU R                  5        H"  nUR                  UR                  5       5        M$     U$ r®   r¼  rP  s      r!   rO  ÚWhen.get_group_by_cols}  s4   € àˆØ×1Ñ1Ö3ˆFØ�K‰K˜×0Ñ0Ó2Ö3ñ 4àˆr+   rë  ©NNrn  r®   )r%   r&   r'   r(   r8  rj   r¸   r¬  r©  rÈ   rÎ   r  r9   r   rO  r*   rÇ  rÈ  s   @r!   rä  rä  9  sG   ø† à3€Hà€K÷7ò"Aò<ò-ò,ò3ð
 SXôô
÷ð r+   rä  zdjango.db.models.Casec                   ó†   ^ • \ rS rSrSrSrSrSSS.U 4S jjrS rS	 r	S
 r
S r SS jrU 4S jr SS jrU 4S jrSrU =r$ )ÚCasei…  z¦
An SQL searched CASE expression:

    CASE
        WHEN n > 0
            THEN 'positive'
        WHEN n < 0
            THEN 'negative'
        ELSE 'zero'
    END
z#CASE %(cases)s ELSE %(default)s ENDr  N)Údefaultr   c                óÆ   >• [        S U 5       5      (       d  [        S5      e[        TU ]  U5        [	        U5      U l        U R                  U5      S   U l        X@l        g )Nc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7fr®   )rÑ   rä  )rß   Úcases     r!   rá   Ú Case.__init__.<locals>.<genexpr>—  s   é € Ð<²e¨d”:˜d¤D×)Ð)²eùs   ‚z.Positional arguments must all be When objects.r   )	Úallr  r¥  r¸   ÚlistÚcasesrÖ   r	  r  )r   r	  r   r  r  r  s        €r!   r¸   ÚCase.__init__–  sT   ø€ ÜÑ<±eÓ<×<Ñ<ÜÐLÓMÐMÜ‰Ñ˜Ô&Ü˜%“[ˆŒ
Ø×.Ñ.¨wÓ7¸Ñ:ˆŒØ�
r+   c                 ój   • SSR                  S U R                   5       5      < SU R                  < 3$ )NzCASE r  c              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr®   r  )rß   rÿ   s     r!   rá   ÚCase.__str__.<locals>.<genexpr>   s   é € Ð1¢j ”c˜!—f�f¢jùr   z, ELSE )r'  r  r	  rF   s    r!   r¬  ÚCase.__str__ž  s)   � à�I‰IÑ1 d§j¢jÓ1Ö1Ø�L‹Lð
ð 	
r+   c                 ó@   • SU R                   R                  < SU < S3$ rî  rñ  rF   s    r!   r©  ÚCase.__repr__¤  ró  r+   c                 ó6   • U R                   U R                  /-   $ r®   ©r  r	  rF   s    r!   rÈ   ÚCase.get_source_expressions§  s   € Ø�z‰z˜TŸ\™\˜NÑ*Ð*r+   c                 ó"   • UGt U l         U l        g r®   r  rÌ   s     r!   rÎ   ÚCase.set_source_expressionsª  s   € Ø$)Ñ!ˆŒ�T•\r+   c                 óò   • U R                  5       nXFl        [        UR                  5       H%  u  pxUR	                  XX4U5      UR                  U'   M'     UR
                  R	                  XX4U5      Ul        U$ r®   )r½   rù   r3  r  r9   r	  )	r   rú   rû   rü   rý   rþ   rÿ   r4  r  s	            r!   r9   ÚCase.resolve_expression­  sn   € ð �I‰I‹KˆØ ŒÜ" 1§7¡7Ö+‰IˆCØ×2Ñ2Ø E°hóˆA�G‰G�C‹Lñ ,ð —I‘I×0Ñ0Ø °(ó
ˆŒ	ð ˆr+   c                 óL   >• [         TU ]  5       nUR                  S S  Ul        U$ r®   )r¥  r½   r  )r   rÿ   r  s     €r!   r½   Ú	Case.copy»  s"   ø€ Ü‰G‰L‹NˆØ—'‘'™!�*ˆŒØˆr+   c                 óL  • UR                   R                  U 5        U R                  (       d  UR                  U R                  5      $ 0 U R
                  EUEn/ n/ nUR                  U R                  5      u  pšU R                   H9  n UR                  U5      u  pÍUR                  U5        UR                  U5        M;     U(       d  Xš4$ U=(       d    U R                  nUR                  U5      US'   X–S'   UR                  U
5        U=(       d    UR                  SU R                  5      nX6-  nU R                  b(  UR                   R!                  U R"                  5      U-  nXè4$ ! [         a     Mó  [         a"    UR                  UR                  5      u  pš   Mà  f = f)Nr  r	  r8  )r¸  rÒ  r  r·  r	  r  r   r	   r•  r„  rN  Úcase_joinerr'  r:  r8  r  Úunification_cast_sqlr   )r   r   r   r8  r"  r   rý  Ú
case_partsrþ  Údefault_sqlÚdefault_paramsr  Úcase_sqlÚcase_paramsr   s                  r!   r   ÚCase.as_sqlÀ  s  € ð 	�‰×/Ñ/°Ô5Ø�z�zØ×#Ñ# D§L¡LÓ1Ð1Ø9˜TŸZ™ZÐ9¨=Ð9ˆØˆ
Øˆ
Ø&.×&6Ñ&6°t·|±|Ó&DÑ#ˆØ—J”JˆDðØ(0×(8Ñ(8¸Ó(>Ñ%�ð ×Ñ˜hÔ'Ø×Ñ˜kÖ*ñ ö ØÐ.Ð.Ø!×5 T×%5Ñ%5ˆØ#.×#3Ñ#3°JÓ#?ˆ˜Ñ Ø%0˜	Ñ"Ø×Ñ˜.Ô)Ø×M˜×2Ñ2°:¸t¿}¹}ÓMˆØÑ(ˆØ×%Ñ%Ñ1Ø—.‘.×5Ñ5°d×6GÑ6GÓHÈ3ÑNˆCØˆÐøô# "ó ÚÜ ó Ø.6×.>Ñ.>¸t¿{¹{Ó.KÑ+�Ûðús   Â	E+Å+
F#Å8&F#Æ"F#c                 óv   >• U R                   (       d  U R                  R                  5       $ [        TU ]	  5       $ r®   )r  r	  rO  r¥  )r   r  s    €r!   rO  ÚCase.get_group_by_colsà  s+   ø€ Ø�z�zØ—<‘<×1Ñ1Ó3Ð3Ü‰wÑ(Ó*Ð*r+   )r  r	  r  rn  r  )r%   r&   r'   r(   r)   r8  r"  r¸   r¬  r©  rÈ   rÎ   r9   r½   r   rO  r*   rÇ  rÈ  s   @r!   r  r  …  s_   ø† ñ
ð 5€HØ€Kà'+¸$÷ ð ò
ò<ò+ò*ð SXôõð @Dô÷@+ó +r+   r  c                   ó„   ^ • \ rS rSrSrSrSrSrSrSU 4S jjr	S r
S	 rS
 rU 4S jr\S 5       rS rSS jrS rSrU =r$ )ÚSubqueryiæ  zˆ
An explicit subquery. It may contain OuterRef() references to the outer
query which will be resolved when it is applied to that query.
z(%(subquery)s)FNTc                 ó’   >• [        USU5      R                  5       U l        SU R                  l        X0l        [
        TU ]  U5        g )Nrú   T)rm   r6  rú   rô   r  r¥  r¸   )r   Úquerysetr   r  r  s       €r!   r¸   ÚSubquery.__init__ñ  s:   ø€ ä˜X w°Ó9×?Ñ?ÓAˆŒ
Ø"ˆ�
‰
ÔØŒ
Ü‰Ñ˜Õ&r+   c                 ó   • U R                   /$ r®   ©rú   rF   s    r!   rÈ   ÚSubquery.get_source_expressionsø  s   € Ø—
‘
ˆ|Ðr+   c                 ó   • US   U l         g rÅ  r2  rÌ   s     r!   rÎ   ÚSubquery.set_source_expressionsû  s   € Ø˜1‘Xˆ�
r+   c                 ó.   • U R                   R                  $ r®   )rú   r   rF   s    r!   r  ÚSubquery._resolve_output_fieldþ  s   € Ø�z‰z×&Ñ&Ð&r+   c                 ób   >• [         TU ]  5       nUR                  R                  5       Ul        U$ r®   )r¥  r½   rú   r6  )r   r6  r  s     €r!   r½   ÚSubquery.copy  s'   ø€ Ü‘‘“ˆØ—k‘k×'Ñ'Ó)ˆŒØˆr+   c                 ó.   • U R                   R                  $ r®   )rú   Úexternal_aliasesrF   s    r!   r;  ÚSubquery.external_aliases  s   € à�z‰z×*Ñ*Ð*r+   c                 ó6   • U R                   R                  5       $ r®   )rú   Úget_external_colsrF   s    r!   r>  ÚSubquery.get_external_cols
  s   € Ø�z‰z×+Ñ+Ó-Ð-r+   c                 óú   • UR                   R                  U 5        0 U R                  EUEnU R                  R	                  X5      u  pgUSS US'   U=(       d    UR                  SU R                  5      nX5-  nX‡4$ )Nr  rC   rô   r8  )r¸  rÒ  r  rú   r   r:  r8  )	r   r   r   r8  r   rý  Úsubquery_sqlrþ  r   s	            r!   r   ÚSubquery.as_sql  sz   € Ø�‰×/Ñ/°Ô5Ø9˜TŸZ™ZÐ9¨=Ð9ˆØ#'§:¡:×#4Ñ#4°XÓ#JÑ ˆØ&2°1°RÐ&8ˆ˜
Ñ#à×M˜×2Ñ2°:¸t¿}¹}ÓMˆØÑ(ˆØˆÐr+   c                 ó4   • U R                   R                  U S9$ )N)Úwrapper)rú   rO  rF   s    r!   rO  ÚSubquery.get_group_by_cols  s   € Ø�z‰z×+Ñ+°DÐ+Ð9Ð9r+   )r  rú   r®   )r%   r&   r'   r(   r)   r8  rÝ   rp  rô   r¸   rÈ   rÎ   r  r½   rs  r;  r>  r   rO  r*   rÇ  rÈ  s   @r!   r-  r-  æ  sa   ø† ñð
  €HØÐØ!ÐØ€H÷'òòò'õð
 ñ+ó ð+ò.ô÷:ð :r+   r-  c                   óX   ^ • \ rS rSrSr\R                  " 5       rSrU 4S jr	S r
SrU =r$ )ÚExistsi  zEXISTS(%(subquery)s)Fc                 óf   >• [         TU ]  " U40 UD6  U R                  R                  5       U l        g r®   )r¥  r¸   rú   Úexists)r   r/  rY  r  s      €r!   r¸   ÚExists.__init__   s)   ø€ Ü‰Ò˜Ñ, VÒ,Ø—Z‘Z×&Ñ&Ó(ˆ�
r+   c                 ót   • UR                   R                  R                  (       d  SR                  U5      nX#4$ rà  )r   rÐ  rÙ  r¨  rl  s       r!   rk  ÚExists.select_format$  s1   € ð ×"Ñ"×+Ñ+×R×RØ2×9Ñ9¸#Ó>ˆCØˆ{Ðr+   r2  )r%   r&   r'   r(   r8  r   r  r   rp  r¸   rk  r*   rÇ  rÈ  s   @r!   rG  rG    s+   ø† Ø%€HØ×&Ò&Ó(€LØ"Ðõ)÷ð r+   rG  zdjango.db.models.OrderByc                   ó`   • \ rS rSrSrSrSS jrS rS rS r	SS	 jr
S
 rS rS rS rS rSrg)rW  i-  z%(expression)s %(ordering)sFNc                 óæ   • U(       a  U(       a  [        S5      eUSL d  USL a  [        R                  " S[        SS9  X0l        X@l        X l        [        US5      (       d  [        S5      eXl        g )Nz1nulls_first and nulls_last are mutually exclusiveFzNPassing nulls_first=False or nulls_last=False is deprecated, use None instead.é   )Ú
stacklevelr9   z%expression must be an expression type)	rû  ÚwarningsÚwarnr   Únulls_firstÚ
nulls_lastr_  r:   r  )r   r  r_  rS  rT  s        r!   r¸   ÚOrderBy.__init__2  sl   € Þž:ÜÐPÓQÐQØ˜%Ò :°Ò#6ô
 �MŠMðä(Øò	ð 'ÔØ$ŒØ$ŒÜ�zÐ#7×8Ñ8ÜÐDÓEÐEØ$�r+   c                 óx   • SR                  U R                  R                  U R                  U R                  5      $ )Nz{}({}, descending={}))r¨  r  r%   r  r_  rF   s    r!   r©  ÚOrderBy.__repr__G  s.   € Ø&×-Ñ-Ø�N‰N×#Ñ# T§_¡_°d·o±oó
ð 	
r+   c                 ó   • US   U l         g rÅ  rÆ  rÌ   s     r!   rÎ   ÚOrderBy.set_source_expressionsL  rÈ  r+   c                 ó   • U R                   /$ r®   rÆ  rF   s    r!   rÈ   ÚOrderBy.get_source_expressionsO  rË  r+   c                 óº  • U=(       d    U R                   nUR                  R                  (       a.  U R                  (       a  SU-  nOœU R                  (       a  SU-  nO…U R                  (       a2  U R
                  (       a  UR                  R                  (       d  SU-  nOBU R                  (       a1  U R
                  (       d  UR                  R                  (       d  SU-  nUR                  R                  U 5        UR                  U R                  5      u  pVUU R
                  (       a  SOSS.UEnXcR                  S5      -  nX7-  R                  5       U4$ )	Nz%s NULLS LASTz%s NULLS FIRSTz%%(expression)s IS NULL, %sz%%(expression)s IS NOT NULL, %sÚDESCÚASC)r  Úorderingz%(expression)s)r8  rÐ  Ú supports_order_by_nulls_modifierrT  rS  r_  Úorder_by_nulls_firstr¸  rÒ  r·  r  ÚcountÚrstrip)r   r   r   r8  r   Úexpression_sqlr    Úplaceholderss           r!   r   ÚOrderBy.as_sqlR  s  € Ø×,˜tŸ}™}ˆØ×Ñ×?×?Ø��Ø*¨XÑ5‘Ø×!×!Ø+¨hÑ6�øà��Ø—— J×$7Ñ$7×$L×$Là8¸8ÑC‘Ø×!×!Ø—O—O¨
×(;Ñ(;×(P×(Pà<¸xÑG�Ø�‰×/Ñ/°Ô5Ø!)×!1Ñ!1°$·/±/Ó!BÑˆà(Ø"&§/§/™°uñ
ð ð
ˆð
 	—.‘.Ð!1Ó2Ñ2ˆØÑ'×/Ñ/Ó1°6Ð9Ð9r+   c                 óþ   • UR                   R                  U R                  5      (       aC  U R                  5       n[	        [        U R                  SS9SS9Ul        UR                  " X5      $ U R                  X5      $ )NT)rç  F)r	  )r¸  rÚ  r  r½   r  rä  r   )r   r   r   r½   s       r!   Ú	as_oracleÚOrderBy.as_oraclel  sl   € ð �>‰>×JÑJØ�O‰O÷
ñ 
ð —9‘9“;ˆDÜ"Ü�T—_‘_¨4Ñ0ØñˆDŒOð —;’;˜xÓ4Ð4Ø�{‰{˜8Ó0Ð0r+   c                 óv   • / nU R                  5        H"  nUR                  UR                  5       5        M$     U$ r®   r¼  rP  s      r!   rO  ÚOrderBy.get_group_by_colsz  s4   € ØˆØ×1Ñ1Ö3ˆFØ�K‰K˜×0Ñ0Ó2Ö3ñ 4àˆr+   c                 ó²   • U R                   (       + U l         U R                  (       a  SU l        S U l        U $ U R                  (       a  SU l        S U l        U $ rŽ   )r_  rS  rT  rF   s    r!   rd  ÚOrderBy.reverse_ordering€  sL   € Ø"Ÿo™oÔ-ˆŒØ××Ø"ˆDŒOØ#ˆDÔð ˆð �_�_Ø#ˆDÔØ"ˆDŒOØˆr+   c                 ó   • SU l         g rJ   rµ  rF   s    r!   rZ  ÚOrderBy.ascŠ  s	   € Øˆ�r+   c                 ó   • SU l         g rŽ   rµ  rF   s    r!   r`  ÚOrderBy.desc�  s	   € Øˆ�r+   )r_  r  rS  rT  )FNNr®   )r%   r&   r'   r(   r8  rj   r¸   r©  rÎ   rÈ   r   rh  rO  rd  rZ  r`  r*   r$   r+   r!   rW  rW  -  s>   † à,€HØ€Kô%ò*
ò
#ò!ô:ò41òòò õr+   rW  c                   óz   ^ • \ rS rSrSrSrSr    SU 4S jjrS rS r	S r
SS	 jrU 4S
 jrS rS rS rSrU =r$ )ÚWindowi‘  z %(expression)s OVER (%(window)s)FTc                 ó¾  >• X l         X0l        X@l        [        USS5      (       d"  [	        SUR
                  R                  -  5      eU R                   bN  [        U R                   [        [        45      (       d  U R                   4U l         [        U R                   6 U l         U R                  bˆ  [        U R                  [        [        45      (       a  [        U R                  6 U l        OK[        U R                  [        [        45      (       a  [        U R                  5      U l        O[	        S5      e[        TU ]=  US9  U R!                  U5      S   U l        g )Nrr  Fz3Expression '%s' isn't compatible with OVER clauses.zhWindow.order_by must be either a string reference to a field, an expression, or a list or tuple of them.r¶   r   )Úpartition_byr¾  Úframerm   rû  r  r%   rÑ   r…  r  r§  r²  r³   rÒ   r¥  r¸   rÖ   Úsource_expression)r   r  ru  r¾  rv  r   r  s         €r!   r¸   ÚWindow.__init__™  s$  ø€ ð )ÔØ ŒØŒ
ä�zÐ#6¸×>Ñ>ÜØEØ×&Ñ&×/Ñ/ñ0óð ð
 ×ÑÑ(Ü˜d×/Ñ/´%¼°×?Ñ?Ø%)×%6Ñ%6Ð$8�Ô!Ü .°×0AÑ0AÐ BˆDÔà�=‰=Ñ$Ü˜$Ÿ-™-¬$´¨×7Ñ7Ü +¨T¯]©]Ð ;�•Ü˜DŸM™M¬N¼CÐ+@×AÑAÜ +¨D¯M©MÓ :�•ä ðHóð ô 	‰Ñ lÐÑ3Ø!%×!8Ñ!8¸Ó!DÀQÑ!GˆÕr+   c                 ó.   • U R                   R                  $ r®   )rw  r   rF   s    r!   r  ÚWindow._resolve_output_field½  s   € Ø×%Ñ%×2Ñ2Ð2r+   c                 ó^   • U R                   U R                  U R                  U R                  /$ r®   ©rw  ru  r¾  rv  rF   s    r!   rÈ   ÚWindow.get_source_expressionsÀ  s%   € Ø×&Ñ&¨×(9Ñ(9¸4¿=¹=È$Ï*É*ÐUÐUr+   c                 ó:   • Uu  U l         U l        U l        U l        g r®   r|  rÌ   s     r!   rÎ   ÚWindow.set_source_expressionsÃ  s   € ØOTÑLˆÔ Ô 1°4´=À$Å*r+   c                 ó  • UR                   R                  U 5        UR                  R                  (       d  [	        S5      eUR                  U R                  5      u  pE/ SpvU R                  b<  U R                  R                  UUSS9u  p‰UR                  U5        U[        U	5      -  nU R                  b<  UR                  U R                  5      u  p«UR                  U
5        U[        U5      -  nU R                  (       a<  UR                  U R                  5      u  pÍUR                  U5        U[        U5      -  nU=(       d    U R                  nX4SR                  U5      R                  5       S.-  / UQUQ74$ )Nz1This backend does not support window expressions.r$   zPARTITION BY %(expressions)s)r   r   r8  r  )r  Úwindow)r¸  rÒ  rÐ  Úsupports_over_clauser   r·  rw  ru  r   r„  r…  r¾  rv  r8  r'  Ústrip)r   r   r   r8  Úexpr_sqlr    Ú
window_sqlÚwindow_paramsÚsql_exprrþ  Ú	order_sqlÚorder_paramsÚ	frame_sqlÚframe_paramss                 r!   r   ÚWindow.as_sqlÆ  s^  € Ø�‰×/Ñ/°Ô5Ø×"Ñ"×7×7Ü#Ð$WÓXÐXØ#×+Ñ+¨D×,BÑ,BÓCÑˆØ$&¨�Mà×ÑÑ(Ø#'×#4Ñ#4×#;Ñ#;Ø!Ø%Ø7ð $<ð $Ñ ˆHð
 ×Ñ˜hÔ'ØœU :Ó.Ñ.ˆMà�=‰=Ñ$Ø&.×&6Ñ&6°t·}±}Ó&EÑ#ˆIØ×Ñ˜iÔ(ØœU <Ó0Ñ0ˆMà�:�:Ø&.×&6Ñ&6°t·z±zÓ&BÑ#ˆIØ×Ñ˜iÔ(ØœU <Ó0Ñ0ˆMà×,˜tŸ}™}ˆð ¸#¿(¹(À:Ó:N×:TÑ:TÓ:VÑWÑWØ%ˆfÐ%�}Ñ%ð
ð 	
r+   c                 ó>  >• [        U R                  [        R                  5      (       ac  U R	                  5       nUR
                  " 5       n[        R                  " 5       US   l        UR                  " U5        [        [        U]+  X5      $ U R                  X5      $ rÅ  )rÑ   r   r   r   r½   rÈ   r  rÎ   r¥  rs  r"   r   )r   r   r   r½   r>  r  s        €r!   r"   ÚWindow.as_sqliteç  s}   ø€ Ü�d×'Ñ'¬×)<Ñ)<×=Ñ=à—9‘9“;ˆDØ!%×!<Ò!<Ó!>ÐÜ17×1BÒ1BÓ1DÐ˜qÑ!Ô.Ø×'Ò'Ð(:Ô;Üœ Ñ0°ÓFÐFØ�{‰{˜8Ó0Ð0r+   c           	      ó  • SR                  [        U R                  5      U R                  (       a  S[        U R                  5      -   OS[        U R                  =(       d    S5      [        U R
                  =(       d    S5      5      $ )Nz{} OVER ({}{}{})zPARTITION BY r¹  )r¨  rÒ   rw  ru  r¾  rv  rF   s    r!   r¬  ÚWindow.__str__ñ  sb   € Ø!×(Ñ(Ü�×&Ñ&Ó'Ø8<×8I×8IˆOœc $×"3Ñ"3Ó4Ò4ÈrÜ�—‘×# Ó$Ü�—
‘
× ˜bÓ!ó	
ð 	
r+   c                 ó@   • SU R                   R                  < SU < S3$ rî  rñ  rF   s    r!   r©  ÚWindow.__repr__ù  ró  r+   c                 óê   • / nU R                   (       a)  UR                  U R                   R                  5       5        U R                  b)  UR                  U R                  R                  5       5        U$ r®   )ru  rN  rO  r¾  )r   r½  s     r!   rO  ÚWindow.get_group_by_colsü  sX   € ØˆØ××Ø× Ñ  ×!2Ñ!2×!DÑ!DÓ!FÔGØ�=‰=Ñ$Ø× Ñ  §¡×!@Ñ!@Ó!BÔCØÐr+   )rv  r¾  ru  rw  )NNNNr®   )r%   r&   r'   r(   r8  rÝ   ré   r¸   r  rÈ   rÎ   r   r"   r¬  r©  rO  r*   rÇ  rÈ  s   @r!   rs  rs  ‘  s[   ø† Ø1€Hð ÐØÐð
 ØØØ÷"HòH3òVòUô
õB1ò
ò<÷ð r+   rs  c                   óP   • \ rS rSrSrSrSS jrS rS rS r	S	 r
S
 rS rS rSrg)ÚWindowFramei  a>  
Model the frame clause in window expressions. There are two types of frame
clauses which are subclasses, however, all processing and validation (by no
means intended to be complete) is done here. Thus, providing an end for a
frame is optional (the default is UNBOUNDED FOLLOWING, which is the last
row in the frame).
z,%(frame_type)s BETWEEN %(start)s AND %(end)sNc                 óD   • [        U5      U l        [        U5      U l        g r®   )r;   ÚstartÚend©r   r˜  r™  s      r!   r¸   ÚWindowFrame.__init__  s   € Ü˜5“\ˆŒ
Ü˜“:ˆ�r+   c                 ó"   • Uu  U l         U l        g r®   ©r˜  r™  rÌ   s     r!   rÎ   Ú"WindowFrame.set_source_expressions  s   € Ø$ÑˆŒ
�D•Hr+   c                 ó2   • U R                   U R                  /$ r®   r�  rF   s    r!   rÈ   Ú"WindowFrame.get_source_expressions  s   € Ø—
‘
˜DŸH™HÐ%Ð%r+   c                 óî   • UR                   R                  U 5        U R                  X R                  R                  U R
                  R                  5      u  p4U R                  U R                  UUS.-  / 4$ )N©Ú
frame_typer˜  r™  )r¸  rÒ  Úwindow_frame_start_endr˜  r  r™  r8  r£  )r   r   r   r˜  r™  s        r!   r   ÚWindowFrame.as_sql  sl   € Ø�‰×/Ñ/°Ô5Ø×0Ñ0ØŸ
™
×(Ñ(¨$¯(©(¯.©.ó
‰
ˆð �M‰Mà"Ÿo™oØØññð ð
ð 	
r+   c                 ó@   • SU R                   R                  < SU < S3$ rî  rñ  rF   s    r!   r©  ÚWindowFrame.__repr__)  ró  r+   c                 ó   • / $ r®   r$   rF   s    r!   rO  ÚWindowFrame.get_group_by_cols,  rÊ   r+   c                 óz  • U R                   R                  bW  U R                   R                  S:  a=  S[        U R                   R                  5      [        R                  R
                  4-  nOfU R                   R                  b5  U R                   R                  S:X  a  [        R                  R                  nO[        R                  R                  nU R                  R                  bN  U R                  R                  S:”  a4  SU R                  R                  [        R                  R                  4-  nOfU R                  R                  b5  U R                  R                  S:X  a  [        R                  R                  nO[        R                  R                  nU R                  U R                  UUS.-  $ )Nr   z%d %sr¢  )r˜  r  Úabsr   r¸  Ú	PRECEDINGÚCURRENT_ROWÚUNBOUNDED_PRECEDINGr™  Ú	FOLLOWINGÚUNBOUNDED_FOLLOWINGr8  r£  rš  s      r!   r¬  ÚWindowFrame.__str__/  s&  € Ø�:‰:×ÑÑ'¨D¯J©J×,<Ñ,<¸qÓ,@Øœs 4§:¡:×#3Ñ#3Ó4´j·n±n×6NÑ6NÐOÑO‰EØ�Z‰Z×ÑÑ)¨d¯j©j×.>Ñ.>À!Ó.CÜ—N‘N×.Ñ.‰Eä—N‘N×6Ñ6ˆEà�8‰8�>‰>Ñ%¨$¯(©(¯.©.¸1Ó*<Ø˜TŸX™XŸ^™^¬Z¯^©^×-EÑ-EÐFÑF‰CØ�X‰X�^‰^Ñ'¨D¯H©H¯N©N¸aÓ,?Ü—.‘.×,Ñ,‰Cä—.‘.×4Ñ4ˆCØ�}‰}ØŸ/™/ØØñ 
ñ 
ð 	
r+   c                 ó   • [        S5      e)Nz3Subclasses must implement window_frame_start_end().r£   ©r   r   r˜  r™  s       r!   r¤  Ú"WindowFrame.window_frame_start_endC  s   € Ü!Ð"WÓXÐXr+   )r™  r˜  r  )r%   r&   r'   r(   r)   r8  r¸   rÎ   rÈ   r   r©  rO  r¬  r¤  r*   r$   r+   r!   r–  r–    s7   † ñð >€Hôò%ò&ò
ò<òò
õ(Yr+   r–  c                   ó   • \ rS rSrSrS rSrg)ÚRowRangeiG  ÚROWSc                 ó8   • UR                   R                  X#5      $ r®   )r¸  Úwindow_frame_rows_start_endr³  s       r!   r¤  ÚRowRange.window_frame_start_endJ  s   € Ø�~‰~×9Ñ9¸%ÓEÐEr+   r$   N©r%   r&   r'   r(   r£  r¤  r*   r$   r+   r!   r¶  r¶  G  s   † Ø€JõFr+   r¶  c                   ó   • \ rS rSrSrS rSrg)Ú
ValueRangeiN  ÚRANGEc                 ó8   • UR                   R                  X#5      $ r®   )r¸  Úwindow_frame_range_start_endr³  s       r!   r¤  Ú!ValueRange.window_frame_start_endQ  s   € Ø�~‰~×:Ñ:¸5ÓFÐFr+   r$   Nr»  r$   r+   r!   r½  r½  N  s   † Ø€JõGr+   r½  )_r½   rU  Ú	functoolsrx  rQ  Úcollectionsr   Údecimalr   Úuuidr   Údjango.core.exceptionsr   r   r	   Ú	django.dbr
   r   r   Údjango.db.modelsr   Údjango.db.models.constantsr   Údjango.db.models.query_utilsr   Údjango.utils.deconstructr   Údjango.utils.deprecationr   Údjango.utils.functionalr   Údjango.utils.hashabler   r   r-   r³   rv  rƒ  ÚNoneTyperL   rS   rE   r[   r`   re   r#  r  r   rs   rŠ   rx   r|   rƒ   r¿  r¾  rÁ  rÀ  Ú_connector_combinationsr  r’  r–  Údr~  r>   Úfield_typesr“  r”  r•  Ú	lru_cacher¡  r<   rÂ  rÃ  rÓ   rù  r	  r  r;   ra  rw  r}  r‘  r§  r²  rÁ  r¯   rä  r  r-  rG  rW  rs  r–  r¶  r½  )r>   Ú
field_types   00r!   Ú<module>rÕ     s  ðÛ Û Û Û Û Ý #Ý Ý ç LÑ Lß BÑ BÝ #Ý 1Ý *Ý 4Ý =Ý 3Ý /÷ñ ÷ A'ñ A'÷Htñ tðn	 ô#� ó #ó ð#ñJ �‹:€ð �N‰NØ�N‰NØ�N‰Nð �N‰NØ�N‰NØ�N‰Nñ	
óò	
ˆIð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ×Ñ × 1Ñ 1°6×3DÑ3DÐEØ× Ñ  &×"5Ñ"5°v×7JÑ7JÐKð
ò 	
ñ
	
ñð4 �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nñ
óò
ˆIð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ× Ñ  &×"5Ñ"5°v×7JÑ7JÐKØ× Ñ  &×"3Ñ"3°V×5FÑ5FÐGØ×Ñ × 3Ñ 3°V×5FÑ5FÐGð	
ò 	
ñ
ñð* ×ÑØ×ÑØ×#Ñ#Ø×$Ñ$Ø×Ññ
ó	ò
ˆIð 	Ø× Ñ  &×"5Ñ"5°v×7JÑ7JÐKð
ò 	
ñ
ñ	ð& �N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰NØ�N‰Nñ
ôò

ˆIð "×.Ñ.°×0CÑ0CÀV×EVÑEVÔWˆJð 	Ø˜ :Ð.Ø�zÐ.ð
ò 	
ñ Xñ 	ñ
òð" 	�‰à×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNØ×!Ñ! 6×#3Ñ#3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×Ñ˜v×3Ñ3°V×5EÑ5EÐFØ×!Ñ! 6×#3Ñ#3°V×5EÑ5EÐFð
ðð 	�‰à×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNØ×Ñ˜v×/Ñ/°×1EÑ1EÐFØ×Ñ˜v×3Ñ3°V×5IÑ5IÐJØ×!Ñ! 6×#3Ñ#3°V×5IÑ5IÐJØ×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×!Ñ! 6×#7Ñ#7¸×9MÑ9MÐNà×Ñ˜v×3Ñ3°V×5EÑ5EÐFØ×Ñ˜v×/Ñ/°×1EÑ1EÐFð
ðð__Ð ñB % TÓ*Ð ò	Aó 
!€AØ"#§'¡'¦)Ñˆ	�;Û +ÑˆC��fÙ& s¨I°s¸FÖCó !,ó #,ñ 
!ð ×Ò˜SÑ!ñ!ó "ð!ô_Ð+¨Zô _ôD0Ð+ô 0ôf
Ð,ô 
ñ Ð*Ñ+ô"ˆ
ó "ó ,ð"ôJ"�qô "ôJ
ˆqô 
ñ Ð-Ñ.ôaÐ˜zó aó /ðañH Ð.Ñ/ôLÐ 
ó Ló 0ðLô^
ˆZô 
ôDˆ:ô ô$6ˆ*ô $6ôN&ˆ*ô &ôRB�Tô Bô0�$ô ñ4 Ð:Ñ;ôIÐ*¨Jó Ió <ðIô@0Ð)ô 0ñf Ð-Ñ.ôHˆ:ó Hó /ðHñV Ð-Ñ.ô]+Ð˜zó ]+ó /ð]+ô@2:ˆ~˜zô 2:ôjˆXô ñ$ Ð0Ñ1ô`ˆjó `ó 2ð`ôFqÐ ô qôh?Y�*ô ?YôDFˆ{ô FôG�õ GùòI*ùò$ùò ùós   Ã"A3\ÆB\É$/\Ë?\