+
    JV-j
  ã                  ó&  € ^ RI Ht ^RIH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 R lltR.R 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, R- lltR+# )0é    )Úannotations)ÚImagec               ó$   € V ^8„  d   QhRRRRRR/# )é   ÚimageúImage.ImageÚvalueÚintÚreturn© )Úformats   "Ú_/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/PIL/ImageChops.pyÚ__annotate__r      s!   € ÷ -ñ -�Kð -¨ð -°ñ -ó    c                óF   € \         P                  ! RV P                  V4      # )zNFill a channel with a given gray level.

:rtype: :py:class:`~PIL.Image.Image`
ÚL)r   ÚnewÚsize)r   r	   s   &&r   Úconstantr      s   € ô �9Š9�S˜%Ÿ*™* eÓ,Ð,r   c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   r   )r   s   "r   r   r       s   € ÷ ñ �[ð  [ñ r   c                ó"   € V P                  4       # )zaCopy a channel. Alias for :py:meth:`PIL.Image.Image.copy`.

:rtype: :py:class:`~PIL.Image.Image`
)Úcopy©r   s   &r   Ú	duplicater       s   € ð �:‰:‹<Ðr   c               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   )   s   € ÷ 
.ñ 
.�+ð 
. +ñ 
.r   c                ót   € V P                  4        V P                  V P                  P                  4       4      # )z\
Invert an image (channel). ::

    out = MAX - image

:rtype: :py:class:`~PIL.Image.Image`
)ÚloadÚ_newÚimÚchop_invertr   s   &r   Úinvertr"   )   s)   € ð 
‡J�J„LØ�:‰:�e—h‘h×*Ñ*Ó,Ó-Ð-r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úimage1r   Úimage2r   r   )r   s   "r   r   r   6   s!   € ÷ :ñ :�Kð :¨ð :¸ñ :r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z©
Compares the two images, pixel by pixel, and returns a new image containing
the lighter values. ::

    out = max(image1, image2)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_lighter©r%   r&   s   &&r   Úlighterr*   6   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×-Ñ-¨f¯i©iÓ8Ó9Ð9r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   E   s!   € ÷ 9ñ 9�;ð 9¨ð 9¸ñ 9r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z¨
Compares the two images, pixel by pixel, and returns a new image containing
the darker values. ::

    out = min(image1, image2)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_darkerr)   s   &&r   Údarkerr.   E   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×,Ñ,¨V¯Y©YÓ7Ó8Ð8r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   T   s!   € ÷ =ñ =�{ð =¨Kð =¸Kñ =r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zž
Returns the absolute value of the pixel-by-pixel difference between the two
images. ::

    out = abs(image1 - image2)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_differencer)   s   &&r   Ú
differencer2   T   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   c   s!   € ÷ ;ñ ;�[ð ;¨+ð ;¸+ñ ;r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )a  
Superimposes two images on top of each other.

If you multiply an image with a solid black image, the result is black. If
you multiply with a solid white image, the image is unaffected. ::

    out = image1 * image2 / MAX

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_multiplyr)   s   &&r   Úmultiplyr6   c   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×.Ñ.¨v¯y©yÓ9Ó:Ð:r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   t   s!   € ÷ 9ñ 9�;ð 9¨ð 9¸ñ 9r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zš
Superimposes two inverted images on top of each other. ::

    out = MAX - ((MAX - image1) * (MAX - image2) / MAX)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_screenr)   s   &&r   Úscreenr:   t   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×,Ñ,¨V¯Y©YÓ7Ó8Ð8r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   ‚   ó!   € ÷ 	=ñ 	=�{ð 	=¨Kð 	=¸Kñ 	=r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zs
Superimposes two images on top of each other using the Soft Light algorithm

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_soft_lightr)   s   &&r   Ú
soft_lightr?   ‚   ó8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<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                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zs
Superimposes two images on top of each other using the Hard Light algorithm

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_hard_lightr)   s   &&r   Ú
hard_lightrD   Ž   r@   r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   š   s!   € ÷ 	:ñ 	:�Kð 	:¨ð 	:¸ñ 	:r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )zp
Superimposes two images on top of each other using the Overlay algorithm

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_overlayr)   s   &&r   ÚoverlayrH   š   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×-Ñ-¨f¯i©iÓ8Ó9Ð9r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# ©r   r%   r   r&   ÚscaleÚfloatÚoffsetr   r   )r   s   "r   r   r   ¦   s;   € ÷ Eñ EØðEØ!,ðEØ5:ðEØJOðEàñEr   c                ó¬   € V P                  4        VP                  4        V P                  V P                  P                  VP                  W#4      4      # )zÕ
Adds two images, dividing the result by scale and adding the
offset. If omitted, scale defaults to 1.0, and offset to 0.0. ::

    out = ((image1 + image2) / scale + offset)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_add©r%   r&   rK   rM   s   &&&&r   ÚaddrQ   ¦   s:   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)°UÓCÓDÐDr   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# rJ   r   )r   s   "r   r   r   ·   s;   € ÷ Jñ JØðJØ!,ðJØ5:ðJØJOðJàñJr   c                ó¬   € V P                  4        VP                  4        V P                  V P                  P                  VP                  W#4      4      # )zÚ
