Ë
    ò¦1h>Y  ã                   ó’  — d Z dgZddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZmZmZmZmZmZ ddlZddlmZmZmZmZmZ ddlmZmZmZ ddl Z dd	l!m"Z" dd
lm#Z#m$Z$m%Z%m&Z& e	rddl'm(Z( ddl)m*Z+  G d„ de«      Z, G d„ de+jZ                  «      Z. G d„ de/«      Z0 G d„ de+jb                  «      Z2 G d„ de2«      Z3 G d„ de2«      Z4y)ÚMITÚHTML5TreeBuilderé    )	ÚAnyÚcastÚDictÚIterableÚOptionalÚSequenceÚTYPE_CHECKINGÚTupleÚUnion)Ú	TypeAlias)Ú_AttributeValueÚ_AttributeValuesÚ	_EncodingÚ
_EncodingsÚ_NamespaceURLÚ
_RawMarkupN)ÚDetectsXMLParsedAsHTMLÚ
PERMISSIVEÚHTMLÚHTML_5ÚHTMLTreeBuilder)ÚNamespacedAttributeÚPageElementÚnonwhitespace_re)Ú
namespaces)ÚCommentÚDoctypeÚNavigableStringÚTag©ÚBeautifulSoup)Úbasec                   óê   — e Zd ZU dZdZeed<   eeee	gZ
ee   ed<   dZeed<   ded<   ee   ed	<   	 	 	 dded	ee   dee   dee   deeeee   ee   ef      f
d„Zdedd
fd„Zdeddfd„Zdedefd„Zy
)r   aj  Use `html5lib <https://github.com/html5lib/html5lib-python>`_ to
    build a tree.

    Note that `HTML5TreeBuilder` does not support some common HTML
    `TreeBuilder` features. Some of these features could theoretically
    be implemented, but at the very least it's quite difficult,
    because html5lib moves the parse tree around as it's being built.

    Specifically:

    * This `TreeBuilder` doesn't use different subclasses of
      `NavigableString` (e.g. `Script`) based on the name of the tag
      in which the string was found.
    * You can't use a `SoupStrainer` to parse only part of a document.
    Úhtml5libÚNAMEÚfeaturesTÚTRACKS_LINE_NUMBERSÚTreeBuilderForHtml5libÚunderlying_builderÚuser_specified_encodingNÚmarkupÚdocument_declared_encodingÚexclude_encodingsÚreturnc              #   óº   K  — || _         |df|dffD ]&  \  }}|sŒ	t        j                  d|› d|› d�d¬«       Œ( t        j                  |d¬«       |d d df–— y ­w)	Nr.   r/   zYou provided a value for z0, but the html5lib tree builder doesn't support ú.é   ©Ú
stacklevelF)r,   ÚwarningsÚwarnr   Úwarn_if_markup_looks_like_xml)Úselfr-   r,   r.   r/   ÚvariableÚnames          úS/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/bs4/builder/_html5lib.pyÚprepare_markupzHTML5TreeBuilder.prepare_markupW   s…   è ø€ ð (?ˆÔ$ð (Ð)EÐFØÐ 3Ð4ð
ò 	‰NˆH�dò Ü—‘Ø/°¨vÐ5eÐfjÐekÐklÐmØ öð	ô 	×<Ñ<¸VÐPQÕRà�t˜T 5Ð)Ó)ùs   ‚A›A Ac                 ó*  — | j                   �-| j                   j                  �t        j                  dd¬«       t	        j
                  | j                  ¬«      }| j                  €J ‚|| j                  _        t        «       }t        |t        «      s| j                  |d<    |j                  |fi |¤Ž}t        |t        «      rd|_        n6|j                  j                   j"                  d   }|j$                  }||_        d| j                  _        y)z‰Run some incoming markup through some parsing process,
        populating the `BeautifulSoup` object in `HTML5TreeBuilder.soup`.
        Nz‚You provided a value for parse_only, but the html5lib tree builder doesn't support parse_only. The entire document will be parsed.é   r4   )ÚtreeÚoverride_encodingr   )ÚsoupÚ
