Some checks failed
WEVAL NonReg / nonreg (push) Has been cancelled
- pitch.html: Deploye Maroc/Algerie/Tunisie -> Afrique du Nord (fuite deployment Ethica) - ecosysteme-ia-maroc.html: 17000 HCPs TN/DZ/MA -> large couverture MENA (fuite Ethica HCPs) use-cases.html: garde - use case commercial public legitime Doctrine JAMAIS DANS LE PUBLIC · MENA generique · zero regression · GOLD backups
357 lines
19 KiB
HTML
357 lines
19 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="fr">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>WEVAL — 35 agents IA souverains · ROI 4 mois garanti</title>
|
||
<meta name="description" content="WEVAL déploie 35 agents IA souverains qui comblent les gaps de votre ERP (SAP/Oracle/Sage) — 17M€ savings/an — ROI 4 mois.">
|
||
<meta property="og:title" content="WEVAL — 35 agents IA souverains · ROI 4 mois">
|
||
<meta property="og:description" content="Comblez les gaps de votre ERP avec des agents IA prêts à déployer. Savings 17M€/an garantis.">
|
||
<style>
|
||
*{box-sizing:border-box;margin:0;padding:0}
|
||
:root{--bg:#05060a;--bg-1:#0b0d15;--bg-2:#11141f;--border:rgba(99,102,241,0.18);--text:#e2e8f0;--dim:#94a3b8;--accent:#14b8a6;--purple:#a855f7;--gold:#eab308;--cyan:#06b6d4}
|
||
html,body{height:100%}
|
||
body{font-family:'Inter',-apple-system,system-ui,sans-serif;background:radial-gradient(ellipse at top,#0f1420,#05060a 55%);color:var(--text);line-height:1.5;overflow-x:hidden}
|
||
.pitch{max-width:1280px;margin:0 auto;padding:32px 28px 80px}
|
||
|
||
/* Hero */
|
||
.hero{min-height:82vh;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:40px 0}
|
||
.logo{font-size:13px;font-weight:700;letter-spacing:4px;color:var(--accent);margin-bottom:40px}
|
||
.logo .pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:8px;box-shadow:0 0 0 0 rgba(20,184,166,.7);animation:pulse 2s infinite;vertical-align:middle}
|
||
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(20,184,166,.7)}70%{box-shadow:0 0 0 10px rgba(20,184,166,0)}}
|
||
h1.tagline{font-size:clamp(30px,5.5vw,62px);font-weight:900;line-height:1.1;letter-spacing:-1.5px;margin-bottom:24px}
|
||
h1.tagline .grad{background:linear-gradient(90deg,#22d3ee,#a855f7,#eab308);-webkit-background-clip:text;background-clip:text;color:transparent}
|
||
.sub{font-size:clamp(16px,2.1vw,22px);color:var(--dim);max-width:820px;margin:0 auto 44px;line-height:1.5}
|
||
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:60px}
|
||
.cta{padding:16px 32px;border-radius:10px;font-size:15px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex;align-items:center;gap:8px}
|
||
.cta.primary{background:linear-gradient(135deg,var(--accent),var(--cyan));color:white;box-shadow:0 4px 20px rgba(20,184,166,0.3)}
|
||
.cta.primary:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(20,184,166,0.5)}
|
||
.cta.secondary{background:var(--bg-2);color:var(--text);border:1px solid var(--border)}
|
||
.cta.secondary:hover{border-color:var(--accent);color:var(--accent)}
|
||
|
||
/* Proof strip */
|
||
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:920px;margin:0 auto}
|
||
@media(max-width:720px){.proof{grid-template-columns:1fr}}
|
||
.proof-cell{text-align:center;padding:22px 18px;background:var(--bg-1);border:1px solid var(--border);border-radius:14px;transition:all .2s}
|
||
.proof-cell:hover{border-color:var(--accent);transform:translateY(-2px)}
|
||
.proof-val{font-size:32px;font-weight:900;background:linear-gradient(135deg,var(--gold),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;font-family:'JetBrains Mono',monospace}
|
||
.proof-lbl{font-size:12px;color:var(--dim);margin-top:8px;text-transform:uppercase;letter-spacing:0.8px;font-weight:600}
|
||
.proof-sub{font-size:10.5px;color:#64748b;margin-top:4px}
|
||
|
||
/* Section */
|
||
.section{margin:96px 0}
|
||
.section-head{text-align:center;margin-bottom:44px}
|
||
.section-head .eyebrow{font-size:11px;letter-spacing:3px;color:var(--accent);text-transform:uppercase;font-weight:700;margin-bottom:10px}
|
||
.section-head h2{font-size:clamp(26px,3.5vw,38px);font-weight:800;letter-spacing:-0.8px}
|
||
.section-head p{color:var(--dim);font-size:15px;margin-top:10px;max-width:640px;margin-left:auto;margin-right:auto}
|
||
|
||
/* ROI frame */
|
||
.roi-frame-wrap{background:var(--bg-1);border:1px solid var(--border);border-radius:16px;padding:6px;box-shadow:0 10px 50px rgba(99,102,241,0.08)}
|
||
.roi-frame{width:100%;height:760px;border:none;border-radius:12px;display:block;background:var(--bg)}
|
||
@media(max-width:900px){.roi-frame{height:1100px}}
|
||
|
||
/* Differentiators */
|
||
.diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
|
||
@media(max-width:900px){.diff-grid{grid-template-columns:1fr}}
|
||
.diff{background:var(--bg-1);border:1px solid var(--border);border-radius:14px;padding:24px;position:relative;overflow:hidden;transition:all .2s}
|
||
.diff::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--accent),var(--purple))}
|
||
.diff:hover{border-color:var(--accent);transform:translateY(-3px)}
|
||
.diff-vs{font-size:10.5px;color:var(--dim);letter-spacing:1.2px;text-transform:uppercase;font-weight:700;margin-bottom:10px}
|
||
.diff-vs .comp{color:#fca5a5}
|
||
.diff-h{font-size:18px;font-weight:800;margin-bottom:12px;line-height:1.3}
|
||
.diff-p{font-size:13px;color:var(--dim);line-height:1.55;margin-bottom:14px}
|
||
.diff-stat{display:inline-block;padding:6px 12px;background:rgba(20,184,166,0.1);border:1px solid rgba(20,184,166,0.3);border-radius:20px;font-size:11.5px;color:#5eead4;font-weight:700;font-family:'JetBrains Mono',monospace}
|
||
|
||
/* Trust logos */
|
||
.trust{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;margin:40px 0;padding:30px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
|
||
.trust-item{color:var(--dim);font-size:13px;font-weight:600;letter-spacing:0.5px;opacity:0.75;transition:opacity .2s}
|
||
.trust-item:hover{opacity:1;color:var(--text)}
|
||
|
||
/* Final CTA */
|
||
.final-cta{text-align:center;padding:80px 30px;background:var(--bg-1);border:1px solid var(--border);border-radius:20px;position:relative;overflow:hidden}
|
||
.final-cta::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(20,184,166,0.08),transparent 40%);pointer-events:none}
|
||
.final-cta h2{font-size:clamp(26px,4vw,40px);font-weight:900;letter-spacing:-0.6px;margin-bottom:16px;position:relative}
|
||
.final-cta p{color:var(--dim);font-size:16px;margin-bottom:28px;position:relative}
|
||
|
||
/* Footer */
|
||
footer{text-align:center;margin-top:80px;padding-top:30px;border-top:1px solid var(--border);color:#64748b;font-size:11.5px;letter-spacing:0.5px}
|
||
footer a{color:var(--dim);text-decoration:none;margin:0 10px}
|
||
footer a:hover{color:var(--accent)}
|
||
|
||
/* KPI live badge */
|
||
.live-kpis{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:20px;font-size:11px;color:var(--dim);font-family:'JetBrains Mono',monospace}
|
||
.live-kpis span{display:inline-flex;align-items:center;gap:6px}
|
||
.live-kpis .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2s infinite}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<div class="pitch">
|
||
|
||
<!-- HERO -->
|
||
<section class="hero">
|
||
<div class="logo"><span class="pulse"></span>WEVAL CONSULTING</div>
|
||
<h1 class="tagline">
|
||
<span class="grad">35 agents IA souverains</span><br>
|
||
qui comblent les gaps<br>
|
||
de votre ERP
|
||
</h1>
|
||
<p class="sub">
|
||
<strong style="color:var(--text)">17M€ de savings garantis par an.</strong> ROI 4 mois.
|
||
Déploiement 4 semaines sur SAP, Oracle, Sage, NetSuite, D365, Odoo — ou n'importe quel système.
|
||
</p>
|
||
<div class="cta-row">
|
||
<a href="#calendly" class="cta primary">📅 Réserver 30 min de discovery →</a>
|
||
<a href="#simulator" class="cta secondary">🧮 Calculer mon ROI en 2 min</a>
|
||
</div>
|
||
<div class="live-kpis">
|
||
<span id="pitch-hcps-wrap"><span class="dot"></span><span id="pitch-hcps">157 861</span> HCPs live</span>
|
||
<span><span class="dot"></span>cascade souveraine multi-modèles LLM souverains</span>
|
||
<span><span class="dot"></span>NonReg 153/153</span>
|
||
<span><span class="dot"></span>Déployé Maroc + Afrique du Nord</span>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- PROOF -->
|
||
<section class="proof">
|
||
<div class="proof-cell">
|
||
<div class="proof-val">17.36M€</div>
|
||
<div class="proof-lbl">Savings max par client / an</div>
|
||
<div class="proof-sub">35 pain points ERPs adressés</div>
|
||
</div>
|
||
<div class="proof-cell">
|
||
<div class="proof-val">4 sem</div>
|
||
<div class="proof-lbl">Time to first agent deployed</div>
|
||
<div class="proof-sub">vs 12-18 mois consulting classique</div>
|
||
</div>
|
||
<div class="proof-cell">
|
||
<div class="proof-val">20x</div>
|
||
<div class="proof-lbl">moins cher vs Palantir/Databricks</div>
|
||
<div class="proof-sub">Souveraineté EU/Maghreb garantie</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- TRUST -->
|
||
<div class="trust">
|
||
<div class="trust-item">ETHICA GROUP</div>
|
||
<div class="trust-item">VISTEX</div>
|
||
<div class="trust-item">HUAWEI CLOUD</div>
|
||
<div class="trust-item">ARROW / SCALEWAY</div>
|
||
</div>
|
||
|
||
<!-- ROI SIMULATOR -->
|
||
<section class="section" id="simulator">
|
||
<div class="section-head">
|
||
<div class="eyebrow">ROI Simulator live</div>
|
||
<h2>Calculez votre ROI en 2 minutes</h2>
|
||
<p>Choisissez votre taille, maturité IA, vertical. Sélectionnez les agents pertinents. Téléchargez votre business case personnalisé.</p>
|
||
</div>
|
||
<div class="roi-frame-wrap">
|
||
<iframe class="roi-frame" src="/agent-roi-simulator.html" loading="lazy" title="WEVAL ROI Simulator"></iframe>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- DIFFERENTIATORS -->
|
||
<section class="section">
|
||
<div class="section-head">
|
||
<div class="eyebrow">Pourquoi WEVAL</div>
|
||
<h2>Ce que les autres n'ont pas</h2>
|
||
<p>Comparé aux 3 leaders Enterprise AI. Positionnement clair, non-négociable.</p>
|
||
</div>
|
||
<div class="diff-grid">
|
||
<div class="diff">
|
||
<div class="diff-vs">vs <span class="comp">Palantir Foundry</span></div>
|
||
<div class="diff-h">Prix /20<br>Déploiement /10</div>
|
||
<div class="diff-p">Palantir = 500k€-2M€/an + 6-12 mois d'ontologie avant la moindre valeur. WEVAL = 25k€ POC, premier agent en 4 semaines.</div>
|
||
<div class="diff-stat">Time-to-value × 10</div>
|
||
</div>
|
||
<div class="diff">
|
||
<div class="diff-vs">vs <span class="comp">Databricks Mosaic</span></div>
|
||
<div class="diff-h">Zero data science required</div>
|
||
<div class="diff-p">Databricks = plateforme à construire. WEVAL = 35 agents métiers prêts à déployer. Vos experts métier pilotent, pas vos data scientists.</div>
|
||
<div class="diff-stat">No code · No data team</div>
|
||
</div>
|
||
<div class="diff">
|
||
<div class="diff-vs">vs <span class="comp">Accenture AI</span></div>
|
||
<div class="diff-h">Produit, pas consulting</div>
|
||
<div class="diff-p">Accenture = 1M€+ missions, pas de produit propre. WEVAL = plateforme souveraine avec ROI mesuré contractuel, pas des hommes-jours.</div>
|
||
<div class="diff-stat">Souveraineté EU/Maghreb</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- FINAL CTA -->
|
||
<section class="final-cta" id="calendly">
|
||
<h2>Prêt à voir les 35 agents<br>sur votre ERP ?</h2>
|
||
<p>30 minutes. Gratuit. ROI chiffré avant la fin du call.</p>
|
||
<a href="https://calendly.com/yacine-weval/discovery" class="cta primary">📅 Réserver ma discovery →</a>
|
||
<div style="margin-top:18px;font-size:12px;color:#64748b">
|
||
ou écrivez à <a href="mailto:yacine@weval.ma" style="color:var(--accent)">yacine@weval.ma</a> · LinkedIn <a href="https://linkedin.com/in/yacinemahboub" style="color:var(--accent)">Yacine Mahboub</a>
|
||
</div>
|
||
</section>
|
||
|
||
<footer>
|
||
<div>WEVAL Consulting · Casablanca, Maroc · 2026</div>
|
||
<div style="margin-top:12px">
|
||
<a href="/weval-technology-platform.html">Platform</a>·
|
||
<a href="/pain-points-atlas.html">Atlas</a>·
|
||
<a href="/erp-gap-fill-offer.html">Offre</a>·
|
||
<a href="/agent-roi-simulator.html">Simulator</a>·
|
||
<a href="/intelligence-growth.html">Intelligence</a>
|
||
</div>
|
||
</footer>
|
||
</div>
|
||
|
||
<script>
|
||
// Track view (stub for analytics)
|
||
(function(){
|
||
const payload = {page:'pitch',ts:Date.now(),ref:document.referrer};
|
||
try { navigator.sendBeacon && navigator.sendBeacon('/api/pitch-view-log.php', JSON.stringify(payload)); } catch(e){}
|
||
})();
|
||
// Smooth scroll
|
||
document.querySelectorAll('a[href^="#"]').forEach(a=>a.addEventListener('click',e=>{
|
||
const t = document.querySelector(a.getAttribute('href'));
|
||
if(t){e.preventDefault();t.scrollIntoView({behavior:'smooth'})}
|
||
}));
|
||
</script>
|
||
|
||
<!-- V8.6 PITCH HCPs CANONICAL LOADER (doctrine 14 additive) -->
|
||
<script>
|
||
(function(){
|
||
if (window.__pitch_hcps_canonical) return; window.__pitch_hcps_canonical = true;
|
||
async function updateHcps(){
|
||
try {
|
||
const r = await fetch('/api/wevia-kpi-feeders.php', {cache:'no-store'});
|
||
const d = await r.json();
|
||
const total = (d && d.ethica_hcps_total) || (d && d.hcps_total) || (d && d.ethica && d.ethica.total) || 156714;
|
||
const el = document.getElementById('pitch-hcps');
|
||
if (el && total) el.textContent = total.toLocaleString('fr-FR');
|
||
} catch(e) {
|
||
try {
|
||
const r = await fetch('/api/ethica-stats.php', {cache:'no-store'});
|
||
const d = await r.json();
|
||
const el = document.getElementById('pitch-hcps');
|
||
if (el && d.total) el.textContent = d.total.toLocaleString('fr-FR');
|
||
} catch(e2) {}
|
||
}
|
||
}
|
||
updateHcps();
|
||
setInterval(updateHcps, 30000);
|
||
})();
|
||
</script>
|
||
<!-- /V8.6 -->
|
||
|
||
|
||
<!-- === OPUS UNIVERSAL DRILL-DOWN v1 19avr — append-only, doctrine #14 === -->
|
||
<script>
|
||
(function(){
|
||
if (window.__opusUniversalDrill) return; window.__opusUniversalDrill = true;
|
||
var d = document;
|
||
var m = d.createElement('div');
|
||
m.id = 'opus-udrill';
|
||
m.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:99995;padding:20px;cursor:pointer';
|
||
var inner = d.createElement('div');
|
||
inner.id = 'opus-udrill-in';
|
||
inner.style.cssText = 'max-width:900px;width:100%;max-height:90vh;overflow:auto;background:#0b0d15;border:1px solid rgba(99,102,241,0.35);border-radius:14px;padding:28px;cursor:default;box-shadow:0 20px 60px rgba(0,0,0,0.6);color:#e2e8f0;font:14px/1.55 Inter,system-ui,sans-serif';
|
||
inner.addEventListener('click', function(e){ e.stopPropagation(); });
|
||
m.appendChild(inner);
|
||
m.addEventListener('click', function(){ m.style.display='none'; });
|
||
d.addEventListener('keydown', function(e){ if(e.key==='Escape') m.style.display='none'; });
|
||
(d.body || d.documentElement).appendChild(m);
|
||
function openCard(card) {
|
||
var html = '<div style="display:flex;justify-content:flex-end;margin-bottom:14px"><button id="opus-udrill-close" style="padding:6px 14px;background:#171b2a;border:1px solid rgba(99,102,241,0.25);color:#e2e8f0;border-radius:8px;cursor:pointer;font-size:12px">✕ Fermer (Esc)</button></div>';
|
||
html += '<div style="transform-origin:top left;font-size:1.05em">' + card.outerHTML + '</div>';
|
||
inner.innerHTML = html;
|
||
d.getElementById('opus-udrill-close').onclick = function(){ m.style.display='none'; };
|
||
m.style.display = 'flex';
|
||
}
|
||
function wire(root) {
|
||
var sels = '.card,[class*="card"],.kpi,[class*="kpi"],.stat,[class*="stat"],.tile,[class*="tile"],.metric,[class*="metric"],.widget,[class*="widget"]';
|
||
var cards = root.querySelectorAll(sels);
|
||
for (var i = 0; i < cards.length; i++) {
|
||
var c = cards[i];
|
||
if (c.__opusWired) continue;
|
||
if (c.closest('button, a, input, select, textarea, #opus-udrill')) continue;
|
||
var r = c.getBoundingClientRect();
|
||
if (r.width < 60 || r.height < 40) continue;
|
||
c.__opusWired = true;
|
||
c.style.cursor = 'pointer';
|
||
c.setAttribute('role','button');
|
||
c.setAttribute('tabindex','0');
|
||
c.addEventListener('click', function(ev){
|
||
if (ev.target.closest('[data-pp-id]') && window.__opusDrillInit) return;
|
||
if (ev.target.closest('a,button,input,select')) return;
|
||
ev.preventDefault(); ev.stopPropagation();
|
||
openCard(this);
|
||
});
|
||
c.addEventListener('keydown', function(ev){ if(ev.key==='Enter'||ev.key===' '){ev.preventDefault();openCard(this);} });
|
||
}
|
||
}
|
||
var initRun = function(){ wire(d.body || d.documentElement); };
|
||
if (d.readyState === 'loading') d.addEventListener('DOMContentLoaded', initRun);
|
||
else initRun();
|
||
var mo = new MutationObserver(function(muts){
|
||
var newCard = false;
|
||
for (var i=0;i<muts.length;i++) if (muts[i].addedNodes.length) { newCard = true; break; }
|
||
if (newCard) initRun();
|
||
});
|
||
mo.observe(d.body || d.documentElement, {childList:true, subtree:true});
|
||
})();
|
||
</script>
|
||
<!-- === OPUS UNIVERSAL DRILL-DOWN END === -->
|
||
|
||
|
||
<!-- === OPUS HONEST NR/L99 OVERLAY v1 19avr - append-only doctrine #14 === -->
|
||
<script>
|
||
(function(){
|
||
if (window.__opusHonestOverlay) return; window.__opusHonestOverlay = true;
|
||
async function updateHonestValues(){
|
||
try {
|
||
const r = await fetch('/api/l99-honest.php', {cache:'no-store'});
|
||
const d = await r.json();
|
||
if (!d.ok) return;
|
||
const realNR = `${d.combined.pass}/${d.combined.total}`;
|
||
const realSigma = d.sigma;
|
||
// Find elements showing the myth values
|
||
const mythRegex = /(153\/153|304\/304|NR status 153\/153|L99 status 304\/304|NR 153\/153|L99 304\/304)/g;
|
||
// Walk text nodes
|
||
const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null);
|
||
const toReplace = [];
|
||
let node;
|
||
while (node = walker.nextNode()) {
|
||
if (node.nodeValue && mythRegex.test(node.nodeValue)) toReplace.push(node);
|
||
}
|
||
toReplace.forEach(textNode => {
|
||
const parent = textNode.parentNode;
|
||
if (!parent || parent.hasAttribute('data-opus-honest-applied')) return;
|
||
const newText = textNode.nodeValue.replace(/153\/153/g, realNR).replace(/304\/304/g, realNR);
|
||
textNode.nodeValue = newText;
|
||
parent.setAttribute('data-opus-honest-applied', '1');
|
||
});
|
||
// Add a small badge bottom-right showing honest live status
|
||
if (!document.getElementById('opus-honest-badge')) {
|
||
const b = document.createElement('div');
|
||
b.id = 'opus-honest-badge';
|
||
b.style.cssText = 'position:fixed;bottom:12px;right:12px;background:linear-gradient(90deg,#14b8a6,#a855f7);color:#05060a;padding:6px 12px;font:10px/1.3 Inter,system-ui,sans-serif;font-weight:700;border-radius:8px;z-index:99993;box-shadow:0 4px 12px rgba(0,0,0,0.3);cursor:pointer;max-width:280px';
|
||
b.title = 'Cliquer pour détails';
|
||
b.innerHTML = `✓ NR ${realNR} · ${realSigma} live`;
|
||
b.onclick = () => {
|
||
alert(`HONEST NonReg (doctrine #4):\n\nmaster: ${d.master.pass}/${d.master.total}\nopus: ${d.opus.pass}/${d.opus.total}\ncombined: ${realNR}\nsigma: ${realSigma}\n\n${d.myth_153}\n${d.myth_304}`);
|
||
};
|
||
document.body.appendChild(b);
|
||
}
|
||
} catch(e){console.error('L99-honest fetch error:', e);}
|
||
}
|
||
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateHonestValues);
|
||
else updateHonestValues();
|
||
setInterval(updateHonestValues, 90000);
|
||
})();
|
||
</script>
|
||
<!-- === OPUS HONEST END === -->
|
||
|
||
|
||
<script src="/api/a11y-auto-enhancer.js" defer></script>
|
||
<script src="/opus-antioverlap-doctrine.js?v=1776776094" defer></script>
|
||
</body>
|
||
</html>
|