Beyond the page

AI Governance & Compliance Readiness

Who this questionnaire is for

Risk, legal, compliance, audit, policy, and governance teams — as well as regulators and internal oversight functions.

What it assesses
Whether governance controls are enforceable in practice, including ownership definitions, evidence trails, logging, incident response, policy enforcement, and auditability.

How it helps
This questionnaire distinguishes between documented governance and operational governance. It shows whether controls exist only on paper or are embedded into systems and workflows. Outputs support internal audits, regulatory conversations, and remediation planning.

Best used when

  • Preparing for audits or regulatory review
  • Formalising AI governance programs
  • Evaluating whether policies are actually enforced
/* Make the entire block clickable even under aggressive themes */ #oyez-ai-governance-readiness{ position:relative !important; z-index:2147483647 !important; pointer-events:auto !important; isolation:isolate; } #oyez-ai-governance-readiness, #oyez-ai-governance-readiness *{ pointer-events:auto !important; } #oyez-ai-governance-readiness{font:inherit;color:inherit;max-width:980px;margin:0 auto} #oyez-ai-governance-readiness *{box-sizing:border-box} #oyez-ai-governance-readiness .q-wrap{ border:1px solid rgba(0,0,0,.12); border-radius:18px; padding:18px 18px 12px; background:rgba(255,255,255,.82); backdrop-filter:saturate(1.15) blur(10px); box-shadow:0 18px 55px rgba(0,0,0,.10); position:relative; } #oyez-ai-governance-readiness h1{font-size:28px;line-height:1.15;margin:0 0 6px;letter-spacing:-.02em} #oyez-ai-governance-readiness .sub{opacity:.82;margin:0 0 14px;font-size:14px;line-height:1.45} #oyez-ai-governance-readiness .bar{height:10px;border-radius:999px;border:1px solid rgba(0,0,0,.14);overflow:hidden;background:rgba(0,0,0,.04);margin:10px 0 14px} #oyez-ai-governance-readiness .bar > div{height:100%;width:0%;background:linear-gradient(90deg, rgba(0,0,0,.88), rgba(0,0,0,.62));transition:width .22s ease} #oyez-ai-governance-readiness .pillrow{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px} #oyez-ai-governance-readiness .pill{ display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:999px; border:1px solid rgba(0,0,0,.14);background:rgba(255,255,255,.94); font-size:12px;white-space:nowrap;box-shadow:0 10px 24px rgba(0,0,0,.07) } #oyez-ai-governance-readiness .pill b{font-weight:750} #oyez-ai-governance-readiness .note{font-size:13px;opacity:.85;line-height:1.5;margin:0 0 10px} #oyez-ai-governance-readiness .meta{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;margin:14px 0 10px} #oyez-ai-governance-readiness label{display:block;font-weight:650;font-size:13px;margin:0 0 6px} #oyez-ai-governance-readiness input[type=”text”], #oyez-ai-governance-readiness select, #oyez-ai-governance-readiness textarea{ width:100%;padding:10px 10px;border-radius:12px;border:1px solid rgba(0,0,0,.16); background:rgba(255,255,255,.96);font:inherit;font-size:14px;line-height:1.35;outline:none; box-shadow:0 10px 22px rgba(0,0,0,.06) } #oyez-ai-governance-readiness textarea{min-height:84px;resize:vertical} #oyez-ai-governance-readiness .span-3{grid-column:span 3} #oyez-ai-governance-readiness .span-4{grid-column:span 4} #oyez-ai-governance-readiness .span-6{grid-column:span 6} #oyez-ai-governance-readiness .span-8{grid-column:span 8} /* FIX: was missing */ #oyez-ai-governance-readiness .span-12{grid-column:span 12} @media (max-width:860px){ #oyez-ai-governance-readiness .meta{grid-template-columns:repeat(6,1fr)} #oyez-ai-governance-readiness .span-3, #oyez-ai-governance-readiness .span-4, #oyez-ai-governance-readiness .span-6, #oyez-ai-governance-readiness .span-8{grid-column:span 6} } /* Big score row (restored) */ #oyez-ai-governance-readiness .scoreRow{ display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;margin:12px 0 6px } #oyez-ai-governance-readiness .scoreBox{ flex:0 0 auto;min-width:220px; border:1px solid rgba(0,0,0,.12);border-radius:16px;background:#fff; padding:12px;box-shadow:0 16px 40px rgba(0,0,0,.09) } #oyez-ai-governance-readiness .scoreLabel{font-size:13px;opacity:.78} #oyez-ai-governance-readiness .scoreBig{font-size:42px;font-weight:900;line-height:1;margin-top:6px} #oyez-ai-governance-readiness .scoreMax{font-size:13px;opacity:.78;margin-top:4px} #oyez-ai-governance-readiness .tierBox{ flex:1;min-width:260px; border:1px solid rgba(0,0,0,.12);border-radius:16px;background:#fff; padding:12px;box-shadow:0 16px 40px rgba(0,0,0,.09) } #oyez-ai-governance-readiness .tierLabel{font-size:13px;opacity:.78} #oyez-ai-governance-readiness .tierVal{font-size:18px;font-weight:900;margin-top:6px} #oyez-ai-governance-readiness .tierNote{font-size:13px;opacity:.82;line-height:1.45;margin-top:6px} #oyez-ai-governance-readiness .sec{border-top:1px solid rgba(0,0,0,.12);padding:14px 0 6px} #oyez-ai-governance-readiness .sec h2{font-size:18px;margin:0 0 8px} #oyez-ai-governance-readiness .q{ border:1px solid rgba(0,0,0,.12); border-radius:16px; padding:12px; background:rgba(255,255,255,.97); margin:10px 0; box-shadow:0 14px 34px rgba(0,0,0,.07) } #oyez-ai-governance-readiness .qtitle{display:flex;gap:10px;align-items:flex-start;justify-content:space-between} #oyez-ai-governance-readiness .qtitle h3{font-size:15px;margin:0;line-height:1.35} #oyez-ai-governance-readiness .tag{ font-size:11px;opacity:.72;border:1px solid rgba(0,0,0,.12); padding:4px 8px;border-radius:999px;white-space:nowrap;background:#fff } #oyez-ai-governance-readiness .help{font-size:13px;opacity:.78;margin:6px 0 10px;line-height:1.45} /* Options */ #oyez-ai-governance-readiness .opts{display:grid;grid-template-columns:repeat(12,1fr);gap:10px} #oyez-ai-governance-readiness .opt{ grid-column:span 6; border:1px solid rgba(0,0,0,.12); border-radius:16px; padding:12px; background:#fff; box-shadow:0 14px 34px rgba(0,0,0,.06); transition:transform .06s ease, box-shadow .12s ease, border-color .12s ease; cursor:pointer; display:flex;gap:10px;align-items:flex-start; } #oyez-ai-governance-readiness .opt:hover{transform:translateY(-1px);box-shadow:0 18px 42px rgba(0,0,0,.10)} #oyez-ai-governance-readiness .opt input[type=”radio”]{margin-top:3px;transform:scale(1.05);flex:0 0 auto;} #oyez-ai-governance-readiness .opt .txt strong{display:block;font-size:13px} #oyez-ai-governance-readiness .opt .txt span{display:block;font-size:12px;opacity:.78;margin-top:4px;line-height:1.35} #oyez-ai-governance-readiness .opt.selected{border-color:rgba(0,0,0,.35);box-shadow:0 22px 55px rgba(0,0,0,.13)} @media (max-width:860px){#oyez-ai-governance-readiness .opt{grid-column:span 12}} #oyez-ai-governance-readiness .actions{ display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 6px; position:relative;z-index:2147483647; } #oyez-ai-governance-readiness button{ border-radius:12px;border:1px solid rgba(0,0,0,.18); padding:10px 12px;background:#fff;cursor:pointer; font:inherit;font-weight:850;font-size:14px; box-shadow:0 14px 34px rgba(0,0,0,.09); } #oyez-ai-governance-readiness button.primary{background:rgba(0,0,0,.9);color:#fff;border-color:rgba(0,0,0,.9)} #oyez-ai-governance-readiness button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none} #oyez-ai-governance-readiness .results{border-top:1px solid rgba(0,0,0,.12);margin-top:10px;padding-top:14px} #oyez-ai-governance-readiness .rgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:10px} #oyez-ai-governance-readiness .card{grid-column:span 6;border:1px solid rgba(0,0,0,.12);border-radius:16px;background:#fff;padding:12px;box-shadow:0 16px 40px rgba(0,0,0,.09)} #oyez-ai-governance-readiness .card.full{grid-column:span 12} #oyez-ai-governance-readiness .card h4{margin:0 0 6px;font-size:14px} #oyez-ai-governance-readiness .big{font-size:22px;font-weight:900;line-height:1.2;margin:0} #oyez-ai-governance-readiness .muted{font-size:13px;opacity:.78;line-height:1.45;margin:6px 0 0} #oyez-ai-governance-readiness .list{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.45} #oyez-ai-governance-readiness .footer{margin:10px 0 6px;font-size:12px;opacity:.7;line-height:1.45}

