§
    Å‡tjH  ã                  óü   — U d dl mZ d dlZddlmZmZ ddlmZ ddlmZ	 ddlm
Z ddlmZ dd	lmZ d
Zerd dlmZ d dlmZ dZdZdZdZdZdZdZdZdZdZd„ d„ d„ d„ gZde d<   d$d!„Z! G d"„ d#ej        ¦  «        Z"dS )%é    )ÚannotationsNé   )ÚFontFileÚImage)Úi8)Úi16be)Úi16le)Úi32be)Úi32leF)ÚCallable)ÚBinaryIOifcpé   é   é   é   é    é@   é€   é   c                ó   — | dz   dz	  S )Né   é   © ©Úbitss    úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/PIL/PcfFontFile.pyú<lambda>r   2   s   € �4˜!‘8 ‘/€ ó    c                ó   — | dz   dz	  dz  S )Né   r   éþÿÿÿr   r   s    r   r   r   3   ó   € �4˜"‘9 Ñ" bÑ(€ r   c                ó   — | dz   dz	  dz  S )Né   r   éüÿÿÿr   r   s    r   r   r   4   r"   r   c                ó   — | dz   dz	  dz  S )Né?   r   iøÿÿÿr   r   s    r   r   r   5   r"   r   zlist[Callable[[int], int]]ÚBYTES_PER_ROWÚsÚbytesÚoÚintÚreturnc                ó>   — | ||                       d|¦  «        …         S )Nó    )Úindex)r)   r+   s     r   Úszr1   9   s    € ØˆQ�—’˜ Ñ"Ô"Ð"Ô#Ð#r   c                  óR   ‡ — e Zd ZdZdZddˆ fd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
ˆ xZS )ÚPcfFontFilez(Font file plugin for the X11 PCF format.Únameú	iso8859-1Úfpr   Úcharset_encodingÚstrc           	     ó¸  •— || _         t          |                     d¦  «        ¦  «        }|t          k    rd}t	          |¦  «        ‚t          ¦   «                              ¦   «          t          |                     d¦  «        ¦  «        }i | _        t          |¦  «        D ]‘}t          |                     d¦  «        ¦  «        }t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        t          |                     d¦  «        ¦  «        f| j        |<   Œ’|| _	        |  
                    ¦   «         | _        |                      ¦   «         }|                      |¦  «        }	|                      ¦   «         }
t          |
¦  «        D ]<\  }}|�5||         \  }}}}}}}}|df|||z
  ||z   |fdd||f|	|         f| j        |<   Œ=d S )Nr   znot a PCF filer   )r7   Úl32ÚreadÚ	PCF_MAGICÚSyntaxErrorÚsuperÚ__init__ÚtocÚranger6   Ú_load_propertiesÚinfoÚ_load_metricsÚ_load_bitmapsÚ_load_encodingÚ	enumerateÚglyph)Úselfr6   r7   ÚmagicÚmsgÚcountÚiÚtypeÚmetricsÚbitmapsÚencodingÚchÚixÚxsizeÚysizeÚleftÚrightÚwidthÚascentÚdescentÚ
attributesÚ	__class__s                        €r   r?   zPcfFontFile.__init__B   s¿  ø€ Ø 0ˆÔå�B—G’G˜A‘J”J‘”ˆØ•IÒÐØ"ˆCÝ˜cÑ"Ô"Ð"å‰Œ×ÒÑÔÐå�B—G’G˜A‘J”J‘”ˆØˆŒÝ�u‘”ð 	Oð 	OˆAÝ�r—w’w˜q‘z”z‘?”?ˆDÝ  §¢¨¡¤™_œ_­c°"·'²'¸!±*´*©o¬o½sÀ2Ç7Â7È1Á:Ä:¹¼ÐNˆDŒH�T‰NˆNàˆŒà×)Ò)Ñ+Ô+ˆŒ	à×$Ò$Ñ&Ô&ˆØ×$Ò$ WÑ-Ô-ˆØ×&Ò&Ñ(Ô(ˆõ
   Ñ)Ô)ð 	ð 	‰FˆB�Øˆ~ð ˜B”Kñ	ØØØØØØØØð ˜A�JØ˜7 U™?¨E°D©L¸'ÐBØ˜˜5 %Ð(Ø˜B”Kð	"�”