parse_onlyr6   r7   r&   Ú
HTMLParserÚcreate_treebuilderr+   ÚparserÚdictÚ
isinstanceÚstrr,   ÚparseÚoriginal_encodingÚ	tokenizerÚstreamÚcharEncodingr;   )r9   r-   rF   Úextra_kwargsÚdocrK   s         r<   ÚfeedzHTML5TreeBuilder.feedu   sú   € ð �9‰9Ð  T§Y¡Y×%9Ñ%9Ð%EÜ�M‰Mð UØõô ×$Ñ$¨$×*AÑ*AÔBˆØ×&Ñ&Ð2Ð2Ð2Ø)/ˆ×ÑÔ&Ü“vˆÜ˜&¤#Ô&ð 15×0LÑ0LˆLÐ,Ñ-àˆf�l‰l˜6Ñ2 \Ñ2ˆô �fœcÔ"ð %)ˆCÕ!à &× 0Ñ 0× 7Ñ 7× DÑ DÀQÑ GÐð !2× 6Ñ 6ÐØ$5ˆCÔ!Ø)-ˆ×ÑÕ&ó    ÚnamespaceHTMLElementsc                 óh   — t        || j                  | j                  ¬«      | _        | j                  S )zÈCalled by html5lib to instantiate the kind of class it
        calls a 'TreeBuilder'.

        :param namespaceHTMLElements: Whether or not to namespace HTML elements.

        :meta private:
        )Ústore_line_numbers)r*   rB   rU   r+   )r9   rS   s     r<   rE   z#HTML5TreeBuilder.create_treebuilderš   s0   € ô #9Ø! 4§9¡9À×AXÑAXô#
ˆÔð ×&Ñ&Ð&rR   Úfragmentc                 ó   — d|z  S )zSee `TreeBuilder`.z)<html><head></head><body>%s</body></html>© )r9   rV   s     r<   Útest_fragment_to_documentz*HTML5TreeBuilder.test_fragment_to_document©   s   € à:¸XÑEÐErR   )NNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r'   rI   Ú__annotations__r   r   r   r(   r
   r)   Úboolr	   r   r   r   r   r   r=   rQ   rE   rY   rX   rR   r<   r   r   ;   só   … ñð  €Dˆ#Óà# Z°¸Ð>€Hˆh�s‰mÓ>ð !%Ð˜Ó$à0Ó0Ø% iÑ0Ó0ð
 8<Ø:>Ø26ñ*àð*ð "*¨)Ñ!4ð*ð %-¨YÑ$7ð	*ð
 $ JÑ/ð*ð 
�%˜
 H¨YÑ$7¸À)Ñ9LÈdÐRÑSÑ	Tó*ð<#.˜:ð #.¨$ó #.ðJ'Ø%)ð'à	!ó'ðF°#ð F¸#ô FrR   c            	       óâ   ‡ — e Zd ZU ded<   eej                     ed<   	 	 ddeded   dedefˆ fd„Z	dd„Z
deeef   d	dfd„Zdeded	d
fd„Zded	dfd„Zdd„Zdd„Zdd„Zdd„Zdd
d	efd„Zˆ xZS )r*   r#   rB   rF   NrS   rU   Úkwargsc                 óÀ   •— |r|| _         n2t        j                  dt        d¬«       ddlm}  |	 dd|i|¤Ž| _         t        t        | �#  |«       d | _	        || _
        y )NaK  The optionality of the 'soup' argument to the TreeBuilderForHtml5lib constructor is deprecated as of Beautiful Soup 4.13.0: 'soup' is now required. If you can't pass in a BeautifulSoup object here, or you get this warning and it seems mysterious to you, please contact the Beautiful Soup developer team for possible un-deprecation.é   r4   r   r"   rU   )Ú zhtml.parser)rB   r6   r7   ÚDeprecationWarningÚbs4r#   Úsuperr*   Ú__init__rF   rU   )r9   rS   rB   rU   ra   r#   Ú	__class__s         €r<   rh   zTreeBuilderForHtml5lib.__init__²   sq   ø€ ñ ØˆD�Iä�M‰Mð ^Ü"Øõõ
 *ñ
 &Ø!ñØ6HðØLRñˆDŒIô 	Ô$ dÑ4Ð5JÔKð ˆŒØ"4ˆÕrR   r0   ÚElementc                 óx   — | j                   j                  «        t        | j                   | j                   d «      S ©N)rB   Úresetrj   ©r9   s    r<   ÚdocumentClassz$TreeBuilderForHtml5lib.documentClassÓ   s'   € Ø�	‰	�‰ÔÜ�t—y‘y $§)¡)¨TÓ2Ð2rR   Útokenc                 óö   — t        t        |d   «      }t        t        t           |d   «      }t        t        t           |d   «      }t        j                  |||«      }| j
                  j                  |«       y )Nr;   ÚpublicIdÚsystemId)r   rI   r	   r   Úfor_name_and_idsrB   Úobject_was_parsed)r9   rp   r;   rr   rs   Údoctypes         r<   ÚinsertDoctypez$TreeBuilderForHtml5lib.insertDoctype×   sb   € Üœ˜e F™mÓ,ˆÜ"&¤x´¡}°e¸JÑ6GÓ"HˆÜ"&¤x´¡}°e¸JÑ6GÓ"Hˆä×*Ñ*¨4°¸8ÓDˆØ�	‰	×#Ñ# GÕ,rR   r;   Ú	namespacec                 ó  — d }d }| j                   �F| j                  r:| j                   j                  j                  j	                  «       \  }}|€J ‚|dz
  }| j
                  j                  ||||¬«      }t        || j
                  |«      S )Né   )Ú