AI Governance & Compliance Readiness

Scores automatically as you click. The top fields are optional — only the questions affect scoring.

Status: Not scored Coverage: 0% Score: — Decision: —

Optional fields: these improve your governance record, but are not required to score.

Your role (optional) — Select role — Risk / Governance / Compliance Legal Internal Audit Privacy / Security Executive / Strategy Product / Operations Engineering Other
Company or project identifier (optional)
Your score
0
out of 45
Readiness
—
Answer the questions to see your readiness level.

Section A — Governance Model & Accountability

1) Are AI systems covered by an explicit governance model (owners, approvals, risk tiers, and escalation paths)?

Accountability
A real governance model names owners, defines approval gates, and makes escalation paths usable in practice.
NoNo explicit governance model for AI systems.
Informal / partialSome governance exists, but roles/approvals/escalation are incomplete.
DocumentedGovernance model is written and assigned to owners.
Documented + operating cadenceGovernance runs on a cadence and is used to make decisions.

2) Do you maintain an inventory of AI use cases (purpose, owners, users, data sources, and risk classification)?

Inventory
Inventory is the foundation for evidence, controls, and audit scope.
No inventoryNo consistent list of AI use cases exists.
Partial listSome use cases are tracked, but scope/owners/risk tiers are missing.
Complete inventoryUse cases are listed with owners, users, sources, and risk classification.
Inventory + change controlsInventory is updated via change controls and reflects reality.

