§
    ¢”jÎ  ã                  óR  — d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZ ddlZddlZddlZddlZddlZdZ ej        d¦  «        ZdZe                      ej         edd	¦  «        d
 edd¦  «         edd¦  «        d¦  «        e¦  «        Z G d„ de¦  «        Zd„ Zd„ Zd„ Zd„ ZdS )z*xmlWriter.py -- Simple XML authoring classé    )Úannotations)ÚBinaryIOÚCallableÚTextIO)ÚbyteordÚstrjoinÚtobytesÚtostrNz  zfontTools.ttxú?é	   )é   é   é   é    i Ø  i à  )iþÿ  iÿÿ  c                  óŽ   — e Zd Zedddfd#d„Zd„ Zd„ Zd$d„Zd%d„Zd„ Z	d&d„Z
d„ Zd'd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd „ Zd!„ Zd"„ ZdS )(Ú	XMLWriterNÚutf_8ú
Ú
fileOrPathú*str | os.PathLike[str] | BinaryIO | TextIOÚindentwhiteÚstrÚidlefuncúCallable[[], None] | NoneÚencodingÚ
newlinestrústr | bytesÚreturnÚNonec                óÈ  — |                      ¦   «                              dd¦  «                             dd¦  «        dk    rt          d¦  «        ‚|dk    rt          j        }|  t          |d¦  «        sTt          |t          t          j	        f¦  «        st          d¦  «        ‚|| _        t          |d¦  «        | _        d	| _        nd | _        || _        d
| _        	 | j                             d¦  «         t           | _        n6# t          $ r) | j                             d¦  «         t$          | _        Y nw xY w|                      |¦  «        | _        |€%|                      t          j        ¦  «        | _        n|                      |¦  «        | _        d| _        g | _        d| _        || _        d| _        |                      d¦  «         |                      ¦   «          d S )Nú-Ú Ú_Úutf8z!Only UTF-8 encoding is supported.Úwritez]fileOrPath must be a file path (str or PathLike) if it isn't an object with a `write` method.ÚwbTFó    r   é   z&<?xml version="1.0" encoding="UTF-8"?>)ÚlowerÚreplaceÚ	ExceptionÚsysÚstdoutÚhasattrÚ
isinstancer   ÚosÚPathLikeÚ	TypeErrorÚfilenameÚopenÚfileÚ_closeStreamr%   r	   Útotyper
   r   Úlinesepr   ÚindentlevelÚstackÚ
needindentr   ÚidlecounterÚ	_writerawÚnewline)Úselfr   r   r   r   r   s         úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/misc/xmlWriter.pyÚ__init__zXMLWriter.__init__   sÈ  € ð �>Š>ÑÔ×#Ò# C¨Ñ,Ô,×4Ò4°S¸"Ñ=Ô=ÀÒGÐGÝÐ?Ñ@Ô@Ð@Ø˜ÒÐÝœˆJØÐ4Ý�z 7Ñ+Ô+ð 	&Ý˜j­3µ´Ð*<Ñ=Ô=ð ÝØsñô ð ð 'ˆDŒMÝ˜Z¨Ñ.Ô.ˆDŒIØ $ˆDÔÐà ˆDŒMà"ˆDŒIØ %ˆDÔð	 ð ŒI�OŠO˜CÑ Ô Ð Ý!ˆDŒKˆKøÝð 	 ð 	 ð 	 àŒI�OŠO˜BÑÔÐÝˆDŒKˆKˆKð	 øøøð  Ÿ;š; {Ñ3Ô3ˆÔØÐØ"Ÿkšk­"¬*Ñ5Ô5ˆDŒOˆOà"Ÿkšk¨*Ñ5Ô5ˆDŒOØˆÔØˆŒ
ØˆŒØ ˆŒØˆÔØ�ŠÐ?Ñ@Ô@Ð@Ø�Š‰Œˆˆˆs   Ã&D Ä0D8Ä7D8c                ó   — | S ©N© ©r?   s    r@   Ú	__enter__zXMLWriter.__enter__O   s   € Øˆr'   c                ó.   — |                       ¦   «          d S rC   )Úclose)r?   Úexception_typeÚexception_valueÚ	tracebacks       r@   Ú__exit__zXMLWriter.__exit__R   s   € Ø�
Š
‰Œˆˆˆr'   c                óš   — | j         rCt          | j        t          t          j        f¦  «        rJ ‚| j                             ¦   «          d S d S rC   )r6   r/   r5   r   r0   r1   rH   rE   s    r@   rH   zXMLWriter.closeU   sN   € ØÔð 	Ý! $¤)­cµ2´;Ð-?Ñ@Ô@Ð@Ð@Ð@ØŒI�OŠOÑÔÐÐÐð	ð 	r'   Tc                óN   — |                       t          |¦  «        |¬¦  «         dS )zWrites text.©ÚindentN©r=   Úescape)r?   ÚstringrP   s      r@   r%   zXMLWriter.writeZ   s$   € à�Š•v˜f‘~”~¨fˆÑ5Ô5Ð5Ð5Ð5r'   c                ó<   — |                       d|z   dz   ¦  «         dS )zWrites text in a CDATA section.z	<![CDATA[z]]>N)r=   ©r?   rS   s     r@   Ú
writecdatazXMLWriter.writecdata^   s$   € à�Š�{ VÑ+¨eÑ3Ñ4Ô4Ð4Ð4Ð4r'   Fc                óN   — |                       t          |¦  «        |¬¦  «         dS )z¸Writes a bytes() sequence into the XML, escaping
        non-ASCII bytes.  When this is read in xmlReader,
        the original bytes can be recovered by encoding to
        'latin-1'.)ÚstripN)r=   Ú
