var compressString = function (S) {
    let nums = S.split(",")
    let str = ''
    let i = 0
    while (i < nums.length) {
        let j = i + 1
        while (nums[i] == nums[j]) {
            j++
        }
        if ((j - i) !== 1) {
            str = str + '|' + nums[i] + '-' + (j - i)
        } else {
            str = str + '|' + nums[i]
        }
        i = j
    }
    res = str.length >= S.length ? S : str
    return res
};
var decompressSTring = function (s) {
    let res = [];
    let ss = s.split('|')
    for (let i = 0; i < ss.length; i++) {
        let t = ss[i];
        if (t !== '') {
            let a = t.split('-')
            if (a.length === 2) {
                for (let j = 0; j < parseInt(a[1]); j++) {
                    res.push(parseInt(a[0]))
                }
            } else {
                res.push(parseInt(a[0]))
            }
        }
    }
    return res
}

let prox = 'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:10170';
prox = process.argv[5] || `http://user-uni003-region-us-sessid-${parseInt(Math.random() * 500 + 4000)}-sesstime-5-keep-true:q39CEBTs5A5YQXor@pr.roxlabs.cn:4600`
// prox = 'http://127.0.0.1:7890'
// prox = 'http://uni00001_custom_zone_US_sid_67336720_time_5:q39CEBTs5A@us.foxyip.com:7778'
let tlsUrl = 'http://192.168.50.106:58000/tls/forward';
tlsUrl = 'http://127.0.0.1:58000/tls/forward';
tlsUrl = 'http://52.52.23.116/tls/forward'
print = console.log
print22 = print
print1 = print
// const syncRequest = require("sync-request");
const syncRequest = require('./httpUtil')
var _random = Math.random

    // Date.now = function now() {
    //     return 1706767390635
    // };
    // Date.parse = function () {
    //     return 1706767390635
    // };
    // Date.prototype.valueOf = function () {
    //     return 1706767390635
    // };
    // Date.prototype.getTime = function () {
    //     return 1706767390635
    // };
    // Date.prototype.toString = function () {
    //     return 1706767390635
    // };
    // Performance.prototype.now = function now() {
    //     return Number('1706767390635'.slice(8))
    // }
    // times = 0
    // Math.random = function random() {
    //     return 0.08636862211354912
    // };
console.log = function () {}
const proxy = function (tt, name) {
    // return tt
    return new Proxy(tt, {
        get(target, p, receiver) {
            let res = Reflect.get(target, p, receiver);
            // if (p !== 'debug' && p !== 'Object') {
            //         if (!['Array', 'Math', 'Function', 'Object', 'ENV'].includes(p))
            print1(`${name} get`, p, typeof res
                // , res
            )
            // if (p === '_context2d' && res === undefined){
            // if(name === 'canvas' && p === 'width' && typeof res === undefined){
            //     debugger
            // }
            // if (name === 'imageDatas' && typeof res === undefined){
            //     //todo
            //     return [214, 122, 6, 255];
            // }

            // }
            // if (p === 'offsetHeight'){
            //   debugger;
            // }
            // print(Reflect.get(target, '_cf_chl_ctx', receiver))

            if (!['_registeredHandlers', '_currentEvent', 'performance', 'debug', '_eventListenerss', 'top', 'prototype', '_canvas', '_context'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
                return proxy(res, p)
            }
            return res;
        },
        // getPrototypeOf(target) {
        //
        // }

        set(target, p, newValue, receiver) {
            print1(`${name} set`, p, newValue)

            return Reflect.set(target, p, newValue, receiver);
        }
    })
}
let con3 = console.log
let con4 = console.log
let con5 = console.log
// con3 = function () {
// }h
// con4 = function () {
// }

let sortRandom = function () {
    return .5 - _random();
}

function protectOwn(target) {
    let r = {}
    Object.keys(Object.getOwnPropertyDescriptors(target)).forEach(e => {
        r[e] = {}
        if (Object.getOwnPropertyDescriptor(target, e)['value']) {
            r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(target, e)['value'])
        }

        if (Object.getOwnPropertyDescriptor(target, e)['get']) {
            r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(target, e)['get'], undefined, 'get')
        }
        if (Object.getOwnPropertyDescriptor(target, e)['set']) {
            r[e]['set'] = v_saf(Object.getOwnPropertyDescriptor(target, e)['set'], undefined, 'set')
        }
        r[e]['enumerable'] = true
    })
    Object.defineProperties(target, r)
    return target;
}

function protectProp(target) {
    let r = {}
    Object.keys(Object.getOwnPropertyDescriptors(target.prototype)).forEach(e => {
        r[e] = {}
        if (Object.getOwnPropertyDescriptor(target.prototype, e)['value']) {
            r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(target.prototype, e)['value'])
        }

        if (Object.getOwnPropertyDescriptor(target.prototype, e)['get']) {
            r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(target.prototype, e)['get'], undefined, 'get')
        }
        if (Object.getOwnPropertyDescriptor(target.prototype, e)['set']) {
            r[e]['set'] = v_saf(Object.getOwnPropertyDescriptor(target.prototype, e)['set'], undefined, 'set')
        }
        r[e]['enumerable'] = true
    })
    Object.defineProperties(target.prototype, r)
    return target;
}

_process = process;
let scales = [0.95, 0.75, 0.85, 0.9, 0.8, 0.7]
let scale = scales[parseInt(_random() * scales.length)]
scale = 1;
const Canvas = require('canvas')
const {
    Worker, isMainThread, parentPort, workerData
} = require('worker_threads');
var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t, nn) {
        tt = ''
        if (nn) {
            tt = ' ' + nn
        }
        return -1 == o(n) && (e(n), r(`function${tt} ${t || n.name || ""}() { [native code] }`.replaceAll('get get', 'get').replaceAll('set set', 'set'))), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            let res = "function" == typeof this && i[o(this)] || n.call(this)
            // print('toString', arguments, '|||', 'res', res)

            return res;
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();
const fss = require("fs");
var ENVS = JSON.parse(fss.readFileSync('./env.json').toString())
// dc6a639f12738c9276d68c74
let keys = Object.keys(ENVS);
for (let i = 0; i < keys.length; i++) {
    print(keys[i], ENVS[keys[i]].navigatorparams.useragent)

}

let timeout = false;
let randomEvent = false;

// let sid = process.argv[2] || keys[parseInt(Math.random() * keys.length)]
// let sid = process.argv[2] || '1a95ffeb5fa079286d69771f';
let sid = process.argv[2] || 'd68e6ca383e1ecbd768f0337';
// sid = 'f9755a246dc4bd1e073e0361'
// if (process.argv[3]){
//     print =  function(){}
// }

// sid = "b93e97591189a5841d0288ba"
let ENV = ENVS[sid]



ENV.windowprops = [
    "Object",
    "Function",
    "Array",
    "Number",
    "parseFloat",
    "parseInt",
    "Infinity",
    "NaN",
    "undefined",
    "Boolean",
    "String",
    "Symbol",
    "Date",
    "Promise",
    "RegExp",
    "Error",
    "AggregateError",
    "EvalError",
    "RangeError",
    "ReferenceError",
    "SyntaxError",
    "TypeError",
    "URIError",
    "globalThis",
    "JSON",
    "Math",
    "Intl",
    "ArrayBuffer",
    "Atomics",
    "Uint8Array",
    "Int8Array",
    "Uint16Array",
    "Int16Array",
    "Uint32Array",
    "Int32Array",
    "Float32Array",
    "Float64Array",
    "Uint8ClampedArray",
    "BigUint64Array",
    "BigInt64Array",
    "DataView",
    "Map",
    "BigInt",
    "Set",
    "WeakMap",
    "WeakSet",
    "Proxy",
    "Reflect",
    "FinalizationRegistry",
    "WeakRef",
    "decodeURI",
    "decodeURIComponent",
    "encodeURI",
    "encodeURIComponent",
    "escape",
    "unescape",
    "eval",
    "isFinite",
    "isNaN",
    "console",
    "Option",
    "Image",
    "Audio",
    "webkitURL",
    "webkitRTCPeerConnection",
    "webkitMediaStream",
    "WebKitMutationObserver",
    "WebKitCSSMatrix",
    "XSLTProcessor",
    "XPathResult",
    "XPathExpression",
    "XPathEvaluator",
    "XMLSerializer",
    "XMLHttpRequestUpload",
    "XMLHttpRequestEventTarget",
    "XMLHttpRequest",
    "XMLDocument",
    "WritableStreamDefaultWriter",
    "WritableStreamDefaultController",
    "WritableStream",
    "Worker",
    "Window",
    "WheelEvent",
    "WebSocket",
    "WebGLVertexArrayObject",
    "WebGLUniformLocation",
    "WebGLTransformFeedback",
    "WebGLTexture",
    "WebGLSync",
    "WebGLShaderPrecisionFormat",
    "WebGLShader",
    "WebGLSampler",
    "WebGLRenderingContext",
    "WebGLRenderbuffer",
    "WebGLQuery",
    "WebGLProgram",
    "WebGLFramebuffer",
    "WebGLContextEvent",
    "WebGLBuffer",
    "WebGLActiveInfo",
    "WebGL2RenderingContext",
    "WaveShaperNode",
    "VisualViewport",
    "VirtualKeyboardGeometryChangeEvent",
    "ValidityState",
    "VTTCue",
    "UserActivation",
    "URLSearchParams",
    "URLPattern",
    "URL",
    "UIEvent",
    "TrustedTypePolicyFactory",
    "TrustedTypePolicy",
    "TrustedScriptURL",
    "TrustedScript",
    "TrustedHTML",
    "TreeWalker",
    "TransitionEvent",
    "TransformStreamDefaultController",
    "TransformStream",
    "TrackEvent",
    "TouchList",
    "Touch",
    "TimeRanges",
    "TextTrackList",
    "TextTrackCueList",
    "TextTrackCue",
    "TextTrack",
    "TextMetrics",
    "TextEvent",
    "TextEncoderStream",
    "TextEncoder",
    "TextDecoderStream",
    "TextDecoder",
    "Text",
    "TaskSignal",
    "TaskPriorityChangeEvent",
    "TaskController",
    "TaskAttributionTiming",
    "SyncManager",
    "SubmitEvent",
    "StyleSheetList",
    "StyleSheet",
    "StylePropertyMapReadOnly",
    "StylePropertyMap",
    "StorageEvent",
    "Storage",
    "StereoPannerNode",
    "StaticRange",
    "SourceBufferList",
    "SourceBuffer",
    "ShadowRoot",
    "Selection",
    "SecurityPolicyViolationEvent",
    "ScriptProcessorNode",
    "ScreenOrientation",
    "Screen",
    "Scheduling",
    "Scheduler",
    "SVGViewElement",
    "SVGUseElement",
    "SVGUnitTypes",
    "SVGTransformList",
    "SVGTransform",
    "SVGTitleElement",
    "SVGTextPositioningElement",
    "SVGTextPathElement",
    "SVGTextElement",
    "SVGTextContentElement",
    "SVGTSpanElement",
    "SVGSymbolElement",
    "SVGSwitchElement",
    "SVGStyleElement",
    "SVGStringList",
    "SVGStopElement",
    "SVGSetElement",
    "SVGScriptElement",
    "SVGSVGElement",
    "SVGRectElement",
    "SVGRect",
    "SVGRadialGradientElement",
    "SVGPreserveAspectRatio",
    "SVGPolylineElement",
    "SVGPolygonElement",
    "SVGPointList",
    "SVGPoint",
    "SVGPatternElement",
    "SVGPathElement",
    "SVGNumberList",
    "SVGNumber",
    "SVGMetadataElement",
    "SVGMatrix",
    "SVGMaskElement",
    "SVGMarkerElement",
    "SVGMPathElement",
    "SVGLinearGradientElement",
    "SVGLineElement",
    "SVGLengthList",
    "SVGLength",
    "SVGImageElement",
    "SVGGraphicsElement",
    "SVGGradientElement",
    "SVGGeometryElement",
    "SVGGElement",
    "SVGForeignObjectElement",
    "SVGFilterElement",
    "SVGFETurbulenceElement",
    "SVGFETileElement",
    "SVGFESpotLightElement",
    "SVGFESpecularLightingElement",
    "SVGFEPointLightElement",
    "SVGFEOffsetElement",
    "SVGFEMorphologyElement",
    "SVGFEMergeNodeElement",
    "SVGFEMergeElement",
    "SVGFEImageElement",
    "SVGFEGaussianBlurElement",
    "SVGFEFuncRElement",
    "SVGFEFuncGElement",
    "SVGFEFuncBElement",
    "SVGFEFuncAElement",
    "SVGFEFloodElement",
    "SVGFEDropShadowElement",
    "SVGFEDistantLightElement",
    "SVGFEDisplacementMapElement",
    "SVGFEDiffuseLightingElement",
    "SVGFEConvolveMatrixElement",
    "SVGFECompositeElement",
    "SVGFEComponentTransferElement",
    "SVGFEColorMatrixElement",
    "SVGFEBlendElement",
    "SVGEllipseElement",
    "SVGElement",
    "SVGDescElement",
    "SVGDefsElement",
    "SVGComponentTransferFunctionElement",
    "SVGClipPathElement",
    "SVGCircleElement",
    "SVGAnimationElement",
    "SVGAnimatedTransformList",
    "SVGAnimatedString",
    "SVGAnimatedRect",
    "SVGAnimatedPreserveAspectRatio",
    "SVGAnimatedNumberList",
    "SVGAnimatedNumber",
    "SVGAnimatedLengthList",
    "SVGAnimatedLength",
    "SVGAnimatedInteger",
    "SVGAnimatedEnumeration",
    "SVGAnimatedBoolean",
    "SVGAnimatedAngle",
    "SVGAnimateTransformElement",
    "SVGAnimateMotionElement",
    "SVGAnimateElement",
    "SVGAngle",
    "SVGAElement",
    "Response",
    "ResizeObserverSize",
    "ResizeObserverEntry",
    "ResizeObserver",
    "Request",
    "ReportingObserver",
    "ReadableStreamDefaultReader",
    "ReadableStreamDefaultController",
    "ReadableStreamBYOBRequest",
    "ReadableStreamBYOBReader",
    "ReadableStream",
    "ReadableByteStreamController",
    "Range",
    "RadioNodeList",
    "RTCTrackEvent",
    "RTCStatsReport",
    "RTCSessionDescription",
    "RTCSctpTransport",
    "RTCRtpTransceiver",
    "RTCRtpSender",
    "RTCRtpReceiver",
    "RTCPeerConnectionIceEvent",
    "RTCPeerConnectionIceErrorEvent",
    "RTCPeerConnection",
    "RTCIceTransport",
    "RTCIceCandidate",
    "RTCErrorEvent",
    "RTCError",
    "RTCEncodedVideoFrame",
    "RTCEncodedAudioFrame",
    "RTCDtlsTransport",
    "RTCDataChannelEvent",
    "RTCDataChannel",
    "RTCDTMFToneChangeEvent",
    "RTCDTMFSender",
    "RTCCertificate",
    "PromiseRejectionEvent",
    "ProgressEvent",
    "Profiler",
    "ProcessingInstruction",
    "PopStateEvent",
    "PointerEvent",
    "PluginArray",
    "Plugin",
    "PictureInPictureWindow",
    "PictureInPictureEvent",
    "PeriodicWave",
    "PerformanceTiming",
    "PerformanceServerTiming",
    "PerformanceResourceTiming",
    "PerformancePaintTiming",
    "PerformanceObserverEntryList",
    "PerformanceObserver",
    "PerformanceNavigationTiming",
    "PerformanceNavigation",
    "PerformanceMeasure",
    "PerformanceMark",
    "PerformanceLongTaskTiming",
    "PerformanceEventTiming",
    "PerformanceEntry",
    "PerformanceElementTiming",
    "Performance",
    "Path2D",
    "PannerNode",
    "PageTransitionEvent",
    "OverconstrainedError",
    "OscillatorNode",
    "OffscreenCanvasRenderingContext2D",
    "OffscreenCanvas",
    "OfflineAudioContext",
    "OfflineAudioCompletionEvent",
    "NodeList",
    "NodeIterator",
    "NodeFilter",
    "Node",
    "NetworkInformation",
    "Navigator",
    "NavigationTransition",
    "NavigationHistoryEntry",
    "NavigationDestination",
    "NavigationCurrentEntryChangeEvent",
    "Navigation",
    "NavigateEvent",
    "NamedNodeMap",
    "MutationRecord",
    "MutationObserver",
    "MouseEvent",
    "MimeTypeArray",
    "MimeType",
    "MessagePort",
    "MessageEvent",
    "MessageChannel",
    "MediaStreamTrackProcessor",
    "MediaStreamTrackGenerator",
    "MediaStreamTrackEvent",
    "MediaStreamTrack",
    "MediaStreamEvent",
    "MediaStreamAudioSourceNode",
    "MediaStreamAudioDestinationNode",
    "MediaStream",
    "MediaSourceHandle",
    "MediaSource",
    "MediaRecorder",
    "MediaQueryListEvent",
    "MediaQueryList",
    "MediaList",
    "MediaError",
    "MediaEncryptedEvent",
    "MediaElementAudioSourceNode",
    "MediaCapabilities",
    "Location",
    "LayoutShiftAttribution",
    "LayoutShift",
    "LargestContentfulPaint",
    "KeyframeEffect",
    "KeyboardEvent",
    "IntersectionObserverEntry",
    "IntersectionObserver",
    "InputEvent",
    "InputDeviceInfo",
    "InputDeviceCapabilities",
    "ImageData",
    "ImageCapture",
    "ImageBitmapRenderingContext",
    "ImageBitmap",
    "IdleDeadline",
    "IIRFilterNode",
    "IDBVersionChangeEvent",
    "IDBTransaction",
    "IDBRequest",
    "IDBOpenDBRequest",
    "IDBObjectStore",
    "IDBKeyRange",
    "IDBIndex",
    "IDBFactory",
    "IDBDatabase",
    "IDBCursorWithValue",
    "IDBCursor",
    "History",
    "Headers",
    "HashChangeEvent",
    "HTMLVideoElement",
    "HTMLUnknownElement",
    "HTMLUListElement",
    "HTMLTrackElement",
    "HTMLTitleElement",
    "HTMLTimeElement",
    "HTMLTextAreaElement",
    "HTMLTemplateElement",
    "HTMLTableSectionElement",
    "HTMLTableRowElement",
    "HTMLTableElement",
    "HTMLTableColElement",
    "HTMLTableCellElement",
    "HTMLTableCaptionElement",
    "HTMLStyleElement",
    "HTMLSpanElement",
    "HTMLSourceElement",
    "HTMLSlotElement",
    "HTMLSelectElement",
    "HTMLScriptElement",
    "HTMLQuoteElement",
    "HTMLProgressElement",
    "HTMLPreElement",
    "HTMLPictureElement",
    "HTMLParamElement",
    "HTMLParagraphElement",
    "HTMLOutputElement",
    "HTMLOptionsCollection",
    "HTMLOptionElement",
    "HTMLOptGroupElement",
    "HTMLObjectElement",
    "HTMLOListElement",
    "HTMLModElement",
    "HTMLMeterElement",
    "HTMLMetaElement",
    "HTMLMenuElement",
    "HTMLMediaElement",
    "HTMLMarqueeElement",
    "HTMLMapElement",
    "HTMLLinkElement",
    "HTMLLegendElement",
    "HTMLLabelElement",
    "HTMLLIElement",
    "HTMLInputElement",
    "HTMLImageElement",
    "HTMLIFrameElement",
    "HTMLHtmlElement",
    "HTMLHeadingElement",
    "HTMLHeadElement",
    "HTMLHRElement",
    "HTMLFrameSetElement",
    "HTMLFrameElement",
    "HTMLFormElement",
    "HTMLFormControlsCollection",
    "HTMLFontElement",
    "HTMLFieldSetElement",
    "HTMLEmbedElement",
    "HTMLElement",
    "HTMLDocument",
    "HTMLDivElement",
    "HTMLDirectoryElement",
    "HTMLDialogElement",
    "HTMLDetailsElement",
    "HTMLDataListElement",
    "HTMLDataElement",
    "HTMLDListElement",
    "HTMLCollection",
    "HTMLCanvasElement",
    "HTMLButtonElement",
    "HTMLBodyElement",
    "HTMLBaseElement",
    "HTMLBRElement",
    "HTMLAudioElement",
    "HTMLAreaElement",
    "HTMLAnchorElement",
    "HTMLAllCollection",
    "GeolocationPositionError",
    "GeolocationPosition",
    "GeolocationCoordinates",
    "Geolocation",
    "GamepadHapticActuator",
    "GamepadEvent",
    "GamepadButton",
    "Gamepad",
    "GainNode",
    "FormDataEvent",
    "FormData",
    "FontFaceSetLoadEvent",
    "FontFace",
    "FocusEvent",
    "FileReader",
    "FileList",
    "File",
    "FeaturePolicy",
    "External",
    "EventTarget",
    "EventSource",
    "EventCounts",
    "Event",
    "ErrorEvent",
    "ElementInternals",
    "Element",
    "DynamicsCompressorNode",
    "DragEvent",
    "DocumentType",
    "DocumentFragment",
    "Document",
    "DelayNode",
    "DecompressionStream",
    "DataTransferItemList",
    "DataTransferItem",
    "DataTransfer",
    "DOMTokenList",
    "DOMStringMap",
    "DOMStringList",
    "DOMRectReadOnly",
    "DOMRectList",
    "DOMRect",
    "DOMQuad",
    "DOMPointReadOnly",
    "DOMPoint",
    "DOMParser",
    "DOMMatrixReadOnly",
    "DOMMatrix",
    "DOMImplementation",
    "DOMException",
    "DOMError",
    "CustomStateSet",
    "CustomEvent",
    "CustomElementRegistry",
    "Crypto",
    "CountQueuingStrategy",
    "ConvolverNode",
    "ConstantSourceNode",
    "CompressionStream",
    "CompositionEvent",
    "Comment",
    "CloseEvent",
    "ClipboardEvent",
    "CharacterData",
    "ChannelSplitterNode",
    "ChannelMergerNode",
    "CanvasRenderingContext2D",
    "CanvasPattern",
    "CanvasGradient",
    "CanvasCaptureMediaStreamTrack",
    "CSSVariableReferenceValue",
    "CSSUnparsedValue",
    "CSSUnitValue",
    "CSSTranslate",
    "CSSTransformValue",
    "CSSTransformComponent",
    "CSSSupportsRule",
    "CSSStyleValue",
    "CSSStyleSheet",
    "CSSStyleRule",
    "CSSStyleDeclaration",
    "CSSSkewY",
    "CSSSkewX",
    "CSSSkew",
    "CSSScale",
    "CSSRuleList",
    "CSSRule",
    "CSSRotate",
    "CSSPropertyRule",
    "CSSPositionValue",
    "CSSPerspective",
    "CSSPageRule",
    "CSSNumericValue",
    "CSSNumericArray",
    "CSSNamespaceRule",
    "CSSMediaRule",
    "CSSMatrixComponent",
    "CSSMathValue",
    "CSSMathSum",
    "CSSMathProduct",
    "CSSMathNegate",
    "CSSMathMin",
    "CSSMathMax",
    "CSSMathInvert",
    "CSSMathClamp",
    "CSSLayerStatementRule",
    "CSSLayerBlockRule",
    "CSSKeywordValue",
    "CSSKeyframesRule",
    "CSSKeyframeRule",
    "CSSImportRule",
    "CSSImageValue",
    "CSSGroupingRule",
    "CSSFontPaletteValuesRule",
    "CSSFontFaceRule",
    "CSSCounterStyleRule",
    "CSSContainerRule",
    "CSSConditionRule",
    "CSS",
    "CDATASection",
    "ByteLengthQueuingStrategy",
    "BroadcastChannel",
    "BlobEvent",
    "Blob",
    "BiquadFilterNode",
    "BeforeUnloadEvent",
    "BeforeInstallPromptEvent",
    "BaseAudioContext",
    "BarProp",
    "AudioWorkletNode",
    "AudioSinkInfo",
    "AudioScheduledSourceNode",
    "AudioProcessingEvent",
    "AudioParamMap",
    "AudioParam",
    "AudioNode",
    "AudioListener",
    "AudioDestinationNode",
    "AudioContext",
    "AudioBufferSourceNode",
    "AudioBuffer",
    "Attr",
    "AnimationEvent",
    "AnimationEffect",
    "Animation",
    "AnalyserNode",
    "AbstractRange",
    "AbortSignal",
    "AbortController",
    "window",
    "self",
    "document",
    "name",
    "location",
    "customElements",
    "history",
    "navigation",
    "locationbar",
    "menubar",
    "personalbar",
    "scrollbars",
    "statusbar",
    "toolbar",
    "status",
    "closed",
    "frames",
    "length",
    "top",
    "opener",
    "parent",
    "frameElement",
    "navigator",
    "origin",
    "external",
    "screen",
    "innerWidth",
    "innerHeight",
    "scrollX",
    "pageXOffset",
    "scrollY",
    "pageYOffset",
    "visualViewport",
    "screenX",
    "screenY",
    "outerWidth",
    "outerHeight",
    "devicePixelRatio",
    "event",
    "clientInformation",
    "offscreenBuffering",
    "screenLeft",
    "screenTop",
    "styleMedia",
    "onsearch",
    "isSecureContext",
    "trustedTypes",
    "performance",
    "onappinstalled",
    "onbeforeinstallprompt",
    "crypto",
    "indexedDB",
    "sessionStorage",
    "localStorage",
    "onbeforexrselect",
    "onabort",
    "onbeforeinput",
    "onblur",
    "oncancel",
    "oncanplay",
    "oncanplaythrough",
    "onchange",
    "onclick",
    "onclose",
    "oncontextlost",
    "oncontextmenu",
    "oncontextrestored",
    "oncuechange",
    "ondblclick",
    "ondrag",
    "ondragend",
    "ondragenter",
    "ondragleave",
    "ondragover",
    "ondragstart",
    "ondrop",
    "ondurationchange",
    "onemptied",
    "onended",
    "onerror",
    "onfocus",
    "onformdata",
    "oninput",
    "oninvalid",
    "onkeydown",
    "onkeypress",
    "onkeyup",
    "onload",
    "onloadeddata",
    "onloadedmetadata",
    "onloadstart",
    "onmousedown",
    "onmouseenter",
    "onmouseleave",
    "onmousemove",
    "onmouseout",
    "onmouseover",
    "onmouseup",
    "onmousewheel",
    "onpause",
    "onplay",
    "onplaying",
    "onprogress",
    "onratechange",
    "onreset",
    "onresize",
    "onscroll",
    "onsecuritypolicyviolation",
    "onseeked",
    "onseeking",
    "onselect",
    "onslotchange",
    "onstalled",
    "onsubmit",
    "onsuspend",
    "ontimeupdate",
    "ontoggle",
    "onvolumechange",
    "onwaiting",
    "onwebkitanimationend",
    "onwebkitanimationiteration",
    "onwebkitanimationstart",
    "onwebkittransitionend",
    "onwheel",
    "onauxclick",
    "ongotpointercapture",
    "onlostpointercapture",
    "onpointerdown",
    "onpointermove",
    "onpointerrawupdate",
    "onpointerup",
    "onpointercancel",
    "onpointerover",
    "onpointerout",
    "onpointerenter",
    "onpointerleave",
    "onselectstart",
    "onselectionchange",
    "onanimationend",
    "onanimationiteration",
    "onanimationstart",
    "ontransitionrun",
    "ontransitionstart",
    "ontransitionend",
    "ontransitioncancel",
    "onafterprint",
    "onbeforeprint",
    "onbeforeunload",
    "onhashchange",
    "onlanguagechange",
    "onmessage",
    "onmessageerror",
    "onoffline",
    "ononline",
    "onpagehide",
    "onpageshow",
    "onpopstate",
    "onrejectionhandled",
    "onstorage",
    "onunhandledrejection",
    "onunload",
    "crossOriginIsolated",
    "scheduler",
    "alert",
    "atob",
    "blur",
    "btoa",
    "cancelAnimationFrame",
    "cancelIdleCallback",
    "captureEvents",
    "clearInterval",
    "clearTimeout",
    "close",
    "confirm",
    "createImageBitmap",
    "fetch",
    "find",
    "focus",
    "getComputedStyle",
    "getSelection",
    "matchMedia",
    "moveBy",
    "moveTo",
    "open",
    "postMessage",
    "print",
    "prompt",
    "queueMicrotask",
    "releaseEvents",
    "reportError",
    "requestAnimationFrame",
    "requestIdleCallback",
    "resizeBy",
    "resizeTo",
    "scroll",
    "scrollBy",
    "scrollTo",
    "setInterval",
    "setTimeout",
    "stop",
    "structuredClone",
    "webkitCancelAnimationFrame",
    "webkitRequestAnimationFrame",
    "chrome",
    "WebAssembly",
    "caches",
    "cookieStore",
    "ondevicemotion",
    "ondeviceorientation",
    "ondeviceorientationabsolute",
    "documentPictureInPicture",
    "launchQueue",
    "onbeforematch",
    "onbeforetoggle",
    "AbsoluteOrientationSensor",
    "Accelerometer",
    "AudioWorklet",
    "BatteryManager",
    "Cache",
    "CacheStorage",
    "Clipboard",
    "ClipboardItem",
    "CookieChangeEvent",
    "CookieStore",
    "CookieStoreManager",
    "Credential",
    "CredentialsContainer",
    "CryptoKey",
    "DeviceMotionEvent",
    "DeviceMotionEventAcceleration",
    "DeviceMotionEventRotationRate",
    "DeviceOrientationEvent",
    "FederatedCredential",
    "GravitySensor",
    "Gyroscope",
    "Keyboard",
    "KeyboardLayoutMap",
    "LinearAccelerationSensor",
    "Lock",
    "LockManager",
    "MIDIAccess",
    "MIDIConnectionEvent",
    "MIDIInput",
    "MIDIInputMap",
    "MIDIMessageEvent",
    "MIDIOutput",
    "MIDIOutputMap",
    "MIDIPort",
    "MediaDeviceInfo",
    "MediaDevices",
    "MediaKeyMessageEvent",
    "MediaKeySession",
    "MediaKeyStatusMap",
    "MediaKeySystemAccess",
    "MediaKeys",
    "NavigationPreloadManager",
    "NavigatorManagedData",
    "OrientationSensor",
    "PasswordCredential",
    "RelativeOrientationSensor",
    "Sanitizer",
    "ScreenDetailed",
    "ScreenDetails",
    "Sensor",
    "SensorErrorEvent",
    "ServiceWorker",
    "ServiceWorkerContainer",
    "ServiceWorkerRegistration",
    "StorageManager",
    "SubtleCrypto",
    "VirtualKeyboard",
    "WebTransport",
    "WebTransportBidirectionalStream",
    "WebTransportDatagramDuplexStream",
    "WebTransportError",
    "Worklet",
    "XRDOMOverlayState",
    "XRLayer",
    "XRWebGLBinding",
    "AudioData",
    "EncodedAudioChunk",
    "EncodedVideoChunk",
    "ImageTrack",
    "ImageTrackList",
    "VideoColorSpace",
    "VideoFrame",
    "AudioDecoder",
    "AudioEncoder",
    "ImageDecoder",
    "VideoDecoder",
    "VideoEncoder",
    "AuthenticatorAssertionResponse",
    "AuthenticatorAttestationResponse",
    "AuthenticatorResponse",
    "PublicKeyCredential",
    "BarcodeDetector",
    "Bluetooth",
    "BluetoothCharacteristicProperties",
    "BluetoothDevice",
    "BluetoothRemoteGATTCharacteristic",
    "BluetoothRemoteGATTDescriptor",
    "BluetoothRemoteGATTServer",
    "BluetoothRemoteGATTService",
    "CaptureController",
    "DelegatedInkTrailPresenter",
    "Ink",
    "DocumentPictureInPicture",
    "EyeDropper",
    "FileSystemDirectoryHandle",
    "FileSystemFileHandle",
    "FileSystemHandle",
    "FileSystemWritableFileStream",
    "FontData",
    "FragmentDirective",
    "GPU",
    "GPUAdapter",
    "GPUAdapterInfo",
    "GPUBindGroup",
    "GPUBindGroupLayout",
    "GPUBuffer",
    "GPUBufferUsage",
    "GPUCanvasContext",
    "GPUColorWrite",
    "GPUCommandBuffer",
    "GPUCommandEncoder",
    "GPUCompilationInfo",
    "GPUCompilationMessage",
    "GPUComputePassEncoder",
    "GPUComputePipeline",
    "GPUDevice",
    "GPUDeviceLostInfo",
    "GPUError",
    "GPUExternalTexture",
    "GPUInternalError",
    "GPUMapMode",
    "GPUOutOfMemoryError",
    "GPUPipelineError",
    "GPUPipelineLayout",
    "GPUQuerySet",
    "GPUQueue",
    "GPURenderBundle",
    "GPURenderBundleEncoder",
    "GPURenderPassEncoder",
    "GPURenderPipeline",
    "GPUSampler",
    "GPUShaderModule",
    "GPUShaderStage",
    "GPUSupportedFeatures",
    "GPUSupportedLimits",
    "GPUTexture",
    "GPUTextureUsage",
    "GPUTextureView",
    "GPUUncapturedErrorEvent",
    "GPUValidationError",
    "WGSLLanguageFeatures",
    "HID",
    "HIDConnectionEvent",
    "HIDDevice",
    "HIDInputReportEvent",
    "IdentityCredential",
    "IdentityProvider",
    "IdleDetector",
    "LaunchParams",
    "LaunchQueue",
    "OTPCredential",
    "PaymentAddress",
    "PaymentRequest",
    "PaymentResponse",
    "PaymentMethodChangeEvent",
    "Presentation",
    "PresentationAvailability",
    "PresentationConnection",
    "PresentationConnectionAvailableEvent",
    "PresentationConnectionCloseEvent",
    "PresentationConnectionList",
    "PresentationReceiver",
    "PresentationRequest",
    "Serial",
    "SerialPort",
    "ToggleEvent",
    "USB",
    "USBAlternateInterface",
    "USBConfiguration",
    "USBConnectionEvent",
    "USBDevice",
    "USBEndpoint",
    "USBInTransferResult",
    "USBInterface",
    "USBIsochronousInTransferPacket",
    "USBIsochronousInTransferResult",
    "USBIsochronousOutTransferPacket",
    "USBIsochronousOutTransferResult",
    "USBOutTransferResult",
    "WakeLock",
    "WakeLockSentinel",
    "WindowControlsOverlay",
    "WindowControlsOverlayGeometryChangeEvent",
    "XRAnchor",
    "XRAnchorSet",
    "XRBoundedReferenceSpace",
    "XRCPUDepthInformation",
    "XRCamera",
    "XRDepthInformation",
    "XRFrame",
    "XRHitTestResult",
    "XRHitTestSource",
    "XRInputSource",
    "XRInputSourceArray",
    "XRInputSourceEvent",
    "XRInputSourcesChangeEvent",
    "XRLightEstimate",
    "XRLightProbe",
    "XRPose",
    "XRRay",
    "XRReferenceSpace",
    "XRReferenceSpaceEvent",
    "XRRenderState",
    "XRRigidTransform",
    "XRSession",
    "XRSessionEvent",
    "XRSpace",
    "XRSystem",
    "XRTransientInputHitTestResult",
    "XRTransientInputHitTestSource",
    "XRView",
    "XRViewerPose",
    "XRViewport",
    "XRWebGLDepthInformation",
    "XRWebGLLayer",
    "getScreenDetails",
    "queryLocalFonts",
    "showDirectoryPicker",
    "showOpenFilePicker",
    "showSaveFilePicker",
    "originAgentCluster",
    "credentialless",
    "speechSynthesis",
    "oncontentvisibilityautostatechange",
    "onscrollend",
    "AnimationPlaybackEvent",
    "AnimationTimeline",
    "CSSAnimation",
    "CSSTransition",
    "DocumentTimeline",
    "BackgroundFetchManager",
    "BackgroundFetchRecord",
    "BackgroundFetchRegistration",
    "BluetoothUUID",
    "BrowserCaptureMediaStreamTrack",
    "CropTarget",
    "ContentVisibilityAutoStateChangeEvent",
    "DocumentPictureInPictureEvent",
    "Highlight",
    "HighlightRegistry",
    "MathMLElement",
    "MediaMetadata",
    "MediaSession",
    "MutationEvent",
    "NavigatorUAData",
    "Notification",
    "PaymentManager",
    "PaymentRequestUpdateEvent",
    "PeriodicSyncManager",
    "PermissionStatus",
    "Permissions",
    "PushManager",
    "PushSubscription",
    "PushSubscriptionOptions",
    "RemotePlayback",
    "ScrollTimeline",
    "ViewTimeline",
    "SharedWorker",
    "SpeechSynthesisErrorEvent",
    "SpeechSynthesisEvent",
    "SpeechSynthesisUtterance",
    "TouchEvent",
    "VideoPlaybackQuality",
    "ViewTransition",
    "VisibilityStateEntry",
    "webkitSpeechGrammar",
    "webkitSpeechGrammarList",
    "webkitSpeechRecognition",
    "webkitSpeechRecognitionError",
    "webkitSpeechRecognitionEvent",
    "openDatabase",
    "webkitRequestFileSystem",
    "webkitResolveLocalFileSystemURL",
    "saf",
    "saf_class",
    "origslice",
    "times",
    "_print",
    "stackTrace",
    "con3",
    "con4",
    "idx",
    "_join",
    "_defin",
    "vilame_setter",
    "globalConfig",
    "v_log",
    "v_log_env",
    "sendXHr",
    "dir",
    "dirxml",
    "profile",
    "profileEnd",
    "clear",
    "table",
    "keys",
    "values",
    "debug",
    "undebug",
    "monitor",
    "unmonitor",
    "inspect",
    "copy",
    "queryObjects",
    "$_",
    "$0",
    "$1",
    "$2",
    "$3",
    "$4",
    "getEventListeners",
    "getAccessibleName",
    "getAccessibleRole",
    "monitorEvents",
    "unmonitorEvents",
    "$",
    "$$",
    "$x"
]
ENV.funcs = [1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1]

// delete ENV.fontsres


var crypto = require('crypto');
// const {proxy} = require("./jsdom/lib/jsdom/living/generated/utils");
module = undefined;
// process = undefined;
__dirname = undefined;

__filename = undefined;
require = undefined;
var stackTrace = {};
var idx = 0;
var arrs = {};
console.time("处理完毕，耗时");
// Object.defineProperty(console, 'Console', {
//     value: v_saf()
//     enumerable: false,
//     configurable: false,
//     writable: false,
// })
protectOwn(console)
Object.defineProperty(console, 'Console', {
    value: undefined,
    enumerable: false,
    configurable: false,
    writable: false,
})
Object.defineProperties(console, {
    createTask: {
        value: v_saf(function createTask() {
        }),
        enumerable: true,
        configurable: true,
        writable: false,
    },
    memory: {
        value: v_saf(function memory() {
        }),
        enumerable: true,
        configurable: true,
        writable: false,
    }
})
console.Console = undefined;
print(Object.keys(Object.getOwnPropertyDescriptors(console)))
// if (!_process.argv[3]){
//     Date.now = function now() { return 1693903208580 };
//     Date.parse = function () { return 1693903208580 };
//     Date.prototype.valueOf = function () { return 1693903208580 };
//     Date.prototype.getTime = function () { return 1693903208580 };
//     Date.prototype.toString = function () { return 1693903208580 };
//     Performance.prototype.now = function now(){ return Number('1693903208580'.slice(8))}
//
//     Math.random = function random() {
//         return 0.08636862211354912
//     };
// }


// Date.prototype.toString = v_saf(function () {
//     try {
//         return this.getTime()
//     } catch (e) {
//         return Date.now()
//     }
// }, 'toString')
debug = false;
dtavm = {}
v_events = {}
v_start_stamp = Date.now()

dtavm.log = print


var v_console_logger = print
var v_console_log = print
// print = function () {}
window = this;
rename = (function () {
    function buffer_memory(value) {
        let d = buffer_memory.d || (
            buffer_memory.d = {
                configurable: true, enumerable: false, writable: false
            }
        );
        d.value = value;
        return d;
    };

    /**
     * 保护伪造Object (Object[Symbol.toStringTag])  让其更难被识破
     * @param { Object } Obj
     * @param { String } Objname - 可显示的名称
     * @returns { undefined }
     */
    return function (Obj, Objname) {
        Object.defineProperties(Obj, {
            [Symbol.toStringTag]: buffer_memory(Objname)
        })
    };
})();
rename(window, 'Window')
// Intl = v_saf(function Intl() {})
// Object.defineProperties(Intl, {
//     DisplayNames: {
//         value: v_saf(function DisplayNames(locales, options) {
//             print1('Intl.DisplayNames', locales, options)
//             return {}
//         }),
//         enumerable: true,
//         configurable: true,
//         writable: false,
//     },
// })
window.ENV = ENV
Intl = proxy(Intl, 'Intl')
window.Intl = Intl
window = v_saf(window)
window.window = window

window.Promise = Promise
window.ReadableStream = v_saf(function ReadableStream() {
})
window.TransformStream = v_saf(function TransformStream() {
})
window.SubmitEvent = v_saf(function SubmitEvent() {
})


window.CSS = proxy({
    supports: function () {
        print('CSS.supports', arguments)
        return true;
    }

}, 'CSS')


// window = new Proxy(window, {
//     get(target, p, receiver) {
//         // if (p === 'addEventListener'){
//         //     debugger;
//         // }
//         let res = Reflect.get(target, p, receiver);
//         if (!['Array', 'Math', 'Function', 'Object', 'ENV', 'UIEvent'].includes(p))print('get window', p, typeof res)
//         // print(Reflect.get(target, '_cf_chl_ctx', receiver))
//
//         if (!['_registeredHandlers', 'window', 'Array', 'Math', 'Function', 'Object', 'ENV', 'UIEvent'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol' && p !== 'removeEventListener') {
//             return proxy(res, p)
//         }
//         return res;
//     },
//     set(target, p, newValue, receiver) {
//         // print('set window', p, newValue)
//         if (typeof newValue === 'string' && newValue.startsWith('3g')) {
//             _console(newValue)
//             // process.exit(0)
//         }
//         Reflect.set(target, p, newValue, receiver)
//     }
// });


// let HeaderGeneratorOptions = require('header-generator').HeaderGeneratorOptions


_console2 = print

//
// _date = Date
// ssssssss = new _date('2023-05-14T03:24:00')
// Date = function() {
//     return ssssssss;
// }
// Date.__proto__ = _date

// var _hasOwnProperty = Object.hasOwnProperty;
// Object.hasOwnProperty = function (){
//     let res =  _hasOwnProperty.apply(this, arguments);
//     print('Object.hasOwnProperty', arguments, res === undefined);
//     if (arguments[1] === 'createElement')debugger;
//     return res;
// }
// var _getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Object.getOwnPropertyDescriptor = function (){
//     let res =  _getOwnPropertyDescriptor.apply(this, arguments);
//     print('Object.getOwnPropertyDescriptor', arguments[1], res === undefined);
//     if (arguments[1] === 'createElement')debugger;
//
//     return res;
// }
function aaProxy(obj, name) {
    // return obj;
    return new Proxy(obj, {
        get(target, propKey, receiver) { //拦截对象属性的读取，比如proxy.foo和proxy['foo']。
            let temp = Reflect.get(target, propKey, receiver);
            print(`${name} -> get ${propKey.toString()} return -> ${temp == undefined}`);
            if (typeof temp == 'object') {
                temp = myProxy(temp, name + " => " + propKey)
            }
            return temp;
        },
        set(target, propKey, value, receiver) { //拦截对象属性的设置，比如proxy.foo = v或proxy['foo'] = v，返回一个布尔值。
            const temp = Reflect.set(target, propKey, value, receiver);
            print(`${name} -> set ${propKey} value -> ${value}`);
            // if (propKey == 'pathname')debugger;
            return temp;
        },
        has(target, propKey) { //拦截propKey in proxy的操作，返回一个布尔值。
            const temp = Reflect.has(target, propKey);
            try {
                print(`${name} -> has ${propKey}`, temp);
            } catch (e) {
            }
            return temp;
        },
        deleteProperty(target, propKey) { //拦截delete proxy[propKey]的操作，返回一个布尔值。
            const temp = Reflect.deleteProperty(target, propKey);
            return temp;
        },
        ownKeys(target) { //拦截Object.getOwnPropertyNames(proxy)、Object.getOwnPropertySymbols(proxy)、Object.keys(proxy)、for...in循环，返回一个数组。该方法返回目标对象所有自身的属性的属性名，而Object.keys()的返回结果仅包括目标对象自身的可遍历属性。
            const temp = Reflect.ownKeys(target);
            return temp;
        },
        getOwnPropertyDescriptor(target, propKey) { //拦截Object.getOwnPropertyDescriptor(proxy, propKey)，返回属性的描述对象。
            const temp = Reflect.getOwnPropertyDescriptor(target, propKey);
            return temp;
        },
        defineProperty(target, propKey, propDesc) { //拦截Object.defineProperty(proxy, propKey, propDesc）、Object.defineProperties(proxy, propDescs)，返回一个布尔值。
            const temp = Reflect.defineProperty(target, propKey, propDesc);
            return temp;
        },
        preventExtensions(target) { //拦截Object.preventExtensions(proxy)，返回一个布尔值。
            const temp = Reflect.preventExtensions(target);
            return temp;
        },
        getPrototypeOf(target) { //拦截Object.getPrototypeOf(proxy)，返回一个对象。
            const temp = Reflect.getPrototypeOf(target);
            return temp;
        },
        isExtensible(target) { //拦截Object.isExtensible(proxy)，返回一个布尔值。
            const temp = Reflect.isExtensible(target);
            return temp;
        },
        setPrototypeOf(target, proto) { //拦截Object.setPrototypeOf(proxy, proto)，返回一个布尔值。如果目标对象是函数，那么还有两种额外操作可以拦截。
            const temp = Reflect.setPrototypeOf(target, proto);
            return temp;
        },
        apply(target, object, args) { //拦截 Proxy 实例作为函数调用的操作，比如proxy(...args)、proxy.call(object, ...args)、proxy.apply(...)。
            const temp = Reflect.apply(target, object, args);
            return temp;
        },
        construct(target, args) { //拦截 Proxy 实例作为构造函数调用的操作，比如new proxy(...args)。
            const temp = Reflect.construct(target, args);
            return temp;
        }
    })
}

// dtavm.proxy =
debug = false
var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t, nn) {
        tt = ''
        if (nn) {
            tt = ' ' + nn
        }
        return -1 == o(n) && (e(n), r(`function${tt} ${t || n.name || ""}() { [native code] }`.replaceAll("get get", 'get').replaceAll("set set", 'set'))), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            let res = "function" == typeof this && i[o(this)] || n.call(this)
            // print('toString', arguments, '|||', 'res', res)

            return res;
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();

function v_hook_href(obj, name, initurl) {
    var r = Object.defineProperty(obj, 'href', {
        get: function () {
            if (!(this.protocol) && !(this.host)) {
                r = ''
            } else {
                r = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + this.pathname + this.search + this.hash;
            }
            // v_console_log(`  [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
            return r
        },
        set: function (href) {
            href = href.trim()
            v_console_log(`  [*] ${name || obj.constructor.name} -> href[set]:`, JSON.stringify(href))
            if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
            } else if (href.startsWith("//")) {
                href = (this.protocol ? this.protocol : 'http:') + href
            } else {
                href = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
            }
            var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
            this.protocol = a[1] ? a[1] : "";
            this.host = a[2] ? a[2] : "";
            this.port = a[3] ? a[3] : "";
            this.pathname = a[4] ? a[4] : "/";
            this.search = a[5] ? a[5] : "";
            this.hash = a[6] ? a[6] : "";
            this.hostname = this.host;
            this.origin = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "");
        }
    });
    // r = Object.defineProperty(r, 'search', {
    //     get: function(){
    //         v_console_log(`  [*] ${name||obj.constructor.name} -> search[get]:`, this.search)
    //
    //         // v_console_log(`  [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
    //         return this.search_
    //     },
    //     set: function(href){
    //         v_console_log(`  [*] ${name||obj.constructor.name} -> search[set]:`, href)
    //
    //         this.search_ = href
    //     }
    // });
    if (initurl && initurl.trim()) {
        var temp = v_new_toggle;
        v_new_toggle = true;
        r.href = initurl;
        v_new_toggle = temp;
    }

    return r
}

function _inherits(t, e) {
    t.prototype = Object.create(e.prototype, {
        constructor: {value: t, writable: !0, configurable: !0}
    }), e && Object.setPrototypeOf(t, e)
}

// Object.defineProperty(Object.prototype, Symbol.toStringTag, {
//     get() { return Object.getPrototypeOf(this).constructor.name }
// });
var v_new_toggle = true
Object.freeze(console)//only for javascript-obfuscator anti console debug.

v_console_log = function () {
}
var v_random = (function () {
    var seed = 276951438;
    return function random() {
        return seed = (seed * 9301 + 49297) % 233280, (seed / 233280)
    }
})()
var v_new = function (v, tagName) {
    var temp = v_new_toggle;
    v_new_toggle = true;
    var r = new v;
    v_new_toggle = temp;
    if (tagName) {
        Object.defineProperties(r, {
            tagName: {
                get() {
                    return tagName
                }
            },
            children: {
                get() {
                    return new HTMLCollection
                }
            }
        })
        r = proxy(r, tagName)
    }
    return r
}


RTCSessionDescription = v_saf(function RTCSessionDescription() {
    ;
})

EventTarget = v_saf(function EventTarget() {
    ;
})

CanvasGradient = v_saf(function CanvasGradient() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})


NavigatorUAData = v_saf(function NavigatorUAData() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})

NodeList = v_saf(function NodeList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
HTMLCollection = v_saf(function HTMLCollection() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
HTMLAllCollection = v_saf(function HTMLAllCollection(arrs) {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;this.items == allNodes
})
Object.defineProperties(HTMLAllCollection.prototype, {
    items: {value: {}},
    item: {
        value: v_saf(function item() {

        })
    },
    length: {
        value: 0
    },
    namedItem: {
        value: v_saf(function namedItem() {

        })
    }
})
DOMTokenList = v_saf(function DOMTokenList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Event = v_saf(function Event() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})

Bluetooth = v_saf(function Bluetooth() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
CredentialsContainer = v_saf(function CredentialsContainer() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Navigator = v_saf(function Navigator() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;this._plugins = typeof PluginArray == 'undefined' ? [] : v_new(PluginArray);
    this._mimeTypes = typeof MimeTypeArray == 'undefined' ? [] : v_new(MimeTypeArray)
})


navis = {
    appCodeName: "Mozilla",
    appName: ENV.navigatorparams.appname,
    appVersion: ENV.navigatorparams.appversion,
    language: "en-US",
    languages: ['en-US', 'en', 'ru'],
    maxTouchPoints: 0,
    platform: ENV.navigatorparams.platform,
    product: ENV.navigatorparams.product,
    productSub: ENV.navigatorparams.productsub,
    userAgent: ENV.navigatorparams.useragent,
    vendor: ENV.navigatorparams.vendor,
    vendorSub: "",
    webdriver: false,
    hardwareconcurrency: ENV.navigatorparams.hardwareconcurrency
}
// ENV.navigatorparams.useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203'
// navis.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203'
// navis.appVersion = '5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.203'
// navis = fingerprint.navigator
Object.defineProperties(Navigator.prototype, {
    getBattery: {
        value: v_saf(function getBattery() {
            return {
                then: function () {
                    print1('getBattery', arguments)
                }
            }
        }),
    },
    mediaDevices: {
        get() {
            v_console_log("  [*] Navigator -> mediaDevices[get]",);
            return v_new(MediaDevices)
        }
    },
    // cpuClass: {
    //     get(){
    //         v_console_log("  [*] Navigator -> cpuClass[get]", this._plugins || []);
    //         return ''
    //     }
    // },
    plugins: {
        get: v_saf(function plugins() {
            // print1("  [*] Navigator -> plugins[get]", this._plugins || []);
            if (Object.keys(ENV.plugins).length === 0) {
                return [];
            }
            return proxy(this._plugins || [], 'pluginsss')
        }, undefined, 'get'),
        enumerable: true,
        configurable: true
    },
    mimeTypes: {
        get: v_saf(function mimeTypes() {
            v_console_log("  [*] Navigator -> mimeTypes[get]", this._mimeTypes || []);
            if (ENV.mimetypes.length === 0) {
                return [];
            }
            return this._mimeTypes || []
        }, undefined, 'get'),
        enumerable: true,
        configurable: true
    },
    appCodeName: {
        get() {
            v_console_log("  [*] Navigator -> appCodeName[get]", "Mozilla");
            // return "Mozilla"
            return navis.appCodeName
        }
    },
    appName: {
        get() {
            v_console_log("  [*] Navigator -> appName[get]", "Netscape");
            // return "Netscape"
            return navis.appName
        }
    },
    appVersion: {
        get() {
            v_console_log("  [*] Navigator -> appVersion[get]", "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62");
            // return "5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62"
            return navis.appVersion
        }
    },
    hardwareConcurrency: {
        get() {
            v_console_log("  [*] Navigator -> hardwareConcurrency[get]", 8);
            return navis.hardwareconcurrency
        }
    },
    maxTouchPoints: {
        get() {
            v_console_log("  [*] Navigator -> maxTouchPoints[get]", 0);
            return 0
        }
    },
    platform: {
        get() {
            v_console_log("  [*] Navigator -> platform[get]", "MacIntel");
            return navis.platform
        }
    },
    product: {
        get() {
            v_console_log("  [*] Navigator -> product[get]", "Gecko");
            return navis.product
        }
    },
    productSub: {
        get() {
            v_console_log("  [*] Navigator -> productSub[get]", "20030107");
            return navis.productSub
        }
    },
    userAgent: {
        get: v_saf(function userAgent() {

            v_console_log("  [*] Navigator -> userAgent[get]", navis.userAgent);
            // return "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62"
            return navis.userAgent
        }, undefined, 'get')
    },
    vendor: {
        get: v_saf(function vendor() {
            v_console_log("  [*] Navigator -> vendor[get]", navis.vendor);
            return navis.vendor
        }, undefined, 'get')
    },
    vendorSub: {
        get() {
            v_console_log("  [*] Navigator -> vendorSub[get]", navis.vendorSub);
            return navis.vendorSub
        }
    },
    doNotTrack: {
        get() {
            v_console_log("  [*] Navigator -> doNotTrack[get]", null);
            return null
        }
    },
    webdriver: {
        get() {
            v_console_log("  [*] Navigator -> webdriver[get]", false);
            return false
        }
    },
    geolocation: {
        get() {
            v_console_log("  [*] Navigator -> geolocation[get]", {});
            return {}
        }
    },
    bluetooth: {
        get() {
            v_console_log("  [*] Navigator -> bluetooth[get]", {});
            return v_new(Bluetooth)
        }
    },
    credentials: {
        get() {
            v_console_log("  [*] Navigator -> credentials[get]", {});
            return v_new(CredentialsContainer)
        }
    },
    languages: {
        get() {
            v_console_log("  [*] Navigator -> languages[get]", {});
            return ['en-US', 'en', 'ru']
        }
    },
    language: {
        get() {
            v_console_log("  [*] Navigator -> language[get]", {});
            return 'en-US'
        }
    },
    connection: {
        get() {
            v_console_log("  [*] Navigator -> connection[get]", {});
            return {}
        }
    },
    vibrate: {
        get() {
            v_console_log("  [*] Navigator -> vibrate[get]", {});
            return {}
        }
    },
    storage: {
        get() {
            v_console_log("  [*] Navigator -> storage[get]", {});
            return {}
        }
    },
    requestMediaKeySystemAccess: {
        get() {
            v_console_log("  [*] Navigator -> requestMediaKeySystemAccess[get]", {});
            return v_saf(function requestMediaKeySystemAccess() {
            })
        }
    },
    userAgentData: {
        get: v_saf(function () {
            if (Object.keys(window.ENV.useragentdata).length !== 0) {
                return {
                    // "brands": [{"brand": "Not/A)Brand", "version": "99"}, {
                    //     "brand": "Google Chrome",
                    //     "version": "115"
                    // }, {"brand": "Chromium", "version": "115"}],
                    // "mobile": false, "platform": "macOS",
                    "brands": window.ENV.useragentdata.brands,
                    "mobile": window.ENV.useragentdata.mobile,
                    "platform": window.ENV.useragentdata.platform,
                    getHighEntropyValues: function (e) {
                        let r;
                        switch (e[0]) {
                            case 'architecture':
                                r = {
                                    "architecture": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'bitness':
                                r = {
                                    "bitness": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'brands':
                                r = {
                                    "brands": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'mobile':
                                r = {
                                    "brands": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'model':
                                r = {
                                    "model": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'platform':
                                r = {
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'platformVersion':
                                r = {
                                    "platformVersion": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'uaFullVersion':
                                r = {
                                    "uaFullVersion": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'wow64':
                                r = {
                                    "wow64": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;
                            case 'fullVersionList':
                                r = {
                                    "fullVersionList": window.ENV.useragentdata.highvalue[e[0].toLowerCase()],
                                    "brands": window.ENV.useragentdata.brands,
                                    "mobile": window.ENV.useragentdata.mobile,
                                    "platform": window.ENV.useragentdata.platform
                                }
                                break;


                        }
                        // r =

                        print('getHighEntropyValues', e, r)

                        return new Promise((resolve, reject) => {

                            resolve(r)
                        });
                    }
                }
            }
            return {}

        })
    },
    [Symbol.toStringTag]: {value: "Navigator", writable: false, enumerable: false, configurable: true},
})
TextMetrics = v_saf(function TextMetrics(text, context, font) {
    print1('new TextMetrics', arguments)
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    this.text = text;
    this.font = font;
    this.context = context;
    ;
})

let fonts22 = [];
let mTexts = {
    "50px  sans-serif": 152.84999084472656,
    "50px  serif": 132.39996337890625,
    "50px 'Andale Mono',  sans-serif": 180.029296875,
    "50px 'Andale Mono',  serif": 180.029296875,
    "50px 'Arial Narrow',  sans-serif": 111.6943359375,
    "50px 'Arial Narrow',  serif": 111.6943359375,
    "50px 'Arial Unicode MS',  sans-serif": 136.1572265625,
    "50px 'Arial Unicode MS',  serif": 136.1572265625,
    "50px 'Batang',  sans-serif": 152.84999084472656,
    "50px 'Batang',  serif": 132.39996337890625,
    "50px 'Bell MT',  sans-serif": 152.84999084472656,
    "50px 'Bell MT',  serif": 132.39996337890625,
    "50px 'Brush Script',  sans-serif": 152.84999084472656,
    "50px 'Brush Script',  serif": 132.39996337890625,
    "50px 'Brush Script MT',  sans-serif": 133.740234375,
    "50px 'Brush Script MT',  serif": 133.740234375,
    "50px 'Calibri',  sans-serif": 152.84999084472656,
    "50px 'Calibri',  serif": 132.39996337890625,
    "50px 'Charter',  sans-serif": 139.55078125,
    "50px 'Charter',  serif": 139.55078125,
    "50px 'Courier',  sans-serif": 180.029296875,
    "50px 'Courier',  serif": 180.029296875,
    "50px 'Courier New',  sans-serif": 180.029296875,
    "50px 'Courier New',  serif": 180.029296875,
    "50px 'Curlz MT',  sans-serif": 152.84999084472656,
    "50px 'Curlz MT',  serif": 132.39996337890625,
    "50px 'DejaVu Sans',  sans-serif": 152.84999084472656,
    "50px 'DejaVu Sans',  serif": 132.39996337890625,
    "50px 'DejaVu Sans Mono',  sans-serif": 152.84999084472656,
    "50px 'DejaVu Sans Mono',  serif": 132.39996337890625,
    "50px 'DejaVu Serif Condensed',  sans-serif": 152.84999084472656,
    "50px 'DejaVu Serif Condensed',  serif": 132.39996337890625,
    "50px 'Droid Sans',  sans-serif": 152.84999084472656,
    "50px 'Droid Sans',  serif": 132.39996337890625,
    "50px 'Droid Sans Fallback',  sans-serif": 152.84999084472656,
    "50px 'Droid Sans Fallback',  serif": 132.39996337890625,
    "50px 'Droid Serif',  sans-serif": 152.84999084472656,
    "50px 'Droid Serif',  serif": 132.39996337890625,
    "50px 'Forte',  sans-serif": 152.84999084472656,
    "50px 'Forte',  serif": 132.39996337890625,
    "50px 'Futura',  sans-serif": 139.35546875,
    "50px 'Futura',  serif": 139.35546875,
    "50px 'Geneva',  sans-serif": 162.3046875,
    "50px 'Geneva',  serif": 162.3046875,
    "50px 'Hei',  sans-serif": 153.41796875,
    "50px 'Hei',  serif": 153.41796875,
    "50px 'Leelawadee',  sans-serif": 152.84999084472656,
    "50px 'Leelawadee',  serif": 132.39996337890625,
    "50px 'Levenim MT',  sans-serif": 152.84999084472656,
    "50px 'Levenim MT',  serif": 132.39996337890625,
    "50px 'Liberation Sans',  sans-serif": 152.84999084472656,
    "50px 'Liberation Sans',  serif": 132.39996337890625,
    "50px 'Liberation Sans Narrow',  sans-serif": 152.84999084472656,
    "50px 'Liberation Sans Narrow',  serif": 132.39996337890625,
    "50px 'Marlett',  sans-serif": 152.84999084472656,
    "50px 'Marlett',  serif": 132.39996337890625,
    "50px 'Meiryo UI',  sans-serif": 152.84999084472656,
    "50px 'Meiryo UI',  serif": 132.39996337890625,
    "50px 'Microsoft Uighur',  sans-serif": 152.84999084472656,
    "50px 'Microsoft Uighur',  serif": 132.39996337890625,
    "50px 'Microsoft YaHei UI',  sans-serif": 152.84999084472656,
    "50px 'Microsoft YaHei UI',  serif": 132.39996337890625,
    "50px 'MS Mincho',  sans-serif": 152.84999084472656,
    "50px 'MS Mincho',  serif": 132.39996337890625,
    "50px 'MS UI Gothic',  sans-serif": 152.84999084472656,
    "50px 'MS UI Gothic',  serif": 132.39996337890625,
    "50px 'NanumGothic',  sans-serif": 148.39996337890625,
    "50px 'NanumGothic',  serif": 148.39996337890625,
    "50px 'Nirmala UI',  sans-serif": 152.84999084472656,
    "50px 'Nirmala UI',  serif": 132.39996337890625,
    "50px 'Palatino',  sans-serif": 132.91015625,
    "50px 'Palatino',  serif": 132.91015625,
    "50px 'Papyrus',  sans-serif": 139.84375,
    "50px 'Papyrus',  serif": 139.84375,
    "50px 'PMingLiU',  sans-serif": 152.84999084472656,
    "50px 'PMingLiU',  serif": 132.39996337890625,
    "50px 'PT Serif',  sans-serif": 134.0999755859375,
    "50px 'PT Serif',  serif": 134.0999755859375,
    "50px 'SimHei',  sans-serif": 152.84999084472656,
    "50px 'SimHei',  serif": 132.39996337890625,
    "50px 'STIXVariants',  sans-serif": 140.84999084472656,
    "50px 'STIXVariants',  serif": 124.79997253417969,
    "50px 'STSong',  sans-serif": 132.94996643066406,
    "50px 'STSong',  serif": 132.94996643066406,
    "50px 'Traditional Arabic',  sans-serif": 152.84999084472656,
    "50px 'Traditional Arabic',  serif": 132.39996337890625,
    "50px 'Urdu Typesetting',  sans-serif": 152.84999084472656,
    "50px 'Urdu Typesetting',  serif": 132.39996337890625,
    "50px 'Verdana',  sans-serif": 175.4150390625,
    "50px 'Verdana',  serif": 175.4150390625,
    "50px 'Wingdings',  sans-serif": 311.5966796875,
    "50px 'Wingdings',  serif": 311.5966796875,
    "50px 'Wingdings 3',  sans-serif": 244.5068359375,
    "50px 'Wingdings 3',  serif": 244.5068359375,
    "50px 'Helkevtrica',  sans-serif": 152.84999084472656,
    "50px 'Helkevtrica',  serif": 132.39996337890625
}

Object.defineProperties(TextMetrics.prototype, {
    width: {
        get() {
            // fonts.push(this.fontval[0])
            if (ENV.fontsres[this.font] && ENV.fontsres[this.font][this.text]) {
                return ENV.fontsres[this.font][this.text].width
            }
            // v_console_log(this.text[0], "  [*] TextMetrics -> width[get]", width);

            return 132.39996337890625 * (Math.random() * 0.1 + 0.9)
        }
    },
    actualBoundingBoxAscent: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxAscent[get]", 556.640625);
            if (ENV.fontsres[this.font] && ENV.fontsres[this.font][this.text]) {
                return ENV.fontsres[this.font][this.text].actualboundingboxascent
            }
            return 556.640625 * (Math.random() * 0.1 + 0.9)
        }
    },
    actualBoundingBoxDescent: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxDescent[get]", -203.61328125);
            if (ENV.fontsres[this.font] && ENV.fontsres[this.font][this.text]) {
                return ENV.fontsres[this.font][this.text].actualboundingboxdescent

            }
            return -203.61328125 * (Math.random() * 0.1 + 0.9)
        }
    },
    actualBoundingBoxLeft: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxLeft[get]", -22.94921875);
            if (ENV.fontsres[this.font] && ENV.fontsres[this.font][this.text]) {
                return ENV.fontsres[this.font][this.text].actualboundingboxleft
            }
            return -22.94921875 * (Math.random() * 0.1 + 0.9)
        }
    },
    actualBoundingBoxRight: {
        get() {
            v_console_log("  [*] TextMetrics -> actualBoundingBoxRight[get]", 579.1015625);
            if (ENV.fontsres[this.font] && ENV.fontsres[this.font][this.text]) {
                return ENV.fontsres[this.font][this.text].actualboundingboxright
            }
            return 579.1015625 * (Math.random() * 0.1 + 0.9)
        }
    },
    [Symbol.toStringTag]: {value: "TextMetrics", writable: false, enumerable: false, configurable: true},
})
Plugin = v_saf(function Plugin() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
MimeType = v_saf(function MimeType() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(Plugin.prototype, {
    name: {value: '', writable: true},
    description: {value: '', writable: true},
    filename: {value: '', writable: true},
    length: {value: '', writable: true},
})
PluginArray = v_saf(function PluginArray() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    for (let i = 0; i < Object.keys(ENV.plugins).length; i++) {
        this[i] = v_new(Plugin);
        let plugin = ENV.plugins[i];
        this[i].description = plugin.description;
        this[i].filename = plugin.filename;
        this[i].length = plugin.length;
        this[i].name = plugin.name;
        this[i]['0'] = plugin['0'] || plugin['field1']
        this[i]['1'] = plugin['1'] || plugin['field2']
        this[i]['application/pdf'] = plugin['application/pdf'] || plugin['applicationpdf']
        this[i]['text/pdf'] = plugin['text/pdf'] || plugin['textpdf']

    }
    print()
    // this[0] = v_new(Plugin);
    // this[0].description = "Portable Document Format";
    // this[0].filename = "internal-pdf-viewer";
    // this[0].length = 2;z
    // this[0].name = "PDF Viewer";
    // this[1] = v_new(Plugin);
    // this[1].description = "Portable Document Format";
    // this[1].filename = "internal-pdf-viewer";
    // this[1].length = 2;
    // this[1].name = "Chrome PDF Viewer";
    // this[2] = v_new(Plugin);
    // this[2].description = "Portable Document Format";
    // this[2].filename = "internal-pdf-viewer";
    // this[2].length = 2;
    // this[2].name = "Chromium PDF Viewer";
    // this[3] = v_new(Plugin);
    // this[3].description = "Portable Document Format";
    // this[3].filename = "internal-pdf-viewer";
    // this[3].length = 2;
    // this[3].name = "Microsoft Edge PDF Viewer";
    // this[4] = v_new(Plugin);
    // this[4].description = "Portable Document Format";
    // this[4].filename = "internal-pdf-viewer";
    // this[4].length = 2;
    // this[4].name = "WebKit built-in PDF";
})

MimeType = v_saf(function MimeType() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
WebKitMutationObserver = v_saf(function WebKitMutationObserver() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
crypto = v_saf(function Crypto(){

})

Object.defineProperties(crypto,{
    subtle: {
        value: v_saf(function SubtleCrypto(){})
    },
    getRandomValues: {
        value: v_saf(function(){
            var e=arguments[0];
            return e.map(function(x, i){return e[i]= parseInt(2147193652)});
        })
    }
})
window.crypto = crypto;
Image = v_saf(function Image() {
    ;
    return v_new(HTMLImageElement)
})
webkitResolveLocalFileSystemURL = v_saf(function webkitResolveLocalFileSystemURL() {
})
webkitRequestAnimationFrame = v_saf(function webkitRequestAnimationFrame() {
})
requestAnimationFrame = v_saf(function requestAnimationFrame() {
})


RTCDataChannel = v_saf(function RTCDataChannel() {
    ;
});
_inherits(RTCDataChannel, EventTarget)
Object.defineProperties(RTCDataChannel.prototype, {
    binaryType: {
        get() {
            print('  [*] RTCDataChannel -> binaryType[get] ', 'arraybuffer')
            return 'arraybuffer'
        }
    }
})
window.RTCDataChannel = RTCDataChannel;
Node = v_saf(function Node() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Node, EventTarget)

WebSocket = v_saf(function WebSocket() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(WebSocket, EventTarget)
let RTCPeerConnectionIceEvent = v_saf(function RTCPeerConnectionIceEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(RTCPeerConnectionIceEvent, Event)
CompressionStream = v_saf(function CompressionStream() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.CompressionStream = CompressionStream;
LayoutShiftAttribution = v_saf(function LayoutShiftAttribution() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
window.LayoutShiftAttribution = LayoutShiftAttribution;
FeaturePolicy = v_saf(function FeaturePolicy() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

Object.defineProperties(FeaturePolicy.prototype, {
    features: {
        value: function () {
            window.ENV.featurepolicy.features = window.ENV.featurepolicy.features.sort(sortRandom)
            return window.ENV.featurepolicy.features
        },
        enumerable: true
    },
    allowedFeatures: {
        value: function () {
            window.ENV.featurepolicy.allowedfeatures = window.ENV.featurepolicy.allowedfeatures.sort(sortRandom)
            return window.ENV.featurepolicy.allowedfeatures
        },
        enumerable: true
    },
    getAllowlistForFeature: {
        value: function () {
            return ['https://www.southwest.com/']
        },
        enumerable: true
    }
})

window.FeaturePolicy = FeaturePolicy;


MessageEvent = v_saf(function MessageEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MessageEvent, Event)
MediaQueryList = v_saf(function MediaQueryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MediaQueryList, EventTarget)
UIEvent = v_saf(function UIEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(UIEvent, Event)

Performance = v_saf(function Performance() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Performance, EventTarget)
XMLHttpRequestEventTarget = v_saf(function XMLHttpRequestEventTarget() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(XMLHttpRequestEventTarget, EventTarget)
Document = v_saf(function Document() {
    ;
});
_inherits(Document, Node)
Element = v_saf(function Element() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

_inherits(Element, Node)
MouseEvent = v_saf(function MouseEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MouseEvent, UIEvent)
KeyboardEvent = v_saf(function KeyboardEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(KeyboardEvent, UIEvent)
XMLHttpRequest = v_saf(function XMLHttpRequest() {
    ;
});
Object.defineProperties(XMLHttpRequest.prototype, {
    onreadystatechange: {
        get() {
            print("onreadystatechange_call", arguments)
        }, enumerable: true, configurable: true
    },
    headers: {enumerable: true, configurable: true, value: {}},
    readyState: {
        get() {
            print("readyState_call", arguments)
        }, enumerable: true, configurable: true
    },
    timeout: {
        get() {
            print("timeout_call", arguments)
        }, enumerable: true, configurable: true
    },
    withCredentials: {
        get() {
            print("withCredentials_call", arguments)
        }, enumerable: true, configurable: true
    },
    upload: {
        get() {
            print("upload_call", arguments)
        }, enumerable: true, configurable: true
    },
    responseURL: {
        get() {
            print("responseURL_call", arguments)
        }, enumerable: true, configurable: true
    },
    status: {
        get() {
            print("status_call", arguments);
            return 0;
        }, enumerable: true, configurable: true
    },
    statusText: {
        get() {
            print1("statusText_call",)
        }, enumerable: true, configurable: true
    },
    responseType: {
        get() {
            print("responseType_call",)
        }, enumerable: true, configurable: true
    },
    response: {
        get() {
            print1("response_call",)
        }, enumerable: true, configurable: true
    },
    responseText: {
        // value:
        get() {
            return ''
            if (xhr_res) {
                return xhr_res
            }
            print1("responseText_call", arguments);

            let res = syncRequest("POST", tlsUrl, {
                'content-type': 'application/json',
                }, undefined, JSON.stringify({
                    url: xhr_url,
                    method: 'GET',
                    proxy: prox,
                    debug: true,
                    random_tls: true,
                    headers: {
                        "Accept": "*/*",
                        "Accept-Language": "en,en-US;q=0.9,zh-CN;q=0.8,zh;q=0.7,ru;q=0.6",
                        "Cache-Control": "no-cache",
                        "Connection": "keep-alive",
                        "Origin": "https://www.southwest.com",
                        "Pragma": "no-cache",
                        "Referer": "https://www.southwest.com/",
                        "User-Agent": ENV.navigatorparams.useragent,
                    }
                })
            )

            xhr_res = JSON.parse(res.body)['text'];
            return xhr_res
            return '0m1S5sLPfXxOtgF7V0HAWLQdgDk3PwiT4of9GF02YRG+Z5DcPqnAB555ybHUMXlTUqnNrO6ecrYbuzeTMg9M/EH2hRgmDRcgO/sc6xgcP7n4lw7BLBd4XUF9vsW3/qd5wbE9MJAepPhQJcbJEplKiv038bbIJmWys87XFx5XAcZ10nnUiyRIqiHTS/CZfZgoifPd/bJzrDWFHyqUQu0cjrVldF644NasqGzRyavOVM15pAjbyAYLqnEZqmba5PTldEzLb7+2S7zIBsFDwd6FuOVUX7xvFHc53lRq9WwSaOEmrNvfqbOg9P+d/uhcJiDlOP/oTZmSDx9fhlTaWjmp0wdATbhnKR8SFwc4M/MgRQ/3yAyIyaZme+WatyTvRISKt4JhfJGc+2biChz8QZgKZNGNtzDXwY4RQvSBheskw0RTMQb7NV6bIqvvvDnIx3ZdZ31LLS8PxDfP4y8z7LMuoTsvBRHsuLv0DV9fdWg/2K5fkhah6SUC+GQ6dQHO1wOl8vHbinsa+9aZKXVuiFh269MX8LOuECw7U8V9uYK4TOpWwTeMSc4INnYlxnmnqCs7GQZaZewFiiizSUOFaox+iITh8fTJJU6BPWFSNPpLEZgs6ByI1oQv1XsxtoJfE76lF3SNP2v95QNUBmic0WHLJAZtIxbnYebXn+j+saZP4UeRxareme7/94Q+WluME1yqV5hKzOy0ljPmyAAaXTxvTVJYVC9CL7NC8vigwrhsFmVmUV09K2SbXRlr9SshuUmE7Q1kxgX0GIBJDlvHYIYPaZXoBUN45mzTEL7MGZx+72sOjNKZu82xfy5fKE1LfKV4zoFcZ7ogkAQI63HUSbQ1Opoj/nXQRjVXgrEFOlIYC9V9Wet9wbxOOZkHuOlR+VnLyCVd7Xs6ySrM3RkIY2mFVQ=='
        }
    },
    responseXML: {
        get() {
            print("responseXML_call", arguments)
        }, enumerable: true, configurable: true
    },
    UNSENT: {
        get() {
            print("UNSENT_call", arguments)
        }, enumerable: true, configurable: true
    },
    OPENED: {
        get() {
            print("OPENED_call", arguments)
        }, enumerable: true, configurable: true
    },
    HEADERS_RECEIVED: {
        get() {
            print("HEADERS_RECEIVED_call", arguments)
        }, enumerable: true, configurable: true
    },
    LOADING: {
        get() {
            print("LOADING_call", arguments)
        }, enumerable: true, configurable: true
    },
    DONE: {
        get() {
            print("DONE_call", arguments)
        }, enumerable: true, configurable: true
    },
    abort: {
        get() {
            print("abort_call", arguments)
        }, enumerable: true, configurabled: true
    },
    getAllResponseHeaders: {
        get() {
            print("getAllResponseHeaders_call", arguments)
        }, enumerable: true, configurable: true
    },
    getResponseHeader: {
        get() {
            print("getResponseHeader_call", arguments)
        }, enumerable: true, configurable: true
    },
    open: {
        // value:{func(){print("open_call", arguments)}}.func, enumerable: true, configurable: true
        value: v_saf((method, url, sync) => {
            print1("open_call", method, url, sync)
            xhr_url === undefined ? xhr_url = url : undefined;
        }), enumerable: true, configurable: true
    },
    overrideMimeType: {
        get() {
            print("overrideMimeType_call", arguments)
        }, enumerable: true, configurable: true
    },
    send: {
        value: v_saf(() => {
            print("send_call");
            // debugger;
            //todo
            // xhr_onload && xhr_onload()
        }), enumerable: true, configurable: true
    },
    onload: {
        set(args) {
            xhr_onload = args;
        },
        get() {
            return this._onload;
        }
    },
    setRequestHeader: {
        value: v_saf(function () {
            print("setRequestHeader_call", arguments, arguments[1].length);
            this.headers[arguments[0].toLowerCase()] = arguments[1];
            if (arguments[0] === 'EE30zvQLWf-b') {
                print(this.headers)
            }
            ;
        }, undefined, undefined), enumerable: true, configurable: true
    },
})

// _inherits(XMLHttpRequest, XMLHttpRequestEventTarget)
let xhr_onload = undefined;
let xhr_url = undefined;
let xhr_res = undefined;

// XMLHttpRequest.prototype.open = function(){
//     print("xhr_call_open", arguments)
// }
// XMLHttpRequest.prototype.send = function(){
//     print("xhr_call_send", arguments)
// }
// XMLHttpRequest.prototype.setRequestHeader = function(){
//     print("xhr_setRequestHeader_send", arguments)
// }


function v_init_event_target() {

    function _mk_mouse_event(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget) {
        if (type == 'click') {
            var m = new PointerEvent()
            m.pointerType = "mouse"
        } else {
            var m = new MouseEvent()
        }
        m.isTrusted = true
        m.type = type
        m.canBubble = canBubble
        m.cancelable = cancelable
        m.view = view
        m.detail = detail
        m.screenX = screenX;
        m.movementX = screenX
        m.screenY = screenY;
        m.movementY = screenY
        m.clientX = clientX;
        m.layerX = clientX;
        m.offsetX = clientX;
        m.pageX = clientX;
        m.x = clientX;
        m.clientY = clientY;
        m.layerY = clientY;
        m.offsetY = clientY;
        m.pageY = clientY;
        m.y = clientY;
        m.ctrlKey = ctrlKey
        m.altKey = altKey
        m.shiftKey = shiftKey
        m.metaKey = metaKey
        m.button = button
        m.relatedTarget = relatedTarget
        // print(m   )
        return m
    }

    function make_mouse(type, x, y) {
        return _mk_mouse_event(type, true, true, window, 0, 0, 0, x, y, false, false, false, false, 0, null)
    }

    function mouse_click(x, y) {
        for (var i = 0; i < (v_events['click'] || []).length; i++) {
            v_events['click'][i][1](make_mouse('click', x, y))
        }
        for (var i = 0; i < (v_events['mousedown'] || []).length; i++) {
            v_events['mousedown'][i][1](make_mouse('mousedown', x, y))
        }
        for (var i = 0; i < (v_events['mouseup'] || []).length; i++) {
            v_events['mouseup'][i][1](make_mouse('mouseup', x, y))
        }
    }

    var offr = Math.random()

    function make_touch(_this, type, x, y, timeStamp) {
        var offx = _random()
        var offy = _random()
        var t = v_new(new v_saf(function Touch() {
        }))
        t = clientX = offx + x
        t = clientY = offy + y
        t = force = 1
        t = identifier = 0
        t = pageX = offx + x
        t = pageY = offy + y
        t = radiusX = 28 + offr
        t = radiusY = 28 + offr
        t = rotationAngle = 0
        t = screenX = 0
        t = screenY = 0
        var e = v_new(new v_saf(function TouchEvent() {
        }))
        e.isTrusted = true
        e.altKey = false
        e.bubbles = true
        e.cancelBubble = false
        e.cancelable = false
        e.changedTouches = e.targetTouches = e.touches = [t]
        e.composed = true
        e.ctrlKey = false
        e.currentTarget = null
        e.defaultPrevented = false
        e.detail = 0
        e.eventPhase = 0
        e.metaKey = false
        e.path = _this == window ? [window] : [_this, window]
        e.returnValue = true
        e.shiftKey = false
        e.sourceCapabilities = new v_saf(function InputDeviceCapabilities() {
            this.firesTouchEvents = true
        })
        e.srcElement = _this
        e.target = _this
        e.type = type
        e.timeStamp = timeStamp == undefined ? (new Date - v_start_stamp) : ((v_fake_stamp += _random() * 20) - v_start_stamp)
        e.view = window
        e.which = 0
        return e
    }

    function make_trace(x1, y1, x2, y2) {
        // 贝塞尔曲线
        function step_len(x1, y1, x2, y2) {
            var ln = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
            return (ln / 10) ^ 0
        }

        var slen = step_len(x1, y1, x2, y2)
        if (slen < 3) {
            return []
        }

        function factorial(x) {
            for (var y = 1; x > 1; x--) {
                y *= x
            }
            return y;
        }

        var lp = _random()
        var rp = _random()
        var xx1 = (x1 + (x2 - x1) / 12 * (4 - lp * 4)) ^ 0
        var yy1 = (y1 + (y2 - y1) / 12 * (8 + lp * 4)) ^ 0
        var xx2 = (x1 + (x2 - x1) / 12 * (8 + rp * 4)) ^ 0
        var yy2 = (y1 + (y2 - y1) / 12 * (4 - rp * 4)) ^ 0
        var points = [[x1, y1], [xx1, yy1], [xx2, yy2], [x2, y2]]
        var N = points.length
        var n = N - 1
        var traces = []
        var step = slen
        for (var T = 0; T < step + 1; T++) {
            var t = T * (1 / step)
            var x = 0
            var y = 0
            for (var i = 0; i < N; i++) {
                var B = factorial(n) * t ** i * (1 - t) ** (n - i) / (factorial(i) * factorial(n - i))
                x += points[i][0] * B
                y += points[i][1] * B
            }
            traces.push([x ^ 0, y ^ 0])
        }
        return traces
    }

    function touch(x1, y1, x2, y2) {
        if (x2 == undefined && y2 == undefined) {
            x2 = x1
            y2 = y1
        }
        var traces = make_trace(x1, y1, x2, y2)
        print('traces:', traces)
        for (var i = 0; i < (v_events['touchstart'] || []).length; i++) {
            v_events['touchstart'][i][1](make_touch(v_events['touchstart'][i][0], 'touchstart', x1, y1))
        }
        for (var j = 0; j < traces.length; j++) {
            var x = traces[j][0]
            var y = traces[j][0]
            for (var i = 0; i < (v_events['touchmove'] || []).length; i++) {
                v_events['touchmove'][i][1](make_touch(v_events['touchmove'][i][0], 'touchmove', x, y))
            }
        }
        for (var i = 0; i < (v_events['touchend'] || []).length; i++) {
            v_events['touchend'][i][1](make_touch(v_events['touchend'][i][0], 'touchend', x2, y2))
        }
    }

    function mouse_move(x1, y1, x2, y2) {
        if (x2 == undefined && y2 == undefined) {
            x2 = x1
            y2 = y1
        }
        var traces = make_trace(x1, y1, x2, y2)
        // print('traces:', traces)
        for (var j = 0; j < traces.length; j++) {
            var x = traces[j][0]
            var y = traces[j][0]
            // for (var i = 0; i < (v_events['mousemove'] || []).length; i++) {
            v_events['mousemove'](make_mouse(v_events['mousemove'], x, y))
            // v_events['keypress'](make_mouse('keypress', x, y))
            // }
        }
    }

    window.make_mouse = make_mouse
    window.mouse_click = mouse_click
    window.mouse_move = mouse_move
    window.touch = touch
    // EventTarget.prototype.addEventListener = function(){v_console_log('  [*] EventTarget -> addEventListener[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
    // EventTarget.prototype.dispatchEvent = function(){v_console_log('  [*] EventTarget -> dispatchEvent[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
    // EventTarget.prototype.removeEventListener = function(){v_console_log('  [*] EventTarget -> removeEventListener[func]', this===window?'[Window]':this===document?'[Document]':this, [].slice.call(arguments)); add_event(this, [].slice.call(arguments)); return null}
}

HTMLElement = v_saf(function HTMLElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLElement, Element)
HTMLScriptElement = v_saf(function HTMLScriptElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLScriptElement, HTMLElement)
HTMLBodyElement = v_saf(function HTMLBodyElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLBodyElement, HTMLElement)
Object.defineProperties(HTMLBodyElement.prototype, {
    innerText: {
        get: function () {
            return 'ssss'
        },
        enumerable: true,
        configurable: true
    },
    webkitRequestFullScreen: {
        value: v_saf(function webkitRequestFullScreen() {
        }),
        enumerable: true,
        configurable: true
    },
    [Symbol.toStringTag]: {value: "HTMLBodyElement", writable: false, enumerable: false, configurable: true},
})

class CanvasRenderingContext2D {


    constructor(w, h, context) {
        this.imageDatas = {
            "18,90,1,1": [214, 122, 6, 255],
            "38,77,1,1": [255, 255, 255, 255],
            "48,28,1,1": [0, 0, 0, 0],
            "94,23,1,1": [0, 0, 0, 0],
            "26,46,1,1": [253, 243, 245, 255],
            "47,23,1,1": [0, 0, 0, 0],
            "37,17,1,1": [0, 0, 0, 255],
            "62,28,1,1": [204, 131, 217, 255],
            "0,0,5,5": [0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255],
            "53,46,1,1": [0, 0, 0, 45],
            "55,42,1,1": [0, 0, 0, 0],
            "53,54,1,1": [0, 0, 0, 255],
            "55,41,1,1": [0, 0, 0, 0],
            "55,52,1,1": [0, 0, 0, 255],
            "44,54,1,1": [0, 0, 0, 0],
            "56,39,1,1": [0, 0, 0, 0],
            "44,40,1,1": [0, 0, 0, 0],
            "45,54,1,1": [0, 0, 0, 0],
            "42,49,1,1": [0, 0, 0, 0],
            "58,53,1,1": [0, 0, 0, 255],
            "38,38,1,1": [0, 0, 0, 0],
            "40,51,1,1": [0, 0, 0, 0],
            "52,51,1,1": [0, 0, 0, 255],
            "52,57,1,1": [0, 0, 0, 255],
            "39,47,1,1": [0, 0, 0, 0],
            "58,39,1,1": [0, 0, 0, 0],
            "42,52,1,1": [0, 0, 0, 0],
            "0,0,248,247": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 30, 199, 77, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 199, 77, 50, 30, 199, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 198, 51, 90, 30, 199, 50, 179, 30, 199, 50, 179, 30, 200, 49, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 52, 183, 39, 48, 50, 181, 117, 48, 48, 183, 117, 48, 44, 186, 155, 48, 41, 188, 155, 48, 39, 191, 155, 48, 36, 194, 154, 50, 35, 195, 154, 48, 32, 198, 153, 51, 31, 200, 115, 52, 33, 196, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 110, 249, 128, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 249, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 34, 201, 38, 51, 31, 200, 115, 94, 37, 150, 173, 180, 48, 52, 235, 180, 48, 52, 235, 129, 41, 110, 194, 51, 31, 200, 115, 54, 34, 201, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 213, 233, 211, 255, 101, 195, 126, 255, 102, 194, 128, 255, 176, 219, 185, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 246, 240, 191, 249, 245, 239, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 30, 199, 77, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 200, 153, 50, 30, 199, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 198, 51, 45, 30, 199, 50, 179, 30, 199, 50, 179, 30, 199, 50, 179, 28, 198, 51, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 46, 190, 39, 52, 39, 190, 39, 51, 37, 193, 116, 50, 35, 195, 154, 50, 33, 198, 153, 50, 30, 200, 153, 53, 31, 197, 154, 54, 31, 194, 155, 57, 31, 191, 156, 61, 31, 190, 117, 65, 33, 190, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 100, 110, 250, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 43, 103, 89, 185, 48, 47, 227, 180, 48, 52, 235, 129, 41, 110, 194, 50, 30, 200, 153, 50, 30, 200, 153, 51, 31, 200, 115, 54, 34, 201, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 245, 239, 128, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 102, 194, 128, 255, 103, 192, 130, 255, 176, 217, 186, 255, 250, 245, 240, 255, 250, 246, 240, 191, 250, 246, 240, 191, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 245, 240, 255, 250, 246, 240, 191, 249, 245, 239, 128, 251, 243, 239, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        }
        this.imageDatas = Object.assign(this.imageDatas, window.ENV.imgsres['94px sans-serif'])

        print1('CanvasRenderingContext2D.new', w, h)
        this.width = w;
        this.height = h;
        this._rects = [];
        if (context) {
            this._context = context

        } else {
            this._canvas = Canvas.createCanvas(w, h)
            this._context = this._canvas.getContext('2d')

        }
    }

    set font(f) {
        print('1.font', f)
        this._font = f;
        this._context.font = f;
    }

    measureText(text) {
        print1('CanvasRenderingContext2D.measureText', text)
        this._text = text;
        fonts22.push({
            font: this._font,
            text: text
        })
        let res = new TextMetrics(text, this._context, this._font);
        return proxy(res, 'TextMetrics')
        return res;
    }

    get canvas() {
        print1('CanvasRenderingContext2D.canvas.get')
    }

    get globalAlpha() {
        print1('CanvasRenderingContext2D.globalAlpha.get')
    }

    set globalAlpha(args) {
        print1('CanvasRenderingContext2D.globalAlpha.set', args)
    }

    get globalCompositeOperation() {
        print1('CanvasRenderingContext2D.globalCompositeOperation.get')
    }

    set globalCompositeOperation(args) {
        print1('CanvasRenderingContext2D.globalCompositeOperation.set', args)
    }

    get filter() {
        print1('CanvasRenderingContext2D.filter.get')
    }

    set filter(args) {
        print1('CanvasRenderingContext2D.filter.set', args)
    }

    get imageSmoothingEnabled() {
        print1('CanvasRenderingContext2D.imageSmoothingEnabled.get')
    }

    set imageSmoothingEnabled(args) {
        print1('CanvasRenderingContext2D.imageSmoothingEnabled.set', args)
    }

    get imageSmoothingQuality() {
        print1('CanvasRenderingContext2D.imageSmoothingQuality.get')
    }

    set imageSmoothingQuality(args) {
        print1('CanvasRenderingContext2D.imageSmoothingQuality.set', args)
    }

    get strokeStyle() {
        print1('CanvasRenderingContext2D.strokeStyle.get')
    }

    set strokeStyle(args) {
        print1('CanvasRenderingContext2D.strokeStyle.set', args)
        return this._context.canvas.strokeStyle = args
    }

    get fillStyle() {
        print1('CanvasRenderingContext2D.fillStyle.get')
    }

    set fillStyle(args) {
        print1('CanvasRenderingContext2D.fillStyle.set', args)
        this._context.canvas.fillStyle = args
        this._fillStyle = args

    }

    get shadowOffsetX() {
        print1('CanvasRenderingContext2D.shadowOffsetX.get')
    }

    set shadowOffsetX(args) {
        print1('CanvasRenderingContext2D.shadowOffsetX.set', args)
        this._context.shadowOffsetX = args
    }

    get shadowOffsetY() {
        print1('CanvasRenderingContext2D.shadowOffsetY.get')
    }

    set shadowOffsetY(args) {
        print1('CanvasRenderingContext2D.shadowOffsetY.set', args)
        this._context.shadowOffsetY = args

    }

    get shadowBlur() {
        print1('CanvasRenderingContext2D.shadowBlur.get')
    }

    set shadowBlur(args) {
        print1('CanvasRenderingContext2D.shadowBlur.set', args)
        this._context.shadowBlur = args

    }

    get shadowColor() {
        print1('CanvasRenderingContext2D.shadowColor.get')

    }

    set shadowColor(args) {
        print1('CanvasRenderingContext2D.shadowColor.set', args)
        this._context.shadowColor = args

    }

    get lineWidth() {
        print1('CanvasRenderingContext2D.lineWidth.get')
    }

    set lineWidth(args) {
        print1('CanvasRenderingContext2D.lineWidth.set', args)
        this._context.canvas.lindeWidth = args
    }

    get lineCap() {
        print1('CanvasRenderingContext2D.lineCap.get')
    }

    set lineCap(args) {
        print1('CanvasRenderingContext2D.lineCap.set', args)
    }

    get lineJoin() {
        print1('CanvasRenderingContext2D.lineJoin.get')
    }

    set lineJoin(args) {
        print1('CanvasRenderingContext2D.lineJoin.set', args)
    }

    get miterLimit() {
        print1('CanvasRenderingContext2D.miterLimit.get')
    }

    set miterLimit(args) {
        print1('CanvasRenderingContext2D.miterLimit.set', args)
    }

    get lineDashOffset() {
        print1('CanvasRenderingContext2D.lineDashOffset.get')
    }

    set lineDashOffset(args) {
        print1('CanvasRenderingContext2D.lineDashOffset.set', args)
    }

    get font() {
        print1('CanvasRenderingContext2D.font.get')
        return this._context.font;
    }

    get textAlign() {
        print1('CanvasRenderingContext2D.textAlign.get')
    }

    set textAlign(args) {
        print1('CanvasRenderingContext2D.textAlign.set', args)
    }

    get textBaseline() {
        print1('CanvasRenderingContext2D.textBaseline.get')
        return this._context.textBaseline
    }

    set textBaseline(args) {
        print1('CanvasRenderingContext2D.textBaseline.set', args)
        this._context.textBaseline = args
    }

    get direction() {
        print1('CanvasRenderingContext2D.direction.get')
        return this._context.direction;
    }

    set direction(args) {
        print1('CanvasRenderingContext2D.direction.set', args)
        this._context.direction = args

    }

    get fontKerning() {
        print1('CanvasRenderingContext2D.fontKerning.get')
    }

    set fontKerning(args) {
        print1('CanvasRenderingContext2D.fontKerning.set', args)
    }

    get fontStretch() {
        print1('CanvasRenderingContext2D.fontStretch.get')
    }

    set fontStretch(args) {
        print1('CanvasRenderingContext2D.fontStretch.set', args)
    }

    get fontVariantCaps() {
        print1('CanvasRenderingContext2D.fontVariantCaps.get')
    }

    set fontVariantCaps(args) {
        print1('CanvasRenderingContext2D.fontVariantCaps.set', args)
    }

    get letterSpacing() {
        print1('CanvasRenderingContext2D.letterSpacing.get')
    }

    set letterSpacing(args) {
        print1('CanvasRenderingContext2D.letterSpacing.set', args)
    }

    get textRendering() {
        print1('CanvasRenderingContext2D.textRendering.get')
    }

    set textRendering(args) {
        print1('CanvasRenderingContext2D.textRendering.set', args)
    }

    get wordSpacing() {
        print1('CanvasRenderingContext2D.wordSpacing.get')
    }

    set wordSpacing(args) {
        print1('CanvasRenderingContext2D.wordSpacing.set', args)
    }

    clip() {
        print1('CanvasRenderingContext2D.clip')
    }

    createConicGradient() {
        print1('CanvasRenderingContext2D.createConicGradient')
    }

    createImageData() {
        print1('CanvasRenderingContext2D.createImageData')
    }

    createLinearGradient() {
        print1('CanvasRenderingContext2D.createLinearGradient')
        return {
            addColorStop() {
                print1('CanvasRenderingContext2D.createLinearGradient.addColorStop')
            }
        }
        // return this._context.canvas.createLinearGradient(...arguments)
    }

    createPattern() {
        print1('CanvasRenderingContext2D.createPattern')
    }

    createRadialGradient() {
        print1('CanvasRenderingContext2D.createRadialGradient')
    }

    drawFocusIfNeeded() {
        print1('CanvasRenderingContext2D.drawFocusIfNeeded')
    }

    drawImage() {
        print1('CanvasRenderingContext2D.drawImage', arguments)
        // this._context.drawImage(...arguments)
        this._onload();

    }

    fill() {
        print1('CanvasRenderingContext2D.fill')
    }

    fillText() {
        print1('CanvasRenderingContext2D.fillText', ...arguments)
        // this._context.canvas.fillText(...arguments)
        this._fillText = [arguments[0], arguments[1], arguments[2]]
    }

    getContextAttributes() {
        print1('CanvasRenderingContext2D.getContextAttributes')
    }

    getImageData() {
        let res = this._context.getImageData(...arguments)
        print1('getImageData', ...arguments)
        // window.imageDatasList.push({
        //     font: this._context.font,
        //     fillStyle: this._fillStyle,
        //     fillText: this._fillText,
        //     imageData: [arguments[0], arguments[1], arguments[2], arguments[3]]
        // })
        let tdata = this.imageDatas[[arguments[0], arguments[1], arguments[2], arguments[3]] + ''];
        if (tdata) {
            res.data[0] = tdata[0]
            res.data[1] = tdata[1]
            res.data[2] = tdata[2]
            res.data[3] = tdata[3]
        } else {
            // for (let i = 0; i < res.data.length; i++) {
            //     res.data[i] = parseInt(_random() * 100 + 100)
            // }
        }
        // if (arguments[0] === 0 && arguments[1] === 0 && arguments[2] === 5) {
        //     for (let i = 0; i < res.data.length; i++) {
        //         if (res.data[i] === 22) {
        //             res.data[i] = 0
        //         }
        //     }
        // }
        // if (Math.random() < 0.5){
        // for (let i = 0; i < res.data.length; i++) {
        //     if (res.data[i] !== 0) res.data[i] = parseInt(_random() * 100 + 100)
        // }
        // }
        print1('CanvasRenderingContext2D.getImageData', ...arguments, res)

        // todo  修改图片
        res = proxy(res, 'getImageDataRes')
        return res
    }

    getLineDash() {
        print1('CanvasRenderingContext2D.getLineDash')
    }

    getTransform() {
        print1('CanvasRenderingContext2D.getTransform')
    }

    isContextLost() {
        print1('CanvasRenderingContext2D.isContextLost')
    }

    isPointInPath() {
        print1('CanvasRenderingContext2D.isPointInPath')
    }

    isPointInStroke() {
        print1('CanvasRenderingContext2D.isPointInStroke')
    }

    putImageData() {
        print1('CanvasRenderingContext2D.putImageData')
    }

    reset() {
        print1('CanvasRenderingContext2D.reset')
    }

    roundRect() {
        print1('CanvasRenderingContext2D.roundRect')
    }

    save() {
        print1('CanvasRenderingContext2D.save')
    }

    scale() {
        print1('CanvasRenderingContext2D.scale')
    }

    setLineDash() {
        print1('CanvasRenderingContext2D.setLineDash')
    }

    setTransform() {
        print1('CanvasRenderingContext2D.setTransform')
    }

    stroke() {
        print1('CanvasRenderingContext2D.stroke')
        // this._context.canvas.stroke(...arguments)
    }

    strokeText() {
        print1('CanvasRenderingContext2D.strokeText')
    }

    transform() {
        print1('CanvasRenderingContext2D.transform')
    }

    translate() {
        print1('CanvasRenderingContext2D.translate')
    }

    arc(a, b, c, d, e) {
        print1('CanvasRenderingContext2D.arc', a, b, c, d, e)
        // return this._context.canvas.arc(...arguments)
    }

    arcTo() {
        print1('CanvasRenderingContext2D.arcTo')
    }

    beginPath() {
        print1('CanvasRenderingContext2D.beginPath')
        // return this._context.beginPath()
    }

    bezierCurveTo() {
        print1('CanvasRenderingContext2D.bezierCurveTo')
    }

    clearRect() {
        print1('CanvasRenderingContext2D.clearRect')
    }

    closePath() {
        print1('CanvasRenderingContext2D.closePath')
        // return this._context.canvas.closePath(...arguments)

    }

    ellipse() {
        print1('CanvasRenderingContext2D.ellipse')
    }

    fillRect(a, b, c, d) {
        print1('CanvasRenderingContext2D.fillRect', a, b, c, d)
        this._rects.push([a, b, c, d])
        // try {
        //     return this._context.fillRect(a, b, c, d)
        // }catch (e){}
    }

    lineTo() {
        print1('CanvasRenderingContext2D.lineTo')
        // return this._context.lineTo(...arguments)

    }

    moveTo() {
        print1('CanvasRenderingContext2D.moveTo')
        // return this._context.canvas.moveTo(...arguments)
    }

    quadraticCurveTo() {
        print1('CanvasRenderingContext2D.quadraticCurveTo')
    }

    rect() {
        print1('CanvasRenderingContext2D.rect')
    }

    resetTransform() {
        print1('CanvasRenderingContext2D.resetTransform')
    }

    restore() {
        print1('CanvasRenderingContext2D.restore')
    }

    rotate() {
        print1('CanvasRenderingContext2D.rotate')
    }

    strokeRect() {
        print1('CanvasRenderingContext2D.strokeRect')
    }


}

Object.defineProperties(CanvasRenderingContext2D.prototype, {
    canvas: {enumerable: true},
    globalAlpha: {enumerable: true},
    globalCompositeOperation: {enumerable: true},
    filter: {enumerable: true},
    imageSmoothingEnabled: {enumerable: true},
    imageSmoothingQuality: {enumerable: true},
    strokeStyle: {enumerable: true},
    fillStyle: {enumerable: true},
    shadowOffsetX: {enumerable: true},
    shadowOffsetY: {enumerable: true},
    shadowBlur: {enumerable: true},
    shadowColor: {enumerable: true},
    lineWidth: {enumerable: true},
    lineCap: {enumerable: true},
    lineJoin: {enumerable: true},
    miterLimit: {enumerable: true},
    lineDashOffset: {enumerable: true},
    font: {enumerable: true},
    textAlign: {enumerable: true},
    textBaseline: {enumerable: true},
    direction: {enumerable: true},
    fontKerning: {enumerable: true},
    fontStretch: {enumerable: true},
    fontVariantCaps: {enumerable: true},
    letterSpacing: {enumerable: true},
    textRendering: {enumerable: true},
    wordSpacing: {enumerable: true},
    clip: {enumerable: true},
    createConicGradient: {enumerable: true},
    createImageData: {enumerable: true},
    createLinearGradient: {enumerable: true},
    createPattern: {enumerable: true},
    createRadialGradient: {enumerable: true},
    drawFocusIfNeeded: {enumerable: true},
    drawImage: {enumerable: true},
    fill: {enumerable: true},
    fillText: {enumerable: true},
    getContextAttributes: {enumerable: true},
    getImageData: {enumerable: true},
    getLineDash: {enumerable: true},
    getTransform: {enumerable: true},
    isContextLost: {enumerable: true},
    isPointInPath: {enumerable: true},
    isPointInStroke: {enumerable: true},
    measureText: {enumerable: true},
    putImageData: {enumerable: true},
    reset: {enumerable: true},
    roundRect: {enumerable: true},
    save: {enumerable: true},
    scale: {enumerable: true},
    setLineDash: {enumerable: true},
    setTransform: {enumerable: true},
    stroke: {enumerable: true},
    strokeText: {enumerable: true},
    transform: {enumerable: true},
    translate: {enumerable: true},
    arc: {enumerable: true},
    arcTo: {enumerable: true},
    beginPath: {enumerable: true},
    bezierCurveTo: {enumerable: true},
    clearRect: {enumerable: true},
    closePath: {enumerable: true},
    ellipse: {enumerable: true},
    fillRect: {enumerable: true},
    lineTo: {enumerable: true},
    moveTo: {enumerable: true},
    quadraticCurveTo: {enumerable: true},
    rect: {enumerable: true},
    resetTransform: {enumerable: true},
    restore: {enumerable: true},
    rotate: {enumerable: true},
    strokeRect: {enumerable: true},
    [Symbol.toStringTag]: {value: "CanvasRenderingContext2D", configurable: true}

})
CanvasRenderingContext2D = protectProp(CanvasRenderingContext2D)


class HTMLCanvasElement {
    _getCanvas() {
        if (Canvas && !this._canvas) {
            this._canvas = Canvas.createCanvas(this.width, this.height);
        }
        return this._canvas;
    }

    getContext(contextId) {
        const canvas = this._getCanvas();
        print1('getContextgetContext', contextId)
        if (canvas) {
            if (contextId === '2d') {
                print('new ctx2d', this.width, this.height)
                this._context = new CanvasRenderingContext2D(this.width, this.height)
                this._context = proxy(this._context, 'newContext2')
            }
            // if (!this._context) {
            //     this._context = canvas.getContext(contextId) || null;
            //     if (this._context) {
            //         // Override the native canvas reference with our wrapper. This is the
            //         // reason why we need to locally cache _context, since each call to
            //         // canvas.getContext(contextId) would replace this reference again.
            //         // Perhaps in the longer term, a better solution would be to create a
            //         // full wrapper for the Context object as well.
            //         this._context.canvas = idlUtils.wrapperForImpl(this);
            //         wrapNodeCanvasMethod(this._context, "createPattern");
            //         wrapNodeCanvasMethod(this._context, "drawImage");
            //     }
            // }
            if (contextId === 'webgl' || contextId === 'webgl2') {
                var v_new_toggle = true
                var v_new = function (v) {
                    var temp = v_new_toggle;
                    v_new_toggle = true;
                    var r = new v;
                    v_new_toggle = temp;
                    return r
                }


                // window.WebGLRenderingContext = WebGLRenderingContext
                let t = proxy(new WebGLRenderingContext(), 'WebGLRenderingContext11')
                // let t = new WebGLRenderingContext()
                this._context = t;
            }
            // print('contextId res', this._context)
            // this._context = idlUtils.proxy(this._context, 'context' + contextId)
            return this._context;
        }
    }

    toDataURL() {
        print1('toDataUrl.call')
        return ENV.jpg
        // let res = ENV.jpg.split(';')
        // let res2 = res[1].split('').sort(function(){return 0.5-Math.random()}).join('');

        // return res[0]+';'+res2
    }

    toBlob() {
    }
}


HTMLCanvasElement = protectProp(HTMLCanvasElement)
_inherits(HTMLCanvasElement, HTMLElement)
Object.defineProperties(HTMLCanvasElement.prototype, {
    width: {
        get() {
            return this._width || 0;
        },
        set(value) {
            print1('HTMLCanvasElement.width.set', value)
            this._width = value;
        }
    },
    height: {
        get() {
            return this._height || 0;
        },
        set(value) {
            print1('HTMLCanvasElement.height.set', value)

            this._height = value;
        }
    }
})
HTMLAnchorElement = v_saf(function HTMLAnchorElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    return v_hook_href(this, 'HTMLAnchorElement', location.href)
}, undefined, undefined);
// _inherits(HTMLAnchorElement, HTMLElement)
// Object.defineProperties(HTMLAnchorElement.prototype, {
//     // href: {
//     //     get() {
//     //         print("  [*] HTMLAnchorElement -> href[get]", "https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true")
//     //         return 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true'
//     //     }, set() {
//     //         v_console_log("  [*] HTMLAnchorElement -> href[set]", [].slice.call(arguments));
//     //     }
//     // },
//     // host: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> host[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> host[get]", "www.southwest.com");
//     //         return "www.southwest.com"
//     //     }
//     // },
//     // protocol: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> protocol[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> protocol[get]", "https:");
//     //         return "https:"
//     //     }
//     // },
//     // pathname: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> pathname[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> pathname[get]", "/air/booking/index.html");
//     //         return "/air/booking/index.html"
//     //     }
//     // },
//     // search: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> search[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> search[get]", "?adultPassengersCount=1&adultsCount=1&departureDate=2023-05-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=USD&from=&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&promoCode=&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&to=&tripType=oneway&validate=true")
//     //         return "?adultPassengersCount=1&adultsCount=1&departureDate=2023-05-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=USD&from=&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&promoCode=&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&to=&tripType=oneway&validate=true"
//     //     }
//     // },
//     // hash: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> hash[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> hash[get]", "");
//     //         return ""
//     //     }
//     // },
//     // port: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> port[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> port[get]", "");
//     //         return ""
//     //     }
//     // },
//     // hostname: {
//     //     set(){
//     //         v_console_log("  [*] HTMLAnchorElement -> hostname[set]");
//     //     },
//     //     get() {
//     //         v_console_log("  [*] HTMLAnchorElement -> hostname[get]", "www.southwest.com");
//     //         return "www.southwest.com"
//     //     }
//     // },
//     [Symbol.toStringTag]: {value: "HTMLAnchorElement", writable: false, enumerable: false, configurable: true},
// })

HTMLImageElement = v_saf(function HTMLImageElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

_inherits(HTMLImageElement, HTMLElement)
Object.defineProperties(HTMLImageElement.prototype, {
    onload: {
        set(args) {
            this._onload = args
        }
    }
})
HTMLIFrameElement = v_saf(function HTMLIFrameElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLIFrameElement, HTMLElement)

HTMLMediaElement = v_saf(function HTMLMediaElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLMediaElement, HTMLElement)
Object.defineProperties(HTMLMediaElement.prototype, {
    canPlayType: {
        value: v_saf(function canPlayType() {
            print1("  [*] HTMLMediaElement -> canPlayType[func]", [].slice.call(arguments));
            let type = arguments[0]
            let res = undefined;
            if (window.ENV.canplay[type]) {
                res = window.ENV.canplay[type]
                if (!res) {
                    res = 'probably'
                }
            }
            print('canPlayType', type, res)

            return res
        })
    },
    NETWORK_EMPTY: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    NETWORK_IDLE: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    NETWORK_LOADING: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    NETWORK_NO_SOURCE: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    HAVE_NOTHING: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    HAVE_METADATA: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    HAVE_CURRENT_DATA: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    HAVE_FUTURE_DATA: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    HAVE_ENOUGH_DATA: {"value": 4, "writable": false, "enumerable": true, "configurable": false},
    [Symbol.toStringTag]: {value: "HTMLMediaElement", writable: false, enumerable: false, configurable: true},
})
WindowProperties = v_saf(function WindowProperties() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(WindowProperties, EventTarget)

// _inherits(Window, WindowProperties)

var Screen = v_saf(function Screen() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Screen, EventTarget)
// Screen = dtavm.proxy(Screen, 'Screen')
Object.defineProperties(Screen.prototype, {
    availWidth: {
        get: v_saf(function availWidth() {
            v_console_log("  [*] Screen -> availWidth[get]", screens.availWidth);

            // return 2560
            return screens.availWidth
        }, undefined, 'get'), enumerable: true, configurable: true
    },
    availHeight: {
        get: v_saf(function availHeight() {
            v_console_log("  [*] Screen -> availHeight[get]", screens.availHeight);

            // return 2560
            return screens.availHeight
        }, undefined, 'get'), enumerable: true, configurable: true
    },
    width: {
        get: v_saf(function width() {
            v_console_log("  [*] Screen -> width[get]", screens.width);

            // return 2560
            return screens.width

        }, undefined, 'get'), enumerable: true, configurable: true
    },
    height: {
        get: v_saf(function height() {
            v_console_log("  [*] Screen -> height[get]", screens.height);

            // return 2560
            return screens.height
        }, undefined, 'get'), enumerable: true, configurable: true
    },
    colorDepth: {
        get() {
            v_console_log("  [*] Screen -> colorDepth[get]", screens.colorDepth);

            // return 24
            return screens.colorDepth

        }, enumerable: true, configurable: true
    },
    pixelDepth: {
        get() {
            v_console_log("  [*] Screen -> pixelDepth[get]", screens.pixelDepth);

            // return 24
            return screens.pixelDepth

        }, enumerable: true, configurable: true
    },
    availLeft: {
        get() {
            v_console_log("  [*] Screen -> availLeft[get]", screens.availLeft);

            // return 0
            return screens.availLeft

        }, enumerable: true, configurable: true
    },
    availTop: {
        get() {
            v_console_log("  [*] Screen -> availTop[get]", screens.availTop);

            // return 25
            return screens.availTop

        }, enumerable: true, configurable: true
    },
    orientation: {
        get() {
            v_console_log("  [*] Screen -> orientation[get]");
            return {}
        }, enumerable: true, configurable: true
    },
    onchange: {
        get() {
            return null
        }, enumerable: true, configurable: true
    },
    isExtended: {
        get() {
            return true
        }, enumerable: true, configurable: true
    },
    [Symbol.toStringTag]: {value: "Screen", writable: false, enumerable: false, configurable: true},
})
// Screen.prototype = dtavm.proxy(Screen.prototype, ' Screen.prototype')
HTMLDocument = v_saf(function HTMLDocument() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;Object.defineProperty(this, 'location', {
        get() {
            return location
        }
    })
});
_inherits(HTMLDocument, Document)
HTMLHeadElement = v_saf(function HTMLHeadElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLHeadElement, HTMLElement)
External = v_saf(function External() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
WebGLShaderPrecisionFormat = v_saf(function WebGLShaderPrecisionFormat() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
Object.defineProperties(WebGLShaderPrecisionFormat.prototype, {
    precision: {
        get() {
            v_console_log('WebGLShaderPrecisionFormat.prototype precision')
            return 23
        }
    },
    rangeMax: {
        get() {
            v_console_log('WebGLShaderPrecisionFormat.prototype rangeMax')

            return 127
        }
    },
    rangeMin: {
        get() {
            v_console_log('WebGLShaderPrecisionFormat.prototype rangeMin')

            return 127
        }
    },
})
MimeTypeArray = v_saf(function MimeTypeArray() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    this[0] = v_new(Plugin);
    this[0].description = "Portable Document Format";
    this[0].enabledPlugin = {"0": {}, "1": {}};
    this[0].suffixes = "pdf";
    this[0].type = "application/pdf";
    this[1] = v_new(Plugin);
    this[1].description = "Portable Document Format";
    this[1].enabledPlugin = {"0": {}, "1": {}};
    this[1].suffixes = "pdf";
    this[1].type = "text/pdf";
})
CSSStyleDeclaration = v_saf(function CSSStyleDeclaration() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
EXTTextureFilterAnisotropic = v_saf(function EXTTextureFilterAnisotropic() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(EXTTextureFilterAnisotropic.prototype, {
    MAX_TEXTURE_MAX_ANISOTROPY_EXT: {value: 34047},
    TEXTURE_MAX_ANISOTROPY_EXT: {value: 34047},

})
Location = v_saf(function Location() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})

Object.defineProperties(Location.prototype, {
    href: {
        get: function () {
            if (!(this.protocol) && !(this.host)) {
                r = ''
            } else {
                r = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + this.pathname + this.search + this.hash;
            }
            // v_console_log(`  [*] ${name||obj.constructor.name} -> href[get]:`, JSON.stringify(r))
            return r
        },
        set: function (href) {
            href = href.trim()
            v_console_log(`  href[set]:`, JSON.stringify(href))
            if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
            } else if (href.startsWith("//")) {
                href = (this.protocol ? this.protocol : 'http:') + href
            } else {
                href = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
            }
            var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
            this.protocol = a[1] ? a[1] : "";
            this.host = a[2] ? a[2] : "";
            this.port = a[3] ? a[3] : "";
            this.pathname = a[4] ? a[4] : "";
            this.search = a[5] ? a[5] : "";
            this.hash = a[6] ? a[6] : "";
            this.hostname = this.host;
            this.origin = this.protocol + "//" + this.host + (this.port ? ":" + this.port : "");
        },
        enumerable: true
    },
    assign: {
        value: v_saf(function assign() {

        }),
        enumerable: true,

    },
    ancestorOrigins: {
        get: v_saf(function ancestorOrigins() {
            return new DOMStringList()
        }),
        enumerable: true,
        configurable: false,

    },
    // fragmentDirective: 'c',
    // hash: {set: function(arg){this._hash = arg}, get:function(){return this._hash}, enumerable:true},
    // host: {set: function(arg){this._host = arg}, get:function(){return this._host}, enumerable:true},
    // hostname: {set: function(arg){this._hostname = arg}, get:function(){return this._hostname}, enumerable:true},
    origin: {
        set: function (arg) {
            _origin = arg
        }, get: function () {
            return _origin
        }, enumerable: true
    },
    // pathname: {set: function(arg){this._pathname = arg}, get:function(){return this._pathname}, enumerable:true},
    // port: {set: function(arg){this._port = arg}, get:function(){return this._port}, enumerable:true},
    // protocol: {set: function(arg){this._protocol = arg}, get:function(){return this._protocol}, enumerable:true},
    // host: 'e',
    // hostname: 'f',
    // href: 'g',
    // origin: 'h',
    // pathname: 'i',
    // port: 'j',
    // protocol: 'k',
    reload: {
        value: v_saf(function reload() {

        }),
        enumerable: true,

    },
    replace: {
        value: v_saf(function replace() {

        }),
        enumerable: true,
    },
    toString: {
        value: v_saf(function toString() {
            return ''
        }),
        enumerable: true,

    },
    _protocol: {enumerable: false},
    _hostname: {enumerable: false},
    _port: {enumerable: false},
    _pathname: {enumerable: false},
    _hash: {enumerable: false},
    _origin: {enumerable: false},
})
WebGLShader = v_saf(function WebGLShader() {
})
WebGLShader = proxy(WebGLShader, 'WebGLShader')
WebGLProgram = v_saf(function WebGLProgram() {
})
WebGLProgram = proxy(WebGLProgram, 'WebGLProgram')
WebGLBuffer = v_saf(function WebGLBuffer() {
})
WebGLBuffer = proxy(WebGLBuffer, 'WebGLBuffer');

class WebGLRenderingContext {
    constructor(aaa) {
        print('new WebGLRenderingContext', aaa)
    }

    createBuffer() {
        print1('  [*] WebGLRenderingContext -> createBuffer[func]');
        return v_new(WebGLBuffer)
    }

    bindBuffer(target, buffer) {
        print1('  [*] WebGLRenderingContext -> bindBuffer[func]', target, buffer);
        return v_new(WebGLBuffer)
    }

    getAttribLocation(program, name) {
        print1('  [*] WebGLRenderingContext -> getAttribLocation[func]', program, name);
        switch (name) {
            case 'aPosition':
                return 0;
            case 'aColor':
                return 1;
        }
    }

    vertexAttribPointer(index, size, type, normalized, stride, offset) {
        print1('  [*] WebGLRenderingContext -> vertexAttribPointer[func]', index, size, type, normalized, stride, offset);
    }

    enableVertexAttribArray(index) {
        print1('  [*] WebGLRenderingContext -> enableVertexAttribArray[func]', index);
    }

    useProgram(index) {
        print1('  [*] WebGLRenderingContext -> useProgram[func]', index);
    }

    getUniformLocation(program, name) {
        print1('  [*] WebGLRenderingContext -> getUniformLocation[func]', program, name);
        return proxy({}, 'getUniformLocation')
    }

    uniform4fv(program, name) {
        print1('  [*] WebGLRenderingContext -> uniform4fv[func]', program, name);
    }

    drawArrays(mode, first, count) {
        print1('  [*] WebGLRenderingContext -> drawArrays[func]', mode, first, count);
    }

    readPixels(x, y, width, height, format, type, pixels) {
        if (ENV.webglimg.strs) {
            let r = decompressSTring(ENV.webglimg.strs)
            // pixels.fill(r, 0, r.length)
            for (let i = 0; i < r.length - 1; i++) {
                //todo
                pixels.fill(r[i], i, i + 1)
            }
        }

        print1('  [*] WebGLRenderingContext -> readPixels[func]', x, y, width, height, format, type, pixels)
    }

    bufferData(target, size, srcData, usage, srcOffSet, length) {
        print1('  [*] WebGLRenderingContext -> bufferData[func]', target, size, srcData, usage, srcOffSet, length);
        return proxy(v_new(WebGLBuffer), 'v_new(WebGLBuffer)')
    }

    createProgram() {
        print1('  [*] WebGLRenderingContext -> createProgram[func]');
        return proxy(v_new(WebGLProgram), 'v_new(WebGLProgram)')
    }

    createShader(a) {
        print1('  [*] WebGLRenderingContext -> createShader[func]', a);
        return proxy(v_new(WebGLShader), 'v_new(WebGLShader)')
    }

    shaderSource(shader, originalSource) {
        print1('  [*] WebGLRenderingContext -> shaderSource[func]', shader, originalSource);
        this._originalSource = originalSource;
    }

    compileShader(shader) {
        print1('  [*] WebGLRenderingContext -> compileShader[func]', shader);
        // this._originalSource = originalSource;
    }

    getShaderParameter(shader, pname) {
        print1('  [*] WebGLRenderingContext -> getShaderParameter[func]', shader, pname);
        switch (pname) {
            case 35713:
                return true;
                break;
        }
    }

    attachShader(program, shader) {
        print1('  [*] WebGLRenderingContext -> attachShader[func]', program, shader);

    }

    linkProgram(program, shader) {
        print1('  [*] WebGLRenderingContext -> linkProgram[func]', program, shader);

    }

    getProgramParameter(program, pname) {
        print1('  [*] WebGLRenderingContext -> getProgramParameter[func]', program, pname);
        if (pname === 35714) {
            return true;
        }

    }

    getSupportedExtensions() {
        // window.debug = true;
        print1('  [*] WebGLRenderingContext -> getSupportedExtensions[func]')
        if (ENV.navigatorparams.useragent.includes('Edg')) {
            return ['ANGLE_instanced_arrays', 'EXT_blend_minmax', 'EXT_color_buffer_half_float', 'EXT_disjoint_timer_query', 'EXT_float_blend', 'EXT_frag_depth', 'EXT_shader_texture_lod', 'EXT_texture_compression_rgtc', 'EXT_texture_filter_anisotropic', 'EXT_sRGB', 'KHR_parallel_shader_compile', 'OES_element_index_uint', 'OES_fbo_render_mipmap', 'OES_standard_derivatives', 'OES_texture_float', 'OES_texture_float_linear', 'OES_texture_half_float', 'OES_texture_half_float_linear', 'OES_vertex_array_object', 'WEBGL_color_buffer_float', 'WEBGL_compressed_texture_s3tc', 'WEBGL_compressed_texture_s3tc_srgb', 'WEBGL_debug_renderer_info', 'WEBGL_debug_shaders', 'WEBGL_depth_texture', 'WEBGL_draw_buffers', 'WEBGL_lose_context', 'WEBGL_multi_draw']
        }
        return [
            "ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_color_buffer_half_float", "EXT_disjoint_timer_query", "EXT_float_blend", "EXT_frag_depth",
            "EXT_shader_texture_lod", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "WEBKIT_EXT_texture_filter_anisotropic", "EXT_sRGB",
            "KHR_parallel_shader_compile", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_float_linear",
            "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_compressed_texture_s3tc",
            "WEBKIT_WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders",
            "WEBGL_depth_texture", "WEBKIT_WEBGL_depth_texture", "WEBGL_draw_buffers", "WEBGL_lose_context", "WEBKIT_WEBGL_lose_context", "WEBGL_multi_draw",
        ]
    }

    getExtension(key) {
        print1('  [*] WebGLRenderingContext -> getExtension[func]:', key)

        class WebGLDebugRendererInfo {
            get UNMASKED_VENDOR_WEBGL() {
                return 37445
            }

            get UNMASKED_RENDERER_WEBGL() {
                return 37446
            }
        }

        class EXTTextureFilterAnisotropic {
        }

        Object.defineProperties(EXTTextureFilterAnisotropic.prototype, {
            MAX_TEXTURE_MAX_ANISOTROPY_EXT: {
                value: 34047
            }
        })

        class WebGLLoseContext {
            loseContext() {
            }

            restoreContext() {
            }
        }

        if (key === "WEBKIT_EXT_texture_filter_anisotropic") {
            var r = null
        }
        if (key === "MOZ_EXT_texture_filter_anisotropic") {
            var r = null
        }
        if (key == 'WEBGL_debug_renderer_info') {
            var r = new WebGLDebugRendererInfo
        }
        if (key == 'EXT_texture_filter_anisotropic') {
            var r = new EXTTextureFilterAnisotropic
        }
        if (key == 'WEBGL_lose_context') {
            var r = new WebGLLoseContext
        }

        return r
    }

    getParameter(key) {
        print1('  [*] WebGLRenderingContext -> getParameter[func]1:', key)
        let res;
        let _toggle = {
            3413: 8,
            3412: 8,
            3411: 8,
            3410: 8,
            3414: 24,
            35661: 32,
            34076: 16384,
            36349: 1024,
            34024: 16384,
            34930: 16,
            3379: 16384,
            36348: 31,
            34921: 16,
            35660: 16,
            36347: 1024,
            7937: 'WebKit WebGL',
            35724: 'WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)',
            3415: 0,
            7936: 'WebKit',
            7938: 'WebGL 1.0 (OpenGL ES 2.0 Chromium)',
            37445: 'Google Inc.',
            // 37446: 'ANGLE (Apple, Apple M1 Max, OpenGL 4.1)',
            34047: 16
        }
        _toggle = window.ENV.glres;
        if (_toggle[key]) {
            res = _toggle[key]

        } else {

            if (key == 33902) {
                res = new Float32Array([1, 1])
            }
            if (key == 33901) {
                res = new Float32Array([1, 64])
            }
            if (key == 3386) {
                res = new Int32Array([16384, 16384])
            }
            if (key === 3415) {
                res = 0
            }

        }
        print1('  [*] WebGLRenderingContext -> getParameter[func]2:', key, res)

        return res;
    }

    getContextAttributes() {
        print1('  [*] WebGLRenderingContext -> getContextAttributes[func]')
        return {
            alpha: true,
            antialias: true,
            depth: true,
            desynchronized: false,
            failIfMajorPerformanceCaveat: false,
            powerPreference: "default",
            premultipliedAlpha: true,
            preserveDrawingBuffer: false,
            stencil: false,
            xrCompatible: false,
        }
    }

    getShaderPrecisionFormat(a, b) {
        print1('  [*] WebGLRenderingContext -> getShaderPrecisionFormat[func]', a, b)

        function WebGLShaderPrecisionFormat() {
        }

        var r1 = v_new(WebGLShaderPrecisionFormat)
        r1.rangeMin = 127
        r1.rangeMax = 127
        r1.precision = 23
        var r2 = v_new(WebGLShaderPrecisionFormat)
        r2.rangeMin = 31
        r2.rangeMax = 30
        r2.precision = 0
        if (a == 35633 && b == 36338) {
            return r1
        }
        if (a == 35633 && b == 36337) {
            return r1
        }
        if (a == 35633 && b == 36336) {
            return r1
        }
        if (a == 35633 && b == 36341) {
            return r2
        }
        if (a == 35633 && b == 36340) {
            return r2
        }
        if (a == 35633 && b == 36339) {
            return r2
        }
        if (a == 35632 && b == 36338) {
            return r1
        }
        if (a == 35632 && b == 36337) {
            return r1
        }
        if (a == 35632 && b == 36336) {
            return r1
        }
        if (a == 35632 && b == 36341) {
            return r2
        }
        if (a == 35632 && b == 36340) {
            return r2
        }
        if (a == 35632 && b == 36339) {
            return r2
        }
        throw Error('getShaderPrecisionFormat')
    }
}

Object.defineProperties(WebGLRenderingContext.prototype, {
    canvas: {writable: undefined, enumerable: true, configurable: true},
    drawingBufferWidth: {writable: undefined, enumerable: true, configurable: true},
    drawingBufferHeight: {writable: undefined, enumerable: true, configurable: true},
    drawingBufferColorSpace: {writable: undefined, enumerable: true, configurable: true},
    unpackColorSpace: {writable: undefined, enumerable: true, configurable: true},
    DEPTH_BUFFER_BIT: {value: 256, writable: false, enumerable: true, configurable: false},
    STENCIL_BUFFER_BIT: {value: 1024, writable: false, enumerable: true, configurable: false},
    COLOR_BUFFER_BIT: {value: 16384, writable: false, enumerable: true, configurable: false},
    POINTS: {writable: false, enumerable: true, configurable: false},
    LINES: {value: 1, writable: false, enumerable: true, configurable: false},
    LINE_LOOP: {value: 2, writable: false, enumerable: true, configurable: false},
    LINE_STRIP: {value: 3, writable: false, enumerable: true, configurable: false},
    TRIANGLES: {value: 4, writable: false, enumerable: true, configurable: false},
    TRIANGLE_STRIP: {value: 5, writable: false, enumerable: true, configurable: false},
    TRIANGLE_FAN: {value: 6, writable: false, enumerable: true, configurable: false},
    ZERO: {writable: false, enumerable: true, configurable: false},
    ONE: {value: 1, writable: false, enumerable: true, configurable: false},
    SRC_COLOR: {value: 768, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_SRC_COLOR: {value: 769, writable: false, enumerable: true, configurable: false},
    SRC_ALPHA: {value: 770, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_SRC_ALPHA: {value: 771, writable: false, enumerable: true, configurable: false},
    DST_ALPHA: {value: 772, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_DST_ALPHA: {value: 773, writable: false, enumerable: true, configurable: false},
    DST_COLOR: {value: 774, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_DST_COLOR: {value: 775, writable: false, enumerable: true, configurable: false},
    SRC_ALPHA_SATURATE: {value: 776, writable: false, enumerable: true, configurable: false},
    FUNC_ADD: {value: 32774, writable: false, enumerable: true, configurable: false},
    BLEND_EQUATION: {value: 32777, writable: false, enumerable: true, configurable: false},
    BLEND_EQUATION_RGB: {value: 32777, writable: false, enumerable: true, configurable: false},
    BLEND_EQUATION_ALPHA: {value: 34877, writable: false, enumerable: true, configurable: false},
    FUNC_SUBTRACT: {value: 32778, writable: false, enumerable: true, configurable: false},
    FUNC_REVERSE_SUBTRACT: {value: 32779, writable: false, enumerable: true, configurable: false},
    BLEND_DST_RGB: {value: 32968, writable: false, enumerable: true, configurable: false},
    BLEND_SRC_RGB: {value: 32969, writable: false, enumerable: true, configurable: false},
    BLEND_DST_ALPHA: {value: 32970, writable: false, enumerable: true, configurable: false},
    BLEND_SRC_ALPHA: {value: 32971, writable: false, enumerable: true, configurable: false},
    CONSTANT_COLOR: {value: 32769, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_CONSTANT_COLOR: {value: 32770, writable: false, enumerable: true, configurable: false},
    CONSTANT_ALPHA: {value: 32771, writable: false, enumerable: true, configurable: false},
    ONE_MINUS_CONSTANT_ALPHA: {value: 32772, writable: false, enumerable: true, configurable: false},
    BLEND_COLOR: {value: 32773, writable: false, enumerable: true, configurable: false},
    ARRAY_BUFFER: {value: 34962, writable: false, enumerable: true, configurable: false},
    ELEMENT_ARRAY_BUFFER: {value: 34963, writable: false, enumerable: true, configurable: false},
    ARRAY_BUFFER_BINDING: {value: 34964, writable: false, enumerable: true, configurable: false},
    ELEMENT_ARRAY_BUFFER_BINDING: {
        value: 34965,
        writable: false,
        enumerable: true,
        configurable: false
    },
    STREAM_DRAW: {value: 35040, writable: false, enumerable: true, configurable: false},
    STATIC_DRAW: {value: 35044, writable: false, enumerable: true, configurable: false},
    DYNAMIC_DRAW: {value: 35048, writable: false, enumerable: true, configurable: false},
    BUFFER_SIZE: {value: 34660, writable: false, enumerable: true, configurable: false},
    BUFFER_USAGE: {value: 34661, writable: false, enumerable: true, configurable: false},
    CURRENT_VERTEX_ATTRIB: {value: 34342, writable: false, enumerable: true, configurable: false},
    FRONT: {value: 1028, writable: false, enumerable: true, configurable: false},
    BACK: {value: 1029, writable: false, enumerable: true, configurable: false},
    FRONT_AND_BACK: {value: 1032, writable: false, enumerable: true, configurable: false},
    TEXTURE_2D: {value: 3553, writable: false, enumerable: true, configurable: false},
    CULL_FACE: {value: 2884, writable: false, enumerable: true, configurable: false},
    BLEND: {value: 3042, writable: false, enumerable: true, configurable: false},
    DITHER: {value: 3024, writable: false, enumerable: true, configurable: false},
    STENCIL_TEST: {value: 2960, writable: false, enumerable: true, configurable: false},
    DEPTH_TEST: {value: 2929, writable: false, enumerable: true, configurable: false},
    SCISSOR_TEST: {value: 3089, writable: false, enumerable: true, configurable: false},
    POLYGON_OFFSET_FILL: {value: 32823, writable: false, enumerable: true, configurable: false},
    SAMPLE_ALPHA_TO_COVERAGE: {value: 32926, writable: false, enumerable: true, configurable: false},
    SAMPLE_COVERAGE: {value: 32928, writable: false, enumerable: true, configurable: false},
    NO_ERROR: {writable: false, enumerable: true, configurable: false},
    INVALID_ENUM: {value: 1280, writable: false, enumerable: true, configurable: false},
    INVALID_VALUE: {value: 1281, writable: false, enumerable: true, configurable: false},
    INVALID_OPERATION: {value: 1282, writable: false, enumerable: true, configurable: false},
    OUT_OF_MEMORY: {value: 1285, writable: false, enumerable: true, configurable: false},
    CW: {value: 2304, writable: false, enumerable: true, configurable: false},
    CCW: {value: 2305, writable: false, enumerable: true, configurable: false},
    LINE_WIDTH: {value: 2849, writable: false, enumerable: true, configurable: false},
    ALIASED_POINT_SIZE_RANGE: {value: 33901, writable: false, enumerable: true, configurable: false},
    ALIASED_LINE_WIDTH_RANGE: {value: 33902, writable: false, enumerable: true, configurable: false},
    CULL_FACE_MODE: {value: 2885, writable: false, enumerable: true, configurable: false},
    FRONT_FACE: {value: 2886, writable: false, enumerable: true, configurable: false},
    DEPTH_RANGE: {value: 2928, writable: false, enumerable: true, configurable: false},
    DEPTH_WRITEMASK: {value: 2930, writable: false, enumerable: true, configurable: false},
    DEPTH_CLEAR_VALUE: {value: 2931, writable: false, enumerable: true, configurable: false},
    DEPTH_FUNC: {value: 2932, writable: false, enumerable: true, configurable: false},
    STENCIL_CLEAR_VALUE: {value: 2961, writable: false, enumerable: true, configurable: false},
    STENCIL_FUNC: {value: 2962, writable: false, enumerable: true, configurable: false},
    STENCIL_FAIL: {value: 2964, writable: false, enumerable: true, configurable: false},
    STENCIL_PASS_DEPTH_FAIL: {value: 2965, writable: false, enumerable: true, configurable: false},
    STENCIL_PASS_DEPTH_PASS: {value: 2966, writable: false, enumerable: true, configurable: false},
    STENCIL_REF: {value: 2967, writable: false, enumerable: true, configurable: false},
    STENCIL_VALUE_MASK: {value: 2963, writable: false, enumerable: true, configurable: false},
    STENCIL_WRITEMASK: {value: 2968, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_FUNC: {value: 34816, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_FAIL: {value: 34817, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_PASS_DEPTH_FAIL: {
        value: 34818,
        writable: false,
        enumerable: true,
        configurable: false
    },
    STENCIL_BACK_PASS_DEPTH_PASS: {
        value: 34819,
        writable: false,
        enumerable: true,
        configurable: false
    },
    STENCIL_BACK_REF: {value: 36003, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_VALUE_MASK: {value: 36004, writable: false, enumerable: true, configurable: false},
    STENCIL_BACK_WRITEMASK: {value: 36005, writable: false, enumerable: true, configurable: false},
    VIEWPORT: {value: 2978, writable: false, enumerable: true, configurable: false},
    SCISSOR_BOX: {value: 3088, writable: false, enumerable: true, configurable: false},
    COLOR_CLEAR_VALUE: {value: 3106, writable: false, enumerable: true, configurable: false},
    COLOR_WRITEMASK: {value: 3107, writable: false, enumerable: true, configurable: false},
    UNPACK_ALIGNMENT: {value: 3317, writable: false, enumerable: true, configurable: false},
    PACK_ALIGNMENT: {value: 3333, writable: false, enumerable: true, configurable: false},
    MAX_TEXTURE_SIZE: {value: 3379, writable: false, enumerable: true, configurable: false},
    MAX_VIEWPORT_DIMS: {value: 3386, writable: false, enumerable: true, configurable: false},
    SUBPIXEL_BITS: {value: 3408, writable: false, enumerable: true, configurable: false},
    RED_BITS: {value: 3410, writable: false, enumerable: true, configurable: false},
    GREEN_BITS: {value: 3411, writable: false, enumerable: true, configurable: false},
    BLUE_BITS: {value: 3412, writable: false, enumerable: true, configurable: false},
    ALPHA_BITS: {value: 3413, writable: false, enumerable: true, configurable: false},
    DEPTH_BITS: {value: 3414, writable: false, enumerable: true, configurable: false},
    STENCIL_BITS: {value: 3415, writable: false, enumerable: true, configurable: false},
    POLYGON_OFFSET_UNITS: {value: 10752, writable: false, enumerable: true, configurable: false},
    POLYGON_OFFSET_FACTOR: {value: 32824, writable: false, enumerable: true, configurable: false},
    TEXTURE_BINDING_2D: {value: 32873, writable: false, enumerable: true, configurable: false},
    SAMPLE_BUFFERS: {value: 32936, writable: false, enumerable: true, configurable: false},
    SAMPLES: {value: 32937, writable: false, enumerable: true, configurable: false},
    SAMPLE_COVERAGE_VALUE: {value: 32938, writable: false, enumerable: true, configurable: false},
    SAMPLE_COVERAGE_INVERT: {value: 32939, writable: false, enumerable: true, configurable: false},
    COMPRESSED_TEXTURE_FORMATS: {value: 34467, writable: false, enumerable: true, configurable: false},
    DONT_CARE: {value: 4352, writable: false, enumerable: true, configurable: false},
    FASTEST: {value: 4353, writable: false, enumerable: true, configurable: false},
    NICEST: {value: 4354, writable: false, enumerable: true, configurable: false},
    GENERATE_MIPMAP_HINT: {value: 33170, writable: false, enumerable: true, configurable: false},
    BYTE: {value: 5120, writable: false, enumerable: true, configurable: false},
    UNSIGNED_BYTE: {value: 5121, writable: false, enumerable: true, configurable: false},
    SHORT: {value: 5122, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT: {value: 5123, writable: false, enumerable: true, configurable: false},
    INT: {value: 5124, writable: false, enumerable: true, configurable: false},
    UNSIGNED_INT: {value: 5125, writable: false, enumerable: true, configurable: false},
    FLOAT: {value: 5126, writable: false, enumerable: true, configurable: false},
    DEPTH_COMPONENT: {value: 6402, writable: false, enumerable: true, configurable: false},
    ALPHA: {value: 6406, writable: false, enumerable: true, configurable: false},
    RGB: {value: 6407, writable: false, enumerable: true, configurable: false},
    RGBA: {value: 6408, writable: false, enumerable: true, configurable: false},
    LUMINANCE: {value: 6409, writable: false, enumerable: true, configurable: false},
    LUMINANCE_ALPHA: {value: 6410, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT_4_4_4_4: {value: 32819, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT_5_5_5_1: {value: 32820, writable: false, enumerable: true, configurable: false},
    UNSIGNED_SHORT_5_6_5: {value: 33635, writable: false, enumerable: true, configurable: false},
    FRAGMENT_SHADER: {value: 35632, writable: false, enumerable: true, configurable: false},
    VERTEX_SHADER: {value: 35633, writable: false, enumerable: true, configurable: false},
    MAX_VERTEX_ATTRIBS: {value: 34921, writable: false, enumerable: true, configurable: false},
    MAX_VERTEX_UNIFORM_VECTORS: {value: 36347, writable: false, enumerable: true, configurable: false},
    MAX_VARYING_VECTORS: {value: 36348, writable: false, enumerable: true, configurable: false},
    MAX_COMBINED_TEXTURE_IMAGE_UNITS: {
        value: 35661,
        writable: false,
        enumerable: true,
        configurable: false
    },
    MAX_VERTEX_TEXTURE_IMAGE_UNITS: {
        value: 35660,
        writable: false,
        enumerable: true,
        configurable: false
    },
    MAX_TEXTURE_IMAGE_UNITS: {value: 34930, writable: false, enumerable: true, configurable: false},
    MAX_FRAGMENT_UNIFORM_VECTORS: {
        value: 36349,
        writable: false,
        enumerable: true,
        configurable: false
    },
    SHADER_TYPE: {value: 35663, writable: false, enumerable: true, configurable: false},
    DELETE_STATUS: {value: 35712, writable: false, enumerable: true, configurable: false},
    LINK_STATUS: {value: 35714, writable: false, enumerable: true, configurable: false},
    VALIDATE_STATUS: {value: 35715, writable: false, enumerable: true, configurable: false},
    ATTACHED_SHADERS: {value: 35717, writable: false, enumerable: true, configurable: false},
    ACTIVE_UNIFORMS: {value: 35718, writable: false, enumerable: true, configurable: false},
    ACTIVE_ATTRIBUTES: {value: 35721, writable: false, enumerable: true, configurable: false},
    SHADING_LANGUAGE_VERSION: {value: 35724, writable: false, enumerable: true, configurable: false},
    CURRENT_PROGRAM: {value: 35725, writable: false, enumerable: true, configurable: false},
    NEVER: {value: 512, writable: false, enumerable: true, configurable: false},
    LESS: {value: 513, writable: false, enumerable: true, configurable: false},
    EQUAL: {value: 514, writable: false, enumerable: true, configurable: false},
    LEQUAL: {value: 515, writable: false, enumerable: true, configurable: false},
    GREATER: {value: 516, writable: false, enumerable: true, configurable: false},
    NOTEQUAL: {value: 517, writable: false, enumerable: true, configurable: false},
    GEQUAL: {value: 518, writable: false, enumerable: true, configurable: false},
    ALWAYS: {value: 519, writable: false, enumerable: true, configurable: false},
    KEEP: {value: 7680, writable: false, enumerable: true, configurable: false},
    REPLACE: {value: 7681, writable: false, enumerable: true, configurable: false},
    INCR: {value: 7682, writable: false, enumerable: true, configurable: false},
    DECR: {value: 7683, writable: false, enumerable: true, configurable: false},
    INVERT: {value: 5386, writable: false, enumerable: true, configurable: false},
    INCR_WRAP: {value: 34055, writable: false, enumerable: true, configurable: false},
    DECR_WRAP: {value: 34056, writable: false, enumerable: true, configurable: false},
    VENDOR: {value: 7936, writable: false, enumerable: true, configurable: false},
    RENDERER: {value: 7937, writable: false, enumerable: true, configurable: false},
    VERSION: {value: 7938, writable: false, enumerable: true, configurable: false},
    NEAREST: {value: 9728, writable: false, enumerable: true, configurable: false},
    LINEAR: {value: 9729, writable: false, enumerable: true, configurable: false},
    NEAREST_MIPMAP_NEAREST: {value: 9984, writable: false, enumerable: true, configurable: false},
    LINEAR_MIPMAP_NEAREST: {value: 9985, writable: false, enumerable: true, configurable: false},
    NEAREST_MIPMAP_LINEAR: {value: 9986, writable: false, enumerable: true, configurable: false},
    LINEAR_MIPMAP_LINEAR: {value: 9987, writable: false, enumerable: true, configurable: false},
    TEXTURE_MAG_FILTER: {value: 10240, writable: false, enumerable: true, configurable: false},
    TEXTURE_MIN_FILTER: {value: 10241, writable: false, enumerable: true, configurable: false},
    TEXTURE_WRAP_S: {value: 10242, writable: false, enumerable: true, configurable: false},
    TEXTURE_WRAP_T: {value: 10243, writable: false, enumerable: true, configurable: false},
    TEXTURE: {value: 5890, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP: {value: 34067, writable: false, enumerable: true, configurable: false},
    TEXTURE_BINDING_CUBE_MAP: {value: 34068, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_POSITIVE_X: {value: 34069, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_NEGATIVE_X: {value: 34070, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_POSITIVE_Y: {value: 34071, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_NEGATIVE_Y: {value: 34072, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_POSITIVE_Z: {value: 34073, writable: false, enumerable: true, configurable: false},
    TEXTURE_CUBE_MAP_NEGATIVE_Z: {value: 34074, writable: false, enumerable: true, configurable: false},
    MAX_CUBE_MAP_TEXTURE_SIZE: {value: 34076, writable: false, enumerable: true, configurable: false},
    TEXTURE0: {value: 33984, writable: false, enumerable: true, configurable: false},
    TEXTURE1: {value: 33985, writable: false, enumerable: true, configurable: false},
    TEXTURE2: {value: 33986, writable: false, enumerable: true, configurable: false},
    TEXTURE3: {value: 33987, writable: false, enumerable: true, configurable: false},
    TEXTURE4: {value: 33988, writable: false, enumerable: true, configurable: false},
    TEXTURE5: {value: 33989, writable: false, enumerable: true, configurable: false},
    TEXTURE6: {value: 33990, writable: false, enumerable: true, configurable: false},
    TEXTURE7: {value: 33991, writable: false, enumerable: true, configurable: false},
    TEXTURE8: {value: 33992, writable: false, enumerable: true, configurable: false},
    TEXTURE9: {value: 33993, writable: false, enumerable: true, configurable: false},
    TEXTURE10: {value: 33994, writable: false, enumerable: true, configurable: false},
    TEXTURE11: {value: 33995, writable: false, enumerable: true, configurable: false},
    TEXTURE12: {value: 33996, writable: false, enumerable: true, configurable: false},
    TEXTURE13: {value: 33997, writable: false, enumerable: true, configurable: false},
    TEXTURE14: {value: 33998, writable: false, enumerable: true, configurable: false},
    TEXTURE15: {value: 33999, writable: false, enumerable: true, configurable: false},
    TEXTURE16: {value: 34000, writable: false, enumerable: true, configurable: false},
    TEXTURE17: {value: 34001, writable: false, enumerable: true, configurable: false},
    TEXTURE18: {value: 34002, writable: false, enumerable: true, configurable: false},
    TEXTURE19: {value: 34003, writable: false, enumerable: true, configurable: false},
    TEXTURE20: {value: 34004, writable: false, enumerable: true, configurable: false},
    TEXTURE21: {value: 34005, writable: false, enumerable: true, configurable: false},
    TEXTURE22: {value: 34006, writable: false, enumerable: true, configurable: false},
    TEXTURE23: {value: 34007, writable: false, enumerable: true, configurable: false},
    TEXTURE24: {value: 34008, writable: false, enumerable: true, configurable: false},
    TEXTURE25: {value: 34009, writable: false, enumerable: true, configurable: false},
    TEXTURE26: {value: 34010, writable: false, enumerable: true, configurable: false},
    TEXTURE27: {value: 34011, writable: false, enumerable: true, configurable: false},
    TEXTURE28: {value: 34012, writable: false, enumerable: true, configurable: false},
    TEXTURE29: {value: 34013, writable: false, enumerable: true, configurable: false},
    TEXTURE30: {value: 34014, writable: false, enumerable: true, configurable: false},
    TEXTURE31: {value: 34015, writable: false, enumerable: true, configurable: false},
    ACTIVE_TEXTURE: {value: 34016, writable: false, enumerable: true, configurable: false},
    REPEAT: {value: 10497, writable: false, enumerable: true, configurable: false},
    CLAMP_TO_EDGE: {value: 33071, writable: false, enumerable: true, configurable: false},
    MIRRORED_REPEAT: {value: 33648, writable: false, enumerable: true, configurable: false},
    FLOAT_VEC2: {value: 35664, writable: false, enumerable: true, configurable: false},
    FLOAT_VEC3: {value: 35665, writable: false, enumerable: true, configurable: false},
    FLOAT_VEC4: {value: 35666, writable: false, enumerable: true, configurable: false},
    INT_VEC2: {value: 35667, writable: false, enumerable: true, configurable: false},
    INT_VEC3: {value: 35668, writable: false, enumerable: true, configurable: false},
    INT_VEC4: {value: 35669, writable: false, enumerable: true, configurable: false},
    BOOL: {value: 35670, writable: false, enumerable: true, configurable: false},
    BOOL_VEC2: {value: 35671, writable: false, enumerable: true, configurable: false},
    BOOL_VEC3: {value: 35672, writable: false, enumerable: true, configurable: false},
    BOOL_VEC4: {value: 35673, writable: false, enumerable: true, configurable: false},
    FLOAT_MAT2: {value: 35674, writable: false, enumerable: true, configurable: false},
    FLOAT_MAT3: {value: 35675, writable: false, enumerable: true, configurable: false},
    FLOAT_MAT4: {value: 35676, writable: false, enumerable: true, configurable: false},
    SAMPLER_2D: {value: 35678, writable: false, enumerable: true, configurable: false},
    SAMPLER_CUBE: {value: 35680, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_ENABLED: {value: 34338, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_SIZE: {value: 34339, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_STRIDE: {value: 34340, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_TYPE: {value: 34341, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_NORMALIZED: {
        value: 34922,
        writable: false,
        enumerable: true,
        configurable: false
    },
    VERTEX_ATTRIB_ARRAY_POINTER: {value: 34373, writable: false, enumerable: true, configurable: false},
    VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: {
        value: 34975,
        writable: false,
        enumerable: true,
        configurable: false
    },
    IMPLEMENTATION_COLOR_READ_TYPE: {
        value: 35738,
        writable: false,
        enumerable: true,
        configurable: false
    },
    IMPLEMENTATION_COLOR_READ_FORMAT: {
        value: 35739,
        writable: false,
        enumerable: true,
        configurable: false
    },
    COMPILE_STATUS: {value: 35713, writable: false, enumerable: true, configurable: false},
    LOW_FLOAT: {value: 36336, writable: false, enumerable: true, configurable: false},
    MEDIUM_FLOAT: {value: 36337, writable: false, enumerable: true, configurable: false},
    HIGH_FLOAT: {value: 36338, writable: false, enumerable: true, configurable: false},
    LOW_INT: {value: 36339, writable: false, enumerable: true, configurable: false},
    MEDIUM_INT: {value: 36340, writable: false, enumerable: true, configurable: false},
    HIGH_INT: {value: 36341, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER: {value: 36160, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER: {value: 36161, writable: false, enumerable: true, configurable: false},
    RGBA4: {value: 32854, writable: false, enumerable: true, configurable: false},
    RGB5_A1: {value: 32855, writable: false, enumerable: true, configurable: false},
    RGB565: {value: 36194, writable: false, enumerable: true, configurable: false},
    DEPTH_COMPONENT16: {value: 33189, writable: false, enumerable: true, configurable: false},
    STENCIL_INDEX8: {value: 36168, writable: false, enumerable: true, configurable: false},
    DEPTH_STENCIL: {value: 34041, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_WIDTH: {value: 36162, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_HEIGHT: {value: 36163, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_INTERNAL_FORMAT: {
        value: 36164,
        writable: false,
        enumerable: true,
        configurable: false
    },
    RENDERBUFFER_RED_SIZE: {value: 36176, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_GREEN_SIZE: {value: 36177, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_BLUE_SIZE: {value: 36178, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_ALPHA_SIZE: {value: 36179, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_DEPTH_SIZE: {value: 36180, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_STENCIL_SIZE: {value: 36181, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: {
        value: 36048,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: {
        value: 36049,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: {
        value: 36050,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: {
        value: 36051,
        writable: false,
        enumerable: true,
        configurable: false
    },
    COLOR_ATTACHMENT0: {value: 36064, writable: false, enumerable: true, configurable: false},
    DEPTH_ATTACHMENT: {value: 36096, writable: false, enumerable: true, configurable: false},
    STENCIL_ATTACHMENT: {value: 36128, writable: false, enumerable: true, configurable: false},
    DEPTH_STENCIL_ATTACHMENT: {value: 33306, writable: false, enumerable: true, configurable: false},
    NONE: {writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_COMPLETE: {value: 36053, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_INCOMPLETE_ATTACHMENT: {
        value: 36054,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: {
        value: 36055,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_INCOMPLETE_DIMENSIONS: {
        value: 36057,
        writable: false,
        enumerable: true,
        configurable: false
    },
    FRAMEBUFFER_UNSUPPORTED: {value: 36061, writable: false, enumerable: true, configurable: false},
    FRAMEBUFFER_BINDING: {value: 36006, writable: false, enumerable: true, configurable: false},
    RENDERBUFFER_BINDING: {value: 36007, writable: false, enumerable: true, configurable: false},
    MAX_RENDERBUFFER_SIZE: {value: 34024, writable: false, enumerable: true, configurable: false},
    INVALID_FRAMEBUFFER_OPERATION: {
        value: 1286,
        writable: false,
        enumerable: true,
        configurable: false
    },
    UNPACK_FLIP_Y_WEBGL: {value: 37440, writable: false, enumerable: true, configurable: false},
    UNPACK_PREMULTIPLY_ALPHA_WEBGL: {
        value: 37441,
        writable: false,
        enumerable: true,
        configurable: false
    },
    CONTEXT_LOST_WEBGL: {value: 37442, writable: false, enumerable: true, configurable: false},
    UNPACK_COLORSPACE_CONVERSION_WEBGL: {
        value: 37443,
        writable: false,
        enumerable: true,
        configurable: false
    },
    BROWSER_DEFAULT_WEBGL: {value: 37444, writable: false, enumerable: true, configurable: false},
    activeTexture: {writable: true, enumerable: true, configurable: true},
    attachShader: {writable: true, enumerable: true, configurable: true},
    bindAttribLocation: {writable: true, enumerable: true, configurable: true},
    bindRenderbuffer: {writable: true, enumerable: true, configurable: true},
    blendColor: {writable: true, enumerable: true, configurable: true},
    blendEquation: {writable: true, enumerable: true, configurable: true},
    blendEquationSeparate: {writable: true, enumerable: true, configurable: true},
    blendFunc: {writable: true, enumerable: true, configurable: true},
    blendFuncSeparate: {writable: true, enumerable: true, configurable: true},
    bufferData: {writable: true, enumerable: true, configurable: true},
    bufferSubData: {writable: true, enumerable: true, configurable: true},
    checkFramebufferStatus: {writable: true, enumerable: true, configurable: true},
    compileShader: {writable: true, enumerable: true, configurable: true},
    compressedTexImage2D: {writable: true, enumerable: true, configurable: true},
    compressedTexSubImage2D: {writable: true, enumerable: true, configurable: true},
    copyTexImage2D: {writable: true, enumerable: true, configurable: true},
    copyTexSubImage2D: {writable: true, enumerable: true, configurable: true},
    createBuffer: {writable: true, enumerable: true, configurable: true},
    createFramebuffer: {writable: true, enumerable: true, configurable: true},
    createProgram: {writable: true, enumerable: true, configurable: true},
    createRenderbuffer: {writable: true, enumerable: true, configurable: true},
    createShader: {writable: true, enumerable: true, configurable: true},
    createTexture: {writable: true, enumerable: true, configurable: true},
    cullFace: {writable: true, enumerable: true, configurable: true},
    deleteBuffer: {writable: true, enumerable: true, configurable: true},
    deleteFramebuffer: {writable: true, enumerable: true, configurable: true},
    deleteProgram: {writable: true, enumerable: true, configurable: true},
    deleteRenderbuffer: {writable: true, enumerable: true, configurable: true},
    deleteShader: {writable: true, enumerable: true, configurable: true},
    deleteTexture: {writable: true, enumerable: true, configurable: true},
    depthFunc: {writable: true, enumerable: true, configurable: true},
    depthMask: {writable: true, enumerable: true, configurable: true},
    depthRange: {writable: true, enumerable: true, configurable: true},
    detachShader: {writable: true, enumerable: true, configurable: true},
    disable: {writable: true, enumerable: true, configurable: true},
    enable: {writable: true, enumerable: true, configurable: true},
    finish: {writable: true, enumerable: true, configurable: true},
    flush: {writable: true, enumerable: true, configurable: true},
    framebufferRenderbuffer: {writable: true, enumerable: true, configurable: true},
    framebufferTexture2D: {writable: true, enumerable: true, configurable: true},
    frontFace: {writable: true, enumerable: true, configurable: true},
    generateMipmap: {writable: true, enumerable: true, configurable: true},
    getActiveAttrib: {writable: true, enumerable: true, configurable: true},
    getActiveUniform: {writable: true, enumerable: true, configurable: true},
    getAttachedShaders: {writable: true, enumerable: true, configurable: true},
    getAttribLocation: {writable: true, enumerable: true, configurable: true},
    getBufferParameter: {writable: true, enumerable: true, configurable: true},
    getContextAttributes: {writable: true, enumerable: true, configurable: true},
    getError: {writable: true, enumerable: true, configurable: true},
    getExtension: {writable: true, enumerable: true, configurable: true},
    getFramebufferAttachmentParameter: {writable: true, enumerable: true, configurable: true},
    getParameter: {writable: true, enumerable: true, configurable: true},
    getProgramInfoLog: {writable: true, enumerable: true, configurable: true},
    getProgramParameter: {writable: true, enumerable: true, configurable: true},
    getRenderbufferParameter: {writable: true, enumerable: true, configurable: true},
    getShaderInfoLog: {writable: true, enumerable: true, configurable: true},
    getShaderParameter: {writable: true, enumerable: true, configurable: true},
    getShaderPrecisionFormat: {writable: true, enumerable: true, configurable: true},
    getShaderSource: {writable: true, enumerable: true, configurable: true},
    getSupportedExtensions: {writable: true, enumerable: true, configurable: true},
    getTexParameter: {writable: true, enumerable: true, configurable: true},
    getUniform: {writable: true, enumerable: true, configurable: true},
    getUniformLocation: {writable: true, enumerable: true, configurable: true},
    getVertexAttrib: {writable: true, enumerable: true, configurable: true},
    getVertexAttribOffset: {writable: true, enumerable: true, configurable: true},
    hint: {writable: true, enumerable: true, configurable: true},
    isBuffer: {writable: true, enumerable: true, configurable: true},
    isContextLost: {writable: true, enumerable: true, configurable: true},
    isEnabled: {writable: true, enumerable: true, configurable: true},
    isFramebuffer: {writable: true, enumerable: true, configurable: true},
    isProgram: {writable: true, enumerable: true, configurable: true},
    isRenderbuffer: {writable: true, enumerable: true, configurable: true},
    isShader: {writable: true, enumerable: true, configurable: true},
    isTexture: {writable: true, enumerable: true, configurable: true},
    lineWidth: {writable: true, enumerable: true, configurable: true},
    linkProgram: {writable: true, enumerable: true, configurable: true},
    pixelStorei: {writable: true, enumerable: true, configurable: true},
    polygonOffset: {writable: true, enumerable: true, configurable: true},
    readPixels: {writable: true, enumerable: true, configurable: true},
    renderbufferStorage: {writable: true, enumerable: true, configurable: true},
    sampleCoverage: {writable: true, enumerable: true, configurable: true},
    shaderSource: {writable: true, enumerable: true, configurable: true},
    stencilFunc: {writable: true, enumerable: true, configurable: true},
    stencilFuncSeparate: {writable: true, enumerable: true, configurable: true},
    stencilMask: {writable: true, enumerable: true, configurable: true},
    stencilMaskSeparate: {writable: true, enumerable: true, configurable: true},
    stencilOp: {writable: true, enumerable: true, configurable: true},
    stencilOpSeparate: {writable: true, enumerable: true, configurable: true},
    texImage2D: {writable: true, enumerable: true, configurable: true},
    texParameterf: {writable: true, enumerable: true, configurable: true},
    texParameteri: {writable: true, enumerable: true, configurable: true},
    texSubImage2D: {writable: true, enumerable: true, configurable: true},
    useProgram: {writable: true, enumerable: true, configurable: true},
    validateProgram: {writable: true, enumerable: true, configurable: true},
    bindBuffer: {writable: true, enumerable: true, configurable: true},
    bindFramebuffer: {writable: true, enumerable: true, configurable: true},
    bindTexture: {writable: true, enumerable: true, configurable: true},
    clear: {writable: true, enumerable: true, configurable: true},
    clearColor: {writable: true, enumerable: true, configurable: true},
    clearDepth: {writable: true, enumerable: true, configurable: true},
    clearStencil: {writable: true, enumerable: true, configurable: true},
    colorMask: {writable: true, enumerable: true, configurable: true},
    disableVertexAttribArray: {writable: true, enumerable: true, configurable: true},
    drawArrays: {writable: true, enumerable: true, configurable: true},
    drawElements: {writable: true, enumerable: true, configurable: true},
    enableVertexAttribArray: {writable: true, enumerable: true, configurable: true},
    scissor: {writable: true, enumerable: true, configurable: true},
    uniform1f: {writable: true, enumerable: true, configurable: true},
    uniform1fv: {writable: true, enumerable: true, configurable: true},
    uniform1i: {writable: true, enumerable: true, configurable: true},
    uniform1iv: {writable: true, enumerable: true, configurable: true},
    uniform2f: {writable: true, enumerable: true, configurable: true},
    uniform2fv: {writable: true, enumerable: true, configurable: true},
    uniform2i: {writable: true, enumerable: true, configurable: true},
    uniform2iv: {writable: true, enumerable: true, configurable: true},
    uniform3f: {writable: true, enumerable: true, configurable: true},
    uniform3fv: {writable: true, enumerable: true, configurable: true},
    uniform3i: {writable: true, enumerable: true, configurable: true},
    uniform3iv: {writable: true, enumerable: true, configurable: true},
    uniform4f: {writable: true, enumerable: true, configurable: true},
    uniform4fv: {writable: true, enumerable: true, configurable: true},
    uniform4i: {writable: true, enumerable: true, configurable: true},
    uniform4iv: {writable: true, enumerable: true, configurable: true},
    uniformMatrix2fv: {writable: true, enumerable: true, configurable: true},
    uniformMatrix3fv: {writable: true, enumerable: true, configurable: true},
    uniformMatrix4fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib1f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib1fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib2f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib2fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib3f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib3fv: {writable: true, enumerable: true, configurable: true},
    vertexAttrib4f: {writable: true, enumerable: true, configurable: true},
    vertexAttrib4fv: {writable: true, enumerable: true, configurable: true},
    vertexAttribPointer: {writable: true, enumerable: true, configurable: true},
    viewport: {writable: true, enumerable: true, configurable: true},
    constructor: {writable: true, enumerable: false, configurable: true},
    makeXRCompatible: {writable: true, enumerable: true, configurable: true},
    [Symbol.toStringTag]: {
        value: "WebGLRenderingContext",
        writable: false,
        enumerable: false,
        configurable: true
    },
})
WebGLRenderingContext = protectProp(WebGLRenderingContext)
window.WebGLRenderingContext = WebGLRenderingContext

class OffscreenCanvas {
    width = 0;
    height = 0;
    _canvas = null;

    constructor(w, h) {
        print('OffscreenCanvas new', w, h)
        this.width = w;
        this.height = h;
        this._canvas = Canvas.createCanvas(w, h)
    }

    getContext(type) {

        let res = this._canvas.getContext(type)
        if (type === 'webgl') {
            let t = proxy(new window.WebGLRenderingContext(), 'offCanvas.webgl')

            return t
        }
        // return proxy(res, 'newContext')
        print('OffscreenCanvas getContext', type, res)
        if (type == '2d') {
            res = new OffscreenCanvasRenderingContext2D(this.width, this.height);
        }
        return res;

    }
}

Object.defineProperties(OffscreenCanvas.prototype, {

    [Symbol.toStringTag]: {value: "OffscreenCanvas", writable: false, enumerable: false, configurable: true},
})
OffscreenCanvas = protectProp(OffscreenCanvas)
PerformanceEntry = v_saf(function PerformanceEntry() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
MediaDevices = v_saf(function MediaDevices() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MediaDevices, EventTarget)
Object.defineProperties(MediaDevices.prototype, {
    ondevicechange: {
        value: v_saf(function ondevicechange() {
            v_console_log("MediaDevices ondevicechange", arguments)
        })
    },
    enumerateDevices: {
        value: function () {
            return {
                then: function () {
                    return this
                }, catch: function () {
                }
            }
        }
    }
})
PerformanceElementTiming = v_saf(function PerformanceElementTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceElementTiming, PerformanceEntry)
PerformanceEventTiming = v_saf(function PerformanceEventTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceEventTiming, PerformanceEntry)
PerformanceLongTaskTiming = v_saf(function PerformanceLongTaskTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceLongTaskTiming, PerformanceEntry)
PerformanceMark = v_saf(function PerformanceMark() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceMark, PerformanceEntry)
PerformanceMeasure = v_saf(function PerformanceMeasure() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceMeasure, PerformanceEntry)
PerformanceNavigation = v_saf(function PerformanceNavigation() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformanceResourceTiming = v_saf(function PerformanceResourceTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceResourceTiming, PerformanceEntry)
PerformanceNavigationTiming = v_saf(function PerformanceNavigationTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformanceNavigationTiming, PerformanceResourceTiming)
PerformanceObserver = v_saf(function PerformanceObserver() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformanceObserverEntryList = v_saf(function PerformanceObserverEntryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformancePaintTiming = v_saf(function PerformancePaintTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PerformancePaintTiming, PerformanceEntry)
PerformanceServerTiming = v_saf(function PerformanceServerTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
PerformanceTiming = v_saf(function PerformanceTiming() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
HTMLUnknownElement = v_saf(function HTMLUnknownElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLUnknownElement, HTMLElement)
HTMLVideoElement = v_saf(function HTMLVideoElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLVideoElement, HTMLMediaElement)

Storage = v_saf(function Storage() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
ImageData = v_saf(function ImageData() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
Object.defineProperties(ImageData.prototype, {
    data: {
        value: Uint8ClampedArray.from([0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255]),
        writable: true
    },
    height: {value: 5, writable: true},
    width: {value: 5, writable: true},
    colorSpace: {value: 'srgb', writable: true},
})
Touch = v_saf(function Touch() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
TouchEvent = v_saf(function TouchEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(TouchEvent, UIEvent)

window.StaticRange = v_saf(function StaticRange() {
})
PointerEvent = v_saf(function PointerEvent() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(PointerEvent, MouseEvent)
HTMLHtmlElement = v_saf(function HTMLHtmlElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});

// _inherits(HTMLHtmlElement, HTMLElement)
HTMLMetaElement = v_saf(function HTMLMetaElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLMetaElement, HTMLElement)
HTMLTitleElement = v_saf(function HTMLTitleElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLTitleElement, HTMLElement)
HTMLScriptElement = v_saf(function HTMLScriptElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLScriptElement, HTMLElement)
HTMLStyleElement = v_saf(function HTMLScriptElement() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(HTMLStyleElement, HTMLElement)
Object.defineProperties(Node.prototype, {
    attrs: {
        value: {}
    },
    setAttribute: {
        value: function (key, value) {
            this.attrs[key] = value
        }
    },
    parentNode: {
        value: v_new(HTMLScriptElement)
    },
    insertBefore: {
        value: function (tag, newNode) {
            return tag
        }
    }
})

getRanHex = size => {
    let result = [];
    let hexRef = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];

    for (let n = 0; n < size; n++) {
        result.push(hexRef[Math.floor(_random() * 16)].toUpperCase() + hexRef[Math.floor(_random() * 16)].toUpperCase());
    }
    return result;
}
Object.defineProperties(RTCSessionDescription.prototype, {
    sdp: {
        get: v_saf(function get() {
            let t1 = parseInt(Math.random() * (9145445486224659982 / 2) + 9145445486224659982 / 1.2)
            let hex = getRanHex(32).join(':');
            let res = `v=0
o=- ${t1} 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE 0
a=extmap-allow-mixed
a=msid-semantic: WMS
m=application 9 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=ice-ufrag:Pz1P
a=ice-pwd:2RkyfgKRyILQtDZZ5mluUlPS
a=ice-options:trickle
a=fingerprint:sha-256 ${hex}
a=setup:actpass
a=mid:0
a=sctp-port:5000
a=max-message-size:262144`
            print("  [*] RTCSessionDescription -> sdp[get]", res);

            return res

        })
    },
    type: {
        get: v_saf(function get() {
            print("  [*] RTCSessionDescription -> type[get]", "offer");
            return "offer"
        })
    },
    [Symbol.toStringTag]: {value: "RTCSessionDescription", writable: false, enumerable: false, configurable: true},
})

Object.defineProperties(EventTarget.prototype, {
    [Symbol.toStringTag]: {value: "EventTarget", writable: false, enumerable: false, configurable: true},
})

class OffscreenCanvasRenderingContext2D {

    imageDatas = {
        "18,90,1,1": [214, 122, 6, 255],
        "38,77,1,1": [255, 255, 255, 255],
        "48,28,1,1": [0, 0, 0, 0],
        "94,23,1,1": [0, 0, 0, 0],
        "26,46,1,1": [253, 243, 245, 255],
        "47,23,1,1": [0, 0, 0, 0],
        "37,17,1,1": [0, 0, 0, 255],
        "62,28,1,1": [204, 131, 217, 255]
    }
    imageData = ENV.imgsres['94px sans-serif']

    constructor(w, h, context) {
        print1('OffscreenCanvasRenderingContext2D.new', w, h)
        this.width = w;
        this.height = h;
        if (context) {
            this._context = context

        } else {
            this._context = Canvas.createCanvas(w, h).getContext('2d')

        }
    }

    set font(f) {
        print('OffscreenCanvasRenderingContext2D.font', f)
        this._font = f;
        this._context.font = f;
    }

    measureText(text) {
        print('OffscreenCanvasRenderingContext2D.measureText1', text)
        this._text = text;
        fonts22.push({
            font: this._font,
            text: text
        })
        let res = new TextMetrics(text, this._context, this._font);
        return proxy(res, 'TextMetrics')
        // return res;
    }

    get canvas() {
        print1('CanvasRenderingContext2D22.canvas.get')
    }

    get globalAlpha() {
        print1('CanvasRenderingContext2D22.globalAlpha.get')
    }

    set globalAlpha(args) {
        print1('CanvasRenderingContext2D22.globalAlpha.set', args)
    }

    get globalCompositeOperation() {
        print1('CanvasRenderingContext2D22.globalCompositeOperation.get')
    }

    set globalCompositeOperation(args) {
        print1('CanvasRenderingContext2D22.globalCompositeOperation.set', args)
    }

    get filter() {
        print1('CanvasRenderingContext2D22.filter.get')
    }

    set filter(args) {
        print1('CanvasRenderingContext2D22.filter.set', args)
    }

    get imageSmoothingEnabled() {
        print1('CanvasRenderingContext2D22.imageSmoothingEnabled.get')
    }

    set imageSmoothingEnabled(args) {
        print1('CanvasRenderingContext2D22.imageSmoothingEnabled.set', args)
    }

    get imageSmoothingQuality() {
        print1('CanvasRenderingContext2D22.imageSmoothingQuality.get')
    }

    set imageSmoothingQuality(args) {
        print1('CanvasRenderingContext2D22.imageSmoothingQuality.set', args)
    }

    get strokeStyle() {
        print1('CanvasRenderingContext2D22.strokeStyle.get')
    }

    set strokeStyle(args) {
        print1('CanvasRenderingContext2D22.strokeStyle.set', args)
        return this._context.strokeStyle = args
    }

    get fillStyle() {
        print1('CanvasRenderingContext2D22.fillStyle.get')
    }

    set fillStyle(args) {
        print1('CanvasRenderingContext2D22.fillStyle.set', args)
        this._context.canvas.fillStyle = args

    }

    get shadowOffsetX() {
        print1('CanvasRenderingContext2D22.shadowOffsetX.get')
    }

    set shadowOffsetX(args) {
        print1('CanvasRenderingContext2D22.shadowOffsetX.set', args)
        this._context.shadowOffsetX = args
    }

    get shadowOffsetY() {
        print1('CanvasRenderingContext2D22.shadowOffsetY.get')
    }

    set shadowOffsetY(args) {
        print1('CanvasRenderingContext2D22.shadowOffsetY.set', args)
        this._context.shadowOffsetY = args

    }

    get shadowBlur() {
        print1('CanvasRenderingContext2D22.shadowBlur.get')
    }

    set shadowBlur(args) {
        print1('CanvasRenderingContext2D22.shadowBlur.set', args)
        this._context.shadowBlur = args

    }

    get shadowColor() {
        print1('CanvasRenderingContext2D22.shadowColor.get')

    }

    set shadowColor(args) {
        print1('CanvasRenderingContext2D22.shadowColor.set', args)
        this._context.shadowColor = args

    }

    get lineWidth() {
        print1('CanvasRenderingContext2D22.lineWidth.get')
    }

    set lineWidth(args) {
        print1('CanvasRenderingContext2D22.lineWidth.set', args)
        this._context.lineWidth = args;
    }

    get lineCap() {
        print1('CanvasRenderingContext2D22.lineCap.get')
    }

    set lineCap(args) {
        print1('CanvasRenderingContext2D22.lineCap.set', args)
    }

    get lineJoin() {
        print1('CanvasRenderingContext2D22.lineJoin.get')
    }

    set lineJoin(args) {
        print1('CanvasRenderingContext2D22.lineJoin.set', args)
    }

    get miterLimit() {
        print1('CanvasRenderingContext2D22.miterLimit.get')
    }

    set miterLimit(args) {
        print1('CanvasRenderingContext2D22.miterLimit.set', args)
    }

    get lineDashOffset() {
        print1('CanvasRenderingContext2D22.lineDashOffset.get')
    }

    set lineDashOffset(args) {
        print1('CanvasRenderingContext2D22.lineDashOffset.set', args)
    }

    get font() {
        print1('CanvasRenderingContext2D22.font.get')
        return this._context.font;
    }

    get textAlign() {
        print1('CanvasRenderingContext2D22.textAlign.get')
    }

    set textAlign(args) {
        print1('CanvasRenderingContext2D22.textAlign.set', args)
    }

    get textBaseline() {
        print1('CanvasRenderingContext2D22.textBaseline.get')
        return this._context.textBaseline
    }

    set textBaseline(args) {
        print1('CanvasRenderingContext2D22.textBaseline.set', args)
        this._context.textBaseline = args
    }

    get direction() {
        print1('CanvasRenderingContext2D22.direction.get')
        return this._context.direction;
    }

    set direction(args) {
        print1('CanvasRenderingContext2D22.direction.set', args)
        this._context.direction = args

    }

    get fontKerning() {
        print1('CanvasRenderingContext2D22.fontKerning.get')
    }

    set fontKerning(args) {
        print1('CanvasRenderingContext2D22.fontKerning.set', args)
    }

    get fontStretch() {
        print1('CanvasRenderingContext2D22.fontStretch.get')
    }

    set fontStretch(args) {
        print1('CanvasRenderingContext2D22.fontStretch.set', args)
    }

    get fontVariantCaps() {
        print1('CanvasRenderingContext2D22.fontVariantCaps.get')
    }

    set fontVariantCaps(args) {
        print1('CanvasRenderingContext2D22.fontVariantCaps.set', args)
    }

    get letterSpacing() {
        print1('CanvasRenderingContext2D22.letterSpacing.get')
    }

    set letterSpacing(args) {
        print1('CanvasRenderingContext2D22.letterSpacing.set', args)
    }

    get textRendering() {
        print1('CanvasRenderingContext2D22.textRendering.get')
    }

    set textRendering(args) {
        print1('CanvasRenderingContext2D22.textRendering.set', args)
    }

    get wordSpacing() {
        print1('CanvasRenderingContext2D22.wordSpacing.get')
    }

    set wordSpacing(args) {
        print1('CanvasRenderingContext2D22.wordSpacing.set', args)
    }

    clip() {
        print1('CanvasRenderingContext2D22.clip')
    }

    createConicGradient() {
        print1('CanvasRenderingContext2D22.createConicGradient')
    }

    createImageData() {
        print1('CanvasRenderingContext2D22.createImageData')
    }

    createLinearGradient() {
        print1('CanvasRenderingContext2D22.createLinearGradient')

        return this._context.createLinearGradient(...arguments)
    }

    createPattern() {
        print1('CanvasRenderingContext2D22.createPattern')
    }

    createRadialGradient() {
        print1('CanvasRenderingContext2D22.createRadialGradient')
    }

    drawFocusIfNeeded() {
        print1('CanvasRenderingContext2D22.drawFocusIfNeeded')
    }

    drawImage() {
        print1('CanvasRenderingContext2D22.drawImage')
        this._context.drawImage(...arguments)
    }

    fill() {
        print1('CanvasRenderingContext2D22.fill')
    }

    fillText() {
        print1('CanvasRenderingContext2D22.fillText', ...arguments)
        this._context.fillText(...arguments)
        this._fillText = [arguments[0], arguments[1], arguments[2]]
    }

    getContextAttributes() {
        print1('CanvasRenderingContext2D22.getContextAttributes')
    }

    getImageData() {
        let t = _random();

        let res = this._context.getImageData(...arguments)
        // window.imageDatas.push({
        //     font: this._context.font,
        //     fillStyle: this._context.fillStyle,
        //     fillText: this._fillText,
        //     imageData: [arguments[0], arguments[1], arguments[2], arguments[3]]
        // })
        let tdata = this.imageDatas[[arguments[0], arguments[1], arguments[2], arguments[3]] + ''];
        if (tdata) {
            res.data[0] = parseInt(tdata[0] * t)
            res.data[1] = parseInt(tdata[1] * t)
            res.data[2] = parseInt(tdata[2] * t)
            res.data[3] = parseInt(tdata[3] * t)
        }
        print1('CanvasRenderingContext2D22.getImageData', ...arguments, res)

        return res
    }

    getLineDash() {
        print1('CanvasRenderingContext2D22.getLineDash')
    }

    getTransform() {
        print1('CanvasRenderingContext2D22.getTransform')
    }

    isContextLost() {
        print1('CanvasRenderingContext2D22.isContextLost')
    }

    isPointInPath() {
        print1('CanvasRenderingContext2D22.isPointInPath')
    }

    isPointInStroke() {
        print1('CanvasRenderingContext2D22.isPointInStroke')
    }

    putImageData() {
        print1('CanvasRenderingContext2D22.putImageData')
    }

    reset() {
        print1('CanvasRenderingContext2D22.reset')
    }

    roundRect() {
        print1('CanvasRenderingContext2D22.roundRect')
    }

    save() {
        print1('CanvasRenderingContext2D22.save')
    }

    scale() {
        print1('CanvasRenderingContext2D22.scale')
    }

    setLineDash() {
        print1('CanvasRenderingContext2D22.setLineDash')
    }

    setTransform() {
        print1('CanvasRenderingContext2D22.setTransform')
    }

    stroke() {
        print1('CanvasRenderingContext2D22.stroke')
        this._context.stroke()
    }

    strokeText() {
        print1('CanvasRenderingContext2D22.strokeText')
    }

    transform() {
        print1('CanvasRenderingContext2D22.transform')
    }

    translate() {
        print1('CanvasRenderingContext2D22.translate')
    }

    arc() {
        print1('CanvasRenderingContext2D22.arc')
        return this._context.arc(...arguments)
    }

    arcTo() {
        print1('CanvasRenderingContext2D22.arcTo')
    }

    beginPath() {
        print1('CanvasRenderingContext2D22.beginPath')
        return this._context.beginPath()
    }

    bezierCurveTo() {
        print1('CanvasRenderingContext2D22.bezierCurveTo')
    }

    clearRect() {
        print1('CanvasRenderingContext2D22.clearRect')
    }

    closePath() {
        print1('CanvasRenderingContext2D22.closePath')
        return this._context.closePath(...arguments)

    }

    ellipse() {
        print1('CanvasRenderingContext2D22.ellipse')
    }

    fillRect() {
        print1('CanvasRenderingContext2D22.fillRect')
        return this._context.fillRect(...arguments)
    }

    lineTo() {
        print1('CanvasRenderingContext2D22.lineTo')
        return this._context.lineTo(...arguments)

    }

    moveTo() {
        print1('CanvasRenderingContext2D22.moveTo')
        return this._context.moveTo(...arguments)
    }

    quadraticCurveTo() {
        print1('CanvasRenderingContext2D22.quadraticCurveTo')
    }

    rect() {
        print1('CanvasRenderingContext2D22.rect')
    }

    resetTransform() {
        print1('CanvasRenderingContext2D22.resetTransform')
    }

    restore() {
        print1('CanvasRenderingContext2D22.restore')
    }

    rotate() {
        print1('CanvasRenderingContext2D22.rotate')
    }

    strokeRect() {
        print1('CanvasRenderingContext2D22.strokeRect')
    }


}

///
let r = {}
// Object.keys(Object.getOwnPropertyDescriptors(OffscreenCanvasRenderingContext2D.prototype)).forEach(e => {
//     r[e] = {}
//     if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['value']) {
//         r[e]['value'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['value'])
//     }
//
//     if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['get']) {
//         r[e]['get'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['get'], undefined, 'get')
//     }
//     if (Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['set']) {
//         r[e]['set'] = v_saf(Object.getOwnPropertyDescriptor(OffscreenCanvasRenderingContext2D.prototype, e)['set'], undefined, 'set')
//     }
//     r[e]['enumerable'] = true
// })
// Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, r)
Object.defineProperties(OffscreenCanvasRenderingContext2D.prototype, {

    [Symbol.toStringTag]: {
        value: "OffscreenCanvasRenderingContext2D",
        writable: false,
        enumerable: false,
        configurable: true
    },
})

OffscreenCanvasRenderingContext2D = protectProp(OffscreenCanvasRenderingContext2D)
window.OffscreenCanvasRenderingContext2D = proxy(OffscreenCanvasRenderingContext2D, 'OffscreenCanvasRenderingContext2D')
window.CanvasRenderingContext2D = CanvasRenderingContext2D

///

Object.defineProperties(CanvasGradient.prototype, {
    addColorStop: {
        value: v_saf(function addColorStop() {
            v_console_log("  [*] CanvasGradient -> addColorStop[func]", [].slice.call(arguments));
        })
    },
    [Symbol.toStringTag]: {value: "CanvasGradient", writable: false, enumerable: false, configurable: true},
})

MutationObserver = v_saf(function MutationObserver() {
    print('MutationObserver.new', arguments)
    this._func = arguments[0]
})
Object.defineProperties(MutationObserver.prototype, {
    observe: {
        value: function () {
            print('MutationObserver.observe', arguments)
            this._func()
        }
    },
    disconnect: {
        value: function () {
            print('MutationObserver.disconnect', arguments)
        }
    }

})
Object.defineProperties(NavigatorUAData.prototype, {
    getHighEntropyValues: {
        value: v_saf(function getHighEntropyValues() {
            v_console_log("  [*] NavigatorUAData -> getHighEntropyValues[func]", [].slice.call(arguments));
        })
    },
    [Symbol.toStringTag]: {value: "NavigatorUAData", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(NodeList.prototype, {
    length: {
        get() {
            v_console_log("  [*] NodeList -> length[get]", 0);
            return 0
        }
    },
    [Symbol.toStringTag]: {value: "NodeList", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(HTMLCollection.prototype, {
    length: {
        get() {
            v_console_log("  [*] HTMLCollection -> length[get]", 0);
            return 0
        }
    },
    [Symbol.toStringTag]: {value: "HTMLCollection", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(DOMTokenList.prototype, {
    length: {
        get() {
            v_console_log("  [*] DOMTokenList -> length[get]", 0);
            return 0
        }
    },
    [Symbol.toStringTag]: {value: "DOMTokenList", writable: false, enumerable: false, configurable: true},
})
// Object.defineProperties(Event.prototype, {
//     target: {get(){ v_console_log("  [*] Event -> target[get]", {});return {} }},
//     NONE: {"value":0,"writable":false,"enumerable":true,"configurable":false},
//     CAPTURING_PHASE: {"value":1,"writable":false,"enumerable":true,"configurable":false},
//     AT_TARGET: {"value":2,"writable":false,"enumerable":true,"configurable":false},
//     BUBBLING_PHASE: {"value":3,"writable":false,"enumerable":true,"configurable":false},
//     [Symbol.toStringTag]: {value:"Event",writable:false,enumerable:false,configurable:true},
// })
let randomStr = function () {
    let strs = 'abcderfASDHJKWPL1234567890';
    let res = '';
    for (let i = 0; i < 4; i++) {
        res += strs.charAt(parseInt(strs.length * _random()))
    }
    return res
}()

RTCIceCandidate = v_saf(function RTCIceCandidate() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(RTCIceCandidate.prototype, {
    candidate: {
        get() {
            v_console_log("  [*] RTCIceCandidate -> candidate[get]", "candidate:1047676015 1 udp 2113937151 525b31c9-16e3-40af-98bd-98206a0caa63.local 51227 typ host generation 0 ufrag 4FAM network-cost 999");
            return `candidate:${t1} 1 udp ${t2} ${ip} ${t3} typ host generation 0 ufrag ${randomStr} network-id ${t4}`

        }
    },
    [Symbol.toStringTag]: {value: "RTCIceCandidate", writable: false, enumerable: false, configurable: true},
})

Object.defineProperties(PluginArray.prototype, {
    length: {
        get() {
            print1("  [*] PluginArray -> length[get]", 5);
            return 5
        },
        enumerable: true
    },
    [Symbol.toStringTag]: {value: "PluginArray", writable: false, enumerable: false, configurable: true},
})
PluginArray = proxy(PluginArray, 'PluginArray')


Object.defineProperties(Plugin.prototype, {
    [Symbol.toStringTag]: {value: "Plugin", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(MimeType.prototype, {
    [Symbol.toStringTag]: {value: "MimeType", writable: false, enumerable: false, configurable: true},
})

// Object.defineProperties(Crypto.prototype, {
//     [Symbol.toStringTag]: {value:"Crypto",writable:false,enumerable:false,configurable:true},
// })
Object.defineProperties(Image.prototype, {
    src: {
        set() {
            v_console_log("  [*] Image -> src[set]", [].slice.call(arguments));
        }
    },
    [Symbol.toStringTag]: {value: "Image", writable: false, enumerable: false, configurable: true},
})
publicDescription = undefined;

class RTCPeerConnection {
    constructor(args) {
        print('RTCPeerConnection.new', args)

    }
}

Object.defineProperties(RTCPeerConnection.prototype, {
    localDescription: {
        value: {
            get: v_saf(function get() {
                print('get localDescription')
                return this._publicDescription
            }),
            set: function (arg) {
                this._publicDescription = arg
            }
        }
    },
    onicecandidate: {
        set() {
            print("  [*] RTCPeerConnection -> onicecandidate[set]", [].slice.call(arguments));
            this._onicecandidate = arguments[0]
        }
    },

    createDataChannel: {
        value: v_saf(function createDataChannel(label, option) {
            print("  [*] RTCPeerConnection -> createDataChannel[func]", [].slice.call(arguments));
            let res = new RTCDataChannel(label);
            return proxy(res, 'dataChannel')
        })
    },
    createOffer: {
        value: v_saf(function createOffer() {
            print("  [*] RTCPeerConnection -> createOffer[func]", [].slice.call(arguments));
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                print('RTCPeerConnection createOffer', resolve, reject);
                let res = new RTCSessionDescription()
                // resolve(proxy(res, 'newRTCSessionDescription'))
                resolve({
                    then: function (arg1, arg2) {
                        arg1(proxy(res, 'newRTCSessionDescription'))
                        arg2(proxy(res, 'newRTCSessionDescription'))
                    }
                })
            })
            return p;
            // return {
            //     then: function (func, func2) {
            //         v_console_log("  [*] RTCPeerConnection -> createOffer[func] then", [].slice.call(arguments));
            //         func2(v_new(RTCSessionDescription));
            //         func(v_new(RTCSessionDescription));
            //         return func(v_new(RTCSessionDescription));
            //     }, catch: function () {
            //     }
            // }
        })
    },
    setLocalDescription: {
        value: v_saf(function setLocalDescription() {
            var _this = this;
            print("  [*] RTCPeerConnection -> setLocalDescription[func]", [].slice.call(arguments));
            _this._onicecandidate(new RTCPeerConnectionIceEvent())
            this.localDescription = arguments[0]
            _this._onicecandidate(this.localDescription)
            let p = new Promise(function (resolve, reject) {
                // 2. 执行异步操作任务
                // let res = this.setLocalDescription(v_new(RTCSessionDescription))
                // print('RTCPeerConnection create',res);
                _this._onicecandidate(new RTCPeerConnectionIceEvent())

                print("  [*] RTCPeerConnection -> setLocalDescription[func] then", [].slice.call(arguments));
                // window.debug = true
                resolve(new RTCSessionDescription())
                // return res
            })
            return p;
        }),
        enumerable: true,
        configurable: true
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnection", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(Node.prototype, {
    childs: {value: []},
    appendChild: {
        value: v_saf(function appendChild() {
            v_console_log("  [*] Node -> appendChild[func]", [].slice.call(arguments));
            this.childs.push(arguments[0])
            return arguments[0];
        })
    },
    removeChild: {
        value: v_saf(function removeChild() {
            v_console_log("  [*] Node -> removeChild[func]", [].slice.call(arguments));
        })
    },
    textContent: {
        set() {
            v_console_log("  [*] Node -> textContent[set]", [].slice.call(arguments));
            this.text = arguments[0]
        }
    },
    ELEMENT_NODE: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    ATTRIBUTE_NODE: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    TEXT_NODE: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    CDATA_SECTION_NODE: {"value": 4, "writable": false, "enumerable": true, "configurable": false},
    ENTITY_REFERENCE_NODE: {"value": 5, "writable": false, "enumerable": true, "configurable": false},
    ENTITY_NODE: {"value": 6, "writable": false, "enumerable": true, "configurable": false},
    PROCESSING_INSTRUCTION_NODE: {"value": 7, "writable": false, "enumerable": true, "configurable": false},
    COMMENT_NODE: {"value": 8, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_NODE: {"value": 9, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_TYPE_NODE: {"value": 10, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_FRAGMENT_NODE: {"value": 11, "writable": false, "enumerable": true, "configurable": false},
    NOTATION_NODE: {"value": 12, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_DISCONNECTED: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_PRECEDING: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_FOLLOWING: {"value": 4, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_CONTAINS: {"value": 8, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_CONTAINED_BY: {"value": 16, "writable": false, "enumerable": true, "configurable": false},
    DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: {
        "value": 32,
        "writable": false,
        "enumerable": true,
        "configurable": false
    },
    [Symbol.toStringTag]: {value: "Node", writable: false, enumerable: false, configurable: true},
})
Object.defineProperties(WebSocket.prototype, {
    onmessage: {
        set() {
            v_console_log("  [*] WebSocket -> onmessage[set]", [].slice.call(arguments));
        }
    },
    CONNECTING: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    OPEN: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    CLOSING: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    CLOSED: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    [Symbol.toStringTag]: {value: "WebSocket", writable: false, enumerable: false, configurable: true},
})
let t1 = parseInt(_random() * 2430043322 / 2 + 1430043322);
let t2 = parseInt(_random() * 2430043322 / 2 + 1430043322);
let t3 = parseInt(_random() * 5000 + 60199);
let t4 = parseInt(_random() * 8 + 1);
let ip = `${parseInt(_random() * 220 + 1)}.${parseInt(_random() * 220 + 1)}.${parseInt(_random() * 220 + 1)}.${parseInt(_random() * 220 + 1)}`

function guid() {
    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
        var r = _random() * 16 | 0,
            v = c == 'x' ? r : (r & 0x3 | 0x8);
        return v.toString(16);
    });
}

var candidateGetTimes = 0;
Object.defineProperties(RTCPeerConnectionIceEvent.prototype, {
    candidate: {
        get: function () {

            let res = `candidate:${t1} 1 udp ${t2} ${guid()}.local ${t3} typ host generation 0 ufrag MiWK network-cost 999`
            res = `candidate:${t1} 1 udp ${t2} ${ip} ${t3} typ host generation 0 ufrag ${randomStr} network-id ${t4}`
            // res = `candidate:${t1} 1 tcp ${t2} ${ip} 9 typ host tcptype active generation 0 ufrag ZZHV network-id 1`
            // res = 'candidate:2594513701 1 udp 2122260223 192.168.50.235 54336 typ host generation 0 ufrag 5M7j network-id 1 '
            // res = 'candidate:1678768049 1 tcp 1518280447 192.168.50.235 9 typ host tcptype active generation 0 ufrag 5M7j network-id 1 '


            let rrr = proxy(new RTCIceCandidate(
                ip, res, "rtp", t1, t2, t3, 'tcp', null, null, 0, "0", 'active', 'host', randomStr
            ), 'candidate[new]');
            candidateGetTimes++
            return rrr;


        },
        enumerable: true, configurable: true
    },
    type: {
        value: 'icecandidate'
    },
    isTrusted: {
        value: true,
    },
    [Symbol.toStringTag]: {value: "RTCPeerConnectionIceEvent", writable: false, enumerable: false, configurable: true},

})
Object.defineProperties(MessageEvent.prototype, {
    data: {
        get() {
            v_console_log("  [*] MessageEvent -> data[get]", {});
            return {}
        }
    },
    [Symbol.toStringTag]: {value: "MessageEvent", writable: false, enumerable: false, configurable: true},
})

Object.defineProperties(UIEvent.prototype, {
    which: {
        get() {
            v_console_log("  [*] UIEvent -> which[get]", 91);
            return 91
        }
    },
    [Symbol.toStringTag]: {value: "UIEvent", writable: false, enumerable: false, configurable: true},
})


Object.defineProperties(HTMLIFrameElement.prototype, {
    id: {enumerable: true, configurable: true, writable: true},
    contentWindow: {value: window, enumerable: true, configurable: true, writable: true},
})
window.HTMLScriptElement = HTMLScriptElement
window.HTMLIFrameElement = HTMLIFrameElement
window.HTMLStyleElement = HTMLStyleElement
window.HTMLVideoElement = HTMLVideoElement

postMessage = v_saf(function postMessage() {
})
PushManager = v_saf(function PushManager() {
})
times = 0;
window.Event = Event;
window.devicePixelRatio = ENV.windowparams.devicepixelratio;

function v_getele(name, func) {
    if (name == "head" && func == "querySelector") {
        return v_new(HTMLHeadElement)
    }
    if (name == "head > title" && func == "querySelector") {
        return v_new(HTMLTitleElement)
    }
    if (name == "body" && func == "querySelector") {
        return v_new(HTMLBodyElement)
    }
    if (name == "base" && func == "querySelector") {
        return v_new(HTMLBaseElement)
    }
    if (name == "jb-app" && func == "querySelector") {
        return v_new(HTMLElement)
    }
    if (name == "svg" && func == "querySelector") {
        return v_new(SVGSVGElement)
    }
    if (name == "jtp-xsell-utils" && func == "getElementById") {
        return v_new(HTMLScriptElement)
    }
    if (name == "first-focus-fares-heading" && func == "getElementById") {
        return v_new(HTMLHeadingElement)
    }
    if (name == "jtp-xsell-default" && func == "getElementById") {
        return v_new(HTMLScriptElement)
    }
    if (name == "#jtp-packages" && func == "querySelector") {
        return v_new(HTMLDivElement)
    }
    if (name == "#vacations-cross-sell" && func == "querySelector") {
        return v_new(HTMLDivElement)
    }
    if (name == "html" && func == "querySelector") {
        return v_new(HTMLHtmlElement)
    }
    return null
}

function v_geteles(name, func) {
    if (name == "html" && func == "getElementsByTagName") {
        return [v_new(HTMLHtmlElement)]
    }
    if (name == "shouldRememberUser" && func == "getElementsByName") {
        return v_new(NodeList)
    }
    if (name == "script" && func == "getElementsByTagName") {
        return [v_new(HTMLScriptElement)]
    }
    if (name == "base" && func == "getElementsByTagName") {
        return [v_new(HTMLBaseElement)]
    }
    if (name == "script" && func == "getElementsByTagName") {
        return [v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement), v_new(HTMLScriptElement)]
    }
    if (name == "*" && func == "querySelectorAll") {
        return [v_new(HTMLHtmlElement, 'HTML'), v_new(HTMLHeadElement, 'HEAD'), v_new(HTMLMetaElement, 'META'), v_new(HTMLTitleElement, "TITLE"), v_new(HTMLMetaElement, 'META'), v_new(HTMLMetaElement, 'META'), v_new(HTMLScriptElement, 'SCRIPT')]
    }
    if (name == "style[ng-transition=\"resp-booking-airways\"]" && func == "querySelectorAll") {
        return [v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement), v_new(HTMLStyleElement)]
    }
    if (name == "cdk-live-announcer-element" && func == "getElementsByClassName") {
        return []
    }
    if (name == "#jtp-packages" && func == "querySelectorAll") {
        return [v_new(HTMLDivElement)]
    }
    if (name == "body" && func == "getElementsByTagName") {
        return [v_new(HTMLBodyElement)]
    }
    if (name == 'script[src^=chrome-extension][src$=prompt\\.js], script[src^=moz-extension][src$=prompt\\.js]' && func == 'querySelectorAll') {
        return v_new(NodeList)
    }
    return null
}

let _console = print


let events = {}
// window.Event = {
//     prototype:{
//         createEvent: function (type) {
//             return {
//                 "isTrusted": true,
//                 type: '',
//                 detail: '',
//                 initCustomEvent: function (type, canBubble, cancelable, detail) {
//                     this.type = type;
//                     this.detail = detail;
//                     return {type, canBubble, cancelable, detail}
//                 }
//             }
//         },
//     }
// }
Object.defineProperties(Event.prototype, {
    target: {
        get() {
            v_console_log("  [*] Event -> target[get]", {});
            return {}
        }
    },
    timeStamp: {
        get() {
            v_console_log("  [*] Event -> timeStamp[get]", 6122.799999713898);
            return Math.random() * 3000 + 5000
        }
    },
    type: {
        get() {
            v_console_log("  [*] Event -> type[get]", "blur");
            return "blur"
        }
    },
    defaultPrevented: {
        get() {
            v_console_log("  [*] Event -> defaultPrevented[get]", true);
            return true
        },
    },
    composedPath: {
        value: v_saf(function composedPath() {
            v_console_log("  [*] Event -> composedPath[func]", [].slice.call(arguments));
        }),
        writable: true, enumerable: true, configurable: true
    },
    stopPropagation: {
        value: v_saf(() => {
        }),
        writable: true, enumerable: true, configurable: true
    },
    preventDefault: {
        value: v_saf(() => {
        }),
        writable: true, enumerable: true, configurable: true
    },
    cancelBubble: {
        value: v_saf(() => {
        }),
        //     // get(){},
        //     // set(){},
    },
    stopImmediatePropagation: {
        value: v_saf(() => {
        }),
        writable: true, enumerable: true, configurable: true
    },
    NONE: {"value": 0, "writable": false, "enumerable": true, "configurable": false},
    CAPTURING_PHASE: {"value": 1, "writable": false, "enumerable": true, "configurable": false},
    AT_TARGET: {"value": 2, "writable": false, "enumerable": true, "configurable": false},
    BUBBLING_PHASE: {"value": 3, "writable": false, "enumerable": true, "configurable": false},
    [Symbol.toStringTag]: {value: "Event", writable: false, enumerable: false, configurable: true},
})


createPrototype = function (name, obj) {
    Object.assign(obj, {
        constructor: function () {
        },
        // name: name,
        prototype: {
            toString: function () {
                return `'function ${name}() { [native code] }'`
                // throw new TypeError('Illegal invocation')
            }
        },
        toString: function () {
            return `'function ${name}() { [native code] }'`
        }
    })
    // Object.defineProperty(obj.prototype, {
    //     [Symbol.toStringTag]: {value:name,writable:false,enumerable:false,configurable:true},
    //     prototype: {
    //         toString: function (){
    //             return `'function ${name}() { [native code] }'`
    //             // throw new TypeError('Illegal invocation')
    //         }
    //     },
    // })
    return obj

}


// for (let i = 0; i < O[47].length; i++) {
//     var t = O[47][i];
//
//
// }


PerformanceEntry = {
    name: 'PerformanceEntry',
    prototype: {}
}
Bluetooth = v_saf(function Bluetooth() {
})
BluetoothDevice = v_saf(function BluetoothDevice() {
    }
)
AWSCInner = {
    register: function () {
        // _console2('AWSCInner register', arguments)
    }
}
Element = v_saf(function Element() {

})


chrome = {
    loadTimes: function () {
    },
    csi: function () {
    },
}

MimeTypeArray = v_saf(function MimeTypeArray() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
    this[0] = v_new(MimeType);
    this[0].description = "Portable Document Format";
    this[0].enabledPlugin = {"0": {}};
    this[0].suffixes = "pdf";
    this[0].type = "application/pdf";
    this[1] = v_new(Plugin);
    this[1].description = "Portable Document Format";
    this[1].enabledPlugin = {"0": {}};
    this[1].suffixes = "pdf";
    this[1].type = "text/pdf";

})
Object.defineProperties(MimeTypeArray.prototype, {
    length: {
        get() {
            v_console_log("  [*] MimeTypeArray -> length[get]", 3);
            return 3
        }
    },
    [Symbol.toStringTag]: {value: "MimeTypeArray", writable: false, enumerable: false, configurable: true},
})

navigator = v_new(Navigator)


navigator = proxy(navigator, 'navigator')
location = v_new(Location)

// v_hook_href(location, "location", 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')
location.__proto__ = Location.prototype

DOMStringList = v_saf(function DOMStringList() {

})
var _hostname, _origin, _host, _protocol, _port, _pathname, _search, _hash;
Object.defineProperties(location, {
    ancestorOrigins: {
        get: v_saf(function ancestorOrigins() {
            return new DOMStringList()
        }),
        enumerable: true,
        configurable: false

    },
    href: {
        value: 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true',
        enumerable: true
    },
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
//          ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,hash,assign,reload,replace,toString
    // fragmentDirective: 'c',
    origin: {
        set: function (arg) {
            _origin = arg
        }, get: function () {
            return _origin
        }, enumerable: true
    },
    protocol: {
        set: function (arg) {
            _protocol = arg
        }, get: function () {
            return _protocol
        }, enumerable: true
    },
    host: {
        set: function (arg) {
            _hostname = arg
        }, get: function () {
            return _hostname
        }, enumerable: true
    },
    // hostname: {set: function(arg){_hostname = arg}, get:function(){return _hostname}, enumerable:true},
    // port: {set: function(arg){_port = arg}, get:function(){return _port}, enumerable:true},
    pathname: {
        set: function (arg) {
            _pathname = arg
        }, get: function () {
            return _pathname
        }, enumerable: true
    },
    search: {
        set: function (arg) {
            _pathname = arg
        }, get: function () {
            return _pathname
        }, enumerable: true
    },
    hash: {
        set: function (arg) {
            _hash = arg
        }, get: function () {
            return _hash
        }, enumerable: true
    },
    // todo
    hostname: {
        set: function (arg) {
            _hostname = arg
        }, get: function () {
            return _hostname
        }, enumerable: true
    },
    port: {
        set: function (arg) {
            _port = arg
        }, get: function () {
            return _port
        }, enumerable: true
    },
    // host: 'e',
    // hostname: 'f',
    // href: 'g',
    // origin: 'h',
    // pathname: 'i',
    // port: 'j',
    // protocol: 'k',
    assign: {
        value: v_saf(function assign() {

        }),
        enumerable: true,

    },
    reload: {
        value: v_saf(function reload() {

        }),
        enumerable: true,

    },
    replace: {
        value: v_saf(function replace() {

        }),
        enumerable: true,
    },
    toString: {
        value: v_saf(function toString() {
            return ''
        }),
        enumerable: true,

    },


})
// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
location.href = 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true'

function set_href(v, href) {
    href = href.trim()
    v_console_log(`  href[set]:`, JSON.stringify(href))
    if (href.startsWith("http://") || href.startsWith("https://")) {/*ok*/
    } else if (href.startsWith("//")) {
        href = (v.protocol ? v.protocol : 'http:') + href
    } else {
        href = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "") + '/' + ((href[0] == '/') ? href.slice(1) : href)
    }
    var a = href.match(/([^:]+:)\/\/([^/:?#]+):?(\d+)?([^?#]*)?(\?[^#]*)?(#.*)?/);
    v.protocol = a[1] ? a[1] : "";
    v.host = a[2] ? a[2] : "";
    v.port = a[3] ? a[3] : "";
    v.pathname = a[4] ? a[4] : "";
    v.search = a[5] ? a[5] : "";
    v.hash = a[6] ? a[6] : "";
    v.hostname = v.host;
    v.origin = v.protocol + "//" + v.host + (v.port ? ":" + v.port : "");
}

// 'valueOf,ancestorOrigins,href,origin,protocol,host,hostname,port,pathname,search,hash,assign,reload,replace,toString'
set_href(location, 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')
window.location = location
// window.location = new Proxy(location, {
//     get(target, p, receiver) {
//         print('locaiton get', p)
//         return Reflect.get(target, p, receiver)
//     },
//     has(target, p) {
//         let res = Reflect.has(target, p);
//         print('locaiton has', p, res)
//         return res;
//     },
//     getOwnPropertyDescriptor(target, p) {
//         let res = Reflect.getOwnPropertyDescriptor(target, p);
//
//         print('locaiton getOwnPropertyDescriptor', p, res)
//         return res;
//     }
// })

origin = location.origin
self = window;
globalThis = window

let performanceNow = _random() * 1000 + 1000
window.performance = {
    now: function () {
        //todo
        // return Number('1693903208580'.slice(8))
        // return 1186.7042
        return performanceNow + _random() * 100
    },
    "timeOrigin": Date.now() + 0.1,
    "timing": {
        "connectStart": Date.now(),
        "navigationStart": Date.now() - 1,
        "secureConnectionStart": 0,
        "fetchStart": Date.now(),
        "domContentLoadedEventStart": 0,
        "responseStart": Date.now() + 2,
        "domInteractive": 0,
        "domainLookupEnd": Date.now(),
        "responseEnd": Date.now() + 2,
        "redirectStart": 0,
        "requestStart": Date.now() + 1,
        "unloadEventEnd": Date.now() + 3,
        "unloadEventStart": Date.now() + 3,
        "domLoading": Date.now() + 7,
        "domComplete": 0,
        "domainLookupStart": Date.now(),
        "loadEventStart": 0,
        "domContentLoadedEventEnd": 0,
        "loadEventEnd": 0,
        "redirectEnd": 0,
        "connectEnd": Date.now()
    },
    "navigation": {
        "type": 1,
        "redirectCount": 0
    },
    getEntriesByName: function getEntriesByName() {
    },
    memory: {
        jsHeapSizeLimit: 4294705152,
        totalJSHeapSize: parseInt(11528626 * _random() + 11528626),
        usedJSHeapSize: parseInt(9311362 * _random() + 9311362),
    }
}
// window.Proxy = window
window.BigInt = BigInt
_hasOwnProperty = Object.hasOwnProperty
// Object.hasOwnProperty = v_saf(function (a){
//     let res = _hasOwnProperty.call(this, a);
//     print(' hasOwnProperty', a, res)
//
//     return res;
// })
// window.hasOwnProperty = function hasOwnProperty() {
//     _console2('window hasOwnProperty', arguments)
//     return window[arguments['0']]
// }
DOMTokenList = v_saf(function DOMTokenList() {

})
window.addEventListener = v_saf(function (type, callback) {
    _console2('addEventListener111', type, callback)
    events[type] = callback;
    v_events[type] = callback;
    if (type === 'addEventListener11') {
        callback(v_new(Event))
    }
    return true;
})

window.removeEventListener = v_saf(function removeEventListener(type, callback) {
    delete events[type]
    // callback()
    return true
})
// Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor() {
//
// }

screens = {
    availHeight: parseInt(scale * ENV.screenparams.availheight),
    availLeft: parseInt(scale * ENV.screenparams.availleft),
    availTop: parseInt(scale * ENV.screenparams.availtop),
    availWidth: parseInt(scale * ENV.screenparams.availwidth),
    colorDepth: parseInt(scale * ENV.screenparams.colordepth),
    height: parseInt(scale * ENV.screenparams.height),
    orientation: {angle: 0, type: 'landscape-primary', onchange: null},
    pixelDepth: parseInt(scale * ENV.screenparams.pixeldepth),
    width: parseInt(scale * ENV.screenparams.width)
}
// {"height":1080,"width":1920,"availHeight":1055,"availWidth":1920,"pixelDepth":24,"colorDepth":24}
// todo
// if (sid === '8ffdff7b995c8ad51d902ff0') {
//
//     screens.height = 1080
//     screens.width = 1920
//     screens.availHeight = 1055
//     screens.availWidth = 1920
//     screens.pixelDepth = 24
//     screens.colorDepth = 24
// navis.hardwareconcurrency = 10
// navis.platform = 'MacIntel'
// }
window.screen = v_new(Screen)
window.screenY = ENV.windowparams.screeny
window.screenX = ENV.windowparams.screenx
// window.screen = aaProxy(window.screen, 'screen')


window.isSecureContext = true
window.innerWidth = parseInt(scale * ENV.windowparams.innerwidth);
window.outerWidth = parseInt(scale * ENV.windowparams.outerwidth);
window.innerHeight = parseInt(scale * ENV.windowparams.innerheight);
window.outerHeight = parseInt(scale * ENV.windowparams.outerheight);
window.screenLeft = parseInt(scale * ENV.windowparams.screenleft) || 15;
window.screenTop = parseInt(scale * ENV.windowparams.screeny) || 120;
window.screenX = parseInt(scale * ENV.windowparams.screenx)
window.screenY = parseInt(scale * ENV.windowparams.screeny)
// todo
// if (sid === '8ffdff7b995c8ad51d902ff0') {
// // {"innerHeight":853,"innerWidth":1920,"outerHeight":970,"outerWidth":1920,"screenX":null,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
// //     {"innerHeight":938,"innerWidth":1920,"outerHeight":1055,"outerWidth":1920,"screenX":null,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
// // {"innerHeight":null,"innerWidth":1920,"outerHeight":1055,"outerWidth":1920,"screenX":1728,"screenY":25,"isSecureContext":true,"devicePixelRatio":1}
//
//     window.innerHeight = 976
//     window.innerWidth = 1865
//     window.outerHeight = 1055
//     window.outerWidth = 1920
//     window.screenX = 1728
//     window.screenY = 25
//     window.devicePixelRatio = 1
// }

top = window
window.top = top;

htmlEle = {
    appendChild: function () {
        // _console2('appendChild', arguments);
        return {}
    },

    removeChild: function () {
        // _console2('removeChild', arguments);

    },
    clientHeight: 0,
    clientWidth: 1904
}
let allNodes = [];
var childNodes = []

function _createElement(name) {
    print('_createElement name ', name)

    var htmlmap = {
        "HTMLElement": ["abbr", "address", "article", "aside", "b", "bdi", "bdo", "cite", "code", "dd", "dfn", "dt", "em", "figcaption", "figure", "footer", "header", "hgroup", "i", "kbd", "main", "mark", "nav", "noscript", "rp", "rt", "ruby", "s", "samp", "section", "small", "strong", "sub", "summary", "sup", "u", "var", "wbr"],
        "HTMLCanvasElement": ["canvas"],
        "HTMLAnchorElement": ["a"],
        "HTMLImageElement": ["img"],
        "HTMLIFrameElement": ["iframe"],
        "HTMLMediaElement": [],
        "HTMLHeadElement": ["head"],
        "HTMLBodyElement": ["body"],
        "HTMLUnknownElement": [],
        'HTMLScriptElement': ['script'],
        'HTMLVideoElement': ['video'],
        'HTMLStyleElement': ['style']
    }
    var ret, htmlmapkeys = Object.keys(htmlmap)
    name = name.toLocaleLowerCase()
    for (var i = 0; i < htmlmapkeys.length; i++) {
        if (htmlmap[htmlmapkeys[i]].indexOf(name) != -1) {
            ret = v_new(window[htmlmapkeys[i]])
            // if (htmlmapkeys[i] == "canvas"){
            // ret = dtavm.proxy(ret, htmlmapkeys[i])
            // }
            break
        }
    }
    if (!ret) {
        ret = v_new(HTMLUnknownElement);
        throw TypeError("为定义的类型")
    }
    // if (typeof CSSStyleDeclaration != 'undefined') {
    //     ret.v_style = v_new(CSSStyleDeclaration)
    // }
    // ret.v_tagName = name.toUpperCase()
    allNodes.push(ret)
    print('_createElement name ', name, ret)
    if (name === 'canvas') {
        // debugger;
    }
    return proxy(ret, name)
}

document = {
    all: HTMLAllCollection,
    characterSet: 'UTF-8',
    charset: 'UTF-8',
    compatMode: 'CSS1Compat',
    images: [],
    // createElementNS: v_saf(function createElementNS(){
    //     return _createElement.apply(this, arguments)
    // }),
    constructor: function () {

    },
    cookie: '',

    [Symbol.toPrimitive](hint) {
        if (hint === 'number') {
            return 42;
        }
        return this;
    },
    toString: function () {
        return '[object HTMLDocument]'
    },

    location: location,
    getElementsByTagName: function () {
        _console2(arguments);
        return v_geteles(...arguments, 'getElementsByTagName')
    },
    referrer: '',
    // createElement: v_saf(function createElement(name) {
    //     return _createElement(name)
    // }),
    getElementById: function getElementById(valId) {
        // if (valId === 'multiFormSubmit') return null;
        let res = v_getele(valId, 'getElementById')
        print('use getElementById', valId, res)
        return res
        // return null
        // return {
        //     name: valId + " ele"
        // }
    },
    currentScript: {nonce: ''},
    hasFocus: function hasFocus() {
        return false
    },
    documentElement: htmlEle,
    readyState: 'complete',
    visibilityState: 'visible',

    // addEventListener: function addEventListener(type, callback) {
    //     _console2('document2 addEventListener', arguments)
    //     events[type] = callback
    //     if (type == 'DOMContentLoaded'){
    //         _console2('callDOMContentLoaded' , callback )
    //         callback()
    //     }
    //     // debugger;
    //
    // },
    createEvent: function (type) {
        _console2('createEvent111', type)
        return {
            "isTrusted": true,
            type: '',
            detail: '',
            initCustomEvent: function (type, canBubble, cancelable, detail) {
                _console2('initCustomEvent', type, detail)
                this.type = type;
                this.detail = detail;
                // return {type, canBubble, cancelable, detail}
            }
        }
    },
    querySelector: function querySelector() {
        _console2('document querySelector', arguments)
        // if (arguments['0'] === '#baxia-dialog-content') debugger;
        // return null;
        return {
            name: 'querySelector',
            bind: function () {
                _console2('document querySelector bind', arguments)

            }
        }
    },
    hidden: false

}

// _stri = JSON.stringify;
// JSON.stringify = v_saf(function stringify() {
//     print('stringify', arguments)
//     return _stri.apply(this, arguments)
// })
// document = v_new(Document)
CustomEvent = v_saf(function CustomEvent() {
});
_inherits(CustomEvent, EventTarget)
Object.defineProperties(CustomEvent.prototype, {
    "isTrusted": {
        get() {
            return true
        }
    },
    type: {value: ''},
    detail: {
        get() {
            return this.d
        },

    },
    initCustomEvent: function (type, canBubble, cancelable, detail) {
        this.type = type
        this.detail = detail
        return {type, canBubble, cancelable, detail}
    }
})
Object.defineProperties(Document.prototype, {

    createEvent: {
        value: v_saf(function createEvent() {
            v_console_log("  [*] Document -> createEvent[func]", [].slice.call(arguments));
            if (arguments[0] == 'CustomEvent') {
                return CustomEvent()
            }
        })
    },
    createElement: {
        value: v_saf(function createElement(name) {
            return _createElement(name, 'createElement')
        }),
        configurable: true,
        enumerable: true,
        writable: true
    },
    createElementNS: {
        value: v_saf(function createElementNS(name) {
            return _createElement(name, 'createElementNS')
        }),
        configurable: true,
        enumerable: true,
        writable: true
    },
    featurePolicy: {
        get() {
            //todo
            v_console_log("  [*] Document -> featurePolicy[get]", {});
            return new FeaturePolicy()
        }
    },
    visibilityState: {
        get() {
            v_console_log("  [*] Document -> visibilityState[get]", "visible");
            return "visible"
        }
    },
    onreadystatechange: {"enumerable": true, "configurable": true},
    onmouseenter: {"enumerable": true, "configurable": true},
    onmouseleave: {"enumerable": true, "configurable": true},
    [Symbol.toStringTag]: {value: "Document", writable: false, enumerable: false, configurable: true},
})
Object.defineProperty(document, Symbol.toStringTag, {
    value: 'HTMLDocument'
})
Object.defineProperty(document, Symbol.iterator, {
    value: function f() {

    }
})
// Object.defineProperty(document,constructor, {
//     value: 'HTMLDocument'
// })
document.addEventListener = function (type, callback) {
    _console2('addEventListener11', type, callback)
    events[type] = callback;
    v_events[type] = callback;

    // if (type === 'DOMContentLoaded' || type === 'wheel'|| type === 'visibilitychange'){
    //     callback({
    //         "isTrusted": true,
    //         type:type,
    //         target: {
    //             visibilityState: 'visible'
    //         }
    //     })
    // }
    return true
}
window.addEventListener = function (type, callback) {
    _console2('addEventListener12', type, callback)
    events[type] = callback;
    // if (type === 'DOMContentLoaded' || type == 'visibilitychange') {
    //     callback({
    //         "isTrusted": true,
    //         type: type
    //     })
    // }
    return true
}
addEventListener = window.addEventListener
// window.document = dtavm.proxy(document, 'document');
// Object.assign(window.document, document)
// Date = dtavm.proxy(Date)
window.toString = function () {
    return '[object Window]'
}


window.HTMLAnchorElement = HTMLAnchorElement
//     [Symbol.toStringTag]: function (){
//         return 'HTMLAnchorElement'
//     },
//     [Symbol.iterator]: function (){
//     }
// })
window.HTMLFormElement = v_saf(function HTMLFormElement() {
})
_inherits(window.HTMLFormElement, HTMLElement)
Object.defineProperties(window.HTMLFormElement.prototype, {
    [Symbol.toStringTag]: {
        value: 'HTMLFormElement',
        [Symbol.iterator]: {
            value: function () {
            }
        }
    },
    submit: {
        value: v_saf(() => {
        }),
        configurable: true, writable: false
    }
})
window.CustomEvent = CustomEvent
Object.defineProperties(window.CustomEvent, {
    detail: {},
    constructor: {
        value: function () {
        },
        writable: true, enumerable: false, configurable: true
    },
    [Symbol.iterator]: {
        value: function () {
        }
    },
    [Symbol.toStringTag]: {
        value: function () {

        }
    }
})

// Object.defineProperties(window.HTMLAnchorElement.prototype, {
//     href: {
//         get: function (){},
//         set: function (){},
//          enumerable: true, configurable: true
//     }
// })
// Object.defineProperties(window.HTMLFormElement.prototype, {
//     submit: {
//         value: function (){},
//         "writable": true,
//         "enumerable": true,
//         "configurable": true
//     },
//     constructor: {
//         value: function (){},
//         "writable": true,
//         "enumerable": false,
//         "configurable": true
//     }
// })
// navigator = dtavm.proxy(navigator, 'navigator');


window.Math = Math

let storage = {
    items: {
        // "FTzyeq12rr": "A4AOsm6KAQAAAGUULhl44Mv6c339of4pv5Njb9E9PmrdowVXJ3JKD9u7mODTAXL3RNj6K21wfMBeCOfvosJeCA==",
        // "FTzyeq12rr": "A49NNm6KAQAANCsxBbeG4r6XWuaUdfwmMSe6urV1M5tSCTU-xWEH_ZqUzSS-AXL3RNj6K21wfMBeCOfvosJeCA==",
        // "FTzyeq12rr": "A76x_HOKAQAAeQnrfCam7e5nJhCItdNV2ab9APm5Bh9QD_nPoeUjQgDFVXR-AXL3RNj6K21wfMBeCOfvosJeCA==",
        // "FTzyeq12rr": "A41Q_HiKAQAACKjUIixZBY2Bbu-SU6TdFNxfZDRB-XKYxPlYnMeRk9AK9lrkAUFL3fX6K21wobReCOfvosJeCA==",
        // "FTzyeq12rr": "A182CWuKAQAACfHrGQLisI_229uAWZCUITEfxrVtSFThIjHNuh5titWbTGwIAcJokljURuIXFooAAAAAAAAAAA==",
        // "FTzyeq12rr": "A1Cxkn6KAQAABrBpcNpkODhlt_Ij8b2Ma-2d5L0S2rRC-PANYJINcFpgRO4SAcJoklgXThZ2wH9eCOfvosJeCA==",
        // "FTzyeq12rr": "A76x_HOKAQAAeQnrfCam7e5nJhCItdNV2ab9APm5Bh9QD_nPoeUjQgDFVXR-AXL3RNj6K21wfMBeCOfvosJeCA==",
        "FTzyeq12rr": "A8mCTWONAQAAW_GF-b9QIAqYNavZpH9yWf7a16tiVaTasEPlIb5USmKwZoG5AVnVpg0XTuHJwH9eCOfvosJeCA==",
    },
    setItem: function (name, value) {
        this.items[name] = value
    },
    getItem: function (name, value) {
        return this.items[name]
    },
    removeItem: function (name) {
        delete this.items[name]
    }

}

// if (_process.argv[4]){
//     storage.setItem('FTzyeq12rr', _process.argv[4])
// }
function dispatchEvent(event) {
    _console2('dispatchEvent', event)
    if (event && event.type in events) {
        events[event.type](event)
    }
    try {
        event.instrumented = v_saf(function instrumented() {
            v_console_log(" instrumented  call")
        })
    } catch (e) {

    }
    return true

}

function v_init_document() {
    Document.prototype.getElementById = v_saf(function getElementById(name) {
        var r = v_getele(name, 'getElementById');
        v_console_log('  [*] Document -> getElementById', name, r);
        return r
    })
    Document.prototype.querySelector = v_saf(function querySelector(name) {
        var r = v_getele(name, 'querySelector');
        v_console_log('  [*] Document -> querySelector', name, r);
        return r
    })
    Document.prototype.getElementsByClassName = v_saf(function getElementsByClassName(name) {
        var r = v_geteles(name, 'getElementsByClassName');
        v_console_log('  [*] Document -> getElementsByClassName', name, r);
        return r
    })
    Document.prototype.getElementsByName = v_saf(function getElementsByName(name) {
        var r = v_geteles(name, 'getElementsByName');
        v_console_log('  [*] Document -> getElementsByName', name, r);
        return r
    })
    Document.prototype.getElementsByTagName = v_saf(function getElementsByTagName(name) {
        var r = v_geteles(name, 'getElementsByTagName');
        v_console_log('  [*] Document -> getElementsByTagName', name, r);
        return r
    })
    Document.prototype.getElementsByTagNameNS = v_saf(function getElementsByTagNameNS(name) {
        var r = v_geteles(name, 'getElementsByTagNameNS');
        v_console_log('  [*] Document -> getElementsByTagNameNS', name, r);
        return r
    })
    Document.prototype.querySelectorAll = v_saf(function querySelectorAll(name) {
        var r = v_geteles(name, 'querySelectorAll');
        v_console_log('  [*] Document -> querySelectorAll', name, r);
        return r
    })
    var v_head = v_new(HTMLHeadElement)
    var v_body = v_new(HTMLBodyElement)
    Object.defineProperties(Document.prototype, {
        head: {
            get() {
                v_console_log("  [*] Document -> head[get]", v_head);
                return v_head
            }
        },
        body: {
            get() {
                v_console_log("  [*] Document -> body[get]", v_body);

                return proxy(v_body, 'doc.body')
            }
        },
    })
}

v_init_document();
v_init_event_target()
window.dispatchEvent = dispatchEvent;
// _funcHasOwnprop = Function.prototype.hasOwnProperty
// Function.prototype.hasOwnProperty = function (){
//     print('Function.prototype.hasOwnProperty', arguments)
//     if (arguments[0] === 'value')return false;
//     return _funcHasOwnprop.apply(this, arguments)
// }


window.Function = Function;
window.Object = Object;
window.Array = Array;
window.Date = Date;
window.String = String;
window.RegExp = RegExp;
window.Float32Array = Float32Array;
window.Float64Array = Float64Array;
window.Int32Array = Int32Array;
window.Reflect = Reflect;
window.Uint8Array = Uint8Array;
window.ArrayBuffer = ArrayBuffer;
window.Int8Array = Int8Array;
window.isNaN = isNaN;
window.parseInt = parseInt;
window.parseFloat = parseFloat;
window.encodeURI = encodeURI;
window.encodeURIComponent = encodeURIComponent;
window.decodeURI = decodeURI;
window.decodeURIComponent = decodeURIComponent;
window.Number = Number;
window.Uint8ClampedArray = Uint8ClampedArray;
window.Int16Array = Int16Array;
window.Uint16Array = Uint16Array;
window.Map = Map;
window.Set = Set;
window.WeakMap = WeakMap;
window.WeakSet = WeakSet;
window.Buffer = undefined

Animation = v_saf(function Animation() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Animation, Node)
Comment = v_saf(function Comment() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Comment, Node)
DOMMatrixReadOnly = v_saf(function DOMMatrixReadOnly() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
MediaQueryList = v_saf(function MediaQueryList() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(MediaQueryList, EventTarget)
let medias = [];

Object.defineProperties(MediaQueryList.prototype, {
    addListener: {
        addListener() {
            v_console_log("  [*] MediaQueryList -> addListener[get]", {});
            return {}
        }
    },
    removeListener: {
        removeListener() {
            v_console_log("  [*] MediaQueryList -> removeListener[get]", {});
            return {}
        }
    },
    // matches: {"value":0,"writable":true,"enumerable":true,"configurable":false},
    matches: {
        get() {
            medias.push(this.type[0]);
            // return _random() > 0.5 ? true: false
            let t = window.ENV.matchmedias[this.type[0]];
            if (t === undefined) {
                t = false;
            }
            v_console_log("  [*] MediaQueryList -> matches[get]", this.type[0], t);

            return t;
        }
    },

    media: {"value": 1, "writable": true, "enumerable": true, "configurable": false},
    onchange: {"value": 2, "writable": true, "enumerable": true, "configurable": false},
})
DOMParser = v_saf(function DOMParser() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
FileReader = v_saf(function FileReader() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Audio = v_saf(function Audio() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Option = v_saf(function Option() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
IntersectionObserver = v_saf(function IntersectionObserver() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
MediaStream = v_saf(function MediaStream() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Path2D = v_saf(function Path2D() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
Text = v_saf(function Text() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
XMLSerializer = v_saf(function XMLSerializer() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
PublicKeyCredential = v_saf(function PublicKeyCredential() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
AuthenticatorAssertionResponse = v_saf(function AuthenticatorAssertionResponse() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
AuthenticatorAttestationResponse = v_saf(function AuthenticatorAttestationResponse() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
AuthenticatorResponse = v_saf(function AuthenticatorResponse() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
XMLDocument = v_saf(function XMLDocument() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
DOMPoint = v_saf(function DOMPoint() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
DOMPointReadOnly = v_saf(function DOMPointReadOnly() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
External = v_saf(function External() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)
mozRTCPeerConnection = v_saf(function mozRTCPeerConnection() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
});
_inherits(Element, Node)

window.URL = class URL {
    constructor() {
    }
}
window.URL = proxy(window.URL, 'URL')
window.URL.createObjectURL = function () {
    print('createObjectURL', arguments)

    return proxy({
        blob: arguments[0],
        href: 'https://www.southwest.com/',
        origin: 'https://www.southwest.com/',
        protocol: 'https',


    }, 'URL')
}
document.__proto__ = HTMLDocument.prototype
window.document = document
window.Animation = Animation;
window.Worker = proxy(Worker, 'Worker')
window.URL = URL;
window.WebGLRenderingContext = WebGLRenderingContext;
window.HTMLCanvasElement = HTMLCanvasElement;
window.UIEvent = UIEvent;
window.clearInterval = clearInterval;
window.setInterval = setInterval
window.XMLDocument = XMLDocument;
window.crypto = crypto
window.DOMPoint = DOMPoint;
window.DOMPointReadOnly = DOMPointReadOnly;
window.External = External;
window.Blob = Blob;
window.Comment = Comment;
window.Document = Document;
window.DOMException = DOMException;
window.DOMMatrixReadOnly = DOMMatrixReadOnly;
window.RTCPeerConnection = RTCPeerConnection;
window.DOMParser = DOMParser;
window.FileReader = FileReader;
window.FormData = FormData;
window.Audio = Audio;
window.Image = Image;
window.Option = Option;
window.IntersectionObserver = IntersectionObserver;
window.MediaStream = MediaStream;
window.MessageChannel = MessageChannel;
window.Path2D = Path2D;
window.PerformanceObserver = PerformanceObserver;
window.ReadableStream = ReadableStream;
window.Text = Text;
window.TextDecoderStream = TextDecoderStream;
window.TextEncoderStream = TextEncoderStream;
window.TransformStream = TransformStream;
window.URLSearchParams = URLSearchParams;
window.XMLHttpRequest = XMLHttpRequest;
window.XMLSerializer = XMLSerializer;
window.PublicKeyCredential = PublicKeyCredential;
window.AuthenticatorAssertionResponse = AuthenticatorAssertionResponse;
window.AuthenticatorAttestationResponse = AuthenticatorAttestationResponse;
window.AuthenticatorResponse = AuthenticatorResponse;

window.pageYOffset = ENV.windowparams.pageyoffset || 0
external = v_new(External)
// external.__proto__ = External.prototype
// window.external = external
window.console = console;
// localStorage = dtavm.proxy(storage, 'localStorage');
localStorage = storage;
window.localStorage = localStorage
// sessionStorage = dtavm.proxy(storage, 'sessionStorage');
sessionStorage = storage;
window.Boolean = Boolean;
window.sessionStorage = sessionStorage;
window.fetch = v_saf(fetch);
window.navigator = navigator;
History = v_saf(function History() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
BarProp = v_saf(function BarProp() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;
})
Object.defineProperties(BarProp.prototype, {
    visible: {
        get() {
            return true;
        }
    }
})
Object.defineProperties(History.prototype, {
    replaceState: {
        value: v_saf(function replaceState() {
            v_console_log("  [*] History -> replaceState[func]", [].slice.call(arguments));
        })
    },
    length: {
        get() {
            v_console_log("  [*] History -> length[get]", 3);
            if (sid === '8ffdff7b995c8ad51d902ff0') {
                return 4
            }
            return 17;
            return parseInt(Math.random() * 10 + 2);
        }
    },
    [Symbol.toStringTag]: {value: "History", writable: false, enumerable: false, configurable: true},
})

// window.SharedArrayBuffer = SharedArrayBuffer
window.WebAssembly = WebAssembly
window.imageDatasList = []
// window.window = window;
// Object.defineProperty(window, [Symbol.toPrimitive], {
//     value:function (){
//         return NaN
// }
// })

history = v_new(History)
// window = dtavm.proxy(window,"window"); //代理器代理之后，会创建一个新对象
window.self = window;
window.toolbar = v_new(BarProp)
window.locationbar = v_new(BarProp)
window.history = history
_setTimeout = setTimeout
timesIds = 0;
window.setTimeout = setTimeout
window.setTimeout = v_saf(function setTimeout(func, delay) {
    // print(func, delay)
    // if (delay==0)func()
    // func()
    try {
        // print(func)
        if (delay == 0 && timeout) {
            return _setTimeout.call(this, func, delay)
        }
        // func()
    } catch (e) {
    }
    // _setTimeout.call(this, func, 1)
    timesIds++;
    return timesIds;
})

v_hook_href(HTMLAnchorElement.prototype, 'HTMLAnchorElement', 'https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true')

window.Reflect = Reflect
window.Error = Error;
window.JSON = JSON;
// window.crypto = crypto
window.Uint32Array = Uint32Array
window.window = window;
// window = dtavm.proxy(window, 'window')
// window.__proto__ = Window
window.undefined = undefined;
window.isFinite = isFinite;
window.unescape = unescape;
window.TypeError = TypeError;
window.Infinity = Infinity;

window.getComputedStyle = v_saf(function getComputedStyle(element) {
    v_console_log(' getComputedStyle ', element)
});
window.matchMedia = function matchMedia(type) {
    let t = v_new(MediaQueryList)
    t.type = arguments
    return t;
}
window.clearTimeout = clearTimeout
window.window = window;

// window = dtavm.proxy(window, 'window')

this == global; //global就是全局上下文代理对象；

this != window; // this 是global 但是 window是代理器，所以这里是 !=;

_console2 = function () {
};
// _console2 = print;


print('-------------------------------------')
print('当前times', times)
print(events)
print(v_events)
// window.debug = true
startx = parseInt(1000 * _random())
starty = parseInt(1000 * _random())
endx = parseInt(1000 * _random())
endy = parseInt(1000 * _random())
// window.debug = true
// window.mouse_move(startx,starty,endx,endy)
// window.debug = false

// window.mouse_click
// events['mousemove'](window.mouse_move())

// debug = true;
// setInterval(function () {
//     if (randomEvent){
//         window.mouse_move(startx,starty,endx,endy)
//
//     }
//
//     var xhr = new XMLHttpRequest();
//     xhr.open('POST', "https://jbrest.southwest.com/lfs-rwb/outboundLFS", false);
//     xhr.send("{\"tripType\":\"oneWay\",\"from\":\"ZLA\",\"to\":\"NAS\",\"depart\":\"2023-04-11\",\"cabin\":\"economy\",\"refundable\":false,\"dates\":{\"before\":\"3\",\"after\":\"3\"},\"pax\":{\"ADT\":1,\"CHD\":0,\"INF\":0,\"UNN\":0},\"redempoint\":false,\"pointsBreakup\":{\"option\":\"\",\"value\":0},\"isMultiCity\":false}")
//     xhr.setRequestHeader('user-agent', ENV.navigatorparams.useragent)
//     print(JSON.stringify(xhr.headers))
//     _process.exit(0)
// }, 1000)


console.timeEnd("处理完毕，耗时");

//
// const express = require('express')
// const app = express()
//
// app.get('/', (req, res) => {
//     print('当前times', times)
//
//     var xhr = new XMLHttpRequest();
//     xhr.open('POST', "https://jbrest.southwest.com/lfs-rwb/outboundLFS", false);
//     xhr.send("")
//     xhr.setRequestHeader('user-agent', navis.userAgent)
//     // print(xhr.headers)
//     print('结束times', times)
//     res.send(JSON.stringify(xhr.headers))
//
// })
// const port = 3001
//
// app.listen(port, () => {
//     print(`Example app listening on port ${port}`)
// })

let reProxy = function (tt, name) {
    return new Proxy(tt, {
        get(target, p, receiver) {
            let res = Reflect.get(target, p, receiver);
            if (p !== 'debug' && p !== 'Object') {
                print(`${name} get`, p, typeof res)
            }
            // if (p === 'offsetHeight'){
            //   debugger;
            // }
            if (p === 'exec') {
                return v_saf(function (args) {
                    print(`${name} exec`, args)

                    return /{\s*\[\s*native\s+code\s*]\s*}\s*$/.exec(args)
                })
            }
            // print(Reflect.get(target, '_cf_chl_ctx', receiver))

            if (!['_registeredHandlers', 'window', '_currentEvent', 'debug', '_eventListenerss', 'top', 'prototype'].includes(p) && res && typeof res === 'object' && typeof p !== 'symbol') {
                return proxy(res, p)
            }
            return res;
        },
        // getPrototypeOf(target) {
        //
        // },

        set(target, p, newValue, receiver) {
            print(`${name} set`, p, typeof newValue)

            return Reflect.set(target, p, newValue, receiver)
        }
    })
};

function def(data, key, v) {
    if (Array.isArray(data.value[key])) {
        data.value[key][1] = v

    } else {
        data.value[key] = [[], v]

    }
    return data
}

// _getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
// Object.getOwnPropertyDescriptor = function (p, v){
//     let res = _getOwnPropertyDescriptor(p,v)
//     print('_getOwnPropertyDescriptor', v, res)
//     return res;
// }
// let setProtoOf = Object.setPrototypeOf
//
// Object.setPrototypeOf = function (a,b){
//     print1('setPrototypeOf',a,b)
//     return setProtoOf(a,b)
// }
 _getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors;
    Object.getOwnPropertyDescriptors = v_saf(function (a) {
        let res = _getOwnPropertyDescriptors(a);
        print('getOwnPropertyDescriptors', a, res)
        return res;

    })
_getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
    Object.getOwnPropertyDescriptor = v_saf(function (a, b) {
        let res = _getOwnPropertyDescriptor(a,b);
        print('getOwnPropertyDescriptor',b, a, res)
        return res;

    })
_defin = Object.defineProperty;
Object.defineProperty = v_saf(function (p, v, d) {
    // print('define',  v, d)
    if (v === 'positionalSignals') {
        if (Array.isArray(d.value) && d.value.length > 50) {
            let res = [];
            d.value.forEach((e, i) => {
                if (e && e.length == 2) {
                    res.push(i + '==' + e[1].length + '=>')
                    res.push(e[1] + '')
                } else {
                    res.push(i + '==0=>iii')
                }

            })
            print([].slice.call(res).join('iii'))
        }
    }
    if (v === 'outerArgs') {
        // debugger;
        d.value = undefined;
    }
    // if (v === 'stack' && Object.keys(d).length === 1) {
    //     // debugger;
    //     d.get = undefined
    //     // throw TypeError('asdasd')
    // }
    if ((v === 'c' || v === 'd' || v === 'b') && d.value === false) {
        d.value = true;
        // debugger;
    }
    return _defin(p, v, d)
})

_join = Array.prototype.join;
let assertTimes = 0;
Array.prototype.join = v_saf(function join(s) {
    console.log('join', this.length, this, s)
    // if (typeof this[0] !== 'number'){
    //     this.sort(sortRandom)
    //
    // }
    // if (this.indexOf("TypeError: Cannot read properties of null (reading '0')") > -1){
    //     this.sort(sortRandom)
    //     return _join.call(this, s)
    // }
    if (this.indexOf('abs') > -1) {
        // this.sort(sortRandom)
        if (window.ENV.mathprops) {
            // window.ENV.mathprops = window.ENV.mathprops.sort(sortRandom)
            return _join.call(window.ENV.mathprops, s)

        }
        console.log('absresult', _join.call(window.ENV.mathprops, s))
        return _join.call(this, s)
    }
    if (this.indexOf('canvas') > -1) {
        let res = [
            "canvas",
            "globalAlpha",
            "globalCompositeOperation",
            "filter",
            "imageSmoothingEnabled",
            "imageSmoothingQuality",
            "strokeStyle",
            "fillStyle",
            "shadowOffsetX",
            "shadowOffsetY",
            "shadowBlur",
            "shadowColor",
            "lineWidth",
            "lineCap",
            "lineJoin",
            "miterLimit",
            "lineDashOffset",
            "font",
            "textAlign",
            "textBaseline",
            "direction",
            "fontKerning",
            "fontStretch",
            "fontVariantCaps",
            "letterSpacing",
            "textRendering",
            "wordSpacing",
            "clip",
            "createConicGradient",
            "createImageData",
            "createLinearGradient",
            "createPattern",
            "createRadialGradient",
            "drawFocusIfNeeded",
            "drawImage",
            "fill",
            "fillText",
            "getContextAttributes",
            "getImageData",
            "getLineDash",
            "getTransform",
            "isContextLost",
            "isPointInPath",
            "isPointInStroke",
            "measureText",
            "putImageData",
            "reset",
            "roundRect",
            "save",
            "scale",
            "setLineDash",
            "setTransform",
            "stroke",
            "strokeText",
            "transform",
            "translate",
            "arc",
            "arcTo",
            "beginPath",
            "bezierCurveTo",
            "clearRect",
            "closePath",
            "ellipse",
            "fillRect",
            "lineTo",
            "moveTo",
            "quadraticCurveTo",
            "rect",
            "resetTransform",
            "restore",
            "rotate",
            "strokeRect"
        ];
        // res.sort(sortRandom)
        return _join.call(res, s)
    }
    if (this.indexOf('getDetails') > -1) {
        return _join.call([
            "isInstalled",
            "getDetails",
            "getIsInstalled",
            "installState",
            "runningState",
            "InstallState",
            "RunningState"
        ], s)
    }
    if (this.indexOf('productSub') > -1) {
        let res = [
            "vendorSub",
            "productSub",
            "vendor",
            "maxTouchPoints",
            "scheduling",
            "userActivation",
            "doNotTrack",
            "geolocation",
            "connection",
            "plugins",
            "mimeTypes",
            "pdfViewerEnabled",
            "webkitTemporaryStorage",
            "webkitPersistentStorage",
            "hardwareConcurrency",
            "cookieEnabled",
            "appCodeName",
            "appName",
            "appVersion",
            "platform",
            "product",
            "userAgent",
            "language",
            "languages",
            "onLine",
            "webdriver",
            "getGamepads",
            "javaEnabled",
            "sendBeacon",
            "vibrate",
            "bluetooth",
            "clipboard",
            "credentials",
            "keyboard",
            "managed",
            "mediaDevices",
            "storage",
            "serviceWorker",
            "virtualKeyboard",
            "wakeLock",
            "deviceMemory",
            "ink",
            "hid",
            "locks",
            "mediaCapabilities",
            "mediaSession",
            "permissions",
            "presentation",
            "serial",
            "gpu",
            "usb",
            "windowControlsOverlay",
            "xr",
            "userAgentData",
            "adAuctionComponents",
            "runAdAuction",
            "canLoadAdAuctionFencedFrame",
            "clearAppBadge",
            "getBattery",
            "getUserMedia",
            "requestMIDIAccess",
            "requestMediaKeySystemAccess",
            "setAppBadge",
            "webkitGetUserMedia",
            "deprecatedReplaceInURN",
            "deprecatedURNToURL",
            "getInterestGroupAdAuctionData",
            "joinAdInterestGroup",
            "leaveAdInterestGroup",
            "updateAdInterestGroups",
            "getInstalledRelatedApps",
            "registerProtocolHandler",
            "unregisterProtocolHandler"
        ]
        // res.sort(sortRandom)
        return _join.call(res, s)
    }
    if (this.indexOf('assert') > -1) {
        let r = [
    "assert",
    "clear",
    "context",
    "count",
    "countReset",
    "createTask",
    "debug",
    "dir",
    "dirxml",
    "error",
    "group",
    "groupCollapsed",
    "groupEnd",
    "info",
    "log",
    "memory",
    "profile",
    "profileEnd",
    "table",
    "time",
    "timeEnd",
    "timeLog",
    "timeStamp",
    "trace",
    "warn"
];
        // window.ENV.consoleprops = window.ENV.consoleprops.sort(sortRandom)
        // r = r.sort(sortRandom)
        if (window.ENV.consoleprops && assertTimes === 0) {

            assertTimes += 1;
            print1('assertTimes', assertTimes, _join.call(window.ENV.consoleprops, s))
            // return _join.call(window.ENV.consoleprops, s)
            return _join.call(r, s);

        } else {
            // window.ENV.consoleprops = window.ENV.consoleprops.sort(sortRandom)
            //
            r = [
    "debug",
    "error",
    "info",
    "log",
    "warn",
    "dir",
    "dirxml",
    "table",
    "trace",
    "group",
    "groupCollapsed",
    "groupEnd",
    "clear",
    "count",
    "countReset",
    "assert",
    "profile",
    "profileEnd",
    "time",
    "timeLog",
    "timeEnd",
    "timeStamp",
    "context",
    "createTask",
    "memory"
]
            //            return _join.call(window.ENV.consoleprops, s)
            let res = _join.call(r, s)
            print1('assertTimes', assertTimes, res)
            return res;
        }
        return _join.call([
            "assert",
            "clear",
            "context",
            "count",
            "countReset",
            "createTask",
            "debug",
            "dir",
            "dirxml",
            "error",
            "group",
            "groupCollapsed",
            "groupEnd",
            "info",
            "log",
            "memory",
            "profile",
            "profileEnd",
            "table",
            "time",
            "timeEnd",
            "timeLog",
            "timeStamp",
            "trace",
            "warn"
        ], s)
    }
    if (this.length === 438) {
        // this.sort(sortRandom)
        return _join.call(this, s)
    }
    if (this.indexOf('{"foo\\u0000bar":42}') > -1) {
        return _join.call([
    "{\"foo\\u0000bar\":42}",
    "INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3",
    "INVALID:SyntaxError: Unexpected token '�', \"�{}\" is not valid JSON",
    "INVALID:SyntaxError: Unexpected token '�', \"��[\u0000\u0000�\u0000\u0000]\u0000\" is not valid JSON"
], s)
        return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3 (line 1 column 4)INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[\x00\x00�\x00\x00]\x00" is not valid JSON`
        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3 (line 1 column 4)INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`
        let strs = [`{"foo\\u0000bar":42}INVALID:SyntaxError: Unexpected token t in JSON at position 3INVALID:SyntaxError: Unexpected token � in JSON at position 0INVALID:SyntaxError: Unexpected token � in JSON at position 0`, `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`, `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[`, `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3 (line 1 column 4)INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`]
        let res = strs[parseInt(_random() * strs.length)];
        console.log('jsonres', res)
        // let strs = res.split('');
        // strs.sort(sortRandom)
        // res = strs.join('')
        // console.log('assertresult', res)
        return res

        return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`
        // 家里的
        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`

        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[`
        // this.sort(sortRandom)

        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[\x00\x00�\x00\x00]\x00" is not valid JSON`
        // return
        // return `{"foo\\u0000bar":42}INVALID:SyntaxError: Expected ',' or ']' after array element in JSON at position 3INVALID:SyntaxError: Unexpected token '�', "�{}" is not valid JSONINVALID:SyntaxError: Unexpected token '�', "��[�]" is not valid JSON`
    }
    return _join.call(this, s)
})


_getOwnPropertyNames = Object.getOwnPropertyNames;
Object.getOwnPropertyNames = v_saf(function (a) {
    let res = _getOwnPropertyNames(a);
    print('getOwnPropertyNames', a, res)

    if (res.length >= 180 && res.indexOf('Function') > -1) {
        if (ENV.windowprops) {
            // ENV.windowprops = ENV.windowprops.slice(0, ENV.windowprops -  parseInt(10 * _random()))
            return ENV.windowprops.slice(0,1124)
        }
        print('getWindow')
        res = [
            "Object",
            "Function",
            "Array",
            "Number",
            "parseFloat",
            "parseInt",
            "Infinity",
            "NaN",
            "undefined",
            "Boolean",
            "String",
            "Symbol",
            "Date",
            "Promise",
            "RegExp",
            "Error",
            "AggregateError",
            "EvalError",
            "RangeError",
            "ReferenceError",
            "SyntaxError",
            "TypeError",
            "URIError",
            "globalThis",
            "JSON",
            "Math",
            "Intl",
            "ArrayBuffer",
            "Uint8Array",
            "Int8Array",
            "Uint16Array",
            "Int16Array",
            "Uint32Array",
            "Int32Array",
            "Float32Array",
            "Float64Array",
            "Uint8ClampedArray",
            "BigUint64Array",
            "BigInt64Array",
            "DataView",
            "Map",
            "BigInt",
            "Set",
            "WeakMap",
            "WeakSet",
            "Proxy",
            "Reflect",
            "FinalizationRegistry",
            "WeakRef",
            "decodeURI",
            "decodeURIComponent",
            "encodeURI",
            "encodeURIComponent",
            "escape",
            "unescape",
            "eval",
            "isFinite",
            "isNaN",
            "console",
            "Option",
            "Image",
            "Audio",
            "webkitURL",
            "webkitRTCPeerConnection",
            "webkitMediaStream",
            "WebKitMutationObserver",
            "WebKitCSSMatrix",
            "XPathResult",
            "XPathExpression",
            "XPathEvaluator",
            "XMLSerializer",
            "XMLHttpRequestUpload",
            "XMLHttpRequestEventTarget",
            "XMLHttpRequest",
            "XMLDocument",
            "WritableStreamDefaultWriter",
            "WritableStreamDefaultController",
            "WritableStream",
            "Worker",
            "Window",
            "WheelEvent",
            "WebSocket",
            "WebGLVertexArrayObject",
            "WebGLUniformLocation",
            "WebGLTransformFeedback",
            "WebGLTexture",
            "WebGLSync",
            "WebGLShaderPrecisionFormat",
            "WebGLShader",
            "WebGLSampler",
            "WebGLRenderingContext",
            "WebGLRenderbuffer",
            "WebGLQuery",
            "WebGLProgram",
            "WebGLFramebuffer",
            "WebGLContextEvent",
            "WebGLBuffer",
            "WebGLActiveInfo",
            "WebGL2RenderingContext",
            "WaveShaperNode",
            "VisualViewport",
            "ValidityState",
            "VTTCue",
            "UserActivation",
            "URLSearchParams",
            "URLPattern",
            "URL",
            "UIEvent",
            "TrustedTypePolicyFactory",
            "TrustedTypePolicy",
            "TrustedScriptURL",
            "TrustedScript",
            "TrustedHTML",
            "TreeWalker",
            "TransitionEvent",
            "TransformStreamDefaultController",
            "TransformStream",
            "TrackEvent",
            "TouchList",
            "TouchEvent",
            "Touch",
            "TimeRanges",
            "TextTrackList",
            "TextTrackCueList",
            "TextTrackCue",
            "TextTrack",
            "TextMetrics",
            "TextEvent",
            "TextEncoderStream",
            "TextEncoder",
            "TextDecoderStream",
            "TextDecoder",
            "Text",
            "TaskSignal",
            "TaskPriorityChangeEvent",
            "TaskController",
            "TaskAttributionTiming",
            "SyncManager",
            "SubmitEvent",
            "StyleSheetList",
            "StyleSheet",
            "StylePropertyMapReadOnly",
            "StylePropertyMap",
            "StorageEvent",
            "Storage",
            "StereoPannerNode",
            "StaticRange",
            "ShadowRoot",
            "Selection",
            "SecurityPolicyViolationEvent",
            "ScriptProcessorNode",
            "ScreenOrientation",
            "Screen",
            "Scheduling",
            "Scheduler",
            "SVGViewElement",
            "SVGUseElement",
            "SVGUnitTypes",
            "SVGTransformList",
            "SVGTransform",
            "SVGTitleElement",
            "SVGTextPositioningElement",
            "SVGTextPathElement",
            "SVGTextElement",
            "SVGTextContentElement",
            "SVGTSpanElement",
            "SVGSymbolElement",
            "SVGSwitchElement",
            "SVGStyleElement",
            "SVGStringList",
            "SVGStopElement",
            "SVGSetElement",
            "SVGScriptElement",
            "SVGSVGElement",
            "SVGRectElement",
            "SVGRect",
            "SVGRadialGradientElement",
            "SVGPreserveAspectRatio",
            "SVGPolylineElement",
            "SVGPolygonElement",
            "SVGPointList",
            "SVGPoint",
            "SVGPatternElement",
            "SVGPathElement",
            "SVGNumberList",
            "SVGNumber",
            "SVGMetadataElement",
            "SVGMatrix",
            "SVGMaskElement",
            "SVGMarkerElement",
            "SVGMPathElement",
            "SVGLinearGradientElement",
            "SVGLineElement",
            "SVGLengthList",
            "SVGLength",
            "SVGImageElement",
            "SVGGraphicsElement",
            "SVGGradientElement",
            "SVGGeometryElement",
            "SVGGElement",
            "SVGForeignObjectElement",
            "SVGFilterElement",
            "SVGFETurbulenceElement",
            "SVGFETileElement",
            "SVGFESpotLightElement",
            "SVGFESpecularLightingElement",
            "SVGFEPointLightElement",
            "SVGFEOffsetElement",
            "SVGFEMorphologyElement",
            "SVGFEMergeNodeElement",
            "SVGFEMergeElement",
            "SVGFEImageElement",
            "SVGFEGaussianBlurElement",
            "SVGFEFuncRElement",
            "SVGFEFuncGElement",
            "SVGFEFuncBElement",
            "SVGFEFuncAElement",
            "SVGFEFloodElement",
            "SVGFEDropShadowElement",
            "SVGFEDistantLightElement",
            "SVGFEDisplacementMapElement",
            "SVGFEDiffuseLightingElement",
            "SVGFEConvolveMatrixElement",
            "SVGFECompositeElement",
            "SVGFEComponentTransferElement",
            "SVGFEColorMatrixElement",
            "SVGFEBlendElement",
            "SVGEllipseElement",
            "SVGElement",
            "SVGDescElement",
            "SVGDefsElement",
            "SVGComponentTransferFunctionElement",
            "SVGClipPathElement",
            "SVGCircleElement",
            "SVGAnimationElement",
            "SVGAnimatedTransformList",
            "SVGAnimatedString",
            "SVGAnimatedRect",
            "SVGAnimatedPreserveAspectRatio",
            "SVGAnimatedNumberList",
            "SVGAnimatedNumber",
            "SVGAnimatedLengthList",
            "SVGAnimatedLength",
            "SVGAnimatedInteger",
            "SVGAnimatedEnumeration",
            "SVGAnimatedBoolean",
            "SVGAnimatedAngle",
            "SVGAnimateTransformElement",
            "SVGAnimateMotionElement",
            "SVGAnimateElement",
            "SVGAngle",
            "SVGAElement",
            "Response",
            "ResizeObserverSize",
            "ResizeObserverEntry",
            "ResizeObserver",
            "Request",
            "ReportingObserver",
            "ReadableStreamDefaultReader",
            "ReadableStreamDefaultController",
            "ReadableStreamBYOBRequest",
            "ReadableStreamBYOBReader",
            "ReadableStream",
            "ReadableByteStreamController",
            "Range",
            "RadioNodeList",
            "RTCTrackEvent",
            "RTCStatsReport",
            "RTCSessionDescription",
            "RTCSctpTransport",
            "RTCRtpTransceiver",
            "RTCRtpSender",
            "RTCRtpReceiver",
            "RTCPeerConnectionIceEvent",
            "RTCPeerConnectionIceErrorEvent",
            "RTCPeerConnection",
            "RTCIceCandidate",
            "RTCErrorEvent",
            "RTCError",
            "RTCEncodedVideoFrame",
            "RTCEncodedAudioFrame",
            "RTCDtlsTransport",
            "RTCDataChannelEvent",
            "RTCDataChannel",
            "RTCDTMFToneChangeEvent",
            "RTCDTMFSender",
            "RTCCertificate",
            "PromiseRejectionEvent",
            "ProgressEvent",
            "ProcessingInstruction",
            "PopStateEvent",
            "PointerEvent",
            "PluginArray",
            "Plugin",
            "PeriodicWave",
            "PerformanceTiming",
            "PerformanceServerTiming",
            "PerformanceResourceTiming",
            "PerformancePaintTiming",
            "PerformanceObserverEntryList",
            "PerformanceObserver",
            "PerformanceNavigationTiming",
            "PerformanceNavigation",
            "PerformanceMeasure",
            "PerformanceMark",
            "PerformanceLongTaskTiming",
            "PerformanceEventTiming",
            "PerformanceEntry",
            "PerformanceElementTiming",
            "Performance",
            "Path2D",
            "PannerNode",
            "PageTransitionEvent",
            "OverconstrainedError",
            "OscillatorNode",
            "OffscreenCanvasRenderingContext2D",
            "OffscreenCanvas",
            "OfflineAudioContext",
            "OfflineAudioCompletionEvent",
            "NodeList",
            "NodeIterator",
            "NodeFilter",
            "Node",
            "NetworkInformation",
            "Navigator",
            "NamedNodeMap",
            "MutationRecord",
            "MutationObserver",
            "MutationEvent",
            "MouseEvent",
            "MimeTypeArray",
            "MimeType",
            "MessagePort",
            "MessageEvent",
            "MessageChannel",
            "MediaStreamTrackProcessor",
            "MediaStreamTrackEvent",
            "MediaStreamEvent",
            "MediaStreamAudioSourceNode",
            "MediaStreamAudioDestinationNode",
            "MediaStream",
            "MediaRecorder",
            "MediaQueryListEvent",
            "MediaQueryList",
            "MediaList",
            "MediaError",
            "MediaEncryptedEvent",
            "MediaElementAudioSourceNode",
            "MediaCapabilities",
            "Location",
            "LayoutShiftAttribution",
            "LayoutShift",
            "LargestContentfulPaint",
            "KeyframeEffect",
            "KeyboardEvent",
            "IntersectionObserverEntry",
            "IntersectionObserver",
            "InputEvent",
            "InputDeviceInfo",
            "InputDeviceCapabilities",
            "ImageData",
            "ImageCapture",
            "ImageBitmapRenderingContext",
            "ImageBitmap",
            "IdleDeadline",
            "IIRFilterNode",
            "IDBVersionChangeEvent",
            "IDBTransaction",
            "IDBRequest",
            "IDBOpenDBRequest",
            "IDBObjectStore",
            "IDBKeyRange",
            "IDBIndex",
            "IDBFactory",
            "IDBDatabase",
            "IDBCursorWithValue",
            "IDBCursor",
            "History",
            "Headers",
            "HashChangeEvent",
            "HTMLVideoElement",
            "HTMLUnknownElement",
            "HTMLUListElement",
            "HTMLTrackElement",
            "HTMLTitleElement",
            "HTMLTimeElement",
            "HTMLTextAreaElement",
            "HTMLTemplateElement",
            "HTMLTableSectionElement",
            "HTMLTableRowElement",
            "HTMLTableElement",
            "HTMLTableColElement",
            "HTMLTableCellElement",
            "HTMLTableCaptionElement",
            "HTMLStyleElement",
            "HTMLSpanElement",
            "HTMLSourceElement",
            "HTMLSlotElement",
            "HTMLSelectElement",
            "HTMLScriptElement",
            "HTMLQuoteElement",
            "HTMLProgressElement",
            "HTMLPreElement",
            "HTMLPictureElement",
            "HTMLParamElement",
            "HTMLParagraphElement",
            "HTMLOutputElement",
            "HTMLOptionsCollection",
            "HTMLOptionElement",
            "HTMLOptGroupElement",
            "HTMLObjectElement",
            "HTMLOListElement",
            "HTMLModElement",
            "HTMLMeterElement",
            "HTMLMetaElement",
            "HTMLMenuElement",
            "HTMLMediaElement",
            "HTMLMarqueeElement",
            "HTMLMapElement",
            "HTMLLinkElement",
            "HTMLLegendElement",
            "HTMLLabelElement",
            "HTMLLIElement",
            "HTMLInputElement",
            "HTMLImageElement",
            "HTMLIFrameElement",
            "HTMLHtmlElement",
            "HTMLHeadingElement",
            "HTMLHeadElement",
            "HTMLHRElement",
            "HTMLFrameSetElement",
            "HTMLFrameElement",
            "HTMLFormElement",
            "HTMLFormControlsCollection",
            "HTMLFontElement",
            "HTMLFieldSetElement",
            "HTMLEmbedElement",
            "HTMLElement",
            "HTMLDocument",
            "HTMLDivElement",
            "HTMLDirectoryElement",
            "HTMLDialogElement",
            "HTMLDetailsElement",
            "HTMLDataListElement",
            "HTMLDataElement",
            "HTMLDListElement",
            "HTMLCollection",
            "HTMLCanvasElement",
            "HTMLButtonElement",
            "HTMLBodyElement",
            "HTMLBaseElement",
            "HTMLBRElement",
            "HTMLAudioElement",
            "HTMLAreaElement",
            "HTMLAnchorElement",
            "HTMLAllCollection",
            "GeolocationPositionError",
            "GeolocationPosition",
            "GeolocationCoordinates",
            "Geolocation",
            "GamepadHapticActuator",
            "GamepadEvent",
            "GamepadButton",
            "Gamepad",
            "GainNode",
            "FormDataEvent",
            "FormData",
            "FontFaceSetLoadEvent",
            "FontFace",
            "FocusEvent",
            "FileReader",
            "FileList",
            "File",
            "FeaturePolicy",
            "External",
            "EventTarget",
            "EventSource",
            "EventCounts",
            "Event",
            "ErrorEvent",
            "ElementInternals",
            "Element",
            "DynamicsCompressorNode",
            "DragEvent",
            "DocumentType",
            "DocumentFragment",
            "Document",
            "DelayNode",
            "DecompressionStream",
            "DataTransferItemList",
            "DataTransferItem",
            "DataTransfer",
            "DOMTokenList",
            "DOMStringMap",
            "DOMStringList",
            "DOMRectReadOnly",
            "DOMRectList",
            "DOMRect",
            "DOMQuad",
            "DOMPointReadOnly",
            "DOMPoint",
            "DOMParser",
            "DOMMatrixReadOnly",
            "DOMMatrix",
            "DOMImplementation",
            "DOMException",
            "DOMError",
            "CustomStateSet",
            "CustomEvent",
            "CustomElementRegistry",
            "Crypto",
            "CountQueuingStrategy",
            "ConvolverNode",
            "ConstantSourceNode",
            "CompressionStream",
            "CompositionEvent",
            "Comment",
            "CloseEvent",
            "ClipboardEvent",
            "CharacterData",
            "ChannelSplitterNode",
            "ChannelMergerNode",
            "CanvasRenderingContext2D",
            "CanvasPattern",
            "CanvasGradient",
            "CanvasFilter",
            "CanvasCaptureMediaStreamTrack",
            "CSSVariableReferenceValue",
            "CSSUnparsedValue",
            "CSSUnitValue",
            "CSSTranslate",
            "CSSTransformValue",
            "CSSTransformComponent",
            "CSSSupportsRule",
            "CSSStyleValue",
            "CSSStyleSheet",
            "CSSStyleRule",
            "CSSStyleDeclaration",
            "CSSSkewY",
            "CSSSkewX",
            "CSSSkew",
            "CSSScale",
            "CSSRuleList",
            "CSSRule",
            "CSSRotate",
            "CSSPropertyRule",
            "CSSPositionValue",
            "CSSPerspective",
            "CSSPageRule",
            "CSSNumericValue",
            "CSSNumericArray",
            "CSSNamespaceRule",
            "CSSMediaRule",
            "CSSMatrixComponent",
            "CSSMathValue",
            "CSSMathSum",
            "CSSMathProduct",
            "CSSMathNegate",
            "CSSMathMin",
            "CSSMathMax",
            "CSSMathInvert",
            "CSSMathClamp",
            "CSSLayerStatementRule",
            "CSSLayerBlockRule",
            "CSSKeywordValue",
            "CSSKeyframesRule",
            "CSSKeyframeRule",
            "CSSImportRule",
            "CSSImageValue",
            "CSSGroupingRule",
            "CSSFontFaceRule",
            "CSSCounterStyleRule",
            "CSSConditionRule",
            "CSS",
            "CDATASection",
            "ByteLengthQueuingStrategy",
            "BroadcastChannel",
            "BlobEvent",
            "Blob",
            "BiquadFilterNode",
            "BeforeUnloadEvent",
            "BeforeInstallPromptEvent",
            "BaseAudioContext",
            "BarProp",
            "AudioWorkletNode",
            "AudioScheduledSourceNode",
            "AudioProcessingEvent",
            "AudioParamMap",
            "AudioParam",
            "AudioNode",
            "AudioListener",
            "AudioDestinationNode",
            "AudioContext",
            "AudioBufferSourceNode",
            "AudioBuffer",
            "Attr",
            "AnimationEvent",
            "AnimationEffect",
            "Animation",
            "AnalyserNode",
            "AbstractRange",
            "AbortSignal",
            "AbortController",
            "window",
            "self",
            "document",
            "name",
            "location",
            "customElements",
            "history",
            "locationbar",
            "menubar",
            "personalbar",
            "scrollbars",
            "statusbar",
            "toolbar",
            "status",
            "closed",
            "frames",
            "length",
            "top",
            "opener",
            "parent",
            "frameElement",
            "navigator",
            "origin",
            "external",
            "screen",
            "innerWidth",
            "innerHeight",
            "scrollX",
            "pageXOffset",
            "scrollY",
            "pageYOffset",
            "visualViewport",
            "screenX",
            "screenY",
            "outerWidth",
            "outerHeight",
            "devicePixelRatio",
            "event",
            "clientInformation",
            "offscreenBuffering",
            "screenLeft",
            "screenTop",
            "defaultStatus",
            "defaultstatus",
            "styleMedia",
            "onsearch",
            "isSecureContext",
            "trustedTypes",
            "performance",
            "onappinstalled",
            "onbeforeinstallprompt",
            "crypto",
            "indexedDB",
            "webkitStorageInfo",
            "sessionStorage",
            "localStorage",
            "onbeforexrselect",
            "onabort",
            "onbeforeinput",
            "onblur",
            "oncancel",
            "oncanplay",
            "oncanplaythrough",
            "onchange",
            "onclick",
            "onclose",
            "oncontextlost",
            "oncontextmenu",
            "oncontextrestored",
            "oncuechange",
            "ondblclick",
            "ondrag",
            "ondragend",
            "ondragenter",
            "ondragleave",
            "ondragover",
            "ondragstart",
            "ondrop",
            "ondurationchange",
            "onemptied",
            "onended",
            "onerror",
            "onfocus",
            "onformdata",
            "oninput",
            "oninvalid",
            "onkeydown",
            "onkeypress",
            "onkeyup",
            "onload",
            "onloadeddata",
            "onloadedmetadata",
            "onloadstart",
            "onmousedown",
            "onmouseenter",
            "onmouseleave",
            "onmousemove",
            "onmouseout",
            "onmouseover",
            "onmouseup",
            "onmousewheel",
            "onpause",
            "onplay",
            "onplaying",
            "onprogress",
            "onratechange",
            "onreset",
            "onresize",
            "onscroll",
            "onsecuritypolicyviolation",
            "onseeked",
            "onseeking",
            "onselect",
            "onslotchange",
            "onstalled",
            "onsubmit",
            "onsuspend",
            "ontimeupdate",
            "ontoggle",
            "onvolumechange",
            "onwaiting",
            "onwebkitanimationend",
            "onwebkitanimationiteration",
            "onwebkitanimationstart",
            "onwebkittransitionend",
            "onwheel",
            "onauxclick",
            "ongotpointercapture",
            "onlostpointercapture",
            "onpointerdown",
            "onpointermove",
            "onpointerrawupdate",
            "onpointerup",
            "onpointercancel",
            "onpointerover",
            "onpointerout",
            "onpointerenter",
            "onpointerleave",
            "onselectstart",
            "onselectionchange",
            "onanimationend",
            "onanimationiteration",
            "onanimationstart",
            "ontransitionrun",
            "ontransitionstart",
            "ontransitionend",
            "ontransitioncancel",
            "onafterprint",
            "onbeforeprint",
            "onbeforeunload",
            "onhashchange",
            "onlanguagechange",
            "onmessage",
            "onmessageerror",
            "onoffline",
            "ononline",
            "onpagehide",
            "onpageshow",
            "onpopstate",
            "onrejectionhandled",
            "onstorage",
            "onunhandledrejection",
            "onunload",
            "crossOriginIsolated",
            "scheduler",
            "alert",
            "atob",
            "blur",
            "btoa",
            "cancelAnimationFrame",
            "cancelIdleCallback",
            "captureEvents",
            "clearInterval",
            "clearTimeout",
            "close",
            "confirm",
            "createImageBitmap",
            "fetch",
            "find",
            "focus",
            "getComputedStyle",
            "getSelection",
            "matchMedia",
            "moveBy",
            "moveTo",
            "open",
            "postMessage",
            "print",
            "prompt",
            "queueMicrotask",
            "releaseEvents",
            "reportError",
            "requestAnimationFrame",
            "requestIdleCallback",
            "resizeBy",
            "resizeTo",
            "scroll",
            "scrollBy",
            "scrollTo",
            "setInterval",
            "setTimeout",
            "stop",
            "structuredClone",
            "webkitCancelAnimationFrame",
            "webkitRequestAnimationFrame",
            "Atomics",
            "chrome",
            "WebAssembly",
            "caches",
            "cookieStore",
            "ondevicemotion",
            "ondeviceorientation",
            "ondeviceorientationabsolute",
            "launchQueue",
            "onbeforematch",
            "AbsoluteOrientationSensor",
            "Accelerometer",
            "AudioWorklet",
            "Cache",
            "CacheStorage",
            "Clipboard",
            "ClipboardItem",
            "CookieChangeEvent",
            "CookieStore",
            "CookieStoreManager",
            "Credential",
            "CredentialsContainer",
            "CryptoKey",
            "DeviceMotionEvent",
            "DeviceMotionEventAcceleration",
            "DeviceMotionEventRotationRate",
            "DeviceOrientationEvent",
            "FederatedCredential",
            "Gyroscope",
            "Keyboard",
            "KeyboardLayoutMap",
            "LinearAccelerationSensor",
            "Lock",
            "LockManager",
            "MIDIAccess",
            "MIDIConnectionEvent",
            "MIDIInput",
            "MIDIInputMap",
            "MIDIMessageEvent",
            "MIDIOutput",
            "MIDIOutputMap",
            "MIDIPort",
            "MediaDeviceInfo",
            "MediaDevices",
            "MediaKeyMessageEvent",
            "MediaKeySession",
            "MediaKeyStatusMap",
            "MediaKeySystemAccess",
            "MediaKeys",
            "NavigationPreloadManager",
            "NavigatorManagedData",
            "OrientationSensor",
            "PasswordCredential",
            "RTCIceTransport",
            "RelativeOrientationSensor",
            "Sensor",
            "SensorErrorEvent",
            "ServiceWorker",
            "ServiceWorkerContainer",
            "ServiceWorkerRegistration",
            "StorageManager",
            "SubtleCrypto",
            "WebTransport",
            "WebTransportBidirectionalStream",
            "WebTransportDatagramDuplexStream",
            "WebTransportError",
            "Worklet",
            "XRDOMOverlayState",
            "XRLayer",
            "XRWebGLBinding",
            "AudioData",
            "EncodedAudioChunk",
            "EncodedVideoChunk",
            "ImageTrack",
            "ImageTrackList",
            "VideoColorSpace",
            "VideoFrame",
            "AudioDecoder",
            "AudioEncoder",
            "ImageDecoder",
            "VideoDecoder",
            "VideoEncoder",
            "AuthenticatorAssertionResponse",
            "AuthenticatorAttestationResponse",
            "AuthenticatorResponse",
            "PublicKeyCredential",
            "BarcodeDetector",
            "BatteryManager",
            "Bluetooth",
            "BluetoothCharacteristicProperties",
            "BluetoothDevice",
            "BluetoothRemoteGATTCharacteristic",
            "BluetoothRemoteGATTDescriptor",
            "BluetoothRemoteGATTServer",
            "BluetoothRemoteGATTService",
            "BrowserCaptureMediaStreamTrack",
            "CropTarget",
            "EyeDropper",
            "FileSystemDirectoryHandle",
            "FileSystemFileHandle",
            "FileSystemHandle",
            "FileSystemWritableFileStream",
            "FontData",
            "FragmentDirective",
            "GravitySensor",
            "HID",
            "HIDConnectionEvent",
            "HIDDevice",
            "HIDInputReportEvent",
            "IdleDetector",
            "LaunchParams",
            "LaunchQueue",
            "OTPCredential",
            "PaymentAddress",
            "PaymentRequest",
            "PaymentResponse",
            "PaymentMethodChangeEvent",
            "Presentation",
            "PresentationAvailability",
            "PresentationConnection",
            "PresentationConnectionAvailableEvent",
            "PresentationConnectionCloseEvent",
            "PresentationConnectionList",
            "PresentationReceiver",
            "PresentationRequest",
            "Profiler",
            "Sanitizer",
            "ScreenDetailed",
            "ScreenDetails",
            "Serial",
            "SerialPort",
            "USB",
            "USBAlternateInterface",
            "USBConfiguration",
            "USBConnectionEvent",
            "USBDevice",
            "USBEndpoint",
            "USBInTransferResult",
            "USBInterface",
            "USBIsochronousInTransferPacket",
            "USBIsochronousInTransferResult",
            "USBIsochronousOutTransferPacket",
            "USBIsochronousOutTransferResult",
            "USBOutTransferResult",
            "VirtualKeyboard",
            "WakeLock",
            "WakeLockSentinel",
            "WindowControlsOverlay",
            "WindowControlsOverlayGeometryChangeEvent",
            "XRAnchor",
            "XRAnchorSet",
            "XRBoundedReferenceSpace",
            "XRFrame",
            "XRInputSource",
            "XRInputSourceArray",
            "XRInputSourceEvent",
            "XRInputSourcesChangeEvent",
            "XRPose",
            "XRReferenceSpace",
            "XRReferenceSpaceEvent",
            "XRRenderState",
            "XRRigidTransform",
            "XRSession",
            "XRSessionEvent",
            "XRSpace",
            "XRSystem",
            "XRView",
            "XRViewerPose",
            "XRViewport",
            "XRWebGLLayer",
            "XRCPUDepthInformation",
            "XRDepthInformation",
            "XRWebGLDepthInformation",
            "XRHitTestResult",
            "XRHitTestSource",
            "XRRay",
            "XRTransientInputHitTestResult",
            "XRTransientInputHitTestSource",
            "XRLightEstimate",
            "XRLightProbe",
            "getScreenDetails",
            "queryLocalFonts",
            "showDirectoryPicker",
            "showOpenFilePicker",
            "showSaveFilePicker",
            "originAgentCluster",
            "navigation",
            "speechSynthesis",
            "AnimationPlaybackEvent",
            "AnimationTimeline",
            "CSSAnimation",
            "CSSTransition",
            "DocumentTimeline",
            "BackgroundFetchManager",
            "BackgroundFetchRecord",
            "BackgroundFetchRegistration",
            "BluetoothUUID",
            "CSSContainerRule",
            "CSSFontPaletteValuesRule",
            "DelegatedInkTrailPresenter",
            "Ink",
            "Highlight",
            "HighlightRegistry",
            "MediaMetadata",
            "MediaSession",
            "MediaSource",
            "SourceBuffer",
            "SourceBufferList",
            "MediaStreamTrack",
            "MediaStreamTrackGenerator",
            "NavigateEvent",
            "Navigation",
            "NavigationCurrentEntryChangeEvent",
            "NavigationDestination",
            "NavigationHistoryEntry",
            "NavigationTransition",
            "NavigatorUAData",
            "Notification",
            "PaymentInstruments",
            "PaymentManager",
            "PaymentRequestUpdateEvent",
            "PeriodicSyncManager",
            "PermissionStatus",
            "Permissions",
            "PictureInPictureEvent",
            "PictureInPictureWindow",
            "PushManager",
            "PushSubscription",
            "PushSubscriptionOptions",
            "RemotePlayback",
            "SharedWorker",
            "SpeechSynthesisErrorEvent",
            "SpeechSynthesisEvent",
            "SpeechSynthesisUtterance",
            "VideoPlaybackQuality",
            "VirtualKeyboardGeometryChangeEvent",
            "XSLTProcessor",
            "webkitSpeechGrammar",
            "webkitSpeechGrammarList",
            "webkitSpeechRecognition",
            "webkitSpeechRecognitionError",
            "webkitSpeechRecognitionEvent",
            "openDatabase",
            "webkitRequestFileSystem",
            "webkitResolveLocalFileSystemURL",
        ];
    }
    return res;

})
let aa = false;


// 44 funcs start
let funcs = [
    'XRHitTestResult',
    'crossOriginIsolated',
    'AbstractRange',
    'RTCDtlsTransport',
    'BarcodeDetector',
    'EventCounts',
    'SharedArrayBuffer',
    'VisualViewport',
    'FinalizationRegistry',
    'WritableStreamDefaultController',
    'HTMLMenuItemElement',
    'HID',
    'CSSCounterStyleRule',
    'FileSystemDirectoryHandle',
    'PerformancePaintTiming',
    'onbeforeinput',
    'ApplicationCache',
    'AudioData',
    'AudioTrack',
    'DOMRectList',
    'FragmentDirective',
    'Sanitizer',
    'onselectionchange',
    'onsecuritypolicyviolation',
    'structuredClone',
    'XRHand',
    'Lock',
    'EyeDropper',
    'CSSLayerBlockRule',
    'ServiceWorkerContainer',
    'IdleDetector',
    'HTMLDialogElement',
    'CSSFontPaletteValuesRule',
    'CSSMathClamp',
    'NavigationPreloadManager',
    'LaunchParams',
    'content',
    'IDBFileHandle',
    'BrowserCaptureMediaStreamTrack',
    'FontData',
    'ReadableByteStreamController',
    'OffscreenCanvas',
    'MediaSourceHandle',
    'XRCamera'
]
let funcProperties = {};
if (ENV.funcs && ENV.funcs.length > 0) {
    for (let i = 0; i < funcs.length; i++) {
        let funcName = funcs[i]
        let hasFunc = ENV.funcs[i] === 1;
        // hasFunc = _random() > 0.5
        if (funcName === 'XRHitTestResult')debugger;
        if (hasFunc) {
            funcProperties[funcName] = {
                enumerable: true,
                value: funcName === 'OffscreenCanvas' ? OffscreenCanvas : eval(`v_saf(function ${funcName}() {
                })`)
            }
        } else {
            delete window[funcName]

        }


    }
} else {
    for (let i = 0; i < funcs.length; i++) {
        let funcName = funcs[i]
        let hasFunc = Math.random() < 0.5;
        // hasFunc = _random() > 0.5
        if (true) {
            funcProperties[funcName] = {
                enumerable: true,
                value: funcName === 'OffscreenCanvas' ? OffscreenCanvas : eval(`v_saf(function ${funcName}() {
                })`)
            }
        } else {
            delete window[funcName]
            // funcProperties[funcName] = {
            //     value: undefined,
            //     enumerable:false,
            // }
        }


    }
}
Object.defineProperties(window, funcProperties)


// 44 funcs end
let funcs2 = [
    "ActiveXObject",
    "ApplePaySession",
    "File",
    "MutationObserver",
    "Notification",
    "SharedWorker",
    "TouchEvent",
    "XDomainRequest",
    "_phantom",
    "attachEvent",
    "callPhantom",
    "createPopup",
    "detachEvent",
    "event",
    "external",
    "fireEvent",
    "frameElement",
    "globalStorage",
    "localStorage",
    "mozRTCPeerConnection",
    "mozRequestAnimationFrame",
    "phantom",
    "postMessage",
    "PushManager",
    "registerProtocolHandler",
    "requestAnimationFrame",
    "sessionStorage",
    "sidebar",
    "webkitRequestAnimationFrame",
    "webkitResolveLocalFileSystemURL",
    "webkitRTCPeerConnection",
    "BluetoothUUID",
    "netscape"
];
let func2Properties = {};
if (ENV.funcs2 && ENV.funcs2.length > 0) {
    for (let i = 0; i < funcs2.length; i++) {
        let funcName = funcs2[i]
        if (funcName === 'localStorage' || funcName === 'sessionStorage') {
            continue;
        }
        let hasFunc = ENV.funcs2[i] === 1;
        // hasFunc = _random() > 0.5
        if (hasFunc) {
            let v = undefined;
            switch (funcName) {
                case "MutationObserver":
                    v = MutationObserver;
                    break
                case "TouchEvent":
                    v = TouchEvent;
                    break
                case "event":
                    v = undefined;
                    break;
                case "external":
                    v = external;
                    break;
                case "postMessage":
                    v = postMessage;
                    break;
                case "frameElement":
                    v = null;
                    break;
                case "PushManager":
                    v = PushManager;
                    break;
                case "requestAnimationFrame":
                    v = requestAnimationFrame;
                    break;
                case "webkitRequestAnimationFrame":
                    v = webkitRequestAnimationFrame;
                    break;
                case "webkitResolveLocalFileSystemURL":
                    v = webkitResolveLocalFileSystemURL;
                    break;
                case "webkitRTCPeerConnection":
                    v = RTCPeerConnection;
                    break;

                default:
                    v = eval(`v_saf(function ${funcName}() {
                    })`)
                    break;

            }
            func2Properties[funcName] = {
                enumerable: true,
                value: v ? proxy(v, funcName) : v
            }
        } else {
            delete window[funcName]
            // func2Properties[funcName] = {
            //     value: undefined,
            //     enumerable:false,
            // }
        }


    }
} else {
    for (let i = 0; i < funcs2.length; i++) {
        let funcName = funcs2[i]
        let hasFunc = Math.random() < 0.5;
        // hasFunc = _random() > 0.5
        if (hasFunc) {
            func2Properties[funcName] = {
                enumerable: true,
                value: funcName === 'OffscreenCanvas' ? OffscreenCanvas : eval(`v_saf(function ${funcName}() {
                })`)
            }
        } else {
            delete window[funcName]

        }
    }
}
Object.defineProperties(window, func2Properties)


let bodyFuncs = [
    "contextMenu",
    "innerText",
    "mozRequestFullScreen",
    "requestFullScreen",
    "webkitRequestFullScreen"
]
// if (ENV.bodyfunc){
//     for (let i = 0; i < ENV.bodyfunc.length; i++) {
//         let funcName = bodyFuncs[i];
//         let hasFunc = ENV.bodyfunc[i] === 1;
//         if (hasFunc){
//             print('body set', funcName)
//             Object.defineProperty(HTMLBodyElement.prototype, funcName, {
//                 value: v_saf(function (){})
//             })
//         }
//     }
// }
window.external = external


;
;
;


let params = {
    "Object": {"value": {"type": "function"}},
    "Function": {"value": {"type": "function"}},
    "Array": {"value": {"type": "function"}},
    "Number": {"value": {"type": "function"}},
    "parseFloat": {"value": {"type": "function"}},
    "parseInt": {"value": {"type": "function"}},
    "Infinity": {"value": {"value": "null"}},
    "NaN": {},
    "undefined": {},
    "Boolean": {"value": {"type": "function"}},
    "String": {"value": {"type": "function"}},
    "Symbol": {"value": {"type": "function"}},
    "AggregateError": {"value": {"type": "function"}},
    "EvalError": {"value": {"type": "function"}},
    "RangeError": {"value": {"type": "function"}},
    "ReferenceError": {"value": {"type": "function"}},
    "SyntaxError": {"value": {"type": "function"}},
    "TypeError": {"value": {"type": "function"}},
    "URIError": {"value": {"type": "function"}},
    "JSON": {"value": {"value": "{}"}},
    "Math": {"value": {"value": "{}"}},
    "Intl": {"value": {"value": "{}"}},
    "ArrayBuffer": {"value": {"type": "function"}},
    "Atomics": {"value": {"value": "{}"}},
    "Uint8Array": {"value": {"type": "function"}},
    "Int8Array": {"value": {"type": "function"}},
    "Uint16Array": {"value": {"type": "function"}},
    "Int16Array": {"value": {"type": "function"}},
    "Uint32Array": {"value": {"type": "function"}},
    "Int32Array": {"value": {"type": "function"}},
    "Float32Array": {"value": {"type": "function"}},
    "Float64Array": {"value": {"type": "function"}},
    "Uint8ClampedArray": {"value": {"type": "function"}},
    "BigUint64Array": {"value": {"type": "function"}},
    "BigInt64Array": {"value": {"type": "function"}},
    "DataView": {"value": {"type": "function"}},
    "Map": {"value": {"type": "function"}},
    "BigInt": {"value": {"type": "function"}},
    "Set": {"value": {"type": "function"}},
    "WeakMap": {"value": {"type": "function"}},
    "WeakSet": {"value": {"type": "function"}},
    "Proxy": {"value": {"type": "function"}},
    "Reflect": {"value": {"value": "{}"}},
    "FinalizationRegistry": {"value": {"type": "function"}},
    "WeakRef": {"value": {"type": "function"}},
    "decodeURI": {"value": {"type": "function"}},
    "decodeURIComponent": {"value": {"type": "function"}},
    "encodeURI": {"value": {"type": "function"}},
    "encodeURIComponent": {"value": {"type": "function"}},
    "escape": {"value": {"type": "function"}},
    "unescape": {"value": {"type": "function"}},
    "eval": {"value": {"type": "function"}},
    "isFinite": {"value": {"type": "function"}},
    "isNaN": {"value": {"type": "function"}},
    "console": {"value": {"value": "{\"memory\":{}}"}},
    "Option": {"value": {"type": "function"}},
    "Image": {"value": {"type": "function"}},
    "Audio": {"value": {"type": "function"}},
    "webkitURL": {"value": {"type": "function"}},
    "webkitRTCPeerConnection": {"value": {"type": "function"}},
    "webkitMediaStream": {"value": {"type": "function"}},
    "WebKitMutationObserver": {"value": {"type": "function"}},
    "WebKitCSSMatrix": {"value": {"type": "function"}},
    "XSLTProcessor": {"value": {"type": "function"}},
    "XPathResult": {"value": {"type": "function"}},
    "XPathExpression": {"value": {"type": "function"}},
    "XPathEvaluator": {"value": {"type": "function"}},
    "XMLSerializer": {"value": {"type": "function"}},
    "XMLHttpRequestUpload": {"value": {"type": "function"}},
    "XMLHttpRequestEventTarget": {"value": {"type": "function"}},
    "XMLHttpRequest": {"value": {"type": "function"}},
    "XMLDocument": {"value": {"type": "function"}},
    "WritableStreamDefaultWriter": {"value": {"type": "function"}},
    "WritableStreamDefaultController": {"value": {"type": "function"}},
    "WritableStream": {"value": {"type": "function"}},
    "Worker": {"value": {"type": "function"}},
    "Window": {"value": {"type": "function"}},
    "WheelEvent": {"value": {"type": "function"}},
    "WebSocket": {"value": {"type": "function"}},
    "WebGLVertexArrayObject": {"value": {"type": "function"}},
    "WebGLUniformLocation": {"value": {"type": "function"}},
    "WebGLTransformFeedback": {"value": {"type": "function"}},
    "WebGLTexture": {"value": {"type": "function"}},
    "WebGLSync": {"value": {"type": "function"}},
    "WebGLShaderPrecisionFormat": {"value": {"type": "function"}},
    "WebGLShader": {"value": {"type": "function"}},
    "WebGLSampler": {"value": {"type": "function"}},
    "WebGLRenderingContext": {"value": {"type": "function"}},
    "WebGLRenderbuffer": {"value": {"type": "function"}},
    "WebGLQuery": {"value": {"type": "function"}},
    "WebGLProgram": {"value": {"type": "function"}},
    "WebGLFramebuffer": {"value": {"type": "function"}},
    "WebGLContextEvent": {"value": {"type": "function"}},
    "WebGLBuffer": {"value": {"type": "function"}},
    "WebGLActiveInfo": {"value": {"type": "function"}},
    "WebGL2RenderingContext": {"value": {"type": "function"}},
    "WaveShaperNode": {"value": {"type": "function"}},
    "VisualViewport": {"value": {"type": "function"}},
    "VirtualKeyboardGeometryChangeEvent": {"value": {"type": "function"}},
    "ViewTransition": {"value": {"type": "function"}},
    "VideoFrame": {"value": {"type": "function"}},
    "VideoColorSpace": {"value": {"type": "function"}},
    "ValidityState": {"value": {"type": "function"}},
    "VTTCue": {"value": {"type": "function"}},
    "UserActivation": {"value": {"type": "function"}},
    "URLSearchParams": {"value": {"type": "function"}},
    "URLPattern": {"value": {"type": "function"}},
    "URL": {"value": {"type": "function"}},
    "UIEvent": {"value": {"type": "function"}},
    "TrustedTypePolicyFactory": {"value": {"type": "function"}},
    "TrustedTypePolicy": {"value": {"type": "function"}},
    "TrustedScriptURL": {"value": {"type": "function"}},
    "TrustedScript": {"value": {"type": "function"}},
    "TrustedHTML": {"value": {"type": "function"}},
    "TreeWalker": {"value": {"type": "function"}},
    "TransitionEvent": {"value": {"type": "function"}},
    "TransformStreamDefaultController": {"value": {"type": "function"}},
    "TransformStream": {"value": {"type": "function"}},
    "TrackEvent": {"value": {"type": "function"}},
    "TouchList": {"value": {"type": "function"}},
    "TouchEvent": {"value": {"type": "function"}},
    "Touch": {"value": {"type": "function"}},
    "ToggleEvent": {"value": {"type": "function"}},
    "TimeRanges": {"value": {"type": "function"}},
    "TextTrackList": {"value": {"type": "function"}},
    "TextTrackCueList": {"value": {"type": "function"}},
    "TextTrackCue": {"value": {"type": "function"}},
    "TextTrack": {"value": {"type": "function"}},
    "TextEvent": {"value": {"type": "function"}},
    "TextEncoderStream": {"value": {"type": "function"}},
    "TextEncoder": {"value": {"type": "function"}},
    "TextDecoderStream": {"value": {"type": "function"}},
    "TextDecoder": {"value": {"type": "function"}},
    "Text": {"value": {"type": "function"}},
    "TaskSignal": {"value": {"type": "function"}},
    "TaskPriorityChangeEvent": {"value": {"type": "function"}},
    "TaskController": {"value": {"type": "function"}},
    "TaskAttributionTiming": {"value": {"type": "function"}},
    "SyncManager": {"value": {"type": "function"}},
    "SubmitEvent": {"value": {"type": "function"}},
    "StyleSheetList": {"value": {"type": "function"}},
    "StyleSheet": {"value": {"type": "function"}},
    "StylePropertyMapReadOnly": {"value": {"type": "function"}},
    "StylePropertyMap": {"value": {"type": "function"}},
    "StorageEvent": {"value": {"type": "function"}},
    "Storage": {"value": {"type": "function"}},
    "StereoPannerNode": {"value": {"type": "function"}},
    "StaticRange": {"value": {"type": "function"}},
    "SourceBufferList": {"value": {"type": "function"}},
    "SourceBuffer": {"value": {"type": "function"}},
    "ShadowRoot": {"value": {"type": "function"}},
    "Selection": {"value": {"type": "function"}},
    "SecurityPolicyViolationEvent": {"value": {"type": "function"}},
    "ScriptProcessorNode": {"value": {"type": "function"}},
    "ScreenOrientation": {"value": {"type": "function"}},
    "Screen": {"value": {"type": "function"}},
    "Scheduling": {"value": {"type": "function"}},
    "Scheduler": {"value": {"type": "function"}},
    "SVGViewElement": {"value": {"type": "function"}},
    "SVGUseElement": {"value": {"type": "function"}},
    "SVGUnitTypes": {"value": {"type": "function"}},
    "SVGTransformList": {"value": {"type": "function"}},
    "SVGTransform": {"value": {"type": "function"}},
    "SVGTitleElement": {"value": {"type": "function"}},
    "SVGTextPositioningElement": {"value": {"type": "function"}},
    "SVGTextPathElement": {"value": {"type": "function"}},
    "SVGTextElement": {"value": {"type": "function"}},
    "SVGTextContentElement": {"value": {"type": "function"}},
    "SVGTSpanElement": {"value": {"type": "function"}},
    "SVGSymbolElement": {"value": {"type": "function"}},
    "SVGSwitchElement": {"value": {"type": "function"}},
    "SVGStyleElement": {"value": {"type": "function"}},
    "SVGStringList": {"value": {"type": "function"}},
    "SVGStopElement": {"value": {"type": "function"}},
    "SVGSetElement": {"value": {"type": "function"}},
    "SVGScriptElement": {"value": {"type": "function"}},
    "SVGSVGElement": {"value": {"type": "function"}},
    "SVGRectElement": {"value": {"type": "function"}},
    "SVGRect": {"value": {"type": "function"}},
    "SVGRadialGradientElement": {"value": {"type": "function"}},
    "SVGPreserveAspectRatio": {"value": {"type": "function"}},
    "SVGPolylineElement": {"value": {"type": "function"}},
    "SVGPolygonElement": {"value": {"type": "function"}},
    "SVGPointList": {"value": {"type": "function"}},
    "SVGPoint": {"value": {"type": "function"}},
    "SVGPatternElement": {"value": {"type": "function"}},
    "SVGPathElement": {"value": {"type": "function"}},
    "SVGNumberList": {"value": {"type": "function"}},
    "SVGNumber": {"value": {"type": "function"}},
    "SVGMetadataElement": {"value": {"type": "function"}},
    "SVGMatrix": {"value": {"type": "function"}},
    "SVGMaskElement": {"value": {"type": "function"}},
    "SVGMarkerElement": {"value": {"type": "function"}},
    "SVGMPathElement": {"value": {"type": "function"}},
    "SVGLinearGradientElement": {"value": {"type": "function"}},
    "SVGLineElement": {"value": {"type": "function"}},
    "SVGLengthList": {"value": {"type": "function"}},
    "SVGLength": {"value": {"type": "function"}},
    "SVGImageElement": {"value": {"type": "function"}},
    "SVGGraphicsElement": {"value": {"type": "function"}},
    "SVGGradientElement": {"value": {"type": "function"}},
    "SVGGeometryElement": {"value": {"type": "function"}},
    "SVGGElement": {"value": {"type": "function"}},
    "SVGForeignObjectElement": {"value": {"type": "function"}},
    "SVGFilterElement": {"value": {"type": "function"}},
    "SVGFETurbulenceElement": {"value": {"type": "function"}},
    "SVGFETileElement": {"value": {"type": "function"}},
    "SVGFESpotLightElement": {"value": {"type": "function"}},
    "SVGFESpecularLightingElement": {"value": {"type": "function"}},
    "SVGFEPointLightElement": {"value": {"type": "function"}},
    "SVGFEOffsetElement": {"value": {"type": "function"}},
    "SVGFEMorphologyElement": {"value": {"type": "function"}},
    "SVGFEMergeNodeElement": {"value": {"type": "function"}},
    "SVGFEMergeElement": {"value": {"type": "function"}},
    "SVGFEImageElement": {"value": {"type": "function"}},
    "SVGFEGaussianBlurElement": {"value": {"type": "function"}},
    "SVGFEFuncRElement": {"value": {"type": "function"}},
    "SVGFEFuncGElement": {"value": {"type": "function"}},
    "SVGFEFuncBElement": {"value": {"type": "function"}},
    "SVGFEFuncAElement": {"value": {"type": "function"}},
    "SVGFEFloodElement": {"value": {"type": "function"}},
    "SVGFEDropShadowElement": {"value": {"type": "function"}},
    "SVGFEDistantLightElement": {"value": {"type": "function"}},
    "SVGFEDisplacementMapElement": {"value": {"type": "function"}},
    "SVGFEDiffuseLightingElement": {"value": {"type": "function"}},
    "SVGFEConvolveMatrixElement": {"value": {"type": "function"}},
    "SVGFECompositeElement": {"value": {"type": "function"}},
    "SVGFEComponentTransferElement": {"value": {"type": "function"}},
    "SVGFEColorMatrixElement": {"value": {"type": "function"}},
    "SVGFEBlendElement": {"value": {"type": "function"}},
    "SVGEllipseElement": {"value": {"type": "function"}},
    "SVGElement": {"value": {"type": "function"}},
    "SVGDescElement": {"value": {"type": "function"}},
    "SVGDefsElement": {"value": {"type": "function"}},
    "SVGComponentTransferFunctionElement": {"value": {"type": "function"}},
    "SVGClipPathElement": {"value": {"type": "function"}},
    "SVGCircleElement": {"value": {"type": "function"}},
    "SVGAnimationElement": {"value": {"type": "function"}},
    "SVGAnimatedTransformList": {"value": {"type": "function"}},
    "SVGAnimatedString": {"value": {"type": "function"}},
    "SVGAnimatedRect": {"value": {"type": "function"}},
    "SVGAnimatedPreserveAspectRatio": {"value": {"type": "function"}},
    "SVGAnimatedNumberList": {"value": {"type": "function"}},
    "SVGAnimatedNumber": {"value": {"type": "function"}},
    "SVGAnimatedLengthList": {"value": {"type": "function"}},
    "SVGAnimatedLength": {"value": {"type": "function"}},
    "SVGAnimatedInteger": {"value": {"type": "function"}},
    "SVGAnimatedEnumeration": {"value": {"type": "function"}},
    "SVGAnimatedBoolean": {"value": {"type": "function"}},
    "SVGAnimatedAngle": {"value": {"type": "function"}},
    "SVGAnimateTransformElement": {"value": {"type": "function"}},
    "SVGAnimateMotionElement": {"value": {"type": "function"}},
    "SVGAnimateElement": {"value": {"type": "function"}},
    "SVGAngle": {"value": {"type": "function"}},
    "SVGAElement": {"value": {"type": "function"}},
    "Response": {"value": {"type": "function"}},
    "ResizeObserverSize": {"value": {"type": "function"}},
    "ResizeObserverEntry": {"value": {"type": "function"}},
    "ResizeObserver": {"value": {"type": "function"}},
    "Request": {"value": {"type": "function"}},
    "ReportingObserver": {"value": {"type": "function"}},
    "ReadableStreamDefaultReader": {"value": {"type": "function"}},
    "ReadableStreamDefaultController": {"value": {"type": "function"}},
    "ReadableStreamBYOBRequest": {"value": {"type": "function"}},
    "ReadableStreamBYOBReader": {"value": {"type": "function"}},
    "ReadableStream": {"value": {"type": "function"}},
    "ReadableByteStreamController": {"value": {"type": "function"}},
    "Range": {"value": {"type": "function"}},
    "RadioNodeList": {"value": {"type": "function"}},
    "RTCTrackEvent": {"value": {"type": "function"}},
    "RTCStatsReport": {"value": {"type": "function"}},
    "RTCSessionDescription": {"value": {"type": "function"}},
    "RTCSctpTransport": {"value": {"type": "function"}},
    "RTCRtpTransceiver": {"value": {"type": "function"}},
    "RTCRtpSender": {"value": {"type": "function"}},
    "RTCRtpReceiver": {"value": {"type": "function"}},
    "RTCPeerConnectionIceEvent": {"value": {"type": "function"}},
    "RTCPeerConnectionIceErrorEvent": {"value": {"type": "function"}},
    "RTCPeerConnection": {"value": {"type": "function"}},
    "RTCIceTransport": {"value": {"type": "function"}},
    "RTCIceCandidate": {"value": {"type": "function"}},
    "RTCErrorEvent": {"value": {"type": "function"}},
    "RTCError": {"value": {"type": "function"}},
    "RTCEncodedVideoFrame": {"value": {"type": "function"}},
    "RTCEncodedAudioFrame": {"value": {"type": "function"}},
    "RTCDtlsTransport": {"value": {"type": "function"}},
    "RTCDataChannelEvent": {"value": {"type": "function"}},
    "RTCDataChannel": {"value": {"type": "function"}},
    "RTCDTMFToneChangeEvent": {"value": {"type": "function"}},
    "RTCDTMFSender": {"value": {"type": "function"}},
    "RTCCertificate": {"value": {"type": "function"}},
    "PromiseRejectionEvent": {"value": {"type": "function"}},
    "ProgressEvent": {"value": {"type": "function"}},
    "Profiler": {"value": {"type": "function"}},
    "ProcessingInstruction": {"value": {"type": "function"}},
    "PopStateEvent": {"value": {"type": "function"}},
    "PointerEvent": {"value": {"type": "function"}},
    "PluginArray": {"value": {"type": "function"}},
    "Plugin": {"value": {"type": "function"}},
    "PictureInPictureWindow": {"value": {"type": "function"}},
    "PictureInPictureEvent": {"value": {"type": "function"}},
    "PeriodicWave": {"value": {"type": "function"}},
    "PerformanceTiming": {"value": {"type": "function"}},
    "PerformanceServerTiming": {"value": {"type": "function"}},
    "PerformanceResourceTiming": {"value": {"type": "function"}},
    "PerformancePaintTiming": {"value": {"type": "function"}},
    "PerformanceObserverEntryList": {"value": {"type": "function"}},
    "PerformanceObserver": {"value": {"type": "function"}},
    "PerformanceNavigationTiming": {"value": {"type": "function"}},
    "PerformanceNavigation": {"value": {"type": "function"}},
    "PerformanceMeasure": {"value": {"type": "function"}},
    "PerformanceMark": {"value": {"type": "function"}},
    "PerformanceLongTaskTiming": {"value": {"type": "function"}},
    "PerformanceEventTiming": {"value": {"type": "function"}},
    "PerformanceEntry": {"value": {"type": "function"}},
    "PerformanceElementTiming": {"value": {"type": "function"}},
    "Performance": {"value": {"type": "function"}},
    "Path2D": {"value": {"type": "function"}},
    "PannerNode": {"value": {"type": "function"}},
    "PageTransitionEvent": {"value": {"type": "function"}},
    "OverconstrainedError": {"value": {"type": "function"}},
    "OscillatorNode": {"value": {"type": "function"}},
    "OffscreenCanvasRenderingContext2D": {"value": {"type": "function"}},
    "OffscreenCanvas": {"value": {"type": "function"}},
    "OfflineAudioContext": {"value": {"type": "function"}},
    "OfflineAudioCompletionEvent": {"value": {"type": "function"}},
    "NodeList": {"value": {"type": "function"}},
    "NodeIterator": {"value": {"type": "function"}},
    "NodeFilter": {"value": {"type": "function"}},
    "Node": {"value": {"type": "function"}},
    "NetworkInformation": {"value": {"type": "function"}},
    "Navigator": {"value": {"type": "function"}},
    "NavigationTransition": {"value": {"type": "function"}},
    "NavigationHistoryEntry": {"value": {"type": "function"}},
    "NavigationDestination": {"value": {"type": "function"}},
    "NavigationCurrentEntryChangeEvent": {"value": {"type": "function"}},
    "Navigation": {"value": {"type": "function"}},
    "NavigateEvent": {"value": {"type": "function"}},
    "NamedNodeMap": {"value": {"type": "function"}},
    "MutationRecord": {"value": {"type": "function"}},
    "MutationObserver": {"value": {"type": "function"}},
    "MouseEvent": {"value": {"type": "function"}},
    "MimeTypeArray": {"value": {"type": "function"}},
    "MimeType": {"value": {"type": "function"}},
    "MessagePort": {"value": {"type": "function"}},
    "MessageEvent": {"value": {"type": "function"}},
    "MessageChannel": {"value": {"type": "function"}},
    "MediaStreamTrackVideoStats": {"value": {"type": "function"}},
    "MediaStreamTrackProcessor": {"value": {"type": "function"}},
    "MediaStreamTrackGenerator": {"value": {"type": "function"}},
    "MediaStreamTrackEvent": {"value": {"type": "function"}},
    "MediaStreamTrack": {"value": {"type": "function"}},
    "MediaStreamEvent": {"value": {"type": "function"}},
    "MediaStreamAudioSourceNode": {"value": {"type": "function"}},
    "MediaStreamAudioDestinationNode": {"value": {"type": "function"}},
    "MediaStream": {"value": {"type": "function"}},
    "MediaSourceHandle": {"value": {"type": "function"}},
    "MediaSource": {"value": {"type": "function"}},
    "MediaRecorder": {"value": {"type": "function"}},
    "MediaQueryListEvent": {"value": {"type": "function"}},
    "MediaQueryList": {"value": {"type": "function"}},
    "MediaList": {"value": {"type": "function"}},
    "MediaError": {"value": {"type": "function"}},
    "MediaEncryptedEvent": {"value": {"type": "function"}},
    "MediaElementAudioSourceNode": {"value": {"type": "function"}},
    "MediaCapabilities": {"value": {"type": "function"}},
    "MathMLElement": {"value": {"type": "function"}},
    "Location": {"value": {"type": "function"}},
    "LayoutShiftAttribution": {"value": {"type": "function"}},
    "LayoutShift": {"value": {"type": "function"}},
    "LargestContentfulPaint": {"value": {"type": "function"}},
    "KeyframeEffect": {"value": {"type": "function"}},
    "KeyboardEvent": {"value": {"type": "function"}},
    "IntersectionObserverEntry": {"value": {"type": "function"}},
    "IntersectionObserver": {"value": {"type": "function"}},
    "InputEvent": {"value": {"type": "function"}},
    "InputDeviceInfo": {"value": {"type": "function"}},
    "InputDeviceCapabilities": {"value": {"type": "function"}},
    "ImageTrackList": {"value": {"type": "function"}},
    "ImageTrack": {"value": {"type": "function"}},
    "ImageData": {"value": {"type": "function"}},
    "ImageCapture": {"value": {"type": "function"}},
    "ImageBitmapRenderingContext": {"value": {"type": "function"}},
    "ImageBitmap": {"value": {"type": "function"}},
    "IdleDeadline": {"value": {"type": "function"}},
    "IIRFilterNode": {"value": {"type": "function"}},
    "IDBVersionChangeEvent": {"value": {"type": "function"}},
    "IDBTransaction": {"value": {"type": "function"}},
    "IDBRequest": {"value": {"type": "function"}},
    "IDBOpenDBRequest": {"value": {"type": "function"}},
    "IDBObjectStore": {"value": {"type": "function"}},
    "IDBKeyRange": {"value": {"type": "function"}},
    "IDBIndex": {"value": {"type": "function"}},
    "IDBFactory": {"value": {"type": "function"}},
    "IDBDatabase": {"value": {"type": "function"}},
    "IDBCursorWithValue": {"value": {"type": "function"}},
    "IDBCursor": {"value": {"type": "function"}},
    "History": {"value": {"type": "function"}},
    "Headers": {"value": {"type": "function"}},
    "HashChangeEvent": {"value": {"type": "function"}},
    "HTMLVideoElement": {"value": {"type": "function"}},
    "HTMLUnknownElement": {"value": {"type": "function"}},
    "HTMLUListElement": {"value": {"type": "function"}},
    "HTMLTrackElement": {"value": {"type": "function"}},
    "HTMLTitleElement": {"value": {"type": "function"}},
    "HTMLTimeElement": {"value": {"type": "function"}},
    "HTMLTextAreaElement": {"value": {"type": "function"}},
    "HTMLTemplateElement": {"value": {"type": "function"}},
    "HTMLTableSectionElement": {"value": {"type": "function"}},
    "HTMLTableRowElement": {"value": {"type": "function"}},
    "HTMLTableElement": {"value": {"type": "function"}},
    "HTMLTableColElement": {"value": {"type": "function"}},
    "HTMLTableCellElement": {"value": {"type": "function"}},
    "HTMLTableCaptionElement": {"value": {"type": "function"}},
    "HTMLStyleElement": {"value": {"type": "function"}},
    "HTMLSpanElement": {"value": {"type": "function"}},
    "HTMLSourceElement": {"value": {"type": "function"}},
    "HTMLSlotElement": {"value": {"type": "function"}},
    "HTMLSelectElement": {"value": {"type": "function"}},
    "HTMLScriptElement": {"value": {"type": "function"}},
    "HTMLQuoteElement": {"value": {"type": "function"}},
    "HTMLProgressElement": {"value": {"type": "function"}},
    "HTMLPreElement": {"value": {"type": "function"}},
    "HTMLPictureElement": {"value": {"type": "function"}},
    "HTMLParamElement": {"value": {"type": "function"}},
    "HTMLParagraphElement": {"value": {"type": "function"}},
    "HTMLOutputElement": {"value": {"type": "function"}},
    "HTMLOptionsCollection": {"value": {"type": "function"}},
    "HTMLOptionElement": {"value": {"type": "function"}},
    "HTMLOptGroupElement": {"value": {"type": "function"}},
    "HTMLObjectElement": {"value": {"type": "function"}},
    "HTMLOListElement": {"value": {"type": "function"}},
    "HTMLModElement": {"value": {"type": "function"}},
    "HTMLMeterElement": {"value": {"type": "function"}},
    "HTMLMetaElement": {"value": {"type": "function"}},
    "HTMLMenuElement": {"value": {"type": "function"}},
    "HTMLMediaElement": {"value": {"type": "function"}},
    "HTMLMarqueeElement": {"value": {"type": "function"}},
    "HTMLMapElement": {"value": {"type": "function"}},
    "HTMLLinkElement": {"value": {"type": "function"}},
    "HTMLLegendElement": {"value": {"type": "function"}},
    "HTMLLabelElement": {"value": {"type": "function"}},
    "HTMLLIElement": {"value": {"type": "function"}},
    "HTMLInputElement": {"value": {"type": "function"}},
    "HTMLImageElement": {"value": {"type": "function"}},
    "HTMLIFrameElement": {"value": {"type": "function"}},
    "HTMLHtmlElement": {"value": {"type": "function"}},
    "HTMLHeadingElement": {"value": {"type": "function"}},
    "HTMLHeadElement": {"value": {"type": "function"}},
    "HTMLHRElement": {"value": {"type": "function"}},
    "HTMLFrameSetElement": {"value": {"type": "function"}},
    "HTMLFrameElement": {"value": {"type": "function"}},
    "HTMLFormElement": {"value": {"type": "function"}},
    "HTMLFormControlsCollection": {"value": {"type": "function"}},
    "HTMLFontElement": {"value": {"type": "function"}},
    "HTMLFieldSetElement": {"value": {"type": "function"}},
    "HTMLEmbedElement": {"value": {"type": "function"}},
    "HTMLElement": {"value": {"type": "function"}},
    "HTMLDocument": {"value": {"type": "function"}},
    "HTMLDivElement": {"value": {"type": "function"}},
    "HTMLDirectoryElement": {"value": {"type": "function"}},
    "HTMLDialogElement": {"value": {"type": "function"}},
    "HTMLDetailsElement": {"value": {"type": "function"}},
    "HTMLDataListElement": {"value": {"type": "function"}},
    "HTMLDataElement": {"value": {"type": "function"}},
    "HTMLDListElement": {"value": {"type": "function"}},
    "HTMLCollection": {"value": {"type": "function"}},
    "HTMLButtonElement": {"value": {"type": "function"}},
    "HTMLBodyElement": {"value": {"type": "function"}},
    "HTMLBaseElement": {"value": {"type": "function"}},
    "HTMLBRElement": {"value": {"type": "function"}},
    "HTMLAudioElement": {"value": {"type": "function"}},
    "HTMLAreaElement": {"value": {"type": "function"}},
    "HTMLAnchorElement": {"value": {"type": "function"}},
    "HTMLAllCollection": {"value": {"type": "function"}},
    "GeolocationPositionError": {"value": {"type": "function"}},
    "GeolocationPosition": {"value": {"type": "function"}},
    "GeolocationCoordinates": {"value": {"type": "function"}},
    "Geolocation": {"value": {"type": "function"}},
    "GamepadHapticActuator": {"value": {"type": "function"}},
    "GamepadEvent": {"value": {"type": "function"}},
    "GamepadButton": {"value": {"type": "function"}},
    "Gamepad": {"value": {"type": "function"}},
    "GainNode": {"value": {"type": "function"}},
    "FormDataEvent": {"value": {"type": "function"}},
    "FormData": {"value": {"type": "function"}},
    "FontFaceSetLoadEvent": {"value": {"type": "function"}},
    "FontFace": {"value": {"type": "function"}},
    "FocusEvent": {"value": {"type": "function"}},
    "FileReader": {"value": {"type": "function"}},
    "FileList": {"value": {"type": "function"}},
    "File": {"value": {"type": "function"}},
    "FeaturePolicy": {"value": {"type": "function"}},
    "External": {"value": {"type": "function"}},
    "EventTarget": {"value": {"type": "function"}},
    "EventSource": {"value": {"type": "function"}},
    "EventCounts": {"value": {"type": "function"}},
    "Event": {"value": {"type": "function"}},
    "ErrorEvent": {"value": {"type": "function"}},
    "EncodedVideoChunk": {"value": {"type": "function"}},
    "EncodedAudioChunk": {"value": {"type": "function"}},
    "ElementInternals": {"value": {"type": "function"}},
    "Element": {"value": {"type": "function"}},
    "DynamicsCompressorNode": {"value": {"type": "function"}},
    "DragEvent": {"value": {"type": "function"}},
    "DocumentType": {"value": {"type": "function"}},
    "DocumentFragment": {"value": {"type": "function"}},
    "Document": {"value": {"type": "function"}},
    "DelayNode": {"value": {"type": "function"}},
    "DecompressionStream": {"value": {"type": "function"}},
    "DataTransferItemList": {"value": {"type": "function"}},
    "DataTransferItem": {"value": {"type": "function"}},
    "DataTransfer": {"value": {"type": "function"}},
    "DOMTokenList": {"value": {"type": "function"}},
    "DOMStringMap": {"value": {"type": "function"}},
    "DOMStringList": {"value": {"type": "function"}},
    "DOMRectReadOnly": {"value": {"type": "function"}},
    "DOMRectList": {"value": {"type": "function"}},
    "DOMRect": {"value": {"type": "function"}},
    "DOMQuad": {"value": {"type": "function"}},
    "DOMPointReadOnly": {"value": {"type": "function"}},
    "DOMPoint": {"value": {"type": "function"}},
    "DOMParser": {"value": {"type": "function"}},
    "DOMMatrixReadOnly": {"value": {"type": "function"}},
    "DOMMatrix": {"value": {"type": "function"}},
    "DOMImplementation": {"value": {"type": "function"}},
    "DOMException": {"value": {"type": "function"}},
    "DOMError": {"value": {"type": "function"}},
    "CustomStateSet": {"value": {"type": "function"}},
    "CustomEvent": {"value": {"type": "function"}},
    "CustomElementRegistry": {"value": {"type": "function"}},
    "Crypto": {"value": {"type": "function"}},
    "CountQueuingStrategy": {"value": {"type": "function"}},
    "ConvolverNode": {"value": {"type": "function"}},
    "ConstantSourceNode": {"value": {"type": "function"}},
    "CompressionStream": {"value": {"type": "function"}},
    "CompositionEvent": {"value": {"type": "function"}},
    "Comment": {"value": {"type": "function"}},
    "CloseEvent": {"value": {"type": "function"}},
    "ClipboardEvent": {"value": {"type": "function"}},
    "CharacterData": {"value": {"type": "function"}},
    "ChannelSplitterNode": {"value": {"type": "function"}},
    "ChannelMergerNode": {"value": {"type": "function"}},
    "CanvasRenderingContext2D": {"value": {"type": "function"}},
    "CanvasPattern": {"value": {"type": "function"}},
    "CanvasGradient": {"value": {"type": "function"}},
    "CanvasCaptureMediaStreamTrack": {"value": {"type": "function"}},
    "CSSVariableReferenceValue": {"value": {"type": "function"}},
    "CSSUnparsedValue": {"value": {"type": "function"}},
    "CSSUnitValue": {"value": {"type": "function"}},
    "CSSTranslate": {"value": {"type": "function"}},
    "CSSTransformValue": {"value": {"type": "function"}},
    "CSSTransformComponent": {"value": {"type": "function"}},
    "CSSSupportsRule": {"value": {"type": "function"}},
    "CSSStyleValue": {"value": {"type": "function"}},
    "CSSStyleSheet": {"value": {"type": "function"}},
    "CSSStyleRule": {"value": {"type": "function"}},
    "CSSStyleDeclaration": {"value": {"type": "function"}},
    "CSSSkewY": {"value": {"type": "function"}},
    "CSSSkewX": {"value": {"type": "function"}},
    "CSSSkew": {"value": {"type": "function"}},
    "CSSScale": {"value": {"type": "function"}},
    "CSSRuleList": {"value": {"type": "function"}},
    "CSSRule": {"value": {"type": "function"}},
    "CSSRotate": {"value": {"type": "function"}},
    "CSSPropertyRule": {"value": {"type": "function"}},
    "CSSPositionValue": {"value": {"type": "function"}},
    "CSSPerspective": {"value": {"type": "function"}},
    "CSSPageRule": {"value": {"type": "function"}},
    "CSSNumericValue": {"value": {"type": "function"}},
    "CSSNumericArray": {"value": {"type": "function"}},
    "CSSNamespaceRule": {"value": {"type": "function"}},
    "CSSMediaRule": {"value": {"type": "function"}},
    "CSSMatrixComponent": {"value": {"type": "function"}},
    "CSSMathValue": {"value": {"type": "function"}},
    "CSSMathSum": {"value": {"type": "function"}},
    "CSSMathProduct": {"value": {"type": "function"}},
    "CSSMathNegate": {"value": {"type": "function"}},
    "CSSMathMin": {"value": {"type": "function"}},
    "CSSMathMax": {"value": {"type": "function"}},
    "CSSMathInvert": {"value": {"type": "function"}},
    "CSSMathClamp": {"value": {"type": "function"}},
    "CSSLayerStatementRule": {"value": {"type": "function"}},
    "CSSLayerBlockRule": {"value": {"type": "function"}},
    "CSSKeywordValue": {"value": {"type": "function"}},
    "CSSKeyframesRule": {"value": {"type": "function"}},
    "CSSKeyframeRule": {"value": {"type": "function"}},
    "CSSImportRule": {"value": {"type": "function"}},
    "CSSImageValue": {"value": {"type": "function"}},
    "CSSGroupingRule": {"value": {"type": "function"}},
    "CSSFontPaletteValuesRule": {"value": {"type": "function"}},
    "CSSFontFaceRule": {"value": {"type": "function"}},
    "CSSCounterStyleRule": {"value": {"type": "function"}},
    "CSSContainerRule": {"value": {"type": "function"}},
    "CSSConditionRule": {"value": {"type": "function"}},
    "CSS": {"value": {"value": "{\"highlights\":{},\"paintWorklet\":{}}"}},
    "CDATASection": {"value": {"type": "function"}},
    "ByteLengthQueuingStrategy": {"value": {"type": "function"}},
    "BroadcastChannel": {"value": {"type": "function"}},
    "BlobEvent": {"value": {"type": "function"}},
    "Blob": {"value": {"type": "function"}},
    "BiquadFilterNode": {"value": {"type": "function"}},
    "BeforeUnloadEvent": {"value": {"type": "function"}},
    "BeforeInstallPromptEvent": {"value": {"type": "function"}},
    "BaseAudioContext": {"value": {"type": "function"}},
    "BarProp": {"value": {"type": "function"}},
    "AudioWorkletNode": {"value": {"type": "function"}},
    "AudioSinkInfo": {"value": {"type": "function"}},
    "AudioScheduledSourceNode": {"value": {"type": "function"}},
    "AudioProcessingEvent": {"value": {"type": "function"}},
    "AudioParamMap": {"value": {"type": "function"}},
    "AudioParam": {"value": {"type": "function"}},
    "AudioNode": {"value": {"type": "function"}},
    "AudioListener": {"value": {"type": "function"}},
    "AudioDestinationNode": {"value": {"type": "function"}},
    "AudioData": {"value": {"type": "function"}},
    "AudioContext": {"value": {"type": "function"}},
    "AudioBufferSourceNode": {"value": {"type": "function"}},
    "AudioBuffer": {"value": {"type": "function"}},
    "Attr": {"value": {"type": "function"}},
    "AnimationEvent": {"value": {"type": "function"}},
    "AnimationEffect": {"value": {"type": "function"}},
    "Animation": {"value": {"type": "function"}},
    "AnalyserNode": {"value": {"type": "function"}},
    "AbstractRange": {"value": {"type": "function"}},
    "AbortSignal": {"value": {"type": "function"}},
    "AbortController": {"value": {"type": "function"}},
    "window": {"get": true},
    "self": {"get": true, "set": true},
    "document": {"get": true},
    "name": {"get": true, "set": true},
    "location": {"get": true, "set": true},
    "customElements": {"get": true},
    "history": {"get": true},
    "navigation": {"get": true, "set": true},
    "locationbar": {"get": true, "set": true},
    "menubar": {"get": true, "set": true},
    "personalbar": {"get": true, "set": true},
    "scrollbars": {"get": true, "set": true},
    "statusbar": {"get": true, "set": true},
    "toolbar": {"get": true, "set": true},
    "status": {"get": true, "set": true},
    "closed": {"get": true},
    "frames": {"get": true, "set": true},
    "length": {"get": true, "set": true},
    "top": {"get": true},
    "opener": {"get": true, "set": true},
    "parent": {"get": true, "set": true},
    "frameElement": {"get": true},
    "navigator": {"get": true},
    "origin": {"get": true, "set": true},
    "external": {"get": true, "set": true},
    "screen": {"get": true, "set": true},
    "innerWidth": {"get": true, "set": true},
    "innerHeight": {"get": true, "set": true},
    "scrollX": {"get": true, "set": true},
    "pageXOffset": {"get": true, "set": true},
    "scrollY": {"get": true, "set": true},
    "pageYOffset": {"get": true, "set": true},
    "visualViewport": {"get": true, "set": true},
    "screenX": {"get": true, "set": true},
    "screenY": {"get": true, "set": true},
    "outerWidth": {"get": true, "set": true},
    "outerHeight": {"get": true, "set": true},
    "devicePixelRatio": {"get": true, "set": true},
    "event": {"get": true, "set": true},
    "clientInformation": {"get": true, "set": true},
    "offscreenBuffering": {"get": true, "set": true},
    "screenLeft": {"get": true, "set": true},
    "screenTop": {"get": true, "set": true},
    "styleMedia": {"get": true},
    "onsearch": {"get": true, "set": true},
    "isSecureContext": {"get": true},
    "trustedTypes": {"get": true},
    "performance": {"get": true, "set": true},
    "onappinstalled": {"get": true, "set": true},
    "onbeforeinstallprompt": {"get": true, "set": true},
    "crypto": {"get": true},
    "indexedDB": {"get": true},
    "sessionStorage": {"get": true},
    "localStorage": {"get": true},
    "onbeforexrselect": {"get": true, "set": true},
    "onabort": {"get": true, "set": true},
    "onbeforeinput": {"get": true, "set": true},
    "onbeforetoggle": {"get": true, "set": true},
    "onblur": {"get": true, "set": true},
    "oncancel": {"get": true, "set": true},
    "oncanplay": {"get": true, "set": true},
    "oncanplaythrough": {"get": true, "set": true},
    "onchange": {"get": true, "set": true},
    "onclick": {"get": true, "set": true},
    "onclose": {"get": true, "set": true},
    "oncontextlost": {"get": true, "set": true},
    "oncontextmenu": {"get": true, "set": true},
    "oncontextrestored": {"get": true, "set": true},
    "oncuechange": {"get": true, "set": true},
    "ondblclick": {"get": true, "set": true},
    "ondrag": {"get": true, "set": true},
    "ondragend": {"get": true, "set": true},
    "ondragenter": {"get": true, "set": true},
    "ondragleave": {"get": true, "set": true},
    "ondragover": {"get": true, "set": true},
    "ondragstart": {"get": true, "set": true},
    "ondrop": {"get": true, "set": true},
    "ondurationchange": {"get": true, "set": true},
    "onemptied": {"get": true, "set": true},
    "onended": {"get": true, "set": true},
    "onerror": {"get": true, "set": true},
    "onfocus": {"get": true, "set": true},
    "onformdata": {"get": true, "set": true},
    "oninput": {"get": true, "set": true},
    "oninvalid": {"get": true, "set": true},
    "onkeydown": {"get": true, "set": true},
    "onkeypress": {"get": true, "set": true},
    "onkeyup": {"get": true, "set": true},
    "onload": {"get": true, "set": true},
    "onloadeddata": {"get": true, "set": true},
    "onloadedmetadata": {"get": true, "set": true},
    "onloadstart": {"get": true, "set": true},
    "onmousedown": {"get": true, "set": true},
    "onmouseenter": {"get": true, "set": true},
    "onmouseleave": {"get": true, "set": true},
    "onmousemove": {"get": true, "set": true},
    "onmouseout": {"get": true, "set": true},
    "onmouseover": {"get": true, "set": true},
    "onmouseup": {"get": true, "set": true},
    "onmousewheel": {"get": true, "set": true},
    "onpause": {"get": true, "set": true},
    "onplay": {"get": true, "set": true},
    "onplaying": {"get": true, "set": true},
    "onprogress": {"get": true, "set": true},
    "onratechange": {"get": true, "set": true},
    "onreset": {"get": true, "set": true},
    "onresize": {"get": true, "set": true},
    "onscroll": {"get": true, "set": true},
    "onsecuritypolicyviolation": {"get": true, "set": true},
    "onseeked": {"get": true, "set": true},
    "onseeking": {"get": true, "set": true},
    "onselect": {"get": true, "set": true},
    "onslotchange": {"get": true, "set": true},
    "onstalled": {"get": true, "set": true},
    "onsubmit": {"get": true, "set": true},
    "onsuspend": {"get": true, "set": true},
    "ontimeupdate": {"get": true, "set": true},
    "ontoggle": {"get": true, "set": true},
    "onvolumechange": {"get": true, "set": true},
    "onwaiting": {"get": true, "set": true},
    "onwebkitanimationend": {"get": true, "set": true},
    "onwebkitanimationiteration": {"get": true, "set": true},
    "onwebkitanimationstart": {"get": true, "set": true},
    "onwebkittransitionend": {"get": true, "set": true},
    "onwheel": {"get": true, "set": true},
    "onauxclick": {"get": true, "set": true},
    "ongotpointercapture": {"get": true, "set": true},
    "onlostpointercapture": {"get": true, "set": true},
    "onpointerdown": {"get": true, "set": true},
    "onpointermove": {"get": true, "set": true},
    "onpointerrawupdate": {"get": true, "set": true},
    "onpointerup": {"get": true, "set": true},
    "onpointercancel": {"get": true, "set": true},
    "onpointerover": {"get": true, "set": true},
    "onpointerout": {"get": true, "set": true},
    "onpointerenter": {"get": true, "set": true},
    "onpointerleave": {"get": true, "set": true},
    "onselectstart": {"get": true, "set": true},
    "onselectionchange": {"get": true, "set": true},
    "onanimationend": {"get": true, "set": true},
    "onanimationiteration": {"get": true, "set": true},
    "onanimationstart": {"get": true, "set": true},
    "ontransitionrun": {"get": true, "set": true},
    "ontransitionstart": {"get": true, "set": true},
    "ontransitionend": {"get": true, "set": true},
    "ontransitioncancel": {"get": true, "set": true},
    "onafterprint": {"get": true, "set": true},
    "onbeforeprint": {"get": true, "set": true},
    "onbeforeunload": {"get": true, "set": true},
    "onhashchange": {"get": true, "set": true},
    "onlanguagechange": {"get": true, "set": true},
    "onmessage": {"get": true, "set": true},
    "onmessageerror": {"get": true, "set": true},
    "onoffline": {"get": true, "set": true},
    "ononline": {"get": true, "set": true},
    "onpagehide": {"get": true, "set": true},
    "onpageshow": {"get": true, "set": true},
    "onpopstate": {"get": true, "set": true},
    "onrejectionhandled": {"get": true, "set": true},
    "onstorage": {"get": true, "set": true},
    "onunhandledrejection": {"get": true, "set": true},
    "onunload": {"get": true, "set": true},
    "crossOriginIsolated": {"get": true},
    "scheduler": {"get": true, "set": true},
    "alert": {"value": {"type": "function"}},
    "atob": {"value": {"type": "function"}},
    "blur": {"value": {"type": "function"}},
    "btoa": {"value": {"type": "function"}},
    "cancelAnimationFrame": {"value": {"type": "function"}},
    "cancelIdleCallback": {"value": {"type": "function"}},
    "captureEvents": {"value": {"type": "function"}},
    "clearInterval": {"value": {"type": "function"}},
    "clearTimeout": {"value": {"type": "function"}},
    "close": {"value": {"type": "function"}},
    "confirm": {"value": {"type": "function"}},
    "createImageBitmap": {"value": {"type": "function"}},
    "fetch": {"value": {"type": "function"}},
    "find": {"value": {"type": "function"}},
    "focus": {"value": {"type": "function"}},
    "getComputedStyle": {"value": {"type": "function"}},
    "getSelection": {"value": {"type": "function"}},
    "matchMedia": {"value": {"type": "function"}},
    "moveBy": {"value": {"type": "function"}},
    "moveTo": {"value": {"type": "function"}},
    "open": {"value": {"type": "function"}},
    "postMessage": {"value": {"type": "function"}},
    "print": {"value": {"type": "function"}},
    "prompt": {"value": {"type": "function"}},
    "queueMicrotask": {"value": {"type": "function"}},
    "releaseEvents": {"value": {"type": "function"}},
    "reportError": {"value": {"type": "function"}},
    "requestAnimationFrame": {"value": {"type": "function"}},
    "requestIdleCallback": {"value": {"type": "function"}},
    "resizeBy": {"value": {"type": "function"}},
    "resizeTo": {"value": {"type": "function"}},
    "scroll": {"value": {"type": "function"}},
    "scrollBy": {"value": {"type": "function"}},
    "scrollTo": {"value": {"type": "function"}},
    "setInterval": {"value": {"type": "function"}},
    "setTimeout": {"value": {"type": "function"}},
    "stop": {"value": {"type": "function"}},
    "structuredClone": {"value": {"type": "function"}},
    "webkitCancelAnimationFrame": {"value": {"type": "function"}},
    "webkitRequestAnimationFrame": {"value": {"type": "function"}},
    "chrome": {"value": {"value": "{\"app\":{\"isInstalled\":false,\"InstallState\":{\"DISABLED\":\"disabled\",\"INSTALLED\":\"installed\",\"NOT_INSTALLED\":\"not_installed\"},\"RunningState\":{\"CANNOT_RUN\":\"cannot_run\",\"READY_TO_RUN\":\"ready_to_run\",\"RUNNING\":\"running\"}}}"}},
    "WebAssembly": {"value": {"value": "{}"}},
    "fence": {"get": true},
    "caches": {"get": true},
    "cookieStore": {"get": true},
    "ondevicemotion": {"get": true, "set": true},
    "ondeviceorientation": {"get": true, "set": true},
    "ondeviceorientationabsolute": {"get": true, "set": true},
    "launchQueue": {"get": true},
    "sharedStorage": {"get": true},
    "documentPictureInPicture": {"get": true},
    "onbeforematch": {"get": true, "set": true},
    "AbsoluteOrientationSensor": {"value": {"type": "function"}},
    "Accelerometer": {"value": {"type": "function"}},
    "AudioDecoder": {"value": {"type": "function"}},
    "AudioEncoder": {"value": {"type": "function"}},
    "AudioWorklet": {"value": {"type": "function"}},
    "BatteryManager": {"value": {"type": "function"}},
    "Cache": {"value": {"type": "function"}},
    "CacheStorage": {"value": {"type": "function"}},
    "Clipboard": {"value": {"type": "function"}},
    "ClipboardItem": {"value": {"type": "function"}},
    "CookieChangeEvent": {"value": {"type": "function"}},
    "CookieStore": {"value": {"type": "function"}},
    "CookieStoreManager": {"value": {"type": "function"}},
    "Credential": {"value": {"type": "function"}},
    "CredentialsContainer": {"value": {"type": "function"}},
    "CryptoKey": {"value": {"type": "function"}},
    "DeviceMotionEvent": {"value": {"type": "function"}},
    "DeviceMotionEventAcceleration": {"value": {"type": "function"}},
    "DeviceMotionEventRotationRate": {"value": {"type": "function"}},
    "DeviceOrientationEvent": {"value": {"type": "function"}},
    "FederatedCredential": {"value": {"type": "function"}},
    "GPU": {"value": {"type": "function"}},
    "GPUAdapter": {"value": {"type": "function"}},
    "GPUAdapterInfo": {"value": {"type": "function"}},
    "GPUBindGroup": {"value": {"type": "function"}},
    "GPUBindGroupLayout": {"value": {"type": "function"}},
    "GPUBuffer": {"value": {"type": "function"}},
    "GPUBufferUsage": {"value": {"value": "{\"MAP_READ\":1,\"MAP_WRITE\":2,\"COPY_SRC\":4,\"COPY_DST\":8,\"INDEX\":16,\"VERTEX\":32,\"UNIFORM\":64,\"STORAGE\":128,\"INDIRECT\":256,\"QUERY_RESOLVE\":512}"}},
    "GPUCanvasContext": {"value": {"type": "function"}},
    "GPUColorWrite": {"value": {"value": "{\"RED\":1,\"GREEN\":2,\"BLUE\":4,\"ALPHA\":8,\"ALL\":15}"}},
    "GPUCommandBuffer": {"value": {"type": "function"}},
    "GPUCommandEncoder": {"value": {"type": "function"}},
    "GPUCompilationInfo": {"value": {"type": "function"}},
    "GPUCompilationMessage": {"value": {"type": "function"}},
    "GPUComputePassEncoder": {"value": {"type": "function"}},
    "GPUComputePipeline": {"value": {"type": "function"}},
    "GPUDevice": {"value": {"type": "function"}},
    "GPUDeviceLostInfo": {"value": {"type": "function"}},
    "GPUError": {"value": {"type": "function"}},
    "GPUExternalTexture": {"value": {"type": "function"}},
    "GPUInternalError": {"value": {"type": "function"}},
    "GPUMapMode": {"value": {"value": "{\"READ\":1,\"WRITE\":2}"}},
    "GPUOutOfMemoryError": {"value": {"type": "function"}},
    "GPUPipelineError": {"value": {"type": "function"}},
    "GPUPipelineLayout": {"value": {"type": "function"}},
    "GPUQuerySet": {"value": {"type": "function"}},
    "GPUQueue": {"value": {"type": "function"}},
    "GPURenderBundle": {"value": {"type": "function"}},
    "GPURenderBundleEncoder": {"value": {"type": "function"}},
    "GPURenderPassEncoder": {"value": {"type": "function"}},
    "GPURenderPipeline": {"value": {"type": "function"}},
    "GPUSampler": {"value": {"type": "function"}},
    "GPUShaderModule": {"value": {"type": "function"}},
    "GPUShaderStage": {"value": {"value": "{\"VERTEX\":1,\"FRAGMENT\":2,\"COMPUTE\":4}"}},
    "GPUSupportedFeatures": {"value": {"type": "function"}},
    "GPUSupportedLimits": {"value": {"type": "function"}},
    "GPUTexture": {"value": {"type": "function"}},
    "GPUTextureUsage": {"value": {"value": "{\"COPY_SRC\":1,\"COPY_DST\":2,\"TEXTURE_BINDING\":4,\"STORAGE_BINDING\":8,\"RENDER_ATTACHMENT\":16}"}},
    "GPUTextureView": {"value": {"type": "function"}},
    "GPUUncapturedErrorEvent": {"value": {"type": "function"}},
    "GPUValidationError": {"value": {"type": "function"}},
    "GravitySensor": {"value": {"type": "function"}},
    "Gyroscope": {"value": {"type": "function"}},
    "ImageDecoder": {"value": {"type": "function"}},
    "Keyboard": {"value": {"type": "function"}},
    "KeyboardLayoutMap": {"value": {"type": "function"}},
    "LinearAccelerationSensor": {"value": {"type": "function"}},
    "Lock": {"value": {"type": "function"}},
    "LockManager": {"value": {"type": "function"}},
    "MIDIAccess": {"value": {"type": "function"}},
    "MIDIConnectionEvent": {"value": {"type": "function"}},
    "MIDIInput": {"value": {"type": "function"}},
    "MIDIInputMap": {"value": {"type": "function"}},
    "MIDIMessageEvent": {"value": {"type": "function"}},
    "MIDIOutput": {"value": {"type": "function"}},
    "MIDIOutputMap": {"value": {"type": "function"}},
    "MIDIPort": {"value": {"type": "function"}},
    "MediaDeviceInfo": {"value": {"type": "function"}},
    "MediaDevices": {"value": {"type": "function"}},
    "MediaKeyMessageEvent": {"value": {"type": "function"}},
    "MediaKeySession": {"value": {"type": "function"}},
    "MediaKeyStatusMap": {"value": {"type": "function"}},
    "MediaKeySystemAccess": {"value": {"type": "function"}},
    "MediaKeys": {"value": {"type": "function"}},
    "NavigationPreloadManager": {"value": {"type": "function"}},
    "NavigatorManagedData": {"value": {"type": "function"}},
    "OrientationSensor": {"value": {"type": "function"}},
    "PasswordCredential": {"value": {"type": "function"}},
    "RelativeOrientationSensor": {"value": {"type": "function"}},
    "ScreenDetailed": {"value": {"type": "function"}},
    "ScreenDetails": {"value": {"type": "function"}},
    "Sensor": {"value": {"type": "function"}},
    "SensorErrorEvent": {"value": {"type": "function"}},
    "ServiceWorker": {"value": {"type": "function"}},
    "ServiceWorkerContainer": {"value": {"type": "function"}},
    "ServiceWorkerRegistration": {"value": {"type": "function"}},
    "StorageManager": {"value": {"type": "function"}},
    "SubtleCrypto": {"value": {"type": "function"}},
    "VideoDecoder": {"value": {"type": "function"}},
    "VideoEncoder": {"value": {"type": "function"}},
    "VirtualKeyboard": {"value": {"type": "function"}},
    "WGSLLanguageFeatures": {"value": {"type": "function"}},
    "WebTransport": {"value": {"type": "function"}},
    "WebTransportBidirectionalStream": {"value": {"type": "function"}},
    "WebTransportDatagramDuplexStream": {"value": {"type": "function"}},
    "WebTransportError": {"value": {"type": "function"}},
    "Worklet": {"value": {"type": "function"}},
    "XRDOMOverlayState": {"value": {"type": "function"}},
    "XRLayer": {"value": {"type": "function"}},
    "XRWebGLBinding": {"value": {"type": "function"}},
    "AuthenticatorAssertionResponse": {"value": {"type": "function"}},
    "AuthenticatorAttestationResponse": {"value": {"type": "function"}},
    "AuthenticatorResponse": {"value": {"type": "function"}},
    "PublicKeyCredential": {"value": {"type": "function"}},
    "BarcodeDetector": {"value": {"type": "function"}},
    "Bluetooth": {"value": {"type": "function"}},
    "BluetoothCharacteristicProperties": {"value": {"type": "function"}},
    "BluetoothDevice": {"value": {"type": "function"}},
    "BluetoothRemoteGATTCharacteristic": {"value": {"type": "function"}},
    "BluetoothRemoteGATTDescriptor": {"value": {"type": "function"}},
    "BluetoothRemoteGATTServer": {"value": {"type": "function"}},
    "BluetoothRemoteGATTService": {"value": {"type": "function"}},
    "CaptureController": {"value": {"type": "function"}},
    "DocumentPictureInPicture": {"value": {"type": "function"}},
    "EyeDropper": {"value": {"type": "function"}},
    "Fence": {"value": {"type": "function"}},
    "FencedFrameConfig": {"value": {"type": "function"}},
    "HTMLFencedFrameElement": {"value": {"type": "function"}},
    "FileSystemDirectoryHandle": {"value": {"type": "function"}},
    "FileSystemFileHandle": {"value": {"type": "function"}},
    "FileSystemHandle": {"value": {"type": "function"}},
    "FileSystemWritableFileStream": {"value": {"type": "function"}},
    "FontData": {"value": {"type": "function"}},
    "FragmentDirective": {"value": {"type": "function"}},
    "HID": {"value": {"type": "function"}},
    "HIDConnectionEvent": {"value": {"type": "function"}},
    "HIDDevice": {"value": {"type": "function"}},
    "HIDInputReportEvent": {"value": {"type": "function"}},
    "IdentityCredential": {"value": {"type": "function"}},
    "IdentityProvider": {"value": {"type": "function"}},
    "IdentityCredentialError": {"value": {"type": "function"}},
    "IdleDetector": {"value": {"type": "function"}},
    "LaunchParams": {"value": {"type": "function"}},
    "LaunchQueue": {"value": {"type": "function"}},
    "NavigatorLogin": {"value": {"type": "function"}},
    "OTPCredential": {"value": {"type": "function"}},
    "PaymentAddress": {"value": {"type": "function"}},
    "PaymentRequest": {"value": {"type": "function"}},
    "PaymentResponse": {"value": {"type": "function"}},
    "PaymentMethodChangeEvent": {"value": {"type": "function"}},
    "Presentation": {"value": {"type": "function"}},
    "PresentationAvailability": {"value": {"type": "function"}},
    "PresentationConnection": {"value": {"type": "function"}},
    "PresentationConnectionAvailableEvent": {"value": {"type": "function"}},
    "PresentationConnectionCloseEvent": {"value": {"type": "function"}},
    "PresentationConnectionList": {"value": {"type": "function"}},
    "PresentationReceiver": {"value": {"type": "function"}},
    "PresentationRequest": {"value": {"type": "function"}},
    "Serial": {"value": {"type": "function"}},
    "SerialPort": {"value": {"type": "function"}},
    "SharedStorage": {"value": {"type": "function"}},
    "SharedStorageWorklet": {"value": {"type": "function"}},
    "USB": {"value": {"type": "function"}},
    "USBAlternateInterface": {"value": {"type": "function"}},
    "USBConfiguration": {"value": {"type": "function"}},
    "USBConnectionEvent": {"value": {"type": "function"}},
    "USBDevice": {"value": {"type": "function"}},
    "USBEndpoint": {"value": {"type": "function"}},
    "USBInTransferResult": {"value": {"type": "function"}},
    "USBInterface": {"value": {"type": "function"}},
    "USBIsochronousInTransferPacket": {"value": {"type": "function"}},
    "USBIsochronousInTransferResult": {"value": {"type": "function"}},
    "USBIsochronousOutTransferPacket": {"value": {"type": "function"}},
    "USBIsochronousOutTransferResult": {"value": {"type": "function"}},
    "USBOutTransferResult": {"value": {"type": "function"}},
    "WakeLock": {"value": {"type": "function"}},
    "WakeLockSentinel": {"value": {"type": "function"}},
    "WindowControlsOverlay": {"value": {"type": "function"}},
    "WindowControlsOverlayGeometryChangeEvent": {"value": {"type": "function"}},
    "XRAnchor": {"value": {"type": "function"}},
    "XRAnchorSet": {"value": {"type": "function"}},
    "XRBoundedReferenceSpace": {"value": {"type": "function"}},
    "XRCPUDepthInformation": {"value": {"type": "function"}},
    "XRCamera": {"value": {"type": "function"}},
    "XRDepthInformation": {"value": {"type": "function"}},
    "XRFrame": {"value": {"type": "function"}},
    "XRHitTestResult": {"value": {"type": "function"}},
    "XRHitTestSource": {"value": {"type": "function"}},
    "XRInputSource": {"value": {"type": "function"}},
    "XRInputSourceArray": {"value": {"type": "function"}},
    "XRInputSourceEvent": {"value": {"type": "function"}},
    "XRInputSourcesChangeEvent": {"value": {"type": "function"}},
    "XRLightEstimate": {"value": {"type": "function"}},
    "XRLightProbe": {"value": {"type": "function"}},
    "XRPose": {"value": {"type": "function"}},
    "XRRay": {"value": {"type": "function"}},
    "XRReferenceSpace": {"value": {"type": "function"}},
    "XRReferenceSpaceEvent": {"value": {"type": "function"}},
    "XRRenderState": {"value": {"type": "function"}},
    "XRRigidTransform": {"value": {"type": "function"}},
    "XRSession": {"value": {"type": "function"}},
    "XRSessionEvent": {"value": {"type": "function"}},
    "XRSpace": {"value": {"type": "function"}},
    "XRSystem": {"value": {"type": "function"}},
    "XRTransientInputHitTestResult": {"value": {"type": "function"}},
    "XRTransientInputHitTestSource": {"value": {"type": "function"}},
    "XRView": {"value": {"type": "function"}},
    "XRViewerPose": {"value": {"type": "function"}},
    "XRViewport": {"value": {"type": "function"}},
    "XRWebGLDepthInformation": {"value": {"type": "function"}},
    "XRWebGLLayer": {"value": {"type": "function"}},
    "getScreenDetails": {"value": {"type": "function"}},
    "queryLocalFonts": {"value": {"type": "function"}},
    "showDirectoryPicker": {"value": {"type": "function"}},
    "showOpenFilePicker": {"value": {"type": "function"}},
    "showSaveFilePicker": {"value": {"type": "function"}},
    "originAgentCluster": {"get": true},
    "credentialless": {"get": true},
    "speechSynthesis": {"get": true},
    "oncontentvisibilityautostatechange": {"get": true, "set": true},
    "onscrollend": {"get": true, "set": true},
    "AnimationPlaybackEvent": {"value": {"type": "function"}},
    "AnimationTimeline": {"value": {"type": "function"}},
    "CSSAnimation": {"value": {"type": "function"}},
    "CSSTransition": {"value": {"type": "function"}},
    "DocumentTimeline": {"value": {"type": "function"}},
    "BackgroundFetchManager": {"value": {"type": "function"}},
    "BackgroundFetchRecord": {"value": {"type": "function"}},
    "BackgroundFetchRegistration": {"value": {"type": "function"}},
    "BluetoothUUID": {"value": {"type": "function"}},
    "BrowserCaptureMediaStreamTrack": {"value": {"type": "function"}},
    "CropTarget": {"value": {"type": "function"}},
    "CSSScopeRule": {"value": {"type": "function"}},
    "CSSStartingStyleRule": {"value": {"type": "function"}},
    "CloseWatcher": {"value": {"type": "function"}},
    "ContentVisibilityAutoStateChangeEvent": {"value": {"type": "function"}},
    "DelegatedInkTrailPresenter": {"value": {"type": "function"}},
    "Ink": {"value": {"type": "function"}},
    "DocumentPictureInPictureEvent": {"value": {"type": "function"}},
    "Highlight": {"value": {"type": "function"}},
    "HighlightRegistry": {"value": {"type": "function"}},
    "MediaMetadata": {"value": {"type": "function"}},
    "MediaSession": {"value": {"type": "function"}},
    "MutationEvent": {"value": {"type": "function"}},
    "NavigatorUAData": {"value": {"type": "function"}},
    "Notification": {"value": {"type": "function"}},
    "PaymentManager": {"value": {"type": "function"}},
    "PaymentRequestUpdateEvent": {"value": {"type": "function"}},
    "PeriodicSyncManager": {"value": {"type": "function"}},
    "PermissionStatus": {"value": {"type": "function"}},
    "Permissions": {"value": {"type": "function"}},
    "PushManager": {"value": {"type": "function"}},
    "PushSubscription": {"value": {"type": "function"}},
    "PushSubscriptionOptions": {"value": {"type": "function"}},
    "RemotePlayback": {"value": {"type": "function"}},
    "ScrollTimeline": {"value": {"type": "function"}},
    "ViewTimeline": {"value": {"type": "function"}},
    "SharedWorker": {"value": {"type": "function"}},
    "SpeechSynthesisErrorEvent": {"value": {"type": "function"}},
    "SpeechSynthesisEvent": {"value": {"type": "function"}},
    "SpeechSynthesisUtterance": {"value": {"type": "function"}},
    "VideoPlaybackQuality": {"value": {"type": "function"}},
    "VisibilityStateEntry": {"value": {"type": "function"}},
    "webkitSpeechGrammar": {"value": {"type": "function"}},
    "webkitSpeechGrammarList": {"value": {"type": "function"}},
    "webkitSpeechRecognition": {"value": {"type": "function"}},
    "webkitSpeechRecognitionError": {"value": {"type": "function"}},
    "webkitSpeechRecognitionEvent": {"value": {"type": "function"}},
    "webkitRequestFileSystem": {"value": {"type": "function"}},
    "webkitResolveLocalFileSystemURL": {"value": {"type": "function"}},
    "  $$__oser/moc.t": {"value": {"value": "{}"}},
    "  $$__8vtx49h40zi": {"value": {"type": "function"}},
    "jQuery": {"get": true, "set": true},
    "___dm": {"value": {"value": "2"}},
    "___dto": {"value": {"type": "function"}},
    "___1763963439": {},
    "___314393400": {},
    "___1323277659": {},
    "___886343834": {},
    "swa": {"value": {"value": "{\"geolocation\":\"georegion=247,country_code=US,region_code=CO,city=BOULDER,dma=751,pmsa=1125,msa=2082,areacode=303,county=BOULDER,fips=08013,lat=40.0440,long=-105.194,timezone=MST,zip=80301-80310+80314+80321-80323+80328-80329,continent=NA,asnum=197547,throughput=vhigh,bw=5000\",\"inflight\":false,\"status\":{\"fitState\":false,\"fitURL\":\"\"}}"}},
    "isCookiesEnabled": {"value": {"value": "true"}},
    "isIERegex": {"value": {"value": "{}"}},
    "storeName": {},
    "storeData": {},
    "fontFaceName": {},
    "style": {},
    "MP": {"value": {"value": "{\"Version\":\"3.1.1.0\",\"SrcLang\":\"en\",\"UrlLang\":\"en\",\"SrcUrl\":\"https://www.southwest.com/air/booking/index.html?adultPassengersCount=1&adultsCount=1&departureDate=2023-07-13&departureTimeOfDay=ALL_DAY&destinationAirportCode=BOS&fareType=POINTS&int=HOMEQBOMAIR&originationAirportCode=LAS&passengerType=ADULT&reset=true&returnDate=&returnTimeOfDay=ALL_DAY&tripType=oneway&validate=true\",\"oSite\":\"www.southwest.com\",\"tSite\":\"www.southwest.com\"}"}},
    "_satellite": {"value": {"value": "{\"property\":{\"name\":\"Southwest .com and swabiz\",\"id\":\"PRe7dded73abf54750a52c54bc6fbb26e1\"},\"company\":{\"orgId\":\"65D316D751E563EC0A490D4C@AdobeOrg\",\"dynamicCdnEnabled\":false},\"buildInfo\":{\"minified\":true,\"buildDate\":\"2023-12-13T20:01:36Z\",\"turbineBuildDate\":\"2023-02-22T20:37:26Z\",\"turbineVersion\":\"27.5.0\"},\"environment\":{\"id\":\"EN83b220596d424ebf842d3fb68f8aaf97\",\"stage\":\"production\"},\"logger\":{},\"cookie\":{},\"domReadyFired\":true}"}},
    "__satelliteLoaded": {"value": {"value": "true"}},
    "adobe": {"value": {"value": "{\"OptInCategories\":{\"AAM\":\"aam\",\"ADCLOUD\":\"adcloud\",\"ANALYTICS\":\"aa\",\"CAMPAIGN\":\"campaign\",\"ECID\":\"ecid\",\"LIVEFYRE\":\"livefyre\",\"TARGET\":\"target\",\"MEDIA_ANALYTICS\":\"mediaaa\"},\"optIn\":{},\"target\":{\"VERSION\":\"2.11.2\",\"event\":{\"LIBRARY_LOADED\":\"at-library-loaded\",\"REQUEST_START\":\"at-request-start\",\"REQUEST_SUCCEEDED\":\"at-request-succeeded\",\"REQUEST_FAILED\":\"at-request-failed\",\"CONTENT_RENDERING_START\":\"at-content-rendering-start\",\"CONTENT_RENDERING_SUCCEEDED\":\"at-content-rendering-succeeded\",\"CONTENT_RENDERING_FAILED\":\"at-content-rendering-failed\",\"CONTENT_RENDERING_NO_OFFERS\":\"at-content-rendering-no-offers\",\"CONTENT_RENDERING_REDIRECT\":\"at-content-rendering-redirect\"}}}"}},
    "Visitor": {"value": {"type": "function"}},
    "s_c_in": {"value": {"value": "4"}},
    "dataChannel": {"value": {"value": "\"FullSite\""}},
    "__target_telemetry": {"value": {"value": "{}"}},
    "___target_traces": {"value": {"value": "[]"}},
    "mboxCreate": {"value": {"type": "function"}},
    "mboxDefine": {"value": {"type": "function"}},
    "mboxUpdate": {"value": {"type": "function"}},
    "require": {"value": {"type": "function"}},
    "webpackChunkspa_air_booking": {"value": {"value": "[[[736],{}]]"}},
    "targetPageParamsAll": {"value": {"type": "function"}},
    "__core-js_shared__": {"value": {"value": "{\"versions\":[{\"version\":\"3.33.1\",\"mode\":\"global\",\"copyright\":\"© 2014-2023 Denis Pushkarev (zloirock.ru)\",\"license\":\"https://github.com/zloirock/core-js/blob/v3.33.1/LICENSE\",\"source\":\"https://github.com/zloirock/core-js\"},{\"version\":\"3.14.0\",\"mode\":\"global\",\"copyright\":\"© 2021 Denis Pushkarev (zloirock.ru)\"}],\"wks\":{},\"keys\":{\"IE_PROTO\":\"Symbol(IE_PROTO)_1.6y81i65anb\",\"hidden\":\"Symbol(hidden)_2.6y81i65anb\"},\"state\":{},\"symbols\":{},\"op-symbols\":{},\"string-to-symbol-registry\":{},\"symbol-to-string-registry\":{}}"}},
    "clearImmediate": {"value": {"type": "function"}},
    "setImmediate": {"value": {"type": "function"}},
    "regeneratorRuntime": {"value": {"value": "{}"}},
    "_": {"value": {"type": "function"}},
    "data": {"value": {"value": "{}"}},
    "data_a": {
        "value": {"value": "{\"events\":{\"AnalyticsTrackingDetected\":\"air-booking-index\",\"pageLoaded\":\"air-booking-index\",\"adBlockerDetected\":true},\"referrerData\":{},\"stores\":{\"PageNotificationStore\":{\"page\":{\"errors\":[],\"messages\":[],\"onErrorClose\":null}},\"CustomerStore\":{\"accessToken\":null,\"corporateSupportUserInformation\":null,\"corporateTokenGranted\":false,\"customerInformation\":{\"companionPassInfo\":{}},\"expirationTime\":null,\"idToken\":null,\"lastModified\":null,\"sessionExpired\":false,\"token\":null,\"typeToken\":\"Bearer\",\"userRole\":\"default\"},\"CartStore\":{\"products\":{},\"upsellInformation\":{\"airBookingPriceUpsellSelected\":false,\"earlyBirdEligible\":false,\"earlyBirdIneligibleReason\":null,\"earlyBirdUpsellModal\":{},\"fareDifference\":{},\"fareDrawer\":{},\"flightExtras\":{\"upsellRepriced\":false},\"mixedFare\":false,\"originalAirProducts\":{},\"repriceModal\":{},\"site\":null,\"upgradeInformation\":[{\"upgradeFrom\":\"\",\"upgradeTo\":\"\"},{\"upgradeFrom\":\"\",\"upgradeTo\":\"\"}]}},\"ConfirmationStore\":{\"products\":{},\"reservations\":{}},\"MetadataStore\":{\"metadata\":{\"useAirCheckInIssuanceForDomesticGroup\":false,\"useEarlyBirdPayPal\":true,\"branchEnabled\":true,\"branchTimeout\":2500,\"useAirRetrieveCreditCardForm\":false,\"pointsDotComService\":true,\"logLevel\":\"ERROR\",\"cancelGDSGDSEmailEnabled\":true,\"mboxDefaultTimeout\":2000,\"swabizDocLongTerm\":true,\"mboxEnabled\":true,\"useScheduledAircraftType\":true,\"usePointsActivityInHomepage\":true,\"enableLowFareCalendar\":false,\"logReportInterval\":15000,\"useAirCheckInMobileBoardingPass\":true,\"useMinimalFlightStops\":true,\"useBookingDotcomHotelAd\":true,\"alternateFooter\":true,\"earlyBirdService\":true,\"aliceDollarOff\":true,\"miniCartEnabled\":false,\"frequentTravelers\":false,\"upsellModalOnSelectFlights\":true,\"useAirChangeWithStandardPage\":true,\"motionPointModalEnabled\":true,\"logMaxMessageToQueue\":20,\"secondPlacementsCallEnabled\":true,\"useAirCheckInWiFiOnBoard\":true,\"paymentInfoService\":true,\"discountServiceMaintenanceModeForDotcom\":false,\"discountServiceMaintenanceModeForSwabiz\":false,\"cvvForSavedCreditCard\":true,\"cvvForSavedCreditCardSwabiz\":true,\"carCrossSellEnabled\":true,\"cvvForEnteredCreditCardSwabiz\":false,\"chapiVersion\":\"1.70.009-9\",\"airFirstTimeFlyer\":true,\"rapidRewardsMaintenance\":false,\"earlyBirdCrossSellEnabled\":true,\"proxyLogout\":true,\"payPalService\":true,\"fundsService\":true}},\"LocaleStore\":{\"locale\":\"en\"},\"LdapLoginStore\":{\"accessToken\":null,\"error\":null,\"flowsAllowed\":[],\"idToken\":null,\"typeToken\":null,\"username\":null},\"AirChangeReservationSearchStore\":{\"nearbyAirportEmptyResultsData\":null,\"searchFormData\":null,\"searchResults\":null,\"storeIsSearching\":false,\"reset\":false},\"AirBookingSearchResultsSearchStore\":{\"nearbyAirportEmptyResultsData\":null,\"searchFormData\":null,\"searchResults\":null,\"storeIsSearching\":false,\"reset\":false},\"AirChangeSelectSearchStore\":{\"nearbyAirportEmptyResultsData\":null,\"searchFormData\":null,\"searchResults\":null,\"storeIsSearching\":false,\"reset\":false},\"LoginFormStore\":{},\"ChasePrequalOfferStore\":{\"acquisitionSourceCodes\":null,\"customerToken\":null,\"focCalled\":null,\"highValueIndicator\":null,\"idToken\":null,\"offerIdentifier\":null,\"offers\":null,\"swaOffersIdentitySource\":null},\"CatalogSearchStore\":{\"nearbyAirportEmptyResultsData\":null,\"searchFormData\":null,\"searchResults\":null,\"storeIsSearching\":false,\"reset\":false},\"ContentStore\":{\"content\":{\"air-booking-index\":{\"globalNavFlightCarHotelAd1\":{\"modDate\":1579794398473,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"k1h0a21z\",\"crDate\":1579794398473,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1579794300000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"styles\":{\"top\":\"10px\",\"left\":\"10px\",\"width\":\"57px\",\"position\":\"absolute\",\"height\":\"57px\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/globalnav/ads/swa-earlybird.png\",\"alt\":\"EarlyBird\"}},{\"childContent\":[{\"textContent\":\"Add EarlyBird Check-In\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®\",\"styles\":{\"font-size\":\"14px\"},\"type\":\"sup\",\"props\":{}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"78px\",\"left\":\"10px\",\"fontSize\":\"22px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"b\"}],\"styles\":{\"backgroundColor\":\"#ffffff\",\"display\":\"block\",\"width\":\"335px\",\"height\":\"142px\"},\"type\":\"Link\",\"props\":{\"display\":\"block\",\"linkType\":\"advertisement\",\"href\":\"/early-bird/index.html?clk=GSUBNAV-PLAN-AD1-EB&forceNewSession=yes\",\"aria-label\":\"EarlyBird Check-In\"}},\"placementData\":null},\"revision\":0},\"globalNavFlightCarHotelAd2\":{\"modDate\":1698130898671,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":\"8450043\",\"id\":\"k1igz8og\",\"crDate\":1579794411446,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1698130800000,\"expDate\":1706169600000,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"styles\":{\"top\":\"10px\",\"left\":\"10px\",\"position\":\"absolute\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/globalnav/logos/swa_logo_dark_corporate.png\",\"alt\":\"Southwest Business\",\"width\":\"187px\",\"id\":\"graphic_1bsb87ldnqb\",\"height\":\"57px\"}},{\"childContent\":[{\"textContent\":\"Manage meetings travel with ease.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"78px\",\"left\":\"15px\",\"fontSize\":\"22px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_z1p2ns7veb\"}}],\"styles\":{\"backgroundColor\":\"#ffffff\",\"display\":\"block\",\"width\":\"335px\",\"height\":\"142px\"},\"type\":\"Link\",\"props\":{\"display\":\"block\",\"linkType\":\"advertisement\",\"id\":\"flex_ad_y9gmrod22n8\",\"href\":\"https://www.southwest.com/html/air/business-groups/corporate-travel/meetings-and-groups.html?clk=8450043&cbid=8450043&utm_medium=swagnav&utm_content=southwestbusinessad2\",\"aria-label\":\"Southwest Business\"}},\"placementData\":{\"contentBlockId\":\"8450043\"}},\"revision\":7},\"globalNavSpecialOffersAd1\":{\"modDate\":1698709351783,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":\"4810032\",\"id\":\"k1igz8oh\",\"crDate\":1579794424419,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1698709320000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"styles\":{\"top\":\"10px\",\"left\":\"0px\",\"position\":\"absolute\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/globalnav/ads/swa-hotels.png\",\"alt\":\"Hotels\",\"width\":\"57px\",\"id\":\"graphic_cm68a2thtab\",\"height\":\"57px\"}},{\"childContent\":[{\"textContent\":\"Earn up to 10,000 points per night\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\" on hotel stays. \",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"78px\",\"left\":\"0px\",\"fontSize\":\"22px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_bclzyogt45h\"}}],\"styles\":{\"backgroundColor\":\"#ffffff\",\"display\":\"block\",\"width\":\"375px\",\"height\":\"142px\"},\"type\":\"Link\",\"props\":{\"display\":\"block\",\"linkType\":\"advertisement\",\"id\":\"flex_ad_eapwaxbfj9t\",\"href\":\"https://www.southwesthotels.com/?label=SWA-GSUBNAV-OFFERS-HOTELS-072020&clk=4810032&cbid=4810032\"}},\"placementData\":{\"contentBlockId\":\"4810032\"}},\"revision\":5},\"globalNavFooter\":{\"modDate\":1704096050634,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"hzncddj6\",\"crDate\":1684943384605,\"type\":\"global-nav-footer\",\"lang\":\"en\",\"pubDate\":1704096000000,\"expDate\":null,\"content\":{\"displayType\":\"footer\",\"globalNavCopyright\":{\"copyright\":{\"value\":\"<style>\\n    [data-class=\\\"swa-g-screen-reader-only\\\"] {\\n        border: 0;\\n        clip: rect(0,0,0,0);\\n        height: 1px;\\n        margin: -1px;\\n        overflow: hidden;\\n        padding: 0;\\n        position: absolute;\\n        width: 1px;\\n    }\\n    \\n    .swa-footer--copyright-text, .footer-copyright--text {\\n        width:556px !important\\n    }\\n    #call_to_action_qdnph80bc1i, #call_to_action_oxew9f4k2gj{color:#ffffff;}\\n    div.footer div.flex-placement a:hover {\\n      text-decoration: underline !important;\\n    }\\n    div.footer div.flex-placement b a:hover {\\n      text-decoration: none !important;\\n    }\\n    \\n    .swa-footer--copyright-text a{\\n    text-decoration:underline;\\n    }\\n    .swa-footer--copyright-text a:hover{\\n    color:#111B40;\\n    }\\n    \\n    #FlyoutTrigger_5 > div > div > div.overlay-container--flyout-content > div > div.header-flyout--content-section > div:nth-child(3) > a:hover .link--text b * {\\n        color: #111B40;\\n    }\\n    \\n    /* Spanish Homepage footer */\\n    \\n    html[lang=\\\"es\\\"] div.footer div.flex-placement > b:nth-child(6) {\\n        left: 277px !important;\\n    }\\n    \\n    html[lang=\\\"es\\\"] div.footer div.flex-placement > b:nth-child(7) {\\n        left: 277px !important;\\n    }\\n    \\n    html[lang=\\\"es\\\"] div.footer div.flex-placement > div:nth-child(8) {\\n        left: 467px !important;\\n    }\\n    \\n    html[lang=\\\"es\\\"] div.footer div.flex-placement > div:nth-child(9) {\\n        left: 278px !important;\\n    }\\n    \\n    html[lang=\\\"es\\\"] div.footer div.flex-placement > div:nth-child(10) {\\n        left: 482px !important;\\n    }\\n    \\n    html[lang=\\\"es\\\"] div.footer div.flex-placement > span.swa-icon.swa-icon_small.swa-icon_external-link-box {\\n        right: 185px !important;\\n    }\\n    \\n    /* Fare chart comparison flyby */\\n    .air-booking-select-compare-fares-secondary .compare-fares-secondary--flyby {\\n        font-style: normal;\\n        font-weight: bold;\\n    }\\n    \\n \\n    /* Air CheckIn Banner Button Fix */\\n    .air-check-in-edit-contact-information-banner--link {\\n        bottom: 200px;\\n        position: absolute;\\n        right: 25px;\\n    }\\n    \\n    .facebook-share-button-command--button {\\n      background-color: #3b5998 !important;\\n    }\\n    \\n    /* Air Booking Select - Fare benefit first th width */\\n    .air-booking-select-compare-fares-secondary .compare-fares-secondary--header-cell {\\n        width: 348px;\\n    }\\n    /* Air Booking Select - Fare benefit sub-label workaround */\\n    .compare-fares-secondary--row:nth-of-type(5) .compare-fares-secondary--header-cell .compare-fares-secondary--label-addendum::after {\\n        content: \\\"(That money is all yours.)\\\";\\n        color: #636363;\\n        display: inline-block;\\n        font: italic normal 11px/1 Arial;\\n        height: 6px;\\n        white-space: normal;\\n        width: 273px;\\n    }\\n    .compare-fares-secondary--row:nth-of-type(10) .compare-fares-secondary--header-cell .compare-fares-secondary--label div::after {\\n        content: \\\"(Temporarily suspended.)\\\";\\n        color: #636363;\\n        display: block;\\n        font: italic normal 11px/1 Arial;\\n        height: 6px;\\n        white-space: normal;\\n        width: 273px;\\n        padding-left: 30px;\\n        padding-top: 5px;\\n    }\\n    \\n    .header-flyout-links .header-flyout-links--item .swa-icon_search { padding-left: 1px; }\\n\\n    /* Qualtrics print media fix */\\n   @media print {\\n      #QSIFeedbackButton-target-container, .QSIFeedbackButton, #QSIFeedbackButton-btn {\\n         visibility: hidden !important;\\n      }\\n   }\\n    </style>\\n Southwest Airlines Co. All Rights Reserved. Use of the Southwest websites and our Company Information constitutes acceptance of our <a href=\\\"/about-southwest/terms-and-conditions/?clk=GFOOTER-BOTTOM-TC\\\"  target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">Terms and Conditions</a>. <a href=\\\"/about-southwest/terms-and-conditions/privacy-policy/?clk=GFOOTER-BOTTOM-PRIVACY\\\" aria-label=\\\"View our privacy policy\\\"  target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">Privacy Policy</a> <a href=\\\"/about-southwest/trademarks.html?clk=GFOOTER-TRADEMARKS\\\" aria-label=\\\"View our trademarks\\\"  target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">Trademarks</a> <a href=\\\"https://www.southwest.com/dataprivacyrequest/?clk=4028122&cbid=4028122\\\"  target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">Do Not Sell/Share My Personal Information</a>\\n    &nbsp;\"},\"legend\":{\"value\":\"Indicates external site which may or may not meet accessibility guidelines\"},\"logos\":[{\"altText\":\"Southwest Business \",\"src\":\"/assets/images/globalnav/logos/swa_footer_logo_business_travel.svg\",\"width\":99,\"url\":\"/html/air/corporate-travel.html?clk=GFOOTER-BOTTOM-SWABIZ&utm_source=Web&utm_medium=gfooter&utm_content=bottom_logo\",\"height\":24,\"aria-label\":\"Southwest Business \"},{\"altText\":\"Southwest Cargo\",\"src\":\"/assets/images/globalnav/logos/swa_footer_logo_swa_cargo.svg\",\"width\":99,\"url\":\"/cargo/?clk=GFOOTER-BOTTOM-CARGO\",\"height\":24,\"aria-label\":\"Southwest Cargo\"}]},\"globalNavFooterLinks\":[{\"linkColumns\":[{\"linkColumnText\":[{\"newWindow\":false,\"externalLink\":false,\"value\":\"What's New\",\"url\":\"/experience/?clk=GFOOTER-ABOUT-WHATS-NEW\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Press Room\",\"url\":\"http://www.swamedia.com/?clk=GFOOTER-ABOUT-PRESS\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Investor Relations\",\"url\":\"http://www.southwestairlinesinvestorrelations.com/?clk=GFOOTER-ABOUT-INVESTOR\",\"ariaLabel\":\"Link to external Investor Relations website.\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Corporate Citizenship\",\"url\":\"/citizenship/?clk=GFOOTER-ABOUT-DIFFERENCE-SOUTHWEST-CARES\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Southwest.fm\",\"url\":\"https://southwest.fm?clk=GFOOTER-ABOUT-FM\",\"ariaLabel\":\"Southwest.fm\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Supplier Information\",\"url\":\"/supplier-information/?clk=GFOOTER-ABOUT-SUPPLIER\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Careers\",\"url\":\"http://careers.southwestair.com/?clk=GFOOTER-ABOUT-CAREERS\"},{\"newWindow\":true,\"externalLink\":false,\"value\":\"Code of Conduct \",\"url\":\"/assets/pdfs/about-southwest/230919_Code_of_Conduct_fv_2.pdf\",\"ariaLabel\":\"Southwest code of conduct pdf\"}],\"linkColumnHeader\":{\"externalLink\":false,\"value\":\"About Southwest\",\"url\":\"/about-southwest/?clk=GFOOTER-ABOUT-ABOUT\"}},{\"linkColumnText\":[{\"newWindow\":false,\"externalLink\":false,\"value\":\"Flying with Southwest\",\"url\":\"/flying-with-southwest/?clk=GFOOTER-FLYING-SOUTHWEST\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Rapid Rewards<sup>&reg;</sup>\",\"url\":\"/enroll\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"International Travel\",\"url\":\"/html/air/intl/?clk=GFOOTER-FLY-INTL\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Airport Information\",\"url\":\"/html/air/airport-information.html?clk=GFOOTER-FLY-AIRPORTINFO\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"New Destinations\",\"url\":\"/destinations/route-expansion?clk=GFOOTER-FLY-ROUTE-EXPANSION\",\"ariaLabel\":\"Find information on the new destinations Southwest is serving\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Explore Destinations\",\"url\":\"/travel-inspiration/?clk=GSUBNAV-Travel-Inspiration\",\"ariaLabel\":\"Explore Destinations\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Popular Routes\",\"url\":\"/html/air/routes/index.html?clk=GFOOTER-FLY-ROUTES\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Tarmac Delay Plan\",\"url\":\"/assets/pdfs/corporate-commitments/tarmac-delay-commitment.pdf\"},{\"newWindow\":true,\"externalLink\":false,\"value\":\"Contract of Carriage\",\"url\":\"https://www.southwest.com/contractofcarriage/?clk=GFOOTER-CoC\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Flight Schedules\",\"url\":\"/air/flight-schedules/index.html?clk=GFOOTER-FLY-FLTSCHEDULES\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Carbon Offset Program\",\"url\":\"/carbon-offset-program/?clk=GFOOTER-CARBON-OFFSET-PROGRAM\"}],\"linkColumnHeader\":{\"externalLink\":false,\"value\":\"Flying Southwest\",\"url\":\"/html/travel-experience/index.html?clk=GFOOTER-FLY\"}},{\"linkColumnText\":[{\"newWindow\":false,\"externalLink\":false,\"value\":\"Fare Types and Benefits\",\"url\":\"/airfare-types-benefits/?clk=GFOOTER-PRODUCTS-FAREBENEFITS\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"EarlyBird Check-in<sup>&reg;</sup>\",\"url\":\"/early-bird/index.html?clk=GFOOTER-PRODUCTS-EARLYBIRD&forceNewSession=yes\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Upgrade to Business Select<sup>&reg;</sup>\",\"url\":\"/air/upgrade/index.html?clk=GFOOTER-PRODUCTS-UPGRADEFLIGHT\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Upgraded Boarding\",\"url\":\"/upgraded-boarding/index.html?clk=GFOOTER-PRODUCTS-UPGRADED-BOARDING\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Southwest<sup>&reg;</sup> gift card\",\"url\":\"/gift_cards/gift_cards.html?clk=GFOOTER-PRODUCTS-SOUTHWESTGIFTCARD\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Hotels\",\"url\":\"https://www.southwesthotels.com/index.html?label=SWA-GFOOTER-HTL&clk=GFOOTER-PRODUCTS-HOTELS\"},{\"newWindow\":false,\"externalLink\":true,\"value\":\"Southwest Vacations\",\"url\":\"http://www.southwestvacations.com/?clk=GFOOTER-PRODUCTS-VACATIONS\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Inflight Entertainment & Internet\",\"url\":\"/inflight-entertainment-portal?clk=GFOOTER-PRODUCTS-WIFI\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Food & Beverage\",\"url\":\"/food-and-beverage?clk=GFOOTER-PRODUCTS-WIFI-FB\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Southwest Business\",\"url\":\"/html/air/business-groups/corporate-travel.html?clk=GFOOTER-PRODUCTS-BUSINESS-TRAVEL-GROUPS&utm_medium=swafooter&utm_content=southwestbusiness\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Southwest Cargo\",\"url\":\"https://www.swacargo.com/?clk=GFOOTER-PRODUCTS-CARGO&utm_medium=swafooter&utm_content=southwest\",\"ariaLabel\":\"Southwest Cargo\"},{\"newWindow\":true,\"externalLink\":false,\"value\":\"Groups\",\"url\":\"/help/additional-travel-accommodations/group-travel?clk=GFOOTER-PRODUCTS-GROUPS\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Charter Services\",\"url\":\"/html/travel-tools/charter.html?clk=GFOOTER-PRODUCTS-CHARTER\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Southwest<sup>&reg;</sup> The Store\",\"url\":\"https://www.swathestore.com\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Rapid Rewards<sup>&reg;</sup> Credit Card\",\"url\":\"/html/rapidrewards/partners/credit-cards/southwest-airlines-rapid-rewards-cards/index.html?clk=GFOOTER-PRODUCTS-CHASE\"}],\"linkColumnHeader\":{\"externalLink\":false,\"value\":\"Southwest Products\",\"url\":\"/html/air/products/index.html?clk=GFOOTER-PRODUCTS\"}},{\"linkColumnText\":[{\"newWindow\":false,\"externalLink\":false,\"value\":\"Sitemap\",\"url\":\"/html/customer-service/sitemap.html?clk=GFOOTER-CUSTOMER-SITEMAP\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Customer Commitments\",\"url\":\"/about-southwest/index.html?clk=GFOOTER-ABOUT-CUSTOMER-COMMITMENTS#_tab_5\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Baggage Policies\",\"url\":\"/help/baggage?clk=GFOOTER-CUSTOMER-BAGS\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Special Assistance\",\"url\":\"/html/customer-service/unique-travel-needs/customers-with-disabilities-pol.html?clk=GFOOTER-CUSTOMER-ASSISTANCE\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Military & Government Travel\",\"url\":\"/militarytravel/?clk=GFOOTER-MILITARYTRAVEL\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Customers of Size\",\"url\":\"/html/customer-service/extra-seat/?clk=GFOOTER-CUSTOMER-COS\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Traveling with Infants\",\"url\":\"/help/flying-with-children/flying-with-infants?clk=GFOOTER-CUSTOMER-INFANT\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Traveling with Pets\",\"url\":\"/help/booking/pet-policy?clk=GFOOTER-CUSTOMER-PET\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Purchasing &amp; Refunds\",\"url\":\"/html/customer-service/purchasing-and-refunds/index.html?clk=GFOOTER-CUSTOMER-PURCH-REFUND\"},{\"newWindow\":false,\"externalLink\":false,\"value\":\"Complete account setup\",\"url\":\"https://www.southwest.com/account/recovery?clk=GFOOTER-ACCT-SETUP\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Lost and Found\",\"url\":\"https://app.nettracer.aero/lf-pax/southwest/lostandfound/landing?clk=GFOOTER-CUSTOMER-LOST-FOUND\"},{\"newWindow\":true,\"externalLink\":true,\"value\":\"Southwest Vacations FAQ\",\"url\":\"https://www.southwestvacations.com/general/customer-care-and-travel-information?utm_source=southwest&utm_medium=psite-footer&utm_campaign=southwest_psite-footer&utm_content=D!footerhelp\"}],\"linkColumnHeader\":{\"externalLink\":false,\"value\":\"Help Center\",\"url\":\"/help?clk=GFOOTER-CUSTOMER-FAQ\"}}]}],\"globalNavFooterCalloutsInclude\":\"globalNavFooterCallout\"},\"revision\":15},\"globalNavFooterCallout\":{\"modDate\":1701354775530,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":\"3675062\",\"id\":\"k3t08z5n\",\"crDate\":1681501363568,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1648136340000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"childContent\":[{\"textContent\":\"Need help?\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#636363\",\"top\":\"40px\",\"left\":\"20px\",\"fontSize\":\"22px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_ms7sjhs297r\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Contact Us\",\"type\":\"span\"}],\"styles\":{\"text-decoration\":\"none\"},\"type\":\"a\",\"props\":{\"aria-describedby\":\"a11y-message-header--new-window\",\"rel\":\"noopener\",\"href\":\"/html/contact-us/index.html?clk=GFOOTER-CUSTOMER-CONTACT-US\",\"aria-label\":\"Contact us opens new window\",\"target\":\"_blank\"}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"69px\",\"left\":\"20px\",\"fontSize\":\"30px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_jeikg5xw5c\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Help Center\",\"type\":\"span\"}],\"styles\":{\"text-decoration\":\"none\"},\"type\":\"a\",\"props\":{\"aria-describedby\":\"a11y-message-header--new-window\",\"rel\":\"noopener\",\"href\":\"/help?clk=GFOOTER-FAQ\",\"aria-label\":\"Help opens new window\",\"target\":\"_blank\"}}],\"styles\":{\"word-wrap\":\"normal\",\"color\":\"#304cb2\",\"top\":\"115px\",\"left\":\"20px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_b4nm674vnyr\"}},{\"childContent\":[{\"textContent\":\"Subscribe\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#636363\",\"top\":\"40px\",\"left\":\"290px\",\"fontSize\":\"22px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_hfp1i8jklxo\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Wanna receive email from us?\",\"type\":\"span\"}],\"styles\":{\"text-decoration\":\"none\"},\"type\":\"a\",\"props\":{\"href\":\"/email-signup/?clk=GFOOTER-EMAIL-SIGNUP\",\"aria-label\":\"Email sign up\"}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"71px\",\"left\":\"290px\",\"width\":\"190px\",\"lineHeight\":\"20px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_o1w1gszgr5o\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Sign up\",\"type\":\"span\"}],\"styles\":{\"text-decoration\":\"none\",\"font-size\":\"13px\"},\"type\":\"a\",\"props\":{\"href\":\"/email-signup/?clk=GFOOTER-EMAIL-SIGNUP\",\"aria-label\":\"Sign up to get the latest deals\"}},{\"textContent\":\" to get the latest deals.\",\"styles\":{\"color\":\"#636363\",\"font-size\":\"13px\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#636363\",\"top\":\"114px\",\"left\":\"290px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_kbe9s98e1jq\"}},{\"childContent\":[{\"textContent\":\"Connect with us\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#636363\",\"top\":\"40px\",\"left\":\"596px\",\"fontSize\":\"22px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_n2s1p4id45\"}},{\"styles\":{\"top\":\"45px\",\"color\":\"#636363\",\"position\":\"absolute\",\"right\":\"200px\"},\"type\":\"Icon\",\"props\":{\"size\":\"small\",\"icon\":\"external-link-box\",\"id\":\"graphic_aboyeu8a09u\"}},{\"childContent\":[{\"styles\":{\"position\":\"absolute\"},\"type\":\"Icon\",\"props\":{\"size\":\"over-large\",\"icon\":\"facebook\",\"id\":\"graphic_0voulewqyyt9\"}}],\"styles\":{\"top\":\"70px\",\"color\":\"#3B5998\",\"width\":\"40px\",\"position\":\"absolute\",\"right\":\"355px\",\"height\":\"40px\"},\"type\":\"Link\",\"props\":{\"newWindow\":true,\"linkType\":\"\",\"href\":\"https://www.facebook.com/SouthwestAir\",\"aria-label\":\"Facebook opens new window - External site which may or may not meet accessibility guidelines.\"}},{\"childContent\":[{\"styles\":{\"position\":\"absolute\"},\"type\":\"Icon\",\"props\":{\"size\":\"over-large\",\"icon\":\"instagram\",\"id\":\"graphic_56d4nivnyee\"}}],\"styles\":{\"top\":\"70px\",\"color\":\"#517FA4\",\"width\":\"40px\",\"position\":\"absolute\",\"right\":\"312px\",\"height\":\"40px\"},\"type\":\"Link\",\"props\":{\"newWindow\":true,\"linkType\":\"\",\"href\":\"https://www.instagram.com/southwestair/?clk=GFOOTER-INSTAGRAM\",\"aria-label\":\"Instagram opens new window - External site which may or may not meet accessibility guidelines.\"}},{\"childContent\":[{\"styles\":{\"position\":\"absolute\"},\"type\":\"Icon\",\"props\":{\"size\":\"over-large\",\"icon\":\"youtube\",\"id\":\"graphic_6e6t33yr7k\"}}],\"styles\":{\"top\":\"70px\",\"color\":\"#BB0000\",\"width\":\"40px\",\"position\":\"absolute\",\"right\":\"269px\",\"height\":\"40px\"},\"type\":\"Link\",\"props\":{\"newWindow\":true,\"linkType\":\"\",\"href\":\"https://www.youtube.com/user/NutsAboutSouthwest?clk=GFOOTER-YOUTUBE\",\"aria-label\":\"Youtube opens new window - External site which may or may not meet accessibility guidelines.\"}},{\"childContent\":[{\"styles\":{\"position\":\"absolute\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/icons/linkedin-icon.png\",\"alt\":\"LinkedIn Icon\",\"width\":\"40px\",\"id\":\"graphic_sywr08qwmr\",\"height\":\"34px\"}}],\"styles\":{\"top\":\"70px\",\"width\":\"40px\",\"position\":\"absolute\",\"right\":\"226px\",\"height\":\"40px\"},\"type\":\"Link\",\"props\":{\"newWindow\":true,\"linkType\":\"\",\"href\":\"https://www.linkedin.com/company/southwest-airlines/?clk=GFOOTER-LINKEDIN\",\"aria-label\":\"LinkedIn opens new window - External site which may or may not meet accessibility guidelines.\"}},{\"childContent\":[{\"styles\":{\"position\":\"absolute\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/icons/pinterest-icon.png\",\"alt\":\"Pinterest Icon\",\"width\":\"35px\",\"id\":\"graphic_cj6h1q6mbfi\",\"height\":\"35px\"}}],\"styles\":{\"top\":\"70px\",\"width\":\"40px\",\"position\":\"absolute\",\"right\":\"183px\",\"height\":\"40px\"},\"type\":\"Link\",\"props\":{\"newWindow\":true,\"linkType\":\"\",\"href\":\"https://www.pinterest.com/southwestair/?clk=GFOOTER-PINTEREST\",\"aria-label\":\"Pinterest opens new window - External site which may or may not meet accessibility guidelines.\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Discussion Forum and Stories\",\"type\":\"span\"}],\"styles\":{\"text-decoration\":\"none\"},\"type\":\"a\",\"props\":{\"aria-describedby\":\"a11y-message-header--new-window\",\"rel\":\"noopener\",\"href\":\"https://community.southwest.com/?clk=GFOOTER-BLOG\",\"aria-label\":\"Discussion Forum and Stories opens new window\",\"target\":\"_blank\"}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"114px\",\"left\":\"596px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"right\"},\"props\":{\"id\":\"text_block_4to2zy3iyt\"}},{\"styles\":{\"backgroundColor\":\"#e6e7e8\",\"top\":\"70px\",\"left\":\"860px\",\"width\":\"1px\",\"position\":\"absolute\",\"height\":\"65px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_xcxyyyc6hd\"}},{\"styles\":{\"top\":\"62px\",\"color\":\"#304cb2\",\"position\":\"absolute\",\"right\":\"70px\"},\"type\":\"Icon\",\"props\":{\"size\":\"jumbo\",\"icon\":\"phone\",\"id\":\"graphic_i0o9g3gts8d\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Mobile Apps\",\"type\":\"span\"}],\"styles\":{\"text-decoration\":\"none\"},\"type\":\"a\",\"props\":{\"aria-describedby\":\"a11y-message-header--new-window\",\"rel\":\"noopener\",\"href\":\"/html/air/products/mobile.html?clk=GFOOTER-APPS\",\"aria-label\":\"Mobile phone opens new window\",\"target\":\"_blank\"}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"114px\",\"left\":\"875px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_owkcpg6f5fg\"}}],\"styles\":{\"backgroundColor\":\"#f5f5f5\",\"width\":\"990px\",\"height\":\"163px\"},\"props\":{\"id\":\"flex_ad_4mgxkz2ci9a\"}},\"placementData\":{\"contentBlockId\":\"3675062\"}},\"revision\":1},\"errorContentModule2\":{\"modDate\":1684434895959,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"lbfa8fo9\",\"crDate\":1676047500603,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1682355000000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"childContent\":[{\"textContent\":\"Car\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"5px 0 5px 10px\",\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"font-size\":\"18px\"},\"props\":{\"id\":\"text_block_fr884883is7\"}},{\"styles\":{\"padding\":\"0px\",\"width\":\"100%\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/confirmation/book-a-car.png\",\"alt\":\" \",\"width\":\"auto\",\"id\":\"graphic_6016equig1k\",\"height\":\"auto\"}},{\"childContent\":[{\"textContent\":\"Book a car on southwest.com\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"5px 5px 5px 10px\",\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"font-size\":\"16px\"},\"props\":{\"id\":\"text_block_0c70alwmovgc\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Low rates guaranteed\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin-top\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_56f1h2qalt\"}},{\"childContent\":[{\"textContent\":\"Reserve now, pay later\",\"type\":\"span\",\"props\":{}}],\"styles\":{},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_k21t4crrxj8\"}},{\"childContent\":[{\"textContent\":\"Earn Rapid Rewards® points\",\"type\":\"span\",\"props\":{}}],\"styles\":{},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_b2wwhde6t8\"}}],\"styles\":{\"margin\":\"0 10px 13px 30px\",\"color\":\"#ffffff\",\"list-style-type\":\"disc\",\"font-weight\":\"500\",\"font-size\":\"13px\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_t6zvnhi7fj\"}},{\"textContent\":\"Book now\",\"styles\":{\"margin\":\"10px\",\"color\":\"#ffffff\",\"bottom\":\"10px\",\"border-color\":\"#ffffff\"},\"type\":\"Button\",\"props\":{\"buttonType\":\"tertiary\",\"id\":\"call_to_action_7xqxohfb13c\",\"aria-label\":\"Book a car\",\"callToAction\":true}}],\"styles\":{\"background-color\":\"#294299\",\"padding\":\"0px\",\"width\":\"100%\",\"height\":\"100%\"},\"type\":\"Link\",\"props\":{\"mobileTarget\":\"webview\",\"newWindow\":true,\"linkType\":\"advertisement\",\"id\":\"flex_w2lz2jr7pzb\",\"href\":\"/car/booking/\",\"aria-label\":\"Book a car\"}}},\"revision\":2},\"errorContentModule1\":{\"modDate\":1684434894499,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"lb1944kq\",\"crDate\":1676047499722,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1682355000000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"childContent\":[{\"textContent\":\"Flight\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"5px 0 5px 10px\",\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"font-size\":\"18px\"},\"props\":{\"id\":\"text_block_fr884883is7\"}},{\"styles\":{\"padding\":\"0px\",\"width\":\"100%\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/confirmation/book-a-flight.png\",\"alt\":\" \",\"width\":\"auto\",\"id\":\"graphic_6016equig1k\",\"height\":\"auto\"}},{\"childContent\":[{\"textContent\":\"Book a flight\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"5px 5px 5px 10px\",\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"font-size\":\"16px\"},\"props\":{\"id\":\"text_block_0c70alwmovgc\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Bags fly free\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin-top\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_56f1h2qalt\"}},{\"childContent\":[{\"textContent\":\"No change fees\",\"type\":\"span\",\"props\":{}}],\"styles\":{},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_k21t4crrxj8\"}},{\"childContent\":[{\"textContent\":\"Wifi available\",\"type\":\"span\",\"props\":{}}],\"styles\":{},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_b2wwhde6t8\"}}],\"styles\":{\"margin\":\"0 10px 13px 30px\",\"color\":\"#ffffff\",\"list-style-type\":\"disc\",\"font-weight\":\"500\",\"font-size\":\"13px\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_t6zvnhi7fj\"}},{\"textContent\":\"Book now\",\"styles\":{\"margin\":\"10px\",\"color\":\"#ffffff\",\"bottom\":\"10px\",\"border-color\":\"#ffffff\"},\"type\":\"Button\",\"props\":{\"buttonType\":\"tertiary\",\"id\":\"call_to_action_7xqxohfb13c\",\"aria-label\":\"Book a flight\",\"callToAction\":true}}],\"styles\":{\"background-color\":\"#294299\",\"padding\":\"0px\",\"width\":\"100%\",\"height\":\"100%\"},\"type\":\"Link\",\"props\":{\"mobileTarget\":\"webview\",\"newWindow\":true,\"linkType\":\"advertisement\",\"id\":\"flex_w2lz2jr7pzb\",\"href\":\"/air/booking/\",\"aria-label\":\"Book a flight\"}}},\"revision\":2},\"errorContentModule3\":{\"modDate\":1684434897661,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"lbfa8foa\",\"crDate\":1676047504892,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1682355000000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"childContent\":[{\"textContent\":\"Hotel\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"5px 0 5px 10px\",\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"font-size\":\"18px\"},\"props\":{\"id\":\"text_block_fr884883is7\"}},{\"styles\":{\"padding\":\"0px\",\"width\":\"100%\"},\"type\":\"img\",\"props\":{\"src\":\"/swa-resources/images/confirmation/book-a-hotel.png\",\"alt\":\" \",\"width\":\"auto\",\"id\":\"graphic_6016equig1k\",\"height\":\"auto\"}},{\"childContent\":[{\"textContent\":\"Book a hotel\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"5px 5px 5px 10px\",\"color\":\"#ffffff\",\"font-weight\":\"bold\",\"font-size\":\"16px\"},\"props\":{\"id\":\"text_block_0c70alwmovgc\"}},{\"childContent\":[{\"textContent\":\"Get the best rate guaranteed and earn Rapid Rewards® points, too\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"margin\":\"10px 20px 23px 20px\",\"color\":\"#ffffff\",\"font-weight\":\"500\",\"font-size\":\"13px\"},\"props\":{\"id\":\"text_block_3vnve3bj0hh\"}},{\"textContent\":\"Book now\",\"styles\":{\"margin\":\"10px\",\"color\":\"#ffffff\",\"bottom\":\"10px\",\"border-color\":\"#ffffff\"},\"type\":\"Button\",\"props\":{\"buttonType\":\"tertiary\",\"suffixIconSize\":\"extra-small\",\"suffixIcon\":\"external-link-box\",\"id\":\"call_to_action_7xqxohfb13c\",\"aria-label\":\"Book a hotel\",\"callToAction\":true}}],\"styles\":{\"background-color\":\"#294299\",\"padding\":\"0px\",\"width\":\"100%\",\"height\":\"100%\"},\"type\":\"Link\",\"props\":{\"mobileTarget\":\"webview\",\"newWindowDescription\":\"Opens new windows. External site which may or may not meet accessibility guidelines.\",\"newWindow\":true,\"linkType\":\"advertisement\",\"id\":\"flex_w2lz2jr7pzb\",\"href\":\"https://www.southwesthotels.com\",\"aria-label\":\"Book a hotel\"}}},\"revision\":2},\"contentModule3\":{\"modDate\":1666029355617,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"id\":\"l6zff941-mweb\",\"lang\":\"en\",\"type\":\"flex-placement\",\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Hotel\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}]}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"5px\",\"left\":\"10px\",\"fontSize\":\"21px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_l0ghqsvpw6b\"}},{\"styles\":{\"top\":\"40px\",\"left\":\"0px\",\"width\":\"309px\",\"position\":\"absolute\",\"height\":\"auto\"},\"type\":\"img\",\"props\":{\"src\":\"/content/mkt/images/errors/book-a-hotel_685x305.png\",\"alt\":\" \",\"id\":\"graphic_vayxkl5xy37\"}},{\"childContent\":[{\"textContent\":\"Book a hotel\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"185px\",\"left\":\"20px\",\"fontSize\":\"16px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_vgdl22cpu5n\"}},{\"childContent\":[{\"textContent\":\"Get the best rate guaranteed and earn Rapid Rewards® points, too\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"210px\",\"left\":\"20px\",\"lineHeight\":\"18px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_oda2cw2a8am\"}},{\"childContent\":[{\"textContent\":\"Book now\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"280px\",\"left\":\"20px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_4if8tvclxsh\"}},{\"styles\":{\"top\":\"279px\",\"left\":\"93px\",\"width\":\"12px\",\"position\":\"absolute\",\"height\":\"auto\"},\"type\":\"img\",\"props\":{\"src\":\"/content/mkt/images/promotions/flex-arrow-bluebg-294299-whitearrow.jpg\",\"alt\":\" \",\"id\":\"graphic_4u1zw2hw7g6\"}}],\"styles\":{\"backgroundColor\":\"#294299\",\"width\":\"100%\",\"position\":\"relative\",\"height\":\"100%\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_dew9d9an7pc\"}}],\"styles\":{\"backgroundColor\":\"#294299\",\"fontFamily\":\"Southwest Sans, Arial, sans-serif\",\"display\":\"inline-block\",\"width\":\"309px\",\"height\":\"309px\"},\"type\":\"a\",\"props\":{\"display\":\"block\",\"id\":\"flex_bfu29hofpyu\",\"href\":\"https://www.southwesthotels.com\",\"command\":\"PLACEMENT_LINK\",\"aria-label\":\"Book a hotel\"}},\"placementData\":{\"linkType\":\"browser\"}}},\"globalNavSpecialOffersPromo\":{\"modDate\":1698700969454,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":\"5095041\",\"id\":\"k1igz8o9\",\"crDate\":1579794544850,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1601017200000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"childContent\":[{\"textContent\":\"Wanna receive email from us?\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#304cb2\",\"top\":\"50px\",\"left\":\"40px\",\"width\":\"220px\",\"fontSize\":\"23px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_0t3776vd7h4q\"}},{\"childContent\":[{\"textContent\":\"You'll get the latest news, information, and promotional offers from Southwest® all in one sweet email.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#343434\",\"top\":\"110px\",\"left\":\"41px\",\"width\":\"180px\",\"lineHeight\":\"18px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_2qentcbzt65\"}},{\"textContent\":\"Sign me up\",\"styles\":{\"top\":\"210px\",\"left\":\"40px\",\"font-size\":\"16px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Button\",\"props\":{\"buttonType\":\"tertiary\",\"largeSized\":true,\"id\":\"call_to_action_r55v45hj1hs\",\"aria-label\":\"Sign up for Southwest emails\",\"callToAction\":true}}],\"styles\":{\"backgroundColor\":\"#f5f5f5\",\"width\":\"270px\",\"height\":\"430px\"},\"type\":\"Link\",\"props\":{\"display\":\"block\",\"linkType\":\"advertisement\",\"id\":\"flex_ad_st2yviiwkc\",\"href\":\"/email-signup/?clk=GSUBNAV-SPCOFFER-SIGNUP\"}},\"placementData\":{\"contentBlockId\":\"5095041\"}},\"revision\":11},\"contentModule1\":{\"modDate\":1666029354047,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"id\":\"l6zff93z-mweb\",\"lang\":\"en\",\"type\":\"flex-placement\",\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Flight\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}]}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"5px\",\"left\":\"10px\",\"fontSize\":\"21px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_l0ghqsvpw6b\"}},{\"styles\":{\"top\":\"40px\",\"left\":\"0px\",\"width\":\"309px\",\"position\":\"absolute\",\"height\":\"auto\"},\"type\":\"img\",\"props\":{\"src\":\"/content/mkt/images/errors/book-a-flight_685x305.png\",\"alt\":\" \",\"id\":\"graphic_vayxkl5xy37\"}},{\"childContent\":[{\"textContent\":\"Book a flight\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"185px\",\"left\":\"20px\",\"fontSize\":\"16px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_vgdl22cpu5n\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Bags fly free\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"lineHeight\":\"13px\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_2lr6aetxbb\"}},{\"childContent\":[{\"textContent\":\"No change fees\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"lineHeight\":\"13px\",\"marginTop\":\"5px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_5lqq01bvqos\"}},{\"childContent\":[{\"textContent\":\"Wifi available\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"lineHeight\":\"13px\",\"marginTop\":\"5px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_1sq0921sqh6\"}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"205px\",\"left\":\"33px\",\"listStyleType\":\"disc\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_qrr7s1s777q\"}},{\"childContent\":[{\"textContent\":\"Book now\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"280px\",\"left\":\"20px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_f71n5xxos2\"}},{\"styles\":{\"top\":\"279px\",\"left\":\"93px\",\"width\":\"12px\",\"position\":\"absolute\",\"height\":\"auto\"},\"type\":\"img\",\"props\":{\"src\":\"/content/mkt/images/promotions/flex-arrow-bluebg-294299-whitearrow.jpg\",\"alt\":\" \",\"id\":\"graphic_q0q2ra3bn3j\"}}],\"styles\":{\"backgroundColor\":\"#294299\",\"width\":\"100%\",\"position\":\"relative\",\"height\":\"100%\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_dew9d9an7pc\"}}],\"styles\":{\"backgroundColor\":\"#294299\",\"fontFamily\":\"Southwest Sans, Arial, sans-serif\",\"display\":\"inline-block\",\"width\":\"309px\",\"height\":\"309px\"},\"type\":\"a\",\"props\":{\"display\":\"block\",\"id\":\"flex_bfu29hofpyu\",\"href\":\"airbooking\",\"command\":\"PLACEMENT_LINK\",\"aria-label\":\"Book a flight\"}},\"placementData\":{\"linkType\":\"app\"}}},\"contentModule2\":{\"modDate\":1666029354921,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"id\":\"l6zff940-mweb\",\"lang\":\"en\",\"type\":\"flex-placement\",\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true,\"shouldScalePlacement\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Car\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}]}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"5px\",\"left\":\"10px\",\"fontSize\":\"21px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_l0ghqsvpw6b\"}},{\"styles\":{\"top\":\"40px\",\"left\":\"0px\",\"width\":\"309px\",\"position\":\"absolute\",\"height\":\"auto\"},\"type\":\"img\",\"props\":{\"src\":\"/content/mkt/images/errors/book-a-car_685x305.png\",\"alt\":\" \",\"id\":\"graphic_vayxkl5xy37\"}},{\"childContent\":[{\"textContent\":\"Book a car on southwest.com\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"185px\",\"left\":\"20px\",\"fontSize\":\"16px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_vgdl22cpu5n\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Low rates guaranteed\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"lineHeight\":\"13px\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_2lr6aetxbb\"}},{\"childContent\":[{\"textContent\":\"Reserve now, pay later\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"lineHeight\":\"13px\",\"marginTop\":\"5px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_5lqq01bvqos\"}},{\"childContent\":[{\"textContent\":\"Earn Rapid Rewards® points\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"lineHeight\":\"13px\",\"marginTop\":\"5px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_1sq0921sqh6\"}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"205px\",\"left\":\"33px\",\"listStyleType\":\"disc\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_qrr7s1s777q\"}},{\"childContent\":[{\"textContent\":\"Book now\",\"type\":\"span\",\"translate\":\"false\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"280px\",\"left\":\"20px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_a8lm6wnwgzq\"}},{\"styles\":{\"top\":\"279px\",\"left\":\"93px\",\"width\":\"12px\",\"position\":\"absolute\",\"height\":\"auto\"},\"type\":\"img\",\"props\":{\"src\":\"/content/mkt/images/promotions/flex-arrow-bluebg-294299-whitearrow.jpg\",\"alt\":\" \",\"id\":\"graphic_yi0lm75fvk\"}}],\"styles\":{\"backgroundColor\":\"#294299\",\"width\":\"100%\",\"position\":\"relative\",\"height\":\"100%\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_dew9d9an7pc\"}}],\"styles\":{\"backgroundColor\":\"#294299\",\"fontFamily\":\"Southwest Sans, Arial, sans-serif\",\"display\":\"inline-block\",\"width\":\"309px\",\"height\":\"309px\"},\"type\":\"a\",\"props\":{\"display\":\"block\",\"id\":\"flex_bfu29hofpyu\",\"href\":\"carbooking\",\"command\":\"PLACEMENT_LINK\",\"aria-label\":\"Book a car\"}},\"placementData\":{\"linkType\":\"app\"}}},\"globalNavHeader\":{\"modDate\":1703199288632,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"jvcw48au\",\"crDate\":1683905770011,\"type\":\"global-nav-header\",\"lang\":\"en\",\"pubDate\":1703199240000,\"expDate\":null,\"content\":{\"displayType\":\"header\",\"globalNavLogo\":{\"altText\":\"Southwest\",\"src\":\"/swa-resources/images/globalnav/logos/swa_logo_dark.svg\",\"width\":223,\"url\":\"/?clk=GNAVHOMELOGO\",\"height\":34},\"globalNavPrimaryLinks\":[{\"dynamicContent\":{\"globalNavAd1\":\"globalNavFlightCarHotelAd1\",\"globalNavAd2\":\"globalNavFlightCarHotelAd2\"},\"flyout\":{\"utilityLinks\":[{\"prefixIcon\":\"check-in\",\"value\":\"CHECK IN\",\"url\":\"/air/check-in/?clk=GSUBNAV-CHCKIN\"},{\"prefixIcon\":\"clock\",\"value\":\"FLIGHT STATUS\",\"url\":\"/air/flight-status/?clk=GSUBNAV-FLTSTATUS\"},{\"prefixIcon\":\"change-flight\",\"value\":\"CHANGE FLIGHT\",\"url\":\"/air/change/?clk=GSUBNAV-CNGFLT\"}],\"linkColumns\":[{\"linkColumnText\":[{\"externalLink\":false,\"value\":\"Book a Flight\",\"url\":\"/air/booking/?clk=GSUBNAV-AIR-BOOK\"},{\"externalLink\":false,\"value\":\"Manage Reservations\",\"url\":\"/air/manage-reservation/?clk=GSUBNAV-AIR-MNGRES\"},{\"externalLink\":false,\"value\":\"Route Map\",\"url\":\"/flight/routemap_dyn.html?clk=GSUBNAV-AIR-ROUTEMAP\"},{\"externalLink\":false,\"value\":\"Explore Destinations\",\"url\":\"/travel-inspiration/?clk=GSUBNAV-Travel-Inspiration\"},{\"externalLink\":false,\"value\":\"Flight Schedules\",\"url\":\"/air/flight-schedules/?clk=GSUBNAV-AIR-SCHEDULES\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Track Checked Bags\",\"url\":\"https://southwest-bags.com/?clk=GSUBNAV-AIR-TRKBAGS&returnToURL=https%3A%2F%2Fsouthwest%2Ecom%2F&helpCenterURL=https%3A%2F%2Fsouthwest%2Ecom%2Fhelp%2Fbaggage%2Fchecked-baggage\"},{\"externalLink\":false,\"value\":\"International Travel\",\"url\":\"/html/air/intl?clk=GSUBNAV-AIR-INTLTRVL\"},{\"externalLink\":false,\"value\":\"Flight Offers\",\"url\":\"/html/specialoffers/air-offers.html?clk= GSUBNAV-OFFERS-AIR\"},{\"externalLink\":false,\"value\":\"Low Fare Calendar\",\"url\":\"/air/low-fare-calendar/?clk=GSUBNAV-AIR-LFCLNDR\"},{\"externalLink\":false,\"value\":\"Upgrade My Flight\",\"url\":\"/air/upgrade/?clk=GSUBNAV-AIR-UPGRADE\"},{\"externalLink\":false,\"value\":\"Add EarlyBird Check-In\",\"url\":\"/early-bird/index.html?clk=GSUBNAV-EARLY-BIRD\"},{\"externalLink\":false,\"value\":\"Check Travel Funds\",\"url\":\"/flight/travel-funds-search.html?clk=GSUBNAV-AIR-TRAVELFUNDS\"},{\"externalLink\":false,\"value\":\"Buy Carbon Offsets\",\"url\":\"https://www.southwest.com/carbon-offset-program/?clk=GSUBNAV-CARBON\"},{\"externalLink\":false,\"value\":\"Flying with Southwest\",\"url\":\"/flying-with-southwest/?clk=GSUBNAV-AIR-FLYINGSOUTHWEST\"}],\"linkColumnHeader\":{\"externalLink\":false,\"prefixIcon\":\"airplane\",\"value\":\"Flight\",\"url\":\"/air/booking/?clk=GNAV-FLIGHT\"}},{\"linkColumnText\":[{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Book a Hotel\",\"url\":\"https://www.southwesthotels.com/index.html?label=SWA-GSUBNAV-HOTEL-BOOK&clk=GSUBNAV-HOTEL-BOOK\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"More Than Hotels\",\"url\":\"https://www.southwesthotels.com/accommodations.html?aid=961823&label=SWA-GSUBNAV-OTHER-HOTELS&clk=GSUBNAV-MORE-HOTEL\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Manage Reservations\",\"url\":\"https://secure.southwesthotels.com/mybooking.html?label=SWA-GSUBNAV-HTL-MANAGE&clk=GSUBNAV-HTL-MANAGE\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Hotel Offers\",\"url\":\"https://www.southwesthotels.com/dealspage.html?clk=GSUBNAV-OFFERS-HOTELS\"},{\"externalLink\":false,\"value\":\"Best Rate Guarantee\",\"url\":\"/help/booking/booking-a-hotel?clk=GSUBNAV-HTL-BRGRNT#BestRateGuarantee\"},{\"externalLink\":false,\"value\":\"Rapid Rewards Partners\",\"url\":\"/html/rapidrewards/partners/travel/hotel/index.html?clk=GSUBNAV-HTL-PARTNERS\"}],\"linkColumnHeader\":{\"externalLink\":true,\"prefixIcon\":\"hotel\",\"value\":\"Hotel\",\"url\":\"https://www.southwesthotels.com/index.html?label=SWA-GSUBNAV-HOTEL&clk=GNAV-HOTEL\"}},{\"linkColumnText\":[{\"externalLink\":false,\"value\":\"Book a Car\",\"url\":\"/car/booking/index.html?clk=GSUBNAV-CAR-BOOK\"},{\"externalLink\":false,\"value\":\"Manage Reservations\",\"url\":\"/car/manage-reservation/index.html?clk=GSUBNAV-CAR-MANAGE\"},{\"externalLink\":false,\"value\":\"Car Offers\",\"url\":\"/special-offers/car-offers/?clk=GSUBNAV-OFFERS-CARS\"},{\"externalLink\":false,\"value\":\"Rapid Rewards Partners\",\"url\":\"/html/rapidrewards/partners/travel/rental-car/index.html?clk=GSUBNAV-CAR-PARTNERS\"}],\"linkColumnHeader\":{\"externalLink\":false,\"prefixIcon\":\"car\",\"value\":\"Car\",\"url\":\"/car/booking/index.html?clk=GNAV-CAR\"}},{\"linkColumnText\":[{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Book a Vacation Package\",\"url\":\"https://www.southwestvacations.com/deals/vacation-special-offers?utm_source=southwest&utm_medium=psite-vacation-tab&utm_campaign=southwest_psite-vacation-tab&utm_content=D!gnavbook\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Manage a Vacation Package\",\"url\":\"https://res.southwestvacations.com/Registration/Login.aspx?ctl=M&itin=0&returnurl=https%3A%2F%2Fwww.southwestvacations.com%2F?utm_source=southwest&utm_medium=psite-vacation-tab&utm_campaign=southwest_psite-vacation-tab&utm_content=D!gnavmanagepackage\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Vacation Package Offers\",\"url\":\"https://www.southwestvacations.com/deals/vacation-special-offers/?clk=GSUBNAV-OFFERS-VACA  \"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Vacation Destinations\",\"url\":\"https://www.southwestvacations.com/destinations?utm_source=southwest&utm_medium=psite-vacation-tab&utm_campaign=southwest_psite-vacation-tab&utm_content=D!gnavdestinations\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Why Book With Us?\",\"url\":\"https://www.southwestvacations.com/benefits-of-booking-southwest-vacations?utm_source=southwest&utm_medium=psite-vacation-tab&utm_campaign=southwest_psite-vacation-tab&utm_content=D!gnavwhybook\"}],\"linkColumnHeader\":{\"externalLink\":true,\"prefixIcon\":\"vacations\",\"value\":\"Vacations\",\"url\":\"https://www.southwestvacations.com/deals/vacation-special-offers?utm_source=southwest&utm_medium=psite-vacation-tab&utm_campaign=southwest_psite-vacation-tab&utm_content=D!gnavheader\"}}]},\"value\":\"Flight | Hotel | Car | Vacations\",\"ariaLabel\":\"Flight Hotel Car Vacations\"},{\"dynamicContent\":{\"globalNavAd1\":\"globalNavSpecialOffersAd1\",\"globalNavPromo\":\"globalNavSpecialOffersPromo\"},\"flyout\":{\"linkColumns\":[{\"linkColumnText\":[{\"externalLink\":false,\"value\":\"Flight Offers\",\"url\":\"/special-offers/flight-deals/?clk=GSUBNAV-OFFERS-AIR\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Hotels Offers\",\"url\":\"https://www.southwesthotels.com/dealspage.html?clk=GSUBNAV-OFFERS-HOTELS\"},{\"externalLink\":false,\"value\":\"Car Offers\",\"url\":\"/special-offers/car-offers/?clk=GSUBNAV-OFFERS-CARS\"},{\"external\":true,\"newWindow\":true,\"externalLink\":true,\"value\":\"Vacation Offers\",\"url\":\"https://www.southwestvacations.com/deals/vacation-special-offers/?utm_source=southwest&utm_medium=psite-specialoffers&utm_campaign=southwest_psite-specialoffers&utm_content=D!gnavspecialoffers\"},{\"externalLink\":false,\"value\":\"Loyalty Offers\",\"url\":\"/special-offers/loyalty-offers/?clk=GSUBNAV-OFFERS-LOYAL\"}],\"linkColumnHeader\":{\"externalLink\":false,\"prefixIcon\":\"special-offers\",\"value\":\"Special Offers\",\"url\":\"/special-offers?clk=GSUBNAV-SPCLOFFR\"}}]},\"value\":\"Special Offers\",\"ariaLabel\":\"Special Offers\"},{\"dynamicContent\":{\"globalNavPromo\":\"globalNavRapidRewardsPromo\"},\"flyout\":{\"linkColumns\":[{\"linkColumnText\":[{\"externalLink\":false,\"value\":\"About Rapid Rewards\",\"url\":\"/rapid-rewards/?clk=GSUBNAV-RR-DETAILS\"},{\"externalLink\":false,\"value\":\"Sign up\",\"url\":\"/account/enroll?clk=5144033&f=z5144033zz\"},{\"externalLink\":false,\"value\":\"Earning Points\",\"url\":\"/rapid-rewards/points/how-to-earn/?clk=GSUBNAV-RR-EARN\"},{\"externalLink\":false,\"value\":\"Tier Benefits\",\"url\":\"/rapidrewards/tiers-more-alist?clk=GSUBNAV-RR-TIER\"},{\"externalLink\":false,\"value\":\"Rapid Rewards Credit Card\",\"url\":\"/html/rapidrewards/partners/credit-cards/southwest-airlines-rapid-rewards-cards/index.html?clk=GSUBNAV-RR-VISA\"},{\"externalLink\":false,\"value\":\"Redeem Points for Flights\",\"url\":\"/air/booking/?fareType=POINTS&clk=GSUBNAV-RR-REDEEM\"},{\"externalLink\":false,\"value\":\"Redeem Points for Car Rentals\",\"url\":\"https://www.southwest.com/rapidrewards/maritz-validate?clk=GSUBNAV-CAR-REDEEM&Path=punchout%2F_%2FA-25714%3Fcid%3Dswa_car_rental_25714\"},{\"newWindow\":true,\"externalLink\":false,\"value\":\"Redeem Points for Gift Cards & More\",\"url\":\"/rapidrewards/maritz-validate?clk=GSUBNAV-RR-GCANDMORE\"},{\"newWindow\":true,\"externalLink\":false,\"value\":\"Rapid Rewards Shopping\",\"url\":\"https://rapidrewardsshopping.southwest.com/?source=cl|SWA|ALL|cl|NA|link|na||HPNavBar|20150731&utm_source=cl&utm_medium=link&utm_campaign=&utm_content=HPNavBar&chan=cl&seg=NA&med=link&strm=na&cam=&cont=HPNavBar&end=1\"}],\"linkColumnHeader\":{\"externalLink\":false,\"prefixIcon\":\"\",\"value\":\"Program\",\"url\":\"/rapid-rewards/?clk=GNAVRPDRWDS-PROGRAM\"}},{\"linkColumnText\":[{\"externalLink\":false,\"value\":\"My Account\",\"url\":\"/myaccount?clk=GSUBNAV-RR-ACCOUNT\"},{\"externalLink\":false,\"value\":\"Account Login Help\",\"url\":\"/account/recovery?clk=GSUBNAV-RR-LOOKUP#needUsername\"},{\"externalLink\":false,\"value\":\"Promotions\",\"url\":\"/rapidrewards/promotions?clk=GSUBNAV-RR-PROMOS\"},{\"externalLink\":false,\"value\":\"Buy or Transfer Points\",\"url\":\"/rapid-rewards/points/buy-gift-transfer/?clk=GSUBNAV-RR-BUYPOINTS\"},{\"externalLink\":false,\"value\":\"Donate Points\",\"url\":\"/html/rapidrewards/promotions/donate-points-charity.html?clk=GSUBNAV-RR-DONATEPOINTS\"},{\"externalLink\":false,\"value\":\"Email Subscriptions\",\"url\":\"/myaccount/preferences/communication/subscriptions/edit?clk=GSUBNAV-RR-EMAILSUBS\"}],\"linkColumnHeader\":{\"externalLink\":false,\"prefixIcon\":\"\",\"value\":\"Manage\",\"url\":\"/myaccount?clk=GNAVRPDRWDS-MANAGE\"}}]},\"value\":\"Rapid rewards<sup class=\\\"swa-header--nav-reg\\\">&reg;</sup>\",\"ariaLabel\":\"Rapid rewards\"},{\"action\":\"GLOBALNAVSEARCH\",\"prefixIcon\":\"search\",\"ariaLabel\":\"Search\"}]},\"revision\":10},\"airPlanTripContentModule4R1C2\":{\"modDate\":1681502617847,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kynm1rm7-desktop\",\"crDate\":1681502617847,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1681502580000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Anytime\",\"type\":\"span\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_u0ieezi0red\"}},{\"styles\":{\"backgroundColor\":\"#a4baf2\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_fxthf2hv99s\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"88px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"117px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"145px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"7\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"8px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_ovxdb43vnj\"}},{\"childContent\":[{\"textContent\":\"EarlyBird Check-In\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®9\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"40px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_mxdxrgdxyd\"}},{\"childContent\":[{\"textContent\":\"Priority and Express Lane\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"8\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"66px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_fyesicjeygm\"}},{\"childContent\":[{\"textContent\":\"Earn 10X fare in Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"98px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_57c285aze5\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_abquz6kq4vs\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_si3h75fq1a\"}},{\"childContent\":[{\"textContent\":\"AND\",\"styles\":{\"text-transform\":\"uppercase\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"262px\",\"left\":\"100px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_89cu7ykrw9k\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"140px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_sy64f1km8x\"}},{\"childContent\":[{\"textContent\":\"all of the benefits of\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"Wanna Get Away \",\"styles\":{\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"plus\",\"styles\":{\"color\":\"#d5152e\",\"font-weight\":\"bold\",\"font-size\":\"16px\",\"font-family\":\"Fairwater Script, Brush Script MT, cursive\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"278px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_2nd6z99ypgl\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_w9dmh5qu4o\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_779zn407aon\"}},\"placementData\":{\"fareProductId\":\"ANY\"}},\"revision\":0},\"airBookingWhereWeFlyMap\":{\"modDate\":1566506927682,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"jcpla64k\",\"crDate\":1518214429089,\"type\":\"prototype\",\"lang\":\"en\",\"pubDate\":1566506921392,\"expDate\":null,\"content\":{\"src\":\"/swa-resources/images/RouteMap.svg\",\"width\":\"636\",\"alt\":\"route map\",\"height\":\"454\",\"placementData\":null},\"revision\":2},\"airPlanTripContentModule4R1C1\":{\"modDate\":1692193044891,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kx935bol-desktop\",\"crDate\":1681502620252,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1692192540000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Business Select\",\"type\":\"span\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_jkfndasmgqd\"}},{\"styles\":{\"backgroundColor\":\"#304cb2\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_py3zoq27yx\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"88px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"117px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"160px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"193px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"7\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"8px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_bcjcomgc9xa\"}},{\"childContent\":[{\"textContent\":\"Priority boarding A1-A15\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"40px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_s1dc23bmsi\"}},{\"childContent\":[{\"textContent\":\"Premium drink\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"10\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"(on flights 176 miles or more)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"66px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_eqtpk6nar2v\"}},{\"childContent\":[{\"textContent\":\"NEW \",\"styles\":{\"color\":\"#008020\",\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"- Free Inflight Internet\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"12\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"110px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_ag0gec2dekc\"}},{\"childContent\":[{\"textContent\":\"Earn 12X fare more Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"143px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_054wm5116m7i\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_qnslyjt3fsm\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_bpm9lqowsqd\"}},{\"childContent\":[{\"textContent\":\"AND\",\"styles\":{\"text-transform\":\"uppercase\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"262px\",\"left\":\"100px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_vqovlq6hdme\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"140px\",\"width\":\"70px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_1xfzgh8l7mh\"}},{\"childContent\":[{\"textContent\":\"all of the benefits of\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"Anytime\",\"styles\":{\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"277px\",\"left\":\"15px\",\"width\":\"200px\",\"lineHeight\":\"18px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_ptdbcvtfasa\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_n7v2rcf3paf\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_56h2oku5i2\"}}},\"revision\":1},\"airPlanTripContentModule4R1C4\":{\"modDate\":1692193051252,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kx935bon-desktop\",\"crDate\":1681502626264,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1692192540000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Wanna Get Away\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®\",\"styles\":{\"font-size\":\"11px\",\"margin-top\":\"-5px\",\"position\":\"absolute\"},\"type\":\"sup\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_ftz87gjhaqk\"}},{\"styles\":{\"backgroundColor\":\"#ffbf27\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_ev875rn3t48\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"104px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"133px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"164px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"208px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Non-refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"4\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"(flight credit if you cancel)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"11px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_a01dcw1413\"}},{\"childContent\":[{\"textContent\":\"Two bags fly free\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®1\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"54px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_srivt3tdb3s\"}},{\"childContent\":[{\"textContent\":\"No change\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"2\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" or cancel\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"3\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" fees\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"83px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_fndohjlieba\"}},{\"childContent\":[{\"textContent\":\"NEW \",\"styles\":{\"color\":\"#008020\",\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"- Free same-day standby\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"6\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" (taxes and fees may apply)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"113px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_1erilc7j5n5\"}},{\"childContent\":[{\"textContent\":\"Earn 6X fare in Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"160px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_0u38igzw4t2\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_a5qnh5digv5\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"170px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_2l558scyi8q\"}},{\"childContent\":[{\"textContent\":\"OUR BASE FARE\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"278px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_7xy7thwp154\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_3pxpy7lxmko\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_6keizhvh5xh\"}}},\"revision\":1},\"airPlanTripContentModule4R1C3\":{\"modDate\":1692193047235,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kx935bom-desktop\",\"crDate\":1681502621874,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1690824720000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Wanna Get Away \",\"type\":\"span\",\"props\":{}},{\"textContent\":\"plus\",\"styles\":{\"color\":\"#d5152e\",\"top\":\"-1px\",\"font-size\":\"24px\",\"font-family\":\"Fairwater Script, Brush Script MT, cursive\",\"position\":\"relative\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"®\",\"styles\":{\"font-size\":\"11px\",\"margin-top\":\"-5px\",\"position\":\"absolute\"},\"type\":\"sup\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_8vbp2r4ajfh\"}},{\"styles\":{\"backgroundColor\":\"#d5152e\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_gbq35ch1ut6\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"114px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"141px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"200px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Non-refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"5\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"(Transferable Flight Credit\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"™\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" if you cancel)\",\"styles\":{\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"8px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_xdjelj3xbe\"}},{\"childContent\":[{\"textContent\":\"Transferable Flight Credit\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"5\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"64px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_oq0cuu8ryi\"}},{\"childContent\":[{\"textContent\":\"Free same-day confirmed change\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"6\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" (taxes and fees may apply)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"93px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_fg6ceyjo9jc\"}},{\"childContent\":[{\"textContent\":\"Earn 8X fare in Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"152px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_k09dteakpnt\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_rwfcb4459k\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_akef08fjn2v\"}},{\"childContent\":[{\"textContent\":\"AND\",\"styles\":{\"text-transform\":\"uppercase\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"262px\",\"left\":\"100px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_mjm2mxm0d1j\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"140px\",\"width\":\"65px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_ka4axkwvy9b\"}},{\"childContent\":[{\"textContent\":\"all of the benefits of\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"Wanna Get Away\",\"styles\":{\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"277px\",\"left\":\"15px\",\"width\":\"200px\",\"lineHeight\":\"18px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_fxto0xkdr6s\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_1u43b0fda7n\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_qvaxygjrwre\"}},\"placementData\":{\"fareProductId\":\"PLU\"}},\"revision\":4},\"passengerUMInfo\":{\"modDate\":1701731509489,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kzspgrb9-desktop\",\"crDate\":1655126848922,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1655738640000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Children flying alone?\",\"type\":\"span\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"8px\",\"left\":\"10px\",\"fontSize\":\"16px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_fveelkqflgt\"}},{\"childContent\":[{\"textContent\":\"Unaccompanied minors are restricted to nonstop/direct domestic flights.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"40px\",\"left\":\"10px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_i80ed7z8pk\"}},{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Learn more\",\"type\":\"span\"}],\"type\":\"a\",\"props\":{\"aria-describedby\":\"a11y-message-header--new-window\",\"href\":\"/html/customer-service/family/unaccompanied-minors-pol.html?\",\"aria-label\":\"unaccompanied minor information (opens new window)\",\"target\":\"_blank\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"75px\",\"left\":\"10px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_2g1bx1y5q7l\"}}],\"styles\":{\"backgroundColor\":\"#e6e7e8\",\"width\":\"100%\",\"position\":\"relative\",\"height\":\"100%\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_06fneqz3kcp\"}}],\"styles\":{\"backgroundColor\":\"#f5f5f5\",\"display\":\"block\",\"width\":\"324px\",\"height\":\"106px\"},\"props\":{\"id\":\"flex_xfpfglztbda\"}}},\"revision\":1},\"airBookingInformationalLinks\":{\"modDate\":1577474916695,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"jcpla64j\",\"crDate\":1518214409344,\"type\":\"prototype\",\"lang\":\"en\",\"pubDate\":1577474880000,\"expDate\":null,\"content\":{\"linkOrder\":[\"where-we-fly\",\"calendar\"],\"linkType\":\"bookingWidgetType\",\"links\":{\"calendar\":{\"newWindow\":false,\"externallyLinked\":false,\"value\":\"Low Fare Calendar\",\"url\":\"/air/low-fare-calendar?int=HOME-BOOKING-WIDGET-LFC-AIR\",\"command\":\"\"},\"where-we-fly\":{\"newWindow\":true,\"externallyLinked\":false,\"value\":\"Where we fly\",\"url\":\"/flight/routemap_dyn.html\",\"command\":\"where-we-fly\"}},\"placementData\":null},\"revision\":6},\"airLowFareCalendarIndexContentModule4R1C1\":{\"modDate\":1692193044891,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kx935bol-desktop\",\"crDate\":1681502620252,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1692192540000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Business Select\",\"type\":\"span\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_jkfndasmgqd\"}},{\"styles\":{\"backgroundColor\":\"#304cb2\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_py3zoq27yx\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"88px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"117px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"160px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#304cb2\",\"top\":\"193px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"7\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"8px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_bcjcomgc9xa\"}},{\"childContent\":[{\"textContent\":\"Priority boarding A1-A15\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"40px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_s1dc23bmsi\"}},{\"childContent\":[{\"textContent\":\"Premium drink\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"10\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"(on flights 176 miles or more)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"66px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_eqtpk6nar2v\"}},{\"childContent\":[{\"textContent\":\"NEW \",\"styles\":{\"color\":\"#008020\",\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"- Free Inflight Internet\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"12\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"110px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_ag0gec2dekc\"}},{\"childContent\":[{\"textContent\":\"Earn 12X fare more Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"143px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_054wm5116m7i\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_qnslyjt3fsm\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_bpm9lqowsqd\"}},{\"childContent\":[{\"textContent\":\"AND\",\"styles\":{\"text-transform\":\"uppercase\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"262px\",\"left\":\"100px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_vqovlq6hdme\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"140px\",\"width\":\"70px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_1xfzgh8l7mh\"}},{\"childContent\":[{\"textContent\":\"all of the benefits of\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"Anytime\",\"styles\":{\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"277px\",\"left\":\"15px\",\"width\":\"200px\",\"lineHeight\":\"18px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_ptdbcvtfasa\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_n7v2rcf3paf\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_56h2oku5i2\"}}},\"revision\":1},\"airPlanTripContentModule4\":{\"modDate\":1669763257937,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kyaiyqaa-airPlanTripContentModule4\",\"crDate\":1669761402361,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1669763220000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"textContent\":\"Find the fare that works for you.\",\"styles\":{\"fontFamily\":\"Southwest Sans, Arial, sans-serif\",\"color\":\"#000000\",\"display\":\"block\",\"fontSize\":\"36px\",\"margin-top\":\"16px\",\"margin-bottom\":\"16px\",\"fontWeight\":\"bold\",\"text-align\":\"left\"},\"type\":\"h2\"},{\"childContent\":[{\"id\":\"airPlanTripContentModule4R1C1\",\"type\":\"Placement\"},{\"id\":\"airPlanTripContentModule4R1C2\",\"type\":\"Placement\"},{\"id\":\"airPlanTripContentModule4R1C3\",\"type\":\"Placement\"},{\"id\":\"airPlanTripContentModule4R1C4\",\"type\":\"Placement\"}]}],\"styles\":{\"border-radius\":\"0px\",\"backgroundColor\":\"#ffffff\",\"margin\":\"0 auto 30px\",\"display\":\"block\",\"width\":\"938px\",\"height\":\"400px\"}}},\"revision\":1},\"airLowFareCalendarIndexContentModule4R1C2\":{\"modDate\":1681502617847,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kynm1rm7-desktop\",\"crDate\":1681502617847,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1681502580000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Anytime\",\"type\":\"span\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_u0ieezi0red\"}},{\"styles\":{\"backgroundColor\":\"#a4baf2\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_fxthf2hv99s\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"88px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"117px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#a4baf2\",\"top\":\"145px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"7\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"8px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_ovxdb43vnj\"}},{\"childContent\":[{\"textContent\":\"EarlyBird Check-In\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®9\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"40px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_mxdxrgdxyd\"}},{\"childContent\":[{\"textContent\":\"Priority and Express Lane\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"8\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"66px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_fyesicjeygm\"}},{\"childContent\":[{\"textContent\":\"Earn 10X fare in Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"98px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_57c285aze5\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_abquz6kq4vs\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_si3h75fq1a\"}},{\"childContent\":[{\"textContent\":\"AND\",\"styles\":{\"text-transform\":\"uppercase\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"262px\",\"left\":\"100px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_89cu7ykrw9k\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"140px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_sy64f1km8x\"}},{\"childContent\":[{\"textContent\":\"all of the benefits of\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"Wanna Get Away \",\"styles\":{\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"plus\",\"styles\":{\"color\":\"#d5152e\",\"font-weight\":\"bold\",\"font-size\":\"16px\",\"font-family\":\"Fairwater Script, Brush Script MT, cursive\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"278px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_2nd6z99ypgl\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_w9dmh5qu4o\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_779zn407aon\"}},\"placementData\":{\"fareProductId\":\"ANY\"}},\"revision\":0},\"airWhereWeFlyMap\":{\"modDate\":1566506927682,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"jcpla64k\",\"crDate\":1518214429089,\"type\":\"prototype\",\"lang\":\"en\",\"pubDate\":1566506921392,\"expDate\":null,\"content\":{\"src\":\"/swa-resources/images/RouteMap.svg\",\"width\":\"636\",\"alt\":\"route map\",\"height\":\"454\",\"placementData\":null},\"revision\":2},\"airLowFareCalendarIndexContentModule4R1C3\":{\"modDate\":1692193047235,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kx935bom-desktop\",\"crDate\":1681502621874,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1690824720000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Wanna Get Away \",\"type\":\"span\",\"props\":{}},{\"textContent\":\"plus\",\"styles\":{\"color\":\"#d5152e\",\"top\":\"-1px\",\"font-size\":\"24px\",\"font-family\":\"Fairwater Script, Brush Script MT, cursive\",\"position\":\"relative\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"®\",\"styles\":{\"font-size\":\"11px\",\"margin-top\":\"-5px\",\"position\":\"absolute\"},\"type\":\"sup\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_8vbp2r4ajfh\"}},{\"styles\":{\"backgroundColor\":\"#d5152e\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_gbq35ch1ut6\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"114px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"141px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#d5152e\",\"top\":\"200px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Non-refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"5\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"(Transferable Flight Credit\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"™\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" if you cancel)\",\"styles\":{\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"8px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_xdjelj3xbe\"}},{\"childContent\":[{\"textContent\":\"Transferable Flight Credit\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"5\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"64px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_oq0cuu8ryi\"}},{\"childContent\":[{\"textContent\":\"Free same-day confirmed change\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"6\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" (taxes and fees may apply)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"93px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_fg6ceyjo9jc\"}},{\"childContent\":[{\"textContent\":\"Earn 8X fare in Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"152px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_k09dteakpnt\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_rwfcb4459k\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"75px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_akef08fjn2v\"}},{\"childContent\":[{\"textContent\":\"AND\",\"styles\":{\"text-transform\":\"uppercase\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"262px\",\"left\":\"100px\",\"fontSize\":\"14px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_mjm2mxm0d1j\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"140px\",\"width\":\"65px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_ka4axkwvy9b\"}},{\"childContent\":[{\"textContent\":\"all of the benefits of\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"Wanna Get Away\",\"styles\":{\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"277px\",\"left\":\"15px\",\"width\":\"200px\",\"lineHeight\":\"18px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_fxto0xkdr6s\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_1u43b0fda7n\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_qvaxygjrwre\"}},\"placementData\":{\"fareProductId\":\"PLU\"}},\"revision\":4},\"airLowFareCalendarIndexContentModule4R1C4\":{\"modDate\":1692193051252,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kx935bon-desktop\",\"crDate\":1681502626264,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1692192540000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"childContent\":[{\"childContent\":[{\"textContent\":\"Wanna Get Away\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®\",\"styles\":{\"font-size\":\"11px\",\"margin-top\":\"-5px\",\"position\":\"absolute\"},\"type\":\"sup\",\"props\":{}}]}],\"styles\":{\"color\":\"#111b40\",\"top\":\"3px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_ftz87gjhaqk\"}},{\"styles\":{\"backgroundColor\":\"#ffbf27\",\"top\":\"37px\",\"left\":\"15px\",\"width\":\"210px\",\"position\":\"absolute\",\"height\":\"4px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_ev875rn3t48\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"60px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"104px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"133px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"164px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"styles\":{\"color\":\"#ffbf27\",\"top\":\"208px\",\"left\":\"15px\",\"width\":\"200px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Icon\",\"props\":{\"size\":8,\"icon\":\"circle\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Non-refundable\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"4\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"(flight credit if you cancel)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"11px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_a01dcw1413\"}},{\"childContent\":[{\"textContent\":\"Two bags fly free\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"®1\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"54px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_srivt3tdb3s\"}},{\"childContent\":[{\"textContent\":\"No change\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"2\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" or cancel\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"3\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" fees\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"83px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_fndohjlieba\"}},{\"childContent\":[{\"textContent\":\"NEW \",\"styles\":{\"color\":\"#008020\",\"font-weight\":\"bold\"},\"type\":\"span\",\"props\":{}},{\"textContent\":\"- Free same-day standby\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"6\",\"type\":\"sup\",\"props\":{}},{\"textContent\":\" (taxes and fees may apply)\",\"styles\":{\"color\":\"#636363\",\"font-weight\":\"normal\",\"font-style\":\"italic\"},\"type\":\"span\",\"props\":{}}],\"styles\":{\"top\":\"113px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_1erilc7j5n5\"}},{\"childContent\":[{\"textContent\":\"Earn 6X fare in Rapid Rewards points on qualifying flights\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"11\",\"type\":\"sup\",\"props\":{}}],\"styles\":{\"top\":\"160px\",\"left\":\"5px\",\"position\":\"absolute\",\"marginTop\":\"0px\"},\"type\":\"li\",\"props\":{\"id\":\"text_list_item_0u38igzw4t2\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"45px\",\"left\":\"28px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"ul\",\"props\":{\"id\":\"text_list_a5qnh5digv5\"}},{\"styles\":{\"backgroundColor\":\"#636363\",\"top\":\"270px\",\"left\":\"15px\",\"width\":\"170px\",\"position\":\"absolute\",\"height\":\"1px\"},\"type\":\"div\",\"props\":{\"role\":\"presentation\",\"id\":\"line_separator_2l558scyi8q\"}},{\"childContent\":[{\"textContent\":\"OUR BASE FARE\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"278px\",\"left\":\"15px\",\"width\":\"200px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_7xy7thwp154\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"position\":\"relative\",\"height\":\"400px\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_3pxpy7lxmko\"}}],\"styles\":{\"backgroundColor\":\"none\",\"width\":\"234px\",\"height\":\"400px\"},\"props\":{\"id\":\"flex_6keizhvh5xh\"}}},\"revision\":1},\"airPlanTripContentModule8\":{\"modDate\":1698188737723,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"lms41av8\",\"crDate\":1696257862881,\"type\":\"accordion-block\",\"lang\":\"en\",\"pubDate\":1697612400000,\"expDate\":null,\"content\":{\"displayType\":\"accordion-block\",\"placement\":{\"items\":[{\"children\":\"<p><strong>Two bags fly free<sup>&reg;1<br /></sup></strong>First and second checked bags. Weight and size limits apply. A golf bag or skis in a container acceptable to Southwest<sup>&reg;</sup> can be substituted for one checked bag.</p>\\n<p>&nbsp;</p>\\n<p><strong>No change<sup>2</sup> or cancel fees<sup>3<br /></sup></strong>If you need to change an upcoming flight itinerary, you&rsquo;ll only pay the difference in fare (if one applies). Failure to cancel a reservation at least 10 minutes prior to scheduled departure may result in forfeited travel funds.​</p>\\n<p>&nbsp;</p>\\n<p><strong>Flight credit<sup>4<br /></sup></strong>Flight credits will be issued as long as the flight is canceled at least 10 minutes prior to the scheduled departure. Flight credits don&rsquo;t expire and are non-transferable. For travel booked with Rapid Rewards points: starting July 1, 2023 (12:00 a.m. CT), for Wanna Get Away&reg; or Wanna Get Away Plus&trade; reward travel reservations (booked with points): If you do not cancel your reservation at least 10 minutes before the flight&rsquo;s original scheduled departure time, any points used for booking will be forfeited, along with any taxes and fees associated with your reward travel reservation.</p>\\n<p>&nbsp;</p>\\n<p><strong>Transferable Flight Credit<sup>&trade;5<br /></sup></strong>Transferable Flight Credit&trade; will be issued as long as the flight is canceled at least 10 minutes prior to the scheduled departure. Transferable Flight Credit can be transferred between Rapid Rewards&reg; Members. Only one transfer is permitted. For bookings made through a Southwest&reg; Business channel, there is a limitation to transfer only between employees within the organization. Transferable Flight Credits don&rsquo;t expire. For travel booked with Rapid Rewards points: starting July 1, 2023 (12:00 a.m. CT), for Wanna Get Away&reg; or Wanna Get Away Plus&trade; reward travel reservations (booked with points): If you do not cancel your reservation at least 10 minutes before the flight&rsquo;s original scheduled departure time, any points used for booking will be forfeited, along with any taxes and fees associated with your reward travel reservation.</p>\\n<p>&nbsp;</p>\\n<p><strong>Free same-day change/standby<sup>6<br /></sup></strong> <strong>Same-day change: </strong>On the day of travel, you can switch free of airline charges to another flight with space available departing on the same calendar day between the same origin airport and destination airport as your original flight. With the exception of A-List Preferred and A-List Members, Customers who purchase Wanna Get Away fares are not eligible for free same-day change.<strong><br />Same-day standby: </strong>You can list for same-day standby on an earlier flight via a Southwest Customer Service Agent at the airport or the Southwest app or mobile web. You will receive a message based on the contact preference selected during booking if you are cleared on the flight. <br />For both same-day change and same-day standby, you must change your flight or request to be added to the same-day standby list at least 10 minutes prior to the scheduled departure of your original flight or the no-show policy will apply. If using the app or mobile web for standby, you must list your name 30 minutes ahead of scheduled departure. You will be required to pay any government taxes and fees associated with these itinerary changes but refunds will be provided. Your original boarding position is not guaranteed. Southwest Business Customers booked through travel agencies may need to see a Southwest agent at the airport for both a same-day change or standby listing. See <a style=\\\"color: #304cb2;\\\" href=\\\"https://www.southwest.com/airfare-types-benefits/sameday-standby-change/\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">southwest.com/standby</a> for more details.</p>\\n<p>&nbsp;</p>\\n<p><strong>Refundable<sup>7<br /></sup></strong>As long as you cancel your reservation at least ten (10) minutes prior to the scheduled departure of your flight. If you cancel, you&rsquo;re eligible to receive 100% of your ticket value as a refund to your original form of payment. A Southwest flight credit from a previous reservation that is applied toward a Business Select or Anytime fare will be refunded as a Transferable Flight Credit. For travel booked with Rapid Rewards points, if canceled, points will be returned to the Rapid Rewards account holder who booked the ticket.​</p>\\n<p>&nbsp;</p>\\n<p>*Starting July 1, 2023 (12:00 a.m. CT), for Wanna Get Away&reg; or Wanna Get Away Plus&trade; reward travel reservations (booked with points): If you do not cancel your reservation at least 10 minutes before the flight&rsquo;s original scheduled departure time, any points used for booking will be forfeited, along with any taxes and fees associated with your reward travel reservation.</p>\\n<p>&nbsp;</p>\\n<p>For Anytime or Business Select&reg; reward travel reservations: the points used for booking will be redeposited to the purchaser's Rapid Rewards&reg; account, and any taxes and fees associated with the reward travel reservation will be converted into a Transferable Flight Credit&trade; for future use.&nbsp;</p>\\n<p>&nbsp;</p>\\n<p><strong>Priority and Express Lanes<sup>8<br /></sup></strong>Priority and Express Lanes, (<a href=\\\"https://www.southwest.com/html/air/airport-information.html\\\">where available</a>), can be accessed by Business Select and Anytime Customers and A-List and A-List Preferred Members. Priority Lanes are at Southwest check-in counters, and Express Lanes are at security checkpoints.</p>\\n<p>&nbsp;</p>\\n<p><strong>EarlyBird Check-In<sup>&reg;9<br /></sup></strong>You will automatically be checked in to your flight 36 hours prior to scheduled departure. For Anytime fares purchased between 36 and 24 hours, the boarding position assignment process has begun so this may impact the boarding position assigned to you. If you purchase an Anytime fare within 24 hours of your flight&rsquo;s scheduled departure, you will not receive the EarlyBird Check-In benefit. In an irregular operation situation, the boarding position is not guaranteed.</p>\\n<p>&nbsp;</p>\\n<p><strong>Complimentary premium drink<sup>10<br /></sup></strong>Flights traveling 175 miles or less only serve water.​</p>\\n<p>&nbsp;</p>\\n<p><strong>Earning points<sup>11<br /></sup></strong>Points can be earned from (a) qualifying flights booked and flown through Southwest or (b) through qualifying purchases with our Rapid Rewards partners. Qualifying flights include flights paid entirely with dollars, Southwest LUV Vouchers<sup>&reg;</sup>, gift cards, or flight credits, and with no portion of the purchase price paid for with Rapid Rewards points.​ All Rapid Rewards rules and regulations apply and can be found at <strong><a href=\\\"https://www.southwest.com/help/rapid-rewards/rapid-rewards-program-terms-and-conditions?question=rules_and_regulations\\\" aria-describedby=\\\"a11y-message-header--new-window\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">Southwest.com/rrterms</a></strong>.</p>\\n<p>&nbsp;</p>\\n<p><strong>Free Inflight Internet<sup>12<br /></sup></strong>Where available. Available only on WiFi-enabled aircraft. Limited-time offer.​​</p>\",\"revealed\":true,\"id\":\"FareBenefits\",\"label\":\"Fare Benefits\"}]},\"placementData\":{}},\"revision\":2},\"airLowFareCalendarIndexContentModule8\":{\"modDate\":1698188737723,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"lms41av8\",\"crDate\":1696257862881,\"type\":\"accordion-block\",\"lang\":\"en\",\"pubDate\":1697612400000,\"expDate\":null,\"content\":{\"displayType\":\"accordion-block\",\"placement\":{\"items\":[{\"children\":\"<p><strong>Two bags fly free<sup>&reg;1<br /></sup></strong>First and second checked bags. Weight and size limits apply. A golf bag or skis in a container acceptable to Southwest<sup>&reg;</sup> can be substituted for one checked bag.</p>\\n<p>&nbsp;</p>\\n<p><strong>No change<sup>2</sup> or cancel fees<sup>3<br /></sup></strong>If you need to change an upcoming flight itinerary, you&rsquo;ll only pay the difference in fare (if one applies). Failure to cancel a reservation at least 10 minutes prior to scheduled departure may result in forfeited travel funds.​</p>\\n<p>&nbsp;</p>\\n<p><strong>Flight credit<sup>4<br /></sup></strong>Flight credits will be issued as long as the flight is canceled at least 10 minutes prior to the scheduled departure. Flight credits don&rsquo;t expire and are non-transferable. For travel booked with Rapid Rewards points: starting July 1, 2023 (12:00 a.m. CT), for Wanna Get Away&reg; or Wanna Get Away Plus&trade; reward travel reservations (booked with points): If you do not cancel your reservation at least 10 minutes before the flight&rsquo;s original scheduled departure time, any points used for booking will be forfeited, along with any taxes and fees associated with your reward travel reservation.</p>\\n<p>&nbsp;</p>\\n<p><strong>Transferable Flight Credit<sup>&trade;5<br /></sup></strong>Transferable Flight Credit&trade; will be issued as long as the flight is canceled at least 10 minutes prior to the scheduled departure. Transferable Flight Credit can be transferred between Rapid Rewards&reg; Members. Only one transfer is permitted. For bookings made through a Southwest&reg; Business channel, there is a limitation to transfer only between employees within the organization. Transferable Flight Credits don&rsquo;t expire. For travel booked with Rapid Rewards points: starting July 1, 2023 (12:00 a.m. CT), for Wanna Get Away&reg; or Wanna Get Away Plus&trade; reward travel reservations (booked with points): If you do not cancel your reservation at least 10 minutes before the flight&rsquo;s original scheduled departure time, any points used for booking will be forfeited, along with any taxes and fees associated with your reward travel reservation.</p>\\n<p>&nbsp;</p>\\n<p><strong>Free same-day change/standby<sup>6<br /></sup></strong> <strong>Same-day change: </strong>On the day of travel, you can switch free of airline charges to another flight with space available departing on the same calendar day between the same origin airport and destination airport as your original flight. With the exception of A-List Preferred and A-List Members, Customers who purchase Wanna Get Away fares are not eligible for free same-day change.<strong><br />Same-day standby: </strong>You can list for same-day standby on an earlier flight via a Southwest Customer Service Agent at the airport or the Southwest app or mobile web. You will receive a message based on the contact preference selected during booking if you are cleared on the flight. <br />For both same-day change and same-day standby, you must change your flight or request to be added to the same-day standby list at least 10 minutes prior to the scheduled departure of your original flight or the no-show policy will apply. If using the app or mobile web for standby, you must list your name 30 minutes ahead of scheduled departure. You will be required to pay any government taxes and fees associated with these itinerary changes but refunds will be provided. Your original boarding position is not guaranteed. Southwest Business Customers booked through travel agencies may need to see a Southwest agent at the airport for both a same-day change or standby listing. See <a style=\\\"color: #304cb2;\\\" href=\\\"https://www.southwest.com/airfare-types-benefits/sameday-standby-change/\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">southwest.com/standby</a> for more details.</p>\\n<p>&nbsp;</p>\\n<p><strong>Refundable<sup>7<br /></sup></strong>As long as you cancel your reservation at least ten (10) minutes prior to the scheduled departure of your flight. If you cancel, you&rsquo;re eligible to receive 100% of your ticket value as a refund to your original form of payment. A Southwest flight credit from a previous reservation that is applied toward a Business Select or Anytime fare will be refunded as a Transferable Flight Credit. For travel booked with Rapid Rewards points, if canceled, points will be returned to the Rapid Rewards account holder who booked the ticket.​</p>\\n<p>&nbsp;</p>\\n<p>*Starting July 1, 2023 (12:00 a.m. CT), for Wanna Get Away&reg; or Wanna Get Away Plus&trade; reward travel reservations (booked with points): If you do not cancel your reservation at least 10 minutes before the flight&rsquo;s original scheduled departure time, any points used for booking will be forfeited, along with any taxes and fees associated with your reward travel reservation.</p>\\n<p>&nbsp;</p>\\n<p>For Anytime or Business Select&reg; reward travel reservations: the points used for booking will be redeposited to the purchaser's Rapid Rewards&reg; account, and any taxes and fees associated with the reward travel reservation will be converted into a Transferable Flight Credit&trade; for future use.&nbsp;</p>\\n<p>&nbsp;</p>\\n<p><strong>Priority and Express Lanes<sup>8<br /></sup></strong>Priority and Express Lanes, (<a href=\\\"https://www.southwest.com/html/air/airport-information.html\\\">where available</a>), can be accessed by Business Select and Anytime Customers and A-List and A-List Preferred Members. Priority Lanes are at Southwest check-in counters, and Express Lanes are at security checkpoints.</p>\\n<p>&nbsp;</p>\\n<p><strong>EarlyBird Check-In<sup>&reg;9<br /></sup></strong>You will automatically be checked in to your flight 36 hours prior to scheduled departure. For Anytime fares purchased between 36 and 24 hours, the boarding position assignment process has begun so this may impact the boarding position assigned to you. If you purchase an Anytime fare within 24 hours of your flight&rsquo;s scheduled departure, you will not receive the EarlyBird Check-In benefit. In an irregular operation situation, the boarding position is not guaranteed.</p>\\n<p>&nbsp;</p>\\n<p><strong>Complimentary premium drink<sup>10<br /></sup></strong>Flights traveling 175 miles or less only serve water.​</p>\\n<p>&nbsp;</p>\\n<p><strong>Earning points<sup>11<br /></sup></strong>Points can be earned from (a) qualifying flights booked and flown through Southwest or (b) through qualifying purchases with our Rapid Rewards partners. Qualifying flights include flights paid entirely with dollars, Southwest LUV Vouchers<sup>&reg;</sup>, gift cards, or flight credits, and with no portion of the purchase price paid for with Rapid Rewards points.​ All Rapid Rewards rules and regulations apply and can be found at <strong><a href=\\\"https://www.southwest.com/help/rapid-rewards/rapid-rewards-program-terms-and-conditions?question=rules_and_regulations\\\" aria-describedby=\\\"a11y-message-header--new-window\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">Southwest.com/rrterms</a></strong>.</p>\\n<p>&nbsp;</p>\\n<p><strong>Free Inflight Internet<sup>12<br /></sup></strong>Where available. Available only on WiFi-enabled aircraft. Limited-time offer.​​</p>\",\"revealed\":true,\"id\":\"FareBenefits\",\"label\":\"Fare Benefits\"}]},\"placementData\":{}},\"revision\":2},\"airLowFareCalendarIndexContentModule4\":{\"modDate\":1669763257702,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kyaiyqaa-airLowFareCalendarIndexContentModule4\",\"crDate\":1669761402048,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1669763220000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"textContent\":\"Find the fare that works for you.\",\"styles\":{\"fontFamily\":\"Southwest Sans, Arial, sans-serif\",\"color\":\"#000000\",\"display\":\"block\",\"fontSize\":\"36px\",\"margin-top\":\"16px\",\"margin-bottom\":\"16px\",\"fontWeight\":\"bold\",\"text-align\":\"left\"},\"type\":\"h2\"},{\"childContent\":[{\"id\":\"airLowFareCalendarIndexContentModule4R1C1\",\"type\":\"Placement\"},{\"id\":\"airLowFareCalendarIndexContentModule4R1C2\",\"type\":\"Placement\"},{\"id\":\"airLowFareCalendarIndexContentModule4R1C3\",\"type\":\"Placement\"},{\"id\":\"airLowFareCalendarIndexContentModule4R1C4\",\"type\":\"Placement\"}]}],\"styles\":{\"border-radius\":\"0px\",\"backgroundColor\":\"#ffffff\",\"margin\":\"0 auto 30px\",\"display\":\"block\",\"width\":\"938px\",\"height\":\"400px\"}}},\"revision\":1},\"loaded\":true,\"loadFailed\":false,\"notifications\":null,\"tracking\":null,\"airPlanTripContentModule3\":{\"modDate\":1669764532161,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"laj028ps\",\"crDate\":1669764532161,\"type\":\"text-block\",\"lang\":\"en\",\"pubDate\":1669764480000,\"expDate\":null,\"content\":{\"displayType\":\"text-block\",\"text\":[{\"block\":true,\"value\":\"<div>&nbsp;</div>\",\"font\":\"font-12\"}]},\"revision\":0},\"globalNavRapidRewardsPromo\":{\"modDate\":1702368120918,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":\"8540039\",\"id\":\"k2p5yluz\",\"crDate\":1684825343946,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1702368000000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"childContent\":[{\"textContent\":\"Get your new year off to a flying start.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"55px\",\"left\":\"20px\",\"width\":\"255px\",\"lineHeight\":\"1em\",\"fontSize\":\"15px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_swqye9hg4ck\"}},{\"childContent\":[{\"textContent\":\"Earn 50,000 points.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"80px\",\"left\":\"20px\",\"letter-spacing\":\"-2px\",\"width\":\"300px\",\"lineHeight\":\"1em\",\"fontSize\":\"50px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"strong\",\"props\":{\"id\":\"text_block_fa4r1lk814\"}},{\"childContent\":[{\"textContent\":\"Learn more\",\"type\":\"strong\"}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"455px\",\"left\":\"20px\",\"font-weight\":\"normal\",\"font-size\":\"17px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Button\",\"props\":{\"buttonType\":\"light\",\"suffixIcon\":\"arrow-right\",\"id\":\"call_to_action_0vlp3icav49\",\"aria-label\":\"Learn more about the Rapid Rewards Credit Card\",\"callToAction\":true}}],\"styles\":{\"margin\":\"0\",\"background-size\":\"cover\",\"fontFamily\":\"Southwest Sans, Arial, sans-serif\",\"backgroundImage\":\"url(\\\"https://www.southwest.com/swa-resources/images/globalnav/ads/globalnav-images-bkg-50k-231212.png\\\")\",\"display\":\"block\",\"width\":\"310px\",\"backgroundRepeat\":\"no-repeat\",\"height\":\"564px\"},\"type\":\"Link\",\"props\":{\"display\":\"block\",\"linkType\":\"advertisement\",\"id\":\"flex_ad_eqrdg5beq99\",\"href\":\"https://creditcards.chase.com/a1/southwest/AEP50kPlus1223?REF=FULLSITE&CELL=6PLT&clk=8540039&cbid=8540039\",\"aria-label\":\"Get your new year off to a flying start. Earn 50,000 points. Learn more.\"}},\"placementData\":{\"contentBlockId\":\"8540039\"}},\"revision\":8},\"airPlanTripContentModule6\":{\"modDate\":1669763119917,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"j1ffe64j\",\"crDate\":1517867248196,\"type\":\"content-grid\",\"lang\":\"en\",\"pubDate\":1669763040000,\"expDate\":null,\"content\":{\"displayType\":\"grid-ads\",\"dynamicContent\":{\"gridAd2\":\"airPlanTripGridAd2\"},\"anchorLink\":true,\"subTitle\":{\"color\":\"neutral-white\",\"value\":\"How can we help you?\"},\"displayWidth\":\"full-bleed\",\"background\":{\"color\":\"primary-blue\"},\"gridItems\":[{\"primaryText\":{\"color\":\"primary-yellow\",\"value\":\"I'm flying with an infant or child<br>\"},\"secondaryText\":{\"color\":\"neutral-white\",\"value\":\"<p>When flying with little ones, it&rsquo;s always best to be prepared. Get documentation, safety requirements, and information on what you need to know before and during your flight.</p>\"},\"callToAction\":{\"newWindow\":false,\"externalLink\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"Get ready\",\"url\":\"/help/flying-with-children/flying-with-infants\",\"ariaLabel\":\"Get ready to fly with an infant or child.\"}},{\"primaryText\":{\"color\":\"primary-yellow\",\"value\":\"I have an<br/> Unaccompanied Minor\"},\"secondaryText\":{\"color\":\"neutral-white\",\"value\":\"<p>It&rsquo;s never too early for your first flight, but children ages 5-11 traveling without a passenger age 12 or older are considered Unaccompanied Minors and require a different protocol.</p>\"},\"callToAction\":{\"newWindow\":false,\"externalLink\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"Find out more\",\"url\":\"https://www.southwest.com/help/flying-with-children/unaccompanied-minors-flying-alone\",\"ariaLabel\":\"Find out more about traveling with Unaccompanied Minors.\"}},{\"primaryText\":{\"color\":\"primary-yellow\",\"value\":\"I have a disability\"},\"secondaryText\":{\"color\":\"neutral-white\",\"value\":\"<p>We're here to assist you, whether it's help with a wheelchair, an assistance animal, or any health concerns you may have. Just click \\\"Add Disability Options\\\" when you book.</p>\"},\"callToAction\":{\"newWindow\":false,\"externalLink\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"Learn more\",\"url\":\"/help/accessible-travel-assistance\",\"ariaLabel\":\"Learn more about traveling with disabilities.\"}},{\"primaryText\":{\"color\":\"primary-yellow\",\"value\":\"I need extra space\"},\"secondaryText\":{\"color\":\"neutral-white\",\"value\":\"<p>We want you to feel comfortable on your flight, so we understand if you need a little extra room. If you&rsquo;d like to proactively purchase a second seat to give yourself more space, you can learn how here.</p>\"},\"callToAction\":{\"newWindow\":false,\"externalLink\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"Give me space\",\"url\":\"/help/booking/extra-seat-policy\",\"ariaLabel\":\"Learn more about adding an extra seat.\"}},{\"primaryText\":{\"color\":\"primary-yellow\",\"value\":\"I'm traveling with a pet\"},\"secondaryText\":{\"color\":\"neutral-white\",\"value\":\"<p>Furry friends are welcome in the cabin. Reserve your dog or cat a spot on your domestic flight with a Pet Fare. But hurry, we only have room for six pets on each flight.</p>\"},\"callToAction\":{\"newWindow\":false,\"externalLink\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"See details\",\"url\":\"/help/booking/pet-policy\",\"ariaLabel\":\"See details about traveling with a pet.\"}},{\"primaryText\":{\"color\":\"primary-yellow\",\"value\":\"I'm flying with a group\"},\"secondaryText\":{\"color\":\"neutral-white\",\"value\":\"<p>If you have a party of ten or more, call the Group Travel Program at <strong>1-800-433-5368</strong> for discounted airfare.</p>\"},\"callToAction\":{\"newWindow\":false,\"externalLink\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"Get more info\",\"url\":\"/html/air/business-groups/index.html\",\"ariaLabel\":\"Get more information on flying with a group.\"}}],\"gridMoreInfoLink\":{\"newWindow\":false,\"linkType\":\"bright\",\"elementType\":\"cta-text\",\"value\":\"View Help Center\",\"url\":\"/help/?clk=GFOOTER-FAQ\",\"ariaLabel\":\"View all of our Frequently Asked Questions\"},\"title\":{\"color\":\"neutral-white\",\"value\":\"Special Accommodations\"}},\"revision\":7},\"airPlanTripContentModule5\":{\"modDate\":1669763117639,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"l2z2z7mf\",\"crDate\":1653486513672,\"type\":\"content-grid\",\"lang\":\"en\",\"pubDate\":1669763040000,\"expDate\":null,\"content\":{\"displayType\":\"grid-base\",\"anchorLink\":true,\"displayWidth\":\"standard-page\",\"background\":{\"color\":\"neutral-white\"},\"gridItems\":[{\"primaryText\":{\"color\":\"primary-dark-blue\",\"value\":\"We'll treat your bags like our own\"},\"gridGraphic\":{\"color\":\"primary-yellow\",\"icon\":\"two-bags\",\"align\":\"top-left\",\"ariaLabel\":\"Baggage icon\"},\"secondaryText\":{\"color\":\"secondary-gray\",\"value\":\"<p>Your first two checked bags always fly for free! You can also have <a title=\\\"Baggage Policy\\\" href=\\\"/html/customer-service/baggage/carryon-bags-pol.html\\\">one carry-on and one personal item</a>. See if your airport features <a href=\\\"/html/air/products/bagdrop.html\\\" aria-label=\\\"Express Bag Drop Policy\\\">Express Bag Drop</a>.</p>\"}},{\"primaryText\":{\"color\":\"primary-dark-blue\",\"value\":\"Meet your new travel buddy\"},\"gridGraphic\":{\"color\":\"primary-yellow\",\"icon\":\"phone\",\"align\":\"top-left\",\"ariaLabel\":\"Phone icon\"},\"secondaryText\":{\"color\":\"secondary-gray\",\"value\":\"<p>Manage flights from your phone or tablet with our <a title=\\\"Mobile Applications\\\" href=\\\"/html/air/products/mobile.html\\\">apps</a>. You can change or cancel reservations, view your flight's status, access your <a href=\\\"/faq/mobile\\\">mobile boarding pass</a>, and more.</p>\"}},{\"primaryText\":{\"color\":\"primary-dark-blue\",\"value\":\"Check in like<br/> a pro\"},\"gridGraphic\":{\"color\":\"primary-yellow\",\"icon\":\"check-in\",\"align\":\"top-left\",\"ariaLabel\":\"Check-in icon\"},\"secondaryText\":{\"color\":\"secondary-gray\",\"value\":\"<p>The sooner you check in, the faster you'll board. You can <a href=\\\"/air/check-in/index.html?forceNewSession=yes\\\">check in online</a> and print your boarding pass up to 24 hours in advance, or stop by our <a href=\\\"/faq/selfservice-kiosk\\\">convenient airport kiosks</a>.</p>\"}},{\"primaryText\":{\"color\":\"primary-dark-blue\",\"value\":\"Speed through security\"},\"gridGraphic\":{\"color\":\"primary-yellow\",\"icon\":\"locked\",\"align\":\"top-left\",\"ariaLabel\":\"Lock icon\"},\"secondaryText\":{\"color\":\"secondary-gray\",\"value\":\"<p>Priority Lanes and Express Lanes, <a href=\\\"/html/customer-service/airport-experience/flyby-pol.html\\\">(where available)</a>, are designed to speed our Business Select and Anytime Customers,&nbsp;as well as A-List and&nbsp;A-List Preferred Members, through check-in and security&nbsp;lines. Priority Lanes are at Southwest check-in&nbsp;counters, and Express Lanes are at security checkpoints.</p>\"}}],\"title\":{\"color\":\"primary-dark-blue\",\"value\":\"Travel Tips\"}},\"revision\":1},\"airPlanTripGridAd2\":{\"modDate\":1584632768635,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":\"643030\",\"id\":\"javbwrpj\",\"crDate\":1517868502337,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1584632700000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"childContent\":[{\"textContent\":\"Join Rapid Rewards® and start earning toward your first reward flight.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#ffbf27\",\"top\":\"40px\",\"left\":\"30px\",\"width\":\"180px\",\"fontSize\":\"24px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"b\"},{\"childContent\":[{\"textContent\":\"Enroll now\",\"type\":\"b\"}],\"styles\":{\"color\":\"#ffffff\",\"top\":\"220px\",\"left\":\"30px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Button\",\"props\":{\"buttonType\":\"bright\",\"suffixIcon\":\"arrow-right\",\"callToAction\":true}}],\"styles\":{\"backgroundColor\":\"#111b40\",\"width\":\"240px\",\"height\":\"425px\"},\"type\":\"Link\",\"props\":{\"display\":\"block\",\"linkType\":\"advertisement\",\"href\":\"https://www.southwest.com/account/enroll/enroll-member?f=zINASPRTAA1409000zz&clk=4284062&cbid=4284062\"}},\"placementData\":{\"contentBlockId\":\"643030\"}},\"revision\":8},\"passengerLapInfantInfo\":{\"modDate\":1701731513295,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"l02qi5iq-desktop\",\"crDate\":1657910022102,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1657909980000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"flexSettings\":{\"disableAbsolutePositioning\":true},\"childContent\":[{\"styles\":{\"top\":\"18px\",\"color\":\"#111b40\",\"left\":\"10px\",\"position\":\"absolute\"},\"type\":\"Icon\",\"props\":{\"size\":\"large\",\"icon\":\"lap-child\",\"id\":\"graphic_pou5lz5idbf\"}},{\"childContent\":[{\"childContent\":[{\"textContent\":\"Baby on board?\",\"type\":\"span\",\"props\":{}}]}],\"styles\":{\"word-wrap\":\"normal\",\"color\":\"#111b40\",\"top\":\"8px\",\"left\":\"50px\",\"fontSize\":\"20px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"type\":\"Heading\",\"props\":{\"id\":\"heading_lqlrtrzjwr\"}},{\"childContent\":[{\"textContent\":\"A child over 14 days old and under 2 years of age on the date of travel may be carried on the lap of an accompanying Passenger 12 years of age or older. Taxes and fees may apply.   \",\"type\":\"span\",\"props\":{}},{\"childContent\":[{\"textContent\":\"Learn More\",\"type\":\"span\"}],\"type\":\"a\",\"props\":{\"href\":\"https://www.southwest.com/help/flying-with-children/lap-child-policy\"}}],\"styles\":{\"color\":\"#111b40\",\"top\":\"42px\",\"left\":\"50px\",\"width\":\"265px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_xjj2zs8thue\"}}],\"styles\":{\"backgroundColor\":\"#e6e7e8\",\"width\":\"100%\",\"position\":\"relative\",\"height\":\"100%\"},\"type\":\"div\",\"props\":{\"id\":\"flex_content_pr5qcefcz1\"}}],\"styles\":{\"backgroundColor\":\"#f5f5f5\",\"display\":\"block\",\"width\":\"324px\",\"height\":\"130px\"},\"props\":{\"id\":\"flex_9vrvpbpak5\"}}},\"revision\":2},\"calendarWidgetMessage\":{\"modDate\":1702558438850,\"index\":\"content-service-placements-idx-prodb-v20230414\",\"contentBlockId\":null,\"id\":\"kfqves59\",\"crDate\":1682430430835,\"type\":\"flex-placement\",\"lang\":\"en\",\"pubDate\":1702558380000,\"expDate\":null,\"content\":{\"displayType\":\"flex-placement\",\"placement\":{\"childContent\":[{\"childContent\":[{\"textContent\":\"\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"We are currently accepting air reservations through October 2, 2024.\",\"type\":\"strong\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"On February 8, 2024 we will open our schedule for sale through November 2, 2024.\",\"type\":\"span\",\"props\":{}},{\"textContent\":\"\",\"type\":\"br\",\"props\":{}},{\"textContent\":\"This date is subject to change! Please check back frequently.\",\"type\":\"span\",\"props\":{}}],\"styles\":{\"color\":\"#636363\",\"top\":\"2px\",\"left\":\"55px\",\"fontSize\":\"13px\",\"position\":\"absolute\",\"text-align\":\"left\"},\"props\":{\"id\":\"text_block_8i7m68duhin\"}}],\"styles\":{\"backgroundColor\":\"#ffffff\",\"width\":\"736px\",\"height\":\"60px\"},\"props\":{\"id\":\"flex_ad_set6ric12ki\"}}},\"revision\":6}}},\"currentDate\":\"2024-01-15\",\"ignoreForGlobalContent\":[],\"loadingPath\":\"air-booking-index\",\"previousPath\":\"air-booking-index\",\"useGlobalContent\":false},\"CustomerSegmentInfoStore\":{\"customerSegmentId\":null,\"customerSegmentIdToken\":null},\"MboxStore\":{\"requesting\":false,\"mbox\":{\"appId\":\"air-booking\",\"test\":{\"airBookingIndexWidgetPaxDropdown\":\"displayagegroup\",\"airBookingSelectFlightDepRetGroup\":\"samepage\"},\"target\":{},\"test_style\":{}},\"mboxInfo\":{\"failedMboxCalls\":0,\"totalMboxCalls\":1}},\"SplitPayStore\":{\"originalTaxesAndFare\":{},\"splitPayError\":false,\"splitPayLoading\":false,\"splitPayOptions\":[]},\"ChaseStore\":{\"chaseSessionId\":null,\"error\":false,\"errorDetail\":{},\"returnUrl\":null,\"provisioningStatus\":null,\"instantCredit\":{},\"modalShowed\":false,\"appendToDAOURL\":null},\"SplitPageSearchResultsCacheSearchStore\":{\"nearbyAirportEmptyResultsData\":null,\"searchFormData\":null,\"searchResults\":null,\"storeIsSearching\":false,\"reset\":false},\"PurchasePageStore\":{\"formToRender\":\"\",\"minorFormData\":{},\"searchFormData\":{}},\"TravelFundsStore\":{\"travelFunds\":{}},\"GeolocationStore\":{\"geolocationData\":{\"countryCode\":\"US\",\"locationData\":{\"georegion\":\"247\",\"country_code\":\"US\",\"region_code\":\"CO\",\"city\":\"BOULDER\",\"dma\":\"751\",\"pmsa\":\"1125\",\"msa\":\"2082\",\"areacode\":\"303\",\"county\":\"BOULDER\",\"fips\":\"08013\",\"latitude\":40.044,\"longitude\":-105.194,\"timezone\":\"MST\",\"zip\":\"80301-80310+80314+80321-80323+80328-80329\",\"continent\":\"NA\",\"asnum\":\"197547\",\"throughput\":\"vhigh\",\"bw\":\"5000\",\"inflight\":false},\"isInternationalStation\":false,\"nearestStation\":\"DEN\"}},\"MismatchFocusStore\":{\"lastActiveElement\":{}},\"UserPreferencesStore\":{\"preferences\":{}},\"AirLowFareStore\":{},\"ResetStatusSearchStore\":{\"nearbyAirportEmptyResultsData\":null,\"searchFormData\":null,\"searchResults\":null,\"storeIsSearching\":false,\"reset\":false},\"ChasePrequalNoOfferStore\":{\"customerToken\":null,\"highValueIndicator\":null,\"swaOffersIdentitySource\":null},\"PrintStore\":{},\"AirRecentSearchStore\":{\"searches\":[{\"originationAirportCode\":\"LAS\",\"destinationAirportCode\":\"LAX\",\"departureDate\":\"2023-12-23\",\"departureTimeOfDay\":\"ALL_DAY\",\"returnTimeOfDay\":\"ALL_DAY\",\"adultPassengersCount\":\"1\",\"tripType\":\"oneway\",\"fareType\":\"USD\",\"passengerType\":\"ADULT\",\"adultsCount\":\"1\",\"from\":\"LAS\",\"int\":\"HOMEQBOMAIR\",\"reset\":\"true\",\"to\":\"LAX\",\"returnDate\":\"\"}],\"saveSearchesEnabled\":true}},\"AnalyticsTrackingDetected\":{\"int\":\"HOMEQBOMAIR\"},\"pageLoaded\":{\"contentBlockId\":\"\",\"pageId\":\"air-booking-index\",\"pageContentIds\":\"8450043:4810032:3675062:5095041:8540039:643030\",\"currentDate\":\"2024-01-15\",\"forced\":false},\"adBlockerDetected\":true}"}
    },
    "UpLiftPlatformObject": {"value": {"value": "\"up\""}},
    "up": {"value": {"type": "function"}},
    "Uplift": {"value": {"value": "{}"}},
    "UpLift": {"value": {"value": "{\"Payments\":{},\"Analytics\":{}}"}},
    "_upliftFlag": {"value": {"value": "true"}},
    "jQuery214056584089377736361": {"value": {"value": "4"}},
    "mktg_data": {"value": {"value": "{\"chase_acqsrccode\":\"\",\"chase_highvalueindicator\":\"0\",\"chase_offeridentifier\":\"\",\"chase_rr_number\":\"\",\"global_channelid\":\"\",\"global_experienceid\":\"\",\"global_requestid\":\"\",\"page_channel\":\"air\",\"page_name\":\"index\",\"page_subchannel\":\"booking\",\"page\":\"air-booking-index\",\"devicetype\":\"desktop\",\"iswebview\":\"0\",\"responsivesize\":\"na\",\"member_number\":\"\",\"member_status\":\"\",\"member_pointsbalance\":\"\",\"page_language\":\"en\",\"swabiz_companyid\":\"\",\"swabiz_userrole\":\"default\",\"user_loginstate\":\"cold\",\"contentblockid\":\"8450043:4810032:3675062:5095041:8540039:643030\",\"mbox_failedcalls\":0,\"mbox_timeoutartifact\":\"\",\"mbox_totalcalls\":1}"}},
    "‮saFelNds‭": {"value": {"value": "true"}},
    "AppMeasurement_Module_AudienceManagement": {"value": {"type": "function"}},
    "DIL": {"value": {"type": "function"}},
    "AppMeasurement_Module_ActivityMap": {"value": {"type": "function"}},
    "AppMeasurement": {"value": {"type": "function"}},
    "s_gi": {"value": {"type": "function"}},
    "s_pgicq": {"value": {"type": "function"}},
    "s_objectID": {},
    "s_giq": {},
    "_bcn": {"value": {"value": "{\"inauth\":{},\"dvc\":{}}"}},
    "advc": {"value": {"value": "{\"_cc\":[[\"ci\",{\"sid\":\"7b66b3c6e172eed2\",\"tid\":\"b33c2751e991838c00b23d1052efd1468b11\"}],[\"st\",500],[\"sf\",null],[\"run\",\"https://www.southwest.com/di/swadvc\"]]}"}},
    "BOOMR_check_doc_domain": {"value": {"type": "function"}},
    "ErrorStackParser": {"value": {"value": "{}"}},
    "UserTimingCompression": {"value": {"value": "{}"}},
    "BOOMR_mq": {"value": {"value": "{}"}},
    "i": {"value": {"value": "4"}},
    "branch": {"value": {"value": "{\"g\":{\"G\":{}},\"Z\":{\"l\":1},\"l\":[],\"ba\":\"web2.80.0\",\"v\":3,\"A\":0,\"C\":null,\"o\":\"key_live_giugWIpIXUYa4N52lEYdgbcfDyg004TU\",\"M\":{},\"u\":\"1185584370510329184\",\"J\":false,\"ka\":true,\"I\":\"1275461848325684060\",\"ga\":\"https://link.swa.info/a/key_live_giugWIpIXUYa4N52lEYdgbcfDyg004TU?%24identity_id=1185584370510329184\",\"K\":\"1182996009414595840\",\"ia\":true}"}},
    "script_loaded_time": {"value": {"value": "1705332019303"}},
    "collector": {"value": {"value": "{}"}},
    "inauthNamespace": {"value": {"value": "{}"}},
    "collectorNamespaceName": {"value": {"value": "\"advc\""}},
    "cnt": {"value": {"value": "true"}},
    "MpElD": {"value": {"value": "\"//southwestairlines.mpeasylink.com\""}},
    "basePath": {"value": {"value": "\"//southwestairlines.mpeasylink.com/mpel/\""}},
    "userPref": {
        "value": {"value": "{\"siteurl\":\"www.southwest.com\",\"lang\":\"en\",\"country\":\"\",\"currency\":\"\",\"region\":\"\",\"sitelist\":\"www.southwest.com,southwest.com,www.swabiz.com,swabiz.com,southwest.dev1.southwest.com,swabiz.dev1.southwest.com,southwest.qa1.southwest.com,swabiz.qa1.southwest.com,southwest.qa2.southwest.com,swabiz.qa2.southwest.com,southwest.dev4.southwest.com,swabiz.dev4.southwest.com,southwest.qa4.southwest.com,stage-swa-search.clients.us.funnelback.com,search.dev.southwest.com,search.qa.southwest.com,search.staging.southwest.com,search.southwest.com;espanol.southwest.com,espanol.swabiz.com,espanol-southwest.dev1.southwest.com,espanol-swabiz.dev1.southwest.com,espanol-southwest.qa1.southwest.com,espanol-swabiz.qa1.southwest.com,espanol-southwest.qa2.southwest.com,espanol-swabiz.qa2.southwest.com,espanol-southwest.dev4.southwest.com,espanol-swabiz.dev4.southwest.com,espanol-southwest.qa4.southwest.com\",\"nonMP\":\"false\",\"mode\":\"\",\"uuid\":\"6c011f9b93fc443699e1935d610e97de\"}"}
    },
    "x": {},
    "MpStorage": {"value": {"value": "{\"callback\":null,\"iframe\":null}"}},
    "param": {"value": {"type": "function"}},
    "MpEasyLink": {"value": {"value": "{\"domain\":\"southwest.com\"}"}},
    "MpL": {"value": {"value": "\"en\""}},
    "callback": {"value": {"type": "function"}},
    "iframe": {"value": {"value": "{}"}},
    "MovableInkTrack": {"value": {"value": "\"mitr\""}},
    "mitr": {"value": {"type": "function"}},
    "s_i_swaprod": {"value": {"value": "{\"bb\":1705332021445,\"D\":0,\"Vb\":true}"}},
    "_sz": {"value": {"value": "[[\"accountid\",10363],[\"region\",\"r1\"],[\"endpoint\",\"global\"],[\"heatmap\",{\"matches\":{\"permanent\":[\"http://www.southwest.com\"],\"include\":[],\"exclude\":[]}}]]"}},
    "_bmrEvents": {"value": {"value": "[[\"message\",null,false,null],[\"popstate\",null,false,null],[\"message\",null,false,null],[\"message\",null,false,null],[\"focus\",null,false,null],[\"blur\",null,false,null],[\"unload\",null,false,null],[\"beforeunload\",null,false,null],[\"message\",null,false,null],[\"beforeunload\",null,false,null],[\"resize\",null,true,null],[\"message\",null,false,null],[\"message\",null,false,null],[\"message\",null,false,null]]"}},
    "QSI": {
        "value": {"value": "{\"clientTypeVariant\":\"AdobeLaunch\",\"config\":{\"zoneId\":\"ZN_6fEtw4RXYKndJOZ\",\"brandId\":\"\",\"hostedJSLocation\":\"https://siteintercept.qualtrics.com/dxjsmodule/\",\"baseURL\":\"https://siteintercept.qualtrics.com\",\"surveyTakingBaseURL\":\"https://s.qualtrics.com/spoke/all/jam\",\"gtmContainerID\":\"\",\"BrandTier\":\"lIjhYuMl2g\"},\"shouldStripQueryParamsInQLoc\":false,\"reg\":{\"SI_5yVw4GOJpYx0RUx\":{\"displayed\":{},\"willShow\":{},\"cookiesEnabled\":{},\"preventRepeatedDisplay\":{},\"localStorageEnabled\":{},\"options\":{\"requestId\":\"ZN_6fEtw4RXYKndJOZ\",\"id\":\"SI_5yVw4GOJpYx0RUx\",\"type\":\"FeedbackButton\",\"target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null},\"impressionURL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_Impress=1&Q_CID=CR_2gJhqDWQ54wnbM1&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_ASID=AS_07676101&Q_CLIENTVERSION=1.105.0&Q_CLIENTTYPE=webAdobeLaunch\",\"clickURL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_Click=1&Q_CID=CR_2gJhqDWQ54wnbM1&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_ASID=AS_07676101&Q_CLIENTVERSION=1.105.0&Q_CLIENTTYPE=webAdobeLaunch\",\"interceptDisplayOptions\":{\"displayRate\":\"100\",\"noshow\":\"0\",\"manualDisplay\":true,\"displayInterceptType\":\"manual\",\"cookieDomain\":\"\",\"hasRandomization\":false,\"useWeightedActionSets\":false,\"hideOnCookiesDisabled\":true,\"hideOnLocalStorageDisabled\":true,\"linkWithXMD\":false,\"useContactFrequencyRules\":false,\"contactHydration\":false,\"contactFrequencyDirectoryID\":\"POOL_8bTBMabdspusB6Z\",\"contactFrequencyRefLocator\":\"JavaScript\",\"contactFrequencyRefExpression\":{\"expression\":\"\",\"guid\":\"QID_85817397\"},\"contactFrequencyUserID\":\"UR_3kr0poXHA60A54F\"},\"actionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true},\"elements\":{\"Desktop\":{\"LookAndFeel\":{\"ButtonPosition\":\"right\",\"ButtonText\":\"Feedback\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#304CB2\",\"BorderRadius\":\"moderately-rounded\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"slider\",\"SurveySize\":50,\"IFrameTitle\":\"Survey window\",\"OpacityLevel\":0.25,\"ShowCloseButton\":true,\"CloseButtonBehavior\":\"collapse\"}},\"Mobile\":{\"LookAndFeel\":{\"DoNotShow\":false,\"ButtonText\":\"Give Feedback\",\"ButtonPosition\":\"right\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#136EF6\",\"BorderRadius\":\"none\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"pull-up\",\"IFrameTitle\":\"Survey window\"}},\"TranslationSettings\":{\"DetectionMethod\":\"browser-lang\",\"GlobalJsVar\":\"\"}},\"resetStyle\":\".QSIFeedbackButton div,.QSIFeedbackButton dl,.QSIFeedbackButton dt,.QSIFeedbackButton dd,.QSIFeedbackButton ul,.QSIFeedbackButton ol,.QSIFeedbackButton li,.QSIFeedbackButton h1,.QSIFeedbackButton h2,.QSIFeedbackButton h3,.QSIFeedbackButton h4,.QSIFeedbackButton h5,.QSIFeedbackButton h6,.QSIFeedbackButton span,.QSIFeedbackButton pre,.QSIFeedbackButton form,.QSIFeedbackButton fieldset,.QSIFeedbackButton textarea,.QSIFeedbackButton p,.QSIFeedbackButton blockquote,.QSIFeedbackButton tr,.QSIFeedbackButton th,.QSIFeedbackButton td{ margin: 0; padding: 0;background-color: transparent; border: 0; font-size: 12px; line-height: normal; vertical-align:baseline; box-shadow: none; }.QSIFeedbackButton img{ height: auto; width: auto; margin: 0; padding: 0 }.QSIFeedbackButton ul,.QSIFeedbackButton ol{ margin: 12px 0; padding-left: 40px; }.QSIFeedbackButton ul li{ list-style-type: disc; }.QSIFeedbackButton ol li{ list-style-type: decimal; }.QSIFeedbackButton .scrollable{ -webkit-overflow-scrolling: touch; }.QSIFeedbackButton table{ border-collapse: collapse; border-spacing: 0; }.QSIFeedbackButton table td{ padding: 2px; }.QSIFeedbackButton iframe{ max-height: none; }.QSIFeedbackButton *{ box-sizing: content-box; }\"},\"requestId\":\"ZN_6fEtw4RXYKndJOZ\",\"id\":\"SI_5yVw4GOJpYx0RUx\",\"type\":\"FeedbackButton\",\"displayOptions\":{\"displayed\":{}},\"interceptDisplayOptions\":{\"displayRate\":\"100\",\"noshow\":\"0\",\"manualDisplay\":true,\"displayInterceptType\":\"manual\",\"cookieDomain\":\"\",\"hasRandomization\":false,\"useWeightedActionSets\":false,\"hideOnCookiesDisabled\":true,\"hideOnLocalStorageDisabled\":true,\"linkWithXMD\":false,\"useContactFrequencyRules\":false,\"contactHydration\":false,\"contactFrequencyDirectoryID\":\"POOL_8bTBMabdspusB6Z\",\"contactFrequencyRefLocator\":\"JavaScript\",\"contactFrequencyRefExpression\":{\"expression\":\"\",\"guid\":\"QID_85817397\"},\"contactFrequencyUserID\":\"UR_3kr0poXHA60A54F\"},\"actionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true},\"creativeDef\":{\"Desktop\":{\"LookAndFeel\":{\"ButtonPosition\":\"right\",\"ButtonText\":\"Feedback\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#304CB2\",\"BorderRadius\":\"moderately-rounded\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"slider\",\"SurveySize\":50,\"IFrameTitle\":\"Survey window\",\"OpacityLevel\":0.25,\"ShowCloseButton\":true,\"CloseButtonBehavior\":\"collapse\"}},\"Mobile\":{\"LookAndFeel\":{\"DoNotShow\":false,\"ButtonText\":\"Give Feedback\",\"ButtonPosition\":\"right\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#136EF6\",\"BorderRadius\":\"none\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"pull-up\",\"IFrameTitle\":\"Survey window\"}},\"TranslationSettings\":{\"DetectionMethod\":\"browser-lang\",\"GlobalJsVar\":\"\"}},\"creativeLang\":null}},\"ed\":{\"SI_5yVw4GOJpYx0RUx\":[{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null},{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"PROD\"},{\"name\":\"Q_AA_PARAMS\",\"type\":\"AdobeOrgID\",\"value\":\"65D316D751E563EC0A490D4C@AdobeOrg\"},{\"name\":\"Error Codes\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.PageNotificationStore.page.errors[0].trackingCode\"},{\"name\":\"ExperienceID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.events.globalExperienceId\"},{\"name\":\"Experience ID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.globalExperienceId\"}]},\"reqID\":{\"ZN_6fEtw4RXYKndJOZ\":true},\"Request\":{\"ZN_6fEtw4RXYKndJOZ\":{\"Intercepts\":{\"SI_5yVw4GOJpYx0RUx\":{\"Targeting\":{\"Decision\":{\"ActionSetID\":\"AS_07676101\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null}},\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptRevision\":\"221\",\"ContactID\":null,\"DirectoryID\":null,\"DistributionID\":null,\"SurveyID\":\"SV_39R4UghEgZNZfFz\"},\"Creative\":{\"BrandID\":\"southwest\",\"CreativeID\":\"CR_2gJhqDWQ54wnbM1\",\"Revision\":\"35\",\"Title\":\"Feedback Button: Slider\",\"ZoneID\":\"ZN_6fEtw4RXYKndJOZ\",\"Type\":\"FeedbackButton\",\"Options\":{\"Desktop\":{\"LookAndFeel\":{\"ButtonPosition\":\"right\",\"ButtonText\":\"Feedback\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#304CB2\",\"BorderRadius\":\"moderately-rounded\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"slider\",\"SurveySize\":50,\"IFrameTitle\":\"Survey window\",\"OpacityLevel\":0.25,\"ShowCloseButton\":true,\"CloseButtonBehavior\":\"collapse\"}},\"Mobile\":{\"LookAndFeel\":{\"DoNotShow\":false,\"ButtonText\":\"Give Feedback\",\"ButtonPosition\":\"right\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#136EF6\",\"BorderRadius\":\"none\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"pull-up\",\"IFrameTitle\":\"Survey window\"}},\"TranslationSettings\":{\"DetectionMethod\":\"browser-lang\",\"GlobalJsVar\":\"\"}}},\"Intercept\":{\"BrandID\":\"southwest\",\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptName\":\"Always On: Slider\",\"Revision\":\"221\",\"DeletedDate\":null,\"ActionSets\":{\"AS_38316861\":{\"ID\":\"AS_38316861\",\"Label\":\"A/B Select Flight Test_CLOSED\",\"Creative\":\"CR_2nJhOj9jxuyQPwa\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_8kTxvghkhShd0wK\"},\"EmbeddedData\":[{\"name\":\"URL\",\"type\":\"CurrentPage\",\"value\":null},{\"name\":\"Error Codes\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.PageNotificationStore.page.errors[0].trackingCode\"},{\"name\":\"Group\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.MboxStore.mbox.test.airSelectFlightResultsLayout\"},{\"name\":\"Q_AA_PARAMS\",\"type\":\"AdobeOrgID\",\"value\":\"65D316D751E563EC0A490D4C@AdobeOrg\"},{\"name\":\"Acct_Num\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.CustomerStore.customerInformation.accountNumber\"},{\"name\":\"Experience ID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.globalExperienceId\"}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true,\"targetPopUnderDisplay\":{\"id\":\"Target\",\"name\":\"Display Target\"},\"triggerEntirePage\":true},\"platform\":\"Desktop\"},\"AS_07676101\":{\"ID\":\"AS_07676101\",\"Label\":\"Production Action Set\",\"Creative\":\"CR_2gJhqDWQ54wnbM1\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_39R4UghEgZNZfFz\"},\"EmbeddedData\":[{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null},{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"PROD\"},{\"name\":\"Q_AA_PARAMS\",\"type\":\"AdobeOrgID\",\"value\":\"65D316D751E563EC0A490D4C@AdobeOrg\"},{\"name\":\"Error Codes\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.PageNotificationStore.page.errors[0].trackingCode\"},{\"name\":\"ExperienceID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.events.globalExperienceId\"},{\"name\":\"Experience ID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.globalExperienceId\"}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true},\"platform\":\"Desktop\"},\"AS_54416992\":{\"ID\":\"AS_54416992\",\"Label\":\"SWABIZ questions on southwest.com business pages\",\"Creative\":\"CR_2gJhqDWQ54wnbM1\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_1BSdM9kB6smyXye\"},\"EmbeddedData\":[{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"QA2\"},{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true,\"targetPopUnderDisplay\":{\"id\":\"Target\",\"name\":\"Display Target\"},\"triggerEntirePage\":true},\"platform\":\"Desktop\"},\"AS_93149425\":{\"ID\":\"AS_93149425\",\"Label\":\"Dev 4 Action Set\",\"Creative\":\"CR_2gJhqDWQ54wnbM1\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_3QoN8TK0LHilS4Z\"},\"EmbeddedData\":[{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"DEV4\"},{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true,\"targetPopUnderDisplay\":{\"id\":\"Target\",\"name\":\"Display Target\"},\"triggerEntirePage\":true},\"platform\":\"Desktop\"}},\"DisplayOptions\":{\"displayRate\":\"100\",\"noshow\":\"0\",\"manualDisplay\":true,\"displayInterceptType\":\"manual\",\"cookieDomain\":\"\",\"hasRandomization\":false,\"useWeightedActionSets\":false,\"hideOnCookiesDisabled\":true,\"hideOnLocalStorageDisabled\":true,\"linkWithXMD\":false,\"useContactFrequencyRules\":false,\"contactHydration\":false,\"contactFrequencyDirectoryID\":\"POOL_8bTBMabdspusB6Z\",\"contactFrequencyRefLocator\":\"JavaScript\",\"contactFrequencyRefExpression\":{\"expression\":\"\",\"guid\":\"QID_85817397\"},\"contactFrequencyUserID\":\"UR_3kr0poXHA60A54F\"}},\"siid\":\"ZN_6fEtw4RXYKndJOZ\"}},\"Params\":{\"id\":\"ZN_6fEtw4RXYKndJOZ\",\"ZoneID\":\"ZN_6fEtw4RXYKndJOZ\",\"Q_CLIENTVERSION\":\"1.105.0\",\"Q_CLIENTTYPE\":\"webAdobeLaunch\"},\"hasDependencies\":true,\"hasBeenResolved\":false,\"displayInterceptType\":\"\",\"zoneManualDisplay\":false}},\"overrides\":{},\"global\":{\"reqIDsDetected\":{},\"srMultiZoneErrors\":0,\"currentZIndex\":2000000001,\"intercepts\":{\"SI_5yVw4GOJpYx0RUx\":{\"CreativeID\":\"CR_2gJhqDWQ54wnbM1\",\"ASID\":\"AS_07676101\"}},\"eventTrackers\":{},\"featureFlags\":{\"DX.PepperPotts_TestingTools\":false,\"DUX.ClientSideTargetingM1\":true,\"SI.ResponsiveDialog.EnableDisplayOptions\":true,\"DX.GoogleDataLayer\":true,\"DX.DXA_CollectClicksAndTargets\":false,\"DX.PepperPotts_XMD\":false,\"DX.UpdateAssetHostName\":false,\"DX.PepperPotts_PakoCompression\":true,\"isClientLoggingEnabled\":false,\"DX.PepperPotts_DXV_EA\":true,\"DX.EmbeddedFeedback_NewAPIs\":true,\"DX.PostToStart\":true,\"DX.DXA_FunnelAnalyticsPOC\":false,\"DX.PepperPotts_VisitorEnabled\":true,\"deferredSliderLoadingFeatureEnabled\":true,\"DX.EmbeddedFeedback_GA_Visitor\":true,\"isLatencyLoggingEnabled\":true,\"DX.StatsAccuracy\":true,\"DX.RealTimeTriggeredIntercepts\":false,\"DX.PepperPotts_TestSessionsOn\":true},\"enableJSSanitization\":false,\"latencySamplePercentage\":0.02,\"alreadyFetchedJSModules\":[\"Core:1.105.0\",\"FeedbackButton:1.105.0\"],\"maxCookieSize\":null,\"clientType\":\"web\",\"clientVersion\":\"1.105.0\",\"hostedJSLocation\":\"https://siteintercept.qualtrics.com/dxjsmodule/\",\"legacyId\":\"ZN_6fEtw4RXYKndJOZ\",\"baseURL\":\"https://siteintercept.qualtrics.com\",\"brandID\":\"southwest\",\"brandDC\":\"yul1.qualtrics.com\",\"graphicPath\":\"https://yul1.qualtrics.com/WRQualtricsSiteIntercept/Graphic.php?IM=\",\"imagePath\":\"https://siteintercept.qualtrics.com/WRQualtricsShared/Graphics\",\"screenCaptureServiceBaseURL\":\"https://yul1.qualtrics.com/htmltoimage/\",\"brandBaseUrl\":\"https://www.surveysouthwest.com\"},\"isFullDbgInitialized\":false,\"baseURL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/\",\"LoadingState\":[],\"PendingQueue\":[],\"debugConfig\":{},\"historyStorage\":{\"historySessionName\":\"QSI_HistorySession\",\"useCookie\":false,\"limit\":10000},\"history\":{\"historyStorage\":{\"historySessionName\":\"QSI_HistorySession\",\"useCookie\":false,\"limit\":10000},\"started\":true,\"focusTime\":513,\"blurTime\":0,\"focused\":true},\"profile\":{\"namespace\":\"QSI_\"},\"util\":{\"creativeTypes\":{\"EMPTY\":\"Empty\",\"FEEDBACK_LINK\":\"FeedbackLink\",\"HTTP_REDIRECT\":\"HTTPRedirect\",\"IFRAME\":\"IFrame\",\"INFO_BAR\":\"InfoBar\",\"LINK\":\"Link\",\"NO_CREATIVE\":\"NoCreative\",\"POP_OVER\":\"PopOver\",\"POP_UNDER\":\"PopUnder\",\"POP_UP\":\"PopUp\",\"RELAY\":\"Relay\",\"SLIDER\":\"Slider\",\"USER_DEFINED_HTML\":\"UserDefinedHTML\"},\"originalDocumentOverflow\":\"auto\"},\"AssetManager\":{},\"API\":{\"unloading\":false,\"Events\":{},\"SessionRecording\":{\"isStarting\":false}},\"ClientLog\":{},\"dbg\":{\"isFullDbgInitialized\":false},\"LatencyLog\":{\"metricName\":\"si.SILatency\",\"components\":{\"CORE_MODULE\":\"coreModuleRequest\",\"TARGETING\":\"targetingRequest\",\"DPR_TARGETING\":\"dprTargetingRequest\",\"XMD_DEBUG_TARGETING\":\"xmdDebugTargetingRequest\",\"ASSETS_AND_MODULES\":\"allAssetDefinitionsAndJSModules\",\"CONTACT_FREQUENCY\":\"contactFrequencyCheck\"},\"overallLatencyStartTime\":null,\"overallLatency\":2385,\"componentStartTimes\":{\"targetingRequest\":1705332029141,\"JSModule-Core\":1705332029683,\"allAssetDefinitionsAndJSModules\":1705332030498,\"JSModule-FeedbackButton\":1705332030504,\"AssetDefinition-SI_5yVw4GOJpYx0RUx\":1705332030505,\"AssetDefinition-CR_2gJhqDWQ54wnbM1\":1705332030513},\"componentLatencies\":{\"targetingRequest\":538,\"JSModule-Core\":779,\"JSModule-FeedbackButton\":884,\"AssetDefinition-CR_2gJhqDWQ54wnbM1\":1011,\"AssetDefinition-SI_5yVw4GOJpYx0RUx\":1020,\"allAssetDefinitionsAndJSModules\":1027},\"isDuplicateScriptExecution\":false,\"debugLog\":{\"isFullDbgInitialized\":false},\"latencyStartTime\":1705332029140,\"requestId\":\"ZN_6fEtw4RXYKndJOZ\"},\"EventTracker\":{\"counts\":{},\"cookieName\":\"QSI_CT\",\"loaded\":true,\"clicked\":false},\"cookie\":{\"cookieSize\":0},\"CookieStorage\":{\"storageCache\":{},\"cookieName\":\"QSI_DATA\"},\"Orchestrator\":{\"isTestSession\":false,\"latencyLog\":{\"metricName\":\"si.SILatency\",\"components\":{\"CORE_MODULE\":\"coreModuleRequest\",\"TARGETING\":\"targetingRequest\",\"DPR_TARGETING\":\"dprTargetingRequest\",\"XMD_DEBUG_TARGETING\":\"xmdDebugTargetingRequest\",\"ASSETS_AND_MODULES\":\"allAssetDefinitionsAndJSModules\",\"CONTACT_FREQUENCY\":\"contactFrequencyCheck\"},\"overallLatencyStartTime\":null,\"overallLatency\":2385,\"componentStartTimes\":{\"targetingRequest\":1705332029141,\"JSModule-Core\":1705332029683,\"allAssetDefinitionsAndJSModules\":1705332030498,\"JSModule-FeedbackButton\":1705332030504,\"AssetDefinition-SI_5yVw4GOJpYx0RUx\":1705332030505,\"AssetDefinition-CR_2gJhqDWQ54wnbM1\":1705332030513},\"componentLatencies\":{\"targetingRequest\":538,\"JSModule-Core\":779,\"JSModule-FeedbackButton\":884,\"AssetDefinition-CR_2gJhqDWQ54wnbM1\":1011,\"AssetDefinition-SI_5yVw4GOJpYx0RUx\":1020,\"allAssetDefinitionsAndJSModules\":1027},\"isDuplicateScriptExecution\":false,\"debugLog\":{\"isFullDbgInitialized\":false},\"latencyStartTime\":1705332029140,\"requestId\":\"ZN_6fEtw4RXYKndJOZ\"},\"debugLog\":{\"isFullDbgInitialized\":false},\"scriptSrc\":\"https://zn6fetw4rxykndjoz-southwest.siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_ZID=ZN_6fEtw4RXYKndJOZ\",\"defaultClientSideDelayMilliseconds\":5000,\"zoneId\":\"ZN_6fEtw4RXYKndJOZ\",\"targetingRetryer\":{\"retryerName\":\"Targeting Call\",\"retryLimit\":6,\"retryBackoff\":2500,\"retryCount\":0},\"xmdDebugRetryer\":{\"retryerName\":\"Q_XMD_DEBUG Call\",\"retryLimit\":6,\"retryBackoff\":2500,\"retryCount\":0},\"srConfig\":null,\"csTargetingParams\":{\"targetingResponse\":{\"Intercepts\":[{\"Decision\":{\"ActionSetID\":\"AS_07676101\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null}},\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptRevision\":\"221\",\"ContactID\":null,\"DirectoryID\":null,\"DistributionID\":null,\"SurveyID\":\"SV_39R4UghEgZNZfFz\"}],\"ClientSideIntercepts\":[{\"InterceptID\":\"SI_bKFf9fS0NPGiyN0\",\"Name\":\"mWeb DEN Sports Equipment/Oversized Baggage\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"9\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_6g7GoU7IwVWoEZM\",\"Name\":\"Dotcom DEN Sports Equipment/Oversized Baggage\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"9\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_ai4L8gWi92y6UPs\",\"Name\":\"mWeb Add Two Bags 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"40\",\"PreventRepeatedDisplay\":\"180\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_08sKKm34T81B42i\",\"Name\":\"Dotcom Add Two Bags 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"29\",\"PreventRepeatedDisplay\":\"180\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_0PMb21ozv4rWf66\",\"Name\":\"mWeb ATL-CUN\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"8\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_1EWvXjNYPJ4rW7Q\",\"Name\":\"mWeb Holiday Embargo 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"8\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_eQJuHHDHokQINjo\",\"Name\":\"Dotcom Holiday Embargo 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"8\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_er4koWpsBrSP7vg\",\"Name\":\"Dotcom ATL-CUN\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"6\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_43iiiwEk5aEURqS\",\"Name\":\"SWABIZ Always On: Slider\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"26\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"Name\":\"Always On: Slider\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"221\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":true,\"Type\":\"ValueNode\"},\"ActionSets\":[{\"ActionSetID\":\"AS_07676101\",\"Label\":\"Production Action Set\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null},\"SurveyID\":\"SV_39R4UghEgZNZfFz\",\"ContactFrequencyPassed\":null,\"PopUnderTarget\":null,\"LogicTree\":{\"Operator\":\"AND\",\"Left\":{\"Comparator\":\"GTE\",\"Left\":{\"LogicType\":\"Resolution\",\"Expression\":\"BrowserWidth\",\"Type\":\"LogicNode\"},\"Right\":{\"Value\":\"978\",\"Type\":\"ValueNode\"},\"Type\":\"ComparatorNode\"},\"Right\":{\"Comparator\":\"HAS_NOT_BEEN_SEEN\",\"Left\":{\"LogicType\":\"InterceptLogic\",\"InterceptIDs\":[\"SI_6mMvcazi0l24rS5\"],\"Type\":\"LogicNode\"},\"Right\":{\"Value\":\"2592000\",\"Type\":\"ValueNode\"},\"Type\":\"ComparatorNode\"},\"Type\":\"ConjunctionNode\"}}],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_bf012ZjFawkK6c5\",\"Name\":\"Dotcom & mWeb: Post Transaction: Responsive Design to New Tab\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"169\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_087Pf8s86dJGBRY\",\"Name\":\"Dotcom: Checkin Confirmation\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"31\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_7ZYuvcY9eekx2Ae\",\"Name\":\"mWeb: Checkin Confirmation (Copy)\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"10\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_eEx0TbllKyJwjuC\",\"Name\":\"mWeb MBJ Decleration\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"7\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_9NTu8oDSGybcjH0\",\"Name\":\"Dotcom MBJ Decleration\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"18\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_020rqmgY4j7DRHM\",\"Name\":\"Dotcom International Gateways\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"9\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_71havFIdDxFBRoq\",\"Name\":\"mWeb International Gateways\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"7\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_8iEpYE5idc0smxg\",\"Name\":\"mWeb MCO Split Lobby\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"11\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_87j9k3WxMNW8ai2\",\"Name\":\"Dotcom MCO Split Lobby\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"15\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_dcHbagmtyX9twJT\",\"Name\":\"Dotcom/mweb: Change Survey Responsive Design\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"45\",\"PreventRepeatedDisplay\":\"14\",\"HideOnLocalStorageDisabled\":false,\"HideOnCookiesDisabled\":false,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_0kapWwHe1vlregS\",\"Name\":\"Embedded Feedback Content\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"13\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_0ocmYl3qgL2AU0C\",\"Name\":\"Contact Us Updates\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"3\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_bHoTNpjRZU0RnYq\",\"Name\":\"TEST - mWeb Day of Travel Advisor\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"34\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_7QCB4wqvzVy7VcO\",\"Name\":\"TEST - Web Day of Travel Advisor\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"28\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_a63l74XJc6mCW8t\",\"Name\":\"Dotcom | Content Surveys \",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"68\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false}],\"Modules\":{\"Core\":\"latest\",\"FeedbackButton\":\"1.105.0\",\"ScreenCapture\":\"1.105.0\"},\"FeatureFlags\":{\"DX.PepperPotts_TestingTools\":false,\"DUX.ClientSideTargetingM1\":true,\"SI.ResponsiveDialog.EnableDisplayOptions\":true,\"DX.GoogleDataLayer\":true,\"DX.DXA_CollectClicksAndTargets\":false,\"DX.PepperPotts_XMD\":false,\"DX.UpdateAssetHostName\":false,\"DX.PepperPotts_PakoCompression\":true,\"isClientLoggingEnabled\":false,\"DX.PepperPotts_DXV_EA\":true,\"DX.EmbeddedFeedback_NewAPIs\":true,\"DX.PostToStart\":true,\"DX.DXA_FunnelAnalyticsPOC\":false,\"DX.PepperPotts_VisitorEnabled\":true,\"deferredSliderLoadingFeatureEnabled\":true,\"DX.EmbeddedFeedback_GA_Visitor\":true,\"isLatencyLoggingEnabled\":true,\"DX.StatsAccuracy\":true,\"DX.RealTimeTriggeredIntercepts\":false,\"DX.PepperPotts_TestSessionsOn\":true},\"RequestData\":{\"CORSOrigin\":\"https://www.southwest.com\",\"ID\":\"ZN_6fEtw4RXYKndJOZ\",\"adobeSCVariable\":\"s\",\"bVersion\":\"Published\",\"brandBaseUrl\":\"https://www.surveysouthwest.com\",\"brandDC\":\"yul1.qualtrics.com\",\"brandID\":\"southwest\",\"browser\":\"Chrome\",\"browserVersion\":120,\"cookieDomain\":\"\",\"googleDataLayerVariable\":\"\",\"displayInterceptType\":\"\",\"eventTrackers\":{},\"extRefType\":\"\",\"extRefValue\":\"\",\"hasBeenResolved\":false,\"hasDependencies\":true,\"isBrowserSupported\":true,\"isDebug\":false,\"isMobile\":false,\"historyStorageType\":\"sessionStorage\",\"historyStorageSize\":null,\"maxCookieSize\":null,\"osName\":\"Mac OS X\",\"screenCaptureServiceBaseURL\":\"https://yul1.qualtrics.com/htmltoimage/\",\"validIntercepts\":{\"SI_5yVw4GOJpYx0RUx\":\"DependencyResolver\"},\"zoneManualDisplay\":false,\"reevaluateInterceptOnUrlChange\":false},\"Dependencies\":{\"Intercept\":[\"SI_6mMvcazi0l24rS5\"],\"Resolution\":true},\"SRTestConfiguration\":null},\"targetingRequest\":{\"Intercepts\":{\"SI_5yVw4GOJpYx0RUx\":{\"Targeting\":{\"Decision\":{\"ActionSetID\":\"AS_07676101\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null}},\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptRevision\":\"221\",\"ContactID\":null,\"DirectoryID\":null,\"DistributionID\":null,\"SurveyID\":\"SV_39R4UghEgZNZfFz\"},\"Creative\":{\"BrandID\":\"southwest\",\"CreativeID\":\"CR_2gJhqDWQ54wnbM1\",\"Revision\":\"35\",\"Title\":\"Feedback Button: Slider\",\"ZoneID\":\"ZN_6fEtw4RXYKndJOZ\",\"Type\":\"FeedbackButton\",\"Options\":{\"Desktop\":{\"LookAndFeel\":{\"ButtonPosition\":\"right\",\"ButtonText\":\"Feedback\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#304CB2\",\"BorderRadius\":\"moderately-rounded\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"slider\",\"SurveySize\":50,\"IFrameTitle\":\"Survey window\",\"OpacityLevel\":0.25,\"ShowCloseButton\":true,\"CloseButtonBehavior\":\"collapse\"}},\"Mobile\":{\"LookAndFeel\":{\"DoNotShow\":false,\"ButtonText\":\"Give Feedback\",\"ButtonPosition\":\"right\",\"ButtonIcon\":\"none\",\"TextColor\":\"#FFFFFF\",\"ButtonColor\":\"#136EF6\",\"BorderRadius\":\"none\",\"UseCustomButtonPosition\":false,\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":0,\"CustomButton\":{\"UseCustomButtonPosition\":false,\"CustomButtonImageName\":\"\",\"CustomButtonImageId\":\"\",\"CustomButtonAltText\":\"\",\"ResizeImage\":true,\"ButtonPosition\":\"left\",\"ButtonPositionBottomAdjustment\":50,\"ButtonPositionLeftAdjustment\":10}},\"HowItDisplays\":{\"DisplayType\":\"pull-up\",\"IFrameTitle\":\"Survey window\"}},\"TranslationSettings\":{\"DetectionMethod\":\"browser-lang\",\"GlobalJsVar\":\"\"}}},\"Intercept\":{\"BrandID\":\"southwest\",\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptName\":\"Always On: Slider\",\"Revision\":\"221\",\"DeletedDate\":null,\"ActionSets\":{\"AS_38316861\":{\"ID\":\"AS_38316861\",\"Label\":\"A/B Select Flight Test_CLOSED\",\"Creative\":\"CR_2nJhOj9jxuyQPwa\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_8kTxvghkhShd0wK\"},\"EmbeddedData\":[{\"name\":\"URL\",\"type\":\"CurrentPage\",\"value\":null},{\"name\":\"Error Codes\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.PageNotificationStore.page.errors[0].trackingCode\"},{\"name\":\"Group\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.MboxStore.mbox.test.airSelectFlightResultsLayout\"},{\"name\":\"Q_AA_PARAMS\",\"type\":\"AdobeOrgID\",\"value\":\"65D316D751E563EC0A490D4C@AdobeOrg\"},{\"name\":\"Acct_Num\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.CustomerStore.customerInformation.accountNumber\"},{\"name\":\"Experience ID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.globalExperienceId\"}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true,\"targetPopUnderDisplay\":{\"id\":\"Target\",\"name\":\"Display Target\"},\"triggerEntirePage\":true},\"platform\":\"Desktop\"},\"AS_07676101\":{\"ID\":\"AS_07676101\",\"Label\":\"Production Action Set\",\"Creative\":\"CR_2gJhqDWQ54wnbM1\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_39R4UghEgZNZfFz\"},\"EmbeddedData\":[{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null},{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"PROD\"},{\"name\":\"Q_AA_PARAMS\",\"type\":\"AdobeOrgID\",\"value\":\"65D316D751E563EC0A490D4C@AdobeOrg\"},{\"name\":\"Error Codes\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.PageNotificationStore.page.errors[0].trackingCode\"},{\"name\":\"ExperienceID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.stores.events.globalExperienceId\"},{\"name\":\"Experience ID\",\"type\":\"JavaScriptVal\",\"value\":\"data_a.globalExperienceId\"}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true},\"platform\":\"Desktop\"},\"AS_54416992\":{\"ID\":\"AS_54416992\",\"Label\":\"SWABIZ questions on southwest.com business pages\",\"Creative\":\"CR_2gJhqDWQ54wnbM1\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_1BSdM9kB6smyXye\"},\"EmbeddedData\":[{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"QA2\"},{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true,\"targetPopUnderDisplay\":{\"id\":\"Target\",\"name\":\"Display Target\"},\"triggerEntirePage\":true},\"platform\":\"Desktop\"},\"AS_93149425\":{\"ID\":\"AS_93149425\",\"Label\":\"Dev 4 Action Set\",\"Creative\":\"CR_2gJhqDWQ54wnbM1\",\"CreativeType\":\"FeedbackButton\",\"WeightedSampleRate\":\"\",\"Target\":{\"Type\":\"Survey\",\"PrimaryElement\":\"SV_3QoN8TK0LHilS4Z\"},\"EmbeddedData\":[{\"name\":\"Env\",\"type\":\"StaticVal\",\"value\":\"DEV4\"},{\"name\":\"Current Page URL\",\"type\":\"CurrentPage\",\"value\":null}],\"ActionOptions\":{\"targetNewWindow\":true,\"targetEmbedded\":false,\"targetFullScreen\":false,\"resizeForEmbeddedTargets\":true,\"targetWidth\":1000,\"targetHeight\":800,\"accessibilityTitle\":\"\",\"displayElement\":\"\",\"selectedDevices\":[],\"actionSetSampleRate\":100,\"actionSetContinueExecution\":true,\"targetPopUnderDisplay\":{\"id\":\"Target\",\"name\":\"Display Target\"},\"triggerEntirePage\":true},\"platform\":\"Desktop\"}},\"DisplayOptions\":{\"displayRate\":\"100\",\"noshow\":\"0\",\"manualDisplay\":true,\"displayInterceptType\":\"manual\",\"cookieDomain\":\"\",\"hasRandomization\":false,\"useWeightedActionSets\":false,\"hideOnCookiesDisabled\":true,\"hideOnLocalStorageDisabled\":true,\"linkWithXMD\":false,\"useContactFrequencyRules\":false,\"contactHydration\":false,\"contactFrequencyDirectoryID\":\"POOL_8bTBMabdspusB6Z\",\"contactFrequencyRefLocator\":\"JavaScript\",\"contactFrequencyRefExpression\":{\"expression\":\"\",\"guid\":\"QID_85817397\"},\"contactFrequencyUserID\":\"UR_3kr0poXHA60A54F\"}},\"siid\":\"ZN_6fEtw4RXYKndJOZ\"}},\"Params\":{\"id\":\"ZN_6fEtw4RXYKndJOZ\",\"ZoneID\":\"ZN_6fEtw4RXYKndJOZ\",\"Q_CLIENTVERSION\":\"1.105.0\",\"Q_CLIENTTYPE\":\"webAdobeLaunch\"},\"hasDependencies\":true,\"hasBeenResolved\":false,\"displayInterceptType\":\"\",\"zoneManualDisplay\":false},\"clientVersion\":\"1.105.0\",\"assetLoadingParams\":{\"id\":\"ZN_6fEtw4RXYKndJOZ\",\"ZoneID\":\"ZN_6fEtw4RXYKndJOZ\",\"Q_CLIENTVERSION\":\"1.105.0\",\"Q_CLIENTTYPE\":\"webAdobeLaunch\"}},\"lastSiResponse\":{\"Intercepts\":[{\"Decision\":{\"ActionSetID\":\"AS_07676101\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null}},\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptRevision\":\"221\",\"ContactID\":null,\"DirectoryID\":null,\"DistributionID\":null,\"SurveyID\":\"SV_39R4UghEgZNZfFz\"}],\"ClientSideIntercepts\":[{\"InterceptID\":\"SI_bKFf9fS0NPGiyN0\",\"Name\":\"mWeb DEN Sports Equipment/Oversized Baggage\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"9\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_6g7GoU7IwVWoEZM\",\"Name\":\"Dotcom DEN Sports Equipment/Oversized Baggage\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"9\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_ai4L8gWi92y6UPs\",\"Name\":\"mWeb Add Two Bags 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"40\",\"PreventRepeatedDisplay\":\"180\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_08sKKm34T81B42i\",\"Name\":\"Dotcom Add Two Bags 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"29\",\"PreventRepeatedDisplay\":\"180\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_0PMb21ozv4rWf66\",\"Name\":\"mWeb ATL-CUN\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"8\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_1EWvXjNYPJ4rW7Q\",\"Name\":\"mWeb Holiday Embargo 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"8\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_eQJuHHDHokQINjo\",\"Name\":\"Dotcom Holiday Embargo 2023\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"8\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_er4koWpsBrSP7vg\",\"Name\":\"Dotcom ATL-CUN\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"6\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_43iiiwEk5aEURqS\",\"Name\":\"SWABIZ Always On: Slider\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"26\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"Name\":\"Always On: Slider\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"221\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":true,\"Type\":\"ValueNode\"},\"ActionSets\":[{\"ActionSetID\":\"AS_07676101\",\"Label\":\"Production Action Set\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null},\"SurveyID\":\"SV_39R4UghEgZNZfFz\",\"ContactFrequencyPassed\":null,\"PopUnderTarget\":null,\"LogicTree\":{\"Operator\":\"AND\",\"Left\":{\"Comparator\":\"GTE\",\"Left\":{\"LogicType\":\"Resolution\",\"Expression\":\"BrowserWidth\",\"Type\":\"LogicNode\"},\"Right\":{\"Value\":\"978\",\"Type\":\"ValueNode\"},\"Type\":\"ComparatorNode\"},\"Right\":{\"Comparator\":\"HAS_NOT_BEEN_SEEN\",\"Left\":{\"LogicType\":\"InterceptLogic\",\"InterceptIDs\":[\"SI_6mMvcazi0l24rS5\"],\"Type\":\"LogicNode\"},\"Right\":{\"Value\":\"2592000\",\"Type\":\"ValueNode\"},\"Type\":\"ComparatorNode\"},\"Type\":\"ConjunctionNode\"}}],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_bf012ZjFawkK6c5\",\"Name\":\"Dotcom & mWeb: Post Transaction: Responsive Design to New Tab\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"169\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_087Pf8s86dJGBRY\",\"Name\":\"Dotcom: Checkin Confirmation\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"31\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_7ZYuvcY9eekx2Ae\",\"Name\":\"mWeb: Checkin Confirmation (Copy)\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"10\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_eEx0TbllKyJwjuC\",\"Name\":\"mWeb MBJ Decleration\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"7\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_9NTu8oDSGybcjH0\",\"Name\":\"Dotcom MBJ Decleration\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"18\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_020rqmgY4j7DRHM\",\"Name\":\"Dotcom International Gateways\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"9\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_71havFIdDxFBRoq\",\"Name\":\"mWeb International Gateways\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"7\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_8iEpYE5idc0smxg\",\"Name\":\"mWeb MCO Split Lobby\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"11\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_87j9k3WxMNW8ai2\",\"Name\":\"Dotcom MCO Split Lobby\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"15\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_dcHbagmtyX9twJT\",\"Name\":\"Dotcom/mweb: Change Survey Responsive Design\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"45\",\"PreventRepeatedDisplay\":\"14\",\"HideOnLocalStorageDisabled\":false,\"HideOnCookiesDisabled\":false,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_0kapWwHe1vlregS\",\"Name\":\"Embedded Feedback Content\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"13\",\"PreventRepeatedDisplay\":\"0\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_0ocmYl3qgL2AU0C\",\"Name\":\"Contact Us Updates\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"3\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_bHoTNpjRZU0RnYq\",\"Name\":\"TEST - mWeb Day of Travel Advisor\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"34\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_7QCB4wqvzVy7VcO\",\"Name\":\"TEST - Web Day of Travel Advisor\",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"28\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false},{\"InterceptID\":\"SI_a63l74XJc6mCW8t\",\"Name\":\"Dotcom | Content Surveys \",\"Active\":true,\"RandomizedActionSets\":false,\"InterceptRevision\":\"68\",\"PreventRepeatedDisplay\":\"30\",\"HideOnLocalStorageDisabled\":true,\"HideOnCookiesDisabled\":true,\"LogicTree\":{\"Value\":false,\"Type\":\"ValueNode\"},\"ActionSets\":[],\"ContactID\":null,\"DistributionID\":null,\"DirectoryID\":null,\"ContactFrequencyRulesEnabled\":false}],\"Modules\":{\"Core\":\"latest\",\"FeedbackButton\":\"1.105.0\",\"ScreenCapture\":\"1.105.0\"},\"FeatureFlags\":{\"DX.PepperPotts_TestingTools\":false,\"DUX.ClientSideTargetingM1\":true,\"SI.ResponsiveDialog.EnableDisplayOptions\":true,\"DX.GoogleDataLayer\":true,\"DX.DXA_CollectClicksAndTargets\":false,\"DX.PepperPotts_XMD\":false,\"DX.UpdateAssetHostName\":false,\"DX.PepperPotts_PakoCompression\":true,\"isClientLoggingEnabled\":false,\"DX.PepperPotts_DXV_EA\":true,\"DX.EmbeddedFeedback_NewAPIs\":true,\"DX.PostToStart\":true,\"DX.DXA_FunnelAnalyticsPOC\":false,\"DX.PepperPotts_VisitorEnabled\":true,\"deferredSliderLoadingFeatureEnabled\":true,\"DX.EmbeddedFeedback_GA_Visitor\":true,\"isLatencyLoggingEnabled\":true,\"DX.StatsAccuracy\":true,\"DX.RealTimeTriggeredIntercepts\":false,\"DX.PepperPotts_TestSessionsOn\":true},\"RequestData\":{\"CORSOrigin\":\"https://www.southwest.com\",\"ID\":\"ZN_6fEtw4RXYKndJOZ\",\"adobeSCVariable\":\"s\",\"bVersion\":\"Published\",\"brandBaseUrl\":\"https://www.surveysouthwest.com\",\"brandDC\":\"yul1.qualtrics.com\",\"brandID\":\"southwest\",\"browser\":\"Chrome\",\"browserVersion\":120,\"cookieDomain\":\"\",\"googleDataLayerVariable\":\"\",\"displayInterceptType\":\"\",\"eventTrackers\":{},\"extRefType\":\"\",\"extRefValue\":\"\",\"hasBeenResolved\":false,\"hasDependencies\":true,\"isBrowserSupported\":true,\"isDebug\":false,\"isMobile\":false,\"historyStorageType\":\"sessionStorage\",\"historyStorageSize\":null,\"maxCookieSize\":null,\"osName\":\"Mac OS X\",\"screenCaptureServiceBaseURL\":\"https://yul1.qualtrics.com/htmltoimage/\",\"validIntercepts\":{\"SI_5yVw4GOJpYx0RUx\":\"DependencyResolver\"},\"zoneManualDisplay\":false,\"reevaluateInterceptOnUrlChange\":false},\"Dependencies\":{\"Intercept\":[\"SI_6mMvcazi0l24rS5\"],\"Resolution\":true},\"SRTestConfiguration\":null}},\"JFEListenerRegistered\":true,\"windows\":{},\"targetWindows\":[],\"foundFrustrationLogic\":false,\"InterceptReevaluator\":{\"evaluationResults\":{\"SI_bKFf9fS0NPGiyN0\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_6g7GoU7IwVWoEZM\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_ai4L8gWi92y6UPs\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_08sKKm34T81B42i\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_0PMb21ozv4rWf66\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_1EWvXjNYPJ4rW7Q\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_eQJuHHDHokQINjo\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_er4koWpsBrSP7vg\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_43iiiwEk5aEURqS\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_5yVw4GOJpYx0RUx\":{\"interceptEntry\":{\"Decision\":{\"ActionSetID\":\"AS_07676101\",\"Creative\":{\"ID\":\"CR_2gJhqDWQ54wnbM1\",\"Name\":\"Feedback Button: Slider\",\"Revision\":\"35\",\"AnchorTags\":{},\"Type\":\"FeedbackButton\"},\"Target\":{\"Type\":\"Survey\",\"URL\":\"https://siteintercept.qualtrics.com/WRSiteInterceptEngine/?Q_CLIENTTYPE=webAdobeLaunch&Q_Redirect=https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL%3Dsi&Q_CID=CR_2gJhqDWQ54wnbM1&Q_ASID=AS_07676101&Q_SRT=RH103T1V4Mw8V42XGKHb8w%3D%3D&Q_SIID=SI_5yVw4GOJpYx0RUx&Q_LOC=https://www.southwest.com/air/booking/index.html?adultPassengersCount%3D1%26adultsCount%3D1%26departureDate%3D2023-07-13%26departureTimeOfDay%3DALL_DAY%26destinationAirportCode%3DBOS%26fareType%3DPOINTS%26int%3DHOMEQBOMAIR%26originationAirportCode%3DLAS%26passengerType%3DADULT%26reset%3Dtrue%26returnDate%3D%26returnTimeOfDay%3DALL_DAY%26tripType%3Doneway%26validate%3Dtrue&Q_CLIENTVERSION=1.105.0\",\"OriginalURL\":\"https://www.surveysouthwest.com/jfe/form/SV_39R4UghEgZNZfFz?Q_CHL=si\",\"OriginalURLOrigin\":\"https://www.surveysouthwest.com\",\"DisplayType\":null}},\"InterceptID\":\"SI_5yVw4GOJpYx0RUx\",\"InterceptRevision\":\"221\",\"ContactID\":null,\"DirectoryID\":null,\"DistributionID\":null,\"SurveyID\":\"SV_39R4UghEgZNZfFz\"},\"interceptDebugInfo\":null},\"SI_bf012ZjFawkK6c5\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_087Pf8s86dJGBRY\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_7ZYuvcY9eekx2Ae\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_eEx0TbllKyJwjuC\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_9NTu8oDSGybcjH0\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_020rqmgY4j7DRHM\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_71havFIdDxFBRoq\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_8iEpYE5idc0smxg\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_87j9k3WxMNW8ai2\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_dcHbagmtyX9twJT\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_0kapWwHe1vlregS\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_0ocmYl3qgL2AU0C\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_bHoTNpjRZU0RnYq\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_7QCB4wqvzVy7VcO\":{\"interceptEntry\":null,\"interceptDebugInfo\":null},\"SI_a63l74XJc6mCW8t\":{\"interceptEntry\":null,\"interceptDebugInfo\":null}},\"oldEvaluationResults\":{},\"moduleActive\":false,\"interceptHasRun\":{},\"interceptsWithFrustrationLogic\":{}},\"Browser\":{\"name\":\"Chrome\",\"version\":120,\"isMobile\":false,\"isBrowserSupported\":true},\"CORSOrigin\":\"https://www.southwest.com\",\"OS\":{\"name\":\"Mac OS X\"},\"adobeVar\":\"s\",\"id\":\"ZN_6fEtw4RXYKndJOZ\",\"CookieDomain\":\"\",\"historyStorageType\":\"sessionStorage\",\"historyStorageSize\":null,\"currentURL\":\"https://www.southwest.com/air/booking/index.html\",\"scrollbarWidth\":15,\"WindowUtils\":{},\"windowHandler\":{\"optInIDsAndTargetOrigins\":\"QSI_OptInIDsAndTargetOrigins\",\"optInIDsAndWindowNames\":\"QSI_OptInIDsAndWindowNames\"},\"EmbeddedData\":{\"surveyOpenED\":{},\"siid\":\"SI_5yVw4GOJpYx0RUx\"},\"PipedText\":{\"locators\":[]},\"BuildElementModule\":{},\"BuildResponsiveElementModule\":{\"HTML_ELEMENT_TYPES\":{\"CONTAINER\":\"div\",\"HEADLINE\":\"div\",\"TEXT\":\"div\",\"BUTTON\":\"button\",\"IMAGE\":\"img\"},\"PARENT_CONTAINER_CLASS\":\"QSIWebResponsive\",\"SHADOWBOX_CLASS\":\"QSIWebResponsiveShadowBox\",\"ACTION_TYPES\":{\"TARGET\":\"open-target\",\"DISMISS\":\"dismiss-intercept\"}},\"Animation\":{\"supportedProperties\":{\"top\":\"px\",\"left\":\"px\",\"right\":\"px\",\"bottom\":\"px\",\"width\":\"px\",\"height\":\"px\",\"opacity\":0},\"tweens\":[],\"Transitions\":{}},\"localStorage\":{},\"ResolveTimeZone\":{},\"ResolveTimeOnSite\":{},\"ResolveSiteCatalyst\":{},\"ResolveSearchTerm\":{},\"ResolveResolution\":{},\"ResolveReferrer\":{},\"ResolvePageCount\":{},\"ResolveJavaScript\":{},\"ResolveIntercept\":{},\"ResolveHTML\":{},\"ResolveHistory\":{},\"ResolveEventTracking\":{},\"ResolveCookie\":{},\"ResolveActionSet\":{},\"ClientSideTargeting\":{\"enabled\":true,\"interceptID\":\"SI_a63l74XJc6mCW8t\"},\"screenCaptureListenerRegistered\":true,\"LocalizationModule\":{},\"LocalizationHelper\":{},\"RunInterceptUtilities\":{},\"CreativeManager\":{\"Utilities\":{}},\"version\":\"Published\",\"InterceptsRan\":false,\"styleElements\":[{}]}"}
    },
    "BOOMR_onload": {"value": {"value": "14214.299999952316"}},
    "WAFQualtricsWebpackJsonP-cloud-1.105.0": {"value": {"value": "[[[12],{}],[[7],{}],[[1],{}]]"}},
    "_qsie": {"value": {"value": "{}"}},
    "BOOMR_configt": {"value": {"value": "1705332352523"}},
    "dir": {"value": {"type": "function"}},
    "dirxml": {"value": {"type": "function"}},
    "profile": {"value": {"type": "function"}},
    "profileEnd": {"value": {"type": "function"}},
    "clear": {"value": {"type": "function"}},
    "table": {"value": {"type": "function"}},
    "keys": {"value": {"type": "function"}},
    "values": {"value": {"type": "function"}},
    "debug": {"value": {"type": "function"}},
    "undebug": {"value": {"type": "function"}},
    "monitor": {"value": {"type": "function"}},
    "unmonitor": {"value": {"type": "function"}},
    "inspect": {"value": {"type": "function"}},
    "copy": {"value": {"type": "function"}},
    "queryObjects": {"value": {"type": "function"}},
    "$_": {},
    "$0": {},
    "$1": {},
    "$2": {},
    "$3": {},
    "$4": {},
    "getEventListeners": {"value": {"type": "function"}},
    "getAccessibleName": {"value": {"type": "function"}},
    "getAccessibleRole": {"value": {"type": "function"}},
    "monitorEvents": {"value": {"type": "function"}},
    "unmonitorEvents": {"value": {"type": "function"}},
    "$": {"value": {"type": "function"}},
    "$$": {"value": {"type": "function"}},
    "$x": {"value": {"type": "function"}}
}
// let params = {"Object":{"value":{"type":"function"}},"Function":{"value":{"type":"function"}},"Array":{"value":{"type":"function"}},"Number":{"value":{"type":"function"}},"parseFloat":{"value":{"type":"function"}},"parseInt":{"value":{"type":"function"}},"Infinity":{"value":{"value":"null"}},"NaN":{},"undefined":{},"Boolean":{"value":{"type":"function"}},"String":{"value":{"type":"function"}},"Symbol":{"value":{"type":"function"}},"Date":{"value":{"type":"function"}},"Promise":{"value":{"type":"function"}},"RegExp":{"value":{"type":"function"}},"Error":{"value":{"type":"function"}},"AggregateError":{"value":{"type":"function"}},"EvalError":{"value":{"type":"function"}},"RangeError":{"value":{"type":"function"}},"ReferenceError":{"value":{"type":"function"}},"SyntaxError":{"value":{"type":"function"}},"TypeError":{"value":{"type":"function"}},"URIError":{"value":{"type":"function"}},"JSON":{"value":{"value":"{}"}},"Math":{"value":{"value":"{}"}},"Intl":{"value":{"value":"{}"}},"ArrayBuffer":{"value":{"type":"function"}},"Atomics":{"value":{"value":"{}"}},"Uint8Array":{"value":{"type":"function"}},"Int8Array":{"value":{"type":"function"}},"Uint16Array":{"value":{"type":"function"}},"Int16Array":{"value":{"type":"function"}},"Uint32Array":{"value":{"type":"function"}},"Int32Array":{"value":{"type":"function"}},"Float32Array":{"value":{"type":"function"}},"Float64Array":{"value":{"type":"function"}},"Uint8ClampedArray":{"value":{"type":"function"}},"BigUint64Array":{"value":{"type":"function"}},"BigInt64Array":{"value":{"type":"function"}},"DataView":{"value":{"type":"function"}},"Map":{"value":{"type":"function"}},"BigInt":{"value":{"type":"function"}},"Set":{"value":{"type":"function"}},"WeakMap":{"value":{"type":"function"}},"WeakSet":{"value":{"type":"function"}},"Proxy":{"value":{"type":"function"}},"Reflect":{"value":{"value":"{}"}},"FinalizationRegistry":{"value":{"type":"function"}},"WeakRef":{"value":{"type":"function"}},"decodeURI":{"value":{"type":"function"}},"decodeURIComponent":{"value":{"type":"function"}},"encodeURI":{"value":{"type":"function"}},"encodeURIComponent":{"value":{"type":"function"}},"escape":{"value":{"type":"function"}},"unescape":{"value":{"type":"function"}},"eval":{"value":{"type":"function"}},"isFinite":{"value":{"type":"function"}},"isNaN":{"value":{"type":"function"}},"console":{"value":{"value":"{\"memory\":{}}"}},"Option":{"value":{"type":"function"}},"Image":{"value":{"type":"function"}},"Audio":{"value":{"type":"function"}},"webkitURL":{"value":{"type":"function"}},"webkitRTCPeerConnection":{"value":{"type":"function"}},"webkitMediaStream":{"value":{"type":"function"}},"WebKitMutationObserver":{"value":{"type":"function"}},"WebKitCSSMatrix":{"value":{"type":"function"}},"XSLTProcessor":{"value":{"type":"function"}},"XPathResult":{"value":{"type":"function"}},"XPathExpression":{"value":{"type":"function"}},"XPathEvaluator":{"value":{"type":"function"}},"XMLSerializer":{"value":{"type":"function"}},"XMLHttpRequestUpload":{"value":{"type":"function"}},"XMLHttpRequestEventTarget":{"value":{"type":"function"}},"XMLHttpRequest":{"value":{"type":"function"}},"XMLDocument":{"value":{"type":"function"}},"WritableStreamDefaultWriter":{"value":{"type":"function"}},"WritableStreamDefaultController":{"value":{"type":"function"}},"WritableStream":{"value":{"type":"function"}},"Worker":{"value":{"type":"function"}},"Window":{"value":{"type":"function"}},"WheelEvent":{"value":{"type":"function"}},"WebSocket":{"value":{"type":"function"}},"WebGLVertexArrayObject":{"value":{"type":"function"}},"WebGLUniformLocation":{"value":{"type":"function"}},"WebGLTransformFeedback":{"value":{"type":"function"}},"WebGLTexture":{"value":{"type":"function"}},"WebGLSync":{"value":{"type":"function"}},"WebGLShaderPrecisionFormat":{"value":{"type":"function"}},"WebGLShader":{"value":{"type":"function"}},"WebGLSampler":{"value":{"type":"function"}},"WebGLRenderingContext":{"value":{"type":"function"}},"WebGLRenderbuffer":{"value":{"type":"function"}},"WebGLQuery":{"value":{"type":"function"}},"WebGLProgram":{"value":{"type":"function"}},"WebGLFramebuffer":{"value":{"type":"function"}},"WebGLContextEvent":{"value":{"type":"function"}},"WebGLBuffer":{"value":{"type":"function"}},"WebGLActiveInfo":{"value":{"type":"function"}},"WebGL2RenderingContext":{"value":{"type":"function"}},"WaveShaperNode":{"value":{"type":"function"}},"VisualViewport":{"value":{"type":"function"}},"VirtualKeyboardGeometryChangeEvent":{"value":{"type":"function"}},"ViewTransition":{"value":{"type":"function"}},"VideoFrame":{"value":{"type":"function"}},"VideoColorSpace":{"value":{"type":"function"}},"ValidityState":{"value":{"type":"function"}},"VTTCue":{"value":{"type":"function"}},"UserActivation":{"value":{"type":"function"}},"URLSearchParams":{"value":{"type":"function"}},"URLPattern":{"value":{"type":"function"}},"URL":{"value":{"type":"function"}},"UIEvent":{"value":{"type":"function"}},"TrustedTypePolicyFactory":{"value":{"type":"function"}},"TrustedTypePolicy":{"value":{"type":"function"}},"TrustedScriptURL":{"value":{"type":"function"}},"TrustedScript":{"value":{"type":"function"}},"TrustedHTML":{"value":{"type":"function"}},"TreeWalker":{"value":{"type":"function"}},"TransitionEvent":{"value":{"type":"function"}},"TransformStreamDefaultController":{"value":{"type":"function"}},"TransformStream":{"value":{"type":"function"}},"TrackEvent":{"value":{"type":"function"}},"TouchList":{"value":{"type":"function"}},"TouchEvent":{"value":{"type":"function"}},"Touch":{"value":{"type":"function"}},"ToggleEvent":{"value":{"type":"function"}},"TimeRanges":{"value":{"type":"function"}},"TextTrackList":{"value":{"type":"function"}},"TextTrackCueList":{"value":{"type":"function"}},"TextTrackCue":{"value":{"type":"function"}},"TextTrack":{"value":{"type":"function"}},"TextMetrics":{"value":{"type":"function"}},"TextEvent":{"value":{"type":"function"}},"TextEncoderStream":{"value":{"type":"function"}},"TextEncoder":{"value":{"type":"function"}},"TextDecoderStream":{"value":{"type":"function"}},"TextDecoder":{"value":{"type":"function"}},"Text":{"value":{"type":"function"}},"TaskSignal":{"value":{"type":"function"}},"TaskPriorityChangeEvent":{"value":{"type":"function"}},"TaskController":{"value":{"type":"function"}},"TaskAttributionTiming":{"value":{"type":"function"}},"SyncManager":{"value":{"type":"function"}},"SubmitEvent":{"value":{"type":"function"}},"StyleSheetList":{"value":{"type":"function"}},"StyleSheet":{"value":{"type":"function"}},"StylePropertyMapReadOnly":{"value":{"type":"function"}},"StylePropertyMap":{"value":{"type":"function"}},"StorageEvent":{"value":{"type":"function"}},"Storage":{"value":{"type":"function"}},"StereoPannerNode":{"value":{"type":"function"}},"StaticRange":{"value":{"type":"function"}},"SourceBufferList":{"value":{"type":"function"}},"SourceBuffer":{"value":{"type":"function"}},"ShadowRoot":{"value":{"type":"function"}},"Selection":{"value":{"type":"function"}},"SecurityPolicyViolationEvent":{"value":{"type":"function"}},"ScriptProcessorNode":{"value":{"type":"function"}},"ScreenOrientation":{"value":{"type":"function"}},"Screen":{"value":{"type":"function"}},"Scheduling":{"value":{"type":"function"}},"Scheduler":{"value":{"type":"function"}},"SVGViewElement":{"value":{"type":"function"}},"SVGUseElement":{"value":{"type":"function"}},"SVGUnitTypes":{"value":{"type":"function"}},"SVGTransformList":{"value":{"type":"function"}},"SVGTransform":{"value":{"type":"function"}},"SVGTitleElement":{"value":{"type":"function"}},"SVGTextPositioningElement":{"value":{"type":"function"}},"SVGTextPathElement":{"value":{"type":"function"}},"SVGTextElement":{"value":{"type":"function"}},"SVGTextContentElement":{"value":{"type":"function"}},"SVGTSpanElement":{"value":{"type":"function"}},"SVGSymbolElement":{"value":{"type":"function"}},"SVGSwitchElement":{"value":{"type":"function"}},"SVGStyleElement":{"value":{"type":"function"}},"SVGStringList":{"value":{"type":"function"}},"SVGStopElement":{"value":{"type":"function"}},"SVGSetElement":{"value":{"type":"function"}},"SVGScriptElement":{"value":{"type":"function"}},"SVGSVGElement":{"value":{"type":"function"}},"SVGRectElement":{"value":{"type":"function"}},"SVGRect":{"value":{"type":"function"}},"SVGRadialGradientElement":{"value":{"type":"function"}},"SVGPreserveAspectRatio":{"value":{"type":"function"}},"SVGPolylineElement":{"value":{"type":"function"}},"SVGPolygonElement":{"value":{"type":"function"}},"SVGPointList":{"value":{"type":"function"}},"SVGPoint":{"value":{"type":"function"}},"SVGPatternElement":{"value":{"type":"function"}},"SVGPathElement":{"value":{"type":"function"}},"SVGNumberList":{"value":{"type":"function"}},"SVGNumber":{"value":{"type":"function"}},"SVGMetadataElement":{"value":{"type":"function"}},"SVGMatrix":{"value":{"type":"function"}},"SVGMaskElement":{"value":{"type":"function"}},"SVGMarkerElement":{"value":{"type":"function"}},"SVGMPathElement":{"value":{"type":"function"}},"SVGLinearGradientElement":{"value":{"type":"function"}},"SVGLineElement":{"value":{"type":"function"}},"SVGLengthList":{"value":{"type":"function"}},"SVGLength":{"value":{"type":"function"}},"SVGImageElement":{"value":{"type":"function"}},"SVGGraphicsElement":{"value":{"type":"function"}},"SVGGradientElement":{"value":{"type":"function"}},"SVGGeometryElement":{"value":{"type":"function"}},"SVGGElement":{"value":{"type":"function"}},"SVGForeignObjectElement":{"value":{"type":"function"}},"SVGFilterElement":{"value":{"type":"function"}},"SVGFETurbulenceElement":{"value":{"type":"function"}},"SVGFETileElement":{"value":{"type":"function"}},"SVGFESpotLightElement":{"value":{"type":"function"}},"SVGFESpecularLightingElement":{"value":{"type":"function"}},"SVGFEPointLightElement":{"value":{"type":"function"}},"SVGFEOffsetElement":{"value":{"type":"function"}},"SVGFEMorphologyElement":{"value":{"type":"function"}},"SVGFEMergeNodeElement":{"value":{"type":"function"}},"SVGFEMergeElement":{"value":{"type":"function"}},"SVGFEImageElement":{"value":{"type":"function"}},"SVGFEGaussianBlurElement":{"value":{"type":"function"}},"SVGFEFuncRElement":{"value":{"type":"function"}},"SVGFEFuncGElement":{"value":{"type":"function"}},"SVGFEFuncBElement":{"value":{"type":"function"}},"SVGFEFuncAElement":{"value":{"type":"function"}},"SVGFEFloodElement":{"value":{"type":"function"}},"SVGFEDropShadowElement":{"value":{"type":"function"}},"SVGFEDistantLightElement":{"value":{"type":"function"}},"SVGFEDisplacementMapElement":{"value":{"type":"function"}},"SVGFEDiffuseLightingElement":{"value":{"type":"function"}},"SVGFEConvolveMatrixElement":{"value":{"type":"function"}},"SVGFECompositeElement":{"value":{"type":"function"}},"SVGFEComponentTransferElement":{"value":{"type":"function"}},"SVGFEColorMatrixElement":{"value":{"type":"function"}},"SVGFEBlendElement":{"value":{"type":"function"}},"SVGEllipseElement":{"value":{"type":"function"}},"SVGElement":{"value":{"type":"function"}},"SVGDescElement":{"value":{"type":"function"}},"SVGDefsElement":{"value":{"type":"function"}},"SVGComponentTransferFunctionElement":{"value":{"type":"function"}},"SVGClipPathElement":{"value":{"type":"function"}},"SVGCircleElement":{"value":{"type":"function"}},"SVGAnimationElement":{"value":{"type":"function"}},"SVGAnimatedTransformList":{"value":{"type":"function"}},"SVGAnimatedString":{"value":{"type":"function"}},"SVGAnimatedRect":{"value":{"type":"function"}},"SVGAnimatedPreserveAspectRatio":{"value":{"type":"function"}},"SVGAnimatedNumberList":{"value":{"type":"function"}},"SVGAnimatedNumber":{"value":{"type":"function"}},"SVGAnimatedLengthList":{"value":{"type":"function"}},"SVGAnimatedLength":{"value":{"type":"function"}},"SVGAnimatedInteger":{"value":{"type":"function"}},"SVGAnimatedEnumeration":{"value":{"type":"function"}},"SVGAnimatedBoolean":{"value":{"type":"function"}},"SVGAnimatedAngle":{"value":{"type":"function"}},"SVGAnimateTransformElement":{"value":{"type":"function"}},"SVGAnimateMotionElement":{"value":{"type":"function"}},"SVGAnimateElement":{"value":{"type":"function"}},"SVGAngle":{"value":{"type":"function"}},"SVGAElement":{"value":{"type":"function"}},"Response":{"value":{"type":"function"}},"ResizeObserverSize":{"value":{"type":"function"}},"ResizeObserverEntry":{"value":{"type":"function"}},"ResizeObserver":{"value":{"type":"function"}},"Request":{"value":{"type":"function"}},"ReportingObserver":{"value":{"type":"function"}},"ReadableStreamDefaultReader":{"value":{"type":"function"}},"ReadableStreamDefaultController":{"value":{"type":"function"}},"ReadableStreamBYOBRequest":{"value":{"type":"function"}},"ReadableStreamBYOBReader":{"value":{"type":"function"}},"ReadableStream":{"value":{"type":"function"}},"ReadableByteStreamController":{"value":{"type":"function"}},"Range":{"value":{"type":"function"}},"RadioNodeList":{"value":{"type":"function"}},"RTCTrackEvent":{"value":{"type":"function"}},"RTCStatsReport":{"value":{"type":"function"}},"RTCSessionDescription":{"value":{"type":"function"}},"RTCSctpTransport":{"value":{"type":"function"}},"RTCRtpTransceiver":{"value":{"type":"function"}},"RTCRtpSender":{"value":{"type":"function"}},"RTCRtpReceiver":{"value":{"type":"function"}},"RTCPeerConnectionIceEvent":{"value":{"type":"function"}},"RTCPeerConnectionIceErrorEvent":{"value":{"type":"function"}},"RTCPeerConnection":{"value":{"type":"function"}},"RTCIceTransport":{"value":{"type":"function"}},"RTCIceCandidate":{"value":{"type":"function"}},"RTCErrorEvent":{"value":{"type":"function"}},"RTCError":{"value":{"type":"function"}},"RTCEncodedVideoFrame":{"value":{"type":"function"}},"RTCEncodedAudioFrame":{"value":{"type":"function"}},"RTCDtlsTransport":{"value":{"type":"function"}},"RTCDataChannelEvent":{"value":{"type":"function"}},"RTCDataChannel":{"value":{"type":"function"}},"RTCDTMFToneChangeEvent":{"value":{"type":"function"}},"RTCDTMFSender":{"value":{"type":"function"}},"RTCCertificate":{"value":{"type":"function"}},"PromiseRejectionEvent":{"value":{"type":"function"}},"ProgressEvent":{"value":{"type":"function"}},"Profiler":{"value":{"type":"function"}},"ProcessingInstruction":{"value":{"type":"function"}},"PopStateEvent":{"value":{"type":"function"}},"PointerEvent":{"value":{"type":"function"}},"PluginArray":{"value":{"type":"function"}},"Plugin":{"value":{"type":"function"}},"PictureInPictureWindow":{"value":{"type":"function"}},"PictureInPictureEvent":{"value":{"type":"function"}},"PeriodicWave":{"value":{"type":"function"}},"PerformanceTiming":{"value":{"type":"function"}},"PerformanceServerTiming":{"value":{"type":"function"}},"PerformanceResourceTiming":{"value":{"type":"function"}},"PerformancePaintTiming":{"value":{"type":"function"}},"PerformanceObserverEntryList":{"value":{"type":"function"}},"PerformanceObserver":{"value":{"type":"function"}},"PerformanceNavigationTiming":{"value":{"type":"function"}},"PerformanceNavigation":{"value":{"type":"function"}},"PerformanceMeasure":{"value":{"type":"function"}},"PerformanceMark":{"value":{"type":"function"}},"PerformanceLongTaskTiming":{"value":{"type":"function"}},"PerformanceEventTiming":{"value":{"type":"function"}},"PerformanceEntry":{"value":{"type":"function"}},"PerformanceElementTiming":{"value":{"type":"function"}},"Performance":{"value":{"type":"function"}},"Path2D":{"value":{"type":"function"}},"PannerNode":{"value":{"type":"function"}},"PageTransitionEvent":{"value":{"type":"function"}},"OverconstrainedError":{"value":{"type":"function"}},"OscillatorNode":{"value":{"type":"function"}},"OffscreenCanvasRenderingContext2D":{"value":{"type":"function"}},"OffscreenCanvas":{"value":{"type":"function"}},"OfflineAudioContext":{"value":{"type":"function"}},"OfflineAudioCompletionEvent":{"value":{"type":"function"}},"NodeList":{"value":{"type":"function"}},"NodeIterator":{"value":{"type":"function"}},"NodeFilter":{"value":{"type":"function"}},"Node":{"value":{"type":"function"}},"NetworkInformation":{"value":{"type":"function"}},"Navigator":{"value":{"type":"function"}},"NavigationTransition":{"value":{"type":"function"}},"NavigationHistoryEntry":{"value":{"type":"function"}},"NavigationDestination":{"value":{"type":"function"}},"NavigationCurrentEntryChangeEvent":{"value":{"type":"function"}},"Navigation":{"value":{"type":"function"}},"NavigateEvent":{"value":{"type":"function"}},"NamedNodeMap":{"value":{"type":"function"}},"MutationRecord":{"value":{"type":"function"}},"MutationObserver":{"value":{"type":"function"}},"MouseEvent":{"value":{"type":"function"}},"MimeTypeArray":{"value":{"type":"function"}},"MimeType":{"value":{"type":"function"}},"MessagePort":{"value":{"type":"function"}},"MessageEvent":{"value":{"type":"function"}},"MessageChannel":{"value":{"type":"function"}},"MediaStreamTrackVideoStats":{"value":{"type":"function"}},"MediaStreamTrackProcessor":{"value":{"type":"function"}},"MediaStreamTrackGenerator":{"value":{"type":"function"}},"MediaStreamTrackEvent":{"value":{"type":"function"}},"MediaStreamTrack":{"value":{"type":"function"}},"MediaStreamEvent":{"value":{"type":"function"}},"MediaStreamAudioSourceNode":{"value":{"type":"function"}},"MediaStreamAudioDestinationNode":{"value":{"type":"function"}},"MediaStream":{"value":{"type":"function"}},"MediaSourceHandle":{"value":{"type":"function"}},"MediaSource":{"value":{"type":"function"}},"MediaRecorder":{"value":{"type":"function"}},"MediaQueryListEvent":{"value":{"type":"function"}},"MediaQueryList":{"value":{"type":"function"}},"MediaList":{"value":{"type":"function"}},"MediaError":{"value":{"type":"function"}},"MediaEncryptedEvent":{"value":{"type":"function"}},"MediaElementAudioSourceNode":{"value":{"type":"function"}},"MediaCapabilities":{"value":{"type":"function"}},"MathMLElement":{"value":{"type":"function"}},"Location":{"value":{"type":"function"}},"LayoutShiftAttribution":{"value":{"type":"function"}},"LayoutShift":{"value":{"type":"function"}},"LargestContentfulPaint":{"value":{"type":"function"}},"KeyframeEffect":{"value":{"type":"function"}},"KeyboardEvent":{"value":{"type":"function"}},"IntersectionObserverEntry":{"value":{"type":"function"}},"IntersectionObserver":{"value":{"type":"function"}},"InputEvent":{"value":{"type":"function"}},"InputDeviceInfo":{"value":{"type":"function"}},"InputDeviceCapabilities":{"value":{"type":"function"}},"ImageTrackList":{"value":{"type":"function"}},"ImageTrack":{"value":{"type":"function"}},"ImageData":{"value":{"type":"function"}},"ImageCapture":{"value":{"type":"function"}},"ImageBitmapRenderingContext":{"value":{"type":"function"}},"ImageBitmap":{"value":{"type":"function"}},"IdleDeadline":{"value":{"type":"function"}},"IIRFilterNode":{"value":{"type":"function"}},"IDBVersionChangeEvent":{"value":{"type":"function"}},"IDBTransaction":{"value":{"type":"function"}},"IDBRequest":{"value":{"type":"function"}},"IDBOpenDBRequest":{"value":{"type":"function"}},"IDBObjectStore":{"value":{"type":"function"}},"IDBKeyRange":{"value":{"type":"function"}},"IDBIndex":{"value":{"type":"function"}},"IDBFactory":{"value":{"type":"function"}},"IDBDatabase":{"value":{"type":"function"}},"IDBCursorWithValue":{"value":{"type":"function"}},"IDBCursor":{"value":{"type":"function"}},"History":{"value":{"type":"function"}},"Headers":{"value":{"type":"function"}},"HashChangeEvent":{"value":{"type":"function"}},"HTMLVideoElement":{"value":{"type":"function"}},"HTMLUnknownElement":{"value":{"type":"function"}},"HTMLUListElement":{"value":{"type":"function"}},"HTMLTrackElement":{"value":{"type":"function"}},"HTMLTitleElement":{"value":{"type":"function"}},"HTMLTimeElement":{"value":{"type":"function"}},"HTMLTextAreaElement":{"value":{"type":"function"}},"HTMLTemplateElement":{"value":{"type":"function"}},"HTMLTableSectionElement":{"value":{"type":"function"}},"HTMLTableRowElement":{"value":{"type":"function"}},"HTMLTableElement":{"value":{"type":"function"}},"HTMLTableColElement":{"value":{"type":"function"}},"HTMLTableCellElement":{"value":{"type":"function"}},"HTMLTableCaptionElement":{"value":{"type":"function"}},"HTMLStyleElement":{"value":{"type":"function"}},"HTMLSpanElement":{"value":{"type":"function"}},"HTMLSourceElement":{"value":{"type":"function"}},"HTMLSlotElement":{"value":{"type":"function"}},"HTMLSelectElement":{"value":{"type":"function"}},"HTMLScriptElement":{"value":{"type":"function"}},"HTMLQuoteElement":{"value":{"type":"function"}},"HTMLProgressElement":{"value":{"type":"function"}},"HTMLPreElement":{"value":{"type":"function"}},"HTMLPictureElement":{"value":{"type":"function"}},"HTMLParamElement":{"value":{"type":"function"}},"HTMLParagraphElement":{"value":{"type":"function"}},"HTMLOutputElement":{"value":{"type":"function"}},"HTMLOptionsCollection":{"value":{"type":"function"}},"HTMLOptionElement":{"value":{"type":"function"}},"HTMLOptGroupElement":{"value":{"type":"function"}},"HTMLObjectElement":{"value":{"type":"function"}},"HTMLOListElement":{"value":{"type":"function"}},"HTMLModElement":{"value":{"type":"function"}},"HTMLMeterElement":{"value":{"type":"function"}},"HTMLMetaElement":{"value":{"type":"function"}},"HTMLMenuElement":{"value":{"type":"function"}},"HTMLMediaElement":{"value":{"type":"function"}},"HTMLMarqueeElement":{"value":{"type":"function"}},"HTMLMapElement":{"value":{"type":"function"}},"HTMLLinkElement":{"value":{"type":"function"}},"HTMLLegendElement":{"value":{"type":"function"}},"HTMLLabelElement":{"value":{"type":"function"}},"HTMLLIElement":{"value":{"type":"function"}},"HTMLInputElement":{"value":{"type":"function"}},"HTMLImageElement":{"value":{"type":"function"}},"HTMLIFrameElement":{"value":{"type":"function"}},"HTMLHtmlElement":{"value":{"type":"function"}},"HTMLHeadingElement":{"value":{"type":"function"}},"HTMLHeadElement":{"value":{"type":"function"}},"HTMLHRElement":{"value":{"type":"function"}},"HTMLFrameSetElement":{"value":{"type":"function"}},"HTMLFrameElement":{"value":{"type":"function"}},"HTMLFormElement":{"value":{"type":"function"}},"HTMLFormControlsCollection":{"value":{"type":"function"}},"HTMLFontElement":{"value":{"type":"function"}},"HTMLFieldSetElement":{"value":{"type":"function"}},"HTMLEmbedElement":{"value":{"type":"function"}},"HTMLElement":{"value":{"type":"function"}},"HTMLDocument":{"value":{"type":"function"}},"HTMLDivElement":{"value":{"type":"function"}},"HTMLDirectoryElement":{"value":{"type":"function"}},"HTMLDialogElement":{"value":{"type":"function"}},"HTMLDetailsElement":{"value":{"type":"function"}},"HTMLDataListElement":{"value":{"type":"function"}},"HTMLDataElement":{"value":{"type":"function"}},"HTMLDListElement":{"value":{"type":"function"}},"HTMLCollection":{"value":{"type":"function"}},"HTMLCanvasElement":{"value":{"type":"function"}},"HTMLButtonElement":{"value":{"type":"function"}},"HTMLBodyElement":{"value":{"type":"function"}},"HTMLBaseElement":{"value":{"type":"function"}},"HTMLBRElement":{"value":{"type":"function"}},"HTMLAudioElement":{"value":{"type":"function"}},"HTMLAreaElement":{"value":{"type":"function"}},"HTMLAnchorElement":{"value":{"type":"function"}},"HTMLAllCollection":{"value":{"type":"function"}},"GeolocationPositionError":{"value":{"type":"function"}},"GeolocationPosition":{"value":{"type":"function"}},"GeolocationCoordinates":{"value":{"type":"function"}},"Geolocation":{"value":{"type":"function"}},"GamepadHapticActuator":{"value":{"type":"function"}},"GamepadEvent":{"value":{"type":"function"}},"GamepadButton":{"value":{"type":"function"}},"Gamepad":{"value":{"type":"function"}},"GainNode":{"value":{"type":"function"}},"FormDataEvent":{"value":{"type":"function"}},"FormData":{"value":{"type":"function"}},"FontFaceSetLoadEvent":{"value":{"type":"function"}},"FontFace":{"value":{"type":"function"}},"FocusEvent":{"value":{"type":"function"}},"FileReader":{"value":{"type":"function"}},"FileList":{"value":{"type":"function"}},"File":{"value":{"type":"function"}},"FeaturePolicy":{"value":{"type":"function"}},"External":{"value":{"type":"function"}},"EventTarget":{"value":{"type":"function"}},"EventSource":{"value":{"type":"function"}},"EventCounts":{"value":{"type":"function"}},"Event":{"value":{"type":"function"}},"ErrorEvent":{"value":{"type":"function"}},"EncodedVideoChunk":{"value":{"type":"function"}},"EncodedAudioChunk":{"value":{"type":"function"}},"ElementInternals":{"value":{"type":"function"}},"Element":{"value":{"type":"function"}},"DynamicsCompressorNode":{"value":{"type":"function"}},"DragEvent":{"value":{"type":"function"}},"DocumentType":{"value":{"type":"function"}},"DocumentFragment":{"value":{"type":"function"}},"Document":{"value":{"type":"function"}},"DelayNode":{"value":{"type":"function"}},"DecompressionStream":{"value":{"type":"function"}},"DataTransferItemList":{"value":{"type":"function"}},"DataTransferItem":{"value":{"type":"function"}},"DataTransfer":{"value":{"type":"function"}},"DOMTokenList":{"value":{"type":"function"}},"DOMStringMap":{"value":{"type":"function"}},"DOMStringList":{"value":{"type":"function"}},"DOMRectReadOnly":{"value":{"type":"function"}},"DOMRectList":{"value":{"type":"function"}},"DOMRect":{"value":{"type":"function"}},"DOMQuad":{"value":{"type":"function"}},"DOMPointReadOnly":{"value":{"type":"function"}},"DOMPoint":{"value":{"type":"function"}},"DOMParser":{"value":{"type":"function"}},"DOMMatrixReadOnly":{"value":{"type":"function"}},"DOMMatrix":{"value":{"type":"function"}},"DOMImplementation":{"value":{"type":"function"}},"DOMException":{"value":{"type":"function"}},"DOMError":{"value":{"type":"function"}},"CustomStateSet":{"value":{"type":"function"}},"CustomEvent":{"value":{"type":"function"}},"CustomElementRegistry":{"value":{"type":"function"}},"Crypto":{"value":{"type":"function"}},"CountQueuingStrategy":{"value":{"type":"function"}},"ConvolverNode":{"value":{"type":"function"}},"ConstantSourceNode":{"value":{"type":"function"}},"CompressionStream":{"value":{"type":"function"}},"CompositionEvent":{"value":{"type":"function"}},"Comment":{"value":{"type":"function"}},"CloseEvent":{"value":{"type":"function"}},"ClipboardEvent":{"value":{"type":"function"}},"CharacterData":{"value":{"type":"function"}},"ChannelSplitterNode":{"value":{"type":"function"}},"ChannelMergerNode":{"value":{"type":"function"}},"CanvasRenderingContext2D":{"value":{"type":"function"}},"CanvasPattern":{"value":{"type":"function"}},"CanvasGradient":{"value":{"type":"function"}},"CanvasCaptureMediaStreamTrack":{"value":{"type":"function"}},"CSSVariableReferenceValue":{"value":{"type":"function"}},"CSSUnparsedValue":{"value":{"type":"function"}},"CSSUnitValue":{"value":{"type":"function"}},"CSSTranslate":{"value":{"type":"function"}},"CSSTransformValue":{"value":{"type":"function"}},"CSSTransformComponent":{"value":{"type":"function"}},"CSSSupportsRule":{"value":{"type":"function"}},"CSSStyleValue":{"value":{"type":"function"}},"CSSStyleSheet":{"value":{"type":"function"}},"CSSStyleRule":{"value":{"type":"function"}},"CSSStyleDeclaration":{"value":{"type":"function"}},"CSSSkewY":{"value":{"type":"function"}},"CSSSkewX":{"value":{"type":"function"}},"CSSSkew":{"value":{"type":"function"}},"CSSScale":{"value":{"type":"function"}},"CSSRuleList":{"value":{"type":"function"}},"CSSRule":{"value":{"type":"function"}},"CSSRotate":{"value":{"type":"function"}},"CSSPropertyRule":{"value":{"type":"function"}},"CSSPositionValue":{"value":{"type":"function"}},"CSSPerspective":{"value":{"type":"function"}},"CSSPageRule":{"value":{"type":"function"}},"CSSNumericValue":{"value":{"type":"function"}},"CSSNumericArray":{"value":{"type":"function"}},"CSSNamespaceRule":{"value":{"type":"function"}},"CSSMediaRule":{"value":{"type":"function"}},"CSSMatrixComponent":{"value":{"type":"function"}},"CSSMathValue":{"value":{"type":"function"}},"CSSMathSum":{"value":{"type":"function"}},"CSSMathProduct":{"value":{"type":"function"}},"CSSMathNegate":{"value":{"type":"function"}},"CSSMathMin":{"value":{"type":"function"}},"CSSMathMax":{"value":{"type":"function"}},"CSSMathInvert":{"value":{"type":"function"}},"CSSMathClamp":{"value":{"type":"function"}},"CSSLayerStatementRule":{"value":{"type":"function"}},"CSSLayerBlockRule":{"value":{"type":"function"}},"CSSKeywordValue":{"value":{"type":"function"}},"CSSKeyframesRule":{"value":{"type":"function"}},"CSSKeyframeRule":{"value":{"type":"function"}},"CSSImportRule":{"value":{"type":"function"}},"CSSImageValue":{"value":{"type":"function"}},"CSSGroupingRule":{"value":{"type":"function"}},"CSSFontPaletteValuesRule":{"value":{"type":"function"}},"CSSFontFaceRule":{"value":{"type":"function"}},"CSSCounterStyleRule":{"value":{"type":"function"}},"CSSContainerRule":{"value":{"type":"function"}},"CSSConditionRule":{"value":{"type":"function"}},"CSS":{"value":{"value":"{\"highlights\":{},\"paintWorklet\":{}}"}},"CDATASection":{"value":{"type":"function"}},"ByteLengthQueuingStrategy":{"value":{"type":"function"}},"BroadcastChannel":{"value":{"type":"function"}},"BlobEvent":{"value":{"type":"function"}},"Blob":{"value":{"type":"function"}},"BiquadFilterNode":{"value":{"type":"function"}},"BeforeUnloadEvent":{"value":{"type":"function"}},"BeforeInstallPromptEvent":{"value":{"type":"function"}},"BaseAudioContext":{"value":{"type":"function"}},"BarProp":{"value":{"type":"function"}},"AudioWorkletNode":{"value":{"type":"function"}},"AudioSinkInfo":{"value":{"type":"function"}},"AudioScheduledSourceNode":{"value":{"type":"function"}},"AudioProcessingEvent":{"value":{"type":"function"}},"AudioParamMap":{"value":{"type":"function"}},"AudioParam":{"value":{"type":"function"}},"AudioNode":{"value":{"type":"function"}},"AudioListener":{"value":{"type":"function"}},"AudioDestinationNode":{"value":{"type":"function"}},"AudioData":{"value":{"type":"function"}},"AudioContext":{"value":{"type":"function"}},"AudioBufferSourceNode":{"value":{"type":"function"}},"AudioBuffer":{"value":{"type":"function"}},"Attr":{"value":{"type":"function"}},"AnimationEvent":{"value":{"type":"function"}},"AnimationEffect":{"value":{"type":"function"}},"Animation":{"value":{"type":"function"}},"AnalyserNode":{"value":{"type":"function"}},"AbstractRange":{"value":{"type":"function"}},"AbortSignal":{"value":{"type":"function"}},"AbortController":{"value":{"type":"function"}},"window":{"get":true},"self":{"get":true,"set":true},"document":{"get":true},"name":{"get":true,"set":true},"location":{"get":true,"set":true},"customElements":{"get":true},"history":{"get":true},"navigation":{"get":true,"set":true},"locationbar":{"get":true,"set":true},"menubar":{"get":true,"set":true},"personalbar":{"get":true,"set":true},"scrollbars":{"get":true,"set":true},"statusbar":{"get":true,"set":true},"toolbar":{"get":true,"set":true},"status":{"get":true,"set":true},"closed":{"get":true},"frames":{"get":true,"set":true},"length":{"get":true,"set":true},"top":{"get":true},"opener":{"get":true,"set":true},"parent":{"get":true,"set":true},"frameElement":{"get":true},"navigator":{"get":true},"origin":{"get":true,"set":true},"external":{"get":true,"set":true},"screen":{"get":true,"set":true},"innerWidth":{"get":true,"set":true},"innerHeight":{"get":true,"set":true},"scrollX":{"get":true,"set":true},"pageXOffset":{"get":true,"set":true},"scrollY":{"get":true,"set":true},"pageYOffset":{"get":true,"set":true},"visualViewport":{"get":true,"set":true},"screenX":{"get":true,"set":true},"screenY":{"get":true,"set":true},"outerWidth":{"get":true,"set":true},"outerHeight":{"get":true,"set":true},"devicePixelRatio":{"get":true,"set":true},"event":{"get":true,"set":true},"clientInformation":{"get":true,"set":true},"offscreenBuffering":{"get":true,"set":true},"screenLeft":{"get":true,"set":true},"screenTop":{"get":true,"set":true},"styleMedia":{"get":true},"onsearch":{"get":true,"set":true},"isSecureContext":{"get":true},"trustedTypes":{"get":true},"performance":{"get":true,"set":true},"onappinstalled":{"get":true,"set":true},"onbeforeinstallprompt":{"get":true,"set":true},"crypto":{"get":true},"indexedDB":{"get":true},"sessionStorage":{"get":true},"localStorage":{"get":true},"onbeforexrselect":{"get":true,"set":true},"onabort":{"get":true,"set":true},"onbeforeinput":{"get":true,"set":true},"onbeforetoggle":{"get":true,"set":true},"onblur":{"get":true,"set":true},"oncancel":{"get":true,"set":true},"oncanplay":{"get":true,"set":true},"oncanplaythrough":{"get":true,"set":true},"onchange":{"get":true,"set":true},"onclick":{"get":true,"set":true},"onclose":{"get":true,"set":true},"oncontextlost":{"get":true,"set":true},"oncontextmenu":{"get":true,"set":true},"oncontextrestored":{"get":true,"set":true},"oncuechange":{"get":true,"set":true},"ondblclick":{"get":true,"set":true},"ondrag":{"get":true,"set":true},"ondragend":{"get":true,"set":true},"ondragenter":{"get":true,"set":true},"ondragleave":{"get":true,"set":true},"ondragover":{"get":true,"set":true},"ondragstart":{"get":true,"set":true},"ondrop":{"get":true,"set":true},"ondurationchange":{"get":true,"set":true},"onemptied":{"get":true,"set":true},"onended":{"get":true,"set":true},"onerror":{"get":true,"set":true},"onfocus":{"get":true,"set":true},"onformdata":{"get":true,"set":true},"oninput":{"get":true,"set":true},"oninvalid":{"get":true,"set":true},"onkeydown":{"get":true,"set":true},"onkeypress":{"get":true,"set":true},"onkeyup":{"get":true,"set":true},"onload":{"get":true,"set":true},"onloadeddata":{"get":true,"set":true},"onloadedmetadata":{"get":true,"set":true},"onloadstart":{"get":true,"set":true},"onmousedown":{"get":true,"set":true},"onmouseenter":{"get":true,"set":true},"onmouseleave":{"get":true,"set":true},"onmousemove":{"get":true,"set":true},"onmouseout":{"get":true,"set":true},"onmouseover":{"get":true,"set":true},"onmouseup":{"get":true,"set":true},"onmousewheel":{"get":true,"set":true},"onpause":{"get":true,"set":true},"onplay":{"get":true,"set":true},"onplaying":{"get":true,"set":true},"onprogress":{"get":true,"set":true},"onratechange":{"get":true,"set":true},"onreset":{"get":true,"set":true},"onresize":{"get":true,"set":true},"onscroll":{"get":true,"set":true},"onsecuritypolicyviolation":{"get":true,"set":true},"onseeked":{"get":true,"set":true},"onseeking":{"get":true,"set":true},"onselect":{"get":true,"set":true},"onslotchange":{"get":true,"set":true},"onstalled":{"get":true,"set":true},"onsubmit":{"get":true,"set":true},"onsuspend":{"get":true,"set":true},"ontimeupdate":{"get":true,"set":true},"ontoggle":{"get":true,"set":true},"onvolumechange":{"get":true,"set":true},"onwaiting":{"get":true,"set":true},"onwebkitanimationend":{"get":true,"set":true},"onwebkitanimationiteration":{"get":true,"set":true},"onwebkitanimationstart":{"get":true,"set":true},"onwebkittransitionend":{"get":true,"set":true},"onwheel":{"get":true,"set":true},"onauxclick":{"get":true,"set":true},"ongotpointercapture":{"get":true,"set":true},"onlostpointercapture":{"get":true,"set":true},"onpointerdown":{"get":true,"set":true},"onpointermove":{"get":true,"set":true},"onpointerrawupdate":{"get":true,"set":true},"onpointerup":{"get":true,"set":true},"onpointercancel":{"get":true,"set":true},"onpointerover":{"get":true,"set":true},"onpointerout":{"get":true,"set":true},"onpointerenter":{"get":true,"set":true},"onpointerleave":{"get":true,"set":true},"onselectstart":{"get":true,"set":true},"onselectionchange":{"get":true,"set":true},"onanimationend":{"get":true,"set":true},"onanimationiteration":{"get":true,"set":true},"onanimationstart":{"get":true,"set":true},"ontransitionrun":{"get":true,"set":true},"ontransitionstart":{"get":true,"set":true},"ontransitionend":{"get":true,"set":true},"ontransitioncancel":{"get":true,"set":true},"onafterprint":{"get":true,"set":true},"onbeforeprint":{"get":true,"set":true},"onbeforeunload":{"get":true,"set":true},"onhashchange":{"get":true,"set":true},"onlanguagechange":{"get":true,"set":true},"onmessage":{"get":true,"set":true},"onmessageerror":{"get":true,"set":true},"onoffline":{"get":true,"set":true},"ononline":{"get":true,"set":true},"onpagehide":{"get":true,"set":true},"onpageshow":{"get":true,"set":true},"onpopstate":{"get":true,"set":true},"onrejectionhandled":{"get":true,"set":true},"onstorage":{"get":true,"set":true},"onunhandledrejection":{"get":true,"set":true},"onunload":{"get":true,"set":true},"crossOriginIsolated":{"get":true},"scheduler":{"get":true,"set":true},"alert":{"value":{"type":"function"}},"atob":{"value":{"type":"function"}},"blur":{"value":{"type":"function"}},"btoa":{"value":{"type":"function"}},"cancelAnimationFrame":{"value":{"type":"function"}},"cancelIdleCallback":{"value":{"type":"function"}},"captureEvents":{"value":{"type":"function"}},"clearInterval":{"value":{"type":"function"}},"clearTimeout":{"value":{"type":"function"}},"close":{"value":{"type":"function"}},"confirm":{"value":{"type":"function"}},"createImageBitmap":{"value":{"type":"function"}},"fetch":{"value":{"type":"function"}},"find":{"value":{"type":"function"}},"focus":{"value":{"type":"function"}},"getComputedStyle":{"value":{"type":"function"}},"getSelection":{"value":{"type":"function"}},"matchMedia":{"value":{"type":"function"}},"moveBy":{"value":{"type":"function"}},"moveTo":{"value":{"type":"function"}},"open":{"value":{"type":"function"}},"postMessage":{"value":{"type":"function"}},"print":{"value":{"type":"function"}},"prompt":{"value":{"type":"function"}},"queueMicrotask":{"value":{"type":"function"}},"releaseEvents":{"value":{"type":"function"}},"reportError":{"value":{"type":"function"}},"requestAnimationFrame":{"value":{"type":"function"}},"requestIdleCallback":{"value":{"type":"function"}},"resizeBy":{"value":{"type":"function"}},"resizeTo":{"value":{"type":"function"}},"scroll":{"value":{"type":"function"}},"scrollBy":{"value":{"type":"function"}},"scrollTo":{"value":{"type":"function"}},"setInterval":{"value":{"type":"function"}},"setTimeout":{"value":{"type":"function"}},"stop":{"value":{"type":"function"}},"structuredClone":{"value":{"type":"function"}},"webkitCancelAnimationFrame":{"value":{"type":"function"}},"webkitRequestAnimationFrame":{"value":{"type":"function"}},"chrome":{"value":{"value":"{\"app\":{\"isInstalled\":false,\"InstallState\":{\"DISABLED\":\"disabled\",\"INSTALLED\":\"installed\",\"NOT_INSTALLED\":\"not_installed\"},\"RunningState\":{\"CANNOT_RUN\":\"cannot_run\",\"READY_TO_RUN\":\"ready_to_run\",\"RUNNING\":\"running\"}}}"}},"WebAssembly":{"value":{"value":"{}"}},"caches":{"get":true},"cookieStore":{"get":true},"ondevicemotion":{"get":true,"set":true},"ondeviceorientation":{"get":true,"set":true},"ondeviceorientationabsolute":{"get":true,"set":true},"launchQueue":{"get":true},"documentPictureInPicture":{"get":true},"onbeforematch":{"get":true,"set":true},"AbsoluteOrientationSensor":{"value":{"type":"function"}},"Accelerometer":{"value":{"type":"function"}},"AudioDecoder":{"value":{"type":"function"}},"AudioEncoder":{"value":{"type":"function"}},"AudioWorklet":{"value":{"type":"function"}},"BatteryManager":{"value":{"type":"function"}},"Cache":{"value":{"type":"function"}},"CacheStorage":{"value":{"type":"function"}},"Clipboard":{"value":{"type":"function"}},"ClipboardItem":{"value":{"type":"function"}},"CookieChangeEvent":{"value":{"type":"function"}},"CookieStore":{"value":{"type":"function"}},"CookieStoreManager":{"value":{"type":"function"}},"Credential":{"value":{"type":"function"}},"CredentialsContainer":{"value":{"type":"function"}},"CryptoKey":{"value":{"type":"function"}},"DeviceMotionEvent":{"value":{"type":"function"}},"DeviceMotionEventAcceleration":{"value":{"type":"function"}},"DeviceMotionEventRotationRate":{"value":{"type":"function"}},"DeviceOrientationEvent":{"value":{"type":"function"}},"FederatedCredential":{"value":{"type":"function"}},"GPU":{"value":{"type":"function"}},"GPUAdapter":{"value":{"type":"function"}},"GPUAdapterInfo":{"value":{"type":"function"}},"GPUBindGroup":{"value":{"type":"function"}},"GPUBindGroupLayout":{"value":{"type":"function"}},"GPUBuffer":{"value":{"type":"function"}},"GPUBufferUsage":{"value":{"value":"{\"MAP_READ\":1,\"MAP_WRITE\":2,\"COPY_SRC\":4,\"COPY_DST\":8,\"INDEX\":16,\"VERTEX\":32,\"UNIFORM\":64,\"STORAGE\":128,\"INDIRECT\":256,\"QUERY_RESOLVE\":512}"}},"GPUCanvasContext":{"value":{"type":"function"}},"GPUColorWrite":{"value":{"value":"{\"RED\":1,\"GREEN\":2,\"BLUE\":4,\"ALPHA\":8,\"ALL\":15}"}},"GPUCommandBuffer":{"value":{"type":"function"}},"GPUCommandEncoder":{"value":{"type":"function"}},"GPUCompilationInfo":{"value":{"type":"function"}},"GPUCompilationMessage":{"value":{"type":"function"}},"GPUComputePassEncoder":{"value":{"type":"function"}},"GPUComputePipeline":{"value":{"type":"function"}},"GPUDevice":{"value":{"type":"function"}},"GPUDeviceLostInfo":{"value":{"type":"function"}},"GPUError":{"value":{"type":"function"}},"GPUExternalTexture":{"value":{"type":"function"}},"GPUInternalError":{"value":{"type":"function"}},"GPUMapMode":{"value":{"value":"{\"READ\":1,\"WRITE\":2}"}},"GPUOutOfMemoryError":{"value":{"type":"function"}},"GPUPipelineError":{"value":{"type":"function"}},"GPUPipelineLayout":{"value":{"type":"function"}},"GPUQuerySet":{"value":{"type":"function"}},"GPUQueue":{"value":{"type":"function"}},"GPURenderBundle":{"value":{"type":"function"}},"GPURenderBundleEncoder":{"value":{"type":"function"}},"GPURenderPassEncoder":{"value":{"type":"function"}},"GPURenderPipeline":{"value":{"type":"function"}},"GPUSampler":{"value":{"type":"function"}},"GPUShaderModule":{"value":{"type":"function"}},"GPUShaderStage":{"value":{"value":"{\"VERTEX\":1,\"FRAGMENT\":2,\"COMPUTE\":4}"}},"GPUSupportedFeatures":{"value":{"type":"function"}},"GPUSupportedLimits":{"value":{"type":"function"}},"GPUTexture":{"value":{"type":"function"}},"GPUTextureUsage":{"value":{"value":"{\"COPY_SRC\":1,\"COPY_DST\":2,\"TEXTURE_BINDING\":4,\"STORAGE_BINDING\":8,\"RENDER_ATTACHMENT\":16}"}},"GPUTextureView":{"value":{"type":"function"}},"GPUUncapturedErrorEvent":{"value":{"type":"function"}},"GPUValidationError":{"value":{"type":"function"}},"GravitySensor":{"value":{"type":"function"}},"Gyroscope":{"value":{"type":"function"}},"ImageDecoder":{"value":{"type":"function"}},"Keyboard":{"value":{"type":"function"}},"KeyboardLayoutMap":{"value":{"type":"function"}},"LinearAccelerationSensor":{"value":{"type":"function"}},"Lock":{"value":{"type":"function"}},"LockManager":{"value":{"type":"function"}},"MIDIAccess":{"value":{"type":"function"}},"MIDIConnectionEvent":{"value":{"type":"function"}},"MIDIInput":{"value":{"type":"function"}},"MIDIInputMap":{"value":{"type":"function"}},"MIDIMessageEvent":{"value":{"type":"function"}},"MIDIOutput":{"value":{"type":"function"}},"MIDIOutputMap":{"value":{"type":"function"}},"MIDIPort":{"value":{"type":"function"}},"MediaDeviceInfo":{"value":{"type":"function"}},"MediaDevices":{"value":{"type":"function"}},"MediaKeyMessageEvent":{"value":{"type":"function"}},"MediaKeySession":{"value":{"type":"function"}},"MediaKeyStatusMap":{"value":{"type":"function"}},"MediaKeySystemAccess":{"value":{"type":"function"}},"MediaKeys":{"value":{"type":"function"}},"NavigationPreloadManager":{"value":{"type":"function"}},"NavigatorManagedData":{"value":{"type":"function"}},"OrientationSensor":{"value":{"type":"function"}},"PasswordCredential":{"value":{"type":"function"}},"RelativeOrientationSensor":{"value":{"type":"function"}},"ScreenDetailed":{"value":{"type":"function"}},"ScreenDetails":{"value":{"type":"function"}},"Sensor":{"value":{"type":"function"}},"SensorErrorEvent":{"value":{"type":"function"}},"ServiceWorker":{"value":{"type":"function"}},"ServiceWorkerContainer":{"value":{"type":"function"}},"ServiceWorkerRegistration":{"value":{"type":"function"}},"StorageManager":{"value":{"type":"function"}},"SubtleCrypto":{"value":{"type":"function"}},"VideoDecoder":{"value":{"type":"function"}},"VideoEncoder":{"value":{"type":"function"}},"VirtualKeyboard":{"value":{"type":"function"}},"WGSLLanguageFeatures":{"value":{"type":"function"}},"WebTransport":{"value":{"type":"function"}},"WebTransportBidirectionalStream":{"value":{"type":"function"}},"WebTransportDatagramDuplexStream":{"value":{"type":"function"}},"WebTransportError":{"value":{"type":"function"}},"Worklet":{"value":{"type":"function"}},"XRDOMOverlayState":{"value":{"type":"function"}},"XRLayer":{"value":{"type":"function"}},"XRWebGLBinding":{"value":{"type":"function"}},"AuthenticatorAssertionResponse":{"value":{"type":"function"}},"AuthenticatorAttestationResponse":{"value":{"type":"function"}},"AuthenticatorResponse":{"value":{"type":"function"}},"PublicKeyCredential":{"value":{"type":"function"}},"Bluetooth":{"value":{"type":"function"}},"BluetoothCharacteristicProperties":{"value":{"type":"function"}},"BluetoothDevice":{"value":{"type":"function"}},"BluetoothRemoteGATTCharacteristic":{"value":{"type":"function"}},"BluetoothRemoteGATTDescriptor":{"value":{"type":"function"}},"BluetoothRemoteGATTServer":{"value":{"type":"function"}},"BluetoothRemoteGATTService":{"value":{"type":"function"}},"CaptureController":{"value":{"type":"function"}},"DelegatedInkTrailPresenter":{"value":{"type":"function"}},"Ink":{"value":{"type":"function"}},"DocumentPictureInPicture":{"value":{"type":"function"}},"EyeDropper":{"value":{"type":"function"}},"FileSystemDirectoryHandle":{"value":{"type":"function"}},"FileSystemFileHandle":{"value":{"type":"function"}},"FileSystemHandle":{"value":{"type":"function"}},"FileSystemWritableFileStream":{"value":{"type":"function"}},"FontData":{"value":{"type":"function"}},"FragmentDirective":{"value":{"type":"function"}},"HID":{"value":{"type":"function"}},"HIDConnectionEvent":{"value":{"type":"function"}},"HIDDevice":{"value":{"type":"function"}},"HIDInputReportEvent":{"value":{"type":"function"}},"IdentityCredential":{"value":{"type":"function"}},"IdentityProvider":{"value":{"type":"function"}},"IdentityCredentialError":{"value":{"type":"function"}},"IdleDetector":{"value":{"type":"function"}},"LaunchParams":{"value":{"type":"function"}},"LaunchQueue":{"value":{"type":"function"}},"NavigatorLogin":{"value":{"type":"function"}},"OTPCredential":{"value":{"type":"function"}},"PaymentAddress":{"value":{"type":"function"}},"PaymentRequest":{"value":{"type":"function"}},"PaymentResponse":{"value":{"type":"function"}},"PaymentMethodChangeEvent":{"value":{"type":"function"}},"Presentation":{"value":{"type":"function"}},"PresentationAvailability":{"value":{"type":"function"}},"PresentationConnection":{"value":{"type":"function"}},"PresentationConnectionAvailableEvent":{"value":{"type":"function"}},"PresentationConnectionCloseEvent":{"value":{"type":"function"}},"PresentationConnectionList":{"value":{"type":"function"}},"PresentationReceiver":{"value":{"type":"function"}},"PresentationRequest":{"value":{"type":"function"}},"Serial":{"value":{"type":"function"}},"SerialPort":{"value":{"type":"function"}},"USB":{"value":{"type":"function"}},"USBAlternateInterface":{"value":{"type":"function"}},"USBConfiguration":{"value":{"type":"function"}},"USBConnectionEvent":{"value":{"type":"function"}},"USBDevice":{"value":{"type":"function"}},"USBEndpoint":{"value":{"type":"function"}},"USBInTransferResult":{"value":{"type":"function"}},"USBInterface":{"value":{"type":"function"}},"USBIsochronousInTransferPacket":{"value":{"type":"function"}},"USBIsochronousInTransferResult":{"value":{"type":"function"}},"USBIsochronousOutTransferPacket":{"value":{"type":"function"}},"USBIsochronousOutTransferResult":{"value":{"type":"function"}},"USBOutTransferResult":{"value":{"type":"function"}},"WakeLock":{"value":{"type":"function"}},"WakeLockSentinel":{"value":{"type":"function"}},"WindowControlsOverlay":{"value":{"type":"function"}},"WindowControlsOverlayGeometryChangeEvent":{"value":{"type":"function"}},"XRAnchor":{"value":{"type":"function"}},"XRAnchorSet":{"value":{"type":"function"}},"XRBoundedReferenceSpace":{"value":{"type":"function"}},"XRCPUDepthInformation":{"value":{"type":"function"}},"XRCamera":{"value":{"type":"function"}},"XRDepthInformation":{"value":{"type":"function"}},"XRFrame":{"value":{"type":"function"}},"XRHitTestResult":{"value":{"type":"function"}},"XRHitTestSource":{"value":{"type":"function"}},"XRInputSource":{"value":{"type":"function"}},"XRInputSourceArray":{"value":{"type":"function"}},"XRInputSourceEvent":{"value":{"type":"function"}},"XRInputSourcesChangeEvent":{"value":{"type":"function"}},"XRLightEstimate":{"value":{"type":"function"}},"XRLightProbe":{"value":{"type":"function"}},"XRPose":{"value":{"type":"function"}},"XRRay":{"value":{"type":"function"}},"XRReferenceSpace":{"value":{"type":"function"}},"XRReferenceSpaceEvent":{"value":{"type":"function"}},"XRRenderState":{"value":{"type":"function"}},"XRRigidTransform":{"value":{"type":"function"}},"XRSession":{"value":{"type":"function"}},"XRSessionEvent":{"value":{"type":"function"}},"XRSpace":{"value":{"type":"function"}},"XRSystem":{"value":{"type":"function"}},"XRTransientInputHitTestResult":{"value":{"type":"function"}},"XRTransientInputHitTestSource":{"value":{"type":"function"}},"XRView":{"value":{"type":"function"}},"XRViewerPose":{"value":{"type":"function"}},"XRViewport":{"value":{"type":"function"}},"XRWebGLDepthInformation":{"value":{"type":"function"}},"XRWebGLLayer":{"value":{"type":"function"}},"getScreenDetails":{"value":{"type":"function"}},"queryLocalFonts":{"value":{"type":"function"}},"showDirectoryPicker":{"value":{"type":"function"}},"showOpenFilePicker":{"value":{"type":"function"}},"showSaveFilePicker":{"value":{"type":"function"}},"originAgentCluster":{"get":true},"credentialless":{"get":true},"speechSynthesis":{"get":true},"oncontentvisibilityautostatechange":{"get":true,"set":true},"onscrollend":{"get":true,"set":true},"AnimationPlaybackEvent":{"value":{"type":"function"}},"AnimationTimeline":{"value":{"type":"function"}},"CSSAnimation":{"value":{"type":"function"}},"CSSTransition":{"value":{"type":"function"}},"DocumentTimeline":{"value":{"type":"function"}},"BackgroundFetchManager":{"value":{"type":"function"}},"BackgroundFetchRecord":{"value":{"type":"function"}},"BackgroundFetchRegistration":{"value":{"type":"function"}},"BluetoothUUID":{"value":{"type":"function"}},"BrowserCaptureMediaStreamTrack":{"value":{"type":"function"}},"CropTarget":{"value":{"type":"function"}},"CSSScopeRule":{"value":{"type":"function"}},"CSSStartingStyleRule":{"value":{"type":"function"}},"CloseWatcher":{"value":{"type":"function"}},"ContentVisibilityAutoStateChangeEvent":{"value":{"type":"function"}},"DocumentPictureInPictureEvent":{"value":{"type":"function"}},"Highlight":{"value":{"type":"function"}},"HighlightRegistry":{"value":{"type":"function"}},"MediaMetadata":{"value":{"type":"function"}},"MediaSession":{"value":{"type":"function"}},"MutationEvent":{"value":{"type":"function"}},"NavigatorUAData":{"value":{"type":"function"}},"Notification":{"value":{"type":"function"}},"PaymentManager":{"value":{"type":"function"}},"PaymentRequestUpdateEvent":{"value":{"type":"function"}},"PeriodicSyncManager":{"value":{"type":"function"}},"PermissionStatus":{"value":{"type":"function"}},"Permissions":{"value":{"type":"function"}},"PushManager":{"value":{"type":"function"}},"PushSubscription":{"value":{"type":"function"}},"PushSubscriptionOptions":{"value":{"type":"function"}},"RemotePlayback":{"value":{"type":"function"}},"ScrollTimeline":{"value":{"type":"function"}},"ViewTimeline":{"value":{"type":"function"}},"SharedWorker":{"value":{"type":"function"}},"SpeechSynthesisErrorEvent":{"value":{"type":"function"}},"SpeechSynthesisEvent":{"value":{"type":"function"}},"SpeechSynthesisUtterance":{"value":{"type":"function"}},"VideoPlaybackQuality":{"value":{"type":"function"}},"VisibilityStateEntry":{"value":{"type":"function"}},"webkitSpeechGrammar":{"value":{"type":"function"}},"webkitSpeechGrammarList":{"value":{"type":"function"}},"webkitSpeechRecognition":{"value":{"type":"function"}},"webkitSpeechRecognitionError":{"value":{"type":"function"}},"webkitSpeechRecognitionEvent":{"value":{"type":"function"}},"webkitRequestFileSystem":{"value":{"type":"function"}},"webkitResolveLocalFileSystemURL":{"value":{"type":"function"}},"script":{"value":{"value":"{}"}},"_pxVid":{},"_pxUuid":{"value":{"value":"\"dc296062-aaaf-11ee-aea4-283682774caf\""}},"_pxAppId":{"value":{"value":"\"PXVb73hTEg\""}},"_pxHostUrl":{"value":{"value":"\"https://collector-PXVb73hTEg.perimeterx.net\""}},"_pxCustomLogo":{},"_pxJsClientSrc":{"value":{"value":"\"//client.perimeterx.net/PXVb73hTEg/main.min.js\""}},"_pxFirstPartyEnabled":{"value":{"value":"\"false\""}},"_pxDisplayErrorMessage":{"value":{"type":"function"}},"_pxAction":{"value":{"value":"\"pxhc\""}},"_pxMobile":{},"_Vb73hTEghandler":{"value":{"value":"{\"PX1134\":{\"PX1132\":\"f3bceda14171f6adc7eb4c6108165b360f15b2b99f1011770d5232a0ca559d5d\",\"PX1133\":600.5}}"}},"_pxToggleOpenForm":{"value":{"type":"function"}},"_pxUuidCopyToClipboard":{"value":{"type":"function"}},"_pxSubmitForm":{"value":{"type":"function"}},"_pxItemSelected":{"value":{"type":"function"}},"_pxInit":{"value":{"type":"function"}},"regeneratorRuntime":{"value":{"value":"{}"}},"PXVb73hTEg":{"value":{"value":"{\"Events\":{\"channels\":{\"risk\":[{\"once\":false}]}},\"ClientUuid\":\"dc296062-aaaf-11ee-aea4-283682774caf\"}"}},"PX":{"value":{"value":"{\"Events\":{\"channels\":{\"risk\":[{\"once\":false}]}},\"ClientUuid\":\"dc296062-aaaf-11ee-aea4-283682774caf\"}"}},"dir":{"value":{"type":"function"}},"dirxml":{"value":{"type":"function"}},"profile":{"value":{"type":"function"}},"profileEnd":{"value":{"type":"function"}},"clear":{"value":{"type":"function"}},"table":{"value":{"type":"function"}},"keys":{"value":{"type":"function"}},"values":{"value":{"type":"function"}},"debug":{"value":{"type":"function"}},"undebug":{"value":{"type":"function"}},"monitor":{"value":{"type":"function"}},"unmonitor":{"value":{"type":"function"}},"inspect":{"value":{"type":"function"}},"copy":{"value":{"type":"function"}},"queryObjects":{"value":{"type":"function"}},"$_":{},"$0":{},"$1":{},"$2":{},"$3":{},"$4":{},"getEventListeners":{"value":{"type":"function"}},"getAccessibleName":{"value":{"type":"function"}},"getAccessibleRole":{"value":{"type":"function"}},"monitorEvents":{"value":{"type":"function"}},"unmonitorEvents":{"value":{"type":"function"}},"$":{"value":{"type":"function"}},"$$":{"value":{"type":"function"}},"$x":{"value":{"type":"function"}}};

let funcsStart = 'Object.defineProperties(window, {'
let funcsList = [];
let funcsENd = '})'
let ps = {};
// !window.hasOwnProperty(p) && funcs.indexOf(p) === -1 && funcs2.indexOf(p) === -1
for (let i of Object.keys(params)) {
    print(i)
    let p = params[i];
    if (!window.hasOwnProperty(i) && funcs.indexOf(i) === -1 && funcs2.indexOf(i) === -1) {
        let rr = `'${i}': {\n`
        if (p.value && p.value.type === 'function') {
            rr += `value: v_saf(function ${i}(){}),`
        }
        if (p.get) {
            rr += `get: v_saf(function ${i}(){}, undefined, 'get'),`
        }
        if (p.set) {
            rr += `set: v_saf(function ${i}(){}, undefined, 'set'),`

        }
        rr += '},'
        funcsList.push(rr)
        // funcsList.push(`${p}: {`
        //     value: v_saf(function ${p} (){}),
        // },`)
    }

}
eval(funcsStart + funcsList.join('\n') + funcsENd)


funcsList = [];
for (let i of ENV.windowprops.slice(30,)) {
    print(i)
    // let p = ENV.windowprops[i];
    if (!window.hasOwnProperty(i) && funcs.indexOf(i) === -1 && funcs2.indexOf(i) === -1) {
        let rr = `'${i}': {\n`
        rr += `value: v_saf(function ${i}(){}),`
        rr += '},'
        funcsList.push(rr)
        // funcsList.push(`${p}: {`
        //     value: v_saf(function ${p} (){}),
        // },`)
    }

}
eval(funcsStart + funcsList.join('\n') + funcsENd)
structuredClone = v_saf(function structuredClone() {
    throw TypeError('DOMException: Failed to execute \'structuredClone\' on \'Window\': Navigator object could not be cloned.')
})
window.structuredClone = structuredClone
;
;
;
;
;
;


//


;
;
;


;


;

;



                        