+
     BiP                        ^ RI t ^ RIt^ RIHt ^ RIHt R.t] P                  ! R4      t	] P                  ! R4      t
] P                  ! R4      t] P                  ! R4      t] P                  ! R	4      t] P                  ! R
4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R4      t] P                  ! R] P(                  4      t] P                  ! R] P(                  4      t] P                  ! R] P(                  4      t] P                  ! R4      t] P                  ! R4      tR tR t ! R R]P8                  4      tR# )    N)unescape)html5
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]z6&(#[0-9]+|#[xX][0-9a-fA-F]+|[a-zA-Z][a-zA-Z0-9]*)[;=]?z	<[a-zA-Z]z
</[a-zA-Z]>z--!?>z-?>z0([a-zA-Z][^\t\n\r\f />]*)(?:[\t\n\r\f ]|/(?!>))*a{  
  (
    (?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]*  # attribute name
   )
  ([\t\n\r\f ]*=[\t\n\r\f ]*        # value indicator
    ('[^']*'                        # LITA-enclosed value
    |"[^"]*"                        # LIT-enclosed value
    |(?!['"])[^>\t\n\r\f ]*         # bare value
    )
   )?
  (?:[\t\n\r\f ]|/(?!>))*           # possibly followed by a space
a  
  [a-zA-Z][^\t\n\r\f />]*           # tag name
  [\t\n\r\f /]*                     # optional whitespace before attribute name
  (?:(?<=['"\t\n\r\f /])[^\t\n\r\f />][^\t\n\r\f /=>]*  # attribute name
    (?:[\t\n\r\f ]*=[\t\n\r\f ]*    # value indicator
      (?:'[^']*'                    # LITA-enclosed value
        |"[^"]*"                    # LIT-enclosed value
        |(?!['"])[^>\t\n\r\f ]*     # bare value
       )
     )?
    [\t\n\r\f /]*                   # possibly followed by a space
   )*
   >?
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                     V P                  ^ 4      pVP                  R4      '       d   \        V4      # VP                  R4      '       g   VR,          \        9   d   \        V4      # V# )r   &#=:   NN)group
startswithr   endswithhtml5_entities)matchrefs   & "/usr/lib/python3.14/html/parser.py_replace_attr_charrefr   \   sS    
++a.C
~~d} <<RN!:}J    c                 6    \         P                  \        V 4      # N)attr_charrefsubr   )ss   &r   _unescape_attrvaluer   h   s    1155r   c                      a a ] tR t^lt oR!tR"tRR/V 3R lltV 3R ltR tR t	Rt
R tR	R
/R ltR tR#R ltR tR tR#R ltR$R ltR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!Vt"V ;t## )%r   convert_charrefsTc               P   < \         SV `  4        Wn        V P                  4        R # r   )super__init__r   reset)selfr   	__class__s   &$r   r   HTMLParser.__init__   s     	 0

r   c                   < R V n         RV n        \        V n        RV n        RV n        RV n        \        SV `!  4        R# ) z???NT)	rawdatalasttaginteresting_normalinteresting
cdata_elem_support_cdata
_escapabler   r   )r    r!   s   &r   r   HTMLParser.reset   s8    -"r   c                X    V P                   V,           V n         V P                  ^ 4       R# )r   N)r%   goaheadr    datas   &&r   feedHTMLParser.feed   s     ||d*Qr   c                (    V P                  ^4       R# )r
   N)r.   r    s   &r   closeHTMLParser.close   s    Qr   Nc                    V P                   # r   )_HTMLParser__starttag_textr4   s   &r   get_starttag_textHTMLParser.get_starttag_text   s    ###r   	escapableFc                  VP                  4       V n        W n        V'       de   V P                  '       gS   \        P
                  ! R V P                  ,          \        P                  \        P                  ,          4      V n        R# \        P
                  ! RV P                  ,          \        P                  \        P                  ,          4      V n        R# )z&|</%s(?=[\t\n\r\f />])z</%s(?=[\t\n\r\f />])N)	lowerr)   r+   r   recompile
IGNORECASEASCIIr(   )r    elemr;   s   &&$r   set_cdata_modeHTMLParser.set_cdata_mode   s    **,#T222!zz*Dt*V*,--*@ BD  "zz*BT__*T*,--*@ BDr   c                8    \         V n        R V n        RV n        R # )NT)r'   r(   r)   r+   r4   s   &r   clear_cdata_modeHTMLParser.clear_cdata_mode   s    -r   c                    Wn         R # r   )r*   )r    flags   &&r   _set_support_cdataHTMLParser._set_support_cdata   s
     #r   c                   V P                   p^ p\        V4      pW48  EdI   V P                  '       d   V P                  '       gs   VP	                  RV4      pV^ 8  dY   VP                  R\        W4^",
          4      4      pV^ 8  d.   \        P                  ! R4      P                  W&4      '       g   EMTpMJV P                  P                  W#4      pV'       d   VP                  4       pMV P                  '       d   EMjTpW58  dU   V P                  '       d0   V P                  '       d   V P                  \        W#V 4      4       MV P                  W#V 4       V P                  W54      pW48X  d   EMVP                   pV! RV4      '       Ed   \"        P%                  W#4      '       d   V P'                  V4      p	MV! RV4      '       d   V P)                  V4      p	MV! RV4      '       d   V P+                  V4      p	MuV! RV4      '       d   V P-                  V4      p	MTV! RV4      '       d   V P/                  V4      p	M3V^,           V8  g	   V'       d   V P                  R4       V^,           p	MEMV	^ 8  Ed   V'       g   EM\"        P%                  W#4      '       d   EMV! RV4      '       d[   V^,           V8X  d   V P                  R4       EMt\0        P%                  W#4      '       d   EMWV P3                  W#^,           R 4       EM;V! RV4      '       dY   TpR F5  p
VP5                  W^,           4      '       g   K#  V\        V
4      ,          p M	  V P3                  W#^,           V 4       MV! R	V4      '       d.   V P6                  '       d   V P9                  W#^,           R 4       MW#V^	,            P;                  4       R
8X  d   V P=                  W#^,           R 4       M_V! RV4      '       d   V P3                  W#^,           R 4       M5V! RV4      '       d   V P?                  W#^,           R 4       M\A        R4      hTp	V P                  W94      pEKC  V! RV4      '       d   \B        P%                  W#4      pV'       dh   VPE                  4       ^R pV PG                  V4       VPI                  4       p	V! RV	^,
          4      '       g
   V	^,
          p	V P                  W94      pEK  RW#R 9   d3   V P                  W#V^,            4       V P                  W3^,           4      pEM<V! RV4      '       g   EK%  \J        P%                  W#4      pV'       df   VPE                  ^4      pV PM                  V4       VPI                  4       p	V! RV	^,
          4      '       g
   V	^,
          p	V P                  W94      pEK  \N        P%                  W#4      pV'       dQ   V'       dH   VPE                  4       W#R 8X  d1   VPI                  4       p	W8:  d   Tp	V P                  W3^,           4      pM;V^,           V8  d-   V P                  R4       V P                  W3^,           4      pEKN   V'       dl   W48  df   V P                  '       d0   V P                  '       d   V P                  \        W#V 4      4       MV P                  W#V 4       V P                  W44      pW#R V n         R# )r   <&z[\t\n\r\f ;]z</<!--z<?z<!N	<![CDATA[	<!doctypezwe should not get here!r   ;)z--!z---)(r%   lenr   r)   findrfindmaxr>   r?   searchr(   startr+   handle_datar   	updateposr   starttagopenr   parse_starttagparse_endtagparse_commentparse_piparse_html_declaration
endtagopenhandle_commentr   r*   unknown_declr=   handle_decl	handle_piAssertionErrorcharrefr   handle_charrefend	entityrefhandle_entityref
incomplete)r    rk   r%   injampposr   r   ksuffixnames   &&          r   r.   HTMLParser.goahead   sr   ,,Le$$$T___LLa(q5 %]]3At=F!JJ7>>wOOA((//;AAu(((T___$$Xgl%;<$$Wq\2q$Avu ++J#q!!%%g11++A.Aa(())!,A****1-Aa((a(Aa((33A6A!eq[C$$S)AAq5#))'55#D!,,q5A: ,,T2'--g99  !//!>#FA..&8F&//!<< !S[ 0 % '9 ++GaCN;#K338K8K8K))'A#$-8 1Q3--/;>((17#D!,,++GaCDM:#D!,,wst}5,-FGGANN1(D!$$g1 ;;=2.D''-		A%c1Q3//Eq,Agbk)((1Q38 NN1c2C##!3 ;;q>D))$/		A%c1Q3//Eq,A"((4u{{};!IIK6 !A NN1!e4!eq[ $$S)qa%0A 15$$$  'A,!78  1.q$Ar{r   c                   V P                   pW!V^,            R8X  d   V P                  V4      # W!V^	,            R8X  dX   V P                  '       dF   VP                  RV^	,           4      pV^ 8  d   R# V P	                  W!^,           V 4       V^,           # W!V^	,            P                  4       R8X  dF   VP                  RV^	,           4      pVR8X  d   R# V P                  W!^,           V 4       V^,           # V P                  V4      # )   rO   rP   z]]>rQ   r   rT   )r%   r`   r*   rV   re   r=   rf   parse_bogus_comment)r    ro   r%   rq   gtposs   &&   r   rb   !HTMLParser.parse_html_declarationW  s    ,, QqS>V#%%a((qs^{*t/B/B/BUAaC(A1u	gc1o.q5Lqs^!!#{2LLac*E{	WqS/07N++A..r   c                2   V P                   p\        P                  W1^,           4      pV'       g'   \        P	                  W1^,           4      pV'       g   R# V'       d+   VP                  4       pV P                  W1^,           V 4       VP                  4       # )rx   rT   )r%   commentcloserY   commentabruptcloser   rZ   rd   rk   )r    ro   reportr%   r   rq   s   &&&   r   r`   HTMLParser.parse_commentp  sn    ,,##GqS1&,,Wc:E	A!Q0yy{r   c                    V P                   pVP                  R V^,           4      pVR8X  d   R# V'       d   V P                  W1^,           V 4       V^,           # r   rT   )r%   rV   rd   )r    ro   r   r%   poss   &&&  r   ry   HTMLParser.parse_bogus_comment  sP    ,, ll3!$"9I!C 01Qwr   c                    V P                   p\        P                  W!^,           4      pV'       g   R# VP                  4       pV P	                  W!^,           V 4       VP                  4       pV# )   rT   )r%   picloserY   rZ   rg   rk   r    ro   r%   r   rq   s   &&   r   ra   HTMLParser.parse_pi  sT    ,,w!,IKKMwsA'IIKr   c                   R V n         V P                  V4      pV^ 8  d   V# V P                  pW1V V n         . p\        P	                  W1^,           4      pVP                  4       pVP                  ^4      P                  4       ;V n        pWb8  d   \        P	                  W64      pV'       g   MVP                  ^^^4      w  rpV
'       g   R pM<VR,          Ru;8X  d   VRR  8X  g   M VR,          Ru;8X  d   VRR  8X  d	   M MV^R pV'       d   \        V4      pVP                  V	P                  4       V34       VP                  4       pK  W6V P                  4       pVR9  d   V P                  W1V 4       V# VP                  R4      '       d   V P                  Wt4       V# V P!                  Wt4       WpP"                  9   d   V P%                  V4       V# WpP&                  9   d   V P%                  VRR7       V# )	N:Nr
   N'"/>T)r;   rT   )r   r   )r8   check_for_whole_start_tagr%   tagfind_tolerantr   rk   r   r=   r&   attrfind_tolerantr   appendstripr[   r   handle_startendtaghandle_starttagCDATA_CONTENT_ELEMENTSrC   RCDATA_CONTENT_ELEMENTS)r    ro   endposr%   attrsr   rs   tagmattrnamerest	attrvaluerk   s   &&           r   r^   HTMLParser.parse_starttag  s     $//2A:M,,&0  &&w!4IIK"[[^1133sj!''3A()1a(8%HI 	2$8)BC.82#7237%aO	/	:	LL(..*I67A%%'k!Wv./M<<##C/    ,111##C(  444##C4#8r   c                    V P                   p\        P                  W!^,           4      pVP                  4       pW$^,
          ,          R8w  d   R# V# )r
   r   rT   )r%   locatetagendr   rk   r   s   &&   r   r   $HTMLParser.check_for_whole_start_tag  sB    ,,""7aC0IIKQ3<3Ir   c                2   V P                   pVP                  R V^,           4      ^ 8  d   R# \        P                  W!4      '       g2   W!^,           V^,            R 8X  d
   V^,           # V P	                  V4      # \
        P                  W!^,           4      pVP                  4       pW$^,
          ,          R 8w  d   R# \        P                  W!^,           4      pVP                  ^4      P                  4       pV P                  V4       V P                  4        V# r   )r%   rV   rc   r   ry   r   rk   r   r   r=   handle_endtagrF   )r    ro   r%   r   rq   r   s   &&    r   r_   HTMLParser.parse_endtag  s     ,,<<QqS!A%I++s1Q33&s