Subtracts two images, dividing the result by scale and adding the offset.
If omitted, scale defaults to 1.0, and offset to 0.0. ::

    out = ((image1 - image2) / scale + offset)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_subtractrP   s   &&&&r   ÚsubtractrU   ·   s:   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×.Ñ.¨v¯y©y¸%ÓHÓIÐIr   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   È   s!   € ÷ 
=ñ 
=�{ð 
=¨Kð 
=¸Kñ 
=r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z{Add two images, without clipping the result. ::

    out = ((image1 + image2) % MAX)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_add_modulor)   s   &&r   Ú
add_modulorY   È   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×0Ñ0°·±Ó;Ó<Ð<r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   Õ   s&   € ÷ 
Bñ 
B˜Kð 
B°ð 
BÀñ 
Br   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z€Subtract two images, without clipping the result. ::

    out = ((image1 - image2) % MAX)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_subtract_modulor)   s   &&r   Úsubtract_modulor]   Õ   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×5Ñ5°f·i±iÓ@ÓAÐAr   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   â   s!   € ÷ 6ñ 6˜ð 6¨[ð 6¸[ñ 6r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )aN  Logical AND between two images.

Both of the images must have mode "1". If you would like to perform a
logical AND on an image with a mode other than "1", try
:py:meth:`~PIL.ImageChops.multiply` instead, using a black-and-white mask
as the second image. ::

    out = ((image1 and image2) % MAX)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_andr)   s   &&r   Úlogical_andra   â   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)Ó4Ó5Ð5r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r   ô   s!   € ÷ 5ñ 5�{ð 5¨Kð 5¸Kñ 5r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z–Logical OR between two images.

Both of the images must have mode "1". ::

    out = ((image1 or image2) % MAX)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_orr)   s   &&r   Ú
logical_orre   ô   s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×(Ñ(¨¯©Ó3Ó4Ð4r   c               ó$   € V ^8„  d   QhRRRRRR/# r$   r   )r   s   "r   r   r     s!   € ÷ 6ñ 6˜ð 6¨[ð 6¸[ñ 6r   c                óª   € V P                  4        VP                  4        V P                  V P                  P                  VP                  4      4      # )z£Logical XOR between two images.

Both of the images must have mode "1". ::

    out = ((bool(image1) != bool(image2)) % MAX)

:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    Úchop_xorr)   s   &&r   Úlogical_xorri     s8   € ð ‡K�K„MØ
‡K�K„MØ�;‰;�v—y‘y×)Ñ)¨&¯)©)Ó4Ó5Ð5r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r%   r   r&   ÚalpharL   r   r   )r   s   "r   r   r     s(   € ÷ .ñ .�+ð . {ð .¸5ð .À[ñ .r   c                ó0   € \         P                  ! WV4      # )z}Blend images using constant transparency weight. Alias for
:py:func:`PIL.Image.blend`.

:rtype: :py:class:`~PIL.Image.Image`
)r   Úblend)r%   r&   rk   s   &&&r   rm   rm     s   € ô �;Š;�v uÓ-Ð-r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r%   r   r&   Úmaskr   r   )r   s   "r   r   r     s,   € ÷ 	1ñ 	1Øð	1Ø!,ð	1Ø4?ð	1àñ	1r   c                ó0   € \         P                  ! WV4      # )zzCreate composite using transparency mask. Alias for
:py:func:`PIL.Image.composite`.

:rtype: :py:class:`~PIL.Image.Image`
)r   Ú	composite)r%   r&   ro   s   &&&r   rq   rq     s   € ô �?Š?˜6¨4Ó0Ð0r   Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   Úxoffsetr
   Úyoffsetz
int | Noner   r   )r   s   "r   r   r   (  s(   € ÷ 9ñ 9�+ð 9¨ð 9°jð 9ÈKñ 9r   c                ó‚   € Vf   TpV P                  4        V P                  V P                  P                  W4      4      # )a}  Returns a copy of the image where data has been offset by the given
distances. Data wraps around the edges. If ``yoffset`` is omitted, it
is assumed to be equal to ``xoffset``.

:param image: Input image.
:param xoffset: The horizontal distance.
:param yoffset: The vertical distance.  If omitted, both
    distances are set to the same value.
:rtype: :py:class:`~PIL.Image.Image`
)r   r   r    rM   )r   rs   rt   s   &&&r   rM   rM   (  s3   € ð ‚ØˆØ	‡J�J„LØ�:‰:�e—h‘h—o‘o gÓ7Ó8Ð8r   )g      ð?r   )N)Ú
__future__r   Ú r   r   r   r"   r*   r.   r2   r6   r:   r?   rD   rH   rQ   rU   rY   r]   ra   re   ri   rm   rq   rM   r   r   r   Ú<module>rx      s~   ðõ$ #å õ-õõ
.õ:õ9õ=õ;õ"9õ	=õ	=õ	:÷E÷"Jõ"
=õ
Bõ6õ$5õ6õ.õ	1÷9ñ 9r   