§
    (¶ÕitF  ã                   óþ  — d Z ddlZddlZddlmZ dgZ ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z	 ej        d¦  «        Z
 ej        d	¦  «        Z ej        d
¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        d¦  «        Z ej        dej        ¦  «        Z ej        d¦  «        Z ej        d¦  «        Z G d„ dej        ¦  «        ZdS )zA parser for HTML and XHTML.é    N)ÚunescapeÚ
HTMLParserz[&<]z
&[a-zA-Z#]z%&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]z)&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]z	<[a-zA-Z]z
</[a-zA-Z]ú>z--\s*>z+([a-zA-Z][^\t\n\r\f />\x00]*)(?:\s|/(?!>))*z]((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*aF  
  <[a-zA-Z][^\t\n\r\f />\x00]*       # tag name
  (?:[\s/]*                          # optional whitespace before attribute name
    (?:(?<=['"\s/])[^\s/>][^\s/=>]*  # attribute name
      (?:\s*=+\s*                    # value indicator
        (?:'[^']*'                   # LITA-enclosed value
          |"[^"]*"                   # LIT-enclosed value
          |(?!['"])[^>\s]*           # bare value
         )
        \s*                          # possibly followed by a space
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                # trailing whitespace
z#</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>c                   ó²   — e Zd ZdZdZddœd„Zd„ Zd„ Zd„ Zd	Z	d
„ Z
d„ Zd„ Z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„ Zd„ Zd„ Zd„ Zd„ Zd	S ) r   aE  Find tags and other markup and call handler functions.

    Usage:
        p = HTMLParser()
        p.feed(data)
        ...
        p.close()

    Start tags are handled by calling self.handle_starttag() or
    self.handle_startendtag(); end tags by self.handle_endtag().  The
    data between tags is passed from the parser to the derived class
    by calling self.handle_data() with the data as argument (the data
    may be split up in arbitrary chunks).  If convert_charrefs is
    True the character references are converted automatically to the
    corresponding Unicode character (and self.handle_data() is no
    longer split in chunks), otherwise they are passed by calling
    self.handle_entityref() or self.handle_charref() with the string
    containing respectively the named or numeric reference as the
    argument.
    )ÚscriptÚstyleT)Úconvert_charrefsc                ó<   — || _         |                      ¦   «          dS )zÆInitialize and reset this instance.

        If convert_charrefs is True (the default), all character references
        are automatically converted to the corresponding Unicode characters.
        N)r	   Úreset)Úselfr	   s     ú"/usr/lib/python3.11/html/parser.pyÚ__init__zHTMLParser.__init__W   s   € ð !1ˆÔØ�
Š
‰Œˆˆˆó    c                 ó†   — d| _         d| _        t          | _        d| _        t
          j                             | ¦  «         dS )z1Reset this instance.  Loses all unprocessed data.Ú z???N)ÚrawdataÚlasttagÚinteresting_normalÚinterestingÚ
