§
    ¢”jì%  ã                   óÖ   — d Z ddlmZ ddlmZ ddlmZmZ ddlmZm	Z	 	 ddl
mZ n# e$ r d„ ZY nw xY w G d„ d	ej        ¦  «        Zd
„ Z G d„ de¦  «        Z G d„ d¦  «        Zd„ ZdS )a?  
SAX-based adapter to copy trees from/to the Python standard library.

Use the `ElementTreeContentHandler` class to build an ElementTree from
SAX events.

Use the `ElementTreeProducer` class or the `saxify()` function to fire
the SAX events of an ElementTree against a SAX ContentHandler.

See https://lxml.de/sax.html
é    )ÚContentHandler)Úetree)ÚElementTreeÚ
SubElement)ÚCommentÚProcessingInstruction)ÚGenericAliasc                 ó&   — | j         › d|j         › d�S )Nú[ú])Ú__name__©ÚclsÚitems     úW/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/lxml/sax.pyÚ_GenericAliasr      s   € Ø”,Ð1Ð1 ¤Ð1Ð1Ð1Ð1ó    c                   ó   — e Zd ZdZdS )ÚSaxErrorzGeneral SAX error.
    N)r   Ú
__module__Ú__qualname__Ú__doc__© r   r   r   r      s   € € € € € ðð ð ð r   r   c                 ó€   — | d         dk    r/d| v r+t          | dd …                              dd¦  «        ¦  «        S d | fS )Nr   Ú{Ú}é   )ÚtupleÚsplit)Útags    r   Ú	_getNsTagr!       sE   € Ø
ˆ1„v�‚}€}˜ ˜˜Ý�S˜˜˜”W—]’] 3¨Ñ*Ô*Ñ+Ô+Ð+à�SˆyÐr   c                   óš   — e Zd ZdZdd„Zd„ Z eeej        ¬¦  «        Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zdd„Zd„ Zd„ Zdd„Zd„ Zd„ ZeZd„ ZdS )ÚElementTreeContentHandlerz/Build an lxml ElementTree from SAX events.
    Nc                 ó²   — t          j        | ¦  «         d | _        g | _        g | _        d | _        d d gi| _        i | _        |€t          j	        }|| _
        d S ©N)r   Ú__init__Ú_rootÚ_root_siblingsÚ_element_stackÚ_default_nsÚ_ns_mappingÚ_new_mappingsr   ÚElementÚ_makeelement)ÚselfÚmakeelements     r   r&   z"ElementTreeContentHandler.__init__*   sd   € ÝÔ Ñ%Ô%Ð%ØˆŒ