escape8bit)r?   ÚdatarX   s      r@   Ú	write8bitzXMLWriter.write8bitb   s(   € ð
 	�Š•z $Ñ'Ô'¨uˆÑ5Ô5Ð5Ð5Ð5r'   c                óN   — |                       t          |¦  «        d¬¦  «         dS )z Writes text without indentation.FrO   NrQ   rU   s     r@   Úwrite_noindentzXMLWriter.write_noindenti   s$   € à�Š•v˜f‘~”~¨eˆÑ4Ô4Ð4Ð4Ð4r'   c                ó  — |r5| j         r.| j                             | j        | j        z  ¦  «         d| _         |                      |d¬¦  «        }|r|                     ¦   «         }| j                             |¦  «         dS )z Writes bytes, possibly indented.r   r   )r   N)r;   r5   r%   r9   r   r7   rX   )r?   rZ   rP   rX   Úss        r@   r=   zXMLWriter._writerawm   s}   € àð 	 �d”oð 	 ØŒI�OŠO˜DÔ,¨tÔ/?Ñ?Ñ@Ô@Ð@ØˆDŒOØ�KŠK˜ wˆKÑ/Ô/ˆØð 	Ø—’‘	”	ˆAØŒ	�Š˜ÑÔÐÐÐr'   c                ó´   — | j                              | j        ¦  «         d| _        | j        }|dz  s| j        �|                      ¦   «          |dz   | _        d S )Nr(   éd   )r5   r%   r   r;   r<   r   )r?   r<   s     r@   r>   zXMLWriter.newlinew   sZ   € ØŒ	�Š˜œÑ(Ô(Ð(ØˆŒØÔ&ˆØ˜SÑ ð 	 T¤]Ð%>Ø�MŠM‰OŒOˆOØ&¨™?ˆÔÐÐr'   c                ó&  — t          |¦  «        }|                     d¦  «        }|                      d|d         z   ¦  «         |dd …         D ].}|                      ¦   «          |                      d|z   ¦  «         Œ/|                      d¦  «         d S )Nr   z<!-- r   r(   z     z -->)rR   Úsplitr=   r>   )r?   rZ   ÚlinesÚlines       r@   ÚcommentzXMLWriter.comment   sŽ   € Ý�d‰|Œ|ˆØ—
