+
    UBi(                       ^ RI Ht ^ RIt^RIHtHt Rt]'       d   ^ RIHt ^ RI	H
t
 ^ RIHt  ! R R	4      tR
 R ltR R ltR R ltR R ltR R ltR R ltR R ltR]R]R]R]R]R]R]/tR R  ltR! R" ltR# )#    )annotationsN)Image_imagingmathF)Callable)CodeType)Anyc                     ] tR t^tRtR R ltR R ltRHR R lltR	 R
 ltR R lt	R R lt
R R ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+ R, ltR- R. ltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 ltR9 R: lt R; R< lt!R= R> lt"R? R@ lt#RA RB lt$RC RD lt%RE RF lt&RGt'R# )I_Operandz4Wraps an image operand, providing standard operatorsc                   V ^8  d   QhRR/# )   imImage.Image )formats   "2/usr/lib/python3.14/site-packages/PIL/ImageMath.py__annotate___Operand.__annotate__!   s      ;     c                	    Wn         R # Nr   )selfr   s   &&r   __init___Operand.__init__!   s    r   c                    V ^8  d   QhRRRR/# )r   im1_Operand | floatreturnr   r   )r   s   "r   r   r   $   s     9 9+ 9 9r   c                	N   \        V\        4      '       d   VP                  P                  R9   d   VP                  P	                  R4      # VP                  P                  R9   d   VP                  # RVP                  P                   2p\        V4      h\        V\        \        34      '       dH   V P                  P                  R9   d-   \        P                  ! RV P                  P                  V4      # \        P                  ! RV P                  P                  V4      # )1IFzunsupported mode: )r    L)r!   r"   )r    r#   r!   )
isinstancer
   r   modeconvert
ValueErrorintfloatr   newsize)r   r   msgs   && r   __fixup_Operand.__fixup$   s    c8$$vv{{j(vv~~c**
*vv*366;;-8 o% #U|,,1PyydggllC88yydggllC88r   Nc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   opstrr   r   im2_Operand | float | Noner%   z
str | Noner   r
   r   )r   s   "r   r   r   6   s<     + ++ + %	+
 + 
+r   c                	   V P                  V4      pVf   \        P                  ! T;'       g    VP                  VP                  R 4      p \        \        V RVP                   24      p\        P                  ! YP                  4       TP                  4       4       EMV P                  V4      p	VP                  V	P                  8w  dE   VP                  R8w  d   VP                  R4      pV	P                  R8w  d   V	P                  R4      p	VP                  V	P                  8w  d   \        VP                  ^ ,          V	P                  ^ ,          4      \        VP                  ^,          V	P                  ^,          4      3p
VP                  V
8w  d   VP                  RV
,           4      pV	P                  V
8w  d   V	P                  RV
,           4      p	\        P                  ! T;'       g    VP                  VP                  R 4      p \        \        V RVP                   24      p\        P                  ! YP                  4       TP                  4       T	P                  4       4       \        T4      #   \         d   pRT R2p\        T4      ThR p?ii ; i  \         d   pRT R2p\        T4      ThR p?ii ; i)N_zbad operand type for ''r"   )r   r   )_Operand__fixupr   r*   r%   r+   getattrr   AttributeError	TypeErrorunopgetimr&   mincropbinopr
   )r   r0   r   r2   r%   im_1outer,   im_2r+   s   &&&&&      r   apply_Operand.apply6   s    ||C ;))D--DIItyy$?C,\bT499++>? b))+tzz|< <<$DyyDII%99#<<,D99#<<,DyyDII% 		!diil3		!diil3 99$99Vd]3D99$99Vd]3D))D--DIItyy$?C,\bT499++>? r99;

