dompurify 3.4.14 → 3.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"purify.min.js","sources":["../src/utils.ts","../src/tags.ts","../src/attrs.ts","../src/regexp.ts","../src/purify.ts"],"sourcesContent":[null,null,null,null,null],"names":["entries","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","arrayIsArray","isArray","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","numberToString","Number","booleanToString","Boolean","bigintToString","BigInt","symbolToString","Symbol","objectHasOwnProperty","hasOwnProperty","objectToString","regExpTest","RegExp","test","typeErrorCreate","TypeError","_len4","_key4","lastIndex","_len3","_key3","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","clone","object","newObject","_ref2","_ref3","_slicedToArray","property","value","constructor","lookupGetter","prop","desc","get","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","LITERAL_TEXT_ELEMENT_NAMES","LITERAL_TEXT_ELEMENTS","LITERAL_TEXT_CLOSE","map","name","getGlobal","window","_resolveSetOption","cfg","key","fallback","options","base","transform","_resolveObjectOption","makeFallback","undefined","purify","createDOMPurify","DOMPurify","root","version","VERSION","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","_readNodeType","node","_readNodeName","nodeName","template","createElement","content","ownerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","createHTML","_getDefaultTrustedTypesPolicy","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createScriptURL","scriptUrl","_","console","warn","_createTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_forceRemove","removeChild","_stripAttributeNode","attribute","removeAttributeNode","removeAttribute","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","child","attributes","i","_removeAttribute","attr","getAttributeNode","from","setAttribute","_stripDisallowedAttributes","stack","_isPatchLinkageAttribute","lcName","lcTag","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions","_node$querySelectorAl","normalize","walker","currentNode","nextNode","data","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","textContent","hasChildNodes","_isNode","_executeHooks","hook","_matchesNameCheck","check","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_handleHookDetachedNode","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","parentNode","hoisted","_sanitizeDisallowedNode","_isValidAttribute","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","setAttributeNS","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","item","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","appendChild","firstChild","walkRoot","nodeIterator","entry","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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AEjCA,GACiB,iBAAVA,GACPA,EAAMC,cAAgBzF,OAEtBmF,EAAUI,GAAYN,EAAMO,GAE5BL,EAAUI,GAAYC,EAG5B,CAEA,OAAOL,CACT,CAmEA,SAASO,EACPR,EACAS,GAEA,KAAkB,OAAXT,GAAiB,CACtB,MAAMU,EAAOxF,EAAyB8E,EAAQS,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOpE,EAAQmE,EAAKC,KAGtB,GAA0B,mBAAfD,EAAKJ,MACd,OAAO/D,EAAQmE,EAAKJ,MAExB,CAEAN,EAAS/E,EAAe+E,EAC1B,CAMA,OAJA,WACE,OAAO,IACT,CAGF,CC1RO,MAAMY,EAAOzF,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGW0F,EAAM1F,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2F,EAAa3F,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4F,EAAgB5F,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6F,EAAS7F,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8F,EAAmB9F,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW+F,EAAO/F,EAAO,CAAC,UC1RfyF,EAAOzF,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,UAGW0F,EAAM1F,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,oBACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,iBACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,mBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,gBACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGW6F,EAAS7F,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA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"}
1
+ {"version":3,"file":"purify.min.js","names":["entries","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayIndexOf","indexOf","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySlice","slice","arraySplice","splice","arrayIsArray","isArray","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","stringTrim","trim","numberToString","Number","booleanToString","Boolean","bigintToString","BigInt","symbolToString","Symbol","objectHasOwnProperty","hasOwnProperty","objectToString","regExpTest","RegExp","test","typeErrorCreate","unconstruct","TypeError","lastIndex","_len3","_key3","_len4","_key4","addToSet","set","array","transformCaseFunc","undefined","l","element","lcElement","cleanArray","index","isPropertyExist","clone","object","newObject","_ref2","_ref3","_slicedToArray","property","value","constructor","stringifyValue","valueAsRecord","valueToString","lookupGetter","stringified","prop","desc","get","fallbackValue","isRegex","_unused","freeze","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","freeze","html","svg","mathMl","xml","seal","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","TAGS","ATTRS","EXPRESSIONS","addToSet","clone","entries","freeze","seal","arrayForEach","arrayIsArray","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringMatch","stringReplace","stringToLowerCase","stringToString","stringIndexOf","stringTrim","regExpTest","isRegex","typeErrorCreate","lookupGetter","create","objectHasOwnProperty","stringifyValue","NODE_TYPE","element","attribute","text","cdataSection","entityReference","entityNode","processingInstruction","comment","document","documentType","documentFragment","notation","LITERAL_TEXT_ELEMENT_NAMES","LITERAL_TEXT_ELEMENTS","LITERAL_TEXT_CLOSE","map","name","RegExp","getGlobal","window","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createHTML","html","createScriptURL","scriptUrl","_","console","warn","_createHooksMap","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","_resolveSetOption","cfg","key","fallback","options","base","transform","_resolveObjectOption","makeFallback","value","undefined","createDOMPurify","arguments","length","DOMPurify","root","version","VERSION","removed","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","prototype","cloneNode","remove","removeAttributeNode","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","_readNodeType","node","_readNodeName","nodeName","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicy","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","_createTrustedScriptURL","_getDefaultTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","createHTMLDocument","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","CUSTOM_ELEMENT","IS_ALLOWED_URI","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","svg","svgFilters","mathMl","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","xml","CUSTOM_ELEMENT_HANDLING","Object","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","transformCaseFunc","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","indexOf","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","svgDisallowed","ALL_MATHML_TAGS","mathMlDisallowed","_checkSvgNamespace","tagName","parent","parentTagName","namespaceURI","Boolean","_checkMathMlNamespace","_checkHtmlNamespace","_checkValidNamespace","_forceRemove","removeChild","_stripAttributeNode","removeAttribute","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","child","attributes","i","_removeAttribute","attr","getAttributeNode","from","setAttribute","_stripDisallowedAttributes","stack","pop","push","_isPatchLinkageAttribute","lcName","lcTag","_neutralizePatchLinkage","COMMENT_MARKUP_PROBE","data","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions","_node$querySelectorAl","normalize","walker","currentNode","nextNode","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","textContent","hasChildNodes","_isNode","_executeHooks","hook","_isUnsafeNode","firstElementChild","ELEMENT_MARKUP_PROBE","_matchesNameCheck","check","_len","args","Array","_key","_sanitizeDisallowedNode","_isBasicCustomElement","parentNode","childCount","hoisted","_forkSharedAllowlist","hookList","set","defaultSet","setConfigSet","_handleHookDetachedNode","_sanitizeElements","allowedTags","nt","FALLBACK_TAG_CLOSE","_isValidAttribute","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_setAttributeValue","setAttributeNS","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","l","initValue","recreatedNamedProp","SELF_CLOSING_TAG","cleanWrite","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","item","isElement","rootName","sr","sanitize","importedNode","returnNode","inPlace","nn","appendChild","firstChild","walkRoot","nodeIterator","entry","rootWasRemoved","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","DOCTYPE_NAME","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","index","removeHooks","removeAllHooks"],"sources":["../src/utils.ts","../src/tags.ts","../src/attrs.ts","../src/regexp.ts","../src/purify.ts"],"mappings":"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"}
package/package.json CHANGED
@@ -7,26 +7,26 @@
7
7
  "format:js": "prettier --write '{src,demos,scripts,test,website}/*.{js,ts}'",