’
˜4Ñ Ô ˆØ�Š�w  q¤Ñ)Ñ*Ô*Ð*Ø˜!˜"˜"”Ið 	+ð 	+ˆDØ�LŠL‰NŒNˆNØ�NŠN˜7 T™>Ñ*Ô*Ð*Ð*Ø�Š�vÑÔÐÐÐr'   c                óZ   —  | j         |i |¤Ž}d|›|›d�}|                      |¦  «         d S )Nú<z/>)Ústringifyattrsr=   ©r?   Ú_TAG_ÚargsÚkwargsÚattrdatarZ   s         r@   Ú	simpletagzXMLWriter.simpletagˆ   sC   € Ø&�4Ô&¨Ð7°Ð7Ð7ˆˆØ!˜E 8 8 8Ð,ˆØ�Š�tÑÔÐÐÐr'   c                ó¶   —  | j         |i |¤Ž}d|›|›d�}|                      |¦  «         | j                             |¦  «         |                      ¦   «          d S )Nrh   ú>)ri   r=   r:   ÚappendrP   rj   s         r@   ÚbegintagzXMLWriter.begintag�   sd   € Ø&�4Ô&¨Ð7°Ð7Ð7ˆˆØ ˜5 ( ( (Ð+ˆØ�Š�tÑÔÐØŒ
×Ò˜%Ñ Ô Ð Ø�Š‰Œˆˆˆr'   c                ó¶   — | j         r| j         d         |k    s
J d¦   «         ‚| j         d= |                      ¦   «          d|z  }|                      |¦  «         d S )Néÿÿÿÿznonmatching endtagz</%s>)r:   Údedentr=   )r?   rk   rZ   s      r@   ÚendtagzXMLWriter.endtag”   s`   € ØŒzÐK˜dœj¨œn°Ò5Ð5Ð5Ð7KÑ5Ô5Ð5ØŒJ�rˆNØ�Š‰ŒˆØ˜‰ˆØ�Š�tÑÔÐÐÐr'   c                ó:  — d}|dz  }d}t          dt          |¦  «        |¦  «        D ]r}t          ||||z   …         ¦  «        }d}d}t          d||¦  «        D ]}	||z   ||	|	|z   …         z   }d}Œ|                      |¦  «         |                      ¦   «          Œsd S )Né   é   é   r   r"   ú )ÚrangeÚlenÚhexStrr=   r>   )
r?   rZ   Ú
linelengthÚhexlinelengthÚ	chunksizeÚiÚhexlinere   ÚwhiteÚjs
             r@   ÚdumphexzXMLWriter.dumphex›   sÄ   € Øˆ
Ø" Q™ˆØˆ	Ý�q�#˜d™)œ) ZÑ0Ô0ð 	ð 	ˆAÝ˜T ! a¨*¡nÐ"4Ô5Ñ6Ô6ˆGØˆDØˆEÝ˜1˜m¨YÑ7Ô7ð ð �Ø˜e‘| g¨a°!°i±-Ð.?Ô&@Ñ@�Ø��Ø�NŠN˜4Ñ Ô Ð Ø�LŠL‰NŒNˆNˆNð	ð 	r'   c                ó$   — | j         dz   | _         d S )Nr(   ©r9   rE   s    r@   rP   zXMLWriter.indent©   s   € ØÔ+¨aÑ/ˆÔÐÐr'   c                ó>   — | j         dk    sJ ‚| j         dz
  | _         d S )Nr   r(   r‰   rE   s    r@   rv   zXMLWriter.dedent¬   s,   € ØÔ !Ò#Ð#Ð#Ð#ØÔ+¨aÑ/ˆÔÐÐr'   c                ó6  — |r&|rJ ‚t          |                     ¦   «         ¦  «        }n"|rt          |¦  «        dk    sJ ‚|d         }ndS d}|D ]I\  }}t          |t          t
          f¦  «        st          |¦  «        }|d|›dt          |¦  «        ›d�z   }ŒJ|S )Nr(   r   r"   r|   z="ú")ÚsortedÚitemsr~   r/   Úbytesr   Ú
escapeattr)r?   rl   rm   Ú
attributesrZ   ÚattrÚvalues          r@   ri   zXMLWriter.stringifyattrs°   sº   € Øð 	ØˆOˆOˆOÝ §¢¡¤Ñ/Ô/ˆJˆJØð 	Ý�t‘9”9 ’>�>�>�>Ø˜aœˆJˆJà�2ØˆØ%ð 	Að 	A‰KˆD�%Ý˜e¥e­S \Ñ2Ô2ð #Ý˜E™
œ
�Ø�4¨¨¨­j¸Ñ.?Ô.?Ð.?Ð.?Ð@Ñ@ˆDˆDØˆr'   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )T)F)TF)Ú__name__Ú
__module__Ú__qualname__ÚINDENTrA   rF   rL   rH   r%   rV   r[   r]   r=   r>   rf   ro   rs   rw   r‡   rP   rv   ri   rD   r'   r@   r   r      sO  € € € € € ð "Ø.2ØØ"&ð0ð 0ð 0ð 0ð 0ðdð ð ðð ð ðð ð ð ð
6ð 6ð 6ð 6ð5ð 5ð 5ð6ð 6ð 6ð 6ð5ð 5ð 5ðð ð ð ð+ð +ð +ðð ð ðð ð ð
ð ð ðð ð ðð ð ð0ð 0ð 0ð0ð 0ð 0ðð ð ð ð r'   r   c                óä  — t          | d¦  «        } |                      dd¦  «        } |                      dd¦  «        } |                      dd¦  «        } |                      dd	¦  «        } |                      t          ¦  «        }|| k    rgd
}t	          | ¦  «        }t          | ¦  «        |k    r"t	          | d|…         ¦  «        dd…         dz   }t                               d|t          ¦  «         |S )zQEscape characters not allowed in `XML 1.0 <https://www.w3.org/TR/xml/#NT-Char>`_.r   ú&z&amp;rh   z&lt;rq   z&gt;úz&#13;é
   Nr(   ru   z...zEIllegal XML character(s) found; replacing offending string %r with %r)	r
   r*   Ú	translateÚILLEGAL_XML_CHARSÚreprr~   ÚTTX_LOGÚwarningÚREPLACEMENT)rZ   ÚnewDataÚmaxLenÚpreviews       r@   rR   rR   Á   sâ   € å��wÑÔ€DØ�<Š<˜˜WÑ%Ô%€DØ�<Š<˜˜VÑ$Ô$€DØ�<Š<˜˜VÑ$Ô$€DØ�<Š<˜˜gÑ&Ô&€Dà�nŠnÕ.Ñ/Ô/€GØ�$‚€ØˆÝ�t‘*”*ˆÝˆt‰9Œ9�vÒÐÝ˜4   œ=Ñ)Ô)¨!¨B¨$Ô/°%Ñ7ˆGÝ�ŠØSØÝñ	