djjlK}= " ,.rd!4n!+,4 " ,.rd!4n!+,s0   I= J" =JJJ"K-J??Kc                   V ^8  d   QhRR/# )r   r   boolr   )r   s   "r   r   r   d   s     - -$ -r   c                	:    V P                   P                  4       R J# r   )r   getbboxr   s   &r   __bool___Operand.__bool__d   s    ww ,,r   c                   V ^8  d   QhRR/# r   r   r
   r   )r   s   "r   r   r   h        ' ' 'r   c                	&    V P                  R V 4      # )absrD   rJ   s   &r   __abs___Operand.__abs__h       zz%&&r   c                   V ^8  d   QhRR/# rN   r   )r   s   "r   r   r   k   s       r   c                	    V # r   r   rJ   s   &r   __pos___Operand.__pos__k   s    r   c                   V ^8  d   QhRR/# rN   r   )r   s   "r   r   r   n   rO   r   c                	&    V P                  R V 4      # )negrR   rJ   s   &r   __neg___Operand.__neg__n   rU   r   c                    V ^8  d   QhRRRR/# r   otherr   r   r
   r   )r   s   "r   r   r   r        . .- .( .r   c                	&    V P                  R W4      # addrR   r   ra   s   &&r   __add___Operand.__add__r       zz%--r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r   u        . .. .8 .r   c                	&    V P                  R W4      # rd   rR   rf   s   &&r   __radd___Operand.__radd__u       zz%--r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r   x   rb   r   c                	&    V P                  R W4      # subrR   rf   s   &&r   __sub___Operand.__sub__x   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r   {   rk   r   c                	&    V P                  R W4      # rr   rR   rf   s   &&r   __rsub___Operand.__rsub__{   ro   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r   ~   rb   r   c                	&    V P                  R W4      # mulrR   rf   s   &&r   __mul___Operand.__mul__~   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rk   r   c                	&    V P                  R W4      # r|   rR   rf   s   &&r   __rmul___Operand.__rmul__   ro   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      s     . .!1 .h .r   c                	&    V P                  R W4      # divrR   rf   s   &&r   __truediv___Operand.__truediv__   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      s     . ."2 .x .r   c                	&    V P                  R W4      # r   rR   rf   s   &&r   __rtruediv___Operand.__rtruediv__   ro   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rb   r   c                	&    V P                  R W4      # modrR   rf   s   &&r   __mod___Operand.__mod__   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rk   r   c                	&    V P                  R W4      # r   rR   rf   s   &&r   __rmod___Operand.__rmod__   ro   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rb   r   c                	&    V P                  R W4      # powrR   rf   s   &&r   __pow___Operand.__pow__   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rk   r   c                	&    V P                  R W4      # r   rR   rf   s   &&r   __rpow___Operand.__rpow__   ro   r   c                   V ^8  d   QhRR/# rN   r   )r   s   "r   r   r      s     * *H *r   c                	&    V P                  R V 4      # )invertrR   rJ   s   &r   
__invert___Operand.__invert__   s    zz(D))r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rb   r   c                	&    V P                  R W4      # andrR   rf   s   &&r   __and___Operand.__and__   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rk   r   c                	&    V P                  R W4      # r   rR   rf   s   &&r   __rand___Operand.__rand__   ro   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r           - -, - -r   c                	&    V P                  R W4      # orrR   rf   s   &&r   __or___Operand.__or__       zz$,,r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      s     - -- -( -r   c                	&    V P                  R W4      # r   rR   rf   s   &&r   __ror___Operand.__ror__   s    zz$,,r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rb   r   c                	&    V P                  R W4      # xorrR   rf   s   &&r   __xor___Operand.__xor__   ri   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      rk   r   c                	&    V P                  R W4      # r   rR   rf   s   &&r   __rxor___Operand.__rxor__   ro   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r           1 1 0 1X 1r   c                	&    V P                  R W4      # )lshiftrR   rf   s   &&r   
__lshift___Operand.__lshift__       zz(D00r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )rshiftrR   rf   s   &&r   
__rshift___Operand.__rshift__   r   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )eqrR   rf   s   &&r   __eq___Operand.__eq__   r   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )nerR   rf   s   &&r   __ne___Operand.__ne__   r   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )ltrR   rf   s   &&r   __lt___Operand.__lt__   r   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )lerR   rf   s   &&r   __le___Operand.__le__   r   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )gtrR   rf   s   &&r   __gt___Operand.__gt__   r   r   c                    V ^8  d   QhRRRR/# r`   r   )r   s   "r   r   r      r   r   c                	&    V P                  R W4      # )gerR   rf   s   &&r   __ge___Operand.__ge__   r   r   r   )NN)(__name__
__module____qualname____firstlineno____doc__r   r7   rD   rK   rS   rX   r]   rg   rm   rt   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r   r   r   r
   r
      s    >9$+\-''............*..--..11------ -r   r
   c                    V ^8  d   QhRRRR/# r   r   r
   r   r   )r   s   "r   r   r      s     * * *X *r   c                J    \        V P                  P                  R 4      4      # )r!   r
   r   r&   rJ   s   &r   imagemath_intr          DGGOOC())r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   r      s     * *( *x *r   c                J    \        V P                  P                  R 4      4      # )r"   r   rJ   s   &r   imagemath_floatr      r   r   c               $    V ^8  d   QhRRRRRR/# r   r   r
   ra   r3   r   r   )r   s   "r   r   r      s"     3 3( 3+B 3x 3r   c                *    V P                  R WRR7      # )r   r!   r%   rR   rf   s   &&r   imagemath_equalr         ::dDc:22r   c               $    V ^8  d   QhRRRRRR/# r  r   )r   s   "r   r   r      s"     3 3X 3.E 3( 3r   c                *    V P                  R WRR7      # )r   r!   r  rR   rf   s   &&r   imagemath_notequalr     r  r   c               $    V ^8  d   QhRRRRRR/# r  r   )r   s   "r   r   r      "     * * *)@ *X *r   c                &    V P                  R W4      # )r=   rR   rf   s   &&r   imagemath_minr         ::eT))r   c               $    V ^8  d   QhRRRRRR/# r  r   )r   s   "r   r   r      r
  r   c                &    V P                  R W4      # )maxrR   rf   s   &&r   imagemath_maxr     r  r   c               $    V ^8  d   QhRRRRRR/# )r   r   r
   r%   r1   r   r   )r   s   "r   r   r      s!     + +H +C +H +r   c                J    \        V P                  P                  V4      4      # r   r   )r   r%   s   &&r   imagemath_convertr     s    DGGOOD)**r   r(   r)   equalnotequalr=   r  r&   c               $    V ^8  d   QhRRRRRR/# )r   