sourcelineÚ	sourcepos)rF   rU   rL   rM   ÚpositionrB   Únew_tagrj   )r9   r;   rx   r{   r|   Útags         r<   ÚelementClassz#TreeBuilderForHtml5lib.elementClassß   s�   € Ø$(ˆ
Ø#'ˆ	Ø�;‰;Ð" t×'>Ò'>ð %)§K¡K×$9Ñ$9×$@Ñ$@×$IÑ$IÓ$KÑ!ˆJ˜	ØÐ(Ð(Ð(Ø! A™ˆIØ�i‰i×ÑØ�)¨
¸ið  ó 
ˆô �s˜DŸI™I yÓ1Ð1rR   ÚdataÚTextNodec                 ó@   — t        t        |«      | j                  «      S rl   )r‚   r   rB   )r9   r�   s     r<   ÚcommentClassz#TreeBuilderForHtml5lib.commentClassï   s   € Üœ › t§y¡yÓ1Ð1rR   c                 ó   — t        «       ‚)zôThis is only used by html5lib HTMLParser.parseFragment(),
        which is never used by Beautiful Soup, only by the html5lib
        unit tests. Since we don't currently hook into those tests,
        the implementation is left blank.
        ©ÚNotImplementedErrorrn   s    r<   ÚfragmentClassz$TreeBuilderForHtml5lib.fragmentClassò   s   € ô "Ó#Ð#rR   c                 ó   — t        «       ‚©z˜This is only used by the html5lib unit tests. Since we
        don't currently hook into those tests, the implementation is
        left blank.
        r†   rn   s    r<   ÚgetFragmentz"TreeBuilderForHtml5lib.getFragmentú   ó   € ô
 "Ó#Ð#rR   c                 óN   — | j                   j                  |j                  «       y rl   )rB   ÚappendÚelement©r9   Únodes     r<   ÚappendChildz"TreeBuilderForHtml5lib.appendChild  s   € ð 	�	‰	×Ñ˜Ÿ™Õ&rR   c                 ó   — | j                   S rl   )rB   rn   s    r<   ÚgetDocumentz"TreeBuilderForHtml5lib.getDocument
  s   € Ø�y‰yÐrR   r�   c                 ó   — t        «       ‚rŠ   r†   ©r9   r�   s     r<   ÚtestSerializerz%TreeBuilderForHtml5lib.testSerializer  rŒ   rR   )NT)r0   rj   ©r‘   rj   r0   N)r0   r#   )rZ   r[   r\   r^   r	   r&   rD   r_   r   rh   ro   r   rI   rw   r€   r„   rˆ   r‹   r’   r”   r—   Ú__classcell__)ri   s   @r<   r*   r*   ®   sÇ   ø… Ø
ÓØ�X×(Ñ(Ñ)Ó)ð
 +/Ø#'ñ	5à#ð5ð �Ñ'ð5ð !ð	5ð
 õ5óB3ð- 4¨¨S¨¡>ð -°dó -ð2 ð 2°ð 2¸ó 2ð 2 ð 2¨ó 2ó$ó$ó'óð$ ið $°C÷ $rR   r*   c                   ó¼   — e Zd ZU dZeed<   eed<   defd„Zdee	e
