ó
    Eñiø#  ã                  óÚ   • S SK Jr  S SKrS SKJr  S SKJr  SSKJrJ	r	J
r
Jr  Sr\(       a  SSKJr   " S	 S
5      rSS jrSS jrSS jrSSS jjrSSS jjrSSS jjrSSS jjrSS jrg)é    )ÚannotationsN)ÚSequence)ÚIOé   )ÚGimpGradientFileÚGimpPaletteFileÚ
ImageColorÚPaletteFileF)ÚImagec                  ó  • \ rS rSrSr  S     SS jjr\SS j5       r\R                  SS j5       r\SS j5       r	\	R                  SS j5       r	SS	 jr
SS
 jrSS jr\r S     SS jjr S     SS jjrSS jrSrg)ÚImagePaletteé   a…  
Color palette for palette mapped images

:param mode: The mode to use for the palette. See:
    :ref:`concept-modes`. Defaults to "RGB"
:param palette: An optional palette. If given, it must be a bytearray,
    an array or a list of ints between 0-255. The list must consist of
    all channels for one color followed by the next color (e.g. RGBRGBRGB).
    Defaults to an empty palette.
Nc                ó\   • Xl         S U l        U=(       d
    [        5       U l        S U l        g ©N)ÚmodeÚrawmodeÚ	bytearrayÚpaletteÚdirty)Úselfr   r   s      ÚM/home/mande/repo/quber/.venv/lib/python3.13/site-packages/PIL/ImagePalette.pyÚ__init__ÚImagePalette.__init__+   s%   € ð
 Œ	Ø#'ˆŒØ×-¤)£+ˆŒØ!%ˆ�
