{
  "package": "@duckduckgo/autoconsent",
  "version": "17.0.0",
  "integrity": "sha512-8KcbpNvzaoWmfp6rpKuCf3pB1hfe3hgr6uPukk5dvIEK6W5oCFEvuqy0dJFbGcHS2n77Jwbz8BCg5wTG4mOaFw==",
  "licence": "MPL-2.0",
  "source": "https://github.com/duckduckgo/autoconsent/tree/v17.0.0",
  "files": {
    "extension/safari/autoconsent.esm.js": {
      "from": "dist/autoconsent.esm.js",
      "sha256": "224a1ff716fc5190210829cf171cf2e55c940968bf1dbd553fd74ea968b6805b"
    },
    "extension/safari/autoconsent.content.js": {
      "from": "dist/addon-mv3/content.bundle.js",
      "sha256": "eaee4d35e31a077085ba0681dea701e16f0233e3c5a8081950a1868f72c97f2b"
    },
    "extension/safari/autoconsent.LICENSE.txt": {
      "from": "LICENSE",
      "sha256": "fab3dd6bdab226f1c08630b1dd917e11fcb4ec5e1e020e2c16f83a0a13863e85"
    },
    "extension/vendor/autoconsent/rules.json": {
      "from": "rules/rules.json",
      "sha256": "80e2201b319586e3d5e8002573bb3da13383cd203f7c7e30e6143f9258a23aa6"
    }
  },
  "elseHideRemoved": [
    "Moove",
    "aquasana.com",
    "auto_US_musicnotes.com_0",
    "burpee.com",
    "cookiecuttr",
    "cookiehub",
    "cookieyes",
    "ct-ultimate-gdpr",
    "finsweet",
    "google-cookiebar",
    "iubenda",
    "paypal-us",
    "termsfeed3",
    "vue-cookie-accept-decline",
    "webflow",
    "wix"
  ],
  "off": {
    "aa-cookie-banner": "closes or accepts: Only clicks #toast-dismiss-button, identical to optIn: dismiss notice.",
    "abcacupuncture1": "can end done without a click",
    "aceodds.com": "closes or accepts: Only clicks #cookie-consent-accept, identical to optIn: accept.",
    "allabout-japan": "hides the site's own banner before handling Funding Choices",
    "amazon-pay": "closes or accepts: Only clicks .js-cookie-banner-close, identical to optIn: close.",
    "animatetimes": "unclear what its button does (off until checked on the site): Only clicks #cookie-agreement .dismiss (optIn clicks .agree); could be 'disagree' or a close, label decides.",
    "asahi-interactive": "closes or accepts: Only step clicks .gdpr_btn_agree, the same button optIn clicks: agree/acknowledge only.",
    "aslroma1-it": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "asus": "a reject path, but another path closes or accepts: Then-branch clicks .btn-reject; else opens .btn-setting and clicks .btn-ok, the same selector optIn uses to accept.",
    "avacy": "a reject path, but another path closes or accepts: Rejects via .as-js-reject-all when visible; else-branch clicks .as-js-close-banner instead.",
    "axeptio": "a reject path, but another path closes or accepts: Clicks #axeptio_btn_dismiss/.ax-discardButton (refuse) when present; otherwise falls back to button#axeptio_btn_close (X).",
    "aylo-cookie-banner": "a reject path, but another path closes or accepts: Clicks #consent_accept_essential if visible; else-branch waits 8s and clicks #js_cookieBannerCloseBtn. Final optional minimized-banner close is cleanup.",
    "bakeca": "closes or accepts: Only clicks button.close on the cookie alert; optIn uses the main button.",
    "bdirect-booking-engine": "closes or accepts: Only step clicks #policy_pop_close, the same click optIn uses: close only.",
    "berelax.com": "closes or accepts: Only clicks .cookie__close; optIn uses the main button.",
    "bold-cookie-consent": "a reject path, but another path closes or accepts: CCPA branch clicks btn-close-ccpa (also optIn's action); GDPR branch rejects via btnGdprRejectAll / untick+save.",
    "borlabs": "can end by clicking the close button",
    "bricklink": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "bringatrailer": "closes or accepts: Only clicks #banner-terms-dismiss, identical to optIn: dismiss.",
    "bundesregierung.de": "unclear what its button does (off until checked on the site): Only clicks .bpa-close-button; self-test expects cookie-allow-tracking=0. Allowed only if its label is a reject, not an X.",
    "buonmedico": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "canyon.com": "saves the settings without unticking anything; no self-test shows a reject",
    "capitalone-ca": "closes or accepts: Only clicks .lh-close-button, identical to optIn: close.",
    "casier-judiciaire-justice-gouv-fr": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "check24-partnerprogramm-de": "unclear what its button does (off until checked on the site): Only clicks [data-cookie-dismiss-all], counterpart of optIn's [data-cookie-accept-all]; likely 'reject all', but the label decides.",
    "chomikuj": "closes or accepts: Only clicks .closeCookiesInfo, identical to optIn: close.",
    "cinemaplus": "closes or accepts: Only clicks button[aria-label='close cookie message']; optIn uses a different primary button.",
    "civic-cookie-control": "a reject path, but another path closes or accepts: Clicks .ccc-reject-button when visible; otherwise falls back to #ccc-dismiss-button or #ccc-close.",
    "Complianz categories": "unclear what its button does (off until checked on the site): Then-branch clicks .cc-dismiss (optIn's accept fallback too; label may be 'Functional only' or 'Dismiss'); else unticks then .cc-save.",
    "Complianz opt-out": "ends done without a click when neither deny nor the settings link exists",
    "Complianz optin": "a reject path, but another path closes or accepts: Rejects via .cc-deny or settings untick+save, but a branch clicks .cc-dismiss (also an optIn fallback) instead.",
    "concordia-ch": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "consentmo": "its settings path saves the selection without unticking anything",
    "cookie-law-info": "hides the banner first, then calls the page's reject; a failed call leaves it hidden",
    "cookie-notice-checkboxes": "a reject path, but another path closes or accepts: its fallback clicks accept even with nothing to untick",
    "cookie-popup-close-cookies": "its page function clicks the popup's close button",
    "cookie-script": "a reject path, but another path closes or accepts: Prefers #cookiescript_reject or untick+save, but two else-branches click #cookiescript_close/.cookiescript_close_btn.",
    "cookiesinfo-closecookies": "closes or accepts: Only clicks #closeCookies, the same as optIn: close only.",
    "cornerstone-brands": "only clicks close buttons",
    "ctv-disneyonice": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "datagrail": "a reject path, but another path closes or accepts: Rejects via reject_all/essential paths, but GPC-notice branch without open_layer clicks button.dg-header-close.",
    "datasign": "a reject path, but another path closes or accepts: Untick+apply when checkboxes exist; else-branch clicks the summary .datasign__dialogCloseButton.",
    "dfactory-cookie-notice": "a reject path, but another path closes or accepts: refuses when it can, otherwise clicks close",
    "duda-cookie-notification": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "dwaalzin.nu": "closes or accepts: Only clicks .cc-dismiss on a cc-type-info notice ('Got it'), identical to optIn.",
    "e-grip": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "ecoprivacy": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "endocrine.org": "closes or accepts: Only clicks #gdprBanner .js-close-btn; optIn uses .js-accept-btn.",
    "ensembleartsphilly": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "Ensighten": "a reject path, but another path closes or accepts: Reject buttons or modal untick+save, but innermost else clicks #ensCloseBanner (listed in optIn too).",
    "etsy": "after unticking it clicks the settings overlay's close button; whether that saves can't be told",
    "eu-cookie-law-popup": "closes or accepts: Only clicks .eupopup-closebutton; optIn uses a different button.",
    "evozen.fr": "closes or accepts: only clicks close, the same as its opt-in",
    "fascicolosanitario-lombardia": "closes or accepts: Only clicks .cookie-bar-close, identical to optIn.",
    "fastweb-cookie-center": "closes or accepts: Only clicks the '.close img' X inside the iframe; optIn uses .btn_accetta.",
    "fera-cookies": "a reject path, but another path closes or accepts: Clicks .accept-necessary-only-btn if visible; else-branch clicks .accept-hide-message-btn (same as optIn's else).",
    "fideuram": "closes or accepts: Only clicks #cookie-modal-close (X); self-test shows it records 'rejected', but it is still a close.",
    "fis-data-exchange": "closes or accepts: Only clicks .dx-cookie-banner-close, identical to optIn.",
    "fod-fujitv": "closes or accepts: Only clicks .closeBtn, identical to optIn.",
    "fonts.google.com": "closes or accepts: only clicks the notification's close, the same as its opt-in",
    "funding-choices": "ends done without a click on a notice-only page",
    "givedirectly": "closes or accepts: Only clicks button.close, identical to optIn.",
    "gsb-cookie-banner": "unclear what its button does (off until checked on the site): Only clicks .cookie-banner__btn--close; self-test expects cookie-allow-tracking=0. Allowed only if labelled as reject, not an X.",
    "gwo": "a reject path, but another path closes or accepts: Unticks then saves (self-test advertising:0), but optionally clicks .cookies-bar__close-button before saving.",
    "head-fi": "closes or accepts: only clicks dismiss, the same as its opt-in",
    "hl.co.uk": "hides the settings window before its own clicks; a failed click leaves it hidden",
    "hsbc-au": "closes or accepts: only clicks close, the same as its opt-in",
    "hu-manity": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "ibanez": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "impress-co-jp": "closes or accepts: Only clicks .cookie_confirmed_and_close, identical to optIn: acknowledge.",
    "intesasanpaolo": "closes or accepts: only clicks 'chiudi' (close)",
    "io.no": "closes or accepts: Only clicks #cookiebox a.close, identical to optIn.",
    "iubenda-rti": "closes or accepts: Opens modal, then only clicks #rti-privacy-close-btn-id; no reject click.",
    "iworks-footer-notice": "closes or accepts: only clicks close, the same as its opt-in",
    "jpmorgan-chase": "closes or accepts: Only clicks the consent-close-icon, identical to optIn: close.",
    "ketch": "can end done without a click",
    "kingrecords-co-jp": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "kiwico": "unclear what its button does (off until checked on the site): Settings, then modal's filled footer button with no toggles changed, then closes banner; cleanup only if that button opts out.",
    "lg-cookiecontrol": "unclear what its button does (off until checked on the site): Then clicks data-cc-action=dismiss (sets cookieconsent_status=dismiss; decline or 'Got it'? label decides); else clicks close-popup.",
    "luxmed": "closes or accepts: Only clicks .close-x, identical to optIn.",
    "mainichi": "closes or accepts: Only clicks .js-popupclose, identical to optIn.",
    "massaggiamilano": "closes or accepts: Clicks .privacy-continue then .privacy-accept, exactly the optIn steps.",
    "massgeneralbrigham": "closes or accepts: Only clicks .alert-close, identical to optIn.",
    "mq.edu.au": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "newsbreak": "closes or accepts: Only clicks 'Close cookie banner' X; rule comment says notice offers only a close.",
    "nhsapp": "closes or accepts: Only clicks cookie-banner-close, identical to optIn.",
    "nikkeibp": "closes or accepts: Only clicks .bpPrivacy_button-close, identical to optIn: close.",
    "osano": "with its hide branch removed, a branch that closes the bar without a reject remains",
    "pe-cookies": "unclear what its button does (off until checked on the site): Only clicks #pecookies-continue-btn; optIn uses #pecookies-accept-all. Likely 'Continuer sans accepter', but label decides.",
    "pekao24": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "pharmasave": "closes or accepts: Only clicks .cookie-consent-accept button, identical to optIn: accept.",
    "piano.io": "closes or accepts: only clicks the banner's close button",
    "pigu": "unclear what its button does (off until checked on the site): Only clicks basicAgree (optIn clicks 'agree'); likely 'agree to necessary only', label decides.",
    "pmc-privacy-banner": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "poki": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "pornhub-compact-cookie-banner": "closes or accepts: Only clicks .cbCloseButton, identical to optIn.",
    "posthog": "closes or accepts: Only clicks the toast Close button, identical to optIn.",
    "povr": "hides an accept-cookies alert first",
    "PrimeBox CookieBar": "hides the bar after an optional reject click, also when there is none",
    "productz.com": "unclear what its button does (off until checked on the site): Only clicks .is-dismiss (optIn clicks .is-accept); decline or close, label decides.",
    "pubfactory": "closes or accepts: Only clicks cookieBannerDismiss, identical to optIn: dismiss/acknowledge.",
    "pubtech": "a reject path, but another path closes or accepts: Clicks #pt-close first whenever it exists; reject_all link only used in else-branch.",
    "puesc-gov-pl": "closes or accepts: Only clicks .cookies__close button, identical to optIn.",
    "qtip-jgrowl-cookies": "closes or accepts: Only clicks the qtip-close X of the cookie notice, identical to optIn.",
    "rambler": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "rejestr.io": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "remove-cookie-notice": "closes or accepts: Only clicks the 'OK'/'x' remove_cookie link that calls /cookie/close: acknowledge/close.",
    "rijksoverheid-notification-bar": "closes or accepts: only clicks close, the same as its opt-in",
    "route-inn": "closes or accepts: Only clicks .cookie-close; optIn uses .cookie-agree.",
    "saturdaysnyc": "closes or accepts: only clicks the popup's close",
    "schadefonds": "closes or accepts: Only clicks .cc-dismiss ('Got it'), identical to optIn.",
    "scmp": "hides the site's own banner at the end, with or without a reject",
    "securiti-gpc-flyout": "closes or accepts: Only clicks .f-banner-close-btn on the GPC notice flyout, identical to optIn: close.",
    "service2school": "hides the banner first, then clicks decline; a failed click leaves it hidden",
    "shinden.pl": "hides the site's cookie bar first",
    "shopware": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "shueisha-gigaviewer": "closes or accepts: Only clicks the modal close button, identical to optIn.",
    "Sirdata": "a reject path, but another path closes or accepts: Clicks 'Do not accept' or 'Set choices'+'Reject all'; final else clicks [title='Close'].",
    "smile-insurances": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "solvhealth.com": "closes or accepts: Only clicks #cookiesModalCloseBtn, identical to optIn.",
    "soteshop": "a reject path, but another path closes or accepts: Clicks #cookies-close-deny if present; else clicks #cookies_close, which optIn also uses.",
    "sourcepoint-top": "hides Sourcepoint's whole message (often a pay-or-accept wall); the reject is the frame rule's",
    "sujetdebac.fr": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "swisscom-ecare": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "tarteaucitron.js": "a reject path, but another path closes or accepts: Else clicks #tarteaucitronPersonalize (optIn's accept-all) before #tarteaucitronAllDenied; DSGVO branch's #tarteaucitronCloseAlert after unticking is unverified.",
    "telegram-im": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "theinfatuation": "closes or accepts: Only clicks close-button, identical to optIn.",
    "thomsonlocal.com": "closes or accepts: only clicks accept, the same as its opt-in",
    "tinder": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "transip-nl": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "twitch.tv": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "txxx-network": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "ubisoft.com": "a reject path, but another path closes or accepts: Clicks #privacy__modal__close whenever present (self-test: ads opt-out, but an X); else privacy center options button.",
    "usercentrics-api": "its last fallback closes the banner through Usercentrics' function before denying; a failed deny leaves it closed",
    "vd-ch": "closes or accepts: Only clicks #dismiss-cookie-banner-button, identical to optIn.",
    "what3words": "saves the preferences without unticking anything",
    "whitepages-gpc-banner": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "widiba": "closes or accepts: Only clicks the header close (X); optIn uses the first banner button.",
    "wimc-gtm-consent": "a reject path, but another path closes or accepts: Clicks [data-gtm-consent-close] whenever present (optIn does the same); untick+submit only in else-branch.",
    "worldbank": "closes or accepts: Only clicks .accept-consent, identical to optIn: accept/acknowledge.",
    "WP DSGVO Tools": "a reject path, but another path closes or accepts: Clicks .sp-dsgvo-privacy-btn-accept-nothing if present; else-branch clicks .sp-dsgvo-popup-close.",
    "xe.com": "closes or accepts: its opt-out clicks the same button as its opt-in (a notice's OK or close, or saving without a choice)",
    "zorginstituut-cookiewarning": "closes or accepts: Only clicks button.cookiewarning_yes.close-button, identical to optIn.",
    "zurich-cookies-notification-banner": "closes or accepts: only clicks close, the same as its opt-in"
  },
  "reviewedClicks": {
    "abc": "reject: accepts only the required cookies",
    "amazon-hiring": "cleanup: Clicks 'Continue without accepting cookies' first (required); the Close-popup click only follows after that succeeded.",
    "asrock": "reject: Opens second panel (AcceptCookies2), unticks checkboxes, then SetCookie saves; flagged ids are panel names.",
    "avada-privacy-bar": "reject: Clicks .fusion-privacy-bar-reject, or unticks choice checkboxes then .fusion-privacy-bar-acceptance (saves choices); detectCmp requires reject button or checkboxes.",
    "baden-wuerttemberg.de": "reject: unticks, then saves with the button its opt-in also uses",
    "blitzrechner": "reject: Unticks options, then .sygnal24-gdpr-accept-choice saves the choice (optIn uses acceptAll).",
    "blocksy": "reject: the shared button is the banner's decline button",
    "bokadirekt.se": "reject: Clicks the cookie-settings link beside allowCookiesButton, unticks, then saves; flag matched the sibling context only.",
    "bswhealth": "reject: Opens manage-cookies, unticks all optional checkboxes, then .accept-btn saves that selection.",
    "bundesarchiv-cookiebanner": "reject: unticks, then saves with the button its opt-in also uses",
    "c-banner-allow-cookies": "reject: Clicks button[data-allow-cookies=false]: an explicit decline; 'allow' in selector is a false alarm.",
    "carpetaciudadana": "reject: Opens config, unticks the #acceptAdditionalCookies checkbox, then saves config.",
    "citizensadvice": "cleanup: rejects, then hides the confirmation with the shared button",
    "compricer": "reject: Opens settings, unticks Product/Marketing, then #cookie-button-settings-accept saves the choice.",
    "cookieprompter": "reject: Clicks .cpDontAcceptBtn ('don't accept') or #eksCookieNo: both declines.",
    "cookieyes": "reject; its close only after the reject (the hide fallback is removed)",
    "cookieyes-legacy": "reject: Clicks #cky-btn-reject, or settings, unticks categories, then #cky-btn-custom-accept (accept selected; optIn uses #cky-btn-accept).",
    "craft-cookie-consent": "reject: Unticks non-necessary groups, then #elc-accept-link or #elc-save-link saves; optIn uses separate #elc-accept-all-link.",
    "dalecarnegie": "reject: Manage prefs, unticks toggles, then confirm; flagged 'gdprAgreement' is only the container class.",
    "diag.pl": "reject: 'Odrzuć wszystkie i zamknij' (reject all and close)",
    "ee-consent-notice": "reject: declines, or sets every purpose to no and saves",
    "england.nhs.uk": "cleanup: Opens preferences, unticks optional categories, then #ccc-close; self-test expects analytics revoked.",
    "epaas": "reject: Clicks reject-button, or unticks switches then save-button / accept-button only after switch--off; self-test expects advertising:0.",
    "escorteintime": "reject: opens the settings and accepts essentials only",
    "eset": "reject: Clicks #cc-decline, or manage, unticks categories, then #cc-accept2 saves (optIn uses #cc-accept).",
    "fever": "reject: Settings, unticks targeting, then cookies__buttons--accept saves; self-test expects cookiesPreferences=[necessary].",
    "fondoest.it": "reject: Clicks #btn-cookie-accept-edit (customize), then #btn-cookie-accept-nothing.",
    "gays-cruising": "reject: opens the preferences, unticks everything and saves",
    "giustizia-it": "reject: Unticks checkboxes, then .accept saves selection (optIn ticks them then same .accept); detectCmp requires the settings section.",
    "gobiernodecanarias": "reject: Opens config, unticks #checkbox_analiticas, then .btn.accept saves (optIn ticks it then same button).",
    "hometogo": "reject: dismiss-button is hometogo.com's explicit reject (per v17 test notes); else settings modal accept-button saves defaults, no untick step.",
    "ihavecookies": "reject: Opens advanced, unticks types, then #gdpr-cookie-accept(2), which saves checked types in this plugin.",
    "iubenda": "reject; its close only after the reject (the hide fallback is removed)",
    "jokul-cookie-consent": "reject: clicks 'nekt' (refuse), or unticks everything and saves",
    "legislation-gov-uk": "cleanup: Clicks .reject-all-cookies first; optional .dismiss-banner closes the confirmation afterwards.",
    "makitatools": "reject: Opens privacy settings, then clicks the allowcookie=false link (decline).",
    "mensaje-cookies": "reject: Clicks #btnAcceptNoAllCookies or config then #btnAcceptNoCookies ('accept no cookies'); optIn is #btnAcceptAll.",
    "miteco": "reject: opens the settings, unticks analytics and saves",
    "mkdocs-material": "reject: unticks, then saves with the button its opt-in also uses",
    "modelsociety": "cleanup: Clicks the 'Reject' button first (required); optional Close only dismisses the confirmation dialog.",
    "ndl-go-jp": "reject: Clicks accept-core-button (essential only); fallback excludes data-cy buttons, while optIn's accept-all buttons all carry data-cy.",
    "nhs.uk": "reject: Clicks #nhsuk-cookie-banner__link_accept; optIn uses ..._accept_analytics, so this is the 'Do not use analytics cookies' button.",
    "nordnet": "reject: Clicks the button after #cookie-accept-all-secondary; self-test expects consent_cookie=necessary.",
    "olvg": "reject: picks permission level 1 (necessary only), then saves with the shared button",
    "police-uk": "cleanup: Clicks #js-cookie-reject-button first (required); optional dismiss only closes the confirmation afterwards.",
    "praktikertjanst": "reject: Unticks .tc-checkbox, then .tc-accept-btn saves selection (optIn uses .tc-accept-all-btn).",
    "privacy-area": "reject: Clicks .rejectOptional, or unticks then .acceptCustom (save selection; optIn uses .acceptAll).",
    "privacymanager.io": "cleanup: deny all, then confirms; or unticks everything and saves",
    "quick-cookie-consent": "cleanup: Opens settings, selects first (lowest) level, then closes the settings dialog; self-test forbids non-necessary levels.",
    "rabobank": "reject: picks consent level 1, then confirms with the shared button",
    "roll20": "reject: Preferences, unticks #cookie-modal-input, then #cookie-modal-dismiss; self-test expects gdpr_accepts_cookies=false.",
    "romeo": "reject: Opens settings (type=button), unticks analytical, submits non-accept-all button.",
    "savills": "reject: Manage cookies, unticks functional and tracking, then .sv-save-close ('save and close').",
    "smartweb": "reject: Unticks .w-cookie-option checkboxes, then button[name=accept] saves selection (optIn uses accept_all).",
    "sostereo.com": "reject: unticks, then saves with the button its opt-in also uses",
    "taunton": "reject: unticks, then saves with the button its opt-in also uses",
    "tccCmpAlert": "reject: 'Accetta solo cookie necessari' (only necessary cookies)",
    "tlc-direct": "reject: unticks marketing and analytics, then saves the selection",
    "tna-cookie-banner": "cleanup: rejects, then closes the 'rejected' message",
    "todostuslibros": "reject: Config, unticks cookie_b/cookie_c, then #saveAndAcceptCookies saves (optIn uses #accept-cookies).",
    "trybe": "reject: Cookie settings, unticks Tracking and Advertising, then 'Save and close'.",
    "usherbrooke": "reject: unticks analytics and ads, then saves the selection",
    "vinnova-se": "reject: Secondary button opens settings, toggles lowest level off, then saves; optIn uses the primary button.",
    "walmart-ca": "reject: the shared click only opens the settings, where it rejects",
    "xing.com": "reject: Opens settings, then accept-overlay saves defaults (optIn uses #consent-accept-button); self-test expects marketing:false.",
    "xlbygg.se": "reject: unticks, then saves with the button its opt-in also uses",
    "ziptozipmoving": "reject: Customize, unticks switches, then the settings panel's .accept-btn saves (optIn uses the banner's)."
  },
  "reviewedAfterReject": {
    "community.screwfix.com": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "Cookie Information Banner": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "pandectes": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "postnl": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "rakshaos": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "sportsmans.com": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "store2000.fr": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "Tealium": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "uk-parliament": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "wix": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject",
    "xhamster-eu": "hides only leftovers (an overlay, a scroll lock, a confirmation) after the reject"
  },
  "reviewedPageFunctions": {
    "consentmanager-ncmp": [
      "EVAL_CONSENTMANAGER_NCMP_REJECT"
    ],
    "cookiealert": [
      "EVAL_COOKIEALERT_0"
    ],
    "cookiefirst.com": [
      "EVAL_COOKIEFIRST_1"
    ],
    "Cookie Information Banner": [
      "EVAL_COOKIEINFORMATION_0"
    ],
    "cookiereports": [
      "EVAL_COOKIEREPORTS_OPT_OUT"
    ],
    "didomi": [
      "EVAL_DIDOMI_OPT_OUT"
    ],
    "ee-consent-notice": [
      "EVAL_EE_CONSENT_DECLINE_0"
    ],
    "microsoft.com": [
      "EVAL_MICROSOFT_0"
    ],
    "Moove": [
      "EVAL_MOOVE_0"
    ],
    "Tealium": [
      "EVAL_TEALIUM_1",
      "EVAL_TEALIUM_DONOTSELL"
    ],
    "Test page CMP": [
      "EVAL_TESTCMP_STEP"
    ],
    "thefreedictionary.com": [
      "EVAL_THEFREEDICTIONARY_0"
    ],
    "waitrose.com": [
      "EVAL_WAITROSE_0"
    ]
  },
  "reviewedPageFunctionsWhy": {
    "EVAL_CONSENTMANAGER_NCMP_REJECT": "calls the CMP's reject",
    "EVAL_COOKIEALERT_0": "removes the page's scroll lock after the settings were saved",
    "EVAL_COOKIEFIRST_1": "unticks the checked purposes",
    "EVAL_COOKIEINFORMATION_0": "CookieInformation.declineAllCategories()",
    "EVAL_COOKIEREPORTS_OPT_OUT": "saves consent with only the necessary category",
    "EVAL_DIDOMI_OPT_OUT": "Didomi.setUserDisagreeToAll()",
    "EVAL_EE_CONSENT_DECLINE_0": "sets every purpose's input to no",
    "EVAL_MICROSOFT_0": "clicks the button labelled Reject or Ablehnen",
    "EVAL_MOOVE_0": "leaves only the strictly necessary box ticked",
    "EVAL_TEALIUM_1": "utag.gdpr.setConsentValue(false)",
    "EVAL_TEALIUM_DONOTSELL": "sets Tealium's do-not-sell state",
    "EVAL_TESTCMP_STEP": "only checks that the test page's reject button exists",
    "EVAL_THEFREEDICTIONARY_0": "opens the purposes, then rejects all",
    "EVAL_WAITROSE_0": "clicks every deny label"
  },
  "codeRules": {
    "off": {
      "Admiral": "clicks the close button when there is no 'reject all'",
      "consentmanager.net": "its last path clicks without checking that the clicks worked, then hides the box and reports success",
      "Conversant": "clicks inactive toggles (which may switch purposes on) and reports success without checking",
      "Evidon": "hides the overlay first and reports success even when the decline click fails",
      "Onetrust": "on a notice with only a close button it clicks close (decided: mixed rules off for 1.0)",
      "Sourcepoint-frame": "when it finds no reject within 2 seconds it saves the settings without unticking anything",
      "TrustArc-top": "hides TrustArc's frames and banner and reports success without a reject"
    },
    "kept": {
      "Cybotcookiebot": "declines, or withdraws through Cookiebot's own function and hides the dialog only after that worked",
      "Klaro": "rejects through Klaro's function, declines, or unticks every purpose that isn't required and saves",
      "tiktok.com": "clicks the banner's first button, its decline button",
      "Uniconsent": "unticks every purpose and confirms the choices; fails when it can't"
    }
  },
  "reviewHashes": {
    "rules": {
      "Cookie Information Banner": "633809ec204ae272729e6255499a413abe9031b4e28b5cf5fba57ae8b110a8a7",
      "Moove": "e8c356ef70dfe282ba3afcdf27612a96bf1d6b4d0a0cf0f047e1fa0b9bcad331",
      "Tealium": "432edd49d9cb06d13d14cf8dd4ebda56498cdf542258b24c5d6da4d9a98e2266",
      "Test page CMP": "a8cb8becf231742d14880a1872bd2849bb9602c79fd6f3d73adb053b36efb537",
      "abc": "8837c915c650d27b21ed9e87960da1d1820332e259942a9834609bac1559785b",
      "amazon-hiring": "2bfa71ad006d9ab9ad3e8f15bf459f488bacb9ae9454a42ac6b984e4aa5a1080",
      "asrock": "3bdb06761a5bd45bed0baf23da1a5e308c39cca63a6cb8d3630278691c0b4572",
      "avada-privacy-bar": "c8f97e952f8dd0d205f9a2728d9eb35ab32b4fe967dc51e8285a62a53d85bbe1",
      "baden-wuerttemberg.de": "413812fbbf792cf5f569b2fbbcc08b63de2ffd74cde54021f5b22e151f9432c7",
      "blitzrechner": "ed72adaf6a4a18dcc586aeeb85d11235f42703f54953b59352b874389b3e5450",
      "blocksy": "95bd1bd50abde08ee2b8e76a05b876a3225d4ce68bd741af5a9187f4ddf65d51",
      "bokadirekt.se": "8ca4d99c807daec1ccd99bfc6ed8624eabce88d74b7d157c5ca1d005368ff074",
      "bswhealth": "0ae84ffc4e892f4845bf5b6873f983efb1676993e24f871034626460aa376251",
      "bundesarchiv-cookiebanner": "24a5acd6db86a2dcc624def18ff43f389f512b9c8ccaf7619da3770d125a543c",
      "c-banner-allow-cookies": "14310c0ca07a5e4077238f90207047f31e14a0e8db25e97f288dac8b7204da69",
      "carpetaciudadana": "2d9c16250847713ae4b1cd05d04f9497d1fa629610af8466b64921a38e42cee3",
      "citizensadvice": "e7627defda3e6c9a95e6d5d0705d2ed8d5ffb66037934cd846435cbf8f7aa75b",
      "community.screwfix.com": "b0b9706856ffb4378ec1f83ea65aca65e62d4be893c3cd356ca96e46513c56a3",
      "compricer": "d7d08f80b26b70d4ea8854618241f0d3ac370f2a5e33166064911e7f219fa33c",
      "consentmanager-ncmp": "1c7a83ec4f2142de235cdcd4348c3c16e8235e3df6a342a4b7deca70d6693f9c",
      "cookiealert": "4801611d039a13dc4852c161ab93a31b15eaad16918af69fab745b2eacd91f42",
      "cookiefirst.com": "79e3ca19ce5c965d8bef4485893f01c951189378e1a5b32665258e19194175ae",
      "cookieprompter": "d793accdcf759da4c95eef5b960dbc4ed9dd9cc6b4d28d03e40063fa6c3eafe7",
      "cookiereports": "6f8ff1d6f13a52b809ef1a7a85c2042c212b35079b4d051d628cdf23acf5633c",
      "cookieyes": "dbb61de0b0eb791d60b0b39309f75107b75d7f09364ff0f41d7976fc9d7cbbf8",
      "cookieyes-legacy": "d4043d45f273c097012ccc7e2256596513ef895cf172015bec5af99cc748b79d",
      "craft-cookie-consent": "cb0d6f147368584aafe236b586900169f131a1a1214c24f2fbb0da36eab6dd1a",
      "dalecarnegie": "3f4e074a89d9579714cb25804bceb2b36721e5da9c2d041364368f0b6645bf7f",
      "diag.pl": "cbeeed3cb1ad47b2be0b79b5fda98098130eb41430fd68931ad941f9dfaf6a5d",
      "didomi": "0b4f6a3b12b4356ea1db729b2a69b32f4f3a059f7c3678cfff58d304fd5bced2",
      "ee-consent-notice": "8f68646b940126238ecf9d87b99bc366969e9fa15f637769ca7efe159c1e9051",
      "england.nhs.uk": "ed4e16878dd07893f900eb2fa23c4a5d083bdf29b80f6e3df9528dc753e1c077",
      "epaas": "24e7cadf5e72d9a6664ef89783cbee61182d05927ea316d375d02266d0d5da39",
      "escorteintime": "f5a4ed57b3c059111cb9f105d8bed6463343e34bf38be07d88fa46c709b8a074",
      "eset": "f222266898a0a455ec1a15b352e3aac7a816c851d3db3f0aacb9a427e4b39f0b",
      "fever": "bf04da6d5a40fa362f7590ad7e3ac6618094aee3810a823550eb50fcedf355d4",
      "fondoest.it": "1e977b743f5d14d37edcd6b0f7ff6b56b3c52dce45ef061a018ae674dd58c334",
      "gays-cruising": "57c0431b1f6f106fca877d12262024476667b7e91b48e6855d4e08433d2fcedb",
      "giustizia-it": "a26b0c8b1a8f0ee4b38c4bda22511022f6a6e29da64a26844e32ba38235c5d36",
      "gobiernodecanarias": "a28d42f8127ca7b01551d8159271958d0b8bdea3d0f88e989cc11b323e25f27f",
      "hometogo": "aa47b91143cdde0503b16249506e9341d3c9db5a16ee9fa565b976eb511bb737",
      "ihavecookies": "87211013bc23bf45195fae4081ca7b98081f34cea76d06287708a4a15ff941f3",
      "iubenda": "63fce26029b4346b218c4b6f9808a682ae920f9487869119fc03dc8b20f9d538",
      "jokul-cookie-consent": "840c2030008d40ea4cf4c74f09a237baf53cde1523f23751f7ea403841b84040",
      "legislation-gov-uk": "200dc0de885b78d33f38ff2088b6f56cdb7b72347ac85ce642e9a586bd554a1e",
      "makitatools": "25a108b65e75a6aebd2f66aee52bd770a454f99e80ef5538f7bcce4f83c62143",
      "mensaje-cookies": "b5e2594a1b3ca6e6002776a82ce5b7407201e5e557517760e57a8708649a8473",
      "microsoft.com": "9db1d7113f52dfbdfa4a174ca39cf0f1d32a2fb6ae77318015803e6fb725bd28",
      "miteco": "10e79e720da9ac5f63a978754c5c2441a74931c294f21fbfe35b42e2b6cacdac",
      "mkdocs-material": "f3735039dcd6cb22b4e4b92aca1bab6b81f11e436dd9098f1f085344d841b630",
      "modelsociety": "a26e5899cf7558655a68341f58cf015654699e046ba9323eab3964147cdc32a0",
      "ndl-go-jp": "806923b25abf91a846874786f13b6c6a1b13da54fd5ea05b0a86e953d426dc90",
      "nhs.uk": "8b243c2caf92b1bc2478e85f2584b373f3b9b957a0aee18865e361b9e2813db9",
      "nordnet": "70a0adfcce9f5e6ee636f3a2cb8fd370743a230da426f9727ed1edb1a3451e32",
      "olvg": "9110c24f241b3b1ae1327e8283d36e71b01b5e043101f41393fa6ab7efb59961",
      "pandectes": "d39ca6b7d91b1e98bb19389a3e734659bbd3acb941f65841853462d18dd871eb",
      "police-uk": "20fe21d0660e4e21113c7226304be8f2cf2c9d4b4fb20837ee52d5a34de305ca",
      "postnl": "8ad9311cc670e99013e571a7299540ff0d8ee7b80a4ad3382245f24e1399669f",
      "praktikertjanst": "b8732cefbd2dc3c9a46e3fb4f4e55be99c193342ac5c197141983b1035a7f83f",
      "privacy-area": "177265d55e3869850672bed569f544ef216464ba4c2e48b2e3705b8e3c67060f",
      "privacymanager.io": "42b8c222c94b6c86a48c6c11ad81a9da1582ac996bec3c341c50a9714b07c7c2",
      "quick-cookie-consent": "f6264088bd210832bb3dfe132e1bd0e615cb35c9029dda9098e0aa173e93ac02",
      "rabobank": "ff48dd3ca7db42576b32a960355bbe65bf1fbb2b1ad0fd49c81d342c54804068",
      "rakshaos": "6b6d69ed2fdf13ead1bbd248790342b1caed1abbe26f33e95eeae5d8fd7080d0",
      "roll20": "6bf86415474f1a39db4deb81cd3afa413545bc925e8ae303b2a3e260664d2d1f",
      "romeo": "4819b24e6370c12900dcbad57dafdb38bda1946993b2f48dcec5e731f6e6de72",
      "savills": "231167d0a13be8842c553951d84837424b0e70b83d3bc640fe0b591f517b2ee1",
      "smartweb": "dfc83eab0359150196dae915ad2fa55205416696b9f89108d1ffc33c35acf559",
      "sostereo.com": "b191a2e24f3157a52bf728dd975cab7c09f1034882a3c3cf9ff7f7a17ea105ec",
      "sportsmans.com": "3d7014394c69e691004cc55dfdc0c129d376996f200bc4260cc051f4b0a850f8",
      "store2000.fr": "d39abbfe05aeeb914191bc3eee74bdf9e0ec6bcee0a21c44e77bb1b3836562eb",
      "taunton": "2fe7c6fbc4daf6b942ffc98ead6c33540bde783a4f78443c735bc43159c153ae",
      "tccCmpAlert": "dfc1326d606d3213e2a8ca09397113e64d2cae02d13718ae3a7b97dbcaab7128",
      "thefreedictionary.com": "c404878f6b5a4768ad3ac744f41abbe349825615b4c324e045f33ca3d4ad6a7f",
      "tlc-direct": "b7c28e99ba57048df453633b9ac7506ec6de82f9144020ae3b4d1691f9ae052c",
      "tna-cookie-banner": "c063bcc3a40f8ac3bf40e8d486218b64ed68c040316f89b9acfe01435d3ff8cb",
      "todostuslibros": "7e1416ae776f4fe271d8de608e8be35ca3566e7edceae8e08ff07ccc7ccd7150",
      "trybe": "33ecdd87b867df64e43d7e948af80c9e9165700b8f98b52854381f7bb73f48bf",
      "uk-parliament": "066a1757c1938cbc5e79bb8e10ce0a88afbbecaef7256b2926bd3d3cb804a87f",
      "usherbrooke": "64e4b6cf89aa591fc017ff71509c580002a52b0e7e7cdeec2638e16d04de4b5a",
      "vinnova-se": "384ad10dcf75d7b9364b6d854f1ac470dc1ab5fbc4b79877ba777be651e9a264",
      "waitrose.com": "0aaaa4ca2652c4ab02754add820c556d494d8a81f8a8bb90902e29a327340b0a",
      "walmart-ca": "c48dc338b70b8a8815c3aa9bad777390ff7caaea98aa88e87fd28289e5899f9a",
      "wix": "8b02eb7101d006b10340bffcbcd85823aaf0721d9997215505c72c89d18d012a",
      "xhamster-eu": "3f34a4c9a421b0497f99d217ad89268a82c08c52cce7610b7eeb2cf231f11c60",
      "xing.com": "7a59c24de1c5e3dca27b24c29c571b3c58a7267f112450e1ec6c37bf33810250",
      "xlbygg.se": "1adfbff32a9137a68b43983eb08a23c64dba44a49c5be9acff93782834c74d5a",
      "ziptozipmoving": "2affb6fbcb0116c593ecec85630feb7bca70360c64c014a3683d2724e775dd89"
    },
    "codeRules": {
      "Cybotcookiebot": "c451c06d2f54b7f0afd74649129c3386f8a23f50cf5ebff7ee70721dc971fa7c",
      "Klaro": "5f0191a609c5fabaea82a3a03a7280f46096e98a6847c3fe8632959af81cd9ec",
      "Uniconsent": "80e96abd3adcfdf2a6b679329f27c3d0008a108944757067b13ee99aaf62547f",
      "tiktok.com": "8fe6dab82c33609b335316d1599fd3a7ca16f570d2b8c9b061a2bf6b02f82714"
    },
    "pageFunctions": {
      "EVAL_ADOPT_TEST": "8b07bd50baf909e9ddea72b19734dfbe51d73527b68a302fe57d000fb80589a5",
      "EVAL_ADULTFRIENDFINDER_TEST": "e2fe14a705d90f01ed63cb0caa625fcd3d5ecac0f33906eff4d47662bd802dee",
      "EVAL_BAHN_TEST": "073c3dca96355621f02c5c0d1bfbd0736b0c06538ffbae6821ad9223d4148075",
      "EVAL_BIGCOMMERCE_CONSENT_MANAGER_DETECT": "6613d549272689a327ccdd2edf0b23bb6999b9dbfc8e6f7b063d9799273b3d12",
      "EVAL_CC_BANNER2_0": "b0b165dc4613e4917e08a894e69d3affca00f47c646c85fb4befbdd2fe2c3609",
      "EVAL_COINBASE_0": "f2f068a561a521f9c3c1294542828fbf713fc9f1faa9903e1acece2dc1001b58",
      "EVAL_CONSENTMANAGER_NCMP_REJECT": "016d2d842bb4a647c826f336ef03ae2ae4cd9477cdaeeeb190f58f9ba4930805",
      "EVAL_COOKIEALERT_0": "c7da95a1f47c04c7520bef4f3eeda0d4cbd1f980c1e177772c1b7ff277b4f5f1",
      "EVAL_COOKIEALERT_2": "e94e03ed0f43de5338024925d713f9d3601fd7a82c217c181eff2d5363f42c2d",
      "EVAL_COOKIEBOT_1": "2743693dc8edeb43cfc783817d2d2b10fc3290ea593b44fc86e331104fe7bae9",
      "EVAL_COOKIEBOT_2": "12bc66b6ff468e27250f924e1bb7e56b05acc5cfd6e3fe144e280b7238120b29",
      "EVAL_COOKIEBOT_3": "2d658de655f7ca08450e5476ac037a50d419248307c3877737f8a36d71398df5",
      "EVAL_COOKIEBOT_4": "ab10f84c222a13f7963d23ea7a1a949899fb9f8e65e8dcb08e0ff26deea8e046",
      "EVAL_COOKIEBOT_5": "201b33ecb8fb018baddac5ecdb53f5962c2f5649fcc64c2d87a9e5a81e1cfec0",
      "EVAL_COOKIEFIRST_0": "60b4f4d89df5a9015fbfa7062aa6146ebf7785fe9edf2760011276133f89dc60",
      "EVAL_COOKIEFIRST_1": "0a49ff12d0301075cdc520e638dc276cfde7f8d0888222a6045ef8178ca03262",
      "EVAL_COOKIEINFORMATION_0": "04845efc983964948dcb6d82a1761ae88dc1321894fc111f7d77354db7dbb67c",
      "EVAL_COOKIEREPORTS_OPT_OUT": "8cd800e64f30da64bd3054f8e2b095ea744ed7b5b25988792fdee3cc35b7c207",
      "EVAL_COOKIEREPORTS_TEST": "2fb136c8d27b3a55bfe2fc06b1fb68a6f052d4dab3faf14d506da241f73e0036",
      "EVAL_COOKIE_MANAGER_POPUP_0": "87c5c1b4e622b8e0ce97724924336b153c65c994043af9eb82c711d90c1c294e",
      "EVAL_DIDOMI_OPT_OUT": "797b36acfa5b4ac7ebf5c398574b9cbfa844d998bbc61d97e13e1068a0968c96",
      "EVAL_DIDOMI_TEST": "409f34215cc101a83d9b505471f553cd19e1b9ea669bfc1eeb06dd32cef9cf53",
      "EVAL_EE_CONSENT_DECLINE_0": "34281864a329af97f8ce288194c10f38fce8ff47e8ee095ab99f7e468bdada55",
      "EVAL_FIDES_DETECT_POPUP": "564eeace02288ff176e88609be79be200cf8842203592644908079524b6f517e",
      "EVAL_GDPR_LEGAL_COOKIE_DETECT_CMP": "324483a1c9e027722d2bc1b830681d787818d611ef2ddc2347ee4b26091aa9cf",
      "EVAL_GDPR_LEGAL_COOKIE_TEST": "f8a10ed06f40593c4de80cc685df893f3724c67f0ae40bf7aa78214ae7d219dc",
      "EVAL_IUBENDA_1": "e7d198aaa5f0968abc22824eb5d1de33079fcbdb04d52c23d487045c49f06569",
      "EVAL_KLARO_1": "fa525b45ecafeb799f9831c678d27cd631a333a91c4f26ad419c859a979615e0",
      "EVAL_KLARO_OPEN_POPUP": "f43338b631e69822e5e511632b1388dd9be684c5c3efb98db05d769ef9e8c0c4",
      "EVAL_KLARO_TRY_API_OPT_OUT": "51f18016f6740d51194463c95f6ed0e5ad9a83d971d42684a1e9bffe22da3b88",
      "EVAL_KROWN_COOKIE_BANNER_TEST": "f2c718848408a55deaffd753150c7fb0a5c0d26bdd383bfad4f52926b5de98f8",
      "EVAL_MICROSOFT_0": "5e5d22922de11bf4f1925ee79dc72a1c88367ba3f53958e8e50453a9cbeecb0d",
      "EVAL_MICROSOFT_2": "0002d9bb0b90c7c2bb3b2420ce1298d088de1656a90816ff714230eef2588af4",
      "EVAL_MOOVE_0": "9d861585fff4b6c850c30d30b397270447b1ed1f77cfceb4443e75c54e0ec859",
      "EVAL_NHNIEUWS_TEST": "8951c6dddb8acd48b7dedf91c639cdf6d958897ccf6d4c6c500349bb48bdd873",
      "EVAL_PANDECTES_TEST": "5190b8133f495652b44932e8b659ccf369ae980a24c45966611445b9820f9eac",
      "EVAL_SHOPIFY_TEST": "b54d1b92879008c8664b99bc8b4882fbb6c06bf91295856b7aa66c6b907bb8db",
      "EVAL_SKYSCANNER_TEST": "4ac1d97d4953446712a08b0a9278b540c52de89d50944cbae6f3186e1ca23e65",
      "EVAL_STEAMPOWERED_0": "9c5f6b0c4e17da0d889f0421bb98e9b5a02c3978d103a6e0be7b86752881fc4b",
      "EVAL_TARTEAUCITRON_2": "a35a752ffe20af5a4e73f4b01060667d0ce33a597dc85de2c74990ba59fa00a6",
      "EVAL_TEALIUM_0": "f155704cfcbf1fea0cab3ed5bc6745912cd06a5a99ae96ee4e18037e02c4876c",
      "EVAL_TEALIUM_1": "19c17126f3974282908a6af53d4aafffb1453f38fb6e70e612a4d121665aea36",
      "EVAL_TEALIUM_3": "317e49b21a3a5601d2e5710dac66b430678f71891f080e0fb48a7bbdd2885460",
      "EVAL_TEALIUM_DONOTSELL": "b4ca60ea538c96ed5807671c478179c649feb695c0bffca825ef2764ea2182c1",
      "EVAL_TEALIUM_DONOTSELL_CHECK": "5dbf65e9974ad2fd12f0a08d68ca2ece26b151e5a10ec542371ddc2dbdd711cd",
      "EVAL_TESTCMP_0": "839b1c05bed99682acb7d994cad6e09ed86585f495d4e2e1479f6f76586005b5",
      "EVAL_TESTCMP_STEP": "bced64c549104aec987740a1217135050b8fae64e8ac0699d7414fcb9fa4cd40",
      "EVAL_THEFREEDICTIONARY_0": "e6774454936f6300fbf3552cb60b8b0a2b2b7f4395c3d79d0eeb63607ba94a34",
      "EVAL_USERCENTRICS_BUTTON_0": "f9f91c4530d325dd6521584c04fd879af974b0fc3f04b0ce5bfe7715ebc2e536",
      "EVAL_WAITROSE_0": "a55dc601751842467879efa74ec699fe50ef9bfee7ed725809cac936a7f9226b"
    }
  },
  "reviewedChecksWhy": "The page functions in detect and test steps only read cookies, local storage or a consent object and return true or false; all 28 read on 29 Oct 2026 (17.0.0): none clicks, writes or accepts."
}