expressionzCallable[[dict[str, Any]], Any]kwr   r   r   )r   s   "r   r   r      s"      ; 3 3 r   c                ,   \         P                  4       pVP                  V4       VP                  4        F4  w  r4\	        V\
        P
                  4      '       g   K'  \        V4      W#&   K6  	  V ! V4      p VP                  #   \         d    Tu # i ; i)a	  
Returns the result of an image function.

:py:mod:`~PIL.ImageMath` only supports single-layer images. To process multi-band
images, use the :py:meth:`~PIL.Image.Image.split` method or
:py:func:`~PIL.Image.merge` function.

:param expression: A function that receives a dictionary.
:param **kw: Values to add to the function's dictionary.
:return: The expression result. This is usually an image object, but can
         also be an integer, a floating point value, or a pixel tuple,
         depending on the expression.
)	opscopyupdateitemsr$   r   r
   r   r9   )r  r  argskvrA   s   &,    r   lambda_evalr"     sv     88:DKKO

a%%qkDG  T
Cvv 
s   7B BBc               $    V ^8  d   QhRRRRRR/# )r   r  r1   r  r   r   r   )r   s   "r   r   r     s!     / /C /s /s /r   c                  aaa \         P                  4       oV F1  pRV9   g   \        \        V4      '       g   K"  RV R2p\	        V4      h	  SP                  V4       SP                  4        F5  w  r$\        V\        P                  4      '       g   K'  \        V4      SV&   K7  	  \        V RR4      oR VVV3R lloS! S4       \        P                  ! V RR	\        //S4      p VP                  #   \         d    Tu # i ; i)
a  
Evaluates an image expression. This uses Python's ``eval()`` function to process
the expression string, and carries the security risks of doing so. It is not
recommended to process expressions without considering this.
:py:meth:`~lambda_eval` is a more secure alternative.

:py:mod:`~PIL.ImageMath` only supports single-layer images. To process multi-band
images, use the :py:meth:`~PIL.Image.Image.split` method or
:py:func:`~PIL.Image.merge` function.

:param expression: A string containing a Python-style expression.
:param **kw: Values to add to the evaluation context.
:return: The evaluated expression. This is usually an image object, but can
         also be an integer, a floating point value, or a pixel tuple,
         depending on the expression.
__r6   ' not allowedz<string>evalc                    V ^8  d   QhRRRR/# )r   coder   r   Noner   )r   s   "r   r   !unsafe_eval.<locals>.__annotate__+  s     & &8 & &r   c                   < V P                    F%  p\        V4      \        S4      J g   K  S! V4       K'  	  V P                   F$  pVS9  g   K  VR 8w  g   K  RV R2p\        V4      h	  R# )rQ   r6   r&  N)	co_conststypeco_namesr'   )r)  constnamer,   r  compiled_codescans   &   r   r3  unsafe_eval.<locals>.scan+  s_    ^^EE{d=11U $ MMD4DEM$}- o% "r   
__builtinsrQ   )r  r  hasattrbuiltinsr'   r  r  r$   r   r
   compiler'  rQ   r   r9   )	r  r  r   r,   r!  rA   r  r2  r3  s	   &,    @@@r   unsafe_evalr9    s    & 88:D19!,,aS&CS/! 
 	KKO

a%%qkDG  J
F;M& & 	
--
\E3<$@$
GCvv 
s   *C6 6DD)
__future__r   r7   r   r   TYPE_CHECKINGcollections.abcr   typesr   typingr   r
   r   r   r  r  r  r  r  r  r"  r9  r   r   r   <module>r@     s   " #  !(e- e-R**
33**+
 
=__"	=	= 8/r   