ó
    oñ:i°?  ã                   ó¾  • S r SSKJr  Sr/ SQr SSK7  Srg! \ a¾     SSK7  SSK	J
r
  O! \ a    SSK	7   Of = fSr\r\" \\5      (       a  \rOSS	K	Jr   " S
 S\5      r\" 5       4S jrS rSS jr\r " S S\5      rSSKr     SS jrSSKr\R2                  " S5      rS rSSKr\R:                  S 5       rSSK	Jr  S r S r!S r"S r#S r$SS jr% gf = f) aé  Shim module exporting the same ElementTree API for lxml and
xml.etree backends.

When lxml is installed, it is automatically preferred over the built-in
xml.etree module.
On Python 2.7, the cElementTree module is preferred over the pure-python
ElementTree module.

Besides exporting a unified interface, this also defines extra functions
or subclasses built-in ElementTree classes to add features that are
only availble in lxml, like OrderedDict for attributes, pretty_print and
iterwalk.
é    )Útostrz#<?xml version='1.0' encoding='%s'?>)ÚCommentÚdumpÚElementÚElementTreeÚ
fromstringÚfromstringlistÚ	iselementÚ	iterparseÚparseÚ
ParseErrorÚPIÚProcessingInstructionÚQNameÚ
SubElementÚtostringÚtostringlistÚTreeBuilderÚXMLÚ	XMLParserÚregister_namespace)Ú*T)r   F)r   c                   ó<   ^ • \ rS rSrSr\" 5       4U 4S jjrSrU =r$ )r   éD   z4Element subclass that keeps the order of attributes.c                 óÔ   >• [         [        U ]  U5        [        5       U l        U(       a  U R                  R                  U5        U(       a  U R                  R                  U5        g g )N)Úsuperr   Ú__init__Ú_AttribÚattribÚupdate)ÚselfÚtagr   ÚextraÚ	__class__s       €ÚW/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/misc/etree.pyr   ÚElement.__init__G   sJ   ø€ Ü”'˜4Ñ)¨#Ô.Ü!›)ˆDŒKÞØ—‘×"Ñ" 6Ô*ÞØ—‘×"Ñ" 5Õ)ð ó    )r   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   Ú__static_attributes__Ú__classcell__©r$   s   @r%   r   r   D   s   ø† ÙBá'.£y÷ 	*õ 	*r'   r   c                 óN   • U R                   " X40 UD6nU R                  U5        U$ )zvMust override SubElement as well otherwise _elementtree.SubElement
fails if 'parent' is a subclass of Element object.
)r$   Úappend)Úparentr"   r   r#   Úelements        r%   r   r   O   s*   € ð ×"Ò" 3Ñ8°%Ñ8ˆØ�‰�gÔØˆr'   c              #   óÂ   #   • US L =(       d    U R                   U:H  nU(       a  SU;   a  SU 4v •  U  H  n[        XAU5       H  nUv •  M	     M     U(       a  SU 4v •  g g 7f)NÚstartÚend)r"   Ú	_iterwalk)r3   Úeventsr"   ÚincludeÚeÚitems         r%   r7   r7   W   sf   é € Ø˜�+×3 §¡°Ñ!3ˆÞ�w &Ó(Ø˜GÐ$Ò$ÛˆAÜ! !¨SÖ1�Ø”
ó 2ñ ö Ø˜'Ð"Ó"ð ùs   ‚AANc              #   ó�   #   • [        U 5      (       a  U nOU R                  5       nUS:X  a  Sn[        X1U5       H  nUv •  M	     g7f)z—A tree walker that generates events from an existing tree as
if it was parsing XML data with iterparse().
Drop-in replacement for lxml.etree.iterwalk.
r   N)r
   Úgetrootr7   )Úelement_or_treer8   r"   r3   r;   s        r%   Úiterwalkr?   a   sG   é € ô
 �_×%Ñ%Ø%‰Gà%×-Ñ-Ó/ˆGØ�#‹:ØˆCÜ˜g¨sÖ3ˆDØŒJò 4ùs   ‚AAc                   ó:   ^ • \ rS rSrSr     SU 4S jjrSrU =r$ )r   éq   zúElementTree subclass that adds 'pretty_print' and 'doctype'