ef      fd„Zde
dedd	fd
„Zdee	e
ef      fd„Zdee
   fd„Zdefd„Zde
defd„Zde
defd„Zy	)ÚAttrListz@Represents a Tag's attributes in a way compatible with html5lib.r�   Úattrsc                 óZ   — || _         t        | j                   j                  «      | _        y rl   )r�   rG   rœ   r–   s     r<   rh   zAttrList.__init__  s   € ØˆŒÜ˜$Ÿ,™,×,Ñ,Ó-ˆ�
rR   r0   c                 ód   — t        | j                  j                  «       «      j                  «       S rl   )Úlistrœ   ÚitemsÚ__iter__rn   s    r<   r¡   zAttrList.__iter__  s#   € Ü�D—J‘J×$Ñ$Ó&Ó'×0Ñ0Ó2Ð2rR   r;   ÚvalueNc                 óž  — | j                   j                  xs i }||j                  dg «      v s@| j                   j                  |v rx||j                  | j                   j                  g «      v rPt	        |t
        «      s@t	        |t        «      sJ ‚| j                   j                  t        j                  |«      «      }|| j                   |<   y )NÚ*)
r�   Úcdata_list_attributesÚgetr;   rH   rŸ   rI   Úattribute_value_list_classr   Úfindall)r9   r;   r¢   Ú	list_attrs       r<   Ú__setitem__zAttrList.__setitem__"  s¨   € ð —L‘L×6Ñ6Ò<¸"ˆ	Ø�9—=‘=  bÓ)Ñ)Ø�L‰L×Ñ Ñ*Ø˜	Ÿ™ d§l¡l×&7Ñ&7¸Ó<Ñ<ô ˜e¤TÔ*Ü! %¬Ô-Ð-Ð-ØŸ™×?Ñ?Ü$×,Ñ,¨UÓ3ó�ð #ˆ�‰�TÒrR   c                 óH   — t        | j                  j                  «       «      S rl   )rŸ   rœ   r    rn   s    r<   r    zAttrList.items3  s   € Ü�D—J‘J×$Ñ$Ó&Ó'Ð'rR   c                 óH   — t        | j                  j                  «       «      S rl   ©rŸ   rœ   Úkeysrn   s    r<   r®   zAttrList.keys6  s   € Ü�D—J‘J—O‘OÓ%Ó&Ð&rR   c                 ó,   — t        | j                  «      S rl   )Úlenrœ   rn   s    r<   Ú__len__zAttrList.__len__9  s   € Ü�4—:‘:‹ÐrR   c                 ó    — | j                   |   S rl   )rœ   ©r9   r;   s     r<   Ú__getitem__zAttrList.__getitem__<  s   € Ø�z‰z˜$ÑÐrR   c                 óL   — |t        | j                  j                  «       «      v S rl   r­   r³   s     r<   Ú__contains__zAttrList.__contains__?  s   € Ø”t˜DŸJ™JŸO™OÓ-Ó.Ð.Ð.rR   )rZ   r[   r\   r]   r!   r^   r   rh   r   r   rI   r   r¡   rª   r    r®   Úintr±   r´   r_   r¶   rX   rR   r<   r›   r›     s®   … ÙJàƒLØÓð. ó .ð3˜( 5¨¨oÐ)=Ñ#>Ñ?ó 3ð# ð #¨Oð #Àó #ð"(�x  c¨?Ð&:Ñ ;Ñ<ó (ð'�h˜s‘mó 'ð˜ó ð  ð  ¨ó  ð/ ð /¨ô /rR   r›   c                   óh   — e Zd ZU eed<   ded<   ee   ed<   edefd„«       Z	de
j                  fd„Zy)	ÚBeautifulSoupNoder�   r#   rB   rx   r0   c                 ó   — t        «       ‚)zÕReturn the html5lib constant corresponding to the type of
        the underlying DOM object.

        NOTE: This property is only accessed by the html5lib test
        suite, not by Beautiful Soup proper.
        r†   rn   s    r<   ÚnodeTypezBeautifulSoupNode.nodeTypeH  s   € ô "Ó#Ð#rR   c                 ó   — t        «       ‚rl   r†   rn   s    r<   Ú	cloneNodezBeautifulSoupNode.cloneNodeT  s   € Ü!Ó#Ð#rR   N)rZ   r[   r\   r   r^   r	   r   Úpropertyr·   r»   Útreebuilder_baseÚNoder½   rX   rR   r<   r¹   r¹   C  sE   … ØÓØ