8
8
  "commit-amend-build": "scripts/commit-amend-build.sh",
9
9
  "prebuild": "rimraf dist",
10
- "dev": "cross-env NODE_ENV=development BABEL_ENV=rollup rollup -w -c config/rollup.config.js -o dist/purify.js",
11
- "build": "npm run build:types && npm run build:rollup && npm run build:fix-types && npm run build:cleanup",
10
+ "dev": "cross-env NODE_ENV=development DOMPURIFY_BUILD_TARGET=umd rolldown -w -c config/rolldown.config.js",
11
+ "build": "npm run build:types && npm run build:rolldown && npm run build:fix-types && npm run build:cleanup",
12
12
  "build:types": "tsc -p config/tsconfig.json --outDir dist/types --declaration --emitDeclarationOnly",
13
- "build:rollup": "rollup -c config/rollup.config.js",
13
+ "build:rolldown": "rolldown -c config/rolldown.config.js",
14
14
  "build:fix-types": "node ./scripts/fix-types.js",
15
- "build:umd": "rollup -c config/rollup.config.js -f umd -o dist/purify.js",
16
- "build:umd:min": "rollup -c config/rollup.config.js -f umd -o dist/purify.min.js -p terser",
17
- "build:es": "rollup -c config/rollup.config.js -f es -o dist/purify.es.mjs",
18
- "build:cjs": "rollup -c config/rollup.config.js -f cjs -o dist/purify.cjs.js",
19
- "build:cov": "rollup -c config/rollup.coverage.config.js",
15
+ "build:umd": "cross-env DOMPURIFY_BUILD_TARGET=umd rolldown -c config/rolldown.config.js",
16
+ "build:umd:min": "cross-env DOMPURIFY_BUILD_TARGET=umd-min rolldown -c config/rolldown.config.js",
17
+ "build:es": "cross-env DOMPURIFY_BUILD_TARGET=es rolldown -c config/rolldown.config.js",
18
+ "build:cjs": "cross-env DOMPURIFY_BUILD_TARGET=cjs rolldown -c config/rolldown.config.js",
19
+ "build:cov": "rolldown -c config/rolldown.coverage.config.js",
20
20
  "build:cleanup": "rimraf dist/types",
