ddfuzz
Deep DOM fuzzer for browser fuzzing
Techniques
- Rotating properties
- Reference fuzzing (Use After Free)
- Rotating values
- Cloning
- Freezing
- Using seed to reference objects in DOM
- Accept every URL request to allow navigation rewrites
Fuzz targets
- DOM (element tree + properties)
- Webfonts
- CSS
- Unicode
// ddfuzz
// Deep DOM fuzzer for browser fuzzing
// © Jean Pereira <counterswarm.de>
const WebSocket = require('ws');
const fs = require('fs');
const glob = require('glob');
const path = require('path');
const http = require('http');
const express = require('express');
const { execSync } = require('child_process');
const app = express();
const server = http.createServer(app);
const wss = new WebSocket.Server({ server });
const crypto = require('crypto');
const minimatch = require('minimatch');
const serverBind = 4444
const fuzzMutationCount = Math.floor(Math.random() * 6)
const enableDOMFuzz = true
const minCloneLength = Math.floor(Math.random() * 1000)
const minRemoveLength = Math.floor(Math.random() * 1000)
const minLinkLength = Math.floor(Math.random() * 1000)
const minFreezeLength = Math.floor(Math.random() * 1000)
const linesOfCode = Math.floor(Math.random() * 5000)
const maxRemovedElements = Math.floor(Math.random() * 100)
const maxElements = Math.floor(Math.random() * 100)
const webFonts = "fonts/*"
let removedVars = 0
let fuzzTarget = process.argv[2]
const elementList = [
"doctype",
"a",
"abbr",
"acronym",
"address",
"applet",
"area",
"article",
"aside",
"audio",
"b",
"base",
"basefont",
"bdi",
"bdo",
"big",
"blockquote",
"body",
"br",
"button",
"canvas",
"caption",
"center",
"cite",
"code",
"col",
"colgroup",
"data",
"datalist",
"dd",
"del",
"details",
"dfn",
"dialog",
"dir",
"div",
"dl",
"dt",
"em",
"embed",
"fieldset",
"figcaption",
"figure",
"font",
"footer",
"form",
"frame",
"frameset",
"h1 - h6",
"head",
"header",
"hr",
"html",
"i",
"iframe",
"img",
"input",
"ins",
"kbd",
"label",
"legend",
"li",
"link",
"main",
"map",
"mark",
"meta",
"meter",
"nav",
"noframes",
"noscript",
"object",
"ol",
"optgroup",
"option",
"output",
"p",
"param",
"picture",
"pre",
"progress",
"q",
"rp",
"rt",
"ruby",
"s",
"samp",
"script",
"section",
"select",
"small",
"source",
"span",
"strike",
"strong",
"style",
"sub",
"summary",
"sup",
"svg",
"table",
"tbody",
"td",
"template",
"textarea",
"tfoot",
"th",
"thead",
"time",
"title",
"tr",
"track",
"tt",
"u",
"ul",
"var",
"video",
"wbr"
]
const defaultParams = [
"0",
"1",
"'a'",
"0xffffffffffffffff",
"\"a\"",
"\"aaaaaaaaaaa\"",
"{}",
"Infinity",
"'100%'",
"'30px'",
"'20em'",
"'80vh'",
"'normal'",
"400",
"\"720px 99px\"",
"'content-box'",
"\`0px none rgb(0, 0, 0)\`",
"\`green\`",
"\"#00FF00\"",
"\`baseline\`",
"\"none 0s ease 0s 1 normal none running\"",
"2",
"\"2\"",
"99999999",
"NaN",
"yellow",
"undefined",
"null",
"true",
"false"
]
let targetProps = [
"AbortSignal.abort",
"AbortSignal.timeout",
"AudioDecoder.isConfigSupported",
"AudioEncoder.isConfigSupported",
"BarcodeDetector.getSupportedFormats",
"BluetoothUUID.canonicalUUID",
"BluetoothUUID.getCharacteristic",
"BluetoothUUID.getDescriptor",
"BluetoothUUID.getService",
"caches.delete",
"caches.has",
"caches.keys",
"caches.match",
"caches.open",
"chrome.loadTimes",
"chrome.csi",
"chrome.app",
"chrome.app.isInstalled",
"chrome.app.getDetails",
"chrome.app.getIsInstalled",
"chrome.app.installState",
"chrome.app.runningState",
"chrome.app.InstallState",
"chrome.app.InstallState.DISABLED",
"chrome.app.InstallState.INSTALLED",
"chrome.app.InstallState.NOT_INSTALLED",
"chrome.app.RunningState",
"clientInformation.getGamepads",
"clientInformation.javaEnabled",
"clientInformation.sendBeacon",
"clientInformation.vibrate",
"clientInformation.clearAppBadge",
"clientInformation.getBattery",
"clientInformation.getUserMedia",
"clientInformation.requestMIDIAccess",
"clientInformation.requestMediaKeySystemAccess",
"clientInformation.setAppBadge",
"clientInformation.webkitGetUserMedia",
"clientInformation.getInstalledRelatedApps",
"clientInformation.registerProtocolHandler",
"clientInformation.unregisterProtocolHandler",
"cookieStore.delete",
"cookieStore.get",
"cookieStore.getAll",
"cookieStore.set",
"cookieStore.addEventListener",
"cookieStore.dispatchEvent",
"cookieStore.removeEventListener",
"crypto.getRandomValues",
"crypto.randomUUID",
"customElements.define",
"customElements.get",
"customElements.upgrade",
"customElements.whenDefined",
"console.debug",
"console.error",
"console.info",
"console.log",
"console.warn",
"console.dir",
"console.dirxml",
"console.table",
"console.trace",
"console.group",
"console.groupCollapsed",
"console.groupEnd",
"console.clear",
"console.count",
"console.countReset",
"console.assert",
"console.profile",
"console.profileEnd",
"console.time",
"console.timeLog",
"console.timeEnd",
"console.timeStamp",
"console.context",
"console.createTask",
"console.memory",
"constructor.TEMPORARY",
"constructor.PERSISTENT",
"CropTarget.fromElement",
"CSS.Hz",
"CSS.Q",
"CSS.ch",
"CSS.cm",
"CSS.deg",
"CSS.dpcm",
"CSS.dpi",
"CSS.dppx",
"CSS.em",
"CSS.escape",
"CSS.ex",
"CSS.fr",
"CSS.grad",
"CSS.in",
"CSS.kHz",
"CSS.mm",
"CSS.ms",
"CSS.number",
"CSS.pc",
"CSS.percent",
"CSS.pt",
"CSS.px",
"CSS.rad",
"CSS.registerProperty",
"CSS.rem",
"CSS.s",
"CSS.supports",
"CSS.turn",
"CSS.vh",
"CSS.vmax",
"CSS.vmin",
"CSS.vw",
"CSS.highlights",
"CSS.highlights.clear",
"CSS.highlights.delete",
"CSS.highlights.entries",
"CSS.highlights.forEach",
"CSS.highlights.get",
"CSS.highlights.has",
"CSS.highlights.keys",
"CSS.highlights.set",
"CSS.highlights.values",
"CSS.cqb",
"CSS.cqh",
"CSS.cqi",
"CSS.cqmax",
"CSS.cqmin",
"CSS.cqw",
"CSS.dvb",
"CSS.dvh",
"CSS.dvi",
"CSS.dvmax",
"CSS.dvmin",
"CSS.dvw",
"CSS.lvb",
"CSS.lvh",
"CSS.lvi",
"CSS.lvmax",
"CSS.lvmin",
"CSS.lvw",
"CSS.svb",
"CSS.svh",
"CSS.svi",
"CSS.svmax",
"CSS.svmin",
"CSS.svw",
"CSS.vb",
"CSS.vi",
"CSS.paintWorklet",
"CSS.paintWorklet.addModule",
"CSSImageValue.parse",
"CSSImageValue.parseAll",
"CSSKeywordValue.parse",
"CSSKeywordValue.parseAll",
"CSSMathClamp.parse",
"CSSMathClamp.parseAll",
"CSSMathInvert.parse",
"CSSMathInvert.parseAll",
"CSSMathMax.parse",
"CSSMathMax.parseAll",
"CSSMathMin.parse",
"CSSMathMin.parseAll",
"CSSMathNegate.parse",
"CSSMathNegate.parseAll",
"CSSMathProduct.parse",
"CSSMathProduct.parseAll",
"CSSMathSum.parse",
"CSSMathSum.parseAll",
"CSSMathValue.parse",
"CSSMathValue.parseAll",
"CSSNumericValue.parse",
"CSSNumericValue.parseAll",
"CSSPositionValue.parse",
"CSSPositionValue.parseAll",
"CSSRule.STYLE_RULE",
"CSSRule.CHARSET_RULE",
"CSSRule.IMPORT_RULE",
"CSSRule.MEDIA_RULE",
"CSSRule.FONT_FACE_RULE",
"CSSRule.PAGE_RULE",
"CSSRule.NAMESPACE_RULE",
"CSSRule.KEYFRAMES_RULE",
"CSSRule.KEYFRAME_RULE",
"CSSRule.COUNTER_STYLE_RULE",
"CSSRule.SUPPORTS_RULE",
"CSSStyleValue.parse",
"CSSStyleValue.parseAll",
"CSSTransformValue.parse",
"CSSTransformValue.parseAll",
"CSSUnitValue.parse",
"CSSUnitValue.parseAll",
"CSSUnparsedValue.parse",
"CSSUnparsedValue.parseAll",
"document.adoptNode",
"document.append",
"document.captureEvents",
"document.caretRangeFromPoint",
"document.clear",
"document.close",
"document.createAttribute",
"document.createAttributeNS",
"document.createCDATASection",
"document.createComment",
"document.createDocumentFragment",
"document.createElement",
"document.createElementNS",
"document.createEvent",
"document.createExpression",
"document.createNSResolver",
"document.createNodeIterator",
"document.createProcessingInstruction",
"document.createRange",
"document.createTextNode",
"document.createTreeWalker",
"document.elementFromPoint",
"document.elementsFromPoint",
"document.evaluate",
"document.execCommand",
"document.exitFullscreen",
"document.exitPointerLock",
"document.getElementById",
"document.getElementsByClassName",
"document.getElementsByName",
"document.getElementsByTagName",
"document.getElementsByTagNameNS",
"document.getSelection",
"document.hasFocus",
"document.importNode",
"document.prepend",
"document.queryCommandEnabled",
"document.queryCommandIndeterm",
"document.queryCommandState",
"document.queryCommandSupported",
"document.queryCommandValue",
"document.querySelector",
"document.querySelectorAll",
"document.releaseEvents",
"document.replaceChildren",
"document.webkitCancelFullScreen",
"document.webkitExitFullscreen",
"document.write",
"document.writeln",
"document.exitPictureInPicture",
"document.getAnimations",
"document.appendChild",
"document.cloneNode",
"document.compareDocumentPosition",
"document.contains",
"document.getRootNode",
"document.hasChildNodes",
"document.insertBefore",
"document.isDefaultNamespace",
"document.isEqualNode",
"document.isSameNode",
"document.lookupNamespaceURI",
"document.lookupPrefix",
"document.normalize",
"document.removeChild",
"document.replaceChild",
"document.addEventListener",
"document.dispatchEvent",
"document.removeEventListener",
"DOMException.INDEX_SIZE_ERR",
"DOMException.DOMSTRING_SIZE_ERR",
"DOMException.HIERARCHY_REQUEST_ERR",
"DOMException.WRONG_DOCUMENT_ERR",
"DOMException.INVALID_CHARACTER_ERR",
"DOMException.NO_DATA_ALLOWED_ERR",
"DOMException.NO_MODIFICATION_ALLOWED_ERR",
"DOMException.NOT_FOUND_ERR",
"DOMException.NOT_SUPPORTED_ERR",
"DOMException.INUSE_ATTRIBUTE_ERR",
"DOMException.INVALID_STATE_ERR",
"DOMException.SYNTAX_ERR",
"DOMException.INVALID_MODIFICATION_ERR",
"DOMException.NAMESPACE_ERR",
"DOMException.INVALID_ACCESS_ERR",
"DOMException.VALIDATION_ERR",
"DOMException.TYPE_MISMATCH_ERR",
"DOMException.SECURITY_ERR",
"DOMException.NETWORK_ERR",
"DOMException.ABORT_ERR",
"DOMException.URL_MISMATCH_ERR",
"DOMException.QUOTA_EXCEEDED_ERR",
"DOMException.TIMEOUT_ERR",
"DOMException.INVALID_NODE_TYPE_ERR",
"DOMException.DATA_CLONE_ERR",
"DOMMatrix.fromFloat32Array",
"DOMMatrix.fromFloat64Array",
"DOMMatrix.fromMatrix",
"DOMMatrixReadOnly.fromFloat32Array",
"DOMMatrixReadOnly.fromFloat64Array",
"DOMMatrixReadOnly.fromMatrix",
"DOMPoint.fromPoint",
"DOMPointReadOnly.fromPoint",
"DOMQuad.fromQuad",
"DOMQuad.fromRect",
"DOMRect.fromRect",
"DOMRectReadOnly.fromRect",
"external.AddSearchProvider",
"external.IsSearchProviderInstalled",
"Error.stackTraceLimit",
"Event.NONE",
"Event.CAPTURING_PHASE",
"Event.AT_TARGET",
"Event.BUBBLING_PHASE",
"EventSource.CONNECTING",
"EventSource.OPEN",
"EventSource.CLOSED",
"FileReader.EMPTY",
"FileReader.LOADING",
"FileReader.DONE",
"getEventListeners.toString",
"GeolocationPositionError.PERMISSION_DENIED",
"GeolocationPositionError.POSITION_UNAVAILABLE",
"GeolocationPositionError.TIMEOUT",
"history.pushState",
"history.replaceState",
"HTMLMediaElement.NETWORK_EMPTY",
"HTMLMediaElement.NETWORK_IDLE",
"HTMLMediaElement.NETWORK_LOADING",
"HTMLMediaElement.NETWORK_NO_SOURCE",
"HTMLMediaElement.HAVE_NOTHING",
"HTMLMediaElement.HAVE_METADATA",
"HTMLMediaElement.HAVE_CURRENT_DATA",
"HTMLMediaElement.HAVE_FUTURE_DATA",
"HTMLMediaElement.HAVE_ENOUGH_DATA",
"HTMLScriptElement.supports",
"HTMLTrackElement.NONE",
"HTMLTrackElement.LOADING",
"HTMLTrackElement.LOADED",
"HTMLTrackElement.ERROR",
"indexedDB.cmp",
"indexedDB.databases",
"indexedDB.deleteDatabase",
"indexedDB.open",
"IDBKeyRange.bound",
"IDBKeyRange.lowerBound",
"IDBKeyRange.only",
"IDBKeyRange.upperBound",
"IdleDetector.requestPermission",
"ImageDecoder.isTypeSupported",
"KeyboardEvent.DOM_KEY_LOCATION_STANDARD",
"KeyboardEvent.DOM_KEY_LOCATION_LEFT",
"KeyboardEvent.DOM_KEY_LOCATION_RIGHT",
"KeyboardEvent.DOM_KEY_LOCATION_NUMPAD",
"launchQueue.setConsumer",
"localStorage.clear",
"localStorage.getItem",
"localStorage.key",
"localStorage.removeItem",
"localStorage.setItem",
"monitorEvents.toString",
"MediaError.MEDIA_ERR_ABORTED",
"MediaError.MEDIA_ERR_NETWORK",
"MediaError.MEDIA_ERR_DECODE",
"MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED",
"MediaRecorder.isTypeSupported",
"MediaSource.isTypeSupported",
"MediaSource.canConstructInDedicatedWorker",
"MutationEvent.MODIFICATION",
"MutationEvent.ADDITION",
"MutationEvent.REMOVAL",
"navigation.entries",
"navigation.reload",
"navigation.traverseTo",
"navigation.updateCurrentEntry",
"navigation.addEventListener",
"navigation.dispatchEvent",
"navigation.removeEventListener",
"navigator.getGamepads",
"navigator.javaEnabled",
"navigator.sendBeacon",
"navigator.vibrate",
"navigator.clearAppBadge",
"navigator.getBattery",
"navigator.getUserMedia",
"navigator.requestMIDIAccess",
"navigator.requestMediaKeySystemAccess",
"navigator.setAppBadge",
"navigator.webkitGetUserMedia",
"navigator.getInstalledRelatedApps",
"navigator.registerProtocolHandler",
"navigator.unregisterProtocolHandler",
"Node.ELEMENT_NODE",
"Node.ATTRIBUTE_NODE",
"Node.TEXT_NODE",
"Node.CDATA_SECTION_NODE",
"Node.ENTITY_REFERENCE_NODE",
"Node.ENTITY_NODE",
"Node.PROCESSING_INSTRUCTION_NODE",
"Node.COMMENT_NODE",
"Node.DOCUMENT_NODE",
"Node.DOCUMENT_TYPE_NODE",
"Node.DOCUMENT_FRAGMENT_NODE",
"Node.NOTATION_NODE",
"Node.DOCUMENT_POSITION_DISCONNECTED",
"Node.DOCUMENT_POSITION_PRECEDING",
"Node.DOCUMENT_POSITION_FOLLOWING",
"Node.DOCUMENT_POSITION_CONTAINS",
"Node.DOCUMENT_POSITION_CONTAINED_BY",
"Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC",
"NodeFilter.FILTER_ACCEPT",
"NodeFilter.FILTER_REJECT",
"NodeFilter.FILTER_SKIP",
"NodeFilter.SHOW_ALL",
"NodeFilter.SHOW_ELEMENT",
"NodeFilter.SHOW_ATTRIBUTE",
"NodeFilter.SHOW_TEXT",
"NodeFilter.SHOW_CDATA_SECTION",
"NodeFilter.SHOW_ENTITY_REFERENCE",
"NodeFilter.SHOW_ENTITY",
"NodeFilter.SHOW_PROCESSING_INSTRUCTION",
"NodeFilter.SHOW_COMMENT",
"NodeFilter.SHOW_DOCUMENT",
"NodeFilter.SHOW_DOCUMENT_TYPE",
"NodeFilter.SHOW_DOCUMENT_FRAGMENT",
"NodeFilter.SHOW_NOTATION",
"Notification.permission",
"Notification.maxActions",
"Notification.requestPermission",
"origin",
"performance.clearMarks",
"performance.clearMeasures",
"performance.clearResourceTimings",
"performance.getEntries",
"performance.getEntriesByName",
"performance.getEntriesByType",
"performance.mark",
"performance.measure",
"performance.now",
"performance.setResourceTimingBufferSize",
"performance.toJSON",
"performance.addEventListener",
"performance.dispatchEvent",
"performance.removeEventListener",
"PerformanceNavigation.TYPE_NAVIGATE",
"PerformanceNavigation.TYPE_RELOAD",
"PerformanceNavigation.TYPE_BACK_FORWARD",
"PerformanceNavigation.TYPE_RESERVED",
"PerformanceObserver.supportedEntryTypes",
"PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable",
"PublicKeyCredential.isConditionalMediationAvailable",
"PushManager.supportedContentEncodings",
"Range.START_TO_START",
"Range.START_TO_END",
"Range.END_TO_END",
"Range.END_TO_START",
"Response.error",
"Response.json",
"Response.redirect",
"RTCPeerConnection.generateCertificate",
"RTCRtpReceiver.getCapabilities",
"RTCRtpSender.getCapabilities",
"scheduler.postTask",
"screen.addEventListener",
"screen.dispatchEvent",
"screen.removeEventListener",
"sessionStorage.clear",
"sessionStorage.getItem",
"sessionStorage.key",
"sessionStorage.removeItem",
"sessionStorage.setItem",
"speechSynthesis.cancel",
"speechSynthesis.getVoices",
"speechSynthesis.pause",
"speechSynthesis.resume",
"speechSynthesis.speak",
"speechSynthesis.addEventListener",
"speechSynthesis.dispatchEvent",
"speechSynthesis.removeEventListener",
"styleMedia.matchMedium",
"Sanitizer.getDefaultConfiguration",
"SVGAngle.SVG_ANGLETYPE_UNKNOWN",
"SVGAngle.SVG_ANGLETYPE_UNSPECIFIED",
"SVGAngle.SVG_ANGLETYPE_DEG",
"SVGAngle.SVG_ANGLETYPE_RAD",
"SVGAngle.SVG_ANGLETYPE_GRAD",
"SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA",
"SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR",
"SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE",
"SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE",
"SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY",
"SVGComponentTransferFunctionElement.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN",
"SVGFEBlendElement.SVG_FEBLEND_MODE_LUMINOSITY",
"SVGFEBlendElement.SVG_FEBLEND_MODE_COLOR",
"SVGFEBlendElement.SVG_FEBLEND_MODE_SATURATION",
"SVGFEBlendElement.SVG_FEBLEND_MODE_HUE",
"SVGFEBlendElement.SVG_FEBLEND_MODE_EXCLUSION",
"SVGFEBlendElement.SVG_FEBLEND_MODE_DIFFERENCE",
"SVGFEBlendElement.SVG_FEBLEND_MODE_SOFT_LIGHT",
"SVGFEBlendElement.SVG_FEBLEND_MODE_HARD_LIGHT",
"SVGFEBlendElement.SVG_FEBLEND_MODE_COLOR_BURN",
"SVGFEBlendElement.SVG_FEBLEND_MODE_COLOR_DODGE",
"SVGFEBlendElement.SVG_FEBLEND_MODE_OVERLAY",
"SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN",
"SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN",
"SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN",
"SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY",
"SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL",
"SVGFEBlendElement.SVG_FEBLEND_MODE_UNKNOWN",
"SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA",
"SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_HUEROTATE",
"SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE",
"SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_MATRIX",
"SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_UNKNOWN",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ARITHMETIC",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_XOR",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_ATOP",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OUT",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_IN",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_OVER",
"SVGFECompositeElement.SVG_FECOMPOSITE_OPERATOR_UNKNOWN",
"SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE",
"SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP",
"SVGFEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE",
"SVGFEConvolveMatrixElement.SVG_EDGEMODE_UNKNOWN",
"SVGFEDisplacementMapElement.SVG_CHANNEL_A",
"SVGFEDisplacementMapElement.SVG_CHANNEL_B",
"SVGFEDisplacementMapElement.SVG_CHANNEL_G",
"SVGFEDisplacementMapElement.SVG_CHANNEL_R",
"SVGFEDisplacementMapElement.SVG_CHANNEL_UNKNOWN",
"SVGFEFuncAElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA",
"SVGFEFuncAElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR",
"SVGFEFuncAElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE",
"SVGFEFuncAElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE",
"SVGFEFuncAElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY",
"SVGFEFuncAElement.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN",
"SVGFEFuncBElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA",
"SVGFEFuncBElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR",
"SVGFEFuncBElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE",
"SVGFEFuncBElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE",
"SVGFEFuncBElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY",
"SVGFEFuncBElement.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN",
"SVGFEFuncGElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA",
"SVGFEFuncGElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR",
"SVGFEFuncGElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE",
"SVGFEFuncGElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE",
"SVGFEFuncGElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY",
"SVGFEFuncGElement.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN",
"SVGFEFuncRElement.SVG_FECOMPONENTTRANSFER_TYPE_GAMMA",
"SVGFEFuncRElement.SVG_FECOMPONENTTRANSFER_TYPE_LINEAR",
"SVGFEFuncRElement.SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE",
"SVGFEFuncRElement.SVG_FECOMPONENTTRANSFER_TYPE_TABLE",
"SVGFEFuncRElement.SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY",
"SVGFEFuncRElement.SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN",
"SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_DILATE",
"SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_ERODE",
"SVGFEMorphologyElement.SVG_MORPHOLOGY_OPERATOR_UNKNOWN",
"SVGFETurbulenceElement.SVG_STITCHTYPE_NOSTITCH",
"SVGFETurbulenceElement.SVG_STITCHTYPE_STITCH",
"SVGFETurbulenceElement.SVG_STITCHTYPE_UNKNOWN",
"SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_TURBULENCE",
"SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_FRACTALNOISE",
"SVGFETurbulenceElement.SVG_TURBULENCE_TYPE_UNKNOWN",
"SVGGradientElement.SVG_SPREADMETHOD_REPEAT",
"SVGGradientElement.SVG_SPREADMETHOD_REFLECT",
"SVGGradientElement.SVG_SPREADMETHOD_PAD",
"SVGGradientElement.SVG_SPREADMETHOD_UNKNOWN",
"SVGLength.SVG_LENGTHTYPE_UNKNOWN",
"SVGLength.SVG_LENGTHTYPE_NUMBER",
"SVGLength.SVG_LENGTHTYPE_PERCENTAGE",
"SVGLength.SVG_LENGTHTYPE_EMS",
"SVGLength.SVG_LENGTHTYPE_EXS",
"SVGLength.SVG_LENGTHTYPE_PX",
"SVGLength.SVG_LENGTHTYPE_CM",
"SVGLength.SVG_LENGTHTYPE_MM",
"SVGLength.SVG_LENGTHTYPE_IN",
"SVGLength.SVG_LENGTHTYPE_PT",
"SVGLength.SVG_LENGTHTYPE_PC",
"SVGLinearGradientElement.SVG_SPREADMETHOD_REPEAT",
"SVGLinearGradientElement.SVG_SPREADMETHOD_REFLECT",
"SVGLinearGradientElement.SVG_SPREADMETHOD_PAD",
"SVGLinearGradientElement.SVG_SPREADMETHOD_UNKNOWN",
"SVGMarkerElement.SVG_MARKERUNITS_UNKNOWN",
"SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE",
"SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH",
"SVGMarkerElement.SVG_MARKER_ORIENT_UNKNOWN",
"SVGMarkerElement.SVG_MARKER_ORIENT_AUTO",
"SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_UNKNOWN",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMIN",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMIN",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMID",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMID",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMID",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMAX",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMIDYMAX",
"SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMAXYMAX",
"SVGPreserveAspectRatio.SVG_MEETORSLICE_UNKNOWN",
"SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET",
"SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE",
"SVGRadialGradientElement.SVG_SPREADMETHOD_REPEAT",
"SVGRadialGradientElement.SVG_SPREADMETHOD_REFLECT",
"SVGRadialGradientElement.SVG_SPREADMETHOD_PAD",
"SVGRadialGradientElement.SVG_SPREADMETHOD_UNKNOWN",
"SVGSVGElement.SVG_ZOOMANDPAN_UNKNOWN",
"SVGSVGElement.SVG_ZOOMANDPAN_DISABLE",
"SVGSVGElement.SVG_ZOOMANDPAN_MAGNIFY",
"SVGTextContentElement.LENGTHADJUST_SPACINGANDGLYPHS",
"SVGTextContentElement.LENGTHADJUST_SPACING",
"SVGTextContentElement.LENGTHADJUST_UNKNOWN",
"SVGTextElement.LENGTHADJUST_SPACINGANDGLYPHS",
"SVGTextElement.LENGTHADJUST_SPACING",
"SVGTextElement.LENGTHADJUST_UNKNOWN",
"SVGTextPathElement.TEXTPATH_SPACINGTYPE_EXACT",
"SVGTextPathElement.TEXTPATH_SPACINGTYPE_AUTO",
"SVGTextPathElement.TEXTPATH_SPACINGTYPE_UNKNOWN",
"SVGTextPathElement.TEXTPATH_METHODTYPE_STRETCH",
"SVGTextPathElement.TEXTPATH_METHODTYPE_ALIGN",
"SVGTextPathElement.TEXTPATH_METHODTYPE_UNKNOWN",
"SVGTextPathElement.LENGTHADJUST_SPACINGANDGLYPHS",
"SVGTextPathElement.LENGTHADJUST_SPACING",
"SVGTextPathElement.LENGTHADJUST_UNKNOWN",
"SVGTextPositioningElement.LENGTHADJUST_SPACINGANDGLYPHS",
"SVGTextPositioningElement.LENGTHADJUST_SPACING",
"SVGTextPositioningElement.LENGTHADJUST_UNKNOWN",
"SVGTransform.SVG_TRANSFORM_UNKNOWN",
"SVGTransform.SVG_TRANSFORM_MATRIX",
"SVGTransform.SVG_TRANSFORM_TRANSLATE",
"SVGTransform.SVG_TRANSFORM_SCALE",
"SVGTransform.SVG_TRANSFORM_ROTATE",
"SVGTransform.SVG_TRANSFORM_SKEWX",
"SVGTransform.SVG_TRANSFORM_SKEWY",
"SVGTSpanElement.LENGTHADJUST_SPACINGANDGLYPHS",
"SVGTSpanElement.LENGTHADJUST_SPACING",
"SVGTSpanElement.LENGTHADJUST_UNKNOWN",
"SVGUnitTypes.SVG_UNIT_TYPE_UNKNOWN",
"SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE",
"SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX",
"SVGViewElement.SVG_ZOOMANDPAN_UNKNOWN",
"SVGViewElement.SVG_ZOOMANDPAN_DISABLE",
"SVGViewElement.SVG_ZOOMANDPAN_MAGNIFY",
"top.document",
"top.name",
"top.customElements",
"top.history",
"top.menubar",
"top.personalbar",
"top.scrollbars",
"top.statusbar",
"top.toolbar",
"top.status",
"top.closed",
"top.length",
"top.opener",
"top.frameElement",
"top.navigator",
"top.origin",
"top.external",
"top.screen",
"top.innerWidth",
"top.innerHeight",
"top.scrollX",
"top.pageXOffset",
"top.scrollY",
"top.pageYOffset",
"top.visualViewport",
"top.screenX",
"top.screenY",
"top.outerWidth",
"top.outerHeight",
"top.devicePixelRatio",
"top.clientInformation",
"top.screenLeft",
"top.screenTop",
"top.styleMedia",
"top.onsearch",
"top.isSecureContext",
"top.trustedTypes",
"top.performance",
"top.onappinstalled",
"top.onbeforeinstallprompt",
"top.crypto",
"top.indexedDB",
"top.sessionStorage",
"top.localStorage",
"top.onbeforexrselect",
"top.onabort",
"top.onbeforeinput",
"top.onblur",
"top.oncancel",
"top.oncanplay",
"top.oncanplaythrough",
"top.onchange",
"top.onclick",
"top.onclose",
"top.oncontextlost",
"top.oncontextmenu",
"top.oncontextrestored",
"top.oncuechange",
"top.ondblclick",
"top.ondrag",
"top.ondragend",
"top.ondragenter",
"top.ondragleave",
"top.ondragover",
"top.ondragstart",
"top.ondrop",
"top.ondurationchange",
"top.onemptied",
"top.onended",
"top.onerror",
"top.onfocus",
"top.onformdata",
"top.oninput",
"top.oninvalid",
"top.onkeydown",
"top.onkeypress",
"top.onkeyup",
"top.onload",
"top.onloadeddata",
"top.onloadedmetadata",
"top.onloadstart",
"top.onmousedown",
"top.onmouseenter",
"top.onmouseleave",
"top.onmousemove",
"top.onmouseout",
"top.onmouseover",
"top.onmouseup",
"top.onmousewheel",
"top.onpause",
"top.onplay",
"top.onplaying",
"top.onprogress",
"top.onratechange",
"top.onreset",
"top.onresize",
"top.onscroll",
"top.onsecuritypolicyviolation",
"top.onseeked",
"top.onseeking",
"top.onselect",
"top.onslotchange",
"top.onstalled",
"top.onsubmit",
"top.onsuspend",
"top.ontimeupdate",
"top.ontoggle",
"top.onvolumechange",
"top.onwaiting",
"top.onwebkitanimationend",
"top.onwebkitanimationiteration",
"top.onwebkitanimationstart",
"top.onwebkittransitionend",
"top.onwheel",
"top.onauxclick",
"top.ongotpointercapture",
"top.onlostpointercapture",
"top.onpointerdown",
"top.onpointermove",
"top.onpointerrawupdate",
"top.onpointerup",
"top.onpointercancel",
"top.onpointerover",
"top.onpointerout",
"top.onpointerenter",
"top.onpointerleave",
"top.onselectstart",
"top.onselectionchange",
"top.onanimationend",
"top.onanimationiteration",
"top.onanimationstart",
"top.ontransitionrun",
"top.ontransitionstart",
"top.ontransitionend",
"top.ontransitioncancel",
"top.onafterprint",
"top.onbeforeprint",
"top.onbeforeunload",
"top.onhashchange",
"top.onlanguagechange",
"top.onmessage",
"top.onmessageerror",
"top.onoffline",
"top.ononline",
"top.onpagehide",
"top.onpageshow",
"top.onpopstate",
"top.onrejectionhandled",
"top.onstorage",
"top.onunhandledrejection",
"top.onunload",
"top.crossOriginIsolated",
"top.scheduler",
"top.atob",
"top.blur",
"top.btoa",
"top.cancelAnimationFrame",
"top.cancelIdleCallback",
"top.captureEvents",
"top.clearInterval",
"top.clearTimeout",
"top.close",
"top.createImageBitmap",
"top.fetch",
"top.find",
"top.focus",
"top.getComputedStyle",
"top.getSelection",
"top.matchMedia",
"top.moveBy",
"top.moveTo",
"top.postMessage",
"top.queueMicrotask",
"top.releaseEvents",
"top.reportError",
"top.requestAnimationFrame",
"top.requestIdleCallback",
"top.resizeBy",
"top.resizeTo",
"top.scroll",
"top.scrollBy",
"top.scrollTo",
"top.setInterval",
"top.setTimeout",
"top.structuredClone",
"top.webkitCancelAnimationFrame",
"top.webkitRequestAnimationFrame",
"top.chrome",
"top.caches",
"top.cookieStore",
"top.ondevicemotion",
"top.ondeviceorientation",
"top.ondeviceorientationabsolute",
"top.launchQueue",
"top.onbeforematch",
"top.getScreenDetails",
"top.queryLocalFonts",
"top.showDirectoryPicker",
"top.showOpenFilePicker",
"top.showSaveFilePicker",
"top.originAgentCluster",
"top.navigation",
"top.webkitStorageInfo",
"top.speechSynthesis",
"top.oncontentvisibilityautostatechange",
"top.openDatabase",
"top.webkitRequestFileSystem",
"top.webkitResolveLocalFileSystemURL",
"top.define",
"top.ethereum",
"top.fuzzyValues",
"top.getProperties",
"top.y",
"top.addEventListener",
"top.dispatchEvent",
"top.removeEventListener",
"trustedTypes.createPolicy",
"trustedTypes.getAttributeType",
"trustedTypes.getPropertyType",
"trustedTypes.getTypeMapping",
"trustedTypes.isHTML",
"trustedTypes.isScript",
"trustedTypes.isScriptURL",
"trustedTypes.addEventListener",
"trustedTypes.dispatchEvent",
"trustedTypes.removeEventListener",
"TaskSignal.abort",
"TaskSignal.timeout",
"unmonitorEvents.toString",
"URL.createObjectURL",
"URL.revokeObjectURL",
"visualViewport.addEventListener",
"visualViewport.dispatchEvent",
"visualViewport.removeEventListener",
"VideoDecoder.isConfigSupported",
"VideoEncoder.isConfigSupported",
"webkitStorageInfo.queryUsageAndQuota",
"webkitStorageInfo.requestQuota",
"window.document",
"window.name", "window.customElements",
"window.history", "window.menubar",
"window.personalbar",
"window.scrollbars",
"window.statusbar",
"window.toolbar",
"window.status",
"window.closed",
"window.length",
"window.top",
"window.frameElement",
"window.navigator",
"window.origin",
"window.external",
"window.screen",
"window.innerWidth",
"window.innerHeight",
"window.scrollX",
"window.pageXOffset",
"window.scrollY",
"window.pageYOffset",
"window.visualViewport",
"window.screenX",
"window.screenY",
"window.outerWidth",
"window.outerHeight",
"window.devicePixelRatio",
"window.clientInformation",
"window.screenLeft",
"window.screenTop",
"window.styleMedia",
"window.onsearch",
"window.isSecureContext",
"window.trustedTypes",
"window.performance",
"window.onappinstalled",
"window.onbeforeinstallprompt",
"window.crypto",
"window.indexedDB",
"window.sessionStorage",
"window.localStorage",
"window.onbeforexrselect",
"window.onabort",
"window.onbeforeinput",
"window.onblur",
"window.oncancel",
"window.oncanplay",
"window.oncanplaythrough",
"window.onchange",
"window.onclick",
"window.onclose",
"window.oncontextlost",
"window.oncontextmenu",
"window.oncontextrestored",
"window.oncuechange",
"window.ondblclick",
"window.ondrag",
"window.ondragend",
"window.ondragenter",
"window.ondragleave",
"window.ondragover",
"window.ondragstart",
"window.ondrop",
"window.ondurationchange",
"window.onemptied",
"window.onended",
"window.onerror",
"window.onfocus",
"window.onformdata",
"window.oninput",
"window.oninvalid",
"window.onkeydown",
"window.onkeypress",
"window.onkeyup",
"window.onload",
"window.onloadeddata",
"window.onloadedmetadata",
"window.onloadstart",
"window.onmousedown",
"window.onmouseenter",
"window.onmouseleave",
"window.onmousemove",
"window.onmouseout",
"window.onmouseover",
"window.onmouseup",
"window.onmousewheel",
"window.onpause",
"window.onplay",
"window.onplaying",
"window.onprogress",
"window.onratechange",
"window.onreset",
"window.onresize",
"window.onscroll",
"window.onsecuritypolicyviolation",
"window.onseeked",
"window.onseeking",
"window.onselect",
"window.onslotchange",
"window.onstalled",
"window.onsubmit",
"window.onsuspend",
"window.ontimeupdate",
"window.ontoggle",
"window.onvolumechange",
"window.onwaiting",
"window.onwebkitanimationend",
"window.onwebkitanimationiteration",
"window.onwebkitanimationstart",
"window.onwebkittransitionend",
"window.onwheel",
"window.onauxclick",
"window.ongotpointercapture",
"window.onlostpointercapture",
"window.onpointerdown",
"window.onpointermove",
"window.onpointerrawupdate",
"window.onpointerup",
"window.onpointercancel",
"window.onpointerover",
"window.onpointerout",
"window.onpointerenter",
"window.onpointerleave",
"window.onselectstart",
"window.onselectionchange",
"window.onanimationend",
"window.onanimationiteration",
"window.onanimationstart",
"window.ontransitionrun",
"window.ontransitionstart",
"window.ontransitionend",
"window.ontransitioncancel",
"window.onafterprint",
"window.onbeforeprint",
"window.onbeforeunload",
"window.onhashchange",
"window.onlanguagechange",
"window.onmessage",
"window.onmessageerror",
"window.onoffline",
"window.ononline",
"window.onpagehide",
"window.onpageshow",
"window.onpopstate",
"window.onrejectionhandled",
"window.onstorage",
"window.onunhandledrejection",
"window.onunload",
"window.crossOriginIsolated",
"window.scheduler",
"window.atob",
"window.blur",
"window.btoa",
"window.cancelAnimationFrame",
"window.cancelIdleCallback",
"window.captureEvents",
"window.clearInterval",
"window.clearTimeout",
"window.close",
"window.createImageBitmap",
"window.fetch",
"window.find",
"window.focus",
"window.getComputedStyle",
"window.getSelection",
"window.matchMedia",
"window.moveBy",
"window.moveTo",
"window.postMessage",
"window.queueMicrotask",
"window.releaseEvents",
"window.reportError",
"window.requestAnimationFrame",
"window.requestIdleCallback",
"window.resizeBy",
"window.resizeTo",
"window.scroll",
"window.scrollBy",
"window.scrollTo",
"window.setInterval",
"window.setTimeout",
"window.structuredClone",
"window.webkitCancelAnimationFrame",
"window.webkitRequestAnimationFrame",
"window.chrome",
"window.caches",
"window.cookieStore",
"window.ondevicemotion",
"window.ondeviceorientation",
"window.ondeviceorientationabsolute",
"window.launchQueue",
"window.onbeforematch",
"window.getScreenDetails",
"window.queryLocalFonts",
"window.showDirectoryPicker",
"window.showOpenFilePicker",
"window.showSaveFilePicker",
"window.originAgentCluster",
"window.navigation",
"window.webkitStorageInfo",
"window.speechSynthesis",
"window.oncontentvisibilityautostatechange",
"window.openDatabase",
"window.webkitRequestFileSystem",
"window.webkitResolveLocalFileSystemURL",
"window.define",
"window.ethereum",
"window.fuzzyValues",
"window.getProperties",
"window.y",
"window.addEventListener",
"window.dispatchEvent",
"window.removeEventListener",
"webkitRTCPeerConnection.generateCertificate",
"webkitURL.createObjectURL",
"webkitURL.revokeObjectURL",
"WebAssembly.compile",
"WebAssembly.validate",
"WebAssembly.instantiate",
"WebAssembly.compileStreaming",
"WebAssembly.instantiateStreaming",
"WebGL2RenderingContext.DEPTH_BUFFER_BIT",
"WebGL2RenderingContext.STENCIL_BUFFER_BIT",
"WebGL2RenderingContext.COLOR_BUFFER_BIT",
"WebGL2RenderingContext.POINTS",
"WebGL2RenderingContext.LINES",
"WebGL2RenderingContext.LINE_LOOP",
"WebGL2RenderingContext.LINE_STRIP",
"WebGL2RenderingContext.TRIANGLES",
"WebGL2RenderingContext.TRIANGLE_STRIP",
"WebGL2RenderingContext.TRIANGLE_FAN",
"WebGL2RenderingContext.ZERO",
"WebGL2RenderingContext.ONE",
"WebGL2RenderingContext.SRC_COLOR",
"WebGL2RenderingContext.ONE_MINUS_SRC_COLOR",
"WebGL2RenderingContext.SRC_ALPHA",
"WebGL2RenderingContext.ONE_MINUS_SRC_ALPHA",
"WebGL2RenderingContext.DST_ALPHA",
"WebGL2RenderingContext.ONE_MINUS_DST_ALPHA",
"WebGL2RenderingContext.DST_COLOR",
"WebGL2RenderingContext.ONE_MINUS_DST_COLOR",
"WebGL2RenderingContext.SRC_ALPHA_SATURATE",
"WebGL2RenderingContext.FUNC_ADD",
"WebGL2RenderingContext.BLEND_EQUATION",
"WebGL2RenderingContext.BLEND_EQUATION_RGB",
"WebGL2RenderingContext.BLEND_EQUATION_ALPHA",
"WebGL2RenderingContext.FUNC_SUBTRACT",
"WebGL2RenderingContext.FUNC_REVERSE_SUBTRACT",
"WebGL2RenderingContext.BLEND_DST_RGB",
"WebGL2RenderingContext.BLEND_SRC_RGB",
"WebGL2RenderingContext.BLEND_DST_ALPHA",
"WebGL2RenderingContext.BLEND_SRC_ALPHA",
"WebGL2RenderingContext.CONSTANT_COLOR",
"WebGL2RenderingContext.ONE_MINUS_CONSTANT_COLOR",
"WebGL2RenderingContext.CONSTANT_ALPHA",
"WebGL2RenderingContext.ONE_MINUS_CONSTANT_ALPHA",
"WebGL2RenderingContext.BLEND_COLOR",
"WebGL2RenderingContext.ARRAY_BUFFER",
"WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER",
"WebGL2RenderingContext.ARRAY_BUFFER_BINDING",
"WebGL2RenderingContext.ELEMENT_ARRAY_BUFFER_BINDING",
"WebGL2RenderingContext.STREAM_DRAW",
"WebGL2RenderingContext.STATIC_DRAW",
"WebGL2RenderingContext.DYNAMIC_DRAW",
"WebGL2RenderingContext.BUFFER_SIZE",
"WebGL2RenderingContext.BUFFER_USAGE",
"WebGL2RenderingContext.CURRENT_VERTEX_ATTRIB",
"WebGL2RenderingContext.FRONT",
"WebGL2RenderingContext.BACK",
"WebGL2RenderingContext.FRONT_AND_BACK",
"WebGL2RenderingContext.TEXTURE_2D",
"WebGL2RenderingContext.CULL_FACE",
"WebGL2RenderingContext.BLEND",
"WebGL2RenderingContext.DITHER",
"WebGL2RenderingContext.STENCIL_TEST",
"WebGL2RenderingContext.DEPTH_TEST",
"WebGL2RenderingContext.SCISSOR_TEST",
"WebGL2RenderingContext.POLYGON_OFFSET_FILL",
"WebGL2RenderingContext.SAMPLE_ALPHA_TO_COVERAGE",
"WebGL2RenderingContext.SAMPLE_COVERAGE",
"WebGL2RenderingContext.NO_ERROR",
"WebGL2RenderingContext.INVALID_ENUM",
"WebGL2RenderingContext.INVALID_VALUE",
"WebGL2RenderingContext.INVALID_OPERATION",
"WebGL2RenderingContext.OUT_OF_MEMORY",
"WebGL2RenderingContext.CW",
"WebGL2RenderingContext.CCW",
"WebGL2RenderingContext.LINE_WIDTH",
"WebGL2RenderingContext.ALIASED_POINT_SIZE_RANGE",
"WebGL2RenderingContext.ALIASED_LINE_WIDTH_RANGE",
"WebGL2RenderingContext.CULL_FACE_MODE",
"WebGL2RenderingContext.FRONT_FACE",
"WebGL2RenderingContext.DEPTH_RANGE",
"WebGL2RenderingContext.DEPTH_WRITEMASK",
"WebGL2RenderingContext.DEPTH_CLEAR_VALUE",
"WebGL2RenderingContext.DEPTH_FUNC",
"WebGL2RenderingContext.STENCIL_CLEAR_VALUE",
"WebGL2RenderingContext.STENCIL_FUNC",
"WebGL2RenderingContext.STENCIL_FAIL",
"WebGL2RenderingContext.STENCIL_PASS_DEPTH_FAIL",
"WebGL2RenderingContext.STENCIL_PASS_DEPTH_PASS",
"WebGL2RenderingContext.STENCIL_REF",
"WebGL2RenderingContext.STENCIL_VALUE_MASK",
"WebGL2RenderingContext.STENCIL_WRITEMASK",
"WebGL2RenderingContext.STENCIL_BACK_FUNC",
"WebGL2RenderingContext.STENCIL_BACK_FAIL",
"WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL",
"WebGL2RenderingContext.STENCIL_BACK_PASS_DEPTH_PASS",
"WebGL2RenderingContext.STENCIL_BACK_REF",
"WebGL2RenderingContext.STENCIL_BACK_VALUE_MASK",
"WebGL2RenderingContext.STENCIL_BACK_WRITEMASK",
"WebGL2RenderingContext.VIEWPORT",
"WebGL2RenderingContext.SCISSOR_BOX",
"WebGL2RenderingContext.COLOR_CLEAR_VALUE",
"WebGL2RenderingContext.COLOR_WRITEMASK",
"WebGL2RenderingContext.UNPACK_ALIGNMENT",
"WebGL2RenderingContext.PACK_ALIGNMENT",
"WebGL2RenderingContext.MAX_TEXTURE_SIZE",
"WebGL2RenderingContext.MAX_VIEWPORT_DIMS",
"WebGL2RenderingContext.SUBPIXEL_BITS",
"WebGL2RenderingContext.RED_BITS",
"WebGL2RenderingContext.GREEN_BITS",
"WebGL2RenderingContext.BLUE_BITS",
"WebGL2RenderingContext.ALPHA_BITS",
"WebGL2RenderingContext.DEPTH_BITS",
"WebGL2RenderingContext.STENCIL_BITS",
"WebGL2RenderingContext.POLYGON_OFFSET_UNITS",
"WebGL2RenderingContext.POLYGON_OFFSET_FACTOR",
"WebGL2RenderingContext.TEXTURE_BINDING_2D",
"WebGL2RenderingContext.SAMPLE_BUFFERS",
"WebGL2RenderingContext.SAMPLES",
"WebGL2RenderingContext.SAMPLE_COVERAGE_VALUE",
"WebGL2RenderingContext.SAMPLE_COVERAGE_INVERT",
"WebGL2RenderingContext.COMPRESSED_TEXTURE_FORMATS",
"WebGL2RenderingContext.DONT_CARE",
"WebGL2RenderingContext.FASTEST",
"WebGL2RenderingContext.NICEST",
"WebGL2RenderingContext.GENERATE_MIPMAP_HINT",
"WebGL2RenderingContext.BYTE",
"WebGL2RenderingContext.UNSIGNED_BYTE",
"WebGL2RenderingContext.SHORT",
"WebGL2RenderingContext.UNSIGNED_SHORT",
"WebGL2RenderingContext.INT",
"WebGL2RenderingContext.UNSIGNED_INT",
"WebGL2RenderingContext.FLOAT",
"WebGL2RenderingContext.DEPTH_COMPONENT",
"WebGL2RenderingContext.ALPHA",
"WebGL2RenderingContext.RGB",
"WebGL2RenderingContext.RGBA",
"WebGL2RenderingContext.LUMINANCE",
"WebGL2RenderingContext.LUMINANCE_ALPHA",
"WebGL2RenderingContext.UNSIGNED_SHORT_4_4_4_4",
"WebGL2RenderingContext.UNSIGNED_SHORT_5_5_5_1",
"WebGL2RenderingContext.UNSIGNED_SHORT_5_6_5",
"WebGL2RenderingContext.FRAGMENT_SHADER",
"WebGL2RenderingContext.VERTEX_SHADER",
"WebGL2RenderingContext.MAX_VERTEX_ATTRIBS",
"WebGL2RenderingContext.MAX_VERTEX_UNIFORM_VECTORS",
"WebGL2RenderingContext.MAX_VARYING_VECTORS",
"WebGL2RenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS",
"WebGL2RenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS",
"WebGL2RenderingContext.MAX_TEXTURE_IMAGE_UNITS",
"WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS",
"WebGL2RenderingContext.SHADER_TYPE",
"WebGL2RenderingContext.DELETE_STATUS",
"WebGL2RenderingContext.LINK_STATUS",
"WebGL2RenderingContext.VALIDATE_STATUS",
"WebGL2RenderingContext.ATTACHED_SHADERS",
"WebGL2RenderingContext.ACTIVE_UNIFORMS",
"WebGL2RenderingContext.ACTIVE_ATTRIBUTES",
"WebGL2RenderingContext.SHADING_LANGUAGE_VERSION",
"WebGL2RenderingContext.CURRENT_PROGRAM",
"WebGL2RenderingContext.NEVER",
"WebGL2RenderingContext.LESS",
"WebGL2RenderingContext.EQUAL",
"WebGL2RenderingContext.LEQUAL",
"WebGL2RenderingContext.GREATER",
"WebGL2RenderingContext.NOTEQUAL",
"WebGL2RenderingContext.GEQUAL",
"WebGL2RenderingContext.ALWAYS",
"WebGL2RenderingContext.KEEP",
"WebGL2RenderingContext.REPLACE",
"WebGL2RenderingContext.INCR",
"WebGL2RenderingContext.DECR",
"WebGL2RenderingContext.INVERT",
"WebGL2RenderingContext.INCR_WRAP",
"WebGL2RenderingContext.DECR_WRAP",
"WebGL2RenderingContext.VENDOR",
"WebGL2RenderingContext.RENDERER",
"WebGL2RenderingContext.VERSION",
"WebGL2RenderingContext.NEAREST",
"WebGL2RenderingContext.LINEAR",
"WebGL2RenderingContext.NEAREST_MIPMAP_NEAREST",
"WebGL2RenderingContext.LINEAR_MIPMAP_NEAREST",
"WebGL2RenderingContext.NEAREST_MIPMAP_LINEAR",
"WebGL2RenderingContext.LINEAR_MIPMAP_LINEAR",
"WebGL2RenderingContext.TEXTURE_MAG_FILTER",
"WebGL2RenderingContext.TEXTURE_MIN_FILTER",
"WebGL2RenderingContext.TEXTURE_WRAP_S",
"WebGL2RenderingContext.TEXTURE_WRAP_T",
"WebGL2RenderingContext.TEXTURE",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP",
"WebGL2RenderingContext.TEXTURE_BINDING_CUBE_MAP",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z",
"WebGL2RenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z",
"WebGL2RenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE",
"WebGL2RenderingContext.TEXTURE0",
"WebGL2RenderingContext.TEXTURE1",
"WebGL2RenderingContext.TEXTURE2",
"WebGL2RenderingContext.TEXTURE3",
"WebGL2RenderingContext.TEXTURE4",
"WebGL2RenderingContext.TEXTURE5",
"WebGL2RenderingContext.TEXTURE6",
"WebGL2RenderingContext.TEXTURE7",
"WebGL2RenderingContext.TEXTURE8",
"WebGL2RenderingContext.TEXTURE9",
"WebGL2RenderingContext.TEXTURE10",
"WebGL2RenderingContext.TEXTURE11",
"WebGL2RenderingContext.TEXTURE12",
"WebGL2RenderingContext.TEXTURE13",
"WebGL2RenderingContext.TEXTURE14",
"WebGL2RenderingContext.TEXTURE15",
"WebGL2RenderingContext.TEXTURE16",
"WebGL2RenderingContext.TEXTURE17",
"WebGL2RenderingContext.TEXTURE18",
"WebGL2RenderingContext.TEXTURE19",
"WebGL2RenderingContext.TEXTURE20",
"WebGL2RenderingContext.TEXTURE21",
"WebGL2RenderingContext.TEXTURE22",
"WebGL2RenderingContext.TEXTURE23",
"WebGL2RenderingContext.TEXTURE24",
"WebGL2RenderingContext.TEXTURE25",
"WebGL2RenderingContext.TEXTURE26",
"WebGL2RenderingContext.TEXTURE27",
"WebGL2RenderingContext.TEXTURE28",
"WebGL2RenderingContext.TEXTURE29",
"WebGL2RenderingContext.TEXTURE30",
"WebGL2RenderingContext.TEXTURE31",
"WebGL2RenderingContext.ACTIVE_TEXTURE",
"WebGL2RenderingContext.REPEAT",
"WebGL2RenderingContext.CLAMP_TO_EDGE",
"WebGL2RenderingContext.MIRRORED_REPEAT",
"WebGL2RenderingContext.FLOAT_VEC2",
"WebGL2RenderingContext.FLOAT_VEC3",
"WebGL2RenderingContext.FLOAT_VEC4",
"WebGL2RenderingContext.INT_VEC2",
"WebGL2RenderingContext.INT_VEC3",
"WebGL2RenderingContext.INT_VEC4",
"WebGL2RenderingContext.BOOL",
"WebGL2RenderingContext.BOOL_VEC2",
"WebGL2RenderingContext.BOOL_VEC3",
"WebGL2RenderingContext.BOOL_VEC4",
"WebGL2RenderingContext.FLOAT_MAT2",
"WebGL2RenderingContext.FLOAT_MAT3",
"WebGL2RenderingContext.FLOAT_MAT4",
"WebGL2RenderingContext.SAMPLER_2D",
"WebGL2RenderingContext.SAMPLER_CUBE",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_SIZE",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_TYPE",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_POINTER",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",
"WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_TYPE",
"WebGL2RenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT",
"WebGL2RenderingContext.COMPILE_STATUS",
"WebGL2RenderingContext.LOW_FLOAT",
"WebGL2RenderingContext.MEDIUM_FLOAT",
"WebGL2RenderingContext.HIGH_FLOAT",
"WebGL2RenderingContext.LOW_INT",
"WebGL2RenderingContext.MEDIUM_INT",
"WebGL2RenderingContext.HIGH_INT",
"WebGL2RenderingContext.FRAMEBUFFER",
"WebGL2RenderingContext.RENDERBUFFER",
"WebGL2RenderingContext.RGBA4",
"WebGL2RenderingContext.RGB5_A1",
"WebGL2RenderingContext.RGB565",
"WebGL2RenderingContext.DEPTH_COMPONENT16",
"WebGL2RenderingContext.STENCIL_INDEX8",
"WebGL2RenderingContext.DEPTH_STENCIL",
"WebGL2RenderingContext.RENDERBUFFER_WIDTH",
"WebGL2RenderingContext.RENDERBUFFER_HEIGHT",
"WebGL2RenderingContext.RENDERBUFFER_INTERNAL_FORMAT",
"WebGL2RenderingContext.RENDERBUFFER_RED_SIZE",
"WebGL2RenderingContext.RENDERBUFFER_GREEN_SIZE",
"WebGL2RenderingContext.RENDERBUFFER_BLUE_SIZE",
"WebGL2RenderingContext.RENDERBUFFER_ALPHA_SIZE",
"WebGL2RenderingContext.RENDERBUFFER_DEPTH_SIZE",
"WebGL2RenderingContext.RENDERBUFFER_STENCIL_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",
"WebGL2RenderingContext.COLOR_ATTACHMENT0",
"WebGL2RenderingContext.DEPTH_ATTACHMENT",
"WebGL2RenderingContext.STENCIL_ATTACHMENT",
"WebGL2RenderingContext.DEPTH_STENCIL_ATTACHMENT",
"WebGL2RenderingContext.NONE",
"WebGL2RenderingContext.FRAMEBUFFER_COMPLETE",
"WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
"WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
"WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
"WebGL2RenderingContext.FRAMEBUFFER_UNSUPPORTED",
"WebGL2RenderingContext.FRAMEBUFFER_BINDING",
"WebGL2RenderingContext.RENDERBUFFER_BINDING",
"WebGL2RenderingContext.MAX_RENDERBUFFER_SIZE",
"WebGL2RenderingContext.INVALID_FRAMEBUFFER_OPERATION",
"WebGL2RenderingContext.UNPACK_FLIP_Y_WEBGL",
"WebGL2RenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL",
"WebGL2RenderingContext.CONTEXT_LOST_WEBGL",
"WebGL2RenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL",
"WebGL2RenderingContext.BROWSER_DEFAULT_WEBGL",
"WebGL2RenderingContext.READ_BUFFER",
"WebGL2RenderingContext.UNPACK_ROW_LENGTH",
"WebGL2RenderingContext.UNPACK_SKIP_ROWS",
"WebGL2RenderingContext.UNPACK_SKIP_PIXELS",
"WebGL2RenderingContext.PACK_ROW_LENGTH",
"WebGL2RenderingContext.PACK_SKIP_ROWS",
"WebGL2RenderingContext.PACK_SKIP_PIXELS",
"WebGL2RenderingContext.COLOR",
"WebGL2RenderingContext.DEPTH",
"WebGL2RenderingContext.STENCIL",
"WebGL2RenderingContext.RED",
"WebGL2RenderingContext.RGB8",
"WebGL2RenderingContext.RGBA8",
"WebGL2RenderingContext.RGB10_A2",
"WebGL2RenderingContext.TEXTURE_BINDING_3D",
"WebGL2RenderingContext.UNPACK_SKIP_IMAGES",
"WebGL2RenderingContext.UNPACK_IMAGE_HEIGHT",
"WebGL2RenderingContext.TEXTURE_3D",
"WebGL2RenderingContext.TEXTURE_WRAP_R",
"WebGL2RenderingContext.MAX_3D_TEXTURE_SIZE",
"WebGL2RenderingContext.UNSIGNED_INT_2_10_10_10_REV",
"WebGL2RenderingContext.MAX_ELEMENTS_VERTICES",
"WebGL2RenderingContext.MAX_ELEMENTS_INDICES",
"WebGL2RenderingContext.TEXTURE_MIN_LOD",
"WebGL2RenderingContext.TEXTURE_MAX_LOD",
"WebGL2RenderingContext.TEXTURE_BASE_LEVEL",
"WebGL2RenderingContext.TEXTURE_MAX_LEVEL",
"WebGL2RenderingContext.MIN",
"WebGL2RenderingContext.MAX",
"WebGL2RenderingContext.DEPTH_COMPONENT24",
"WebGL2RenderingContext.MAX_TEXTURE_LOD_BIAS",
"WebGL2RenderingContext.TEXTURE_COMPARE_MODE",
"WebGL2RenderingContext.TEXTURE_COMPARE_FUNC",
"WebGL2RenderingContext.CURRENT_QUERY",
"WebGL2RenderingContext.QUERY_RESULT",
"WebGL2RenderingContext.QUERY_RESULT_AVAILABLE",
"WebGL2RenderingContext.STREAM_READ",
"WebGL2RenderingContext.STREAM_COPY",
"WebGL2RenderingContext.STATIC_READ",
"WebGL2RenderingContext.STATIC_COPY",
"WebGL2RenderingContext.DYNAMIC_READ",
"WebGL2RenderingContext.DYNAMIC_COPY",
"WebGL2RenderingContext.MAX_DRAW_BUFFERS",
"WebGL2RenderingContext.DRAW_BUFFER0",
"WebGL2RenderingContext.DRAW_BUFFER1",
"WebGL2RenderingContext.DRAW_BUFFER2",
"WebGL2RenderingContext.DRAW_BUFFER3",
"WebGL2RenderingContext.DRAW_BUFFER4",
"WebGL2RenderingContext.DRAW_BUFFER5",
"WebGL2RenderingContext.DRAW_BUFFER6",
"WebGL2RenderingContext.DRAW_BUFFER7",
"WebGL2RenderingContext.DRAW_BUFFER8",
"WebGL2RenderingContext.DRAW_BUFFER9",
"WebGL2RenderingContext.DRAW_BUFFER10",
"WebGL2RenderingContext.DRAW_BUFFER11",
"WebGL2RenderingContext.DRAW_BUFFER12",
"WebGL2RenderingContext.DRAW_BUFFER13",
"WebGL2RenderingContext.DRAW_BUFFER14",
"WebGL2RenderingContext.DRAW_BUFFER15",
"WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_COMPONENTS",
"WebGL2RenderingContext.MAX_VERTEX_UNIFORM_COMPONENTS",
"WebGL2RenderingContext.SAMPLER_3D",
"WebGL2RenderingContext.SAMPLER_2D_SHADOW",
"WebGL2RenderingContext.FRAGMENT_SHADER_DERIVATIVE_HINT",
"WebGL2RenderingContext.PIXEL_PACK_BUFFER",
"WebGL2RenderingContext.PIXEL_UNPACK_BUFFER",
"WebGL2RenderingContext.PIXEL_PACK_BUFFER_BINDING",
"WebGL2RenderingContext.PIXEL_UNPACK_BUFFER_BINDING",
"WebGL2RenderingContext.FLOAT_MAT2x3",
"WebGL2RenderingContext.FLOAT_MAT2x4",
"WebGL2RenderingContext.FLOAT_MAT3x2",
"WebGL2RenderingContext.FLOAT_MAT3x4",
"WebGL2RenderingContext.FLOAT_MAT4x2",
"WebGL2RenderingContext.FLOAT_MAT4x3",
"WebGL2RenderingContext.SRGB",
"WebGL2RenderingContext.SRGB8",
"WebGL2RenderingContext.SRGB8_ALPHA8",
"WebGL2RenderingContext.COMPARE_REF_TO_TEXTURE",
"WebGL2RenderingContext.RGBA32F",
"WebGL2RenderingContext.RGB32F",
"WebGL2RenderingContext.RGBA16F",
"WebGL2RenderingContext.RGB16F",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_INTEGER",
"WebGL2RenderingContext.MAX_ARRAY_TEXTURE_LAYERS",
"WebGL2RenderingContext.MIN_PROGRAM_TEXEL_OFFSET",
"WebGL2RenderingContext.MAX_PROGRAM_TEXEL_OFFSET",
"WebGL2RenderingContext.MAX_VARYING_COMPONENTS",
"WebGL2RenderingContext.TEXTURE_2D_ARRAY",
"WebGL2RenderingContext.TEXTURE_BINDING_2D_ARRAY",
"WebGL2RenderingContext.R11F_G11F_B10F",
"WebGL2RenderingContext.UNSIGNED_INT_10F_11F_11F_REV",
"WebGL2RenderingContext.RGB9_E5",
"WebGL2RenderingContext.UNSIGNED_INT_5_9_9_9_REV",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_BUFFER_MODE",
"WebGL2RenderingContext.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_VARYINGS",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_BUFFER_START",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_BUFFER_SIZE",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",
"WebGL2RenderingContext.RASTERIZER_DISCARD",
"WebGL2RenderingContext.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",
"WebGL2RenderingContext.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",
"WebGL2RenderingContext.INTERLEAVED_ATTRIBS",
"WebGL2RenderingContext.SEPARATE_ATTRIBS",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_BUFFER",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_BUFFER_BINDING",
"WebGL2RenderingContext.RGBA32UI",
"WebGL2RenderingContext.RGB32UI",
"WebGL2RenderingContext.RGBA16UI",
"WebGL2RenderingContext.RGB16UI",
"WebGL2RenderingContext.RGBA8UI",
"WebGL2RenderingContext.RGB8UI",
"WebGL2RenderingContext.RGBA32I",
"WebGL2RenderingContext.RGB32I",
"WebGL2RenderingContext.RGBA16I",
"WebGL2RenderingContext.RGB16I",
"WebGL2RenderingContext.RGBA8I",
"WebGL2RenderingContext.RGB8I",
"WebGL2RenderingContext.RED_INTEGER",
"WebGL2RenderingContext.RGB_INTEGER",
"WebGL2RenderingContext.RGBA_INTEGER",
"WebGL2RenderingContext.SAMPLER_2D_ARRAY",
"WebGL2RenderingContext.SAMPLER_2D_ARRAY_SHADOW",
"WebGL2RenderingContext.SAMPLER_CUBE_SHADOW",
"WebGL2RenderingContext.UNSIGNED_INT_VEC2",
"WebGL2RenderingContext.UNSIGNED_INT_VEC3",
"WebGL2RenderingContext.UNSIGNED_INT_VEC4",
"WebGL2RenderingContext.INT_SAMPLER_2D",
"WebGL2RenderingContext.INT_SAMPLER_3D",
"WebGL2RenderingContext.INT_SAMPLER_CUBE",
"WebGL2RenderingContext.INT_SAMPLER_2D_ARRAY",
"WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_2D",
"WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_3D",
"WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_CUBE",
"WebGL2RenderingContext.UNSIGNED_INT_SAMPLER_2D_ARRAY",
"WebGL2RenderingContext.DEPTH_COMPONENT32F",
"WebGL2RenderingContext.DEPTH32F_STENCIL8",
"WebGL2RenderingContext.FLOAT_32_UNSIGNED_INT_24_8_REV",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_RED_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",
"WebGL2RenderingContext.FRAMEBUFFER_DEFAULT",
"WebGL2RenderingContext.UNSIGNED_INT_24_8",
"WebGL2RenderingContext.DEPTH24_STENCIL8",
"WebGL2RenderingContext.UNSIGNED_NORMALIZED",
"WebGL2RenderingContext.DRAW_FRAMEBUFFER_BINDING",
"WebGL2RenderingContext.READ_FRAMEBUFFER",
"WebGL2RenderingContext.DRAW_FRAMEBUFFER",
"WebGL2RenderingContext.READ_FRAMEBUFFER_BINDING",
"WebGL2RenderingContext.RENDERBUFFER_SAMPLES",
"WebGL2RenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",
"WebGL2RenderingContext.MAX_COLOR_ATTACHMENTS",
"WebGL2RenderingContext.COLOR_ATTACHMENT1",
"WebGL2RenderingContext.COLOR_ATTACHMENT2",
"WebGL2RenderingContext.COLOR_ATTACHMENT3",
"WebGL2RenderingContext.COLOR_ATTACHMENT4",
"WebGL2RenderingContext.COLOR_ATTACHMENT5",
"WebGL2RenderingContext.COLOR_ATTACHMENT6",
"WebGL2RenderingContext.COLOR_ATTACHMENT7",
"WebGL2RenderingContext.COLOR_ATTACHMENT8",
"WebGL2RenderingContext.COLOR_ATTACHMENT9",
"WebGL2RenderingContext.COLOR_ATTACHMENT10",
"WebGL2RenderingContext.COLOR_ATTACHMENT11",
"WebGL2RenderingContext.COLOR_ATTACHMENT12",
"WebGL2RenderingContext.COLOR_ATTACHMENT13",
"WebGL2RenderingContext.COLOR_ATTACHMENT14",
"WebGL2RenderingContext.COLOR_ATTACHMENT15",
"WebGL2RenderingContext.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",
"WebGL2RenderingContext.MAX_SAMPLES",
"WebGL2RenderingContext.HALF_FLOAT",
"WebGL2RenderingContext.RG",
"WebGL2RenderingContext.RG_INTEGER",
"WebGL2RenderingContext.R8",
"WebGL2RenderingContext.RG8",
"WebGL2RenderingContext.R16F",
"WebGL2RenderingContext.R32F",
"WebGL2RenderingContext.RG16F",
"WebGL2RenderingContext.RG32F",
"WebGL2RenderingContext.R8I",
"WebGL2RenderingContext.R8UI",
"WebGL2RenderingContext.R16I",
"WebGL2RenderingContext.R16UI",
"WebGL2RenderingContext.R32I",
"WebGL2RenderingContext.R32UI",
"WebGL2RenderingContext.RG8I",
"WebGL2RenderingContext.RG8UI",
"WebGL2RenderingContext.RG16I",
"WebGL2RenderingContext.RG16UI",
"WebGL2RenderingContext.RG32I",
"WebGL2RenderingContext.RG32UI",
"WebGL2RenderingContext.VERTEX_ARRAY_BINDING",
"WebGL2RenderingContext.R8_SNORM",
"WebGL2RenderingContext.RG8_SNORM",
"WebGL2RenderingContext.RGB8_SNORM",
"WebGL2RenderingContext.RGBA8_SNORM",
"WebGL2RenderingContext.SIGNED_NORMALIZED",
"WebGL2RenderingContext.COPY_READ_BUFFER",
"WebGL2RenderingContext.COPY_WRITE_BUFFER",
"WebGL2RenderingContext.COPY_READ_BUFFER_BINDING",
"WebGL2RenderingContext.COPY_WRITE_BUFFER_BINDING",
"WebGL2RenderingContext.UNIFORM_BUFFER",
"WebGL2RenderingContext.UNIFORM_BUFFER_BINDING",
"WebGL2RenderingContext.UNIFORM_BUFFER_START",
"WebGL2RenderingContext.UNIFORM_BUFFER_SIZE",
"WebGL2RenderingContext.MAX_VERTEX_UNIFORM_BLOCKS",
"WebGL2RenderingContext.MAX_FRAGMENT_UNIFORM_BLOCKS",
"WebGL2RenderingContext.MAX_COMBINED_UNIFORM_BLOCKS",
"WebGL2RenderingContext.MAX_UNIFORM_BUFFER_BINDINGS",
"WebGL2RenderingContext.MAX_UNIFORM_BLOCK_SIZE",
"WebGL2RenderingContext.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",
"WebGL2RenderingContext.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",
"WebGL2RenderingContext.UNIFORM_BUFFER_OFFSET_ALIGNMENT",
"WebGL2RenderingContext.ACTIVE_UNIFORM_BLOCKS",
"WebGL2RenderingContext.UNIFORM_TYPE",
"WebGL2RenderingContext.UNIFORM_SIZE",
"WebGL2RenderingContext.UNIFORM_BLOCK_INDEX",
"WebGL2RenderingContext.UNIFORM_OFFSET",
"WebGL2RenderingContext.UNIFORM_ARRAY_STRIDE",
"WebGL2RenderingContext.UNIFORM_MATRIX_STRIDE",
"WebGL2RenderingContext.UNIFORM_IS_ROW_MAJOR",
"WebGL2RenderingContext.UNIFORM_BLOCK_BINDING",
"WebGL2RenderingContext.UNIFORM_BLOCK_DATA_SIZE",
"WebGL2RenderingContext.UNIFORM_BLOCK_ACTIVE_UNIFORMS",
"WebGL2RenderingContext.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",
"WebGL2RenderingContext.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",
"WebGL2RenderingContext.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",
"WebGL2RenderingContext.INVALID_INDEX",
"WebGL2RenderingContext.MAX_VERTEX_OUTPUT_COMPONENTS",
"WebGL2RenderingContext.MAX_FRAGMENT_INPUT_COMPONENTS",
"WebGL2RenderingContext.MAX_SERVER_WAIT_TIMEOUT",
"WebGL2RenderingContext.OBJECT_TYPE",
"WebGL2RenderingContext.SYNC_CONDITION",
"WebGL2RenderingContext.SYNC_STATUS",
"WebGL2RenderingContext.SYNC_FLAGS",
"WebGL2RenderingContext.SYNC_FENCE",
"WebGL2RenderingContext.SYNC_GPU_COMMANDS_COMPLETE",
"WebGL2RenderingContext.UNSIGNALED",
"WebGL2RenderingContext.SIGNALED",
"WebGL2RenderingContext.ALREADY_SIGNALED",
"WebGL2RenderingContext.TIMEOUT_EXPIRED",
"WebGL2RenderingContext.CONDITION_SATISFIED",
"WebGL2RenderingContext.WAIT_FAILED",
"WebGL2RenderingContext.SYNC_FLUSH_COMMANDS_BIT",
"WebGL2RenderingContext.VERTEX_ATTRIB_ARRAY_DIVISOR",
"WebGL2RenderingContext.ANY_SAMPLES_PASSED",
"WebGL2RenderingContext.ANY_SAMPLES_PASSED_CONSERVATIVE",
"WebGL2RenderingContext.SAMPLER_BINDING",
"WebGL2RenderingContext.RGB10_A2UI",
"WebGL2RenderingContext.INT_2_10_10_10_REV",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_PAUSED",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_ACTIVE",
"WebGL2RenderingContext.TRANSFORM_FEEDBACK_BINDING",
"WebGL2RenderingContext.TEXTURE_IMMUTABLE_FORMAT",
"WebGL2RenderingContext.MAX_ELEMENT_INDEX",
"WebGL2RenderingContext.TEXTURE_IMMUTABLE_LEVELS",
"WebGL2RenderingContext.TIMEOUT_IGNORED",
"WebGL2RenderingContext.MAX_CLIENT_WAIT_TIMEOUT_WEBGL",
"WebGLRenderingContext.DEPTH_BUFFER_BIT",
"WebGLRenderingContext.STENCIL_BUFFER_BIT",
"WebGLRenderingContext.COLOR_BUFFER_BIT",
"WebGLRenderingContext.POINTS",
"WebGLRenderingContext.LINES",
"WebGLRenderingContext.LINE_LOOP",
"WebGLRenderingContext.LINE_STRIP",
"WebGLRenderingContext.TRIANGLES",
"WebGLRenderingContext.TRIANGLE_STRIP",
"WebGLRenderingContext.TRIANGLE_FAN",
"WebGLRenderingContext.ZERO",
"WebGLRenderingContext.ONE",
"WebGLRenderingContext.SRC_COLOR",
"WebGLRenderingContext.ONE_MINUS_SRC_COLOR",
"WebGLRenderingContext.SRC_ALPHA",
"WebGLRenderingContext.ONE_MINUS_SRC_ALPHA",
"WebGLRenderingContext.DST_ALPHA",
"WebGLRenderingContext.ONE_MINUS_DST_ALPHA",
"WebGLRenderingContext.DST_COLOR",
"WebGLRenderingContext.ONE_MINUS_DST_COLOR",
"WebGLRenderingContext.SRC_ALPHA_SATURATE",
"WebGLRenderingContext.FUNC_ADD",
"WebGLRenderingContext.BLEND_EQUATION",
"WebGLRenderingContext.BLEND_EQUATION_RGB",
"WebGLRenderingContext.BLEND_EQUATION_ALPHA",
"WebGLRenderingContext.FUNC_SUBTRACT",
"WebGLRenderingContext.FUNC_REVERSE_SUBTRACT",
"WebGLRenderingContext.BLEND_DST_RGB",
"WebGLRenderingContext.BLEND_SRC_RGB",
"WebGLRenderingContext.BLEND_DST_ALPHA",
"WebGLRenderingContext.BLEND_SRC_ALPHA",
"WebGLRenderingContext.CONSTANT_COLOR",
"WebGLRenderingContext.ONE_MINUS_CONSTANT_COLOR",
"WebGLRenderingContext.CONSTANT_ALPHA",
"WebGLRenderingContext.ONE_MINUS_CONSTANT_ALPHA",
"WebGLRenderingContext.BLEND_COLOR",
"WebGLRenderingContext.ARRAY_BUFFER",
"WebGLRenderingContext.ELEMENT_ARRAY_BUFFER",
"WebGLRenderingContext.ARRAY_BUFFER_BINDING",
"WebGLRenderingContext.ELEMENT_ARRAY_BUFFER_BINDING",
"WebGLRenderingContext.STREAM_DRAW",
"WebGLRenderingContext.STATIC_DRAW",
"WebGLRenderingContext.DYNAMIC_DRAW",
"WebGLRenderingContext.BUFFER_SIZE",
"WebGLRenderingContext.BUFFER_USAGE",
"WebGLRenderingContext.CURRENT_VERTEX_ATTRIB",
"WebGLRenderingContext.FRONT",
"WebGLRenderingContext.BACK",
"WebGLRenderingContext.FRONT_AND_BACK",
"WebGLRenderingContext.TEXTURE_2D",
"WebGLRenderingContext.CULL_FACE",
"WebGLRenderingContext.BLEND",
"WebGLRenderingContext.DITHER",
"WebGLRenderingContext.STENCIL_TEST",
"WebGLRenderingContext.DEPTH_TEST",
"WebGLRenderingContext.SCISSOR_TEST",
"WebGLRenderingContext.POLYGON_OFFSET_FILL",
"WebGLRenderingContext.SAMPLE_ALPHA_TO_COVERAGE",
"WebGLRenderingContext.SAMPLE_COVERAGE",
"WebGLRenderingContext.NO_ERROR",
"WebGLRenderingContext.INVALID_ENUM",
"WebGLRenderingContext.INVALID_VALUE",
"WebGLRenderingContext.INVALID_OPERATION",
"WebGLRenderingContext.OUT_OF_MEMORY",
"WebGLRenderingContext.CW",
"WebGLRenderingContext.CCW",
"WebGLRenderingContext.LINE_WIDTH",
"WebGLRenderingContext.ALIASED_POINT_SIZE_RANGE",
"WebGLRenderingContext.ALIASED_LINE_WIDTH_RANGE",
"WebGLRenderingContext.CULL_FACE_MODE",
"WebGLRenderingContext.FRONT_FACE",
"WebGLRenderingContext.DEPTH_RANGE",
"WebGLRenderingContext.DEPTH_WRITEMASK",
"WebGLRenderingContext.DEPTH_CLEAR_VALUE",
"WebGLRenderingContext.DEPTH_FUNC",
"WebGLRenderingContext.STENCIL_CLEAR_VALUE",
"WebGLRenderingContext.STENCIL_FUNC",
"WebGLRenderingContext.STENCIL_FAIL",
"WebGLRenderingContext.STENCIL_PASS_DEPTH_FAIL",
"WebGLRenderingContext.STENCIL_PASS_DEPTH_PASS",
"WebGLRenderingContext.STENCIL_REF",
"WebGLRenderingContext.STENCIL_VALUE_MASK",
"WebGLRenderingContext.STENCIL_WRITEMASK",
"WebGLRenderingContext.STENCIL_BACK_FUNC",
"WebGLRenderingContext.STENCIL_BACK_FAIL",
"WebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_FAIL",
"WebGLRenderingContext.STENCIL_BACK_PASS_DEPTH_PASS",
"WebGLRenderingContext.STENCIL_BACK_REF",
"WebGLRenderingContext.STENCIL_BACK_VALUE_MASK",
"WebGLRenderingContext.STENCIL_BACK_WRITEMASK",
"WebGLRenderingContext.VIEWPORT",
"WebGLRenderingContext.SCISSOR_BOX",
"WebGLRenderingContext.COLOR_CLEAR_VALUE",
"WebGLRenderingContext.COLOR_WRITEMASK",
"WebGLRenderingContext.UNPACK_ALIGNMENT",
"WebGLRenderingContext.PACK_ALIGNMENT",
"WebGLRenderingContext.MAX_TEXTURE_SIZE",
"WebGLRenderingContext.MAX_VIEWPORT_DIMS",
"WebGLRenderingContext.SUBPIXEL_BITS",
"WebGLRenderingContext.RED_BITS",
"WebGLRenderingContext.GREEN_BITS",
"WebGLRenderingContext.BLUE_BITS",
"WebGLRenderingContext.ALPHA_BITS",
"WebGLRenderingContext.DEPTH_BITS",
"WebGLRenderingContext.STENCIL_BITS",
"WebGLRenderingContext.POLYGON_OFFSET_UNITS",
"WebGLRenderingContext.POLYGON_OFFSET_FACTOR",
"WebGLRenderingContext.TEXTURE_BINDING_2D",
"WebGLRenderingContext.SAMPLE_BUFFERS",
"WebGLRenderingContext.SAMPLES",
"WebGLRenderingContext.SAMPLE_COVERAGE_VALUE",
"WebGLRenderingContext.SAMPLE_COVERAGE_INVERT",
"WebGLRenderingContext.COMPRESSED_TEXTURE_FORMATS",
"WebGLRenderingContext.DONT_CARE",
"WebGLRenderingContext.FASTEST",
"WebGLRenderingContext.NICEST",
"WebGLRenderingContext.GENERATE_MIPMAP_HINT",
"WebGLRenderingContext.BYTE",
"WebGLRenderingContext.UNSIGNED_BYTE",
"WebGLRenderingContext.SHORT",
"WebGLRenderingContext.UNSIGNED_SHORT",
"WebGLRenderingContext.INT",
"WebGLRenderingContext.UNSIGNED_INT",
"WebGLRenderingContext.FLOAT",
"WebGLRenderingContext.DEPTH_COMPONENT",
"WebGLRenderingContext.ALPHA",
"WebGLRenderingContext.RGB",
"WebGLRenderingContext.RGBA",
"WebGLRenderingContext.LUMINANCE",
"WebGLRenderingContext.LUMINANCE_ALPHA",
"WebGLRenderingContext.UNSIGNED_SHORT_4_4_4_4",
"WebGLRenderingContext.UNSIGNED_SHORT_5_5_5_1",
"WebGLRenderingContext.UNSIGNED_SHORT_5_6_5",
"WebGLRenderingContext.FRAGMENT_SHADER",
"WebGLRenderingContext.VERTEX_SHADER",
"WebGLRenderingContext.MAX_VERTEX_ATTRIBS",
"WebGLRenderingContext.MAX_VERTEX_UNIFORM_VECTORS",
"WebGLRenderingContext.MAX_VARYING_VECTORS",
"WebGLRenderingContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS",
"WebGLRenderingContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS",
"WebGLRenderingContext.MAX_TEXTURE_IMAGE_UNITS",
"WebGLRenderingContext.MAX_FRAGMENT_UNIFORM_VECTORS",
"WebGLRenderingContext.SHADER_TYPE",
"WebGLRenderingContext.DELETE_STATUS",
"WebGLRenderingContext.LINK_STATUS",
"WebGLRenderingContext.VALIDATE_STATUS",
"WebGLRenderingContext.ATTACHED_SHADERS",
"WebGLRenderingContext.ACTIVE_UNIFORMS",
"WebGLRenderingContext.ACTIVE_ATTRIBUTES",
"WebGLRenderingContext.SHADING_LANGUAGE_VERSION",
"WebGLRenderingContext.CURRENT_PROGRAM",
"WebGLRenderingContext.NEVER",
"WebGLRenderingContext.LESS",
"WebGLRenderingContext.EQUAL",
"WebGLRenderingContext.LEQUAL",
"WebGLRenderingContext.GREATER",
"WebGLRenderingContext.NOTEQUAL",
"WebGLRenderingContext.GEQUAL",
"WebGLRenderingContext.ALWAYS",
"WebGLRenderingContext.KEEP",
"WebGLRenderingContext.REPLACE",
"WebGLRenderingContext.INCR",
"WebGLRenderingContext.DECR",
"WebGLRenderingContext.INVERT",
"WebGLRenderingContext.INCR_WRAP",
"WebGLRenderingContext.DECR_WRAP",
"WebGLRenderingContext.VENDOR",
"WebGLRenderingContext.RENDERER",
"WebGLRenderingContext.VERSION",
"WebGLRenderingContext.NEAREST",
"WebGLRenderingContext.LINEAR",
"WebGLRenderingContext.NEAREST_MIPMAP_NEAREST",
"WebGLRenderingContext.LINEAR_MIPMAP_NEAREST",
"WebGLRenderingContext.NEAREST_MIPMAP_LINEAR",
"WebGLRenderingContext.LINEAR_MIPMAP_LINEAR",
"WebGLRenderingContext.TEXTURE_MAG_FILTER",
"WebGLRenderingContext.TEXTURE_MIN_FILTER",
"WebGLRenderingContext.TEXTURE_WRAP_S",
"WebGLRenderingContext.TEXTURE_WRAP_T",
"WebGLRenderingContext.TEXTURE",
"WebGLRenderingContext.TEXTURE_CUBE_MAP",
"WebGLRenderingContext.TEXTURE_BINDING_CUBE_MAP",
"WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_X",
"WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_X",
"WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Y",
"WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Y",
"WebGLRenderingContext.TEXTURE_CUBE_MAP_POSITIVE_Z",
"WebGLRenderingContext.TEXTURE_CUBE_MAP_NEGATIVE_Z",
"WebGLRenderingContext.MAX_CUBE_MAP_TEXTURE_SIZE",
"WebGLRenderingContext.TEXTURE0",
"WebGLRenderingContext.TEXTURE1",
"WebGLRenderingContext.TEXTURE2",
"WebGLRenderingContext.TEXTURE3",
"WebGLRenderingContext.TEXTURE4",
"WebGLRenderingContext.TEXTURE5",
"WebGLRenderingContext.TEXTURE6",
"WebGLRenderingContext.TEXTURE7",
"WebGLRenderingContext.TEXTURE8",
"WebGLRenderingContext.TEXTURE9",
"WebGLRenderingContext.TEXTURE10",
"WebGLRenderingContext.TEXTURE11",
"WebGLRenderingContext.TEXTURE12",
"WebGLRenderingContext.TEXTURE13",
"WebGLRenderingContext.TEXTURE14",
"WebGLRenderingContext.TEXTURE15",
"WebGLRenderingContext.TEXTURE16",
"WebGLRenderingContext.TEXTURE17",
"WebGLRenderingContext.TEXTURE18",
"WebGLRenderingContext.TEXTURE19",
"WebGLRenderingContext.TEXTURE20",
"WebGLRenderingContext.TEXTURE21",
"WebGLRenderingContext.TEXTURE22",
"WebGLRenderingContext.TEXTURE23",
"WebGLRenderingContext.TEXTURE24",
"WebGLRenderingContext.TEXTURE25",
"WebGLRenderingContext.TEXTURE26",
"WebGLRenderingContext.TEXTURE27",
"WebGLRenderingContext.TEXTURE28",
"WebGLRenderingContext.TEXTURE29",
"WebGLRenderingContext.TEXTURE30",
"WebGLRenderingContext.TEXTURE31",
"WebGLRenderingContext.ACTIVE_TEXTURE",
"WebGLRenderingContext.REPEAT",
"WebGLRenderingContext.CLAMP_TO_EDGE",
"WebGLRenderingContext.MIRRORED_REPEAT",
"WebGLRenderingContext.FLOAT_VEC2",
"WebGLRenderingContext.FLOAT_VEC3",
"WebGLRenderingContext.FLOAT_VEC4",
"WebGLRenderingContext.INT_VEC2",
"WebGLRenderingContext.INT_VEC3",
"WebGLRenderingContext.INT_VEC4",
"WebGLRenderingContext.BOOL",
"WebGLRenderingContext.BOOL_VEC2",
"WebGLRenderingContext.BOOL_VEC3",
"WebGLRenderingContext.BOOL_VEC4",
"WebGLRenderingContext.FLOAT_MAT2",
"WebGLRenderingContext.FLOAT_MAT3",
"WebGLRenderingContext.FLOAT_MAT4",
"WebGLRenderingContext.SAMPLER_2D",
"WebGLRenderingContext.SAMPLER_CUBE",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_ENABLED",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_SIZE",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_STRIDE",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_TYPE",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_NORMALIZED",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_POINTER",
"WebGLRenderingContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",
"WebGLRenderingContext.IMPLEMENTATION_COLOR_READ_TYPE",
"WebGLRenderingContext.IMPLEMENTATION_COLOR_READ_FORMAT",
"WebGLRenderingContext.COMPILE_STATUS",
"WebGLRenderingContext.LOW_FLOAT",
"WebGLRenderingContext.MEDIUM_FLOAT",
"WebGLRenderingContext.HIGH_FLOAT",
"WebGLRenderingContext.LOW_INT",
"WebGLRenderingContext.MEDIUM_INT",
"WebGLRenderingContext.HIGH_INT",
"WebGLRenderingContext.FRAMEBUFFER",
"WebGLRenderingContext.RENDERBUFFER",
"WebGLRenderingContext.RGBA4",
"WebGLRenderingContext.RGB5_A1",
"WebGLRenderingContext.RGB565",
"WebGLRenderingContext.DEPTH_COMPONENT16",
"WebGLRenderingContext.STENCIL_INDEX8",
"WebGLRenderingContext.DEPTH_STENCIL",
"WebGLRenderingContext.RENDERBUFFER_WIDTH",
"WebGLRenderingContext.RENDERBUFFER_HEIGHT",
"WebGLRenderingContext.RENDERBUFFER_INTERNAL_FORMAT",
"WebGLRenderingContext.RENDERBUFFER_RED_SIZE",
"WebGLRenderingContext.RENDERBUFFER_GREEN_SIZE",
"WebGLRenderingContext.RENDERBUFFER_BLUE_SIZE",
"WebGLRenderingContext.RENDERBUFFER_ALPHA_SIZE",
"WebGLRenderingContext.RENDERBUFFER_DEPTH_SIZE",
"WebGLRenderingContext.RENDERBUFFER_STENCIL_SIZE",
"WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",
"WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",
"WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",
"WebGLRenderingContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",
"WebGLRenderingContext.COLOR_ATTACHMENT0",
"WebGLRenderingContext.DEPTH_ATTACHMENT",
"WebGLRenderingContext.STENCIL_ATTACHMENT",
"WebGLRenderingContext.DEPTH_STENCIL_ATTACHMENT",
"WebGLRenderingContext.NONE",
"WebGLRenderingContext.FRAMEBUFFER_COMPLETE",
"WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT",
"WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",
"WebGLRenderingContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS",
"WebGLRenderingContext.FRAMEBUFFER_UNSUPPORTED",
"WebGLRenderingContext.FRAMEBUFFER_BINDING",
"WebGLRenderingContext.RENDERBUFFER_BINDING",
"WebGLRenderingContext.MAX_RENDERBUFFER_SIZE",
"WebGLRenderingContext.INVALID_FRAMEBUFFER_OPERATION",
"WebGLRenderingContext.UNPACK_FLIP_Y_WEBGL",
"WebGLRenderingContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL",
"WebGLRenderingContext.CONTEXT_LOST_WEBGL",
"WebGLRenderingContext.UNPACK_COLORSPACE_CONVERSION_WEBGL",
"WebGLRenderingContext.BROWSER_DEFAULT_WEBGL",
"WebKitCSSMatrix.fromFloat32Array",
"WebKitCSSMatrix.fromFloat64Array",
"WebKitCSSMatrix.fromMatrix",
"WebSocket.CONNECTING",
"WebSocket.OPEN",
"WebSocket.CLOSING",
"WebSocket.CLOSED",
"WheelEvent.DOM_DELTA_PIXEL",
"WheelEvent.DOM_DELTA_LINE",
"WheelEvent.DOM_DELTA_PAGE",
"Window.TEMPORARY",
"Window.PERSISTENT",
"XMLHttpRequest.UNSENT",
"XMLHttpRequest.OPENED",
"XMLHttpRequest.HEADERS_RECEIVED",
"XMLHttpRequest.LOADING",
"XMLHttpRequest.DONE",
"XPathResult.ANY_TYPE",
"XPathResult.NUMBER_TYPE",
"XPathResult.STRING_TYPE",
"XPathResult.BOOLEAN_TYPE",
"XPathResult.UNORDERED_NODE_ITERATOR_TYPE",
"XPathResult.ORDERED_NODE_ITERATOR_TYPE",
"XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE",
"XPathResult.ORDERED_NODE_SNAPSHOT_TYPE",
"XPathResult.ANY_UNORDERED_NODE_TYPE",
"XPathResult.FIRST_ORDERED_NODE_TYPE",
"XRWebGLLayer.getNativeFramebufferScaleFactor",
"AbortController.abort",
"AbsoluteOrientationSensor.populateMatrix",
"AbsoluteOrientationSensor.start",
"AbsoluteOrientationSensor.stop",
"AbsoluteOrientationSensor.addEventListener",
"AbsoluteOrientationSensor.dispatchEvent",
"AbsoluteOrientationSensor.removeEventListener",
"Accelerometer.start",
"Accelerometer.stop",
"Accelerometer.addEventListener",
"Accelerometer.dispatchEvent",
"Accelerometer.removeEventListener",
"Animation.cancel",
"Animation.finish",
"Animation.pause",
"Animation.play",
"Animation.reverse",
"Animation.updatePlaybackRate",
"Animation.commitStyles",
"Animation.persist",
"Animation.addEventListener",
"Animation.dispatchEvent",
"Animation.removeEventListener",
"Audio.addTextTrack",
"Audio.canPlayType",
"Audio.captureStream",
"Audio.load",
"Audio.pause",
"Audio.play",
"Audio.setSinkId",
"Audio.setMediaKeys",
"Audio.attachInternals",
"Audio.blur",
"Audio.click",
"Audio.focus",
"Audio.after",
"Audio.animate",
"Audio.append",
"Audio.attachShadow",
"Audio.before",
"Audio.closest",
"Audio.computedStyleMap",
"Audio.getAttribute",
"Audio.getAttributeNS",
"Audio.getAttributeNames",
"Audio.getAttributeNode",
"Audio.getAttributeNodeNS",
"Audio.getBoundingClientRect",
"Audio.getClientRects",
"Audio.getElementsByClassName",
"Audio.getElementsByTagName",
"Audio.getElementsByTagNameNS",
"Audio.getInnerHTML",
"Audio.hasAttribute",
"Audio.hasAttributeNS",
"Audio.hasAttributes",
"Audio.hasPointerCapture",
"Audio.insertAdjacentElement",
"Audio.insertAdjacentHTML",
"Audio.insertAdjacentText",
"Audio.matches",
"Audio.prepend",
"Audio.querySelector",
"Audio.querySelectorAll",
"Audio.releasePointerCapture",
"Audio.remove",
"Audio.removeAttribute",
"Audio.removeAttributeNS",
"Audio.removeAttributeNode",
"Audio.replaceChildren",
"Audio.replaceWith",
"Audio.requestFullscreen",
"Audio.requestPointerLock",
"Audio.scroll",
"Audio.scrollBy",
"Audio.scrollIntoView",
"Audio.scrollIntoViewIfNeeded",
"Audio.scrollTo",
"Audio.setAttribute",
"Audio.setAttributeNS",
"Audio.setAttributeNode",
"Audio.setAttributeNodeNS",
"Audio.setPointerCapture",
"Audio.toggleAttribute",
"Audio.webkitMatchesSelector",
"Audio.webkitRequestFullScreen",
"Audio.webkitRequestFullscreen",
"Audio.checkVisibility",
"Audio.getAnimations",
"Audio.setHTML",
"Audio.appendChild",
"Audio.cloneNode",
"Audio.compareDocumentPosition",
"Audio.contains",
"Audio.getRootNode",
"Audio.hasChildNodes",
"Audio.insertBefore",
"Audio.isDefaultNamespace",
"Audio.isEqualNode",
"Audio.isSameNode",
"Audio.lookupNamespaceURI",
"Audio.lookupPrefix",
"Audio.normalize",
"Audio.removeChild",
"Audio.replaceChild",
"Audio.addEventListener",
"Audio.dispatchEvent",
"Audio.removeEventListener",
"AudioContext.close",
"AudioContext.createMediaElementSource",
"AudioContext.createMediaStreamDestination",
"AudioContext.createMediaStreamSource",
"AudioContext.getOutputTimestamp",
"AudioContext.resume",
"AudioContext.suspend",
"AudioContext.createAnalyser",
"AudioContext.createBiquadFilter",
"AudioContext.createBuffer",
"AudioContext.createBufferSource",
"AudioContext.createChannelMerger",
"AudioContext.createChannelSplitter",
"AudioContext.createConstantSource",
"AudioContext.createConvolver",
"AudioContext.createDelay",
"AudioContext.createDynamicsCompressor",
"AudioContext.createGain",
"AudioContext.createIIRFilter",
"AudioContext.createOscillator",
"AudioContext.createPanner",
"AudioContext.createPeriodicWave",
"AudioContext.createScriptProcessor",
"AudioContext.createStereoPanner",
"AudioContext.createWaveShaper",
"AudioContext.decodeAudioData",
"AudioContext.addEventListener",
"AudioContext.dispatchEvent",
"AudioContext.removeEventListener",
"BarcodeDetector.detect",
"Blob.arrayBuffer",
"Blob.slice",
"Blob.stream",
"Blob.text",
"CaptureController.setFocusBehavior",
"Comment.after",
"Comment.appendData",
"Comment.before",
"Comment.deleteData",
"Comment.insertData",
"Comment.remove",
"Comment.replaceData",
"Comment.replaceWith",
"Comment.substringData",
"Comment.appendChild",
"Comment.cloneNode",
"Comment.compareDocumentPosition",
"Comment.contains",
"Comment.getRootNode",
"Comment.hasChildNodes",
"Comment.insertBefore",
"Comment.isDefaultNamespace",
"Comment.isEqualNode",
"Comment.isSameNode",
"Comment.lookupNamespaceURI",
"Comment.lookupPrefix",
"Comment.normalize",
"Comment.removeChild",
"Comment.replaceChild",
"Comment.addEventListener",
"Comment.dispatchEvent",
"Comment.removeEventListener",
"CSSStyleSheet.addRule",
"CSSStyleSheet.deleteRule",
"CSSStyleSheet.insertRule",
"CSSStyleSheet.removeRule",
"CSSStyleSheet.replace",
"CSSStyleSheet.replaceSync",
"DataTransfer.clearData",
"DataTransfer.getData",
"DataTransfer.setData",
"DataTransfer.setDragImage", "Document.adoptNode",
"Document.append",
"Document.captureEvents",
"Document.caretRangeFromPoint",
"Document.clear",
"Document.close",
"Document.createAttribute",
"Document.createAttributeNS",
"Document.createCDATASection",
"Document.createComment",
"Document.createDocumentFragment",
"Document.createElement",
"Document.createElementNS",
"Document.createEvent",
"Document.createExpression",
"Document.createNSResolver",
"Document.createNodeIterator",
"Document.createProcessingInstruction",
"Document.createRange",
"Document.createTextNode",
"Document.createTreeWalker",
"Document.elementFromPoint",
"Document.elementsFromPoint",
"Document.evaluate",
"Document.execCommand",
"Document.exitFullscreen",
"Document.exitPointerLock",
"Document.getElementById",
"Document.getElementsByClassName",
"Document.getElementsByName",
"Document.getElementsByTagName",
"Document.getElementsByTagNameNS",
"Document.getSelection",
"Document.hasFocus",
"Document.importNode",
"Document.open",
"Document.prepend",
"Document.queryCommandEnabled",
"Document.queryCommandIndeterm",
"Document.queryCommandState",
"Document.queryCommandSupported",
"Document.queryCommandValue",
"Document.querySelector",
"Document.querySelectorAll",
"Document.releaseEvents",
"Document.replaceChildren",
"Document.webkitCancelFullScreen",
"Document.webkitExitFullscreen",
"Document.write",
"Document.writeln",
"Document.exitPictureInPicture",
"Document.getAnimations",
"Document.appendChild",
"Document.cloneNode",
"Document.compareDocumentPosition",
"Document.contains",
"Document.getRootNode",
"Document.hasChildNodes",
"Document.insertBefore",
"Document.isDefaultNamespace",
"Document.isEqualNode",
"Document.isSameNode",
"Document.lookupNamespaceURI",
"Document.lookupPrefix",
"Document.normalize",
"Document.removeChild",
"Document.replaceChild",
"Document.addEventListener",
"Document.dispatchEvent",
"Document.removeEventListener",
"DocumentFragment.append",
"DocumentFragment.getElementById",
"DocumentFragment.prepend",
"DocumentFragment.querySelector",
"DocumentFragment.querySelectorAll",
"DocumentFragment.replaceChildren",
"DocumentFragment.appendChild",
"DocumentFragment.cloneNode",
"DocumentFragment.compareDocumentPosition",
"DocumentFragment.contains",
"DocumentFragment.getRootNode",
"DocumentFragment.hasChildNodes",
"DocumentFragment.insertBefore",
"DocumentFragment.isDefaultNamespace",
"DocumentFragment.isEqualNode",
"DocumentFragment.isSameNode",
"DocumentFragment.lookupNamespaceURI",
"DocumentFragment.lookupPrefix",
"DocumentFragment.normalize",
"DocumentFragment.removeChild",
"DocumentFragment.replaceChild",
"DocumentFragment.addEventListener",
"DocumentFragment.dispatchEvent",
"DocumentFragment.removeEventListener",
"DOMMatrix.invertSelf",
"DOMMatrix.multiplySelf",
"DOMMatrix.preMultiplySelf",
"DOMMatrix.rotateAxisAngleSelf",
"DOMMatrix.rotateFromVectorSelf",
"DOMMatrix.rotateSelf",
"DOMMatrix.scale3dSelf",
"DOMMatrix.scaleSelf",
"DOMMatrix.skewXSelf",
"DOMMatrix.skewYSelf",
"DOMMatrix.translateSelf",
"DOMMatrix.setMatrixValue",
"DOMMatrix.flipX",
"DOMMatrix.flipY",
"DOMMatrix.inverse",
"DOMMatrix.multiply",
"DOMMatrix.rotate",
"DOMMatrix.rotateAxisAngle",
"DOMMatrix.rotateFromVector",
"DOMMatrix.scale",
"DOMMatrix.scale3d",
"DOMMatrix.scaleNonUniform",
"DOMMatrix.skewX",
"DOMMatrix.skewY",
"DOMMatrix.toFloat32Array",
"DOMMatrix.toFloat64Array",
"DOMMatrix.toJSON",
"DOMMatrix.transformPoint",
"DOMMatrix.translate",
"DOMMatrix.toString",
"DOMMatrixReadOnly.flipX",
"DOMMatrixReadOnly.flipY",
"DOMMatrixReadOnly.inverse",
"DOMMatrixReadOnly.multiply",
"DOMMatrixReadOnly.rotate",
"DOMMatrixReadOnly.rotateAxisAngle",
"DOMMatrixReadOnly.rotateFromVector",
"DOMMatrixReadOnly.scale",
"DOMMatrixReadOnly.scale3d",
"DOMMatrixReadOnly.scaleNonUniform",
"DOMMatrixReadOnly.skewX",
"DOMMatrixReadOnly.skewY",
"DOMMatrixReadOnly.toFloat32Array",
"DOMMatrixReadOnly.toFloat64Array",
"DOMMatrixReadOnly.toJSON",
"DOMMatrixReadOnly.transformPoint",
"DOMMatrixReadOnly.translate",
"DOMMatrixReadOnly.toString",
"DOMParser.parseFromString",
"DOMPoint.matrixTransform",
"DOMPoint.toJSON",
"DOMPointReadOnly.matrixTransform",
"DOMPointReadOnly.toJSON",
"DOMQuad.getBounds",
"DOMQuad.toJSON",
"DOMRect.toJSON",
"DOMRectReadOnly.toJSON",
"EventTarget.addEventListener",
"EventTarget.dispatchEvent",
"EventTarget.removeEventListener",
"EyeDropper.open",
"FileReader.abort",
"FileReader.readAsArrayBuffer",
"FileReader.readAsBinaryString",
"FileReader.readAsDataURL",
"FileReader.readAsText",
"FileReader.addEventListener",
"FileReader.dispatchEvent",
"FileReader.removeEventListener",
"FormData.append",
"FormData.delete",
"FormData.get",
"FormData.getAll",
"FormData.has",
"FormData.set",
"FormData.entries",
"FormData.forEach",
"FormData.keys",
"FormData.values",
"GravitySensor.start",
"GravitySensor.stop",
"GravitySensor.addEventListener",
"GravitySensor.dispatchEvent",
"GravitySensor.removeEventListener",
"Gyroscope.start",
"Gyroscope.stop",
"Gyroscope.addEventListener",
"Gyroscope.dispatchEvent",
"Gyroscope.removeEventListener",
"Headers.append",
"Headers.delete",
"Headers.get",
"Headers.has",
"Headers.set",
"Headers.entries",
"Headers.forEach",
"Headers.keys",
"Headers.values",
"Highlight.add",
"Highlight.clear",
"Highlight.delete",
"Highlight.entries",
"Highlight.forEach",
"Highlight.has",
"Highlight.keys",
"Highlight.values",
"IdleDetector.start",
"IdleDetector.addEventListener",
"IdleDetector.dispatchEvent",
"IdleDetector.removeEventListener",
"Image.decode",
"Image.attachInternals",
"Image.blur",
"Image.click",
"Image.focus",
"Image.after",
"Image.animate",
"Image.append",
"Image.attachShadow",
"Image.before",
"Image.closest",
"Image.computedStyleMap",
"Image.getAttribute",
"Image.getAttributeNS",
"Image.getAttributeNames",
"Image.getAttributeNode",
"Image.getAttributeNodeNS",
"Image.getBoundingClientRect",
"Image.getClientRects",
"Image.getElementsByClassName",
"Image.getElementsByTagName",
"Image.getElementsByTagNameNS",
"Image.getInnerHTML",
"Image.hasAttribute",
"Image.hasAttributeNS",
"Image.hasAttributes",
"Image.hasPointerCapture",
"Image.insertAdjacentElement",
"Image.insertAdjacentHTML",
"Image.insertAdjacentText",
"Image.matches",
"Image.prepend",
"Image.querySelector",
"Image.querySelectorAll",
"Image.releasePointerCapture",
"Image.remove",
"Image.removeAttribute",
"Image.removeAttributeNS",
"Image.removeAttributeNode",
"Image.replaceChildren",
"Image.replaceWith",
"Image.requestFullscreen",
"Image.requestPointerLock",
"Image.scroll",
"Image.scrollBy",
"Image.scrollIntoView",
"Image.scrollIntoViewIfNeeded",
"Image.scrollTo",
"Image.setAttribute",
"Image.setAttributeNS",
"Image.setAttributeNode",
"Image.setAttributeNodeNS",
"Image.setPointerCapture",
"Image.toggleAttribute",
"Image.webkitMatchesSelector",
"Image.webkitRequestFullScreen",
"Image.webkitRequestFullscreen",
"Image.checkVisibility",
"Image.getAnimations",
"Image.setHTML",
"Image.appendChild",
"Image.cloneNode",
"Image.compareDocumentPosition",
"Image.contains",
"Image.getRootNode",
"Image.hasChildNodes",
"Image.insertBefore",
"Image.isDefaultNamespace",
"Image.isEqualNode",
"Image.isSameNode",
"Image.lookupNamespaceURI",
"Image.lookupPrefix",
"Image.normalize",
"Image.removeChild",
"Image.replaceChild",
"Image.addEventListener",
"Image.dispatchEvent",
"Image.removeEventListener",
"LinearAccelerationSensor.start",
"LinearAccelerationSensor.stop",
"LinearAccelerationSensor.addEventListener",
"LinearAccelerationSensor.dispatchEvent",
"LinearAccelerationSensor.removeEventListener",
"MediaSource.addSourceBuffer",
"MediaSource.clearLiveSeekableRange",
"MediaSource.endOfStream",
"MediaSource.removeSourceBuffer",
"MediaSource.setLiveSeekableRange",
"MediaSource.addEventListener",
"MediaSource.dispatchEvent",
"MediaSource.removeEventListener",
"MediaStream.addTrack",
"MediaStream.clone",
"MediaStream.getAudioTracks",
"MediaStream.getTrackById",
"MediaStream.getTracks",
"MediaStream.getVideoTracks",
"MediaStream.removeTrack",
"MediaStream.addEventListener",
"MediaStream.dispatchEvent",
"MediaStream.removeEventListener",
"Path2D.addPath",
"Path2D.roundRect",
"Path2D.arc",
"Path2D.arcTo",
"Path2D.bezierCurveTo",
"Path2D.closePath",
"Path2D.ellipse",
"Path2D.lineTo",
"Path2D.moveTo",
"Path2D.quadraticCurveTo",
"Path2D.rect",
"Range.cloneContents",
"Range.cloneRange",
"Range.collapse",
"Range.compareBoundaryPoints",
"Range.comparePoint",
"Range.createContextualFragment",
"Range.deleteContents",
"Range.detach",
"Range.expand",
"Range.extractContents",
"Range.getBoundingClientRect",
"Range.getClientRects",
"Range.insertNode",
"Range.intersectsNode",
"Range.isPointInRange",
"Range.selectNode",
"Range.selectNodeContents",
"Range.setEnd",
"Range.setEndAfter",
"Range.setEndBefore",
"Range.setStart",
"Range.setStartAfter",
"Range.setStartBefore",
"Range.surroundContents",
"Range.toString",
"ReadableStream.cancel",
"ReadableStream.getReader",
"ReadableStream.pipeThrough",
"ReadableStream.pipeTo",
"ReadableStream.tee",
"RelativeOrientationSensor.populateMatrix",
"RelativeOrientationSensor.start",
"RelativeOrientationSensor.stop",
"RelativeOrientationSensor.addEventListener",
"RelativeOrientationSensor.dispatchEvent",
"RelativeOrientationSensor.removeEventListener",
"Response.arrayBuffer",
"Response.blob",
"Response.clone",
"Response.formData",
"Response.text",
"RTCPeerConnection.addIceCandidate",
"RTCPeerConnection.addStream",
"RTCPeerConnection.addTrack",
"RTCPeerConnection.addTransceiver",
"RTCPeerConnection.close",
"RTCPeerConnection.createAnswer",
"RTCPeerConnection.createDTMFSender",
"RTCPeerConnection.createDataChannel",
"RTCPeerConnection.createOffer",
"RTCPeerConnection.getConfiguration",
"RTCPeerConnection.getLocalStreams",
"RTCPeerConnection.getReceivers",
"RTCPeerConnection.getRemoteStreams",
"RTCPeerConnection.getSenders",
"RTCPeerConnection.getStats",
"RTCPeerConnection.getTransceivers",
"RTCPeerConnection.removeStream",
"RTCPeerConnection.removeTrack",
"RTCPeerConnection.restartIce",
"RTCPeerConnection.setConfiguration",
"RTCPeerConnection.setLocalDescription",
"RTCPeerConnection.setRemoteDescription",
"RTCPeerConnection.addEventListener",
"RTCPeerConnection.dispatchEvent",
"RTCPeerConnection.removeEventListener",
"RTCSessionDescription.toJSON",
"Sanitizer.getConfiguration",
"SpeechSynthesisUtterance.addEventListener",
"SpeechSynthesisUtterance.dispatchEvent",
"SpeechSynthesisUtterance.removeEventListener",
"TaskController.setPriority",
"TaskController.abort",
"Text.splitText",
"Text.after",
"Text.appendData",
"Text.before",
"Text.deleteData",
"Text.insertData",
"Text.remove",
"Text.replaceData",
"Text.replaceWith",
"Text.substringData",
"Text.appendChild",
"Text.cloneNode",
"Text.compareDocumentPosition",
"Text.contains",
"Text.getRootNode",
"Text.hasChildNodes",
"Text.insertBefore",
"Text.isDefaultNamespace",
"Text.isEqualNode",
"Text.isSameNode",
"Text.lookupNamespaceURI",
"Text.lookupPrefix",
"Text.normalize",
"Text.removeChild",
"Text.replaceChild",
"Text.addEventListener",
"Text.dispatchEvent",
"Text.removeEventListener",
"TextDecoder.decode",
"TextEncoder.encode",
"TextEncoder.encodeInto",
"URLPattern.exec",
"URLPattern.test",
"URLSearchParams.append",
"URLSearchParams.delete",
"URLSearchParams.get",
"URLSearchParams.getAll",
"URLSearchParams.has",
"URLSearchParams.set",
"URLSearchParams.sort",
"URLSearchParams.toString",
"URLSearchParams.entries",
"URLSearchParams.forEach",
"URLSearchParams.keys",
"URLSearchParams.values",
"VideoColorSpace.toJSON",
"webkitMediaStream.addTrack",
"webkitMediaStream.clone",
"webkitMediaStream.getAudioTracks",
"webkitMediaStream.getTrackById",
"webkitMediaStream.getTracks",
"webkitMediaStream.getVideoTracks",
"webkitMediaStream.removeTrack",
"webkitMediaStream.addEventListener",
"webkitMediaStream.dispatchEvent",
"webkitMediaStream.removeEventListener",
"webkitRTCPeerConnection.addIceCandidate",
"webkitRTCPeerConnection.addStream",
"webkitRTCPeerConnection.addTrack",
"webkitRTCPeerConnection.addTransceiver",
"webkitRTCPeerConnection.close",
"webkitRTCPeerConnection.createAnswer",
"webkitRTCPeerConnection.createDTMFSender",
"webkitRTCPeerConnection.createDataChannel",
"webkitRTCPeerConnection.createOffer",
"webkitRTCPeerConnection.getConfiguration",
"webkitRTCPeerConnection.getLocalStreams",
"webkitRTCPeerConnection.getReceivers",
"webkitRTCPeerConnection.getRemoteStreams",
"webkitRTCPeerConnection.getSenders",
"webkitRTCPeerConnection.getStats",
"webkitRTCPeerConnection.getTransceivers",
"webkitRTCPeerConnection.removeStream",
"webkitRTCPeerConnection.removeTrack",
"webkitRTCPeerConnection.restartIce",
"webkitRTCPeerConnection.setConfiguration",
"webkitRTCPeerConnection.setLocalDescription",
"webkitRTCPeerConnection.setRemoteDescription",
"webkitRTCPeerConnection.addEventListener",
"webkitRTCPeerConnection.dispatchEvent",
"webkitRTCPeerConnection.removeEventListener",
"webkitSpeechGrammarList.addFromString",
"webkitSpeechGrammarList.addFromUri",
"webkitSpeechGrammarList.item",
"webkitSpeechRecognition.abort",
"webkitSpeechRecognition.start",
"webkitSpeechRecognition.stop",
"webkitSpeechRecognition.addEventListener",
"webkitSpeechRecognition.dispatchEvent",
"webkitSpeechRecognition.removeEventListener",
"WebKitCSSMatrix.invertSelf",
"WebKitCSSMatrix.multiplySelf",
"WebKitCSSMatrix.preMultiplySelf",
"WebKitCSSMatrix.rotateAxisAngleSelf",
"WebKitCSSMatrix.rotateFromVectorSelf",
"WebKitCSSMatrix.rotateSelf",
"WebKitCSSMatrix.scale3dSelf",
"WebKitCSSMatrix.scaleSelf",
"WebKitCSSMatrix.skewXSelf",
"WebKitCSSMatrix.skewYSelf",
"WebKitCSSMatrix.translateSelf",
"WebKitCSSMatrix.setMatrixValue",
"WebKitCSSMatrix.flipX",
"WebKitCSSMatrix.flipY",
"WebKitCSSMatrix.inverse",
"WebKitCSSMatrix.multiply",
"WebKitCSSMatrix.rotate",
"WebKitCSSMatrix.rotateAxisAngle",
"WebKitCSSMatrix.rotateFromVector",
"WebKitCSSMatrix.scale",
"WebKitCSSMatrix.scale3d",
"WebKitCSSMatrix.scaleNonUniform",
"WebKitCSSMatrix.skewX",
"WebKitCSSMatrix.skewY",
"WebKitCSSMatrix.toFloat32Array",
"WebKitCSSMatrix.toFloat64Array",
"WebKitCSSMatrix.toJSON",
"WebKitCSSMatrix.transformPoint",
"WebKitCSSMatrix.translate",
"WebKitCSSMatrix.toString",
"WritableStream.abort",
"WritableStream.close",
"WritableStream.getWriter",
"XMLHttpRequest.abort",
"XMLHttpRequest.getAllResponseHeaders",
"XMLHttpRequest.getResponseHeader",
"XMLHttpRequest.open",
"XMLHttpRequest.overrideMimeType",
"XMLHttpRequest.send",
"XMLHttpRequest.setRequestHeader",
"XMLHttpRequest.addEventListener",
"XMLHttpRequest.dispatchEvent",
"XMLHttpRequest.removeEventListener",
"XMLSerializer.serializeToString",
"XPathEvaluator.createExpression",
"XPathEvaluator.createNSResolver",
"XPathEvaluator.evaluate",
"XSLTProcessor.clearParameters",
"XSLTProcessor.getParameter",
"XSLTProcessor.importStylesheet",
"XSLTProcessor.removeParameter",
"XSLTProcessor.reset",
"XSLTProcessor.setParameter",
"XSLTProcessor.transformToDocument",
"XSLTProcessor.transformToFragment"
]
let styleProps = [
"style.accentColor",
"style.additiveSymbols",
"style.alignContent",
"style.alignItems",
"style.alignSelf",
"style.alignmentBaseline",
"style.all",
"style.animation",
"style.animationDelay",
"style.animationDirection",
"style.animationDuration",
"style.animationFillMode",
"style.animationIterationCount",
"style.animationName",
"style.animationPlayState",
"style.animationTimingFunction",
"style.appRegion",
"style.appearance",
"style.ascentOverride",
"style.aspectRatio",
"style.backdropFilter",
"style.backfaceVisibility",
"style.background",
"style.backgroundAttachment",
"style.backgroundBlendMode",
"style.backgroundClip",
"style.backgroundColor",
"style.backgroundImage",
"style.backgroundOrigin",
"style.backgroundPosition",
"style.backgroundPositionX",
"style.backgroundPositionY",
"style.backgroundRepeat",
"style.backgroundRepeatX",
"style.backgroundRepeatY",
"style.backgroundSize",
"style.basePalette",
"style.baselineShift",
"style.blockSize",
"style.border",
"style.borderBlock",
"style.borderBlockColor",
"style.borderBlockEnd",
"style.borderBlockEndColor",
"style.borderBlockEndStyle",
"style.borderBlockEndWidth",
"style.borderBlockStart",
"style.borderBlockStartColor",
"style.borderBlockStartStyle",
"style.borderBlockStartWidth",
"style.borderBlockStyle",
"style.borderBlockWidth",
"style.borderBottom",
"style.borderBottomColor",
"style.borderBottomLeftRadius",
"style.borderBottomRightRadius",
"style.borderBottomStyle",
"style.borderBottomWidth",
"style.borderCollapse",
"style.borderColor",
"style.borderEndEndRadius",
"style.borderEndStartRadius",
"style.borderImage",
"style.borderImageOutset",
"style.borderImageRepeat",
"style.borderImageSlice",
"style.borderImageSource",
"style.borderImageWidth",
"style.borderInline",
"style.borderInlineColor",
"style.borderInlineEnd",
"style.borderInlineEndColor",
"style.borderInlineEndStyle",
"style.borderInlineEndWidth",
"style.borderInlineStart",
"style.borderInlineStartColor",
"style.borderInlineStartStyle",
"style.borderInlineStartWidth",
"style.borderInlineStyle",
"style.borderInlineWidth",
"style.borderLeft",
"style.borderLeftColor",
"style.borderLeftStyle",
"style.borderLeftWidth",
"style.borderRadius",
"style.borderRight",
"style.borderRightColor",
"style.borderRightStyle",
"style.borderRightWidth",
"style.borderSpacing",
"style.borderStartEndRadius",
"style.borderStartStartRadius",
"style.borderStyle",
"style.borderTop",
"style.borderTopColor",
"style.borderTopLeftRadius",
"style.borderTopRightRadius",
"style.borderTopStyle",
"style.borderTopWidth",
"style.borderWidth",
"style.bottom",
"style.boxShadow",
"style.boxSizing",
"style.breakAfter",
"style.breakBefore",
"style.breakInside",
"style.bufferedRendering",
"style.captionSide",
"style.caretColor",
"style.clear",
"style.clip",
"style.clipPath",
"style.clipRule",
"style.color",
"style.colorInterpolation",
"style.colorInterpolationFilters",
"style.colorRendering",
"style.colorScheme",
"style.columnCount",
"style.columnFill",
"style.columnGap",
"style.columnRule",
"style.columnRuleColor",
"style.columnRuleStyle",
"style.columnRuleWidth",
"style.columnSpan",
"style.columnWidth",
"style.columns",
"style.contain",
"style.containIntrinsicBlockSize",
"style.containIntrinsicHeight",
"style.containIntrinsicInlineSize",
"style.containIntrinsicSize",
"style.containIntrinsicWidth",
"style.container",
"style.containerName",
"style.containerType",
"style.content",
"style.contentVisibility",
"style.counterIncrement",
"style.counterReset",
"style.counterSet",
"style.cursor",
"style.cx",
"style.cy",
"style.d",
"style.descentOverride",
"style.direction",
"style.display",
"style.dominantBaseline",
"style.emptyCells",
"style.epubCaptionSide",
"style.epubTextCombine",
"style.epubTextEmphasis",
"style.epubTextEmphasisColor",
"style.epubTextEmphasisStyle",
"style.epubTextOrientation",
"style.epubTextTransform",
"style.epubWordBreak",
"style.epubWritingMode",
"style.fallback",
"style.fill",
"style.fillOpacity",
"style.fillRule",
"style.filter",
"style.flex",
"style.flexBasis",
"style.flexDirection",
"style.flexFlow",
"style.flexGrow",
"style.flexShrink",
"style.flexWrap",
"style.float",
"style.floodColor",
"style.floodOpacity",
"style.font",
"style.fontDisplay",
"style.fontFamily",
"style.fontFeatureSettings",
"style.fontKerning",
"style.fontOpticalSizing",
"style.fontPalette",
"style.fontSize",
"style.fontStretch",
"style.fontStyle",
"style.fontSynthesis",
"style.fontSynthesisSmallCaps",
"style.fontSynthesisStyle",
"style.fontSynthesisWeight",
"style.fontVariant",
"style.fontVariantCaps",
"style.fontVariantEastAsian",
"style.fontVariantLigatures",
"style.fontVariantNumeric",
"style.fontVariationSettings",
"style.fontWeight",
"style.forcedColorAdjust",
"style.gap",
"style.grid",
"style.gridArea",
"style.gridAutoColumns",
"style.gridAutoFlow",
"style.gridAutoRows",
"style.gridColumn",
"style.gridColumnEnd",
"style.gridColumnGap",
"style.gridColumnStart",
"style.gridGap",
"style.gridRow",
"style.gridRowEnd",
"style.gridRowGap",
"style.gridRowStart",
"style.gridTemplate",
"style.gridTemplateAreas",
"style.gridTemplateColumns",
"style.gridTemplateRows",
"style.height",
"style.hyphenateCharacter",
"style.hyphenateLimitChars",
"style.hyphens",
"style.imageOrientation",
"style.imageRendering",
"style.inherits",
"style.initialValue",
"style.inlineSize",
"style.inset",
"style.insetBlock",
"style.insetBlockEnd",
"style.insetBlockStart",
"style.insetInline",
"style.insetInlineEnd",
"style.insetInlineStart",
"style.isolation",
"style.justifyContent",
"style.justifyItems",
"style.justifySelf",
"style.left",
"style.letterSpacing",
"style.lightingColor",
"style.lineBreak",
"style.lineGapOverride",
"style.lineHeight",
"style.listStyle",
"style.listStyleImage",
"style.listStylePosition",
"style.listStyleType",
"style.margin",
"style.marginBlock",
"style.marginBlockEnd",
"style.marginBlockStart",
"style.marginBottom",
"style.marginInline",
"style.marginInlineEnd",
"style.marginInlineStart",
"style.marginLeft",
"style.marginRight",
"style.marginTop",
"style.marker",
"style.markerEnd",
"style.markerMid",
"style.markerStart",
"style.mask",
"style.maskType",
"style.mathDepth",
"style.mathShift",
"style.mathStyle",
"style.maxBlockSize",
"style.maxHeight",
"style.maxInlineSize",
"style.maxWidth",
"style.minBlockSize",
"style.minHeight",
"style.minInlineSize",
"style.minWidth",
"style.mixBlendMode",
"style.negative",
"style.objectFit",
"style.objectPosition",
"style.objectViewBox",
"style.offset",
"style.offsetDistance",
"style.offsetPath",
"style.offsetRotate",
"style.opacity",
"style.order",
"style.orphans",
"style.outline",
"style.outlineColor",
"style.outlineOffset",
"style.outlineStyle",
"style.outlineWidth",
"style.overflow",
"style.overflowAnchor",
"style.overflowClipMargin",
"style.overflowWrap",
"style.overflowX",
"style.overflowY",
"style.overrideColors",
"style.overscrollBehavior",
"style.overscrollBehaviorBlock",
"style.overscrollBehaviorInline",
"style.overscrollBehaviorX",
"style.overscrollBehaviorY",
"style.pad",
"style.padding",
"style.paddingBlock",
"style.paddingBlockEnd",
"style.paddingBlockStart",
"style.paddingBottom",
"style.paddingInline",
"style.paddingInlineEnd",
"style.paddingInlineStart",
"style.paddingLeft",
"style.paddingRight",
"style.paddingTop",
"style.page",
"style.pageBreakAfter",
"style.pageBreakBefore",
"style.pageBreakInside",
"style.pageOrientation",
"style.paintOrder",
"style.perspective",
"style.perspectiveOrigin",
"style.placeContent",
"style.placeItems",
"style.placeSelf",
"style.pointerEvents",
"style.position",
"style.prefix",
"style.quotes",
"style.r",
"style.range",
"style.resize",
"style.right",
"style.rotate",
"style.rowGap",
"style.rubyPosition",
"style.rx",
"style.ry",
"style.scale",
"style.scrollBehavior",
"style.scrollMargin",
"style.scrollMarginBlock",
"style.scrollMarginBlockEnd",
"style.scrollMarginBlockStart",
"style.scrollMarginBottom",
"style.scrollMarginInline",
"style.scrollMarginInlineEnd",
"style.scrollMarginInlineStart",
"style.scrollMarginLeft",
"style.scrollMarginRight",
"style.scrollMarginTop",
"style.scrollPadding",
"style.scrollPaddingBlock",
"style.scrollPaddingBlockEnd",
"style.scrollPaddingBlockStart",
"style.scrollPaddingBottom",
"style.scrollPaddingInline",
"style.scrollPaddingInlineEnd",
"style.scrollPaddingInlineStart",
"style.scrollPaddingLeft",
"style.scrollPaddingRight",
"style.scrollPaddingTop",
"style.scrollSnapAlign",
"style.scrollSnapStop",
"style.scrollSnapType",
"style.scrollbarGutter",
"style.shapeImageThreshold",
"style.shapeMargin",
"style.shapeOutside",
"style.shapeRendering",
"style.size",
"style.sizeAdjust",
"style.speak",
"style.speakAs",
"style.src",
"style.stopColor",
"style.stopOpacity",
"style.stroke",
"style.strokeDasharray",
"style.strokeDashoffset",
"style.strokeLinecap",
"style.strokeLinejoin",
"style.strokeMiterlimit",
"style.strokeOpacity",
"style.strokeWidth",
"style.suffix",
"style.symbols",
"style.syntax",
"style.system",
"style.tabSize",
"style.tableLayout",
"style.textAlign",
"style.textAlignLast",
"style.textAnchor",
"style.textCombineUpright",
"style.textDecoration",
"style.textDecorationColor",
"style.textDecorationLine",
"style.textDecorationSkipInk",
"style.textDecorationStyle",
"style.textDecorationThickness",
"style.textEmphasis",
"style.textEmphasisColor",
"style.textEmphasisPosition",
"style.textEmphasisStyle",
"style.textIndent",
"style.textOrientation",
"style.textOverflow",
"style.textRendering",
"style.textShadow",
"style.textSizeAdjust",
"style.textTransform",
"style.textUnderlineOffset",
"style.textUnderlinePosition",
"style.top",
"style.touchAction",
"style.transform",
"style.transformBox",
"style.transformOrigin",
"style.transformStyle",
"style.transition",
"style.transitionDelay",
"style.transitionDuration",
"style.transitionProperty",
"style.transitionTimingFunction",
"style.translate",
"style.unicodeBidi",
"style.unicodeRange",
"style.userSelect",
"style.vectorEffect",
"style.verticalAlign",
"style.visibility",
"style.webkitAlignContent",
"style.webkitAlignItems",
"style.webkitAlignSelf",
"style.webkitAnimation",
"style.webkitAnimationDelay",
"style.webkitAnimationDirection",
"style.webkitAnimationDuration",
"style.webkitAnimationFillMode",
"style.webkitAnimationIterationCount",
"style.webkitAnimationName",
"style.webkitAnimationPlayState",
"style.webkitAnimationTimingFunction",
"style.webkitAppRegion",
"style.webkitAppearance",
"style.webkitBackfaceVisibility",
"style.webkitBackgroundClip",
"style.webkitBackgroundOrigin",
"style.webkitBackgroundSize",
"style.webkitBorderAfter",
"style.webkitBorderAfterColor",
"style.webkitBorderAfterStyle",
"style.webkitBorderAfterWidth",
"style.webkitBorderBefore",
"style.webkitBorderBeforeColor",
"style.webkitBorderBeforeStyle",
"style.webkitBorderBeforeWidth",
"style.webkitBorderBottomLeftRadius",
"style.webkitBorderBottomRightRadius",
"style.webkitBorderEnd",
"style.webkitBorderEndColor",
"style.webkitBorderEndStyle",
"style.webkitBorderEndWidth",
"style.webkitBorderHorizontalSpacing",
"style.webkitBorderImage",
"style.webkitBorderRadius",
"style.webkitBorderStart",
"style.webkitBorderStartColor",
"style.webkitBorderStartStyle",
"style.webkitBorderStartWidth",
"style.webkitBorderTopLeftRadius",
"style.webkitBorderTopRightRadius",
"style.webkitBorderVerticalSpacing",
"style.webkitBoxAlign",
"style.webkitBoxDecorationBreak",
"style.webkitBoxDirection",
"style.webkitBoxFlex",
"style.webkitBoxOrdinalGroup",
"style.webkitBoxOrient",
"style.webkitBoxPack",
"style.webkitBoxReflect",
"style.webkitBoxShadow",
"style.webkitBoxSizing",
"style.webkitClipPath",
"style.webkitColumnBreakAfter",
"style.webkitColumnBreakBefore",
"style.webkitColumnBreakInside",
"style.webkitColumnCount",
"style.webkitColumnGap",
"style.webkitColumnRule",
"style.webkitColumnRuleColor",
"style.webkitColumnRuleStyle",
"style.webkitColumnRuleWidth",
"style.webkitColumnSpan",
"style.webkitColumnWidth",
"style.webkitColumns",
"style.webkitFilter",
"style.webkitFlex",
"style.webkitFlexBasis",
"style.webkitFlexDirection",
"style.webkitFlexFlow",
"style.webkitFlexGrow",
"style.webkitFlexShrink",
"style.webkitFlexWrap",
"style.webkitFontFeatureSettings",
"style.webkitFontSmoothing",
"style.webkitHighlight",
"style.webkitHyphenateCharacter",
"style.webkitJustifyContent",
"style.webkitLineBreak",
"style.webkitLineClamp",
"style.webkitLocale",
"style.webkitLogicalHeight",
"style.webkitLogicalWidth",
"style.webkitMarginAfter",
"style.webkitMarginBefore",
"style.webkitMarginEnd",
"style.webkitMarginStart",
"style.webkitMask",
"style.webkitMaskBoxImage",
"style.webkitMaskBoxImageOutset",
"style.webkitMaskBoxImageRepeat",
"style.webkitMaskBoxImageSlice",
"style.webkitMaskBoxImageSource",
"style.webkitMaskBoxImageWidth",
"style.webkitMaskClip",
"style.webkitMaskComposite",
"style.webkitMaskImage",
"style.webkitMaskOrigin",
"style.webkitMaskPosition",
"style.webkitMaskPositionX",
"style.webkitMaskPositionY",
"style.webkitMaskRepeat",
"style.webkitMaskRepeatX",
"style.webkitMaskRepeatY",
"style.webkitMaskSize",
"style.webkitMaxLogicalHeight",
"style.webkitMaxLogicalWidth",
"style.webkitMinLogicalHeight",
"style.webkitMinLogicalWidth",
"style.webkitOpacity",
"style.webkitOrder",
"style.webkitPaddingAfter",
"style.webkitPaddingBefore",
"style.webkitPaddingEnd",
"style.webkitPaddingStart",
"style.webkitPerspective",
"style.webkitPerspectiveOrigin",
"style.webkitPerspectiveOriginX",
"style.webkitPerspectiveOriginY",
"style.webkitPrintColorAdjust",
"style.webkitRtlOrdering",
"style.webkitRubyPosition",
"style.webkitShapeImageThreshold",
"style.webkitShapeMargin",
"style.webkitShapeOutside",
"style.webkitTapHighlightColor",
"style.webkitTextCombine",
"style.webkitTextDecorationsInEffect",
"style.webkitTextEmphasis",
"style.webkitTextEmphasisColor",
"style.webkitTextEmphasisPosition",
"style.webkitTextEmphasisStyle",
"style.webkitTextFillColor",
"style.webkitTextOrientation",
"style.webkitTextSecurity",
"style.webkitTextSizeAdjust",
"style.webkitTextStroke",
"style.webkitTextStrokeColor",
"style.webkitTextStrokeWidth",
"style.webkitTransform",
"style.webkitTransformOrigin",
"style.webkitTransformOriginX",
"style.webkitTransformOriginY",
"style.webkitTransformOriginZ",
"style.webkitTransformStyle",
"style.webkitTransition",
"style.webkitTransitionDelay",
"style.webkitTransitionDuration",
"style.webkitTransitionProperty",
"style.webkitTransitionTimingFunction",
"style.webkitUserDrag",
"style.webkitUserModify",
"style.webkitUserSelect",
"style.webkitWritingMode",
"style.whiteSpace",
"style.widows",
"style.width",
"style.willChange",
"style.wordBreak",
"style.wordSpacing",
"style.wordWrap",
"style.writingMode",
"style.x",
"style.y",
"style.zIndex",
"style.zoom"
]
let usedVars = []
let shuffledProps = []
function dirGlob(pattern) {
const directory = path.dirname(pattern)
const basename = path.basename(pattern)
return fs.readdirSync(directory).filter(file => minimatch(file, basename))
}
function rSeed() {
return Math.floor(Math.random() * 10000000)
}
function rString() {
return `s${(Math.random().toString(36)).substr(2, 8)}${(Math.random().toString(36)).substr(2, 8)}`
}
function defineVariable() {
let varName = `u${(Math.random() + 1).toString(36).substring(2)}`
usedVars.push(varName)
return varName
}
function useVariable() {
return rArr(usedVars)
}
function arraySeed(array, seed) {
let randomIndex = Math.floor(Math.abs(Math.sin(seed)) * array.length);
return array[randomIndex];
}
function fuzzInput(file, output) {
let buffer;
if (file) {
buffer = fs.readFileSync(file);
} else {
buffer = fs.readFileSync(0, 'utf-8');
buffer = Buffer.from(buffer, 'utf-8');
}
const modificationCount = fuzzMutationCount // crypto.randomBytes(1).readUInt8(0) % buffer.length + 1;
for (let i = 0; i < modificationCount; i++) {
const index = crypto.randomBytes(1).readUInt8(0) % buffer.length;
const modification = crypto.randomBytes(1).readUInt8(0) % 7;
switch (modification) {
case 0: {
const swapIndex = crypto.randomBytes(1).readUInt8(0) % buffer.length;
[buffer[index], buffer[swapIndex]] = [buffer[swapIndex], buffer[index]];
break;
}
case 1: {
buffer[index] = crypto.randomBytes(1).readUInt8(0);
break;
}
case 2: {
buffer = Buffer.concat([buffer.slice(0, index), buffer.slice(index + 1)]);
break;
}
case 3: {
const change = crypto.randomBytes(1).readUInt8(0) - buffer[index];
buffer[index] = (buffer[index] + change) % 256;
break;
}
case 4: {
const addition = crypto.randomBytes(1).readUInt8(0);
buffer = Buffer.concat([buffer.slice(0, index), Buffer.from([addition]), buffer.slice(index)]);
break;
}
case 5: {
const multiplier = crypto.randomBytes(1).readUInt8(0) % 256;
buffer[index] = buffer[index] * multiplier;
break;
}
case 6: {
const repeatCount = crypto.randomBytes(1).readUInt8(0) % 256;
const repeated = Array(repeatCount)
.fill(buffer[index])
.map(b => Buffer.from([b]));
buffer = Buffer.concat([buffer.slice(0, index), ...repeated, buffer.slice(index + 1)]);
break;
}
default:
throw new Error('Unexpected modification value');
}
}
fs.writeFileSync(output, buffer);
//console.log(buffer.toString())
}
function fuzzWebFont() {
var fontData = ''
// glob("fonts/*", (err, files) => {
//fontFile = files[Math.floor(Math.random() * files.length)]
var fontList = dirGlob("fonts/*")
var fontFile = fontList[Math.floor(Math.random()*fontList.length)];
fuzzInput(`fonts/${fontFile}`, `fuzzed-${fuzzTarget}.ttf`)
// Buffer.from(fs.readFileSync(`fuzzed-${fuzzTarget}.ttf`), 'binary').toString('base64')
fontData = fs.readFileSync(`fuzzed-${fuzzTarget}.ttf`, {encoding: 'base64'})
// })
return fontData
}
function propertyShuffle(array) {
let shuffledArray = array.slice()
for (let i = 0; i < shuffledArray.length; i++) {
let randomIndex = Math.floor(Math.random() * shuffledArray.length)
let currentString = shuffledArray[i]
let dotIndex = currentString.indexOf(".")
let currentProperty = currentString.substring(dotIndex + 1)
let randomString = shuffledArray[randomIndex]
let randomDotIndex = randomString.indexOf(".")
let randomProperty = randomString.substring(randomDotIndex + 1)
shuffledArray[i] = currentString.substring(0, dotIndex + 1) + randomProperty
shuffledArray[randomIndex] = randomString.substring(0, randomDotIndex + 1) + currentProperty
}
return shuffledArray;
}
function rArr(array) {
return array[Math.floor(Math.random() * array.length)]
}
function rBool() {
return Math.floor(Math.random() * 2) > 0
}
function assignStyle() {
let assignedStyle = ''
if(rBool()) {
assignedStyle = `${useVariable()}.${rArr(styleProps)} = ${assignAction()}`
} else {
assignedStyle = rBool() ? `${useVariable()}.${rArr(styleProps)} = ${rArr(defaultParams)}` : `${useVariable()}.${rArr(styleProps)} = ${rArr(usedVars)}`
}
return assignedStyle
}
function manipulateDOM() {
let output = ''
let actions = [
"assign",
"remove",
"link",
"style",
"clone",
"overwrite",
"append",
"freeze",
"click",
"blur"
]
switch(rArr(actions)) {
case "assign":
if(usedVars.length < maxElements) {
let myVar = defineVariable()
if(rBool()) {
if(rBool()) {
output = `var ${myVar} = document.createElement('${rArr(elementList)}'); ` +
`document.body.appendChild(${myVar})`
} else {
output = `document.createElement('${rArr(elementList)}'); ` +
`document.body.appendChild(${myVar})`
}
} else {
output = `var ${myVar} = ${rArr(defaultParams)}`
}
}
else {
output = manipulateDOM()
}
break;
case "remove":
if(usedVars.length > minRemoveLength) {
if(removedVars < maxRemovedElements) {
removedVars += 1
output = `${useVariable()}.remove()`
} else {
output = manipulateDOM()
}
} else {
output = manipulateDOM()
}
break;
case "link":
if(usedVars.length > minLinkLength) {
output = `${useVariable()} = ${useVariable()}`
} else {
output = manipulateDOM()
}
break;
case "clone":
if(usedVars.length > minCloneLength) {
output = `${useVariable()} = ${useVariable()}.clone()`
} else {
output = manipulateDOM()
}
break;
case "click":
`${useVariable()} = ${useVariable()}.click()`
break;
case "blur":
`${useVariable()} = ${useVariable()}.blur()`
break;
case "freeze":
if(usedVars.length > minFreezeLength) {
output = `${useVariable()} = ${useVariable()}.freeze()`
} else {
output = manipulateDOM()
}
break;
case "style":
if(rBool() && (usedVars.length > 0)) {
output = `${useVariable()}.${rArr(styleProps)} = ${assignAction()}` // ${assignAction()}
} else {
output = `${useVariable()}.${rArr(styleProps)} = ${rArr(defaultParams)}`
}
break;
case "overrwrite":
if(rBool() && (usedVars.length > 0)) {
output = `${useVariable()} = null` // ${assignAction()}
} else {
output = `${useVariable()} = ${rArr(defaultParams)}`
}
break;
case "append":
if(usedVars.length > 10) {
if(rBool()) {
output = `${useVariable()}.appendChild(document.createElement('${rArr(elementList)}'))` // ${assignAction()}
} else {
output = `${useVariable()}.appendChild(${useVariable()})` // ${assignAction()}
}
} else {
output = manipulateDOM()
}
break;
default:
// code block
}
return output
}
function assignAction(currentDepth = 0, maxDepth = 4) {
currentDepth++
let shuffleProps = rBool()
const maxParams = 5
let executed = false
let parameterCharList = [
['[', ']'],
['(', ')']
]
let newFunction = ''
parameterChars = rArr(parameterCharList)
newFunction = Array(Math.floor(Math.random() * maxParams)).fill("PARAM_PLACEHOLDER").join(",")
if (rBool()) {
newFunction = `${parameterChars[0]}${newFunction}${parameterChars[1]}`
}
newFunction = newFunction.replace(/PARAM_PLACEHOLDER/g, function() {
retVal = ''
if (rBool()) {
if (rBool()) {
// if (rBool() && currentDepth < maxDepth) {
// retVal = assignAction(currentDepth)
// } else {
subparameterChars = rArr([
['[', ']'],
['(', ')'],
])
retVal = `${subparameterChars[0]}${rArr(targetProps)}${subparameterChars[1]}`
// }
} else {
retVal = shuffleProps ? rArr(propertyShuffle(targetProps)) : rArr(targetProps)
}
} else {
retVal = rArr(targetProps)
//retVal = rBool() ? rArr(defaultParams) : rArr(usedVars)
}
return retVal
})
if(newFunction == "[]") {
newFunction = ""
}
let output = (shuffleProps ? rArr(propertyShuffle(targetProps)) : rArr(targetProps)) + newFunction
if (rBool()) {
if(!output.match(/^new/)) {
if(rBool()) {
output = "new " + output
} else {
if(rBool()) {
if(rBool()) {
output = `arraySeed(document.querySelectorAll('*'), ${rSeed()}).${output.split(".").slice(1).join(".")}`
} else {
output = `arraySeed(document.querySelectorAll('*'), ${rSeed()}) = ${output.split("= ")[1]}`
}
} else {
if(rBool()) {
output = `arraySeed(document.querySelectorAll('*'), ${rSeed()}).${rArr(["click", "arr", "blur"])}()`
} else {
output = `arraySeed(document.querySelectorAll('*'), ${rSeed()}) = arraySeed(document.querySelectorAll('*'), ${rSeed()})`
}
}
}
}
}
return output
}
app.get('/*', (req, res) => {
output = ''
if(enableDOMFuzz) {
for(i=0;i<linesOfCode;i++) {
output += (rBool() ? manipulateDOM() : assignAction()) + "\n"
}
}
let html = `
<!DOCTYPE html>
<html>
<head>
<script>
setTimeout("window.location.reload()", 10000);
function arraySeed(array, seed) {
let randomIndex = Math.floor(Math.abs(Math.sin(seed)) * array.length);
return array[randomIndex];
}
</script>
<style>
@font-face {
font-family: "Custom Font";
src: url("data:application/x-font-ttf;charset=utf-8;base64,${fuzzWebFont()}");
}
html, body, p{
zoom: 80.333333%;
font-family: "Custom Font", sans-serif!important;
}
video {
position: fixed;
top:0px;
right:0px;
width:100vw;
height:100vh;
opacity:0.2;
z-index:999;
}
</style>
</head>
<body>
<h1>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_:;*!?${crypto.randomBytes(Math.floor(Math.random()*1000)).toString()}${rString().repeat(Math.floor(Math.random()*1000))}</h1>
<b>${rString().repeat(Math.floor(Math.random()*1000))}</b>
<script>
${output.split("\n").map(x => (`try { ${x} } catch(e) { }`)).join("\n")}
function DOMReady() {
setTimeout("window.location.reload()", 1)
}
DOMReady()
</script>
<style>
html, body, p{
font-family: "Custom Font", sans-serif!important;
}
</style>
</body>
</html>
`
html = html.replace(/try \{ \} catch\(e\) \{ \}\n/g, "")
fs.writeFileSync(`output-${fuzzTarget}.html`, html)
res.send(html);
});
server.listen(serverBind, () => {
console.log(`Server started on port ${serverBind}`);
});