˜2‘øð	ð 	r   Útagr,   r-   úDtuple[BinaryIO, int, Callable[[bytes], int], Callable[[bytes], int]]c                óð   — | j         |         \  }}}| j        }|                     |¦  «         t          |                     d¦  «        ¦  «        }|dz  rt
          t          }}nt          t          }}||||fS )Nr   )r@   r6   Úseekr:   r;   Úb16Úb32Úl16)rI   r]   ÚformatÚsizeÚoffsetr6   Úi16Úi32s           r   Ú
_getformatzPcfFontFile._getformatp   sp   € ð  $œx¨œ}Ñˆ��fàŒWˆØ
�Š�‰Œˆå�R—W’W˜Q‘Z”Z‘”ˆà�A‰:ð 	 Ý�C�ˆCˆCå�C�ˆCà�6˜3 Ð#Ð#r   údict[bytes, bytes | int]c                óØ  ‡‡— i }|                       t          ¦  «        \  Š}}Š ‰‰                     d¦  «        ¦  «        }ˆˆfd„t          |¦  «        D ¦   «         }|dz  r&‰                     d|dz  z
  t
          j        ¦  «         ‰                      ‰‰                     d¦  «        ¦  «        ¦  «        }|D ]-\  }}}	|rt          ||	¦  «        n|	}
|
|t          ||¦  «        <   Œ.|S )Nr   c           	     óÊ   •— g | ]_} ‰‰                      d ¦  «        ¦  «        t          ‰                      d¦  «        ¦  «         ‰‰                      d ¦  «        ¦  «        f‘Œ`S )r   r   )r;   r   ©Ú.0Ú_r6   rh   s     €€r   ú
<listcomp>z0PcfFontFile._load_properties.<locals>.<listcomp>Œ   sT   ø€ ÐWÐWÐWÀAˆcˆc�"—'’'˜!‘*”*‰oŒo�r "§'¢'¨!¡*¤*™~œ~¨s¨s°2·7²7¸1±:´:©¬Ð?ÐWÐWÐWr   r   )ri   ÚPCF_PROPERTIESr;   rA   r`   ÚioÚSEEK_CURr1   )rI   Ú
propertiesrd   rg   ÚnpropsÚpÚdataÚkr)   ÚvÚproperty_valuer6   rh   s              @@r   rB   zPcfFontFile._load_properties�   sõ   øø€ ð ˆ
à#Ÿš­~Ñ>Ô>ÑˆˆF�C˜à��R—W’W˜Q‘Z”Z‘”ˆð XÐWÐWÐWÐWÍÈvÉÌÐWÑWÔWˆà�A‰:ð 	3Ø�GŠG�A˜ !™Ñ$¥b¤kÑ2Ô2Ð2à�wŠw�s�s˜2Ÿ7š7 1™:œ:‘”Ñ'Ô'ˆàð 	5ð 	5‰GˆAˆq�!Ø9:Ð*A­"¨T°1©+¬+¨+ÀˆNØ&4ˆJ•r˜$ ‘{”{Ñ#Ð#àÐr   ú3list[tuple[int, int, int, int, int, int, int, int]]c                ó¤  ‡‡‡— g Š|                       t          ¦  «        \  Š}Š}	 ddˆfd„}|dz  dk    rMt           ‰‰                     d¦  «        ¦  «        ¦  «        D ] } |ˆfd„t          d¦  «        D ¦   «         Ž  Œ!nMt           |‰                     d¦  «        ¦  «        ¦  «        D ]!} |ˆˆfd„t          d¦  «        D ¦   «         Ž  Œ"‰S )Nr   rV   r,   rW   rX   rY   rZ   r[   r-   ÚNonec           
     ó‚   •— || z
  }||z   }t          j        ||f¦  «         ‰                     ||| |||||f¦  «         d S )N)r   Ú_decompression_bomb_checkÚappend)	rV   rW   rX   rY   rZ   r[   rT   rU   rO   s	           €r   r€   z)PcfFontFile._load_metrics.<locals>.append¡   sa   ø€ ð ˜D‘LˆEØ˜WÑ$ˆEÝÔ+¨U°E¨NÑ;Ô;Ð;Ø�NŠNØ˜˜t U¨E°6¸7ÀJÐOñô ð ð ð r   i ÿ  r   r   c              3  ób   •K  — | ])}t          ‰                     d ¦  «        ¦  «        dz
  V — Œ*dS )r   r   N)r   r;   )rn   ro   r6   s     €r   ú	<genexpr>z,PcfFontFile._load_metrics.<locals>.<genexpr>³   s8   øè è € Ð@Ð@°!�˜BŸGšG A™JœJ™œ¨#Ñ-Ð@Ð@Ð@Ð@Ð@Ð@r   é   r   c              3  óT   •K  — | ]"} ‰‰                      d ¦  «        ¦  «        V — Œ#dS )r   N©r;   ©rn   ro   r6   rg   s     €€r   r‚   z,PcfFontFile._load_metrics.<locals>.<genexpr>¸   s5   øè è € Ð;Ð;¨Q˜˜˜RŸWšW Q™ZœZ™œÐ;Ð;Ð;Ð;Ð;Ð;r   é   )r   )rV   r,   rW   r,   rX   r,   rY   r,   rZ   r,   r[   r,   r-   r}   )ri   ÚPCF_METRICSrA   r;   )rI   rd   rh   r€   rM   r6   rg   rO   s        @@@r   rD   zPcfFontFile._load_metrics™   s  øøø€ ð HJˆà#Ÿš­{Ñ;Ô;ÑˆˆF�C˜ð  ð	ð 	ð 	ð 	ð 	ð 	ð 	ð �V‰O Ò%Ð%å˜3˜3˜rŸwšw q™zœz™?œ?Ñ+Ô+ð Bð B�Ø�Ð@Ð@Ð@Ð@µu¸Q±x´xÐ@Ñ@Ô@ÐAÐAÐAðBõ
 ˜3˜3˜rŸwšw q™zœz™?œ?Ñ+Ô+ð =ð =�Ø�Ð;Ð;Ð;Ð;Ð;µ%¸±(´(Ð;Ñ;Ô;Ð<Ð<Ð<àˆr   rO   úlist[Image.Image]c                óÆ  ‡‡— |                       t          ¦  «        \  Š}}Š ‰‰                     d¦  «        ¦  «        }|t          |¦  «        k    rd}t	          |¦  «        ‚ˆˆfd„t          |¦  «        D ¦   «         }ˆˆfd„t          d¦  «        D ¦   «         }|dz  }|dz  }	||	         }