cdata_elemÚ_markupbaseÚ
ParserBaser   ©r   s    r   r   zHTMLParser.reset`   s<   € àˆŒØˆŒÝ-ˆÔØˆŒÝÔ×$Ò$ TÑ*Ô*Ð*Ð*Ð*r   c                 óN   — | j         |z   | _         |                      d¦  «         dS )z‘Feed data to the parser.

        Call this as often as you want, with as little or as much text
        as you want (may include '\n').
        r   N)r   Úgoahead©r   Údatas     r   ÚfeedzHTMLParser.feedh   s%   € ð ”| dÑ*ˆŒØ�Š�Q‰Œˆˆˆr   c                 ó0   — |                       d¦  «         dS )zHandle any buffered data.é   N)r   r   s    r   ÚclosezHTMLParser.closeq   s   € à�Š�Q‰Œˆˆˆr   Nc                 ó   — | j         S )z)Return full source of start tag: '<...>'.)Ú_HTMLParser__starttag_textr   s    r   Úget_starttag_textzHTMLParser.get_starttag_textw   s   € àÔ#Ð#r   c                 ó�   — |                      ¦   «         | _        t          j        d| j        z  t          j        ¦  «        | _        d S )Nz</\s*%s\s*>)Úlowerr   ÚreÚcompileÚIr   )r   Úelems     r   Úset_cdata_modezHTMLParser.set_cdata_mode{   s4   € ØŸ*š*™,œ,ˆŒÝœ: n°t´Ñ&FÍÌÑMÔMˆÔÐÐr   c                 ó,   — t           | _        d | _        d S ©N)r   r   r   r   s    r   Úclear_cdata_modezHTMLParser.clear_cdata_mode   s   € Ý-ˆÔØˆŒˆˆr   c                 óð  — | j         }d}t          |¦  «        }||k     �rL| j        r}| j        sv|                     d|¦  «        }|dk     rY|                     dt          ||dz
  ¦  «        ¦  «        }|dk    r*t          j        d¦  «         	                    ||¦  «        s�nË|}n=| j
         	                    ||¦  «        }|r|                     ¦   «         }n| j        r�n�|}||k     rV| j        r2| j        s+|                      t          |||…         ¦  «        ¦  «         n|                      |||…         ¦  «         |                      ||¦  «        }||k    r�n|j        } |d|¦  «        �rÉt                                ||¦  «        r|                      |¦  «        }	n° |d|¦  «        r|                      |¦  «        }	nŽ |d|¦  «        r|                      |¦  «        }	nl |d|¦  «        r|                      |¦  «        }	nJ |d	|¦  «        r|                      |¦  «        }	n(|d
z   |k     s|r|                      d¦  «         |d
z   }	n�n|	dk     �rÉ|s�nt                                ||¦  «        r�n¦ |d|¦  «        r_|dz   |k    r|                      d¦  «         �nzt.                               ||¦  «        r�n]|                      ||dz   d …         ¦  «         �n; |d|¦  «        rU|}dD ]/}
|                     |
|dz   ¦  «        r|t          |
¦  «        z  } nŒ0|                      ||dz   |…         ¦  «         nÚ |d|¦  «        r!|                      ||dz   d …         ¦  «         n­|||dz   …                              ¦   «         dk    r!|                      ||dz   d …         ¦  «         ni |d	|¦  «        r!|                      ||dz   d …         ¦  «         n< |d|¦  «        r!|                      ||dz   d …         ¦  «         nt=          d¦  «        ‚|}	|                      ||	¦  «        }�n- |d|¦  «        rÕt>                               ||¦  «        }|rq|                      ¦   «         dd…         }|  !                    |¦  «         | "                    ¦   «         }	 |d|	d
z
  ¦  «        s|	d
z
  }	|                      ||	¦  «        }�Œ¹d||d …         v r9|                      |||dz   …         ¦  «         |                      ||dz   ¦  «        }�nS |d|¦  «        �r5tF                               ||¦  «        }|rj|                      d
¦  «        }|  $                    |¦  «         | "                    ¦   «         }	 |d|	d
z
  ¦  «        s|	d
z
  }	|                      ||	¦  «        }�Œ”tJ                               ||¦  «        }|rX|rU|                      ¦   «         ||d …         k    r5| "                    ¦   «         }	|	|k    r|}	|                      ||d
z   ¦  «        }nJ|d
z   |k     r/|                      d¦  «         |                      ||d
z   ¦  «        }nnJ d¦   «         ‚||k     �°L|ry||k     rs| j        sl| j        r2| j        s+|                      t          |||…         ¦  «        ¦  «         n|                      |||…         ¦  «         |                      ||¦  «        }||d …         | _         d S )Nr   ú<ú&é"   z[\s;]ú</ú<!--ú<?ú<!r    é   )z--!z--ú-é   z	<![CDATA[é   é	   ú	<!doctypeúwe should not get here!z&#éÿÿÿÿú;zinteresting.search() lied)&r   Úlenr	   r   ÚfindÚrfindÚmaxr'   r(   Úsearchr   ÚstartÚhandle_datar   Ú	updateposÚ
startswithÚstarttagopenÚmatchÚparse_starttagÚparse_endtagÚparse_commentÚparse_piÚparse_html_declarationÚ
endtagopenÚhandle_commentÚendswithÚunknown_declr&   Úhandle_declÚ	handle_piÚAssertionErrorÚcharrefÚgroupÚhandle_charrefÚendÚ	entityrefÚhandle_entityrefÚ
incomplete)r   rZ   r   ÚiÚnÚjÚampposrJ   rH   ÚkÚsuffixÚnames               r   r   zHTMLParser.goahead†   s«  € Ø”,ˆØˆÝ�‰LŒLˆØ�!Še‰eØÔ$ð ¨T¬_ð Ø—L’L  aÑ(Ô(�Ø�q’5�5ð %Ÿ]š]¨3µ°A°q¸±t±´Ñ=Ô=�FØ !š˜ÝœJ xÑ0Ô0×7Ò7¸ÀÑHÔHð $áØ�AøàÔ(×/Ò/°¸Ñ;Ô;�Øð ØŸš™œ�A�Aà”ð ÙØ�AØ�1ŠuˆuØÔ(ð 3°´ð 3Ø×$Ò$¥X¨g°a¸°c¬lÑ%;Ô%;Ñ<Ô<Ð<Ð<à×$Ò$ W¨Q¨q¨S¤\Ñ2Ô2Ð2Ø—’˜q !Ñ$Ô$ˆAØ�AŠvˆv‘uØ Ô+ˆJØˆz˜#˜qÑ!Ô!ñ \6Ý×%Ò% g¨qÑ1Ô1ð Ø×+Ò+¨AÑ.Ô.�A�AØ�Z  aÑ(Ô(ð Ø×)Ò)¨!Ñ,Ô,�A�AØ�Z ¨Ñ*Ô*ð 
Ø×*Ò*¨1Ñ-Ô-�A�AØ�Z  aÑ(Ô(ð ØŸš aÑ(Ô(�A�AØ�Z  aÑ(Ô(ð Ø×3Ò3°AÑ6Ô6�A�AØ˜!‘e˜q’[�[ C�[Ø×$Ò$ SÑ)Ô)Ð)Ø˜A™�A�AáØ�q’5‘5Øð ÙÝ#×)Ò)¨'°1Ñ5Ô5ð HÙØ#˜ D¨!Ñ,Ô,ð HØ˜q™5 Aš:˜:Ø ×,Ò,¨TÑ2Ô2Ð2Ñ2Ý'×-Ò-¨g°qÑ9Ô9ð ?Ù ð !×/Ò/°¸¸!¹¸¸´Ñ>Ô>Ð>Ñ>Ø#˜ F¨AÑ.Ô.ð HØ˜Ø&8ð &ð &˜FØ&×/Ò/°¸¸!¹Ñ<Ô<ð &Ø !¥S¨¡[¤[Ñ 0 Ø % ð&ð ×+Ò+¨G°A°a±C¸°E¬NÑ;Ô;Ð;Ð;Ø#˜ K°Ñ3Ô3ð 
HØ×)Ò)¨'°!°A±#°$°$¬-Ñ8Ô8Ð8Ð8Ø   1 Q¡3 œ×-Ò-Ñ/Ô/°;Ò>Ð>Ø×(Ò(¨°°1±°°¬Ñ7Ô7Ð7Ð7Ø#˜ D¨!Ñ,Ô,ð Hà×+Ò+¨G°A°a±C°D°D¬MÑ:Ô:Ð:Ð:Ø#˜ D¨!Ñ,Ô,ð HØŸš w¨q°©s¨t¨t¤}Ñ5Ô5Ð5Ð5å,Ð-FÑGÔGÐGØ�AØ—N’N 1 aÑ(Ô(�‘Ø�˜D !Ñ$Ô$ð +6ÝŸš g¨qÑ1Ô1�Øð Ø Ÿ;š;™=œ=¨¨2¨Ô.�DØ×'Ò'¨Ñ-Ô-Ð-ØŸ	š	™œ�AØ%˜: c¨1¨Q©3Ñ/Ô/ð "Ø ™E˜ØŸš q¨!Ñ,Ô,�AÙà˜g a b bœkÐ)Ð)Ø×(Ò(¨°°1°Q±3°¬Ñ8Ô8Ð8Ø ŸNšN¨1¨a°©cÑ2Ô2˜ÙØ�˜C Ñ#Ô#ñ 6Ý!Ÿš¨°Ñ3Ô3�Øð Ø Ÿ;š; q™>œ>�DØ×)Ò)¨$Ñ/Ô/Ð/ØŸ	š	™œ�AØ%˜: c¨1¨Q©3Ñ/Ô/ð "Ø ™E˜ØŸš q¨!Ñ,Ô,�AÙÝ"×(Ò(¨°!Ñ4Ô4�Øð àð 5˜uŸ{š{™}œ}°¸¸¸´Ò;Ð;Ø!ŸIšI™KœK˜Ø š6˜6Ø !˜AØ ŸNšN¨1¨a°!©eÑ4Ô4˜àØ˜!‘e˜q’[�[ð ×$Ò$ SÑ)Ô)Ð)ØŸš q¨!¨a©%Ñ0Ô0�A�Aàà5Ð5Ñ5Ô5Ð5ðw �!Še‰eðz ð 	%�1�q’5�5 ¤�5ØÔ$ð /¨T¬_ð /Ø× Ò ¥¨'°!°A°#¬,Ñ!7Ô!7Ñ8Ô8Ð8Ð8à× Ò  ¨¨1¨¤Ñ.Ô.Ð.Ø—’˜q !Ñ$Ô$ˆAØ˜q˜r˜r”{ˆŒˆˆr   c                 óÚ  — | j         }|||dz   …         dk    s
J d¦   «         ‚|||dz   …         dk    r|                      |¦  «        S |||dz   …         dk    r|                      |¦  «        S |||dz   …                              ¦   «         d	k    rF|                     d
|dz   ¦  «        }|dk    rdS |                      ||dz   |…         ¦  «         |dz   S |                      |¦  «        S )Nr7   r6   z+unexpected call to parse_html_declaration()r9   r4   r:   z<![r;   r<   r   r>   r    )r   rM   Úparse_marked_sectionr&   rA   rT   Úparse_bogus_comment)r   r^   r   Úgtposs       r   rO   z!HTMLParser.parse_html_declaration  s  € Ø”,ˆØ�q˜˜1™�uŒ~ Ò%Ð%Ð%ð )CÑ%Ô%Ð%à�1�Q�q‘S�5Œ>˜VÒ#Ð#à×%Ò% aÑ(Ô(Ð(Ø�Q�q˜‘s�UŒ^˜uÒ$Ð$Ø×,Ò,¨QÑ/Ô/Ð/Ø�Q�q˜‘s�UŒ^×!Ò!Ñ#Ô# {Ò2Ð2à—L’L  a¨¡cÑ*Ô*ˆEØ˜Š{ˆ{Ø�rØ×Ò˜W Q q¡S¨ YÔ/Ñ0Ô0Ð0Ø˜‘7ˆNà×+Ò+¨AÑ.Ô.Ð.r   r    c                 óÒ   — | j         }|||dz   …         dv s
J d¦   «         ‚|                     d|dz   ¦  «        }|dk    rdS |r |                      ||dz   |…         ¦  «         |dz   S )Nr7   )r6   r3   z"unexpected call to parse_comment()r   r>   r    )r   rA   rQ   )r   r^   Úreportr   Úposs        r   rg   zHTMLParser.parse_bogus_comment'  s‰   € Ø”,ˆØ�q˜˜1™�uŒ~ Ð-Ð-Ð-ð 1BÑ-Ô-Ð-à�lŠl˜3  !¡Ñ$Ô$ˆØ�"Š9ˆ9Ø�2Øð 	2Ø×Ò ¨¨!©¨C¨Ô 0Ñ1Ô1Ð1Ø�Q‰wˆr   c                 ó  — | j         }|||dz   …         dk    s
J d¦   «         ‚t                               ||dz   ¦  «        }|sdS |                     ¦   «         }|                      ||dz   |…         ¦  «         |                     ¦   «         }|S )Nr7   r5   zunexpected call to parse_pi()r>   )r   ÚpicloserD   rE   rU   rZ   )r   r^   r   rJ   r`   s        r   rN   zHTMLParser.parse_pi3  s�   € Ø”,ˆØ�q˜˜1™�uŒ~ Ò%Ð%Ð%Ð'FÑ%Ô%Ð%Ý—’˜w¨¨!©Ñ,Ô,ˆØð 	Ø�2Ø�KŠK‰MŒMˆØ�Š�w˜q ™s A˜v”Ñ'Ô'Ð'Ø�IŠI‰KŒKˆØˆr   c                 óV  — d | _         |                      |¦  «        }|dk     r|S | j        }|||…         | _         g }t                               ||dz   ¦  «        }|s
J d¦   «         ‚|                     ¦   «         }|                     d¦  «                             ¦   «         x| _        }||k     rÛt                               ||¦  «        }|sn½|                     ddd¦  «        \  }	}
}|
sd }nI|d d…         dcxk    r|dd …         k    s"n |d d…         dcxk    r|dd …         k    rn n
|dd…         }|rt          |¦  «        }|                     |	                     ¦   «         |f¦  «         |                     ¦   «         }||k     °Û|||…                              ¦   «         }|d	vr|                      |||…         ¦  «         |S |                     d
¦  «        r|                      ||¦  «         n4|                      ||¦  «         || j        v r|                      |¦  «         |S )Nr   r    z#unexpected call to parse_starttag()r7   r:   ú'r>   ú")r   ú/>rq   )r#   Úcheck_for_whole_start_tagr   Útagfind_tolerantrJ   rZ   rX   r&   r   Úattrfind_tolerantr   ÚappendÚstriprF   rR   Úhandle_startendtagÚhandle_starttagÚCDATA_CONTENT_ELEMENTSr+   )r   r^   Úendposr   ÚattrsrJ   rb   ÚtagÚmÚattrnameÚrestÚ	attrvaluerZ   s                r   rK   zHTMLParser.parse_starttag?  sj  € Ø#ˆÔØ×/Ò/°Ñ2Ô2ˆØ�AŠ:ˆ:ØˆMØ”,ˆØ& q¨ xÔ0ˆÔð ˆÝ ×&Ò& w°°!±Ñ4Ô4ˆØÐ;Ð;Ð;Ñ;Ô;Ð;Ø�IŠI‰KŒKˆØ"Ÿ[š[¨™^œ^×1Ò1Ñ3Ô3Ð3ˆŒ�sØ�&ŠjˆjÝ!×'Ò'¨°Ñ3Ô3ˆAØð ØØ()¯ª°°1°aÑ(8Ô(8Ñ%ˆH�d˜IØð ,Ø �	�	Ø˜2˜A˜2” $Ð8Ð8Ò8Ð8¨)°B°C°C¬.Ò8Ð8Ð8Ð8Ø˜2˜A˜2” #Ð7Ð7Ò7Ð7¨°2°3°3¬Ò7Ð7Ð7Ð7Ð7Ø% a¨ dœO�	Øð 0Ý$ YÑ/Ô/�	Ø�LŠL˜(Ÿ.š.Ñ*Ô*¨IÐ6Ñ7Ô7Ð7Ø—’‘”ˆAð �&Šjˆjð �a˜�hÔ×%Ò%Ñ'Ô'ˆØ�kÐ!Ð!Ø×Ò˜W Q v XÔ.Ñ/Ô/Ð/ØˆMØ�<Š<˜ÑÔð 	)à×#Ò# C¨Ñ/Ô/Ð/Ð/à× Ò   eÑ,Ô,Ð,Ø�dÔ1Ð1Ð1Ø×#Ò# CÑ(Ô(Ð(Øˆr   c                 ó‚  — | j         }t                               ||¦  «        }|r�|                     ¦   «         }|||dz   …         }|dk    r|dz   S |dk    r@|                     d|¦  «        r|dz   S |                     d|¦  «        rdS ||k    r|S |dz   S |dk    rdS |dv rdS ||k    r|S |dz   S t          d	¦  «        ‚)
Nr    r   ú/rq   r7   r>   r   z6abcdefghijklmnopqrstuvwxyz=/ABCDEFGHIJKLMNOPQRSTUVWXYZr=   )r   Úlocatestarttagend_tolerantrJ   rZ   rH   rV   )r   r^   r   r}   r`   Únexts         r   rr   z$HTMLParser.check_for_whole_start_tagk  s  € Ø”,ˆÝ&×,Ò,¨W°aÑ8Ô8ˆØð 	Ø—’‘”ˆAØ˜1˜Q˜q™S˜5”>ˆDØ�sŠ{ˆ{Ø˜1‘u�Ø�sŠ{ˆ{Ø×%Ò% d¨AÑ.Ô.ð !Ø˜q™5�LØ×%Ò% c¨1Ñ-Ô-ð à˜2à�q’5�5Ø�Hà˜q™5�LØ�rŠzˆzà�rØð 5ð 6ð 6ð �rØ�1ŠuˆuØ�à˜1‘u�ÝÐ6Ñ7Ô7Ð7r   c                 ó¦  — | j         }|||dz   …         dk    s
J d¦   «         ‚t                               ||dz   ¦  «        }|sdS |                     ¦   «         }t                               ||¦  «        }|sÚ| j        �|                      |||…         ¦  «         |S t                               ||dz   ¦  «        }|s+|||dz   …         dk    r|dz   S |  	                    |¦  «        S | 
                    d¦  «                             ¦   «         }|                     d|                     ¦   «         ¦  «        }|                      |¦  «         |dz   S | 
                    d¦  «                             ¦   «         }| j        �*|| j        k    r|                      |||…         ¦  «         |S |                      |¦  «         |                      ¦   «          |S )	Nr7   r3   zunexpected call to parse_endtagr    r>   r:   z</>r   )r   Ú	endendtagrD   rZ   Ú
endtagfindrJ   r   rF   rs   rg   rX   r&   rA   Úhandle_endtagr.   )r   r^   r   rJ   rh   Ú	namematchÚtagnamer*   s           r   rL   zHTMLParser.parse_endtag�  sÒ  € Ø”,ˆØ�q˜˜1™�uŒ~ Ò%Ð%Ð%Ð'HÑ%Ô%Ð%Ý× Ò  ¨!¨A©#Ñ.Ô.ˆØð 	Ø�2Ø—	’	‘”ˆÝ× Ò  ¨!Ñ,Ô,ˆØð 	ØŒÐ*Ø× Ò  ¨¨5¨Ô!1Ñ2Ô2Ð2Ø�å(×.Ò.¨w¸¸!¹Ñ<Ô<ˆIØð 7à˜1˜Q˜q™S˜5”> UÒ*Ð*Ø˜Q™3�Jà×3Ò3°AÑ6Ô6Ð6Ø—o’o aÑ(Ô(×.Ò.Ñ0Ô0ˆGð
 —L’L  i§m¢m¡o¤oÑ6Ô6ˆEØ×Ò˜wÑ'Ô'Ð'Ø˜‘7ˆNà�{Š{˜1‰~Œ~×#Ò#Ñ%Ô%ˆØŒ?Ð&Ø�t”Ò&Ð&Ø× Ò  ¨¨5¨Ô!1Ñ2Ô2Ð2Ø�à×Ò˜4Ñ Ô Ð Ø×ÒÑÔÐØˆr   c                 ó\   — |                       ||¦  «         |                      |¦  «         d S r-   )rx   rˆ   ©r   r|   r{   s      r   rw   zHTMLParser.handle_startendtagµ  s2   € Ø×Ò˜S %Ñ(Ô(Ð(Ø×Ò˜3ÑÔÐÐÐr   c                 ó   — d S r-   © rŒ   s      r   rx   zHTMLParser.handle_starttagº  ó   € Øˆr   c                 ó   — d S r-   rŽ   )r   r|   s     r   rˆ   zHTMLParser.handle_endtag¾  r�   r   c                 ó   — d S r-   rŽ   ©r   rd   s     r   rY   zHTMLParser.handle_charrefÂ  r�   r   c                 ó   — d S r-   rŽ   r’   s     r   r\   zHTMLParser.handle_entityrefÆ  r�   r   c                 ó   — d S r-   rŽ   r   s     r   rF   zHTMLParser.handle_dataÊ  r�   r   c                 ó   — d S r-   rŽ   r   s     r   rQ   zHTMLParser.handle_commentÎ  r�   r   c                 ó   — d S r-   rŽ   )r   Údecls     r   rT   zHTMLParser.handle_declÒ  r�   r   c                 ó   — d S r-   rŽ   r   s     r   rU   zHTMLParser.handle_piÖ  r�   r   c                 ó   — d S r-   rŽ   r   s     r   rS   zHTMLParser.unknown_declÙ  r�   r   )r    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ry   r   r   r   r!   r#   r$   r+   r.   r   rO   rg   rN   rK   rr   rL   rw   rx   rˆ   rY   r\   rF   rQ   rT   rU   rS   rŽ   r   r   r   r   ?   s±  € € € € € ðð ð* 1Ðà+/ð ð ð ð ð ð+ð +ð +ðð ð ðð ð ð €Oð$ð $ð $ðNð Nð Nðð ð ðG#ð G#ð G#ðX/ð /ð /ð*	ð 	ð 	ð 	ð	ð 	ð 	ð(ð (ð (ðX8ð 8ð 8ðD%ð %ð %ðP ð  ð  ð
ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   )r�   r'   r   Úhtmlr   Ú__all__r(   r   r]   r[   rW   rI   rP   rm   Úcommentclosers   rt   ÚVERBOSErƒ   r†   r‡   r   r   rŽ   r   r   ú<module>r¢      s~  ðØ "Ð "ð 
€	€	€	Ø Ð Ð Ð à Ð Ð Ð Ð Ð ð ˆ.€ð  �R”Z Ñ'Ô'Ð ØˆRŒZ˜Ñ%Ô%€
àˆBŒJÐ>Ñ?Ô?€	Ø
ˆ"Œ*Ð@Ñ
AÔ
A€àˆrŒz˜+Ñ&Ô&€ØˆRŒZ˜Ñ%Ô%€
Ø
ˆ"Œ*�S‰/Œ/€ØˆrŒz˜)Ñ$Ô$€ð �2”:ÐLÑMÔMÐ Ø�B”Jð=ñ>ô >Ð ð (˜RœZð )ð „Zñô Ð ð ˆBŒJ�s‰OŒO€	ð ˆRŒZÐ>Ñ?Ô?€
ð[ð [ð [ð [ð [�Ô'ñ [ô [ð [ð [ð [r   