+
    Tj<                        ^ RI t ^ RIHt ^ RIHtHt ^ RIHtHtH	t	H
t
HtHt ^ RIHtHtHtHtHtHtHt ^ RIHt ^ RIHtHtHt  ! R R	]	4      t ! R
 R4      t ! R R]]4      t ! R R]]4      t ! R R]]4      t ! R R]]4      t  ! R R]]4      t! ! R R]]4      t" ! R R]]4      t#R]R]R] R]!R]"R]#R ]/t$R# )!    N)EmptyResultSet)NotSupportedErrormodels)ColPairsExistsFuncResolvedOuterRefSubqueryValue)ExactGreaterThanGreaterThanOrEqualInIsNullLessThanLessThanOrEqual)Query)ANDOR	WhereNodec                   \   a  ] tR t^t o RtRt]P                  ! 4       tR t	R t
R tRtV tR# )TupleT c                ,    \        V P                  4      # N)lensource_expressionsselfs   &Z/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/models/fields/tuple_lookups.py__len__Tuple.__len__   s    4**++    c                ,    \        V P                  4      # r   )iterr   r   s   &r    __iter__Tuple.__iter__"   s    D++,,r#   c                (   VP                  4       R8  dn   \        V P                  ^ ,          ;p\        4      '       dE   VP	                  4       pRVn        \        V.V P                  R,          O5!  P                  W4      # V P                  W4      # )   VALUES:   NN)r)   %   )get_database_version
isinstancer   r   copyfunctionas_sql)r   compiler
connection
first_exprs   &&& r    	as_sqliteTuple.as_sqlite%   s    **,w6:11!44Je<
 <
 $*J"*JBd&=&=b&ABII  {{800r#    N)__name__
__module____qualname____firstlineno__allows_composite_expressionsr0   r   Fieldoutput_fieldr!   r&   r5   __static_attributes____classdictcell____classdict__s   @r    r   r      s/     #' H<<>L,-	1 	1r#   r   c                      a a ] tR t^1t oRtV 3R ltR tR tR tR t	V 3R lt
RV 3R lltV 3R	 ltR
 tV 3R ltRtVtV ;t# )TupleLookupMixinTc                   < V P                  4       '       d-   V P                  4        V P                  4        V P                  # V P                  4        \        SV `  4        V P                  # r   )rhs_is_direct_valuecheck_rhs_is_tuple_or_list"check_rhs_length_equals_lhs_length!check_rhs_is_supported_expressionsuperget_prep_lookuprhsr   	__class__s   &r    rK    TupleLookupMixin.get_prep_lookup4   sW    ##%%++-335 xx 224G#%xxr#   c                    \        V P                  \        \        34      '       g-   V P	                  4       p\        V P                  : R V R24      hR# ) lookup of z must be a tuple or a listN)r.   rL   tuplelistget_lhs_str