ÓØ˜Ñ&Ó&àð$˜#ò $ó ð$ð$Ð+×0Ñ0ô $rR   r¹   c                   óR  — e Zd ZU eed<   ee   ed<   dedddee   fd„Zdd	„Zde	fd
„Z
eeeeef   f   Zeed<   eeef   Zeed<   dee   ddfd„Z ee
e«      Z	 ddeded   ddfd„Z	 	 	 	 	 	 dd„Zdd„Zdd„Zdefd„Zdej8                  fd„Zdeee   ef   fd„Z ee«      Zy)rj   r�   rx   rB   r#   c                 ó‚   — t         j                  j                  | |j                  «       || _        || _        || _        y rl   )r¿   rÀ   rh   r;   r�   rB   rx   )r9   r�   rB   rx   s       r<   rh   zElement.__init__\  s3   € ô 	×Ñ×&Ñ& t¨W¯\©\Ô:ØˆŒØˆŒ	Ø"ˆ�rR   r¹   r0   Nc                 óª  — d }t        |j                  «      t        u r|j                  x}}n|j                  }| |_        |�6|j                  �*t	        |t
        «      s|j                  j                  «        |�˜| j                  j                  r‚t        | j                  j                  d   «      t        u rZ| j                  j                  d   }| j                  j                  ||z   «      }|j                  |«       || j                  _        y t	        |t
        «      r| j                  j                  |«      }| j                  j                  r| j                  j                  d«      }n=| j                  j                  �| j                  j                  «       }n| j                  }| j                  j                  || j                  |¬«       y )NéÿÿÿÿF)ÚparentÚmost_recent_element)Útyper�   r    rÅ   rH   rI   ÚextractÚcontentsrB   Ú
new_stringÚreplace_withÚ_most_recent_elementÚ_last_descendantÚnext_elementru   )r9   r‘   Ústring_childÚchildÚold_elementÚnew_elementrÆ   s          r<   r’   zElement.appendChildd  sp  € Ø26ˆä�—‘Ó¤Ñ0Ø#'§<¡<Ð/ˆL™5à—L‘LˆEØˆŒð ÐØ—‘Ð(Ü˜u¤cÔ*à�L‰L× Ñ Ô"ð Ð$Ø—‘×%Ò%Ü�T—\‘\×*Ñ*¨2Ñ.Ó/´?ÑBð
 Ÿ,™,×/Ñ/°Ñ3ˆKØŸ)™)×.Ñ.¨{¸\Ñ/IÓJˆKØ×$Ñ$ [Ô1Ø-8ˆD�I‰IÕ*ä˜$¤Ô$àŸ	™	×,Ñ,¨TÓ2�ð
 �|‰|×$Ò$Ø&*§l¡l×&CÑ&CÀEÓ&JÑ#Ø—‘×*Ñ*Ð6ð
 '+§i¡i×&@Ñ&@Ó&BÑ#à&*§l¡lÐ#à�I‰I×'Ñ'Ø˜dŸl™lÐ@Sð (õ rR   c                 ód   — t        | j                  t        «      ri S t        | j                  «      S rl   )rH   r�   r   r›   rn   s    r<   ÚgetAttributeszElement.getAttributes—  s$   € Ü�d—l‘l¤GÔ,ØˆIÜ˜Ÿ™Ó%Ð%rR   Ú_Html5libAttributeNameÚ_Html5libAttributesÚ
attributesc                 óê  — |�ñt        |«      dkD  rât        |j                  «       «      D ]&  \  }}t        |t        «      sŒt        |Ž }||= |||<   Œ( t        t        |«      }| j                  j                  j                  | j                  |«       t        |j                  «       «      D ]  \  }}|| j                  |<   Œ | j                  j                  j                  | j                  «       y y y ©Nr   )r°   rŸ   r    rH   Útupler   r   r   rB   ÚbuilderÚ$_replace_cdata_list_attribute_valuesr;   r�   Úset_up_substitutions)r9   r×   r;   r¢   Únew_nameÚnormalized_attributesÚvalue_or_valuess          r<   ÚsetAttributeszElement.setAttributes£  sé   € ØÐ!¤c¨*£o¸Ò&9ô  $ J×$4Ñ$4Ó$6Ó7ò 1‘��eÜ˜d¤EÕ*Ü2°DÐ9�HØ" 4Ð(Ø+0�J˜xÒ(ð	1ô %)Ô)9¸:Ó$FÐ!ð �I‰I×Ñ×BÑBØ—	‘	Ð0ôô *.Ð.C×.IÑ.IÓ.KÓ)Lò 5Ñ%��oØ%4�—‘˜TÒ"ð5ð �I‰I×Ñ×2Ñ2°4·<±<Õ@ð; ':Ð!rR   r�   ÚinsertBeforec                 ó®   — t        | j                  j                  |«      | j                  «      }|r| j                  ||«       y | j	                  |«       y rl   )r‚   rB   rÊ   râ   r’   )r9   r�   râ   Útexts       r<   Ú
insertTextzElement.insertTextÅ  sD   € ô ˜Ÿ	™	×,Ñ,¨TÓ2°D·I±IÓ>ˆÙØ×Ñ˜d LÕ1à×Ñ˜TÕ"rR   c                 ó2  — | j                   j                  |j                   «      }t        |j                   «      t        u rª| j                   j                  r”t        | j                   j                  |dz
     «      t        u ri| j                   j                  |dz
     }t        |«      t        u sJ ‚| j
                  j                  ||j                   z   «      }|j                  |«       y | j                   j                  ||j                   «       | |_	        y )Nrz   )