//22""7aC0IIKQ3<3I !&&w!4kk!n""$3r   c                J    V P                  W4       V P                  V4       R # r   )r   r   r    r   r   s   &&&r   r   HTMLParser.handle_startendtag  s    S(3r   c                    R # r    r   s   &&&r   r   HTMLParser.handle_starttag      r   c                    R # r   r   )r    r   s   &&r   r   HTMLParser.handle_endtag  r   r   c                    R # r   r   r    ru   s   &&r   rj   HTMLParser.handle_charref  r   r   c                    R # r   r   r   s   &&r   rm   HTMLParser.handle_entityref   r   r   c                    R # r   r   r/   s   &&r   r[   HTMLParser.handle_data  r   r   c                    R # r   r   r/   s   &&r   rd   HTMLParser.handle_comment  r   r   c                    R # r   r   )r    decls   &&r   rf   HTMLParser.handle_decl  r   r   c                    R # r   r   r/   s   &&r   rg   HTMLParser.handle_pi  r   r   c                    R # r   r   r/   s   &&r   re   HTMLParser.unknown_decl  r   r   )__starttag_textr+   r*   r)   r   r(   r&   r%   )scriptstyle)textareatitle)T)r
   )$__name__
__module____qualname____firstlineno__r   r   r   r   r1   r5   r8   r9   rC   rF   rJ   r.   rb   r`   ry   ra   r^   r   r_   r   r   r   rj   rm   r[   rd   rf   rg   re   __static_attributes____classdictcell____classcell__)r!   __classdict__s   @@r   r   r   l   s     , 134  O$B B
# G#X/2		,`< 
 r   )r>   _markupbasehtmlr   html.entitiesr   r   __all__r?   r'   rn   rl   ri   r   r]   rc   r   r}   r~   r   VERBOSEr   r   locatestarttagend_tolerant	endendtag
endtagfindr   r   
ParserBaser   r   r   r   <module>r      sV   
   1 . ZZ' ZZ%
JJ>?	
**@
AzzSTzz+&ZZ%

**S/zz(#ZZ'  ::QR JJ   ZZ  zz  ZZ   ZZ ) ZZ  JJsO	ZZ>?

6h'' hr   