U e5d)ã@søddlZddlZddlmZmZmZmZddlTddlm Z m Z ej j j ej j jfZGdd„dej j ƒZ ee ddd �ee d d d �ee d d d �dd„Zdd„Zdd„Zdd„Zdd„ZGdd„de ƒZGdd„de ƒZeeddd �eed dd �eedd d �Gd!d"„d"eƒZeed#d$d �eZGd%d&„d&eƒZeddƒZGd'd(„d(e ƒZeed)d*d �eed d+d �d,d-„ZGd.d/„d/ƒZGd0d1„d1ee ƒZ Gd2d3„d3ee ƒZ!ee!d#d4d �Gd5d6„d6e!ƒZ"ee"d7d8d �ee"d9d:d �d;d<„Z#d=d>„Z$Gd?d@„d@e!ƒZ%GdAdB„dBe"ƒZ&GdCdD„dDeƒZ'ee'd#dEd �GdFdG„dGƒZ(GdHdI„dIe(ee ƒZ)GdJdK„dKe(e ƒZ*GdLdM„dMe(ee ƒZ+GdNdO„dOe ƒZ,GdPdQ„dQeƒZ-dRdS„Z.GdTdU„dUe e ƒZ/ee/dVdWd �dXdY„Z0dZd[„Z1d\d]„Z2ddd^d_„Z3ded`da„Z4dfdbdc„Z5dS)géN)ÚEMPTY_NAMESPACEÚ EMPTY_PREFIXÚXMLNS_NAMESPACEÚdomreg)Ú*)ÚDOMImplementationLSÚ DocumentLSc@sàeZdZdZdZdZdZdZeZ dd„Z d2dd„Z d3dd „Z d d „Z d d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Z dS)4ÚNodeNcCsdS)NT©©Úselfr r ú'/usr/lib64/python3.8/xml/dom/minidom.pyÚ__bool__+sz Node.__bool__cCs| dd|¡S©NÚ)Ú toprettyxml)r Úencodingr r r Útoxml.sz Node.toxmlú Ú cCsx|dkrt ¡}ntjt ¡|ddd�}|jtjkrH| |d|||¡n| |d||¡|dkrh| ¡S|  ¡ ¡SdS)NÚxmlcharrefreplacer)rÚerrorsÚnewliner) ÚioÚStringIOÚ TextIOWrapperÚBytesIOÚnodeTyper Ú DOCUMENT_NODEÚwritexmlÚgetvalueÚdetach)r ÚindentÚnewlrÚwriterr r r r1s  ý zNode.toprettyxmlcCs t|jƒS©N)ÚboolÚ childNodesr r r r Ú hasChildNodesCszNode.hasChildNodescCs|jSr%©r'r r r r Ú_get_childNodesFszNode._get_childNodescCs|jr|jdSdS©Nrr)r r r r Ú_get_firstChildIszNode._get_firstChildcCs|jr|jdSdS©Néÿÿÿÿr)r r r r Ú_get_lastChildMszNode._get_lastChildcCs |j|jkr,t|jƒD]}| ||¡q|S|j|jkrTtj dt |ƒt |ƒf¡‚|j dk rj|j   |¡|dkr~|  |¡nˆz|j  |¡}Wntk r¬tj ¡‚YnX|jtkrÀt|ƒ|j ||¡||_||_|rú|j|d}||_||_nd|_||_ |S)Nú%s cannot be child of %sé)rÚDOCUMENT_FRAGMENT_NODEÚtupler'Ú insertBeforeÚ_child_node_typesÚxmlÚdomÚHierarchyRequestErrÚreprÚ parentNodeÚ removeChildÚ appendChildÚindexÚ ValueErrorÚ NotFoundErrÚ_nodeTypes_with_childrenÚ_clear_id_cacheÚinsertÚ nextSiblingÚpreviousSibling)r ÚnewChildÚrefChildÚcr=Únoder r r r4Qs8  ÿ    zNode.insertBeforecCs�|j|jkr*t|jƒD]}| |¡q|S|j|jkrTtj dt |ƒt |ƒf¡‚n|jt krft |ƒ|j dk r||j   |¡t||ƒd|_|S©Nr0)rr2r3r'r<r5r6r7r8r9r@rAr:r;Ú _append_childrC)r rHrGr r r r<qs   ÿ    zNode.appendChildcCs|j|jkr(|j}| |¡| ||¡S|j|jkrPtj dt |ƒt |ƒf¡‚||kr\dS|j dk rr|j  |¡z|j   |¡}Wnt k r tj ¡‚YnX||j |<||_ d|_ |jtksÌ|jtkrÔt|ƒ|j|_|j|_d|_d|_|jrþ||j_|j�r||j_|SrI)rr2rCr;r4r5r6r7r8r9r:r'r=r>r?r@rArD)r rEÚoldChildrFr=r r r Ú replaceChild‚s@    ÿ    ÿzNode.replaceChildcCs€z|j |¡Wntk r.tj ¡‚YnX|jdk rD|j|j_|jdk rX|j|j_d|_|_|jt krvt |ƒd|_ |Sr%) r'Úremover>r6r7r?rCrDrr@rAr:©r rKr r r r;¢s      zNode.removeChildcCsÒg}|jD]´}|jtjkr |jsJ|r0|j|d_|jr@|j|j_| ¡q¾|r”|dj|jkr”|d}|j|j|_|j|_|jrŠ||j_| ¡q¾| |¡q | |¡|jtj kr |  ¡q ||jdd…<dSr-) r'rr Ú TEXT_NODEÚdatarCrDÚunlinkÚappendÚ ELEMENT_NODEÚ normalize)r ÚLÚchildrHr r r rT²s*          zNode.normalizecCst|||jp|ƒSr%)Ú _clone_nodeÚ ownerDocument)r Údeepr r r Ú cloneNodeÍszNode.cloneNodecCs|jj ||¡Sr%)rXÚimplementationÚ hasFeature©r ÚfeatureÚversionr r r Ú isSupportedÐszNode.isSupportedcCsdSr%r r r r r Ú_get_localNameÓszNode._get_localNamecCs||kSr%r ©r Úotherr r r Ú isSameNodeÙszNode.isSameNodecCs| |d¡r|SdSdSr%)r`©r r^r r r Ú getInterfaceÜs zNode.getInterfacec Cs0z|j|dWSttfk r*YdSXdSr+)Ú _user_dataÚAttributeErrorÚKeyError©r Úkeyr r r Ú getUserDataæszNode.getUserDatacCsnd}z |j}Wntk r,i}||_YnX||krB||d}|dkr^d}|dk rj||=n ||f||<|Sr+)rgrh)r rkrPÚhandlerÚoldÚdr r r Ú setUserDataìs    zNode.setUserDatacCsDt|dƒr@t|j ¡ƒD]&\}\}}|dk r| |||||¡qdS)Nrg)ÚhasattrÚlistrgÚitemsZhandle)r Ú operationÚsrcZdstrkrPrmr r r Ú_call_user_data_handlerþs zNode._call_user_data_handlercCs>d|_|_|jr.|jD] }| ¡qtƒ|_d|_d|_dSr%)r:rXr'rQÚNodeListrDrC)r rVr r r rQs   z Node.unlinkcCs|Sr%r r r r r Ú __enter__szNode.__enter__cCs | ¡dSr%)rQ)r ZetZevÚtbr r r Ú__exit__sz Node.__exit__)N)rrN)!Ú__name__Ú __module__Ú __qualname__Ú namespaceURIr:rXrCrDrÚprefixrrrr(r*r,r/r4r<rLr;rTrZr`rardrfrlrprvrQrxrzr r r r r "s:      r Ú firstChildzFirst child node, or None.)ÚdocÚ lastChildzLast child node, or None.Ú localNamez"Namespace-local name of this node.cCs2|j}|r|d}||_||_| |¡||_dSr-)r'rDrCrRr:)r rHr'Zlastr r r rJs rJcCs$|dk r |jtjkrdS|j}qdS©NTF)rr rr:©rHr r r Ú _in_document&s  r†cCs6|r2| dd¡ dd¡ dd¡ dd¡}| |¡dS) Nú&z&úz>)ÚreplaceÚwrite)r$rPr r r Ú _write_data.sÿÿr�cCsD|jD]8}|jtjkr2|dks(|j|kr2| |¡t|||ƒq|S©Nr)r'rr rSÚtagNamerRÚ_get_elements_by_tagName_helper)ÚparentÚnameÚrcrHr r r r�5s  ÿÿ r�cCsX|jD]L}|jtjkr|dks(|j|krD|dks:|j|krD| |¡t||||ƒq|SrŽ)r'rr rSrƒr~rRÚ"_get_elements_by_tagName_ns_helper)r‘ZnsURIrƒr“rHr r r r”=s  ÿÿ r”c@sJeZdZejZdZdZdZdZ ej ej ej ej ejejejfZdd„ZdS)ÚDocumentFragmentz#document-fragmentNcCs tƒ|_dSr%)rwr'r r r r Ú__init__TszDocumentFragment.__init__)r{r|r}r r2rÚnodeNameÚ nodeValueÚ attributesr:rSrOÚCDATA_SECTION_NODEÚENTITY_REFERENCE_NODEÚPROCESSING_INSTRUCTION_NODEÚ COMMENT_NODEÚ NOTATION_NODEr5r–r r r r r•Fsúr•c@s¼eZdZdZejZdZdZdZ ej ej fZ e ddfdd„Zdd„Zdd „Zd d „Zd d „ZeeeƒZZdd„Zdd„ZeeeƒZZdd„Zdd„ZeeeƒZdd„Zdd„Zdd„ZdS)ÚAttr)Ú_nameÚ_valuer~Ú_prefixr'Ú _localNamerXÚ ownerElementNFcCs2d|_||_||_||_tƒ|_|j tƒ¡dSr%)r¤r r~r¢rwr'rRÚText)r ÚqNamer~rƒrr r r r–bs z Attr.__init__cCs4z|jWStk r.|j dd¡dYSXdS©Nú:r1r.)r£rhr—Úsplitr r r r raoszAttr._get_localNamecCs|jSr%)Ú specifiedr r r r Ú_get_specifieduszAttr._get_specifiedcCs|jSr%)r r r r r Ú _get_namexszAttr._get_namecCs||_|jdk rt|jƒdSr%)r r¤rA©r Úvaluer r r Ú _set_name{s zAttr._set_namecCs|jSr%)r¡r r r r Ú _get_value‚szAttr._get_valuecCs6||_||jd_|jdk r&t|jƒ||jd_dSr+)r¡r'rPr¤rAr­r r r Ú _set_value…s    zAttr._set_valuecCs|jSr%)r¢r r r r Ú _get_prefixŽszAttr._get_prefixcCsd|j}|dkr&|r&|tkr&tj d¡‚||_|dkr<|j}nd||jf}|jrZt|jƒ||_ dS)NÚxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacez%s:%s) r~rr6r7Ú NamespaceErrr¢rƒr¤rAr’)r rZnsuriZnewNamer r r Ú _set_prefix‘s ÿ zAttr._set_prefixcCsv|j}|dk rR|j|j=|j|j|jf=|jrRd|_|jd8_|jj d8_ |j D] }|  ¡qX|j dd…=dS)NFr1) r¤Ú_attrsr—Ú_attrsNSr~rƒÚ_is_idÚ_magic_id_nodesrXÚ_magic_id_countr'rQ)r ÚelemrVr r r rQ¢s   z Attr.unlinkcCsf|jr dS|j}|j}|dks&|dkr*dS| |¡}|dkr@dS|jrV| |j|j¡S| |j¡SdSr„) r¸rXr¤Ú_get_elem_infor~ÚisIdNSrƒÚisIdr—©r r�r»Úinfor r r Ú _get_isId³s zAttr._get_isIdcCs\|j}|j}|dks|dkr tS| |¡}|dkr6tS|jrL| |j|j¡S| |j¡SdSr%) rXr¤Ú_no_typer¼r~ÚgetAttributeTypeNSrƒÚgetAttributeTyper—r¿r r r Ú_get_schemaTypeÃs zAttr._get_schemaType) r{r|r}Ú __slots__r ÚATTRIBUTE_NODErr™rªr¸rOr›r5rr–rar«r¬r¯Úpropertyr—r’r°r±r˜r®r²rµrrQrÁrÅr r r r rŸXs. ÿ  rŸr¾z True if this attribute is an ID.z'Namespace-local name of this attribute.Ú schemaTypezSchema type for this attribute.c@sîeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z d9dd„Z eZdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„ZdS):Ú NamedNodeMap©r¶r·Ú _ownerElementcCs||_||_||_dSr%rË)r ÚattrsZattrsNSr¤r r r r–ászNamedNodeMap.__init__cCs t|jƒSr%)Úlenr¶r r r r Ú _get_lengthæszNamedNodeMap._get_lengthcCs4z|t|j ¡ƒ|WStk r.YdSXdSr%)rrr¶ÚkeysÚ IndexError©r r=r r r ÚitemészNamedNodeMap.itemcCs*g}|j ¡D]}| |j|jf¡q|Sr%)r¶ÚvaluesrRr—r®©r rUrHr r r rsïszNamedNodeMap.itemscCs0g}|j ¡D]}| |j|jf|jf¡q|Sr%)r¶rÔrRr~rƒr®rÕr r r ÚitemsNSõszNamedNodeMap.itemsNScCs"t|tƒr||jkS||jkSdSr%)Ú isinstanceÚstrr¶r·rjr r r Ú __contains__ûs  zNamedNodeMap.__contains__cCs |j ¡Sr%)r¶rÐr r r r rÐszNamedNodeMap.keyscCs |j ¡Sr%)r·rÐr r r r ÚkeysNSszNamedNodeMap.keysNScCs |j ¡Sr%)r¶rÔr r r r rÔszNamedNodeMap.valuesNcCs|j ||¡Sr%©r¶Úget)r r’r®r r r rÜ szNamedNodeMap.getcCs:|jt|ddƒkrdSt|ƒt|ƒkt|ƒt|ƒkSdS)Nr¶r)r¶ÚgetattrÚidrbr r r Ú_cmpszNamedNodeMap._cmpcCs| |¡dkSr+©rßrbr r r Ú__eq__szNamedNodeMap.__eq__cCs| |¡dkSr+ràrbr r r Ú__ge__szNamedNodeMap.__ge__cCs| |¡dkSr+ràrbr r r Ú__gt__szNamedNodeMap.__gt__cCs| |¡dkSr+ràrbr r r Ú__le__szNamedNodeMap.__le__cCs| |¡dkSr+ràrbr r r Ú__lt__!szNamedNodeMap.__lt__cCs"t|tƒr|j|S|j|SdSr%)r×r3r·r¶)r Úattname_or_tupler r r Ú __getitem__$s  zNamedNodeMap.__getitem__cCsvt|tƒrRz|j|}Wn0tk rHt|ƒ}|jj|_| |¡YnX||_n t|tƒsdt dƒ‚|}| |¡dS)Nz%value must be a string or Attr object) r×rØr¶rirŸrÌrXÚ setNamedItemr®Ú TypeError)r Úattnamer®rHr r r Ú __setitem__+s   zNamedNodeMap.__setitem__cCs(z |j|WStk r"YdSXdSr%)r¶ri©r r’r r r Ú getNamedItem:s zNamedNodeMap.getNamedItemcCs,z|j||fWStk r&YdSXdSr%)r·ri©r r~rƒr r r ÚgetNamedItemNS@szNamedNodeMap.getNamedItemNScCsX| |¡}|dk rJt|jƒ|j|j=|j|j|jf=t|dƒrFd|_ |St j   ¡‚dS©Nr¤) rírArÌr¶r—r·r~rƒrqr¤r6r7r?©r r’Únr r r ÚremoveNamedItemFs    zNamedNodeMap.removeNamedItemcCsZ| ||¡}|dk rLt|jƒ|j|j|jf=|j|j=t|dƒrHd|_ |St j   ¡‚dSrð) rïrArÌr·r~rƒr¶r—rqr¤r6r7r?©r r~rƒròr r r ÚremoveNamedItemNSRs    zNamedNodeMap.removeNamedItemNScCstt|tƒs&tj dt|ƒt|ƒf¡‚|j |j¡}|r@|  ¡||j|j<||j |j |j f<|j |_t|jƒ|SrI)r×rŸr6r7r8r9r¶rÜr’rQr·r~rƒrÌr¤rA)r rHrnr r r rè^s ÿ  zNamedNodeMap.setNamedItemcCs | |¡Sr%)rè©r rHr r r ÚsetNamedItemNSkszNamedNodeMap.setNamedItemNScCs||}t|jƒ| ¡dSr%)rAr¤rQ)r rærHr r r Ú __delitem__ns zNamedNodeMap.__delitem__cCs|j|j|jfSr%rËr r r r Ú __getstate__sszNamedNodeMap.__getstate__cCs|\|_|_|_dSr%rË©r Ústater r r Ú __setstate__vszNamedNodeMap.__setstate__)N) r{r|r}rÆr–rÏrÓrsrÖrÙrÐrÚrÔrÜÚ__len__rßrárârãrärårçrërírïrórõrèr÷rørùrür r r r rÊÖs:     rÊZlengthz$Number of nodes in the NamedNodeMap.c@s0eZdZdZdd„Zdd„Zdd„Zdd „Zd S) ÚTypeInfo©Ú namespacer’cCs||_||_dSr%rÿ)r rr’r r r r–‚szTypeInfo.__init__cCs2|jrd|jj|j|jfSd|jj|jfSdS)Nz<%s %r (from %r)>z<%s %r>)rÚ __class__r{r’r r r r Ú__repr__†s  ÿzTypeInfo.__repr__cCs|jSr%)r’r r r r r¬�szTypeInfo._get_namecCs|jSr%)rr r r r Ú_get_namespace�szTypeInfo._get_namespaceN)r{r|r}rÆr–rr¬rr r r r rþs rþc@s eZdZdZejZdZeZ dZ ejej ej ej ejejfZeddfdd„Zdd„Zdd „Zd d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„ZeZdd„Zdd„Z d d!„Z!e!Z"d"d#„Z#d$d%„Z$d&d'„Z%d(d)„Z&d*d+„Z'd9d-d.„Z(d/d0„Z)d1d2„Z*d3d4„Z+d5d6„Z,d7d8„Z-dS):ÚElement) rXr:r�r—rr~r£r'r¶r·rCrDNrcCsBd|_||_|_||_||_tƒ|_d|_|_d|_ d|_ dSr%) r:r�r—rr~rwr'rCrDr¶r·)r r�r~rrƒr r r r–¦s  zElement.__init__cCs|jdkri|_i|_dSr%)r¶r·r r r r Ú_ensure_attributesºs zElement._ensure_attributescCs4z|jWStk r.|j dd¡dYSXdSr§)r£rhr�r©r r r r ra¿szElement._get_localNamecCs|jSr%©r�r r r r Ú _get_tagNameÅszElement._get_tagNamecCs@|jdk r&t|j ¡ƒD] }| ¡qd|_d|_t |¡dSr%)r¶rrrÔrQr·r )r Úattrr r r rQÈs   zElement.unlinkcCs8|jdkrdSz|j|jWStk r2YdSXdSr)r¶r®ri)r rêr r r Ú getAttributeÐs  zElement.getAttributecCs<|jdkrdSz|j||fjWStk r6YdSXdSr)r·r®rirîr r r ÚgetAttributeNSØs  zElement.getAttributeNScCsV| |¡}|dkr4t|ƒ}||_|j|_| |¡n||jkrR||_|jrRt|ƒdSr%)ÚgetAttributeNoderŸr®rXÚsetAttributeNoder¾rA)r rêr®rr r r Ú setAttributeàs   zElement.setAttributecCs€t|ƒ\}}| ||¡}|dkrHt||||ƒ}||_|j|_| |¡n4||jkrf||_|jrft|ƒ|j|kr|||_||_ dSr%) Ú_nssplitÚgetAttributeNodeNSrŸr®rXr r¾rArr—)r r~Ú qualifiedNamer®rÚ localnamerr r r ÚsetAttributeNSìs     zElement.setAttributeNScCs|jdkrdS|j |¡Sr%rÛ)r Úattrnamer r r r ýs zElement.getAttributeNodecCs|jdkrdS|j ||f¡Sr%)r·rÜrîr r r rs zElement.getAttributeNodeNScCsš|jd|fkrtj d¡‚| ¡|j |jd¡}|dk rD| |¡|j  |j |j fd¡}|dk rt||k rt| |¡t ||ƒ||k rŠ|S||k r–|SdS)Nzattribute node already owned) r¤r6r7ZInuseAttributeErrrr¶rÜr’ÚremoveAttributeNoder·r~rƒÚ_set_attribute_node)r rZold1Zold2r r r r s    zElement.setAttributeNodecCsP|jdkrtj ¡‚z|j|}Wntk r@tj ¡‚YnX| |¡dSr%)r·r6r7r?r¶rir)r r’rr r r ÚremoveAttributes  zElement.removeAttributecCsT|jdkrtj ¡‚z|j||f}Wntk rDtj ¡‚YnX| |¡dSr%)r·r6r7r?rir)r r~rƒrr r r ÚremoveAttributeNS%s  zElement.removeAttributeNScCs^|dkrtj ¡‚z|j|jWntk r@tj ¡‚YnXt|ƒ| ¡|j|_|Sr%) r6r7r?r¶r’rirArQrXrör r r r.s zElement.removeAttributeNodecCs|jdkrdS||jkS©NF©r¶rìr r r Ú hasAttribute>s zElement.hasAttributecCs|jdkrdS||f|jkSr)r·rîr r r ÚhasAttributeNSCs zElement.hasAttributeNScCst||tƒƒSr%©r�rwrìr r r ÚgetElementsByTagNameHszElement.getElementsByTagNamecCst|||tƒƒSr%©r”rwrîr r r ÚgetElementsByTagNameNSKs ÿzElement.getElementsByTagNameNScCsd|jt|ƒfS)Nz)r�rÞr r r r rOszElement.__repr__rcCsü| |d|j¡| ¡}| ¡D],}| d|¡t|||jƒ| d¡q$|jrê| d¡t|jƒdkr |jdjt j t j fkr |jd  |ddd¡n4| |¡|jD]}|  |||||¡q°| |¡| d|j|f¡n| d |¡dS) Nrˆz %s="r‰rŠr1rrz%sz/>%s) rŒr�Ú_get_attributesrÐr�r®r'rÎrr rOršr)r r$r"Ú addindentr#rÍZa_namerHr r r rRs*    ÿÿ   zElement.writexmlcCs| ¡t|j|j|ƒSr%)rrÊr¶r·r r r r r mszElement._get_attributescCs|jr dSdSdSr„rr r r r Ú hasAttributesqszElement.hasAttributescCs| |¡}| |¡dSr%)r ÚsetIdAttributeNode)r r’ÚidAttrr r r ÚsetIdAttributeys zElement.setIdAttributecCs| ||¡}| |¡dSr%)rr#)r r~rƒr$r r r ÚsetIdAttributeNS}s zElement.setIdAttributeNScCsj|dks| |j¡stj ¡‚t|ƒdk r4tj ¡‚|jsfd|_|jd7_|j j d7_ t |ƒdS)NTr1) rdr¤r6r7r?Ú_get_containing_entrefÚNoModificationAllowedErrr¸r¹rXrºrA)r r$r r r r#�s   zElement.setIdAttributeNode)rrr).r{r|r}rÆr rSrr˜rÂrÉr¹rœr�rOršr›r5rr–rrarrQr r r rr rr ZsetAttributeNodeNSrrrZremoveAttributeNodeNSrrrrrrr r"r%r&r#r r r r r•sTûÿ     rr™z*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.cCs8t|ƒ| ¡||j|j<||j|j|jf<||_dSr%)rArr¶r’r·r~rƒr¤)Úelementrr r r r’s  rc@sbeZdZdZdZeƒZdZdZdd„Z dd„Z dd„Z d d „Z d d „Z d d„Zdd„Zdd„ZdS)Ú Childlessr NcCsdSr%r r r r r r,¨szChildless._get_firstChildcCsdSr%r r r r r r/«szChildless._get_lastChildcCstj |jd¡‚dS)Nz nodes cannot have children©r6r7r8r—rör r r r<®sÿzChildless.appendChildcCsdSrr r r r r r(²szChildless.hasChildNodescCstj |jd¡‚dS©Nz nodes do not have childrenr+©r rErFr r r r4µsÿzChildless.insertBeforecCstj |jd¡‚dSr,)r6r7r?r—rNr r r r;¹sÿzChildless.removeChildcCsdSr%r r r r r rT½szChildless.normalizecCstj |jd¡‚dSr,r+©r rErKr r r rLÁsÿzChildless.replaceChild)r{r|r}rÆr™Z EmptyNodeListr'r€r‚r,r/r<r(r4r;rTrLr r r r r*�sr*c@s\eZdZejZdZdd„Zdd„Zdd„Z e ee ƒZ dd „Z d d „Z e e e ƒZdd d„ZdS)ÚProcessingInstruction©ÚtargetrPcCs||_||_dSr%r0)r r1rPr r r r–ÊszProcessingInstruction.__init__cCs|jSr%©rPr r r r Ú_get_nodeValueÏsz$ProcessingInstruction._get_nodeValuecCs ||_dSr%r2r­r r r Ú_set_nodeValueÑsz$ProcessingInstruction._set_nodeValuecCs|jSr%©r1r r r r Ú _get_nodeNameÖsz#ProcessingInstruction._get_nodeNamecCs ||_dSr%r5r­r r r Ú _set_nodeNameØsz#ProcessingInstruction._set_nodeNamercCs| d||j|j|f¡dS)Nz %s%s)rŒr1rP©r r$r"r!r#r r r rÜszProcessingInstruction.writexmlN)rrr)r{r|r}r rœrrÆr–r3r4rÈr˜r6r7r—rr r r r r/Æs  r/c@sreZdZdZdd„Zdd„ZeZdd„Zdd „Ze eeƒZ Z d d „Z d d „Z dd„Zdd„Zdd„Zdd„ZdS)Ú CharacterData)Ú_datarXr:rDrCcCs,d|_|_d|_|_d|_t |¡dSr)rXr:rDrCr:r r–r r r r r–ãs  zCharacterData.__init__cCs t|jƒSr%)rÎrPr r r r rÏészCharacterData._get_lengthcCs|jSr%©r:r r r r Ú _get_dataíszCharacterData._get_datacCs ||_dSr%r;©r rPr r r Ú _set_dataïszCharacterData._set_datacCs6|j}t|ƒdkrd}nd}d|jj|dd…|fS)Né z...rzr)rPrÎrr{)r rPZ dotdotdotr r r rôs  ÿzCharacterData.__repr__cCsT|dkrtj d¡‚|t|jƒkr.tj d¡‚|dkrBtj d¡‚|j|||…S©Nrúoffset cannot be negativeú#offset cannot be beyond end of dataúcount cannot be negative©r6r7Ú IndexSizeErrrÎrP©r ÚoffsetÚcountr r r Ú substringDataýs   zCharacterData.substringDatacCs|j||_dSr%r2)r Úargr r r Ú appendDataszCharacterData.appendDatacCsZ|dkrtj d¡‚|t|jƒkr.tj d¡‚|rVd|jd|…||j|d…f|_dS)NrrArBú%s%s%srD)r rGrJr r r Ú insertData s    ÿzCharacterData.insertDatacCsl|dkrtj d¡‚|t|jƒkr.tj d¡‚|dkrBtj d¡‚|rh|jd|…|j||d…|_dSr@rDrFr r r Ú deleteDatas   zCharacterData.deleteDatacCsr|dkrtj d¡‚|t|jƒkr.tj d¡‚|dkrBtj d¡‚|rnd|jd|…||j||d…f|_dS)NrrArBrCrLrD)r rGrHrJr r r Ú replaceDatas    ÿzCharacterData.replaceDataN)r{r|r}rÆr–rÏrýr<r>rÈrPr˜rrIrKrMrNrOr r r r r9às    r9zLength of the string data.c@sHeZdZdZejZdZdZdd„Z ddd„Z d d „Z d d „Z d d„Z dS)r¥r z#textNcCs’|dks|t|jƒkr"tj d¡‚| ¡}|j|d…|_|j|_|j}|jr~||jj kr~|dkrp|j  |¡n|j  ||¡|jd|…|_|S)Nrzillegal offset value) rÎrPr6r7rErrXrCr:r'r<r4)r rGZnewTextÚnextr r r Ú splitText1s zText.splitTextrcCst|d||j|fƒdS)NrL)r�rPr8r r r r@sz Text.writexmlcCs„|jg}|j}|dk rB|jtjtjfkrB| d|j¡|j}qqBq|j}|dk rz|jtjtjfkrz| |j¡|j}qHqzqHd  |¡S)Nrr) rPrDrr rOršrBrCrRÚjoin)r rUròr r r Ú_get_wholeTextEs zText._get_wholeTextcCsž|j}|j}|dk r@|jtjtjfkr@|j}| |¡|}q q@q |j}|sT| |¡|dk rˆ|jtjtjfkrˆ|j}| |¡|}qTqˆqT|r–||_|SdSdSr%) r:rDrr rOršr;rCrP)r Zcontentr‘ròrPr r r ÚreplaceWholeTextWs*   zText.replaceWholeTextcCsF|j ¡rdSt|ƒ}|dkr"dS|j |¡}|dkr:dS| ¡SdSr)rPÚstripÚ_get_containing_elementrXr¼ÚisElementContent)r r»rÀr r r Ú!_get_isWhitespaceInElementContentss  z&Text._get_isWhitespaceInElementContent)rrr)r{r|r}rÆr rOrr—r™rQrrSrTrXr r r r r¥*s r¥ZisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.Z wholeTextz.The text of all logically-adjacent text nodes.cCs*|j}|dk r&|jtjkr|S|j}qdSr%)r:rr rS©rHrGr r r rV†s  rVcCs*|j}|dk r&|jtjkr|S|j}qdSr%)r:rr r›rYr r r r'Žs  r'c@s(eZdZejZdZdd„Zddd„ZdS) ÚCommentz#commentcCst |¡||_dSr%)r9r–r:r=r r r r–›s zComment.__init__rcCs,d|jkrtdƒ‚| d||j|f¡dS)Nz--z%'--' is not allowed in a comment nodez %s%s)rPr>rŒr8r r r rŸs zComment.writexmlN)rrr) r{r|r}r r�rr—r–rr r r r rZ—srZc@s$eZdZdZejZdZddd„ZdS)Ú CDATASectionr z#cdata-sectionrcCs,|j d¡dkrtdƒ‚| d|j¡dS)Nz]]>rz$']]>' not allowed in a CDATA sectionz)rPÚfindr>rŒr8r r r r«szCDATASection.writexmlN)rrr) r{r|r}rÆr ršrr—rr r r r r[¥sr[c@szeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„ZdS)ÚReadOnlySequentialNamedNodeMap©Ú_seqr cCs ||_dSr%r^)r Úseqr r r r–´sz'ReadOnlySequentialNamedNodeMap.__init__cCs t|jƒSr%©rÎr_r r r r rý¸sz&ReadOnlySequentialNamedNodeMap.__len__cCs t|jƒSr%rar r r r rÏ»sz*ReadOnlySequentialNamedNodeMap._get_lengthcCs"|jD]}|j|kr|SqdSr%)r_r—rñr r r rí¾s  z+ReadOnlySequentialNamedNodeMap.getNamedItemcCs,|jD] }|j|kr|j|kr|SqdSr%)r_r~rƒrôr r r rïÃs z-ReadOnlySequentialNamedNodeMap.getNamedItemNScCs4t|tƒr|j|Ž}n | |¡}|dkr0t|ƒ‚|Sr%)r×r3rïríri)r Z name_or_tuplerHr r r rçÈs    z*ReadOnlySequentialNamedNodeMap.__getitem__cCs4|dkr dSz |j|WStk r.YdSXdSr+)r_rÑrÒr r r rÓÑs  z#ReadOnlySequentialNamedNodeMap.itemcCstj d¡‚dS©Nz"NamedNodeMap instance is read-only©r6r7r(rìr r r róÙsÿz.ReadOnlySequentialNamedNodeMap.removeNamedItemcCstj d¡‚dSrbrcrîr r r rõÝsÿz0ReadOnlySequentialNamedNodeMap.removeNamedItemNScCstj d¡‚dSrbrcrör r r rèásÿz+ReadOnlySequentialNamedNodeMap.setNamedItemcCstj d¡‚dSrbrcrör r r r÷åsÿz-ReadOnlySequentialNamedNodeMap.setNamedItemNScCs|jgSr%r^r r r r rùész+ReadOnlySequentialNamedNodeMap.__getstate__cCs|d|_dSr+r^rúr r r rüìsz+ReadOnlySequentialNamedNodeMap.__setstate__N)r )r{r|r}rÆr–rýrÏrírïrçrÓrórõrèr÷rùrür r r r r]±s  r]z&Number of entries in the NamedNodeMap.c@s(eZdZdZdd„Zdd„Zdd„ZdS) Ú Identified©ÚpublicIdÚsystemIdcCs||_||_dSr%re)r rfrgr r r Ú_identified_mixin_initøsz!Identified._identified_mixin_initcCs|jSr%)rfr r r r Ú _get_publicIdüszIdentified._get_publicIdcCs|jSr%)rgr r r r Ú _get_systemIdÿszIdentified._get_systemIdN)r{r|r}rÆrhrirjr r r r rdósrdc@sHeZdZejZdZdZdZdZ dZ dd„Z dd„Z dd„Z d d d „ZdS) Ú DocumentTypeNcCs2tƒ|_tƒ|_|r&t|ƒ\}}||_|j|_dSr%)r]ÚentitiesÚ notationsrr’r—)r rrrr r r r– s  zDocumentType.__init__cCs|jSr%)ÚinternalSubsetr r r r Ú_get_internalSubsetsz DocumentType._get_internalSubsetcCsî|jdkrætdƒ}|j|_|j|_tjjj}|rÔg|j_ g|j _ |j j D]2}t |j|j |j ƒ}|j j  |¡| |||¡qH|jj D]N}t|j|j |j |jƒ}|j|_|j|_|j|_|jj  |¡| |||¡q„| |||¡|SdSdSr%)rXrkr’r—r6r7ÚUserDataHandlerÚ NODE_CLONEDrlr_rmÚNotationrfrgrRrvÚEntityÚ notationNameÚactualEncodingrr_)r rYÚclonertròÚnotationÚeÚentityr r r rZs0    ÿzDocumentType.cloneNodercCsŽ| d¡| |j¡|jr8| d||j||jf¡n|jrR| d||jf¡|jdk r|| d¡| |j¡| d¡| d|¡dS)Nz srsc@seZdZejZdZdd„ZdS)rrNcCs||_| ||¡dSr%)r—rh)r r’rfrgr r r r–jszNotation.__init__)r{r|r}r ržrr˜r–r r r r rrfsrrc@sHeZdZddddddddgZd d „Zd d „Zd d„Zdd„Zdd„ZdS)ÚDOMImplementation)Úcoreú1.0)r„ú2.0)r„N)r6r…)r6r†)r6N)úls-loadz3.0)r‡NcCs|dkr d}| ¡|f|jkSr)ÚlowerÚ _featuresr]r r r r\zszDOMImplementation.hasFeaturec CsÔ|r|jdk rtj d¡‚| ¡}|dko8|dko8|dk }|sP|rPtj d¡‚|r´t|ƒ\}}|dkr||dkr|tj d¡‚|r�|s�tj d¡‚| ||¡}|rª|  |¡|  |¡|rÄ||_|_ ||_ ||_ |S)Nz(doctype object owned by another DOM treezElement with no namer6z$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces) r:r6r7ÚWrongDocumentErrÚ_create_documentZInvalidCharacterErrrr´ÚcreateElementNSr<rXÚdoctyper[) r r~rr�r�Zadd_root_elementrrr)r r r ÚcreateDocuments>ÿÿþ  ÿ ÿ    z DOMImplementation.createDocumentcCst|ƒ}||_||_|Sr%)rkrfrg)r rrfrgr�r r r ÚcreateDocumentType¬sz$DOMImplementation.createDocumentTypecCs| |d¡r|SdSdSr%)r\rer r r rf´s zDOMImplementation.getInterfacecCstƒSr%)ÚDocumentr r r r r‹»sz"DOMImplementation._create_documentN) r{r|r}r‰r\rŽr�rfr‹r r r r rƒosù -rƒc@sXeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dd„Z dS)Ú ElementInforcCs ||_dSr%rrìr r r r–ÉszElementInfo.__init__cCstSr%©r©r Zanamer r r rÄÌszElementInfo.getAttributeTypecCstSr%r’rîr r r rÃÏszElementInfo.getAttributeTypeNScCsdSrr r r r r rWÒszElementInfo.isElementContentcCsdSrr r r r r ÚisEmptyÕszElementInfo.isEmptycCsdSrr r“r r r r¾ÚszElementInfo.isIdcCsdSrr rîr r r r½ÞszElementInfo.isIdNScCs|jSr%rr r r r rùâszElementInfo.__getstate__cCs ||_dSr%rrúr r r rüåszElementInfo.__setstate__N) r{r|r}rÆr–rÄrÃrWr”r¾r½rùrür r r r r‘¾s r‘cCs>|jtjkr|j ¡d|_nt|ƒr:|jj ¡d|j_dSr%)rr rÚ _id_cacheÚclearÚ_id_search_stackr†rXr…r r r rAès    rAc@sreZdZdZejejejejfZ e ƒZ ej Z dZdZdZdZdZZdZdZdZdZdZdZdZdZdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z!dd„Z"dd„Z#dd„Z$dd„Z%dd„Z&dd„Z'dd„Z(d d!„Z)d"d#„Z*d$d%„Z+d&d'„Z,d(d)„Z-d*d+„Z.d,d-„Z/d.d/„Z0d0d1„Z1d2d3„Z2d4d5„Z3d6d7„Z4d8d9„Z5d:d;„Z6dd?„Z8d@dA„Z9dBdC„Z:dIdEdF„Z;dGdH„Z|j |¡|jtj kr^|  ¡r^tj d¡‚t  ||¡S)Nr0z two document elements disallowed) rr5r6r7r8r9r:r;r rSÚ_get_documentElementr<rör r r r<3s ÿ   ÿÿzDocument.appendChildcCsVz|j |¡Wntk r.tj ¡‚YnXd|_|_d|_|j |krRd|_ |Sr%) r'rMr>r6r7r?rCrDr:ÚdocumentElementrNr r r r;Cs  zDocument.removeChildcCs$|jD]}|jtjkr|SqdSr%)r'rr rSrör r r r¢Os  zDocument._get_documentElementcCs(|jdk r|j ¡d|_t |¡dSr%)r�rQr r r r r rQTs  zDocument.unlinkcCs’|sdS|j ddd¡}|j|_|j|_|j|_|jD]B}t|||ƒ}|j |¡|jt j kr`n|jt j krr||_ ||_ q6| tjjj||¡|Sr%)r[rŽrržr_r'rWrRrr rr{r�r:rvr6r7rprq)r rYrvròZ childcloner r r rZZs&      ÿzDocument.cloneNodecCstƒ}||_|Sr%)r•rX)r ror r r ÚcreateDocumentFragmentoszDocument.createDocumentFragmentcCst|ƒ}||_|Sr%)rrX)r r�rxr r r Ú createElementtszDocument.createElementcCs(t|tƒstdƒ‚tƒ}||_||_|S©Nznode contents must be a string)r×rØrér¥rPrX)r rPÚtr r r ÚcreateTextNodeys  zDocument.createTextNodecCs(t|tƒstdƒ‚tƒ}||_||_|Sr¦)r×rØrér[rPrX©r rPrGr r r ÚcreateCDATASection�s  zDocument.createCDATASectioncCst|ƒ}||_|Sr%)rZrXr©r r r Ú createComment‰szDocument.createCommentcCst||ƒ}||_|Sr%)r/rX)r r1rPÚpr r r ÚcreateProcessingInstructionŽs z$Document.createProcessingInstructioncCst|ƒ}||_d|_|Sr)rŸrXr®)r r¦Úar r r ÚcreateAttribute“szDocument.createAttributecCs"t|ƒ\}}t|||ƒ}||_|Sr%)rrrX)r r~rrrƒrxr r r rŒ™s  zDocument.createElementNScCs*t|ƒ\}}t||||ƒ}||_d|_|Sr)rrŸrXr®)r r~rrrƒr®r r r ÚcreateAttributeNSŸs  zDocument.createAttributeNScCst||||ƒ}||_|Sr%)rsrX)r r’rfrgrtrxr r r Ú_create_entity©szDocument._create_entitycCst|||ƒ}||_|Sr%)rrrX)r r’rfrgròr r r Ú_create_notation®s zDocument._create_notationcCs’||jkr|j|S|js$|js$dS|j}|dkrB|jg}||_n|sJdSd}|�rŽ| ¡}| dd„|jDƒ¡| |¡}|�rB|j   ¡D]²}|j rÐ|  |j |j ¡rÎ||j|j<|j|krÂ|}n |jsÎ�q€qŒ| |j¡�r ||j|j<|j|krú|}n|j�s>�q€qŒ|jrŒ||j|j<|j|k�r.|}qŒ|jdkrŒ�q€qŒn>|j�r€|j   ¡D]*}|j�rT||j|j<|j|k�rT|}�qT|dk rN�qŽqN|S)NcSsg|]}|jtkr|‘qSr )rr@)Ú.0rVr r r Ú Çs ÿz+Document.getElementById..r1)r•r˜rºr—r£ÚpopÚextendr'r¼r™rÔr~r½rƒr®r¹r¾r’r¸)r rÞÚstackÚresultrHrÀrr r r ÚgetElementById³sZ              zDocument.getElementByIdcCst||tƒƒSr%rrìr r r ríszDocument.getElementsByTagNamecCst|||tƒƒSr%rrîr r r rðs ÿzDocument.getElementsByTagNameNScCs|j ||¡Sr%)r[r\r]r r r r`ôszDocument.isSupportedcCs>|jtjkrtj d¡‚n|jtjkr2tj d¡‚t|||ƒS)Nzcannot import document nodesz!cannot import document type nodes)rr rr6r7ÚNotSupportedErrr{rW)r rHrYr r r Ú importNode÷s    zDocument.importNodercCsJ|dkr| d|¡n| d||f¡|jD]}| ||||¡q0dS)Nzz%%s)rŒr'r)r r$r"r!r#rrHr r r rþsÿ zDocument.writexmlcCsJ|j|k r tj d||jf¡‚|jtjtjfkr>tj d¡‚|t kr¶d|kr€|  dd¡\}}|dkr´|tjj kr´tj  d¡‚q¾|dkr¬|tjj kr¬|jtjkr¬tj  d¡‚d}|}nd}d}|jtjkrê|j }|dk rî|j}| |¡nd}||_||_||_||_|jtjk�r||_n*||_|dk �rF| |¡|�rF| |¡|S)Nz?cannot rename nodes from other documents; expected %s, found %sz8renameNode() only applies to element and attribute nodesr¨r1r³zillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rXr6r7rŠrr rSrÇrºrr©rr´r¤r¸rrr£r~r—r�r’r r#)r ròr~r’rrƒr)Zis_idr r r Ú renameNode sb ÿÿÿ ÿÿ ÿ þÿ     zDocument.renameNode)rrrN)=r{r|r}rÆr rSrœr�r{r5rƒr[rrr—r˜r™r:rDrCrurržr_r rœršrºr–r¼r}r™r›rr�rŸr¡r�r<r;r¢rQrZr¤r¥r¨rªr«r­r¯rŒr°r±r²r¹rrr`r»rr¼r r r r r�ðsjÿ   : r�r£z#Top-level element of this document.c CsÆ|j |¡rtjjj}n tjjj}|jtj kr¤|  |j |j ¡}|j  ¡D]0}| |j |j |j¡| |j |j¡}|j|_qH|r |jD]}t|||ƒ}| |¡q„�n|jtjkrâ| ¡}|rÞ|jD]}t|||ƒ}| |¡qÂ�nÆ|jtjkrþ| |j¡}�nª|jtjk�r| |j¡}�nŒ|jtjk�r>| |j |j¡}�nj|jtj!k�r\| "|j¡}�nL|jtj#k�rŒ| $|j |j ¡}d|_|j|_�n|jtj%k�r”tjjj}|j& '|j(|j)|j*¡}||_|�r¨g|j+_,g|j-_,|j-j,D]F} t.| j | j)| j*ƒ} || _|j-j, /| ¡t0| dƒ�rÞ|  1|| | ¡�qÞ|j+j,D]b} t2| j | j)| j*| j3ƒ} | j4| _4| j5| _5| j6| _6|| _|j+j, /| ¡t0| dƒ�r.|  1|| | ¡�q.ntj 7dt8|ƒ¡‚t0|dƒ�rÂ| 1|||¡|S)NTrvzCannot clone node %s)9rXrdr6r7rprqZ NODE_IMPORTEDrr rSrŒr~r—r™rÔrr®rrƒrªr'rWr<r2r¤rOr¨rPršrªrœr­r1r�r«rÇr°r{r[r�r’rfrgrlr_rmrrrRrqrvrsrtrurr_rºr9) rHrYZnewOwnerDocumentrtrvrr®rVrGròrwrxryr r r rWBsŠ    ÿ       ÿÿ  ÿ   ÿ  rWcCs,| dd¡}t|ƒdkr|Sd|dfSdS)Nr¨r1ér)r©rÎ)rZfieldsr r r r”s  rcCs,|||Ž}| ¡\}}| |¡| ¡|Sr%)ZgetEventZ expandNoder–)ÚfuncÚargsÚkwargsZeventsZtoktypeZrootNoder r r Ú_do_pulldom_parseœs    rÁcCsH|dkr"|s"ddlm}| |¡Sddlm}t|j|f||dœƒSdS)Nr©Ú expatbuilder©Úpulldom)ÚparserÚbufsize)Úxml.domrÃÚparserÅrÁ)ÚfilerÆrÇrÃrÅr r r rÉ£s     ÿrÉcCsB|dkrddlm}| |¡Sddlm}t|j|fd|iƒSdS)NrrÂrÄrÆ)rÈrÃÚ parseStringrÅrÁ)ÚstringrÆrÃrÅr r r rË­s    ÿrËcCs@|r:t|tƒrt |¡}|D]\}}tj ||¡sdSqtjSr%)r×rØrZ_parse_feature_stringr�r[r\)ZfeaturesÚfÚvr r r ÚgetDOMImplementation·s   rÏ)NN)N)N)6rrÈr6rrrrZxml.dom.minicompatZxml.dom.xmlbuilderrrr7r rSr›r@Z defpropertyrJr†r�r�r”r•rŸÚobjectrÊZ AttributeListrþrÂrrr*r/r9r¥rVr'rZr[r]rdrkrsrrrƒr‘rAr�rWrrÁrÉrËrÏr r r r Úsšÿv  y$ÿ xÿÿ )GUÿÿ  >ÿ<( O*PÿR