r�   ÚindexrÇ   r    rÉ   rB   rÊ   rË   ÚinsertrÅ   )r9   r‘   ÚrefNoderç   Úold_nodeÚnew_strs         r<   râ   zElement.insertBeforeÎ  sÐ   € ð —‘×"Ñ" 7§?¡?Ó3ˆä�—‘Ó¤/Ñ1Ø—‘×%Ò%Ü�T—\‘\×*Ñ*¨5°1©9Ñ5Ó6¼/ÑIð —|‘|×,Ñ,¨U°Q©YÑ7ˆHÜ˜“>¤_Ñ4Ð4Ð4Ø—i‘i×*Ñ*¨8°d·l±lÑ+BÓCˆGØ×!Ñ! 'Õ*à�L‰L×Ñ  t§|¡|Ô4ØˆD�KrR   c                 ó8   — |j                   j                  «        y rl   )r�   rÈ   r�   s     r<   ÚremoveChildzElement.removeChildà  s   € Ø�‰×ÑÕrR   c                 ón  — | j                   }|j                   }|j                  }|j                  dd«      }t        |j                  «      dkD  r |€J ‚|j                  d   }|j
                  }nd}|j
                  }|j                  }t        |«      dkD  rh|d   }	|�||	_        n||	_        ||	_        |�|	|_        n|	|_        |�|	|_        |d   j                  dd¬«      }
|
€J ‚||
_        |�|
|_        d|
_        |D ]$  }||_        |j                  j                  |«       Œ& g |_        ||_        y)z1Move all of this tag's children into another tag.Fr   NrÄ   T)Úis_initializedÚaccept_self)
r�   Únext_siblingrÍ   r°   rÉ   rÎ   Úprevious_elementÚprevious_siblingrÅ   rŽ   )r9   Ú
new_parentr�   Únew_parent_elementÚfinal_next_elementÚnew_parents_last_descendantÚnew_parents_last_childÚ(new_parents_last_descendant_next_elementÚ	to_appendÚfirst_childÚlast_childs_last_descendantrÐ   s               r<   ÚreparentChildrenzElement.reparentChildrenã  sŽ  € ð —,‘,ˆØ'×/Ñ/Ðð %×1Ñ1Ðà&8×&IÑ&IÈ%ÐQVÓ&WÐ#ÜÐ!×*Ñ*Ó+¨aÒ/ð /Ð:Ð:Ð:Ø%7×%@Ñ%@ÀÑ%DÐ"à+×8Ñ8ñ 5ð
 &*Ð"Ø7I×7VÑ7VÐ4à×$Ñ$ˆ	Üˆy‹>˜AÒð $ A™,ˆKØ*Ð6Ø/J�Õ,à/A�Ô,Ø+AˆKÔ(Ø*Ð6Ø;FÐ+Õ8à2=Ð"Ô/Ø%Ð1Ø6AÐ&Ô3ð +4°B©-×*HÑ*HØ$°$ð +Ió +Ð'ð /Ð:Ð:Ð:à8ð (Ô4ð 8ÐCð 0ð 9ÔIð 8<Ð'Ô4àò 	6ˆEØ-ˆEŒLØ×'Ñ'×.Ñ.¨uÕ5ð	6ð
 ˆÔØ1ˆÕrR   c                 óF   — t        | j                  j                  «      dkD  S rÙ   )r°   r�   rÉ   rn   s    r<   Ú