3) Are policies translated into enforceable controls (not only documents) for high-stakes or sensitive contexts?

Enforcement
Controls should be measurable and testable — not just statements of principle.
NoPolicies are mostly written guidance without enforcement.
Some controls existControls exist, but are limited or inconsistent.
Most controls existControls are generally implemented across major systems.
Controls enforced + testedControls are enforced and validated through evaluation/testing.

4) Is human accountability defined for decisions influenced by AI (who signs off, who reviews, who can override)?

Human-in-loop
Define sign-off, review responsibilities, and override authority.
NoNo clear accountability for AI-influenced decisions.
InformalPeople intervene, but responsibilities are not formalised.
DocumentedAccountability is defined and communicated.
Documented + auditedAccountability is verified and reviewed (evidence exists).

5) Are third-party vendors evaluated using evidence requirements (logs, exportability, failure-path demonstrations) and contractual expectations?

Vendors
Vendor due diligence should demand evidence, not just marketing claims.
NoNo meaningful evidence requirements for vendors.
Basic due diligenceSome review occurs, but evidence requirements are weak.
Defined criteriaClear criteria exist (logs, exportability, failure-path evidence).
Criteria + sign-off + monitoringCriteria are enforced with sign-off and ongoing review.

Section B — Evidence, Transparency & Audit Trail

6) Can you produce an evidence trail for outputs (sources used, checks run, and why the system answered/refused)?

Evidence
Evidence is your defence in audits and incidents.
NoNo usable evidence trail for outputs.
Partial / inconsistentEvidence exists sometimes, but cannot be relied on.
Mostly consistentEvidence is usually available and reviewable.
Fully consistent + exportableEvidence is consistent and exportable for audit.

7) Are outputs labelled appropriately (uncertainty, limitations, scope, and “not advice” language where needed)?

Disclosure
Disclosure reduces harm and improves defensibility.
NoNo consistent labelling of scope/limitations.
SometimesLabelling exists, but is inconsistent by team/use case.
UsuallyLabelling is common and mostly correct.
Enforced via templates/policiesLabelling is enforced through templates and governance rules.