ô 	
ð 	
ð
 €Nr'   c                óP   — t          | ¦  «        } |                      dd¦  «        } | S )NrŒ   z&quot;)rR   r*   )rZ   s    r@   r�   r�   ×   s%   € Ý�$‰<Œ<€DØ�<Š<˜˜XÑ&Ô&€DØ€Kr'   c                óh   — d„ }t          t          ||                      d¦  «        ¦  «        ¦  «        S )zInput is Unicode string.c                óv   — t          | ¦  «        }d|cxk    rdk    r	n n| dvr| S dt          |¦  «        z   dz   S )Nr   é   z<&>z&#ú;)Úordrž   )ÚcÚns     r@   Ú
escapecharzescape8bit.<locals>.escapecharà   sH   € Ý�‰FŒFˆØ�ˆ>ˆ>Š>ˆ>�cŠ>ˆ>ˆ>ˆ>ˆ>˜a u˜n˜nØˆHà�$˜q™'œ'‘> CÑ'Ð'r'   zlatin-1)r   ÚmapÚdecode)rZ   r­   s     r@   rY   rY   Ý   s7   € ð(ð (ð (õ •3�z 4§;¢;¨yÑ#9Ô#9Ñ:Ô:Ñ;Ô;Ð;r'   c                ó„   — t           j        }d}| D ].}t          |¦  «        }|||dz	  dz           z   ||dz           z   }Œ/|S )Nr"   é   é   )rS   Ú	hexdigitsr   )r_   ÚhÚrr«   rƒ   s        r@   r   r   ê   sT   € ÝÔ€AØ
€AØð /ð /ˆÝ�A‰JŒJˆØ��1˜‘6˜S‘.Ô!Ñ! A a¨#¡g¤JÑ.ˆˆØ€Hr'   ) Ú__doc__Ú
__future__r   Útypingr   r   r   ÚfontTools.misc.textToolsr   r   r	   r
   r,   r0   rS   ÚloggingÚ	itertoolsr—   Ú	getLoggerrŸ   r¡   ÚdictÚfromkeysÚchainr}   r�   Úobjectr   rR   r�   rY   r   rD   r'   r@   ú<module>rÁ      s�  ðØ 0Ð 0à "Ð "Ð "Ð "Ð "Ð "à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ 
€
€
€
Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð à	€Ø
ˆ'Ô
˜OÑ
,Ô
,€Ø€Ø—M’MØ€I„OØˆˆd�DÑÔØØˆˆd�DÑÔØˆˆf�fÑÔØñô ð ñ	ô 	Ð ðbð bð bð bð b�ñ bô bð bðJð ð ð,ð ð ð
<ð 
<ð 
<ðð ð ð ð r'   