
    ^h                    .   S SK JrJrJr  S SKJr  S SKrSSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SS jr SS jr!S r" " S S\#5      r$\RJ                  S 5       r&S r'  SS jr( " S S\)5      r*g)    )absolute_importdivisionunicode_literals)viewkeysN   )_inputstream)
_tokenizer)treebuilders)Marker)_utils)spaceCharactersasciiUpper2LowerspecialElementsheadingElementscdataElementsrcdataElements
tokenTypestagTokenTypes
namespaceshtmlIntegrationPointElements"mathmlTextIntegrationPointElementsadjustForeignAttributesadjustMathMLAttributesadjustSVGAttributesE_ReparseExceptionc                 f    [         R                  " U5      n[        XBS9nUR                  " U 40 UD6$ )a  Parse an HTML document as a string or file-like object into a tree

:arg doc: the document to parse as a string or file-like object

:arg treebuilder: the treebuilder to use when parsing

:arg namespaceHTMLElements: whether or not to namespace HTML elements

:returns: parsed tree

Example:

>>> from html5lib.html5parser import parse
>>> parse('<html><body><p>This is a doc</p></body></html>')
<Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

namespaceHTMLElements)r
   getTreeBuilder
HTMLParserparse)doctreebuilderr   kwargstbps         ]/home/james-whalen/.local/lib/python3.13/site-packages/bleach/_vendor/html5lib/html5parser.pyr"   r"      s2    $ 
	$	$[	1B2CA773!&!!    c                 j    [         R                  " U5      n[        XSS9nUR                  " U 4SU0UD6$ )a  Parse an HTML fragment as a string or file-like object into a tree

:arg doc: the fragment to parse as a string or file-like object

:arg container: the container context to parse the fragment in

:arg treebuilder: the treebuilder to use when parsing

:arg namespaceHTMLElements: whether or not to namespace HTML elements

:returns: parsed tree

Example:

>>> from html5lib.html5libparser import parseFragment
>>> parseFragment('<b>this is a fragment</b>')
<Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

r   	container)r
   r    r!   parseFragment)r#   r+   r$   r   r%   r&   r'   s          r(   r,   r,   1   s7    ( 
	$	$[	1B2CA??3>)>v>>r)   c                 ,   ^   " U 4S jS[         5      nU$ )Nc                   "   > \ rS rSrU 4S jrSrg)-method_decorator_metaclass.<locals>.DecoratedK   c                    > UR                  5        H0  u  pE[        U[        R                  5      (       a  T" U5      nXSU'   M2     [        R                  XX#5      $ N)items
isinstancetypesFunctionTypetype__new__)meta	classnamebases	classDictattributeName	attributefunctions         r(   r8   5method_decorator_metaclass.<locals>.Decorated.__new__L   sO    ,5OO,=(i););<< ( 3I+4-(	 ->
 <<BBr)    N)__name__
__module____qualname____firstlineno__r8   __static_attributes__)r?   s   r(   	Decoratedr/   K   s    	C 	Cr)   rG   )r7   )r?   rG   s   ` r(   method_decorator_metaclassrH   J   s    CD C r)   c                       \ rS rSrSrSS jrSS jrS r\S 5       r	S r
S	 rS
 rS rS rSS jrS rS rS rS rS rS rSrg)r!   V   zUHTML parser

Generates a tree structure from a stream of (possibly malformed) HTML.

Nc           	          X l         Uc  [        R                  " S5      nU" U5      U l        / U l        [        U5      R                  5        VVs0 s H  u  pVXV" X R                  5      _M     snnU l        gs  snnf )ay  
:arg tree: a treebuilder class controlling the type of tree that will be
    returned. Built in treebuilders can be accessed through
    html5lib.treebuilders.getTreeBuilder(treeType)

:arg strict: raise an exception when a parse error is encountered

:arg namespaceHTMLElements: whether or not to namespace HTML elements

:arg debug: whether or not to enable debug mode which logs things

Example:

>>> from html5lib.html5parser import HTMLParser
>>> parser = HTMLParser()                     # generates parser with etree builder
>>> parser = HTMLParser('lxml', strict=True)  # generates parser with lxml builder which is strict

Netree)strictr
   r    treeerrors	getPhasesr3   phases)selfrN   rM   r   debugnameclss          r(   __init__HTMLParser.__init__]   sw    * <..w7D./	 !'--/1/ 7@dtSyy11/1 1s   A8c                    X l         X0l        X@l        [        R                  " U4SU 0UD6U l        U R                  5          U R                  5         g ! [         a#    U R                  5         U R                  5          g f = f)Nparser)	innerHTMLModer+   	scriptingr	   HTMLTokenizer	tokenizerresetmainLoopr   )rR   stream	innerHTMLr+   r[   r%   s         r(   _parseHTMLParser._parse|   sf    &""#11&PPP

	MMO  	JJLMMO	s   A *B ?B c                    U R                   R                  5         SU l        / U l        / U l        SU l        U R                  (       Ga	  U R                  R                  5       U l	        U R                  [        ;   a&  U R                  R                  U R                  l        OqU R                  [        ;   a&  U R                  R                  U R                  l        O7U R                  S:X  a&  U R                  R                   U R                  l        O U R"                  S   U l        U R$                  R'                  5         U R)                  5         OSU l	        U R"                  S   U l        S U l        S U l        SU l        g )NFz	no quirks	plaintext
beforeHtmlinitialT)rN   r^   firstStartTagrO   log
compatModerZ   r+   lowerra   r   r]   rcdataStatestater   rawtextStateplaintextStaterQ   phaseinsertHtmlElementresetInsertionMode	lastPhasebeforeRCDataPhase
framesetOKrR   s    r(   r^   HTMLParser.reset   s   		"%!^^113DN~~.'+~~'A'A$>1'+~~'B'B$;.'+~~'D'D$ \2DJJJ((*##%"DNY/DJ!%r)   c                     [        U S5      (       d  gU R                  R                  R                  S   R                  $ )zwName of the character encoding that was used to decode the input stream, or
:obj:`None` if that is not determined yet

r]   Nr   )hasattrr]   r`   charEncodingrT   rv   s    r(   documentEncodingHTMLParser.documentEncoding   s5     t[))~~$$11!4999r)   c                    UR                   S:X  aR  UR                  [        S   :X  a;  SUR                  ;   =(       a%    UR                  S   R	                  [
        5      S;   $ UR                  UR                   4[        ;   $ )Nannotation-xmlmathmlencoding)z	text/htmlzapplication/xhtml+xml)rT   	namespacer   
attributes	translater   r   rR   elements     r(   isHTMLIntegrationPoint!HTMLParser.isHTMLIntegrationPoint   s{    LL,,!!Z%99'"4"44 ;&&z2<<(*:;<
 %%w||48TTTr)   c                 @    UR                   UR                  4[        ;   $ r2   )r   rT   r   r   s     r(   isMathMLTextIntegrationPoint'HTMLParser.isMathMLTextIntegrationPoint   s    !!7<<04VVVr)   c                    [         S   n[         S   n[         S   n[         S   n[         S   n[         S   n[         S   nU R                   GH6  nS n	Un
U
Gb  U
n	U R                  R                  (       a  U R                  R                  S   OS nU(       a  UR                  OS nU(       a  UR
                  OS nU
S	   nX:X  a)  U R                  U
S
   U
R                  S0 5      5        S n
GOU[        U R                  R                  5      S:X  d  XR                  R                  :X  dt  U R                  U5      (       a   X:X  a  US   [        SS/5      ;  dE  XU4;   d>  U[        S   :X  a  US:X  a  X:X  a	  US   S:X  d  U R                  U5      (       a  XX4;   a  U R                  nOU R                  S   nX:X  a  UR!                  U
5      n
OrX:X  a  UR#                  U
5      n
O[X:X  a  UR%                  U
5      n
ODX:X  a  UR'                  U
5      n
O-X:X  a  UR)                  U
5      n
OX:X  a  UR+                  U
5      n
U
b  GM  WU:X  d  GM  U	S   (       d  GM  U	S   (       a  GM  U R                  SSU	S   05        GM9     Sn/ nU(       aX  UR-                  U R                  5        U R                  R/                  5       nU(       a  U R                  U;  d   eU(       a  MW  g g )N
CharactersSpaceCharactersStartTagEndTagCommentDoctype
ParseErrorr7   datadatavarsr   rT   mglyph
malignmarkr   r~   svginForeignContentselfClosingselfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)r   r]   rN   openElementsr   rT   
parseErrorgetlendefaultNamespacer   	frozensetr   r   rp   rQ   processCharactersprocessSpaceCharactersprocessStartTagprocessEndTagprocessCommentprocessDoctypeappend
processEOF)rR   CharactersTokenSpaceCharactersTokenStartTagTokenEndTagTokenCommentTokenDoctypeTokenParseErrorTokentoken
prev_token	new_tokencurrentNodecurrentNodeNamespacecurrentNodeNamer7   rp   	reprocessrQ   s                     r(   r_   HTMLParser.mainLoop   s   $\2)*;<":. *!),!),$\2^^EJI'&
<@II<R<Rdii44R8X\@K{'<'<QU$6A+"2"2t (*OOIf$5y}}ZQS7TU $IDII223q8,		0J0JJ::;GG0 =	8\:R0SS4H"II-H1EE(,<<.v%/44[AA!WW $

 $,> ?.$)$;$;I$F	5$)$@$@$K	.$)$9$9)$D	,$)$7$7	$B	-$)$8$8$C	-$)$8$8$C	O 'R %*]*C*C"#<== H!'F); <>] $d 	MM$**%

--/Izz///	 ir)   c                 f    U R                   " USS/UQ70 UD6  U R                  R                  5       $ )a  Parse a HTML document into a well-formed tree

:arg stream: a file-like object or string containing the HTML to be parsed

    The optional encoding parameter must be a string that indicates
    the encoding.  If specified, that encoding will be used,
    regardless of any BOM or later declaration (such as in a meta
    element).

:arg scripting: treat noscript elements as if JavaScript was turned on

:returns: parsed tree

Example:

>>> from html5lib.html5parser import HTMLParser
>>> parser = HTMLParser()
>>> parser.parse('<html><body><p>This is a doc</p></body></html>')
<Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

FN)rb   rN   getDocumentrR   r`   argsr%   s       r(   r"   HTMLParser.parse  s1    , 	FE49$9&9yy$$&&r)   c                 d    U R                   " US/UQ70 UD6  U R                  R                  5       $ )a  Parse a HTML fragment into a well-formed tree fragment

:arg container: name of the element we're setting the innerHTML
    property if set to None, default to 'div'

:arg stream: a file-like object or string containing the HTML to be parsed

    The optional encoding parameter must be a string that indicates
    the encoding.  If specified, that encoding will be used,
    regardless of any BOM or later declaration (such as in a meta
    element)

:arg scripting: treat noscript elements as if JavaScript was turned on

:returns: parsed tree

Example:

>>> from html5lib.html5libparser import HTMLParser
>>> parser = HTMLParser()
>>> parser.parseFragment('<b>this is a fragment</b>')
<Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

T)rb   rN   getFragmentr   s       r(   r,   HTMLParser.parseFragment  s/    2 	FD24262yy$$&&r)   c                     Uc  0 nU R                   R                  U R                  R                  R	                  5       X45        U R
                  (       a  [        [        U   U-  5      eg r2   )rO   r   r]   r`   positionrM   r   r   )rR   	errorcoder   s      r(   r   HTMLParser.parseError;  sW    HDNN11::<iRS;;Qy\H455 r)   c                 $    [        U[        5        g r2   )adjust_attributesr   rR   r   s     r(   r   !HTMLParser.adjustMathMLAttributesC  s    %!78r)   c                 $    [        U[        5        g r2   )r   r   r   s     r(   r   HTMLParser.adjustSVGAttributesF  s    %!45r)   c                 $    [        U[        5        g r2   )r   adjustForeignAttributesMapr   s     r(   r   "HTMLParser.adjustForeignAttributesI  s    %!;<r)   c                 8    U R                   R                  5         g r2   )rY   rp   r   s     r(   reparseTokenNormalHTMLParser.reparseTokenNormalL  s    r)   c                     SnSSSSSSSSSSS	S	S
SS.nU R                   R                  S S S2    H  nUR                  nS nX0R                   R                  S   :X  a!  U R                  (       d   eSnU R                  nUS;   a  U R                  (       d   eU(       d&  UR                  U R                   R
                  :w  a  M  XB;   a  U R                  X$      n  OU(       d  M  U R                  S	   n  O   WU l        g )NFinSelectinCellinRowinTableBody	inCaptioninColumnGroupinTableinBody
inFrameset
beforeHead)selecttdthtrtbodytheadtfootcaptioncolgrouptableheadbodyframesethtmlr   r   T)r   r   r   r   )rN   r   rT   ra   r   r   rQ   rp   )rR   lastnewModesnodenodeName	new_phases         r(   rr   HTMLParser.resetInsertionModeP  s     """"'$ 
  II**4R40DyyHIyy--a00~~%~>> AA~~%~DNNdii.H.HH# KK(:;	 KK1	) 1, 
r)   c                 6   US;   d   eU R                   R                  U5        US:X  a&  U R                  R                  U R                  l        O%U R                  R
                  U R                  l        U R                  U l        U R                  S   U l        g )N)RAWTEXTRCDATAr   text)	rN   insertElementr]   rn   rm   rl   rp   originalPhaserQ   )rR   r   contentTypes      r(   parseRCDataRawtextHTMLParser.parseRCDataRawtext|  ss    3333		&)##'>>#>#>DNN #'>>#=#=DNN !ZZ[[(
r)   )rt   rj   r+   rO   rh   ru   ra   rZ   rs   ri   r   rp   rQ   r[   rM   r]   rN   )NFTF)FdivF)zXXX-undefined-errorN)rB   rC   rD   rE   __doc__rV   rb   r^   propertyr{   r   r   r_   r"   r,   r   r   r   r   r   rr   r   rF   rA   r)   r(   r!   r!   V   sl    1> D : :UWA0F'2'8696=*X)r)   r!   c                   ^^^ S nS n " S SU" X5      S9m " S ST5      n " S S	T5      n " S
 ST5      n " S ST5      n " S ST5      n " S ST5      n " UU4S jST5      m " S ST5      n	 " U4S jST5      n
 " U4S jST5      m " U4S jST5      n " U4S jST5      n " U4S jST5      n " U4S  jS!T5      n " U4S" jS#T5      n " U4S$ jS%T5      n " S& S'T5      n " U4S( jS)T5      n " S* S+T5      n " U4S, jS-T5      n " U4S. jS/T5      n " S0 S1T5      n " S2 S3T5      n0 S4U_S5U_S6U_S7U_S8U_S9U_S:T_S;U	_S<U
_S=T_S>U_S?U_S@U_SAU_SBU_SCU_SDU_UUUUUUSE.E$ )FNc                 x   ^ ^ [         R                  " 5        VVs0 s H  u  pX!_M	     snnmU U4S jnU$ s  snnf )z4Logger that records which phase processes each tokenc                 
  > TR                   R                  S5      (       a  [        U5      S:  a  US   nSTUS      0nUS   [        ;   a  US   US'   U R                  R
                  R                  U R                  R                  R                  R                   U R                  R                  R                  R                   U R                  R                   TR                   U45        T" U /UQ70 UD6$ T" U /UQ70 UD6$ )Nprocessr   r7   rT   )rB   
startswithr   r   rY   ri   r   r]   rm   rp   	__class__)rR   r   r%   r   infor?   
type_namess        r(   wrapped'getPhases.<locals>.log.<locals>.wrapped  s      ++I663t9q=Q
5= 9:=M1#(=DL&&(=(=(C(C(L(L(,(9(9(C(C(L(L(,(?(?(0(9(9(,	(. /
  6t6v666t6v66r)   )r   r3   )r?   keyvaluer  r  s   `   @r(   ri   getPhases.<locals>.log  s8    3=3C3C3EF3EZSej3EF
	7 # Gs   6c                 2    U (       a  [        U5      $ [        $ r2   )rH   r7   )use_metaclassmetaclass_funcs     r(   getMetaclassgetPhases.<locals>.getMetaclass  s    -n==Kr)   c                   R    \ rS rSrSrSrS rS rS rS r	S r
S	 rS
 rS rS rSrg)getPhases.<locals>.Phasei  zNBase class for helper object that implements each phase of processing
        )rY   rN   __startTagCache__endTagCachec                 8    Xl         X l        0 U l        0 U l        g r2   )rY   rN   _Phase__startTagCache_Phase__endTagCache)rR   rY   rN   s      r(   rV   !getPhases.<locals>.Phase.__init__  s     KI#%D !#Dr)   c                     [         er2   )NotImplementedErrorrv   s    r(   r   #getPhases.<locals>.Phase.processEOF  s    %%r)   c                 h    U R                   R                  XR                   R                  S   5        g )Nr   rN   insertCommentr   r   s     r(   r   'getPhases.<locals>.Phase.processComment  s%     II##E99+A+A"+EFr)   c                 :    U R                   R                  S5        g )Nzunexpected-doctyperY   r   r   s     r(   r   'getPhases.<locals>.Phase.processDoctype  s    KK""#78r)   c                 @    U R                   R                  US   5        g Nr   rN   
insertTextr   s     r(   r   *getPhases.<locals>.Phase.processCharacters      II  v/r)   c                 @    U R                   R                  US   5        g r!  r"  r   s     r(   r   /getPhases.<locals>.Phase.processSpaceCharacters  r%  r)   c                    US   nX R                   ;   a  U R                   U   nOU R                  U   =o0R                   U'   [        U R                   5      [        U R                  5      S-  :  ah  U R                   R                  [	        [        U R                   5      5      5        [        U R                   5      [        U R                  5      S-  :  a  Mh  U" U5      $ NrT   g?)r  startTagHandlerr   popnextiterrR   r   rT   funcs       r(   r   (getPhases.<locals>.Phase.processStartTag  s     =D +++++D1484H4H4NN++D1$../#d6J6J2Kc2QQ((,,T$t7K7K2L-MN $../#d6J6J2Kc2QQ ;r)   c                 v   U R                   R                  (       d$  US   S:X  a  U R                   R                  S5        US   R                  5        HR  u  p#X R                  R
                  S   R                  ;  d  M-  X0R                  R
                  S   R                  U'   MT     SU R                   l        g )NrT   r   znon-html-rootr   r   F)rY   rh   r   r3   rN   r   r   rR   r   attrr  s       r(   startTagHtml%getPhases.<locals>.Phase.startTagHtml  s    ;;,,v&1H&&7  %V}224yy55a8CCCAFII**1-88>  5 ).DKK%r)   c                    US   nX R                   ;   a  U R                   U   nOU R                  U   =o0R                   U'   [        U R                   5      [        U R                  5      S-  :  ah  U R                   R                  [	        [        U R                   5      5      5        [        U R                   5      [        U R                  5      S-  :  a  Mh  U" U5      $ r)  )r  endTagHandlerr   r+  r,  r-  r.  s       r(   r   &getPhases.<locals>.Phase.processEndTag  s     =D )))))$/262D2DT2JJ))$/$,,-D4F4F0G#0MM&&**4T5G5G0H+IJ $,,-D4F4F0G#0MM ;r)   )r  r  rY   rN   N)rB   rC   rD   rE   r   	__slots__rV   r   r   r   r   r   r   r4  r   rF   rA   r)   r(   Phaser    s:    	J		$	&	G
	9	0	0	"	.	r)   r:  )	metaclassc                   R    \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
rg)getPhases.<locals>.InitialPhasei  c                     g r2   rA   r   s     r(   r   6getPhases.<locals>.InitialPhase.processSpaceCharacters      r)   c                 b    U R                   R                  XR                   R                  5        g r2   rN   r  documentr   s     r(   r   .getPhases.<locals>.InitialPhase.processComment      II##E99+=+=>r)   c                    US   nUS   nUS   nUS   nUS:w  d  Uc	  Ub!  US:w  a  U R                   R                  S5        Uc  SnU R                  R                  U5        US:w  a  UR	                  [
        5      nU(       aY  US   S:w  dP  UR                  S	5      (       d:  US
;   d4  UR                  S5      (       a  Ub  U(       a&  UR                  5       S:X  a  SU R                   l        O@UR                  S5      (       d  UR                  S5      (       a  Ub  SU R                   l        U R                   R                  S   U R                   l
        g )NrT   publicIdsystemIdcorrectr   zabout:legacy-compatzunknown-doctype )7z*+//silmaril//dtd html pro v0r11 19970101//z4-//advasoft ltd//dtd html 3.0 aswedit + extensions//z*-//as//dtd html 3.0 aswedit + extensions//z-//ietf//dtd html 2.0 level 1//z-//ietf//dtd html 2.0 level 2//z&-//ietf//dtd html 2.0 strict level 1//z&-//ietf//dtd html 2.0 strict level 2//z-//ietf//dtd html 2.0 strict//z-//ietf//dtd html 2.0//z-//ietf//dtd html 2.1e//z-//ietf//dtd html 3.0//z-//ietf//dtd html 3.2 final//z-//ietf//dtd html 3.2//z-//ietf//dtd html 3//z-//ietf//dtd html level 0//z-//ietf//dtd html level 1//z-//ietf//dtd html level 2//z-//ietf//dtd html level 3//z"-//ietf//dtd html strict level 0//z"-//ietf//dtd html strict level 1//z"-//ietf//dtd html strict level 2//z"-//ietf//dtd html strict level 3//z-//ietf//dtd html strict//z-//ietf//dtd html//z(-//metrius//dtd metrius presentational//z5-//microsoft//dtd internet explorer 2.0 html strict//z.-//microsoft//dtd internet explorer 2.0 html//z0-//microsoft//dtd internet explorer 2.0 tables//z5-//microsoft//dtd internet explorer 3.0 html strict//z.-//microsoft//dtd internet explorer 3.0 html//z0-//microsoft//dtd internet explorer 3.0 tables//z#-//netscape comm. corp.//dtd html//z*-//netscape comm. corp.//dtd strict html//z*-//o'reilly and associates//dtd html 2.0//z3-//o'reilly and associates//dtd html extended 1.0//z;-//o'reilly and associates//dtd html extended relaxed 1.0//zN-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//zE-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//z$-//spyglass//dtd html 2.0 extended//z+-//sq//dtd html 2.0 hotmetal + extensions//z--//sun microsystems corp.//dtd hotjava html//z4-//sun microsystems corp.//dtd hotjava strict html//z-//w3c//dtd html 3 1995-03-24//z-//w3c//dtd html 3.2 draft//z-//w3c//dtd html 3.2 final//z-//w3c//dtd html 3.2//z-//w3c//dtd html 3.2s draft//z-//w3c//dtd html 4.0 frameset//z#-//w3c//dtd html 4.0 transitional//z(-//w3c//dtd html experimental 19960712//z&-//w3c//dtd html experimental 970421//z-//w3c//dtd w3 html//z-//w3o//dtd w3 html 3.0//z#-//webtechs//dtd mozilla html 2.0//z-//webtechs//dtd mozilla html//)z$-//w3o//dtd w3 html strict 3.0//en//z"-/w3c/dtd html 4.0 transitional/enr   )z -//w3c//dtd html 4.01 frameset//z$-//w3c//dtd html 4.01 transitional//z:http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtdquirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksrf   )rY   r   rN   insertDoctyper   r   r   rk   rj   rQ   rp   )rR   r   rT   rG  rH  rI  s         r(   r   .getPhases.<locals>.InitialPhase.processDoctype  sg   =DZ(HZ(HI&G("6(X9N-N&&'89II##E*2~#--.>?uV}6''6<7= 7=p  !) ) ''AB B $!15q!q)1&%%=> > %%?@ @ &)9& $ 2 2< @DKKr)   c                 v    SU R                   l        U R                   R                  S   U R                   l        g )NrK  rf   )rY   rj   rQ   rp   rv   s    r(   anythingElse,getPhases.<locals>.InitialPhase.anythingElseZ  s)    %-DKK" $ 2 2< @DKKr)   c                 \    U R                   R                  S5        U R                  5         U$ )Nzexpected-doctype-but-got-charsrY   r   rO  r   s     r(   r   1getPhases.<locals>.InitialPhase.processCharacters^  s&    KK""#CDLr)   c                 h    U R                   R                  SSUS   05        U R                  5         U$ )Nz"expected-doctype-but-got-start-tagrT   rR  r   s     r(   r   /getPhases.<locals>.InitialPhase.processStartTagc  s4    KK""#G$*E&M#:<Lr)   c                 h    U R                   R                  SSUS   05        U R                  5         U$ )Nz expected-doctype-but-got-end-tagrT   rR  r   s     r(   r   -getPhases.<locals>.InitialPhase.processEndTagi  s4    KK""#E$*E&M#:<Lr)   c                 Z    U R                   R                  S5        U R                  5         g)Nzexpected-doctype-but-got-eofTrR  rv   s    r(   r   *getPhases.<locals>.InitialPhase.processEOFo  s$    KK""#ABr)   rA   N)rB   rC   rD   rE   tupler9  r   r   r   rO  r   r   r   r   rF   rA   r)   r(   InitialPhaser=    s5    G			?]	A~	A	
			r)   r[  c                   L    \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	rg
)"getPhases.<locals>.BeforeHtmlPhaseit  c                     U R                   R                  [        SS5      5        U R                  R                  S   U R                  l        g )Nr   r   r   )rN   
insertRootimpliedTagTokenrY   rQ   rp   rv   s    r(   rq   4getPhases.<locals>.BeforeHtmlPhase.insertHtmlElementx  s6    II  !DE $ 2 2< @DKKr)   c                 $    U R                  5         gNTrq   rv   s    r(   r   -getPhases.<locals>.BeforeHtmlPhase.processEOF}  s    ""$r)   c                 b    U R                   R                  XR                   R                  5        g r2   rB  r   s     r(   r   1getPhases.<locals>.BeforeHtmlPhase.processComment  rE  r)   c                     g r2   rA   r   s     r(   r   9getPhases.<locals>.BeforeHtmlPhase.processSpaceCharacters  r@  r)   c                 &    U R                  5         U$ r2   rd  r   s     r(   r   4getPhases.<locals>.BeforeHtmlPhase.processCharacters  s    ""$Lr)   c                 Z    US   S:X  a  SU R                   l        U R                  5         U$ )NrT   r   T)rY   rh   rq   r   s     r(   r   2getPhases.<locals>.BeforeHtmlPhase.processStartTag  s+    V}&,0)""$Lr)   c                 |    US   S;  a"  U R                   R                  SSUS   05        g U R                  5         U$ )NrT   r   r   r   brzunexpected-end-tag-before-html)rY   r   rq   r   s     r(   r   0getPhases.<locals>.BeforeHtmlPhase.processEndTag  sD    V}$BB&&'G(.f'>@ &&(r)   rA   N)rB   rC   rD   rE   rZ  r9  rq   r   r   r   r   r   r   rF   rA   r)   r(   BeforeHtmlPhaser]  t  s-    G		A
		?				r)   rr  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 r\R                  " S
\	4S\
4/5      r\\l        \R                  " S\4/5      r\\l        Srg)"getPhases.<locals>.BeforeHeadPhasei  c                 :    U R                  [        SS5      5        g)Nr   r   TstartTagHeadr`  rv   s    r(   r   -getPhases.<locals>.BeforeHeadPhase.processEOF  s    ofjABr)   c                     g r2   rA   r   s     r(   r   9getPhases.<locals>.BeforeHeadPhase.processSpaceCharacters  r@  r)   c                 <    U R                  [        SS5      5        U$ Nr   r   rv  r   s     r(   r   4getPhases.<locals>.BeforeHeadPhase.processCharacters      ofjABLr)   c                 R    U R                   R                  S   R                  U5      $ Nr   rY   rQ   r   r   s     r(   r4  /getPhases.<locals>.BeforeHeadPhase.startTagHtml  "    ;;%%h/??FFr)   c                     U R                   R                  U5        U R                   R                  S   U R                   l        U R                  R
                  S   U R                  l        g )Nr   inHead)rN   r   r   headPointerrY   rQ   rp   r   s     r(   rw  /getPhases.<locals>.BeforeHeadPhase.startTagHead  sJ    II##E*$(II$:$:2$>DII! $ 2 28 <DKKr)   c                 <    U R                  [        SS5      5        U$ r|  rv  r   s     r(   startTagOther0getPhases.<locals>.BeforeHeadPhase.startTagOther  r~  r)   c                 <    U R                  [        SS5      5        U$ r|  rv  r   s     r(   endTagImplyHead2getPhases.<locals>.BeforeHeadPhase.endTagImplyHead  r~  r)   c                 F    U R                   R                  SSUS   05        g )Nzend-tag-after-implied-rootrT   r  r   s     r(   endTagOther.getPhases.<locals>.BeforeHeadPhase.endTagOther  s#    KK""#?$*E&M#:<r)   r   r   ro  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r   r4  rw  r  r  r  r   MethodDispatcherr*  defaultr7  rF   rA   r)   r(   BeforeHeadPhasert    s    G					G	=
			< !11\"\"3
  #0//+_=1
  !,r)   r  c                      \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS r\R,                  " S\4S\4S\4S\4S\4S\
4S\4S\	4/5      r\\l        \R,                  " S\4S\4/5      r\\l        Srg)getPhases.<locals>.InHeadPhasei  c                 $    U R                  5         grc  rO  rv   s    r(   r   )getPhases.<locals>.InHeadPhase.processEOF      r)   c                 &    U R                  5         U$ r2   r  r   s     r(   r   0getPhases.<locals>.InHeadPhase.processCharacters      Lr)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r4  +getPhases.<locals>.InHeadPhase.startTagHtml  r  r)   c                 :    U R                   R                  S5        g )Nz!two-heads-are-not-better-than-oner  r   s     r(   rw  +getPhases.<locals>.InHeadPhase.startTagHead  s    KK""#FGr)   c                     U R                   R                  U5        U R                   R                  R                  5         SUS'   g NTr   rN   r   r   r+  r   s     r(   startTagBaseLinkCommand6getPhases.<locals>.InHeadPhase.startTagBaseLinkCommand  5    II##E*II""&&(/3E+,r)   c                    U R                   R                  U5        U R                   R                  R                  5         SUS'   US   nU R                  R
                  R                  R                  S   S:X  a  SU;   a3  U R                  R
                  R                  R                  US   5        g SU;   a  SU;   a  US   R                  5       S	:X  a~  [        R                  " US   R                  S
5      5      n[        R                  " U5      nUR                  5       nU R                  R
                  R                  R                  U5        g g g g g )NTr   r   r   	tentativecharsetcontentz
http-equivzcontent-typezutf-8)rN   r   r   r+  rY   r]   r`   rz   changeEncodingrk   r   EncodingBytesencodeContentAttrParserr"   )rR   r   r   r   rY   codecs         r(   startTagMeta+getPhases.<locals>.InHeadPhase.startTagMeta  s$   II##E*II""&&(/3E+,vJ{{$$++88;{J
*KK))00??
9@UV:-"j0 .446.H
 (55j6K6R6RSZ6[\D);;DAF"LLNEKK))00??F I 1 . Kr)   c                 <    U R                   R                  US5        g )Nr   rY   r   r   s     r(   startTagTitle,getPhases.<locals>.InHeadPhase.startTagTitle  s    KK**5(;r)   c                 <    U R                   R                  US5        g )Nr   r  r   s     r(   startTagNoFramesStyle4getPhases.<locals>.InHeadPhase.startTagNoFramesStyle      KK**5)<r)   c                     U R                   R                  (       a  U R                   R                  US5        g U R                  R	                  U5        U R                   R
                  S   U R                   l        g )Nr   inHeadNoscript)rY   r[   r   rN   r   rQ   rp   r   s     r(   startTagNoscript/getPhases.<locals>.InHeadPhase.startTagNoscript  sQ    {{$$..ui@		''.$(KK$6$67G$H!r)   c                 F   U R                   R                  U5        U R                  R                  R                  U R                  R                  l        U R                  R                  U R                  l        U R                  R                  S   U R                  l        g )Nr   )	rN   r   rY   r]   scriptDataStaterm   rp   r   rQ   r   s     r(   startTagScript-getPhases.<locals>.InHeadPhase.startTagScript   sg    II##E**.++*?*?*O*ODKK!!'(,(9(9DKK% $ 2 26 :DKKr)   c                 &    U R                  5         U$ r2   r  r   s     r(   r  ,getPhases.<locals>.InHeadPhase.startTagOther  r  r)   c                     U R                   R                  R                  R                  5       nUR                  S:X  d   SUR                  -  5       eU R                   R
                  S   U R                   l        g )Nr   zExpected head got %s	afterHeadrY   rN   r   r+  rT   rQ   rp   rR   r   r   s      r(   
endTagHead)getPhases.<locals>.InHeadPhase.endTagHead
  s\    ;;##00446D99&J(>(JJ& $ 2 2; ?DKKr)   c                 &    U R                  5         U$ r2   r  r   s     r(   endTagHtmlBodyBr/getPhases.<locals>.InHeadPhase.endTagHtmlBodyBr  r  r)   c                 F    U R                   R                  SSUS   05        g Nunexpected-end-tagrT   r  r   s     r(   r  *getPhases.<locals>.InHeadPhase.endTagOther       KK""#7&%-9PQr)   c                 8    U R                  [        S5      5        g )Nr   )r  r`  rv   s    r(   rO  +getPhases.<locals>.InHeadPhase.anythingElse  s    OOOF34r)   r   title)noframesstylenoscriptscript)basebasefontbgsoundcommandlinkr9   r   )rp  r   r   rA   N)rB   rC   rD   rE   rZ  r9  r   r   r4  rw  r  r  r  r  r  r  r  r  r  r  rO  r   r  r*  r  r7  rF   rA   r)   r(   InHeadPhaser    s    G				G	H	4
	G*	<	=	I	;		@
		R	5 !11\"m$"$9:)*~&?$&\"\"
3
 
 #0//Z #%561
  !,r)   r  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS r\R&                  " S\
4S\4S\4/5      r\\l        \R&                  " S\4S\4/5      r\\l        Srg)&getPhases.<locals>.InHeadNoscriptPhasei,  c                 Z    U R                   R                  S5        U R                  5         g)Nzeof-in-head-noscriptTrR  rv   s    r(   r   1getPhases.<locals>.InHeadNoscriptPhase.processEOF/  s$    KK""#9:r)   c                 R    U R                   R                  S   R                  U5      $ Nr  )rY   rQ   r   r   s     r(   r   5getPhases.<locals>.InHeadNoscriptPhase.processComment4  s"    ;;%%h/>>uEEr)   c                 \    U R                   R                  S5        U R                  5         U$ )Nzchar-in-head-noscriptrR  r   s     r(   r   8getPhases.<locals>.InHeadNoscriptPhase.processCharacters7  s&    KK""#:;Lr)   c                 R    U R                   R                  S   R                  U5      $ r  rY   rQ   r   r   s     r(   r   =getPhases.<locals>.InHeadNoscriptPhase.processSpaceCharacters<  "    ;;%%h/FFuMMr)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r4  3getPhases.<locals>.InHeadNoscriptPhase.startTagHtml?  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  >getPhases.<locals>.InHeadNoscriptPhase.startTagBaseLinkCommandB  r  r)   c                 F    U R                   R                  SSUS   05        g Nunexpected-start-tagrT   r  r   s     r(   startTagHeadNoscript;getPhases.<locals>.InHeadNoscriptPhase.startTagHeadNoscriptE       KK""#9FE&M;RSr)   c                 h    U R                   R                  SSUS   05        U R                  5         U$ Nzunexpected-inhead-noscript-tagrT   rR  r   s     r(   r  4getPhases.<locals>.InHeadNoscriptPhase.startTagOtherH  2    KK""#CfeTZmE\]Lr)   c                     U R                   R                  R                  R                  5       nUR                  S:X  d   SUR                  -  5       eU R                   R
                  S   U R                   l        g )Nr  zExpected noscript got %sr  r  r  s      r(   endTagNoscript5getPhases.<locals>.InHeadNoscriptPhase.endTagNoscriptM  s\    ;;##00446D99
*R,F,RR* $ 2 28 <DKKr)   c                 h    U R                   R                  SSUS   05        U R                  5         U$ r  rR  r   s     r(   endTagBr/getPhases.<locals>.InHeadNoscriptPhase.endTagBrR  r  r)   c                 F    U R                   R                  SSUS   05        g r  r  r   s     r(   r  2getPhases.<locals>.InHeadNoscriptPhase.endTagOtherW  r  r)   c                 8    U R                  [        S5      5        g )Nr  )r  r`  rv   s    r(   rO  3getPhases.<locals>.InHeadNoscriptPhase.anythingElseZ  s    
 ;<r)   r   )r  r  r  r9   r  r  )r   r  r  rp  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r   r   r4  r  r  r  r  r  r  rO  r   r  r*  r  r7  rF   rA   r)   r(   InHeadNoscriptPhaser  ,  s    G		
	F	
	N	G	G	T	
	=
	
	R	= !11\"IKbc!#783
 
 #0//(81
  !,r)   r  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS r\R$                  " S\4S\	4S\
4S\4S\4/5      r\\l        \R$                  " S\4/5      r\\l        Srg)!getPhases.<locals>.AfterHeadPhaseik  c                 $    U R                  5         grc  r  rv   s    r(   r   ,getPhases.<locals>.AfterHeadPhase.processEOFn  r  r)   c                 &    U R                  5         U$ r2   r  r   s     r(   r   3getPhases.<locals>.AfterHeadPhase.processCharactersr  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r4  .getPhases.<locals>.AfterHeadPhase.startTagHtmlv  r  r)   c                     SU R                   l        U R                  R                  U5        U R                   R                  S   U R                   l        g )NFr   )rY   ru   rN   r   rQ   rp   r   s     r(   startTagBody.getPhases.<locals>.AfterHeadPhase.startTagBodyy  s;    %*DKK"II##E* $ 2 28 <DKKr)   c                     U R                   R                  U5        U R                  R                  S   U R                  l        g )Nr   )rN   r   rY   rQ   rp   r   s     r(   startTagFrameset2getPhases.<locals>.AfterHeadPhase.startTagFrameset~  s/    II##E* $ 2 2< @DKKr)   c                    U R                   R                  SSUS   05        U R                  R                  R	                  U R                  R
                  5        U R                   R                  S   R                  U5        U R                  R                  S S S2    H:  nUR                  S:X  d  M  U R                  R                  R                  U5          g    g )Nz#unexpected-start-tag-out-of-my-headrT   r  r   r   )
rY   r   rN   r   r   r  rQ   r   rT   remover  s      r(   startTagFromHead2getPhases.<locals>.AfterHeadPhase.startTagFromHead  s    KK""#H$*E&M#:<II""))$))*?*?@KKx(88?		..tt499&II**11$7 5r)   c                 F    U R                   R                  SSUS   05        g r  r  r   s     r(   rw  .getPhases.<locals>.AfterHeadPhase.startTagHead  r  r)   c                 &    U R                  5         U$ r2   r  r   s     r(   r  /getPhases.<locals>.AfterHeadPhase.startTagOther  r  r)   c                 &    U R                  5         U$ r2   r  r   s     r(   r  2getPhases.<locals>.AfterHeadPhase.endTagHtmlBodyBr  r  r)   c                 F    U R                   R                  SSUS   05        g r  r  r   s     r(   r  -getPhases.<locals>.AfterHeadPhase.endTagOther  r  r)   c                     U R                   R                  [        SS5      5        U R                  R                  S   U R                  l        SU R                  l        g )Nr   r   r   T)rN   r   r`  rY   rQ   rp   ru   rv   s    r(   rO  .getPhases.<locals>.AfterHeadPhase.anythingElse  sB    II##OFJ$GH $ 2 28 <DKK%)DKK"r)   r   r   r   )	r  r  r  r  r9   r  r  r  r  r   )r   r   rp  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r4  r  r  r  rw  r  r  r  rO  r   r  r*  r  r7  rF   rA   r)   r(   AfterHeadPhaser  k  s    G				G	=
	A		T			R	*
 !11\"\")*  \"3
  #0//2H2B2D 1E F +r)   r!  c                     >^  \ rS rSrSrUU 4S jrS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7\8Rr                  " / S6 YRt                  4PS7\4PS8\4PS9\4PS:\4P\;\4PS;\4PS<\4PS=\4PS>\4PS?\4PS@\4PSA\4PSB\4PSC\4PSD\4PSE\4PSF\4PSG\4PSH\4PSI\4PSJ\ 4PSK\!4PSL\"4PSM\#4PSN\$4PSO\%4PSP\'4PSQ\(4PSR\&4PSS\)4PST\*4PSU\+4P5      r<\,\<l=        \8Rr                  " S8\.4S6\/4SV\04S<\14SW\-4SX\24\;\34SY\44SC\54SZ\64/
5      r>\7\>l=        Sr?U =r@$ )[getPhases.<locals>.InBodyPhasei  )r   c                 H   > [         TU ]  " U0 UD6  U R                  U l        g r2   )superrV   processSpaceCharactersNonPrer   )rR   r   r%   InBodyPhaser  s      r(   rV   'getPhases.<locals>.InBodyPhase.__init__  s%    +t-t>v>*.*K*KD'r)   c                     UR                   UR                   :H  =(       a9    UR                  UR                  :H  =(       a    UR                  UR                  :H  $ r2   )rT   r   r   )rR   node1node2s      r(   isMatchingFormattingElement:getPhases.<locals>.InBodyPhase.isMatchingFormattingElement  sE    JJ%**, 9OOu69$$(8(88:r)   c                    U R                   R                  U5        U R                   R                  S   n/ nU R                   R                  S S S2    H7  nU[        L a    O-U R                  XB5      (       d  M&  UR                  U5        M9     [        U5      S::  d   e[        U5      S:X  a(  U R                   R                  R                  US   5        U R                   R                  R                  U5        g )Nr      )	rN   r   r   activeFormattingElementsr   r,  r   r   r  )rR   r   r   matchingElementsr   s        r(   addFormattingElement3getPhases.<locals>.InBodyPhase.addFormattingElement  s    II##E*ii,,R0G!		::4R4@6>55dDD$++D1	 A '(A---#$)		2299:J2:NOII..55g>r)   c                     [        S5      nU R                  R                  S S S2    H0  nUR                  U;  d  M  U R                  R                  S5          g    g )N)dddtlir'   r   r   r   r   r   r   r   r   r   z expected-closing-tag-but-got-eof)r   rN   r   rT   rY   r   )rR   allowed_elementsr   s      r(   r   )getPhases.<locals>.InBodyPhase.processEOF  sT    ( *2  3 		..tt499$44KK**+MN 5r)   c                    US   nU R                   U l        UR                  S5      (       aX  U R                  R                  S   R
                  S;   a1  U R                  R                  S   R                  5       (       d  USS  nU(       a6  U R                  R                  5         U R                  R                  U5        g g )Nr   
r   )prelistingtextarear   )	r&  r   r   rN   r   rT   
hasContent#reconstructActiveFormattingElementsr#  )rR   r   r   s      r(   !processSpaceCharactersDropNewline@getPhases.<locals>.InBodyPhase.processSpaceCharactersDropNewline  s     =D*.*K*KD'%%		&&r*//3QQ		..r2==??ABx		==?		$$T* r)   c                 D   US   S:X  a  g U R                   R                  5         U R                   R                  US   5        U R                  R                  (       a>  [        US    Vs/ s H  nU[        ;  PM     sn5      (       a  SU R                  l        g g g s  snf )Nr    F)rN   r@  r#  rY   ru   anyr   )rR   r   chars      r(   r   0getPhases.<locals>.InBodyPhase.processCharacters  s    V}(II99;II  v/&&!&v0!. 0!.0 1 1).&1 '0s   *Bc                 t    U R                   R                  5         U R                   R                  US   5        g r!  )rN   r@  r#  r   s     r(   r&  ;getPhases.<locals>.InBodyPhase.processSpaceCharactersNonPre  s(    II99;II  v/r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   startTagProcessInHead4getPhases.<locals>.InBodyPhase.startTagProcessInHead  r  r)   c                    U R                   R                  SSS05        [        U R                  R                  5      S:X  d'  U R                  R                  S   R
                  S:w  a  U R                   R                  (       d   eg SU R                   l        US   R                  5        HR  u  p#X R                  R                  S   R                  ;  d  M-  X0R                  R                  S   R                  U'   MT     g )Nr  rT   r   r   Fr   )
rY   r   r   rN   r   rT   ra   ru   r3   r   r2  s       r(   r  +getPhases.<locals>.InBodyPhase.startTagBody  s    KK""#9FF;KLDII**+q0II**1-22f<{{,,,,).&#(=#6#6#8KD99#9#9!#<#G#GGEJ		..q1<<TB $9r)   c                    U R                   R                  SSS05        [        U R                  R                  5      S:X  d'  U R                  R                  S   R
                  S:w  a  U R                   R                  (       d   eg U R                   R                  (       d  g U R                  R                  S   R                  (       aI  U R                  R                  S   R                  R                  U R                  R                  S   5        U R                  R                  S   R
                  S:w  aM  U R                  R                  R                  5         U R                  R                  S   R
                  S:w  a  MM  U R                  R                  U5        U R                   R                  S   U R                   l        g )	Nr  rT   r   r   r   r   r   r   )rY   r   r   rN   r   rT   ra   ru   parentremoveChildr+  r   rQ   rp   r   s     r(   r  /getPhases.<locals>.InBodyPhase.startTagFrameset  s=   KK""#9FJ;OPDII**+q0DII4J4J14M4R4RV\4\{{,,,,[[++99))!,33II**1-44@@AWAWXYAZ[ii,,R055?II**..0 ii,,R055?		''.$(KK$6$6|$D!r)   c                     U R                   R                  SSS9(       a  U R                  [        S5      5        U R                   R	                  U5        g Nr'   buttonvariant)rN   elementInScopeendTagPr`  r   r   s     r(   startTagCloseP-getPhases.<locals>.InBodyPhase.startTagCloseP  s<    yy''X'>_S12II##E*r)   c                     U R                   R                  SSS9(       a  U R                  [        S5      5        U R                   R	                  U5        SU R
                  l        U R                  U l        g )Nr'   rU  rV  F)	rN   rX  rY  r`  r   rY   ru   rA  r   r   s     r(   startTagPreListing1getPhases.<locals>.InBodyPhase.startTagPreListing  sV    yy''X'>_S12II##E*%*DKK"*.*P*PD'r)   c                 p   U R                   R                  (       a  U R                  R                  SSS05        g U R                   R	                  SSS9(       a  U R                  [        S5      5        U R                   R                  U5        U R                   R                  S   U R                   l        g )Nr  rT   formr'   rU  rV  r   )	rN   formPointerrY   r   rX  rY  r`  r   r   r   s     r(   startTagForm+getPhases.<locals>.InBodyPhase.startTagForm  s~    yy$$&&'=?OP99++C+BLL!56		''.(,		(>(>r(B		%r)   c                 N   SU R                   l        S/SS/SS/S.nX!S      n[        U R                  R                  5       Hv  nUR
                  U;   a;  U R                   R                  R                  [        UR
                  S5      5          O,UR                  [        ;   d  Md  UR
                  S;  d  Mv    O   U R                  R                  S	S
S9(       a/  U R                   R                  R                  [        S	S5      5        U R                  R                  U5        g )NFr7  r6  r5  )r7  r6  r5  rT   r   )addressr   r'   r'   rU  rV  )rY   ru   reversedrN   r   rT   rp   r   r`  	nameTupler   rX  r   )rR   r   stopNamesMap	stopNamesr   s        r(   startTagListItem/getPhases.<locals>.InBodyPhase.startTagListItem&  s    %*DKK"#'&#',#',0L %6]3I !7!7899	)KK%%33'		8<>NNo5		)@@ 9 yy''X'>!!//#C24 II##E*r)   c                    U R                   R                  SSS9(       a  U R                  [        S5      5        U R                   R	                  U5        U R
                  R                  R                  U R
                  R                  l        g rT  )	rN   rX  rY  r`  r   rY   r]   ro   rm   r   s     r(   startTagPlaintext0getPhases.<locals>.InBodyPhase.startTagPlaintext<  s^    yy''X'>_S12II##E**.++*?*?*N*NDKK!!'r)   c                    U R                   R                  SSS9(       a  U R                  [        S5      5        U R                   R                  S   R
                  [        ;   aE  U R                  R                  SSUS   05        U R                   R                  R                  5         U R                   R                  U5        g )Nr'   rU  rV  r   r  rT   )rN   rX  rY  r`  r   rT   r   rY   r   r+  r   r   s     r(   startTagHeading.getPhases.<locals>.InBodyPhase.startTagHeadingB  s    yy''X'>_S12yy%%b)../A&&'=f?VW		&&**,II##E*r)   c                    U R                   R                  S5      nU(       a  U R                  R                  SSSS.5        U R	                  [        S5      5        X R                   R                  ;   a%  U R                   R                  R                  U5        X R                   R                  ;   a%  U R                   R                  R                  U5        U R                   R                  5         U R                  U5        g )Na$unexpected-start-tag-implies-end-tag	startNameendName)rN   !elementInActiveFormattingElementsrY   r   endTagFormattingr`  r   r  r0  r@  r2  )rR   r   afeAElements      r(   	startTagA(getPhases.<locals>.InBodyPhase.startTagAJ  s    ))EEcJK&&'M58S'IK%%oc&:;))"8"88II**11+>))"D"DDII66==kJII99;%%e,r)   c                 Z    U R                   R                  5         U R                  U5        g r2   )rN   r@  r2  r   s     r(   startTagFormatting1getPhases.<locals>.InBodyPhase.startTagFormattingW  s     II99;%%e,r)   c                 @   U R                   R                  5         U R                   R                  S5      (       aS  U R                  R	                  SSSS.5        U R                  [        S5      5        U R                   R                  5         U R                  U5        g )Nnobrrt  ru  )rN   r@  rX  rY   r   r   r`  r2  r   s     r(   startTagNobr+getPhases.<locals>.InBodyPhase.startTagNobr[  sv    II99;yy''//&&'M5;'OQ""?6#:;		==?%%e,r)   c                 F   U R                   R                  S5      (       a;  U R                  R                  SSSS.5        U R	                  [        S5      5        U$ U R                   R                  5         U R                   R                  U5        SU R                  l        g )NrU  rt  ru  F)	rN   rX  rY   r   r   r`  r@  r   ru   r   s     r(   startTagButton-getPhases.<locals>.InBodyPhase.startTagButtone  s{    yy''11&&'M5=('SU""?8#<=		==?		''.).&r)   c                     U R                   R                  5         U R                   R                  U5        U R                   R                  R	                  [
        5        SU R                  l        g NF)rN   r@  r   r0  r   r   rY   ru   r   s     r(   startTagAppletMarqueeObject:getPhases.<locals>.InBodyPhase.startTagAppletMarqueeObjectp  sH    II99;II##E*II..55f=%*DKK"r)   c                    U R                   R                  SSS9(       a  U R                  [        S5      5        U R                   R	                  5         SU R
                  l        U R
                  R                  US5        g )Nr'   rU  rV  Fr   )rN   rX  rY  r`  r@  rY   ru   r   r   s     r(   startTagXmp*getPhases.<locals>.InBodyPhase.startTagXmpv  sZ    yy''X'>_S12II99;%*DKK"KK**5)<r)   c                 R   U R                   R                  S:w  a9  U R                  R                  SSS9(       a  U R	                  [        S5      5        U R                  R                  U5        SU R                   l        U R                   R                  S   U R                   l	        g )NrK  r'   rU  rV  Fr   )
rY   rj   rN   rX  r   r`  r   ru   rQ   rp   r   s     r(   startTagTable,getPhases.<locals>.InBodyPhase.startTagTable}  sw    {{%%199++C+B&&s';<II##E*%*DKK" $ 2 29 =DKKr)   c                     U R                   R                  5         U R                   R                  U5        U R                   R                  R	                  5         SUS'   SU R
                  l        g )NTr   F)rN   r@  r   r   r+  rY   ru   r   s     r(   startTagVoidFormatting5getPhases.<locals>.InBodyPhase.startTagVoidFormatting  sQ    II99;II##E*II""&&(/3E+,%*DKK"r)   c                     U R                   R                  nU R                  U5        SUS   ;   a1  US   S   R                  [        5      S:X  a  X R                   l        g g g )Nr7   r   hidden)rY   ru   r  r   r   )rR   r   ru   s      r(   startTagInput,getPhases.<locals>.InBodyPhase.startTagInput  s]    //J''.%-'&M&)334DEQ)3& R (r)   c                     U R                   R                  U5        U R                   R                  R                  5         SUS'   g r  r  r   s     r(   startTagParamSource2getPhases.<locals>.InBodyPhase.startTagParamSource  r  r)   c                     U R                   R                  SSS9(       a  U R                  [        S5      5        U R                   R	                  U5        U R                   R
                  R                  5         SUS'   SU R                  l        g )Nr'   rU  rV  Tr   F)	rN   rX  rY  r`  r   r   r+  rY   ru   r   s     r(   
startTagHr)getPhases.<locals>.InBodyPhase.startTagHr  si    yy''X'>_S12II##E*II""&&(/3E+,%*DKK"r)   c           	          U R                   R                  SSSS.5        U R                  [        SSUS   US   S95        g )	Nzunexpected-start-tag-treated-asimageimgoriginalNamenewNamer   r   r   r   r   )rY   r   r   r`  r   s     r(   startTagImage,getPhases.<locals>.InBodyPhase.startTagImage  sJ    KK""#D4;#NP  
<A&M=B==Q"S Tr)   c           	         U R                   R                  SSS05        U R                  R                  (       a  g 0 nSUS   ;   a  US   S   US'   U R	                  [        SSUS95        U R	                  [        S	S5      5        U R	                  [        S
S5      5        SUS   ;   a	  US   S   nOSnU R                  [        S   US.5        US   R                  5       nSU;   a  US	 SU;   a  US	 SUS'   U R	                  [        SSUUS   S95        U R                  [        S
5      5        U R	                  [        S	S5      5        U R                  [        S5      5        g )Nzdeprecated-tagrT   isindexactionr   r`  r   )r   hrlabelpromptz3This is a searchable index. Enter search keywords: r   r7   r   inputr   r  )
rY   r   rN   ra  r   r`  r   r   copyr   )rR   r   
form_attrsr  r   s        r(   startTagIsIndex.getPhases.<locals>.InBodyPhase.startTagIsIndex  sr   KK""#3fi5HIyy$$J5=(',V}X'>
8$  <F"H I  z!BC  *!EF5=(vx0N""#L16BDv++-J:%x(:%x(!*Jv  *<F=B==Q"S T w78  z!BCv67r)   c                     U R                   R                  U5        U R                  R                  R                  U R                  R                  l        U R                  U l        SU R                  l        g r  )	rN   r   rY   r]   rl   rm   rA  r   ru   r   s     r(   startTagTextarea/getPhases.<locals>.InBodyPhase.startTagTextarea  sP    II##E**.++*?*?*K*KDKK!!'*.*P*PD'%*DKK"r)   c                 H    SU R                   l        U R                  U5        g r  )rY   ru   startTagRawtextr   s     r(   startTagIFrame-getPhases.<locals>.InBodyPhase.startTagIFrame  s    %*DKK"  'r)   c                     U R                   R                  (       a  U R                  U5        g U R                  U5        g r2   )rY   r[   r  r  r   s     r(   r  /getPhases.<locals>.InBodyPhase.startTagNoscript  s+    {{$$$$U+""5)r)   c                 <    U R                   R                  US5        g)z8iframe, noembed noframes, noscript(if scripting enabled)r   Nr  r   s     r(   r  .getPhases.<locals>.InBodyPhase.startTagRawtext  r  r)   c                 ,   U R                   R                  S   R                  S:X  a.  U R                  R                  R                  [        S5      5        U R                   R                  5         U R                  R                   R                  U5        g Nr   option)	rN   r   rT   rY   rp   r   r`  r@  r   r   s     r(   startTagOpt*getPhases.<locals>.InBodyPhase.startTagOpt  sd    yy%%b)..(:!!//0IJII99;KK**51r)   c                    U R                   R                  5         U R                   R                  U5        SU R                  l        U R                  R
                  U R                  R                  S   U R                  R                  S   U R                  R                  S   U R                  R                  S   U R                  R                  S   U R                  R                  S   4;   a)  U R                  R                  S   U R                  l        g U R                  R                  S	   U R                  l        g )
NFr   r   r   r   r   r   inSelectInTabler   )rN   r@  r   rY   ru   rp   rQ   r   s     r(   startTagSelect-getPhases.<locals>.InBodyPhase.startTagSelect  s    II99;II##E*%*DKK"{{  T[[%7%7	%B%)[[%7%7%D%)[[%7%7%H%)[[%7%7%F%)[[%7%7%@%)[[%7%7%A%C C %)KK$6$67H$I!$(KK$6$6z$B!r)   c                 0   U R                   R                  S5      (       a[  U R                   R                  5         U R                   R                  S   R                  S:w  a  U R
                  R                  5         U R                   R                  U5        g )Nrubyr   )rN   rX  generateImpliedEndTagsr   rT   rY   r   r   r   s     r(   startTagRpRt+getPhases.<locals>.InBodyPhase.startTagRpRt  sf    yy''//		00299))"-22f<KK**,II##E*r)   c                 Z   U R                   R                  5         U R                  R                  U5        U R                  R	                  U5        [
        S   US'   U R                   R                  U5        US   (       a*  U R                   R                  R                  5         SUS'   g g )Nr   r   r   Tr   )	rN   r@  rY   r   r   r   r   r   r+  r   s     r(   startTagMath+getPhases.<locals>.InBodyPhase.startTagMath  s    II99;KK..u5KK//6!+H!5E+II##E* ]#		&&**,37/0 $r)   c                 Z   U R                   R                  5         U R                  R                  U5        U R                  R	                  U5        [
        S   US'   U R                   R                  U5        US   (       a*  U R                   R                  R                  5         SUS'   g g )Nr   r   r   Tr   )	rN   r@  rY   r   r   r   r   r   r+  r   s     r(   startTagSvg*getPhases.<locals>.InBodyPhase.startTagSvg  s    II99;KK++E2KK//6!+E!2E+II##E* ]#		&&**,37/0 $r)   c                 F    U R                   R                  SSUS   05        g)zElements that should be children of other elements that have a
different insertion mode; here they are ignored
"caption", "col", "colgroup", "frame", "frameset", "head",
"option", "optgroup", "tbody", "td", "tfoot", "th", "thead",
"tr", "noscript"
zunexpected-start-tag-ignoredrT   Nr  r   s     r(   startTagMisplaced0getPhases.<locals>.InBodyPhase.startTagMisplaced  s#     KK""#AFERXMCZ[r)   c                 n    U R                   R                  5         U R                   R                  U5        g r2   )rN   r@  r   r   s     r(   r  ,getPhases.<locals>.InBodyPhase.startTagOther  s$    II99;II##E*r)   c                    U R                   R                  SSS9(       dU  U R                  [        SS5      5        U R                  R                  SSS05        U R                  [        SS5      5        g U R                   R                  S5        U R                   R                  S   R                  S:w  a  U R                  R                  SSS05        U R                   R                  R                  5       nUR                  S:w  a7  U R                   R                  R                  5       nUR                  S:w  a  M6  g g )	Nr'   rU  rV  r   r  rT   r   r   )rN   rX  rZ  r`  rY   r   rY  r  r   rT   r+  r  s      r(   rY  &getPhases.<locals>.InBodyPhase.endTagP  s    99++C+B##OC$DE&&';fc]K_S(;<		00599))"-22c9KK**+?&#Oyy--113ii3&9911557D ii3&r)   c                    U R                   R                  S5      (       d  U R                  R                  5         g U R                   R                  S   R
                  S:w  ad  U R                   R                  SS   HG  nUR
                  [        S5      ;  d  M  U R                  R                  SSUR
                  S.5          O   U R                  R                  S   U R                  l        g )Nr   r      )r5  r6  r7  optgroupr  r'   rprtr   r   r   r   r   r   r   r   $expected-one-end-tag-but-got-anothergotNameexpectedName	afterBody)	rN   rX  rY   r   r   rT   r   rQ   rp   r  s      r(   
endTagBody)getPhases.<locals>.InBodyPhase.endTagBody)  s    99++F33&&(''+00F: II22126Dyy	 3; )< < ..B(.		JL  7 !% 2 2; ?DKKr)   c                 |    U R                   R                  S5      (       a  U R                  [        S5      5        U$ g )Nr   )rN   rX  r  r`  r   s     r(   
endTagHtml)getPhases.<locals>.InBodyPhase.endTagHtml;  s2    yy''// 78 0r)   c                 >   US   S:X  a  U R                   U l        U R                  R                  US   5      nU(       a  U R                  R	                  5         U R                  R
                  S   R                  US   :w  a!  U R                  R                  SSUS   05        U(       ar  U R                  R
                  R                  5       nUR                  US   :w  a:  U R                  R
                  R                  5       nUR                  US   :w  a  M9  g g g )NrT   r<  r   end-tag-too-early)
r&  r   rN   rX  r  r   rT   rY   r   r+  )rR   r   inScoper   s       r(   endTagBlock*getPhases.<locals>.InBodyPhase.endTagBlockA  s    V}%.2.O.O+ii..uV}=G		002yy%%b)..%-?&&':VU6]<STyy--113ii5=09911557D ii5=0 r)   c                    U R                   R                  nS U R                   l        Ub   U R                   R                  U5      (       d  U R                  R	                  SSS05        g U R                   R                  5         U R                   R                  S   U:w  a  U R                  R	                  SSS05        U R                   R                  R                  U5        g )Nr  rT   r`  r   zend-tag-too-early-ignored)rN   ra  rX  rY   r   r  r   r  r  s      r(   
endTagForm)getPhases.<locals>.InBodyPhase.endTagFormO  s    99((D$(DII!|499#;#;D#A#A&&';(.'79 		00299))"-5KK**+F,2F+;=		&&--d3r)   c                 X   US   S:X  a  SnOS nU R                   R                  US   US9(       d"  U R                  R                  SSUS   05        g U R                   R	                  US   S9  U R                   R
                  S   R                  US   :w  a!  U R                  R                  SSUS   05        U R                   R
                  R                  5       nUR                  US   :w  a:  U R                   R
                  R                  5       nUR                  US   :w  a  M9  g g )	NrT   r7  listrV  r  excluder   r  )rN   rX  rY   r   r  r   rT   r+  )rR   r   rW  r   s       r(   endTagListItem-getPhases.<locals>.InBodyPhase.endTagListItem\  s    V}$ 99++E&M7+K&&';feFm=TU		00v0G99))"-22eFmCKK**+v/1 yy--113ii5=09911557D ii5=0r)   c                 n   [          H?  nU R                  R                  U5      (       d  M%  U R                  R                  5           O   U R                  R                  S   R
                  US   :w  a!  U R                  R                  SSUS   05        [          H  nU R                  R                  U5      (       d  M%  U R                  R                  R                  5       nUR
                  [         ;  a:  U R                  R                  R                  5       nUR
                  [         ;  a  M:    g    g )Nr   rT   r  )	r   rN   rX  r  r   rT   rY   r   r+  )rR   r   items      r(   endTagHeading,getPhases.<locals>.InBodyPhase.endTagHeadingm  s    '99++D11II446 ( yy%%b)..%-?&&':VU6]<ST'99++D119911557D))?:#yy5599; ))?: (r)   c                 H   SnUS:  Ga  US-  nU R                   R                  US   5      nU(       aC  X0R                   R                  ;   a<  U R                   R                  UR                  5      (       d  U R                  U5        gX0R                   R                  ;  aG  U R                  R                  SSUS   05        U R                   R                  R                  U5        gU R                   R                  UR                  5      (       d"  U R                  R                  SSUS   05        gX0R                   R                  S   :w  a!  U R                  R                  S	SUS   05        U R                   R                  R                  U5      nSnU R                   R                  US  H  nUR                  [        ;   d  M  Un  O   Ucz  U R                   R                  R                  5       nXc:w  a+  U R                   R                  R                  5       nXc:w  a  M+  U R                   R                  R                  U5        gU R                   R                  US-
     nU R                   R                  R                  U5      nU=pSnU R                   R                  R                  U
5      nUS
:  Gah  US-  nUS-  nU R                   R                  U   n
XR                   R                  ;  a'  U R                   R                  R                  U
5        Mj  X:X  a  OX:X  a(  U R                   R                  R                  U
5      S-   nU
R                  5       nUU R                   R                  U R                   R                  R                  U
5      '   UU R                   R                  U R                   R                  R                  U
5      '   Un
U	R                  (       a  U	R                  R!                  U	5        U
R#                  U	5        U
n	US
:  a  GMh  U	R                  (       a  U	R                  R!                  U	5        UR                  [%        S5      ;   a.  U R                   R'                  5       u  pUR)                  X5        OUR#                  U	5        UR                  5       nUR+                  U5        UR#                  U5        U R                   R                  R                  U5        U R                   R                  R-                  X5        U R                   R                  R                  U5        U R                   R                  R-                  U R                   R                  R                  U5      S-   U5        US:  a  GM  gg)z)The much-feared adoption agency algorithmr      r   rT   Nzadoption-agency-1.2zadoption-agency-4.4r   zadoption-agency-1.3r/  r   r   r   r   r   )rN   rx  r   rX  rT   r  rY   r   r0  r  indexrg  r   r+  	cloneNoderP  rQ  appendChildr   getTableMisnestedNodePositioninsertBeforereparentChildreninsert)rR   r   outerLoopCounterformattingElementafeIndexfurthestBlockr   commonAncestorbookmarklastNoder   innerLoopCounterr  clonerP  r  s                   r(   ry  /getPhases.<locals>.InBodyPhase.endTagFormatting|  s     ! #Q& !A%  %)II$O$O&M%#!)&))*@*@@112C2H2HII $$U+ 'ii.D.DDKK**+@65QW=BYZII66==>OP 112C2H2HIIKK**+@65QW=BYZ )II,B,B2,FF../DvuU[}F]^  9911778IJ $#yy55hi@G((O;(/  A !("ii4488:G!6"&))"8"8"<"<"> "6II66==gF "&!7!71!E  99==CCDUV #0/#$ 		..44T:&*$)$QJE9911%8D99#E#EE		..55d; 00#'99#E#E#K#KD#QTU#U NN,E KP II66		::@@FH ?D II**		..44T:< D   33H=$$X.#H9 '*D ??OO//9!&&)4^*__+/99+R+R+T(F''?"..x8 *335 ..u5 ))%0 		2299:KL		2299(J 		&&--.?@		&&--II**00?!CULo #Q&&r)   c                 p   U R                   R                  US   5      (       a  U R                   R                  5         U R                   R                  S   R                  US   :w  a!  U R
                  R                  SSUS   05        U R                   R                  US   5      (       a  U R                   R                  R                  5       nUR                  US   :w  a9  U R                   R                  R                  5       nUR                  US   :w  a  M9  U R                   R                  5         g g )NrT   r   r  )	rN   rX  r  r   rT   rY   r   r+  clearActiveFormattingElements)rR   r   r   s      r(   endTagAppletMarqueeObject8getPhases.<locals>.InBodyPhase.endTagAppletMarqueeObject  s    yy''f66		002yy%%b)..%-?&&':VU6]<STyy''f66))00446lleFm3"ii4488:G lleFm3		779	 7r)   c                    U R                   R                  SSSS.5        U R                  R                  5         U R                  R	                  [        SS5      5        U R                  R                  R                  5         g )Nzunexpected-end-tag-treated-asrp  z
br elementr  r   )rY   r   rN   r@  r   r`  r   r+  r   s     r(   r  'getPhases.<locals>.InBodyPhase.endTagBr+  s_    KK""#B48\#RTII99;II##OD*$EFII""&&(r)   c                 X   U R                   R                  S S S2    GH	  nUR                  US   :X  a  U R                   R                  US   S9  U R                   R                  S   R                  US   :w  a!  U R                  R                  SSUS   05        U R                   R                  R                  5       U:w  a+   U R                   R                  R                  5       U:w  a  M+    g UR                  [        ;   d  M  U R                  R                  SSUS   05          g    g )Nr   rT   r  r  )	rN   r   rT   r  rY   r   r+  rg  r   r  s      r(   r  *getPhases.<locals>.InBodyPhase.endTagOther2  s    		..tt499f-II44U6]4Kyy--b166%-G../CfeTZmE\]))00446$> ))00446$>~~8../CfeTZmE\] 5r)   r   )	r  r  r  r  r  r9   r  r  r  r   r   )re  articleaside
blockquotecenterdetailsdirr   dlfieldset
figcaptionfigurefooterheaderhgroupmainmenunavolr'   sectionsummaryul)r<  r=  r`  )r7  r5  r6  re   rs  )bbigcodeemfontissmallstrikestrongttur  rU  )appletmarqueeobjectxmpr   )arearp  embedr  keygenwbr)paramsourcetrackr  r  r  r  r>  iframer  )noembedr  r   )r  r  )r  r  mathr   )r   colr   framer   r   r   r   r   r   r   )re  r  r  r  rU  r  r  dialogr  r   r  r  r  r  r   r!  r"  r=  r#  r$  r%  r&  r<  r'  r(  r)  r'   )r5  r6  r7  )rs  r*  r+  r,  r-  r.  r/  r  r0  r1  r2  r3  r4  r5  rp  )ArB   rC   rD   rE   r9  rV   r,  r2  r   rA  r   r&  rK  r  r  rZ  r]  rb  rj  rm  rp  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rY  r  r  r  r  r  r  ry  r  r  r  r   r  r4  r   r*  r  r7  rF   __classcell__)r  r'  r:  s   @r(   r'  r#    s    0		L
	:	?"		+
	/	0	G		K	E	+
	Q	C	+,	O	+	-	-	-		/	+	=	>	+	4	4
	+	T	8>	+	(	*	=	2	C	+
	8
	8	\	+	8	@$		8	4	8"	a	LF
	:	)	 !11 ,3
U''(,3
*"$,3

 \",3
 )*,3
* 	,3
 o.,3
  !34,3
 \",3
  !12,3
  +,!,3
" )#,3
$#$68%,3
( \"),3
* ~&+,3
, -.IJ-,3
. K /,3
0 m$1,3
2 =#%3,3
6 *+>?7,3
8 m$9,3
: :;,3
< m$=,3
> (?,3
@ )*A,3
B ~&C,3
D )*E,3
F %o6G,3
H ~&I,3
J <(K,3
L $[1M,3
N |$O,3
P k"Q,3
R&(S,3
 ,Z #0//Z Z * ,78 Z 'N0m,-.>@,.GH81
   !,r)   r'  c                       \ rS rSr\" 5       rS rS rS rS r	S r
\R                  " / 5      r\\l        \R                  " S\	4/5      r\
\l        Srg	)
getPhases.<locals>.TextPhasei  c                 @    U R                   R                  US   5        g r!  r"  r   s     r(   r   .getPhases.<locals>.TextPhase.processCharacters  r%  r)   c                    U R                   R                  SSU R                  R                  S   R                  05        U R                  R                  R                  5         U R                   R                  U R                   l        g)Nz&expected-named-closing-tag-but-got-eofrT   r   T)rY   r   rN   r   rT   r+  r   rp   rv   s    r(   r   'getPhases.<locals>.TextPhase.processEOF  sd    KK""#K$*DII,B,B2,F,K,K#LNII""&&( $ 9 9DKKr)   c                      SUS   -  5       e)Nz4Tried to process start tag %s in RCDATA/RAWTEXT moderT   rA   r   s     r(   r  *getPhases.<locals>.TextPhase.startTagOther  s    `PSXY_S```5r)   c                     U R                   R                  R                  5       nUR                  S:X  d   eU R                  R
                  U R                  l        g )Nr  )rN   r   r+  rT   rY   r   rp   r  s      r(   endTagScript)getPhases.<locals>.TextPhase.endTagScript  sB    99))--/D99((( $ 9 9DKKr)   c                     U R                   R                  R                  5         U R                  R                  U R                  l        g r2   )rN   r   r+  rY   r   rp   r   s     r(   r  (getPhases.<locals>.TextPhase.endTagOther  s.    II""&&( $ 9 9DKKr)   r  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r  rQ  r  r   r  r*  r  r7  rF   rA   r)   r(   	TextPhaserI    sb    G		0		a	:	: !11"5"///|$1& ' +r)   rU  c                   R  > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS r\R2                  " S Y R4                  4S\4S\4S\4S\4S\4S\4S\4S\4S\4/
5      r\\l        \R2                  " S\4S\4/5      r\\l        Srg )!getPhases.<locals>.InTablePhasei  c                     U R                   R                  S   R                  S;  aN  U R                   R                  R                  5         U R                   R                  S   R                  S;  a  MM  g g )Nr   )r   r   )rN   r   rT   r+  rv   s    r(   clearStackToTableContext8getPhases.<locals>.InTablePhase.clearStackToTableContext  sX    ))((,119JJ 		&&**, ))((,119JJr)   c                     U R                   R                  S   R                  S:w  a  U R                  R	                  S5        g U R                  R
                  (       d   eg )Nr   r   zeof-in-tablerN   r   rT   rY   r   ra   rv   s    r(   r   *getPhases.<locals>.InTablePhase.processEOF  sD    yy%%b)..&8&&~6{{,,,,r)   c                     U R                   R                  nU R                   R                  S   U R                   l        X R                   R                  l        U R                   R                  R	                  U5        g NinTableText)rY   rp   rQ   r   r   rR   r   r   s      r(   r   6getPhases.<locals>.InTablePhase.processSpaceCharacters  sT     KK--M $ 2 2= ADKK.;KK+KK44U;r)   c                     U R                   R                  nU R                   R                  S   U R                   l        X R                   R                  l        U R                   R                  R	                  U5        g r_  )rY   rp   rQ   r   r   ra  s      r(   r   1getPhases.<locals>.InTablePhase.processCharacters  sT     KK--M $ 2 2= ADKK.;KK+KK//6r)   c                     SU R                   l        U R                  R                  S   R	                  U5        SU R                   l        g )NTr   F)rN   insertFromTablerY   rQ   r   r   s     r(   r#  *getPhases.<locals>.InTablePhase.insertText  s9     )-DII%KKx(::5A(-DII%r)   c                     U R                  5         U R                  R                  R                  [        5        U R                  R                  U5        U R                  R                  S   U R                  l        g )Nr   )	rY  rN   r0  r   r   r   rY   rQ   rp   r   s     r(   startTagCaption/getPhases.<locals>.InTablePhase.startTagCaption  sS    ))+II..55f=II##E* $ 2 2; ?DKKr)   c                     U R                  5         U R                  R                  U5        U R                  R                  S   U R                  l        g )Nr   rY  rN   r   rY   rQ   rp   r   s     r(   startTagColgroup0getPhases.<locals>.InTablePhase.startTagColgroup  s;    ))+II##E* $ 2 2? CDKKr)   c                 <    U R                  [        SS5      5        U$ )Nr   r   )rm  r`  r   s     r(   startTagCol+getPhases.<locals>.InTablePhase.startTagCol  s    !!/*j"IJLr)   c                     U R                  5         U R                  R                  U5        U R                  R                  S   U R                  l        g Nr   rl  r   s     r(   startTagRowGroup0getPhases.<locals>.InTablePhase.startTagRowGroup  s;    ))+II##E* $ 2 2= ADKKr)   c                 <    U R                  [        SS5      5        U$ )Nr   r   )rt  r`  r   s     r(   startTagImplyTbody2getPhases.<locals>.InTablePhase.startTagImplyTbody  s    !!/':"FGLr)   c                     U R                   R                  SSSS.5        U R                   R                  R                  [	        S5      5        U R                   R
                  (       d  U$ g )Nrt  r   ru  )rY   r   rp   r   r`  ra   r   s     r(   r  -getPhases.<locals>.InTablePhase.startTagTable  sT    KK""#I18W#MOKK++OG,DE;;(( )r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   startTagStyleScript3getPhases.<locals>.InTablePhase.startTagStyleScript  r  r)   c                 ,   SUS   ;   az  US   S   R                  [        5      S:X  a[  U R                  R                  S5        U R                  R                  U5        U R                  R                  R                  5         g U R                  U5        g )Nr7   r   r  z unexpected-hidden-input-in-table)	r   r   rY   r   rN   r   r   r+  r  r   s     r(   r  -getPhases.<locals>.InTablePhase.startTagInput  st    %-'&M&)334DEQ&&'IJ		''.		&&**,""5)r)   c                 8   U R                   R                  S5        U R                  R                  ch  U R                  R	                  U5        U R                  R
                  S   U R                  l        U R                  R
                  R                  5         g g )Nzunexpected-form-in-tabler   )rY   r   rN   ra  r   r   r+  r   s     r(   rb  ,getPhases.<locals>.InTablePhase.startTagForm  sm    KK""#=>yy$$,		''.(,		(>(>r(B		%		&&**, -r)   c                     U R                   R                  SSUS   05        SU R                  l        U R                   R                  S   R                  U5        SU R                  l        g )Nz)unexpected-start-tag-implies-table-voodoorT   Tr   F)rY   r   rN   rf  rQ   r   r   s     r(   r  -getPhases.<locals>.InTablePhase.startTagOther  sY    KK""#NQWY^_eYfPgh(,DII%KKx(88?(-DII%r)   c                    U R                   R                  SSS9(       Ga4  U R                   R                  5         U R                   R                  S   R                  S:w  a@  U R
                  R                  SSU R                   R                  S   R                  S.5        U R                   R                  S   R                  S:w  aM  U R                   R                  R                  5         U R                   R                  S   R                  S:w  a  MM  U R                   R                  R                  5         U R
                  R                  5         g U R
                  R                  (       d   eU R
                  R                  5         g )Nr   rV  r   zend-tag-too-early-namedr  )
rN   rX  r  r   rT   rY   r   r+  rr   ra   r   s     r(   endTagTable+getPhases.<locals>.InTablePhase.endTagTable  s   yy'''A		00299))"-22g=KK**+D7><@II<R<RSU<V<[<[,]^ ii,,R055@II**..0 ii,,R055@		&&**,..0 {{,,,,&&(r)   c                 F    U R                   R                  SSUS   05        g r  r  r   s     r(   endTagIgnore,getPhases.<locals>.InTablePhase.endTagIgnore  r  r)   c                     U R                   R                  SSUS   05        SU R                  l        U R                   R                  S   R                  U5        SU R                  l        g )Nz'unexpected-end-tag-implies-table-voodoorT   Tr   F)rY   r   rN   rf  rQ   r   r   s     r(   r  +getPhases.<locals>.InTablePhase.endTagOther  sX    KK""#LvW\]cWdNef(,DII%KKx(66u=(-DII%r)   r   r   r   rD  r   r   r   )r   r   r   r   )r  r  r  r`  )r   r   rD  r   r   r   r   r   r   r   r   rA   N)rB   rC   rD   rE   rZ  r9  rY  r   r   r   r#  ri  rm  rp  rt  rw  r  r|  r  rb  r  r  r  r  r   r  r4  r*  r  r7  rF   r:  s   r(   InTablePhaserW    s   G		-	-	<	7	.	@	D
		B
			G	*	-	.	) 	R	. !11U''(()*K (*:;!34m$ "56m$\"3
  #0//k",-9;1
 
 !,r)   r  c                   Z   >^  \ rS rSrSrUU 4S jrS rS rS rS r	S r
S	 rS
 rSrU =r$ )#getPhases.<locals>.InTableTextPhasei3  )r   characterTokensc                 B   > [         TU ]  " U0 UD6  S U l        / U l        g r2   )r%  rV   r   r  )rR   r   r%   InTableTextPhaser  s      r(   rV   ,getPhases.<locals>.InTableTextPhase.__init__6  s(    "D2DCFC!%D#%D r)   c                 ~   SR                  U R                   Vs/ s H  oS   PM	     sn5      n[        U Vs/ s H  o[        ;  PM     sn5      (       a5  [        S   US.nU R
                  R                  S   R                  U5        O"U(       a  U R                  R                  U5        / U l        g s  snf s  snf )NrJ  r   r   r  r   )	joinr  rE  r   r   rY   rQ   r#  rN   )rR   r  r   r   s       r(   flushCharacters3getPhases.<locals>.InTableTextPhase.flushCharacters;  s    77T5I5IJ5ITL5IJKDDADD/DABB!+L!94H""9-88?		$$T*#%D  KAs
   B5B:c                 \    U R                  5         U R                  U R                  l        U$ r2   r  r   rY   rp   r   s     r(   r   2getPhases.<locals>.InTableTextPhase.processCommentD  %      " $ 2 2DKKLr)   c                 Z    U R                  5         U R                  U R                  l        grc  r  rv   s    r(   r   .getPhases.<locals>.InTableTextPhase.processEOFI  s#      " $ 2 2DKKr)   c                 N    US   S:X  a  g U R                   R                  U5        g Nr   rD  r  r   r   s     r(   r   5getPhases.<locals>.InTableTextPhase.processCharactersN  s%    V}(  ''.r)   c                 :    U R                   R                  U5        g r2   r  r   s     r(   r   :getPhases.<locals>.InTableTextPhase.processSpaceCharactersS  s      ''.r)   c                 \    U R                  5         U R                  U R                  l        U$ r2   r  r   s     r(   r   3getPhases.<locals>.InTableTextPhase.processStartTagX  r  r)   c                 \    U R                  5         U R                  U R                  l        U$ r2   r  r   s     r(   r   1getPhases.<locals>.InTableTextPhase.processEndTag]  r  r)   )r  r   )rB   rC   rD   rE   r9  rV   r  r   r   r   r   r   r   rF   rG  )r  r  s   @r(   r  r  3  s5    8		&
	&	
	
	/
	/
	
	 	r)   r  c                      > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 r\R                   " S Y R"                  4S\	4/5      r\
\l        \R                   " S\4S\4S\4/5      r\\l        Srg)!getPhases.<locals>.InCaptionPhaseib  c                 @    U R                   R                  SSS9(       + $ )Nr   r   rV  rN   rX  rv   s    r(   ignoreEndTagCaption5getPhases.<locals>.InCaptionPhase.ignoreEndTagCaptionf  s    yy//	7/KKKr)   c                 R    U R                   R                  S   R                  5         g r  rY   rQ   r   rv   s    r(   r   ,getPhases.<locals>.InCaptionPhase.processEOFi      KKx(335r)   c                 R    U R                   R                  S   R                  U5      $ r  rY   rQ   r   r   s     r(   r   3getPhases.<locals>.InCaptionPhase.processCharactersl  "    ;;%%h/AA%HHr)   c                     U R                   R                  5         U R                  5       nU R                   R                  R	                  [        S5      5        U(       d  U$ g Nr   rY   r   r  rp   r   r`  rR   r   ignoreEndTags      r(   startTagTableElement6getPhases.<locals>.InCaptionPhase.startTagTableElemento  sJ    KK""$335LKK++OI,FG  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  /getPhases.<locals>.InCaptionPhase.startTagOtherw  r  r)   c                 V   U R                  5       (       Gd\  U R                  R                  5         U R                  R                  S   R                  S:w  a@  U R
                  R                  SSU R                  R                  S   R                  S.5        U R                  R                  S   R                  S:w  aM  U R                  R                  R                  5         U R                  R                  S   R                  S:w  a  MM  U R                  R                  R                  5         U R                  R                  5         U R
                  R                  S   U R
                  l
        g U R
                  R                  (       d   eU R
                  R                  5         g )Nr   r   r  r  r   )r  rN   r  r   rT   rY   r   r+  r  rQ   rp   ra   r   s     r(   endTagCaption/getPhases.<locals>.InCaptionPhase.endTagCaptionz  s0   ++--		00299))"-22i?KK**+Q7@<@II<R<RSU<V<[<[,]^ ii,,R055BII**..0 ii,,R055B		&&**,		779$(KK$6$6y$A! {{,,,,&&(r)   c                     U R                   R                  5         U R                  5       nU R                   R                  R	                  [        S5      5        U(       d  U$ g r  r  r  s      r(   r  -getPhases.<locals>.InCaptionPhase.endTagTable  sJ    KK""$335LKK++OI,FG  r)   c                 F    U R                   R                  SSUS   05        g r  r  r   s     r(   r  .getPhases.<locals>.InCaptionPhase.endTagIgnore  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  rY   rQ   r   r   s     r(   r  -getPhases.<locals>.InCaptionPhase.endTagOther  "    ;;%%h/==eDDr)   r   	r   rD  r   r   r   r   r   r   r   r   r   )
r   rD  r   r   r   r   r   r   r   r   rA   N)rB   rC   rD   rE   rZ  r9  r  r   r   r  r  r  r  r  r  r   r  r4  r*  r  r7  rF   r  s   r(   InCaptionPhaser  b  s    G		L	6	I		G	)$		R	E !11U''(243
 
 #0//&k"*,1
  !,r)   r  c                      > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 r\R                  " S
 Y R                   4S\	4/5      r\
\l        \R                  " S\4S\4/5      r\\l        Srg)%getPhases.<locals>.InColumnGroupPhasei  c                 N    U R                   R                  S   R                  S:H  $ )Nr   r   )rN   r   rT   rv   s    r(   ignoreEndTagColgroup:getPhases.<locals>.InColumnGroupPhase.ignoreEndTagColgroup  s"    99))"-22f<<r)   c                     U R                   R                  S   R                  S:X  a  U R                  R                  (       d   eg U R                  5       nU R                  [        S5      5        U(       d  gg )Nr   r   r   T)rN   r   rT   rY   ra   r  endTagColgroupr`  )rR   r  s     r(   r   0getPhases.<locals>.InColumnGroupPhase.processEOF  sa    yy%%b)..&8{{,,,,#88:##OJ$?@# $r)   c                 j    U R                  5       nU R                  [        S5      5        U(       d  U$ g Nr   r  r  r`  r  s      r(   r   7getPhases.<locals>.InColumnGroupPhase.processCharacters  0    446L
 ;<  r)   c                     U R                   R                  U5        U R                   R                  R                  5         SUS'   g r  r  r   s     r(   rp  1getPhases.<locals>.InColumnGroupPhase.startTagCol  r  r)   c                 j    U R                  5       nU R                  [        S5      5        U(       d  U$ g r  r  r  s      r(   r  3getPhases.<locals>.InColumnGroupPhase.startTagOther  r  r)   c                 6   U R                  5       (       a8  U R                  R                  (       d   eU R                  R                  5         g U R                  R
                  R                  5         U R                  R                  S   U R                  l        g Nr   )	r  rY   ra   r   rN   r   r+  rQ   rp   r   s     r(   r  4getPhases.<locals>.InColumnGroupPhase.endTagColgroup  se    ((**{{,,,,&&(		&&**,$(KK$6$6y$A!r)   c                 @    U R                   R                  SSS05        g )Nz
no-end-tagrT   rD  r  r   s     r(   	endTagCol/getPhases.<locals>.InColumnGroupPhase.endTagCol  s    KK""<&%Ar)   c                 j    U R                  5       nU R                  [        S5      5        U(       d  U$ g r  r  r  s      r(   r  1getPhases.<locals>.InColumnGroupPhase.endTagOther  r  r)   r   rD  r   rA   N)rB   rC   rD   rE   rZ  r9  r  r   r   rp  r  r  r  r  r   r  r4  r*  r  r7  rF   r  s   r(   InColumnGroupPhaser    s    G		=	 		4
		B	B	 !11U''(K 3
  #0//(I1
  !,r)   r  c                     > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS r\R&                  " S Y R(                  4S\
4S\4S\4/5      r\\l        \R&                  " S\4S\4S\4/5      r\\l        Srg)#getPhases.<locals>.InTableBodyPhasei  c                 v   U R                   R                  S   R                  S;  aM  U R                   R                  R                  5         U R                   R                  S   R                  S;  a  MM  U R                   R                  S   R                  S:X  a  U R                  R
                  (       d   eg g )Nr   )r   r   r   r   r   )rN   r   rT   r+  rY   ra   rv   s    r(   clearStackToTableBodyContext@getPhases.<locals>.InTableBodyPhase.clearStackToTableBodyContext  s    ))((,11 :K K 		&&**,	 ))((,11 :K K
 yy%%b)..&8{{,,,, 9r)   c                 R    U R                   R                  S   R                  5         g r  r  rv   s    r(   r   .getPhases.<locals>.InTableBodyPhase.processEOF      KKy)446r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   :getPhases.<locals>.InTableBodyPhase.processSpaceCharacters  "    ;;%%i0GGNNr)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   5getPhases.<locals>.InTableBodyPhase.processCharacters  "    ;;%%i0BB5IIr)   c                     U R                  5         U R                  R                  U5        U R                  R                  S   U R                  l        g )Nr   )r  rN   r   rY   rQ   rp   r   s     r(   
startTagTr.getPhases.<locals>.InTableBodyPhase.startTagTr   s;    --/II##E* $ 2 27 ;DKKr)   c                 ~    U R                   R                  SSUS   05        U R                  [        SS5      5        U$ )Nzunexpected-cell-in-table-bodyrT   r   r   )rY   r   r  r`  r   s     r(   startTagTableCell5getPhases.<locals>.InTableBodyPhase.startTagTableCell  s;    KK""#B$*E&M#:<OOOD*=>Lr)   c                    U R                   R                  SSS9(       d>  U R                   R                  SSS9(       d  U R                   R                  SSS9(       aM  U R                  5         U R                  [	        U R                   R
                  S   R                  5      5        U$ U R                  R                  (       d   eU R                  R                  5         g Nr   r   rV  r   r   r   
rN   rX  r  endTagTableRowGroupr`  r   rT   rY   ra   r   r   s     r(   startTagTableOther6getPhases.<locals>.InTableBodyPhase.startTagTableOther  s    		(('(B		(('(BII,,Wg,F113((#DII$:$:2$>$C$CDF {{,,,,&&(r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  1getPhases.<locals>.InTableBodyPhase.startTagOther  "    ;;%%i0@@GGr)   c                 D   U R                   R                  US   SS9(       a]  U R                  5         U R                   R                  R	                  5         U R
                  R                  S   U R
                  l        g U R
                  R                  SSUS   05        g )NrT   r   rV  r    unexpected-end-tag-in-table-body)	rN   rX  r  r   r+  rY   rQ   rp   r   r   s     r(   r  7getPhases.<locals>.InTableBodyPhase.endTagTableRowGroup  s|    yy''fw'G113		&&**,$(KK$6$6y$A!&&'I(.f'>@r)   c                    U R                   R                  SSS9(       d>  U R                   R                  SSS9(       d  U R                   R                  SSS9(       aM  U R                  5         U R                  [	        U R                   R
                  S   R                  5      5        U$ U R                  R                  (       d   eU R                  R                  5         g r  r  r   s     r(   r  /getPhases.<locals>.InTableBodyPhase.endTagTable%  s    		(('(B		(('(BII,,Wg,F113((#DII$:$:2$>$C$CDF {{,,,,&&(r)   c                 F    U R                   R                  SSUS   05        g )Nr  rT   r  r   s     r(   r  0getPhases.<locals>.InTableBodyPhase.endTagIgnore2  #    KK""#E$*E&M#:<r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  /getPhases.<locals>.InTableBodyPhase.endTagOther6  "    ;;%%i0>>uEEr)   r   r   r   r   )r   rD  r   r   r   r   r  r   )r   r   rD  r   r   r   r   r   rA   N)rB   rC   rD   rE   rZ  r9  r  r   r   r   r  r  r  r  r  r  r  r  r   r  r4  r*  r  r7  rF   r  s   r(   InTableBodyPhaser    s    G		-	7	O	J	<
		)	H	@	)	<	F !11U''(:,-F!	3
  #0//(*=>k"!#1
  !,r)   r  c                     > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS r\R(                  " S Y R*                  4S\4S\4/5      r\\l        \R(                  " S\4S\4S\4S\4/5      r\\l        Srg)getPhases.<locals>.InRowPhaseiJ  c                 l   U R                   R                  S   R                  S;  a  U R                  R	                  SSU R                   R                  S   R                  05        U R                   R                  R                  5         U R                   R                  S   R                  S;  a  M  g g )Nr   )r   r   z'unexpected-implied-end-tag-in-table-rowrT   )rN   r   rT   rY   r   r+  rv   s    r(   clearStackToTableRowContext9getPhases.<locals>.InRowPhase.clearStackToTableRowContextO  s    ))((,11G&&'P(.		0F0Fr0J0O0O'PR		&&**, ))((,11Gr)   c                 @    U R                   R                  SSS9(       + $ )Nr   r   rV  r  rv   s    r(   ignoreEndTagTr,getPhases.<locals>.InRowPhase.ignoreEndTagTrU  s    yy//g/FFFr)   c                 R    U R                   R                  S   R                  5         g r  r  rv   s    r(   r   (getPhases.<locals>.InRowPhase.processEOFY  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   4getPhases.<locals>.InRowPhase.processSpaceCharacters\  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   /getPhases.<locals>.InRowPhase.processCharacters_  r  r)   c                     U R                  5         U R                  R                  U5        U R                  R                  S   U R                  l        U R                  R                  R                  [        5        g )Nr   )	r  rN   r   rY   rQ   rp   r0  r   r   r   s     r(   r  /getPhases.<locals>.InRowPhase.startTagTableCellb  sS    ,,.II##E* $ 2 28 <DKKII..55f=r)   c                 j    U R                  5       nU R                  [        S5      5        U(       d  U$ g Nr   r  endTagTrr`  r  s      r(   r  0getPhases.<locals>.InRowPhase.startTagTableOtherh  s.    ..0LMM/$/0  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  +getPhases.<locals>.InRowPhase.startTagOthero  r  r)   c                 V   U R                  5       (       d]  U R                  5         U R                  R                  R	                  5         U R
                  R                  S   U R
                  l        g U R
                  R                  (       d   eU R
                  R                  5         g rs  )
r  r  rN   r   r+  rY   rQ   rp   ra   r   r   s     r(   r$  &getPhases.<locals>.InRowPhase.endTagTrr  ss    &&((002		&&**,$(KK$6$6}$E! {{,,,,&&(r)   c                 j    U R                  5       nU R                  [        S5      5        U(       d  U$ g r"  r#  r  s      r(   r  )getPhases.<locals>.InRowPhase.endTagTable|  s0    ..0LMM/$/0    r)   c                     U R                   R                  US   SS9(       a  U R                  [        S5      5        U$ U R                  R                  5         g )NrT   r   rV  r   )rN   rX  r$  r`  rY   r   r   s     r(   r  1getPhases.<locals>.InRowPhase.endTagTableRowGroup  sC    yy''fw'God34&&(r)   c                 F    U R                   R                  SSUS   05        g )Nzunexpected-end-tag-in-table-rowrT   r  r   s     r(   r  *getPhases.<locals>.InRowPhase.endTagIgnore  s#    KK""#D$*E&M#:<r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  )getPhases.<locals>.InRowPhase.endTagOther  r  r)   r   r  )r   rD  r   r   r   r   r   r   r   r  )r   r   rD  r   r   r   r   rA   N)rB   rC   rD   rE   rZ  r9  r  r  r   r   r   r  r  r  r$  r  r  r  r  r   r  r4  r*  r  r7  rF   r  s   r(   
InRowPhaser  J  s    G		-	G	7	O	J	>		H	)		)	<	F !11U''(,-')3
  #0//8k"(*=>G	1
  !,r)   r2  c                      > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 r\R                   " S Y R"                  4S\	4/5      r\
\l        \R                   " S\4S\4S\4/5      r\\l        Srg)getPhases.<locals>.InCellPhasei  c                     U R                   R                  SSS9(       a  U R                  [        S5      5        g U R                   R                  SSS9(       a  U R                  [        S5      5        g g Nr   r   rV  r   )rN   rX  endTagTableCellr`  rv   s    r(   	closeCell(getPhases.<locals>.InCellPhase.closeCell  s\    yy''g'>$$_T%:;))$)@$$_T%:; Ar)   c                 R    U R                   R                  S   R                  5         g r  r  rv   s    r(   r   )getPhases.<locals>.InCellPhase.processEOF  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   0getPhases.<locals>.InCellPhase.processCharacters  r  r)   c                    U R                   R                  SSS9(       d  U R                   R                  SSS9(       a  U R                  5         U$ U R                  R                  (       d   eU R                  R                  5         g r6  )rN   rX  r8  rY   ra   r   r   s     r(   r  1getPhases.<locals>.InCellPhase.startTagTableOther  sd    		((w(?II,,T7,C  {{,,,,&&(r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  ,getPhases.<locals>.InCellPhase.startTagOther  r  r)   c                    U R                   R                  US   SS9(       Ga  U R                   R                  US   5        U R                   R                  S   R                  US   :w  a\  U R
                  R                  SSUS   05         U R                   R                  R                  5       nUR                  US   :X  a  O&M:  U R                   R                  R                  5         U R                   R                  5         U R
                  R                  S   U R
                  l
        g U R
                  R                  SSUS   05        g )NrT   r   rV  r   zunexpected-cell-end-tagr   r  )rN   rX  r  r   rT   rY   r   r+  r  rQ   rp   r  s      r(   r7  .getPhases.<locals>.InCellPhase.endTagTableCell  s
   yy''fw'G		00v?99))"-22eFmCKK**+D,2E&M+BD#yy5599;99f5! 
 II**..0		779$(KK$6$6w$?!&&';feFm=TUr)   c                 F    U R                   R                  SSUS   05        g r  r  r   s     r(   r  +getPhases.<locals>.InCellPhase.endTagIgnore  r  r)   c                     U R                   R                  US   SS9(       a  U R                  5         U$ U R                  R	                  5         g )NrT   r   rV  )rN   rX  r8  rY   r   r   s     r(   endTagImply*getPhases.<locals>.InCellPhase.endTagImply  s>    yy''fw'G  &&(r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  *getPhases.<locals>.InCellPhase.endTagOther  r  r)   r   r  r  )r   r   rD  r   r   r  rA   N)rB   rC   rD   rE   rZ  r9  r8  r   r   r  r  r7  r  rG  r  r   r  r4  r*  r  r7  rF   r  s   r(   InCellPhaser4    s    G		<	6	I	)	G	V"	R	)	E !11U''(023
 
 #0//?+;\J7E1
 
 !,r)   rK  c            	         > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS r\R&                  " S Y R(                  4S\4S\	4S\
4S\4S\4/5      r\\l        \R&                  " S\4S\4S\4/5      r\\l        Srg) getPhases.<locals>.InSelectPhasei  c                     U R                   R                  S   R                  S:w  a  U R                  R	                  S5        g U R                  R
                  (       d   eg )Nr   r   zeof-in-selectr\  rv   s    r(   r   +getPhases.<locals>.InSelectPhase.processEOF  sD    yy%%b)..&8&&7{{,,,,r)   c                 T    US   S:X  a  g U R                   R                  US   5        g r  r"  r   s     r(   r   2getPhases.<locals>.InSelectPhase.processCharacters  s'    V}(II  v/r)   c                     U R                   R                  S   R                  S:X  a$  U R                   R                  R                  5         U R                   R	                  U5        g r  rN   r   rT   r+  r   r   s     r(   startTagOption/getPhases.<locals>.InSelectPhase.startTagOption  sG    yy%%b)..(:		&&**,II##E*r)   c                 f   U R                   R                  S   R                  S:X  a$  U R                   R                  R                  5         U R                   R                  S   R                  S:X  a$  U R                   R                  R                  5         U R                   R	                  U5        g )Nr   r  r  rS  r   s     r(   startTagOptgroup1getPhases.<locals>.InSelectPhase.startTagOptgroup	  sz    yy%%b)..(:		&&**,yy%%b)..*<		&&**,II##E*r)   c                 n    U R                   R                  S5        U R                  [        S5      5        g )Nzunexpected-select-in-selectr   )rY   r   endTagSelectr`  r   s     r(   r  /getPhases.<locals>.InSelectPhase.startTagSelect	  s(    KK""#@Aoh78r)   c                     U R                   R                  S5        U R                  R                  SSS9(       a  U R	                  [        S5      5        U$ U R                   R                  (       d   eg )Nzunexpected-input-in-selectr   rV  )rY   r   rN   rX  rZ  r`  ra   r   s     r(   r  .getPhases.<locals>.InSelectPhase.startTagInput	  sW    KK""#?@yy''('C!!/(";<{{,,,,r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  /getPhases.<locals>.InSelectPhase.startTagScript	  r  r)   c                 F    U R                   R                  SSUS   05        g )Nzunexpected-start-tag-in-selectrT   r  r   s     r(   r  .getPhases.<locals>.InSelectPhase.startTagOther	  #    KK""#C$*E&M#:<r)   c                     U R                   R                  S   R                  S:X  a%  U R                   R                  R                  5         g U R                  R                  SSS05        g )Nr   r  unexpected-end-tag-in-selectrT   rN   r   rT   r+  rY   r   r   s     r(   endTagOption-getPhases.<locals>.InSelectPhase.endTagOption	  sR    yy%%b)..(:		&&**,&&'E(.'9;r)   c                    U R                   R                  S   R                  S:X  aK  U R                   R                  S   R                  S:X  a$  U R                   R                  R                  5         U R                   R                  S   R                  S:X  a%  U R                   R                  R                  5         g U R                  R                  SSS05        g )Nr   r  r  rd  rT   re  r   s     r(   endTagOptgroup/getPhases.<locals>.InSelectPhase.endTagOptgroup%	  s    		&&r*//8;II**2.33zA		&&**,yy%%b)..*<		&&**, &&'E(.
';=r)   c                    U R                   R                  SSS9(       a  U R                   R                  R                  5       nUR                  S:w  a6  U R                   R                  R                  5       nUR                  S:w  a  M6  U R
                  R                  5         g U R
                  R                  (       d   eU R
                  R                  5         g )Nr   rV  )	rN   rX  r   r+  rT   rY   rr   ra   r   r  s      r(   rZ  -getPhases.<locals>.InSelectPhase.endTagSelect2	  s    yy''('Cyy--113ii8+9911557D ii8+..0 {{,,,,&&(r)   c                 F    U R                   R                  SSUS   05        g )Nrd  rT   r  r   s     r(   r  ,getPhases.<locals>.InSelectPhase.endTagOther=	  #    KK""#A$*E&M#:<r)   r   r  r  r   )r  r<  r>  r  rA   N)rB   rC   rD   rE   rZ  r9  r   r   rT  rW  r  r  r  r  rf  rj  rZ  r  r   r  r4  r*  r  r7  rF   r  s   r(   InSelectPhaserM    s    G		-	0
	+	+	9	-	G	<	;	=		)	< !11U''(~&)*~&,m<~&3
  #0//|$(|$1
 
 !,r)   rq  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S r\R                  " S\4/5      r\	\l        \R                  " S\
4/5      r\\l        S	rg
)'getPhases.<locals>.InSelectInTablePhaseiR	  c                 R    U R                   R                  S   R                  5         g Nr   r  rv   s    r(   r   2getPhases.<locals>.InSelectInTablePhase.processEOFU	  s    KKz*557r)   c                 R    U R                   R                  S   R                  U5      $ ru  r  r   s     r(   r   9getPhases.<locals>.InSelectInTablePhase.processCharactersX	  s"    ;;%%j1CCEJJr)   c                 |    U R                   R                  SSUS   05        U R                  [        S5      5        U$ )Nz5unexpected-table-element-start-tag-in-select-in-tablerT   r   )rY   r   r  r`  r   s     r(   r  5getPhases.<locals>.InSelectInTablePhase.startTagTable[	  s<    KK""#Z]cejkqer\st_X67Lr)   c                 R    U R                   R                  S   R                  U5      $ ru  r  r   s     r(   r  5getPhases.<locals>.InSelectInTablePhase.startTagOther`	  s"    ;;%%j1AA%HHr)   c                     U R                   R                  SSUS   05        U R                  R                  US   SS9(       a  U R	                  [        S5      5        U$ g )Nz3unexpected-table-element-end-tag-in-select-in-tablerT   r   rV  r   )rY   r   rN   rX  r  r`  r   s     r(   r  3getPhases.<locals>.InSelectInTablePhase.endTagTablec	  s]    KK""#X[achiocpZqryy''fw'G  !:; Hr)   c                 R    U R                   R                  S   R                  U5      $ ru  r  r   s     r(   r  3getPhases.<locals>.InSelectInTablePhase.endTagOtheri	  s"    ;;%%j1??FFr)   )r   r   r   r   r   r   r   r   rA   N)rB   rC   rD   rE   rZ  r9  r   r   r  r  r  r  r   r  r*  r  r7  rF   rA   r)   r(   InSelectInTablePhasers  R	  s    G		8	K	
	I		G !11N3
  #0//N1
  !,r)   r  c                   V   > \ rS rSr\" 5       r\" / SQ5      rS rU 4S jr	S r
S rSrg)	(getPhases.<locals>.InForeignContentPhaseix	  ),r*  r+  r  r   rp  r  r,  r5  r   r  r6  r-  r;  h1h2h3h4h5h6r   r  r/  r  r7  r=  r$  r9   r  r&  r'   r<  r  r0  r1  spanr3  r2  subsupr   r4  r5  r)  varc                 
   0 SS_SS_SS_SS_S	S
_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS _S!S"_0 S#S$_S%S&_S'S(_S)S*_S+S,_S-S._S/S0_S1S2_S3S4_S5S6_S7S8_S9S:_S;S<_S=S>_S?S@_SASB_SCSD_ESESFSG.EnUSH   U;   a  X!SH      USH'   g g )INaltglyphaltGlyphaltglyphdefaltGlyphDefaltglyphitemaltGlyphItemanimatecoloranimateColoranimatemotionanimateMotionanimatetransformanimateTransformclippathclipPathfeblendfeBlendfecolormatrixfeColorMatrixfecomponenttransferfeComponentTransferfecompositefeCompositefeconvolvematrixfeConvolveMatrixfediffuselightingfeDiffuseLightingfedisplacementmapfeDisplacementMapfedistantlightfeDistantLightfefloodfeFloodfefuncafeFuncAfefuncbfeFuncBfefuncgfeFuncGfefuncrfeFuncRfegaussianblurfeGaussianBlurfeimagefeImagefemergefeMergefemergenodefeMergeNodefemorphologyfeMorphologyfeoffsetfeOffsetfepointlightfePointLightfespecularlightingfeSpecularLightingfespotlightfeSpotLightfetilefeTilefeturbulencefeTurbulenceforeignobjectforeignObjectglyphrefglyphReflineargradientlinearGradientradialGradienttextPath)radialgradienttextpathrT   rA   )rR   r   replacementss      r(   adjustSVGTagNames:getPhases.<locals>.InForeignContentPhase.adjustSVGTagNames	  s   #4J
 #4)=#4*N#4 +N#4 ,_	#4
 /0B#4 '
#4 &y#4 ,_#4 23H#4 *=#4 /0B#4 01D#4 01D#4 -.>#4 &y#4  &y!#4" &y##4$ &y%#4& &y'#4( -.>)#4* &y+#4, &y-#4. *=/#40 +N1#42 '
3#44 +N5#46 12F7#48 *=9#4: %h;#4< +N=#4> ,_?#4@ '
A#4B -.>C#4D /?(2G#4LJ V}, ,6] ;f -r)   c                    > US   S:X  a  SUS'   OFU R                   R                  (       a+  [        S US    5       5      (       a  SU R                   l        TR                  X5        g )Nr   rD  u   �c              3   2   #    U  H  o[         ;  v   M     g 7fr2   )r   ).0rF  s     r(   	<genexpr>MgetPhases.<locals>.InForeignContentPhase.processCharacters.<locals>.<genexpr>	  s     Lmd/1ms   F)rY   ru   rE  r   )rR   r   r:  s     r(   r   :getPhases.<locals>.InForeignContentPhase.processCharacters	  sT    V}( (f++((LeFmLLL).&##D0r)   c                    U R                   R                  S   nUS   U R                  ;   d1  US   S:X  Ga  [        US   R	                  5       5      1 Sk-  (       Ga  U R
                  R                  SSUS   05        U R                   R                  S   R                  U R                   R                  :w  Ga>  U R
                  R                  U R                   R                  S   5      (       Gd  U R
                  R                  U R                   R                  S   5      (       d  U R                   R                  R                  5         U R                   R                  S   R                  U R                   R                  :w  ap  U R
                  R                  U R                   R                  S   5      (       d9  U R
                  R                  U R                   R                  S   5      (       d  M  U$ UR                  [        S   :X  a  U R
                  R                  U5        OCUR                  [        S   :X  a,  U R                  U5        U R
                  R                  U5        U R
                  R!                  U5        UR                  US	'   U R                   R#                  U5        US
   (       a*  U R                   R                  R                  5         SUS'   g g )Nr   rT   r.  r   >   facesizecolorz*unexpected-html-element-in-foreign-contentr   r   r   r   Tr   )rN   r   breakoutElementssetkeysrY   r   r   r   r   r   r+  r   r   r  r   r   r   )rR   r   r   s      r(   r   8getPhases.<locals>.InForeignContentPhase.processStartTag	  s5   ))004Kf!6!66v&(U6]'')*-FFF&&'S(.f'>@yy--b1;;yy112;;==dii>T>TUW>XYY;;CCDIIDZDZ[]D^__II**..0	 yy--b1;;yy112;;==dii>T>TUW>XYY;;CCDIIDZDZ[]D^__ ((Jx,@@KK66u= **j.??**51KK33E:33E:%0%:%:k"		''.'II**..07;E34 (r)   c                    [        U R                  R                  5      S-
  nU R                  R                  S   nUR                  R	                  [
        5      US   :w  a!  U R                  R                  SSUS   05         UR                  R	                  [
        5      US   :X  a  U R                  R                  U R                  R                  S   :X  aS  U R                  R                  R                  5         U R                  R                  R                  U R                  l        U R                  R                  R                  5       U:w  aG  U R                  R                  (       d   eU R                  R                  R                  5       U:w  a  MG  S n U$ US-  nU R                  R                  U   nUR                  U R                  R                  :w  a  GMd  U R                  R                  R                  U5      n U$ )Nr   r   rT   r  r`  )r   rN   r   rT   r   r   rY   r   rp   rQ   r  r   r+  r   r   r   )rR   r   	nodeIndexr   r   s        r(   r   6getPhases.<locals>.InForeignContentPhase.processEndTag	  s   DII223a7I99))"-Dyy""#34fE&&';feFm=TU99&&'78E&MI{{((DKK,>,>},MM))99;,0KK,=,=,K,K)))00446$>#yy5555 ))00446$> $I  Q	yy--i8>>TYY%?%?? $ 1 1 ? ? FIr)   rA   N)rB   rC   rD   rE   rZ  r9  r   r  r  r   r   r   rF   r  s   r(   InForeignContentPhaser  x	  s1    G	$ &G H'	<R	1	<6	r)   r  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S rS r\R                  " S	\	4/5      r\
\l        \R                  " S	\4/5      r\\l        S
rg)!getPhases.<locals>.AfterBodyPhasei	  c                     g r2   rA   rv   s    r(   r   ,getPhases.<locals>.AfterBodyPhase.processEOF	      r)   c                 h    U R                   R                  XR                   R                  S   5        g )Nr   r  r   s     r(   r   0getPhases.<locals>.AfterBodyPhase.processComment	  s%     II##E99+A+A!+DEr)   c                     U R                   R                  S5        U R                   R                  S   U R                   l        U$ )Nzunexpected-char-after-bodyr   rY   r   rQ   rp   r   s     r(   r   3getPhases.<locals>.AfterBodyPhase.processCharacters	  s5    KK""#?@ $ 2 28 <DKKLr)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r4  .getPhases.<locals>.AfterBodyPhase.startTagHtml	  r  r)   c                     U R                   R                  SSUS   05        U R                   R                  S   U R                   l        U$ )Nzunexpected-start-tag-after-bodyrT   r   r  r   s     r(   r  /getPhases.<locals>.AfterBodyPhase.startTagOther	  sC    KK""#D$*E&M#:< $ 2 28 <DKKLr)   c                     U R                   R                  (       a  U R                   R                  S5        g U R                   R                  S   U R                   l        g )Nz'unexpected-end-tag-after-body-innerhtmlafterAfterBody)rY   ra   r   rQ   rp   )rR   rT   s     r(   r  ,getPhases.<locals>.AfterBodyPhase.endTagHtml
  s>    {{$$&&'PQ$(KK$6$67G$H!r)   c                     U R                   R                  SSUS   05        U R                   R                  S   U R                   l        U$ )Nzunexpected-end-tag-after-bodyrT   r   r  r   s     r(   r  -getPhases.<locals>.AfterBodyPhase.endTagOther

  sC    KK""#B$*E&M#:< $ 2 28 <DKKLr)   r   rA   N)rB   rC   rD   rE   rZ  r9  r   r   r   r4  r  r  r  r   r  r*  r  r7  rF   rA   r)   r(   AfterBodyPhaser  	  sx    G			F
	
	G		I	 !11\"3
  #0//&*1E0FG +r)   r  c                      > \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 r\R                  " S
 Y R                   4S\4S\	4S\
4/5      r\\l        \R                  " S\4/5      r\\l        Srg)"getPhases.<locals>.InFramesetPhasei
  c                     U R                   R                  S   R                  S:w  a  U R                  R	                  S5        g U R                  R
                  (       d   eg )Nr   r   zeof-in-framesetr\  rv   s    r(   r   -getPhases.<locals>.InFramesetPhase.processEOF
  sE    yy%%b)..&8&&'89{{,,,,r)   c                 :    U R                   R                  S5        g )Nzunexpected-char-in-framesetr  r   s     r(   r   4getPhases.<locals>.InFramesetPhase.processCharacters"
  s    KK""#@Ar)   c                 :    U R                   R                  U5        g r2   )rN   r   r   s     r(   r  3getPhases.<locals>.InFramesetPhase.startTagFrameset%
  s    II##E*r)   c                     U R                   R                  U5        U R                   R                  R                  5         g r2   r  r   s     r(   startTagFrame0getPhases.<locals>.InFramesetPhase.startTagFrame(
  s*    II##E*II""&&(r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   startTagNoframes3getPhases.<locals>.InFramesetPhase.startTagNoframes,
  r  r)   c                 F    U R                   R                  SSUS   05        g )Nz unexpected-start-tag-in-framesetrT   r  r   s     r(   r  0getPhases.<locals>.InFramesetPhase.startTagOther/
  r  r)   c                    U R                   R                  S   R                  S:X  a  U R                  R	                  S5        O$U R                   R                  R                  5         U R                  R                  (       dQ  U R                   R                  S   R                  S:w  a)  U R                  R                  S   U R                  l        g g g )Nr   r   z)unexpected-frameset-in-frameset-innerhtmlr   afterFrameset)	rN   r   rT   rY   r   r+  ra   rQ   rp   r   s     r(   endTagFrameset1getPhases.<locals>.InFramesetPhase.endTagFrameset3
  s    yy%%b)..&8&&'RS		&&**,KK))II**2.33zA %)KK$6$6$G! B *r)   c                 F    U R                   R                  SSUS   05        g )Nzunexpected-end-tag-in-framesetrT   r  r   s     r(   r  .getPhases.<locals>.InFramesetPhase.endTagOther?
  rb  r)   r   r   rE  r  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r  r	  r  r  r  r  r   r  r4  r*  r  r7  rF   r  s   r(   InFramesetPhaser  
  s    G		-	B	+	)	G	<
	H	< !11U''()*m$)*	3
  #0//(1
  !,r)   r  c                      > \ rS rSr\" 5       rS rS rS rS r	S r
S r\R                  " S Y R                  4S	\4/5      r\	\l        \R                  " S\
4/5      r\\l        S
rg)%getPhases.<locals>.AfterFramesetPhaseiP
  c                     g r2   rA   rv   s    r(   r   0getPhases.<locals>.AfterFramesetPhase.processEOFT
  r  r)   c                 :    U R                   R                  S5        g )Nzunexpected-char-after-framesetr  r   s     r(   r   7getPhases.<locals>.AfterFramesetPhase.processCharactersX
  s    KK""#CDr)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r  6getPhases.<locals>.AfterFramesetPhase.startTagNoframes[
  r  r)   c                 F    U R                   R                  SSUS   05        g )Nz#unexpected-start-tag-after-framesetrT   r  r   s     r(   r  3getPhases.<locals>.AfterFramesetPhase.startTagOther^
  s#    KK""#H$*E&M#:<r)   c                 T    U R                   R                  S   U R                   l        g )NafterAfterFrameset)rY   rQ   rp   r   s     r(   r  0getPhases.<locals>.AfterFramesetPhase.endTagHtmlb
  s     $ 2 23G HDKKr)   c                 F    U R                   R                  SSUS   05        g )Nz!unexpected-end-tag-after-framesetrT   r  r   s     r(   r  1getPhases.<locals>.AfterFramesetPhase.endTagOthere
  s#    KK""#F$*E&M#:<r)   r   r  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r  r  r  r  r   r  r4  r*  r  r7  rF   r  s   r(   AfterFramesetPhaser  P
  s    G			E	G	<	I	< !11U''()*3
  #0//Z 1
  !,r)   r&  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S rS r\R                  " S	\
4/5      r\\l        S
rg)&getPhases.<locals>.AfterAfterBodyPhaseit
  c                     g r2   rA   rv   s    r(   r   1getPhases.<locals>.AfterAfterBodyPhase.processEOFw
  r@  r)   c                 b    U R                   R                  XR                   R                  5        g r2   rB  r   s     r(   r   5getPhases.<locals>.AfterAfterBodyPhase.processCommentz
  rE  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   =getPhases.<locals>.AfterAfterBodyPhase.processSpaceCharacters}
  r  r)   c                     U R                   R                  S5        U R                   R                  S   U R                   l        U$ )Nexpected-eof-but-got-charr   r  r   s     r(   r   8getPhases.<locals>.AfterAfterBodyPhase.processCharacters
  s5    KK""#>? $ 2 28 <DKKLr)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r4  3getPhases.<locals>.AfterAfterBodyPhase.startTagHtml
  r  r)   c                     U R                   R                  SSUS   05        U R                   R                  S   U R                   l        U$ )Nexpected-eof-but-got-start-tagrT   r   r  r   s     r(   r  4getPhases.<locals>.AfterAfterBodyPhase.startTagOther
  sC    KK""#C$*E&M#:< $ 2 28 <DKKLr)   c                     U R                   R                  SSUS   05        U R                   R                  S   U R                   l        U$ )Nexpected-eof-but-got-end-tagrT   r   r  r   s     r(   r   4getPhases.<locals>.AfterAfterBodyPhase.processEndTag
  sC    KK""#A$*E&M#:< $ 2 28 <DKKLr)   r   rA   N)rB   rC   rD   rE   rZ  r9  r   r   r   r   r4  r  r   r   r  r*  r  rF   rA   r)   r(   AfterAfterBodyPhaser(  t
  sW    G			?	N	
	G		 !11\"3
  #0r)   r:  c                       \ rS rSr\" 5       rS rS rS rS r	S r
S rS rS	 r\R                  " S
\
4S\4/5      r\\l        Srg)*getPhases.<locals>.AfterAfterFramesetPhasei
  c                     g r2   rA   rv   s    r(   r   5getPhases.<locals>.AfterAfterFramesetPhase.processEOF
  r@  r)   c                 b    U R                   R                  XR                   R                  5        g r2   rB  r   s     r(   r   9getPhases.<locals>.AfterAfterFramesetPhase.processComment
  rE  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r   AgetPhases.<locals>.AfterAfterFramesetPhase.processSpaceCharacters
  r  r)   c                 :    U R                   R                  S5        g )Nr0  r  r   s     r(   r   <getPhases.<locals>.AfterAfterFramesetPhase.processCharacters
  s    KK""#>?r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   r4  7getPhases.<locals>.AfterAfterFramesetPhase.startTagHtml
  r  r)   c                 R    U R                   R                  S   R                  U5      $ r  r  r   s     r(   startTagNoFrames;getPhases.<locals>.AfterAfterFramesetPhase.startTagNoFrames
  r  r)   c                 F    U R                   R                  SSUS   05        g )Nr5  rT   r  r   s     r(   r  8getPhases.<locals>.AfterAfterFramesetPhase.startTagOther
  rb  r)   c                 F    U R                   R                  SSUS   05        g )Nr8  rT   r  r   s     r(   r   8getPhases.<locals>.AfterAfterFramesetPhase.processEndTag
  rp  r)   r   r  rA   N)rB   rC   rD   rE   rZ  r9  r   r   r   r   r4  rH  r  r   r   r  r*  r  rF   rA   r)   r(   AfterAfterFramesetPhaser<  
  sg    G			?	N	@	G	G	<	< !11\")*3
  #0r)   rN  rg   rf   r   r  r  r  r   r   r   r`  r   r   r   r   r   r   r  )r   r  r   r  r  r"  rA   )rS   ri   r  r[  rr  r  r  r  r!  rU  r  r  r  r  r2  rK  rq  r  r  r  r  r&  r:  rN  r'  r  r:  s                           @@@r(   rP   rP     sX   *F,u2 FP@u @D#% #J+,% +,Zd,e d,L=,e =,~@, @,DR, R,e R,h,E ,BO,u O,b-5 -^D, D,L>,U >,@`,5 `,DW,U W,rJ,e J,Xa, a,F$,u $,Lp pd,, ,,\6,% 6,p",U ",H#0e #0J!0% !0J<o 	o 	+	
 	- 	^ 	+ 		 	< 	' 	^ 	+ 	' 	 	+  	M!" 	/#$ 2#%+-5/ r)   c                    ^ [        U S   5      [        T5      -  nU(       a3  [        U S   5      " U4S jU S   R                  5        5       5      U S'   g g )Nr   c              3   N   >#    U  H  u  pTR                  X5      U4v   M     g 7fr2   )r   )r  kvr  s      r(   r  $adjust_attributes.<locals>.<genexpr>
  s+      ,O8M .:-=-=a-CQ,G8Ms   "%)r   r7   r3   )r   r  needs_adjustments    ` r(   r   r   
  sX    f.,1GGU6]+ ,O8=f8K8K8M,O Of r)   c                 &    Uc  0 n[         U   XUS.$ )N)r7   rT   r   r   )r   )rT   r7   r   r   s       r(   r`  r`  
  s$    
t$d&( (r)   c                       \ rS rSrSrSrg)r   i
  zError in parsed documentrA   N)rB   rC   rD   rE   r   rF   rA   r)   r(   r   r   
  s    "r)   r   )rL   T)r   rL   T)r   NF)+
__future__r   r   r   bleach.six_shimr   r5   rJ  r   r	   r
   treebuilders.baser   r   	constantsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r,   rH   r8  r!   memoizerP   r   r`  	Exceptionr   rA   r)   r(   <module>r]     s    B B $     % 
 
 
 
 
".?2	s) s)l	 J% J%ZJO 59 %(	 	r)   