8) Are logs retained with a defined retention policy and access controls (privacy/security aligned)?

Retention
Retention and access governance are as important as having logs at all.
NoNo defined retention policy or access controls.
Partial retentionSome retention exists, but policies or access controls are incomplete.
Defined retention + access rulesRetention and access rules are defined and followed most of the time.
Defined + enforced + reviewedRetention/access is enforced and periodically reviewed.

9) Can you reproduce an output later (same versioned prompt/model/tools, with recorded context)?

Reproducibility
Versioning + recorded context allow incident reconstruction and audit defence.
NoOutputs cannot be reliably reproduced later.
SometimesReproduction is possible for some systems, not consistently.
UsuallyMost outputs can be reproduced with reasonable effort.
AlwaysReproduction is designed-in and works reliably.

10) Are high-stakes use cases subject to stronger requirements (human review, refusal thresholds, stricter evidence, additional tests)?

High-stakes
High-stakes should not rely on generic “best effort” behaviour.
NoNo stronger requirements for high-stakes contexts.
InformalExtra caution exists, but it’s not formalised or enforced.
DocumentedRequirements are documented by risk tier.
Enforced + auditedHigh-stakes requirements are enforced and audited.

Section C — Change Management, Incidents & Continuous Assurance

11) Do you have change controls for prompts, models, tools, and data access (approvals + rollback)?

Change control
Governance is weakest at change boundaries — enforce approvals and rollback paths.
NoNo consistent change controls exist.
Ad-hocChange controls exist, but are inconsistently applied.
ConsistentChange approvals and rollback paths are generally used.
Consistent + auditedChange controls are enforced and audited.

12) Are structured evaluations run before release and at regular intervals (not only demos)?

Evaluation
You can’t govern what you don’t measure — require structured tests beyond demos.
NoNo structured evaluations are required.
OccasionallyEvaluations happen sometimes, but are not standard.
Before major releasesEvaluations are run before major releases.
Continuous + staged metricsEvaluations run continuously with stage-separated metrics.

13) Do you maintain an incident response process for AI failures (triage, comms, remediation, learning loop)?

IR
Incident response should be usable, practiced, and tied to measurable remediation.
NoNo incident response process for AI failures.
InformalPeople respond, but process and ownership are unclear.
DocumentedIR process is documented for AI failures.
Practiced + measurable outcomesIR is practiced; outcomes and remediation are measured.

14) Do you monitor drift and control effectiveness (verification pass rates, refusal shifts, new failure classes)?

Monitoring
If drift is not measured, governance silently decays.
NoNo drift/control monitoring in practice.
SometimesSome monitoring exists, but is inconsistent.
Regular reviewMonitoring exists with a review cadence.
Monitoring + alerting + ownershipMonitoring triggers alerts with named owners.

15) Are periodic audits performed (controls reviewed, gaps tracked, remediation verified)?

Audit
Audits keep governance honest and prevent “paper compliance”.
NoNo audits of AI controls are performed.
Informal / ad-hocSome reviews exist, but they’re not consistent or evidenced.
Scheduled auditsAudits occur on a schedule with defined scope.
Scheduled + evidenced remediationAudits produce tracked remediation with verification.

Tip: The most common governance failure is policy without enforcement. If your score is high on documentation but low on audit trails, focus on making controls measurable and exportable.