hasContentzElement.hasContent7  s   € Ü�4—<‘<×(Ñ(Ó)¨AÑ-Ð-rR   c                 ó  — | j                   j                  | j                  j                  | j                  «      }t        || j                   | j                  «      }| j                  D ]  \  }}||j                  |<   Œ |S rl   )rB   r~   r�   r;   rx   rj   r×   )r9   r   r‘   Úkeyr¢   s        r<   r½   zElement.cloneNode<  sf   € Ø�i‰i×Ñ §¡× 1Ñ 1°4·>±>ÓBˆÜ�s˜DŸI™I t§~¡~Ó6ˆØŸ/™/ò 	)‰JˆC�Ø#(ˆD�O‰O˜CÒ ð	)àˆrR   c                 ót   — | j                   €t        d   | j                  fS | j                   | j                  fS )NÚhtml)rx   r   r;   rn   s    r<   ÚgetNameTuplezElement.getNameTupleC  s3   € Ø�>‰>Ð!Ü˜fÑ% t§y¡yÐ0Ð0à—>‘> 4§9¡9Ð,Ð,rR   )r‘   r¹   r0   Nrl   )r‘   r¹   ré   r¹   r0   Nr˜   )rô   rj   r0   N) rZ   r[   r\   r!   r^   r	   r   rh   r’   r›   rÔ   r   rI   r   rÕ   r   r   rÖ   rá   r¾   r×   rå   râ   rí   rý   r_   rÿ   r¿   rÀ   r½   r  Ú	nameTuplerX   rR   r<   rj   rj   X  sA  … ØƒLØ˜Ñ&Ó&ð#Øð#Ø"1ð#Ø>FÀ}Ñ>Uó#ó1ðf&˜xó &ð ).¨c°5¸¸c¸±?Ð.BÑ(CÐ˜IÓCð &*Ð*@À#Ð*EÑ%FÐ˜ÓFðA¨Ð1DÑ(Eð AÈ$ó Añ@ ˜-¨Ó7€Jð HLñ#Øð#Ø'/Ð0CÑ'Dð#à	ó#ðØ'ðØ2Eðà	óó$óL2ðh.˜Dó .ð
Ð+×0Ñ0ó ð-˜e H¨]Ñ$;¸SÐ$@ÑAó -ñ ˜Ó&�IrR   rj   c                   ó(   — e Zd ZU eed<   deddfd„Zy)r‚   r�   rB   r#   c                 ó`   — t         j                  j                  | d «       || _        || _        y rl   )r¿   rÀ   rh   r�   rB   )r9   r�   rB   s      r<   rh   zTextNode.__init__O  s&   € Ü×Ñ×&Ñ& t¨TÔ2ØˆŒØˆ�	rR   N)rZ   r[   r\   r    r^   rh   rX   rR   r<   r‚   r‚   L  s   … ØÓð ð °ô rR   r‚   )5Ú__license__Ú__all__Útypingr   r   r   r   r	   r
   r   r   r   Útyping_extensionsr   Úbs4._typingr   r   r   r   r   r   r6   Úbs4.builderr   r   r   r   r   Úbs4.elementr   r   r   r&   Úhtml5lib.constantsr   r   r   r    r!   rf   r#   Úhtml5lib.treebuildersr$   r¿   r   ÚTreeBuilderr*   Úobjectr›   rÀ   r¹   rj   r‚   rX   rR   r<   ú<module>r     sÐ   ðà€ð ð€÷
÷ 
õ 
õ (÷÷ ó ÷õ ÷ñ ó
 õ÷ó ñ Ý!å :ôpF�ô pFôfd$Ð-×9Ñ9ô d$ôN+/ˆvô +/ô\$Ð(×-Ñ-ô $ô*q'Ðô q'ôhÐ õ rR   