%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/t/r/a/tradesc/www/relax/wp-content/plugins/wp-meteor/assets/js/public/
Upload File :
Create Path :
Current File : /home/t/r/a/tradesc/www/relax/wp-content/plugins/wp-meteor/assets/js/public/public.js.map

{
  "version": 3,
  "sources": ["../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/utils/delta.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/literals.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/globals.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/mocks/jquery.js", "../../../node_modules/@aguidrevitch/fpo-inpage-events/src/index.mjs", "../../../node_modules/@aguidrevitch/fpo-inpage-first-interaction/src/browser/index.mjs", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/utils/event-emitter.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/utils/dispatcher.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/elementor/device-mode.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/elementor/animations.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/includes/elementor/pp-menu.js", "../../../node_modules/@aguidrevitch/fpo-javascript-rewrite/src/wp-meteor/public.js"],
  "sourcesContent": ["export default () => Math.round(performance.now()) / 1000;\n", "export const\n    addEventListener = \"addEventListener\",\n    removeEventListener = \"removeEventListener\",\n    getAttribute = \"getAttribute\",\n    setAttribute = \"setAttribute\",\n    removeAttribute = \"removeAttribute\",\n    hasAttribute = \"hasAttribute\",\n    querySelector = \"querySelector\",\n    querySelectorAll = querySelector + \"All\",\n    appendChild = \"appendChild\",\n    removeChild = \"removeChild\",\n    createElement = \"createElement\",\n    tagName = \"tagName\",\n    getOwnPropertyDescriptor = \"getOwnPropertyDescriptor\",\n    prototype = \"prototype\",\n    __lookupGetter__ = \"__lookupGetter__\",\n    __lookupSetter__ = \"__lookupSetter__\",\n    DCL = \"DOMContentLoaded\",\n    L = \"load\",\n    E = \"error\";\n", "const\n    w = window,\n    d = document,\n    de = d.documentElement,\n    c = process.env.DEBUG ? console.log : () => { },\n    ce = console.error;\n\nexport {\n    w,\n    d,\n    de,\n    c,\n    ce,\n};", "import delta from \"../utils/delta\";\nimport {\n    addEventListener,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n    c,\n    ce,\n} from \"../globals\";\n\n/**\n * class name should not match mocked object\n */\nlet mocked = true;\nexport default class jQueryMock {\n    constructor() {\n        this.known = [];\n    }\n    init() {\n\n        let Mock;\n        let Mock$;\n\n        const override = (jQuery, symbol) => {\n\n            if (mocked && jQuery && jQuery.fn && !jQuery.__wpmeteor) {\n                process.env.DEBUG && c(delta(), \"new \" + symbol + \" detected\", jQuery.__wpmeteor, jQuery);\n\n                // can't use () => {} as it binds to different this\n                const enqueue = function (func) {\n                    process.env.DEBUG && c(delta(), \"enqueued jQuery(func)\", func);\n                    d[addEventListener](DCL, e => {\n                        process.env.DEBUG && c(delta(), \"running enqueued jQuery function\", func);\n                        func.call(d, jQuery, e, \"jQueryMock\");\n                    });\n                    return this;\n                };\n\n                this.known.push([jQuery, jQuery.fn.ready, jQuery.fn.init.prototype.ready]);\n                jQuery.fn.ready = enqueue;\n                jQuery.fn.init.prototype.ready = enqueue;\n                jQuery.__wpmeteor = true;\n            }\n            return jQuery;\n        };\n\n        if (window.jQuery || window.$) {\n            // not throwing error, as it might come from a chrome extension\n            // but also not mocking it, just giving a warning\n            process.env.DEBUG && ce(delta(), \"WARNING: JQUERY WAS INSTALLED BEFORE WP-METEOR, PROBABLY FROM A CHROME EXTENSION\");\n        }\n\n        Object.defineProperty(window, \"jQuery\", {\n            get() {\n                return Mock;\n            },\n            set(jQuery) {\n                Mock = override(jQuery, \"jQuery\");\n            },\n            // configurable: true\n        });\n\n        Object.defineProperty(window, \"$\", {\n            get() {\n                return Mock$;\n            },\n            set($) {\n                Mock$ = override($, \"$\");\n            },\n            // configurable: true\n        });\n    }\n    unmock() {\n        this.known.forEach(([jQuery, oldReady, oldPrototypeReady]) => {\n            process.env.DEBUG && c(delta(), \"unmocking jQuery\", jQuery);\n            jQuery.fn.ready = oldReady;\n            jQuery.fn.init.prototype.ready = oldPrototypeReady;\n        });\n        mocked = false;\n    }\n}\n", "const EVENT_FIRST_INTERACTION = \"fpo:first-interaction\";\nconst EVENT_REPLAY_CAPTURED_EVENTS = \"fpo:replay-captured-events\";\nconst EVENT_LCP_ELEMENT = \"fpo:lcp-element\";\nconst EVENT_LCP_ELEMENT_CANDIDATE = \"fpo:lcp-element-candidate\";\nconst EVENT_LCP_LOADED = \"fpo:lcp-loaded\";\nconst EVENT_LCP_LOADED_CANDIDATE = \"fpo:lcp-loaded-candidate\";\nconst EVENT_LAZY_ELEMENT = \"fpo:lazy-element\";\nconst EVENT_LCP_BOTH = \"fpo:lcp-both\";\nconst EVENT_STYLES_TAG_AVAILABLE = \"fpo:styles-tag-available\";\nconst EVENT_CSS_LOADED = \"fpo:css-loaded\";\nconst EVENT_ELEMENT_LOADED = \"fpo:element-loaded\";\nconst EVENT_IMAGES_LOADED = \"fpo:images-loaded\";\nconst EVENT_THE_END = \"fpo:the-end\";\nconst EVENT_SCROLL_TO_REVEAL_ANIMATIONS = \"fpo:scroll-to-reveal-animations\";\n\nexport {\n    EVENT_LCP_ELEMENT,\n    EVENT_LCP_ELEMENT_CANDIDATE,\n    EVENT_LCP_LOADED,\n    EVENT_LCP_LOADED_CANDIDATE,\n    EVENT_LAZY_ELEMENT,\n    EVENT_LCP_BOTH,\n    EVENT_STYLES_TAG_AVAILABLE,\n    EVENT_FIRST_INTERACTION, \n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n    EVENT_SCROLL_TO_REVEAL_ANIMATIONS,\n};\n", "import delta from \"./utils/delta.mjs\";\nimport c from \"./utils/console.mjs\";\nimport { EVENT_FIRST_INTERACTION, EVENT_REPLAY_CAPTURED_EVENTS } from \"@aguidrevitch/fpo-inpage-events\";\n\nconst EVENT_CLICK = \"click\";\n\nconst w = window;\nconst wOrigAddEventListener = w.addEventListener.bind(w);\nconst wOrigRemoveEventListener = w.removeEventListener.bind(w);\nconst ra = \"removeAttribute\";\nconst ga = \"getAttribute\";\nconst sa = \"setAttribute\";\nconst passiveEvents = [\"touchstart\", \"touchmove\", \"touchend\", \"touchcancel\", \"keydown\", \"wheel\"]; //, \"scroll\"];\nconst activeEvents = [\"mouseover\", \"mouseout\", EVENT_CLICK];\nconst captureEvents = [\"touchstart\", \"touchend\", \"touchcancel\", \"mouseover\", \"mouseout\", EVENT_CLICK];\nconst prefix = \"data-wpmeteor-\";\nconst separator = \"----\";\nconst dispatchEvent = \"dispatchEvent\";\n\nconst synteticCick = e => {\n    process.env.DEBUG && c(delta(), \"creating syntetic click event for\", e);\n    const event = new MouseEvent(EVENT_CLICK, {\n        view: e.view,\n        bubbles: true,\n        cancelable: true\n    });\n    Object.defineProperty(event, \"target\", { writable: false, value: e.target });\n    return event;\n};\n\nclass InteractionEvents {\n    static capture() {\n        let firstInteractionFired = false;\n\n        // lighthouse sets __nativePromise and __nativeURL\n        // to the original Promise and URL\n        const [, p, n] = `${window.Promise}`.split(/[\\s[(){]+/s);\n        if (w[\"__\" + n + p]) {\n            return;\n        }\n\n        const capturedEvents = [];\n        const captureEvent = e => {\n            if (e.target && (dispatchEvent in e.target)) {\n                if (!e.isTrusted) {\n                    // this is a flag that this event is probably replaying\n                    process.env.DEBUG && c(delta(), \"the event is not trusted, configuration issues, not recording\", e.type, e.target);\n                    process.env.DEBUG && c(delta(), \"please double check if first interaction listener was installed before wp-meteor\");\n                    return;\n                }\n                if (e.cancelable && !passiveEvents.includes(e.type)) {\n                    try {\n                        e.preventDefault();\n                    } catch { }\n                }\n                e.stopImmediatePropagation();\n\n                if (e.type === EVENT_CLICK) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(synteticCick(e));\n                } else if (captureEvents.includes(e.type)) {\n                    process.env.DEBUG && c(delta(), \"captured\", e.type, e.target);\n                    capturedEvents.push(e);\n                }\n                // scroll event target doesn't have setAttribute\n                // if (e.target[sa]) {\n                //     e.target[sa](prefix + e.type, true);\n                // }\n                e.target[sa](prefix + e.type, true);\n                if (!firstInteractionFired) {\n                    firstInteractionFired = true;\n                    w[dispatchEvent](new CustomEvent(EVENT_FIRST_INTERACTION));\n                }\n            }\n        };\n\n        w.addEventListener(EVENT_REPLAY_CAPTURED_EVENTS, () => {\n            process.env.DEBUG && c(delta(), separator, \"got \" + EVENT_REPLAY_CAPTURED_EVENTS);\n            process.env.DEBUG && c(delta(), separator, \"removing event listeners\");\n            activeEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: false, capture: true }));\n            passiveEvents.forEach(event => wOrigRemoveEventListener(event, captureEvent, { passive: true, capture: true }));\n\n            let e;\n            while (e = capturedEvents.shift()) { // eslint-disable-line no-cond-assign\n                var target = e.target;\n                if (target[ga](prefix + \"touchstart\") && target[ga](prefix + \"touchend\") && !target[ga](prefix + EVENT_CLICK)) {\n                    if (target[ga](prefix + \"touchmove\")) {\n                        process.env.DEBUG && c(delta(), `touchmove happened, so not dispatching ${EVENT_CLICK} to `, e.target);\n                    } else {\n                        // why would I want to remove prefix + \"touchmove\", if previous if checks it is present?\n                        // target[ra](prefix + \"touchmove\");\n                        capturedEvents.push(synteticCick(e));\n                    }\n                    target[ra](prefix + \"touchstart\");\n                    target[ra](prefix + \"touchend\");\n                } else {\n                    target[ra](prefix + e.type);\n                }\n                process.env.DEBUG && c(delta(), \" dispatching \" + e.type + \" to \", e.target);\n                target[dispatchEvent](e);\n            }\n        });\n\n        process.env.DEBUG && c(delta(), separator, \"installing first interaction event listeners\");\n        activeEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: false, capture: true }));\n        passiveEvents.forEach(event => wOrigAddEventListener(event, captureEvent, { passive: true, capture: true }));\n    }\n}\n\nexport {\n    InteractionEvents,\n};\n\nexport default InteractionEvents;", "export default class EventEmitter {\n    constructor() {\n        this.l = [];\n    }\n    emit(name, data = null) {\n        this.l[name] && this.l[name].forEach(l => l(data));\n    }\n    on(name, callback) {\n        this.l[name] ||= [];\n        this.l[name].push(callback);\n    }\n    off(name, callback) {\n        this.l[name] = (this.l[name] || []).filter(c => c !== callback);\n    }\n    /*\n    once(name, callback) {\n        const closure = () => {\n            this.off(closure);\n            callback();\n        }\n        this.l[name] ||= [];\n        this.l[name].push(closure);\n    }\n    */\n}\n", "import EventEmitter from \"./event-emitter\";\nexport default new EventEmitter();\n", "import {\n    setAttribute,\n    appendChild,\n    createElement,\n} from \"../literals\";\n\nimport {\n    d,\n} from \"../globals\";\n\nconst $deviceMode = d[createElement](\"span\");\n$deviceMode[setAttribute](\"id\", \"elementor-device-mode\");\n$deviceMode[setAttribute](\"class\", \"elementor-screen-only\");\n\nlet attached = false;\n\nexport default () => {\n    if (!attached) {\n        d.body[appendChild]($deviceMode);\n    }\n    return getComputedStyle($deviceMode, \":after\").content.replace(/\"/g, \"\");\n};\n", "import delta from \"../utils/delta\";\nimport dispatcher from \"../utils/dispatcher\";\nimport getCurrentDeviceMode from \"./device-mode\";\nimport {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    L,\n} from \"../literals\";\nimport {\n    w,\n    d,\n    de,\n    c,\n} from \"../globals\";\n\nconst getClass = (el) => {\n    return el[getAttribute](\"class\") || \"\";\n};\n\nconst setClass = (el, value) => {\n    return el[setAttribute](\"class\", value);\n};\n\nexport default () => {\n    w[addEventListener](L, function () {\n        const mode = getCurrentDeviceMode();\n        const vw = Math.max(de.clientWidth || 0, w.innerWidth || 0);\n        const vh = Math.max(de.clientHeight || 0, w.innerHeight || 0);\n\n        const keys = [\"_animation_\" + mode, \"animation_\" + mode, \"_animation\", \"_animation\", \"animation\"];\n        Array.from(d[querySelectorAll](\".elementor-invisible\")).forEach(el => {\n\n            // we  only want to optimize elements in the top of the page\n            const viewportOffset = el.getBoundingClientRect();\n            if (viewportOffset.top + w.scrollY <= vh && viewportOffset.left + w.scrollX < vw) {\n                try {\n                    const settings = JSON.parse(el[getAttribute](\"data-settings\"));\n                    if (settings.trigger_source) {\n                        return;\n                    }\n                    const animationDelay = settings._animation_delay || settings.animation_delay || 0;\n                    let animation, key;\n\n                    for (var i = 0; i < keys.length; i++) {\n                        if (settings[keys[i]]) {\n                            key = keys[i];\n                            animation = settings[key];\n                            break;\n                        }\n                    }\n\n                    if (animation) {\n                        process.env.DEBUG && c(delta(), \"animating with\" + animation, el);\n                        const oldClass = getClass(el);\n                        const newClass = animation === \"none\"\n                            ? oldClass\n                            : oldClass + \" animated \" + animation;\n\n                        const animate = () => {\n                            setClass(el, newClass.replace(/\\belementor-invisible\\b/, \"\"));\n                            keys.forEach(key => delete settings[key]);\n                            el[setAttribute](\"data-settings\", JSON.stringify(settings));\n                        };\n\n                        let timeout = setTimeout(animate, animationDelay);\n\n                        dispatcher.on(\"fi\", () => {\n                            clearTimeout(timeout);\n                            setClass(el, getClass(el).replace(new RegExp(\"\\\\b\" + animation + \"\\\\b\"), \"\"));\n                        });\n\n                    }\n                } catch (e) {\n                    console.error(e);\n                }\n            }\n        });\n    });\n};", "import {\n    getAttribute,\n    setAttribute,\n    addEventListener,\n    querySelectorAll,\n    appendChild,\n    removeChild,\n    createElement,\n    tagName,\n    DCL,\n} from \"../literals\";\nimport {\n    d,\n} from \"../globals\";\n\nconst inmega = \"data-in-mega_smartmenus\";\n\nexport default () => {\n\n    const div = d[createElement](\"div\");\n    div.innerHTML = \"<span class=\\\"sub-arrow --wp-meteor\\\"><i class=\\\"fa\\\" aria-hidden=\\\"true\\\"></i></span>\";\n    const placeholder = div.firstChild;\n\n    const prevAll = el => {\n        const result = [];\n        while (el = el.previousElementSibling) // eslint-disable-line no-cond-assign\n            result.push(el);\n        return result;\n    };\n\n    d[addEventListener](DCL, function () {\n        Array.from(d[querySelectorAll](\".pp-advanced-menu ul\")).forEach(ul => {\n            /* skipping mega menues */\n            if (ul[getAttribute](inmega)) {\n                return;\n            } else if ((ul[getAttribute](\"class\") || \"\").match(/\\bmega-menu\\b/)) {\n                ul[querySelectorAll](\"ul\").forEach(ul => {\n                    ul[setAttribute](inmega, true);\n                });\n            }\n            let prev = prevAll(ul);\n            let a = prev.filter(el => el).filter(el => el[tagName] === \"A\").pop();\n            if (!a) {\n                a = prev.map(el => Array.from(el[querySelectorAll](\"a\"))).filter(el => el).flat().pop();\n            }\n            if (a) {\n                const span = placeholder.cloneNode(true);\n                a[appendChild](span);\n\n                const observer = new MutationObserver(mutations => {\n                    mutations.forEach(({ addedNodes }) => {\n                        addedNodes.forEach(node => {\n                            // For each added script tag\n                            if (node.nodeType === 1 && \"SPAN\" === node[tagName]) {\n                                try {\n                                    a[removeChild](span);\n                                } catch {\n                                    // do nothing\n                                }\n                            }\n                        });\n                    });\n                });\n                observer.observe(a, { childList: true });\n            }\n        });\n    });\n};", "/* global _wpmeteor, RocketLazyLoadScripts */\n\nimport jQueryMock from \"./includes/mocks/jquery\";\nimport InteractionEvents from \"@aguidrevitch/fpo-inpage-first-interaction\";\nimport dispatcher from \"./includes/utils/dispatcher\";\nimport delta from \"./includes/utils/delta\";\nimport elementorAnimations from \"./includes/elementor/animations\";\nimport elementorPP from \"./includes/elementor/pp-menu\";\nimport {\n    addEventListener,\n    removeEventListener,\n    getAttribute,\n    setAttribute,\n    removeAttribute,\n    hasAttribute,\n    // querySelectorAll,\n    appendChild,\n    removeChild,\n    tagName,\n    getOwnPropertyDescriptor,\n    prototype,\n    __lookupGetter__,\n    __lookupSetter__,\n    DCL,\n    L,\n    E,\n} from \"./includes/literals\";\nimport {\n    w,\n    d,\n    c,\n    ce,\n} from \"./includes/globals\";\n\nimport {\n    EVENT_CSS_LOADED,\n    EVENT_ELEMENT_LOADED,\n    EVENT_FIRST_INTERACTION,\n    EVENT_REPLAY_CAPTURED_EVENTS,\n    EVENT_IMAGES_LOADED,\n    EVENT_THE_END,\n} from \"@aguidrevitch/fpo-inpage-events\";\n\nconst RSC = \"readystatechange\",\n    M = \"message\",\n    separator = \"----\",\n    S = \"SCRIPT\",\n    prefix = \"data-wpmeteor-\",\n    Object_defineProperty = Object.defineProperty,\n    Object_defineProperties = Object.defineProperties,\n    javascriptBlocked = \"javascript/blocked\",\n    isJavascriptRegexp = /^\\s*(application|text)\\/javascript|module\\s*$/i,\n    _rAF = \"requestAnimationFrame\",\n    _rIC = \"requestIdleCallback\",\n    _setTimeout = \"setTimeout\",\n    __dynamic = \"__dynamic\";\n\nconst windowEventPrefix = w.constructor.name + \"::\";\nconst documentEventPrefix = d.constructor.name + \"::\";\n\nconst forEach = function (callback, thisArg) {\n    thisArg = thisArg || w;\n    for (var i = 0; i < this.length; i++) {\n        callback.call(thisArg, this[i], i, this);\n    }\n};\n\nif (\"NodeList\" in w && !NodeList[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling NodeList.forEach\");\n    NodeList[prototype].forEach = forEach;\n}\nif (\"HTMLCollection\" in w && !HTMLCollection[prototype].forEach) {\n    process.env.DEBUG && c(\"polyfilling HTMLCollection.forEach\");\n    HTMLCollection[prototype].forEach = forEach;\n}\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor[\"elementor-animations\"]) {\n        elementorAnimations();\n    }\n\n    if (_wpmeteor[\"elementor-pp\"]) {\n        elementorPP();\n    }\n})();\n\nconst reorder = [];\nconst defer = [];\nconst async = [];\n\nlet DONE = false;\nconst eventQueue = [];\nlet listeners = {};\nlet WindowLoaded = false;\nlet firedEventsCount = 0;\n\nlet rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\nlet rIC = w[_rIC] || rAF;\nd[addEventListener](\"visibilitychange\", () => {\n    rAF = d.visibilityState === \"visible\" ? w[_rAF] : w[_setTimeout];\n    rIC = w[_rIC] || rAF;\n});\n\nconst nextTick = w[_setTimeout];\n\nlet createElementOverride;\nconst capturedAttributes = [\"src\", \"type\"];\n\n/* Hack around 'avoid serving legacy javascript to modern browsers' */\nconst O = Object,\n    definePropert = \"definePropert\";\n\nO[definePropert + \"y\"] = (object, property, options) => {\n    if (object === w && ([\"jQuery\", \"onload\"].indexOf(property) >= 0)\n        || (object === d || object === d.body) && [\"readyState\", \"write\", \"writeln\", \"on\" + RSC].indexOf(property) >= 0) {\n        if ([\"on\" + RSC, \"on\" + L].indexOf(property) && options.set) {\n            listeners[\"on\" + RSC] = listeners[\"on\" + RSC] || [];\n            listeners[\"on\" + RSC].push(options.set);\n            // objectRedefinitions['onreadystatechange'] = options;\n        } else {\n            process.env.DEBUG && ce(\"Denied \" + (object.constructor || {}).name + \" \" + property + \" redefinition\");\n        }\n        return object;\n    } else if ((object instanceof HTMLScriptElement) && capturedAttributes.indexOf(property) >= 0) {\n        if (!object[property + \"Getters\"]) {\n            object[property + \"Getters\"] = [];\n            object[property + \"Setters\"] = [];\n            Object_defineProperty(object, property, {\n                set(value) {\n                    object[property + \"Setters\"].forEach(setter => setter.call(object, value));\n                },\n                get() {\n                    return object[property + \"Getters\"].slice(-1)[0]();\n                }\n            });\n        }\n\n        if (options.get) {\n            object[property + \"Getters\"].push(options.get);\n        }\n\n        if (options.set) {\n            object[property + \"Setters\"].push(options.set);\n        }\n\n        return object;\n    }\n    // console.log(\"object\", object, \"property\", property, \"options\", options, new Error().stack);\n    return Object_defineProperty(object, property, options);\n};\n\nO[definePropert + \"ies\"] = (object, properties) => {\n    // console.log(\"object\", object, \"properties\", properties);\n    for (let i in properties) {\n        O[definePropert + \"y\"](object, i, properties[i]);\n    }\n    // symbols are not enumerable,\n    // so we have to use Object.getOwnPropertySymbols\n    // for compatibility with https://modelviewer.dev/\n    for (let sym of Object.getOwnPropertySymbols(properties)) {\n        O[definePropert + \"y\"](object, sym, properties[sym]);\n    }\n    return object;\n};\n\nif (process.env.DEBUG) {\n    d[addEventListener](RSC, () => {\n        c(delta(), separator, RSC, d.readyState);\n    });\n\n    d[addEventListener](DCL, () => {\n        c(delta(), separator, DCL);\n    });\n\n    dispatcher.on(EVENT_THE_END, () => {\n        c(delta(), separator, EVENT_THE_END);\n        c(delta(), separator, firedEventsCount + \" queued events fired\");\n    });\n\n    w[addEventListener](L, () => {\n        c(delta(), separator, L);\n    });\n}\n\n// saving original methods\nconst origAddEventListener = EventTarget[prototype][addEventListener];\nconst origRemoveEventListener = EventTarget[prototype][removeEventListener];\nconst dOrigAddEventListener = origAddEventListener.bind(d);\nconst dOrigRemoveEventListener = origRemoveEventListener.bind(d);\nconst wOrigAddEventListener = origAddEventListener.bind(w);\nconst wOrigRemoveEventListener = origRemoveEventListener.bind(w);\nconst origCreateElement = Document[prototype].createElement;\nconst dOrigCreateElement = origCreateElement.bind(d);\nconst origReadyStateGetter = d.__proto__[__lookupGetter__](\"readyState\").bind(d); // eslint-disable-line no-unused-vars\n\nlet readyState = \"loading\";\nObject_defineProperty(d, \"readyState\", {\n    get() { return readyState; },\n    set(value) { return readyState = value; },\n});\n\nconst hasUnfiredListeners = (eventNames) => {\n    return eventQueue.filter(([event, , context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            for (let i = 0; i < listeners[name].length; i++) {\n                if (listeners[name][i]) {\n                    const listenerKey = name + \"::\" + j + \"::\" + i;\n                    if (!firedListeners[listenerKey]) {\n                        return true;\n                    }\n                }\n            }\n        } catch (e) {\n            // do nothing\n        }\n    }).length;\n};\n\nlet currentlyFiredEvent;\nconst firedListeners = {};\nconst fireQueuedEvents = (eventNames) => {\n    eventQueue.forEach(([event, readyState, context], j) => {\n        if (eventNames.indexOf(event.type) < 0) {\n            return;\n        }\n        if (!context) {\n            context = event.target;\n        }\n        try {\n            const name = context.constructor.name + \"::\" + event.type;\n            if ((listeners[name] || []).length) {\n                // listeners[name].forEach doesn't work as the listeners might be added \n                // during the loop\n                for (let i = 0; i < listeners[name].length; i++) {\n                    const func = listeners[name][i];\n                    if (func) {\n                        // readystatechanges fires multiple time times on same \n                        // listener with different readyState, accounting for that\n                        // const listenerKey = event === M \n                        //     ? name + '::' + j + '::' + i + '::' + readyState\n                        //     : name + '::' + i + '::' + readyState;\n                        const listenerKey = name + \"::\" + j + \"::\" + i;\n                        if (!firedListeners[listenerKey]) {\n                            firedListeners[listenerKey] = true;\n                            d.readyState = readyState;\n                            currentlyFiredEvent = name;\n                            try {\n                                firedEventsCount++;\n                                process.env.DEBUG && c(delta(), \"firing \" + event.type + \"(\" + d.readyState + \") for\", func[prototype] ? func[prototype].constructor : func);\n                                if (!func[prototype] || func[prototype].constructor === func) {\n                                    func.bind(context)(event);\n                                } else {\n                                    func(event);\n                                }\n                            } catch (e) {\n                                ce(e, func);\n                            }\n                            currentlyFiredEvent = null;\n                        }\n                    }\n                }\n            }\n        } catch (e) {\n            ce(e);\n        }\n    });\n};\n\n// we need to clone L, DCL, RSC events\n// because we internally track them and use them, eg window.load\n// if some script like elementor runs e.stopImmediatePropagation()\n// we won't ever get them, just the same way we do in the inpage-first-interaction\ndOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), d]);\n});\ndOrigAddEventListener(RSC, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued document \" + RSC);\n    eventQueue.push([new e.constructor(RSC, e), origReadyStateGetter(), d]);\n});\nwOrigAddEventListener(DCL, (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued window \" + DCL);\n    eventQueue.push([new e.constructor(DCL, e), origReadyStateGetter(), w]);\n});\nwOrigAddEventListener(L, (e) => {\n    WindowLoaded = true;\n    process.env.DEBUG && c(delta(), \"enqueued window \" + L);\n    eventQueue.push([new e.constructor(L, e), origReadyStateGetter(), w]);\n    // we must fire queued events for excluded scripts\n    // if firstInteractionFired, then some scripts might have registered load event listeners\n    // and they will be fired as well, which is invalid behaviour\n    // https://wordpress.org/support/topic/meteor-blocks-contact-form-email/\n    if (!iterating) {\n        fireQueuedEvents([DCL, RSC, M, L]);\n    }\n});\nconst messageListener = (e) => {\n    process.env.DEBUG && c(delta(), \"enqueued \" + M);\n    eventQueue.push([e, d.readyState, w]);\n};\n\nconst origWindowOnMessageGetter = w[__lookupGetter__](\"onmessage\");\nconst origWindowOnMessageSetter = w[__lookupSetter__](\"onmessage\");\n\n// will be called inside iterate, right before dispatching EVENT_THE_END\nconst restoreMessageListener = () => {\n    // this code is called only when all the events were fired\n    wOrigRemoveEventListener(M, messageListener);\n    // restoring message listeners\n    (listeners[windowEventPrefix + \"message\"] || []).forEach(listener => {\n        wOrigAddEventListener(M, listener);\n    });\n    Object_defineProperty(w, \"onmessage\", {\n        get: origWindowOnMessageGetter,\n        set: origWindowOnMessageSetter,\n    });\n    process.env.DEBUG && c(delta(), \"message listener restored\");\n};\n// removal will be inside iterate\nwOrigAddEventListener(M, messageListener);\n\n// jQuery mock allows to trigger jQuery.ready early\n// because if we rely on native logics, the ready() listeners will fire after window.load\nconst jQuery = new jQueryMock();\njQuery.init();\n\n// there are 3 cases\n// 1. first interaction fires before window.load as a resut of user interaction\n// 2. window.load fires before first interaction \n// 3. !!!!!!! 3rd party scripts might trigger it programmatically if they were excluded from optimization\nconst startIterating = () => {\n    if (!iterating && !DONE) {\n        iterating = true;\n        // mayBePreloadScripts();\n        d.readyState = \"loading\";\n        rAF(flushPreloadsAndPreconnects);\n        rAF(iterate); // starts the iteration\n        // nextTick(iterate); // starts the iteration\n    }\n    /**\n     * If window.load fires after iteration complete, eg some images delay window.load\n     * there might be some unfired events left in the queue\n     * so we will restart iteration which will fire them\n     */\n    if (!WindowLoaded) {\n        wOrigAddEventListener(L, () => {\n            process.env.DEBUG && c(delta(), separator, \"starting iterating after window loaded\");\n            startIterating();\n        });\n    }\n};\n\nwOrigAddEventListener(EVENT_FIRST_INTERACTION, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating on first interaction\");\n    startIterating();\n});\n\n/* EVENT_IMAGES_LOADED is an internal event, known to dispatcher only */\ndispatcher.on(EVENT_IMAGES_LOADED, () => {\n    process.env.DEBUG && c(delta(), separator, \"starting iterating after images loaded\");\n    startIterating();\n});\n\nprocess.env.SPO || (() => {\n    if (_wpmeteor.rdelay >= 0) {\n        InteractionEvents.capture();\n    }\n})();\n\n// scriptsToLoad is set to 1 to allow an extra call at the end of iteration\n// that means that once last script loads, it won't trigger the end of the cycle\n// only after all the events fire, the cycle will end\nlet scriptsToLoad = [-1];\nconst scriptLoaded = (event) => {\n    process.env.DEBUG && c(delta(), \"scriptLoaded\", event.target, scriptsToLoad.length);\n    scriptsToLoad = scriptsToLoad.filter(script => script !== event.target);\n    if (!scriptsToLoad.length) {\n        // this is ultimate end of the iteration cycle\n        nextTick(dispatcher.emit.bind(dispatcher, EVENT_THE_END));\n    }\n};\n\nlet i = 0;\nlet iterating = false;\n\n// TODO: async and defer scripts can be injected into the document in parallel\n// we can either insert them in 2 batches (defer, then async), or even in one batch\nconst iterate = () => {\n    process.env.DEBUG && c(delta(), \"it\", i++, reorder.length);\n    const element = reorder.shift();\n    if (element) {\n        // process.env.DEBUG && c(separator, \"iterating\", element, element.dataset);\n        if (element[getAttribute](prefix + \"src\")) {\n            if (element[hasAttribute](\"async\") || element[__dynamic]) {\n                if (element.isConnected) {\n                    // we can't be sure that it is going to be inserted into the DOM\n                    process.env.DEBUG && c(delta(), \"pushed to scriptsToLoad\", scriptsToLoad);\n                    scriptsToLoad.push(element);\n                    // https://github.com/aguidrevitch/fpo-javascript-rewrite/issues/6\n                    // https://wordpress.org/support/topic/script-loading-waited-on-js-file/\n                    // if an async script hangs for longer than 1 seconds\n                    // we stop waiting for it to finish page load\n                    setTimeout(scriptLoaded, 1000, { target: element });\n                }\n                // even if it is not in the scriptsToLoad list, \n                // scriptLoaded won't remove it from the list\n                unblock(element, scriptLoaded);\n                nextTick(iterate);\n            } else {\n                // process.env.DEBUG && c(delta(), \"sync\", element);\n                unblock(element, nextTick.bind(null, iterate));\n                // iterate()\n            }\n        } else if (element.origtype == javascriptBlocked) {\n            unblock(element);\n            // allow inserted script to execute\n            nextTick(iterate);\n        } else {\n            // it might be wrongfully processed script by backend, eg type=\"application/ld+json\" \n            // and execution will stop here\n            process.env.DEBUG && ce(\"running next iteration\", element, element.origtype, element.origtype == javascriptBlocked);\n            nextTick(iterate);\n        }\n        // } else if (scriptsToInsert) {\n        //     process.env.DEBUG && c(delta(), scriptsToInsert, \"more scripts to insert\");\n        //     rAF(iterate);\n    } else {\n        if (defer.length) {\n            process.env.DEBUG &&\n                defer.forEach(script =>\n                    c(delta(), \"adding deferred script from defer queue to reorder\", script.cloneNode(true))\n                );\n            reorder.push(...defer);\n            defer.length = 0;\n\n            // mayBePreloadScripts();\n            nextTick(iterate);\n\n            // process.env.DEBUG && c('loaded all the scripts');\n            // not restoring original addEventListener\n            // to avoid unexpected failures,\n            // however, that triggers spurious handlers which were sleeping\n            // d[addEventListener] = dOrigAddEventListener;\n        } else if (hasUnfiredListeners([DCL, RSC, M])) {\n            process.env.DEBUG && c(delta(), \"firing unfired listeners\");\n            fireQueuedEvents([DCL, RSC, M]);\n            nextTick(iterate);\n        } else if (WindowLoaded) {\n            // as cycle starts in 'fi' listener\n            if (hasUnfiredListeners([L, M])) {\n                fireQueuedEvents([L, M]);\n                nextTick(iterate);\n            } else if (scriptsToLoad.length > 1) {\n                // can get here only if started loading async scripts\n                process.env.DEBUG && c(delta(), `waiting for ${scriptsToLoad.length - 1} more scripts to load`, scriptsToLoad);\n                rIC(iterate);\n            } else if (async.length) {\n                process.env.DEBUG &&\n                    async.forEach(script =>\n                        c(delta(), \"adding async script from async queue to reorder\", script.cloneNode(true))\n                    );\n\n                reorder.push(...async);\n                async.length = 0;\n\n                // mayBePreloadScripts();\n                nextTick(iterate);\n            } else {\n                // CloudFlare RocketLoader workaround\n                if (w.RocketLazyLoadScripts) {\n                    try {\n                        RocketLazyLoadScripts.run();\n                    } catch (e) {\n                        ce(e);\n                    }\n                }\n                d.readyState = \"complete\";\n\n                // restoring message listener here to avoid messages that can fall\n                // in the gap before EVENT_THE_END fires\n                restoreMessageListener();\n\n                // restoring original jQuery.ready here to avoid calls that can fall\n                // in the gap before EVENT_THE_END fires\n                jQuery.unmock();\n\n                // We can't restore original event listeners\n                // because on slow connections, 3rd party scripts might be loaded late\n                // and bind to window.load or anything else we track\n                // documentAddEventListener = dOrigAddEventListener;\n                // documentRemoveEventListener = dOrigRemoveEventListener;\n                // windowAddEventListener = wOrigAddEventListener;\n                // windowRemoveEventListener = wOrigRemoveEventListener;\n\n                // process.env.DEBUG && c('running emulatedWindowLoaded');\n                // technically, iterating = false is not needed\n                // as the only place where it is checked is inside window.load\n                // and here he has already fired as WindowLoaded === true\n                iterating = false;\n                DONE = true;\n\n                // setTimeout(() => dispatcher.emit(EVENT_THE_END));\n                w[_setTimeout](() => scriptLoaded({ target: -1 }));\n            }\n        } else {\n            // exiting iterate() cycle in case window.load hasn't fired yet\n            iterating = false;\n        }\n    }\n};\n\nconst cloneScript = (el) => {\n\n    const newElement = dOrigCreateElement(S);\n\n    const attrs = el.attributes;\n    // console.log(\"newElement\", attrs.map(attr => attr.name + \"=\" + attr.value));\n\n    // move attributes\n    for (var i = attrs.length - 1; i >= 0; i--) {\n        if (!attrs[i].name.startsWith(prefix)) {\n            newElement[setAttribute](attrs[i].name, attrs[i].value);\n        }\n    }\n\n    const type = el[getAttribute](prefix + \"type\"); // data-wpmeteor-type\n    if (type) {\n        newElement.type = type;\n    } else {\n        newElement.type = \"text/javascript\";\n    }\n\n    // CloudFlare RocketLoader workaround\n    if ((el.textContent || \"\").match(/^\\s*class RocketLazyLoadScripts/)) {\n        newElement.textContent = el.textContent.replace(/^\\s*class\\s*RocketLazyLoadScripts/, \"window.RocketLazyLoadScripts=class\").replace(\"RocketLazyLoadScripts.run();\", \"\");\n    } else {\n        newElement.textContent = el.textContent;\n    }\n\n    // these might not be set as attributes, but instead as properties\n    for (const property of [\"onload\", \"onerror\", \"onreadystatechange\"]) {\n        if (el[property]) {\n            process.env.DEBUG && c(delta(), `re-adding ${property} to`, el, el[property]);\n            newElement[property] = el[property];\n        }\n    }\n\n    return newElement;\n};\n\n// let scriptsToInsert = 0;\n/*\nconst replaceScript = (el, newElement) => {\n    const parentNode = el.parentNode;\n    if (parentNode) {\n        // some scripts want parentNode to remove script themselves\n        const newParent = parentNode.nodeType === 11\n            ? dOrigCreateElement(parentNode.host[tagName])\n            : dOrigCreateElement(parentNode[tagName]);\n        // rAF is probably inacceptable for inline scripts at least. Here is the catch\n        // a script is supposed to create another script which should be captured by MutationObserver\n        // but by the time document.createElement() is called, iterating = false\n        // this is temporary fix, probably there are better solutions\n        // scriptsToInsert++;\n        // rAF(() => {\n        //     scriptsToInsert--;\n        //     newParent[appendChild](parentNode.replaceChild(newElement, el));\n        // });\n        newParent[appendChild](parentNode.replaceChild(newElement, el));\n        if (!parentNode.isConnected) {\n            // it happens sometimes, so no need to trigger verbose error\n            process.env.DEBUG && ce(\"Parent for\", el, \" is not part of the DOM\");\n            // we have to return empty element to trigger onload() callback\n            // instantly instead of waiting for never firing onload event listener\n            return;\n        }\n        return el;\n    }\n    ce(\"No parent for\", el);\n};\n*/\n\nconst unblock = (el, callback) => {\n    // const ds = el.dataset;\n    let src = el[getAttribute](prefix + \"src\");\n    // convert relative to absolute if SPO\n    process.env.SPO && src && _wpmeteor.baseURL && (() => { try { src = new URL(src, _wpmeteor.baseURL).href; } catch { } })(); // eslint-disable-line no-empty\n\n    if (src) {\n        process.env.DEBUG && c(delta(), \"unblocking src\", src);\n\n        const addEventListener = origAddEventListener.bind(el);\n\n        // if (el.getEventListeners) {\n        //     el.getEventListeners().forEach(([event, listener]) => {\n        //         process.env.DEBUG && c(delta(), \"re-adding event listeners to element\", event, listener);\n        //         addEventListener(event, listener);\n        //     });\n        // }\n\n        if (el.isConnected && callback) {\n            addEventListener(L, callback);\n            addEventListener(E, callback);\n        }\n\n        /** setting type before src is crucial for load/error events to be triggered \n          * According to the HTML5 specification, when a script element is inserted \n          * into the document, it starts fetching the script as soon as the src attribute is encountered, \n          * provided the type is a recognized script type. If the type is not set correctly at that point, \n          * the script will not be fetched.\n          */\n        /* el.origtypegets and sets original \"type\" attribute, el.type points to data-wpmeteor-src */\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        /* el.origsrc gets and sets original \"src\" attribute, el.src points to data-wpmeteor-src */\n        el.origsrc = src;\n\n        /** Do not remove prefix + \"src\" and prefix + \"type\" attributes, they are needed in the following case:\n          * * document.currentScript.getAttribute('src') will return null if they are removed\n          * as access to the attributes is still wrapped by us\n          */\n        // el[removeAttribute](prefix + \"src\");\n        // el[removeAttribute](prefix + \"type\");\n\n        process.env.DEBUG && c(delta(), \"unblocked src\", src, el);\n        // http://www.iana.org/assignments/media-types/media-types.xhtml\n        // in fact only text/javascript is the right one, the rest is obsolete\n        if ((!el.isConnected || el[hasAttribute](\"nomodule\") || (el.type && !isJavascriptRegexp.test(el.type))) && callback) {\n            // listeners won't fire\n            // so have to trigger callback\n            callback(new Event(L, { target: el }));\n        }\n    } else if (el.origtype === javascriptBlocked) {\n        // onLoad is never passed here\n        process.env.DEBUG && c(delta(), \"unblocking inline\", el);\n        el.origtype = el[getAttribute](prefix + \"type\") || \"text/javascript\";\n        // have to insert updated content in order to trigger execution\n        // we are going to change the content, so integrity is not valid anymore\n        el[removeAttribute](\"integrity\");\n        el.textContent = el.textContent + \"\\n\";\n        process.env.DEBUG && c(delta(), \"unblocked inline\", el);\n    } else {\n        process.env.DEBUG && ce(delta(), \"already unblocked\", el);\n        if (callback) {\n            callback(new Event(L, { target: el }));\n        }\n    }\n};\n// TODO: support for ...args ????\nconst removeQueuedEventListener = (name, func) => {\n    const pos = (listeners[name] || []).indexOf(func);\n    if (pos >= 0) {\n        listeners[name][pos] = undefined;\n        return true;\n    }\n};\n\nconst documentAddEventListener = (event, func, ...args) => {\n    if (\"HTMLDocument::\" + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, d[addEventListener].bind(d, event, func, ...args));\n        return;\n    }\n    if (func && (event === DCL || event === RSC)) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = documentEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    return dOrigAddEventListener(event, func, ...args);\n};\n\n// ...args were missing, making it impossible to remove listeners for google maps mobile\nconst documentRemoveEventListener = (event, func, ...args) => {\n    if (event === DCL) {\n        const name = documentEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return dOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(d, {\n    [addEventListener]: {\n        get() { return documentAddEventListener; },\n        set() { return documentAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return documentRemoveEventListener; },\n        set() { return documentRemoveEventListener; },\n    }\n});\n\nlet preloadsAndPreconnectsFragment = d.createDocumentFragment();\nconst flushPreloadsAndPreconnects = () => {\n    if (preloadsAndPreconnectsFragment.hasChildNodes()) {\n        d.head[appendChild](preloadsAndPreconnectsFragment);\n        preloadsAndPreconnectsFragment = d.createDocumentFragment();\n    }\n};\nconst preconnects = {};\nconst preconnect = (src) => {\n    if (!src)\n        return;\n    try {\n        const url = new URL(src, d.location.href);\n        const href = url.origin;\n        if (href && !preconnects[href] && d.location.host !== url.host) {\n            const s = dOrigCreateElement(\"link\");\n            s.rel = \"preconnect\";\n            s.href = href;\n            preloadsAndPreconnectsFragment[appendChild](s);\n            process.env.DEBUG && c(delta(), \"preconnecting\", url.origin);\n            preconnects[href] = true;\n            if (iterating) {\n                rAF(flushPreloadsAndPreconnects);\n            }\n        }\n    } catch (e) {\n        process.env.DEBUG && ce(delta(), \"failed to parse src for preconnect\", src, e);\n    }\n};\n\nconst preloads = {};\nconst preloadAsScript = (src, isModule, crossorigin, integrity) => {\n    const s = dOrigCreateElement(\"link\");\n    s.rel = isModule\n        ? \"modulepre\" + L\n        : \"pre\" + L;\n    s.as = \"script\";\n    if (crossorigin)\n        s[setAttribute](\"crossorigin\", crossorigin); // must be setAttribute\n    if (integrity)\n        s[setAttribute](\"integrity\", integrity); // must be setAttribute\n    try {\n        src = new URL(src, d.location.href).href;\n    } catch { }\n    s.href = src;\n    preloadsAndPreconnectsFragment[appendChild](s);\n    preloads[src] = true;\n    process.env.DEBUG && c(delta(), s.rel, src);\n    if (iterating) {\n        rAF(flushPreloadsAndPreconnects);\n    }\n};\n\n/*\nconst mayBePreloadScripts = () => {\n    if (_wpmeteor.preload && reorder.length) {\n        reorder.forEach(script => {\n            const src = script[getAttribute](prefix + \"src\");\n            if (src && !preloads[src] && !script[hasAttribute](\"nomodule\")) {\n                preloadAsScript(src, script[getAttribute](prefix + \"type\") == \"module\", script[hasAttribute](\"crossorigin\") && script[getAttribute](\"crossorigin\"), script[getAttribute](\"integrity\"));\n            }\n        });\n    }\n};\n*/\n\n/*\ndOrigAddEventListener(DCL, () => {\n    const treorder = [...reorder];\n    reorder.length = 0;\n    [...d[querySelectorAll](\"script[type='\" + javascriptBlocked + \"']\"), ...treorder].forEach(el => {\n        // this is a workaround to skip nodes that were detected in MutationObserver\n        // and already hit iterate(), however, they miss the next Object_defineProperty() for origtype\n        // so this is incorrect, and doesn't work, check for node.origtype presense was added\n        // with fixed MutationObserver this is not needed anymore\n        if (seenScripts.has(el)) {\n            process.env.DEBUG && ce(delta(), \"WARNING: the scripts should have been filtered in MutationObserver\", el);\n            return;\n        }\n        const originalAttributeGetter = el[__lookupGetter__](\"type\").bind(el);\n        Object_defineProperty(el, \"origtype\", {\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n        if ((el[getAttribute](prefix + \"src\") || \"\").match(/\\/gtm.js\\?/)) {\n            process.env.DEBUG && c(delta(), \"delaying regex\", el[getAttribute](prefix + \"src\"));\n            async.push(el);\n        } else if (el[hasAttribute](\"async\")) {\n            process.env.DEBUG && c(delta(), \"delaying async\", el[getAttribute](prefix + \"src\"));\n            async.unshift(el);\n        } else if (el[hasAttribute](\"defer\")) {\n            process.env.DEBUG && c(delta(), \"delaying defer\", el[getAttribute](prefix + \"src\"));\n            defer.push(el);\n        } else {\n            reorder.push(el);\n        }\n        seenScripts.add(el);\n    });\n    // we will loose all event listeners, so we'd better track addEventListener/removeEventListener as well\n    // not supported yet, cant find reference in backend\n    // const querySelectors = ['link'].map(n => n + '[' + prefix + 'onload]').join(',');\n    // d.querySelectorAll(querySelectors).forEach(el => reorder.push(el));\n});\n*/\n\n/* 3rd party scripts handling */\nconst createElement = function (...args) {\n\n    const scriptElt = dOrigCreateElement(...args);\n\n    // createElement(null), createElement(undefined) are valid calls\n    // so we have to check for args[0] presence\n    if (!args || args[0].toUpperCase() !== S || !iterating) {\n        return scriptElt;\n    }\n\n    process.env.DEBUG && c(delta(), \"creating script element\");\n\n    // Backup the original setAttribute function\n    const originalSetAttribute = scriptElt[setAttribute].bind(scriptElt);\n    const originalGetAttribute = scriptElt[getAttribute].bind(scriptElt);\n    const originalHasAttribute = scriptElt[hasAttribute].bind(scriptElt);\n    const originalAttributes = scriptElt[__lookupGetter__](\"attributes\").bind(scriptElt);\n\n    // originalSetAttribute(prefix + \"after\", \"REORDER\");\n    // originalSetAttribute(prefix + \"type\", \"text/javascript\");\n\n    // scriptElt.type = javascriptBlocked;\n\n    // const eventListeners = [];\n    // scriptElt.getEventListeners = () => {\n    //     return eventListeners;\n    // };\n\n    capturedAttributes.forEach(property => {\n        const originalAttributeGetter = scriptElt[__lookupGetter__](property).bind(scriptElt);\n        const originalAttributeSetter = scriptElt[__lookupSetter__](property).bind(scriptElt);\n        O[definePropert + \"y\"](scriptElt, property, {\n            set(value) {\n                process.env.DEBUG && c(delta(), \"setting \", property, value);\n                // bypass for application/ld+json and similar\n                if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                    return scriptElt[setAttribute](property, value);\n                }\n                if (property === \"src\" && value) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                } else if (property === \"type\" && value && scriptElt.origsrc) {\n                    originalSetAttribute(\"type\", javascriptBlocked);\n                }\n                return value\n                    ? scriptElt[setAttribute](prefix + property, value)\n                    : scriptElt[removeAttribute](prefix + property);\n            },\n            get() {\n                const result = scriptElt[getAttribute](prefix + property);\n                if (property === \"src\") {\n                    // convert to absolute\n                    try {\n                        const url = new URL(result, d.location.href);\n                        return url.href;\n                    } catch {\n                        // eslint-disable-line no-empty\n                    }\n                }\n                return result;\n            }\n        });\n        Object_defineProperty(scriptElt, \"orig\" + property, {\n            set(value) {\n                return originalAttributeSetter(value);\n            },\n            get() {\n                return originalAttributeGetter();\n            }\n        });\n\n    });\n\n    // this is not needded anymore as we are not copying the node\n    // so we don't need to reattach the listeners\n    // scriptElt[addEventListener] = function (event, handler) {\n    //     eventListeners.push([event, handler]);\n    // };\n\n    // Monkey patch the setAttribute function so that the setter is called instead.\n    // Otherwise, setAttribute('type', 'whatever') will bypass our custom descriptors!\n    scriptElt[setAttribute] = function (property, value) {\n        if (capturedAttributes.includes(property)) {\n            process.env.DEBUG && c(delta(), \"setting attribute\", property, value);\n            // bypass for application/ld+json and similar\n            if (property === \"type\" && value && !isJavascriptRegexp.test(value)) {\n                return originalSetAttribute(property, value);\n            }\n            if (property === \"src\" && value) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            } else if (property === \"type\" && value && scriptElt.origsrc) {\n                originalSetAttribute(\"type\", javascriptBlocked);\n            }\n            return value\n                ? originalSetAttribute(prefix + property, value)\n                : scriptElt[removeAttribute](prefix + property);\n        } else {\n            originalSetAttribute(property, value);\n        }\n    };\n\n    scriptElt[getAttribute] = function (property) {\n        const result = capturedAttributes.indexOf(property) >= 0\n            ? originalGetAttribute(prefix + property)\n            : originalGetAttribute(property);\n        if (property === \"src\") {\n            // convert to absolute\n            try {\n                const url = new URL(result, d.location.href);\n                return url.href;\n            } catch {\n                // eslint-disable-line no-empty\n            }\n        }\n        return result;\n    };\n\n    scriptElt[hasAttribute] = function (property) {\n        return capturedAttributes.indexOf(property) >= 0\n            ? originalHasAttribute(prefix + property)\n            : originalHasAttribute(property);\n    };\n\n    /* very shallow mocking of NamedNodeMap */\n    Object_defineProperty(scriptElt, \"attributes\", {\n        get() {\n            const mock = [...originalAttributes()]\n                .filter(attr => attr.name !== \"type\") // no need to filter as we no longer append it && attr.name !== prefix + \"after\")\n                .map(attr => {\n                    return {\n                        name: attr.name.match(new RegExp(prefix))\n                            ? attr.name.replace(prefix, \"\")\n                            : attr.name,\n                        value: attr.value\n                    };\n                });\n            return mock;\n        }\n    });\n\n    // this is to make it to the async queue where it belongs\n    scriptElt[__dynamic] = true;\n\n    return scriptElt;\n};\n\n// Allowing to override, but still not the best option - onetrust captures createElement \n// even for users who accepted cookies\nObject.defineProperty(Document[prototype], \"createElement\", {\n    set(value) {\n        if (process.env.DEBUG) {\n            if (value == origCreateElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement restored to original\");\n            } else if (value === createElement) {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden\");\n            } else {\n                process.env.DEBUG && c(delta(), \"document.createElement overridden by a 3rd party script\");\n            }\n        }\n        if (value !== createElement) {\n            createElementOverride = value;\n        }\n    },\n    get() {\n        return createElementOverride || createElement;\n    }\n});\n\nconst seenScripts = new Set();\nconst observer = new MutationObserver(mutations => {\n    mutations.forEach(({ removedNodes, addedNodes, target }) => {\n        // this is the case for https://essential-addons.com/elementor/offcanvas-content/\n        // which, in EAELOffcanvasContent.prototype = { init: function() { \n        // ... 0 === e(\".eael-offcanvas-container\").length && (e(\"body\").wrapInner('<div class=\"eael-offcanvas-container eael-offcanvas-container-' + this.id + '\" />'),\n        // }}\n        // wraps the whole body into a div, removes some scripts from the DOM and reinserts them wrapped in .eael-offcanvas-container.eael-offcanvas-container-<id>\n        removedNodes.forEach(node => {\n            // For each removed script tag\n            if (node.nodeType === 1 && S === node[tagName] && \"origtype\" in node) {\n                seenScripts.delete(node);\n            }\n        });\n        addedNodes.forEach(node => {\n            // For each added script tag\n            if (node.nodeType === 1) {\n                if (S === node[tagName]) {\n                    // process.env.DEBUG && c(delta(), \"XXXX\", node, node.origtype, node[getAttribute](\"type\"));\n                    if (\"origtype\" in node) {\n                        // process.env.DEBUG && c(delta(), \"mutationobserver captured some script\", node.cloneNode(true));\n                        if (node.origtype !== javascriptBlocked) {\n                            process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                            return;\n                        }\n                    } else if (node[getAttribute](\"type\") !== javascriptBlocked) {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured non-blocked script\", node.cloneNode(true));\n                        return;\n                    }\n                    // all the intercepted nodes inserted by createElement() should have origtype getter\n                    if (!(\"origtype\" in node)) {\n                        process.env.DEBUG && (node[getAttribute](\"type\") === javascriptBlocked\n                            ? c(delta(), \"mutationobserver captured blocked script\", node)\n                            : c(delta(), \"mutationobserver captured non-javascript script\", node));\n                        capturedAttributes.forEach(property => {\n                            const originalAttributeGetter = node[__lookupGetter__](property).bind(node);\n                            const originalAttributeSetter = node[__lookupSetter__](property).bind(node);\n                            Object_defineProperty(node, \"orig\" + property, {\n                                set(value) {\n                                    return originalAttributeSetter(value);\n                                },\n                                get() {\n                                    return originalAttributeGetter();\n                                }\n                            });\n                        });\n                    } else {\n                        process.env.DEBUG && c(delta(), \"mutationobserver captured new script\", node.cloneNode(true));\n                    }\n\n                    // const src = node[getAttribute](prefix + \"src\");\n                    const src = node[getAttribute](prefix + \"src\");\n\n                    if (seenScripts.has(node)) {\n                        ce(\"Inserted twice\", node);\n                    }\n\n                    if (node.parentNode) {\n                        seenScripts.add(node);\n                        if ((src || \"\").match(/\\/gtm.js\\?/)) {\n                            process.env.DEBUG && c(delta(), \"delaying regex\", node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        } else if (node[hasAttribute](\"async\") || node[__dynamic]) {\n                            process.env.DEBUG && c(delta(),\n                                node.__async\n                                    ? \"delaying dynamically inserted script as async\"\n                                    : \"delaying async\",\n                                node[getAttribute](prefix + \"src\"));\n                            async.push(node);\n                            preconnect(src);\n                        } else if (node[hasAttribute](\"defer\")) {\n                            process.env.DEBUG && c(delta(), \"delaying defer\", node[getAttribute](prefix + \"src\"));\n                            defer.push(node);\n                            preconnect(src);\n                        } else {\n                            if (src && !node[hasAttribute](\"nomodule\") && !preloads[src]) {\n                                // no need to preload if it is the next script in the queue\n                                // VWO removes node instantly\n                                // preloading \n                                c(delta(), \"pre preload\", reorder.length);\n                                preloadAsScript(src, node[getAttribute](prefix + \"type\") == \"module\", node[hasAttribute](\"crossorigin\") && node[getAttribute](\"crossorigin\"), node[getAttribute](\"integrity\"));\n                            }\n                            reorder.push(node);\n                        }\n                    } else {\n                        // if the node has been instanly removed, we still want to load it and run\n                        // I tested appendNode(script); removeNode(script) - it still loads and triggers the code\n                        process.env.DEBUG && ce(\"No parent node for\", node, \"re-adding to\", target);\n                        node[addEventListener](L, e => e.target.parentNode[removeChild](e.target));\n                        node[addEventListener](E, e => e.target.parentNode[removeChild](e.target));\n                        target[appendChild](node);\n                        // no need to push to seenScripts and reorder as it will happen on the next iteration\n                        // of MutationObserver\n                    }\n                } else if (\"LINK\" === node[tagName] && node[getAttribute](\"as\") === \"script\") {\n                    preloads[node[getAttribute](\"href\")] = true;\n                }\n            }\n        });\n    });\n});\n\nconst mutationObserverOptions = {\n    childList: true,\n    subtree: true,\n    // attributes: true,\n    // attributeFilter: ['src', 'type'],\n    // attributeOldValue: true,\n};\n\nobserver.observe(d.documentElement, mutationObserverOptions);\n\nconst origAttachShadow = HTMLElement[prototype].attachShadow;\nHTMLElement[prototype].attachShadow = function (options) {\n    const shadowRoot = origAttachShadow.call(this, options);\n    if (options.mode === \"open\") {\n        observer.observe(shadowRoot, mutationObserverOptions);\n    }\n    return shadowRoot;\n};\n\nprocess.env.SPO || (() => {\n    const origIFrameSrc = O[getOwnPropertyDescriptor](HTMLIFrameElement[prototype], \"src\");\n    Object_defineProperty(HTMLIFrameElement[prototype], \"src\", {\n        get() {\n            if (this.dataset.fpoSrc) {\n                return this.dataset.fpoSrc;\n            }\n            return origIFrameSrc.get.call(this);\n        },\n        set(value) {\n            delete this.dataset.fpoSrc;\n            origIFrameSrc.set.call(this, value);\n        }\n    });\n})();\n\n// cleaning up\ndispatcher.on(EVENT_THE_END, () => {\n    process.env.DEBUG && c(delta(), \"THE END\");\n    if (!createElementOverride || createElementOverride === createElement) {\n        Document[prototype].createElement = origCreateElement;\n        observer.disconnect();\n    } else {\n        process.env.DEBUG && c(delta(), \"createElement is overridden, keeping observers in place\");\n    }\n    // we should only fire EVENT_REPLAY_CAPTURED_EVENTS if no lazyload is in the page\n    // eg in pure WP METEOR mode, not for FASTPIXEL\n    process.env.SPO || dispatchEvent(new CustomEvent(EVENT_REPLAY_CAPTURED_EVENTS));\n    dispatchEvent(new CustomEvent(EVENT_THE_END));\n});\n/* end 3rd party scripts handling */\n\n/* we have to override document.write as all of them will fire after DOMContentLoaded */\nlet documentWrite = (str) => {\n    let parent, currentScript;\n    if (!d.currentScript || !d.currentScript.parentNode) {\n        /* trying our best */\n        parent = d.body;\n        currentScript = parent.lastChild;\n    } else {\n        currentScript = d.currentScript;\n        parent = currentScript.parentNode;\n    }\n    try {\n        const df = dOrigCreateElement(\"div\");\n        df.innerHTML = str;\n        Array.from(df.childNodes).forEach(node => {\n            if (node.nodeName === S) {\n                // cloneScript is a must for safari\n                parent.insertBefore(cloneScript(node), currentScript);\n            } else {\n                parent.insertBefore(node, currentScript);\n            }\n        });\n    } catch (e) {\n        ce(e);\n    }\n};\nlet documentWriteLn = (str) => documentWrite(str + \"\\n\");\n\nObject_defineProperties(d, {\n    \"write\": {\n        get() { return documentWrite; },\n        set(func) { return documentWrite = func; },\n    },\n    \"writeln\": {\n        get() { return documentWriteLn; },\n        set(func) { return documentWriteLn = func; },\n    },\n});\n\n// Capturing and queueing Window Load event handlers\nlet windowAddEventListener = (event, func, ...args) => {\n    // We have to skip registering message listeners if DONE, as we already restored \n    // original eventListener to messages in restoreMessageListener()\n    // ??? not sure why there is windowEventPrefix instead of documentEventPrefix\n    // but I think this was to workaround some external javascripts\n    if (windowEventPrefix + DCL == currentlyFiredEvent && event === DCL && !func.toString().match(/jQueryMock/)) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (windowEventPrefix + L == currentlyFiredEvent && event === L) {\n        dispatcher.on(EVENT_THE_END, w[addEventListener].bind(w, event, func, ...args));\n        return;\n    }\n    if (func && (event === L || event === DCL || (event === M && !DONE))) {\n        process.env.DEBUG && c(delta(), \"enqueuing event listener\", event, func);\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        listeners[name] = listeners[name] || [];\n        listeners[name].push(func);\n        if (DONE) {\n            fireQueuedEvents([event]);\n        }\n        return;\n    }\n    // process.env.DEBUG && c(event, func);\n    return wOrigAddEventListener(event, func, ...args);\n};\nlet windowRemoveEventListener = (event, func, ...args) => {\n    if (event === L) { // L = load\n        const name = event === DCL ? documentEventPrefix + event : windowEventPrefix + event;\n        removeQueuedEventListener(name, func);\n    }\n    return wOrigRemoveEventListener(event, func, ...args);\n};\n\n// some optimizers think they can optimize better than us\n// but it is not true as to 18 Jul 2021\n// so let's keep our handlers\nObject_defineProperties(w, {\n    [addEventListener]: {\n        get() { return windowAddEventListener; },\n        set() { return windowAddEventListener; },\n    },\n    [removeEventListener]: {\n        get() { return windowRemoveEventListener; },\n        set() { return windowRemoveEventListener; },\n    }\n});\n\nconst onHandlerOptions = (name) => {\n    let handler;\n    return {\n        get() {\n            process.env.DEBUG && c(delta(), separator, \"getting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", handler);\n            return handler;\n        },\n        set(func) {\n            process.env.DEBUG && c(delta(), separator, \"setting \" + name.toLowerCase().replace(/::/, \".\") + \" handler\", func);\n            // only last handler should fire\n            if (handler) {\n                removeQueuedEventListener(name, func);\n            }\n            listeners[name] = listeners[name] || [];\n            listeners[name].push(func);\n            return handler = func;\n        },\n        // rocket-loader from CloudFlare tries to override onload so we will let him\n        // configurable: true,\n    };\n};\n\n/* \n * this code handles event from onload attributes\n * when rewriting body, iframes, images and scripts\n * we move original onload attribute to data-wpemeteor-onload\n * and replace onload with a function that fires CustomEvent(EVENT_ELEMENT_LOADED)\n */\n// bind to window\n// 2024-02-18: it seems that the only element we need this workaround are <document onload> and <html onload>\nwOrigAddEventListener(EVENT_ELEMENT_LOADED, e => {\n    const { target, event } = e.detail;\n    const el = target === w ? d.body : target;\n    const func = el[getAttribute](prefix + \"on\" + event.type);\n    el[removeAttribute](prefix + \"on\" + event.type);\n    try {\n        const f = new Function(\"event\", func);\n        if (target === w) {\n            // the trick here is to enqueue Window::load\n            // using overridden window.addEventListener\n            w[addEventListener](L, f.bind(target, event));\n        } else {\n            f.call(target, event);\n        }\n    } catch (err) {\n        console.err(err);\n    }\n});\n\n// overriding window.onload and document.body.onload, they are the same function\n{\n\n    const options = onHandlerOptions(windowEventPrefix + L);\n    Object_defineProperty(w, \"onload\", options);\n    dOrigAddEventListener(DCL, () => {\n        Object_defineProperty(d.body, \"onload\", options);\n    });\n}\n// overriding document.onreadystatechange\nObject_defineProperty(d, \"onreadystatechange\", onHandlerOptions(documentEventPrefix + RSC));\n// overriding window.onmessage\nObject_defineProperty(w, \"onmessage\", onHandlerOptions(windowEventPrefix + M));\n\nprocess.env.SPO &&\n    wOrigAddEventListener(EVENT_CSS_LOADED, () => {\n        w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n    });\n\nprocess.env.SPO\n    || (() => {\n\n        const wheight = w.innerHeight;\n        const wwidth = w.innerWidth;\n\n        const intersectsViewport = (el) => {\n            // chrome settings\n            // https://web.dev/browser-level-image-lazy-loading/#improved-data-savings-and-distance-from-viewport-thresholds\n            let extras = {\n                \"4g\": 1250,\n                \"3g\": 2500,\n                \"2g\": 2500,\n            };\n\n            const extra = extras[(navigator.connection || {}).effectiveType] || 0;\n            const rect = el.getBoundingClientRect();\n            const viewport = {\n                top: -1 * wheight - extra,\n                left: -1 * wwidth - extra,\n                bottom: wheight + extra,\n                right: wwidth + extra\n            };\n\n            // If one rectangle is on left side of other\n            if (rect.left >= viewport.right || rect.right <= viewport.left)\n                return false;\n\n            // If one rectangle is above other\n            if (rect.top >= viewport.bottom || rect.bottom <= viewport.top)\n                return false;\n\n            return true;\n        };\n\n        const waitForImages = (reallyWait = true) => {\n            let imagesToLoad = 1;\n            let imagesLoadedCount = -1;\n            const seen = {};\n\n            const imageLoadedHandler = () => {\n                imagesLoadedCount++;\n                // let's trigger \n                if (!--imagesToLoad) {\n                    process.env.DEBUG && c(delta(), imagesLoadedCount + \" eager images loaded\");\n                    // there are 2 options here\n                    // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n                    // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n\n                    // 1.\n                    w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n                    // 2. \n                    // should never get there, as we bypass waitForImages()\n                    // dispatcher.emit(EVENT_IMAGES_LOADED);\n                }\n            };\n\n            Array.from(d.getElementsByTagName(\"*\")).forEach(tag => {\n                let src, style, bgUrl;\n                if (tag[tagName] === \"IMG\") {\n                    let _src = tag.currentSrc || tag.src; // trying to capture srcsets if they are already loading\n                    if (_src && !seen[_src] && !_src.match(/^data:/i)) {\n                        if ((tag.loading || \"\").toLowerCase() !== \"lazy\") {\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading image\", src, \"for\", tag);\n                        } else if (intersectsViewport(tag)) { // lazy && already loading\n                            src = _src;\n                            process.env.DEBUG && c(delta(), \"loading lazy image\", src, \"for\", tag);\n                        }\n                    }\n                } else if (tag[tagName] === S) {\n                    preconnect(tag[getAttribute](prefix + \"src\"));\n                } else if (tag[tagName] === \"LINK\" && tag[getAttribute](\"as\") === \"script\" && [\"pre\" + L, \"modulepre\" + L].indexOf(tag[getAttribute](\"rel\")) >= 0) {\n                    preloads[tag[getAttribute](\"href\")] = true;\n                    // supposedly all CSS has already been loaded\n                } else if ((style = w.getComputedStyle(tag)) && (bgUrl = (style.backgroundImage || \"\").match(/^url\\s*\\((.*?)\\)/i)) && (bgUrl || []).length) { // eslint-disable-line no-cond-assign\n                    const url = bgUrl[0].slice(4, -1).replace(/\"/g, \"\");\n                    if (!seen[url] && !url.match(/^data:/i)) {\n                        src = url;\n                        process.env.DEBUG && c(delta(), \"loading background\", src, \"for\", tag);\n                    }\n                }\n                if (src) {\n                    seen[src] = true;\n                    const temp = new Image();\n                    if (reallyWait) {\n                        imagesToLoad++;\n                        temp[addEventListener](L, imageLoadedHandler);\n                        temp[addEventListener](E, imageLoadedHandler);\n                    }\n                    temp.src = src;\n                }\n            });\n            d.fonts.ready.then(() => {\n                process.env.DEBUG && c(delta(), \"fonts ready\");\n                imageLoadedHandler();\n            });\n        };\n\n        if (_wpmeteor.rdelay === 0) {\n            // dOrigAddEventListener(DCL, () => nextTick(waitForImages.bind(null, false)));\n            dOrigAddEventListener(DCL, waitForImages);\n        } else {\n            // there are 2 options here\n            // 1. wait for images then fire EVENT_IMAGES_LOADED with rdelay\n            // 2. fire EVENT_IMAGES_LOADED with rdelay after window.load, without waiting for images\n            // Reasoning for 1. is that on slow connections, we still want to wait for images to load\n\n            // 1.\n            wOrigAddEventListener(L, waitForImages);\n            // 2.\n            // w[_setTimeout](dispatcher.emit.bind(dispatcher, EVENT_IMAGES_LOADED), _wpmeteor.rdelay);\n        }\n    })();\n"],
  "mappings": "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",
  "names": ["delta_default", "addEventListener", "removeEventListener", "getAttribute", "setAttribute", "removeAttribute", "hasAttribute", "querySelector", "querySelectorAll", "appendChild", "removeChild", "createElement", "tagName", "getOwnPropertyDescriptor", "prototype", "__lookupGetter__", "__lookupSetter__", "DCL", "L", "E", "w", "d", "de", "c", "ce", "mocked", "jQueryMock", "Mock", "Mock$", "override", "jQuery", "symbol", "enqueue", "func", "d", "addEventListener", "DCL", "e", "$", "oldReady", "oldPrototypeReady", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "EVENT_ELEMENT_LOADED", "EVENT_IMAGES_LOADED", "EVENT_THE_END", "EVENT_CLICK", "w", "wOrigAddEventListener", "wOrigRemoveEventListener", "ra", "ga", "sa", "passiveEvents", "activeEvents", "captureEvents", "prefix", "dispatchEvent", "synteticCick", "event", "EVENT_CLICK", "InteractionEvents", "firstInteractionFired", "p", "n", "w", "capturedEvents", "captureEvent", "e", "passiveEvents", "captureEvents", "sa", "prefix", "EVENT_FIRST_INTERACTION", "EVENT_REPLAY_CAPTURED_EVENTS", "activeEvents", "wOrigRemoveEventListener", "target", "ga", "ra", "wOrigAddEventListener", "browser_default", "InteractionEvents", "EventEmitter", "name", "data", "l", "callback", "c", "dispatcher_default", "EventEmitter", "$deviceMode", "d", "createElement", "setAttribute", "attached", "device_mode_default", "appendChild", "getClass", "el", "getAttribute", "setClass", "value", "setAttribute", "animations_default", "w", "addEventListener", "L", "mode", "device_mode_default", "vw", "de", "vh", "keys", "d", "querySelectorAll", "viewportOffset", "settings", "animationDelay", "animation", "key", "i", "oldClass", "newClass", "timeout", "dispatcher_default", "e", "inmega", "pp_menu_default", "div", "d", "createElement", "placeholder", "prevAll", "el", "result", "addEventListener", "DCL", "querySelectorAll", "ul", "getAttribute", "setAttribute", "prev", "tagName", "span", "appendChild", "mutations", "addedNodes", "node", "removeChild", "RSC", "M", "S", "prefix", "Object_defineProperty", "Object_defineProperties", "javascriptBlocked", "isJavascriptRegexp", "_rAF", "_rIC", "_setTimeout", "__dynamic", "windowEventPrefix", "w", "documentEventPrefix", "d", "forEach", "callback", "thisArg", "i", "prototype", "animations_default", "pp_menu_default", "reorder", "defer", "async", "DONE", "eventQueue", "listeners", "WindowLoaded", "firedEventsCount", "rAF", "rIC", "addEventListener", "nextTick", "createElementOverride", "capturedAttributes", "O", "definePropert", "object", "property", "options", "RSC", "L", "value", "setter", "properties", "sym", "origAddEventListener", "origRemoveEventListener", "removeEventListener", "dOrigAddEventListener", "dOrigRemoveEventListener", "wOrigAddEventListener", "wOrigRemoveEventListener", "origCreateElement", "dOrigCreateElement", "origReadyStateGetter", "__lookupGetter__", "readyState", "hasUnfiredListeners", "eventNames", "event", "context", "j", "name", "listenerKey", "firedListeners", "currentlyFiredEvent", "fireQueuedEvents", "func", "e", "ce", "DCL", "iterating", "M", "messageListener", "origWindowOnMessageGetter", "origWindowOnMessageSetter", "__lookupSetter__", "restoreMessageListener", "listener", "jQuery", "jQueryMock", "startIterating", "flushPreloadsAndPreconnects", "iterate", "EVENT_FIRST_INTERACTION", "dispatcher_default", "EVENT_IMAGES_LOADED", "browser_default", "scriptsToLoad", "scriptLoaded", "script", "EVENT_THE_END", "iterating", "iterate", "element", "reorder", "getAttribute", "prefix", "hasAttribute", "__dynamic", "scriptsToLoad", "scriptLoaded", "unblock", "nextTick", "javascriptBlocked", "defer", "hasUnfiredListeners", "DCL", "RSC", "M", "fireQueuedEvents", "WindowLoaded", "L", "rIC", "async", "w", "e", "ce", "d", "restoreMessageListener", "jQuery", "DONE", "_setTimeout", "cloneScript", "el", "newElement", "dOrigCreateElement", "S", "attrs", "i", "setAttribute", "type", "property", "callback", "src", "addEventListener", "origAddEventListener", "E", "isJavascriptRegexp", "removeAttribute", "removeQueuedEventListener", "name", "func", "pos", "listeners", "documentAddEventListener", "event", "args", "currentlyFiredEvent", "dispatcher_default", "EVENT_THE_END", "documentEventPrefix", "dOrigAddEventListener", "documentRemoveEventListener", "dOrigRemoveEventListener", "Object_defineProperties", "removeEventListener", "preloadsAndPreconnectsFragment", "flushPreloadsAndPreconnects", "appendChild", "preconnects", "preconnect", "url", "href", "s", "rAF", "preloads", "preloadAsScript", "isModule", "crossorigin", "integrity", "createElement", "scriptElt", "originalSetAttribute", "originalGetAttribute", "originalHasAttribute", "originalAttributes", "__lookupGetter__", "capturedAttributes", "originalAttributeGetter", "originalAttributeSetter", "__lookupSetter__", "O", "definePropert", "value", "result", "Object_defineProperty", "attr", "prototype", "createElementOverride", "seenScripts", "observer", "mutations", "removedNodes", "addedNodes", "target", "node", "tagName", "c", "delta_default", "removeChild", "mutationObserverOptions", "origAttachShadow", "options", "shadowRoot", "origIFrameSrc", "getOwnPropertyDescriptor", "origCreateElement", "EVENT_REPLAY_CAPTURED_EVENTS", "documentWrite", "str", "parent", "currentScript", "df", "documentWriteLn", "windowAddEventListener", "windowEventPrefix", "wOrigAddEventListener", "windowRemoveEventListener", "wOrigRemoveEventListener", "onHandlerOptions", "handler", "EVENT_ELEMENT_LOADED", "f", "err", "wheight", "wwidth", "intersectsViewport", "extra", "rect", "viewport", "waitForImages", "reallyWait", "imagesToLoad", "imagesLoadedCount", "seen", "imageLoadedHandler", "EVENT_IMAGES_LOADED", "tag", "style", "bgUrl", "_src", "temp"]
}

Zerion Mini Shell 1.0