
    ^h"                         S SK JrJrJr   S SKJr  S SKJ	r	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 r\" \5      rg! \ a	    S SKJr   N>f = f)    )absolute_importdivisionunicode_literals)MutableMapping)minidomNodeN   )base   )	constants)
namespaces)moduleFactoryFactoryc                    ^ ^^^^ T m " S S[         5      m " UU4S jS[        R                  5      m " UU UU4S jS[        R                  5      nS m[	        5       $ )Nc                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)getDomBuilder.<locals>.AttrList   c                     Xl         g Nelementselfr   s     b/home/james-whalen/.local/lib/python3.13/site-packages/bleach/_vendor/html5lib/treebuilders/dom.py__init__(getDomBuilder.<locals>.AttrList.__init__   s    "L    c                 \    [        U R                  R                  R                  5       5      $ r   )iterr   
attributeskeysr   s    r   __iter__(getDomBuilder.<locals>.AttrList.__iter__   s     //44677r   c                     [        U[        5      (       a  [        eU R                  R                  R                  U5      nX#l        X0R                  R                  U'   g r   )
isinstancetupleNotImplementedErrorr   ownerDocumentcreateAttributevaluer   )r   namer*   attrs       r   __setitem__+getDomBuilder.<locals>.AttrList.__setitem__   sF    $&&))||11AA$G"
04''-r   c                 @    [        U R                  R                  5      $ r   )lenr   r   r!   s    r   __len__'getDomBuilder.<locals>.AttrList.__len__#   s    t||..//r   c                 \    [        U R                  R                  R                  5       5      $ r   )listr   r   itemsr!   s    r   r5   %getDomBuilder.<locals>.AttrList.items&   s     //55788r   c                 \    [        U R                  R                  R                  5       5      $ r   )r4   r   r   valuesr!   s    r   r8   &getDomBuilder.<locals>.AttrList.values)   s     //66899r   c                 ~    [        U[        5      (       a  [        eU R                  R                  U   R
                  $ r   )r%   r&   r'   r   r   r*   r   r+   s     r   __getitem__+getDomBuilder.<locals>.AttrList.__getitem__,   s0    $&&))||..t4:::r   c                 h    [        U[        5      (       a  [        eU R                  R                  U	 g r   )r%   r&   r'   r   r   r;   s     r   __delitem__+getDomBuilder.<locals>.AttrList.__delitem__2   s'    $&&))LL++D1r   r   N)__name__
__module____qualname____firstlineno__r   r"   r-   r1   r5   r8   r<   r?   __static_attributes__ r   r   AttrListr      s*    	#	8	5	0	9	:	;	2r   rG   c                      > \ rS rSrS r\" S 5      rS rSS jrS r	S r
S	 rU 4S
 jrS r\" \\5      rU4S jrS rS r\" \5      rSrg)"getDomBuilder.<locals>.NodeBuilder8   c                 b    [         R                  R                  XR                  5        Xl        g r   )r
   r   r   nodeNamer   r   s     r   r   +getDomBuilder.<locals>.NodeBuilder.__init__9   s    IIt%5%56"Lr   c                 z    [        U R                  S5      =(       a    U R                  R                  =(       d    S $ )NnamespaceURI)hasattrr   rO   r!   s    r   <lambda>+getDomBuilder.<locals>.NodeBuilder.<lambda>=   s.    '$,,*O +7!\\66+?:>+?r   c                 Z    Xl         U R                  R                  UR                  5        g r   )parentr   appendChildr   nodes     r   rU   .getDomBuilder.<locals>.NodeBuilder.appendChild@   s    KLL$$T\\2r   Nc                     U R                   R                  R                  U5      nU(       a&  U R                   R                  X2R                   5        g U R                   R	                  U5        g r   )r   r(   createTextNodeinsertBeforerU   )r   datar[   texts       r   