|                     |
¦  «         ‰                     |
¦  «        }t          |	         }d}|rd}g }t          |¦  «        D ]d}||         d d	…         \  }}|||d	z   …         \  }}|                     t          j	        d||f|||…         d
| ||¦  «        ¦  «        ¦  «         Œe|S )Nr   zWrong number of bitmapsc                óL   •— g | ] } ‰‰                      d ¦  «        ¦  «        ‘Œ!S ©r   r…   rm   s     €€r   rp   z-PcfFontFile._load_bitmaps.<locals>.<listcomp>Ê   s+   ø€ Ð<Ð<Ð< q�3�3�r—w’w˜q‘z”z‘?”?Ð<Ð<Ð<r   c                óL   •— g | ] } ‰‰                      d ¦  «        ¦  «        ‘Œ!S rŒ   r…   rm   s     €€r   rp   z-PcfFontFile._load_bitmaps.<locals>.<listcomp>Ì   s+   ø€ Ð:Ð:Ð:¨A˜˜˜BŸGšG A™JœJ™œÐ:Ð:Ð:r   r   r   z1;RÚ1r   Úraw)
ri   ÚPCF_BITMAPSr;   ÚlenÚOSErrorrA   r€   r(   r   Ú	frombytes)rI   rO   rd   rg   ÚnbitmapsrK   ÚoffsetsÚbitmap_sizesÚbitorderÚpadindexÚ
bitmapsizerw   ÚpadÚmoderP   rM   rT   rU   ÚbÚer6   rh   s                       @@r   rE   zPcfFontFile._load_bitmaps¼   s�  øø€ ð  $Ÿš­{Ñ;Ô;ÑˆˆF�C˜à�3�r—w’w˜q‘z”z‘?”?ˆà•s˜7‘|”|Ò#Ð#Ø+ˆCÝ˜#‘,”,Ðà<Ð<Ð<Ð<Ð<­E°(©O¬OÐ<Ñ<Ô<ˆà:Ð:Ð:Ð:Ð:µ°q±´Ð:Ñ:Ô:ˆð ˜A‘:ˆØ˜A‘:ˆà! (Ô+ˆ
Ø�Š�zÑ"Ô"Ð"à�wŠw�zÑ"Ô"ˆå˜HÔ%ˆØˆØð 	ØˆDàˆÝ�x‘”ð 	ð 	ˆAØ" 1œ: b q bœ>‰LˆE�5Ø˜1˜q 1™u˜9Ô%‰DˆAˆqØ�NŠNÝ”  e¨U ^°T¸!¸A¸#´YÀÀtÈSÈSÐQVÉZÌZÑXÔXñô ð ð ð ˆr   úlist[int | None]c                óä  ‡‡— |                       t          ¦  «        \  Š}Š} ‰‰                     d¦  «        ¦  «         ‰‰                     d¦  «        ¦  «        }} ‰‰                     d¦  «        ¦  «         ‰‰                     d¦  «        ¦  «        }} ‰‰                     d¦  «        ¦  «         ||z
  dz   ||z
  dz   z  }d gt          d|¦  «        z  }ˆˆfd„t	          |¦  «        D ¦   «         }	t	          |t          |¦  «        ¦  «        D ]Y}
	 |	t          t          |