21
21
  "bench": "node scripts/benchmark.js",
22
- "test": "cross-env NODE_ENV=test BABEL_ENV=rollup npm run lint && npm run test:jsdom && npm run test:browser -- --project=chromium",
23
- "test:jsdom": "cross-env NODE_ENV=test BABEL_ENV=rollup node test/jsdom-node-runner --dot",
24
- "test:happydom": "cross-env NODE_ENV=test BABEL_ENV=rollup node test/happydom-node-runner --dot",
22
+ "test": "cross-env NODE_ENV=test npm run lint && npm run test:jsdom && npm run test:browser -- --project=chromium",
23
+ "test:jsdom": "cross-env NODE_ENV=test node test/jsdom-node-runner --dot",
24
+ "test:happydom": "cross-env NODE_ENV=test node test/happydom-node-runner --dot",
25
25
  "test:browser": "playwright test --config config/playwright.config.js",
26
26
  "test:browser:install": "playwright install",
27
27
  "test:browser:legacy": "node test/browser/legacy-runner.js",
28
- "test:ci": "cross-env NODE_ENV=test BABEL_ENV=rollup npm run test:jsdom && npm run test:browser",
29
- "test:fuzz": "cross-env NODE_ENV=test BABEL_ENV=rollup node test/fuzz/sanitize.fast-check.js",
28
+ "test:ci": "cross-env NODE_ENV=test npm run test:jsdom && npm run test:browser",
29
+ "test:fuzz": "cross-env NODE_ENV=test node test/fuzz/sanitize.fast-check.js",
30
30
  "coverage": "rimraf .nyc_output coverage dist/purify.cov.cjs.js && npm run build:cov && cross-env NODE_ENV=test DOMPURIFY_COV=1 node test/jsdom-node-runner --dot && nyc report --reporter=html --reporter=text --report-dir=coverage",
31
31
  "verify-typescript": "node ./typescript/verify.js"
32
32
  },
@@ -123,18 +123,14 @@
123
123
  "@babel/preset-typescript": "^7.29.7",
124
124
  "@playwright/test": "^1.61.0",
125
125
  "@rollup/plugin-babel": "^7.1.0",
126
- "@rollup/plugin-node-resolve": "^16.0.3",
127
- "@rollup/plugin-replace": "^6.0.1",
128
- "@rollup/plugin-terser": "^1.0.0",
129
- "@rollup/plugin-typescript": "^12.3.0",
130
126
  "@types/estree": "^1.0.9",
131
- "@types/node": "^26.0.0",
127
+ "@types/node": "^26.6.1",
132
128
  "babel-plugin-istanbul": "^8.0.0",
133
129
  "cross-env": "^10.1.0",
134
130
  "eslint-config-prettier": "^10.1.8",
135
131
  "eslint-plugin-prettier": "^5.5.6",