arguments to the 'write' method.
Currently these are only supported for the default XML serialization
'method', and not also for "html" or "text", for these are delegated
to the base class.
c                 óˆ  >• U(       a  US:w  a  [         [        U ]  UUUUS9  g Ub+  UR                  5       S:X  a  U(       a  [	        S5      eSnSnO$Uc  US L=(       a    UR                  5       S;  nOUnUc  SnU(       a  [        U R                  5        [        X5       nU(       a,  U" [        UR                  5       -  5        U(       a  U" S5        U(       a   U" [        U5      5        U(       a  U" S5        [        U R                  5      u  pš[        X€R                  Xš5        S S S 5        g ! , (       d  f       g = f)	NÚxml)ÚencodingÚxml_declarationÚmethodÚunicodez<Serialisation to unicode must not request an XML declarationF)ÚASCIIzUTF-8ÚUTF8zUS-ASCIIrH   Ú
)r   r   ÚwriteÚlowerÚ
ValueErrorÚupperÚ_indentÚ_rootÚ_get_writerÚXML_DECLARATIONÚ
_tounicodeÚ_namespacesÚ_serialize_xml)r!   Úfile_or_filenamerD   rE   rF   ÚdoctypeÚpretty_printÚwrite_declarationrK   ÚqnamesÚ
namespacesr$   s              €r%   rK   ÚElementTree.writey   s$  ø€ ö ˜& E›/ä”k 4Ñ.Ø$Ø%Ø$3Ø!ð	 /ñ ð àÑ#¨¯©Ó(8¸IÓ(EÞ"Ü$ØVóð ð %*Ð!Ø$‘Ø Ñ(à$,°DÐ$8÷ %¸X¿^¹^Ó=Mð Vñ >Ñ!ð %4Ð!àÑØ"�æä˜Ÿ
™
Ô#äÐ-Ô8¸EÞ$Ùœ/¨H¯N©NÓ,<Ñ<Ô=Þ#Ù˜dœÞÙœ* WÓ-Ô.Þ#Ù˜dœä%0°·±Ó%<Ñ"�Ü˜u§j¡j°&ÔE÷ 9×8Ö8ús   Â"BD3Ä3
E© )NFNNF)r(   r)   r*   r+   r,   rK   r-   r.   r/   s   @r%   r   r   q   s%   ø† ñ	ð Ø!ØØØ÷7	Fõ 7	Fr'   r   c           	      ó¼   • US:X  a  [         R                  " 5       O[         R                  " 5       n[        U 5      R	                  UUUUUUS9  UR                  5       $ )zZCustom 'tostring' function that uses our ElementTree subclass, with
pretty_print support.
rG   )rD   rE   rF   rW   rX   )ÚioÚStringIOÚBytesIOr   rK   Úgetvalue)r3   rD   rE   rF   rW   rX   Ústreams          r%   r   r   ´   sW   € ð #+¨iÓ"7”—’”¼R¿ZºZ»\ˆÜ�GÓ×"Ñ"ØØØ+ØØØ%ð 	#ñ 	
ð �‰Ó Ð r'   u   [ ---í €-í¿¿ï¿¾-ï¿¿]c                 óÔ   •  [        U SSS9n U (       a%  [
        R                  U 5      (       a  [        S5      eU $ ! [         a    [        S5      e[         a    [	        U 5         NYf = f)zîTest if a string is valid user input and decode it to unicode string
using ASCII encoding if it's a bytes string.
Reject all bytes/unicode input that contains non-XML characters.
Reject all bytes input that contains non-ASCII characters.
ÚasciiÚstrict©rD   Úerrorsz^Bytes strings can only contain ASCII characters. Use unicode strings for non-ASCII characters.zYAll strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters)r   ÚUnicodeDecodeErrorrM   ÚAttributeErrorÚ_raise_serialization_errorÚ_invalid_xml_stringÚsearch)Úss    r%   rS   rS   Ö   sz   € ð	*Ü�a '°(Ñ;ˆAö Ô$×+Ñ+¨A×.Ñ.Üð6óð ð ˆøô "ó 	Üð@óð ô ó 	*Ü& qÖ)ð	*ús   ‚; »)A'Á&A'c              #   ó4  #   •  U R                   nUS:X  a  Uv •  g Sn[        U [        R                  5      (       a  U nO~[        U [        R                  5      (       a  [        R
                  " U 5      nSnOF[        R                  " 5       nS Ul        X$l          U R                  Ul        U R                  Ul        [        R                  " UUSSS9n UR                   v •  UR                  5         U(       a  UR                  5         g g ! [         a     N[f = f! UR                  5         U(       a  UR                  5         f f = f! [         aB    [        U SUS:X  a  S	OUSS
9nU   UR                   v •  S S S 5         g ! , (       d  f        g = ff = f7f)NrG   FTc                  ó   • g)NTr]   r]   r'   r%   Ú<lambda>Ú_get_writer.<locals>.<lambda>  s   € ¨4r'   ÚxmlcharrefreplacerJ   )rD   rh   ÚnewlineÚwzutf-8rg   )rK   Ú
isinstancer_   ÚBufferedIOBaseÚ	RawIOBaseÚBufferedWriterÚwritableÚseekableÚtellrj   ÚTextIOWrapperÚdetachÚopen)rV   rD   rK   Údetach_bufferÚbufÚwrapperÚfs          r%   rQ   rQ   î   sn  é € ð4	%Ø$×*Ñ*ˆEð ˜9Ó$à“ð !&�ÜÐ.´×0AÑ0A×BÑBØ*‘CÜÐ 0´"·,±,×?Ñ?Ü×+Ò+Ð,<Ó=�CØ$(‘Mô ×+Ò+Ó-�CÙ#/�C”LØ %”Iðð (8×'@Ñ'@˜œØ#3×#8Ñ#8˜œô ×*Ò*ØØ%Ø.Ø ñ	�ð%Ø!Ÿ-™-Ò'ð —N‘NÔ$Þ$ØŸ
™
�ð %øô *ó Ùðûð —N‘NÔ$Þ$ØŸ
™
�ð %ûôc ó 		äØ ØØ$,°	Ó$9™¸xØ*ñ	ˆAò Ø—g‘g’÷ ——�úð		üs‚   ‚F„E	 �B
FÂ"D Â=FÃD Ã#)FÄ
DÄFÄDÄFÄ*EÅFÅ	 FÅ)FÅ8FÆ FÆ
F	ÆFÆFÆFÆF)Ú_namespace_mapc                 ó  ^^• S S 0m0 mUU4S jnU R                  5        GHX  n U R                  n[        U[        5      (       a#  UR                  T;  a  U" UR                  5        OD[        U[
        5      (       a  UT;  a  U" U5        O Ub  U[        La  U[        La  [        U5        U R                  5        Ho  u  p4[        U[        5      (       a  UR                  nUT;  a  U" U5        [        U[        5      (       d  MK  UR                  T;  d  M]  U" UR                  5        Mq     U R                  n[        U[        5      (       d  GM3  UR                  T;  d  GMF  U" UR                  5        GM[     TT4$ )Nc                 óv  >•  [        U 5      n U S S S:X  aƒ  U SS  R                  SS5      u  pTR                  U5      nUc>  [        R                  " U5      nUc  S[	        T5      -  nO[        U5      nUS:w  a  UTU'   U(       a  U< SU< 3TU '   g UTU '   g U TU '   g ! [
         a    [        U 5         g f = f)Né   Ú{Ú}zns%drC   Ú:)rS   ÚrsplitÚgetr„   ÚlenÚ	TypeErrorrk   )ÚqnameÚurir"   Úprefixr[   rZ   s       €€r%   Ú	add_qnameÚ_namespaces.<locals>.add_qname2  sÄ   ø€ ð2Ü" 5Ó)�Ø˜˜!�9 Ó#Ø$ Q R˜y×/Ñ/°°QÓ7‘H�CØ'Ÿ^™^¨CÓ0�FØ‘~Ü!/×!3Ò!3°CÓ!8˜Ø!™>Ø%+¬c°*«oÑ%=™Fä%/°Ó%7˜FØ! U›?Ø.4˜J s™OÞÛ39º3Ð(?˜˜ušà(+˜˜ušà$)�F˜5’MøÜó 2Ü*¨5Ö1ð2ús   ƒBB  ÂB  ÂB  Â B8Â7B8)
Úiterr"   rv   r   ÚtextÚstrr   r   rk   Úitems)Úelemr’   r"   ÚkeyÚvaluer•   r[   rZ   s         @@r%   rT   rT   )  s)  ù€ ð ˜�ˆð ˆ
ö	2ð2 —I‘I—KˆDØ—(‘(ˆCÜ˜#œu×%Ñ%Ø—8‘8 6Ó)Ù˜cŸh™hÔ'øÜ˜C¤×%Ñ%Ø˜fÓ$Ù˜c”NøØ‘ S´Ò%7¸CÄrºMÜ*¨3Ô/Ø"Ÿj™jžl‘
�Ü˜c¤5×)Ñ)ØŸ(™(�CØ˜fÓ$Ù˜c”NÜ˜e¤U×+Ó+°·
±
À&Õ0HÙ˜eŸj™jÖ)ñ +ð —9‘9ˆDÜ˜$¤×&Ô&¨4¯9©9¸FÖ+BÙ˜$Ÿ)™)×$ñ'  ð( �zÐ!Ð!r'   c           	      óÞ  • UR                   nUR                  nU[        L a  U " S[        U5      -  5        GO	U[        L a  U " S[        U5      -  5        GOêX%b  [        U5      OS    nUc0  U(       a  U " [        U5      5        U H  n[        XUS 5        M     GO¥U " SU-   5        U(       aH  [        UR                  5       S S9 H+  u  p‰U	(       a  SU	-   n	U " SU	< S[        U5      < S	35        M-     UR                  n
U
(       aØ  [        U
5      S
::  d  [        U
5      [        L a  U
R                  5       nO[        U
R                  5       5      nU H‡  u  pÍ[        U[        5      (       a  [        UR                  5      nO[        U5      n[        U[        5      (       a  U[        UR                  5         nO[        U5      nU " SX,   < SU< S	35        M‰     Uc  [        U5      (       aE  U " S5        U(       a  U " [        U5      5        U H  n[        XUS 5        M     U " SU-   S-   5        OU " S5        UR                   (       a  U " [        UR                   5      5        g g )Nz	<!--%s-->z<?%s?>Ú<c                 ó   • U S   $ )Nr‡   r]   )Úxs    r%   rq   Ú _serialize_xml.<locals>.<lambda>s  s   € ¸!¸Aº$r'   )r™   rŠ   z xmlnsz="Ú"r‡   Ú Ú>z</z/>)r"   r•   r   rS   r   Ú_escape_cdatarU   Úsortedr—   Ú_escape_attribr   r�   Útyper   rv   r   Útail)rK   r˜   rZ   r[   Úkwargsr"   r•   r:   r�   r‘   Úattrsr—   ÚkÚvs                 r%   rU   rU   a  sñ  € Ø�h‰hˆØ�y‰yˆØ”'Š>Ù�+¤
¨4Ó 0Ñ0Ö1ØÔ)Ò)Ù�(œZ¨Ó-Ñ-Ö.à©Oœ CœÀÑFˆCØ‰{ÞÙœ-¨Ó-Ô.Û�AÜ" 5¨V°TÖ:ó ñ �c˜C‘iÔ ÞÜ'-Ø"×(Ñ(Ó*±ô(™˜ö "Ø%(¨6¡\˜FÚ³¼ÈÖ9LÐMÖNñ(ð Ÿ™�Þä˜5“z Q“¬$¨u«+¼Ò*@Ø %§¡£™ô !' u§{¡{£}Ó 5˜Û %™˜Ü% a¬×/Ñ/Ü *¨1¯6©6Ó 2™Aä *¨1£˜AÜ% a¬×/Ñ/Ø &¤z°!·&±&Ó'9Ñ :™Aä .¨qÓ 1˜AÚ¨F¬I³qÐ9Ö:ñ !&ð Ñ#¤s¨4§y¡yÙ˜#”JÞÙœm¨DÓ1Ô2Û!˜Ü& u°¸Ö>ñ "á˜$ ™* sÑ*Õ+á˜$”KØ�9�9Ù”- §	¡	Ó*Õ+ð r'   c                 óP   • [        SU < S[        U 5      R                  < S35      e)Nzcannot serialize z (type Ú))rŽ   r¦   r(   ©r•   s    r%   rk   rk   –  s   € Ý»4ÄÀdÃ×ATÔATÐUÓVÐVr'   c                 óð   •  [        U 5      n SU ;   a  U R                  SS5      n SU ;   a  U R                  SS5      n SU ;   a  U R                  SS5      n U $ ! [        [        4 a    [	        U 5         g f = f)NÚ&ú&amp;rœ   ú&lt;r¢   ú&gt;©rS   ÚreplacerŽ   rj   rk   r®   s    r%   r£   r£   ™  sw   € ð	-Ü˜dÓ#ˆDà�d‹{Ø—|‘| C¨Ó1�Ø�d‹{Ø—|‘| C¨Ó0�Ø�d‹{Ø—|‘| C¨Ó0�ØˆKøÜœ>Ð*ó 	-Ü& tÖ,ð	-ús   ‚AA ÁA5Á4A5c                 óP  •  [        U 5      n SU ;   a  U R                  SS5      n SU ;   a  U R                  SS5      n SU ;   a  U R                  SS5      n SU ;   a  U R                  SS5      n S	U ;   a  U R                  S	S
5      n U $ ! [        [        4 a    [	        U 5         g f = f)Nr°   r±   rœ   r²   r¢   r³   r    z&quot;rJ   z&#10;r´   r®   s    r%   r¥   r¥   ¨  s¥   € ð	-Ü˜dÓ#ˆDØ�d‹{Ø—|‘| C¨Ó1�Ø�d‹{Ø—|‘| C¨Ó0�Ø�d‹{Ø—|‘| C¨Ó0�Ø�d‹{Ø—|‘| C¨Ó2�Ø�t‹|Ø—|‘| D¨'Ó2�ØˆKøÜœ>Ð*ó 	-Ü& tÖ,ð	-ús   ‚BB ÂB%Â$B%c                 ó0  • SUS-  -   n[        U 5      (       a¿  U R                  (       a  U R                  R                  5       (       d
  US-   U l        U R                  (       a  U R                  R                  5       (       d  X l        U  H  n [	        XS-   5        M     U R                  (       a  U R                  R                  5       (       d  X l        g g U(       a8  U R                  (       a  U R                  R                  5       (       d  X l        g g g )NrJ   z  r‡   )r�   r•   Ústripr§   rO   )r˜   ÚlevelÚis      r%   rO   rO   º  s¶   € à�5˜4‘<ÑˆÜˆt�9‰9Ø—9—9 D§I¡I§O¡O×$5Ñ$5Ø ™H�”	Ø—9—9 D§I¡I§O¡O×$5Ñ$5Ø”	Û�Ü˜ a™iÖ(ñ à—9—9 D§I¡I§O¡O×$5Ñ$5Ø•	ð %6ö ˜dŸiŸi¨t¯y©y¯©×/@Ñ/@Ø•	ð 0Aˆur'   ))r6   N)NNNNF)r   )&r,   ÚfontTools.misc.textToolsr   rR   Ú__all__Ú
lxml.etreeÚ
_have_lxmlÚImportErrorÚxml.etree.cElementTreeÚxml.etree.ElementTreer   Údictr   rv   r   r¦   Ú_Elementr   r7   r?   r   Ú_ElementTreer_   r   ÚreÚcompilerl   rS   Ú
contextlibÚcontextmanagerrQ   r„   rT   rU   rk   r£   r¥   rO   r]   r'   r%   Ú<module>rÉ      s2  ðñõ +ð <€ò€ð0\Üà�JøØó Xð,Ü,ö 	.øØó ,Þ+ð,úà€Jà€Gá�'˜4× Ñ Ø‰õ 	>ô	*�(ô 	*ñ (/£yô ò#ôð €Lô?F�lô ?FóB ð ØØØØô!ó0 ð Ÿ*š*ØMóÐòó, à×Ññ6%ó ð6%õp 5ò6"òp3,òjWò-ò-ö$ðUXús+   � ˜CŸ+ªC«9¶C¸9¹B CÃC