Ø ˆÔØ ˆÔØˆÔØ! T FÐ,ˆÔØˆÔØÐÝœ-ˆKØ'ˆÔÐÐr   c                 ó*   — t          | j        ¦  «        S )z=Contains the generated ElementTree after parsing is finished.)r   r'   ©r/   s    r   Ú
_get_etreez$ElementTreeContentHandler._get_etree6   s   € å˜4œ:Ñ&Ô&Ð&r   )Údocc                 ó   — d S r%   r   )r/   Úlocators     r   ÚsetDocumentLocatorz,ElementTreeContentHandler.setDocumentLocator<   ó   € Øˆr   c                 ó   — d S r%   r   r2   s    r   ÚstartDocumentz'ElementTreeContentHandler.startDocument?   r8   r   c                 ó   — d S r%   r   r2   s    r   ÚendDocumentz%ElementTreeContentHandler.endDocumentB   r8   r   c                 óª   — || j         |<   	 | j        |                              |¦  «         n# t          $ r |g| j        |<   Y nw xY w|€	|| _        d S d S r%   )r,   r+   ÚappendÚKeyErrorr*   )r/   ÚprefixÚuris      r   ÚstartPrefixMappingz,ElementTreeContentHandler.startPrefixMappingE   s}   € Ø%(ˆÔ˜6Ñ"ð	-ØÔ˜VÔ$×+Ò+¨CÑ0Ô0Ð0Ð0øÝð 	-ð 	-ð 	-Ø(+ uˆDÔ˜VÑ$Ð$Ð$ð	-øøøàˆ>Ø"ˆDÔÐÐð ˆ>s   Œ - ­AÁAc                 ój   — | j         |         }|                     ¦   «          |€|d         | _        d S d S ©Néÿÿÿÿ)r+   Úpopr*   )r/   r@   Úns_uri_lists      r   ÚendPrefixMappingz*ElementTreeContentHandler.endPrefixMappingN   s=   € ØÔ& vÔ.ˆØ�ŠÑÔÐØˆ>Ø*¨2œˆDÔÐÐð ˆ>r   c                 óN   — |\  }}|rd|z  }n| j         rd| j         ›d|›�}n|}|S )Nú{%s}%sr   r   )r*   )r/   Úns_name_tupleÚns_uriÚ
local_nameÚel_tags        r   Ú	_buildTagz#ElementTreeContentHandler._buildTagT   sQ   € Ø*Ñˆ�
Øð 	 Ø Ñ-ˆFˆFØÔð 	 ð 	 Ø!%Ô!1Ð!1Ð!1°:°:Ð>ˆFˆFàˆFØˆr   c                 ór  — |                       |¦  «        }|r`i }	 |                     ¦   «         }n$# t          $ r |                     ¦   «         }Y nw xY w|D ] \  }}|d         rd|z  }	n|d         }	|||	<   Œ!nd }| j        }
| j        €d|                      ||| j        ¦  «        x}| _        | j        r/t          |d¦  «        r| j        D ]}| 
                    |¦  «         Œ| j        d d …= nt          |
d         ||| j        ¦  «        }|
                     |¦  «         | j                             ¦   «          d S )Nr   rJ   r   ÚaddpreviousrE   )rO   Ú	iteritemsÚAttributeErrorÚitemsr)   r'   r.   r,   r(   ÚhasattrrQ   r   r>   Úclear)r/   Úns_nameÚqnameÚ
attributesÚel_nameÚattrsÚiter_attributesÚ
name_tupleÚvalueÚ	attr_nameÚelement_stackÚelementÚsiblings                r   ÚstartElementNSz(ElementTreeContentHandler.startElementNS^   s’  € Ø—.’. Ñ)Ô)ˆØð 	ØˆEð5Ø",×"6Ò"6Ñ"8Ô"8��øÝ!ð 5ð 5ð 5Ø",×"2Ò"2Ñ"4Ô"4���ð5øøøð &5ð )ð )Ñ!�
˜EØ˜a”=ð .Ø (¨:Ñ 5�I�Ià *¨1¤�IØ#(��iÑ Ð ð)ð ˆEàÔ+ˆØŒ:Ðà×'Ò'¨°¸Ô8JÑKÔKðLˆG�d”jàÔ"ð 1¥w¨w¸Ñ'FÔ'Fð 1Ø#Ô2ð 1ð 1�GØ×'Ò'¨Ñ0Ô0Ð0Ð0ØÔ# A A AÐ&Ð&å  ¨rÔ!2°GØ!&¨Ô(:ñ<ô <ˆGà×Ò˜WÑ%Ô%Ð%àÔ× Ò Ñ"Ô"Ð"Ð"Ð"s   ›0 °AÁAc                 ó¬   — t          ||¦  «        }| j        €| j                             |¦  «         d S | j        d                              |¦  «         d S rD   )r   r'   r(   r>   r)   )r/   ÚtargetÚdataÚpis       r   ÚprocessingInstructionz/ElementTreeContentHandler.processingInstruction   sX   € Ý" 6¨4Ñ0Ô0ˆØŒ:ÐØÔ×&Ò& rÑ*Ô*Ð*Ð*Ð*àÔ Ô#×*Ò*¨2Ñ.Ô.Ð.Ð.Ð.r   c                 óœ   — | j                              ¦   «         }|                      |¦  «        }||j        k    rt	          d|z   ¦  «        ‚d S )NzUnexpected element closed: )r)   rF   rO   r    r   )r/   rW   rX   ra   rN   s        r   ÚendElementNSz&ElementTreeContentHandler.endElementNS†   sP   € ØÔ%×)Ò)Ñ+Ô+ˆØ—’ Ñ(Ô(ˆØ�W”[Ò Ð ÝÐ8¸6ÑAÑBÔBÐBð !Ð r   c                 óx   — |rd„ |                      ¦   «         D ¦   «         }|                      d |f||¦  «         d S )Nc                 ó   — i | ]
\  }}d |f|“ŒS r%   r   )Ú.0ÚkÚvs      r   ú
<dictcomp>z:ElementTreeContentHandler.startElement.<locals>.<dictcomp>Ž   s"   € ÐFÐFÐF©4¨1¨a˜4 ˜) QÐFÐFÐFr   )rT   rc   )r/   ÚnamerY   s      r   ÚstartElementz&ElementTreeContentHandler.startElementŒ   sL   € Øð 	GØFÐF°:×3CÒ3CÑ3EÔ3EÐFÑFÔFˆJØ×Ò˜T 4˜L¨$°
Ñ;Ô;Ð;Ð;Ð;r   c                 ó6   — |                       d |f|¦  «         d S r%   )rj   )r/   rq   s     r   Ú
endElementz$ElementTreeContentHandler.endElement‘   s"   € Ø×Ò˜4 ˜,¨Ñ-Ô-Ð-Ð-Ð-r   c                 ó˜   — | j         d         }	 |d         }|j        pd|z   |_        d S # t          $ r |j        pd|z   |_        Y d S w xY w)NrE   Ú )r)   ÚtailÚ
IndexErrorÚtext)r/   rf   Úlast_elements      r   Ú
charactersz$ElementTreeContentHandler.characters”   s{   € ØÔ*¨2Ô.ˆð	Aà'¨Ô+ˆLð
 ".Ô!2Ð!8°b¸DÑ @ˆLÔÐÐøõ	 ð 	Að 	Að 	Aà!-Ô!2Ð!8°b¸DÑ @ˆLÔÐÐÐð	Aøøøs   �* ªA	ÁA	c                 ó"   — t          | |¦  «        S r%   )r   r   s     r   Ú__class_getitem__z+ElementTreeContentHandler.__class_getitem__¢   s   € Ý˜S $Ñ'Ô'Ð'r   r%   )r   r   r   r   r&   r3   Úpropertyr   r7   r:   r<   rB   rH   rO   rc   rh   rj   rr   rt   r{   ÚignorableWhitespacer}   r   r   r   r#   r#   '   s6  € € € € € ðð ð
(ð 
(ð 
(ð 
(ð'ð 'ð 'ð ˆH�Z ZÔ%7Ð8Ñ8Ô8€Eðð ð ðð ð ðð ð ð#ð #ð #ð/ð /ð /ðð ð ð#ð #ð #ð #ðB/ð /ð /ðCð Cð Cð<ð <ð <ð <ð
.ð .ð .ð	Að 	Að 	Að %Ðð(ð (ð (ð (ð (r   r#   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )ÚElementTreeProducerz5Produces SAX events for an element and children.
    c                 ó®   — 	 |                      ¦   «         }n# t          $ r |}Y nw xY w|| _        || _        ddlm} || _         |i i ¦  «        | _        d S )Nr   )ÚAttributesNSImpl)ÚgetrootrS   Ú_elementÚ_content_handlerÚxml.sax.xmlreaderrƒ   Ú_attr_classÚ_empty_attributes)r/   Úelement_or_treeÚcontent_handlerra   Ú
attr_classs        r   r&   zElementTreeProducer.__init__©   s�   € ð	&Ø%×-Ò-Ñ/Ô/ˆGˆGøÝð 	&ð 	&ð 	&Ø%ˆGˆGˆGð	&øøøàˆŒØ /ˆÔØDÐDÐDÐDÐDÐDØ%ˆÔØ!+ ¨B°Ñ!3Ô!3ˆÔÐÐs   ‚ —&¥&c                 óæ  — | j                              ¦   «          | j        }t          |d¦  «        r“g }|                     ¦   «         }t          |dd ¦  «        t          u rA|                     |¦  «         |                     ¦   «         }t          |dd ¦  «        t          u °A|d d d…         D ]}|                      |i ¦  «         Œ|                      |i ¦  «         t          |d¦  «        rn| 	                    ¦   «         }t          |dd ¦  «        t          u rB|                      |i ¦  «         | 	                    ¦   «         }t          |dd ¦  «        t          u °B| j          
                    ¦   «          d S )NÚgetpreviousr    rE   Úgetnext)r†   r:   r…   rU   rŽ   Úgetattrr   r>   Ú_recursive_saxifyr�   r<   )r/   ra   Úsiblingsrb   s       r   ÚsaxifyzElementTreeProducer.saxify´   sz  € ØÔ×+Ò+Ñ-Ô-Ð-à”-ˆÝ�7˜MÑ*Ô*ð 	4ØˆHØ×)Ò)Ñ+Ô+ˆGÝ˜' 5¨$Ñ/Ô/Õ3HÐHÐHØ—’ Ñ(Ô(Ð(Ø!×-Ò-Ñ/Ô/�õ ˜' 5¨$Ñ/Ô/Õ3HÐHÐHð $ D D b Dœ>ð 4ð 4�Ø×&Ò& w°Ñ3Ô3Ð3Ð3à×Ò˜w¨Ñ+Ô+Ð+å�7˜IÑ&Ô&ð 	,Ø—o’oÑ'Ô'ˆGÝ˜' 5¨$Ñ/Ô/Õ3HÐHÐHØ×&Ò& w°Ñ3Ô3Ð3Ø!Ÿ/š/Ñ+Ô+�õ ˜' 5¨$Ñ/Ô/Õ3HÐHÐHð 	Ô×)Ò)Ñ+Ô+Ð+Ð+Ð+r   c                 óp  — | j         }|j        }|t          u s	|t          u rI|t          u r |                     |j        |j        ¦  «         |j        }|r|                     |¦  «         d S |j	        }g }||k    rJ| 
                    ¦   «         D ]5\  }}	|                     |¦  «        |	k    r|                     ||	f¦  «         Œ6| 
                    ¦   «         }
|
r`i }i }|
D ]B\  }}t          |¦  «        }|||<   |                      |d         |d         |d d¬¦  «        ||<   ŒC|                      ||¦  «        }n| j        }t          |¦  «        \  }	}|                      |	|||j        d¬¦  «        }|D ]\  }}|                     ||¦  «         Œ|                     |	|f||¦  «         |j        }|r|                     |¦  «         |D ]}|                      ||¦  «         Œ|                     |	|f|¦  «         |D ]\  }}|                     |¦  «         Œ|j        }|r|                     |¦  «         d S d S )Nr   r   T)Úpreferred_prefixÚis_attributeF)r–   )r†   r    r   r   rh   re   ry   rw   r{   ÚnsmaprT   Úgetr>   r!   Ú_build_qnamerˆ   r‰   r@   rB   rc   r‘   rj   rH   )r/   ra   Úparent_nsmapr‹   r    rw   Úelement_nsmapÚnew_prefixesr@   rL   ÚattribsÚattr_valuesÚattr_qnamesÚattr_ns_namer^   Úattr_ns_tupleÚsax_attributesrM   rX   rA   ry   Úchilds                         r   r‘   z%ElementTreeProducer._recursive_saxifyË   sÔ  € ØÔ/ˆØŒkˆØ•'ˆ>ˆ>˜SÕ$9Ð9Ð9ØÕ+Ð+Ð+Ø×5Ò5Ø”N G¤Lñ2ô 2ð 2à”<ˆDØð 1Ø×*Ò*¨4Ñ0Ô0Ð0ØˆFàœˆØˆØ˜LÒ(Ð(à"/×"5Ò"5Ñ"7Ô"7ð <ð <‘�˜Ø×#Ò# FÑ+Ô+¨vÒ5Ð5Ø ×'Ò'¨&°&Ð)9Ñ;Ô;Ð;øà—-’-‘/”/ˆØð 	4ØˆKØˆKØ'.ð >ð >Ñ#�˜eÝ )¨,Ñ 7Ô 7�Ø-2�˜MÑ*Ø-1×->Ò->Ø! !Ô$ m°AÔ&6¸Ø%)¸ð .?ñ .>ô .>�˜MÑ*Ð*ð "×-Ò-¨k¸;ÑGÔGˆNˆNà!Ô3ˆNå& s™^œ^Ñˆ�
Ø×!Ò!Ø�J ¨w¬~ÈEð "ñ Sô Sˆð (ð 	<ð 	<‰KˆF�CØ×.Ò.¨v°sÑ;Ô;Ð;Ð;Ø×&Ò&Ø�ZÐ  %¨ñ	9ô 	9ð 	9àŒ|ˆØð 	-Ø×&Ò& tÑ,Ô,Ð,Øð 	9ð 	9ˆEØ×"Ò" 5¨-Ñ8Ô8Ð8Ð8Ø×$Ò$ f¨jÐ%9¸5ÑAÔAÐAØ'ð 	5ð 	5‰KˆF�CØ×,Ò,¨VÑ4Ô4Ð4Ð4ØŒ|ˆØð 	-Ø×&Ò& tÑ,Ô,Ð,Ð,Ð,ð	-ð 	-r   c                 óü   ‡— ‰€|S |s|                      |¦  «        ‰k    r|}nNˆfd„|                     ¦   «         D ¦   «         }t          |¦  «        dk    r|d         n|rt          |¦  «        nd }|€|S |dz   |z   S )Nc                 ó*   •— g | ]\  }}|®|‰k    ¯|‘ŒS r%   r   )rm   ÚpfxrA   rL   s      €r   ú
<listcomp>z4ElementTreeProducer._build_qname.<locals>.<listcomp>	  s2   ø€ ð ð ð Ù"˜˜cØ�? s¨f¢} }ð Ø'4 } }r   r   r   ú:)r˜   rT   ÚlenÚmin)r/   rL   rM   r—   r•   r–   r@   Ú
candidatess    `      r   r™   z ElementTreeProducer._build_qname  sµ   ø€ Øˆ>ØÐàð 	 §	¢	Ð*:Ñ ;Ô ;¸vÒ EÐ EØ%ˆFˆFðð ð ð Ø&+§k¢k¡m¤mðñ ô ˆJõ
 "% Z¡¤°AÒ!5Ð!5�
˜1”�Ø(2ð •S˜‘_”_�_Øð ð ˆ>àÐØ˜‰|˜jÑ(Ð(r   N)r   r   r   r   r&   r“   r‘   r™   r   r   r   r�   r�   ¦   s[   € € € € € ðð ð	4ð 	4ð 	4ð,ð ,ð ,ð.4-ð 4-ð 4-ðl)ð )ð )ð )ð )r   r�   c                 óF   — t          | |¦  «                             ¦   «         S )zlOne-shot helper to generate SAX events from an XML tree and fire
    them against a SAX ContentHandler.
    )r�   r“   )rŠ   r‹   s     r   r“   r“     s    € õ ˜°Ñ@Ô@×GÒGÑIÔIÐIr   N)r   Úxml.sax.handlerr   Úlxmlr   Ú
lxml.etreer   r   r   r   Útypesr	   r   ÚImportErrorÚ	LxmlErrorr   r!   r#   r�   r“   r   r   r   ú<module>r³      sp  ðð
ð 
ð +Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð2Ø3Ð3Ð3Ð3Ð3Ð3Ð3øØð 2ð 2ð 2ð2ð 2ð 2ð 2ð 2ð2øøøðð ð ð ð ˆuŒñ ô ð ð
ð ð ð|(ð |(ð |(ð |(ð |( ñ |(ô |(ð |(ð~p)ð p)ð p)ð p)ð p)ñ p)ô p)ð p)ðfJð Jð Jð Jð Js    ' §2±2