136
- "fast-check": "^4.8.0",
137
- "happy-dom": "^20.10.6",
132
+ "fast-check": "^4.10.1",
133
+ "happy-dom": "^20.14.5",
138
134
  "husky": "^9.1.0",
139
135
  "jquery": "^3.6.0",
140
136
  "jsdom": "^29.1.1",
@@ -143,9 +139,8 @@
143
139
  "qunit": "^2.26.0",
144
140
  "qunit-tap": "^1.5.0",
145
141
  "rimraf": "^6.0.1",
146
- "rollup": "^4.62.2",
147
- "rollup-plugin-dts": "^6.4.1",
148
- "tslib": "^2.7.0",
142
+ "rolldown": "^1.2.9",
143
+ "rolldown-plugin-dts": "^0.28.6",
149
144
  "typescript": "^5.6.3",
150
145
  "xo": "^0.60.0"
151
146
  },
@@ -154,7 +149,7 @@
154
149
  },
155
150
  "name": "dompurify",
156
151
  "description": "DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It runs as JavaScript and works in all modern browsers, as well as in Node.js (via jsdom). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.",
157
- "version": "3.4.14",
152
+ "version": "3.4.16",
158
153
  "directories": {
159
154
  "test": "test"
160
155
  },
package/src/purify.ts CHANGED
@@ -268,6 +268,15 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
268
268
 
269
269
  const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');
270
270
  const remove = lookupGetter(ElementPrototype, 'remove');
271
+ // Clobber-safe Attr-node removal. On an HTMLFormElement a descendant named
272
+ // "removeAttributeNode" shadows the prototype method via
273
+ // [LegacyOverrideBuiltIns], so element.removeAttributeNode(attr) throws.
274
+ // Calling the cached Element.prototype method with the element as the
275
+ // receiver removes the exact live Attr node regardless of the shadowing.
276
+ const removeAttributeNode = lookupGetter(
277
+ ElementPrototype,
278
+ 'removeAttributeNode'
279
+ );
271
280
  const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');
272
281
  const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');
273
282
  const getParentNode = lookupGetter(ElementPrototype, 'parentNode');
@@ -1253,7 +1262,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1253
1262
  name: string