(function(){ // Robust WP init: retry until the block exists (some WP setups move scripts) function init(){ const qRoot = document.getElementById(‘oyez-ai-governance-readiness’); if(!qRoot) return false; if(qRoot.__oyezInit) return true; qRoot.__oyezInit = true; const MAX = 45; const TOTAL_Q = 15; const bar = qRoot.querySelector(‘#oyezGovBar’); const statusEl = qRoot.querySelector(‘#oyezGovStatus’); const coverageEl = qRoot.querySelector(‘#oyezGovCoverage’); const scorePillEl = qRoot.querySelector(‘#oyezGovScorePill’); const decisionEl = qRoot.querySelector(‘#oyezGovDecision’); const scoreBigEl = qRoot.querySelector(‘#oyezGovScoreBig’); const readinessTopEl = qRoot.querySelector(‘#oyezGovReadinessTop’); const readinessTopNoteEl = qRoot.querySelector(‘#oyezGovReadinessTopNote’); const calcBtn = qRoot.querySelector(‘#oyezGovCalc’); const copyBtn = qRoot.querySelector(‘#oyezGovCopy’); const emailBtn = qRoot.querySelector(‘#oyezGovEmail’); const resetBtn = qRoot.querySelector(‘#oyezGovReset’); const results = qRoot.querySelector(‘#oyezGovResults’); const readinessEl = qRoot.querySelector(‘#oyezGovReadiness’); const readinessNoteEl = qRoot.querySelector(‘#oyezGovReadinessNote’); const recEl = qRoot.querySelector(‘#oyezGovRec’); const recDescEl = qRoot.querySelector(‘#oyezGovRecDesc’); const risksEl = qRoot.querySelector(‘#oyezGovRisks’); const nextEl = qRoot.querySelector(‘#oyezGovNext’); const meta = { role: qRoot.querySelector(‘#oyezGovRole’), org: qRoot.querySelector(‘#oyezGovOrg’), }; const questions = Array.from({length: TOTAL_Q}, (_,i)=>`q${i+1}`); function updateSelected(){ qRoot.querySelectorAll(‘.opt’).forEach(opt=>{ const r = opt.querySelector(‘input[type=”radio”]’); opt.classList.toggle(‘selected’, !!(r && r.checked)); }); } function answeredCount(){ let n=0; for(const q of questions){ if(qRoot.querySelector(`input[name=”${q}”]:checked`)) n++; } return n; } function getScore(){ let total=0; for(const q of questions){ const picked = qRoot.querySelector(`input[name=”${q}”]:checked`); if(picked) total += parseInt(picked.value,10); } return total; } function pickValue(qNum){ const picked = qRoot.querySelector(`input[name=”q${qNum}”]:checked`); return picked ? parseInt(picked.value,10) : null; } function readinessFromScore(s){ if (s<=15) return 'Policy-only'; if (s<=30) return 'Control-building'; return 'Audit-ready'; } function statusFromCoverage(ans){ if (ans===0) return 'Not scored'; if (ans<TOTAL_Q) return 'In progress'; return 'Completed'; } function packFor(r){ const packs = { 'Policy-only': { note: 'You may have principles and documents, but controls are likely not enforceable or measurable yet.', risks: [ 'Policy without enforcement: systems behave in ways governance cannot verify.', 'No reproducibility or audit trail: you cannot defend outputs after the fact.', 'High-stakes handling may be undefined, inconsistent, or delegated to users.' ], next: [ 'Create a use-case inventory with risk tiers and owners for each system.', 'Define enforceable controls for high-stakes contexts (refusal thresholds, human review, evidence requirements).', 'Require exportable logs and evidence trails per output.' ] }, 'Control-building': { note: 'You are translating policy into controls. Your risk is inconsistent application and drift over time.', risks: [ 'Controls exist, but are not consistently enforced across teams/vendors.', 'Logging and retention may be partial or inaccessible for audit.', 'Incident handling may be documented but untested.' ], next: [ 'Standardize controls and evidence expectations across all AI systems.', 'Set evaluation requirements before releases and at regular intervals.', 'Practice incident response and verify remediation through follow-up testing.' ] }, 'Audit-ready': { note: 'You have enforceable controls and evidence trails. Your risk is governance becoming stale while the system evolves.', risks: [ 'Control effectiveness can degrade if drift monitoring and periodic audits are not maintained.', 'Rapid iteration can outpace approvals and evaluation discipline.', 'Audit readiness can regress without retention/access governance.' ], next: [ 'Institutionalise periodic audits: control review, gap tracking, remediation evidence.', 'Require continuous monitoring of drift and control effectiveness with named owners.', 'Maintain reproducibility: versioning, retention policies, and exportable evidence.' ] } }; return packs[r]; } function decisionFrom(readiness, answered){ if (answered===0) return '—'; if (answered pickValue(q) === 0); if (criticalFail) return ‘Hold (critical gap)’; if (readiness===’Policy-only’) return ‘Hold (controls required)’; if (readiness===’Control-building’) return ‘Proceed with mitigations’; return ‘Proceed (audit-ready)’; } function compute(){ updateSelected(); const answered = answeredCount(); const coverage = Math.round((answered/TOTAL_Q)*100); const score = getScore(); const readiness = readinessFromScore(score); const status = statusFromCoverage(answered); const decision = decisionFrom(readiness, answered); const pack = packFor(readiness); // Bars: coverage (like drift) bar.style.width = coverage + ‘%’; // Pills statusEl.textContent = status; coverageEl.textContent = coverage + ‘%’; scorePillEl.textContent = answered ? `${score}/45` : ‘—’; decisionEl.textContent = answered ? decision : ‘—’; // Big score scoreBigEl.textContent = score; readinessTopEl.textContent = answered ? readiness : ‘—’; readinessTopNoteEl.textContent = answered ? pack.note : ‘Answer the questions to see your readiness level.’; // Results panel let recLabel=’—’, recText=’—’; if(answered>0 && answered{ const li=document.createElement(‘li’); li.textContent=t; risksEl.appendChild(li); }); pack.next.forEach(t=>{ const li=document.createElement(‘li’); li.textContent=t; nextEl.appendChild(li); }); } results.style.display = answered ? ‘block’ : ‘none’; copyBtn.disabled = (answered===0); emailBtn.disabled = (answered===0); return {answered,coverage,score,readiness,status,decision,pack,recLabel,recText}; } function buildSummary(state){ const lines=[]; lines.push(‘OYEZ — AI Governance & Compliance Readiness’); lines.push(‘—————————————–‘); lines.push(`Role: ${meta.role.value || ‘—’}`); lines.push(`Company / Project: ${meta.org.value || ‘—’}`); lines.push(”); lines.push(`Status: ${state.status}`); lines.push(`Coverage: ${state.coverage}% (${state.answered}/${TOTAL_Q})`); lines.push(`Score: ${state.score}/45`); lines.push(`Readiness: ${state.readiness}`); lines.push(`Decision: ${state.decision}`); lines.push(”); lines.push(‘Top risks:’); state.pack.risks.forEach((r,i)=>lines.push(`${i+1}. ${r}`)); lines.push(”); lines.push(‘Recommended next steps:’); state.pack.next.forEach((n,i)=>lines.push(`${i+1}. ${n}`)); return lines.join(‘\n’); } // Auto-score on every answer (robust) qRoot.addEventListener(‘change’, function(e){ if(e.target && e.target.matches(‘input[type=”radio”]’)) compute(); }); calcBtn.addEventListener(‘click’, function(e){ e.preventDefault(); compute(); }); copyBtn.addEventListener(‘click’, async function(e){ e.preventDefault(); const state = compute(); if(!state.answered) return; const text = buildSummary(state); try{ await navigator.clipboard.writeText(text); copyBtn.textContent=’Copied’; setTimeout(()=>copyBtn.textContent=’Copy Summary’, 900); } catch(err){ const ta=document.createElement(‘textarea’); ta.value=text; document.body.appendChild(ta); ta.select(); document.execCommand(‘copy’); document.body.removeChild(ta); copyBtn.textContent=’Copied’; setTimeout(()=>copyBtn.textContent=’Copy Summary’, 900); } }); emailBtn.addEventListener(‘click’, function(e){ e.preventDefault(); const state = compute(); if(!state.answered) return; const subject = encodeURIComponent(`Oyez — AI Governance Readiness (${state.readiness}, ${state.score}/45)`); const body = encodeURIComponent(buildSummary(state)); window.location.href = `mailto:?subject=${subject}&body=${body}`; }); resetBtn.addEventListener(‘click’, function(e){ e.preventDefault(); qRoot.querySelectorAll(‘input[type=”radio”]’).forEach(r=>r.checked=false); if(meta.role) meta.role.value=”; if(meta.org) meta.org.value=”; compute(); copyBtn.disabled=true; emailBtn.disabled=true; }); compute(); return true; } // Try now, then retry a few times (WP may move script execution) if(!init()){ let tries = 0; const t = setInterval(()=>{ tries++; if(init() || tries>=50) clearInterval(t); }, 100); } })();