Ë
    6Š·j  ã                  ój   — d Z ddlmZ ddlmZ ddlmZmZ 	 	 	 	 d
d„Z G d„ dej                  «      Z	y	)z*
Parse X Bitmap Distribution Format (BDF)
é    )Úannotations)ÚBinaryIOé   )ÚFontFileÚImagec                óL  — 	 | j                  «       }|sy |j                  d«      rnŒ&|dd  j                  «       j                  d«      }i }	 | j                  «       }|r|j                  d«      rn>|j	                  d«      }||dz   d j                  d«      ||d | j                  d«      <   Œbt        «       }	 | j                  «       }|r|j                  d«      rn	||d d z  }Œ-d	„ |d
   j                  «       D «       \  }}}}	t        j                  ||f«       d„ |d   j                  «       D «       \  }
}|
|f||	 |z
  ||z   |	 fdd||ff}	 t        j                  d||f|dd«      }|t        |d   «      ||fS # t        $ r t        j                  d||f«      }Y Œ5w xY w)Ns	   STARTCHARé	   Úasciis   BITMAPó    r   éÿÿÿÿs   ENDCHARc              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N©Úint©Ú.0Úps     úE/root/workspace/.venv/lib/python3.12/site-packages/PIL/BdfFontFile.pyú	<genexpr>zbdf_char.<locals>.<genexpr>H   s   è ø€ Ò$J°¤S¨§VÑ$Jùó   ‚ÚBBXc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   r   r   s     r   r   zbdf_char.<locals>.<genexpr>M   s   è ø€ Ò8˜1”�A—Ñ8ùr   ÚDWIDTHr   Ú1ÚhexÚENCODING)ÚreadlineÚ
startswithÚstripÚdecodeÚfindÚ	bytearrayÚsplitr   Ú_decompression_bomb_checkÚ	frombytesÚ
ValueErrorÚnewr   )ÚfÚsÚidÚpropsÚiÚbitmapÚwidthÚheightÚx_dispÚy_dispÚdwxÚdwyÚbboxÚims                 r   Úbdf_charr6      sÓ  € ð Ø�J‰J‹LˆÙØØ�<‰<˜Ô%Øð ð 
ˆ1ˆ2ˆ�‰‹×	Ñ	˜gÓ	&€Bð €EØ
Ø�J‰J‹LˆÙ�A—L‘L Ô+ØØ�F‰F�4‹LˆØ'(¨¨Q©° }×';Ñ';¸GÓ'Dˆˆa��ˆe�l‰l˜7Ó#Ñ$ð ô ‹[€FØ
Ø�J‰J‹LˆÙ�A—L‘L Ô,ØØ�!�C�R�&Ñˆð	 ñ %K°U¸5±\×5GÑ5GÓ5IÔ$JÑ!€Eˆ6�6˜6Ü	×#Ñ# U¨F OÔ4ñ 9  h¡× 5Ñ 5Ó 7Ô8�H€Cˆð 
ˆcˆ
Ø	�&�˜6Ñ! 5¨6¡>°F°7Ð;Ø	
ˆAˆu�fÐð€Dð-Ü�_‰_˜S 5¨& /°6¸5À#ÓFˆð
 Œs�5˜Ñ$Ó% t¨RÐ/Ð/øô	 ò -ä�Y‰Y�s˜U F˜OÓ,Šð-ús   ÅE? Å?!F#Æ"F#c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚBdfFontFilez(Font file plugin for the X11 BDF format.c                ój  •— t         ‰| �  «        |j                  «       }|j                  d«      sd}t	        |«      ‚i }g }	 |j                  «       }|r|j                  d«      rn|j                  d«      }||dz   d j                  d«      ||d | j                  d«      <   |d | dv r:|j                  d	«      d
k  r&|j                  ||dz   d j                  d«      «       Œ£	 t        |«      }|sy |\  }}	\  }
}}}d
|	cxk  rt        | j                  «      k  rn n|
|||f| j                  |	<   ŒN)Ns   STARTFONT 2.1znot a valid BDF files   ENDPROPERTIESr   r   r   r
   )s   COMMENTs	   COPYRIGHTs   LogicalFontDescriptionr   )ÚsuperÚ__init__r   r   ÚSyntaxErrorr!   r    Úappendr6   ÚlenÚglyph)ÚselfÚfpr)   Úmsgr+   Úcommentsr,   Úcr*   ÚchÚxyÚdstÚsrcr5   Ú	__class__s                 €r   r;   zBdfFontFile.__init__a   s:  ø€ Ü‰ÑÔà�K‰K‹MˆØ�|‰|Ð,Ô-Ø(ˆCÜ˜cÓ"Ð"àˆØˆàØ—‘“ˆAÙ˜Ÿ™Ð%5Ô6ØØ—‘�t“ˆAØ+,¨Q°©U°R¨=×+?Ñ+?ÀÓ+HˆE�!�B�Q�%—,‘,˜wÓ'Ñ(Ø��!ˆuÐ2Ñ2Ø—6‘6Ð3Ó4°qÒ8Ø—O‘O A a¨!¡e¨b M×$8Ñ$8¸Ó$AÔBð ð Ü˜“ˆAÙØØ)*Ñ&ˆB�‘N�R˜˜c BØ�BÔ(œ˜TŸZ™Z›Õ(Ø!# S¨#¨rÐ!1�—
‘
˜2‘ð ó    )rA   r   ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r;   Ú__classcell__)rI   s   @r   r8   r8   ^   s   ø„ Ù2÷2ñ 2rJ   r8   N)r(   r   rK   zqtuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image.Image] | None)
rP   Ú
__future__r   Útypingr   Ú r   r   r6   r8   © rJ   r   ú<module>rV      s?   ðñ(õ #å ç ð<0Øð<0ðó<0ô~2�(×#Ñ#õ 2rJ   