1254
1263
  ): void {
1255
1264
  try {
1256
- element.removeAttributeNode(attribute);
1265
+ removeAttributeNode(element, attribute);
1257
1266
  } catch (_) {
1258
1267
  try {
1259
1268
  element.removeAttribute(name);
@@ -1351,13 +1360,18 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1351
1360
 
1352
1361
  try {
1353
1362
  if (attr) {
1354
- element.removeAttributeNode(attr);
1363
+ removeAttributeNode(element, attr);
1355
1364
  } else {
1356
1365
  element.removeAttribute(name);
1357
1366
  }
1358
1367
  } catch (_) {
1359
1368
  /* Clobbered or already-detached node - best-effort fall back to a
1360
- name-based removal so the "is" handling below still runs. */
1369
+ name-based removal so the "is" handling below still runs. Note this
1370
+ fallback ASCII-lowercases its lookup key in an HTML document and so
1371
+ cannot reach a case-preserved attribute name; the cached
1372
+ removeAttributeNode() above is what removes those, and a clobbered
1373
+ form is already removed wholesale by _isClobbered() before reaching
1374
+ here. */
1361
1375
  try {
1362
1376
  element.removeAttribute(name);
1363
1377
  } catch (_) {}
@@ -1772,6 +1786,17 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1772
1786
  // canonical NamedNodeMap.
1773
1787
  element.attributes !== getAttributes(element) ||
1774
1788
  typeof element.removeAttribute !== 'function' ||
1789
+ // A form descendant named "removeAttributeNode" or "getAttributeNode"
1790
+ // shadows these Attr-node methods via [LegacyOverrideBuiltIns].
1791
+ // _removeAttribute() / _stripAttributeNode() reach for
1792
+ // element.removeAttributeNode(attr) first; when it is shadowed the call
1793
+ // throws and the name-based fallback element.removeAttribute(name)
1794
+ // ASCII-lowercases its lookup key in an HTML document, silently missing
1795
+ // a case-preserved event-handler attribute (e.g. an ONANIMATIONSTART
1796
+ // that reached the sanitizer through an XML/XHTML parse). Flag the form
1797
+ // so it is removed wholesale, exactly as for the other shadowed methods.
1798
+ typeof element.removeAttributeNode !== 'function' ||
1799
+ typeof element.getAttributeNode !== 'function' ||
1775
1800
  typeof element.setAttribute !== 'function' ||
1776
1801
  typeof element.namespaceURI !== 'string' ||
1777
1802
  typeof element.insertBefore !== 'function' ||
@@ -2181,6 +2206,14 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2181
2206
  skipped; they are removal decisions, not the hook contract. */
2182
2207
  if (removed === false) {
2183
2208
  _executeHooks(hooks.afterSanitizeElements, currentNode, null);
2209
+
2210
+ /* The hook may have detached the kept custom element. Same
2211
+ IN_PLACE hazard as the before/upon sites: neutralize the
2212
+ detached subtree before the walker skips past it (see
2213
+ _handleHookDetachedNode). */
2214
+ if (_handleHookDetachedNode(currentNode, root)) {
2215
+ return true;
2216
+ }
2184
2217
  }
2185
2218
 
2186
2219
  return removed;
@@ -2223,7 +2256,14 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2223
2256
  /* Execute a hook if present */
2224
2257
  _executeHooks(hooks.afterSanitizeElements, currentNode, null);
2225
2258
 
2226
- return false;
2259
+ /* The afterSanitizeElements hook is the documented place for
2260
+ node.remove() policies, and a detach here is invisible to every later
2261
+ pass: the iterator advances past the detached subtree, so its
2262
+ descendants are never visited, and hook-detached nodes are not in
2263
+ DOMPurify.removed, so the post-walk IN_PLACE pass does not reach them
2264
+ either. Apply the same detach-neutralization invariant as the
2265
+ before/upon sites: true (removed) if the hook detached the node. */
2266
+ return _handleHookDetachedNode(currentNode, root);
2227
2267
  };
2228
2268
 
2229
2269
  /**
@@ -2437,22 +2477,32 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2437
2477
  /**
2438
2478
  * Write a modified attribute value back onto the element. On
2439
2479
  * success, re-probe for clobbering introduced by the new value and
2440
- * remove the element when found; otherwise pop the removal entry
2441
- * recorded by the earlier _removeAttribute (long-standing pairing
2442
- * with the SANITIZE_NAMED_PROPS path - do not "fix" casually). On
2480
+ * remove the element when found; otherwise, when this writeback is the
2481
+ * recreate half of the SANITIZE_NAMED_PROPS remove-and-recreate, pop the
2482
+ * removal entry that path recorded so it does not show as removed. On
2443
2483
  * failure, remove the attribute instead.
2444
2484
  *
2485
+ * Returns true only on a clean write (the value was set and the new value
2486
+ * introduced no clobbering). The caller uses that, together with its own
2487
+ * knowledge of whether this attribute pushed a DOMPurify.removed record, to
2488
+ * decide whether to pop that record. The pop must happen ONLY for the
2489
+ * named-prop remove-and-recreate; popping on any other value change (trim,
2490
+ * template scrubbing, Trusted Types) would consume an unrelated _forceRemove
2491
+ * subtree-cleanup record and let that detached subtree keep a live event
2492
+ * handler through the IN_PLACE neutralization pass (SO-001).
2493
+ *
2445
2494
  * @param currentNode the element carrying the attribute
2446
2495
  * @param name the attribute name as present on the element
2447
2496
  * @param namespaceURI the attribute's namespace, if any
2448
2497
  * @param value the new attribute value
2498
+ * @return true if the value was written without introducing clobbering
2449
2499
  */
2450
2500
  const _setAttributeValue = function (
2451
2501
  currentNode: Element,
2452
2502
  name: string,
2453
2503
  namespaceURI: string | null,
2454
2504
  value: string
2455
- ): void {
2505
+ ): boolean {
2456
2506
  try {
2457
2507
  if (namespaceURI) {
2458
2508
  currentNode.setAttributeNS(namespaceURI, name, value);
@@ -2463,11 +2513,13 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2463
2513
 
2464
2514
  if (_isClobbered(currentNode)) {
2465
2515
  _forceRemove(currentNode);
2466
- } else {
2467
- arrayPop(DOMPurify.removed);
2516
+ return false;
2468
2517
  }
2518
+
2519
+ return true;
2469
2520
  } catch (_) {
2470
2521
  _removeAttribute(name, currentNode);
2522
+ return false;
2471
2523
  }
2472
2524
  };
2473
2525
 
@@ -2480,11 +2532,24 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2480
2532
  * @protect setAttribute
2481
2533
  *
2482
2534
  * @param currentNode to sanitize
2535
+ * @param root the current walk root
2483
2536
  */
2484
- const _sanitizeAttributes = function (currentNode: Element): void {
2537
+ // eslint-disable-next-line complexity
2538
+ const _sanitizeAttributes = function (
2539
+ currentNode: Element,
2540
+ root: Node
2541
+ ): void {
2485
2542
  /* Execute a hook if present */
2486
2543
  _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);
2487
2544
 
2545
+ /* A hook may have detached the node - the attribute hooks can detach
2546
+ exactly like the element hooks can, and the walker will not revisit
2547
+ the detached subtree. Treat it as removed and, on the IN_PLACE path,
2548
+ neutralize it (see _handleHookDetachedNode for the full rationale). */
2549
+ if (_handleHookDetachedNode(currentNode, root)) {
2550
+ return;
2551
+ }
2552
+
2488
2553
  const { attributes } = currentNode;
2489
2554
 
2490
2555
  /* Check if we have attributes; if not we might have a text node */
@@ -2520,6 +2585,16 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2520
2585
  const initValue = attrValue;
2521
2586
  let value = name === 'value' ? initValue : stringTrim(initValue);
2522
2587
 
2588
+ /* Tracks whether this specific attribute pushed a DOMPurify.removed
2589
+ record that a later _setAttributeValue() writeback is expected to pop
2590
+ back off (the SANITIZE_NAMED_PROPS remove-and-recreate below is the
2591
+ only path that does). A value that merely changed via trim, template
2592
+ scrubbing, or Trusted Types pushes no such record, so its writeback
2593
+ must NOT pop — otherwise it consumes an unrelated _forceRemove subtree
2594
+ record and that detached subtree escapes the IN_PLACE handler-
2595
+ neutralization pass (SO-001). */
2596
+ let recreatedNamedProp = false;
2597
+
2523
2598
  /* Execute a hook if present */
2524
2599
  hookEvent.attrName = lcName;
2525
2600
  hookEvent.attrValue = value;
@@ -2540,6 +2615,9 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2540
2615
  _removeAttribute(name, currentNode, attr);
2541
2616
  // Prefix the value and later re-create the attribute with the sanitized value
2542
2617
  value = SANITIZE_NAMED_PROPS_PREFIX + value;
2618
+ // This attribute owns the record just pushed; its recreate writeback
2619
+ // is the one allowed to pop it back off.
2620
+ recreatedNamedProp = true;
2543
2621
  }
2544
2622
  // Else: already prefixed, leave the attribute alone — the prefix is
2545
2623
  // itself the clobbering protection, and re-applying it is incorrect.
@@ -2598,12 +2676,30 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2598
2676
 
2599
2677
  /* Handle invalid data-* attribute set by try-catching it */
2600
2678
  if (value !== initValue) {
2601
- _setAttributeValue(currentNode, name, namespaceURI, value);
2679
+ const cleanWrite = _setAttributeValue(
2680
+ currentNode,
2681
+ name,
2682
+ namespaceURI,
2683
+ value
2684
+ );
2685
+
2686
+ /* Only the named-prop remove-and-recreate owns a DOMPurify.removed
2687
+ record to pop; a plain trim/template/Trusted-Types writeback owns
2688
+ none, so popping here would drop an unrelated subtree's cleanup
2689
+ record (SO-001). */
2690
+ if (cleanWrite && recreatedNamedProp) {
2691
+ arrayPop(DOMPurify.removed);
2692
+ }
2602
2693
  }
2603
2694
  }
2604
2695
 
2605
2696
  /* Execute a hook if present */
2606
2697
  _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);
2698
+
2699
+ /* Same detach re-check as after beforeSanitizeAttributes: this is the
2700
+ last hook that runs for the node, so a detach here would otherwise
2701
+ hand the caller a live, handler-bearing subtree. */
2702
+ _handleHookDetachedNode(currentNode, root);
2607
2703
  };
2608
2704
 
2609
2705
  /**
@@ -2626,7 +2722,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2626
2722
  _sanitizeElements(shadowNode, fragment);
2627
2723
 
2628
2724
  /* Check attributes next */
2629
- _sanitizeAttributes(shadowNode);
2725
+ _sanitizeAttributes(shadowNode, fragment);
2630
2726
 
2631
2727
  /* Deep shadow DOM detected.
2632
2728
  Realm-safe check (GHSA-hpcv-96wg-7vj8): use nodeType against the
@@ -2906,8 +3002,16 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2906
3002
  them before the main iterator runs, since the iterator does not
2907
3003
  descend into shadow trees. The walk routes every read through a
2908
3004
  cached prototype getter so clobbering descendants on a form root
2909
- cannot hide a shadow host from this pass. */
2910
- _sanitizeAttachedShadowRoots(importedNode);
3005
+ cannot hide a shadow host from this pass.
3006
+
3007
+ Traverse from `body`, not `importedNode`: when importedNode is a
3008
+ DocumentFragment, the appendChild() above moves its children into
3009
+ `body` and leaves the fragment empty, so walking importedNode would
3010
+ scan nothing and miss every attached shadow host now under `body`
3011
+ (SO-003). In the BODY/HTML branches `body === importedNode`, so this
3012
+ is equivalent there; in the element branch `body` contains the
3013
+ appended element and its descendants. `body` covers all three. */
3014
+ _sanitizeAttachedShadowRoots(body);
2911
3015
  } else {
2912
3016
  /* Exit directly if we have nothing to do */
2913
3017
  if (
@@ -2958,7 +3062,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2958
3062
  _sanitizeElements(currentNode, walkRoot);
2959
3063
 
2960
3064
  /* Check attributes next */
2961
- _sanitizeAttributes(currentNode);
3065
+ _sanitizeAttributes(currentNode, walkRoot);
2962
3066
 
2963
3067
  /* Shadow DOM detected, sanitize it.
2964
3068
  Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
@@ -2992,13 +3096,38 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2992
3096
  move-hoist covers only disallowed-tag KEEP_CONTENT removals; strip the
2993
3097
  non-allow-listed attributes off every other removed subtree (clobber,
2994
3098
  mXSS, namespace, comments, KEEP_CONTENT:false, …) so those handlers are
2995
- cancelled before any event can fire. Runs synchronously, pre-return. */
3099
+ cancelled before any event can fire. Runs synchronously, pre-return.
3100
+
3101
+ The same pass also detects the one shape the attribute strip cannot
3102
+ make safe: the in-place ROOT was itself force-removed during the walk
3103
+ (a rawtext root killed by the LITERAL_TEXT_CLOSE probe, a clobbered
3104
+ root, an mXSS-canary root, …). Such a root is detached and, for a
3105
+ rawtext element, still carries a literal `</tag>`-bearing text payload
3106
+ that `_neutralizeSubtree`'s attribute-only strip does not touch, so
3107
+ re-serialising and re-parsing the returned node re-opens the markup.
3108
+ There is no safe node to hand back, so fail closed - identical in
3109
+ spirit to the parentless-root throw in `_forceRemove` and the
3110
+ clobbered-root throw at the IN_PLACE entry. Covers every present and
3111
+ future root-kill reason in one check, on both the attribute and text
3112
+ axes. */
3113
+ let rootWasRemoved = false;
2996
3114
  arrayForEach(DOMPurify.removed, (entry) => {
2997
3115
  if (entry.element) {
3116
+ if (entry.element === dirty) {
3117
+ rootWasRemoved = true;
3118
+ }
3119
+
2998
3120
  _neutralizeSubtree(entry.element as Node);
2999
3121
  }
3000
3122
  });
3001
3123
 
3124
+ if (rootWasRemoved) {
3125
+ throw typeErrorCreate(
3126
+ 'a node selected for removal could not be safely returned; ' +
3127
+ 'refusing to sanitize in place'
3128
+ );
3129
+ }
3130
+
3002
3131
  if (SAFE_FOR_TEMPLATES) {
3003
3132
  _scrubTemplateExpressions(dirty as Element);
3004
3133
  }