ó    c                ó   • U R                   $ r   )Ú_palette©r   s    r   r   ÚImagePalette.palette5   s   € à�}‰}Ðr   c                ó   • S U l         Xl        g r   )Ú_colorsr   )r   r   s     r   r   r   9   s   € à:>ˆŒØ�r   c                ó2  • U R                   c  [        U R                  5      n0 U l         [        S[        U R                  5      U5       H?  n[        U R                  X"U-    5      nX0R                   ;   a  M.  X!-  U R                   U'   MA     U R                   $ )Nr   )r    Úlenr   Úranger   Útuple)r   Úmode_lenÚiÚcolors       r   ÚcolorsÚImagePalette.colors>   s|   € à�<‰<ÑÜ˜4Ÿ9™9“~ˆHØˆDŒLÜ˜1œc $§,¡,Ó/°Ö:�Ü˜dŸl™l¨1°8©|Ð<Ó=�ØŸL™LÓ(ÙØ&'¡m�—‘˜UÓ#ñ	 ;ð
 �|‰|Ðr   c                ó   • Xl         g r   )r    )r   r(   s     r   r(   r)   J   s   € à�r   c                óÂ   • [        5       nU R                  Ul        U R                  Ul        U R                  b  U R                  S S  Ul        U R                  Ul        U$ r   )r   r   r   r   r   )r   Únews     r   ÚcopyÚImagePalette.copyN   sH   € Ü‹nˆà—9‘9ˆŒØ—l‘lˆŒØ�<‰<Ñ#ØŸ,™,¡q˜/ˆCŒKØ—J‘JˆŒ	àˆ
r   c                óŒ   • U R                   (       a  U R                   U R                  4$ U R                  U R                  5       4$ )zƒ
Get palette contents in format suitable for the low-level
``im.putpalette`` primitive.

.. warning:: This method is experimental.
)r   r   r   Útobytesr   s    r   ÚgetdataÚImagePalette.getdataY   s3   € ð �<�<Ø—<‘< §¡Ð-Ð-Ø�y‰y˜$Ÿ,™,›.Ð(Ð(r   c                óö   • U R                   (       a  Sn[        U5      e[        U R                  [        5      (       a  U R                  $ [
        R
                  " SU R                  5      nUR                  5       $ )zEConvert palette to bytes.

.. warning:: This method is experimental.
ú!palette contains raw palette dataÚB)r   Ú
ValueErrorÚ
isinstancer   ÚbytesÚarrayr0   )r   ÚmsgÚarrs      r   r0   ÚImagePalette.tobytesd   sU   € ð
 �<�<Ø5ˆCÜ˜S“/Ð!Ü�d—l‘l¤E×*Ñ*Ø—<‘<ÐÜ�kŠk˜#˜tŸ|™|Ó,ˆØ�{‰{‹}Ðr   c                ó:  • [        U R                  [        5      (       d  [        U R                  5      U l        [	        U R                  5      [	        U R
                  5      -  nSnU(       aG  UR                  R                  S5      UR                  R                  S5      4nX4;   a  US-  nX4;   a  M  US:¼  a`  U(       aE  [        [        [        UR                  5       5      5      5       H  u  pVUS:X  d  M  XT;  d  M  Un  O   US:¼  a  Sn[        U5      UeU$ )N© Ú
backgroundÚtransparencyr   é   r   z$cannot allocate more than 256 colors)r7   r   r   r   r"   r   ÚinfoÚgetÚreversedÚlistÚ	enumerateÚ	histogramr6   )r   ÚimageÚeÚindexÚspecial_colorsr&   Úcountr:   s           r   Ú_new_color_indexÚImagePalette._new_color_indext   sè   € ô ˜$Ÿ,™,¬	×2Ñ2Ü% d§l¡lÓ3ˆDŒMÜ�D—L‘LÓ!¤S¨¯©£^Ñ3ˆØCEˆÞà—
‘
—‘˜|Ó,Ø—
‘
—‘˜~Ó.ðˆNð Ó)Ø˜‘
�ð Õ)à�C‹<Þä (¬¬i¸¿¹Ó8IÓ.JÓ)KÖ L‘H�AØ •z aÕ&=Ø !˜Ùñ !Mð ˜‹|Ø<�Ü  “o¨1Ð,Øˆr   c                óD  • U R                   (       a  Sn[        U5      e[        U[        5      (       ao  U R                  S:X  a+  [        U5      S:X  a  US   S:w  a  Sn[        U5      eUSS nO$U R                  S:X  a  [        U5      S:X  a  US	-  n U R                  U   $ S[        U5       3n[        U5      e! [         aÙ  nU R                  X$5      n[        U R                  [        5      (       d   eXPR                  U'   [        U R                  5      nXV-  [        U R                  5      :  a8  U R                  SXV-   [        U5      -   U R                  XV-  U-   S -   U l	        OU =R                  [        U5      -  sl	        S
U l        Us SnA$ SnAff = f)zWGiven an rgb tuple, allocate palette entry.

.. warning:: This method is experimental.
r4   ÚRGBé   é   éÿ   z/cannot add non-opaque RGBA color to RGB paletteNÚRGBA)rS   r   zunknown color specifier: )r   r6   r7   r$   r   r"   r(   ÚKeyErrorrM   r   r   r   r8   r   Úrepr)r   r'   rH   r:   rI   rJ   r%   s          r   ÚgetcolorÚImagePalette.getcolorŽ   s|  € ð �<�<Ø5ˆCÜ˜S“/Ð!Ü�eœU×#Ñ#Ø�y‰y˜EÓ!Ü�u“: “?Ø˜Q‘x 3“ØO˜Ü(¨›oÐ-Ø! " 1˜I�EøØ—‘˜fÓ$Ü�u“: “?Ø˜V‘O�EðØ—{‘{ 5Ñ)Ð)ð$ .¬d°5«k¨]Ð;ˆCÜ˜S“/Ð!øô% ó à×-Ñ-¨eÓ7�Ü! $§-¡-´×;Ñ;Ð;Ð;Ø%*—‘˜EÑ"Ü˜tŸy™y›>�ØÑ#¤c¨$¯,©,Ó&7Ó7àŸ™Ð&8¨Ñ(8Ð9Ü ›,ñ'àŸ-™-¨Ñ(8¸8Ñ(CÐ(EÐFñGð •Mð —M’M¤U¨5£\Ñ1•MØ�”
Ø•ûðús   ÂB< Â<
FÃCFÆFÆFc                ó¾  • U R                   (       a  Sn[        U5      eSn[        U[        5      (       a  [	        US5      nSn UR                  S5        UR                  SU R                   S35        [        U R                  5      n[        S5       H�  nUR                  U 5        [        U[        U R                  5      -  US	-   [        U R                  5      -  5       H+  nUR                  S
Xd:  a  U R                  U   OS 35        M-     UR                  S5        M’     U(       a  UR                  5         gg! U(       a  UR                  5         f f = f)zFSave palette to text file.

.. warning:: This method is experimental.
r4   FÚwTz
# Palette
z# Mode: Ú
rA   r   Ú r   N)r   r6   r7   ÚstrÚopenÚwriter   r"   r   r#   Úclose)r   Úfpr:   Úopen_fpÚpalette_lenr&   Újs          r   ÚsaveÚImagePalette.saveº   s  € ð
 �<�<Ø5ˆCÜ˜S“/Ð!ØˆÜ�bœ#×ÑÜ�b˜#“ˆBØˆGð	Ø�H‰H�]Ô#Ø�H‰H�x §	¡	˜{¨"Ð-Ô.Ü˜dŸl™lÓ+ˆKÜ˜3–Z�Ø—‘˜A˜3Ô Ü˜q¤3 t§y¡y£>Ñ1°A¸±E¼SÀÇÁ»^Ñ3KÖL�AØ—H‘H˜q°A³O §¡¨a¢ÈÐ KÐLÖMñ Mà—‘˜–ñ	  ö Ø—‘•
ð øŽwØ—‘•
ð ús   ÁC$E ÅE)r    r   r   r   r   r   )rP   N)r   r]   r   z(Sequence[int] | bytes | bytearray | NoneÚreturnÚNone)rg   ú!Sequence[int] | bytes | bytearray)r   ri   rg   rh   )rg   údict[tuple[int, ...], int])r(   rj   rg   rh   )rg   r   )rg   z-tuple[str, Sequence[int] | bytes | bytearray])rg   r8   )NN)rH   úImage.Image | NonerI   zException | Nonerg   Úintr   )r'   ztuple[int, ...]rH   rk   rg   rl   )ra   zstr | IO[str]rg   rh   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úpropertyr   Úsetterr(   r-   r1   r0   ÚtostringrM   rW   re   Ú__static_attributes__r>   r   r   r   r      sî   † ñ	ð Ø<@ð&àð&ð :ð&ð 
õ	&ð óó ðð ‡^�^ó ó ð ð ó	ó ð	ð ‡]�]óó ðô	ô	)ôð €Hð GKðØ'ðØ3Cðà	õð: %)ð*"àð*"ð "ð*"ð 
õ	*"÷Xr   r   c                ó@   • [        5       nXl        Xl        SUl        U$ )Nr   )r   r   r   r   )r   Údatar   s      r   Úrawrx   Ø   s   € Ü‹n€GØ„OØ„OØ€G„MØ€Nr   c                ó†   • U S:X  a*  [        S5       Vs/ s H  n[        X-  S-  5      PM     sn$ Sn[        U5      es  snf )Nr   rA   rS   z"unavailable when black is non-zero)r#   rl   ÚNotImplementedError)ÚblackÚwhiter&   r:   s       r   Úmake_linear_lutr}   ä   sC   € Ø�ƒzÜ/4°S¬zÓ:ªz¨!”�E‘I Ñ$Ö%©zÑ:Ð:à
.€CÜ
˜cÓ
"Ð"ùò ;s   ”>c                ón   • [        S5       Vs/ s H  n[        US-  U -  S-  S-   5      PM     sn$ s  snf )NrA   g     ào@g      à?)r#   rl   )Úexpr&   s     r   Úmake_gamma_lutr€   ì   s6   € Ü=BÀ3¼ZÓHºZ¸ŒC�!�e‘) Ñ# uÑ,¨sÑ2Ö3¹ZÑHÐHùÒHs   Ž!2c           
     óº   • [        [        S[        U 5      -  5      5      nUR                  5         [	        X Vs/ s H  o"[        U 5      -  PM     sn5      $ s  snf ©NrA   )rE   r#   r"   Úreverser   ©r   r   r&   s      r   Únegativer…   ð   sH   € Ü”5˜œs 4›y™Ó)Ó*€GØ‡O�OÔÜ˜°wÓ?²w°!¤C¨£Iœ~±wÑ?Ó@Ð@ùÒ?s   ºA
c                óˆ   • SSK Jn  [        S[        U 5      -  5       Vs/ s H  o!" SS5      PM     nn[	        X5      $ s  snf )Nr   )ÚrandintrA   rS   )Úrandomr‡   r#   r"   r   )r   r‡   Ú_r   s       r   rˆ   rˆ   ö   s?   € Ýä(-¨c´C¸³I©oÔ(>Ó?Ò(> 1ˆw�q˜#ŽÑ(>€GÐ?Ü˜Ó&Ð&ùò @s    ?c           	     óØ   • [         R                  " U 5       Vs/ s H  n[        SU5      PM     nn[        S[	        S5       Vs/ s H  o2US-     US-     PM     sn5      $ s  snf s  snf )Nr   rP   i   rR   )r	   Úgetrgbr}   r   r#   )r|   ÚbandÚbandsr&   s       r   ÚsepiarŽ   ý   sb   € Ü2<×2CÒ2CÀEÔ2JÓKÒ2J¨$Œ_˜Q Ö%Ñ2J€EÐKÜ˜¼eÀG¼nÓMºn¸ a¨!¡e¡¨Q°!©VÔ 4¹nÑMÓNÐNùò LùÚMs   ™A"ÁA'
c           
     óš   • [        [        S[        U 5      -  5      5      n[        X Vs/ s H  o"[        U 5      -  PM     sn5      $ s  snf r‚   )rE   r#   r"   r   r„   s      r   Úwedger�     s>   € Ü”5˜œs 4›y™Ó)Ó*€GÜ˜°wÓ?²w°!¤C¨£Iœ~±wÑ?Ó@Ð@ùÒ?s   ªA
c                óp  • [        U S5       n[        R                  [        R                  [        R                  /nU H4  n UR	                  S5        U" U5      R                  5       nU(       a    OM6     Sn[        U5      e S S S 5        U$ ! [        [        4 a     Mc  f = f! , (       d  f       W$ = f)NÚrbr   zcannot load palette)	r^   r   r   r
   ÚseekÚ
getpaletteÚSyntaxErrorr6   ÚOSError)Úfilenamera   ÚpaletteHandlersÚpaletteHandlerÚlutr:   s         r   Úloadr›     s¼   € ô 
ˆh˜Ô	 ô ×+Ñ+Ü×-Ñ-Ü×#Ñ#ð
ð 	ó .ˆNðØ—‘˜”
Ù$ RÓ(×3Ñ3Ó5�ÞÙñ ñ	 .ð (ˆCÜ˜#“,Ðð ÷# 
ð0 €Jøô  ¤Ð,ó Úðú÷% 
Ô	ð0 €Jús/   �5B&Á.BÁ1B&ÂB#ÂB&Â"B#Â#B&Â&
B5)r   r]   rw   ri   rg   r   )r{   rl   r|   Úfloatrg   ú	list[int])r   rœ   rg   r�   )rP   )r   r]   rg   r   )z#fff0c0)r|   r]   rg   r   )r—   r]   rg   ztuple[bytes, str])Ú
__future__r   r9   Úcollections.abcr   Útypingr   Ú r   r   r	   r
   ÚTYPE_CHECKINGr   r   rx   r}   r€   r…   rˆ   rŽ   r�   r›   r>   r   r   Ú<module>r£      s]   ðõ$ #ã Ý $Ý ç HÓ Hà€ÞÝ÷rñ rôrô#ôIöAö'öOö
Aõ
r   