insertText-getDomBuilder.<locals>.NodeBuilder.insertTextD   sI    <<--<<TBD))$0D0DE((.r   c                 p    U R                   R                  UR                   UR                   5        Xl        g r   )r   r[   rT   )r   rW   refNodes      r   r[   /getDomBuilder.<locals>.NodeBuilder.insertBeforeK   s#    LL%%dllGOODKr   c                     UR                   R                  U R                   :X  a%  U R                   R                  UR                   5        S Ul        g r   )r   
parentNoderemoveChildrT   rV   s     r   re   .getDomBuilder.<locals>.NodeBuilder.removeChildO   s5    ||&&$,,6((6DKr   c                 *   U R                   R                  5       (       am  U R                   R                  nU R                   R                  U5        UR                   R	                  U5        U R                   R                  5       (       a  Mm  / U l        g r   )r   hasChildNodes
firstChildre   rU   
childNodes)r   	newParentchilds      r   reparentChildren3getDomBuilder.<locals>.NodeBuilder.reparentChildrenT   sh    ,,,,..//((/!!--e4 ,,,,.. !DOr   c                 (   > T" U R                   5      $ r   r   )r   rG   s    r   getAttributes0getDomBuilder.<locals>.NodeBuilder.getAttributes[   s    DLL))r   c                 0   U(       a  [        UR                  5       5       Hq  u  p#[        U[        5      (       a<  US   b  US   S-   US   -   nOUS   nU R                  R                  US   UU5        MV  U R                  R                  X#5        Ms     g g )Nr   :r	   r   )r4   r5   r%   r&   r   setAttributeNSsetAttribute)r   r   r+   r*   qualifiedNames        r   setAttributes0getDomBuilder.<locals>.NodeBuilder.setAttributes^   s    #'
(8(8(:#;KD!$..7.-1!Ws]T!W-DM,0GM33DG]49; 11 ) $< r   c                 F   > T" U R                   R                  S5      5      $ )NF)r   	cloneNoder   NodeBuilders    r   rz   ,getDomBuilder.<locals>.NodeBuilder.cloneNodem   s    t||55e<==r   c                 6    U R                   R                  5       $ r   )r   rh   r!   s    r   
hasContent-getDomBuilder.<locals>.NodeBuilder.hasContentp   s    <<--//r   c                 v    U R                   c  [        S   U R                  4$ U R                   U R                  4$ )Nhtml)	namespacer   r+   r!   s    r   getNameTuple/getDomBuilder.<locals>.NodeBuilder.getNameTuples   s3    ~~%!&)49944~~tyy00r   )rj   r   r   )rA   rB   rC   rD   r   propertyr   rU   r^   r[   re   rm   rp   rw   r   rz   r   r   	nameTuplerE   )rG   r|   s   r   r|   rI   8   sf    	#  ? @		3	/		
	!	*	) m];
	>	0	1 \*	r   r|   c                      > \ rS rSrU 4S jrU U4S jrSU4S jjrU4S jrU4S jrS r	U4S	 jr
S
 rS rSS jr YrSrSrg)"getDomBuilder.<locals>.TreeBuilder{   c                 |   > TR                  5       R                  S S S 5      U l        [        R                  " U 5      $ r   )getDOMImplementationcreateDocumentdomweakrefproxy)r   Doms    r   documentClass0getDomBuilder.<locals>.TreeBuilder.documentClass|   s1    //1@@tTRDH==&&r   c                    > US   nUS   nUS   nTR                  5       nUR                  X#U5      nU R                  R                  T" U5      5        T[        :X  a  U R
                  Ul        g g )Nr+   publicIdsystemId)r   createDocumentTypedocumentrU   r   r   r(   )	r   tokenr+   r   r   domimpldoctyper   r|   s	          r   insertDoctype0getDomBuilder.<locals>.TreeBuilder.insertDoctype   so    =DZ(HZ(H..0G00JGMM%%k'&:;g~(,% r   Nc                    > Uc)  U R                   c  U R                  R                  U5      nOU R                  R                  X!5      nT" U5      $ r   )defaultNamespacer   createElementcreateElementNS)r   r+   r   rW   r|   s       r   elementClass/getDomBuilder.<locals>.TreeBuilder.elementClass   sG     T%:%:%Bxx--d3xx//	@t$$r   c                 F   > T" U R                   R                  U5      5      $ r   )r   createComment)r   r\   r|   s     r   commentClass/getDomBuilder.<locals>.TreeBuilder.commentClass   s    txx55d;<<r   c                 D   > T" U R                   R                  5       5      $ r   )r   createDocumentFragmentr{   s    r   fragmentClass0getDomBuilder.<locals>.TreeBuilder.fragmentClass   s    txx>>@AAr   c                 N    U R                   R                  UR                  5        g r   )r   rU   r   rV   s     r   rU   .getDomBuilder.<locals>.TreeBuilder.appendChild   s    HH  .r   c                    > T" U5      $ r   rF   )r   r   testSerializers     r   r   1getDomBuilder.<locals>.TreeBuilder.testSerializer   s    !'**r   c                     U R                   $ r   r   r!   s    r   getDocument.getDomBuilder.<locals>.TreeBuilder.getDocument   s    88Or   c                 T    [         R                  R                  U 5      R                  $ r   )r
   TreeBuildergetFragmentr   r!   s    r   r   .getDomBuilder.<locals>.TreeBuilder.getFragment   s    ##//5===r   c                    UnX :w  a!  [         R                  R                  XU5        g [        U R                  S5      (       a  [
        R                  U R                  R                  ;  aa  [        U R                  R                  5      U R                  l        U R                  R                  R                  [
        R                  5        U R                  R                  U R                  R                  U5      5        g )N_child_node_types)r
   r   r^   rP   r   r   	TEXT_NODEr   r4   appendrU   rZ   )r   r\   rT   s      r   r^   -getDomBuilder.<locals>.TreeBuilder.insertText   s    D~  ++D? 488%899~~TXX-G-GG59$((:T:T5U22299$..I$$TXX%<%<T%BCr   r   r   )rA   rB   rC   rD   r   r   r   r   r   rU   r   r   r   r^   implementationr+   rE   )r   DomImplementationr|   r   s   r   r   r   {   sC    	'		1	%	=	B	/	+		>	D +r   r   c                 p   ^^ U R                  5         / mSUU4S jjmT" U S5        SR                  T5      $ )Nr   c                   > U R                   [        R                  :X  a  U R                  (       a  U R                  (       d  U R
                  (       a[  U R                  =(       d    SnU R
                  =(       d    SnTR                  SSU-  < SU R                  < SU< SU< S3	5        GOTR                  SSU-  < SU R                  < S35        GO}TR                  SSU-  < S	35        GObU R                   [        R                  :X  a  TR                  S
5        GO1U R                   [        R                  :X  a  TR                  S5        GO U R                   [        R                  :X  a)  TR                  SSU-  < SU R                  < S35        GOU R                   [        R                  :X  a)  TR                  SSU-  < SU R                  < S35        GOr[        U S5      (       a<  U R                  b/  [        R                  U R                     < SU R                   < 3nOU R                   nTR                  SSU-  < SU< S35        U R#                  5       (       a  / n[%        ['        U R(                  5      5       H  nU R(                  R+                  U5      nUR                   nUR,                  nUR                  n	U	(       a%  [        R                  U	   < SUR.                  < 3nOUR                   nUR                  XH45        M     [1        U5       H(  u  pHTR                  SSUS-   -  < U< SU< S35        M*     US-  nU R2                   H  n
T" X5        M     g )N | z
<!DOCTYPE z "z" "z">>z<!DOCTYPE >z	#documentz#document-fragmentz<!-- z -->"rO   <r   z=")nodeTyper   DOCUMENT_TYPE_NODEr+   r   r   r   DOCUMENT_NODEDOCUMENT_FRAGMENT_NODECOMMENT_NODE	nodeValuer   rP   rO   r   prefixesrL   hasAttributesranger0   r   itemr*   	localNamesortedrj   )r   indentr   r   r+   r   ir,   r*   nsrl   rvserializeElements              r   r   ?getDomBuilder.<locals>.testSerializer.<locals>.serializeElement   s   4#:#::<<''7+;+;#*#3#3#9r#*#3#3#9r		#&<x#S T 		fgll"STII#,@A!!T%7%77		+&!!T%@%@@		./!!T%6%66		cFlG<M<MNO!!T^^3		vw7H7HIJG^44,,8&/&8&89M9M&N&-&6&68D #++D		sV|T:;((**!#J"3w'9'9#:;&1166q9#}} $

!...7.@.@.Ddnn#UD#'==D"))4-8 < (.j'9		#!2DdE"RS (:aKF ++ / ,r   
)r   )	normalizejoin)r   r   r   s    @@r   r   %getDomBuilder.<locals>.testSerializer   s9    -	0 -	0\ 	!$yy}r   )r   r
   r   r   locals)r   r   rG   r   r|   r   s   ` @@@@r   getDomBuilderr      sU    
C"2> "2HA+ A+dii A+F8 8d&& 8t4l 8Or   )
__future__r   r   r   collections.abcr   ImportErrorcollectionsxml.domr   r   r   r   r
   r   r   _utilsr   r   getDomModulerF   r   r   <module>r      sO    B B+. "    " )Z| $M2S  +*+s   A AA