g¦  «                             | j	        ¦  «        ¦  «                 }|dk    r|||
<   ŒJ# t          $ r Y ŒVw xY w|S )Nr   r   r   c                óL   •— g | ] } ‰‰                      d ¦  «        ¦  «        ‘Œ!S )r   r…   r†   s     €€r   rp   z.PcfFontFile._load_encoding.<locals>.<listcomp>ó   s+   ø€ ÐFÐFÐF°˜C˜C §¢¨¡
¤
™OœOÐFÐFÐFr   iÿÿ  )ri   ÚPCF_BDF_ENCODINGSr;   ÚminrA   r‘   ÚordÚ	bytearrayÚdecoder7   ÚUnicodeDecodeError)rI   rd   rh   Ú	first_colÚlast_colÚ	first_rowÚlast_rowÚ	nencodingrQ   Úencoding_offsetsrM   Úencoding_offsetr6   rg   s               @@r   rF   zPcfFontFile._load_encodingæ   s{  øø€ Ø#ŸšÕ/@ÑAÔAÑˆˆF�C˜à!˜c "§'¢'¨!¡*¤*™oœo¨s¨s°2·7²7¸1±:´:©¬�8ˆ	Ø!˜c "§'¢'¨!¡*¤*™oœo¨s¨s°2·7²7¸1±:´:©¬�8ˆ	àˆˆB�GŠG�A‰JŒJ‰Œˆà 	Ñ)¨AÑ-°(¸YÑ2FÈÑ2JÑKˆ	ð '+ V­c°#°yÑ.AÔ.AÑ%AˆàFÐFÐFÐFÐFµU¸9Ñ5EÔ5EÐFÑFÔFÐå�y¥# h¡-¤-Ñ0Ô0ð 		ð 		ˆAðØ"2Ý�	 1 #™œ×-Ò-¨dÔ.CÑDÔDÑEÔEô#�ð # fÒ,Ð,Ø"1�H˜Q‘KøøÝ%ð ð ð à�ðøøøð ˆs   ÄAE Å 
E-Å,E-)r5   )r6   r   r7   r8   )r]   r,   r-   r^   )r-   rj   )r-   r{   )rO   r{   r-   r‰   )r-   rž   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r?   ri   rB   rD   rE   rF   Ú__classcell__)r\   s   @r   r3   r3   =   s´   ø€ € € € € Ø2Ð2à€Dð,ð ,ð ,ð ,ð ,ð ,ð ,ð\$ð $ð $ð $ð"ð ð ð ð0!ð !ð !ð !ðF(ð (ð (ð (ðTð ð ð ð ð ð ð r   r3   )r)   r*   r+   r,   r-   r*   )#Ú
__future__r   rr   Ú r   r   Ú_binaryr   r   ra   r	   rc   r
   rb   r   r:   ÚTYPE_CHECKINGÚcollections.abcr   Útypingr   r<   rq   ÚPCF_ACCELERATORSrˆ   r�   ÚPCF_INK_METRICSr¡   ÚPCF_SWIDTHSÚPCF_GLYPH_NAMESÚPCF_BDF_ACCELERATORSr(   Ú__annotations__r1   r3   r   r   r   ú<module>r¿      s‰  ðð$ #Ð "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	à Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !à€Øð  Ø(Ð(Ð(Ð(Ð(Ð(ØÐÐÐÐÐð
 €	à€ØÐ Ø€Ø€Ø€ØÐ Ø€Ø€ØÐ ð #Ð"Ø(Ð(Ø(Ð(Ø(Ð(ð	-€ð ð ð ñ ð$ð $ð $ð $ðCð Cð Cð Cð C�(Ô#ñ Cô Cð Cð Cð Cr   