ValueErrorlookup_namer   lhs_strs   & r    rG   +TupleLookupMixin.check_rhs_is_tuple_or_list=   sO    $((UDM22&&(G##&k':TU  3r#   c                    \        V P                  4      pV\        V P                  4      8w  d0   V P                  4       p\	        V P
                  : R V RV R24      hR# )rQ    must have z	 elementsN)r   lhsrL   rT   rU   rV   )r   len_lhsrX   s   &  r    rH   3TupleLookupMixin.check_rhs_length_equals_lhs_lengthD   s\    dhh-c$((m#&&(G##&k'+gYiX  $r#   c                    \        V P                  \        \        34      '       gQ   V P	                  4       pV P                  P
                  P                  p\        V P                  : R V RV: R24      hR# ) subquery lookup of z7 only supports OuterRef and QuerySet objects (received )N)	r.   rL   r	   r   rT   rN   r8   rU   rV   r   rX   rhs_clss   &  r    rI   2TupleLookupMixin.check_rhs_is_supported_expressionL   sv    $((%5u$=>>&&(Ghh((11G##&&:7) DIIPSTV  ?r#   c                    \        V P                  \        4      '       d*   \        V P                  P                  P
                  4      # R P                  R V P                   4       4      pRV R2# )z, c              3   L   "   T F  p\        VP                  4      x  K  	  R # 5ir   )reprname).0fs   & r    	<genexpr>/TupleLookupMixin.get_lhs_str.<locals>.<genexpr>Y   s     =Hqd166llHs   "$(ra   )r.   r\   r   rg   fieldrh   join)r   namess   & r    rT   TupleLookupMixin.get_lhs_strU   sR    dhh))++,,II=DHH==EugQ<r#   c                   < \        V P                  \        \        34      '       d   \	        V P                  !  # \
        SV `  4       # r   )r.   r\   rR   rS   r   rJ   get_prep_lhsrM   s   &r    rs   TupleLookupMixin.get_prep_lhs\   s5    dhh..$((##w#%%r#   c                z   < \         SV `  WV4      w  rE\        V P                  \        4      '       g   R V R2pWE3# )rm   ra   )rJ   process_lhsr.   r\   r   )r   r2   r3   r\   sqlparamsrN   s   &&&&  r    rv   TupleLookupMixin.process_lhsa   s<    g)(D$((E**cU!*C{r#   c           	     &  < V P                  4       '       dt   \        V P                  V P                  4       UUu. uF/  w  r4\	        VR 4      '       d   TM\        WCP                  R7      NK1  	  pppVP                  \        V!  4      # VP                  V P                  4      w  rg\        V P                  \        4      '       d   RV,          V3# \        V P                  \        4      '       d   \        SV `5  W4      # \        R4      hu uppi )r1   r>   z(%s)z=Composite field lookups only work with composite expressions.)rF   zipr\   rL   hasattrr   r>   compiler   r.   r   r   rJ   process_rhsrU   )	r   r2   r3   colvalargsrw   rx   rN   s	   &&&     r    r   TupleLookupMixin.process_rhsg   s    ##%% !$DHHdhh 7 !8HC sH-- s1A1ABC !8   ##E4L11"**4884KC$((H--|V++DHHe,,w*8@@ S !s   5Dc                F    \        V P                  P                   R 24      h)zp.get_fallback_sql() must be implemented for backends that don't have the supports_tuple_lookups feature enabled.)NotImplementedErrorrN   r8   )r   r2   r3   s   &&&r    get_fallback_sql!TupleLookupMixin.get_fallback_sql}   s+    !~~&&' (W X
 	
r#   c                  < VP                   P                  '       g   \        V P                  \        4      '       d`   V P                  P
                  '       dD   \        V \        \        \        \        34      '       d   V P                  pR V R2p\        V4      hVP                   P                  '       g   V P                  W4      # \        SV `=  W4      # )"zN" cannot be used to target composite fields through subqueries on this backend)features*supports_tuple_comparison_against_subqueryr.   rL   r   subqueryr   r   r   r   rV   r   supports_tuple_lookupsr   rJ   r1   )r   r2   r3   lookupmsgrN   s   &&&  r    r1   TupleLookupMixin.as_sql   s    ##NNN488U++!!!{$6/R  %%FF8 5 5  $C((""999((>>w~h33r#   r7   r   )r8   r9   r:   r;   r<   rK   rG   rH   rI   rT   rs   rv   r   r   r1   r?   r@   __classcell__rN   rB   s   @@r    rD   rD   1   sB     #'  &
,
4 4r#   rD   c                   2   a a ] tR t^t oV 3R ltRtVtV ;t# )
TupleExactc                T  < \        V P                  \        4      '       d   \        \        V `  W4      # V P                  W4       \        V P                  V P                  4       UUu. uF  w  r4\        W44      NK  	  ppp\        V\        R 7      pVP                  W4      # u uppi 	connector)r.   rL   r   rJ   rD   r1   r   r|   r\   r   r   r   )r   r2   r3   r   r   lookupsrootrN   s   &&&    r    r   TupleExact.get_fallback_sql   s    dhh&&)47MM. 47txx3JK3Jxs5?3JKC0{{800 Ls   )B$r7   )r8   r9   r:   r;   r   r?   r@   r   r   s   @@r    r   r      s     
1 
1r#   r   c                   ,   a  ] tR t^t o R tR tRtV tR# )TupleIsNullc                    V P                   p\        V\        \        34      '       d   \	        V4      ^8X  d
   V^ ,          p\        V\
        4      '       d   V# \        R4      h)r+   z>The QuerySet value for an isnull lookup must be True or False.)rL   r.   rR   rS   r   boolrU   )r   rL   s   & r    rK   TupleIsNull.get_prep_lookup   sQ    hhcE4=))c#h!ma&Cc4  JL
 	
r#   c                    V P                   pV P                   Uu. uF  p\        WC4      NK  	  pp\        YS'       d   \        M\
        R 7      pVP                  W4      # u upi r   )rL   r\   r   r   r   r   r1   )r   r2   r3   rL   r   r   r   s   &&&    r    r1   TupleIsNull.as_sql   sN    
 hh/3xx8x6##x8#B3?{{800 9s   A r7   N)r8   r9   r:   r;   rK   r1   r?   r@   rA   s   @r    r   r      s     
1 1r#   r   c                   &   a  ] tR t^t o R tRtV tR# )TupleGreaterThanc                   V P                  W4       \        P                  ! \        \        .4      p\        P                  ! \
        \        .4      pV P                   UUu. uF  p\        ^4       F  qeNK  	  K  	  pppV P                   UUu. uF  p\        ^4       F  qhNK  	  K  	  p	pp\        VRR 4      p
\        V	RR 4      p\        V
4      p\        V4      p\        V4      p\        V4      p\        V! WX4      .VR7      ;r\        W4       FL  w  rX\        V4      p\        V4      p\        V! WX4      .VR7      pVP                  P                  V4       TpKN  	  VP!                  W4      # u uppi u uppi    Nr   r   	itertoolscycler   r   r   r   r\   rangerL   r%   nextr   r|   childrenappendr1   r   r2   r3   r   
connectorsr   _	cols_listr   	vals_list	cols_iter	vals_iterr   r   r   nodechilds   &&&              r    r   !TupleGreaterThan.get_fallback_sql   sD   . //;"67__b#Y/
$(HH?HSeAhShSH	?$(HH?HSeAhShSH	?3B(	3B(	9o9og$	!1 2iHHI1HC']FZ(Ivc/0IFEMM  'D 2 {{800# @?   !E7E=r7   Nr8   r9   r:   r;   r   r?   r@   rA   s   @r    r   r           1 1r#   r   c                   &   a  ] tR t^t o R tRtV tR# )TupleGreaterThanOrEqualc                   V P                  W4       \        P                  ! \        \        .4      p\        P                  ! \
        \        .4      pV P                   UUu. uF  p\        ^4       F  qeNK  	  K  	  pppV P                   UUu. uF  p\        ^4       F  qhNK  	  K  	  p	pp\        V4      p
\        V	4      p\        V
4      p\        V4      p\        V4      p\        V4      p\        V! WX4      .VR7      ;r\        W4       FL  w  rX\        V4      p\        V4      p\        V! WX4      .VR7      pVP                  P                  V4       TpKN  	  VP!                  W4      # u uppi u uppi r   r   r   r   s   &&&              r    r   (TupleGreaterThanOrEqual.get_fallback_sql   s6   . //;"67__b#Y/
$(HH?HSeAhShSH	?$(HH?HSeAhShSH	?O	O	9o9og$	!1 2iHHI1HC']FZ(Ivc/0IFEMM  'D 2 {{800# @?   !E1E7r7   Nr   rA   s   @r    r   r      r   r#   r   c                   &   a  ] tR t^t o R tRtV tR# )TupleLessThanc                   V P                  W4       \        P                  ! \        \        .4      p\        P                  ! \
        \        .4      pV P                   UUu. uF  p\        ^4       F  qeNK  	  K  	  pppV P                   UUu. uF  p\        ^4       F  qhNK  	  K  	  p	pp\        VRR 4      p
\        V	RR 4      p\        V
4      p\        V4      p\        V4      p\        V4      p\        V! WX4      .VR7      ;r\        W4       FL  w  rX\        V4      p\        V4      p\        V! WX4      .VR7      pVP                  P                  V4       TpKN  	  VP!                  W4      # u uppi u uppi r   r   r   r   r   r   r   r   r\   r   rL   r%   r   r   r|   r   r   r1   r   s   &&&              r    r   TupleLessThan.get_fallback_sql   sD   . //8U"34__b#Y/
$(HH?HSeAhShSH	?$(HH?HSeAhShSH	?3B(	3B(	9o9og$	!1 2iHHI1HC']FZ(Ivc/0IFEMM  'D 2 {{800# @?r   r7   Nr   rA   s   @r    r   r      r   r#   r   c                   &   a  ] tR tRt o R tRtV tR# )TupleLessThanOrEquali  c                   V P                  W4       \        P                  ! \        \        .4      p\        P                  ! \
        \        .4      pV P                   UUu. uF  p\        ^4       F  qeNK  	  K  	  pppV P                   UUu. uF  p\        ^4       F  qhNK  	  K  	  p	pp\        V4      p
\        V	4      p\        V
4      p\        V4      p\        V4      p\        V4      p\        V! WX4      .VR7      ;r\        W4       FL  w  rX\        V4      p\        V4      p\        V! WX4      .VR7      pVP                  P                  V4       TpKN  	  VP!                  W4      # u uppi u uppi r   r   r   s   &&&              r    r   %TupleLessThanOrEqual.get_fallback_sql  s6   . //8U"34__b#Y/
$(HH?HSeAhShSH	?$(HH?HSeAhShSH	?O	O	9o9og$	!1 2iHHI1HC']FZ(Ivc/0IFEMM  'D 2 {{800# @?r   r7   Nr   rA   s   @r    r   r     r   r#   r   c                   \   a a ] tR tRt oV 3R ltR tR tR tV 3R ltV 3R lt	Rt
VtV ;t# )	TupleIni+  c                  < V P                  4       '       d=   V P                  4        V P                  4        V P                  4        V P                  # V P	                  4        \
        \        V `  4        V P                  # r   )	rF   rG   *check_rhs_is_collection_of_tuples_or_lists+check_rhs_elements_length_equals_lhs_lengthcheck_rhs_is_queryrJ   rD   rK   rL   rM   s   &r    rK   TupleIn.get_prep_lookup,  sf    ##%%++-;;=<<>
 xx ##%"D9;xxr#   c                    \         ;QJ d&    R  V P                   4       F  '       d   K   RM	  RM! R  V P                   4       4      '       g-   V P                  4       p\        V P                  : RV R24      hR# )c              3   N   "   T F  p\        V\        \        34      x  K  	  R # 5ir   )r.   rR   rS   )ri   valss   & r    rk   ETupleIn.check_rhs_is_collection_of_tuples_or_lists.<locals>.<genexpr>8  s     Hxt:dUDM22xs   #%FTrQ   z( must be a collection of tuples or listsN)allrL   rT   rU   rV   rW   s   & r    r   2TupleIn.check_rhs_is_collection_of_tuples_or_lists7  sh    sHtxxHsssHtxxHHH&&(G##&k' ;: :  Ir#   c                8  a \        V P                  4      o\        ;QJ d)    V3R  lV P                   4       F  '       d   K   RM	  RM! V3R  lV P                   4       4      '       g0   V P	                  4       p\        V P                  : RV RS R24      hR# )c              3   @   <"   T F  pS\        V4      8H  x  K  	  R # 5ir   )r   )ri   r   r]   s   & r    rk   FTupleIn.check_rhs_elements_length_equals_lhs_length.<locals>.<genexpr>A  s     =HD7c$i'Hs   FTrQ   r[   z elements eachN)r   r\   r   rL   rT   rU   rV   )r   rX   r]   s   & @r    r   3TupleIn.check_rhs_elements_length_equals_lhs_length?  s|    dhh-s=DHH=sss=DHH===&&(G##&k' ;$I^5  >r#   c                    \        V P                  \        \        34      '       gQ   V P	                  4       pV P                  P
                  P                  p\        V P                  : R V RV: R24      hR# )r`   z" must be a Query object (received ra   N)	r.   rL   r   r
   rT   rN   r8   rU   rV   rb   s   &  r    r   TupleIn.check_rhs_is_queryH  ss    $((UH$566&&(Ghh((11G##&&:7) D44;;aA  7r#   c                B  < V P                  4       '       g   \        \        V `  W4      # V P                  pV'       g   \
        h. pV P                  pV F  p\        ;QJ d    R  V 4       F  '       g   K   RM	  RM! R  V 4       4      '       d   K?  TP                  \        \        WV4       UUu. uF/  w  rx\        VR4      '       d   TM\        WP                  R7      NK1  	  upp!  4       K  	  V'       g   \
        hVP                  \        V!  4      # u uppi )c              3   (   "   T F  qR J x  K
  	  R # 5ir   r7   ri   r   s   & r    rk   &TupleIn.process_rhs.<locals>.<genexpr>a       /$3$;$   TFr1   r{   )rF   rJ   rD   r   rL   r   r\   anyr   r   r|   r}   r   r>   r~   )
r   r2   r3   rL   resultr\   r   r   r   rN   s
   &&&      r    r   TupleIn.process_rhsQ  s    '')))4<XRRhh   hhD s/$/sss/$///MM ),C )7HC  'sH55  !&s9I9I!JK )7	 $   v//s   25Dc                   <a V P                   pV'       g   \        h\        V\        4      '       d   \        P
                  P                  V3R  lVP                  VR7      P                  4       ^ ,           4       4      pVP                  4       pTP                  \        P                  ! \        V P                  V4       UUu. uF  w  rV\        WV4      NK  	  upp!  4       VP!                  \#        V4      4      # V P%                  4       '       g   \&        \(        V `W  W4      # \-        . \.        R7      pV P                  pV F  p	\0        ;QJ d    R V	 4       F  '       g   K   RM	  RM! R V	 4       4      '       d   K?  \        W4       UUu. uF  w  rV\        WV4      NK  	  p
ppVP2                  P5                  \-        V
\6        R7      4       K  	  VP2                  '       g   \        hVP+                  W4      # u uppi u uppi )c              3   l   <"   T F)  p\        V^ ,          ;o\        4      '       d   SMS.x  K+  	  R# 5i)r   N)r.   r   )ri   selectselect_exprs   & r    rk   +TupleIn.get_fallback_sql.<locals>.<genexpr>z  s@      6 VF "&)#;;hGG  %' Vs   14)r3   r   c              3   (   "   T F  qR J x  K
  	  R # 5ir   r7   r   s   & r    rk   r     r   r   TF)rL   r   r.   r   r   chainfrom_iterableget_compiler
get_selectcloneadd_qr   Qr|   r\   r   r~   r   rF   rJ   rD   r1   r   r   r   r   r   r   )r   r2   r3   rL   	rhs_exprsr   r   r   r\   r   r   r   rN   s   &&&        @r    r   TupleIn.get_fallback_sqlu  s   hh  c5!!!55 6 "..*.EPPRSTU6 I ))+CII3txx;ST;Sxs5?;STU ##F3K00))++)47MM
 r*hhD s/$/sss/$///7:3~F~83uS~GFMM  7c!BC  }}}  {{800- U" Gs   HH
r7   )r8   r9   r:   r;   rK   r   r   r   r   r   r?   r@   r   r   s   @@r    r   r   +  s)     	"0H%1 %1r#   r   exactgtgteltlteinisnull)%r   django.core.exceptionsr   	django.dbr   r   django.db.models.expressionsr   r   r   r	   r
   r   django.db.models.lookupsr   r   r   r   r   r   r   django.db.models.sqlr   django.db.models.sql.wherer   r   r   r   rD   r   r   r   r   r   r   r   tuple_lookupsr7   r#   r    <module>r     s     1 /    ' 9 91D 1.c4 c4L1!5 11"F 1,1' 181.0B 181$h 181+_ 18o1 o1f Z
	"-	'kr#   