Version in base suite: 128.14.0esr-1~deb12u1 Version in overlay suite: 140.6.0esr-1~deb12u1 Base version: firefox-esr_140.6.0esr-1~deb12u1 Target version: firefox-esr_140.7.0esr-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/f/firefox-esr/firefox-esr_140.6.0esr-1~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/f/firefox-esr/firefox-esr_140.7.0esr-1~deb12u1.dsc .taskcluster.yml | 2 CLOBBER | 2 Cargo.lock | 1 browser/base/content/browser-fullScreenAndPointerLock.js | 7 browser/base/content/browser.js | 2 browser/components/downloads/DownloadsViewUI.sys.mjs | 9 browser/components/firefoxview/fxview-tab-list.mjs | 4 browser/components/firefoxview/helpers.mjs | 4 browser/components/firefoxview/history.mjs | 2 browser/config/version.txt | 2 browser/config/version_display.txt | 2 browser/extensions/formautofill/test/browser/browser_dynamic_form_refill_on_site_clearing_values.js | 56 config/milestone.txt | 2 debian/changelog | 11 docshell/base/ChildProcessChannelListener.h | 4 dom/base/TimeoutManager.cpp | 11 dom/base/TimeoutManager.h | 5 dom/events/test/clipboard/browser.toml | 6 dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_dismiss.js | 64 dom/html/nsHTMLDocument.cpp | 4 dom/media/gmp/GMPParent.cpp | 4 dom/media/webrtc/libwebrtcglue/VideoConduit.cpp | 19 dom/media/webrtc/libwebrtcglue/VideoStreamFactory.cpp | 13 dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp | 2 dom/media/webrtc/transport/ipc/WebrtcTCPSocket.cpp | 68 dom/svg/SVGContentUtils.cpp | 27 dom/webauthn/MacOSWebAuthnService.mm | 26 dom/webauthn/PWebAuthnTransaction.ipdl | 2 dom/webauthn/PublicKeyCredential.cpp | 4 dom/webauthn/WebAuthnArgs.cpp | 12 dom/webauthn/WebAuthnHandler.cpp | 4 dom/webauthn/WinWebAuthnService.cpp | 52 dom/webauthn/nsIWebAuthnArgs.idl | 4 dom/webauthn/tests/test_webauthn_serialization.html | 24 dom/webauthn/winwebauthn/.gitignore | 330 dom/webauthn/winwebauthn/README.md | 14 dom/webauthn/winwebauthn/moz.yaml | 26 dom/webauthn/winwebauthn/webauthn.h | 252 dom/webidl/WebAuthentication.webidl | 2 dom/webtransport/parent/WebTransportParent.h | 6 dom/workers/WorkerPrivate.cpp | 9 dom/workers/WorkerPrivate.h | 6 dom/workers/WorkerScope.cpp | 3 editor/libeditor/HTMLEditUtils.cpp | 52 editor/libeditor/HTMLEditUtils.h | 9 editor/libeditor/HTMLEditorDeleteHandler.cpp | 79 editor/libeditor/WSRunScanner.h | 25 editor/libeditor/WhiteSpaceVisibilityKeeper.cpp | 26 extensions/auth/nsAuthGSSAPI.cpp | 45 extensions/auth/nsAuthGSSAPI.h | 6 gfx/2d/DrawTargetCairo.cpp | 46 gfx/2d/HelpersCairo.h | 12 gfx/layers/SourceSurfaceSharedData.cpp | 4 gfx/thebes/StandardFonts-macos.inc | 1 ipc/glue/BackgroundUtils.cpp | 6 js/src/debugger/Debugger.cpp | 3 js/src/gc/BufferAllocator.cpp | 7 js/src/jit-test/tests/debug/bug-1995637.js | 66 js/src/jit-test/tests/debug/bug-1999464.js | 6 js/src/jit-test/tests/debug/bug-2002646.js | 8 js/src/jit-test/tests/debug/bug-2003588.js | 9 js/src/jit-test/tests/debug/bug-2003809.js | 8 js/src/jit-test/tests/gc/bug-2003100.js | 9 js/src/proxy/CrossCompartmentWrapper.cpp | 20 js/xpconnect/loader/ScriptPreloader.cpp | 42 js/xpconnect/loader/ScriptPreloader.h | 19 layout/generic/nsBlockFrame.cpp | 4 layout/painting/nsDisplayList.h | 2 media/webrtc/signaling/gtest/videoconduit_unittests.cpp | 37 mobile/android/focus-android/tools/gradle/versionCode.gradle | 105 netwerk/base/LoadInfo.cpp | 2 netwerk/base/LoadInfo.h | 1 netwerk/dns/effective_tld_names.dat | 135 netwerk/ipc/NeckoChannelParams.ipdlh | 1 security/ct/CTKnownLogs.h | 34 security/manager/ssl/StaticHPKPins.h | 2 security/manager/ssl/nsSTSPreloadList.inc | 2534 +---- security/manager/tools/log_list.json | 80 security/sandbox/common/test/SandboxTestingChildTests.h | 27 security/sandbox/linux/SandboxFilter.cpp | 10 services/settings/dumps/blocklists/addons-bloomfilters.json | 4261 +++++++++- services/settings/dumps/main/devtools-compatibility-browsers.json | 392 services/settings/dumps/main/password-rules.json | 212 services/settings/dumps/main/search-config-icons.json | 36 services/settings/dumps/main/websites-with-shared-credential-backends.json | 93 services/settings/dumps/security-state/intermediates.json | 687 - services/settings/dumps/security-state/onecrl.json | 242 sourcestamp.txt | 4 taskcluster/config.yml | 45 taskcluster/gecko_taskgraph/transforms/fetch.py | 4 taskcluster/gecko_taskgraph/transforms/test/__init__.py | 1 taskcluster/gecko_taskgraph/transforms/test/other.py | 3 taskcluster/gecko_taskgraph/transforms/test/worker.py | 1 taskcluster/gecko_taskgraph/util/chunking.py | 20 taskcluster/kinds/fetch/toolchains.yml | 8 taskcluster/kinds/source-test/mozlint-android.yml | 3 taskcluster/kinds/update/kind.yml | 2 testing/web-platform/meta/editing/run/delete.html.ini | 6 testing/web-platform/meta/editing/run/forwarddelete.html.ini | 3 testing/web-platform/meta/editing/run/multitest.html.ini | 3 testing/web-platform/tests/editing/data/delete.js | 16 testing/web-platform/tests/editing/data/forwarddelete.js | 16 testing/web-platform/tests/editing/data/multitest.js | 21 testing/web-platform/tests/svg/types/scripted/SVGGraphicsElement-padding.svg | 33 toolkit/components/formautofill/shared/FormAutofillHandler.sys.mjs | 2 toolkit/components/glean/bindings/private/Ping.cpp | 3 toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs | 3 toolkit/components/pdfjs/test/browser.toml | 3 toolkit/components/pdfjs/test/browser_pdfjs_response_link.js | 46 toolkit/components/pdfjs/test/pdf_response_link.sjs | 24 toolkit/components/viaduct/ViaductRequest.cpp | 3 toolkit/crashreporter/crash_helper_client/src/lib.rs | 55 toolkit/crashreporter/crash_helper_client/src/platform/android.rs | 11 toolkit/crashreporter/crash_helper_client/src/platform/unix.rs | 1 toolkit/crashreporter/crash_helper_client/src/platform/windows.rs | 1 toolkit/crashreporter/crash_helper_common/Cargo.toml | 1 toolkit/crashreporter/crash_helper_common/src/breakpad/unix_strings.rs | 2 toolkit/crashreporter/crash_helper_common/src/breakpad/windows_strings.rs | 2 toolkit/crashreporter/crash_helper_common/src/errors.rs | 61 toolkit/crashreporter/crash_helper_common/src/ipc_channel.rs | 18 toolkit/crashreporter/crash_helper_common/src/ipc_channel/unix.rs | 10 toolkit/crashreporter/crash_helper_common/src/ipc_channel/windows.rs | 33 toolkit/crashreporter/crash_helper_common/src/ipc_connector.rs | 16 toolkit/crashreporter/crash_helper_common/src/ipc_connector/unix.rs | 156 toolkit/crashreporter/crash_helper_common/src/ipc_connector/windows.rs | 287 toolkit/crashreporter/crash_helper_common/src/ipc_listener.rs | 24 toolkit/crashreporter/crash_helper_common/src/ipc_listener/windows.rs | 104 toolkit/crashreporter/crash_helper_common/src/ipc_queue.rs | 53 toolkit/crashreporter/crash_helper_common/src/ipc_queue/unix.rs | 93 toolkit/crashreporter/crash_helper_common/src/ipc_queue/windows.rs | 281 toolkit/crashreporter/crash_helper_common/src/lib.rs | 16 toolkit/crashreporter/crash_helper_common/src/messages.rs | 112 toolkit/crashreporter/crash_helper_common/src/platform.rs | 6 toolkit/crashreporter/crash_helper_common/src/platform/linux.rs | 44 toolkit/crashreporter/crash_helper_common/src/platform/macos.rs | 37 toolkit/crashreporter/crash_helper_common/src/platform/windows.rs | 287 toolkit/crashreporter/crash_helper_server/src/crash_generation.rs | 15 toolkit/crashreporter/crash_helper_server/src/ipc_server.rs | 135 toolkit/crashreporter/crash_helper_server/src/ipc_server/unix.rs | 65 toolkit/crashreporter/crash_helper_server/src/ipc_server/windows.rs | 96 toolkit/crashreporter/crash_helper_server/src/lib.rs | 93 toolkit/crashreporter/nsExceptionHandler.cpp | 3 toolkit/modules/BrowserUtils.sys.mjs | 61 toolkit/modules/ClipboardContextMenu.sys.mjs | 1 toolkit/modules/tests/xpcshell/test_BrowserUtils_urlFormatting.js | 69 toolkit/mozapps/downloads/DownloadUtils.sys.mjs | 86 toolkit/mozapps/downloads/tests/browser/browser_unknownContentType_blob.js | 2 toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js | 31 toolkit/system/gnome/nsAlertsIconListener.cpp | 4 tools/tryselect/test/test_fuzzy.py | 5 tools/tryselect/test/test_task_configs.py | 16 xpcom/ds/nsTArray.h | 24 xpcom/ds/nsTHashtable.h | 13 153 files changed, 8914 insertions(+), 4303 deletions(-) dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmp9ie3ohpj/firefox-esr_140.6.0esr-1~deb12u1.dsc: no acceptable signature found dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmp9ie3ohpj/firefox-esr_140.7.0esr-1~deb12u1.dsc: no acceptable signature found diff -Nru firefox-esr-140.6.0esr/.taskcluster.yml firefox-esr-140.7.0esr/.taskcluster.yml --- firefox-esr-140.6.0esr/.taskcluster.yml 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/.taskcluster.yml 2026-01-06 21:09:41.000000000 +0000 @@ -101,7 +101,7 @@ description: 'Created by a [cron task](https://firefox-ci-tc.services.mozilla.com/tasks/${cron.task_id}) (${treeherder_link})' provisionerId: "${trustDomain}-${repository.level}" - workerType: "decision-gcp" + workerType: "decision" tags: $if: 'tasks_for == "hg-push"' diff -Nru firefox-esr-140.6.0esr/CLOBBER firefox-esr-140.7.0esr/CLOBBER --- firefox-esr-140.6.0esr/CLOBBER 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/CLOBBER 2026-01-06 21:09:41.000000000 +0000 @@ -22,4 +22,4 @@ # changes to stick? As of bug 928195, this shouldn't be necessary! Please # don't change CLOBBER for WebIDL changes any more. -Merge day clobber 2025-11-10 \ No newline at end of file +Merge day clobber 2025-12-08 \ No newline at end of file diff -Nru firefox-esr-140.6.0esr/Cargo.lock firefox-esr-140.7.0esr/Cargo.lock --- firefox-esr-140.6.0esr/Cargo.lock 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/Cargo.lock 2026-01-06 21:09:41.000000000 +0000 @@ -1166,6 +1166,7 @@ name = "crash_helper_common" version = "0.1.0" dependencies = [ + "getrandom 0.3.3", "minidump-writer", "nix 0.30.1", "num-derive", diff -Nru firefox-esr-140.6.0esr/browser/base/content/browser-fullScreenAndPointerLock.js firefox-esr-140.7.0esr/browser/base/content/browser-fullScreenAndPointerLock.js --- firefox-esr-140.6.0esr/browser/base/content/browser-fullScreenAndPointerLock.js 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/browser/base/content/browser-fullScreenAndPointerLock.js 2026-01-06 21:09:41.000000000 +0000 @@ -103,10 +103,9 @@ } else { textElem.removeAttribute("hidden"); // Document's principal's URI has a host. Display a warning including it. - let { DownloadUtils } = ChromeUtils.importESModule( - "resource://gre/modules/DownloadUtils.sys.mjs" - ); - let displayHost = DownloadUtils.getURIHost(uri.spec)[0]; + let displayHost = BrowserUtils.formatURIForDisplay(uri, { + onlyBaseDomain: true, + }); let l10nString = { "fullscreen-warning": "fullscreen-warning-domain", "pointerlock-warning": "pointerlock-warning-domain", diff -Nru firefox-esr-140.6.0esr/browser/base/content/browser.js firefox-esr-140.7.0esr/browser/base/content/browser.js --- firefox-esr-140.6.0esr/browser/base/content/browser.js 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/browser/base/content/browser.js 2026-01-06 21:09:41.000000000 +0000 @@ -2230,7 +2230,7 @@ // Ensure we close any remaining open locationspecific panels if (!isSameDocument) { - closeOpenPanels("panel[locationspecific='true']"); + closeOpenPanels(":is(panel, menupopup)[locationspecific='true']"); } gPermissionPanel.onLocationChange(); diff -Nru firefox-esr-140.6.0esr/browser/components/downloads/DownloadsViewUI.sys.mjs firefox-esr-140.7.0esr/browser/components/downloads/DownloadsViewUI.sys.mjs --- firefox-esr-140.6.0esr/browser/components/downloads/DownloadsViewUI.sys.mjs 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/browser/components/downloads/DownloadsViewUI.sys.mjs 2026-01-06 21:09:41.000000000 +0000 @@ -12,6 +12,7 @@ const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { + BrowserUtils: "resource://gre/modules/BrowserUtils.sys.mjs", BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.sys.mjs", DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs", Downloads: "resource://gre/modules/Downloads.sys.mjs", @@ -600,7 +601,13 @@ this.showStatus(stateLabel, hoverStatus); return; } - let [displayHost] = lazy.DownloadUtils.getURIHost(this.download.source.url); + let uri = URL.parse(this.download.source.url)?.URI; + let displayHost = uri + ? lazy.BrowserUtils.formatURIForDisplay(uri, { + onlyBaseDomain: true, + }) + : ""; + let [displayDate] = lazy.DownloadUtils.getReadableDates( new Date(this.download.endTime) ); diff -Nru firefox-esr-140.6.0esr/browser/components/firefoxview/fxview-tab-list.mjs firefox-esr-140.7.0esr/browser/components/firefoxview/fxview-tab-list.mjs --- firefox-esr-140.6.0esr/browser/components/firefoxview/fxview-tab-list.mjs 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/browser/components/firefoxview/fxview-tab-list.mjs 2026-01-06 21:09:41.000000000 +0000 @@ -513,7 +513,9 @@ formatURIForDisplay(uriString) { return !window.IS_STORYBOOK - ? lazy.BrowserUtils.formatURIStringForDisplay(uriString) + ? lazy.BrowserUtils.formatURIStringForDisplay(uriString, { + showFilenameForLocalURIs: true, + }) : uriString; } diff -Nru firefox-esr-140.6.0esr/browser/components/firefoxview/helpers.mjs firefox-esr-140.7.0esr/browser/components/firefoxview/helpers.mjs --- firefox-esr-140.6.0esr/browser/components/firefoxview/helpers.mjs 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/browser/components/firefoxview/helpers.mjs 2026-01-06 21:09:41.000000000 +0000 @@ -24,7 +24,9 @@ export const MAX_TABS_FOR_RECENT_BROWSING = 5; export function formatURIForDisplay(uriString) { - return lazy.BrowserUtils.formatURIStringForDisplay(uriString); + return lazy.BrowserUtils.formatURIStringForDisplay(uriString, { + showFilenameForLocalURIs: true, + }); } export function convertTimestamp( diff -Nru firefox-esr-140.6.0esr/browser/components/firefoxview/history.mjs firefox-esr-140.7.0esr/browser/components/firefoxview/history.mjs --- firefox-esr-140.6.0esr/browser/components/firefoxview/history.mjs 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/browser/components/firefoxview/history.mjs 2026-01-06 21:09:41.000000000 +0000 @@ -18,6 +18,7 @@ ChromeUtils.defineESModuleGetters(lazy, { HistoryController: "resource:///modules/HistoryController.sys.mjs", + PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.sys.mjs", ProfileAge: "resource://gre/modules/ProfileAge.sys.mjs", }); @@ -248,6 +249,7 @@ @click=${this.openInNewPrivateWindow} data-l10n-id="fxviewtabrow-open-in-private-window" data-l10n-attrs="accesskey" + ?hidden=${!lazy.PrivateBrowsingUtils.enabled} >
{ await removeAllRecords(); @@ -101,7 +102,7 @@ /* eslint-disable mozilla/no-arbitrary-setTimeout */ await new Promise(resolve => { - setTimeout(resolve, FormAutofill.refillOnSiteClearingFields); + setTimeout(resolve, FormAutofill.refillOnSiteClearingFieldsTimeout); }); return await SpecialPowers.spawn( @@ -116,3 +117,56 @@ Assert.equal(orgaValue, "", "Element was not refilled"); } ); + +add_task(async function address_field_not_refilled_after_reformat_by_site() { + const value = await BrowserTestUtils.withNewTab( + CREDITCARD_FORM_URL, + async browser => { + const selectorToTriggerAutocompletion = "#cc-number"; + const elementValueToVerifyAutofill = TEST_CREDIT_CARD_1["cc-number"]; + + info("Triggering autocompletion."); + await openPopupOn(browser, selectorToTriggerAutocompletion); + await BrowserTestUtils.synthesizeKey("VK_DOWN", {}, browser); + await BrowserTestUtils.synthesizeKey("VK_RETURN", {}, browser); + await waitForAutofill( + browser, + selectorToTriggerAutocompletion, + elementValueToVerifyAutofill + ); + + const formatValue = TEST_CREDIT_CARD_1["cc-number"] + .replace(/(.{4})/g, "$1 ") + .trim(); + await SpecialPowers.spawn( + browser, + [selectorToTriggerAutocompletion, formatValue], + async (ccNumberSelector, reformatValue) => { + const ccNumberInput = + content.document.querySelector(ccNumberSelector); + + info("Simulating site reformats an input"); + ccNumberInput.value = reformatValue; + } + ); + + /* eslint-disable mozilla/no-arbitrary-setTimeout */ + await new Promise(resolve => { + setTimeout(resolve, FormAutofill.refillOnSiteClearingFieldsTimeout); + }); + + return await SpecialPowers.spawn( + browser, + [selectorToTriggerAutocompletion], + async ccNumberSelector => { + return content.document.querySelector(ccNumberSelector).value; + } + ); + } + ); + + const formatValue = TEST_CREDIT_CARD_1["cc-number"] + .replace(/(.{4})/g, "$1 ") + .trim(); + Assert.equal(value, formatValue, "Element was not refilled"); +}); diff -Nru firefox-esr-140.6.0esr/config/milestone.txt firefox-esr-140.7.0esr/config/milestone.txt --- firefox-esr-140.6.0esr/config/milestone.txt 2025-12-01 18:15:29.000000000 +0000 +++ firefox-esr-140.7.0esr/config/milestone.txt 2026-01-06 21:09:41.000000000 +0000 @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -140.6.0 +140.7.0 diff -Nru firefox-esr-140.6.0esr/debian/changelog firefox-esr-140.7.0esr/debian/changelog --- firefox-esr-140.6.0esr/debian/changelog 2025-12-09 22:02:19.000000000 +0000 +++ firefox-esr-140.7.0esr/debian/changelog 2026-01-13 23:04:40.000000000 +0000 @@ -1,3 +1,14 @@ +firefox-esr (140.7.0esr-1~deb12u1) bookworm-security; urgency=medium + + * New upstream release. + * Fixes for mfsa2026-03, also known as: + CVE-2026-0877, CVE-2026-0878, CVE-2026-0879, CVE-2026-0880, + CVE-2026-0882, CVE-2025-14327, CVE-2026-0883, CVE-2026-0884, + CVE-2026-0885, CVE-2026-0886, CVE-2026-0887, CVE-2026-0890, + CVE-2026-0891. + + -- Mike Hommey Wed, 14 Jan 2026 08:04:40 +0900 + firefox-esr (140.6.0esr-1~deb12u1) bookworm-security; urgency=medium * New upstream release. diff -Nru firefox-esr-140.6.0esr/docshell/base/ChildProcessChannelListener.h firefox-esr-140.7.0esr/docshell/base/ChildProcessChannelListener.h --- firefox-esr-140.6.0esr/docshell/base/ChildProcessChannelListener.h 2025-12-01 18:15:30.000000000 +0000 +++ firefox-esr-140.7.0esr/docshell/base/ChildProcessChannelListener.h 2026-01-06 21:09:41.000000000 +0000 @@ -45,8 +45,8 @@ }; // TODO Backtrack. - nsTHashMap mCallbacks; - nsTHashMap mChannelArgs; + nsTHashMap, Callback> mCallbacks; + nsTHashMap, CallbackArgs> mChannelArgs; }; } // namespace mozilla::dom diff -Nru firefox-esr-140.6.0esr/dom/base/TimeoutManager.cpp firefox-esr-140.7.0esr/dom/base/TimeoutManager.cpp --- firefox-esr-140.6.0esr/dom/base/TimeoutManager.cpp 2025-12-01 18:15:30.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/base/TimeoutManager.cpp 2026-01-06 21:09:42.000000000 +0000 @@ -104,6 +104,10 @@ return true; } + if (mIsChromeWorker) { + return true; + } + // Check if we're playing audio if (mGlobalObject.IsPlayingAudio()) { return true; @@ -322,7 +326,7 @@ TimeDuration result = aTimeout->mInterval; if (aTimeout->mNestingLevel >= - StaticPrefs::dom_clamp_timeout_nesting_level()) { + StaticPrefs::dom_clamp_timeout_nesting_level() && !mIsChromeWorker) { uint32_t minTimeoutValue = StaticPrefs::dom_min_timeout_value(); result = TimeDuration::Max(result, TimeDuration::FromMilliseconds(minTimeoutValue)); @@ -404,7 +408,7 @@ TimeoutManager::TimeoutManager(nsIGlobalObject& aHandle, uint32_t aMaxIdleDeferMS, - nsISerialEventTarget* aEventTarget) + nsISerialEventTarget* aEventTarget, bool aIsChromeWorker) : mGlobalObject(aHandle), mExecutor(new TimeoutExecutor(this, false, 0)), mIdleExecutor(new TimeoutExecutor(this, true, aMaxIdleDeferMS)), @@ -425,7 +429,8 @@ mBudgetThrottleTimeouts(false), mIsLoading(false), mEventTarget(aEventTarget), - mIsWindow(aHandle.GetAsInnerWindow()) { + mIsWindow(aHandle.GetAsInnerWindow()), + mIsChromeWorker(aIsChromeWorker) { MOZ_LOG(gTimeoutLog, LogLevel::Debug, ("TimeoutManager %p created, tracking bucketing %s\n", this, StaticPrefs::privacy_trackingprotection_annotate_channels() diff -Nru firefox-esr-140.6.0esr/dom/base/TimeoutManager.h firefox-esr-140.7.0esr/dom/base/TimeoutManager.h --- firefox-esr-140.6.0esr/dom/base/TimeoutManager.h 2025-12-01 18:15:30.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/base/TimeoutManager.h 2026-01-06 21:09:42.000000000 +0000 @@ -30,7 +30,8 @@ public: TimeoutManager(nsIGlobalObject& aHandle, uint32_t aMaxIdleDeferMS, - nsISerialEventTarget* aEventTarget); + nsISerialEventTarget* aEventTarget, + bool aIsChromeWorker = false); ~TimeoutManager(); TimeoutManager(const TimeoutManager& rhs) = delete; void operator=(const TimeoutManager& rhs) = delete; @@ -270,6 +271,8 @@ const bool mIsWindow; + const bool mIsChromeWorker; + uint32_t mNestingLevel{0}; static uint32_t sNestingLevel; diff -Nru firefox-esr-140.6.0esr/dom/events/test/clipboard/browser.toml firefox-esr-140.7.0esr/dom/events/test/clipboard/browser.toml --- firefox-esr-140.6.0esr/dom/events/test/clipboard/browser.toml 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/events/test/clipboard/browser.toml 2026-01-06 21:09:43.000000000 +0000 @@ -10,6 +10,12 @@ run-if = ["os != 'win'"] # The popupmenus dismiss when access keys for disabled items are pressed on windows skip-if = ["os == 'mac' && verify"] +["browser_navigator_clipboard_contextmenu_dismiss.js"] +support-files = [ + "file_toplevel.html", + "file_iframe.html", +] + ["browser_navigator_clipboard_contextmenu_suppression.js"] support-files = [ "file_toplevel.html", diff -Nru firefox-esr-140.6.0esr/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_dismiss.js firefox-esr-140.7.0esr/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_dismiss.js --- firefox-esr-140.6.0esr/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_dismiss.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/events/test/clipboard/browser_navigator_clipboard_contextmenu_dismiss.js 2026-01-06 21:09:43.000000000 +0000 @@ -0,0 +1,64 @@ +/* -*- Mode: JavaScript; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const kBaseUrlForContent = getRootDirectory(gTestPath).replace( + "chrome://mochitests/content", + "https://example.com" +); +const kContentFileUrl = kBaseUrlForContent + "file_toplevel.html"; +Services.scriptloader.loadSubScript( + "chrome://mochitests/content/browser/gfx/layers/apz/test/mochitest/apz_test_native_event_utils.js", + this +); + +async function readText(aBrowser) { + return SpecialPowers.spawn(aBrowser, [], () => { + content.document.notifyUserGestureActivation(); + content.eval(`navigator.clipboard.readText();`); + }); +} + +add_task(async function test_context_menu_dimiss_tab_navigate() { + await BrowserTestUtils.withNewTab(kContentFileUrl, async aBrowser => { + info(`Randomized text to avoid overlappings with other tests`); + await promiseWritingRandomTextToClipboard(); + + info(`Wait for paste context menu is shown`); + let pasteButtonIsShown = promisePasteButtonIsShown(); + await readText(aBrowser); + await pasteButtonIsShown; + + info("Navigate tab"); + let pasteButtonIsHidden = promisePasteButtonIsHidden(); + aBrowser.loadURI(Services.io.newURI("https://example.com/"), { + triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(), + }); + + info(`Wait for paste context menu is hidden`); + await pasteButtonIsHidden; + }); +}); + +add_task(async function test_context_menu_dimiss_tab_reload() { + await BrowserTestUtils.withNewTab(kContentFileUrl, async aBrowser => { + info(`Randomized text to avoid overlappings with other tests`); + await promiseWritingRandomTextToClipboard(); + + info(`Wait for paste context menu is shown`); + let pasteButtonIsShown = promisePasteButtonIsShown(); + await readText(aBrowser); + await pasteButtonIsShown; + + info("Reload tab"); + let pasteButtonIsHidden = promisePasteButtonIsHidden(); + await BrowserTestUtils.reloadTab(gBrowser.selectedTab); + + info(`Wait for paste context menu is hidden`); + await pasteButtonIsHidden; + }); +}); diff -Nru firefox-esr-140.6.0esr/dom/html/nsHTMLDocument.cpp firefox-esr-140.7.0esr/dom/html/nsHTMLDocument.cpp --- firefox-esr-140.6.0esr/dom/html/nsHTMLDocument.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/html/nsHTMLDocument.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -596,6 +596,10 @@ aRv.NoteJSContextException(aCx); return; } + + if (v.isNullOrUndefined()) { + return; + } } else { // Step 3. Otherwise, if elements has only one element, return that // element. diff -Nru firefox-esr-140.6.0esr/dom/media/gmp/GMPParent.cpp firefox-esr-140.7.0esr/dom/media/gmp/GMPParent.cpp --- firefox-esr-140.6.0esr/dom/media/gmp/GMPParent.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/media/gmp/GMPParent.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -657,13 +657,11 @@ self->DeleteProcess(); }, [self](const ipc::ResponseRejectReason&) { + // We crashed during shutdown, ActorDestroy will perform cleanup. GMP_LOG_DEBUG( "GMPParent[%p|childPid=%d] DeleteProcess: Shutdown handshake " "error.", self.get(), self->mChildPid); - self->mState = GMPState::Closed; - self->Close(); - self->DeleteProcess(); }); return; } diff -Nru firefox-esr-140.6.0esr/dom/media/webrtc/libwebrtcglue/VideoConduit.cpp firefox-esr-140.7.0esr/dom/media/webrtc/libwebrtcglue/VideoConduit.cpp --- firefox-esr-140.6.0esr/dom/media/webrtc/libwebrtcglue/VideoConduit.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/media/webrtc/libwebrtcglue/VideoConduit.cpp 2026-01-06 21:09:42.000000000 +0000 @@ -780,6 +780,17 @@ .valueOr(-1); })()); + // Set each layer's max-bitrate explicitly or libwebrtc may ignore all + // stream-specific max-bitrate settings later on, as provided by the + // VideoStreamFactory. Default to our max of 10Mbps, overriden by + // SDP/JS. + int maxBps = KBPS(10000); + maxBps = MinIgnoreZero(maxBps, mPrefMaxBitrate); + maxBps = MinIgnoreZero(maxBps, mNegotiatedMaxBitrate); + maxBps = MinIgnoreZero(maxBps, + static_cast(encodingConstraints.maxBr)); + video_stream.max_bitrate_bps = maxBps; + // At this time, other values are not used until after // CreateEncoderStreams(). We fill these in directly from the codec // config in VideoStreamFactory. @@ -940,6 +951,14 @@ mEncoderConfig.number_of_streams, "Each video substream must have a corresponding ssrc."); mEncoderConfig.video_stream_factory = CreateVideoStreamFactory(); + for (const auto& stream : mEncoderConfig.simulcast_layers) { + CSFLogDebug( + LOGTAG, + "%s Reconfigure with simulcast stream maxFps=%d, " + "bitrate=[%dkbps, %dkbps, %dkbps]", + __FUNCTION__, stream.max_framerate, stream.min_bitrate_bps / 1000, + stream.target_bitrate_bps / 1000, stream.max_bitrate_bps / 1000); + } mSendStream->ReconfigureVideoEncoder(mEncoderConfig.Copy()); } if (sendSourceUpdateNeeded && mTrackSource) { diff -Nru firefox-esr-140.6.0esr/dom/media/webrtc/libwebrtcglue/VideoStreamFactory.cpp firefox-esr-140.7.0esr/dom/media/webrtc/libwebrtcglue/VideoStreamFactory.cpp --- firefox-esr-140.6.0esr/dom/media/webrtc/libwebrtcglue/VideoStreamFactory.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/media/webrtc/libwebrtcglue/VideoStreamFactory.cpp 2026-01-06 21:09:42.000000000 +0000 @@ -223,15 +223,20 @@ __FUNCTION__, encoding.rid.c_str()); } - CSFLogInfo(LOGTAG, "%s Stream with RID %s maxFps=%d (global max fps = %u)", - __FUNCTION__, encoding.rid.c_str(), video_stream.max_framerate, - (unsigned)mMaxFramerateForAllStreams); - SelectBitrates({video_stream.width, video_stream.height}, mMinBitrate, mStartBitrate, SaturatingCast(encoding.constraints.maxBr), mPrefMaxBitrate, mNegotiatedMaxBitrate, video_stream); + CSFLogInfo(LOGTAG, + "%s Stream with RID %s maxFps=%d (global max fps = %u), " + "bitrate=[%dkbps, %dkbps, %dkbps]", + __FUNCTION__, encoding.rid.c_str(), video_stream.max_framerate, + (unsigned)mMaxFramerateForAllStreams, + video_stream.min_bitrate_bps / 1000, + video_stream.target_bitrate_bps / 1000, + video_stream.max_bitrate_bps / 1000); + video_stream.bitrate_priority = aConfig.bitrate_priority; video_stream.max_qp = kQpMax; diff -Nru firefox-esr-140.6.0esr/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp firefox-esr-140.7.0esr/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp --- firefox-esr-140.6.0esr/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/media/webrtc/libwebrtcglue/WebrtcGmpVideoCodec.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -491,6 +491,8 @@ return WEBRTC_VIDEO_CODEC_ERROR; } + GMP_LOG_DEBUG("GMP Encoder %p setting rate %ukbps", this, aNewBitRateKbps); + mNeedKeyframe |= (aOldBitRateKbps == 0 && aNewBitRateKbps != 0); GMPErr err = mGMP->SetRates( diff -Nru firefox-esr-140.6.0esr/dom/media/webrtc/transport/ipc/WebrtcTCPSocket.cpp firefox-esr-140.7.0esr/dom/media/webrtc/transport/ipc/WebrtcTCPSocket.cpp --- firefox-esr-140.6.0esr/dom/media/webrtc/transport/ipc/WebrtcTCPSocket.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/media/webrtc/transport/ipc/WebrtcTCPSocket.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -685,44 +685,52 @@ MOZ_ASSERT(mTransport, "webrtc TCP socket not connected"); MOZ_ASSERT(mSocketIn == in, "wrong input stream"); - char buffer[9216]; - uint32_t remainingCapacity = sizeof(buffer); - uint32_t read = 0; - - while (remainingCapacity > 0) { - uint32_t count = 0; - nsresult rv = mSocketIn->Read(buffer + read, remainingCapacity, &count); - if (rv == NS_BASE_STREAM_WOULD_BLOCK) { - break; - } + while (true) { + char buffer[9216]; + uint32_t remainingCapacity = sizeof(buffer); + uint32_t read = 0; + + while (remainingCapacity > 0) { + uint32_t count = 0; + nsresult rv = mSocketIn->Read(buffer + read, remainingCapacity, &count); + if (rv == NS_BASE_STREAM_WOULD_BLOCK) { + break; + } + + if (NS_FAILED(rv)) { + LOG(("WebrtcTCPSocket::OnInputStreamReady %p failed %u\n", this, + static_cast(rv))); + CloseWithReason(rv); + return rv; + } + + // base stream closed + if (count == 0) { + LOG(("WebrtcTCPSocket::OnInputStreamReady %p connection closed\n", + this)); + CloseWithReason(NS_ERROR_FAILURE); + return NS_OK; + } - if (NS_FAILED(rv)) { - LOG(("WebrtcTCPSocket::OnInputStreamReady %p failed %u\n", this, - static_cast(rv))); - CloseWithReason(rv); - return rv; + remainingCapacity -= count; + read += count; } - // base stream closed - if (count == 0) { - LOG(("WebrtcTCPSocket::OnInputStreamReady %p connection closed\n", this)); - CloseWithReason(NS_ERROR_FAILURE); - return NS_OK; - } - - remainingCapacity -= count; - read += count; - } + if (read > 0) { + nsTArray array(read); + array.AppendElements(buffer, read); - if (read > 0) { - nsTArray array(read); - array.AppendElements(buffer, read); + InvokeOnRead(std::move(array)); + } - InvokeOnRead(std::move(array)); + if (remainingCapacity != 0) { + // Loop exited above, but not because we ran out of space. We're actually + // done, break out of the while(true) loop. + break; + } } mSocketIn->AsyncWait(this, 0, 0, nullptr); - return NS_OK; } diff -Nru firefox-esr-140.6.0esr/dom/svg/SVGContentUtils.cpp firefox-esr-140.7.0esr/dom/svg/SVGContentUtils.cpp --- firefox-esr-140.6.0esr/dom/svg/SVGContentUtils.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/svg/SVGContentUtils.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -436,9 +436,8 @@ auto postTranslateFrameOffset = [](nsIFrame* aFrame, nsIFrame* aAncestorFrame, gfx::Matrix& aMatrix) { auto point = aFrame->GetOffsetTo(aAncestorFrame); - aMatrix = - aMatrix.PostTranslate(nsPresContext::AppUnitsToFloatCSSPixels(point.x), - nsPresContext::AppUnitsToFloatCSSPixels(point.y)); + aMatrix.PostTranslate(nsPresContext::AppUnitsToFloatCSSPixels(point.x), + nsPresContext::AppUnitsToFloatCSSPixels(point.y)); }; gfxMatrix matrix = getLocalTransformHelper(aElement, aHaveRecursed); @@ -499,8 +498,7 @@ if (frame->IsSVGOuterSVGFrame()) { nsMargin bp = frame->GetUsedBorderAndPadding(); int32_t appUnitsPerCSSPixel = AppUnitsPerCSSPixel(); - float xOffset = NSAppUnitsToFloatPixels(bp.left, appUnitsPerCSSPixel); - float yOffset = NSAppUnitsToFloatPixels(bp.top, appUnitsPerCSSPixel); + nscoord xOffset, yOffset; // See // https://drafts.csswg.org/css-transforms/#valdef-transform-box-fill-box // For elements with associated CSS layout box, the used value for fill-box @@ -508,17 +506,24 @@ switch (frame->StyleDisplay()->mTransformBox) { case StyleTransformBox::FillBox: case StyleTransformBox::ContentBox: - // Apply border/padding separate from the rest of the transform. - // i.e. after it's been transformed - tm.PostTranslate(xOffset, yOffset); + xOffset = bp.left; + yOffset = bp.top; break; case StyleTransformBox::StrokeBox: case StyleTransformBox::ViewBox: - case StyleTransformBox::BorderBox: - // Apply border/padding before we transform the surface. - tm.PreTranslate(xOffset, yOffset); + case StyleTransformBox::BorderBox: { + // Extract the rotation component of the matrix. + float angle = std::atan2(tm._12, tm._11); + float cosAngle = std::cos(angle); + float sinAngle = std::sin(angle); + // Apply that rotation to bp.left and bp.top. + xOffset = bp.left * cosAngle - bp.top * sinAngle; + yOffset = bp.top * cosAngle + bp.left * sinAngle; break; + } } + tm.PostTranslate(NSAppUnitsToFloatPixels(xOffset, appUnitsPerCSSPixel), + NSAppUnitsToFloatPixels(yOffset, appUnitsPerCSSPixel)); } if (!ancestor || !ancestor->IsElement()) { diff -Nru firefox-esr-140.6.0esr/dom/webauthn/MacOSWebAuthnService.mm firefox-esr-140.7.0esr/dom/webauthn/MacOSWebAuthnService.mm --- firefox-esr-140.6.0esr/dom/webauthn/MacOSWebAuthnService.mm 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/MacOSWebAuthnService.mm 2026-01-06 21:09:44.000000000 +0000 @@ -823,6 +823,20 @@ *userVerificationPreference; } + if (__builtin_available(macos 13.5, *)) { + // Show the hybrid transport unless we have a non-empty hint list and + // none of the hints are for the hybrid transport. + bool hasHybridHint = false; + nsTArray hints; + (void)aArgs->GetHints(hints); + for (nsString& hint : hints) { + if (hint.Equals(u"hybrid"_ns)) { + hasHybridHint = true; + } + } + platformRegistrationRequest.shouldShowHybridTransport = + hints.Length() == 0 || hasHybridHint; + } if (__builtin_available(macos 14.0, *)) { bool largeBlobSupportRequired; nsresult rv = @@ -1173,11 +1187,19 @@ *userVerificationPreference; } if (__builtin_available(macos 13.5, *)) { - // Show the hybrid transport option if (1) we have no transport hints - // or (2) at least one allow list entry lists the hybrid transport. + // Show the hybrid transport option if (1) none of the allowlist + // credentials list transports, or (2) at least one allow list entry + // lists the hybrid transport, or (3) the request has the hybrid hint. bool shouldShowHybridTransport = !transports || (transports & MOZ_WEBAUTHN_AUTHENTICATOR_TRANSPORT_ID_HYBRID); + nsTArray hints; + (void)aArgs->GetHints(hints); + for (nsString& hint : hints) { + if (hint.Equals(u"hybrid"_ns)) { + shouldShowHybridTransport = true; + } + } platformAssertionRequest.shouldShowHybridTransport = shouldShowHybridTransport; } diff -Nru firefox-esr-140.6.0esr/dom/webauthn/PWebAuthnTransaction.ipdl firefox-esr-140.7.0esr/dom/webauthn/PWebAuthnTransaction.ipdl --- firefox-esr-140.6.0esr/dom/webauthn/PWebAuthnTransaction.ipdl 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/PWebAuthnTransaction.ipdl 2026-01-06 21:09:44.000000000 +0000 @@ -143,6 +143,7 @@ WebAuthnExtension[] Extensions; WebAuthnAuthenticatorSelection AuthenticatorSelection; nsString attestationConveyancePreference; + nsString[] Hints; }; struct WebAuthnMakeCredentialResult { @@ -168,6 +169,7 @@ WebAuthnExtension[] Extensions; nsString userVerificationRequirement; bool ConditionallyMediated; + nsString[] Hints; }; struct WebAuthnGetAssertionResult { diff -Nru firefox-esr-140.6.0esr/dom/webauthn/PublicKeyCredential.cpp firefox-esr-140.7.0esr/dom/webauthn/PublicKeyCredential.cpp --- firefox-esr-140.6.0esr/dom/webauthn/PublicKeyCredential.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/PublicKeyCredential.cpp 2026-01-06 21:09:42.000000000 +0000 @@ -659,6 +659,8 @@ aResult.mAuthenticatorSelection = aOptions.mAuthenticatorSelection.Value(); } + aResult.mHints = aOptions.mHints; + aResult.mAttestation = aOptions.mAttestation; if (aOptions.mExtensions.WasPassed()) { @@ -752,6 +754,8 @@ aResult.mUserVerification = aOptions.mUserVerification; + aResult.mHints = aOptions.mHints; + if (aOptions.mExtensions.WasPassed()) { if (aOptions.mExtensions.Value().mAppid.WasPassed()) { aResult.mExtensions.mAppid.Construct( diff -Nru firefox-esr-140.6.0esr/dom/webauthn/WebAuthnArgs.cpp firefox-esr-140.7.0esr/dom/webauthn/WebAuthnArgs.cpp --- firefox-esr-140.6.0esr/dom/webauthn/WebAuthnArgs.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/WebAuthnArgs.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -245,6 +245,12 @@ return NS_ERROR_NOT_AVAILABLE; } +NS_IMETHODIMP +WebAuthnRegisterArgs::GetHints(nsTArray& aHints) { + aHints.Assign(mInfo.Hints()); + return NS_OK; +} + NS_IMPL_ISUPPORTS(WebAuthnSignArgs, nsIWebAuthnSignArgs) NS_IMETHODIMP @@ -484,4 +490,10 @@ return NS_ERROR_NOT_AVAILABLE; } +NS_IMETHODIMP +WebAuthnSignArgs::GetHints(nsTArray& aHints) { + aHints.Assign(mInfo.Hints()); + return NS_OK; +} + } // namespace mozilla::dom diff -Nru firefox-esr-140.6.0esr/dom/webauthn/WebAuthnHandler.cpp firefox-esr-140.7.0esr/dom/webauthn/WebAuthnHandler.cpp --- firefox-esr-140.6.0esr/dom/webauthn/WebAuthnHandler.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/WebAuthnHandler.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -392,7 +392,7 @@ WebAuthnMakeCredentialInfo info(rpId, challenge, adjustedTimeout, excludeList, rpInfo, userInfo, coseAlgos, extensions, - authSelection, attestation); + authSelection, attestation, aOptions.mHints); // Set up the transaction state. Fallible operations should not be performed // below this line, as we must not leave the transaction state partially @@ -666,7 +666,7 @@ WebAuthnGetAssertionInfo info( rpId, maybeAppId, challenge, adjustedTimeout, allowList, extensions, - aOptions.mUserVerification, aConditionallyMediated); + aOptions.mUserVerification, aConditionallyMediated, aOptions.mHints); // Set up the transaction state. Fallible operations should not be performed // below this line, as we must not leave the transaction state partially diff -Nru firefox-esr-140.6.0esr/dom/webauthn/WinWebAuthnService.cpp firefox-esr-140.7.0esr/dom/webauthn/WinWebAuthnService.cpp --- firefox-esr-140.6.0esr/dom/webauthn/WinWebAuthnService.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/WinWebAuthnService.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -30,6 +30,10 @@ static bool gWinWebAuthnModuleUnusable = false; static HMODULE gWinWebAuthnModule = 0; +static const LPCWSTR gWebAuthnHintStrings[3] = { + WEBAUTHN_CREDENTIAL_HINT_SECURITY_KEY, + WEBAUTHN_CREDENTIAL_HINT_CLIENT_DEVICE, WEBAUTHN_CREDENTIAL_HINT_HYBRID}; + static decltype(WebAuthNIsUserVerifyingPlatformAuthenticatorAvailable)* gWinWebauthnIsUVPAA = nullptr; static decltype(WebAuthNAuthenticatorMakeCredential)* @@ -50,7 +54,6 @@ gWinWebauthnGetPlatformCredentialList = nullptr; static decltype(WebAuthNFreePlatformCredentialList)* gWinWebauthnFreePlatformCredentialList = nullptr; - } // namespace /*********************************************************************** @@ -177,6 +180,18 @@ } // static +void PrunePublicKeyCredentialHints(const nsTArray& aInHints, + /* out */ nsTArray& aOutHints) { + for (const nsString& inputHint : aInHints) { + for (const LPCWSTR knownHint : gWebAuthnHintStrings) { + if (inputHint.Equals(knownHint)) { + aOutHints.AppendElement(knownHint); + } + } + } +} + +// static bool WinWebAuthnService::AreWebAuthNApisAvailable() { nsresult rv = EnsureWinWebAuthnModuleLoaded(); NS_ENSURE_SUCCESS(rv, false); @@ -594,10 +609,16 @@ winPrivateBrowsing = TRUE; } + nsTArray inputHints; + (void)aArgs->GetHints(inputHints); + + nsTArray hints; + PrunePublicKeyCredentialHints(inputHints, hints); + // MakeCredentialOptions WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS WebAuthNCredentialOptions = { - WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_7, + WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_8, timeout, {0, NULL}, {0, NULL}, @@ -609,13 +630,16 @@ &cancellationId, // CancellationId pExcludeCredentialList, WEBAUTHN_ENTERPRISE_ATTESTATION_NONE, - largeBlobSupport, // LargeBlobSupport - winPreferResidentKey, // PreferResidentKey - winPrivateBrowsing, // BrowserInPrivateMode - winEnablePrf, // EnablePrf - NULL, // LinkedDevice - 0, // size of JsonExt - NULL, // JsonExt + largeBlobSupport, // LargeBlobSupport + winPreferResidentKey, // PreferResidentKey + winPrivateBrowsing, // BrowserInPrivateMode + winEnablePrf, // EnablePrf + NULL, // LinkedDevice + 0, // size of JsonExt + NULL, // JsonExt + NULL, // PRFGlobalEval + (DWORD)hints.Length(), // Size of CredentialHints + hints.Elements(), // CredentialHints }; if (rgExtension.Length() != 0) { @@ -968,6 +992,12 @@ pAllowCredentialList = &allowCredentialList; } + nsTArray inputHints; + (void)aArgs->GetHints(inputHints); + + nsTArray hints; + PrunePublicKeyCredentialHints(inputHints, hints); + uint32_t timeout_u32; Unused << aArgs->GetTimeoutMS(&timeout_u32); DWORD timeout = timeout_u32; @@ -981,7 +1011,7 @@ WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS WebAuthNAssertionOptions = { - WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_7, + WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_8, timeout, {0, NULL}, {0, NULL}, @@ -1001,6 +1031,8 @@ FALSE, // AutoFill 0, // Size of JsonExt NULL, // JsonExt + (DWORD)hints.Length(), // Size of CredentialHints + hints.Elements(), // CredentialHints }; PWEBAUTHN_ASSERTION pWebAuthNAssertion = nullptr; diff -Nru firefox-esr-140.6.0esr/dom/webauthn/nsIWebAuthnArgs.idl firefox-esr-140.7.0esr/dom/webauthn/nsIWebAuthnArgs.idl --- firefox-esr-140.6.0esr/dom/webauthn/nsIWebAuthnArgs.idl 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/nsIWebAuthnArgs.idl 2026-01-06 21:09:43.000000000 +0000 @@ -65,6 +65,8 @@ // consent popup. [must_use] readonly attribute AString attestationConveyancePreference; + readonly attribute Array hints; + readonly attribute boolean privateBrowsing; }; @@ -111,6 +113,8 @@ // cancel transactions. readonly attribute unsigned long timeoutMS; + readonly attribute Array hints; + readonly attribute boolean conditionallyMediated; readonly attribute boolean privateBrowsing; diff -Nru firefox-esr-140.6.0esr/dom/webauthn/tests/test_webauthn_serialization.html firefox-esr-140.7.0esr/dom/webauthn/tests/test_webauthn_serialization.html --- firefox-esr-140.6.0esr/dom/webauthn/tests/test_webauthn_serialization.html 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/tests/test_webauthn_serialization.html 2026-01-06 21:09:43.000000000 +0000 @@ -36,6 +36,18 @@ is(arr.length, 0, `${description} (array should be empty)`); } + function stringArrayEquals(actual, expected, description) { + is(actual.length, expected.length, `${description} (actual and expected should have the same length)`); + for (let i = 0; i < actual.length; i++) { + if (actual[i] instanceof String) { + throw new Error(`actual[${i}] is not a string` + typeof actual[i]); + } + if (actual[i] !== expected[i]) { + throw new Error(`actual and expected differ in position ${i}: ${actual[i]} vs ${expected[i]}`); + } + } + } + function shouldThrow(func, expectedError, description) { let threw = false; try { @@ -55,7 +67,7 @@ pubKeyCredParams: [], }; let creationOptions = PublicKeyCredential.parseCreationOptionsFromJSON(creationOptionsJSON); - is(Object.getOwnPropertyNames(creationOptions).length, 8, "creation options should have 8 properties"); + is(Object.getOwnPropertyNames(creationOptions).length, 9, "creation options should have 9 properties"); is(creationOptions.rp.id, undefined, "rp.id should be undefined"); is(creationOptions.rp.name, "Example", "rp.name should be Example"); arrayBufferEqualsArray(creationOptions.user.id, [ 250, 93, 234, 52, 180, 202, 38, 120 ], "user.id should be as expected"); @@ -70,6 +82,7 @@ is(creationOptions.authenticatorSelection.requireResidentKey, false, "creationOptions.authenticatorSelection.requireResidentKey should be false"); is(creationOptions.authenticatorSelection.userVerification, "preferred", "creationOptions.authenticatorSelection.userVerification should be preferred"); is(creationOptions.attestation, "none", "attestation should be none"); + stringArrayEquals(creationOptions.hints, [], "hints should be an empty array"); is(Object.getOwnPropertyNames(creationOptions.extensions).length, 0, "extensions should be an empty object"); }); @@ -105,7 +118,7 @@ }, }; let creationOptions = PublicKeyCredential.parseCreationOptionsFromJSON(creationOptionsJSON); - is(Object.getOwnPropertyNames(creationOptions).length, 9, "creation options should have 9 properties"); + is(Object.getOwnPropertyNames(creationOptions).length, 10, "creation options should have 10 properties"); is(creationOptions.rp.name, "Example", "rp.name should be Example"); is(creationOptions.rp.id, "example.com", "rp.id should be example.com"); arrayBufferEqualsArray(creationOptions.user.id, [ 215, 212, 213, 166, 160, 65, 56, 3 ], "user.id should be as expected"); @@ -125,6 +138,7 @@ is(creationOptions.authenticatorSelection.residentKey, "required", "creationOptions.authenticatorSelection.residentKey should be required"); is(creationOptions.authenticatorSelection.requireResidentKey, true, "creationOptions.authenticatorSelection.requireResidentKey should be true"); is(creationOptions.authenticatorSelection.userVerification, "discouraged", "creationOptions.authenticatorSelection.userVerification should be discouraged"); + stringArrayEquals(creationOptions.hints, creationOptionsJSON.hints, "creationOptions.hints should be as expected"); is(creationOptions.attestation, "indirect", "attestation should be indirect"); is(creationOptions.extensions.appid, "https://www.example.com/appID", "extensions.appid should be https://www.example.com/appID"); is(creationOptions.extensions.credProps, true, "extensions.credProps should be true"); @@ -186,12 +200,13 @@ challenge: "3yW2WHD_jbU", }; let requestOptions = PublicKeyCredential.parseRequestOptionsFromJSON(requestOptionsJSON); - is(Object.getOwnPropertyNames(requestOptions).length, 4, "request options should have 4 properties"); + is(Object.getOwnPropertyNames(requestOptions).length, 5, "request options should have 5 properties"); arrayBufferEqualsArray(requestOptions.challenge, [ 223, 37, 182, 88, 112, 255, 141, 181 ], "challenge should be as expected"); is(requestOptions.timeout, undefined, "timeout should be undefined"); is(requestOptions.rpId, undefined, "rpId should be undefined"); isEmptyArray(requestOptions.allowCredentials, "allowCredentials should be an empty array"); is(requestOptions.userVerification, "preferred", "userVerification should be preferred"); + stringArrayEquals(requestOptions.hints, [], "hints should be an empty array"); is(Object.getOwnPropertyNames(requestOptions.extensions).length, 0, "extensions should be an empty object"); }); @@ -222,7 +237,7 @@ }, }; let requestOptions = PublicKeyCredential.parseRequestOptionsFromJSON(requestOptionsJSON); - is(Object.getOwnPropertyNames(requestOptions).length, 6, "request options should have 6 properties"); + is(Object.getOwnPropertyNames(requestOptions).length, 7, "request options should have 7 properties"); arrayBufferEqualsArray(requestOptions.challenge, [ 64, 7, 218, 103, 1, 16, 10, 68 ], "challenge should be as expected"); is(requestOptions.timeout, 25000, "timeout should be 25000"); is(requestOptions.rpId, "example.com", "rpId should be example.com"); @@ -232,6 +247,7 @@ is(requestOptions.allowCredentials[0].transports.length, 1, "allowCredentials[0].transports should have one element"); is(requestOptions.allowCredentials[0].transports[0], "smart-card", "allowCredentials[0].transports[0] should be usb"); is(requestOptions.userVerification, "discouraged", "userVerification should be discouraged"); + stringArrayEquals(requestOptions.hints, requestOptionsJSON.hints, "requestOptions.hints should be as expected"); is(requestOptions.extensions.appid, "https://www.example.com/anotherAppID", "extensions.appid should be https://www.example.com/anotherAppID"); arrayBufferEqualsArray(requestOptions.extensions.prf.eval.first, [102, 105, 114, 115, 116], "extensions.prf.eval.first should be 'first'"); arrayBufferEqualsArray(requestOptions.extensions.prf.eval.second, [115, 101, 99, 111, 110, 100], "extensions.prf.eval.second should be 'second'"); diff -Nru firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/.gitignore firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/.gitignore --- firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/.gitignore 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/.gitignore 1970-01-01 00:00:00.000000000 +0000 @@ -1,330 +0,0 @@ -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUNIT -*.VisualState.xml -TestResult.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ -**/Properties/launchSettings.json - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_i.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# JustCode is a .NET coding add-in -.JustCode - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush -.cr/ - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ diff -Nru firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/README.md firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/README.md --- firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/README.md 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/README.md 2026-01-06 21:09:44.000000000 +0000 @@ -1,16 +1,20 @@ # Description -This project includes Win32 headers for communicating to Windows Hello and external secruity keys as part of WebAuthn and CTAP specification. +## WebAuthn Specification APIs -For more details about the standards, please follow these links: -* WebAuthn: https://w3c.github.io/webauthn/ -* CTAP: https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html +Win32 APIs for performing operations corresponding to WebAuthn (https://w3c.github.io/webauthn) specification are present in following files. +- webauthn.h +## Plugin Passkey Authenticators Implementation APIs/Interfaces + +APIs, interfaces and helper functions for passkey plugin authenticator implementators are present in following files +- pluginauthenticator.idl +- pluginauthenticator.h +- webauthnplugin.h # Having Issues? If you have any issues in adopting these APIs or need some clarification, please contact fido-dev@microsoft.com. - # Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a diff -Nru firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/moz.yaml firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/moz.yaml --- firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/moz.yaml 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/moz.yaml 2026-01-06 21:09:42.000000000 +0000 @@ -0,0 +1,26 @@ +schema: 1 + +bugzilla: + product: Core + component: "DOM: Web Authentication" + +origin: + name: Microsoft WebAuthn + description: Win32 APIs for WebAuthn + url: https://github.com/microsoft/webauthn + + release: 9108981ca80b3c6788fa598708dcf3cb10220ad7 + revision: 9108981ca80b3c6788fa598708dcf3cb10220ad7 + + license: MIT + +vendoring: + url: https://github.com/microsoft/webauthn + source-hosting: github + vendor-directory: dom/webauthn/winwebauthn + exclude: + - "**" + include: + - LICENSE + - README.md + - webauthn.h diff -Nru firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/webauthn.h firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/webauthn.h --- firefox-esr-140.6.0esr/dom/webauthn/winwebauthn/webauthn.h 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webauthn/winwebauthn/webauthn.h 2026-01-06 21:09:42.000000000 +0000 @@ -95,6 +95,7 @@ // - WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS : 5 // - WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS : 6 // - WEBAUTHN_ASSERTION : 3 +// - WEBAUTHN_GET_CREDENTIALS_OPTIONS : 1 // - WEBAUTHN_CREDENTIAL_DETAILS : 1 // APIs: // - WebAuthNGetPlatformCredentialList @@ -127,7 +128,30 @@ // - WEBAUTHN_CREDENTIAL_ATTESTATION : 6 // - WEBAUTHN_ASSERTION : 5 -#define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_7 +#define WEBAUTHN_API_VERSION_8 8 +// WEBAUTHN_API_VERSION_8 : Delta From WEBAUTHN_API_VERSION_7 +// Data Structures and their sub versions: +// - WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS : 8 +// - WEBAUTHN_CREDENTIAL_DETAILS : 3 +// - WEBAUTHN_CREDENTIAL_ATTESTATION : 7 +// - WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS : 8 +// + +#define WEBAUTHN_API_VERSION_9 9 +// WEBAUTHN_API_VERSION_9 : Delta From WEBAUTHN_API_VERSION_8 +// Data Structures and their sub versions: +// - WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS : 9 +// - WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS : 9 +// - WEBAUTHN_ASSERTION : 6 +// - WEBAUTHN_CREDENTIAL_DETAILS : 4 +// - WEBAUTHN_CREDENTIAL_ATTESTATION : 8 +// - WEBAUTHN_AUTHENTICATOR_DETAILS : 1 +// - WEBAUTHN_AUTHENTICATOR_DETAILS_LIST : Not Applicable +// APIs: +// - WebAuthNGetAuthenticatorList +// - WebAuthNFreeAuthenticatorList + +#define WEBAUTHN_API_CURRENT_VERSION WEBAUTHN_API_VERSION_9 //+------------------------------------------------------------------------------------------ // Information about an RP Entity @@ -147,7 +171,7 @@ // This field is required. PCWSTR pwszName; - // Optional URL pointing to RP's logo. + // Optional URL pointing to RP's logo. PCWSTR pwszIcon; } WEBAUTHN_RP_ENTITY_INFORMATION, *PWEBAUTHN_RP_ENTITY_INFORMATION; typedef const WEBAUTHN_RP_ENTITY_INFORMATION *PCWEBAUTHN_RP_ENTITY_INFORMATION; @@ -283,7 +307,15 @@ #define WEBAUTHN_CTAP_TRANSPORT_TEST 0x00000008 #define WEBAUTHN_CTAP_TRANSPORT_INTERNAL 0x00000010 #define WEBAUTHN_CTAP_TRANSPORT_HYBRID 0x00000020 -#define WEBAUTHN_CTAP_TRANSPORT_FLAGS_MASK 0x0000003F +#define WEBAUTHN_CTAP_TRANSPORT_SMART_CARD 0x00000040 +#define WEBAUTHN_CTAP_TRANSPORT_FLAGS_MASK 0x0000007F + +#define WEBAUTHN_CTAP_TRANSPORT_USB_STRING "usb" +#define WEBAUTHN_CTAP_TRANSPORT_NFC_STRING "nfc" +#define WEBAUTHN_CTAP_TRANSPORT_BLE_STRING "ble" +#define WEBAUTHN_CTAP_TRANSPORT_SMART_CARD_STRING "smart-card" +#define WEBAUTHN_CTAP_TRANSPORT_HYBRID_STRING "hybrid" +#define WEBAUTHN_CTAP_TRANSPORT_INTERNAL_STRING "internal" #define WEBAUTHN_CREDENTIAL_EX_CURRENT_VERSION 1 @@ -323,6 +355,7 @@ #define CTAPCBOR_HYBRID_STORAGE_LINKED_DATA_VERSION_1 1 #define CTAPCBOR_HYBRID_STORAGE_LINKED_DATA_CURRENT_VERSION CTAPCBOR_HYBRID_STORAGE_LINKED_DATA_VERSION_1 +// Deprecated typedef struct _CTAPCBOR_HYBRID_STORAGE_LINKED_DATA { // Version @@ -357,12 +390,64 @@ typedef const CTAPCBOR_HYBRID_STORAGE_LINKED_DATA *PCCTAPCBOR_HYBRID_STORAGE_LINKED_DATA; //+------------------------------------------------------------------------------------------ +// Authenticator Information for WebAuthNGetAuthenticatorList API +//------------------------------------------------------------------------------------------- + +#define WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS_VERSION_1 1 +#define WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS_VERSION_1 + +typedef struct _WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS { + // Version of this structure, to allow for modifications in the future. + DWORD dwVersion; + +} WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS; +typedef const WEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS; + +#define WEBAUTHN_AUTHENTICATOR_DETAILS_VERSION_1 1 +#define WEBAUTHN_AUTHENTICATOR_DETAILS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_DETAILS_VERSION_1 + +typedef struct _WEBAUTHN_AUTHENTICATOR_DETAILS { + // Version of this structure, to allow for modifications in the future. + DWORD dwVersion; + + // Authenticator ID + DWORD cbAuthenticatorId; + _Field_size_bytes_(cbAuthenticatorId) + PBYTE pbAuthenticatorId; + + // Authenticator Name + PCWSTR pwszAuthenticatorName; + + // Authenticator logo (expected to be in SVG format) + DWORD cbAuthenticatorLogo; + _Field_size_bytes_(cbAuthenticatorLogo) + PBYTE pbAuthenticatorLogo; + + // Is the authenticator currently locked? When locked, this authenticator's credentials + // might not be present or updated in WebAuthNGetPlatformCredentialList. + BOOL bLocked; + +} WEBAUTHN_AUTHENTICATOR_DETAILS, *PWEBAUTHN_AUTHENTICATOR_DETAILS; +typedef const WEBAUTHN_AUTHENTICATOR_DETAILS *PCWEBAUTHN_AUTHENTICATOR_DETAILS; + +typedef struct _WEBAUTHN_AUTHENTICATOR_DETAILS_LIST { + // Authenticator Details + DWORD cAuthenticatorDetails; + _Field_size_(cAuthenticatorDetails) + PWEBAUTHN_AUTHENTICATOR_DETAILS *ppAuthenticatorDetails; + +} WEBAUTHN_AUTHENTICATOR_DETAILS_LIST, *PWEBAUTHN_AUTHENTICATOR_DETAILS_LIST; +typedef const WEBAUTHN_AUTHENTICATOR_DETAILS_LIST *PCWEBAUTHN_AUTHENTICATOR_DETAILS_LIST; + +//+------------------------------------------------------------------------------------------ // Credential Information for WebAuthNGetPlatformCredentialList API //------------------------------------------------------------------------------------------- #define WEBAUTHN_CREDENTIAL_DETAILS_VERSION_1 1 #define WEBAUTHN_CREDENTIAL_DETAILS_VERSION_2 2 -#define WEBAUTHN_CREDENTIAL_DETAILS_CURRENT_VERSION WEBAUTHN_CREDENTIAL_DETAILS_VERSION_2 +#define WEBAUTHN_CREDENTIAL_DETAILS_VERSION_3 3 +#define WEBAUTHN_CREDENTIAL_DETAILS_VERSION_4 4 +#define WEBAUTHN_CREDENTIAL_DETAILS_CURRENT_VERSION WEBAUTHN_CREDENTIAL_DETAILS_VERSION_4 typedef struct _WEBAUTHN_CREDENTIAL_DETAILS { // Version of this structure, to allow for modifications in the future. @@ -388,6 +473,27 @@ // Backed Up or not. BOOL bBackedUp; + + // + // The following fields have been added in WEBAUTHN_CREDENTIAL_DETAILS_VERSION_3 + // + PCWSTR pwszAuthenticatorName; + + // The logo is expected to be in the svg format + DWORD cbAuthenticatorLogo; + _Field_size_bytes_(cbAuthenticatorLogo) + PBYTE pbAuthenticatorLogo; + + // ThirdPartyPayment Credential or not. + BOOL bThirdPartyPayment; + + // + // The following fields have been added in WEBAUTHN_CREDENTIAL_DETAILS_VERSION_4 + // + + // Applicable Transports + DWORD dwTransports; + } WEBAUTHN_CREDENTIAL_DETAILS, *PWEBAUTHN_CREDENTIAL_DETAILS; typedef const WEBAUTHN_CREDENTIAL_DETAILS *PCWEBAUTHN_CREDENTIAL_DETAILS; @@ -593,6 +699,10 @@ #define WEBAUTHN_LARGE_BLOB_SUPPORT_REQUIRED 1 #define WEBAUTHN_LARGE_BLOB_SUPPORT_PREFERRED 2 +#define WEBAUTHN_CREDENTIAL_HINT_SECURITY_KEY L"security-key" +#define WEBAUTHN_CREDENTIAL_HINT_CLIENT_DEVICE L"client-device" +#define WEBAUTHN_CREDENTIAL_HINT_HYBRID L"hybrid" + #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_1 1 #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_2 2 #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_3 3 @@ -600,7 +710,9 @@ #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_5 5 #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_6 6 #define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_7 7 -#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_7 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_8 8 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_9 9 +#define WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_9 typedef struct _WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS { // Version of this structure, to allow for modifications in the future. @@ -680,6 +792,7 @@ // The following fields have been added in WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_7 // + // Deprecated // Optional. Linked Device Connection Info. PCTAPCBOR_HYBRID_STORAGE_LINKED_DATA pLinkedDevice; @@ -687,6 +800,41 @@ DWORD cbJsonExt; _Field_size_bytes_(cbJsonExt) PBYTE pbJsonExt; + + // + // The following fields have been added in WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_8 + // + + // PRF extension "eval" values which will be converted into HMAC-SECRET values according to WebAuthn Spec. + // Set WEBAUTHN_AUTHENTICATOR_HMAC_SECRET_VALUES_FLAG in dwFlags above, if caller wants to provide RAW Hmac-Secret SALT values directly. + // In that case, values provided MUST be of WEBAUTHN_CTAP_ONE_HMAC_SECRET_LENGTH size. + PWEBAUTHN_HMAC_SECRET_SALT pPRFGlobalEval; + + // PublicKeyCredentialHints (https://w3c.github.io/webauthn/#enum-hints) + DWORD cCredentialHints; + _Field_size_(cCredentialHints) + LPCWSTR *ppwszCredentialHints; + + // Enable ThirdPartyPayment + BOOL bThirdPartyPayment; + + // + // The following fields have been added in WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS_VERSION_9 + // + + // Web Origin. For Remote Web App scenario. + PCWSTR pwszRemoteWebOrigin; + + // UTF-8 encoded JSON serialization of the PublicKeyCredentialCreationOptions. + DWORD cbPublicKeyCredentialCreationOptionsJSON; + _Field_size_bytes_(cbPublicKeyCredentialCreationOptionsJSON) + PBYTE pbPublicKeyCredentialCreationOptionsJSON; + + // Authenticator ID got from WebAuthNGetAuthenticatorList API. + DWORD cbAuthenticatorId; + _Field_size_bytes_(cbAuthenticatorId) + PBYTE pbAuthenticatorId; + } WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS; typedef const WEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_MAKE_CREDENTIAL_OPTIONS; @@ -702,7 +850,9 @@ #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_5 5 #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_6 6 #define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_7 7 -#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_7 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_8 8 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_9 9 +#define WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_CURRENT_VERSION WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_9 /* Information about flags. @@ -783,6 +933,7 @@ // The following fields have been added in WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_7 // + // Deprecated // Optional. Linked Device Connection Info. PCTAPCBOR_HYBRID_STORAGE_LINKED_DATA pLinkedDevice; @@ -793,6 +944,33 @@ DWORD cbJsonExt; _Field_size_bytes_(cbJsonExt) PBYTE pbJsonExt; + + // + // The following fields have been added in WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_8 + // + + // PublicKeyCredentialHints (https://w3c.github.io/webauthn/#enum-hints) + DWORD cCredentialHints; + _Field_size_(cCredentialHints) + LPCWSTR *ppwszCredentialHints; + + // + // The following fields have been added in WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS_VERSION_9 + // + + // Web Origin. For Remote Web App scenario. + PCWSTR pwszRemoteWebOrigin; + + // UTF-8 encoded JSON serialization of the PublicKeyCredentialRequestOptions. + DWORD cbPublicKeyCredentialRequestOptionsJSON; + _Field_size_bytes_(cbPublicKeyCredentialRequestOptionsJSON) + PBYTE pbPublicKeyCredentialRequestOptionsJSON; + + // Authenticator ID got from WebAuthNGetAuthenticatorList API. + DWORD cbAuthenticatorId; + _Field_size_bytes_(cbAuthenticatorId) + PBYTE pbAuthenticatorId; + } WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS, *PWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS; typedef const WEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS *PCWEBAUTHN_AUTHENTICATOR_GET_ASSERTION_OPTIONS; @@ -871,7 +1049,9 @@ #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_4 4 #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_5 5 #define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_6 6 -#define WEBAUTHN_CREDENTIAL_ATTESTATION_CURRENT_VERSION WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_6 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_7 7 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_8 8 +#define WEBAUTHN_CREDENTIAL_ATTESTATION_CURRENT_VERSION WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_8 typedef struct _WEBAUTHN_CREDENTIAL_ATTESTATION { // Version of this structure, to allow for modifications in the future. @@ -947,6 +1127,34 @@ DWORD cbUnsignedExtensionOutputs; _Field_size_bytes_(cbUnsignedExtensionOutputs) PBYTE pbUnsignedExtensionOutputs; + + // + // Following fields have been added in WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_7 + // + + PWEBAUTHN_HMAC_SECRET_SALT pHmacSecret; + + // ThirdPartyPayment Credential or not. + BOOL bThirdPartyPayment; + + // + // Following fields have been added in WEBAUTHN_CREDENTIAL_ATTESTATION_VERSION_8 + // + + // Multiple WEBAUTHN_CTAP_TRANSPORT_* bits will be set corresponding to + // the transports that are supported. + DWORD dwTransports; + + // UTF-8 encoded JSON serialization of the client data. + DWORD cbClientDataJSON; + _Field_size_bytes_(cbClientDataJSON) + PBYTE pbClientDataJSON; + + // UTF-8 encoded JSON serialization of the RegistrationResponse. + DWORD cbRegistrationResponseJSON; + _Field_size_bytes_(cbRegistrationResponseJSON) + PBYTE pbRegistrationResponseJSON; + } WEBAUTHN_CREDENTIAL_ATTESTATION, *PWEBAUTHN_CREDENTIAL_ATTESTATION; typedef const WEBAUTHN_CREDENTIAL_ATTESTATION *PCWEBAUTHN_CREDENTIAL_ATTESTATION; @@ -971,7 +1179,8 @@ #define WEBAUTHN_ASSERTION_VERSION_3 3 #define WEBAUTHN_ASSERTION_VERSION_4 4 #define WEBAUTHN_ASSERTION_VERSION_5 5 -#define WEBAUTHN_ASSERTION_CURRENT_VERSION WEBAUTHN_ASSERTION_VERSION_5 +#define WEBAUTHN_ASSERTION_VERSION_6 6 +#define WEBAUTHN_ASSERTION_CURRENT_VERSION WEBAUTHN_ASSERTION_VERSION_6 typedef struct _WEBAUTHN_ASSERTION { // Version of this structure, to allow for modifications in the future. @@ -1032,6 +1241,21 @@ DWORD cbUnsignedExtensionOutputs; _Field_size_bytes_(cbUnsignedExtensionOutputs) PBYTE pbUnsignedExtensionOutputs; + + // + // Following fields have been added in WEBAUTHN_ASSERTION_VERSION_6 + // + + // UTF-8 encoded JSON serialization of the client data. + DWORD cbClientDataJSON; + _Field_size_bytes_(cbClientDataJSON) + PBYTE pbClientDataJSON; + + // UTF-8 encoded JSON serialization of the AuthenticationResponse. + DWORD cbAuthenticationResponseJSON; + _Field_size_bytes_(cbAuthenticationResponseJSON) + PBYTE pbAuthenticationResponseJSON; + } WEBAUTHN_ASSERTION, *PWEBAUTHN_ASSERTION; typedef const WEBAUTHN_ASSERTION *PCWEBAUTHN_ASSERTION; @@ -1109,6 +1333,18 @@ _In_reads_bytes_(cbCredentialId) const BYTE *pbCredentialId ); +// Returns NTE_NOT_FOUND when authenticator details are not found. +HRESULT +WINAPI +WebAuthNGetAuthenticatorList( + _In_opt_ PCWEBAUTHN_AUTHENTICATOR_DETAILS_OPTIONS pWebAuthNGetAuthenticatorListOptions, + _Outptr_result_maybenull_ PWEBAUTHN_AUTHENTICATOR_DETAILS_LIST* ppAuthenticatorDetailsList); + +void +WINAPI +WebAuthNFreeAuthenticatorList( + _In_ PWEBAUTHN_AUTHENTICATOR_DETAILS_LIST pAuthenticatorDetailsList); + // // Returns the following Error Names: // L"Success" - S_OK diff -Nru firefox-esr-140.6.0esr/dom/webidl/WebAuthentication.webidl firefox-esr-140.7.0esr/dom/webidl/WebAuthentication.webidl --- firefox-esr-140.6.0esr/dom/webidl/WebAuthentication.webidl 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webidl/WebAuthentication.webidl 2026-01-06 21:09:43.000000000 +0000 @@ -177,6 +177,7 @@ sequence excludeCredentials = []; // FIXME: bug 1493860: should this "= {}" be here? AuthenticatorSelectionCriteria authenticatorSelection = {}; + sequence hints = []; DOMString attestation = "none"; // FIXME: bug 1493860: should this "= {}" be here? AuthenticationExtensionsClientInputs extensions = {}; @@ -208,6 +209,7 @@ USVString rpId; sequence allowCredentials = []; DOMString userVerification = "preferred"; + sequence hints = []; // FIXME: bug 1493860: should this "= {}" be here? AuthenticationExtensionsClientInputs extensions = {}; }; diff -Nru firefox-esr-140.6.0esr/dom/webtransport/parent/WebTransportParent.h firefox-esr-140.7.0esr/dom/webtransport/parent/WebTransportParent.h --- firefox-esr-140.6.0esr/dom/webtransport/parent/WebTransportParent.h 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/webtransport/parent/WebTransportParent.h 2026-01-06 21:09:43.000000000 +0000 @@ -103,9 +103,11 @@ OnResetOrStopSendingCallback mCallback; nsCOMPtr mStream; }; - nsTHashMap> + nsTHashMap, + StreamHash> mBidiStreamCallbackMap; - nsTHashMap> + nsTHashMap, + StreamHash> mUniStreamCallbackMap; }; diff -Nru firefox-esr-140.6.0esr/dom/workers/WorkerPrivate.cpp firefox-esr-140.7.0esr/dom/workers/WorkerPrivate.cpp --- firefox-esr-140.6.0esr/dom/workers/WorkerPrivate.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/workers/WorkerPrivate.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -4797,6 +4797,15 @@ return true; } +bool WorkerPrivate::HasActiveWorkerRefs() { + auto data = mWorkerThreadAccessible.Access(); + auto* timeoutManager = + data->mScope ? data->mScope->GetTimeoutManager() : nullptr; + return !data->mChildWorkers.IsEmpty() || + (timeoutManager && timeoutManager->HasTimeouts()) || + !data->mWorkerRefs.IsEmpty(); +} + bool WorkerPrivate::ThawInternal() { auto data = mWorkerThreadAccessible.Access(); NS_ASSERTION(data->mFrozen, "Not yet frozen!"); diff -Nru firefox-esr-140.6.0esr/dom/workers/WorkerPrivate.h firefox-esr-140.7.0esr/dom/workers/WorkerPrivate.h --- firefox-esr-140.6.0esr/dom/workers/WorkerPrivate.h 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/workers/WorkerPrivate.h 2026-01-06 21:09:43.000000000 +0000 @@ -1332,11 +1332,7 @@ void NotifyWorkerRefs(WorkerStatus aStatus); - bool HasActiveWorkerRefs() { - auto data = mWorkerThreadAccessible.Access(); - return !(data->mChildWorkers.IsEmpty() && data->mTimeouts.IsEmpty() && - data->mWorkerRefs.IsEmpty()); - } + bool HasActiveWorkerRefs(); friend class WorkerEventTarget; diff -Nru firefox-esr-140.6.0esr/dom/workers/WorkerScope.cpp firefox-esr-140.7.0esr/dom/workers/WorkerScope.cpp --- firefox-esr-140.6.0esr/dom/workers/WorkerScope.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/dom/workers/WorkerScope.cpp 2026-01-06 21:09:44.000000000 +0000 @@ -271,7 +271,8 @@ mSerialEventTarget(aWorkerPrivate->HybridEventTarget()) { if (StaticPrefs::dom_workers_timeoutmanager_AtStartup()) { mTimeoutManager = MakeUnique( - *this, /* not used on workers */ 0, mSerialEventTarget); + *this, /* not used on workers */ 0, mSerialEventTarget, + mWorkerPrivate->IsChromeWorker()); } LOG(("WorkerGlobalScopeBase::WorkerGlobalScopeBase [%p]", this)); MOZ_ASSERT(mWorkerPrivate); diff -Nru firefox-esr-140.6.0esr/editor/libeditor/HTMLEditUtils.cpp firefox-esr-140.7.0esr/editor/libeditor/HTMLEditUtils.cpp --- firefox-esr-140.6.0esr/editor/libeditor/HTMLEditUtils.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/editor/libeditor/HTMLEditUtils.cpp 2026-01-06 21:09:44.000000000 +0000 @@ -147,6 +147,31 @@ HTMLEditUtils::ComputePointToPutCaretInElementIfOutside( const Element& aElement, const EditorRawDOMPoint& aCurrentPoint); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorDOMPoint&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorDOMPoint&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorRawDOMPoint&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorRawDOMPoint&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorDOMPointInText&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorDOMPointInText&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorRawDOMPointInText&, const Element&); +template Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorRawDOMPointInText&, const Element&); + template bool HTMLEditUtils::IsSameCSSColorValue(const nsAString& aColorA, const nsAString& aColorB); template bool HTMLEditUtils::IsSameCSSColorValue(const nsACString& aColorA, @@ -2874,6 +2899,33 @@ } // static +template +Maybe +HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorDOMPointType& aPoint, const Element& aEditingHost) { + MOZ_ASSERT(aPoint.IsSet()); + if (MOZ_UNLIKELY(!aPoint.IsInContentNode())) { + return Nothing{}; + } + const WSScanResult previousThing = + WSRunScanner::ScanPreviousVisibleNodeOrBlockBoundary( + WSRunScanner::Scan::All, aPoint, + BlockInlineCheck::UseComputedDisplayStyle, &aEditingHost); + if (!previousThing.ReachedLineBreak()) { + return Nothing{}; // No preceding line break. + } + const WSScanResult nextThing = + WSRunScanner::ScanInclusiveNextVisibleNodeOrBlockBoundary( + WSRunScanner::Scan::All, aPoint, + BlockInlineCheck::UseComputedDisplayStyle, &aEditingHost); + if (!nextThing.ReachedBlockBoundary()) { + return Nothing{}; // The line break is not followed by a block boundary so + // that it's a visible line break. + } + return Some(previousThing.CreateEditorLineBreak()); +} + +// static bool HTMLEditUtils::IsInlineStyleSetByElement( const nsIContent& aContent, const EditorInlineStyle& aStyle, const nsAString* aValue, nsAString* aOutValue /* = nullptr */) { diff -Nru firefox-esr-140.6.0esr/editor/libeditor/HTMLEditUtils.h firefox-esr-140.7.0esr/editor/libeditor/HTMLEditUtils.h --- firefox-esr-140.6.0esr/editor/libeditor/HTMLEditUtils.h 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/editor/libeditor/HTMLEditUtils.h 2026-01-06 21:09:43.000000000 +0000 @@ -2548,6 +2548,15 @@ const Element& aElement, const EditorDOMPointTypeInput& aCurrentPoint); /** + * Return a line break if aPoint is after a line break which is immediately + * before a block boundary. + */ + template + static Maybe + GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem( + const EditorDOMPointType& aPoint, const Element& aEditingHost); + + /** * Content-based query returns true if * effects aContent. If there is * such a element, but another element whose attribute value does not match diff -Nru firefox-esr-140.6.0esr/editor/libeditor/HTMLEditorDeleteHandler.cpp firefox-esr-140.7.0esr/editor/libeditor/HTMLEditorDeleteHandler.cpp --- firefox-esr-140.6.0esr/editor/libeditor/HTMLEditorDeleteHandler.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/editor/libeditor/HTMLEditorDeleteHandler.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -1214,7 +1214,8 @@ */ [[nodiscard]] Result GetNewCaretPosition( const HTMLEditor& aHTMLEditor, - nsIEditor::EDirection aDirectionAndAmount) const; + nsIEditor::EDirection aDirectionAndAmount, + const Element& aEditingHost) const; RefPtr mEmptyInclusiveAncestorBlockElement; }; // HTMLEditor::AutoDeleteRangesHandler::AutoEmptyBlockAncestorDeleter @@ -8375,7 +8376,8 @@ Result HTMLEditor::AutoDeleteRangesHandler:: AutoEmptyBlockAncestorDeleter::GetNewCaretPosition( const HTMLEditor& aHTMLEditor, - nsIEditor::EDirection aDirectionAndAmount) const { + nsIEditor::EDirection aDirectionAndAmount, + const Element& aEditingHost) const { MOZ_ASSERT(mEmptyInclusiveAncestorBlockElement); MOZ_ASSERT(mEmptyInclusiveAncestorBlockElement->GetParentElement()); MOZ_ASSERT(aHTMLEditor.IsEditActionDataAvailable()); @@ -8386,12 +8388,23 @@ case nsIEditor::eToEndOfLine: { // Collapse Selection to next node of after empty block element // if there is. Otherwise, to just after the empty block. - auto afterEmptyBlock( - EditorDOMPoint::After(mEmptyInclusiveAncestorBlockElement)); - MOZ_ASSERT(afterEmptyBlock.IsSet()); - if (nsIContent* nextContentOfEmptyBlock = HTMLEditUtils::GetNextContent( - afterEmptyBlock, {}, BlockInlineCheck::Unused, - aHTMLEditor.ComputeEditingHost())) { + nsIContent* const nextContentOfEmptyBlock = [&]() -> nsIContent* { + for (EditorRawDOMPoint scanStartPoint = + EditorRawDOMPoint::After(mEmptyInclusiveAncestorBlockElement); + scanStartPoint.IsInContentNode();) { + nsIContent* const nextContent = HTMLEditUtils::GetNextContent( + scanStartPoint, {}, BlockInlineCheck::Unused, &aEditingHost); + // Let's ignore invisible `Text`. + if (nextContent && nextContent->IsText() && + !HTMLEditUtils::IsVisibleTextNode(*nextContent->AsText())) { + scanStartPoint = EditorRawDOMPoint::After(*nextContent); + continue; + } + return nextContent; + } + return nullptr; + }(); + if (nextContentOfEmptyBlock) { EditorDOMPoint pt = HTMLEditUtils::GetGoodCaretPointFor( *nextContentOfEmptyBlock, aDirectionAndAmount); if (!pt.IsSet()) { @@ -8400,6 +8413,8 @@ } return CaretPoint(std::move(pt)); } + EditorDOMPoint afterEmptyBlock = + EditorDOMPoint::After(mEmptyInclusiveAncestorBlockElement); if (NS_WARN_IF(!afterEmptyBlock.IsSet())) { return Err(NS_ERROR_FAILURE); } @@ -8409,20 +8424,43 @@ case nsIEditor::ePreviousWord: case nsIEditor::eToBeginningOfLine: { // Collapse Selection to previous editable node of the empty block - // if there is. Otherwise, to after the empty block. - EditorRawDOMPoint atEmptyBlock(mEmptyInclusiveAncestorBlockElement); - if (nsIContent* previousContentOfEmptyBlock = - HTMLEditUtils::GetPreviousContent( - atEmptyBlock, {WalkTreeOption::IgnoreNonEditableNode}, - BlockInlineCheck::Unused, aHTMLEditor.ComputeEditingHost())) { - EditorDOMPoint pt = HTMLEditUtils::GetGoodCaretPointFor( - *previousContentOfEmptyBlock, aDirectionAndAmount); - if (!pt.IsSet()) { + // if there is. + nsIContent* const previousContentOfEmptyBlock = [&]() -> nsIContent* { + for (EditorRawDOMPoint scanStartPoint = + EditorRawDOMPoint(mEmptyInclusiveAncestorBlockElement); + scanStartPoint.IsInContentNode();) { + nsIContent* const previousContent = HTMLEditUtils::GetPreviousContent( + scanStartPoint, {WalkTreeOption::IgnoreNonEditableNode}, + BlockInlineCheck::Unused, &aEditingHost); + // Let's ignore invisible `Text`. + if (previousContent && previousContent->IsText() && + !HTMLEditUtils::IsVisibleTextNode(*previousContent->AsText())) { + scanStartPoint = EditorRawDOMPoint(previousContent, 0u); + continue; + } + return previousContent; + } + return nullptr; + }(); + if (previousContentOfEmptyBlock) { + const EditorRawDOMPoint atEndOfPreviousContent = + HTMLEditUtils::GetGoodCaretPointFor( + *previousContentOfEmptyBlock, aDirectionAndAmount); + if (!atEndOfPreviousContent.IsSet()) { NS_WARNING("HTMLEditUtils::GetGoodCaretPointFor() failed"); return Err(NS_ERROR_FAILURE); } - return CaretPoint(std::move(pt)); + // If the previous content is between a preceding line break and the + // block boundary of current empty block, let's move caret to the line + // break if there is no visible things between them. + const Maybe precedingLineBreak = + HTMLEditUtils::GetLineBreakBeforeBlockBoundaryIfPointIsBetweenThem< + EditorRawLineBreak>(atEndOfPreviousContent, aEditingHost); + return precedingLineBreak.isSome() + ? CaretPoint(precedingLineBreak->To()) + : CaretPoint(atEndOfPreviousContent.To()); } + // Otherwise, let's put caret next to the deleting block. auto afterEmptyBlock = EditorDOMPoint::After(*mEmptyInclusiveAncestorBlockElement); if (NS_WARN_IF(!afterEmptyBlock.IsSet())) { @@ -8492,7 +8530,7 @@ : EditorDOMPoint()); } Result caretPointOrError = - GetNewCaretPosition(aHTMLEditor, aDirectionAndAmount); + GetNewCaretPosition(aHTMLEditor, aDirectionAndAmount, aEditingHost); NS_WARNING_ASSERTION( caretPointOrError.isOk(), "AutoEmptyBlockAncestorDeleter::GetNewCaretPosition() failed"); @@ -8523,6 +8561,7 @@ NS_WARNING("EditorBase::DeleteNodeWithTransaction() failed"); return Err(rv); } + trackPointToPutCaret.FlushAndStopTracking(); } else { Result caretPointOrError = WhiteSpaceVisibilityKeeper::DeleteContentNodeAndJoinTextNodesAroundIt( @@ -8534,11 +8573,11 @@ "DeleteContentNodeAndJoinTextNodesAroundIt() failed"); return caretPointOrError.propagateErr(); } + trackPointToPutCaret.FlushAndStopTracking(); caretPointOrError.unwrap().MoveCaretPointTo( pointToPutCaret, {SuggestCaret::OnlyIfHasSuggestion}); } trackEmptyBlockPoint.FlushAndStopTracking(); - trackPointToPutCaret.FlushAndStopTracking(); if (NS_WARN_IF(!atEmptyInclusiveAncestorBlockElement .IsInContentNodeAndValidInComposedDoc()) || NS_WARN_IF(pointToPutCaret.IsSet() && diff -Nru firefox-esr-140.6.0esr/editor/libeditor/WSRunScanner.h firefox-esr-140.7.0esr/editor/libeditor/WSRunScanner.h --- firefox-esr-140.6.0esr/editor/libeditor/WSRunScanner.h 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/editor/libeditor/WSRunScanner.h 2026-01-06 21:09:43.000000000 +0000 @@ -162,6 +162,22 @@ return mContent->AsText(); } + template + MOZ_NEVER_INLINE_DEBUG EditorLineBreakType CreateEditorLineBreak() const { + if (ReachedBRElement()) { + return EditorLineBreakType(*BRElementPtr()); + } + if (ReachedPreformattedLineBreak()) { + MOZ_ASSERT_IF(mDirection == ScanDirection::Backward, *mOffset > 0); + return EditorLineBreakType(*TextPtr(), + mDirection == ScanDirection::Forward + ? mOffset.valueOr(0) + : std::max(mOffset.valueOr(1), 1u) - 1); + } + MOZ_CRASH("Didn't reach a line break"); + return EditorLineBreakType(*BRElementPtr()); + } + /** * Returns true if found or reached content is editable. */ @@ -278,6 +294,15 @@ } /** + * Return true if reached a
element or a preformatted line break. + * Return false when reached a block boundary. Use ReachedLineBoundary() if + * you want it to return true in the case too. + */ + [[nodiscard]] bool ReachedLineBreak() const { + return ReachedBRElement() || ReachedPreformattedLineBreak(); + } + + /** * The scanner reached a
element. */ bool ReachedHRElement() const { diff -Nru firefox-esr-140.6.0esr/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp firefox-esr-140.7.0esr/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp --- firefox-esr-140.6.0esr/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -3503,8 +3503,10 @@ WSRunScanner::ScanInclusiveNextVisibleNodeOrBlockBoundary( Scan::All, pointToPutCaret, BlockInlineCheck::UseComputedDisplayOutsideStyle); - if (nextThingOfCaretPoint.ReachedBRElement() || - nextThingOfCaretPoint.ReachedPreformattedLineBreak()) { + Maybe lineBreak; + if (nextThingOfCaretPoint.ReachedLineBreak()) { + lineBreak.emplace( + nextThingOfCaretPoint.CreateEditorLineBreak()); nextThingOfCaretPoint = WSRunScanner::ScanInclusiveNextVisibleNodeOrBlockBoundary( Scan::All, @@ -3530,6 +3532,26 @@ if (NS_WARN_IF(!aContentToDelete.IsInComposedDoc())) { return Err(NS_ERROR_EDITOR_UNEXPECTED_DOM_TREE); } + // If the previous content ends with an invisible line break, let's + // delete it. + if (lineBreak.isSome() && lineBreak->IsInComposedDoc()) { + const WSScanResult prevThing = + WSRunScanner::ScanPreviousVisibleNodeOrBlockBoundary( + WSRunScanner::Scan::All, + lineBreak->To(), + BlockInlineCheck::UseComputedDisplayStyle, &aEditingHost); + if (!prevThing.ReachedLineBoundary()) { + Result pointOrError = + aHTMLEditor.DeleteLineBreakWithTransaction( + lineBreak.ref(), nsIEditor::eStrip, aEditingHost); + if (MOZ_UNLIKELY(pointOrError.isErr())) { + NS_WARNING( + "HTMLEditor::DeleteLineBreakWithTransaction() failed"); + return pointOrError.propagateErr(); + } + trackPointToPutCaret->Flush(StopTracking::No); + } + } } } // Similarly, we may put caret into the following block (this is the diff -Nru firefox-esr-140.6.0esr/extensions/auth/nsAuthGSSAPI.cpp firefox-esr-140.7.0esr/extensions/auth/nsAuthGSSAPI.cpp --- firefox-esr-140.6.0esr/extensions/auth/nsAuthGSSAPI.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/extensions/auth/nsAuthGSSAPI.cpp 2026-01-06 21:09:44.000000000 +0000 @@ -263,8 +263,6 @@ LOG(("entering nsAuthGSSAPI::nsAuthGSSAPI()\n")); - mComplete = false; - if (!gssLibrary && NS_FAILED(gssInit())) return; mCtx = GSS_C_NO_CONTEXT; @@ -310,6 +308,8 @@ } mCtx = GSS_C_NO_CONTEXT; mComplete = false; + mDelegationRequested = false; + mDelegationSupported = false; } /* static */ @@ -358,6 +358,7 @@ void** outToken, uint32_t* outTokenLen) { OM_uint32 major_status, minor_status; OM_uint32 req_flags = 0; + OM_uint32 ret_flags = 0; gss_buffer_desc input_token = GSS_C_EMPTY_BUFFER; gss_buffer_desc output_token = GSS_C_EMPTY_BUFFER; gss_buffer_t in_token_ptr = GSS_C_NO_BUFFER; @@ -372,7 +373,22 @@ // If they've called us again after we're complete, reset to start afresh. if (mComplete) Reset(); - if (mServiceFlags & REQ_DELEGATE) req_flags |= GSS_C_DELEG_FLAG; + // Two-phase delegation logic + // Phase 1: Try authentication without delegation first + // Phase 2: Only retry with delegation if server supports it (ret_flags) + bool delegationConfigured = (mServiceFlags & REQ_DELEGATE) != 0; + + if (delegationConfigured) { + if (!mDelegationRequested) { + // First attempt: don't request delegation yet + LOG(("First auth attempt without delegation")); + mDelegationRequested = true; + } else if (mDelegationSupported) { + // Second attempt: server supports delegation, now request it + LOG(("Retrying auth with delegation - server supports it")); + req_flags |= GSS_C_DELEG_FLAG; + } + } if (mServiceFlags & REQ_MUTUAL_AUTH) req_flags |= GSS_C_MUTUAL_FLAG; @@ -426,7 +442,7 @@ major_status = gss_init_sec_context_ptr( &minor_status, GSS_C_NO_CREDENTIAL, &mCtx, server, mMechOID, req_flags, GSS_C_INDEFINITE, GSS_C_NO_CHANNEL_BINDINGS, in_token_ptr, nullptr, - &output_token, nullptr, nullptr); + &output_token, &ret_flags, nullptr); if (GSS_ERROR(major_status)) { LogGssError(major_status, minor_status, "gss_init_sec_context() failed"); @@ -434,6 +450,27 @@ rv = NS_ERROR_FAILURE; goto end; } + // Check if server supports delegation (OK-AS-DELEGATE equivalent) + if (delegationConfigured && !mDelegationSupported && + (ret_flags & GSS_C_DELEG_FLAG)) { + LOG(("Server supports delegation (GSS_C_DELEG_FLAG in ret_flags)")); + + // If we completed without requesting delegation, but server supports it, + // we need to restart with delegation + if (major_status == GSS_S_COMPLETE && !(req_flags & GSS_C_DELEG_FLAG)) { + LOG(("Restarting authentication to request delegation")); + Reset(); + + // These flags get cleared by Reset(). + // Set them again to make sure the next call sets GSS_C_DELEG_FLAG + mDelegationRequested = true; + mDelegationSupported = true; + + gss_release_name_ptr(&minor_status, &server); + return GetNextToken(inToken, inTokenLen, outToken, outTokenLen); + } + } + if (major_status == GSS_S_COMPLETE) { // Mark ourselves as being complete, so that if we're called again // we know to start afresh. diff -Nru firefox-esr-140.6.0esr/extensions/auth/nsAuthGSSAPI.h firefox-esr-140.7.0esr/extensions/auth/nsAuthGSSAPI.h --- firefox-esr-140.6.0esr/extensions/auth/nsAuthGSSAPI.h 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/extensions/auth/nsAuthGSSAPI.h 2026-01-06 21:09:44.000000000 +0000 @@ -54,9 +54,11 @@ gss_ctx_id_t mCtx; gss_OID mMechOID; nsCString mServiceName; - uint32_t mServiceFlags; + uint32_t mServiceFlags = REQ_DEFAULT; nsString mUsername; - bool mComplete; + bool mComplete = false; + bool mDelegationRequested = false; + bool mDelegationSupported = false; }; #endif /* nsAuthGSSAPI_h__ */ diff -Nru firefox-esr-140.6.0esr/gfx/2d/DrawTargetCairo.cpp firefox-esr-140.7.0esr/gfx/2d/DrawTargetCairo.cpp --- firefox-esr-140.6.0esr/gfx/2d/DrawTargetCairo.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/gfx/2d/DrawTargetCairo.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -199,6 +199,7 @@ } static cairo_surface_t* CopyToImageSurface(unsigned char* aData, + const IntSize& aSize, const IntRect& aRect, int32_t aStride, SurfaceFormat aFormat) { @@ -219,15 +220,23 @@ } unsigned char* surfData = cairo_image_surface_get_data(surf); - int surfStride = cairo_image_surface_get_stride(surf); - int32_t pixelWidth = BytesPerPixel(aFormat); + size_t surfStride = cairo_image_surface_get_stride(surf); + size_t pixelWidth = BytesPerPixel(aFormat); + size_t rowDataWidth = size_t(aRectWidth) * pixelWidth; + if (rowDataWidth > surfStride || rowDataWidth > size_t(aStride) || + !IntRect(IntPoint(), aSize).Contains(aRect)) { + cairo_surface_destroy(surf); + return nullptr; + } - unsigned char* source = aData + aRect.Y() * aStride + aRect.X() * pixelWidth; + const unsigned char* sourceRow = aData + size_t(aRect.Y()) * size_t(aStride) + + size_t(aRect.X()) * pixelWidth; + unsigned char* destRow = surfData; - MOZ_ASSERT(aStride >= aRectWidth * pixelWidth); for (int32_t y = 0; y < aRectHeight; ++y) { - memcpy(surfData + y * surfStride, source + y * aStride, - aRectWidth * pixelWidth); + memcpy(destRow, sourceRow, rowDataWidth); + sourceRow += aStride; + destRow += surfStride; } cairo_surface_mark_dirty(surf); return surf; @@ -251,14 +260,15 @@ } static cairo_surface_t* CreateSubImageForData(unsigned char* aData, + const IntSize& aSize, const IntRect& aRect, int aStride, SurfaceFormat aFormat) { - if (!aData) { + if (!aData || aStride < 0 || !IntRect(IntPoint(), aSize).Contains(aRect)) { gfxWarning() << "DrawTargetCairo.CreateSubImageForData null aData"; return nullptr; } - unsigned char* data = - aData + aRect.Y() * aStride + aRect.X() * BytesPerPixel(aFormat); + unsigned char* data = aData + size_t(aRect.Y()) * size_t(aStride) + + size_t(aRect.X()) * size_t(BytesPerPixel(aFormat)); cairo_surface_t* image = cairo_image_surface_create_for_data( data, GfxFormatToCairoFormat(aFormat), aRect.Width(), aRect.Height(), @@ -282,9 +292,11 @@ cairo_surface_t* image = GetAsImageSurface(aSurface); if (image) { - image = - CreateSubImageForData(cairo_image_surface_get_data(image), aSubImage, - cairo_image_surface_get_stride(image), aFormat); + image = CreateSubImageForData( + cairo_image_surface_get_data(image), + IntSize(cairo_image_surface_get_width(image), + cairo_image_surface_get_height(image)), + aSubImage, cairo_image_surface_get_stride(image), aFormat); return image; } @@ -359,8 +371,8 @@ return nullptr; } - cairo_surface_t* surf = CreateSubImageForData(map.mData, subimage, - map.mStride, data->GetFormat()); + cairo_surface_t* surf = CreateSubImageForData( + map.mData, data->GetSize(), subimage, map.mStride, data->GetFormat()); // In certain scenarios, requesting larger than 8k image fails. Bug 803568 // covers the details of how to run into it, but the full detailed @@ -373,7 +385,7 @@ // set user data since we're not dependent on the original // data. cairo_surface_t* result = CopyToImageSurface( - map.mData, subimage, map.mStride, data->GetFormat()); + map.mData, data->GetSize(), subimage, map.mStride, data->GetFormat()); data->Unmap(); return result; } @@ -1862,8 +1874,8 @@ return nullptr; } - cairo_surface_t* surf = - CopyToImageSurface(aData, IntRect(IntPoint(), aSize), aStride, aFormat); + cairo_surface_t* surf = CopyToImageSurface( + aData, aSize, IntRect(IntPoint(), aSize), aStride, aFormat); if (!surf) { return nullptr; } diff -Nru firefox-esr-140.6.0esr/gfx/2d/HelpersCairo.h firefox-esr-140.7.0esr/gfx/2d/HelpersCairo.h --- firefox-esr-140.6.0esr/gfx/2d/HelpersCairo.h 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/gfx/2d/HelpersCairo.h 2026-01-06 21:09:44.000000000 +0000 @@ -140,9 +140,15 @@ static inline cairo_format_t GfxFormatToCairoFormat(SurfaceFormat format) { switch (format) { - case SurfaceFormat::A8R8G8B8_UINT32: + case SurfaceFormat::B8G8R8A8: + case SurfaceFormat::R8G8B8A8: + case SurfaceFormat::A8R8G8B8: + // case SurfaceFormat::A8R8G8B8_UINT32: return CAIRO_FORMAT_ARGB32; - case SurfaceFormat::X8R8G8B8_UINT32: + case SurfaceFormat::B8G8R8X8: + case SurfaceFormat::R8G8B8X8: + case SurfaceFormat::X8R8G8B8: + // case SurfaceFormat::X8R8G8B8_UINT32: return CAIRO_FORMAT_RGB24; case SurfaceFormat::A8: return CAIRO_FORMAT_A8; @@ -150,7 +156,7 @@ return CAIRO_FORMAT_RGB16_565; default: gfxCriticalError() << "Unknown image format " << (int)format; - return CAIRO_FORMAT_ARGB32; + return CAIRO_FORMAT_INVALID; } } diff -Nru firefox-esr-140.6.0esr/gfx/layers/SourceSurfaceSharedData.cpp firefox-esr-140.7.0esr/gfx/layers/SourceSurfaceSharedData.cpp --- firefox-esr-140.6.0esr/gfx/layers/SourceSurfaceSharedData.cpp 2025-12-01 18:15:31.000000000 +0000 +++ firefox-esr-140.7.0esr/gfx/layers/SourceSurfaceSharedData.cpp 2026-01-06 21:09:43.000000000 +0000 @@ -80,6 +80,10 @@ bool SourceSurfaceSharedDataWrapper::EnsureMapped(size_t aLength) { MOZ_ASSERT(!GetData()); + if (mBufHandle.Size() < aLength) { + return false; + } + auto mapping = mBufHandle.Map(); while (!mapping) { nsTArray> expired; diff -Nru firefox-esr-140.6.0esr/gfx/thebes/StandardFonts-macos.inc firefox-esr-140.7.0esr/gfx/thebes/StandardFonts-macos.inc --- firefox-esr-140.6.0esr/gfx/thebes/StandardFonts-macos.inc 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/gfx/thebes/StandardFonts-macos.inc 2026-01-06 21:09:43.000000000 +0000 @@ -296,4 +296,5 @@ static const char* kBaseFonts_13_Higher[] = { "Stix Two Math", + "Stix Two Math Regular", }; diff -Nru firefox-esr-140.6.0esr/ipc/glue/BackgroundUtils.cpp firefox-esr-140.7.0esr/ipc/glue/BackgroundUtils.cpp --- firefox-esr-140.6.0esr/ipc/glue/BackgroundUtils.cpp 2025-12-01 18:15:32.000000000 +0000 +++ firefox-esr-140.7.0esr/ipc/glue/BackgroundUtils.cpp 2026-01-06 21:09:44.000000000 +0000 @@ -605,7 +605,8 @@ aLoadInfo->GetIsMetaRefresh(), aLoadInfo->GetLoadingEmbedderPolicy(), aLoadInfo->GetIsOriginTrialCoepCredentiallessEnabledForTopLevel(), unstrippedURI, interceptionInfoArg, aLoadInfo->GetIsNewWindowTarget(), - aLoadInfo->GetUserNavigationInvolvement()); + aLoadInfo->GetUserNavigationInvolvement(), + aLoadInfo->GetContainerFeaturePolicyInfo()); return NS_OK; } @@ -853,7 +854,8 @@ RefPtr loadInfo = new mozilla::net::LoadInfo( loadingPrincipal, triggeringPrincipal, principalToInherit, topLevelPrincipal, resultPrincipalURI, cookieJarSettings, cspToInherit, - triggeringRemoteType, loadInfoArgs.sandboxedNullPrincipalID(), clientInfo, + loadInfoArgs.containerFeaturePolicyInfo(), triggeringRemoteType, + loadInfoArgs.sandboxedNullPrincipalID(), clientInfo, reservedClientInfo, initialClientInfo, controller, loadInfoArgs.securityFlags(), loadInfoArgs.sandboxFlags(), loadInfoArgs.triggeringSandboxFlags(), loadInfoArgs.triggeringWindowId(), diff -Nru firefox-esr-140.6.0esr/js/src/debugger/Debugger.cpp firefox-esr-140.7.0esr/js/src/debugger/Debugger.cpp --- firefox-esr-140.6.0esr/js/src/debugger/Debugger.cpp 2025-12-01 18:15:33.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/debugger/Debugger.cpp 2026-01-06 21:09:45.000000000 +0000 @@ -453,7 +453,10 @@ } void Breakpoint::trace(JSTracer* trc) { + MOZ_ASSERT_IF(trc->kind() != JS::TracerKind::Moving, + !IsDeadProxyObject(wrappedDebugger)); TraceEdge(trc, &wrappedDebugger, "breakpoint owner"); + TraceEdge(trc, &handler, "breakpoint handler"); } diff -Nru firefox-esr-140.6.0esr/js/src/gc/BufferAllocator.cpp firefox-esr-140.7.0esr/js/src/gc/BufferAllocator.cpp --- firefox-esr-140.6.0esr/js/src/gc/BufferAllocator.cpp 2025-12-01 18:15:33.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/gc/BufferAllocator.cpp 2026-01-06 21:09:45.000000000 +0000 @@ -1210,6 +1210,13 @@ clearAllocatedDuringCollectionState(lock); + if (minorState == State::Sweeping) { + // If we are minor sweeping then chunks with allocatedDuringCollection set + // may be present in |mixedChunksToSweep|. Set a flag so these are cleared + // when they are merged later. + majorFinishedWhileMinorSweeping = true; + } + for (BufferChunk* chunk : mediumTenuredChunksToSweep.ref()) { chunk->markBits.ref().clear(); } diff -Nru firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-1995637.js firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-1995637.js --- firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-1995637.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-1995637.js 2026-01-06 21:09:44.000000000 +0000 @@ -0,0 +1,66 @@ +// |jit-test| error: TypeError +gczeal(9,16); +function F1() { + if (!new.target) { throw 'must be called with new'; } + this.b = null; +} +new F1(); +new F1(); +function f5() {} +new BigUint64Array(3474); +function f14() {} +function f25(a26, a27) { + for (let i30 = 0, i31 = true; i31; i31--) { + function f37() { + function F38() {} + for (let i44 = 0, i45 = SharedArrayBuffer; i45; + (() => { + i45--; + Int8Array.principal = BigUint64Array; + function F50() {} + Int8Array.sameZoneAs = /wp(?:a?)+/imu; + const v54 = this.newGlobal(Int8Array); + const t7 = ({ __proto__: v54 }).Debugger; + const v57 = t7(F50); + const v59 = v57.getNewestFrame(i30, i45, i45, f25, v57).older; + v59.script.setBreakpoint(16, v59); + })()) {} + for (let [i134, i135] = (() => { + for (let i84 = 0, i85 = 10; i85; + (() => { + i85--; + for (let [i102, i103] = (() => { + for (let [i95, i96] = (() => { + new Uint8Array(); + return [0, 10]; + })(); i96; i96--) { + } + return [0, SharedArrayBuffer]; + })(); + i103; i103--) {} + for (let i113 = -4, i114 = 10; i114; i114--) {} + for (let i122 = 4, i123 = 10; i123--, i123; i123--) { + i123++; + } + })()) {} + return [0, SharedArrayBuffer]; + })(); + i135; i135--) { } + for (let i143 = 0, i144 = 10; i144; i144--) {} + } + f37.apply(); + } + for (let i153 = 0, i154 = 10; i154; i154--) {} + function F160(a162, a163) { + if (!new.target) { throw 'must be called with new'; } + this.c = a27; + this.h = a162; + } + new F160(234, a27); + const v167 = this.nukeAllCCWs(); + for (let i170 = 0, i171 = 10; i171; i171--) {} + try { + f25(); + } catch(e178) {} +} +f25(f25, f25); diff -Nru firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-1999464.js firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-1999464.js --- firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-1999464.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-1999464.js 2026-01-06 21:09:44.000000000 +0000 @@ -0,0 +1,6 @@ +fullcompartmentchecks(1); +var x = newGlobal({ newCompartment: true }); +Debugger(x).onEnterFrame = function (y) { + y.script.setBreakpoint(0, {}); +}; +x.eval("(function(){})()"); diff -Nru firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-2002646.js firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-2002646.js --- firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-2002646.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-2002646.js 2026-01-06 21:09:44.000000000 +0000 @@ -0,0 +1,8 @@ +var x = newGlobal({ newCompartment: true }); +Debugger(x).onDebuggerStatement = function (y) { + y.script.setBreakpoint(y.script.getLineOffsets(1)[0], { + hit: function () {}, + }); +}; +x.eval("function* g() { debugger; return; };g().next()"); +relazifyFunctions(); diff -Nru firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-2003588.js firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-2003588.js --- firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-2003588.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-2003588.js 2026-01-06 21:09:44.000000000 +0000 @@ -0,0 +1,9 @@ +var x = newGlobal({ newCompartment: true }); +var y = Debugger(x); +y.x = y; +y.onDebuggerStatement = function(w) { + nukeAllCCWs(); + w.environment.getVariable("x"); +} +x.eval('function f(z) { with(z) { debugger } }'); +x.f(y); diff -Nru firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-2003809.js firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-2003809.js --- firefox-esr-140.6.0esr/js/src/jit-test/tests/debug/bug-2003809.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/jit-test/tests/debug/bug-2003809.js 2026-01-06 21:09:44.000000000 +0000 @@ -0,0 +1,8 @@ +var x = newGlobal({ newCompartment: true }); +Debugger(x).onNewScript = function f(z) { m = z }; +x.eval("function g(){}"); +m.setBreakpoint(0, {}); +nukeAllCCWs(); +recomputeWrappers(); +gc(); + diff -Nru firefox-esr-140.6.0esr/js/src/jit-test/tests/gc/bug-2003100.js firefox-esr-140.7.0esr/js/src/jit-test/tests/gc/bug-2003100.js --- firefox-esr-140.6.0esr/js/src/jit-test/tests/gc/bug-2003100.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/jit-test/tests/gc/bug-2003100.js 2026-01-06 21:09:45.000000000 +0000 @@ -0,0 +1,9 @@ +var dbgA = new Debugger; +var g1 = newGlobal({newCompartment: true}); +g1.eval('function g1f() { print("Weltuntergang"); }'); +var DOAg1 = dbgA.addDebuggee(g1); +var DOAg1f = DOAg1.getOwnPropertyDescriptor('g1f').value; +DOAg1f.script.setBreakpoint(0, { hit: () => { logA += '1'; } }); +gczeal(2,1) +class Base { } +recomputeWrappers(); diff -Nru firefox-esr-140.6.0esr/js/src/proxy/CrossCompartmentWrapper.cpp firefox-esr-140.7.0esr/js/src/proxy/CrossCompartmentWrapper.cpp --- firefox-esr-140.6.0esr/js/src/proxy/CrossCompartmentWrapper.cpp 2025-12-01 18:15:33.000000000 +0000 +++ firefox-esr-140.7.0esr/js/src/proxy/CrossCompartmentWrapper.cpp 2026-01-06 21:09:44.000000000 +0000 @@ -5,6 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "builtin/FinalizationRegistryObject.h" +#include "debugger/Debugger.h" #include "gc/GC.h" #include "gc/PublicIterators.h" #include "js/friend/WindowProxy.h" // js::IsWindow, js::IsWindowProxy @@ -449,6 +450,12 @@ continue; } + // Don't nuke wrappers for debugger objects. These are used in Breakpoints + // and nuking them breaks debugger invariants. + if (MOZ_UNLIKELY(wrapped->is())) { + continue; + } + // We only skip nuking window references that point to a target // compartment, not the ones that belong to it. if (nukeReferencesToWindow == DontNukeWindowReferences && @@ -471,6 +478,12 @@ MOZ_ASSERT(obj->compartment() != target); + // Wrappers for debugger objects are not nuked and we must continue to allow + // them to be created or we will break the invariants in Compartment::wrap. + if (MOZ_UNLIKELY(obj->is())) { + return true; + } + if (target->nukedOutgoingWrappers || obj->nonCCWRealm()->nukedIncomingWrappers) { return false; @@ -501,6 +514,9 @@ AutoDisableProxyCheck adpc; + // This can't GC (and RemapDeadWrapper suppresses it). + JS::AutoAssertNoGC nogc(cx); + // If we're mapping to a different target (as opposed to just recomputing // for the same target), we must not have an existing wrapper for the new // target, otherwise this will break. @@ -542,6 +558,10 @@ AutoDisableProxyCheck adpc; + // Suppress GC while we manipulate the wrapper map so that it can't observe + // intervening state. + gc::AutoSuppressGC nogc(cx); + // wobj is not a cross-compartment wrapper, so we can use nonCCWRealm. Realm* wrealm = wobj->nonCCWRealm(); diff -Nru firefox-esr-140.6.0esr/js/xpconnect/loader/ScriptPreloader.cpp firefox-esr-140.7.0esr/js/xpconnect/loader/ScriptPreloader.cpp --- firefox-esr-140.6.0esr/js/xpconnect/loader/ScriptPreloader.cpp 2025-12-01 18:15:36.000000000 +0000 +++ firefox-esr-140.7.0esr/js/xpconnect/loader/ScriptPreloader.cpp 2026-01-06 21:09:48.000000000 +0000 @@ -673,6 +673,36 @@ PrepareCacheWriteInternal(); } +// A struct to hold reference to a CachedStencil and the snapshot of the +// CachedStencil::mLoadTime field. +// CachedStencil::mLoadTime field can be modified concurrently, and we need +// to create a snapshot, in order to sort scripts. +struct CachedStencilRefAndTime { + using CachedStencil = ScriptPreloader::CachedStencil; + CachedStencil* mStencil; + TimeStamp mLoadTime; + + explicit CachedStencilRefAndTime(CachedStencil* aStencil) + : mStencil(aStencil), mLoadTime(aStencil->mLoadTime) {} + + // For use with nsTArray::Sort. + // + // Orders scripts by script load time, so that scripts which are needed + // earlier are stored earlier, and scripts needed at approximately the + // same time are stored approximately contiguously. + struct Comparator { + bool Equals(const CachedStencilRefAndTime& a, + const CachedStencilRefAndTime& b) const { + return a.mLoadTime == b.mLoadTime; + } + + bool LessThan(const CachedStencilRefAndTime& a, + const CachedStencilRefAndTime& b) const { + return a.mLoadTime < b.mLoadTime; + } + }; +} JS_HAZ_NON_GC_POINTER; + // Writes out a script cache file for the scripts accessed during early // startup in this session. The cache file is a little-endian binary file with // the following format: @@ -726,19 +756,20 @@ mMonitor.AssertNotCurrentThreadOwns(); MonitorAutoLock mal(mMonitor); - nsTArray scripts; + nsTArray scriptRefs; for (auto& script : IterHash(mScripts, Match())) { - scripts.AppendElement(script); + scriptRefs.AppendElement(CachedStencilRefAndTime(script)); } // Sort scripts by load time, with async loaded scripts before sync scripts. // Since async scripts are always loaded immediately at startup, it helps to // have them stored contiguously. - scripts.Sort(CachedStencil::Comparator()); + scriptRefs.Sort(CachedStencilRefAndTime::Comparator()); OutputBuffer buf; size_t offset = 0; - for (auto script : scripts) { + for (auto& scriptRef : scriptRefs) { + auto* script = scriptRef.mStencil; script->mOffset = offset; MOZ_DIAGNOSTIC_ASSERT( JS::IsTranscodingBytecodeOffsetAligned(script->mOffset)); @@ -768,7 +799,8 @@ written += padding; } - for (auto script : scripts) { + for (auto& scriptRef : scriptRefs) { + auto* script = scriptRef.mStencil; MOZ_DIAGNOSTIC_ASSERT(JS::IsTranscodingBytecodeOffsetAligned(written)); MOZ_TRY(Write(fd, script->Range().begin().get(), script->mSize)); diff -Nru firefox-esr-140.6.0esr/js/xpconnect/loader/ScriptPreloader.h firefox-esr-140.7.0esr/js/xpconnect/loader/ScriptPreloader.h --- firefox-esr-140.6.0esr/js/xpconnect/loader/ScriptPreloader.h 2025-12-01 18:15:36.000000000 +0000 +++ firefox-esr-140.7.0esr/js/xpconnect/loader/ScriptPreloader.h 2026-01-06 21:09:47.000000000 +0000 @@ -67,6 +67,8 @@ using namespace mozilla::loader; +struct CachedStencilRefAndTime; + class ScriptPreloader : public nsIObserver, public nsIMemoryReporter, public nsIRunnable, @@ -216,21 +218,6 @@ : ScriptStatus::Saved; } - // For use with nsTArray::Sort. - // - // Orders scripts by script load time, so that scripts which are needed - // earlier are stored earlier, and scripts needed at approximately the - // same time are stored approximately contiguously. - struct Comparator { - bool Equals(const CachedStencil* a, const CachedStencil* b) const { - return a->mLoadTime == b->mLoadTime; - } - - bool LessThan(const CachedStencil* a, const CachedStencil* b) const { - return a->mLoadTime < b->mLoadTime; - } - }; - struct StatusMatcher final : public Matcher { explicit StatusMatcher(ScriptStatus status) : mStatus(status) {} @@ -388,6 +375,8 @@ MaybeOneOf> mXDRData; } JS_HAZ_NON_GC_POINTER; + friend struct CachedStencilRefAndTime; + template static Matcher* Match() { static CachedStencil::StatusMatcher matcher{status}; diff -Nru firefox-esr-140.6.0esr/layout/generic/nsBlockFrame.cpp firefox-esr-140.7.0esr/layout/generic/nsBlockFrame.cpp --- firefox-esr-140.6.0esr/layout/generic/nsBlockFrame.cpp 2025-12-01 18:15:36.000000000 +0000 +++ firefox-esr-140.7.0esr/layout/generic/nsBlockFrame.cpp 2026-01-06 21:09:48.000000000 +0000 @@ -1532,7 +1532,9 @@ // will take effect for the current line list. Only to be used when there are // enough lines that the clamp will apply. auto getClampPosition = [&](uint32_t aClampCount) -> BalanceTarget { - MOZ_ASSERT(aClampCount < mLines.size()); + if (NS_WARN_IF(aClampCount >= mLines.size())) { + return BalanceTarget{}; + } auto iter = mLines.begin(); for (uint32_t i = 0; i < aClampCount; i++) { ++iter; diff -Nru firefox-esr-140.6.0esr/layout/painting/nsDisplayList.h firefox-esr-140.7.0esr/layout/painting/nsDisplayList.h --- firefox-esr-140.6.0esr/layout/painting/nsDisplayList.h 2025-12-01 18:15:36.000000000 +0000 +++ firefox-esr-140.7.0esr/layout/painting/nsDisplayList.h 2026-01-06 21:09:48.000000000 +0000 @@ -3216,7 +3216,7 @@ for (nsDisplayItem* item : TakeItems()) { items.AppendElement(Item(item)); } - items.StableSort(aComparator); + items.template StableSort(aComparator); for (Item& item : items) { AppendToTop(item); diff -Nru firefox-esr-140.6.0esr/media/webrtc/signaling/gtest/videoconduit_unittests.cpp firefox-esr-140.7.0esr/media/webrtc/signaling/gtest/videoconduit_unittests.cpp --- firefox-esr-140.6.0esr/media/webrtc/signaling/gtest/videoconduit_unittests.cpp 2025-12-01 18:15:37.000000000 +0000 +++ firefox-esr-140.7.0esr/media/webrtc/signaling/gtest/videoconduit_unittests.cpp 2026-01-06 21:09:48.000000000 +0000 @@ -438,6 +438,9 @@ ASSERT_EQ(Call()->mVideoSendEncoderConfig->min_transmit_bitrate_bps, 0); ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, KBPS(10000)); ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + ASSERT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + KBPS(10000)); // empty codec name mControl.Update([&](auto& aControl) { @@ -552,9 +555,13 @@ aControl.mVideoSendRtpRtcpConfig = Some(RtpRtcpConfig(webrtc::RtcpMode::kCompound, true)); }); - ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 2000000); { ASSERT_TRUE(Call()->mVideoSendEncoderConfig); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 2000000); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + ASSERT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 2000000); SendVideoFrame(1280, 720, 1); const std::vector videoStreams = Call()->CreateEncoderStreams(1280, 720); @@ -571,9 +578,13 @@ codecConfigTiasLow.mTias = 1000; aControl.mVideoSendCodec = Some(codecConfigTiasLow); }); - ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 1000); { ASSERT_TRUE(Call()->mVideoSendEncoderConfig); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 1000); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + ASSERT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 1000); SendVideoFrame(1280, 720, 2); const std::vector videoStreams = Call()->CreateEncoderStreams(1280, 720); @@ -595,6 +606,11 @@ Some(RtpRtcpConfig(webrtc::RtcpMode::kCompound, true)); }); ASSERT_TRUE(Call()->mVideoSendEncoderConfig); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 50000); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + ASSERT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 50000); SendVideoFrame(1280, 720, 1); const std::vector videoStreams = Call()->CreateEncoderStreams(1280, 720); @@ -1261,6 +1277,10 @@ }); ASSERT_TRUE(Call()->mVideoSendEncoderConfig); EXPECT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 2000000); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + EXPECT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 2000000); SendVideoFrame(1280, 720, 1); { @@ -1285,6 +1305,11 @@ aControl.mVideoSendCodec = Some(codecConfig); }); ASSERT_TRUE(Call()->mVideoSendEncoderConfig); + EXPECT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 50000); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + EXPECT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 50000); SendVideoFrame(1280, 720, 2); { const std::vector videoStreams = @@ -1382,6 +1407,10 @@ }); ASSERT_TRUE(Call()->mVideoSendEncoderConfig); ASSERT_EQ(Call()->mVideoSendEncoderConfig->max_bitrate_bps, 2000000); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + EXPECT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 2000000); SendVideoFrame(1280, 720, 1); { @@ -1403,6 +1432,10 @@ aControl.mVideoSendCodec = Some(codecConfig); }); ASSERT_TRUE(Call()->mVideoSendEncoderConfig); + ASSERT_EQ(Call()->mVideoSendEncoderConfig->number_of_streams, 1U); + EXPECT_EQ( + Call()->mVideoSendEncoderConfig->simulcast_layers[0].max_bitrate_bps, + 50000); SendVideoFrame(1280, 720, 2); { const std::vector videoStreams = diff -Nru firefox-esr-140.6.0esr/mobile/android/focus-android/tools/gradle/versionCode.gradle firefox-esr-140.7.0esr/mobile/android/focus-android/tools/gradle/versionCode.gradle --- firefox-esr-140.6.0esr/mobile/android/focus-android/tools/gradle/versionCode.gradle 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/mobile/android/focus-android/tools/gradle/versionCode.gradle 2026-01-06 21:09:49.000000000 +0000 @@ -1,45 +1,98 @@ -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ import java.text.SimpleDateFormat -// This gradle scripts generates a "unique" version code for our release versions. -// -// The result of the version code depends on the timezone. We assume that this script will only be used -// for release versions and running on our build servers with a fixed timezone. -// -// The version code is composed like: yDDDHHmm -// * y = Double digit year, with 16 substracted: 2017 -> 17 -> 1 -// * DDD = Day of the year, pad with zeros if needed: September 6th -> 249 -// * HH = Hour in day (00-23) -// * mm = Minute in hour -// -// For September 6th, 2017, 9:41 am this will generate the versionCode: 12490941 (1-249-09-41). -// -// Note that we only use this generated version code for builds we want to distribute. For local -// debug builds we use a fixed versionCode to not mess with the caching mechanism of the build -// system. - +/** + * Generates a "unique" versionCode for release builds. + * + * The resulting versionCode depends on the local timezone of the machine running this script. + * This is OK because we only use this for release builds on CI, where the timezone is fixed. + * + * Format: byDDDHHmm + * - b = base / epoch digit + * Historically hardcoded to "3". This digit is incremented when the year-derived + * component overflows its single digit (e.g., in 2026). + * - y = 1 digit derived from (two-digit year - 16), modulo 10 + * - DDD = day of year (001–366), zero-padded to 3 digits + * - HHmm = 24h time (00–23)(00–59) + * + * Example: + * Sept 6, 2017 @ 09:41 + * year = 17 - 16 = 1 + * base = 3 + * -> 3-1-249-09-41 -> 312490941 + * + * Historical note: + * Focus first shipped in 2017. The original scheme unconditionally used (yy - 16) which + * only fit in a single digit from 2017–2025. + * + * 2026 rollover: + * In 2026, (yy - 16) became 10. Allowing this to grow to two digits breaks the intended + * byDDDHHmm layout and can exceed Play / int limits. + * + * To preserve: + * - a single-digit `y` + * - monotonic versionCodes across year boundaries + * + * we keep `y` as (yearOffset % 10) and carry overflow into the base digit: + * 2025 -> base=3, y=9 -> 39DDDHHmm + * 2026 -> base=4, y=0 -> 40DDDHHmm + */ ext { - def base = "3" + // "Epoch" digit(s). Historically this was "3". + // We bump it by +1 each time (yy - 16) crosses another multiple of 10 (i.e., 2026, 2036, ...). + def epochDigit = 3 + def today = new Date() - // We use the current year (double digit) and substract 16. We first released Focus in - // 2017 so this value will start counting at 1 and increment by one every year. - def year = String.valueOf((new SimpleDateFormat("yy").format(today) as int) - 16) + def yy = (new SimpleDateFormat("yy").format(today) as int) + def yearOffset = yy - 16 // 2017 -> 1, 2025 -> 9, 2026 -> 10, etc. + if (yearOffset < 0) { + throw new GradleException( + "versionCode yearOffset underflow: yearOffset=$yearOffset (yy=$yy)." + ) + } + + // Keep the "y" component as one digit, and carry overflow into the epoch digit. + def carry = (int) (yearOffset / 10) + def yearDigit = (int) (yearOffset % 10) + + def epoch = epochDigit + carry + if (epoch >= 10) { + throw new GradleException( + "versionCode epoch overflow: epoch=$epoch (yy=$yy). Update versionCode scheme." + ) + } // We use the day in the Year (e.g. 248) as opposed to month + day (0510) because it's one digit shorter. // If needed we pad with zeros (e.g. 25 -> 025) def day = String.format("%03d", (new SimpleDateFormat("D").format(today) as int)) - + // We append the hour in day (24h) and minute in hour (7:26 pm -> 1926). We do not append // seconds. This assumes that we do not need to build multiple release(!) builds the same // minute. def time = new SimpleDateFormat("HHmm").format(today) - generatedVersionCode = (base + year + day + time) as int + // Build the final versionCode using the previously-calculated inputs. + def versionCode = ("${epoch}${yearDigit}${day}${time}" as long) + + // The Play Console has historically enforced a 2,100,000,000 cap. Keep a defensive ceiling here. + // Even without this, Android requires versionCode to fit in a signed 32-bit int. + def MAX_VERSION_CODE = 2_100_000_000 + if (versionCode > MAX_VERSION_CODE) { + throw new GradleException( + "Generated versionCode exceeds MAX_VERSION_CODE ($MAX_VERSION_CODE): $versionCode (from $versionCodeStr)" + ) + } + if (versionCode > Integer.MAX_VALUE) { + throw new GradleException( + "Generated versionCode exceeds Integer.MAX_VALUE: $versionCode (from $versionCodeStr)" + ) + } + generatedVersionCode = (versionCode as int) println("Generated versionCode: $generatedVersionCode") println() } diff -Nru firefox-esr-140.6.0esr/netwerk/base/LoadInfo.cpp firefox-esr-140.7.0esr/netwerk/base/LoadInfo.cpp --- firefox-esr-140.6.0esr/netwerk/base/LoadInfo.cpp 2025-12-01 18:15:38.000000000 +0000 +++ firefox-esr-140.7.0esr/netwerk/base/LoadInfo.cpp 2026-01-06 21:09:50.000000000 +0000 @@ -800,6 +800,7 @@ nsIPrincipal* aPrincipalToInherit, nsIPrincipal* aTopLevelPrincipal, nsIURI* aResultPrincipalURI, nsICookieJarSettings* aCookieJarSettings, nsIContentSecurityPolicy* aCspToInherit, + const Maybe& aContainerFeaturePolicyInfo, const nsACString& aTriggeringRemoteType, const nsID& aSandboxedNullPrincipalID, const Maybe& aClientInfo, const Maybe& aReservedClientInfo, @@ -855,6 +856,7 @@ mResultPrincipalURI(aResultPrincipalURI), mCookieJarSettings(aCookieJarSettings), mCspToInherit(aCspToInherit), + mContainerFeaturePolicyInfo(aContainerFeaturePolicyInfo), mTriggeringRemoteType(aTriggeringRemoteType), mSandboxedNullPrincipalID(aSandboxedNullPrincipalID), mClientInfo(aClientInfo), diff -Nru firefox-esr-140.6.0esr/netwerk/base/LoadInfo.h firefox-esr-140.7.0esr/netwerk/base/LoadInfo.h --- firefox-esr-140.6.0esr/netwerk/base/LoadInfo.h 2025-12-01 18:15:38.000000000 +0000 +++ firefox-esr-140.7.0esr/netwerk/base/LoadInfo.h 2026-01-06 21:09:50.000000000 +0000 @@ -229,6 +229,7 @@ nsIPrincipal* aPrincipalToInherit, nsIPrincipal* aTopLevelPrincipal, nsIURI* aResultPrincipalURI, nsICookieJarSettings* aCookieJarSettings, nsIContentSecurityPolicy* aCspToInherit, + const Maybe& aContainerFeaturePolicyInfo, const nsACString& aTriggeringRemoteType, const nsID& aSandboxedNullPrincipalID, const Maybe& aClientInfo, diff -Nru firefox-esr-140.6.0esr/netwerk/dns/effective_tld_names.dat firefox-esr-140.7.0esr/netwerk/dns/effective_tld_names.dat --- firefox-esr-140.6.0esr/netwerk/dns/effective_tld_names.dat 2025-12-01 18:15:38.000000000 +0000 +++ firefox-esr-140.7.0esr/netwerk/dns/effective_tld_names.dat 2026-01-06 21:09:50.000000000 +0000 @@ -5,8 +5,8 @@ // Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat, // rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported. -// VERSION: 2025-11-27_13-27-58_UTC -// COMMIT: d3567de748c61e2de5a3156cc52ef0e0fdc1dc0c +// VERSION: 2025-12-28_14-57-43_UTC +// COMMIT: 1ef6d3bc102c85d12e92be54ec0dad8ee990dd5f // Instructions on pulling and using this list can be found at https://publicsuffix.org/list/. @@ -1301,6 +1301,12 @@ net.gy org.gy +// Hercules : https://hercules.app +// Submitted by Brendan Falk +onhercules.app +hercules-app.com +hercules-dev.com + // hk : https://www.hkirc.hk // Submitted by registry hk @@ -5667,7 +5673,9 @@ sj // sk : https://www.iana.org/domains/root/db/sk.html +// https://sk-nic.sk/ sk +org.sk // sl : http://www.nic.sl // Submitted by registry @@ -6816,7 +6824,7 @@ // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-11-08T15:16:38Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-12-06T15:17:27Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -10194,7 +10202,7 @@ // https://www.iana.org/domains/root/db/song.html song -// sony : Sony Corporation +// sony : Sony Group Corporation // https://www.iana.org/domains/root/db/sony.html sony @@ -12335,6 +12343,10 @@ // concludes Amazon +// Antagonist B.V. : https://www.antagonist.nl/ +// Submitted by Sander Hoentjen +antagonist.cloud + // Apigee : https://apigee.com/ // Submitted by Apigee Security Team apigee.io @@ -12347,6 +12359,24 @@ // Submitted by Alexander Selivanov siiites.com +// Apple : https://www.apple.com +// Submitted by Apple DNS +int.apple +*.cloud.int.apple +*.r.cloud.int.apple +*.ap-north-1.r.cloud.int.apple +*.ap-south-1.r.cloud.int.apple +*.ap-south-2.r.cloud.int.apple +*.eu-central-1.r.cloud.int.apple +*.eu-north-1.r.cloud.int.apple +*.us-central-1.r.cloud.int.apple +*.us-central-2.r.cloud.int.apple +*.us-east-1.r.cloud.int.apple +*.us-east-2.r.cloud.int.apple +*.us-west-1.r.cloud.int.apple +*.us-west-2.r.cloud.int.apple +*.us-west-3.r.cloud.int.apple + // Appspace : https://www.appspace.com // Submitted by Appspace Security Team appspacehosted.com @@ -12359,6 +12389,7 @@ // Appwrite : https://appwrite.io // Submitted by Steven Nguyen appwrite.global +appwrite.network *.appwrite.run // Aptible : https://www.aptible.com/ @@ -12916,8 +12947,11 @@ // Submitted by Calvin Browne jozi.biz -// DNSHE : https://de5.net +// DNSHE : https://www.dnshe.com // Submitted by DNSHE Team +ccwu.cc +cc.cd +us.ci de5.net // DNShome : https://www.dnshome.de/ @@ -12929,6 +12963,12 @@ online.th shop.th +// dotScot Domains : https://domains.scot/ +// Submitted by DNS Team +co.scot +me.scot +org.scot + // DrayTek Corp. : https://www.draytek.com/ // Submitted by Paul Fang drayddns.com @@ -13295,12 +13335,9 @@ // Emergent : https://emergent.sh // Submitted by Emergent Security Team emergent.cloud +preview.emergentagent.com emergent.host -// En root‽ : https://en-root.org -// Submitted by Emmanuel Raviart -en-root.fr - // Enalean SAS : https://www.enalean.com // Submitted by Enalean Security Team mytuleap.com @@ -13561,15 +13598,9 @@ flutterflow.app // fly.io : https://fly.io -// Submitted by Kurt Mackey +// Submitted by Kurt Mackey +sprites.app fly.dev -shw.io -edgeapp.net - -// Forgerock : https://www.forgerock.com -// Submitted by Roderick Parr -forgeblocks.com -id.forgerock.io // FoundryLabs, Inc : https://e2b.dev/ // Submitted by Jiri Sveceny @@ -13882,6 +13913,10 @@ günstigbestellen.de günstigliefern.de +// GV.UY : https://nic.gv.uy +// Submitted by cheng +gv.uy + // Hackclub Nest : https://hackclub.app // Submitted by Cyteon hackclub.app @@ -14014,6 +14049,10 @@ ibxos.it iliadboxos.it +// Imagine : https://imagine.dev +// Submitted by Steven Nguyen +imagine-proxy.work + // Incsub, LLC : https://incsub.com/ // Submitted by Aaron Edwards smushcdn.com @@ -14022,6 +14061,10 @@ tempurl.host wpmudev.host +// Indevs : https://indevs.in +// Submitted by Sudheer Bhuvana +indevs.in + // Individual Network Berlin e.V. : https://www.in-berlin.de/ // Submitted by Christian Seitz dyn-berlin.de @@ -14258,6 +14301,10 @@ ezproxy.kuleuven.be kuleuven.cloud +// Kevin Service : https://kevsrv.me +// Submitted by Kevin Service Team +ae.kg + // Keyweb AG : https://www.keyweb.de // Submitted by Martin Dannehl keymachine.de @@ -14455,6 +14502,11 @@ // Submitted by Damien Tournoud *.magentosite.cloud +// Magic Patterns : https://www.magicpatterns.com +// Submitted by Teddy Ni +magicpatterns.app +magicpatternsapp.com + // Mail.Ru Group : https://hb.cldmail.ru // Submitted by Ilya Zaretskiy hb.cldmail.ru @@ -14820,10 +14872,6 @@ nsupdate.info nerdpol.ovh -// NYC.mn : https://dot.nyc.mn/ -// Submitted by NYC.mn Subdomain Service -nyc.mn - // O3O.Foundation : https://o3o.foundation/ // Submitted by the prvcy.page Registry Team prvcy.page @@ -14984,10 +15032,6 @@ gh.srv.us gl.srv.us -// PE Ulyanov Kirill Sergeevich : https://airy.host -// Submitted by Kirill Ulyanov -lk3.ru - // Peplink | Pepwave : http://peplink.com/ // Submitted by Steve Leung mypep.link @@ -14996,6 +15040,11 @@ // Submitted by Kenneth Van Alstyne perspecta.cloud +// Ping Identity : https://www.pingidentity.com +// Submitted by Ping Identity +forgeblocks.com +id.forgerock.io + // Plain : https://www.plain.com/ // Submitted by Jesús Hernández support.site @@ -15014,11 +15063,6 @@ *.platformsh.site *.tst.site -// Platter : https://platter.dev -// Submitted by Patrick Flor -platter-app.dev -platterp.us - // Pley AB : https://www.pley.com/ // Submitted by Henning Pohl pley.games @@ -15066,6 +15110,10 @@ // Submitted by Martin Meier protonet.io +// PSL Sandbox : https://github.com/groundcat/PSL-Sandbox +// Submitted by groundcat +platter-app.dev + // PT Ekossistim Indo Digital : https://e.id // Submitted by Eid Team e.id @@ -15075,6 +15123,11 @@ chirurgiens-dentistes-en-france.fr byen.site +// PublicZone : https://publiczone.org/ +// Submitted by PublicZone NOC Team +nyc.mn +*.cn.st + // pubtls.org : https://www.pubtls.org // Submitted by Kor Nielsen pubtls.org @@ -15180,6 +15233,11 @@ // Submitted by Andrew Farries instances.spawn.cc +// Redpanda Data : https://redpanda.com +// Submitted by Infrastructure Team +*.clusters.rdpa.co +*.srvrless.rdpa.co + // Render : https://render.com // Submitted by Anurag Goel onrender.com @@ -15353,6 +15411,10 @@ // Submitted by Asheesh Laroia sandcats.io +// Sav.com, LLC : https://marketing.sav.com/ +// Submitted by Mukul Kudegave +sav.case + // SBE network solutions GmbH : https://www.sbe.de/ // Submitted by Norman Meilick logoip.com @@ -15646,10 +15708,6 @@ // Submitted by Tony Schirmer storebase.store -// Storipress : https://storipress.com -// Submitted by Benno Liu -storipress.app - // Storj Labs Inc. : https://storj.io/ // Submitted by Philip Hutchins storj.farm @@ -15761,6 +15819,14 @@ site.tb-hosting.com directwp.eu +// TechEdge Limited: https://www.nic.uk.cc/ +// Submitted by TechEdge Developer +ec.cc +eu.cc +gu.cc +uk.cc +us.cc + // Teckids e.V. : https://www.teckids.org // Submitted by Dominik George edugit.io @@ -16154,6 +16220,7 @@ // Zone.ID: https://zone.id // Submitted by Gx1.org zone.id +nett.to // ZoneABC : https://zoneabc.net // Submitted by ZoneABC Team diff -Nru firefox-esr-140.6.0esr/netwerk/ipc/NeckoChannelParams.ipdlh firefox-esr-140.7.0esr/netwerk/ipc/NeckoChannelParams.ipdlh --- firefox-esr-140.6.0esr/netwerk/ipc/NeckoChannelParams.ipdlh 2025-12-01 18:15:38.000000000 +0000 +++ firefox-esr-140.7.0esr/netwerk/ipc/NeckoChannelParams.ipdlh 2026-01-06 21:09:51.000000000 +0000 @@ -207,6 +207,7 @@ InterceptionInfoArg? interceptionInfo; bool isNewWindowTarget; UserNavigationInvolvement userNavigationInvolvement; + FeaturePolicyInfo? containerFeaturePolicyInfo; }; /** diff -Nru firefox-esr-140.6.0esr/security/ct/CTKnownLogs.h firefox-esr-140.7.0esr/security/ct/CTKnownLogs.h --- firefox-esr-140.6.0esr/security/ct/CTKnownLogs.h 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/security/ct/CTKnownLogs.h 2026-01-06 21:09:50.000000000 +0000 @@ -14,7 +14,7 @@ #include -static const PRTime kCTExpirationTime = INT64_C(1770634470000000); +static const PRTime kCTExpirationTime = INT64_C(1773669190000000); namespace mozilla::ct { @@ -208,7 +208,7 @@ "\x99", 91}, {"DigiCert 'Wyvern2027h1'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1760119200000, // 2025-10-10T18:00:00Z + 1766253600000, // 2025-12-20T18:00:00Z 2, // operated by DigiCert "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\x6a\xcb\x71\x62\x3d\x66\x9e\xd1\xae" @@ -218,7 +218,7 @@ "\xee", 91}, {"DigiCert 'Wyvern2027h2'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1760119200000, // 2025-10-10T18:00:00Z + 1766253600000, // 2025-12-20T18:00:00Z 2, // operated by DigiCert "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xb8\xe8\x3c\x85\xc8\x1a\x61\x3f\xcc" @@ -258,7 +258,7 @@ "\xcd", 91}, {"DigiCert 'sphinx2027h1'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1760119200000, // 2025-10-10T18:00:00Z + 1766253600000, // 2025-12-20T18:00:00Z 2, // operated by DigiCert "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xbe\x2a\xc8\xab\x55\xcf\xc2\x0c\x06" @@ -268,7 +268,7 @@ "\x21", 91}, {"DigiCert 'sphinx2027h2'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1760119200000, // 2025-10-10T18:00:00Z + 1766253600000, // 2025-12-20T18:00:00Z 2, // operated by DigiCert "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\x50\x27\xb6\xdc\xcf\x3c\xf6\x60\x2c" @@ -438,7 +438,7 @@ "\xc9", 91}, {"Let's Encrypt 'Oak2025h2'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1701000000000, // 2023-11-26T12:00:00Z + 1765578600000, // 2025-12-12T22:30:00Z 4, // operated by Let's Encrypt "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xb5\x76\x30\x07\xad\xc6\xc8\xd2\xe4" @@ -448,7 +448,7 @@ "\xa9", 91}, {"Let's Encrypt 'Oak2026h1'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1730678400000, // 2024-11-04T00:00:00Z + 1765578600000, // 2025-12-12T22:30:00Z 4, // operated by Let's Encrypt "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\x99\xd4\x61\x70\x22\xfa\x77\x93\x0d" @@ -458,7 +458,7 @@ "\x49", 91}, {"Let's Encrypt 'Oak2026h2'", CTLogState::Admissible, CTLogFormat::RFC6962, - 1730678400000, // 2024-11-04T00:00:00Z + 1765578600000, // 2025-12-12T22:30:00Z 4, // operated by Let's Encrypt "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\x6a\x70\x9d\xb3\x96\xe3\xec\x85\x36" @@ -617,6 +617,16 @@ "\x01\xbb\x4f\xd8\xd3\x8f\xe3\x08\xc8\xb9\xf0\x24\xe9\xfe\xb8\xb1\x8e\x03" "\x5a", 91}, + {"TrustAsia Luoshu2027", CTLogState::Admissible, CTLogFormat::Tiled, + 1764700200000, // 2025-12-02T18:30:00Z + 5, // operated by TrustAsia + "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" + "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xba\x64\x98\xcf\x2e\x9d\x51\x09\x70" + "\x4d\xc9\x0f\xcc\xa3\x0a\x02\x93\x11\x8a\x7a\xb1\x1c\x80\x65\x2d\xf9\xab" + "\xbf\x1d\x52\x74\xc1\xf5\x45\x30\x02\x8b\x5c\x1b\xd5\x5d\x7c\xb2\xcf\x18" + "\x8e\x56\x82\xec\xf7\x21\xd8\xe4\x1a\xf0\xe7\xd1\x7a\xfb\x9b\xe1\x8f\x41" + "\x0d", + 91}, {"Bogus placeholder log to unbreak misbehaving CT libraries", CTLogState::Retired, CTLogFormat::RFC6962, 1750489200000, // 2025-06-21T07:00:00Z 6, // operated by Geomys @@ -688,7 +698,7 @@ "\xaa", 91}, {"IPng Networks 'Halloumi2025h2'", CTLogState::Admissible, CTLogFormat::Tiled, - 1759861800000, // 2025-10-07T18:30:00Z + 1765996200000, // 2025-12-17T18:30:00Z 7, // operated by IPng Networks "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xa8\x9c\x52\x9c\x27\x0c\x85\x68\xa4" @@ -698,7 +708,7 @@ "\x01", 91}, {"IPng Networks 'Halloumi2026h1'", CTLogState::Admissible, CTLogFormat::Tiled, - 1759861800000, // 2025-10-07T18:30:00Z + 1765996200000, // 2025-12-17T18:30:00Z 7, // operated by IPng Networks "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xcd\xd7\x27\x1b\x04\x63\x9b\x66\x68" @@ -718,7 +728,7 @@ "\xad", 91}, {"IPng Networks 'Halloumi2027h1'", CTLogState::Admissible, CTLogFormat::Tiled, - 1759861800000, // 2025-10-07T18:30:00Z + 1765996200000, // 2025-12-17T18:30:00Z 7, // operated by IPng Networks "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xc3\x94\x94\x97\x6c\x9f\x77\x94\xc5" @@ -728,7 +738,7 @@ "\x67", 91}, {"IPng Networks 'Halloumi2027h2'", CTLogState::Admissible, CTLogFormat::Tiled, - 1759861800000, // 2025-10-07T18:30:00Z + 1765996200000, // 2025-12-17T18:30:00Z 7, // operated by IPng Networks "\x30\x59\x30\x13\x06\x07\x2a\x86\x48\xce\x3d\x02\x01\x06\x08\x2a\x86\x48" "\xce\x3d\x03\x01\x07\x03\x42\x00\x04\xae\x62\x9b\x16\x43\xc6\xed\x07\xd0" diff -Nru firefox-esr-140.6.0esr/security/manager/ssl/StaticHPKPins.h firefox-esr-140.7.0esr/security/manager/ssl/StaticHPKPins.h --- firefox-esr-140.6.0esr/security/manager/ssl/StaticHPKPins.h 2025-12-01 18:15:38.000000000 +0000 +++ firefox-esr-140.7.0esr/security/manager/ssl/StaticHPKPins.h 2026-01-06 21:09:50.000000000 +0000 @@ -726,4 +726,4 @@ static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1773053640200000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1776088368026000); diff -Nru firefox-esr-140.6.0esr/security/manager/ssl/nsSTSPreloadList.inc firefox-esr-140.7.0esr/security/manager/ssl/nsSTSPreloadList.inc --- firefox-esr-140.6.0esr/security/manager/ssl/nsSTSPreloadList.inc 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/security/manager/ssl/nsSTSPreloadList.inc 2026-01-06 21:09:50.000000000 +0000 @@ -8,7 +8,7 @@ /*****************************************************************************/ #include -const PRTime gPreloadListExpirationTime = INT64_C(1775472836741000); +const PRTime gPreloadListExpirationTime = INT64_C(1778507564482000); %% 0--1.de, 1 0-0.io, 1 @@ -21,7 +21,6 @@ 0.com.ms, 1 0.sb, 1 00.eco, 1 -00000000-0000-0000-0000-000000000000.xyz, 1 000000039.xyz, 1 0000031.xyz, 1 00010110.nl, 1 @@ -57,7 +56,6 @@ 003d88.com, 1 003dyw.com, 1 0047552.com, 1 -00484.com, 1 005184.xyz, 1 0057552.com, 1 0066.in, 1 @@ -76,7 +74,6 @@ 00bet86.com, 1 00dani.me, 1 00f.net, 1 -00ffbbb.com, 0 00wbf.com, 1 01.org, 1 01011970.xyz, 1 @@ -127,7 +124,6 @@ 036566733.com.tw, 1 0376z6.com, 1 0377z6.com, 0 -038663.com, 1 0391315.com, 1 03region.ga, 1 040552.com, 0 @@ -169,7 +165,6 @@ 0571z6.com, 1 0597z6.com, 1 059958.com, 1 -06006.vip, 0 060579.com, 1 060798.com, 1 06091994.xyz, 1 @@ -275,10 +270,10 @@ 0x.cx, 1 0x.sk, 1 0x0.li, 1 -0x0.network, 1 0x00ff00ff.com, 1 0x0a.team, 1 0x1.ink, 1 +0x1.st, 1 0x12.de, 1 0x15.ca, 1 0x17.de, 1 @@ -362,7 +357,6 @@ 10086.ru, 1 100baksov.tk, 1 100ballov.tk, 1 -100beauty.com, 1 100bib.ru, 1 100kraz.ga, 1 100nome.com, 1 @@ -537,17 +531,14 @@ 11333837.com, 1 113k8.com, 0 113z6.com, 1 -11400.com, 1 11443837.com, 0 114514ss.com, 1 -114online.com, 1 115.one, 1 115z6.com, 1 1174healing.com, 1 117766.xyz, 1 1177z6.com, 1 11792.com, 1 -1182asaka-shika.com, 1 1190america.tk, 1 1199bet.vip, 1 119sh.com, 1 @@ -695,7 +686,6 @@ 12345678365.com, 1 123456789365.com, 1 12345porn.com, 1 -12356.xyz, 1 12365t.com, 1 123apps.com, 1 123birthdaygreetings.com, 1 @@ -725,7 +715,6 @@ 1244.tk, 1 1244546066.rsc.cdn77.org, 1 125-rue.com, 1 -12517.com, 1 12557.com, 1 12588.com, 1 125c.cn, 1 @@ -756,9 +745,7 @@ 1300.jp, 1 131365a.com, 0 131365qq.com, 1 -13214.cc, 1 132kv.ch, 1 -133.casino, 1 13318522.com, 1 1333.cf, 1 133335.xyz, 1 @@ -807,7 +794,7 @@ 15-montorgueil.com, 1 150mpg.com, 1 1511774230.rsc.cdn77.org, 1 -1517.ch, 1 +1517.ch, 0 1517598.com, 1 1517668.com, 1 1517669.com, 1 @@ -1200,7 +1187,6 @@ 1dollarwebsite.gq, 1 1dot1dot1dot1.cf, 1 1dp.com, 1 -1dt.ltd, 1 1dv.link, 1 1e9.nl, 1 1eanda.com, 1 @@ -1240,7 +1226,7 @@ 1me.cz, 1 1mgt.ru, 1 1montre.fr, 1 -1my.me, 1 +1my.me, 0 1nf.me, 1 1nian.vip, 1 1node.site, 1 @@ -1285,10 +1271,8 @@ 1stclassbouncycastles.co.uk, 1 1stforfun.co.uk, 1 1stpeninsulabouncers.co.uk, 1 -1stream.co.za, 1 1strecipes.com, 1 1ststop.co.uk, 1 -1sttix.org, 1 1ticks.com, 1 1tomplumber.com, 1 1tpt.com, 1 @@ -1298,7 +1282,6 @@ 1viemeilleure.eu, 1 1voz.org, 1 1vpns.com, 1 -1vs2.by, 1 1w6.net, 1 1way.faith, 1 1web.be, 1 @@ -1325,7 +1308,6 @@ 1x1.re, 1 1x2020.xyz, 1 1x2betwinner.com, 1 -1x2magazine.eu, 1 1x4.com.au, 1 1x88.net, 1 1xaja.com, 1 @@ -1473,7 +1455,6 @@ 1xsport.mobi, 1 1xspport.mobi, 1 1xstavka.ru, 1 -1xtranslate.com, 1 1zagon.tk, 1 1zavse.si, 1 1zwartewaterland.nl, 1 @@ -1637,7 +1618,6 @@ 22zt.com, 1 230100.xyz, 1 230beats.com, 1 -232192.com, 1 233.be, 1 233.land, 1 233.services, 1 @@ -1696,7 +1676,6 @@ 247csr.com, 1 247cumshots.com, 1 247dns.net, 1 -247healthshop.com, 1 247maturesex.com, 1 247megamart.com.au, 1 247vision.com, 1 @@ -1723,12 +1702,10 @@ 249722.com, 1 249cq.com, 1 24ball.com, 1 -24bel.ru, 0 24bit.dk, 1 24buffalo.com, 0 24chance.tk, 1 24gazette.ga, 1 -24go.me, 1 24hour-locksmithsanantonio.com, 1 24hourcyclist.co.uk, 1 24hourlocksmithdallastx.com, 1 @@ -1737,6 +1714,7 @@ 24hrbrandbash.com, 1 24images.com, 1 24k.co.jp, 1 +24meg.com, 1 24onlain.tk, 1 24see.com, 1 24share.com, 1 @@ -1786,7 +1764,6 @@ 272live.com, 1 27726.eu, 1 27728522.com, 1 -277g.cc, 0 27lx.me, 1 28-industries.com, 1 280.social, 1 @@ -1868,7 +1845,6 @@ 2i2.link, 1 2img.net, 1 2impact.com, 1 -2insights.com, 1 2jhb.com, 1 2k7.link, 1 2kgwf.fi, 1 @@ -1907,6 +1883,7 @@ 2ugaming.com, 1 2url.link, 1 2ustyle.com, 1 +2value.com, 1 2vnews.com, 1 2vp-an.online, 1 2wth.com, 1 @@ -1972,7 +1949,6 @@ 31fss.marketing, 1 31fss.net, 1 31fss.support, 1 -320281.net, 0 321666365.com, 1 321live.nl, 1 321livestream.nl, 1 @@ -2056,6 +2032,7 @@ 360china.com, 1 360cycling.com.br, 1 360degreecloud.com, 1 +360dental.com, 1 360e-commerce.net, 1 360ecogroup.com, 0 360ecommerce.net, 1 @@ -2072,6 +2049,7 @@ 360stone.com, 1 360system.com, 1 360techpartner.com, 1 +360trust.com, 1 360videoshare.com, 1 360visualmedia.co.uk, 1 360vrs.com, 1 @@ -2080,7 +2058,6 @@ 365.systems, 1 36506088.com, 1 36506099.com, 1 -3651145.com, 1 3651147.com, 1 3651149.com, 1 3651201.com, 1 @@ -2200,8 +2177,6 @@ 380222444.com, 0 38138938.com, 1 38317.tk, 1 -3837k.com, 0 -3837x.com, 0 3838onndo.tk, 1 3839.ca, 1 383aaa.com, 1 @@ -2228,7 +2203,6 @@ 3970abc.com, 1 3970b.com, 1 3970bb.com, 1 -3970cc.com, 1 3970ccc.com, 1 3970d.com, 1 3970dd.com, 1 @@ -2242,7 +2216,6 @@ 3970hh.com, 1 3970ii.com, 1 3970j.com, 1 -3970jj.com, 1 3970ku.com, 1 3970l.com, 1 3970ll.com, 1 @@ -2267,7 +2240,6 @@ 3970xx.com, 1 3970y.com, 1 3970yes.com, 1 -3970ylc.com, 1 3970yy.com, 1 3970z.com, 1 3970zz.com, 1 @@ -2357,7 +2329,6 @@ 3ee365.com, 1 3einfrastructure.com, 1 3em1.pt, 1 -3enota.by, 1 3eyonetim.com, 1 3ff365.com, 1 3fragezeichen.de, 1 @@ -2383,7 +2354,6 @@ 3mediaweb.com, 1 3mind-solutions.com, 1 3ml.org.uk, 0 -3moorcrescent.online, 1 3ne.fun, 1 3newsnow.com, 1 3nickels.com, 1 @@ -2467,7 +2437,6 @@ 4000milestare.com, 1 40010monogatari.com, 1 4005365.com, 1 -4008810.com, 0 400yaahc.gov, 1 401ksecure.com, 1 401ksite.com, 1 @@ -2483,7 +2452,7 @@ 4025369.com, 1 403.ch, 1 403page.com, 1 -404.blue, 0 +404.blue, 1 404.city, 1 404.guide, 1 4048kkk.com, 1 @@ -2528,7 +2497,6 @@ 4245pay.com, 1 425degree.com, 1 428northampton.com, 1 -42ch.com, 1 42day.info, 1 42entrepreneurs.fr, 0 42film.de, 1 @@ -2650,6 +2618,7 @@ 4garage.com.br, 1 4gnews.pt, 1 4grad.in.ua, 1 +4heat.cz, 1 4host.ch, 1 4hourcourse.com, 1 4hourmini.com, 1 @@ -2677,7 +2646,7 @@ 4netguides.org, 1 4nikola.de, 1 4nk.network, 1 -4o.pw, 1 +4o.pw, 0 4ourbest.tk, 1 4paws.co.uk, 1 4peace.gent, 1 @@ -2826,9 +2795,9 @@ 51cls.tw, 1 51club8.com, 1 51daxue.com, 1 -51dazhe.com, 1 51evar.com, 1 51fishing.com, 1 +51free.com, 1 51fss.marketing, 1 51lavanderiaindustrial.com.br, 1 51life.com, 1 @@ -2887,7 +2856,6 @@ 52dashboard.com, 1 52evar.com, 1 52evar1.com, 1 -52fish.com, 1 52hentai.ml, 1 52kb1.com, 1 52kb365.com, 0 @@ -2900,7 +2868,6 @@ 531k8.com, 1 533sss.com, 1 534365.com, 1 -5364b.com, 1 5364d.com, 1 5364jc.com, 1 539124.xyz, 1 @@ -2910,7 +2877,7 @@ 541651.com, 1 543yazilim.com, 1 54below.com, 0 -54cuatro.com, 1 +54cuatro.com, 0 5518k3.com, 1 5533445.com, 1 55365t.com, 1 @@ -3055,6 +3022,7 @@ 5stardesigner.tk, 1 5starexterior.com, 0 5stars.tv, 1 +5startrucksales.us, 1 5stones-consulting.cn, 1 5stones-consulting.com, 1 5stones-consulting.ru, 1 @@ -3339,7 +3307,6 @@ 68622a.com, 1 68622b.com, 1 68reg.tk, 1 -68workscarbon.com, 1 692241.com, 1 692b8c32.de, 1 694640.com, 1 @@ -3429,6 +3396,7 @@ 7-zip.de, 1 7.ls, 1 700.az, 1 +700creditsolution.com, 1 700dealer.com, 1 700wns.com, 1 7014twinlakes.com, 1 @@ -3467,7 +3435,6 @@ 740cashbuyers.com, 1 74365365.com, 1 7444.cf, 1 -7478vip1.cc, 0 7478vip2.cc, 1 74dy.org, 1 74th.jp, 1 @@ -3553,11 +3520,9 @@ 798sss.com, 1 7992.org, 1 799713.com, 1 -79ch.com, 1 7across.com, 1 7aga7.mk, 1 7akawyna.tk, 1 -7b.gg, 1 7colli.it, 1 7comm.com.br, 1 7datarecovery.com, 1 @@ -3577,11 +3542,11 @@ 7hills-consulting.de, 1 7hills.us, 1 7hq.ru, 1 +7inci.com, 1 7ki.photography, 1 7kovrikov.ru, 1 7kvadratov.by, 1 7l00p.com, 1 -7magicinc.com, 1 7matic.net, 1 7money.co, 1 7net.uk, 1 @@ -3685,7 +3650,6 @@ 81alarm.cz, 1 81klima.cz, 1 81klima.sk, 1 -81uc.com, 1 8203d88.com, 1 8207d88.com, 1 8208d88.com, 1 @@ -3748,7 +3712,6 @@ 838888.net, 1 83ir2k8b.duckdns.org, 1 83kb88.com, 1 -84000.com, 1 84036.ml, 1 842844.com, 1 8444.cf, 1 @@ -3927,7 +3890,6 @@ 88yule7.com, 1 88yule9.com, 1 8900.cf, 1 -8906d.com, 1 8921d.com, 1 8925d.com, 0 8925d88.com, 1 @@ -3969,8 +3931,9 @@ 8l.com.au, 1 8maerz.at, 1 8me.nl, 1 -8n.pw, 1 +8n.pw, 0 8shequapp.com, 1 +8show.com, 1 8t8.eu, 1 8tech.com.hk, 1 8therate.com, 1 @@ -4484,7 +4447,6 @@ 9509.cf, 1 9510.cf, 1 95107.com, 1 -95108.com, 1 9511.cf, 1 9512.cf, 1 9513.cf, 1 @@ -4523,6 +4485,7 @@ 95500.com, 1 9551.cf, 1 95518.com, 1 +95519.com, 1 9552.cf, 1 9553.cf, 1 9554.cf, 1 @@ -4594,6 +4557,7 @@ 9617.cf, 1 9617818.net, 1 9618.cf, 1 +96181.com, 1 9619.cf, 1 9620.cf, 1 96200.com, 1 @@ -4614,7 +4578,6 @@ 9633.cf, 1 96448.com, 1 96577.com, 1 -96605.com, 1 9666ks.com, 1 96685.com, 1 966ty.com, 1 @@ -4907,7 +4870,6 @@ 9ccn.top, 1 9elements.com, 0 9face.com, 1 -9fruit.com, 1 9fvip.net, 1 9gag.com, 1 9hosts.net, 1 @@ -4998,7 +4960,6 @@ 9ranks.com, 1 9tailedkitsune.com, 1 9to5linux.com, 1 -9to5notes.in, 1 9uelle.jp, 0 9ungnir.xyz, 1 9vx.org, 1 @@ -5146,8 +5107,8 @@ aahhbali.com, 1 aaic.ca, 1 aajkakavi.in, 0 -aalalbayt.com, 1 -aalalbayt.net, 1 +aalalbayt.com, 0 +aalalbayt.net, 0 aalaslearninglibrary.org, 1 aalderstotaaltechniek.nl, 1 aalen.tk, 1 @@ -5233,7 +5194,6 @@ aayan.com, 1 ab-design.tk, 1 ab-pflege.de, 1 -ab-solutepilates.com, 1 ab-uk.com, 1 ab-west.tk, 1 ab288.com, 1 @@ -5350,11 +5310,8 @@ abdesign.tk, 1 abdijmale.tk, 1 abditransportinc.com, 1 -abdl.link, 1 -abdsirketim.com, 0 abdul.win, 1 abdulawal.tk, 1 -abdulazizgolca.com, 1 abdulkarimm.tk, 1 abdullaeff.net, 1 abdullahavci.com, 1 @@ -5390,7 +5347,6 @@ abelles.ml, 1 abelles.tk, 1 abelsflooringandtile.com, 1 -abemarx.hu, 1 abenteuerschule4u.eu, 1 abenteuerteam.de, 1 abeontech.com, 1 @@ -5485,12 +5441,10 @@ abmackenzie.com, 1 abmarketx.com, 1 abmc.gov, 1 -abmelden.com, 1 abminv.com, 1 abmledger.ca, 1 abn-consultants.ie, 1 abnamropensioenen.nl, 0 -abnarnro.com, 0 abnbfcu.org, 1 abnehmen-sport-fitness.de, 1 abnobapetstore.co.uk, 1 @@ -5651,7 +5605,6 @@ absolab.xyz, 1 absolem.cc, 1 absoluav.com, 1 -absolugroupe.com, 1 absolute.digital, 1 absoluteblack.cc, 1 absolutebritney.com, 1 @@ -5677,7 +5630,6 @@ abstractbarista.com, 1 abstractbarista.net, 0 abstractive.ai, 1 -abstudio.de, 1 absurdia.tk, 1 absurdopedia.wiki, 1 absyscyborg.com, 1 @@ -5692,7 +5644,6 @@ abu-nour.tk, 1 abuahmed.ga, 1 abulanov.com, 1 -abulhuda.com, 1 abun-motorsport.tk, 1 abundent.com, 1 abusamraphotography.tk, 1 @@ -5735,6 +5686,7 @@ academiaveritas.com, 1 academicassembly.com, 1 academicexperts.com, 1 +academicexperts.org, 1 academichealthscience.net, 1 academichelp.gq, 1 academie-angoumois.org, 1 @@ -5761,7 +5713,6 @@ acapetahua.tk, 1 acaptureservices.com, 1 acara.edu.au, 1 -acaro.it, 1 acasadavella.tk, 1 acasadoprodutor.com.br, 1 acasundayschool.org, 1 @@ -5838,7 +5789,6 @@ accesspress.org, 1 accesstive.com, 1 accesstosystem.cf, 1 -accey.cz, 1 acchan-fun.com, 1 accio.be, 1 accionesyreacciones.com, 1 @@ -6082,7 +6032,6 @@ acquasuisse.tk, 1 acquire.co.nz, 1 acquirebpo.com, 1 -acquireit.com.au, 1 acquireoil.com, 1 acquisition.gov, 1 acquisitiongateway.gov, 1 @@ -6115,7 +6064,6 @@ acrylicwifi.com, 1 acs-armoured-cars.com, 1 acs-nettoyage-entretien-immeuble.com, 1 -acs2devapi.azurewebsites.net, 1 acsb.ro, 0 acsbbs.org, 1 acsc.gov.au, 1 @@ -6176,7 +6124,6 @@ actionverb.com, 1 actisgolf.com, 1 actiumhealth.com, 0 -activandoideas.com, 1 activat3rs.com, 1 activate.ch, 1 activate.swiss, 1 @@ -6196,7 +6143,6 @@ activehire.co.uk, 1 activeleisure.ie, 1 activelife.travel, 1 -activemoneymanage.com, 0 activenl.co.uk, 1 activeplatesystem.ga, 1 activeprospect.com, 1 @@ -6205,7 +6151,6 @@ activetk.cf, 1 activetk.jp, 1 activewindow.dk, 1 -activework.nl, 1 activexperts.com, 1 activeyogi.tk, 1 activflex.com.au, 1 @@ -6321,7 +6266,6 @@ ada.gov, 1 adab-mans.tk, 1 adac-musikreisen.de, 1 -adachansa.de, 1 adachi.work, 1 adacomputerscience.org, 1 adacprod.fr, 1 @@ -6424,7 +6368,6 @@ adblockextreme.com, 1 adblockextreme.net, 1 adblockextreme.org, 1 -adboos.com, 1 adbw.xyz, 1 adc-dentalcare.com, 0 adc64.com, 1 @@ -6439,7 +6382,6 @@ addad.ch, 1 addall.com, 1 addbonus.ml, 1 -addcrazy.com, 1 addeditore.it, 1 adder.ml, 1 adderall.ml, 1 @@ -6527,7 +6469,6 @@ adese.es, 1 adesignguy.co.uk, 1 adespresso.com, 1 -adevel.eu, 1 adevo.be, 1 adex.network, 1 adextremadurafs.tk, 1 @@ -6757,7 +6698,6 @@ adrianwalls.tk, 1 adrianweb.ml, 1 adriarae.xyz, 1 -adriatic42.com, 1 adriatika.tk, 1 adriatrans.ga, 1 adrienfelsmann.fr, 1 @@ -6777,6 +6717,7 @@ adsense-arbitrage.com, 1 adseye.tk, 1 adsforcash.ga, 1 +adshooter.com, 1 adsib.gob.bo, 1 adsintl.net, 1 adsl2meg.fr, 1 @@ -6846,7 +6787,6 @@ advancecessnock.com.au, 1 advanced-ict.info, 1 advanced-online.eu, 1 -advancedacupuncture.net, 1 advancedaquaticservice.com, 1 advancedbotoxclinic.com, 1 advancedbuildings.com.au, 1 @@ -6860,7 +6800,6 @@ advancedinteg.com, 0 advancedkiosks.com, 1 advancedmanagement.net, 1 -advancedmedicalcertification.com, 1 advancednetflowtraining.com, 1 advancedoneroofing.com, 1 advancedseniorcare.com, 1 @@ -6880,7 +6819,6 @@ advantage.sa, 1 advantageaustria.org, 1 advantagemechanicalinc.com, 1 -advantagetowing.com.au, 1 advantaseeds.com, 1 advantis.ai, 1 advantis.cf, 1 @@ -7067,7 +7005,6 @@ aegisaccounting.co.uk, 1 aegisalarm.co.uk, 1 aegisalarm.com, 1 -aegisbds.com, 1 aegissec.ca, 1 aegisys.com, 1 aegon.hu, 0 @@ -7100,7 +7037,6 @@ aeonfoundation.my, 1 aeonian.live, 0 aeonmall.global, 0 -aeonsapi.uk, 1 aeperocovilha.pt, 1 aeperodacovilha.pt, 1 aeptic.org, 1 @@ -7137,7 +7073,6 @@ aeroklub.tk, 1 aerolog.co, 0 aeronautix.com, 1 -aeronote.net, 1 aeropetz.com.br, 1 aeroplan.tk, 1 aeropole.de, 1 @@ -7162,7 +7097,6 @@ aertel.ie, 1 aerztezentrum.io, 1 aes.org.pt, 1 -aesculapliterature.com, 1 aesi.bg, 1 aesm.limited, 1 aesm.ltd, 1 @@ -7279,7 +7213,6 @@ affine.ai, 1 affine.space, 1 affinipay.com, 0 -affinitihive.com, 1 affinity.co, 1 affinity.vc, 1 affinitycu.ca, 1 @@ -7404,7 +7337,6 @@ after-whoru.tk, 1 afterblokrock.tk, 1 afterdarklabs.net, 0 -afterdwi.info, 1 afterfostercare.tk, 1 afterhate.fr, 1 afterhoursglass.com.au, 1 @@ -7450,7 +7382,6 @@ ag6225.com, 1 ag66321.com, 1 ag69000.com, 1 -ag72.vip, 1 ag8.im, 0 ag8.vip, 1 ag80808.com, 1 @@ -7788,6 +7719,7 @@ agrokredit.ga, 1 agroland.tk, 1 agrolife.tk, 1 +agroma.com, 1 agromanagement.kz, 1 agromotorsburzaco.com, 1 agron.tk, 1 @@ -7859,7 +7791,6 @@ ahcpr.gov, 1 ahd-cyber.org, 1 ahd.com, 0 -ahd.de, 1 ahealthyjourney.ca, 1 ahegaoroulette.com, 1 ahelos.tk, 1 @@ -7875,7 +7806,6 @@ ahityayinlari.com, 1 ahityayinlari.org, 1 ahj.no, 1 -ahjindigital.com, 1 ahl-net.com, 1 ahl.gov.au, 0 ahl.im, 1 @@ -7971,13 +7901,11 @@ aibiying.com, 1 aibolit-apteka.tk, 1 aibolit.ga, 1 -aibolit.md, 1 aibolit.ml, 1 aibolitik.tk, 1 aibot.tk, 1 aibottrafficanalyzer.com, 1 aibsoftware.mx, 1 -aica.org, 1 aiccc.com.au, 1 aiccorp.com, 1 aiceopenlab.org, 1 @@ -7986,7 +7914,6 @@ aichi-tokko-shien.com, 1 aicial.co.uk, 1 aickelin.eu, 1 -aicontent.vn, 1 aicpastore.com, 1 aicredit.ro, 1 aicta.ro, 1 @@ -8012,7 +7939,6 @@ aidliveers.ga, 1 aido.gq, 1 aidoc.com, 1 -aidong.com, 1 aidoru.net, 1 aidoru.top, 1 aids-dissidents.tk, 1 @@ -8062,10 +7988,8 @@ aikijutsu.tk, 1 aikiva.com, 1 aikoly.com, 1 -ailagpt.com, 1 aileenwatt.co.uk, 1 ailitonia.com, 1 -ailitonia.xyz, 1 ailladearousa.com, 1 aim.org.pt, 1 aimara.com, 1 @@ -8109,7 +8033,6 @@ aintfeelingit.com, 1 ainutrition.co.uk, 1 ainzu.net, 1 -aioboot.com, 0 aiois.com, 1 aioj.ac, 1 aiom.tk, 1 @@ -8160,6 +8083,7 @@ airbnb.cat, 1 airbnb.ch, 1 airbnb.cl, 1 +airbnb.cn, 1 airbnb.co.cr, 1 airbnb.co.id, 1 airbnb.co.il, 1 @@ -8174,6 +8098,7 @@ airbnb.com.bo, 1 airbnb.com.br, 1 airbnb.com.bz, 1 +airbnb.com.cn, 1 airbnb.com.co, 1 airbnb.com.ec, 1 airbnb.com.gt, 1 @@ -8217,6 +8142,7 @@ airbnb.pt, 1 airbnb.se, 1 airbnb.tools, 1 +airbnbchina.cn, 1 airborne-clan.tk, 1 airborne-commando.tk, 1 airburners.com, 1 @@ -8539,7 +8465,6 @@ aish.ml, 1 aishima.com, 1 aisi316l.net, 1 -aisidehustler.com, 1 aising.jp, 1 aisp.sg, 1 aispirit.tk, 1 @@ -8751,7 +8676,6 @@ akiba-server.info, 1 akiekintveld.com, 1 akiganka.com, 1 -akihabara-tour.com, 1 akijo.de, 1 akikat.tk, 1 akilli-devre.com, 1 @@ -8834,7 +8758,6 @@ aktiv-naturheilmittel.de, 1 aktiv.pl, 1 aktivace.eu, 1 -aktive-arbeitslose.at, 1 aktivierungscenter.de, 1 aktivitetatil.com, 1 aktivpark-lumdatal.de, 1 @@ -8918,8 +8841,7 @@ aladintechnologies.tk, 1 alaiabelize.com, 1 alain-webcreator.cf, 1 -alaincouture.com, 1 -alainfrancois.eu, 1 +alainfrancois.eu, 0 alainmargot.ch, 0 alainodea.com, 1 alainwolf.ch, 1 @@ -8990,7 +8912,6 @@ alaska.com.tr, 1 alaskabuylocal.org, 1 alaskacapitol.gov, 1 -alaskacruises.com, 1 alaskadentalcare.com, 1 alaskafishinglodges.net, 1 alaskafolkarts.tk, 1 @@ -9053,7 +8974,6 @@ albergolafiorita.com, 1 alberguecovadonga.es, 1 alberosano.it, 1 -albert.lol, 1 albertapp.com, 1 albertathome.org, 1 albertcuyp-markt.amsterdam, 1 @@ -9119,6 +9039,7 @@ alcatraz-webdesign.tk, 1 alcatrazeast.com, 1 alcatraztourtickets.com, 1 +alcatrazz.com, 1 alcazaar.com, 1 alchakov.tk, 1 alchemist-heaven.tk, 1 @@ -9179,7 +9100,6 @@ alea-prevention.com, 1 alea.xyz, 1 alecel.de, 1 -alecpap.com, 1 alecpapierniak.com, 1 alector.com, 1 aledoil.gov, 1 @@ -9188,7 +9108,7 @@ alegriafm.tk, 1 alegromania.tk, 1 alehinta.fi, 1 -alejandrocruz.es, 1 +alejandrocruz.es, 0 alejandromateoconde.tk, 1 alejandromillalen.com, 1 alejandromunoz.es, 1 @@ -9414,7 +9334,6 @@ alfa-reserve.tk, 1 alfa-tech.su, 1 alfaair.aero, 1 -alfabetagamma.com, 0 alfabetajuega.com, 1 alfabuster.com, 1 alfacharlie.co, 0 @@ -9426,6 +9345,7 @@ alfafile.net, 1 alfagl.com, 1 alfahir.hu, 1 +alfakir.com, 1 alfalasteenyia.cf, 1 alfambra.tk, 1 alfamed.biz, 1 @@ -9438,7 +9358,6 @@ alfavit.cf, 1 alfawedding.com, 1 alfithrah.ac.id, 1 -alfm.fr, 1 alfonso-baya.tk, 1 alfonsostriano.it, 1 alfordbenefits.com, 0 @@ -9506,8 +9425,10 @@ alhsfb.com, 0 alhuqul-kh.com, 1 ali-shariati.tk, 1 +ali360.com, 1 alia-helianthi.tk, 1 -aliakpoyraz.com, 1 +aliads.com, 1 +aliakpoyraz.com, 0 alialkurdy.tk, 1 aliamakeup.com, 1 alianet.org, 1 @@ -9518,11 +9439,13 @@ aliasinfoforums.tk, 1 aliaslaw.com, 1 aliaswp.com, 1 +aliauction.com, 1 alibabau.tk, 1 alibamu.com, 1 alibamu.org, 1 alibi-ua.com.ua, 1 alibip.de, 1 +alibiz.com, 1 alicante-spain.tk, 1 alice-memorial.de, 1 alice.tw, 1 @@ -9564,6 +9487,7 @@ alifeinbinary.com, 1 alight.ge, 1 alightwell.com, 1 +aligift.com, 1 align-pilates.lt, 1 align27.com, 1 alignancekinesiologie.fr, 1 @@ -9579,6 +9503,7 @@ alila.dog, 1 alilepro.cf, 1 alilialili.ga, 1 +alimade.com, 1 alimahmood.com, 1 alimanaka-rabesata.tk, 1 aliment-covid19.com, 1 @@ -9597,14 +9522,14 @@ alineonline.tk, 1 alingroove.com, 1 alinneata.com, 1 -alinode.com, 1 alio.lt, 1 aliorange.com, 1 aliosmanyuksel.com.tr, 1 +alipad.com, 1 alipub.com, 1 alireza2love.tk, 1 alirezahesari.com, 1 -alis-asso.fr, 0 +alis-asso.fr, 1 alis-test.tk, 1 alisblog.ml, 1 alisceon.com, 1 @@ -9629,7 +9554,6 @@ alisufyan.uk, 1 alisy.cz, 1 alisy.de, 1 -alisync.com, 1 alitabergert.tk, 1 alitajran.com, 1 alitpedia.ga, 1 @@ -9672,11 +9596,11 @@ alkoferma.gq, 1 alkogol.ga, 1 alkoholiker-forum.de, 1 +alkomedfrank.com, 1 alkon.gg, 1 alkopedia.tk, 1 alkor.tk, 1 alkoutlet.lv, 1 -all-bikes.fr, 1 all-blogs.tk, 1 all-bronza.ru, 1 all-connect.net, 0 @@ -9687,10 +9611,11 @@ all-fashion-schools.com, 1 all-for-u.tk, 1 all-gsm-solutions.tk, 1 -all-inhealth.com, 1 all-mountains.fr, 1 all-music.ml, 1 all-music.tk, 1 +all-payroll-solutions.com, 1 +all-payroll-solutions.de, 1 all-pics.tk, 1 all-rating.tk, 1 all-seo.tk, 1 @@ -9719,7 +9644,6 @@ allaboutnothing.gq, 1 allaboutreligions.tk, 1 allaboutswing.co.uk, 1 -allaboutswing.com, 1 allabouttechh.tk, 1 allaboutthekink.org, 1 allaboutyouspa.co.uk, 1 @@ -9728,6 +9652,7 @@ allahabadhighcourt.in, 1 allamakee.k12.ia.us, 1 allamericangutterprotection.com, 0 +allamericanprotection.net, 1 allamericatrans.com, 0 allandrich.ml, 1 allandrichonline.tk, 1 @@ -9766,6 +9691,7 @@ allchan.io, 1 allcinema.net, 1 allcloud.com, 1 +allcomic.com, 1 allcooking.tk, 1 allcookingclub.com, 1 allcouponat.com, 1 @@ -9838,7 +9764,6 @@ alles-nur-ge.cloud, 1 allesisgezondheid.nl, 1 allesisonline.nl, 1 -alleskomtgoed.org, 1 allesmartphonehoesjes.nl, 1 allesovercrypto.nl, 0 allesoverdieren.tk, 1 @@ -9864,6 +9789,7 @@ allform.se, 1 allfortips.com, 1 allfundsconnect.com, 1 +allfur.love, 1 allgadgetsfree.tk, 1 allgaragedoorandgates.com, 1 allgaragefloors.com, 1 @@ -9888,6 +9814,7 @@ allianceborderservices.com, 1 allianceforafreesociety.com, 1 allianceforafreesociety.net, 1 +allianceguide.com, 1 alliances-globalsolutions.com, 0 alliancesolutionsgrp.com, 1 allianskyrkan.se, 1 @@ -10007,11 +9934,7 @@ allsurpl.us, 1 allsurplus.com, 1 allterrainfence.com, 0 -alltest.net.au, 1 -alltestantigentest.com.au, 1 alltestbiotech.com, 1 -alltestbiotech.com.au, 1 -alltestselftest.com.au, 1 allthatblings.online, 1 allthebots.com, 1 allthefallen.moe, 1 @@ -10037,7 +9960,7 @@ allurebikerental.com, 1 allureclinic.pt, 1 alluremedicalaesthetic.com, 1 -allurescarves.com, 1 +allurescarves.com, 0 alluringdesigns.tk, 1 alluvion.studio, 1 allvideofoot.tk, 1 @@ -10075,7 +9998,6 @@ almanea.org, 1 almanilan.com, 0 almanshood.com, 1 -almanyacv.com, 0 almanyada-denklik.de, 1 almanyada-denklik.info.tr, 1 almarail.tk, 1 @@ -10087,7 +10009,6 @@ almastabriz.com, 0 almatinki.com, 1 almatytips.com, 1 -almawsoa.com, 1 almayadeen.education, 1 almayoreo.com.co, 1 almaz-host.ml, 1 @@ -10119,10 +10040,11 @@ almost.gq, 1 almostobjective.com, 1 almouyasser.com, 1 +almufawd.ma, 1 almusbahperfume.com, 1 almut-zielonka.de, 1 almutawapharmacies.com.kw, 1 -almworks.com, 1 +almworks.com, 0 almx.net, 1 alnaharnews.net, 1 alng.me, 0 @@ -10158,7 +10080,6 @@ alonuocsuoi.com, 1 aloo.ga, 1 aloomic.com.au, 1 -alopezlawfirm.com, 1 aloplay.io, 1 alorimusic.es, 1 aloris-controle.fr, 1 @@ -10210,7 +10131,6 @@ alpha-force.net, 0 alpha-ink.de, 1 alpha-kamera.de, 1 -alpha-shop.gr, 1 alpha.ch, 1 alphaagency360.com, 1 alphaassurances.com, 1 @@ -10265,7 +10185,7 @@ alphazure.com, 1 alphimedia.com, 1 alphipneux.fr, 1 -alphline.com.sg, 1 +alphline.com.sg, 0 alphonso.tv, 1 alphotelmilano.it, 1 alpina-farben.de, 1 @@ -10412,9 +10332,7 @@ altesses.eu, 1 alteva.services, 1 althacare.com, 0 -altharis.net, 1 althaus24.de, 1 -altheaarg.com.ar, 1 althi.nl, 1 althistory.ga, 1 alti-global.com, 1 @@ -10459,6 +10377,7 @@ altospam.net, 1 altovoltaggio.tk, 1 altoweb.tk, 1 +altphotos.com, 1 altralamezia.tk, 1 altramarsala.tk, 1 altransport.ca, 1 @@ -10539,7 +10458,6 @@ alwayslookingyourbest.com, 1 alwaysmine.fi, 1 alwayspoweryoga.com, 1 -alwaysyouapp.com, 1 alwin.io, 1 alwistra.eu, 1 alwuz.com, 1 @@ -10600,7 +10518,6 @@ amaforro.com, 1 amagdic.com, 1 amagical.net, 0 -amagiswap.com, 1 amagraduates.tk, 1 amagroup.io, 1 amagzine.com, 1 @@ -10718,7 +10635,6 @@ amberba.tk, 1 ambercaravalho.com, 1 amberddesign.com, 1 -amberesdetective.be, 1 amberhouse.cf, 1 amberhouse.ga, 1 amberhouse.gq, 1 @@ -10771,15 +10687,11 @@ amcharts.com, 1 amchronicle.com, 1 amcs.website, 0 -amd-agro.ru, 1 amdelisi.tk, 1 amdental.lv, 1 amdiagnostic.com, 1 -amdiagnostics.co.nz, 1 amdiagnostics.com.au, 1 -amdiagnostics.net.au, 1 amdm.ru, 1 -amdmedical.com.au, 1 amdrumors.com, 1 amdukis-bordercollies.tk, 1 amebavirtual.tk, 1 @@ -10796,7 +10708,6 @@ ameenaccounting.co.za, 1 ameeradubai.com, 1 amees.me, 0 -amefrec.co.jp, 1 ameho.me, 0 ameisenbaer.tk, 1 amelanchiers.tk, 1 @@ -10806,7 +10717,6 @@ amello.de, 1 amemei9f-lists.top, 1 amempire.tk, 1 -amend.co, 1 amendine.fr, 1 amendonne.fr, 1 amenfis.com, 1 @@ -10838,7 +10748,6 @@ americancanyon.gov, 1 americancasinoguide.shop, 1 americanclimatecorps.gov, 1 -americancrane.com, 1 americandisinfectingassociation.com, 1 americandisinfectingassociation.org, 1 americandrugrehabs.com, 1 @@ -10881,7 +10790,6 @@ ameridial.com, 1 ameriglasscontractors.com, 1 amerigroup.com, 1 -amerigrouphealthyliving.com, 1 ameriikanpoijat.org, 1 amerikanloto.tk, 1 amerikasepetim.com, 1 @@ -10914,7 +10822,6 @@ amfora.gq, 1 amforst.ddns.net, 1 amginternational.org, 1 -amgoc.us, 1 amgreatness.com, 1 amh-entertainments.co.uk, 1 amherstwire.com, 1 @@ -10956,7 +10863,6 @@ amigosencanada.com, 1 amigosgranada4050.tk, 1 amihousebuyers.com, 1 -amikekszunkjatek.hu, 1 amilaresort.com, 0 amilcalcados.com.br, 1 amilesportes.com.br, 1 @@ -10964,7 +10870,6 @@ amimi.tk, 1 amimore.ru, 1 aminafrance.com, 1 -amindigital.uk, 1 amineptine.com, 1 aminfarhoodi.tk, 1 aminformatica.ml, 1 @@ -11003,7 +10908,6 @@ amityhealthcaregroup.com, 1 amityvillepdny.gov, 1 amitywebsitedesign.com, 0 -amiv.ch, 1 amjaadabdullah.com, 1 amjesusdespojado.tk, 1 amlakzibakenar.com, 1 @@ -11049,7 +10953,6 @@ amon.tech, 1 among-us.me, 0 amongus-guru.ru, 1 -amongusmerch.co, 1 amoozesh98.ir, 1 amoralizm.tk, 1 amoramorena.blog.br, 1 @@ -11074,7 +10977,7 @@ amoryurgentcare.com, 1 amos.ovh, 1 amosca.tk, 1 -amotarget.com, 0 +amotarget.com, 1 amotive.shop, 1 amoursucre.com, 1 amoxicillin-500mg.ga, 1 @@ -11178,7 +11081,6 @@ amur-news.net, 1 amur-photo.ml, 1 amur.tk, 1 -amusa.cl, 1 amush.vip, 1 amvip9.com, 1 amvisor.com, 1 @@ -11197,7 +11099,6 @@ amyria.jp, 1 amyrussellhair.com, 1 amyshao.cn, 1 -amysnotdrunk.com, 1 amytuarez.ga, 1 amytuarez.gq, 1 amytuarez.ml, 1 @@ -11486,7 +11387,6 @@ andreaskrasa.com, 1 andreaslicht.nl, 1 andreasolsson.se, 1 -andreatedeschi.it, 1 andrecanuto.com.br, 1 andrecarvalho.net.br, 1 andredaus.com, 1 @@ -11503,6 +11403,7 @@ andremalraux.com, 1 andrematosband.tk, 1 andreoliveira.io, 1 +andreotti-furniture.com, 1 andrepicard.de, 1 andresbandb.tk, 1 andrescuartas.tk, 1 @@ -11648,7 +11549,6 @@ andywalkeronline.tk, 1 andywilliamsonline.tk, 1 andzia.art.pl, 1 -aneclab.cz, 1 anecuni-club.com, 1 anecuni-rec.com, 1 anedot-sandbox.com, 1 @@ -11679,6 +11579,7 @@ anewperspectiveconstruction.com, 1 anex.us, 1 anexperimentedblog.tk, 1 +anextraordinaryday.net, 1 anfadern.com, 1 anfieldbc.co.uk, 1 anfilada.info, 1 @@ -11692,7 +11593,6 @@ angel-wing.jp, 1 angela.baby, 1 angelaheck.com, 1 -angelal.cc, 1 angelalombardo.it, 1 angelarellano.tk, 1 angelbridge.jp, 1 @@ -11756,7 +11656,6 @@ angkapaito.net, 1 angkasa.net.id, 1 anglarsports.com, 1 -angleformation.com, 1 angleline.cn, 1 anglersconservation.net, 1 anglertanke.de, 1 @@ -11859,9 +11758,6 @@ animanganetwork.tk, 1 animaproduksiyon.com.tr, 1 animari.at, 1 -animari.ch, 1 -animari.de, 1 -animari.eu, 1 animasencia.tk, 1 animashka.tk, 1 animataz.ga, 1 @@ -12039,7 +11935,6 @@ annaenemma.nl, 1 annafiore.com.br, 1 annainstitute.org, 1 -annalaudel.gallery, 1 annaleon.tk, 1 annalisefashion.ga, 1 annalouise.tk, 1 @@ -12197,7 +12092,6 @@ anshar.eu, 1 anshdigiinfoways.com, 1 anshlag.co.il, 1 -anshulg.com, 1 ansibeast.net, 1 ansichtssache.at, 1 ansoffmatrix.com, 1 @@ -12350,7 +12244,6 @@ antifraud.cf, 1 antifraudcentre-centreantifraude.ca, 1 antifurti.roma.it, 1 -antigenselftest.com.au, 1 antigravity.cf, 1 antihelp-tomsk.tk, 1 antihistory.cf, 1 @@ -12399,7 +12292,6 @@ antistatik.tk, 1 antisystem.tk, 1 antitabak.tk, 1 -antitarlo.it, 1 antiuser.tk, 1 antiva.uk, 1 antivandal.tk, 1 @@ -12545,9 +12437,7 @@ anyshapemusic.com, 1 anyshow.ga, 1 anystack.xyz, 1 -anythingforsports.com, 1 anytimefitness.co.in, 1 -anytimefitness.nl, 1 anytimefundingers.ga, 1 anytimefundingest.ga, 1 anytimeoffices.ga, 1 @@ -12585,7 +12475,6 @@ aojf.fr, 1 aok.network, 1 aokae.com, 1 -aoku3d.com, 0 aolcollege.com, 1 aomar-mohammedi.tk, 1 aomeikey.org, 0 @@ -12614,7 +12503,6 @@ aotech.tw, 1 aotopo.com, 1 aova.loan, 1 -aoyadaily2024.com, 1 aoyagi-farm.jp, 1 aoyama-azabu-dc.com, 1 aoyamacc.co.jp, 1 @@ -12648,7 +12536,6 @@ apartments-promajna.tk, 1 apartments.co.nz, 1 apartrentrotterdam.nl, 1 -apartyakamoz.com, 1 apatransport.com, 1 apbassettsolicitors.co.uk, 1 apbforum.tk, 1 @@ -12660,12 +12547,12 @@ apcmc.pt, 1 apcomputersciencetutoring.com, 1 apcoworldwide.com, 1 -apcw.org, 1 apdfawl.com, 0 apdigital.tech, 1 apdtalents.org.tw, 1 apea.com, 1 apec.fr, 1 +apecsustain.com, 1 apedreira.com, 1 apef.ch, 0 apefrog.tk, 1 @@ -12730,7 +12617,6 @@ api-bitrefill.com, 1 api-hany.cf, 1 api.biz.tr, 1 -api.loan, 1 api.lookout.com, 1 api.org.tr, 1 api.recurly.com, 1 @@ -12761,7 +12647,6 @@ apimon.de, 1 apimoveisorocaba.com.br, 1 apinat.de, 1 -apination.com, 1 apio.systems, 1 apiora.ru, 1 apiordie.com, 1 @@ -12837,7 +12722,6 @@ apokalipsis.tk, 1 apola.best, 1 apolitical.co, 1 -apolloautopecas.com.br, 1 apollocare.com, 1 apollodiet.com, 1 apollogames.cz, 1 @@ -13046,7 +12930,6 @@ appointment.ga, 1 apponic.com, 1 apponline.com, 1 -appopay.com, 1 apppage.net, 1 appperformance.com.br, 1 appraf.com, 1 @@ -13300,7 +13183,6 @@ ar.al, 1 araadvocats.net, 1 arab-drama.tv, 1 -arab-dream.net, 1 arab-romance.tk, 1 arab1info.cf, 1 arabakiralama.name.tr, 1 @@ -13350,6 +13232,7 @@ araluenvalleyhotel.ga, 1 aralun.net, 1 aralys.com, 1 +aramega.com, 1 aramido.de, 1 aramleisure.com, 1 aramyayinevi.com, 1 @@ -13404,7 +13287,6 @@ arbolesdenavidad.info, 1 arbolesdenavidad.site, 1 arbophil.fr, 1 -arboreall.com, 0 arborio.com.ua, 1 arboristadvice.com, 1 arboristic.de, 1 @@ -13488,7 +13370,6 @@ archivistas.tk, 1 archivium.biz, 1 archivonacional.go.cr, 1 -archivosstl.com, 1 archiweb.pl, 0 archlinux.de, 1 archlinux.org, 1 @@ -13504,7 +13385,6 @@ arcloud.com.tw, 1 arcloudaccess.click, 1 arcmarine.eu, 1 -arco.lu, 1 arcobalabs.ca, 1 arcogb.co, 1 arcoidaho.gov, 1 @@ -13807,9 +13687,7 @@ arkholmevillage.ml, 1 arkhvoid.xyz, 1 arkin.nl, 1 -arklow.io, 0 arkm6.gq, 1 -arknetglobal.com, 1 arknights.work, 0 arknodejs.com, 1 arkomaok.gov, 1 @@ -13976,7 +13854,6 @@ aroofing.net, 1 aroonchande.com, 0 arooshi.website, 1 -aros.pl, 1 arose.io, 1 arosoft.se, 1 arounddeal.com, 1 @@ -14050,6 +13927,7 @@ arshia.cf, 1 arshidazarine.tk, 1 arshina.su, 0 +arshistorica.it, 1 arsindecor.com, 1 arsingh.com, 1 arsk1.com, 1 @@ -14404,6 +14282,7 @@ as204830.net, 1 as204982.net, 1 as205794.net, 1 +as205941.net, 1 as207618.net, 1 as207960.net, 1 as209245.net, 1 @@ -14493,7 +14372,6 @@ ascom.vi.it, 1 ascopeshipping.co.uk, 1 ascore.io, 1 -ascormovies.com, 1 ascpaphilatelie.eu, 1 ascultaonlineradio.ml, 1 asd.gov.au, 0 @@ -14507,6 +14385,7 @@ aseelanimalhealth.com, 1 asegem.es, 1 aseglobal.com, 0 +aseishika.com, 1 aseith.com, 1 aselectionoffice.gov, 1 aselo.org, 1 @@ -14522,7 +14401,7 @@ asesoresvaro.com, 1 asesorialigorred.es, 1 asessiglo21.es, 1 -asesuisa.com, 1 +asesuisa.com, 0 aset.fi, 1 aseuro.in, 1 asexualitat.cat, 1 @@ -14550,7 +14429,6 @@ ashd1.goip.de, 1 ashd2.goip.de, 1 ashd3.goip.de, 1 -ashdodenglish.com, 1 ashemaletubeplus.com, 1 ashenc.gov, 1 ashenm.ml, 1 @@ -14704,7 +14582,6 @@ askpam.ai, 1 asktanzania.com, 1 askthosewhoknow.org, 1 -askui.com, 1 askva.org, 1 askvg.com, 1 askwhy.cz, 1 @@ -14875,7 +14752,6 @@ assistenza.ca, 1 assistenzaferrodastiro.org, 1 assistenzafrigorifero.org, 1 -assistenzamedica.it, 1 assistenzamicroonde.org, 1 assistere-a-casa.it, 1 assistere-a-domicilio.it, 1 @@ -14902,7 +14778,6 @@ assumptionoep-la.gov, 1 assurance-emprunteur.bzh, 1 assurances-brg.com, 1 -assurances-kieffer.fr, 1 assured.se, 0 assuredallies.com, 1 assuredspc.com, 1 @@ -14930,7 +14805,6 @@ astarfrommosul.ga, 1 astarfrommosul.ml, 1 astariafashion.co.uk, 1 -astarmathsandphysics.com, 1 astateoftrance.tk, 1 asteelflash.com, 0 astekbet.com, 1 @@ -15465,7 +15339,6 @@ attivazioneveloce.it, 1 attivonetworks.com, 1 attlane.fr, 1 -attly.cn, 1 attoch.org, 1 attogtech.com, 1 attorneybiographies.ga, 1 @@ -15504,7 +15377,7 @@ atypicom.es, 1 atypicom.it, 1 atypicom.pt, 1 -atypics.fr, 1 +atypics.fr, 0 atyuan.me, 1 atyuan.one, 1 atyum.com, 0 @@ -15602,11 +15475,9 @@ audiotrace.tk, 1 audiovisualmurciano.tk, 1 audisto.com, 1 -audit.gov.ly, 1 audit.one, 1 audit.ovh, 1 audit.tw, 1 -auditemmen.nl, 1 auditeorganum.cz, 1 auditingfirm.tk, 1 audition-radio.tk, 1 @@ -15657,7 +15528,6 @@ augustanews.tk, 1 augustascribes.com, 1 augustiner-kantorei-erfurt.de, 1 -augustiner-kantorei.de, 1 auk.hopto.org, 1 aukanaw.tk, 1 aukaraoke.su, 1 @@ -15709,7 +15579,7 @@ auralia.net, 1 auraliafirst.com, 1 auraliamusic.com, 1 -auralinna.blog, 1 +auralinna.blog, 0 aurantis.it, 1 aurantis.nl, 1 aurbrowser.tk, 1 @@ -15804,15 +15674,15 @@ aussieofficefitout.com.au, 1 aussieservicedown.com, 1 aussiesmostlifted.com.au, 1 -aussiesnus.com, 1 aussiestoresonline.com, 0 austagencies.com.au, 1 austbrokers.com.au, 1 austcm.com.au, 1 austenplumbing.com, 1 austercita.tk, 1 -austickcarremoval.com.au, 1 +austickcarremoval.com.au, 0 austillconstruction.com, 1 +austin-security-cameras.com, 1 austinbestdjs.com, 1 austincardiac.com, 1 austincosmetic.com, 1 @@ -15883,7 +15753,7 @@ authinfo-bestellen.de, 1 authinity.com, 0 authland.com, 1 -author-it.com, 1 +author-it.com, 0 author24.info, 1 authorbriannamacmahon.com, 1 authorise.computer, 1 @@ -15907,8 +15777,6 @@ auto-arsenal.tk, 1 auto-borse.tk, 1 auto-delchev.com, 1 -auto-ecole-du-tursan.fr, 1 -auto-ecole-remparts.fr, 1 auto-graph.eu, 1 auto-help.tk, 1 auto-i-dat.ch, 1 @@ -16047,9 +15915,7 @@ automa.biz, 1 automaatic.com, 1 automagischeberegening.nl, 1 -automaq.com.py, 1 automastercastlerock.com, 1 -automatecodes.com, 1 automaticagarage.it, 1 automationlab.it.com, 1 automationpro.me, 1 @@ -16063,7 +15929,6 @@ automekano.com, 0 automekbromma.se, 1 automiata.de, 1 -automir.online, 1 automizor.io, 1 automobile-detail.com, 1 automobile-propre.com, 0 @@ -16304,7 +16169,6 @@ autosynthetix.com, 1 autoteplo.org, 1 autoterminus-used.be, 0 -autotim.de, 1 autotimez.com, 1 autotitleloansnu.ga, 1 autoto.hr, 1 @@ -16457,7 +16321,6 @@ ave.zone, 1 aveamcorp.com, 1 aveapps.com, 0 -aveburybeds.com, 1 aveclunettesoleil.fr, 1 avecsans.studio, 1 avedesk.org, 0 @@ -16477,7 +16340,6 @@ avengepet.eu.org, 1 avengersonline.ml, 1 avengersonlinemovie.ga, 1 -avenida7.com, 1 avenir-now.at, 1 avenir-now.ch, 1 avenir-now.com, 1 @@ -16543,7 +16405,6 @@ aviationsafetywiki.org, 1 aviationstrategies.aero, 1 aviationstrategy.aero, 1 -aviationweather.gov, 1 aviationzone.tk, 1 avibirds.com, 1 avicena.al, 1 @@ -16558,6 +16419,7 @@ avilatinoamerica.com, 1 avilauto.net, 1 aviles.com.sv, 1 +avinade.com, 1 avinguard.com, 1 avinilo.com, 1 avinode.com, 1 @@ -16646,7 +16508,6 @@ avstack.io, 1 avstekla.ru, 1 avt-ukraine.com, 1 -avtechno.ru, 1 avtecmedia.com, 0 avto-bazar.tk, 1 avto-signal.cf, 1 @@ -16656,7 +16517,7 @@ avtochip.tk, 1 avtodoki.tk, 1 avtodot.tk, 1 -avtoforex.ru, 1 +avtoforex.ru, 0 avtogara-isperih.com, 1 avtojurist.ml, 1 avtojurist.tk, 1 @@ -16723,7 +16584,6 @@ awaybot.com, 1 awaygroundguide.com, 1 awayword.cf, 1 -awconsulting.com.sg, 1 awebsome.fr, 1 awei.pub, 1 awena.me, 1 @@ -16775,7 +16635,7 @@ ax.ax, 1 ax.mk, 1 ax4health.nl, 1 -axa-mandiri.co.id, 1 +axa-mandiri.co.id, 0 axa.ch, 1 axa.de, 1 axarobd.com, 1 @@ -16864,7 +16724,6 @@ axoncoho.tk, 1 axone-computers.fr, 0 axonholdingse.eu, 1 -axonshield.com, 1 axre.de, 1 axrec.de, 1 axsc.ca, 1 @@ -16880,7 +16739,6 @@ axxial.tk, 1 axyl.cloud, 1 axzq.com, 1 -ay-daily.com, 1 ay-net.jp, 1 ay-tour.ru, 1 ayabank.us, 1 @@ -16924,7 +16782,6 @@ aylett.co.uk, 1 ayltoninacio.com.br, 1 aymerick-dupouey.fr, 1 -aymericlagier.com, 1 aymhome.top, 0 ayon-games.tk, 1 ayothemes.com, 1 @@ -17039,7 +16896,6 @@ azaleos.com, 1 azalhavayolu.com.tr, 1 azallon.com.br, 1 -azapp-vvv-program-api-dev.azurewebsites.net, 1 azaria.blog, 1 azarkepic.com, 1 azartmania.ga, 1 @@ -17070,7 +16926,6 @@ azertyjobs.com, 1 azey.net, 1 azfreaks.tk, 1 -azgaragedoorsrepair.com, 1 azh-kunden.de, 1 azhamevents.com, 1 azhapasa.com, 1 @@ -17289,7 +17144,6 @@ b8a.me, 1 b9168.com, 0 b9297.co, 1 -b9498.com, 1 b9586.net, 1 b9588.net, 1 b95888.net, 1 @@ -17448,7 +17302,6 @@ babysafety.tk, 1 babyscripts.com, 1 babysdishes-bowls.tk, 1 -babysets.eu, 1 babyshopsupport.com.au, 1 babyshower.cf, 1 babysiti.hopto.org, 1 @@ -17591,7 +17444,6 @@ badanteinfamiglia.it, 1 badaparda.com, 1 badass-women.club, 1 -badass.software, 1 badassdallascondo.com, 1 badassfantastico.tk, 1 badbee.cc, 1 @@ -17736,7 +17588,6 @@ baic-versicherung.de, 1 baichi.cf, 1 baichi.ml, 1 -baier-michels.com, 1 baif.hr, 1 baifubao.com, 1 baikal-news.net, 1 @@ -17821,14 +17672,13 @@ bakersfieldhomeoffer.com, 1 bakerviewdentalcentre.com, 1 bakerymazowsze.co.uk, 1 -bakesy.shop, 1 +bakesy.shop, 0 bakeup.be, 1 bakibal.com, 1 bakingbydonna.com, 1 bakivaxti.az, 1 bakkerij-janschrieks.nl, 1 bakkerinjebuurt.be, 1 -bakkerpanden.nl, 1 bakkersmolen.tk, 1 bakkerstraatfeesten.tk, 1 bakkt.com, 1 @@ -17881,7 +17731,6 @@ balatonlelleapartman.tk, 1 balboa.io, 1 balboa.org.uk, 1 -balboacapital.com, 1 balbus.tk, 1 balca.ga, 1 balcaonet.com.br, 1 @@ -17953,7 +17802,6 @@ ballotaudit.com, 1 ballpythonsaspets.com, 1 ballrace.ph, 1 -ballroompages.com, 1 ballstonspa.gov, 1 balluncar.tk, 1 ballweg-tech.de, 1 @@ -18085,13 +17933,11 @@ baneh-academic.com, 1 banehunter.com, 0 banerka.tk, 1 -banes-lab.com, 1 banes.ch, 1 banfieldentertowin.com, 0 banfieldtravel.it, 1 banfun.org, 1 bangabandhu.tk, 1 -bangandscrew.com, 1 bangbangboys.tk, 1 bangberlin.tk, 1 bangbros.com, 1 @@ -18305,6 +18151,7 @@ bardfarm.org, 1 bardian.net, 1 bardian.org, 1 +bardiharborow.com, 1 bardoferry.com, 1 bardtech.com, 1 barduschinamusic.org, 1 @@ -18329,7 +18176,6 @@ barhan-sarykum.ru, 1 bari.fun, 1 bariatricassociates.com, 1 -bariatrik.ro, 1 barihandin.tk, 1 barikell.be, 1 barinasknot.tk, 1 @@ -18433,7 +18279,6 @@ bart-f.net, 1 bart1ebee.com, 1 bartal.org, 1 -bartalomej.de, 1 bartavi.nl, 1 bartbania.com, 1 bartcoppens.be, 1 @@ -18481,7 +18326,6 @@ base-ui.com, 1 base27.eu, 0 base2face.tk, 1 -base48.systems, 1 basebalance.net, 1 baseballcrank.com, 1 baseballjapan.org, 1 @@ -18566,7 +18410,6 @@ basketballforever.com, 1 basketballnewz.tk, 1 basketforex.com, 1 -basketglucholazy.pl, 1 basketsandmore.bg, 1 basketskenya.com, 1 baskingalkin.tk, 1 @@ -18676,7 +18519,7 @@ bathscobensraker.ga, 1 bati-alu.fr, 1 bati-consult.fr, 1 -batiburrillo.net, 0 +batiburrillo.net, 1 batiim.co.il, 1 batipiscine.com, 1 batipresta.ch, 0 @@ -18720,7 +18563,6 @@ battlerite.tk, 1 battletech.tk, 1 battletrades.net, 1 -battoota.ma, 1 battreil.tk, 1 batualam88.id, 1 batualam88.online, 1 @@ -18878,7 +18720,6 @@ bazarotehijos.com, 1 bazarow.ru, 0 bazdell.com, 0 -bazdidaval.ir, 1 baze.cz, 1 bazel.build, 1 bazhan.wang, 1 @@ -18901,7 +18742,6 @@ bb9728.co, 1 bbaccademia.it, 1 bbalposticino.it, 1 -bbamsch.com, 0 bbansw.asn.au, 1 bbb00.com, 1 bbb1991.me, 0 @@ -18941,7 +18781,6 @@ bbmagnagrecia.it, 0 bbmak.tk, 1 bbmri.fi, 1 -bbmsarauniteam.com, 1 bbnx.net, 1 bbox.org, 1 bbp.ng, 1 @@ -19083,7 +18922,6 @@ be-free.gq, 1 be-real.life, 0 be-sigsol.fr, 1 -be-tech.nl, 1 be-the-story.com, 1 be-up-developpement.com, 1 be-wear.ch, 1 @@ -19166,7 +19004,6 @@ beansgalore.com.au, 0 beanshencr.com, 1 beaoriflame.hu, 1 -bearblinds.com.au, 1 bearcloud.id.lv, 1 bearcosports.com.br, 1 bearcreekcubschildcare.com, 0 @@ -19208,6 +19045,7 @@ beaton.tk, 1 beatquantum.com, 1 beatrice-nightscout.herokuapp.com, 1 +beatrice-raws.org, 1 beatricedailysun.com, 1 beatriz-urbano-vega.tk, 1 beatrizaebischer.ch, 0 @@ -19282,7 +19120,6 @@ beautyqlick.com, 1 beautyschool.od.ua, 1 beautyspot.tk, 1 -beautystudio-linda.com, 1 beautytechpro.ro, 1 beautytherapies.gr, 1 beautywien.at, 1 @@ -19339,7 +19176,6 @@ bebra.loan, 1 bebra.lu, 1 bebra.ms, 1 -bebra.pw, 1 bebrenok.trade, 1 bebrev.trade, 1 bebrik.men, 1 @@ -19368,7 +19204,6 @@ beclan.tk, 1 becleverwithyourcash.com, 1 beclick.co.il, 1 -becoairandheat.com, 1 becollective.com, 1 become-lucky.com, 1 become.education, 1 @@ -19520,7 +19355,6 @@ beezkneezcastles.co.uk, 1 beeznest.com, 1 befantasy.tk, 1 -befaster.fit, 1 beffeet.com, 1 befoodsafe.gov, 1 beforeafter.gq, 1 @@ -19668,7 +19502,6 @@ belfastlocks.com, 1 belfasttechservices.co.uk, 1 belfix.be, 1 -belflex.com, 1 belfor-probleme.de, 1 belga.tk, 1 belge.rs, 1 @@ -19711,7 +19544,6 @@ belizemap.tk, 1 belk.io, 1 belki.tk, 1 -belkinmarketing.com, 1 belknapcounty.gov, 1 belkys.net, 0 bell-meet.de, 1 @@ -20045,7 +19877,6 @@ bepzi.com, 1 bequ1ck.com, 1 bequiia.com, 1 -berakal.com, 1 beran.tk, 1 berandalcorp.tk, 1 beranovi.com, 1 @@ -20167,8 +19998,6 @@ bernat.ch, 1 bernat.im, 1 bernayslab.com, 1 -bernbrucher.com, 1 -bernbrucher.de, 1 berncoclerk.gov, 1 bernd-leitner-fotodesign.com, 1 bernd-leitner-fotodesign.de, 1 @@ -20330,7 +20159,6 @@ bestads.co.il, 1 bestafricaradio.tk, 1 bestallgames.com, 1 -bestapptools.com, 1 bestarts.tk, 1 bestasquadradas.org, 1 bestastrologermohali.in, 1 @@ -20346,7 +20174,6 @@ bestbernedoodles.com, 1 bestbestbitcoin.com, 1 bestbetcasino.com, 1 -bestbets.today, 1 bestbonuses.co.uk, 1 bestbookmark.cf, 1 bestbookmark.gq, 1 @@ -20676,9 +20503,8 @@ bet333678.com, 1 bet333789.com, 0 bet333h.com, 1 -bet333n.com, 1 +bet333n.com, 0 bet333r.com, 0 -bet333w.com, 0 bet333x.com, 1 bet333y.com, 1 bet333z.com, 0 @@ -20861,7 +20687,7 @@ betsfortoday.com, 1 betshoot.com, 1 betsonlinefree.com.au, 1 -betspin.com, 1 +betspin.com, 0 betsquare.com, 1 betstop.gov.au, 1 bett1.at, 1 @@ -20923,7 +20749,6 @@ bettingonaverage.com, 1 bettingphilippines.online, 1 bettolinokitchen.com, 0 -betty-baloo.com, 1 bettyblue.tk, 1 bettysseafoodshack.com, 1 betulashop.ch, 1 @@ -20946,6 +20771,7 @@ betwinner2.com, 1 betwinner5.mobi, 1 betwinnerkenya.com, 1 +betwinnermobileapp.com, 1 betwinnernigeria.com, 1 betwinnerperu.com, 1 betwinnerportugal.com, 1 @@ -21081,7 +20907,6 @@ bezpecnostsiti.cf, 1 bezpieczny.pl, 1 bezpiecznyiphone.pl, 1 -bezposrednio.net.pl, 1 bezpredel.tk, 1 bf2statistics.eu, 1 bfam.tv, 1 @@ -21181,7 +21006,6 @@ bhsportugal.org, 1 bhtechconnection.com, 0 bhtelecom.ba, 1 -bhtvn.com, 1 bhub.tk, 1 bhuntr.com, 1 bhuttae.com, 1 @@ -21238,7 +21062,6 @@ bible-maroc.com, 1 bible4u.net, 1 biblebrainhealth.com, 1 -bibleflare.com, 1 bibleforchildren.ru, 1 biblegen.com, 1 bibleinsiderest.ga, 1 @@ -21371,7 +21194,6 @@ bifangknt.com, 1 bifatura.com.tr, 1 biflosgknm.tk, 1 -biforthepeople.de, 1 bifrostdk.dk, 1 bifrostwallet.com, 1 biftin.net, 1 @@ -21485,7 +21307,7 @@ bigorangelab.com, 1 bigpage.tk, 1 bigpanparties.co.uk, 1 -bigphilsrubbishremoval.com, 0 +bigphilsrubbishremoval.com, 1 bigpicturerecords.com, 1 bigpurse.tk, 1 bigrapidstownshipmi.gov, 1 @@ -21614,7 +21436,6 @@ biletyplus.ua, 1 bilexmoney.com, 1 bilgehan.net, 1 -bilgemedikal.com, 1 bilgiliksel.com, 1 bilgisayarkursu.tk, 1 bilgisoft.ir, 1 @@ -21638,7 +21459,6 @@ billa.bg, 1 billa.sk, 1 billaltermatt.com, 1 -billardessentials.com, 1 billaud.eu, 1 billaud.eu.org, 1 billboard-panama.ml, 1 @@ -21807,7 +21627,6 @@ bio-kertem.hu, 1 bio-medical.com, 1 bio-place.com, 1 -bio-plus.cz, 1 bio-verzeichnis.de, 1 bio-world.com, 1 bio24.si, 0 @@ -22096,7 +21915,6 @@ biss-hcai.ca, 1 bissalama.org, 1 bisschopssteeg.nl, 1 -bissingen.de, 1 bissokush.cf, 1 bistro-dengi.ml, 1 bistrodeminas.com, 1 @@ -22224,11 +22042,9 @@ bitgo.com, 1 bithawk.ch, 1 bithero.com, 1 -bithosting.pt, 1 bititrain.com, 1 bitix.tk, 1 bitjunkiehosting.com, 1 -bitkan.com, 1 bitkikoruma.com, 1 bitking-signals.com, 1 bitkiselreyonum.com, 1 @@ -22252,14 +22068,12 @@ bitmidi.com, 1 bitmine.gq, 1 bitmix.biz, 1 -bitmoe.com, 1 bitmoji.com, 1 bitms.tk, 1 bitname.it, 1 bitnoder.com, 1 bitnoise.nl, 1 bitnovo.com, 1 -bito.ai, 1 bito3d.com.br, 1 bitovayatehn.tk, 1 bitpod.de, 1 @@ -22292,7 +22106,6 @@ bitstorm.org, 1 bitsync.nl, 1 bitten.pw, 1 -bittentechsolutions.in, 1 bittersweetcandybowl.com, 1 bittervault.xyz, 1 bitti.africa, 1 @@ -22378,7 +22191,6 @@ bizsugar.ga, 1 bizteam.ga, 1 biztera.com, 1 -biztok.eu, 1 biztouch.work, 1 biztrend.ru, 1 bizuteria-laoni.tk, 1 @@ -22390,11 +22202,9 @@ bizzexpress.com, 1 bizzix.tk, 1 bizzseo.tk, 1 -bizztor.com, 1 bizzvisor.site, 0 bj-caffe.tk, 1 bja.gov, 1 -bjargradakerfi.is, 1 bjarnerest.de, 0 bjarno.xyz, 1 bjbybbs.com, 1 @@ -22549,6 +22359,7 @@ bkin-43450.xyz, 1 bkin-46680.xyz, 1 bkk24.de, 1 +bkkf.at, 1 bkkposn.com, 1 bklaindia.com, 1 bkli.me, 1 @@ -22600,7 +22411,6 @@ black-ghost.tk, 1 black-goldautokozmetika.hu, 1 black-hair-extension.tk, 1 -black-holes.org, 1 black-magic-love-spells.com, 1 black-mail.nl, 1 black-market.ga, 1 @@ -22735,7 +22545,6 @@ blacksport.ru, 1 blacksprut.com, 1 blacksprut.pro, 1 -blackstoneone.net, 1 blackstonepress.tk, 1 blackstonetubrefinishers.ca, 1 blackstrapsecurity.com, 1 @@ -22858,6 +22667,7 @@ blauwereigercoaching.nl, 1 blauwgras.nl, 1 blavandbike.de, 1 +blavandbike.dk, 1 blavaty.tk, 1 blayne.me, 0 blayneallan.com, 1 @@ -22907,7 +22717,6 @@ blevinstirepros.com, 1 blewebprojects.com, 1 bleyershoes.com, 1 -blheritage-tours.com, 0 blic-zajm.gq, 1 blichmann.eu, 1 blick-durchblick.com, 1 @@ -23022,7 +22831,6 @@ blockcreams.com, 1 blocked.icu, 1 blockedservers.com, 1 -blockexplorer.online, 1 blockified.io, 1 blockmomsest.ga, 1 blocksettle.com, 1 @@ -23054,7 +22862,6 @@ blog.je, 1 blog.torproject.org, 0 blog.vu, 1 -blogabout.ru, 1 blogabouthealthy.tk, 1 blogaid.net, 1 bloganchoi.com, 1 @@ -23088,7 +22895,6 @@ bloggingkits.org, 1 bloggingqna.com, 1 bloggingtips.com, 1 -bloggingtriggers.com, 1 bloggingwithchildren.com, 1 bloggs.xyz, 1 blogguitar.tk, 1 @@ -23151,12 +22957,10 @@ bloodybiz-news.tk, 1 bloodycraft.ml, 1 bloodyhawks.tk, 1 -bloom.study, 1 bloomberg.com, 0 bloombergadria.com, 1 bloomberglp.com, 0 bloombergtv.mn, 1 -bloomfield-investment.com, 0 bloomfire.com, 1 bloomingmassage.com, 1 bloomingtonelectionsil.gov, 1 @@ -23348,7 +23152,6 @@ blumeglobal.com, 1 blumen-pusch.de, 1 blumenbasteln.ml, 1 -blumenfeldart.com, 1 blumenversand.tk, 1 blumiges-fischbachtal.de, 0 blummedia.de, 1 @@ -23396,7 +23199,6 @@ bmak.xyz, 1 bmbfiltration.com, 1 bmblawfirm.com, 1 -bmbsender.uk, 1 bmdonline.eu, 1 bme.com, 1 bmelecevolution.com, 1 @@ -23474,7 +23276,6 @@ bo-rad.de, 1 bo.ke, 1 bo1689.com, 0 -bo4tracker.com, 1 boanastudio.com, 1 boaplasticsurgery.com, 1 board-portal.org, 1 @@ -23502,7 +23303,6 @@ boatsandoats.com, 1 boatseller.org, 1 boatsforveterans.org, 1 -boatsnbeds.com, 1 boattrader.com.au, 1 boattrailerpartsplace.com, 1 boatyardx.com, 1 @@ -23681,7 +23481,6 @@ bokaldo.com, 1 bokatas.tk, 1 bokehandbows.ca, 1 -bokentau-company.kz, 1 bokf.com, 1 bokhaldari.is, 1 bokhylle.eu, 1 @@ -23816,7 +23615,6 @@ bonanzateam.tk, 1 bonapati.tk, 1 bonapeti.ml, 1 -bonapp.restaurant, 0 bonaselect.lv, 1 bonbonka.best, 1 bonbonmania.com, 1 @@ -23882,7 +23680,6 @@ bonkleagues.ml, 1 bonkotsua.net, 1 bonn.digital, 1 -bonne-apart.com, 1 bonneannee.tk, 1 bonnepart.fr, 1 bonnetmoda.com, 1 @@ -23974,6 +23771,7 @@ bookmarkup.gq, 1 bookmarkup.ml, 1 bookmarkup.tk, 1 +bookmeee.eu, 1 booknooktutor.com, 1 bookourdjs.com, 1 bookovnica.com, 1 @@ -24045,7 +23843,6 @@ boostdesign.tk, 1 boostenergy.com, 1 boostermachine.com, 1 -boostertonbusiness.com, 1 boostgame.win, 1 boostport.com, 1 boostport.com.au, 1 @@ -24063,7 +23860,6 @@ bootstrapcollab.com, 0 bootsverleih-buch-balduinstein.de, 1 bootswinter.tk, 1 -bootsy.org, 1 bootytube.net, 1 boozinyan.com, 1 boraarat.com, 1 @@ -24199,12 +23995,10 @@ bosque.gov, 1 bosquedelasimagenes.tk, 1 bosquedepalabras.com, 0 -bosquesdevenezuela-caroni.com, 1 boss.az, 1 bossefors.tk, 1 bosseo.id, 1 bosslady.one, 1 -bossmarketing.ca, 1 bossmoncton.com, 1 bossurl.tk, 1 boston-medical-supply.com, 1 @@ -24215,7 +24009,6 @@ bostonbeer.com, 0 bostonchamber.com, 1 bostonews.tk, 1 -bostonfast.com, 1 bostonheartdiagnostics.com, 1 bostonmedicalgroup.com, 1 bostonrealestateinvestorsassociation.com, 1 @@ -24382,7 +24175,6 @@ boundaryvets.co.uk, 1 boundladies.ga, 1 boundless-designs.com, 1 -boundlessmediausa.com, 1 bounouh.tk, 1 bountiful.ag, 1 bountiful.gov, 1 @@ -24431,7 +24223,6 @@ bouzouada.com, 1 bouzouks.net, 1 bovender.de, 1 -bovenwebdesign.nl, 1 bovet.com, 1 bovileva.com.ua, 1 bovomed.nl, 1 @@ -24459,7 +24250,6 @@ boxclub-marburg.de, 1 boxcoshipping.com, 1 boxcritters.wiki, 1 -boxcryptor.com, 0 boxdevigneron.fr, 1 boxdroplacrosse.com, 1 boxeldercountyut.gov, 1 @@ -24988,7 +24778,7 @@ breteuilcommerceartisanat.com, 1 breton.pm, 1 bretonhouse.ca, 1 -bretonstripe.com, 1 +bretonstripe.com, 0 brettcornwall.com, 1 bretti.net, 1 brettlawyer.com, 0 @@ -25084,7 +24874,6 @@ bridestarco.com, 1 bridge-online.cloud, 1 bridge-to-knowledge.nl, 1 -bridge-xs.com, 1 bridge.nl, 1 bridgecitytx.gov, 1 bridgecon.com.au, 1 @@ -25195,7 +24984,7 @@ bringonbusiness.com, 1 brinker.com, 1 brinkhaven.gov, 1 -brinkhu.is, 0 +brinkhu.is, 1 brinksurl.com, 1 brinksurls.com, 1 brinokidzonline.tk, 1 @@ -25264,7 +25053,6 @@ brittanyferriesnewsroom.com, 1 brittas-world.tk, 1 britva-optom.com, 1 -brivawn.com, 1 brix-central.tk, 1 brixxonline.nl, 0 brizawen.com, 1 @@ -25334,7 +25122,6 @@ brody.ninja, 1 broe.ie, 1 broederlynt.nl, 1 -broedersvanliefde.be, 1 broerbv.nl, 0 broerendasbouwbedrijf.nl, 1 broers-rolluiken.nl, 1 @@ -25363,6 +25150,7 @@ broker-innovix.pl, 1 broker.id, 1 brokerdecredite.ro, 1 +brokeria.sk, 1 brokerlink.ca, 1 brokernews.com.au, 1 brokernotes.co, 1 @@ -25567,7 +25355,6 @@ bruun.co, 1 bruyerre.eu, 1 brw-shop.by, 1 -brweb.tk, 1 brwebsolutions.tk, 1 brwn.loan, 1 bryanarmijomd.com, 1 @@ -25585,7 +25372,6 @@ bryansk-news.ru, 1 bryanski.tk, 1 bryantluk.com, 1 -bryantx.gov, 1 bryceml.us, 1 bryggebladet.dk, 1 brysoncitync.gov, 1 @@ -25644,6 +25430,7 @@ bsidesf.com, 1 bsidessf.com, 1 bskhq.tk, 1 +bskmt.com, 1 bsktweetup.info, 1 bslim-e-boutique.com, 1 bslinguistics.co.uk, 1 @@ -25659,7 +25446,6 @@ bsolut.com, 1 bsolut.de, 1 bsolut.org, 1 -bsp-southpool.com, 1 bspecialfx.nl, 1 bsrueti.ch, 1 bss-solutions.net, 1 @@ -25675,7 +25461,6 @@ bsstainless.com, 1 bst-brandschutz.at, 1 bst-gmbh.de, 1 -bstakepool.online, 1 bsteele.tk, 1 bstger.ch, 1 bstoked.net, 1 @@ -25828,7 +25613,6 @@ bucksfund.com, 1 buckthorn.ml, 1 buda.com, 1 -budagard.se, 1 budapestairport.tk, 1 budapestairporttaxi.net, 1 budapestairporttocity.com, 1 @@ -25901,7 +25685,6 @@ budsforbuddies.com, 1 budsmelim.ee, 1 budtraffic.net, 1 -buednerei-202.de, 1 buehlerzell.de, 1 buejagt.dk, 1 bueltge.de, 1 @@ -25978,8 +25761,6 @@ build-up.tk, 1 build.chromium.org, 1 build.gov, 1 -build.stream, 0 -buildamericaluxuryhomes.com, 0 buildbackbetter.gov, 1 buildbytes.com, 1 buildconcierge.ga, 1 @@ -26052,7 +25833,6 @@ bukularis.ga, 1 bul3seas.eu, 1 bulabanews.com.ng, 1 -bulabil.tr, 1 bulagro.bg, 1 bulario.com, 1 bularmas.com, 1 @@ -26129,7 +25909,6 @@ bulutimza.com.tr, 1 bulutkey.com, 1 bulvar.tk, 1 -bumag.ro, 1 bumastemra.nl, 1 bumble.com, 1 bumblebee.cf, 1 @@ -26642,7 +26421,7 @@ bussnang.ch, 1 bussoclean.com.au, 1 busstation.tk, 1 -bustamantefabara.com, 1 +bustamantefabara.com, 0 bustaura.lt, 1 bustepaga.it, 1 buster.me.uk, 1 @@ -26699,7 +26478,6 @@ butserdocumentary.tk, 1 buttedesmortssd1wi.gov, 1 butter.horse, 1 -butterchat.io, 1 butterflytigress.com, 1 butterhost.ga, 1 buttermilk.cf, 1 @@ -26812,7 +26590,6 @@ buyland.com.ua, 1 buylasix.ml, 1 buylevaquin.tk, 1 -buyme.lk, 1 buymetforminonline.tk, 1 buymobic.ml, 1 buymyvoip.com, 1 @@ -26841,7 +26618,6 @@ buyrimonabant.cf, 1 buyrocell.com, 1 buyrogaine.ga, 1 -buysdfi.com, 1 buyselldonothing.com, 1 buyshine.com, 1 buyshoe.org, 1 @@ -27038,6 +26814,7 @@ byte.nl, 1 byte128.com, 0 bytebiter.io, 1 +byteblobs.com, 1 bytebodega.com, 1 bytebolt.at, 1 bytebucket.org, 1 @@ -27088,7 +26865,6 @@ bzik.cf, 1 bzjv-ffm.de, 1 bzkj.de, 1 -bznz.me, 1 bzomak.com, 1 bztech.com.br, 1 bztech.ru, 1 @@ -27100,14 +26876,11 @@ c-a-c.com.au, 1 c-aeroconsult.com, 1 c-c-europeen.org, 1 -c-cdn.net, 1 -c-cdn.org, 1 c-chaud.com, 1 c-club-berlin.de, 1 c-data.nl, 0 c-dome.com, 1 c-fo.de, 1 -c-g-h.net, 1 c-ma-copro.com, 1 c-netsys.fr, 1 c-ovidiu.tk, 1 @@ -27127,7 +26900,6 @@ c.sk, 1 c.sl, 1 c.sv, 1 -c.wtf, 1 c057cl7.com, 1 c0d3m4513r.com, 1 c0mplicated.tk, 1 @@ -27150,14 +26922,12 @@ c19ivm.org, 1 c19legacy.com, 1 c19ly.com, 1 -c19melatonin.com, 1 c19ns.com, 1 c19probiotics.com, 1 c19proxalutamide.com, 1 c19study.com, 1 c19sv.com, 1 c19vitamind.com, 1 -c19zinc.com, 1 c21first.co.il, 1 c2athletics.com, 1 c2cdn.xyz, 1 @@ -27411,7 +27181,7 @@ cafeobscura.nl, 1 cafesangtao.com, 1 cafeterya.tk, 1 -cafethevibes.com, 1 +cafethevibes.com, 0 cafethrive.co.uk, 1 cafevelo.org, 1 cafevs.com, 0 @@ -27493,7 +27263,6 @@ cakedeveloperest.ga, 1 cakejournal.com, 1 cakelaces.com, 1 -cakenetwork.com, 1 cakeoffencesact.uk, 1 cakes.ga, 1 cakes.tk, 1 @@ -27548,6 +27317,7 @@ calcularis.ch, 1 calculate-vat.uk, 1 calculate.co.kr, 1 +calculates.org, 1 calculatetoday.com, 1 calculator-app.com, 1 calculator.aws, 1 @@ -27639,7 +27409,6 @@ calisteniaperu.ga, 1 calistogaca.gov, 1 calitateavietii-ardeal.ro, 1 -calivillalonga.com.ar, 1 call-plumbers.com, 0 call2counter.com, 0 calla.pl, 1 @@ -27873,7 +27642,6 @@ campingfontanelle.it, 1 campinggadgetest.ga, 1 campinghuntingshooting.com, 1 -campingmarkt.com, 1 campingpolidor.com, 1 campingprofessionalsest.ga, 1 campingshop.pl, 1 @@ -27954,7 +27722,6 @@ canadianbusiness.com, 1 canadiancourtreporting.com, 1 canadianemail.ca, 1 -canadianfriendsofyadsarah.com, 1 canadiangamblingchoice.com, 1 canadiangriefalliance.ca, 1 canadianlandscapeart.ca, 1 @@ -27994,7 +27761,7 @@ canariasjoven.es, 1 canariasjoven.org, 1 canariasport.com, 0 -canaricultura.com, 0 +canaricultura.com, 1 canariculturacolor.com, 1 canarie.ca, 1 canaryaspets.com, 1 @@ -28039,7 +27806,6 @@ candlelightchallenge.tk, 1 candlemakingexplained.com, 1 candlepro.cf, 1 -candlevn.com, 1 cando.eu, 1 candogiveguide.org, 1 candt.gr, 1 @@ -28097,6 +27863,7 @@ canker.org, 1 cankhon.tk, 1 cankirihaber.tk, 1 +cankutahya.com.tr, 1 canliradyodinle.fm, 1 canlitelefonhatti.ga, 1 canlom.tk, 1 @@ -28138,7 +27905,6 @@ canondrivers.org, 1 canonisti.fi, 1 canonvannederland.nl, 1 -canoodlesoup.com, 1 canoonic.se, 1 canopelle.com, 1 canopy.ninja, 1 @@ -28179,8 +27945,6 @@ cantstopart.com, 1 canuluduz.tk, 1 canv4s.com, 1 -canva-dev.com, 1 -canva.com, 1 canvas-art.tk, 1 canvaspersonalized.com, 1 canweagr.ee, 1 @@ -28208,8 +27972,8 @@ cap73.fr, 1 cap75.com, 1 capari.co, 1 -caparicasurflessons.com, 1 caparua.com, 1 +capathsuccess.com, 1 capcut.cn, 1 cape.blue, 1 capeannvacations.com, 1 @@ -28244,7 +28008,6 @@ capitainebaggy.ch, 0 capitains.tk, 1 capital-electronics.ml, 1 -capitalcap.com, 1 capitalcitycatfish.com, 1 capitalcollections.org.uk, 1 capitaldistrictneurofeedback.com, 1 @@ -28465,6 +28228,7 @@ cardinus.com, 1 cardioagainstcancer.nl, 1 cardiology.gq, 1 +cardios.srv.br, 1 cardiosportsilvinadelgado.com, 0 cardiothinklab.com, 1 cardity.de, 1 @@ -28505,7 +28269,6 @@ cardpresso.com, 1 cardprinter.co.il, 1 cardpyramiders.ga, 1 -cardranking.jp, 1 cardrecovery.fr, 1 cards4jobs.com, 1 cardschat.com, 1 @@ -28567,9 +28330,7 @@ careskillsacademy.co.uk, 0 carespot.com, 1 carespottravelmedicine.mobi, 1 -carestartantigen.com.au, 1 caret.be, 1 -caretaker.com, 1 caretogether.coop, 1 carevic.eu, 1 carey.cl, 1 @@ -28596,7 +28357,7 @@ caribbeanbottlerstt.com, 1 caribbeancinemas.com, 1 caribuku.tk, 1 -caricature.fr, 1 +caricature.fr, 0 caricatureavenue.com, 1 carien.eu, 1 carigami.fr, 1 @@ -28744,9 +28505,10 @@ carol-lambert.com, 1 carolcestas.com, 1 caroli.biz, 1 -caroli.com, 1 +caroli.com, 0 caroli.info, 1 caroli.name, 1 +caroli.net, 0 carolicious.tk, 1 carolina.cz, 1 carolinacourtreporter.com, 1 @@ -28906,7 +28668,6 @@ cartoonbrew.com, 1 cartooncastles.ie, 1 cartooncollections.com, 1 -cartoonlists.com, 1 cartoonstock.com, 1 cartoontube69.com, 1 cartoonwap.tk, 1 @@ -28923,10 +28684,8 @@ cartridgesave.co.uk, 1 cartturbo.com, 1 cartucce24.it, 1 -cartuchoonline.com.br, 1 cartunings.tk, 1 carty.bg, 1 -carun.us, 0 carunion.nl, 1 carus.com, 1 caruso.com, 1 @@ -28951,7 +28710,6 @@ casa-due-pur.de, 1 casa-due.com, 1 casa-funerara-mirage.ro, 1 -casa-indigo.com, 1 casa-lunch-break.de, 1 casa-lunchbreak.de, 1 casa-mea-inteligenta.ro, 1 @@ -29014,7 +28772,6 @@ casasparaperross.com, 1 casasuara.com, 1 casasuleletrodomesticos.com.br, 1 -casatemporada.com, 1 casatendeiro.tk, 1 casavacanze.estate, 1 casavaleria.tk, 1 @@ -29082,7 +28839,6 @@ cash.app, 1 cash.me, 1 cash.nyc, 1 -cash1loans.com, 1 cashadvanceoflebanon.com, 1 cashamerican.tk, 1 cashati.com, 1 @@ -29097,6 +28853,7 @@ cashconverters.co.uk, 1 cashconverters.com, 1 cashconverters.com.au, 1 +cashdeskapp.com, 1 cashdo.co.il, 1 cashdrop.ga, 1 cashewmanufacturers.com, 1 @@ -29129,7 +28886,6 @@ casino-cashflow.ru, 1 casino-hero.de, 0 casino-poker-tour.com, 1 -casino-r.com, 1 casino-spelletjes.com, 1 casino-trio.com, 1 casino-z-top.ru, 1 @@ -29255,7 +29011,6 @@ casinodebeaulieu.com, 1 casinodecavalaire.com, 1 casinofollower.com, 1 -casinoleader.com, 1 casinolistings.com, 1 casinologin.pl, 1 casinologinaustralia.com, 1 @@ -29416,6 +29171,7 @@ catalyseurs-territoriaux.org, 1 catalyst-ecommerce.com, 1 catalystapp.co, 1 +catalystindustrialservices.com, 1 catalyzr.info, 1 catandmoonalchemy.com.au, 1 cataniatoday.it, 1 @@ -29449,6 +29205,7 @@ catchteamca.gov, 1 catchthestars.org, 1 catchup-enschede.tk, 1 +catchyz.com, 1 catclouds.net, 1 catcontent.cloud, 1 catcoxx.com, 1 @@ -29490,7 +29247,6 @@ catholicjobs.com, 1 catholicnewstt.com, 1 catholicprayers.tk, 1 -catholicprayerspace.ca, 1 catholicteuchtar.cf, 1 catholicteuchtar.ga, 1 catholicteuchtar.ml, 1 @@ -29607,7 +29363,6 @@ cazadordebuenaonda.com, 1 cazenovecapital.com, 1 cazfire.gov, 1 -cazizi.com, 1 cb1388.com, 1 cb1588.com, 1 cba.ca, 1 @@ -29632,7 +29387,6 @@ cbdication.com, 1 cbdlession.com, 1 cbdlinks.xyz, 1 -cbdnational.com, 1 cbdoilcures.co, 1 cbdtelegram.com, 1 cbeal-fumeirodetrancoso.pt, 1 @@ -29655,7 +29409,6 @@ cblocallocksmiths.co.uk, 1 cbmc.store, 1 cbmconnect.com, 1 -cbmindia.org, 1 cbmusa.com, 1 cbmvn.com, 1 cbnegocial.com.br, 1 @@ -29672,10 +29425,9 @@ cbrobot.net, 1 cbrsecurity.be, 1 cbs-engineering.com, 1 -cbs.nl, 1 cbs3design.it, 1 +cbsr.ru, 1 cbt.quest, 1 -cbt.tj, 1 cbw.sh, 1 cbxp.in, 1 cc-customer.de, 1 @@ -29771,7 +29523,6 @@ ccpinvestments.com, 1 ccplot.org, 1 ccprwebsite.org, 1 -ccrf501.com, 1 ccrfi.net, 1 ccrfi.org, 1 ccrun.tk, 1 @@ -29780,7 +29531,6 @@ ccsinnovations.com, 1 ccsioims.ph, 1 ccsk.training, 1 -ccskills.org.uk, 1 ccsrv.eu, 1 ccsys.com, 1 cct1d.com, 1 @@ -29822,7 +29572,6 @@ cdasphalt.com, 1 cdavis.xyz, 1 cdawoerden.org, 1 -cdbp.pro, 1 cdbtech.com, 1 cdc.gov, 1 cdcflix.xyz, 1 @@ -30001,8 +29750,6 @@ celebrityscope.net, 1 celebritysrit.tk, 1 celebritytopnews.tk, 1 -celebrityviralbug.com, 1 -celectricos.com, 1 celectro-pro.com, 1 celendo.ga, 1 celenephotography.com, 1 @@ -30046,7 +29793,6 @@ cellulitetreatment.tk, 1 cellypso.com, 1 celmedia.cl, 1 -celsa.fr, 1 celseven.com, 1 celsoazevedo.com, 1 celtacad.tk, 1 @@ -30138,7 +29884,6 @@ centralhome.com, 1 centralhq.tk, 1 centralimpressos.com.br, 0 -centralinf.com.br, 1 centralisgroup.com, 1 centralitasbaratas.es, 1 centralkladno.cz, 1 @@ -30146,7 +29891,6 @@ centrallead.net, 1 centrallondonaesthetics.co.uk, 0 centralnic.com, 1 -centralpaellera.com, 1 centralpay.eu, 0 centralpinesnc.gov, 1 centralsite.tk, 1 @@ -30234,7 +29978,6 @@ ceo-consulting.eu, 1 ceomanipur.nic.in, 1 ceomonthlyest.ga, 1 -ceopedia.org, 1 cephalexin.ga, 1 cephalexincapsules.ml, 1 cephalexincapsules.tk, 1 @@ -30337,7 +30080,6 @@ certifylogin.com, 1 certiquali.fr, 1 certivac.ch, 1 -certly.co, 1 certnazionale.it, 1 certo-escrow.com, 1 certos.com, 1 @@ -30367,7 +30109,6 @@ cesar-hector.tk, 1 cesarecirugiaplastica.com, 0 cesarfotos.com.br, 1 -cesarpinto.com, 1 cesarr.fr, 1 cesarteixeiraimoveis.com.br, 1 cesboard.com, 1 @@ -30385,8 +30126,6 @@ ceskasit.cz, 1 ceskydj.cz, 1 ceslasvegasnews.com, 1 -cesltd.com, 1 -cesmet.mil.do, 0 cesobaly.cz, 1 cesonia.io, 0 cespedes.fr, 1 @@ -30418,7 +30157,7 @@ cevin.at, 1 cevo.com.hr, 1 cevpu.com, 1 -cevrimicidiyet.com, 1 +cevrimicidiyet.com, 0 cevt.ar, 1 cewek.ml, 1 cewood.xyz, 1 @@ -30504,7 +30243,6 @@ cgelves.com, 1 cgestiona.com, 0 cgeventoseturismo.com.br, 1 -cgfordparts.com, 1 cggs.vic.edu.au, 1 cggsaquatic.com.au, 1 cgha.us, 1 @@ -30642,10 +30380,8 @@ championpetfoods.com, 1 championsofpowerfulliving.com, 0 championsofregnum.com, 1 -championweb.co.nz, 0 championweb.com, 0 championweb.com.au, 0 -championweb.nz, 0 championweb.sg, 0 champslearning.co.uk, 1 chamsocial.com, 1 @@ -30667,7 +30403,7 @@ change10000lives.com.ph, 1 changeactivation.com, 1 changeanalytics.us, 1 -changechecker.org, 1 +changechecker.org, 0 changeforfuture.cf, 1 changemywifipassword.com, 1 changenow.io, 1 @@ -30707,7 +30443,6 @@ chaos-darmstadt.de, 1 chaos-wg.net, 1 chaos.run, 1 -chaos.stream, 1 chaoschemnitz.de, 1 chaoscommunication.camp, 1 chaoscycle.tk, 1 @@ -30860,7 +30595,6 @@ chasebenefits.com, 1 chasecountyne.gov, 1 chasetrails.co.uk, 1 -chaseventar.de, 1 chaskafire.gov, 1 chaskamn.gov, 1 chaskapolice.gov, 1 @@ -30937,7 +30671,6 @@ chatopi.be, 1 chatopia.tk, 1 chatovod.tk, 1 -chatphp.com, 1 chatplanet.com, 1 chatpoint.tk, 1 chatreplay.stream, 1 @@ -31115,7 +30848,7 @@ checksandbalancesproject.org, 1 checksoft.net, 1 checkspf.net, 1 -checktls.nl, 0 +checktls.nl, 1 checktype.com, 1 checkui.com, 1 checkurinsurance.com, 1 @@ -31136,7 +30869,6 @@ cheesefusion.com, 1 cheeseginie.com, 1 cheesy.gay, 1 -cheesyf.art, 1 cheeth.am, 1 cheetham.me.uk, 1 chefaa.com, 1 @@ -31178,7 +30910,6 @@ chema.ga, 1 chemapool.bg, 1 chemaxon.com, 1 -chemengzone.com, 1 chemgenes.com, 1 chemica-us.com, 1 chemical-shark.de, 1 @@ -31320,7 +31051,6 @@ chiasang.tk, 1 chiaseek.com, 1 chiavistello.it, 1 -chiaylimon.com, 1 chiba-shika.jp, 1 chiba-tour.jp, 1 chiboard.co, 1 @@ -31330,6 +31060,7 @@ chic-weddings.com, 1 chicago-mold.com, 1 chicagobasementblog.com, 1 +chicagocitydeck.com, 0 chicagoconcretecleaning.com, 1 chicagoillinois.gq, 1 chicagomaroon.com, 1 @@ -31373,7 +31104,6 @@ chietech.com.br, 1 chietitoday.it, 1 chifeng.com.tw, 1 -chiffer.nu, 1 chiffrer.info, 1 chigwelltreeservices.co.uk, 1 chijb.cc, 1 @@ -31466,6 +31196,7 @@ chinadream404.com, 1 chinafree.online, 1 chinafree.site, 1 +chinagift.com, 0 chinaglobalsecurities.cn, 1 chinahealthcareblog.cf, 1 chinaicpower.org, 0 @@ -31565,7 +31296,6 @@ chitinfo.tk, 1 chitlar.ml, 1 chitraltune.tk, 1 -chitrankan.art, 1 chittagongtextile.tk, 1 chiucainlaw.co.nz, 1 chiusa-klausen.com, 1 @@ -31636,7 +31366,6 @@ chokoppang.com, 1 cholleria.es, 1 chollima.pro, 1 -chollitis.store, 1 chollospain.cf, 1 chollosrapidos.com, 1 choloforo.tk, 1 @@ -31693,7 +31422,6 @@ choyri.com, 1 chr0me.sh, 1 chrawrizard.org, 1 -chrestos.de, 1 chrg-server.de, 1 chrigi.ch, 1 chriholt.de, 1 @@ -31720,7 +31448,6 @@ chrisirwin.ca, 1 chrisjean.com, 1 chriskthomas.com, 1 -chrislane.com, 1 chrisliebaer.de, 1 chrisliebear.de, 1 chrisluen.com, 1 @@ -31777,6 +31504,7 @@ christiangaro.com, 1 christiangaro.email, 1 christiangaro.me, 1 +christiangaro.us, 1 christiangehring.org, 1 christianhaugen.tk, 1 christianhoffmann.info, 0 @@ -32046,7 +31774,6 @@ ciai.tk, 1 cialde.it, 1 cialis-trial.gq, 1 -cialisfiyatlisti.com, 1 cialisfreetrial.ga, 1 cialismarketim.net, 1 cialismarketing.net, 1 @@ -32168,7 +31895,6 @@ cine.to, 1 cineassist.jp, 1 cinecat.de, 1 -cinecolombia.com, 1 cinedarkwolf.tk, 1 cinefilia.tk, 1 cineforge.com, 1 @@ -32236,7 +31962,7 @@ cipher.team, 1 cipherboy.com, 1 cipherfunk.com, 1 -cipherlist.eu, 1 +cipherlist.eu, 0 ciphermail.com, 1 ciphermining.com, 1 ciphersuite.info, 1 @@ -32277,7 +32003,6 @@ circoeia.com, 0 circu.ml, 0 circues.com, 1 -circuit.co.uk, 1 circuitcityelectricaladelaide.com.au, 1 circuitclerkmarioncountyms.gov, 1 circular-economy.earth, 1 @@ -32398,7 +32123,6 @@ city-glas.com, 1 city-home.tk, 1 city-journal.org, 1 -city-nn.com, 1 city-online.tk, 1 city-walks.info, 1 city.kharkov.ua, 1 @@ -32540,7 +32264,7 @@ cityofroyaltonmn.gov, 1 cityofsacramento.gov, 1 cityofsalemky.gov, 1 -cityofsalemnj.gov, 0 +cityofsalemnj.gov, 1 cityofsanmateoca.gov, 1 cityofsantamariaca.gov, 1 cityofsavannail.gov, 1 @@ -32636,8 +32360,6 @@ civilvirus.tk, 1 civmob.com, 1 cixbrasil.com, 1 -cixon.com.br, 1 -cixon.us, 1 cizgikod.ga, 1 cizz.uk, 1 cizzuk.net, 1 @@ -32729,7 +32451,6 @@ claimpilot.com, 1 claimsadj.com, 1 claimspharmacy.services, 1 -claimyourvoicenow.com, 1 clairebabai.nl, 1 clairegold.com, 1 clairelefort-architectes.com, 1 @@ -32787,7 +32508,6 @@ clarerose.com, 1 claresderibota.tk, 1 claretandbluearmy.tk, 1 -claricelin.com, 1 clarilog.com, 1 clarinet.ga, 1 clarinexonline.gq, 1 @@ -32846,7 +32566,6 @@ class66.tk, 1 classbasic.com, 1 classbasics.com, 0 -classdesignhome.com, 1 classdojo.com, 1 classic-diva.cf, 1 classic-diva.ga, 1 @@ -33091,7 +32810,6 @@ clever-invest.gq, 1 clever-reisen.tk, 1 cleverbots.ru, 1 -cleverbowling.com, 1 clevercoaching.nl, 1 cleverdarts.com, 1 cleverdeal.tk, 1 @@ -33471,12 +33189,12 @@ cloudigy.es, 1 cloudily.com, 1 cloudimprovedtest.com, 1 -cloudindex.io, 1 cloudinfinit.com, 1 cloudix.cf, 1 cloudlandmark.com, 1 cloudlessdreams.com, 0 cloudlight.biz, 1 +cloudlucida.com, 1 cloudmachine.fr, 1 cloudmanagedbuilding.com, 1 cloudmanagedbuildings.com, 1 @@ -33487,7 +33205,6 @@ cloudmyhome.site, 1 cloudmyhome.top, 1 cloudnas.ru, 1 -cloudnetuy.com, 1 cloudnexusit.com, 1 cloudnote.cc, 1 cloudnovi.com, 1 @@ -33626,7 +33343,6 @@ clubeamizade.com, 1 clubeamizade.com.pt, 1 clubeamizade.pt, 1 -clubeangelus.com.br, 1 clubedalutashop.com, 1 clubedaquimica.tk, 1 clubedegeografia.tk, 1 @@ -33790,7 +33506,6 @@ cmsdca.gov, 1 cmsec.de, 1 cmserviscz.cz, 0 -cmsfox.de, 1 cmsfs.de, 1 cmskh.co.uk, 1 cmsonline.com, 1 @@ -33798,7 +33513,6 @@ cmsprofessionals.com.au, 1 cmsua.ca, 1 cmt-france.org, 1 -cmt35.ru, 1 cmtindia.com, 1 cmtk.cloud, 1 cmtportal.co.uk, 1 @@ -33832,7 +33546,6 @@ cnews.ru, 1 cnfree.xyz, 0 cngf.com, 1 -cngvp.org, 1 cni-certing.it, 1 cni.net.id, 1 cnil.fr, 1 @@ -33927,7 +33640,6 @@ coberturaplus.com, 1 cobiz.nl, 1 cobolotobolo.com, 1 -coboo.nl, 1 coboxviagens.com.br, 1 cobracastles.co.uk, 1 cobralelie.nl, 1 @@ -33975,7 +33687,6 @@ coco-line.ch, 1 cocoa-job.jp, 1 cocoafl.gov, 1 -cocoalife.org, 1 cocoanka.ir, 1 cocobollo-sallanches.com, 1 cocobrother.ddnss.de, 1 @@ -34009,7 +33720,6 @@ codcourier.org, 1 code-35.com, 0 code-ch.com, 1 -code-de-la-route-gratuit.net, 1 code-gen.ca, 1 code-in-plate.tk, 1 code-judge.tk, 1 @@ -34165,7 +33875,6 @@ codexlog.com, 1 codezenith.com, 1 codezeno.com.au, 1 -codialog.org, 1 codice-rosso.net, 1 codicecer.it, 1 codicicer.it, 1 @@ -34246,6 +33955,7 @@ coffer.fi, 1 coffstotalroofing.com.au, 1 cofidisperte.it, 1 +cofigs.com, 1 cofinco.nl, 1 coforge.com, 1 cofradiaqueimada.tk, 1 @@ -34314,6 +34024,7 @@ coinliq.com, 1 coinloan.io, 1 coinmama.com, 1 +coinmarketjob.com, 1 coinmotion.com, 1 coinnector.com, 1 coinnewspulse.com, 1 @@ -34342,7 +34053,6 @@ cola-host.tk, 1 colaba.online, 1 colaborame.tk, 1 -colaborativa.tv, 1 colaboratorija.lt, 1 colabug.com, 1 colafoodcritic.com, 1 @@ -34376,7 +34086,6 @@ coldmeat.se, 1 coldpaste.com, 1 coldraven.com, 1 -coldsky.net, 1 coldspegll.gq, 1 coldspringharborcesspools.com, 1 coldspringsrancheria.gov, 1 @@ -34525,7 +34234,6 @@ collinlove.uk, 1 collinlove.us, 1 collinlove.xyz, 1 -collinmbarrett.com, 1 collins.kg, 1 collins4mayor.co.nz, 1 collins4mayor.nz, 1 @@ -34568,7 +34276,6 @@ coloradocountrylife.coop, 1 coloradoer.tk, 1 coloradofamli.gov, 1 -coloradogenerac.com, 1 coloradolottery.com, 1 coloradorangers.gov, 1 coloradoseodesign.com, 1 @@ -34627,9 +34334,7 @@ colson-occasions.be, 0 coltellisurvival.com, 1 colterris.com, 1 -colthesweep.co.uk, 0 coltonrb.com, 1 -coluit.nl, 1 columbiachronicle.com, 1 columbiacountyor.gov, 1 columbiacountywi.gov, 1 @@ -34683,7 +34388,7 @@ comarch.ru, 1 comarkinstruments.cloud, 1 comarkinstruments.net, 1 -comasystem.dk, 1 +comasystem.dk, 0 comaypa.es, 1 combatix.io, 1 combattrecellulite.com, 1 @@ -34791,6 +34496,7 @@ comm.cx, 1 comma-store.eu, 1 commagere.com, 1 +command53.fr, 1 commanderone.net, 1 commanderx.cf, 1 commanderx.ml, 1 @@ -34830,6 +34536,7 @@ commfortchat.tk, 1 commissaris-vraagbaak.nl, 1 commissionagenda.com, 1 +commissionaires.ca, 1 commissioner.tk, 1 commitsandrebases.com, 1 commloan.com, 1 @@ -34874,6 +34581,7 @@ communitycollegereview.com, 1 communitycreditunion.com, 1 communitydirectory.tk, 1 +communityeducators.net, 1 communitylivingalgoma.org, 1 communitymalls.com.ph, 1 communitymalls.ph, 1 @@ -35087,7 +34795,6 @@ computermaus.com, 1 computernetwerkwestland.nl, 1 computernetwork.be, 1 -computerpackages.com, 1 computerpoint.net, 0 computerscience.guide, 1 computersforlearning.gov, 1 @@ -35106,7 +34813,6 @@ computingaustralia.com.au, 1 computingessentials.tk, 1 computingsociety.co.uk, 1 -computingwarehouse.com, 1 computools.com, 1 computop.com, 1 computron.ga, 1 @@ -35144,7 +34850,6 @@ conafonline.it, 1 conall.io, 1 conalpedis.tk, 1 -conapdis.go.cr, 1 conbida.co, 1 conbrio.tk, 1 concellodeortigueira.gal, 1 @@ -35160,7 +34865,6 @@ conceptatelier.de, 1 conceptec.de, 1 conceptfoundation.org, 1 -conceptground.com, 1 conceptual.ga, 1 concern.cloud, 1 concert.ga, 1 @@ -35211,7 +34915,6 @@ condit.cf, 1 condit.gq, 1 condit.ml, 1 -conditionyellowacademy.com, 1 condizionatore.roma.it, 1 condo.do, 1 condominiorganica.pe, 1 @@ -35278,7 +34981,6 @@ configserverfirewall.com, 1 configurat.cf, 1 configurat.tk, 1 -configwizard.xyz, 1 confio.pt, 1 confirmit.ca, 1 confirmit.com.au, 1 @@ -35286,6 +34988,7 @@ confiscate.ga, 1 confiscation.tk, 1 confiwall.de, 1 +conflictcontrol.fi, 1 conflidentliving.cf, 1 confluent.cloud, 1 confluents.fr, 1 @@ -35339,10 +35042,7 @@ connect.net.pk, 1 connectaimpianti.it, 1 connectall.tk, 1 -connectapparelstore.com, 1 connectavid.com, 1 -connectcablenet.com, 1 -connectedbynexus.com, 1 connectedinvestors.com, 0 connectedmind.me, 1 connectfss.com, 1 @@ -35481,7 +35181,6 @@ constellatio.com, 1 constellationinternational.ml, 1 constellations.ga, 1 -constellatory.net, 1 constern.de, 1 consteval.org, 1 constexpr.org, 1 @@ -35509,6 +35208,7 @@ consul.io, 0 consuldat.com, 1 consulenteambientale.it, 1 +consulentedellavoro.it, 1 consulenza.pro, 1 consulimp.com.br, 1 consult-altius.co.uk, 1 @@ -35579,6 +35279,7 @@ contato.vip, 1 contecgmbh.com, 1 contempfleury.com, 1 +contemplativeeducation.org, 1 contemptevoke.com, 1 contenedoresdereciclaje.online, 1 contentcaching.com, 1 @@ -36045,7 +35746,6 @@ corpora.ga, 1 corpora.tk, 1 corporacionbi.com, 1 -corporate-advisory.com, 1 corporate-electric.ky, 1 corporate-university.org, 1 corporateclash.net, 1 @@ -36089,6 +35789,7 @@ correotemporal.org, 1 correspond.gq, 1 correspondent.ga, 1 +corretoramichelesalvino.com.br, 1 corride.at, 1 corridorsands.com.au, 1 corriere.roma.it, 1 @@ -36155,7 +35856,6 @@ cosasnuevas.tk, 1 cosasque.com, 1 coschedule.com, 1 -cosec.cn, 0 coshima.cf, 1 coshima.ga, 1 coshima.gq, 1 @@ -36291,7 +35991,6 @@ counseling4students.com, 1 counselingforstudents.com, 1 counsellingtime.co.uk, 1 -counsellingtime.com, 1 counsellink.net, 1 counsol.com, 1 counst.net, 1 @@ -36365,12 +36064,10 @@ coursehero.com, 1 coursehunter.net, 1 courselore.org, 1 -coursemology.sg, 1 courseorbit.com, 1 coursera.org, 1 coursesidekick.com, 1 courseware.nl, 1 -courseworkbank.info, 1 coursingweb.tk, 1 courstoujours.be, 1 court-colman-manor.com, 1 @@ -36481,7 +36178,7 @@ cowlitzwa.gov, 1 coworkanywhere.ch, 1 coworked.ai, 1 -coworking-luzern.ch, 1 +coworking-luzern.ch, 0 coworking-space.tk, 1 coxcapitalmanagement.com, 1 coxhealthfoundation.com, 1 @@ -36507,7 +36204,6 @@ cozumelisparadise.com, 1 cozyeggdesigns.com, 1 cozyfarms.in, 1 -cozylocale.com, 1 cozynergy.com, 1 cp-st-martin.be, 1 cpac.moe, 1 @@ -36526,7 +36222,6 @@ cpaspecialisters.ga, 1 cpasperdu.com, 1 cpbanq.com, 1 -cpbonline.co.za, 1 cpcbegin.tk, 1 cpcclarkesville.org, 1 cpchur.ch, 0 @@ -36560,7 +36255,6 @@ cpls.me, 1 cplsearch.com, 1 cpm-steuerberater.de, 1 -cpm-steuerberater.pro, 1 cpm-steuerberater.support, 1 cpme-industrial.com, 1 cpost.ca, 1 @@ -36580,7 +36274,6 @@ cpsq.fr, 1 cpstest.live, 1 cpstest.org, 1 -cptcreative.com, 1 cptoon.com, 1 cpts-tdm16.fr, 1 cptvl.de, 1 @@ -36645,12 +36338,11 @@ crackyhouse.com, 1 crackypedia.uk, 1 cradio.tk, 1 -cradleaccounting.com, 1 +cradleaccounting.com, 0 cradleofaviation.org, 1 cradletocareer.org.uk, 1 craft-beer.life, 1 craft-me-in.com, 1 -craft.eu.org, 1 craftadda.com, 1 craftandbuild.de, 1 craftbyhand.com, 1 @@ -36808,6 +36500,7 @@ crea3dsolutions.com, 1 creabis.de, 1 creacioneslri.com, 1 +creactivatecomfandi.com, 1 creactive-mjardevi.se, 1 creadoc.fr, 1 creadordenoticias.com, 1 @@ -36914,7 +36607,6 @@ creatorswave.com, 1 creattic.tk, 1 creatuasociacion.es, 1 -creature.social, 1 creayes.com, 1 crebita.de, 1 creche-noel.com, 1 @@ -36927,7 +36619,6 @@ credex.bg, 1 credfacilbeneficios.com.br, 1 crediblemeds.org, 1 -credify.tech, 1 credigo.io, 1 credimax.com.bh, 1 credin.com.tr, 1 @@ -36984,7 +36675,6 @@ creepystories.tk, 1 creer-mon-business-plan.fr, 1 creer-une-boutique-en-ligne.com, 1 -creermonsite-wp.com, 1 creerunblog.net, 1 crei.cat, 1 crej.com, 1 @@ -37058,7 +36748,7 @@ cricpa.com, 1 cricrocket.com, 1 crictechs.com, 1 -criena.com, 0 +criena.com, 1 criena.net, 1 crigler-najjar.fr, 1 criglernajjarday.com, 1 @@ -37070,6 +36760,7 @@ crimeamet.ml, 1 crimean-wines.tk, 1 crimeandwar.com, 1 +crimefreeliving.com, 1 crimeid.cc, 1 crimemuseum.org, 1 crimereports.com, 1 @@ -37183,13 +36874,11 @@ critterculture.com, 1 criu.org, 1 crivitz.gov, 1 -crix.ro, 1 crj.ovh, 1 crl-aus.com, 0 crl-autos.com, 1 crlna.com, 1 crm-dialog.com, 1 -crm-dialog.de, 1 crm-gestion-relation-client.com, 1 crm.onlime.ch, 0 crm114d.com, 1 @@ -37314,7 +37003,6 @@ crowdcloud.be, 1 crowdee.com, 1 crowdfiber.com, 1 -crowdfundingdream.com, 1 crowdpress.it, 1 crowdsim3d.com, 1 crowdstack.com, 1 @@ -37330,7 +37018,6 @@ crowncastles.co.uk, 1 crownchessclub.com, 1 crownedhijab.com, 1 -crownednetwork.com, 1 crownhotelharrogate.com, 1 crownmazda.ca, 1 crownmutual.com, 1 @@ -37358,15 +37045,12 @@ crspcrst.ca, 1 crsserviceogkloak.dk, 1 crstat.ru, 1 -crt.cloud, 1 crt.sh, 1 crt2014-2024review.gov, 1 crtclaims.com, 1 crtevents.co.uk, 1 -crti.dz, 1 crti.tech, 1 crtified.me, 1 -crucerosplus.com, 1 crucial.com, 1 crucial.de, 1 crucial.es, 1 @@ -37381,7 +37065,6 @@ crufad.org, 0 cruicky.co.uk, 1 cruicky.uk, 1 -cruisecheap.com, 1 cruisecontrolnovels.com, 1 cruisefashion.tk, 1 cruiselaw.de, 1 @@ -37402,10 +37085,8 @@ crunchybridge.com, 1 crusadernews.com, 1 cruscotto-legno.it, 1 -crushbarexam.com, 1 crushedice.uk, 1 crushingcaspars.de, 1 -crushthelsatexam.com, 1 crushxp.tk, 1 crustytoothpaste.net, 1 crute.me, 1 @@ -37438,7 +37119,6 @@ cryptifo.com, 1 cryptii.com, 0 cryptin-it.com, 1 -cryptitan.live, 1 cryptme.in, 1 crypto-ads.ga, 1 crypto-clix.xyz, 1 @@ -37474,7 +37154,6 @@ cryptoearnblog.xyz, 1 cryptofacilities.com, 1 cryptofan.org, 1 -cryptofinance.ai, 1 cryptofomo.capital, 1 cryptofox.nl, 1 cryptogaming.com, 1 @@ -37498,7 +37177,6 @@ cryptomining.mobi, 1 cryptomintecho.com, 1 cryptomkt.com, 1 -cryptomonnaies.io, 1 crypton.vercel.app, 1 crypton.xyz, 1 cryptonaire.ga, 1 @@ -37744,6 +37422,7 @@ ctafo.com, 0 ctauditors.gov, 1 ctbirding.org, 1 +ctc-g.com.sg, 1 ctcloud.ml, 1 ctcom-peru.com, 1 ctconp.org, 1 @@ -37965,7 +37644,6 @@ cumplegenial.com, 1 cumsext.me, 1 cumshots-video.ru, 1 -cumtd.com, 1 cumulogranite.fr, 1 cumulonembo.com, 1 cumulus.photo, 1 @@ -38086,7 +37764,6 @@ cursosemmaus.es, 1 cursosforex.com, 1 cursosingles.com, 1 -cursosprogramacion.online, 0 cursossena.co, 1 cursossilvania.com, 1 cursosypostgrados.com, 1 @@ -38142,14 +37819,13 @@ custommadegolfevents.com, 1 custompainted.ca, 1 custompapers.com, 1 -custompilotgifts.com, 1 customradio.tk, 1 customromlist.com, 1 customsandals.tk, 1 customsportsocks.com, 0 customtel.com.au, 1 customtshirtrequest.com, 0 -customwebsitesplus.com, 1 +customwebsitesplus.com, 0 customwritings.com, 1 customwritten.com, 1 custosd.com, 1 @@ -38200,10 +37876,8 @@ cuvva.us, 1 cuwcd.gov, 1 cuxpool.club, 1 -cuxpool.net, 1 cuyahogacommunitycollege.tk, 1 cuyahogacountyvotesoh.gov, 1 -cv-generator-fe-eu.herokuapp.com, 1 cv.fr, 1 cv.se, 1 cvalda.tk, 1 @@ -38479,7 +38153,6 @@ cybersecurity.gr, 1 cybersecurity.run, 1 cybersecuritybusiness.ai, 1 -cybersecuritychallenge.be, 0 cybersecuritydefence.co.uk, 1 cybersecurityincidentresponse.com, 1 cybersecuritysummit.com, 1 @@ -38688,7 +38361,6 @@ d0g.cc, 1 d0xq.net, 1 d11cb9nai2skf5.cloudfront.net, 1 -d166.net, 1 d1b2k93bahaw3s.cloudfront.net, 1 d1gital.org, 1 d1iwhdc6scsqsn.cloudfront.net, 1 @@ -38709,7 +38381,6 @@ d25x5pqe2jwu0a.cloudfront.net, 1 d2evs.net, 1 d2i06m35fc7thi.cloudfront.net, 1 -d2ph.com, 1 d2trade.tk, 1 d2woj1dt0tk6sn.cloudfront.net, 1 d36533.com, 1 @@ -38729,7 +38400,6 @@ d4fx.de, 1 d4insight.com, 1 d4wson.com, 1 -d4x.de, 1 d500world.tk, 1 d5197.co, 1 d58beu28.com, 1 @@ -38931,7 +38601,6 @@ dailyjigsawpuzzles.net, 1 dailykos.com, 1 dailykosbeta.com, 1 -dailyletter.tv, 1 dailylime.kr, 1 dailylviv.com, 1 dailymedicalinfo.com, 1 @@ -38979,7 +38648,7 @@ daiwareal.co.jp, 1 daja.ml, 1 dajaks.tk, 1 -dajaskincare.nl, 1 +dajaskincare.nl, 0 dajiale.org, 1 dajjal.org, 1 dajoose.com, 1 @@ -39108,7 +38777,6 @@ dan.me.uk, 1 dan124.com, 1 dana-hilliot.tk, 1 -danaandnathan.com, 1 danadameson.tk, 1 danads.com, 1 danalpay.com, 1 @@ -39404,7 +39072,6 @@ daramad-telegram.ga, 1 daravk.ch, 1 darbgaldi.lv, 1 -darbi.org, 1 darc-mak.de, 1 darc.pro, 1 darci.tech, 1 @@ -39589,7 +39256,6 @@ das-e-rezept-fuer-deutschland.de, 1 das-efx.tk, 1 das-forum24.de, 1 -das-kobers.de, 1 das-mediale-haus.de, 1 das-sommercamp.de, 1 dasabomobil.de, 1 @@ -39621,7 +39287,6 @@ dasinternetluegt.at, 1 daskirschhaus.com, 1 dasler.eu, 1 -dasmailarchiv.ch, 1 dasolindustrialpark.tk, 1 dastchin.live, 1 dastelefonbuch.de, 1 @@ -39710,6 +39375,7 @@ dataentry.top, 1 datafactory.co.za, 1 datafinland.com, 1 +datafloq.com, 1 datagir.ir, 0 datagrail.io, 1 datagrid.ga, 1 @@ -39720,7 +39386,6 @@ datahove.no, 1 datainvest.ai, 1 datainvest.pl, 1 -datajournalism.com, 1 datakick.org, 1 datakl.com, 1 datalife.gr, 1 @@ -39766,7 +39431,8 @@ datasourcenj.org, 1 dataspace-connector.io, 1 dataspace.pl, 1 -datastack.design, 1 +datastack.design, 0 +datastar.net, 1 datastream.org, 1 datastream.re, 0 datastudio.google.com, 1 @@ -39983,7 +39649,6 @@ davidinteriors.tk, 1 davidje13.com, 1 davidjktofan.com, 1 -davidjohnstoncfo.com, 0 davidjusto.com, 1 davidkatz.tk, 1 davidkeane.com, 0 @@ -40078,7 +39743,6 @@ davypropper.com, 1 dawaai.pk, 1 daware.io, 1 -dawdle.space, 1 dawg.eu, 1 dawgs.ga, 1 dawidpotocki.com, 1 @@ -40101,7 +39765,6 @@ dax-voirie.fr, 1 dax.do, 1 dax.guide, 1 -daxble.xyz, 1 daxenexpress.com, 1 daxisweb.net, 0 daxo.io, 1 @@ -40279,7 +39942,6 @@ dcparts.com.br, 1 dcpf.online, 1 dcpower.eu, 1 -dcpro.pt, 1 dcpudwa.gov, 1 dcrdev.com, 1 dcs.pp.ua, 1 @@ -40455,7 +40117,6 @@ deasserstadsloop.nl, 1 deasy-store.com, 1 death-notices.co.uk, 1 -death.ceo, 1 death.social, 1 deathberry.ddns.net, 1 deathbits.com, 1 @@ -40572,7 +40233,6 @@ decaturian.com, 1 decaturish.com, 0 deccanvalue.com, 1 -deceasedonline.com, 1 decentrala.org, 1 dechat.nl, 1 decherdtn.gov, 1 @@ -40979,7 +40639,6 @@ deliverability.guru, 1 delivereasy.tk, 1 delivery.it, 1 -delivr.com, 1 delker.com, 1 delkomrockdrill.com, 1 dellamorte.tk, 1 @@ -41164,7 +40823,6 @@ demxausa.com, 1 demyst.com, 1 den-fi.com, 1 -den.vc, 1 denabot.pw, 1 denachtegaalferwert.tk, 1 denaehula.com, 1 @@ -41221,7 +40879,6 @@ denisyakovlev.ga, 1 denisyakovlev.ml, 1 denisyan.ml, 1 -deniszczuk.pl, 0 denito.bg, 1 deniz.uk, 1 denizdesign.co.uk, 1 @@ -41305,6 +40962,7 @@ dentistalagoasanta.com.br, 1 dentisteliege.be, 1 dentistesdarveauetrioux.com, 1 +dentistree.in.ua, 1 dentistsgainesvillega.com, 1 dentistslilburnga.com, 1 dentoncounty.gov, 1 @@ -41319,7 +40977,6 @@ denugka-vezde.tk, 1 denunzieren.tk, 1 denver-design.cf, 1 -denver.show, 1 denver.tk, 1 denver7.com, 1 denverautoinsurancecompany.com, 0 @@ -41379,7 +41036,6 @@ dependonplus.com, 1 deperewi.gov, 1 dephoro.com, 1 -depici.com, 1 depicus.com, 1 depijp.tk, 1 depilazione.roma.it, 1 @@ -41394,7 +41050,6 @@ depoalabama.com, 1 depokcity.tk, 1 depolab.com, 1 -depolauncher.cf, 1 depone.net, 0 depoondemand.com, 1 depoone.com, 1 @@ -41432,7 +41087,6 @@ depuberteit.tk, 1 depuratore.it, 1 deqa-vet.de, 1 -deque.com, 1 der-bank-blog.de, 1 der-beste-schumpeter-vortrag.de, 1 der-elite.blog, 1 @@ -41539,7 +41193,6 @@ derwaldschrat.net, 1 derze.cloud, 1 des-hommes-et-des-clous.com, 1 -desacanggu.id, 1 desafiomovilidadsustentable.com, 1 desagaz.com, 1 desakatorock.tk, 1 @@ -41665,7 +41318,7 @@ desirememory.cf, 1 desirenet.ro, 1 desish.cf, 1 -desitorrents.tv, 1 +desitorrents.tv, 0 desivideos.tk, 1 desk-mode.com, 1 deskaservices.com, 0 @@ -41774,7 +41427,6 @@ detiks.cf, 1 detishki.ga, 1 detki.cf, 1 -detki24.ru, 0 detodo24.com, 1 detoekomstvanorganisaties.nl, 1 detoxtorehab.com, 1 @@ -41856,7 +41508,7 @@ devafterdark.com, 1 devagency.fr, 1 devahi.gq, 1 -devaland.com, 0 +devaland.com, 1 devalbert.com, 1 devalkincentives.nl, 1 devalps.eu, 1 @@ -41992,7 +41644,6 @@ devries.one, 1 devrijejansenist.nl, 1 devs-from.asia, 1 -devs4.com, 1 devsectools.com, 1 devsfield.com, 1 devsjournal.com, 1 @@ -42045,7 +41696,7 @@ dexlex.nl, 1 dexon.ws, 1 dexonservicedeskws.azurewebsites.net, 1 -dexraiden.finance, 1 +dexraiden.finance, 0 dexter.com.pl, 1 dextercd.com, 1 dextermarket.com, 1 @@ -42289,10 +41940,9 @@ dianaconta.pt, 1 dianadeluxe.net, 1 dianadrive.com, 1 -dianafaraj.de, 0 +dianafaraj.de, 1 dianakaarina.tk, 1 diananeves.pt, 0 -dianapps.com, 1 dianaqueeny.tk, 1 dianas.sk, 1 dianaundaaron.de, 1 @@ -42342,7 +41992,6 @@ dibacode.com, 1 dibal.ua, 1 dibam.cl, 1 -dibiphp.com, 1 dibo-ambasador.pl, 1 dic.ae, 1 dicaprio.tk, 1 @@ -42384,7 +42033,6 @@ dicoado.org, 1 dicoeste.com, 1 dicomed.tk, 1 -dicomp.com.br, 1 dicomsoftware.com, 1 diconium.biz, 1 diconium.com, 0 @@ -42492,6 +42140,7 @@ dierenpagina.tk, 1 dierenrijk.nl, 0 dierenschilderijen.tk, 1 +dierenwiki.nl, 1 dieschnuckelchen.myasustor.com, 1 diesdasananas.spdns.de, 1 dieselanimals.lt, 1 @@ -42528,7 +42177,7 @@ dietolog.gq, 1 dietpi.com, 1 dietrich-bonhoeffer.net, 1 -dietrich.cx, 1 +dietrich.cx, 0 dieumfrage.com, 1 dievozodis.lt, 1 dievturi.lv, 1 @@ -42587,7 +42236,6 @@ digig.es, 1 digigami.au, 1 digiischolarships.com, 1 -digilabs.fr, 1 digiland.tk, 1 digilicious.com, 1 digilock.com, 0 @@ -42658,7 +42306,6 @@ digitalagencynetwork.com, 1 digitalakatsuki.com, 1 digitalalektioner.se, 1 -digitalandsocialmediaacademy.com, 1 digitalaplus.com, 1 digitalarchitecture.com, 1 digitalasitshouldbe.com, 1 @@ -42704,7 +42351,7 @@ digitaldesk.net, 1 digitaldisaster.tk, 1 digitaldruck.info, 1 -digitale-afvalscheiding.nl, 1 +digitale-afvalscheiding.nl, 0 digitale-ausleihe.de, 1 digitale-bibliothek.tk, 1 digitale-gesellschaft.ch, 1 @@ -42721,7 +42368,6 @@ digitalezukunft-hagen.de, 1 digitalezukunft.nrw, 1 digitalfoodbook.com, 1 -digitalforensicsdubai.com, 1 digitalfortress.tech, 1 digitalfoster.org, 0 digitalfury.co.uk, 1 @@ -42811,7 +42457,6 @@ digitalvalue.es, 1 digitalwasteland.net, 0 digitalworkplaceforum.com.br, 1 -digitalzenworks.com, 1 digitalzylinder-shop.com, 1 digite.com, 1 digitec.ch, 1 @@ -42824,7 +42469,6 @@ digithub.tk, 1 digitizer.co.il, 1 digitkon.com, 1 -digitogy.com, 1 digitoimistopipeline.fi, 1 digitoucan.com, 1 digitra.com, 1 @@ -42842,7 +42486,7 @@ digpubprd.org, 1 digpubqa.org, 1 digsys.bg, 1 -digwiz.biz, 0 +digwiz.biz, 1 digwp.com, 1 dih-technology.com, 1 dih-technology.info, 1 @@ -42982,6 +42626,7 @@ dinos-mag.tk, 1 dinotv.at, 1 dintrafic.net, 1 +diobrasperu.com, 1 diocesedeosorio.org, 1 diodo.me, 1 dioesfoto.com, 1 @@ -43002,8 +42647,6 @@ dioxido.com.ar, 1 dioxilife.com, 1 diozoid.com, 1 -dip.digital, 1 -dipakgajjar.com, 1 dipalma.me, 1 dipanopaulista.com.br, 1 dipanshuparashar.ml, 1 @@ -43139,7 +42782,6 @@ disabuse.cf, 1 disadattamentolavorativo.it, 1 disain.tk, 1 -disappearingidioms.com, 1 disassemble.website, 1 disasterrific.tk, 1 disastertalkest.ga, 1 @@ -43220,7 +42862,6 @@ discoveryballoon.org, 1 discoverybehavioralhealth.com, 1 discoveryottawa.ca, 1 -discoverypublisher.com, 1 discpersonalitytesting.com, 1 discrede.tk, 1 discrypt.ca, 1 @@ -43265,7 +42906,6 @@ disinfestazione-roma.org, 1 disinfestazione.brescia.it, 1 disinfestazione.genova.it, 1 -disinfestazione.milano.it, 1 disinfestazione.napoli.it, 1 disinfestazione.roma.it, 1 disinfestazione.savona.it, 1 @@ -43289,7 +42929,6 @@ disinfestazioni.firenze.it, 1 disinfestazioni.genova.it, 1 disinfestazioni.gorizia.it, 1 -disinfestazioni.it, 1 disinfestazioni.milano.it, 1 disinfestazioni.modena.it, 1 disinfestazioni.net, 1 @@ -43344,7 +42983,6 @@ disparada.com.br, 1 dispartilaw.com, 1 dispatched.tk, 1 -dispensarygta.com, 1 displaycalibration.de, 1 displaynote.com, 1 displayrd.com, 1 @@ -43433,7 +43071,6 @@ dittvertshus.no, 1 ditxse6.com, 1 ditxse6.org, 1 -ditzingen.de, 1 div.energy, 1 diva-app.de, 1 divacresent.tk, 1 @@ -43464,7 +43101,6 @@ diversity-otherwise.tk, 1 diversityflags.com.au, 1 diversityflags.nz, 1 -diversitywatch.asia, 0 diversitywatch.co.nz, 1 diversovariable.tk, 1 diversual.com, 1 @@ -43595,6 +43231,7 @@ djanneli.tk, 1 djarman.tk, 1 djattack.com, 1 +djav.org, 1 djawabna.ga, 1 djax.tk, 1 djazair.ml, 1 @@ -43725,7 +43362,6 @@ djsp.it, 1 djsp.uk, 1 djsp.work, 1 -djspacies.com, 1 djswebserver.com, 1 djt-vom-chausseehaus.de, 1 djtavo.tk, 1 @@ -43813,12 +43449,9 @@ dlf.exchange, 1 dlford.io, 1 dlfsymposium.nl, 1 -dline.co.in, 1 dlitz.net, 1 dll4free.com, 1 dlld.biz, 1 -dlld.com, 1 -dlld.org, 1 dlld.us, 1 dlmarket.jp, 1 dlmeto.com, 1 @@ -43921,7 +43554,6 @@ dmitrysnotes.ru, 1 dmitrysyrov.com, 1 dmix.ca, 1 -dmkuchnie.pl, 1 dmlaser.nl, 1 dmlive.wiki, 1 dmma.be, 1 @@ -43933,12 +43565,7 @@ dmoz.v.ua, 1 dmparish.com, 1 dmr446.fr, 1 -dmrhub.cloud, 1 -dmrhub.net, 1 -dmrhub.network, 1 -dmrhub.org, 1 dms-technik.de, 1 -dmsbg.com, 1 dmsgovernance.com, 1 dmshynk.com, 1 dmskaspr.com, 1 @@ -43999,7 +43626,6 @@ dndblog.tk, 1 dnddobbelstenen.nl, 1 dndesturia.uk, 1 -dndinsulation.com.au, 1 dndtools.net, 1 dnel.me, 1 dnepr-news.ru, 1 @@ -44008,7 +43634,6 @@ dnepropetrovck.tk, 1 dneprovski.tk, 1 dnestr.tk, 1 -dnevnichok.club, 1 dnfc.rocks, 1 dnfsb.gov, 1 dngrexplorer.cf, 1 @@ -44059,6 +43684,7 @@ dnsnox.com, 1 dnspod.ml, 1 dnsrate.com, 1 +dnsrevolve.com, 1 dnsscience.org, 1 dnssec.au, 1 dnssecandipv6.se, 1 @@ -44112,8 +43738,6 @@ dobrorok.cz, 1 dobrynyastyle.ru, 1 dobryprezident.sk, 1 -dobskateshop.com, 1 -dobusinessonline.com, 1 doc-baza.tk, 1 doc-reader-guide.com, 1 doc-sign.fr, 1 @@ -44176,7 +43800,6 @@ doctoblog.fr, 1 doctorapuestas.pe, 1 doctorapuestasargentina.com, 1 -doctorapuestaschile.com, 1 doctorbini.com, 1 doctorcalefon.com, 1 doctordabbah.com, 1 @@ -44200,6 +43823,7 @@ doctorsarfarazdo.ga, 1 doctorsatdoor.com, 1 doctorshealthfund.com.au, 1 +doctorsinternet.com, 1 doctorswithoutborders.org, 1 doctorwho.cz, 1 doctosofi.mx, 1 @@ -44344,7 +43968,6 @@ doh.sb, 1 dohertyconsulting.tk, 1 dohmen.io, 1 -dohmencapital.com, 1 doi.org, 1 doihavetoputonpants.com, 1 doineedanmdm.com, 1 @@ -44400,7 +44023,6 @@ dolg.gq, 1 dolg.ml, 1 dolg.tk, 1 -dolgizaim.by, 1 dolgopolova.ga, 1 dolgorukovo.cf, 1 dolice.net, 1 @@ -44420,7 +44042,6 @@ dollestieren.tk, 1 dolliesmaker.tk, 1 dolloponline.com, 0 -dollware.net, 1 dolly.ga, 1 dollylox.tk, 1 dollz-world.tk, 1 @@ -44479,7 +44100,6 @@ domainforfree.gq, 1 domainhostingcompany.tk, 1 domainics.ml, 1 -domainjava.com, 1 domainlions.com, 1 domainmaster.cz, 1 domainmonitor.net, 1 @@ -44498,7 +44118,6 @@ domainservice.cf, 1 domainsetup.email, 1 domainsilk.com, 1 -domainspeicher.one, 1 domaintm.in, 1 domainvoider.cf, 1 domakidis.com, 1 @@ -44534,7 +44153,6 @@ domialt.de, 1 domian.cz, 1 dominanta-law.com, 1 -dominateyourmarket247.com, 1 dominationgame.co.uk, 1 dominctheroofguy.com, 1 dominicana-lux.cf, 1 @@ -44654,7 +44272,6 @@ donateforcharity.com, 1 donatellapratas.com.br, 1 donateway.com, 1 -donationintegration.ru, 1 donazione.it, 1 donburi.click, 1 doncastermoneyman.com, 1 @@ -44703,7 +44320,6 @@ donnapepe.tk, 1 donnapro.com, 1 donnellymech.com, 1 -donnerhollenconstruction.com, 1 donnerwetter.tk, 1 donngle.com, 1 donnington.co, 1 @@ -44960,6 +44576,7 @@ dotrox.net, 1 dotsandarrows.eu, 1 dotsbuy.com, 1 +dotshule.ug, 1 dotsiam.co.th, 1 dotsiam.com, 1 dotsiam.in.th, 1 @@ -44990,7 +44607,7 @@ doubledees.co.ke, 1 doubledranch.tk, 1 doublefun.net, 1 -doubleh2go.co.nz, 1 +doubleh2go.co.nz, 0 doublemars.com, 1 doubleness.gq, 1 doublepotion.com, 1 @@ -45038,7 +44655,6 @@ doujinspot.com, 1 doukhobor.org, 1 dourowineselection.pt, 1 -doutorapostas.com, 1 doutorapostas.pt, 1 douyin.com, 1 douyinec.com, 1 @@ -45164,7 +44780,6 @@ dpc.ae, 1 dpclive.com, 1 dpcp.fr, 1 -dpcs.xyz, 0 dpcyourhome.com, 1 dpd.com.pl, 1 dpecuador.com, 1 @@ -45259,13 +44874,11 @@ dragon-craft.tk, 1 dragon-team.tk, 1 dragon.nu, 1 -dragon26.com, 1 dragon95.com, 1 dragonballzfigures.com, 1 dragonbike.by, 1 dragonboatfestival.tk, 1 dragonbox.de, 1 -dragoncave.me, 1 dragoncityhack.tips, 1 dragonclicker.ml, 1 dragonesymazmorras.tk, 1 @@ -45372,7 +44985,6 @@ drbanerjeecures.in, 1 drbarnabus.com, 0 drbet.it, 1 -drbinsusclinic.com, 1 drblog.tk, 1 drbonine.com, 1 drbooks-accounting.com, 1 @@ -45381,7 +44993,6 @@ drbrys.com, 1 drcardiofit.com, 1 drcbxlpundw8t.cloudfront.net, 1 -drchapin.com, 1 drchrislivingston.com, 1 drchrono.com, 0 drclark.pro, 1 @@ -45389,7 +45000,6 @@ drcommodore.it, 1 drcorderocirujanoplastico.com, 1 drcroof.com, 1 -drct.aero, 1 drdach.pl, 1 drdamirplasticsurgeon.com, 1 drdb.gr, 1 @@ -45424,7 +45034,6 @@ dreamcometruevacations.com, 1 dreamconnect.org, 1 dreamcrack.tk, 1 -dreamcraft.su, 1 dreamdivers.com, 1 dreamelegant.ml, 1 dreamersgiftshopec.com, 1 @@ -45450,9 +45059,7 @@ dreamofice.cn, 1 dreamoza.com, 1 dreampages.tk, 1 -dreampointech.com, 1 dreamqueen.tk, 1 -dreamrae.net, 1 dreamreality.tk, 1 dreams-2-reality.com, 1 dreamsea.tk, 1 @@ -45470,7 +45077,6 @@ dreamsystems.tk, 1 dreamtapestry.ga, 1 dreamweavers.live, 1 -dreamwork.financial, 1 dreamworldstudio.tk, 1 dreamy-flat-lyon.fr, 1 dreamytheatre.com, 1 @@ -45628,12 +45234,10 @@ drives.work, 1 drivestarfreight.com, 1 drivetonortheast.com, 1 -driveyouradblockcounterup.com, 1 driving-lessons.co.uk, 1 drivingacademy.tk, 1 drivingcalculator.ga, 1 drivinginstruction.tk, 1 -drivingschoolnearmelbourne.com.au, 1 drivio.co.uk, 1 drivio.uk, 1 drivvie.com, 1 @@ -45682,7 +45286,6 @@ drmtransit.com, 1 drmvl.org, 1 drnatura.fr, 1 -drnjewels.com, 1 drobina.top, 1 drobny-app.work, 1 drogaleste.com.br, 1 @@ -45762,7 +45365,6 @@ drpetervoigt.de, 1 drpure.top, 1 drpvtipc.net, 1 -drradin.com, 1 drricardofretes.com, 1 drros.ru, 1 drrr.chat, 1 @@ -46013,7 +45615,6 @@ du.co, 1 dual-aspect.com, 1 dual-universe.ga, 1 -dual.cat, 1 dual.pw, 0 dualascent.com, 1 dualbix.com, 1 @@ -46101,7 +45702,6 @@ duckrain.com, 1 duckside.tk, 1 ducksify.com, 1 -ducksoft.fi, 1 duckstad.net, 1 duckyubuntu.com, 1 duckyubuntu.tk, 1 @@ -46148,6 +45748,7 @@ duhs.edu.pk, 1 duhurensohn.de, 1 duhy.sk, 1 +duijf.io, 1 duiker101.tk, 1 duitse-herders.tk, 1 duizhangs.tk, 1 @@ -46216,6 +45817,7 @@ dunescorporation.tk, 1 dungbui.co, 0 dungbui.net, 1 +dungchata.com, 1 dungenesskids.com, 1 dungeon-bbs.de, 1 dungeoncity.com, 1 @@ -46306,7 +45908,7 @@ duskraven.tk, 1 dusmomente.com, 1 dusnan.com, 1 -dusonchet-construction.ch, 1 +dusonchet-construction.ch, 0 dust.bio, 1 dust.tk, 1 dust4you.tk, 1 @@ -46372,7 +45974,6 @@ duval.info, 1 duval.li, 1 duval.ovh, 1 -duval.paris, 1 duval.pm, 1 duval.re, 1 duvalelections.gov, 1 @@ -46562,7 +46163,6 @@ dynatos-cloud.com, 1 dyndns.au, 1 dyneco.io, 1 -dynet.ru, 1 dynn.be, 0 dyno.com, 1 dynorphin.com, 1 @@ -46764,6 +46364,7 @@ e-knitting.tk, 1 e-knitwear.tk, 1 e-kultura.tk, 1 +e-lambre.com, 1 e-lamp.tk, 1 e-latvenergo.lv, 1 e-launch.nl, 1 @@ -46797,7 +46398,6 @@ e-pi-log.at, 1 e-placement.tk, 1 e-planshet.tk, 1 -e-pokupki.eu, 1 e-polygraphy.tk, 1 e-privat.info, 1 e-promotion.tk, 1 @@ -46917,7 +46517,6 @@ eadea.net, 1 eadmt.com, 1 eaganmn.gov, 1 -eagar.com.au, 1 eagenda.com.br, 1 eagfinance.cz, 1 eagle-yard.de, 1 @@ -46929,14 +46528,12 @@ eaglecustomapparel.com, 0 eagleeye.news, 1 eagleeyeroof.com, 1 -eagleeyetrip.ru, 1 eaglefireid.gov, 1 eaglegrove.gov, 1 eaglehaslended.com, 1 eaglelakefl.gov, 1 eagleled.us, 1 eaglemoe.com, 1 -eaglemtn.com, 0 eaglenusa.my.id, 1 eaglepasstx.gov, 1 eagleplanners.agency, 1 @@ -47030,7 +46627,6 @@ eartheld.tk, 1 earthjustice.org, 1 earthlink.net, 1 -earthlinkrealestate.ae, 1 earthpixz.com, 1 earthpoints.org, 1 earthquake.gov, 1 @@ -47050,7 +46646,6 @@ eashwar.com, 1 easiest-way.de, 1 easlerlaw.com, 1 -easol.com, 1 east-front-miniatures.com, 0 east-line.su, 1 east-westlogistics.com, 1 @@ -47131,7 +46726,6 @@ easy-immo.org, 1 easy-katka.ga, 1 easy-pornvideos.com, 1 -easy-rpg.org, 1 easy2bathe.co.uk, 1 easyaccounting.asia, 1 easyadsnbanners.tk, 0 @@ -47216,6 +46810,7 @@ easysolution.eu, 1 easyspace-storage.com, 1 easysubmit.tk, 1 +easyswap.me, 1 easytamil.tk, 1 easytec-info.de, 1 easytestonline.tk, 1 @@ -47348,7 +46943,7 @@ eblandscaping.com.au, 1 eblesoft.org, 1 eblog.cf, 1 -eblog.ink, 0 +eblog.ink, 1 ebmeester.nl, 1 ebola-hosting.cz, 1 ebolacharts.ga, 1 @@ -47426,7 +47021,6 @@ eccoholiday.com, 1 eccoilmenu.it, 1 eccologic.net, 1 -eccoplastic.com, 1 eccouncil.org, 1 eccu.edu, 1 ecdn.cz, 1 @@ -47521,7 +47115,6 @@ eclipsestatus.io, 1 eclixo.com, 1 ecmx.eu, 1 -ecn.ir, 1 ecnetworker.com, 1 eco-derattizzazione.it, 1 eco-gripfloor.com, 1 @@ -47553,6 +47146,7 @@ ecodepur.fr, 1 ecodesign-labo.jp, 1 ecodesigns.nl, 1 +ecodrive.in.ua, 1 ecoelectricsandiego.com, 1 ecoeuropa.cf, 1 ecofinancing.com, 1 @@ -47568,7 +47162,6 @@ ecoheatcool.co.uk, 1 ecohimdv.tk, 1 ecohostingservices.uk, 1 -ecohustler.com, 1 ecoindia.tk, 1 ecojob.ga, 1 ecolala.my, 1 @@ -47592,7 +47185,6 @@ ecoles-conde.com, 0 ecolesingelijn.be, 1 ecolint.ch, 1 -ecolodgedebosuil.nl, 1 ecologeek.tk, 1 ecologiapolitica.info, 1 ecologic-france.com, 1 @@ -47614,7 +47206,6 @@ ecommercenews.in, 1 ecommercenews.uk, 1 ecommerceuropa.eu, 1 -ecomovers.com, 1 ecompen.co.za, 1 ecomsight.com, 0 ecomuuu.com, 1 @@ -47672,7 +47263,6 @@ ecosystem.atlassian.net, 1 ecosystemmanager-uat1.azurewebsites.net, 1 ecotecelevator.com, 1 -ecotestantigentest.com.au, 1 ecotone-tottori.com, 1 ecotrade-disinfestazioni.it, 1 ecotsa.com, 1 @@ -47753,11 +47343,9 @@ edboothandassociates.com, 1 edc-msp.com, 1 edcdn.net, 1 -edd-miles.com, 1 eddesign.ch, 1 eddi.org.au, 1 eddie.website, 1 -eddmil.es, 1 eddns.de, 1 eddns.eu, 1 eddokloosterman.com, 1 @@ -47872,7 +47460,6 @@ edited.nl, 1 edited.pl, 1 editflow.org, 1 -edith-thellmann.com, 1 edithlouw.tk, 1 edition-sonblom.de, 0 editions-campanile.fr, 1 @@ -47900,7 +47487,6 @@ edmundcelis.com, 1 edmundo.ro, 1 edmundy.tk, 1 -edmwaves.org, 1 edocr.com, 1 edok.com.br, 1 edopomoga.gov.ua, 1 @@ -48021,7 +47607,6 @@ edunoor.tk, 1 eduoneschool.tk, 1 edupay.co.at, 1 -edupesa.com, 1 eduproject.tk, 1 eduproquality.tk, 1 eduqfix.com, 1 @@ -48108,14 +47693,12 @@ eenfotowaard.nl, 1 eenmailsturen.nl, 0 eentweevijf.be, 1 -eenvren.com, 1 eenvxing.com, 1 eenzwolle.nl, 1 eeqj.com, 1 eer.cz, 1 eer.io, 1 eeri.org, 1 -eerieglowgames.com, 1 eerlijkland.com, 1 eerlijkland.eu, 1 eerlijkland.nl, 1 @@ -48233,13 +47816,13 @@ eg-secure.co.jp, 0 eg22.com, 1 eg7.co.jp, 1 -egab.co, 1 +egab.co, 0 egabroaventuras.tk, 1 egais.ml, 1 egal24.de, 1 egarden.it, 1 egb.at, 0 -egbc.ca, 0 +egbc.ca, 1 egbert.net, 1 egbertsen.tk, 1 egc.ink, 1 @@ -48290,7 +47873,6 @@ egipet-tiz.tk, 1 egiptwakacje.tk, 1 egitim.academy, 1 -egitimpusulam.com, 1 egito.pl, 1 egittophilia.tk, 1 eglantier.eu, 1 @@ -48313,7 +47895,6 @@ egoroskope.tk, 1 egos-online.com, 1 egoscolumn.tk, 1 -egotickets.com, 1 egotripproductions.org, 1 egoutierrpaquette.ca, 1 egov.digital, 1 @@ -48369,7 +47950,6 @@ ehlersdanlos.dk, 1 ehlersdanlos.tk, 1 ehliyetsinavsorulari.org, 1 -ehmsen.nu, 1 ehmtheblueline.com, 1 ehne.de, 1 ehome.im, 1 @@ -48479,6 +48059,7 @@ eirik.eu, 1 eiriksdottir.is, 1 eirikyrolae.tk, 1 +eis.org.uk, 1 eisaev.ru, 1 eisblau.org, 1 eisei-iinkai.com, 1 @@ -48588,9 +48169,8 @@ ekophone.bg, 1 ekoport.ru, 1 ekosaltis.lt, 1 -ekosf.ru, 1 +ekospajzka.cz, 1 ekostecki.de, 1 -ekourbanisterna.se, 0 ekowibowo.com, 1 ekpj.jp, 1 ekranoplan-lun.ru, 1 @@ -48664,6 +48244,7 @@ elbiaadmin.sk, 1 elbiahosting.sk, 1 elbir.tk, 1 +elblogdeldev.es, 1 elblogdeldinero.com, 1 elblogdezoe.es, 1 elblok.com, 1 @@ -48681,14 +48262,12 @@ elcarajo.tk, 1 elchamandelaprosperidad.org, 1 elchanchoganador.com, 1 -elcheapoflags.com, 1 elcient.com, 1 elcigaro.bg, 1 elcin.tk, 1 elcom.au, 1 elcom.com.au, 1 elcom.net.au, 1 -elcomcloud.com, 1 elcomcms.au, 1 elcomcms.com, 1 elcomcms.com.au, 1 @@ -48730,8 +48309,6 @@ eldhestar.is, 1 eldiario.net, 1 eldiedesign.com, 1 -eldin.ba, 1 -eldinturkic.com, 1 eldisagjapi.de, 1 eldorado.aero, 1 eldoradocylinders.com, 1 @@ -49001,13 +48578,11 @@ eleonardo.tk, 1 eleonora.gay, 1 eleonoraanzini.tk, 1 -eleonoramazzola.com, 1 eleonorapapallo.tk, 1 eleonrp.tk, 1 eleoonline.net, 1 elephant-orchestra.com, 1 elephant-orchestra.cz, 1 -elephantartonline.com, 1 elephantbasslab.tk, 1 elephantia.cf, 1 elephantorchestra.cz, 1 @@ -49122,7 +48697,7 @@ eliminations.tk, 1 elimitecreamforsale.ga, 1 elimperiolatino.com, 1 -elina.pp.ua, 1 +elina.pp.ua, 0 elinaflower.com, 1 elinformatico.tk, 1 elink.io, 1 @@ -49217,13 +48792,11 @@ elitexxx.com, 1 elithus.se, 1 elitmedopt.ru, 1 -elivenet.com, 1 elixi.re, 1 elixir.bzh, 1 elixirfactory.io, 1 elizabethcitync.gov, 1 elizabethefle.com, 1 -elizabethgeren.com, 1 elizabethgreenfield.com, 1 elizabethhospeech.com, 1 elizabethrominski.com, 1 @@ -49356,6 +48929,7 @@ elpcnc.com, 1 elpellejodelabreva.tk, 1 elperdigon.tk, 1 +elperfil.pe, 1 elperiodicodelaenergia.com, 1 elpincho.tk, 1 elplugins.xyz, 1 @@ -49409,7 +48983,6 @@ eltjon.duckdns.org, 1 eltlaw.com, 1 elto.ch, 0 -eltohsurgery.com.sg, 0 eltonpastilha.me, 1 eltormo.tk, 1 eltoroweakly.com, 1 @@ -49491,7 +49064,7 @@ emailmasker.nl, 1 emailmebutton.com, 1 emailmeform.com, 1 -emailoctopus.com, 1 +emailoctopus.com, 0 emailprivacytester.com, 1 emailprocessorpro.gq, 1 emailpursuits.com, 1 @@ -49571,8 +49144,6 @@ emdrtherapytoronto.com, 1 emdrupholm.dk, 1 emdvcorasia.com, 1 -emdynint.io, 1 -emed.com, 0 emedpractice.com, 1 emeetattd.ddns.net, 1 emekegitimakademi.com, 1 @@ -49611,7 +49182,6 @@ emet.hu, 1 emetodebok.no, 1 emex.ro, 1 -emfutur.com, 1 emi.im, 1 emielraaijmakers.nl, 1 emigrantes.tk, 1 @@ -49693,7 +49263,6 @@ emmawatsonking.tk, 1 emmawatsononline.tk, 1 emmc.eu, 1 -emmdy.com, 0 emmedicom.ml, 1 emmedicom.tk, 1 emmepole.tk, 1 @@ -49873,6 +49442,7 @@ emyself.org, 1 emystars.tk, 1 emz.im, 1 +emzi0767.com, 1 emzy.de, 1 en-develop.fr, 1 en-je.fr, 1 @@ -49903,7 +49473,6 @@ encanroy.ca, 1 encanroy.com, 1 encanstanne.ca, 1 -encantowater.com, 0 encd.life, 1 ence.es, 1 encenna.com.br, 0 @@ -49922,7 +49491,6 @@ encontreumagp.com, 1 encontro.online, 1 encontroespiritadeinverno.com.br, 1 -encore.tech, 1 encoro.org, 1 encotentin.fr, 1 encouragemarketing.com, 1 @@ -49960,7 +49528,7 @@ endeavourbiz.com, 1 endee.de, 1 endeksa.com, 1 -endener.com, 1 +endener.com, 0 ender.co.at, 1 ender.fr, 1 ender.moe, 1 @@ -50001,6 +49569,7 @@ endsoftpatents.org, 1 endsoftwarepatents.org, 1 endspamwith.us, 1 +endstation-chaos.de, 1 enduranceseries.ca, 1 enduro-center.pt, 1 enduroxtrem.tk, 1 @@ -50157,6 +49726,7 @@ engardelinux.org, 1 engaugetools.com, 1 engbers.com, 1 +engehall.com, 1 engelandautohuur.nl, 1 engeldasein.at, 1 engeldasein.com, 1 @@ -50206,6 +49776,7 @@ englandlearn.com, 0 englandschool.tk, 1 englesh.org, 1 +english-community.com, 1 english-to-russian-translation.tk, 1 english-training.tk, 1 english.events, 1 @@ -50234,6 +49805,7 @@ engrama.tk, 1 engrepair.com, 1 engrish.ml, 1 +engrteam.com, 1 engso-education.eu, 1 engso.com, 1 engso.eu, 1 @@ -50305,7 +49877,7 @@ enolalingerie.com, 1 enomada.net, 1 enonvalleyboropa.gov, 1 -enoou.com, 1 +enoou.com, 0 enorekcah.com, 1 enosiseurotrade.com, 1 enosistrade.com, 1 @@ -50381,10 +49953,8 @@ entabe.jp, 1 entactogens.com, 1 entasyonline.com, 1 -entbastel.de, 1 entdeckertouren.com, 1 enteente.com, 1 -entegrations.io, 1 entelodont-laboratory.cz, 1 ententaxi.de, 1 enter.co, 1 @@ -50509,7 +50079,7 @@ envelopegroup.com, 1 enveloppen.nl, 1 enveloppenopmaat.nl, 1 -enverid.com, 1 +enverid.com, 0 envescent.com, 1 envia.com.gt, 1 enviam.de, 1 @@ -50539,6 +50109,7 @@ environmental-colleges.com, 1 environmentaljustice.gov, 1 envirosell.com, 1 +envirotecmagazine.com, 1 envirotecstructures.com.au, 1 envirotivity.com, 1 envirowastemanagement.com, 1 @@ -50574,7 +50145,6 @@ eod.su, 1 eofster.com, 1 eogresources.com, 1 -eohima.org, 0 eol-team.tk, 1 eola.co, 1 eolasinnovation.com, 1 @@ -50698,7 +50268,6 @@ epobocka.com, 1 epoch-film.ml, 1 epochcg.pt, 1 -epochconcepts.com, 0 epochstream.com, 1 epolitiker.com, 1 epos.az, 1 @@ -50758,7 +50327,6 @@ eqtpartners.com, 1 eqtventures.com, 1 equalifica.com.br, 1 -equalityhealthcareservices.com, 1 equalitync.org, 1 equalone.co.jp, 1 equals.com.br, 1 @@ -50961,7 +50529,6 @@ eritonetwork.com, 1 eritopremium.com, 1 erium.fr, 1 -erkeklersoruyor.com, 1 erkemeij.com, 1 erkenntniswen.de, 1 erkiss.club, 1 @@ -51071,7 +50638,6 @@ erudicia.uk, 1 erudikum.cz, 1 erudio-usluge.hr, 1 -eruisreads.com, 1 ervaarjapan.nl, 1 ervirmaison.tk, 1 erwanlepape.com, 1 @@ -51189,7 +50755,6 @@ escrocratie.tk, 1 escrowalliance.com, 1 escspain.tk, 1 -escuelabiblica.com, 1 escuelacaninalatejera.es, 1 escueladego.tk, 1 escueladelsabor.com, 1 @@ -51265,6 +50830,7 @@ eskortmoscow.com, 0 eskritt.ca, 1 eskuvoivideohd.hu, 1 +eskypartners.com, 1 esl.org, 1 eslamahmed.tk, 1 esleme.com, 1 @@ -51304,7 +50870,6 @@ espabox.com, 1 espace-caen.fr, 0 espace-gestion.fr, 1 -espace-habitat-francais.fr, 1 espace-orenda.ch, 1 espace-vet.fr, 1 espace.network, 1 @@ -51328,7 +50893,6 @@ espanol.search.yahoo.com, 0 espanyoldebarna.tk, 1 espass.gq, 1 -espbimbel.com, 1 espci.fr, 1 especes.org, 1 especializasaudecursos.com.br, 1 @@ -51743,7 +51307,7 @@ eu-stellenangebot.de, 1 eu.ax, 1 eu4ua.org, 1 -euaaaio.ru, 1 +euaaaio.ru, 0 euc.world, 1 euchance.hu, 1 euchre.us, 1 @@ -51858,7 +51422,6 @@ eurodanceperu.tk, 1 eurodentaire.com, 1 eurodesk.eu, 1 -eurodontic.co.uk, 0 euroenergy.tk, 1 euroestetica.ec, 1 euroevent.nl, 1 @@ -51922,6 +51485,7 @@ europeanspring.net, 1 europeanstudies-chemnitz.de, 1 europeantransmissions.com, 1 +europeantransportmanagement.com, 1 europedigital.cloud, 1 europeluxuryweddings.com, 1 europeonline.tk, 1 @@ -51996,7 +51560,6 @@ evaisanta-mariaalmudever.tk, 1 evaisanta.tk, 1 evaks.az, 1 -evakuator-kharkov.kh.ua, 1 evakuator-odessa.com.ua, 1 evakuator-tut.by, 1 evakuator.ltd, 1 @@ -52019,7 +51582,7 @@ evanescencenorge.tk, 1 evanescenceturkey.tk, 1 evanfiddes.com, 1 -evang.at, 1 +evang.at, 0 evangelietuin.tk, 1 evangelionmagi.tk, 1 evangelise.asia, 1 @@ -52063,10 +51626,8 @@ evelienuitvaartverzorging.nl, 1 evelienzorgt.nl, 1 evelin.tk, 1 -even44.no, 1 evenbijproaten.online, 1 evendesign.gq, 1 -evenflowph.ca, 1 evenimenteromania.tk, 1 eveningstar.tk, 1 eveningtaxservices.com, 1 @@ -52159,7 +51720,6 @@ evercred.com, 1 everdivemarine.com, 1 everestbankltd.com, 1 -everestplus.io, 1 everettduiattorneys.com, 1 everettsautorepair.com, 0 everettsbirthdayparty.com, 1 @@ -52198,7 +51758,7 @@ eversightwealth.com, 1 everstage.com, 1 evertonarentwe.com, 1 -evertradeelectronics.com, 1 +evertradeelectronics.com, 0 evertrust.fr, 1 evertry.co, 1 evertz.com, 1 @@ -52228,7 +51788,6 @@ everykidoutdoors.gov, 1 everymail.me, 1 everyoneadmins.tk, 1 -everyoneeats.com, 1 everysaving.ae, 1 everysaving.ca, 1 everysaving.co.uk, 1 @@ -52254,7 +51813,6 @@ eveshaiwu.com, 1 eveshamglass.co.uk, 1 evest.com, 1 -evetdermisin.com, 1 evetech.net, 1 evezqurbanli.tk, 1 evhoeft.com, 1 @@ -52350,7 +51908,7 @@ evote-ch.ch, 1 evotec.pl, 1 evoting-test.ch, 1 -evoting.ch, 0 +evoting.ch, 1 evrial.com, 1 evromandie.ch, 1 evronews.ga, 1 @@ -52364,6 +51922,7 @@ evtasima.name.tr, 1 evu-pe.tk, 1 evv.ee, 1 +evxp.it, 1 evyn.eu, 1 evz.ro, 1 ewa-hayward.co.uk, 1 @@ -52381,7 +51940,6 @@ ewatchers.org, 1 ewaycorp.com, 1 eweb.org, 1 -ewebcreative.com, 0 ewebmaster.it, 1 ewen-bara.com, 1 ewesparky.com, 1 @@ -52446,7 +52004,6 @@ exampleessays.com, 1 examroll.fr, 1 examroo.nl, 0 -examroom.ai, 1 examsite.tk, 1 examsmate.in, 1 examsoft.com, 1 @@ -52470,7 +52027,6 @@ exceldor.ca, 1 exceldor.com, 1 exceldorcooperative.ca, 1 -exceldorcooperative.com, 1 exceleron.com, 1 exceleron.in, 1 excelgum.ca, 1 @@ -52621,8 +52177,6 @@ expart.com, 1 expat.com, 1 expatexplore.com, 0 -expatfinancial.com.hk, 1 -expatholidaysthailand.com, 1 expatinpoland.com, 1 expatmortgage.uk, 1 expatriate.pl, 0 @@ -52676,7 +52230,6 @@ expertdentalgrp.com, 1 experteasy.com.au, 1 expertembeleza.com, 1 -expertembeleza.com.br, 1 expertestate.org, 1 expertgreen.pl, 1 experthiring.net, 1 @@ -52792,7 +52345,6 @@ express-pay.by, 1 express-shina.ru, 1 express-shop.tk, 1 -express-vpn.com, 1 express1040.com, 1 expressarte.tk, 1 expressbanking-uat.net, 1 @@ -52817,9 +52369,7 @@ expressstairliftssw.co.uk, 1 expressstore.ga, 1 expressvpn.com, 1 -expressvpn.net, 1 expressvpn.works, 1 -expressvpn.xyz, 1 expresvpn-private-analytics.net, 1 exprimo.tk, 1 expungement.law, 1 @@ -52876,7 +52426,6 @@ extractoracentral.com, 1 extradiely.sk, 1 extradienst.at, 1 -extradivers-worldwide.com, 1 extraeasycash.com, 1 extraefficiency.tk, 1 extraefficient.tk, 1 @@ -52970,7 +52519,7 @@ eytosh.net, 1 eyy.co, 1 eyyit.com, 0 -eza.web.id, 0 +eza.web.id, 1 ezabalium.tk, 1 ezadmin.se, 1 ezakazivanje.rs, 1 @@ -53000,7 +52549,6 @@ ezo.io, 1 ezochat.com, 1 ezorgportaal.nl, 1 -ezoterizm.info, 1 ezprints.com, 1 ezrent.tk, 1 ezsavers.ga, 1 @@ -53012,7 +52560,6 @@ eztempmail.com, 1 ezuz-fe.com, 1 ezvolt.com.br, 1 -ezwebsearch.com, 1 ezyentry.com.au, 1 ezygentechnology.com, 1 ezygrowth.world, 1 @@ -53174,7 +52721,6 @@ fabricacultural.org.br, 1 fabricademonstros.com.br, 1 fabricandoclientes.com.br, 1 -fabricemannuelphotography.fr, 1 fabricio.adv.br, 1 fabriciokleinadvocacia.com.br, 1 fabriciomoreira.ga, 1 @@ -53510,7 +53056,6 @@ falcema.com, 1 falchion.tk, 1 falck.dk, 1 -falcn.io, 1 falcom.co.jp, 1 falcom.shop, 1 falcon.io, 1 @@ -53637,6 +53182,7 @@ familytrees.net, 1 familytreewebinars.com, 1 familyzone.ga, 1 +famion.eu, 1 famiport.com, 1 famlefeber.nl, 1 famonitor.com, 1 @@ -53754,7 +53300,6 @@ fanzapers.ga, 1 fanzhe.com, 1 fanzine-nimbus.tk, 1 -fanzlive.com, 1 faortega.org, 1 fap.link, 1 fap.no, 1 @@ -53820,7 +53365,6 @@ farm-catalog.ga, 1 farm-dogecoin.tk, 1 farm-vacations.com, 1 -farmacia.pt, 1 farmaciabarcelona.com, 1 farmaciaclinica.it, 1 farmaciacomunalelacchiarella.it, 1 @@ -53833,7 +53377,6 @@ farmalink.pe, 1 farmarrays.com, 1 farmasimahaganesha.ac.id, 1 -farmaspeed.it, 1 farmauna.com, 1 farmaweb.be, 1 farmbureauinsurance-mi.com, 1 @@ -53914,7 +53457,6 @@ fashiondot.ga, 1 fashioneditor.gr, 1 fashionette.de, 1 -fashionfeverlifestyle.com, 0 fashionflavorph.com, 1 fashionforward.tk, 1 fashionforyou.ga, 1 @@ -54004,7 +53546,6 @@ fastable.net, 1 fastamundi.com, 1 fastandtuning.tk, 1 -fastantigentests.com.au, 1 fastbackgroundcheck.com, 1 fastbackmbg.be, 1 fastbackmbm.be, 1 @@ -54100,7 +53641,6 @@ fatih-catering.com, 1 fatihingemisi.com, 1 fatimamoldes.com.br, 1 -fatimaonlinepharmacy.com, 1 fatimarojo.com, 1 fatlabwebsupport.com, 1 fatnerdstock.com, 1 @@ -54156,7 +53696,6 @@ favoritestudentest.ga, 1 favoritetechers.ga, 1 favouritequotations.ca, 1 -favourperfect.com.au, 0 favro.com, 1 favrotest.com, 1 faw-club.cf, 1 @@ -54278,15 +53817,14 @@ fdicig.gov, 1 fdicoig.gov, 1 fdimmo24.com, 1 -fdj.fr, 1 fdkm.eu, 1 fdlibre.eu, 1 fdlp.gov, 1 fdltcc.edu, 1 fdm.ro, 1 fdms.gov, 1 -fdnsc.net, 1 -fdopportunities.com, 1 +fdnsc.net, 0 +fdopportunities.com, 0 fdp-alsdorf.de, 1 fdp-heinsberg.de, 1 fdpbrig.ch, 1 @@ -54323,6 +53861,7 @@ febeditora.com.br, 1 febooti.com, 1 februarystars.nl, 1 +fecskefeszekotthonom.hu, 1 fecyt.es, 1 fed-shashek.spb.ru, 1 fed.monster, 1 @@ -54475,7 +54014,6 @@ fehrm.gov, 1 feibiaowang.com, 0 feiertage-ferien.com, 1 -feifandaily2024.com, 1 feignandfolly.tk, 1 feiki.tk, 1 feikuai.tv, 1 @@ -54544,7 +54082,6 @@ felixvelarde.com, 0 felixweb.tk, 1 feliz.tk, 1 -fellas.com.tr, 1 felly.com.br, 1 felonymath.com, 1 felonymath.net, 1 @@ -54608,7 +54145,7 @@ fengying.co, 1 fenhl.net, 1 fenichelar.com, 1 -feniksforge.com, 1 +feniksforge.com, 0 fenitriatnica.tk, 1 fenix-site.tk, 1 fenix-zone.tk, 1 @@ -54617,13 +54154,13 @@ fenixonlinevirtual.com.br, 1 fenn.moe, 1 fennec.wtf, 1 -fennie.onthewifi.com, 1 +fennie.onthewifi.com, 0 fenns.co.za, 1 fennville.gov, 1 fennydewit.nl, 1 fenom.ga, 1 fenris.ovh, 1 -fenritec.eu, 1 +fenritec.eu, 0 fenritec.fr, 1 fense.cf, 1 fense.ml, 1 @@ -54681,6 +54218,7 @@ fermani.com.ar, 1 fermastore.cf, 1 fermastore.tk, 1 +fermateh.com.ua, 1 fermemarineau.com, 1 fermentcerealesbio.fr, 1 fermenteana.com, 1 @@ -54843,7 +54381,6 @@ fezlee.com, 1 ff-bad-hoehenstadt.de, 1 ff-bg.xyz, 1 -ff-daily.com, 1 ff-koenigstein-opf.de, 1 ff-obersunzing-niedersunzing.de, 1 ff-tostedt.de, 1 @@ -55144,7 +54681,7 @@ filek.ga, 1 fileplanet.com, 1 fileport.io, 1 -filequit.xyz, 1 +filequit.xyz, 0 files.com, 0 files.to, 1 files4share.com, 1 @@ -55228,6 +54765,7 @@ filmsearch.tk, 1 filmserver.de, 1 filmsidan.tk, 1 +filmsleague.com, 1 filmtheaternieuwegein.tk, 1 filmwallpapers.ml, 1 filmweltverleih.de, 1 @@ -55241,7 +54779,7 @@ filosofiskaeleonora.se, 1 filosofisksamtale.dk, 1 filter-kiev.com, 1 -filterboxx.com, 0 +filterboxx.com, 1 filterlists.com, 1 filtershekanha.com, 1 filthsystem.com, 0 @@ -55387,7 +54925,6 @@ findolino.at, 1 findoon.de, 1 findorff.de, 1 -findoutlyrics.com, 1 findpwa.com, 1 findrejsepartner.dk, 1 findsalmonest.ga, 1 @@ -55493,7 +55030,6 @@ finstererlebnis.de, 1 finstockconsulting.com, 0 finsuba.com, 1 -fintechb2b.com, 1 fintechos.com, 1 fintellix.com, 1 finteo.de, 1 @@ -55560,6 +55096,7 @@ firelinkshrine.xyz, 1 firemail.de, 1 firemaker.tk, 1 +firemudfm.com, 1 firenews.cf, 1 firenzetoday.it, 1 fireoakstrategies.com, 1 @@ -55657,6 +55194,7 @@ firstcontact.cf, 1 firstdry.com.br, 1 firstechpayments.com, 0 +firstenergyservice.com, 1 firstever.eu, 1 firstfederalbath.com, 1 firstfinanceit.com, 1 @@ -55769,7 +55307,6 @@ fistwerk.de, 1 fisvo.org, 0 fit-4u.ch, 0 -fit-mit-system.eu, 1 fit365.jp, 0 fit81.com, 1 fit81.it, 1 @@ -55809,7 +55346,6 @@ fitnessbest.com, 1 fitnessfreedomathletes.com, 1 fitnesshaber.com, 1 -fitnessimage.com.au, 0 fitnesskarate.club, 1 fitnessmaus.com, 1 fitnessplanet.best, 1 @@ -55845,7 +55381,6 @@ fivecrm.com, 1 fivefortheroad.com, 1 fiveminute.tk, 1 -fivemm.shop, 1 fivepb.me, 1 fivepedia.tk, 1 fiverr.com, 1 @@ -55867,10 +55402,10 @@ fix.mk, 1 fix8mt.com, 1 fixabzar.com, 1 +fixator10.ru, 1 fixcyprus.cy, 1 fixedfeeplacements.co.uk, 1 fixedgear.tk, 1 -fixedmatch.bet, 1 fixedpricemovers.com, 0 fixedtoday.com.au, 1 fixerbee.us, 1 @@ -55962,7 +55497,6 @@ flabutelov.tk, 1 flacandmp3.ml, 1 flacon.tk, 1 -flacsoandes.edu.ec, 1 fladnag.net, 1 flaeskeklubben.dk, 1 flaeskeklubben.eu, 1 @@ -56091,7 +55625,6 @@ flatwoodsky.gov, 1 flauschig.net, 1 flavelappliances.com, 1 -flaviao.com, 1 flavienbonvin.com, 1 flavinha.tk, 1 flaviohipnoseclinica.com.br, 1 @@ -56141,7 +55674,6 @@ fleettools.tk, 1 fleetwiz.com.au, 1 fleetyards.net, 1 -flehm.de, 1 fleisch.club, 1 fleischer-garten.de, 1 fleischkaes.de, 1 @@ -56210,7 +55742,6 @@ flextrades.com, 1 flextribly.xyz, 1 flextudo.com, 1 -flextypes.com, 1 flexundfix.de, 1 flexve.com, 1 flexworkhero.de, 1 @@ -56273,7 +55804,6 @@ flipin.ga, 1 flipmusic.tk, 1 flipneus.net, 1 -flipnhotdeals.com, 1 flipos.be, 0 flipperkast.tk, 1 flippers-leuven.be, 1 @@ -56392,7 +55922,7 @@ floriane-even.fr, 1 floriankarmen.com, 1 florianmitrea.uk, 1 -floriansanchez.com, 1 +floriansanchez.com, 0 florianstroeger.com, 1 florianstroeger.tk, 1 floriantanner.ch, 1 @@ -56420,7 +55950,6 @@ floridastadium.ga, 1 floridastadiumers.ga, 1 floridastadiumest.ga, 1 -floridastatefair.com, 1 floridastatefair.net, 1 floridastatefairag.com, 1 floridastatefairauthority.com, 1 @@ -56446,7 +55975,7 @@ floucloud.id, 1 flourishdx.com, 1 flourishgrazingevents.co.uk, 1 -flourishtogether.com, 1 +flourishtogether.com, 0 flow-serv.com, 1 flow.su, 1 flowair24.ru, 1 @@ -56621,7 +56150,6 @@ flyingpotatoes.tk, 1 flyingpress.com, 1 flyingspaghettimonsterdonationsfund.nl, 1 -flyingtomorocco.com, 1 flyingtutorsers.ga, 1 flylcpa.gov, 1 flylvia.com, 1 @@ -56752,7 +56280,6 @@ focusoptimization.com, 1 focusproductions.tk, 1 focusreferrals.co.uk, 1 -focusrtech.com, 1 focustec.tk, 1 focusti.com.br, 1 focustuningclub.tk, 1 @@ -57064,7 +56591,6 @@ footloose.co.uk, 1 footmercato.net, 1 footparisien.com, 1 -footsteps.lk, 1 footstepsinthegambia.com, 0 footstepsontheglobe.com, 1 foottube.com, 1 @@ -57117,7 +56643,6 @@ fordservicetraining.com, 1 fordshop.by, 0 fordtrac.com.br, 1 -foreachpartners.com, 1 foreammatti.fi, 1 forecastapp.net, 1 forecastcity.com, 1 @@ -57267,7 +56792,6 @@ formopinionest.ga, 1 formoplast.com, 1 formotherrussia.tk, 1 -forms.cafe, 1 forms.gov, 1 formsbyair.com, 1 formsite.com, 1 @@ -57277,7 +56801,6 @@ formstrap.com, 1 formue.com, 1 formula.cf, 1 -formulacigar.com, 1 formulacionquimica.com, 1 formulario-rutas.lat, 1 formulastudent.de, 1 @@ -57346,7 +56869,6 @@ fortepiano.tk, 1 forteprenestino.net, 1 fortesanshop.it, 1 -forthenrycustomknives.com, 0 forthvalleykeswick.co.uk, 1 fortifydiy.com, 1 fortigate.es, 1 @@ -57428,7 +56950,6 @@ forumhsbm.tk, 1 forumistudentore.tk, 1 forumix.tk, 1 -forummobile.com.br, 1 forumoff.com, 1 forumofld.in, 1 forumotion.cf, 1 @@ -57469,7 +56990,6 @@ fossagarrafoni.tk, 1 fossbots.org, 1 fossboxen.com, 1 -fosseseptique.be, 1 fossewayflowers.co.uk, 1 fossewayflowers.com, 1 fossiilid.info, 1 @@ -57507,7 +57027,6 @@ fotobringer.de, 1 fotobrinke.de, 1 fotochip.tk, 1 -fotocoach.pl, 1 fotocopiatrici.roma.it, 1 fotofaerie.net, 1 fotofast.tk, 1 @@ -57532,11 +57051,9 @@ fotoleitner.com, 1 fotoleitner.de, 1 fotoloji.art, 1 -fotoloji.net, 1 fotomatonweb.es, 1 fotomodel.cf, 1 fotomodels.tk, 1 -fotonbolivia.com.bo, 1 fotonippon.com, 1 fotontechnik.pl, 1 fotonza.ru, 1 @@ -57589,7 +57106,6 @@ foundries.io, 1 foundry512.com, 1 foundryhome.com, 1 -foundsounds.me, 1 fountain.com, 1 fountain.company, 1 fountaincitywi.gov, 1 @@ -57612,7 +57128,7 @@ fourpeaks.com, 1 fourscore.ga, 1 fourseasonsalbany.com, 1 -fourseasonsfairways.com, 0 +fourseasonsfairways.com, 1 fourseasonssunroomsyosset.com, 1 fourstrategy.de, 1 fourwaysplumber24-7.co.za, 1 @@ -57640,7 +57156,7 @@ foxcityflix.com, 1 foxcloud.tk, 1 foxcon.tk, 1 -foxdeli.com, 1 +foxdeli.com, 0 foxdemos.ml, 1 foxdev.co, 1 foxdirectory.tk, 1 @@ -57712,7 +57228,6 @@ fptsoftware.com, 1 fpu.sk, 1 fpy.cz, 1 -fqcstandard.com.tr, 1 fr-fotopage.tk, 1 fr.search.yahoo.com, 0 fr33tux.org, 1 @@ -57871,7 +57386,6 @@ francisfazzini.com, 1 francishouserecovery.org, 1 franckgirard.net, 1 -francobortolotti.com, 1 francocasimirri.tk, 1 francoexpeditionperu.com, 1 francofunghi.tk, 1 @@ -58018,7 +57532,6 @@ fraudpodest.ga, 1 fraudswatch.tk, 1 frauen-etappenrennen.de, 1 -frauenaerztin-wedel.de, 1 frauenarztzentrum-am-see.ch, 1 frauenlob.rocks, 0 frauenpraxislaufental.ch, 1 @@ -58036,7 +57549,6 @@ frc.us.com, 1 frccsgo.tk, 1 frcdr.org, 1 -frce.moe, 1 freak-show.tk, 1 freak-team.tk, 1 freak-waves.de, 1 @@ -58131,11 +57643,11 @@ free-watching.ga, 1 free-webtv.tk, 1 free.com.tw, 1 -free.law, 1 +free.law, 0 free.mg, 1 free.sh, 1 free.tools, 1 -free4allsw.com, 1 +free4allsw.com, 0 free6to12yo.gq, 1 freeaf.gq, 1 freeagent.tk, 1 @@ -58213,7 +57725,6 @@ freedomworldoutreach.com, 1 freeebooksblog.com, 1 freeenglishhelp.com, 1 -freeexampapers.com, 1 freefallproductions.tk, 1 freefemale.com, 1 freefilesync.org, 1 @@ -58645,7 +58156,6 @@ froh.co.jp, 1 frohsinnoberzier.de, 1 froicorp.com, 1 -frok.ai, 1 frok.com, 1 frokenblomma.se, 1 from-the-net.com, 1 @@ -58692,7 +58202,6 @@ frontline.cloud, 1 frontline6.com, 0 frontlinepolicies.com, 1 -frontofficeroofing.com, 0 frontofthehouse.com, 1 frontrouge.fr, 1 froogo.co.uk, 1 @@ -58762,6 +58271,7 @@ fruitmoose.com, 1 fruitscale.com, 1 fruitsexpressdelivery.com.sg, 1 +fruitsfromchile.com, 1 fruittree.com.my, 1 fruittree.com.sg, 1 fruitware.ae, 1 @@ -58871,7 +58381,6 @@ ftgho.com, 1 fthat.link, 1 ftl-gaming.tk, 1 -ftl13.com, 1 ftlparksprojects.com, 1 ftm.wiki, 1 ftmc.tk, 1 @@ -59037,7 +58546,6 @@ fulgenzis.com, 1 fulisex.com, 1 fuliwang.info, 1 -full-hd.info, 1 full-service-suite.com, 1 full-stack.ninja, 1 full.eu.org, 1 @@ -59488,7 +58996,6 @@ futuresonline.com, 0 futuresound.tk, 1 futurestyletiling.com.au, 1 -futuretechtrends.co.uk, 1 futureville.city, 1 futurewithoutfear.org, 1 futurewithoutfear.us, 1 @@ -59497,7 +59004,6 @@ futuristicjobs.sk, 1 futuristspeaker.com, 1 futurity.ml, 1 -futurygames.com, 1 fuvarlevel.hu, 1 fuvelis.com, 1 fuwafuwa.moe, 1 @@ -59507,7 +59013,7 @@ fuyeor.com, 1 fuyeor.net, 1 fuyeor.top, 1 -fuyer.cn, 1 +fuyer.cn, 0 fuyu.moe, 1 fuzhi.com, 1 fuzigames.com, 1 @@ -59702,7 +59208,6 @@ g9728.co, 1 g9kingnine.xyz, 1 ga-digitazion.com, 1 -ga-part.ru, 1 ga.fr, 1 ga4wp.com, 1 gaaog.com, 1 @@ -59786,9 +59291,7 @@ gadget-hat.tk, 1 gadget-tips.com, 1 gadgetdetected.com, 1 -gadgeteval.com, 1 gadgetflashers.ga, 1 -gadgetflip.com, 1 gadgetfreak.cf, 1 gadgetgalaxy.ro, 1 gadgetgi.ga, 1 @@ -59814,7 +59317,7 @@ gaelico.tk, 1 gaelle-esthetique.com, 1 gaestehaus-leipzig.de, 1 -gaestehaus-monika.com, 1 +gaestehaus-monika.com, 0 gaetanosonline.com, 0 gafachi.com, 1 gafan.cf, 1 @@ -60007,7 +59510,6 @@ gambitnash.co.uk, 1 gambitnash.com, 1 gambitprint.com, 1 -gambleinireland.com, 1 gamblersgaming.eu, 1 gamblerspick.com, 1 gambling-business.club, 1 @@ -60022,7 +59524,6 @@ game-net.ml, 1 game-repack.site, 1 game.es, 1 -game.gal, 0 game4less.com, 1 game818play.com, 1 game88play.com, 1 @@ -60315,7 +59816,6 @@ gardenblog.tk, 1 gardencentreshopping.co.uk, 1 gardencityal.gov, 1 -gardendonkey.com, 1 gardengameshireuk.com, 1 gardengroveca.gov, 1 gardengusto.ie, 1 @@ -60346,7 +59846,6 @@ garibaldi.gov, 1 garibyatri.com, 1 gariganshi.ml, 1 -garip.me, 1 garito3pa.tk, 1 gariwo.net, 1 garlandcountyar.gov, 1 @@ -60410,18 +59909,16 @@ garygreenbergonline.com, 1 garyjones.co.uk, 1 garyrh.com, 1 -garystallman.com, 1 +garystallman.com, 0 garywhittington.com, 0 gas-boilers.tk, 1 gas-online.cz, 1 gas-proekt.tk, 1 gasb87leaseaccounting.com, 1 gasbarkenora.com, 1 -gasdetect.com.br, 1 gasenergy.kz, 1 gasesdelaguajira.com, 1 gasfitermaipu.cl, 1 -gasgipfel.de, 1 gasherde.tk, 1 gashtline.ir, 1 gasigasy.mg, 1 @@ -60479,7 +59976,6 @@ gatemotorskyalami.co.za, 1 gatemoves.com, 1 gatenz-panel.com, 0 -gates-of-olympus-app.com, 1 gatesfoundation.org, 1 gatesmri.org, 1 gatesphilanthropypartners.org, 1 @@ -60523,7 +60019,6 @@ gaveme.top, 1 gavilanz.ddnsfree.com, 1 gavin.sh, 1 -gavinbrown.ca, 1 gavindebecker.com, 1 gavinedson.com, 1 gavingreer.com, 1 @@ -60535,7 +60030,6 @@ gaw.sh, 1 gawinex.com, 1 gay-jays.com, 1 -gay-personal-ads.com, 1 gay.systems, 1 gayanalysing.co.uk, 1 gayauthors.org, 1 @@ -60551,7 +60045,6 @@ gayfr.online, 1 gayfr.social, 1 gayga.gov, 1 -gaygay.pro, 1 gaygeeks.de, 1 gayhotmovies.com, 1 gaylaktika.com, 1 @@ -60751,10 +60244,8 @@ gecem.org, 1 gechr.io, 1 geckler-ee.de, 0 -geckobiketours.com, 1 geckoroutes.com, 0 geckos-geocaching.de, 1 -geckosurfschool.com, 1 geckowithahat.com, 1 geco-lab.it, 1 gecosan.com, 1 @@ -60846,7 +60337,6 @@ gehirn.co.jp, 1 gehirn.jp, 1 gehirnapis.jp, 1 -gehirnstatus.jp, 1 gehopft.de, 1 gehrdencarre.de, 1 gehrke.cloud, 1 @@ -60926,7 +60416,6 @@ gemeentegeschiedenis.nl, 1 gemeentehub.nl, 1 gemeentehulst.nl, 1 -gemeentesluis.nl, 1 gemeentestein.nl, 1 gemeinde-merzenich.de, 1 gemeinde-rosenberg.de, 1 @@ -60950,7 +60439,6 @@ gen.cn.eu.org, 1 gen.net.eu.org, 1 gen3marketing.com, 1 -gen53.org, 1 genbars.jp, 1 genbrugge.tk, 1 genchev.io, 0 @@ -61061,7 +60549,6 @@ geneseecountymi.gov, 1 geneseeny.gov, 1 geneseetwpmi.gov, 1 -genesis-a-fresh-translation-from-hebrew-to-english.com, 1 genesis-herbs.com, 1 genesiseureka.com, 1 genesisgold.com, 1 @@ -61143,7 +60630,6 @@ genpathdiagnostics.com, 1 genroe.com, 1 gensenwedding.jp, 1 -genserve.ai, 1 genshiken-itb.org, 0 gensicke.de, 1 gensleiten.de, 1 @@ -61191,7 +60677,6 @@ gentryarkansaspd.gov, 1 gentrydeng.cn, 1 genuinekeys.in, 1 -genuinetech.pk, 1 genunlimited.ga, 1 genunlimited.tk, 1 genusbag.com, 1 @@ -61334,6 +60819,7 @@ georgioskontaxis.org, 1 georgiosnetworks.com, 1 georglauterbach.com, 1 +georglauterbach.de, 1 georgmayer.eu, 1 geosales.tk, 1 geosci-model-dev-discuss.net, 1 @@ -61381,7 +60867,7 @@ gerbil.tk, 1 gerbils.tk, 1 gerbyte.uk, 1 -gerd-frank.com, 1 +gerd-frank.com, 0 gerda.nl, 1 gereedschapmuseumdehobbyzolder.tk, 1 gerenciaconsultor.com, 1 @@ -61546,7 +61032,6 @@ geteduroam.no, 1 getelectronics.tk, 1 getescrowest.ga, 1 -getestudio.com, 1 getevidenceers.ga, 1 getfastanswer.com, 1 getfedora.org, 1 @@ -61574,7 +61059,6 @@ geti2p.com, 1 getidee.com, 1 getidee.de, 1 -getidmcc.com, 1 getinfoleads.tk, 1 getinshape.today, 1 getinsuranceanywhere.com, 1 @@ -61629,6 +61113,7 @@ getpro.plumbing, 1 getprohealth.com, 1 getpromo.cf, 1 +getpsolid.com, 1 getpublii.com, 1 getraenke-hoffmann.de, 1 getready2dance.tk, 1 @@ -61729,6 +61214,7 @@ gexobiz.tk, 1 geyduschek.be, 0 geymbadi.com, 1 +geytabir.cf, 1 gezakekazeg.tk, 1 gezentianne.com, 1 gezginsolar.com, 1 @@ -61749,7 +61235,6 @@ gfestival.fo, 1 gfgmmarketing.com, 1 gfiber.com, 1 -gficr.com, 1 gfk-kunststoff-luebben.de, 1 gfleaks.com, 1 gfmp.com.pl, 1 @@ -61800,7 +61285,6 @@ ggs-marschallstrasse.de, 1 ggs.jp, 1 ggservers.com, 1 -ggsforex.com, 1 ggsmp.net, 1 ggss.cf, 1 ggvaulting.co.uk, 1 @@ -61860,7 +61344,6 @@ ghostinbox.pl, 1 ghostinfluence.com, 1 ghostlight.tk, 1 -ghostly.studio, 0 ghostmail.no, 1 ghostmarket.io, 1 ghostnight.ga, 1 @@ -61887,7 +61370,6 @@ ghui.de, 1 ghwconline.org, 1 ghyvelde.fr, 1 -gi-plant.shop, 1 gi.de, 1 giac.net, 1 giac.org, 1 @@ -62050,7 +61532,6 @@ gilbertsvilleny.gov, 1 gildan.com, 1 gildenhost.de, 1 -gildoafonso.com.br, 1 gileadpac.com, 1 gilescountytn.gov, 1 gilfed.com, 1 @@ -62109,7 +61590,6 @@ gintaresdental.lt, 1 gintonic.tk, 1 ginv.us, 1 -ginx.tv, 1 ginza-arthall.com, 1 ginza-viola.com, 1 ginzaj.com, 1 @@ -62237,7 +61717,6 @@ githubindia.com, 1 githubnext.com, 1 giti.com.sg, 1 -gitlab-apps.com, 1 gitns.com, 1 gitns.dev, 1 gitns.io, 1 @@ -62305,7 +61784,6 @@ gizmo.ovh, 1 gizmodo.com, 1 gizmodo.in, 1 -gizmosforgeeks.com, 1 gj-bochum.de, 1 gj-cham.tk, 1 gjan.in, 1 @@ -62362,7 +61840,6 @@ glahcks.com, 1 glama.ai, 1 glamadelaide.com.au, 1 -glamaya.com, 1 glami.com.tr, 1 glaminati.com, 1 glamoncall.com, 1 @@ -62427,7 +61904,6 @@ glauca.space, 1 glaucoma.uk, 1 glavred.info, 0 -glazedmag.fr, 1 glazkova.ga, 1 glbaumaulwurf.de, 1 glbins.com, 1 @@ -62474,7 +61950,6 @@ glenwhitememorial.com, 1 glenwoodpark.com, 1 glesbymarks.com, 1 -gletschervergleiche.ch, 1 glevolution.com, 1 glexia.com, 1 glezmanz.eu, 1 @@ -62555,7 +62030,6 @@ globaled.org.uk, 1 globalenergyinterconnection.com, 0 globalentertainment.ga, 1 -globalenv.online, 1 globalepsilon.com, 1 globalfaraday.com, 1 globalflavorjourney.com, 1 @@ -62603,7 +62077,7 @@ globalpediatriciansest.ga, 1 globalperspectivescanada.com, 1 globalpolarbear.com, 1 -globalpouchfactory.com, 1 +globalpouchfactory.com, 0 globalproduction.ga, 1 globalprojetores.com.br, 1 globalradio.tk, 1 @@ -62649,7 +62123,7 @@ globalwire.fi, 1 globalzone.tk, 1 globalzonetoday.com, 1 -globaz.ch, 0 +globaz.ch, 1 globe-brasil.tk, 1 globe.gov, 1 globecollege.nl, 1 @@ -62898,7 +62372,6 @@ go889w.com, 1 goabase.com, 1 goabase.net, 1 -goabonga.com, 1 goaddress.co.ke, 1 goaheadireland.ie, 1 goalgrass.com, 1 @@ -62926,7 +62399,6 @@ gobouncy.co.uk, 1 gobouncy.com, 1 gobox.pt, 1 -gobsn.com, 1 gobus.ee, 1 gobytedesign.uk, 1 gocar.ie, 1 @@ -63070,7 +62542,6 @@ goirlanda.es, 1 goiymua.com, 1 goizalde.tk, 1 -gojilabs.com, 1 gojpt.com, 1 gokaygurcan.com, 1 gokazakhstan.com, 1 @@ -63280,17 +62751,16 @@ gondon.tk, 1 gonebald.tk, 1 gonegocio.net, 1 -gonenli.com, 1 gonepal.com, 1 gonerogue.ml, 1 gonfiabili.roma.it, 1 -gong.io, 1 gongik.info, 1 gongjuhao.com, 1 gongyouhui.com, 1 gonitro.com, 0 gonoodle.com, 1 gonortheast.co.uk, 1 +gontagro.com.ua, 1 gonulyoluturizm.com.tr, 1 gonumber.ga, 1 gonvarri.com, 1 @@ -63298,7 +62768,6 @@ gonz0.com.ar, 1 gonzalesca.gov, 1 goo.gl, 1 -goo4it.nl, 1 gooch.io, 1 good-cd.ml, 1 good-course.ga, 1 @@ -63313,20 +62782,17 @@ goodchoiceflowers.com, 1 gooddatingsites.ml, 1 gooddayatwork.co.uk, 1 -gooddomain.com, 1 gooddomainna.me, 1 goodearth.com.tw, 1 goodees.com, 1 goodenglish.ga, 1 goodesign.su, 1 -goodfarms.com, 1 goodfeatherfarms.com, 1 goodfeels.net, 1 goodfoodrussia.com, 1 goodfundsgateway.com, 1 goodgame.ruhr, 1 goodhealthgateway.com, 1 -goodhotel.co, 1 goodhuecountymn.gov, 1 goodiesnet.ca, 0 goodiespub.fr, 1 @@ -63449,6 +62915,7 @@ gordas.cf, 1 gordeijnsbouw.nl, 1 gordianbla.de, 0 +gordillo.legal, 1 gordion.tk, 1 gordon-reid.com, 1 gordonbeeming.com, 1 @@ -63472,7 +62939,6 @@ goriki.tk, 1 gorillacamping.site, 1 gorillaenergy.ru, 1 -gorinchem.nl, 1 goringdogsitting.co.uk, 1 gorki.tk, 1 gorlani.com, 1 @@ -63514,7 +62980,6 @@ gosekku.com, 1 gosemo.com, 1 goshawkdb.io, 1 -goshen.network, 1 goshiba.pl, 1 goshin-group.co.jp, 1 goshippingcargo.com, 1 @@ -63522,12 +62987,11 @@ goshopnow.co.za, 1 goshrink.ca, 1 gosifa.com, 1 -gosimpler.com, 1 +gosifan.com, 0 goskey.ru, 1 goskills.com, 1 gosling-gov.tk, 1 gosling-mod.tk, 1 -goslot.com, 1 gosms.ai, 1 gosolockpicks.com, 1 gospelcologne.de, 1 @@ -63586,7 +63050,6 @@ gotnet.tk, 1 goto.google.com, 1 goto.pm, 1 -goto.world, 1 goto10.se, 1 gotobooks.ml, 1 gotobrno.cz, 1 @@ -63701,9 +63164,8 @@ gp-engineering.se, 1 gp-lightstone.de, 1 gpalabs.com, 1 -gpatrading.com, 1 gpbdev.ru, 1 -gpccp.cc, 1 +gpccp.cc, 0 gpcmicro.com, 1 gpcp.org, 1 gpcs.ml, 1 @@ -63881,7 +63343,7 @@ grammar.hu, 1 grammarcheck.net, 1 grammarhouse.me, 0 -grammofono.gr, 0 +grammofono.gr, 1 grampage.ru, 1 gramtarang.org.in, 1 gran-hermano.tk, 1 @@ -63980,7 +63442,6 @@ granplaza.eu, 1 granpoder-islacristina.tk, 1 gransfors354.com, 1 -granstoqueatacadista.com.br, 1 granstor.com, 0 granstrom.tk, 1 grantadvisor.org, 1 @@ -64044,7 +63505,6 @@ grassau.com, 1 grassberry.in, 1 grasscity.com, 0 -grassenberg.de, 1 grasshoppervape.com, 1 grasski.net, 0 grasslaketownship.gov, 1 @@ -64093,7 +63553,6 @@ gravitechthai.com, 1 gravitlauncher.ml, 1 graviton.work, 1 -gravity-bonanza.org, 1 gravity-inc.net, 1 gravityformspdfextended.com, 1 gravityinvestments.com, 1 @@ -64143,8 +63602,6 @@ great.nagoya, 1 greatagain.gov, 1 greataltrock.tk, 1 -greatamericaneu.com, 1 -greatamericanuk.com, 1 greatbarrierisland.nz, 1 greatbarriers.com.au, 1 greatdane.com, 1 @@ -64167,7 +63624,6 @@ greatlakelocksmiths.co.nz, 1 greatlakesdatastream.ca, 1 greatlakesden.net, 1 -greatlakesnow.org, 1 greatlakesstone.com, 1 greatlakestechdiving.com, 1 greatlearning.in, 1 @@ -64192,7 +63648,7 @@ greatsurfersest.ga, 1 greatvacation.tk, 1 greatwalluae.com, 1 -greatwaterfilters.com.au, 1 +greatwaterfilters.com.au, 0 greatwebdesign.uk, 1 grechutaszkolenia.pl, 1 greciahora.com, 1 @@ -64303,7 +63759,7 @@ greenmesg.org, 1 greenmind.tk, 1 greenmoon.tk, 1 -greenmountainenergy.com, 1 +greenmountainenergy.com, 0 greenmountaingreenwalls.com, 1 greenoakscc.com, 1 greenopedia.com, 1 @@ -64323,11 +63779,13 @@ greensad36.ru, 1 greensboro.com, 1 greensborocc.org, 1 +greensborosecuritycameras.com, 1 greensborovt.gov, 1 greenscreenportal.com, 1 greenseo.org, 1 greensidevetpractice.co.uk, 1 greensilllatam.com, 1 +greensmartplanet.com.my, 1 greensmartplanet.my, 1 greensofthestoneage.com, 1 greenspace.expert, 1 @@ -64384,7 +63842,7 @@ gregmarziomedia.co.za, 1 gregmarziomedia.com, 1 gregmc.ru, 1 -gregmckeown.com, 1 +gregmckeown.com, 0 gregmilton.com, 1 gregmote.com, 1 grego.pt, 1 @@ -64453,7 +63911,6 @@ greymuzzlemanor.org, 1 greypanel.com, 1 greyrectangle.com, 1 -greyscale.zone, 1 greyskymedia.com, 1 greysolonballroom.com, 1 greystonesmovement.com, 1 @@ -64488,7 +63945,6 @@ grieg.net, 1 grieg.no, 1 grieg.org, 1 -griegshipbrokers.no, 1 griendencollege.tk, 1 grienenberger.eu, 1 griesser2.de, 1 @@ -64617,7 +64073,6 @@ grothem.gq, 1 grothoff.org, 1 grottenthaler.eu, 1 -grouchysysadmin.com, 1 ground-control.de, 1 groundball.tk, 1 groundcaresolutionsllc.com, 1 @@ -64770,7 +64225,6 @@ grunlab.net, 1 grunttoziemia.pl, 1 grunwaldzki.center, 1 -grunwasser.fr, 1 grupatvogzivota.tk, 1 grupcarles.com, 1 grupdedansa.tk, 1 @@ -64848,7 +64302,6 @@ gryte.tk, 1 grzegorzchomutowski.pl, 1 gs-pflege.de, 1 -gs-schlossberg.de, 1 gs1.hk, 1 gs93.de, 1 gsa-online.de, 1 @@ -64862,7 +64315,6 @@ gsaxcess.gov, 1 gsbazzi.com, 1 gschissane.autos, 1 -gschwend.de, 1 gscloud.xyz, 1 gscpaudit.org.uk, 1 gsd.id, 1 @@ -64872,7 +64324,7 @@ gservera.com, 1 gsfreak.pt, 1 gshoes.bg, 1 -gshub.io, 1 +gshub.io, 0 gsilva.org, 1 gsimagebank.co.uk, 1 gslabnet.org, 1 @@ -64887,6 +64339,7 @@ gsmtool.tk, 1 gsmvermist.tk, 1 gsp.com, 1 +gspcreations.com, 1 gspilar.tk, 1 gsplast.com, 1 gsrank.org, 1 @@ -64947,7 +64400,6 @@ gtsb.io, 1 gtslotcars.com, 1 gtsoftware.gr, 1 -gttnews.com, 1 gtupgrade.eu, 1 gtwaction.org, 1 gtxmail.de, 1 @@ -65045,7 +64497,6 @@ guerrilla-marketing.cf, 1 guerrillaradio.tk, 1 guerrillas.tk, 1 -guesanelectronics.com, 1 guesclin.com, 1 guessmatch.com, 1 guestandmore.de, 1 @@ -65348,6 +64799,7 @@ guysroulette.com, 1 guytarrant.co.uk, 1 guzdek.co, 1 +guzek.uk, 1 guzelforum.tk, 1 guzelkadinlar.tk, 1 guzellikmerkezleri.tk, 1 @@ -65462,7 +64914,6 @@ gynaecology.co, 1 gynaeinfertility.com.sg, 1 gynaemd.com.sg, 1 -gynaemdclementi.com.sg, 1 gynaeovariancyst.com.sg, 1 gynera.ro, 1 gynzy.com, 1 @@ -65487,7 +64938,6 @@ gz99.top, 0 gz999.top, 0 gzdh.com, 1 -gzitech.com, 1 gzitech.net, 1 gzitech.org, 1 gzlivre.org, 1 @@ -65629,7 +65079,6 @@ habra-adm.ru, 1 habrastorage.org, 1 habsmack.tk, 1 -habtium.es, 1 hac2er.net, 1 hacc.top, 1 haccp.bergamo.it, 1 @@ -65654,7 +65103,6 @@ hackamac.tk, 1 hackathontwjr.ml, 0 hackatruck.com.br, 1 -hackattack.com, 1 hackbarth.guru, 1 hackbeil.name, 1 hackbubble.me, 1 @@ -65755,7 +65203,6 @@ hadesblack.net, 1 hadesblack.org, 1 hadesblack.xyz, 1 -hadetlachapelle.com, 1 hadibut.fr, 1 hadika.tk, 1 hadin.tk, 1 @@ -65814,7 +65261,6 @@ hahn-trafo.com, 1 hahnbowersock.com, 1 hahnbowersock.net, 1 -haibao.club, 1 haibara-ai.cn, 1 haiduc.tk, 1 haifaworld.tk, 1 @@ -65823,7 +65269,7 @@ haihuan.com, 1 haikunap.hu, 1 haileybury.com.au, 1 -hails.info, 1 +hails.info, 0 hailstorm.nl, 1 hailstormproject.tk, 1 haimablog.ooo, 1 @@ -65967,7 +65413,7 @@ halkoyu.org, 1 halkyon.net, 1 hall1c.com, 1 -hallaine.com, 1 +hallaine.com, 0 hallanalysis.com, 1 hallandwilcox.com.au, 1 hallcopainting.com, 1 @@ -65980,7 +65426,6 @@ halligladen.de, 1 hallmanmemorials.net, 1 hallmarkbusiness.com, 1 -hallmarkestates.ca, 1 halloffameapartments.com, 1 hallofoddities.tk, 1 hallofworlds.online, 1 @@ -66021,7 +65466,6 @@ ham.community, 1 ham.study, 1 hamacho-kyudo.com, 1 -hamali.bg, 1 hamarimarriage.tk, 1 hamartrophy.cf, 1 hamaslul.com, 1 @@ -66173,7 +65617,6 @@ handsome-samurai.jp, 1 handsomeabel.tk, 1 handsonscience.com.au, 1 -handsontheheart.eu, 1 handstandstudio.ga, 1 handsup.dance, 1 handtales.com, 1 @@ -66196,10 +65639,8 @@ haneenshirt.com, 1 hanetf.com, 1 hanewin.net, 1 -hanfmuseum.de, 1 hanfoot.tk, 1 hanfordca.gov, 1 -hanfparade.de, 1 hanfverband-erfurt.de, 0 hanfverband.de, 1 hang333.moe, 1 @@ -66251,7 +65692,7 @@ hansahome.ddns.net, 1 hansamed.net, 1 hansanders.nl, 1 -hansashop.eu, 0 +hansashop.eu, 1 hansatransporte.de, 1 hansbruis.tk, 1 hanschconsulting.com, 1 @@ -66260,9 +65701,6 @@ hansen-kronshagen.de, 1 hansen.hn, 1 hanseyachtsag.com, 1 -hansgoes.it, 1 -hansgoes.nl, 1 -hansgoesit.nl, 1 hansgrohe-usa.com, 1 hansgrohe.com, 1 hansgrohe.de, 1 @@ -66297,12 +65735,12 @@ haoz.tk, 1 haozhexie.com, 1 haozi.me, 1 +hapfox.de, 1 hapi.agency, 1 hapijs.cn, 1 hapissl.com, 1 hapivm.com, 1 hapless.tk, 1 -happennino.net, 1 happeopleindonesia.id, 1 happiestoutdoors.ca, 1 happii.dk, 1 @@ -66520,6 +65958,7 @@ harmonicasireland.com, 0 harmonizely.com, 0 harmony-labradoodles.nl, 1 +harmony-trader.com, 1 harmony.co.id, 1 harmonyeg.net, 1 harmonyencoremdm.com, 1 @@ -66559,7 +65998,6 @@ harriedrecords.tk, 1 harrietjohnston.tk, 1 harrimantn.gov, 1 -harringtonca.com, 1 harrisburgnc.gov, 1 harrisconsulting.ie, 1 harriscountyesd11.gov, 1 @@ -66650,7 +66088,6 @@ harz.cloud, 0 harzin.tk, 1 has-no-email-set.de, 1 -has.bet, 1 has.gy, 1 has.report, 1 has.work, 1 @@ -66825,7 +66262,7 @@ haventoday.org, 0 haverford.com, 1 havernbenefits.com, 1 -havetherelationshipyouwant.com, 1 +havetherelationshipyouwant.com, 0 havi-engel.de, 1 havivdriver.co.il, 1 havo.co.id, 1 @@ -66910,7 +66347,6 @@ hazelkid.tk, 1 hazelwood.co.uk, 1 hazeover.com, 1 -hazhistoria.net, 1 hazimdesign.tk, 1 hazirlikatlamakursu.com, 1 hazlocheaters.com, 1 @@ -66930,12 +66366,10 @@ hbaa.ml, 1 hbag.org, 1 hbauer.net, 0 -hbbet.com, 1 hbcm70.fr, 1 hbcommand.com, 1 hbcu-colleges.com, 1 hbedocs.com, 1 -hbfisioeesthetic.com.br, 1 hbgshop.cf, 1 hbh.sh, 1 hbility.eu, 0 @@ -66951,6 +66385,7 @@ hbs-it-gmbh.de, 1 hbslick.com, 1 hbsslaw.co.uk, 1 +hbsslaw.com, 1 hbsvzos.nl, 1 hbudd.com, 0 hbussmann.com, 1 @@ -67013,7 +66448,7 @@ hdevent.net, 1 hdfreex.com, 1 hdgrannytube.com, 1 -hdhoang.space, 1 +hdhoang.space, 0 hdhomelift.com, 1 hdlooks.tk, 1 hdm-bogensport.at, 1 @@ -67033,7 +66468,6 @@ hdrcomercio.com.br, 1 hdrezka.live, 1 hdrezka2018.tk, 1 -hdrip.info, 1 hdrtranscon.com, 0 hds-lan.de, 1 hdscheduleers.ga, 1 @@ -67049,7 +66483,7 @@ hdtvboardest.ga, 1 hdv.paris, 1 hdv12.horse, 1 -hdview.co.uk, 1 +hdview.co.uk, 0 hdwetpussy.com, 1 hdxxxpics.net, 1 hdy.nz, 1 @@ -67495,9 +66929,8 @@ heartoftexaseye.com, 1 heartofthemidlands.co.uk, 1 heartofthepeace.com, 0 -heartonmysleevegreetings.com, 1 hearts-science.com, 1 -heartsintrueharmony.com, 1 +heartsintrueharmony.com, 0 heartsucker.com, 0 hearttruth.gov, 1 heartway.xyz, 1 @@ -67805,6 +67238,7 @@ heliocentrism.jp, 1 heliolira.com, 1 helion.ch, 0 +helioring.com, 1 helios4.com, 1 heliosbot.net, 1 heliosenergie.it, 1 @@ -67812,6 +67246,7 @@ heliosvoting.org, 0 heliport-moscow.ru, 1 heliport-parts.ru, 1 +helisimmer.com, 1 helium.computer, 1 heliumtech.tk, 1 heliwing.com, 1 @@ -67888,6 +67323,7 @@ hellothought.net, 1 hellov.in, 1 helloverify.com, 1 +hellovillam.com, 1 helloworldhost.com, 0 helloyubo.com, 1 hellpc.net, 0 @@ -68261,7 +67697,6 @@ hertshealthyworkplace.org.uk, 1 heru.tk, 1 herumixer.ga, 1 -hervegranger.fr, 1 hervormdweeshuiszwolle.nl, 1 herworld.com, 1 herychreality.cz, 1 @@ -68366,7 +67801,6 @@ hexhu.com, 1 hexhu.net, 1 hexiaohu.cn, 0 -hexid.me, 0 hexieshe.com, 1 hexo.ink, 0 hexo.io, 0 @@ -68397,14 +67831,11 @@ heydorff.duckdns.org, 1 heydudd.com, 1 heyfiesta.com, 1 -heyfordpark.com, 0 heyfranky.com, 1 heyghost.io, 1 heyitgirl.com, 1 heyitsfree.net, 1 -heyjenndigital.com, 1 heyjoecoffee.com, 1 -heyjoflyer.win, 1 heylogin.com, 1 heynowbots.com, 1 heyomg.com, 1 @@ -68467,7 +67898,6 @@ hh9297.co, 1 hh9397.com, 1 hh9728.co, 1 -hhank.com, 1 hhdelfland.nl, 1 hhhdb.com, 1 hhk.my.id, 1 @@ -68528,7 +67958,6 @@ hiddenhillsexteriorlighting.com, 1 hiddenhillslighting.com, 1 hiddenimage.ml, 1 -hiddenleaf.network, 1 hiddenmalta.net, 1 hiddenpalms.tk, 1 hiddenredknights.tk, 1 @@ -68579,7 +68008,6 @@ higentexpo.com, 1 higginsroofing.com.au, 1 higgsboson.tk, 1 -high-company.com, 1 high-flying.co.uk, 1 high-ground.org, 1 high-heels.se, 1 @@ -68610,7 +68038,6 @@ highheeltamia.com, 1 highintegrity.tk, 1 highinthemid80s.com, 1 -highkick.jp, 1 highland-webcams.com, 1 highlanddancing.tk, 1 highlandheights-ky.gov, 1 @@ -68775,7 +68202,6 @@ hinterposemuckel.de, 1 hinto.com.au, 1 hintss.pw, 0 -hinyari.net, 1 hiob.fr, 0 hiofd.com, 1 hiorth.tk, 1 @@ -69166,7 +68592,6 @@ hochimins.org, 1 hochland.pl, 1 hochoukikikiraku.com, 1 -hochsee.schule, 1 hochtief.cz, 1 hochu.ua, 1 hochuvrotik.cf, 1 @@ -69347,7 +68772,6 @@ hollmann.international, 1 hollowman.ml, 1 hollowwinds.xyz, 1 -holly.lgbt, 1 hollybanks.net, 1 hollybonnerdesigns.com, 1 hollyforrest.ca, 1 @@ -69487,7 +68911,6 @@ homecpr.com.au, 1 homecrawler.ga, 1 homecreatives.net, 1 -homecrewconstruction.com, 1 homedecorclassic.tk, 1 homedecorspecialists.com, 1 homedesignabilene.tk, 1 @@ -69606,7 +69029,6 @@ homedeveloper.ml, 1 homedeveloper.tk, 1 homedirectory.ml, 1 -homedizz.top, 1 homedollar.ga, 1 homedollars.ga, 1 homeduck.ga, 1 @@ -69669,7 +69091,7 @@ homemadetipsest.ga, 1 homemaintenanceservicesindubai.com, 1 homemarks.ga, 1 -homemaster-chita.ru, 1 +homemaster-chita.ru, 0 homematicblog.de, 1 homemediadb.org, 1 homemember.ga, 1 @@ -69829,7 +69251,6 @@ honesty.com.pl, 1 honey.beer, 1 honeyarcus.art, 1 -honeybrooklibrary.org, 1 honeycomb.io, 1 honeycome-recruit.com, 0 honeycreeper.com, 1 @@ -69919,7 +69340,6 @@ hopeforukraine.org.uk, 1 hopefultexas.com, 0 hopemeet.info, 1 -hopemeet.me, 1 hopepartnershipproject.com, 1 hopesanddreams.org.uk, 1 hopewellpolicenj.gov, 1 @@ -69937,13 +69357,11 @@ hopnepal.com, 1 hopo.design, 1 hoponmedia.de, 1 -hoppenr.xyz, 1 hoppinjohn.org, 0 hoppy.com, 1 hoppygo.com, 1 hops-and-ashes.de, 1 hopscotchmodel.com, 1 -hopsfeatherfest.at, 1 hopsmaus-shop.de, 0 hopted.com, 1 hor.website, 1 @@ -70013,6 +69431,7 @@ horoscopo.ml, 1 horotoday.tk, 1 horovod.im, 1 +horozo.com, 1 horrell.ca, 1 horrendous-servers.com, 1 horror-forum.de, 1 @@ -70036,7 +69455,6 @@ horsemanshipdentistry.com, 1 horsemanshipdentistryschool.com, 1 horseplanet.tk, 1 -horseridingdurban.com, 1 horsewithnoname.com, 1 horsky.me, 1 horstfuchs.tk, 1 @@ -70084,7 +69502,6 @@ hospitaldaluz.pt, 1 hospitaldebarcelona.cat, 1 hospitaldelaconcepcion.com, 1 -hospitaldeovalle.cl, 1 hospitality-colleges.com, 1 hospitality-on.com, 1 hospitalityandcateringnews.com, 1 @@ -70150,7 +69567,6 @@ hostingactive.it, 0 hostingalternative.com, 0 hostingdesignweb.com, 0 -hostingdiario.com, 1 hostingdirect.nl, 1 hostingdirectory.ga, 1 hostingelite.tk, 1 @@ -70182,8 +69598,6 @@ hostpoint.ch, 1 hostprior.ro, 1 hostreputation.com, 1 -hostripples.com, 1 -hostripples.in, 1 hosts.cf, 0 hostsall.com, 1 hostup.se, 0 @@ -70199,6 +69613,7 @@ hot-shots-photos.com, 1 hot-spa.ch, 0 hot.ee, 1 +hot.in.th, 1 hot.v.ua, 1 hot101fm.tk, 1 hotaircoldlove.tk, 1 @@ -70402,7 +69817,6 @@ houdah.com, 1 houdenvanhonden.nl, 1 houghcovidtest.com, 1 -houghcovidtest.com.au, 1 houghtonstatebank.com, 1 houlang.ac.cn, 1 houraiteahouse.net, 1 @@ -70498,7 +69912,6 @@ houzz.se, 1 hovala.tk, 1 hovelaar.nl, 1 -hoverboardbarato.com, 1 hovewest.no, 1 hovset.net, 1 how-things-work-science-projects.com, 1 @@ -70555,8 +69968,6 @@ howto-connect.com, 1 howto-outlook.com, 0 howtobehealthy.tk, 1 -howtobestraightbook.com, 1 -howtobewhitebook.com, 1 howtodesignwebsite.com, 1 howtogeek.com, 1 howtogeekpro.com, 1 @@ -70683,7 +70094,6 @@ hrmafia.ga, 1 hrmcms.com, 1 hrmg.agency, 1 -hrminohub.com, 1 hrmny.sh, 1 hrndz.io, 1 hrnk.org, 1 @@ -70947,7 +70357,6 @@ huchet.me, 0 hucklebucks.com, 1 huckletree.com, 0 -hudaa.us, 1 hudbugcomics.com, 1 hudconstruction.co.uk, 1 huddlecamhd.com, 1 @@ -71188,13 +70597,11 @@ hungarianeducationagency.com, 1 hungaromedia.at, 1 hungaryz.ml, 1 -hungnm.me, 1 hungphatlaptop.com, 1 hungryas.tk, 1 hungryginie.com, 1 hungrygowhere.com, 1 hungryhealthyhappy.com, 0 -hungu.net, 1 hunhold.at, 1 hunhold.biz, 1 hunhold.ch, 1 @@ -71217,7 +70624,6 @@ hunterscreekapartments.net, 1 hunterscrolls.tk, 1 huntersridgecabins.com, 1 -hunterstorm.com, 1 hunterwoodheatingandplumbing.co.uk, 1 huntflow.ai, 1 hunting.ml, 1 @@ -71268,7 +70674,6 @@ hurtigtinternet.dk, 1 husakbau.at, 1 huseyinpala.com, 1 -hushbabysleep.com, 1 hushfile.it, 1 hushlayer.com, 1 hushpuppiesobuv.ru, 1 @@ -71395,7 +70800,6 @@ hydralube.ie, 1 hydrante.ch, 0 hydras.tk, 1 -hydrauliikkakauppa.fi, 1 hydraulikbutiken.se, 1 hydrazin.pw, 1 hydrique.ch, 1 @@ -71435,7 +70839,6 @@ hyex.com.au, 1 hyfood.it, 1 hygienet.be, 1 -hygo.com, 0 hygraph.com, 1 hyhealth.it, 1 hyk.me, 1 @@ -71599,7 +71002,6 @@ i-experts.nl, 1 i-fastnet.net, 1 i-forum.ga, 1 -i-gamingnews.com, 1 i-house.gq, 1 i-hoz.ru, 1 i-lab.ml, 1 @@ -71635,7 +71037,6 @@ i00.eu, 1 i00228.com, 1 i0day.com, 1 -i10z.com, 1 i18nweave.com, 1 i24.host, 1 i2capmark.com, 1 @@ -71649,7 +71050,6 @@ i3c6d0s.com, 1 i3o.me, 1 i49.net, 1 -i4i.com, 1 i4recruit.com, 1 i4ware.fi, 1 i51365.com, 0 @@ -71704,7 +71104,6 @@ iamcloud.de, 1 iamconnected.eu, 1 iamedicale.fr, 1 -iamfortytwo.com, 1 iamhealthystore.com, 1 iamhenryjvera.com, 1 iaminashittymood.today, 1 @@ -71722,7 +71121,6 @@ iamseo.co, 1 iamtheib.me, 1 iamthelife.io, 1 -iamthesweetspot.com, 0 iamtp.com, 1 iamveryti.red, 1 ian-barker.co.uk, 1 @@ -71820,7 +71218,6 @@ ibin.co, 1 ibipoint.com, 1 ibiu.xyz, 0 -ibiz.mk, 1 ibizads.tk, 1 ibizaluxuryachts.com, 1 ibk.at, 1 @@ -72040,7 +71437,6 @@ icraft.bg, 1 icrat.org, 1 icreative.nl, 1 -icruise.com, 1 icsense.com, 1 icsolutions.nl, 1 icst.tk, 1 @@ -72066,7 +71462,6 @@ ictwebsolution.nl, 1 icuc.social, 1 iculture.nl, 1 -icusignature.com, 1 icustomboxes.com, 1 icyapril.com, 1 icycanada.com, 1 @@ -72090,7 +71485,6 @@ id-fxcm.com, 1 id-strategies.com, 1 id.atlassian.com, 0 -id.et, 1 id.fedoraproject.org, 0 id.mayfirst.org, 1 id.search.yahoo.com, 0 @@ -72122,7 +71516,6 @@ idc95.com, 0 idcrushermachine.ga, 1 idcwr.com, 1 -iddaatahmin11.com, 1 iddaatahminleri.com.tr, 1 iddconnect.org, 1 iddportugal.pt, 1 @@ -72184,7 +71577,6 @@ idee-lq.de, 1 idee-lq.net, 1 ideefactory.de, 1 -ideesrecettes.net, 1 idehvector.com, 1 ideiasefinancas.com.br, 1 ideice.gob.do, 1 @@ -72272,7 +71664,6 @@ idraulico-roma.it, 1 idraulico-roma.org, 1 idraulico.roma.it, 1 -idream-solutions.co.uk, 1 idrissi.eu, 1 idrivegroup.ie, 1 idrix.com.ec, 1 @@ -72404,7 +71795,6 @@ ifur.ga, 1 ifworlddesignguide.com, 1 ifxnet.com, 1 -ifylofd.xyz, 1 ifyou.bg, 1 ig-plastik.tk, 1 ig.com, 1 @@ -72413,7 +71803,6 @@ igame.ml, 1 igamingaffiliateprograms.com, 1 igamingdirectory.com, 1 -igamingnews.com, 1 igamingnyheder.dk, 1 igamingpocketdirectory.com, 1 igamingsuppliers.com, 1 @@ -72433,7 +71822,6 @@ iggprivate.com, 1 iggsoft.com, 1 iggsoftware.com, 1 -iggyz.com, 1 igi-2.com, 1 igiftcards.de, 1 igiftcards.nl, 1 @@ -72647,7 +72035,6 @@ ikaros.tk, 1 ikarus-itkurs.de, 1 ikazumitsu.tk, 1 -ikbear.me, 1 ikbenrichie.nl, 0 ikeacareers.co.uk, 1 ikebuku.ro, 1 @@ -72688,9 +72075,8 @@ ikrab.club, 1 iks.moe, 1 iksi.me, 1 -iksworld.kr, 1 -iksz.org, 0 -iksz.work, 0 +iksz.org, 1 +iksz.work, 1 ikuda.eu, 1 ikudo.top, 1 ikumi.us, 1 @@ -72703,7 +72089,6 @@ ikzoektim.nl, 1 il12thcourt.gov, 1 ila.tw, 1 -ilab.health, 1 ilac.ai, 1 ilac101.com, 1 ilacrehberi.com, 1 @@ -72805,7 +72190,6 @@ illuminatelife.tk, 1 illuminaten.tk, 1 illuminatisocietyworldwide.org, 1 -illumini.io, 1 illusia.tk, 1 illusionephemere.com, 0 illusionsdoptique.com, 1 @@ -73326,7 +72710,7 @@ improbo-group.com, 1 improd.works, 1 improfestival.ee, 1 -improsupreme.com, 1 +improsupreme.com, 0 improv.ee, 1 improved-madness.de, 1 improvenerg.com, 1 @@ -73365,7 +72749,6 @@ imtools.gq, 1 imtqy.com, 1 imttech.co, 1 -imumed.cz, 1 imunify360.com, 1 imusionforum.tk, 1 imwc.me, 0 @@ -73598,7 +72981,6 @@ indianrelaypodcast.com, 0 indianriver.gov, 1 indiantechhunter.tk, 1 -indiantextilejournal.com, 1 indianvirginhumanhair.tk, 1 indianwarriors.tk, 1 indianwellsca.gov, 1 @@ -73647,6 +73029,7 @@ indir2017.tk, 1 indirhadi.tk, 1 indirimkuponumarketim.com, 1 +indirimlim.com, 1 indironline.com, 1 inditip.com, 1 indivicloud.me, 0 @@ -73737,6 +73120,7 @@ inetinfo.io, 1 inetis.com, 1 inetol.net, 1 +inetpro.io, 1 inetserver.eu, 1 inetuser.tk, 1 inetworking.it, 1 @@ -73772,7 +73156,6 @@ inferno.co.uk, 1 infertilitycure.tk, 1 inffin-portal.de, 1 -infhosting.com.au, 1 infi.ch, 1 inficom.org, 1 infidel.org, 1 @@ -73794,11 +73177,11 @@ infinitewealth.com.au, 1 infinitiofallentownparts.com, 1 infinitiofaugustaparts.com, 1 -infinitioflynnwoodparts.com, 0 infinitiofmarinparts.com, 1 infinitipartsdeal.com, 1 infinitiresearch.com, 1 infinito.tk, 1 +infinitomarca.com, 1 infinitoporciento.tk, 1 infinity-area.com, 1 infinity-photography.co.uk, 1 @@ -73859,7 +73242,6 @@ info-sys.tk, 1 info-tech.tk, 1 info-usaha.tk, 1 -info-ut.com, 1 info.gov, 1 info2all.nl, 1 info4camper.com, 1 @@ -73902,7 +73284,6 @@ infofp.tk, 1 infogai.tk, 1 infogamesports.tk, 1 -infogate.ch, 1 infogate.ga, 1 infogram.com, 1 infogress.tk, 1 @@ -73912,7 +73293,6 @@ infoindia.tk, 1 infoiptv.tk, 1 infoislamharian.tk, 1 -infojeunes.fr, 1 infojmp.com, 1 infokesehatan.ga, 1 infoland.ml, 1 @@ -73922,7 +73302,6 @@ infomalin.fr, 1 infomarradi.it, 1 infomate360.com, 1 -infomatricula.pt, 1 infomax.gr, 1 infomega.fr, 1 infomexico.tk, 1 @@ -73995,7 +73374,6 @@ infoschool.ml, 1 infosec.exchange, 0 infosec.md, 1 -infosec.mv, 1 infosecchicago.com, 1 infosecdecompress.com, 1 infosecindex.com, 1 @@ -74056,7 +73434,6 @@ infraredproductions.com, 1 infraredradiant.com, 1 infras.fr, 1 -infrasa.gov.br, 1 infrastatic.com, 1 infravoce.com, 1 infraware.com, 1 @@ -74182,7 +73559,6 @@ inkburners.ga, 1 inkburnest.ga, 1 inkdawgz.com, 0 -inkeddytattoo.fi, 1 inkedin.com, 1 inkedindarkness.com, 1 inkflaremagazine.com, 1 @@ -74202,7 +73578,6 @@ inkopers.org, 1 inkor.tk, 1 inksay.com, 1 -inkstar.ro, 1 inkteeshop.com, 1 inkthedealseminars.com, 1 inkthreadable.co.uk, 1 @@ -74214,7 +73589,6 @@ inl.int, 1 inlandwaterwaylistings.com, 1 inlce.com, 1 -inlights.io, 0 inlimiters.ga, 1 inlimitest.ga, 1 inline-online.tk, 1 @@ -74338,7 +73712,6 @@ inolution.com, 1 inomics.com, 1 inondation.ch, 0 -inorden.se, 1 inoreader.com, 1 inorigo.com, 1 inorigo.net, 1 @@ -74461,7 +73834,6 @@ insomniac.pl, 1 insomniac.ro, 1 insomniasec.com, 0 -insono.no, 1 insouciant.org, 1 insource.org, 1 inspaceindustrial.com, 1 @@ -74515,7 +73887,6 @@ instagc.com, 1 instagrabber.ru, 1 instagram.com, 1 -instagrammernews.com, 1 instagramtweet.com, 1 instagraph.cn, 1 instahub.net, 0 @@ -74554,7 +73925,6 @@ instantreplay.tk, 1 instantsiteaudit.com, 1 instar.org, 1 -instareeldownload.com, 0 instavites.com, 1 instawierszyki.pl, 1 instead.com.au, 1 @@ -74632,7 +74002,6 @@ insysbio.com, 1 insysbio.uk, 1 inszu.com, 0 -int-elektro.eu, 1 int-ext-design.fr, 1 int-refer.nhs.uk, 1 int21h.jp, 1 @@ -74756,6 +74125,7 @@ interacademybrazil.com.br, 1 interacthindu.tk, 1 interactiveanddesign.com, 1 +interactivebrokersreview.co, 1 interactivedigesters.ga, 1 interactivedigestest.ga, 1 interactiveliterature.org, 1 @@ -74823,7 +74193,6 @@ interiery-waters.cz, 1 interieursud.fr, 1 interimnorge.no, 1 -interiofyspaces.com, 1 interior-design-colleges.com, 1 interior16.cf, 1 interiorai.com, 1 @@ -74928,7 +74297,6 @@ internetoskol.tk, 1 internetovehazardnihry.cz, 1 internetowykantor.pl, 1 -internetpasoapaso.com, 1 internetpoem.com, 1 internetpro.me, 1 internetprofitspro.com, 1 @@ -74936,6 +74304,7 @@ internetsociety.org, 1 internetstatistik.se, 1 internetstiftelsen.se, 1 +internetstones.com, 1 internetsubsidie.tk, 1 internettoday.ga, 1 internettradie.com.au, 0 @@ -74949,7 +74318,6 @@ interpass.id, 1 interplex.com, 1 interpol.gov, 1 -interpoolme.com, 1 interprete.tk, 1 interratrade.gr, 1 interregtesimnext.eu, 1 @@ -75055,7 +74423,6 @@ intron.pw, 1 intropickup.ru, 1 intropika.tk, 1 -intrstd.in, 1 intrum-credit-information-ws.ch, 1 intstyle.com.ua, 1 intsurfing.com, 1 @@ -75102,9 +74469,7 @@ inventionjudgeest.ga, 1 inventions-home.tk, 1 inventionsteps.com.au, 1 -inventit.nl, 1 inventivashop.com, 1 -inventivtechnology.com, 0 inventix.nl, 1 invento.tk, 1 inventortesters.ga, 1 @@ -75117,7 +74482,6 @@ inventum.cloud, 1 inveris.de, 1 inverness.gov, 1 -inversegravity.net, 1 inverselink-user-content.com, 1 inverselink.com, 1 inversion6.com, 1 @@ -75157,6 +74521,7 @@ investingdiary.cn, 1 investinginamerica.gov, 1 investingnews.com, 1 +investingoal.com, 1 investingoutlook.co, 1 investingrenada.gd, 1 investingtrader.net, 1 @@ -75216,7 +74581,6 @@ invitationtrackerest.ga, 1 invitebiz.tk, 1 invitelink.in, 1 -invitemember.com, 0 invitepeople.com, 1 invitescafe.com, 1 invitia.net, 1 @@ -75482,7 +74846,7 @@ ipsilon-project.org, 1 ipso.com.tr, 1 ipso.paris, 1 -ipso.ro, 1 +ipso.ro, 0 ipssl.li, 1 ipstoragesolutions.com, 1 ipsubscription.store, 1 @@ -75717,7 +75081,6 @@ irontigers.gq, 1 irontigers.ml, 1 irontribefitness.com, 1 -irontv.me, 1 ironwaytransport.com, 1 ironwind.ga, 1 ironwoodmi.gov, 1 @@ -75802,7 +75165,6 @@ isanp.ca, 1 isanticountymn.gov, 1 isantv.com, 1 -isara.com, 1 isaret.com, 1 isastylish.com, 1 isavanderbrugge.nl, 1 @@ -75822,7 +75184,6 @@ iscoolentertainment.com, 1 iscribblesolutions.com, 1 iscultas.pp.ua, 1 -isde.org, 1 isdecolaop.nl, 1 isdn.jp, 1 isdown.cz, 1 @@ -75959,7 +75320,6 @@ ismailtoraman.com, 1 ismailtoraman.com.tr, 1 ismart.org, 1 -ismat.com, 0 ismekkurs.com, 1 ismena.bg, 1 ismetroburning.com, 1 @@ -76082,7 +75442,6 @@ ist-toll.xyz, 1 ista-vdm.at, 1 istagb.ga, 1 -istanbul.systems, 1 istanbulblog.tk, 1 istanbuleskort.tk, 1 istanbulhaberleri.tk, 1 @@ -76097,7 +75456,6 @@ istekparcam.com.tr, 1 isterfaslur.com, 1 istevitrin.com, 1 -isthatarabic.com, 1 istheapplestoredown.com, 1 istheapplestoredown.de, 1 isthedoorlocked.com, 1 @@ -76107,7 +75465,6 @@ istheservicedown.co.uk, 1 istheservicedown.com, 1 istheservicedowncanada.com, 1 -isthisarabic.com, 1 isthisus.org, 1 isthnew.com, 1 istimdead.today, 1 @@ -76125,7 +75482,6 @@ istratov.tk, 1 istschonsolangeinrente.de, 0 istudentpro.ml, 1 -istudio.one, 1 isuggi.com, 1 isultov.tk, 1 isurg.org, 1 @@ -76167,7 +75523,6 @@ it-expert.tk, 1 it-help.tech, 1 it-inside.ch, 1 -it-ip-rudnick.de, 1 it-jobbank.dk, 1 it-lehnert.de, 1 it-maker.eu, 1 @@ -76316,6 +75671,7 @@ itezu.ml, 1 itfall.tk, 1 itfh.eu, 0 +itfirmaet.dk, 0 itfix.org.uk, 1 itg.com.pl, 1 itg.net.pl, 1 @@ -76651,6 +76007,7 @@ iwebing.tk, 1 iweblab.it, 1 iwebsolution.tk, 1 +iwec.pk, 1 iwex.swiss, 1 iwf.sport, 1 iwhite.tk, 1 @@ -76695,7 +76052,6 @@ iyanla.com, 1 iyanmv.com, 1 iyassu.com, 1 -iyiarastir.com, 1 iyincaishijiao.com, 1 iyn.me, 1 iyouewo.com, 1 @@ -77021,7 +76377,6 @@ jainnatory.ca, 1 jainnotary.ca, 1 jaion.tech, 1 -jaion.xyz, 1 jairocarbonell.com, 1 jairoenfrancien.tk, 1 jairsinho.me, 1 @@ -77036,7 +76391,7 @@ jakarta-tourism.go.id, 1 jakarta.ee, 1 jakartaee.org, 1 -jakartaone.org, 1 +jakartaone.org, 0 jake.ac, 1 jakegines.in, 1 jakegyllenhaal.ga, 1 @@ -77073,7 +76428,6 @@ jalebiyat.tk, 1 jaleesa.sa, 1 jaleo.cn, 1 -jalgut.group, 1 jaliscolindo.tk, 1 jall.com.br, 1 jallatte.fr, 1 @@ -77102,7 +76456,6 @@ jamesachambers.com, 1 jamesaimonetti.com, 1 jamesatruett.com, 1 -jamesbarnet.com, 1 jamesbillingham.com, 1 jamesbromberger.com, 1 jameschorlton.co.uk, 1 @@ -77209,13 +76562,11 @@ jandesign.at, 1 jandj.yachts, 0 jandonkers.com, 0 -jandroegehoff.de, 1 janduchene.ch, 1 janekahonza.cz, 1 janelle-jamer.tk, 1 janellequintana.tk, 1 janenwouter.tk, 1 -janescottceramics.com, 1 janetandjohns.tk, 1 janetedkins.com, 1 janetevansyoga.co.uk, 1 @@ -77296,8 +76647,6 @@ japanese-tantra-escort.com, 1 japanese-teacher-mari.com, 1 japaneseacupuncture.london, 1 -japaneseemoticons.org, 0 -japanesekeyboard.net, 1 japanesemusic.tk, 1 japanesephotosite.tk, 1 japanesque.ru, 1 @@ -77403,7 +76752,6 @@ jasoncosper.com, 1 jasoncs.eu.org, 1 jasonf.com, 1 -jasongreenwell.com, 1 jasonhardin.me, 1 jasonhk.pics, 1 jasonisclever.com, 1 @@ -77482,9 +76830,7 @@ jaxmore.com, 1 jaxxnet.co.uk, 1 jay4.is, 1 -jay6.tech, 0 jayanthreddy.ml, 1 -jayantkageri.in, 0 jaybeez.tk, 1 jaybrokers.com, 1 jaydehaidar.com, 1 @@ -77831,7 +77177,6 @@ jellynails.tk, 1 jellypepper.com, 0 jellysquid.me, 1 -jelmer.co.uk, 1 jelmyto.com, 0 jelo.tk, 1 jelobox.tk, 1 @@ -77856,7 +77201,6 @@ jencshiny-org.tk, 1 jendeindustries.com, 1 jendela360.com, 1 -jendies.com, 1 jenelle.ml, 1 jeneratorkiralama.name.tr, 1 jenever.amsterdam, 1 @@ -77926,7 +77270,6 @@ jeremyhodges.uk, 1 jeremynally.com, 1 jeremyness.com, 1 -jeremyrobinlyons.com, 1 jeremysermersheim.com, 1 jeremywinn.com, 1 jeremywinn.xyz, 1 @@ -77935,7 +77278,7 @@ jericoacoara.com, 1 jerisandoval.tk, 1 jeriss.be, 1 -jerlander.se, 1 +jerlander.se, 0 jeroendeneef.com, 1 jeroened.be, 1 jeroenensanne.wedding, 1 @@ -78023,7 +77366,6 @@ jesusda.tk, 1 jesusdenazaret.com, 1 jesusesparza.com, 1 -jesuslg.com, 1 jesusnazarenobaena.tk, 1 jesusplusnothing.com, 1 jesusvasquez.tk, 1 @@ -78068,7 +77410,6 @@ jeugdzorgnederland.nl, 1 jeurissen.co, 1 jeuxerotiques.net, 1 -jeuxsuperwin.com, 1 jevalide.ca, 1 jeveaux.company, 1 jevel-mag.tk, 1 @@ -78134,7 +77475,6 @@ jg8nid.tech, 1 jgambard.me, 1 jgc.li, 0 -jgeverest.com, 0 jgid.de, 1 jgigantino31.com, 1 jgke.fi, 1 @@ -78254,7 +77594,7 @@ jijistatic.net, 1 jikei-reha.com, 1 jikiden.com, 1 -jikken.de, 0 +jikken.de, 1 jilaninteraktif.tk, 1 jilio-ca.com, 1 jilio-ca.net, 1 @@ -78262,7 +77602,6 @@ jilio.net, 1 jilking.ga, 1 jillamy.com, 1 -jillapi.azurewebsites.net, 1 jillianmichaels.com, 1 jilljoe.com, 1 jillvirus.tk, 1 @@ -78315,7 +77654,6 @@ jinbo123.com, 0 jinbowiki.org, 1 jinbuguo.com, 1 -jinde.com.my, 1 jinduoduo369.com, 1 jinduoduo666.com, 1 jinduoduo888.com, 1 @@ -78342,7 +77680,6 @@ jintaiyang123.org, 1 jintao.hu, 1 jinzai-ikusei.org, 1 -jiogo.com, 1 jip2011.jp, 1 jipsnel.nl, 1 jira.com, 0 @@ -78403,7 +77740,7 @@ jkbfabrics.com, 0 jkcc.com, 1 jkessen.de, 1 -jkest.cc, 1 +jkest.cc, 0 jkfasham.com.au, 1 jkg.tw, 1 jkinteriorspa.com, 1 @@ -78515,7 +77852,6 @@ jn1.me, 1 jnana-yoga.info, 1 jnblict.co.za, 1 -jncie.eu, 1 jng.pt, 1 jnjpolymer.com, 1 jnktn.tv, 1 @@ -78580,7 +77916,6 @@ jobindex.dk, 1 jobintourism.gr, 1 jobit.gr, 1 -jobitt.com, 1 joblife.co.za, 1 joblover.ml, 1 joblyconnect.com, 1 @@ -78608,7 +77943,7 @@ jobsindemedia.nl, 1 jobsineachstate.com, 1 jobsingulf.com, 1 -jobsisbrown.com, 1 +jobsisbrown.com, 0 jobskilled.co.za, 1 jobsknowlgee.tk, 1 jobsmali.ml, 1 @@ -78647,7 +77982,6 @@ joecod.es, 1 joed.tk, 1 joedavison.me, 1 -joedeblasio.com, 1 joedoyle.us, 0 joedroll.com, 1 joefang.org, 1 @@ -78658,7 +77992,7 @@ joejacobs.me, 0 joel-mayer.de, 1 joel.net.au, 1 -joelandersen.me, 1 +joelandersen.me, 0 joelengel.com, 1 joelfries.com, 1 joelito.tk, 1 @@ -78673,7 +78007,6 @@ joellombardo.com, 0 joelovano.com, 1 joelprice.com, 1 -joelving.dk, 0 joembayawaphotography.com, 1 joepitt.co.uk, 0 joerg-wellpott.de, 1 @@ -78706,7 +78039,6 @@ jogjakarta.tk, 1 jogorama.com.br, 0 jogosdeanimais.org, 1 -jogosfutebolhoje.pt, 1 jogoshoje.com, 1 jogoshoje.io, 0 jogwitz.de, 1 @@ -78995,7 +78327,6 @@ joomla-ua.org, 1 joomladeveloper.ru, 1 joomlaguru.pl, 0 -joompress.biz, 1 joona.pw, 1 joorshin.ir, 1 joostdeheer.nl, 1 @@ -79058,7 +78389,6 @@ jose-alexand.re, 1 jose-latino.tk, 1 jose-manuel-benito-alvarez.tk, 1 -joseantonioramos.es, 1 josebernabe.ch, 1 josedaniel.website, 1 joseenriquegonzalez.tk, 1 @@ -79207,10 +78537,8 @@ joyce.tk, 1 joycejamiewedding.com, 1 joychetry.com, 1 -joycosmetics.ch, 1 joydivision.tk, 1 joydream.tk, 1 -joyfay.com, 1 joyfilms.tv, 1 joyfulbikeshedding.com, 1 joyfulevents.tk, 1 @@ -79243,7 +78571,6 @@ jpc0.de, 1 jpcorriganlaw.com, 1 jpcrochetapparel.com, 1 -jpctoolset.com, 1 jpdineroasi.com, 1 jpeg.io, 1 jpegd.io, 1 @@ -79308,6 +78635,7 @@ jrmora.com, 0 jrock.tk, 1 jrock.us, 1 +jrockrevolution.com, 1 jrom.net, 1 jross.me, 1 jrroofinglancs.co.uk, 1 @@ -79351,7 +78679,7 @@ jsfloydlaw.com, 0 jsg.hk, 1 jsgr.ca, 1 -jsh.marketing, 0 +jsh.marketing, 1 jsheard.co.uk, 1 jsheard.com, 1 jsheard.me.uk, 1 @@ -79370,7 +78698,6 @@ jsmgroningen.nl, 1 jsn.one, 1 jsnfwlr.com, 0 -jsnfwlr.io, 0 jso-crescendo.ch, 1 json.download, 1 json.id, 0 @@ -79418,7 +78745,7 @@ jtsrepair.ca, 1 jttech.se, 1 jtwo.co.za, 1 -jtxdev.my.id, 1 +jtxdev.my.id, 0 jtxmail.org, 1 jtxserver.xyz, 1 ju-edu.tk, 1 @@ -79426,7 +78753,6 @@ juabcounty.gov, 1 jualkambing.tk, 1 juancadc.es, 1 -juancamos.com, 1 juancarlosflores.tk, 1 juancarlosgalvez.tk, 1 juancarlosllaque.com, 1 @@ -79843,7 +79169,6 @@ justinkidd.ca, 1 justinmanders.nl, 1 justinritter.de, 1 -justinsinkula.com, 1 justinstago.com, 1 justinstandring.com, 1 justjackstuff.com, 1 @@ -79855,6 +79180,7 @@ justmysocks.xyz, 1 justnajoua.tk, 1 justneworleans.com, 1 +justninja.com, 1 justnu.se, 0 justor.ru, 1 justpass.co.uk, 1 @@ -79911,7 +79237,6 @@ jw-services.org, 1 jw.fail, 1 jw1.ca, 1 -jwala.diamonds, 1 jwatt.org, 1 jwatt.uk, 1 jwb.red, 1 @@ -79963,7 +79288,6 @@ k-h-c.ru, 1 k-homes.net, 1 k-labs.be, 1 -k-larevue.com, 1 k-linkcarecenter.com, 1 k-matsudaclinic.com, 1 k-moto.sk, 1 @@ -80139,7 +79463,6 @@ kadifeli.com, 1 kadinhaber.tk, 1 kadinhayati.com, 1 -kadinindonesia.or.id, 1 kadinisci.org, 1 kadinsaglikhaber.tk, 1 kadinvesaglik.tk, 1 @@ -80204,7 +79527,6 @@ kaik.io, 1 kaika-facilitymanagement.de, 1 kaikei7.com, 1 -kailashwedding.com, 1 kaileymslusser.com, 0 kaimah.co.nz, 1 kaimi.io, 1 @@ -80295,7 +79617,6 @@ kalashnikov.ml, 1 kalaskvintetten.tk, 1 kalaspuffar.se, 1 -kalastus.com, 1 kaldewei.com, 1 kaleidoscope.co.uk, 1 kaleidoscopepsychology.co.nz, 1 @@ -80392,6 +79713,7 @@ kamchatkawinter.tk, 1 kamcolorectal.com, 1 kamel.social, 1 +kameldesign.com, 1 kameliya.tk, 1 kamennyj-pisatel.tk, 1 kameno-news.tk, 1 @@ -80414,7 +79736,6 @@ kamilsevi.com, 1 kamin-71.ru, 1 kamin-island.ru, 1 -kaminbau-laub.de, 1 kaminholz.eu, 1 kaminoke.info, 0 kaminoyamasaigube.com, 1 @@ -80566,7 +79887,6 @@ kanz.jp, 1 kanzashi.com, 1 kanzleiplus.com, 1 -kanzshop.com, 1 kaodata.com, 1 kaohongshu.blog, 1 kaora.cz, 1 @@ -80701,7 +80021,6 @@ karlic.net, 1 karliekloss.tk, 1 karlin.run, 1 -karlis-kavacis.id.lv, 1 karlis.tk, 1 karlislab.com, 0 karllagerfeldvillasmarbella.com, 1 @@ -80820,7 +80139,6 @@ kasperkloster.dk, 1 kasperstad.dk, 1 kasplacement.com, 1 -kass-media.com, 1 kassa.at, 1 kassa.com, 1 kasse.pro, 1 @@ -80870,7 +80188,6 @@ katapult.tk, 1 katarios.tk, 1 katarpilar.com, 1 -katarsisuib.no, 1 katartika.tk, 1 kataumi-shika.jp, 1 katavagroup.com, 1 @@ -80961,6 +80278,7 @@ kaufmannkevin.de, 1 kaukauna.gov, 1 kaunoleliuteatras.lt, 1 +kauper.de, 1 kauperwood.ovh, 1 kaushal.tk, 1 kausharach.tk, 1 @@ -81020,7 +80338,6 @@ kaylielaw.com, 1 kayne.com, 1 kayon.cf, 1 -kayser-cs.lu, 1 kayseri.bel.tr, 1 kayserihaberleri.tk, 1 kaysville.gov, 1 @@ -81061,7 +80378,6 @@ kazy111.info, 1 kb-l.de, 1 kb-psy.fr, 1 -kb096.com, 1 kb1000.de, 1 kb1313.com, 1 kb16.de, 1 @@ -81075,7 +80391,6 @@ kb88dc12.com, 1 kb88dc16.com, 1 kb88dc26.com, 1 -kb930.com, 1 kba-online.de, 1 kbb-ev.de, 1 kbbouncycastlehire.co.uk, 1 @@ -81104,7 +80419,6 @@ kc3.moe, 1 kc9.com, 1 kc9.lol, 1 -kc9.me, 0 kc9.vip, 1 kcagsolutions.com, 1 kcc8.com, 1 @@ -81386,7 +80700,6 @@ ken.fm, 1 kenaquatic.com, 1 kenbillionsyuan.tk, 1 -kenbonny.net, 0 kenda.eu.org, 1 kendaliomega.id, 1 kendall.productions, 1 @@ -81509,7 +80822,6 @@ kernel-error.de, 1 kernel-panik.me, 1 kernel-video-sharing.com, 1 -kernelops.ru, 1 kernelpanics.nl, 1 kernkompas.nl, 1 kernmetpit.nl, 1 @@ -81674,12 +80986,11 @@ keyinfo.io, 1 keykong.io, 1 keylength.com, 1 -keyloop.com, 1 +keyloop.com, 0 keymaster.lookout.com, 0 keymicrosystems.com, 1 keynes.id.au, 1 keyoxide.org, 1 -keypazar.tr, 1 keypers.io, 1 keyphotojs.cf, 1 keypoint.edu.au, 1 @@ -81955,7 +81266,6 @@ kieran.de, 1 kieranpotts.com, 1 kieranweightman.me, 1 -kierlandgolf.com, 0 kierweb.co.uk, 1 kiesjeplek.nl, 1 kiesuwarbeidsrechtadvocaat.nl, 1 @@ -81997,7 +81307,7 @@ kiki.ee, 1 kikikanri.biz, 1 kikivega.net, 1 -kikoskia.com, 1 +kikoskia.com, 0 kiku.pw, 1 kilian-sommer.de, 1 kilian.gallery, 1 @@ -82074,6 +81384,7 @@ kimonocloud.com, 1 kimonoplatform.com, 1 kimoo.co, 1 +kimoo.net, 1 kimootoko.net, 0 kimotodental.com, 1 kimotrip.com, 1 @@ -82176,14 +81487,12 @@ kineticengineeringnsw.com.au, 1 kinetikos.com.au, 1 kinetiq.com, 1 -kinetofit.ro, 1 kineval.net, 1 kinfule.tk, 1 king-of-the-castles.com, 1 kingandmcgaw.com, 1 kingant.net, 1 kinganywhere.eu, 1 -kingautodetailing.id, 1 kingbot.tk, 1 kingchess.vip, 1 kingcourriel.fr, 1 @@ -82191,7 +81500,6 @@ kingdombuilderschurch.org, 1 kingdomcitymo.gov, 1 kingdomcrawlers.tk, 1 -kingdommediacorp.com, 1 kingdomnubia.com, 1 kingdomsail.com, 1 kingedwardvii.co.uk, 1 @@ -82214,6 +81522,7 @@ kingpie.co.za, 1 kingpin.pro, 1 kingpincages.com, 1 +kingroot.com, 1 kings-potong.com, 1 kings-world.net, 1 kingsaft.net, 1 @@ -82305,14 +81614,13 @@ kinsellamedia.com, 1 kintanalodge.fr, 1 kintawifi.com, 1 -kintell.com, 1 +kintell.com, 0 kinter.media, 1 kinto.pro, 1 kintone.com, 1 kintore.tv, 1 kintsugispace.com, 1 kintyre.net, 1 -kinualive.com, 1 kinugasa.or.jp, 1 kinvault.com, 1 kinyued.store, 1 @@ -82659,7 +81967,6 @@ klavierhaus-klavins.de, 1 klavierwunsch.de, 1 klaxon.ml, 1 -klaymemez.com, 1 kle.cz, 1 klea.tk, 1 kleaning.by, 1 @@ -82762,7 +82069,6 @@ klinkersnab.ru, 1 klinknetz.de, 1 klinkov.tk, 1 -klinlab.cz, 1 klipa.tk, 1 klischee-frei.de, 1 klishyn.com, 1 @@ -82790,7 +82096,7 @@ klosetestumgebungnextcloud.de, 1 klosko.net, 1 kloster-michaelstein.de, 1 -kloudstack.me, 0 +kloudstack.me, 1 klover-avantages.fr, 1 klover-cse.fr, 1 kloza.tk, 1 @@ -82818,7 +82124,6 @@ klutchcard.com, 1 klute.spdns.de, 1 kluzza.nl, 1 -klva.cz, 1 km8.co, 1 kma.ua, 1 kmap-state-ks.us, 1 @@ -82840,7 +82145,6 @@ kmrgroup.com, 1 kmshuma.com, 1 kmsk.tk, 1 -kmslh.com, 1 kmsm.com.au, 1 kmtf.kz, 1 kmw.ch, 1 @@ -83055,7 +82359,6 @@ kochrezepte.tk, 1 kochura.tk, 1 kochvision.com, 1 -kocieniewska.pl, 1 kocka.cf, 1 kockanakocko.si, 1 kocowork.com, 1 @@ -83067,12 +82370,10 @@ kodden.com.br, 1 kode-it.de, 1 kode.ch, 0 -kodeholic.me, 1 kodelabs.com, 1 kodes.com.tr, 1 kodexplorer.ml, 1 kodi-tutorials.com, 1 -kodifirestick.info, 1 kodify.net, 1 kodigo.me, 1 kodineuerleben.eu, 1 @@ -83087,7 +82388,6 @@ koef.nl, 1 koehlhoff.de, 1 koehn-consulting.com, 1 -koehn.com, 1 koelbli.ch, 1 koeldezomerdoor.nl, 1 koelnmafia.de, 1 @@ -83185,7 +82485,6 @@ kollab.com.ph, 1 kollandsrud.tk, 1 kollawat.me, 1 -kollega.it, 1 kollegamenti.it, 1 kollegie.com, 1 kollegier.com, 1 @@ -83194,7 +82493,6 @@ kolmann.at, 1 kolmann.eu, 1 kolmeti.ee, 1 -kolmeya.com.br, 1 kolonial.no, 1 koloquadialogues.com, 1 kolorado.tk, 1 @@ -83212,7 +82510,6 @@ kolyapetrov.tk, 1 kom.pe, 1 komalgandhi.tk, 1 -komall.net, 1 komarex.pl, 1 komarh.tk, 1 komasan.net, 1 @@ -83225,7 +82522,6 @@ komelin.com, 0 komfort.kh.ua, 1 komi-news.net, 1 -komi.la, 1 komichcapital.com, 1 komicloud.com, 1 komidoc.com, 1 @@ -83251,14 +82547,11 @@ komnakhon.com, 1 komo.am, 1 komodolabs.com, 1 -komoju.com, 1 -komoju.jp, 1 komoraoze.cz, 1 komornikmroczek.pl, 1 komp-plus.tk, 1 komp247.pl, 1 kompaniya-vasya.tk, 1 -kompiwin.com, 1 komplekt.gq, 1 komplet.sk, 1 komplexlysimple.com, 0 @@ -83413,9 +82706,7 @@ koodimasin.eu, 1 kooer.org, 1 koof.win, 1 -kooibeds.com, 0 kooky.org, 1 -koolbadges.co.uk, 1 kooli.ee, 1 koolisw.tk, 1 koolitee.ee, 1 @@ -83485,7 +82776,6 @@ kordamentha.com.au, 1 kordut.tk, 1 korea-1xbet.com, 1 -korea-dpr.org, 1 korea1x-bet.com, 1 koreabestood.ga, 1 koreanfashion.tk, 1 @@ -83506,7 +82796,6 @@ korfbal.nl, 1 korfballeague.nl, 1 korhonen.cc, 1 -korikart.com, 1 korikart.net, 1 korjoin.com, 1 korkortet.tk, 1 @@ -83517,7 +82806,6 @@ koroleva.ml, 1 korolevstvo-movie.ml, 1 koroli.tk, 1 -korona-m.eu, 1 korona-serial.net, 1 koroshkabir.tk, 1 korotonomedya.net, 1 @@ -83535,7 +82823,6 @@ kos4all.com, 1 kos9078.com, 1 kosaki.moe, 1 -koscielniak-nieruchomosci.pl, 1 kose.edu.ee, 1 koshakovo.ga, 1 koshechka.tk, 1 @@ -83597,7 +82884,6 @@ kotaku.com, 1 kotapay.com, 1 kotaraanglican.org.au, 1 -kotelsales.ru, 0 kother.org, 1 kotilinkki.fi, 1 kotisivukone.fi, 0 @@ -83714,9 +83000,8 @@ kr.cm, 1 kr.search.yahoo.com, 0 kr0n.dk, 1 -kr1shna4garwal.com, 1 +kr1shna4garwal.com, 0 kra.ee, 0 -kra2laiz.eu, 1 kraakgeluiden.tk, 1 kraakman.com, 1 kraavi.com, 1 @@ -83793,7 +83078,6 @@ krasotaiskusstva.com, 1 krasotkafirm.tk, 1 krasotki.ml, 1 -krastown.com, 0 krastyamoucha.cz, 1 kratochvilovi.net, 1 krause-outlet.de, 1 @@ -83827,10 +83111,8 @@ kredi-hesaplama.com, 1 kredibanka.net, 1 kredigram.com, 1 -kredit-galerie.de, 1 kredit-mit-negativer-schufa.com, 1 kredit-ohne-schufa.de, 1 -kredit-schule.de, 1 kredit24.de, 0 kredita.dk, 1 kreditkarta.ml, 1 @@ -83942,7 +83224,6 @@ kriya.org, 1 kriyayoga.fr, 1 kriyayoga.mx, 1 -krizek.wien, 1 krizevci.info, 1 krizialim.tk, 1 krk-gaming.de, 1 @@ -84067,10 +83348,8 @@ ks-89.com, 1 ks-homeanthill.eu, 1 ks-niceman.tk, 1 -ks-watch.de, 1 ks.kr.ua, 1 ks.pl, 1 -ks0098.com, 0 ks015.com, 0 ks017.com, 1 ks058.com, 1 @@ -84092,7 +83371,6 @@ ks380.com, 0 ks386.com, 1 ks5000.com, 0 -ks516.com, 1 ks5531.com, 0 ks5532.com, 1 ks5822.com, 0 @@ -84158,7 +83436,6 @@ kshb.com, 1 kshlm.in, 1 kshop.gr, 1 -kshpage.in, 1 kshub.gov, 1 ksiegarniabk.pl, 1 ksiegowosc.pro, 1 @@ -84208,7 +83485,6 @@ kt3i.com, 1 ktbuniversity.com, 1 kteatras.tk, 1 -ktgy.com, 0 kthnxbai.xyz, 1 ktk-pc.de, 1 ktkprom.com, 1 @@ -84447,7 +83723,7 @@ kurmanchalbank.com, 1 kurnia.tk, 1 kuroedov.com, 1 -kuroha.co.uk, 1 +kuroha.co.uk, 0 kuroinu.jp, 1 kuroit.com, 0 kurona.ga, 1 @@ -84476,12 +83752,12 @@ kurtki-moda.tk, 1 kurtkoyescort.net, 1 kurtlarvadisi-pusu-1.tk, 1 +kurtneuweiler.com, 1 kurtosys.com, 1 kurtschlatzer.com, 1 kurtschleinbeck.com, 1 kurungkurawal.id, 1 kuruppa.xyz, 1 -kuruyo.com, 1 kurvysf.com, 1 kurz.onl, 1 kurz.pw, 1 @@ -84577,7 +83853,6 @@ kvspannum.tk, 1 kvsplayer.com, 1 kvsrot.cz, 1 -kvxr.com, 1 kw.gt, 1 kwadraadtevredenheid.nl, 1 kwai.tv, 1 @@ -84706,6 +83981,7 @@ kyujin-office.net, 1 kyushu-ds.com, 1 kyusyu.org, 1 +kyxtro.com, 1 kyzyl-senir.ml, 1 kz-dentalclinic.com, 1 kz.search.yahoo.com, 0 @@ -84737,6 +84013,7 @@ l2news.ga, 1 l2relax.ml, 1 l2support.tk, 1 +l33roy.com, 1 l33te.net, 1 l36533.com, 1 l3limo.com, 1 @@ -84831,7 +84108,6 @@ laboiteanem.fr, 1 laboiteare.fr, 0 laboiteasous.com, 1 -laboma.cz, 1 laboni.design, 1 labonnetaille.com, 1 labor-augsburg-mvz.de, 1 @@ -84890,7 +84166,6 @@ lacantinadoors.com, 1 lacantine.xyz, 1 lacapsule.org, 1 -lacargo.az, 1 lacarniceria.tk, 1 lacarreradelagua.es, 1 lacasadelmaniqui.net, 1 @@ -84951,7 +84226,6 @@ lacrossewi.gov, 1 lacroy.com.br, 1 lactatiekundigemanouk.nl, 1 -lactec.com.br, 1 lacuartaorden.tk, 1 lacuisine.tk, 1 lacyc3.eu, 1 @@ -84964,7 +84238,6 @@ ladakhtrip.tours, 1 ladanivabelgium.tk, 1 ladanmokhtari.tk, 1 -ladbroke.net, 1 ladderartspace.com.au, 1 laddrs.uk, 1 ladedu.com, 1 @@ -85022,7 +84295,6 @@ ladyoxytocin.com, 1 ladysecrets.cf, 1 ladysecrets.ga, 1 -ladysovereign.com, 1 ladysybella.net, 1 ladytron.tk, 1 ladyvampira.com, 1 @@ -85092,8 +84364,8 @@ lagalerievirtuelle.com, 1 lagar2000.pt, 1 lagarblanco.es, 1 -lagardere-tr.it, 1 -lagardere-tr.ro, 1 +lagardere-tr.it, 0 +lagardere-tr.ro, 0 lagavach.com, 1 lagencerie.fr, 1 lagera-m-residence.com, 1 @@ -85142,7 +84414,6 @@ lahstalon.org, 1 lai.is, 1 lailabanx.org, 1 -lain.at, 1 lain.la, 1 lain.wiki, 1 laindonleisure.co.uk, 1 @@ -85191,7 +84462,6 @@ lakegenevapiercompany.com, 1 lakehavasuhouserentals.com, 1 lakeheadfreight.biz, 1 -lakeheadgeorgian.ca, 1 lakelafayettemo.gov, 1 lakemary-doctor.com, 1 lakemillsiowa.gov, 1 @@ -85330,9 +84600,6 @@ lampbooks.gq, 1 lampco.com, 1 lampeetlumiere.fr, 1 -lampenlicht.be, 1 -lampenlicht.nl, 1 -lampenundleuchten.de, 1 lamper-design.nl, 1 lampertheimer-zeitung.de, 1 lamplightvideo.com, 1 @@ -85411,7 +84678,6 @@ landgorilla.com, 1 landica.net, 1 landinfo.no, 1 -landingi.com, 1 landingtransport.com, 1 landireporters.com, 1 landisit.com, 1 @@ -85431,7 +84697,6 @@ landpotential.org, 1 landroverclubbandung.id, 1 landroverexpo.com.au, 1 -landscape-photography.org, 1 landscapelightingmalibu.com, 1 landscapelightingpacificpalisades.com, 1 landscapeloaners.ga, 1 @@ -85482,7 +84747,6 @@ langleyporter.com, 1 langleywa.gov, 1 langlois-chateau.fr, 1 -langly.fr, 1 langthaler.cc, 1 languageatplay.de, 1 languagecert.org, 1 @@ -85567,7 +84831,6 @@ laparcela.tk, 1 laparoscopyhospital.com, 1 lapasticcerianaturale.store, 1 -lapayo.com, 1 lapcameradongnai.com, 1 lapcamerahochiminh.com, 1 lapcoversers.ga, 1 @@ -85581,7 +84844,6 @@ laperladelduero.tk, 1 laperreraflamenca.tk, 1 lapesbaldai.lt, 1 -lapeyre.xyz, 1 lapicena.eu, 1 lapina.tk, 1 lapinas.com, 1 @@ -85596,7 +84858,6 @@ laplace.properties, 1 lapland.shop, 1 laplandtouristtroupers.se, 1 -laplanificadora.com, 1 laplanquedujoueur.com, 1 laplasadalsol.tk, 1 laplazita.tk, 1 @@ -85802,8 +85063,7 @@ lastbooks.gq, 1 lastcast.bg, 1 lastenrad-gifhorn.de, 1 -lastfriends.site, 1 -lasthome.co.uk, 1 +lastfriends.site, 0 lastingcar.com, 1 lastingmarksers.ga, 1 lastingmarksest.ga, 1 @@ -85833,7 +85093,6 @@ latabledebry.be, 1 latahcountyid.gov, 1 latakuta.com, 1 -latanadelpolpo.it, 1 latardeurbana.cf, 1 latardeurbana.ga, 1 latardeurbana.gq, 1 @@ -86013,6 +85272,7 @@ laventura.tk, 1 laventusdigital.co.uk, 1 lavhire.tk, 1 +laviaregia.com, 1 laviedalex.ovh, 1 lavinaec.com, 1 lavinya.net, 1 @@ -86061,12 +85321,10 @@ lawebdeljose.tk, 1 lawebnobasta.tk, 1 lawfirmyashajustice.co.id, 1 -lawgic.com.ua, 1 lawhery.com, 1 lawinform.com.au, 1 lawinorder.au, 1 lawinordercom.au, 1 -lawkwk.com, 1 lawlessenglish.com, 1 lawlessfrench.com, 1 lawlessitalian.com, 1 @@ -86193,7 +85451,6 @@ lblok.pl, 1 lbls.me, 0 lbo.management, 1 -lbofrance.com, 1 lbrlh.tk, 1 lbrli.tk, 1 lbrls.tk, 1 @@ -86315,7 +85572,6 @@ lda-design.co.uk, 1 ldcraft.pw, 1 lddr.io, 1 -ldesignweb.com, 1 ldfebui.org, 1 ldiesel.ca, 1 ldlorangecountylocksmith.com, 1 @@ -86375,10 +85631,11 @@ leaderoftheresistance.net, 0 leadersaudit.ga, 1 leadership-insight.nz, 1 -leadershipconnect.io, 1 +leadershipconnect.io, 0 leadgenie.me, 1 leadinforce.com, 1 leadingagile.com, 1 +leadingbytype.com, 1 leadiq.com, 1 leadnxt.co.in, 1 leadnxt.com, 1 @@ -86420,7 +85677,6 @@ lean.org.br, 1 leanatom.com, 1 leando.de, 1 -leandoo.com, 1 leandrebergeron.com, 1 leandri-campana-avocat.fr, 1 leandrofournier.com, 1 @@ -86512,7 +85768,6 @@ leatherfur.tk, 1 leathergoods.tk, 1 leatherneckappliance.com, 1 -leathersofacleaning.co.uk, 1 leatherstreet.tk, 1 leatherwill.com.ua, 1 leauda.fr, 1 @@ -86540,7 +85795,6 @@ lebenpflegen-march.ch, 1 lebenpflegen.ch, 1 lebens-fluss.at, 1 -lebenshilfe-hannover.de, 1 lebensinselparaguay.tk, 1 lebensmittelwarnung.de, 0 lebesis.tk, 1 @@ -86612,7 +85866,7 @@ lederjackekaufen.tk, 1 lederpartner.nl, 1 ledgerscope.net, 0 -ledgy.com, 0 +ledgy.com, 1 ledhive.co.uk, 1 ledigajobb.se, 1 ledlampor365.se, 1 @@ -86638,7 +85892,7 @@ leebiblestudycenter.com, 1 leebiblestudycentre.com, 1 leebiblestudycentre.org, 1 -leebladon.com, 0 +leebladon.com, 1 leebruce.tk, 1 leech.ga, 1 leech.io, 1 @@ -86859,7 +86113,7 @@ legionwood.tk, 1 legiscontabilidade.com.br, 1 legislationupdateservice.co.uk, 1 -legislativedistricts.com, 1 +legislativedistricts.com, 0 legit.nz, 1 legitcorp.com, 1 legitedelaguiole.com, 1 @@ -86873,7 +86127,6 @@ legoktm.com, 0 legoutcheznous.com, 1 legow.tk, 1 -legowerewolf.net, 1 legrand-ia.gov, 1 legrandbus.com, 0 legrandcosmetics.com, 1 @@ -86916,7 +86169,6 @@ leighannorsi.com, 0 leighneithardt.com, 1 leignier.org, 1 -leilaarias.com.br, 1 leilaelu.com.br, 1 leilakaleva.fi, 1 leilautourdumon.de, 1 @@ -87046,7 +86298,6 @@ lengyelnyelvoktatas.hu, 1 lengyelul.hu, 1 lenhatthanh.com, 1 -lenhotec.pt, 1 lenifuchs.net, 1 lenii.com, 1 lenina72.tk, 1 @@ -87081,11 +86332,8 @@ lens.tw, 1 lens.xyz, 1 lenseshop.tk, 1 -lensexperts.com, 1 lensfiyat.com, 1 lensflair.studio, 1 -lenspirations.com, 1 -lenstamiri.com, 1 lenstore.co.uk, 1 lensual.space, 0 lenta-ru.tk, 1 @@ -87335,7 +86583,6 @@ letipweb.tk, 1 letitfleet.io, 1 letitq.com, 1 -letmdesigncommercial.com, 1 letmebet.de, 1 letmepost.com, 1 letnik.tk, 1 @@ -87457,7 +86704,6 @@ leverj.io, 1 levermann.eu, 1 leversconceptconstructions.com.au, 1 -leversonbudke.com, 1 leviaan.nl, 1 leviathan-studio.com, 1 leviathanfan.tk, 1 @@ -87504,13 +86750,12 @@ lewisjuggins.co.uk, 1 lewismcyoutube.uk, 1 lewistonutah.gov, 1 -lewood.io, 1 +lewood.io, 0 lewt.me, 1 lex-legal.com.ua, 1 lex18.com, 1 lexapro-price.ga, 1 lexautoservice.nl, 1 -lexbailbonds.com, 1 lexblogplatform.com, 1 lexblogplatformthree.com, 1 lexch.com, 1 @@ -87606,12 +86851,12 @@ lgfa.com.au, 1 lghairdressers.nl, 1 lghfinancialstrategy.ch, 0 -lgiswa.com.au, 1 +lgiswa.com.au, 0 lgmars.xyz, 1 lgmotors.cz, 1 lgnsh.fr, 1 lgobchod.cz, 1 -lgrs.com.au, 1 +lgrs.com.au, 0 lgsc.lv, 1 lgscripts.com.br, 1 lgsg.us, 1 @@ -87666,6 +86911,7 @@ liana.site, 1 lianand.com, 1 liangbi.ml, 1 +liangfaner.com, 0 lianglongcredit.com, 0 liangmian.com, 1 liangxingai.com, 1 @@ -87679,7 +86925,6 @@ lianwen.kim, 1 liaozheqi.cn, 1 liar.wiki, 1 -liasecboard.com, 1 libanswers.com, 1 libanswers.net, 1 libapps.com, 0 @@ -87826,7 +87071,6 @@ librosderuta.com, 1 librosdescargas.club, 1 librosgratisnet.tk, 1 -libruis.com, 0 libscpi.org, 1 libskia.so, 1 libslack.org, 1 @@ -87920,7 +87164,6 @@ liella.me, 1 liemen.net, 1 liena.be, 0 -liendar-silver.com, 1 lienhuyghebaert.tk, 1 lier.link, 1 lier.tk, 1 @@ -87928,7 +87171,7 @@ lierohell.tk, 1 liersgevoel.nl, 1 liesbethkeijzer.nl, 1 -lieuu.com, 0 +lifamily.xyz, 1 lifanov.com, 1 life-emotions.pt, 0 life-in-hell.tk, 1 @@ -88057,7 +87300,6 @@ lightbox.co, 1 lightcraftmc.tk, 1 lightdark.xyz, 1 -lightenenterprise.com, 1 lightfoot.co.uk, 1 lighthouseglobal.com, 1 lighthouseguild.org, 0 @@ -88102,7 +87344,6 @@ lightyear.ai, 1 lightyear.no, 1 ligiptv.tk, 1 -ligmadrive.com, 1 ligneclaire.tk, 1 lignemalin.com, 1 lignoma.com, 1 @@ -88189,7 +87430,6 @@ lilou-sportswear.com, 1 lilousportswear.com, 1 lilpwny.com, 1 -lilsgym.ca, 1 lilstarry.com, 1 lilth.moe, 1 liltv.media, 1 @@ -88226,7 +87466,7 @@ lime-host.tk, 1 limebulgaria.com, 1 limechain.tech, 0 -limecho.net, 1 +limecho.net, 0 limehotel.tk, 1 limelightnashville.cf, 1 limelightnashville.ga, 1 @@ -88322,7 +87562,6 @@ lindaolsson.com, 0 lindapark.com, 1 lindazi.com, 1 -lindbladcruises.com, 1 linden-nj.gov, 1 linden.tk, 1 lindenfd-nj.gov, 1 @@ -88483,8 +87722,6 @@ linksol-inc.com, 1 linkspace.tk, 1 linkss.express, 1 -linkst.co, 0 -linkstaffing.com, 1 linkstellar.com, 1 linktgo.com, 1 linkthis.me, 1 @@ -88599,7 +87836,6 @@ linuxhostsupport.com, 1 linuxiac.com, 1 linuxiuvat.de, 1 -linuxkompis.se, 1 linuxlatbot.tk, 1 linuxlounge.net, 1 linuxmalta.tk, 1 @@ -88613,7 +87849,6 @@ linuz.it, 1 linx.net, 1 linxmind.eu, 1 -linxoconnect.com, 1 linxtter.com, 1 linyunbin.com, 1 linz.eu.org, 1 @@ -88662,7 +87897,7 @@ lipturess.tk, 1 liq.com.br, 1 liqd.net, 1 -liqiuyu.com, 1 +liqiuyu.com, 0 liqourltd.com, 1 liqueur.wiki, 1 liquid.cz, 1 @@ -88767,7 +88002,6 @@ listofcamsites.com, 1 listoffreeware.com, 0 listratenkov.com, 1 -listruct.com, 1 lists.fedoraproject.org, 1 lists.mayfirst.org, 0 lists.stg.fedoraproject.org, 1 @@ -88920,7 +88154,6 @@ liud.im, 1 liudon.com, 1 liujr.tk, 1 -liujunyang.com, 0 liukang.com, 1 liukang.tech, 1 liul.in, 1 @@ -88968,7 +88201,6 @@ liveandalucia.es, 1 liveanimations.org, 1 livebandphotos.com, 1 -livebeachcam.net, 0 livebestbooks.gq, 1 livebookmark.ml, 1 livebox-mag.fr, 1 @@ -89026,7 +88258,6 @@ livermorefireco.gov, 1 liverobot888.com, 1 liverpoolmoneyman.com, 1 -liversurgery.com, 1 liverylive.com, 1 livesexcalls.co.uk, 1 livesimply.me, 1 @@ -89061,7 +88292,6 @@ living-with-outlook-2010.com, 1 living.video, 1 livingafrugallife.com, 1 -livingbitsandthings.com, 1 livingdex.ca, 1 livingdocs.io, 1 livinghebrew.tk, 1 @@ -89150,6 +88380,7 @@ lkmt.us, 1 lknw.de, 1 lkp111138.me, 1 +lkqpickyourpart.com, 1 lksoft.cz, 1 lkw-faehren-buchen.de, 1 lkwmodellbau.at, 1 @@ -89225,7 +88456,6 @@ lnsk.lt, 1 lnsolucoesfinanceiras.com.br, 1 lnsrv.net, 1 -lntecc.com, 1 lntpower.com, 0 lntsufin.com, 1 lnttechservices.com, 1 @@ -89291,7 +88521,6 @@ localcryptos.com, 1 locald.at, 1 localdating.ml, 1 -localenv.uk, 1 localethereum.com, 1 localexpert.realestate, 1 localexpress.io, 0 @@ -89406,7 +88635,6 @@ locksmithsammamishwa.com, 1 locksmithsanantonio-247.com, 1 locksmithsanantoniotexas.com, 1 -locksmithsbuda.com, 1 locksmithscottsdaleaz.com, 1 locksmithservice-houston.com, 1 locksmithsinsanantoniotx.com, 1 @@ -89419,7 +88647,6 @@ locksport.org.nz, 1 lockwoodonlinejournals.com, 1 loco-creations.nl, 1 -loco-socials.nl, 1 locomediagroep.nl, 1 locomotiv.tk, 1 locomotive.ca, 1 @@ -89448,7 +88675,6 @@ lodosswar.tk, 1 lodus.io, 1 lodzjews.org, 1 -loeilducontinent.com, 1 loekkoopmans.tk, 1 loeklommers.nl, 1 loekvormgeving.nl, 1 @@ -89533,7 +88759,6 @@ login.sapo.pt, 0 login.ubuntu.com, 1 login.yahoo.com, 0 -logindefense.com, 1 logingate.hu, 1 loginsecure.eu, 1 loginsoft.com, 1 @@ -89756,7 +88981,7 @@ lomza.tk, 1 lon-so.com, 1 lona.io, 1 -lonasdigital.com, 0 +lonasdigital.com, 1 lonavla.tk, 1 lonca.co, 1 lonchaney.com, 1 @@ -89948,7 +89173,6 @@ loracheadle.com, 1 loraincountyohio.gov, 1 loraincountyrecorder.gov, 1 -lorasong.com, 1 loratadine10mg.gq, 1 lorbooks.tk, 1 lorcamadrid.tk, 1 @@ -89966,6 +89190,7 @@ lordgeorgeanson.com, 1 lordgrant.tk, 1 lordkrishna.tk, 1 +lordlink.net, 1 lordmusic.tk, 1 lordofcbd.fr, 1 lordofthecraft.tk, 1 @@ -89980,7 +89205,6 @@ loreedeslandes.com, 1 loremipsum.info, 1 lorena-salido.tk, 1 -lorenaandthetide.com, 1 lorenadumitrascu.ro, 1 lorengraff.net, 1 lorenstudioo.com, 1 @@ -90081,7 +89305,7 @@ lostcosmonaut.cc, 1 lostfest.co.uk, 1 lostfield.tk, 1 -lostfilm.cx, 1 +lostfilm.cx, 0 lostfilm.tv, 1 lostgeek.de, 0 losthighway.tk, 1 @@ -90122,7 +89346,6 @@ lotioito.com.br, 1 lotl.ru, 1 lotn.mobi, 1 -lotnonline.com, 1 lotnonline.net, 1 lotnonline.nl, 1 loto-king.com, 1 @@ -90186,7 +89409,6 @@ louiserutkowski.tk, 1 louisianalifesciences.gov, 1 louisianamo.gov, 1 -louisianamusicfactory.com, 1 louisiananetzero.gov, 1 louisianarecoveryauthority.org, 1 louisianarural.gov, 1 @@ -90204,7 +89426,6 @@ loukas-stoltz.fr, 1 loukkos.ma, 1 loune.net, 1 -lounge.guide, 1 loungeballin.org, 1 loungecafe.net, 1 loungecafe.org, 1 @@ -90240,7 +89461,6 @@ lovebo9.com, 1 lovebo9.net, 1 lovebombed.wtf, 1 -lovebooksforyou.com, 1 lovebusinesseastmidlands.com, 1 lovebusinessexpo.co.uk, 1 lovebusinessnetworking.co.uk, 1 @@ -90306,7 +89526,6 @@ lovetablecloths.co.uk, 1 lovetarot.jp, 1 lovethatmakeup.tk, 1 -lovetheprint.co.za, 1 lovetime.co.il, 1 lovetowork.tk, 1 loveuno.com, 1 @@ -90345,7 +89564,7 @@ lowerthetone.com, 1 lowesprotect.com, 1 lowlab.io, 1 -lowlandrp.com, 1 +lowlandrp.com, 0 lowlevelmusic.com, 1 lowmagnitude.com, 1 lowndes-al.gov, 1 @@ -90535,8 +89754,7 @@ lucasjquinn.com, 1 lucaslarson.net, 1 lucasmateus.ga, 1 -lucastefanelli.dk, 1 -lucasvieira.fr, 0 +lucastefanelli.dk, 0 lucciolachile.com, 1 luce.life, 1 lucentioluo.space, 1 @@ -90550,7 +89768,6 @@ luchtspoor.nl, 1 lucia-art.cf, 1 lucia-riemer.de, 1 -luciara.mx, 1 lucid-light.de, 1 lucid-reality.ch, 1 lucidea.com, 1 @@ -90631,7 +89848,6 @@ ludotech.tk, 1 ludovic-frank.fr, 0 ludovic-muller.fr, 1 -ludovicfernez.com, 1 ludum-polus.xyz, 1 ludum.pl, 1 ludunwayoo.com, 1 @@ -90753,7 +89969,7 @@ luls.tk, 1 lulu960.xyz, 1 luludapomerania.com, 1 -luluwoldtravel.com, 1 +lulugold.ba, 1 lumaesthetic.co.uk, 1 lumafestival.com, 1 lumaistore.com.br, 1 @@ -90788,7 +90004,6 @@ lumixtar.com, 1 lummi-nsn.gov, 1 lummihealth.gov, 1 -lumminary.com, 1 lumoa.me, 1 lumoria.eu, 1 lumos.gallery, 1 @@ -90848,7 +90063,7 @@ lunextd.com, 1 lungenexperte.at, 1 lungta.pro, 1 -lunguflorin.ro, 1 +lungustefan.com, 1 lungustefan.ro, 1 luniak.net, 1 lunight.ml, 1 @@ -90950,6 +90165,7 @@ luvdress.com, 1 luve-gm.ch, 1 luvey.com, 1 +luviantrade.com.ec, 1 luvmihome.com, 1 luvscent.com, 1 lux-house.tk, 1 @@ -90979,7 +90195,6 @@ luxoestates.com, 1 luxonengineering.com, 1 luxonmx.com, 1 -luxory.ro, 1 luxosemimos.com.br, 1 luxoticlingerieandswimwear.com, 0 luxplay.com.tw, 1 @@ -91071,7 +90286,6 @@ lxg.de, 1 lxiii.eu, 1 lxiv.eu, 1 -lxn.re, 1 lxnchan.cn, 1 lxx4380.com, 1 ly-nux.fr, 1 @@ -91096,7 +90310,6 @@ lygus.lt, 1 lyklaskipti.is, 1 lyklasmidur.is, 1 -lykope.com, 1 lykos.ai, 1 lyla-pressing.com, 1 lymecraft.com, 1 @@ -91128,7 +90341,6 @@ lynred.com, 1 lynt.nl, 1 lynth.io, 1 -lynwilliams.com, 1 lynwoodca.gov, 1 lynx-webservice.com, 0 lynx.com.au, 1 @@ -91164,6 +90376,7 @@ lysethcreation.com, 1 lyst.co.uk, 1 lyteclinic.com, 0 +lytkins.ru, 1 lyubov-sovmestimost.cf, 1 lyuda.tk, 1 lyukaacom.ru, 1 @@ -91232,7 +90445,6 @@ m23cal.eu, 1 m24o.net, 1 m2designer.com.br, 1 -m2dleadership.com, 1 m2epro.com, 0 m2i-api.com, 1 m2icondb.com, 1 @@ -91243,9 +90455,7 @@ m2tm.fr, 1 m3-software.com, 1 m36533.com, 1 -m3eng.co.uk, 1 m3rck.ch, 1 -m3u8play.com, 1 m42-gmbh.de, 1 m426.ch, 1 m4g.ru, 1 @@ -91418,7 +90628,6 @@ macquariesolar.com, 1 macreosolutions.com, 1 macroad.com, 1 -macroban.com, 1 macrobills.com, 1 macroeng.tk, 1 macrofab.com, 1 @@ -91447,7 +90656,6 @@ madagascarbycar.com, 1 madamasr.com, 1 madamcougar.com, 1 -madame-kosmetikstudio.de, 1 madameblueimages.com, 1 madamemeringue.nl, 1 madasocialmedia.org, 1 @@ -91464,7 +90672,6 @@ made-to-usb.com, 1 made.md, 1 made2coach.com, 1 -madebydami.com, 1 madebyesmel.com, 1 madebyhand.art, 1 madebyshore.com, 0 @@ -91522,7 +90729,6 @@ madisonsquarerealestate.com, 1 madisontwpmi.gov, 1 madisonvilleky.gov, 1 -madisskips.com.au, 1 madkids.ga, 1 madknight.tk, 1 madlandezboard.tk, 1 @@ -91676,7 +90882,6 @@ magenkompass.de, 0 magentacares.com, 1 magentazorg.nl, 1 -magento-ecommerce.co.za, 0 magento-ecommerce.it, 1 magentodevelopment.co.uk, 1 magentrix.com, 0 @@ -91723,7 +90928,6 @@ magicgrants.org, 1 magiciansofchaos.tk, 1 magicjudges.org, 1 -magickery.com, 1 magickmale.de, 1 magiclen.org, 1 magicline.com, 1 @@ -91761,10 +90965,7 @@ magnatronic.com.br, 1 magneetfolie.nl, 1 magnes.priv.pl, 1 -magnesy-neodymowe.com.pl, 1 magnesy-neodymowe.pl, 1 -magnesy.de, 1 -magnesy.net.pl, 1 magnesy.priv.pl, 1 magnet-schultz.com, 1 magnet.pub, 1 @@ -91848,7 +91049,6 @@ mahatenders.gov.in, 1 mahatmarice.com, 1 mahatmayoga.org, 1 -mahavirmandirpatna.org, 1 mahawi.sk, 1 mahayana.tk, 1 mahbobmax.tk, 1 @@ -91899,7 +91099,7 @@ maierteamre.com, 1 maigesellschaft-lammersdorf.de, 1 maijia800.com, 1 -maikendener.com, 1 +maikendener.com, 0 maikhuong.tk, 1 maikoloc.com, 1 mail-de.jp, 1 @@ -92190,7 +91390,6 @@ makonet.com.au, 1 makos.jp, 1 makowitz.cz, 1 -makromedikal.com.tr, 1 maksa.ga, 1 maksima.kh.ua, 1 maksimmrvica.tk, 1 @@ -92214,7 +91413,6 @@ malafidezoeker.nl, 1 malagabaterias.com, 1 malagarental.com, 1 -malagarental.es, 1 malahov.tk, 1 malakye.com, 1 malami.gr, 1 @@ -92353,6 +91551,7 @@ malwarewise.com, 1 malwarez.xyz, 1 malworld.me, 1 +malynovskyi.com, 1 malypiesekzuzi.pl, 1 mamabatataya.com, 1 mamabearbabywear.com, 1 @@ -92403,7 +91602,6 @@ mamoris-net.jp, 1 mamot.fr, 1 mamradost.sk, 1 -mamsds.com, 1 mamtapark.tk, 1 mamuko.nl, 1 mamunlyric.tk, 1 @@ -92418,7 +91616,6 @@ manaenergija.lv, 1 manage.cm, 1 manage.com, 0 -manageairlinesbooking.com, 1 managed-it.africa, 1 managed-it.co.za, 1 managed-service-provider.co.uk, 1 @@ -92557,18 +91754,15 @@ manilatoday.net, 1 manimalosteo.com, 1 manimatter.ch, 1 -maninternational.pro, 1 maniorpedi.com, 1 maniosglass.gr, 1 manipil.ch, 0 -manipurmatka.net, 1 manisahaberleri.tk, 1 -manitaggarwal.com, 0 manitasavila.com, 1 manitbd.com, 0 manitcloud.com, 1 maniththakur.com, 1 -manito.kr, 1 +manito.kr, 0 manitoba.ca, 1 manitoulinairport.ca, 1 manitoulinairport.com, 1 @@ -92627,7 +91821,6 @@ manojsharan.me, 1 manolitodarts.tk, 1 manologaribay.tk, 1 -manopaskola.lt, 1 manorhousecapital.com, 1 manoro.de, 1 manortx.gov, 1 @@ -92834,7 +92027,6 @@ marbellaoptic.ro, 1 marbermedical.com, 1 marble.com, 1 -marblecapitallp.com, 1 marblecare.ae, 1 marbleceramiccorp.com.au, 1 marbleme.jp, 1 @@ -92887,8 +92079,6 @@ marchellenevers.tk, 1 marchesini.com, 1 marchesini.com.ua, 1 -marchetta.me, 1 -marchetta.tech, 1 marchhappy.tech, 0 marchinghatters.tk, 1 marchingnorth.com, 1 @@ -92915,7 +92105,6 @@ marcolattanzio.tk, 1 marcolux.lu, 1 marcomawards.com, 1 -marcomediacion.com, 1 marcopiottante.tk, 1 marcoreitmeier.de, 1 marcositaliandeli.co.uk, 0 @@ -93021,7 +92210,7 @@ marico.com, 1 maridacaterini.it, 1 maridana.lt, 1 -marie-pettenbeck-schule.de, 0 +marie-pettenbeck-schule.de, 1 marie-psy.fr, 1 marie.club, 1 mariealber.cz, 1 @@ -93033,7 +92222,6 @@ mariella-sun.net, 1 marielouise.tk, 1 mariemccaig.co.uk, 1 -mariemiramont.fr, 1 marien-bouwens.be, 1 marienolandmd.com, 1 marienvanoverbeek.nl, 1 @@ -93046,7 +92234,6 @@ marijuanajobscannabiscareers.com, 1 marik.net.br, 1 marikafranke.de, 1 -marikekinze.de, 1 marillatownshipmi.gov, 1 marilower.tk, 1 marilsnijders.nl, 1 @@ -93108,7 +92295,6 @@ mariouniversalis.fr, 1 mariowiki.com, 1 mariposah.ch, 1 -mariquitatrasquila.com, 1 marisamorby.com, 0 marisasitaliankitchen.com, 1 mariskavankasbergen.nl, 1 @@ -93129,7 +92315,7 @@ marizaikonomi.tk, 1 marj3.com, 1 marjadeleeuw.nl, 1 -marjala.no, 1 +marjala.no, 0 marjanne.tk, 1 marjeta-gurtner.ch, 1 marjon.photography, 1 @@ -93199,7 +92385,6 @@ marketone.com, 1 marketplace.tf, 1 marketplacetue.nl, 1 -marketresearch.biz, 1 marketsearch.ga, 1 marketsnerd.com, 1 marketsosyali.tk, 1 @@ -93429,7 +92614,7 @@ martinalonsovega.tk, 1 martinarnold.co.uk, 1 martinassurfdepot.tk, 1 -martinbaileyphotography.com, 0 +martinbaileyphotography.com, 1 martinbiely.com, 1 martinboerhof.nl, 1 martinbrandt.de, 1 @@ -93555,7 +92740,6 @@ marykirsch.net, 1 marylandcomptroller.gov, 1 marylandtaxes.gov, 1 -maryleemacdonald.org, 1 maryluzturismo.co, 1 marymagdaleneshrine.org, 1 marymaloney.tk, 1 @@ -93567,7 +92751,6 @@ marywet.net, 1 mas.be, 1 mas.bg, 1 -masa.sa, 1 masaarchive.org, 1 masajilanver.tk, 1 masakanibu.ga, 1 @@ -93593,7 +92776,6 @@ masduta.co, 1 masdzub.com, 1 masefieldvets.co.uk, 1 -masepps.pe, 1 maservant.com, 1 maservant.net, 1 masfloss.net, 1 @@ -93618,6 +92800,7 @@ masiniunelte.store.ro, 1 masinky.tk, 1 masiorama.it, 1 +masjidalbayyinah.org, 1 masjidalnoorwairarapa.co.nz, 1 mask-skin.tk, 1 maskamuse.com, 1 @@ -93688,7 +92871,6 @@ masshost.tk, 1 masshpc.gov, 1 massimo.com.my, 1 -massimocasa.it, 1 massindia.in, 1 massive.tk, 1 massiveanalyser.com, 1 @@ -93762,6 +92944,7 @@ masterstation.net, 1 mastersthesiswriting.com, 1 masterstouch.co.za, 1 +masterstruckingacademy.com, 1 mastertent.com, 1 masterton.com.au, 1 mastertutoriales.com, 0 @@ -93776,7 +92959,6 @@ mastodon.com.pl, 1 mastodon.cr, 1 mastodon.ee, 1 -mastodon.fun, 1 mastodon.org.uk, 1 mastodon.pl, 0 mastodon.top, 1 @@ -93794,7 +92976,6 @@ mat.services, 1 mat99.dk, 1 matacrylic.com, 1 -matador-group.eu, 1 matador.ch, 1 matafonov.tk, 1 mataharischoolsurf.com, 1 @@ -93904,6 +93085,7 @@ mathleaks.se, 1 mathnet.ru, 1 mathome.spdns.org, 1 +mathomedesign.com, 1 maths.network, 1 mathsource.ga, 1 mathspace.co, 1 @@ -93937,7 +93119,6 @@ matolab.lt, 1 matomari.tk, 1 matopu.tk, 1 -matora.com.au, 1 matosinfo.com, 1 matosinfo.fr, 1 matoutepetiteboutique.com, 1 @@ -94188,7 +93369,6 @@ mauthietkecafe.com, 1 mauticamp.ng, 1 mautwelt.de, 1 -mave.sh, 1 maveeranpasupathi.tk, 1 maven.ng, 0 maventrading.com, 0 @@ -94231,7 +93411,6 @@ max55365.com, 0 max6365.com, 0 max66365.com, 0 -max77365.com, 0 max8365.com, 0 max88365.com, 0 max9365.com, 0 @@ -94248,7 +93427,6 @@ maxbytes.nl, 0 maxcash.com, 1 maxchan.info, 1 -maxchap.ir, 1 maxchernoff.ca, 1 maxclean.ml, 1 maxcleaning.be, 1 @@ -94313,7 +93491,6 @@ maxley.yachts, 1 maxmabyte.com, 1 maxmanus.ga, 1 -maxmarket.bg, 1 maxmatthe.ws, 0 maxmind-test.com, 1 maxmind.com, 1 @@ -94322,6 +93499,7 @@ maxmusical.ml, 1 maxnac.tk, 1 maxnews.mn, 1 +maxogles.com, 0 maxopen.cf, 1 maxopolyworldnews.com, 1 maxostapenko.com, 1 @@ -94396,7 +93574,6 @@ mayslandingcornholeleague.com, 1 maythai.eu, 1 maythai.pl, 1 -maytretrungphuong.com, 1 mayuraakitchens.com, 1 maywood-il.gov, 1 mayx.eu.org, 1 @@ -94435,7 +93612,6 @@ mbainflatables.co.uk, 1 mbakaro.in, 1 mbalaw.pl, 1 -mbank.kg, 1 mbar.us, 1 mbardot.com, 1 mbasic.facebook.com, 0 @@ -94494,7 +93670,7 @@ mc007.xyz, 1 mc2.plus, 1 mc2informatique.fr, 1 -mc3dreal.de, 0 +mc3dreal.de, 1 mc4free.cc, 1 mcagon.tk, 1 mcahm.eu.org, 1 @@ -94506,12 +93682,10 @@ mcb-bank.com, 0 mcba.com.br, 1 mcbbs.wiki, 1 -mcbooks.vn, 0 mcc.edu.ph, 1 mccabes.com.au, 1 mccallkulak.org, 1 mccannhealth.com, 1 -mccannworldgroup.com, 1 mccarthyprestige.com.au, 1 mccinc.ca, 1 mcclaincountyok.gov, 1 @@ -94740,7 +93914,6 @@ mdmhukuk.com, 1 mdns.eu, 1 mdosch.de, 1 -mdpharma.com, 1 mdpp.com.br, 1 mdpparish.com, 1 mdroo.com, 1 @@ -94787,7 +93960,6 @@ meanit.ie, 1 meanjstraininginstitute.com, 1 meanmugauto.com, 1 -meany.xyz, 1 meao.io, 1 meao.market, 1 meao.online, 1 @@ -94809,7 +93981,6 @@ meavagas.com, 1 meazurelearning.com, 1 mebel-dnr.ml, 1 -mebel-renessans.ru, 1 mebel-voronezh.cf, 1 mebelconcept.tk, 1 mebelipalitra.ru, 0 @@ -94934,7 +94105,6 @@ mec0976.com, 1 mec0977.com, 1 mec539.com, 1 -mec555.com, 0 mec760.com, 1 mec825.com, 1 mec888.net, 1 @@ -94945,6 +94115,7 @@ mecalux.nl, 1 mecambioamac.com, 1 mecanicoautomotriz.org, 0 +mecanique-casa.com, 1 mecaniquemondor.com, 1 mecanizadostrs.com, 1 mecari.tk, 1 @@ -94996,7 +94167,6 @@ medcartoon.com, 1 medcenter.online, 1 medcentr.online, 1 -medcheck.ma, 1 medcir.com.br, 1 medcof.com.br, 1 medcorfu.gr, 1 @@ -95069,7 +94239,6 @@ mediahaus.de, 0 mediahiburan.my, 1 mediajurnal.com, 1 -medialandscapes.org, 1 medialine.ag, 1 medialine.com, 1 medialinkz.ga, 1 @@ -95227,6 +94396,7 @@ mediumforgood.com, 1 mediums.cf, 1 mediumseznam.cz, 1 +medivisionsc.com, 1 medivox.tk, 1 mediweed.tk, 1 mediwish.com, 1 @@ -95263,7 +94433,6 @@ medschrome.com, 1 medscope.com.au, 1 medscope.tk, 1 -medservice.cz, 1 medservis.online, 1 medsi-online.tk, 1 medsister.tk, 1 @@ -95281,7 +94450,6 @@ medtronicpain.com, 1 meduna.org, 1 medunovi.com, 1 -medusa.wtf, 1 meduza.io, 1 medvedikorenka.cz, 1 medvedivka.tk, 1 @@ -95358,7 +94526,6 @@ mega.io, 0 mega.nz, 1 mega.ru, 1 -mega888ios.com, 1 megaar.tk, 1 megabike.tk, 1 megabook.ml, 1 @@ -95368,6 +94535,7 @@ megacek.cz, 1 megacompany.cz, 1 megadesignecv.com.br, 1 +megadimensao.com.br, 1 megaelettrostimolatore.com, 1 megafilez.tk, 1 megaflix.nl, 1 @@ -95451,7 +94619,6 @@ megztosidejos.lt, 1 meh.is, 1 mehalick.com, 1 -meharossii.ru, 1 mehdavia.tk, 1 mehdibouchema.be, 1 mehdiqurancenter.com, 1 @@ -95489,7 +94656,6 @@ meilleurs-site-de-rencontres.com, 1 meilleursagents.com, 1 meilleursavis.fr, 1 -meilleursenlignejeux.com, 1 meilleursjeuxporno.fr, 1 meilleurstrucs.com, 1 meimeilio.com, 1 @@ -95534,7 +94700,6 @@ meinhard.com, 1 meinpflegedienst.net, 1 meinprospekt.de, 1 -meinsite.online, 1 meinstartinsleben.com, 1 meinstartinsleben.de, 1 meinstift.ch, 1 @@ -95659,7 +94824,6 @@ meleeweb.net, 1 melenchatsmelenchiens.fr, 1 meleracupuncture.com, 1 -melhorescasino.com, 1 melhoria.co.uk, 1 melhortennis.com.br, 1 meli.la, 1 @@ -95725,7 +94889,6 @@ melusine.eu, 1 melvillecity.com.au, 1 melvinsfrance.tk, 1 -melvintemo.com, 1 melyssamonroy.com, 1 mema.recipes, 1 memberbaz.ml, 1 @@ -95756,7 +94919,6 @@ memez.download, 1 memind.net, 1 memiux.com, 1 -memjour.com, 1 memo-linux.com, 1 memo-werbeartikel.de, 1 memo.de, 1 @@ -95844,7 +95006,6 @@ mennace.com, 1 mennetwork.com, 1 menno.cloud, 1 -mennohouse.ca, 1 menole.com, 1 menole.de, 1 menole.net, 1 @@ -95892,7 +95053,7 @@ menthiere.fr, 1 menti.com, 1 mentimeter.com, 1 -mentionlink.com, 0 +mentionlink.com, 1 mentiq.az, 1 mentolo.tk, 1 mentonein.gov, 1 @@ -96046,7 +95207,6 @@ merenita.eu, 1 merenita.net, 1 merezha.ua, 1 -mergeedu.com, 1 mergegroup.com.au, 1 mergellina.tk, 1 meribook.com, 1 @@ -96073,7 +95233,6 @@ merke.tk, 1 merkel.me, 1 merklin.gq, 1 -merklingen.de, 1 merlenorman.com, 1 merlet.eu, 1 merlin-memorial.de, 1 @@ -96127,7 +95286,6 @@ mesh.gov, 1 meshcore.forum, 1 meshdigital.io, 1 -meshekard.co.il, 1 meshflow.be, 1 meshflow.net, 1 meshinspector.com, 1 @@ -96330,7 +95488,7 @@ methodisthealth.com, 1 methodistorthopedics.com, 1 methodprinting.com, 1 -methodsofcare.com, 1 +methodwise.pt, 1 methotrexatee.gq, 1 methotrexates.gq, 1 methuen.gov, 1 @@ -96389,13 +95547,11 @@ metron-eging.com, 1 metron-networks.com, 1 metron-online.com, 1 -metron.mv, 1 metronidazolee.gq, 1 metronik.it, 1 metronome.ga, 1 metrophone.vn, 1 metroplanorlando.gov, 1 -metroplex.me, 1 metropole.com.au, 1 metropolis.ga, 1 metropolis5000.tk, 1 @@ -96425,7 +95581,7 @@ metver.tk, 1 metyweb.ga, 0 meu-amor.com, 1 -meu.re, 1 +meu.re, 0 meubairro360.com.br, 1 meubanco7.com.br, 1 meubebepa.com.br, 1 @@ -96436,7 +95592,6 @@ meuitinerario.com.br, 1 meulenerkes.tk, 1 meulivro.biz, 1 -meulk.co.uk, 0 meulocal.ml, 1 meuneneoficial.com.br, 1 meupix.ai, 1 @@ -96517,11 +95672,9 @@ mfmarquesantos.pt, 1 mfoda-eg.com, 1 mforum.com.au, 1 -mfpccprod.com, 1 mfr-lameignanne.fr, 1 mfrepair.com, 1 mft.global, 1 -mfwd.org, 1 mfxbe.de, 0 mfxer.com, 1 mfxm.fr, 1 @@ -96544,7 +95697,6 @@ mgfgroup.us, 1 mgfpatrimoine.com, 1 mghiorzi.com.ar, 0 -mghw.ch, 1 mgi.gov, 1 mgi.sh, 1 mgisinc.ca, 1 @@ -96714,7 +95866,6 @@ michaelaelsner.de, 1 michaelahern.net, 1 michaelamead.com, 1 -michaelasawyer.com, 1 michaelband.co, 1 michaelband.com, 1 michaelbeer.co.uk, 1 @@ -96758,7 +95909,6 @@ michaelroemer.de, 1 michaelschmidt.ch, 1 michaelschubert.com, 0 -michaelstoffer.com, 1 michaeltaboada.me, 1 michaeltruskowski.com, 1 michaelvician.me, 0 @@ -96918,7 +96068,6 @@ midcoastproperties.com, 1 middag.com.br, 1 middascachaca.com.br, 1 -middelstaedt.com, 1 middle-way.de, 1 middleboroughma.gov, 1 middleeasy.com, 1 @@ -97023,7 +96172,7 @@ mightyoakmarketing.ca, 1 mightytext-ios.tk, 1 mightytips.biz, 0 -mightytips.com.br, 1 +mightytips.com.br, 0 mightytips.hu, 0 migliorailtuoambiente.it, 1 migliori-siti-di-incontro.com, 1 @@ -97068,7 +96217,6 @@ mihir.ch, 1 mihirsingh.com, 1 mihnea.net, 1 -mihomesource.com, 1 mihsislander.org, 1 mihu233.com.cn, 1 miih-kiosk.com, 1 @@ -97204,7 +96352,6 @@ mikeguy.co.uk, 1 mikeirwinguitarlessons.com, 1 mikeklidjian.com, 1 -mikekreuzer.com, 1 mikelpradera.tk, 1 mikelundpainting.com, 1 mikemcgeephotography.com, 1 @@ -97362,7 +96509,6 @@ milk.games, 1 milk.xyz, 1 milk3soft.ai, 1 -milka.fr, 1 milkaalpesiutazas.hu, 1 milkacat.com, 1 milkagyengedseg.hu, 1 @@ -97386,7 +96532,6 @@ millcreekwa.gov, 1 millefleurs.eu, 1 millenn.photos, 1 -millennialbella.net, 1 millennium-thisiswhoweare.net, 1 millenniumfalcon.org, 1 millenniumsg.com, 1 @@ -97413,7 +96558,6 @@ millibitcoin.jp, 1 milliegrace.org, 1 millikart.az, 1 -millionaire.email, 1 millionaireclub.tk, 1 millionairemethodsacademy.tk, 1 millioncloud.org, 1 @@ -97541,7 +96685,6 @@ mindingourway.com, 1 mindjee.tk, 1 mindkrafttech.com, 1 -mindleaking.org, 1 mindmatters.social, 1 mindmax.fi, 1 mindmeister.com, 1 @@ -97814,6 +96957,7 @@ minucio.co, 1 minul.in, 1 minutamody.cz, 1 +minutashop.ru, 1 minuteflightdeals.com, 1 minuten-drogentests.de, 1 minutepunchline.com, 1 @@ -97835,8 +96979,6 @@ mipapo.de, 1 mipediatra.tk, 1 mipesa.cz, 0 -mipiaci.co.nz, 0 -mipiaci.com.au, 0 miplanilla.com, 1 mipolak.eu, 1 mipromo.com, 1 @@ -98040,7 +97182,6 @@ missycosmeticos.com.br, 1 missycraindance.com, 1 missyjay.tk, 1 -mist79.ru, 1 mistades.ga, 1 mistajsay.com, 1 mistaken.pl, 1 @@ -98078,7 +97219,6 @@ mistressofbeads.tk, 1 mistressofthehouseofbooks.com, 1 mistrivolantu.cz, 1 -misupportit.dk, 1 misura.re, 1 misw.jp, 1 miswonline.nl, 1 @@ -98105,9 +97245,7 @@ mitenloytaatyota.fi, 1 mitensaadatoita.fi, 1 mitensaadatyota.fi, 1 -mitersonfishing.bg, 1 mitev.gq, 1 -mitevi.com, 1 mitfahrgelegenheit.de, 1 mitfreespeech.org, 1 mitgrussen.de, 1 @@ -98143,7 +97281,6 @@ mitre10.com.au, 0 mitrecaasd.org, 1 mitremai.org, 1 -mitroo.fun, 1 mitrostudios.com, 1 mitsannapolis.com, 1 mitsign.com, 1 @@ -98207,7 +97344,6 @@ mix-recruit.jp, 1 mix.my, 1 mixandplay.tk, 1 -mixedanimals.com, 0 mixedrecipe.com, 1 mixer.cz, 1 mixerfestival.com.br, 1 @@ -98356,7 +97492,6 @@ mkt.cx, 1 mkt7.de, 1 mktcoral.com, 1 -mktemp.org, 1 mkultraclean.com.au, 1 mkw.st, 1 mkws.sh, 1 @@ -98445,7 +97580,6 @@ mmcase.ml, 1 mmdc.ru, 0 mmdriving.ca, 1 -mme.re, 1 mmhome.fr, 1 mmilog.hu, 1 mmimicro.com, 1 @@ -98595,6 +97729,7 @@ mobilecraftingco.com, 1 mobilefactory.io, 1 mobilefidelity-magazin.de, 1 +mobilegameslist.com, 1 mobilegoldcoastelectrical.ga, 1 mobilehydraulics.com.au, 1 mobilelaby.com, 1 @@ -98651,7 +97786,7 @@ mobiride.co, 1 mobistartv.ml, 1 mobius.network, 1 -mobix-diskothek.de, 1 +mobizent.com, 1 mobmp4.info, 1 mobobe.com, 1 mobolight.ml, 1 @@ -98688,7 +97823,6 @@ mod.io, 1 moda-donna.cf, 1 moda-line.ml, 1 -moda-querida.de, 1 modacompleta.com.br, 1 modafilmdmodafinil.com, 1 modafinil.wiki, 1 @@ -98696,7 +97830,6 @@ modafo.com, 1 modahaber.com, 1 modalogi.com, 1 -modalrakyat.com, 1 modaltraining.co.uk, 1 modamia.pl, 1 modamoom.com.br, 1 @@ -98772,7 +97905,6 @@ moderntld.net, 1 moderntrainer.co.za, 1 moderntreasury.com, 0 -modernwebz.com, 1 modernworkplacelearning.co.za, 1 modernx.de, 1 modesalination.com, 1 @@ -98854,7 +97986,6 @@ moetrack.com, 1 moevps.com, 1 moewe.org, 1 -moexian.org, 1 moeyy.tech, 1 mof.gov.ws, 0 mofarennen.com, 1 @@ -99102,7 +98233,6 @@ mondayaftersunday.com, 1 mondaynightbrewing.com, 1 monde-oriental.tk, 1 -monde.win, 1 mondechenoafrance.tk, 1 mondedie.fr, 1 mondenissin.com, 1 @@ -99127,7 +98257,6 @@ monetag.com, 0 monetenfuchs.de, 1 monetize.ml, 1 -monetizehelper.com, 1 monetizer.co, 1 monetizer.com, 1 monetizzando.it, 1 @@ -99308,7 +98437,6 @@ monstermoney.tk, 1 monsternet.pl, 1 monstersuniversity.ga, 1 -monstertalesgame.com, 1 monstertraxstudio.com, 1 monsterx.cn, 1 monstl.com, 1 @@ -99406,22 +98534,21 @@ moo.software, 1 moocat.me, 1 mooddie.pt, 1 -moodfabrics.com, 1 moodfoods.com, 1 moodgym.com.au, 1 moodgym.de, 1 moodifiers.com, 0 moodle.gq, 1 moodle.servebbs.com, 1 +moodlecfp.pt, 1 moodlegnr.pt, 1 -moodmagicmusic.com, 1 +moodmagicmusic.com, 0 moodsta.com, 1 moodup.team, 1 moodyfssrequest.com, 1 mooglms.com, 1 mooguire.com, 0 mooijwerk.com, 1 -mooivoet.nl, 1 moojp.co.jp, 1 mooka.tk, 1 moola.market, 1 @@ -99434,7 +98561,7 @@ moonbooth.com, 1 moonboxi.tk, 1 moonboys.de, 1 -moonbyte.at, 1 +moonbyte.at, 0 moonchart.co.uk, 1 moondoor.tk, 1 moondrop.org, 1 @@ -99540,7 +98667,6 @@ morbotron.com, 1 morchstore.com, 1 morcillaencaldera.com, 1 -mord-ost.de, 1 mordamla.com, 1 mordor.email, 1 mordor.land, 1 @@ -99667,7 +98793,6 @@ mortaltorment.tk, 1 mortazavifar.com, 1 morteau.org, 1 -mortebrume.eu, 1 mortengamstpedersen.tk, 1 mortenhc.dk, 1 mortezaafri.tk, 1 @@ -99760,7 +98885,6 @@ mostlyharmless.at, 1 mostlyoverhead.com, 1 mostmost.tk, 1 -mostynlaw.com, 1 mosurist.tk, 1 moswand.nl, 1 motability.co.uk, 1 @@ -99846,12 +98970,10 @@ motonovinky.cz, 1 motor-agro.com, 1 motor-agro.com.ua, 1 -motor-agro.ru, 1 motor-cycles.tk, 1 motor-forum.nl, 1 motor-show.cz, 1 motor1.com, 1 -motoramzsport.com, 1 motorbiketourhanoi.com, 1 motorcityalignment.com, 1 motorcitycasino.com, 1 @@ -99980,12 +99102,11 @@ moval.gov, 1 movavi.id, 1 movavi.ru, 1 -move-out-cleaning.co.uk, 1 moveceara.com.br, 1 movefi.com.br, 1 moveisdecoracao.com.br, 1 moveissul.com.br, 1 -moveitmoveitmovers.com, 1 +moveitmoveitmovers.com, 0 moveltix.net, 1 movemais.com, 1 movember.com, 0 @@ -100018,6 +99139,7 @@ moviefreeze.com, 1 movieglot.ml, 1 moviego.ch, 1 +moviego.ws, 1 movieguys.org, 1 moviejack.org, 0 moviemadness.uk, 1 @@ -100212,7 +99334,7 @@ mrcool.com, 0 mrcool.store, 1 mrcooldiy.ca, 1 -mrcooldiy.com, 1 +mrcooldiy.com, 0 mrcoolevents.com, 1 mrcoolfranchise.com, 0 mrcoolfranchising.com, 0 @@ -100225,7 +99347,7 @@ mrdatenschutz.de, 1 mrdayman.com, 1 mre.to, 1 -mredsanders.net, 1 +mredsanders.net, 0 mrephrase.com, 1 mrfactors.com, 1 mrfd.nl, 1 @@ -100269,7 +99391,6 @@ mrmoregame.de, 1 mrmosier.tk, 1 mrmostafaacademy.tk, 1 -mrmr.biz, 1 mrnabetterlife.com.sg, 1 mrnathanpowell.com, 1 mrnh.tk, 1 @@ -100336,7 +99457,6 @@ msa-net.ru, 1 msa.bank, 1 msafa.org, 1 -msahebhonar.com, 1 msaludasuhogar.com, 1 msar.eu, 1 msbmb.com, 1 @@ -100485,7 +99605,6 @@ mtdnrc.gov, 1 mte-online.com, 1 mte.sk, 1 -mtechprecisioninc.com, 1 mtehe-square.com, 1 mtel.gr, 1 mteleport.net, 1 @@ -100556,7 +99675,6 @@ mu00.org, 1 mu3e.com, 1 mu3on.com, 1 -muabannhanh.com, 0 muac-innolab.eu, 1 muafakatmalaysia.ga, 1 muafakatmalaysia.gq, 1 @@ -100580,7 +99698,6 @@ mucmail.de, 1 mucustoms.com, 1 mudanzasacuna.com.co, 1 -mudanzasuiza.com.ec, 1 mudanzasytransportesbh.com, 1 mudaomundo.org, 1 mudasobwa.tk, 1 @@ -100690,7 +99807,6 @@ multi-cryptex.gq, 1 multi-fruit.tk, 1 multi-prets-hypotheques.ca, 1 -multi-pribor.ru, 1 multi-serwis.com.pl, 1 multi-soudures.fr, 1 multi-tool.ml, 1 @@ -100699,7 +99815,6 @@ multiaxisinc.ca, 1 multibomasm.com.br, 1 multicoin.capital, 0 -multicolortv.com, 1 multiconsumos.tk, 1 multicore.cl, 1 multicorpbra.com, 1 @@ -100942,7 +100057,6 @@ museum.nl, 1 museumcenter.az, 1 museumhammarlind.se, 1 -museumjeugduniversiteit.nl, 1 museumplantinmoretus.be, 1 museumwaalsdorp.nl, 1 musexpo.net, 1 @@ -100973,7 +100087,6 @@ musicarenagh.com, 1 musicbox.party, 1 musicboxx.cz, 1 -musicbykshitij.com, 1 musicc.net, 1 musicchris.de, 1 musicfactory.ml, 1 @@ -101053,7 +100166,6 @@ musmann.io, 1 musopen.org, 1 muspla.com.br, 1 -mussalains.com, 1 musselsblog.com, 1 mussila.com, 1 mussonsppe.com, 1 @@ -101082,7 +100194,6 @@ mustwatch.com, 1 musubi-dev.net, 1 musulmanesnuevos.tk, 1 -mususu.com, 1 mutabakat.org.tr, 1 mutagen.io, 0 mutahar.me, 0 @@ -101117,7 +100228,6 @@ muvy.tube, 1 muwatenraqamy.org, 1 muwi.tk, 1 -muxicloudy.de, 1 muxidream.cn, 1 muxup.com, 1 muy.ooo, 1 @@ -101159,7 +100269,7 @@ mventix.com, 1 mvhsoracle.com, 1 mvib.net, 1 -mviess.de, 1 +mviess.de, 0 mvisioncorp.com, 1 mvistatic.com, 1 mvmcorps.com, 1 @@ -101217,7 +100327,6 @@ mx-moto.fr, 0 mx-qr.com, 1 mx-quad.fr, 0 -mx-server.uk, 1 mx-solutions.net, 1 mx.org.ua, 1 mx.search.yahoo.com, 0 @@ -101239,7 +100348,6 @@ my-azov.tk, 1 my-bratsk.tk, 1 my-calend.ru, 1 -my-carrent.de, 1 my-cars.tk, 1 my-clubpenguin.tk, 1 my-contract.ch, 0 @@ -101506,7 +100614,6 @@ mydigitalexperience.fr, 1 mydigitalhealthwallet.com, 1 mydigitalmarketingempire.com, 1 -mydigitalnation.com, 1 mydigitalpublication.com, 1 mydirectsys.com, 1 mydirtyclub.com, 1 @@ -101556,7 +100663,7 @@ myenglish.tk, 1 myenocta.com, 1 myensolofts.com, 1 -myentspecialist.sg, 1 +myentspecialist.sg, 0 myepass.bg, 1 myepass.de, 1 myepidoma.gr, 1 @@ -101618,7 +100725,6 @@ myfsb.com, 1 myfuhui.com, 1 myfunworld.de, 1 -myfurguard.com, 1 myfursona.com, 1 myfutanari.com, 1 myfuturewebsite.co.uk, 1 @@ -101631,7 +100737,6 @@ mygameconsole.tk, 1 mygaming.news, 1 mygate.at, 0 -mygaypornstarlist.com, 1 mygaysitges.com, 1 mygd.org, 1 mygear.live, 1 @@ -101663,7 +100768,6 @@ mygov.scot, 1 mygr8app.com, 1 mygreatjob.eu, 1 -mygreatlakes.org, 1 mygreatwebsite.co.uk, 1 mygreencloset.com, 1 mygrodno.tk, 1 @@ -101675,7 +100779,6 @@ myharley-davidson.net, 1 myhealthchecked.com, 0 myhealthcheckup.ca, 1 -myhealthcheckup.com, 1 myhealthsquad.ca, 1 myhealthyday.com, 1 myhelcim.com, 1 @@ -101778,7 +100881,6 @@ mylofamily.com, 1 myloft.xyz, 1 myloneworkers.com, 1 -myloplaza.com, 1 mylosscontrolservices.com, 1 mylost.com, 1 mylotto.co.nz, 1 @@ -101846,7 +100948,7 @@ mynaturalmood.es, 1 mynaturebox.com, 0 mynaughtyalbum.com, 1 -mynaui.com, 1 +mynaui.com, 0 myndcommunication.com, 0 myndighetermeddnssec.se, 1 myndighetermedipv6.se, 1 @@ -101959,7 +101061,6 @@ myredfoxlabs.com, 1 myref.net, 1 myreferral.systems, 1 -myrejuvenators.com, 1 myrekber.co.id, 1 myremont.tk, 1 myremotelogin.ddns.net, 1 @@ -101968,7 +101069,6 @@ myrepubic.net, 1 myrepubiic.net, 1 myrepublc.net, 1 -myrepublic.asia, 1 myrepublic.cf, 1 myrepublic.cloud, 1 myrepublic.com.cn, 1 @@ -102001,11 +101101,9 @@ myrepublicfibre.com.au, 1 myrepublicgroup.com, 1 myrepublicinternet.com.au, 1 -myrepublicltd.com, 1 myrepublicmy.com, 1 myrepublicnz.com, 1 myrepublicsg.com, 1 -myrepublictelecom.com, 1 myrepubllc.net, 1 myresearchapp.com, 1 myresearchtoolbox.net, 1 @@ -102059,7 +101157,6 @@ myserviceportal.de, 1 myservices.digital, 1 myservik.ml, 1 -myseu.cn, 0 mysexpedition.com, 1 mysexvids.net, 1 mysexycard.com, 1 @@ -102076,7 +101173,6 @@ mysisterandi.co.za, 1 myslc.gov, 1 mysmallbusinesssidekick.com, 1 -mysmartloan.ca, 1 mysmartserve.com, 0 mysmsapp.cn, 1 mysociety.ml, 1 @@ -102092,7 +101188,7 @@ mysports.com, 1 mysql-real-escape-string.xyz, 1 mysqldump-secure.org, 1 -myssl.com, 1 +myssl.com, 0 mystaffonline.com, 1 mysteriouscode.com, 1 mysteriouscode.io, 1 @@ -102123,7 +101219,7 @@ mystorydoctor.com, 1 mystorymonster.com, 1 mystown.org, 1 -mystream.com, 1 +mystream.com, 0 mystreambox.fr, 1 mystreet.ga, 1 mystrength.com, 1 @@ -102353,7 +101449,6 @@ na-agency.com, 1 na-bibb.de, 1 na-kipre.tk, 1 -na-school.nl, 1 na.nl, 1 na1.nl, 1 naacam.org.za, 1 @@ -102394,7 +101489,6 @@ nachoblanco.tk, 1 nachos.stream, 1 nachovni.org, 1 -nachrichten-heute.net, 1 nachsendeauftrag.net, 0 nachtherz.com, 1 nachtlebenliebe.de, 1 @@ -102499,9 +101593,7 @@ nahue.ar, 1 nahue.com.ar, 1 naidoc.org.au, 1 -naifix.com, 1 naijapickup.com, 1 -naijapower.com, 1 naijaxnet.com.ng, 1 naijjobs.com, 1 naika.clinic, 1 @@ -102565,7 +101657,8 @@ nakib4tech.com, 1 nakim.cf, 1 nakin.tk, 1 -nakisa.com, 0 +nakisa.com, 1 +nakit.eu, 1 nakjadah.ddns.net, 1 nakka.ch, 1 nakkati.tk, 1 @@ -102831,7 +101924,6 @@ narutouzumaki.tk, 1 narutowicza47.pl, 1 narvizit.com, 1 -narware-testing.com, 1 nary-software.com, 1 narzedziownia.top, 1 nas-tech.de, 1 @@ -103178,7 +102270,6 @@ navenlle.com, 1 navidarian.tk, 1 navienna.com, 1 -navient.com, 1 navientagsettlement.com, 1 navigantcu.org, 1 navigatorgpo.com, 1 @@ -103376,7 +102467,6 @@ ncpw.gov, 1 ncretac.org, 1 ncrha.co.tt, 1 -ncrjobs.in, 1 ncrypt.at, 1 ncs-cleaning.dk, 1 ncsa.gov.qa, 1 @@ -103461,7 +102551,6 @@ nearnorthmassage.com, 1 nearnorthus.com, 1 neartothesky.com, 1 -neasahourigan.com, 0 neatful.eu.org, 1 neath-afan-gymnastics.com, 1 neatlife.co.uk, 1 @@ -103497,7 +102586,6 @@ necd.me, 1 nechtan.io, 1 necio.ca, 1 -neckbeard.xyz, 1 necklacen.com, 1 necord.com, 1 necrat.us, 1 @@ -103506,7 +102594,7 @@ necronaut.tk, 1 necronomusick.tk, 1 necropolis-online.tk, 1 -necta.go.tz, 0 +necta.go.tz, 1 nectar.co.nz, 1 nectere.ca, 1 nectir-staging.com, 1 @@ -103592,7 +102680,6 @@ negocios-imatore.com, 1 negociosparaoptimistas.com, 1 negociosurbanos.net, 1 -negoya-shokai.info, 1 negozimoda.it, 1 negoziointimo.com, 1 negr.gay, 1 @@ -103609,7 +102696,6 @@ nehrp.gov, 1 nehta.gov.au, 1 nehtw.com, 1 -nei.org, 1 neide.ga, 1 neighbor.co.il, 1 neighborhood-threat.tk, 1 @@ -103689,7 +102775,6 @@ nellen.it, 1 nellislife.marketing, 1 nellydallois.fr, 1 -nellydental.com, 1 neln.jp, 1 neln.net, 1 nelnet.com, 1 @@ -103741,7 +102826,6 @@ nen-ga.jp, 1 nenapu.tk, 1 nenasal.com, 1 -nenco.nl, 1 nenderus.su, 1 nenergy.pt, 1 nenesiosi.lt, 1 @@ -103878,7 +102962,6 @@ nerdnet.goip.de, 1 nerdoftheherd.com, 1 nerdoutstudios.tv, 1 -nerdplusart.com, 1 nerdpol.ch, 1 nerdpol.org, 1 nerdpress.net, 1 @@ -103928,6 +103011,7 @@ neskins.com, 1 nesolabs.de, 1 nespim.tk, 1 +ness.com, 1 nessaesthetics.com, 1 nesscitycatholic.org, 1 nessimworks.com, 1 @@ -104012,11 +103096,8 @@ netevents.org, 1 netexlearning.com, 1 neteye.ru, 1 -netfabb.com, 1 +netfabb.com, 0 netface.com.br, 1 -netferie.de, 1 -netferie.dk, 1 -netferie.no, 1 netfiles.de, 1 netfilter.cc, 1 netfirmtextile.com, 1 @@ -104169,7 +103250,6 @@ nettoyageleriverain.com, 1 nettoyagesleriverain.com, 1 nettskjema.no, 1 -nettunoguide.dk, 1 nettverk.fi, 1 nettx.co.uk, 1 nettype.ca, 1 @@ -104190,7 +103270,6 @@ netwire.tk, 1 networg.com, 1 networg.cz, 1 -networg.pl, 1 network-midlands.co.uk, 1 network-midlands.uk, 1 network-perception.com, 1 @@ -104302,7 +103381,6 @@ neuropsicologiaperin.com.br, 1 neuropsiperches.com, 1 neuropsychologisthouston.com, 0 -neurosurgeryinmexico.com, 1 neuroticosanonimos.tk, 1 neurotransconcept.com, 0 neurotransmitter.net, 1 @@ -104367,7 +103445,6 @@ new-pornvideos.com, 1 new-smile.cf, 1 new-standart.tk, 1 -new-techina.com, 1 new-tuning.tk, 1 new-vip.com, 1 new-vip1.com, 1 @@ -104483,7 +103560,6 @@ newfoundland-labradorflora.ca, 1 newfoundlandlabrador.com, 0 newgarden.tk, 1 -newgardenfarms.org, 1 newglarusvillagewi.gov, 1 newgle.xyz, 1 newgrowbook.com, 0 @@ -104566,6 +103642,7 @@ newprairiepress.org, 1 newpress24.tk, 1 newquilters.com, 1 +newreality.nl, 0 newreleases.io, 1 newrelic.com, 1 newreligiousmovements.org, 1 @@ -104603,7 +103680,6 @@ news123.ga, 1 news12elite.tk, 1 news17.tk, 1 -news19.org, 1 news24rus.tk, 1 news29.tk, 1 news53today.tk, 1 @@ -104706,12 +103782,11 @@ newtonhaus.com, 1 newtrackon.com, 1 newtravelplans.com, 1 -newtrendsbykate.com, 1 newusatoday.ga, 1 newvehicle.com, 1 newvisionhealing.com, 1 newwaterford-oh.gov, 1 -newway.ie, 1 +newway.ie, 0 newwind.tk, 1 newwise.com, 1 newworldnewlife.tk, 1 @@ -104766,7 +103841,7 @@ nexril.net, 0 nexs.gg, 1 nexscience.tk, 1 -nexsol-tech.ch, 0 +nexsol-tech.ch, 1 next-fact.com, 1 next-geek.fr, 1 next-idea.co, 1 @@ -104775,7 +103850,6 @@ next-tms.com, 1 next.ink, 1 next.me, 1 -next24.io, 1 nextads.ch, 1 nextbike.tk, 1 nextcairn.com, 1 @@ -104836,7 +103910,6 @@ nextvibration.com, 1 nextvision.pt, 1 nextwab.com, 1 -nextwo.com, 1 nextworldcoding.ga, 1 nextzen.com.bd, 1 nexus, 1 @@ -104872,7 +103945,6 @@ nfbpwm.co.za, 1 nfbst.co.za, 1 nfcc.org, 1 -nfclegal.com, 1 nfcq.co.uk, 1 nfcu.org, 1 nfcweb.de, 1 @@ -104962,6 +104034,7 @@ nguoimuahangmy.com, 1 nguru.net, 1 nguyenanhung.com, 1 +nguyencucthanh.com, 1 nguyenductrong.net, 1 nguyenduythiem.com, 1 nguyenfamily.cc, 1 @@ -105019,7 +104092,6 @@ niagaraconstruction.org, 1 niagarafalls.ca, 1 niallator.com, 1 -nianubo.net, 0 niawier-wetsens.tk, 1 nibbler.ai, 1 nibblespot.com, 1 @@ -105107,7 +104179,7 @@ nichijou.org, 1 nicholasjohnson.ch, 1 nicholaslazzerini.com, 1 -nicholasnassar.com, 1 +nicholasnassar.com, 0 nicholaspayton.com, 1 nicholaswilliams.net, 1 nicholsongoldsmiths.co.uk, 1 @@ -105358,7 +104430,6 @@ nihon-finance.com, 1 nihon-rosoku.com, 1 nihseniorhealth.gov, 0 -nihtek.in, 1 nihulkav.shop, 1 niice.co, 1 niid.lv, 1 @@ -105406,7 +104477,7 @@ nikitenko.tk, 1 nikitina.ml, 1 nikitovka.com, 1 -nikka.systems, 1 +nikka.systems, 0 nikkasystems.com, 1 nikkasystems.se, 1 nikkei225jp.com, 1 @@ -105520,7 +104591,6 @@ ning.bo, 1 ningwei.net, 1 niniko.tk, 1 -nininhapapelaria.com.br, 1 ninja-corner.tk, 1 ninja.it, 1 ninjacomputing.com, 1 @@ -105531,7 +104601,6 @@ ninji.org, 1 ninkt.com, 1 ninmegam.gq, 1 -ninnen.com, 1 ninofink.com, 1 ninoo.nl, 1 ninov.bg, 1 @@ -105539,7 +104608,7 @@ ninrio.com, 1 ninsin-akachan.com, 1 nintendo-europe-media.com, 1 -nintendo424.com, 0 +nintendo424.com, 1 nintendocarddelivery.com, 1 nintendoreporters.com, 1 ninth.cat, 1 @@ -105612,7 +104681,6 @@ nitoville.com, 1 nitrix.me, 1 nitro-tv.de, 1 -nitro.az, 1 nitrocloud.ddns.net, 1 nitrohorse.com, 0 nitrokey.com, 1 @@ -105718,7 +104786,6 @@ nkorolev.tk, 1 nkp-media.de, 1 nkpr.net, 1 -nkrf.no, 1 nkrupp.net, 1 nktk.hu, 1 nkvd-farm.ru, 1 @@ -105728,6 +104795,7 @@ nl-ix.net, 1 nl.search.yahoo.com, 0 nl3ehv.nl, 1 +nla.no, 0 nlap.ca, 0 nlazarov.com, 1 nlead.gov, 1 @@ -105840,7 +104908,6 @@ noacore.ch, 1 noadi-pixels.tk, 1 noagendahr.org, 1 -noah-witt.com, 1 noahenco.nl, 1 noahjacobson.com, 1 noahmodas.com.br, 1 @@ -105877,7 +104944,6 @@ noboxo.ch, 1 nobreaks.ca, 1 nobs.no, 1 -nobsmc.com, 1 nobunplease.com, 1 nobutwhy.com, 1 nobz.com.br, 0 @@ -105972,7 +105038,6 @@ noipro.com, 1 noirmale.com, 1 noirmalenetwork.com, 1 -noirpvp.com, 1 noiseboyz.com, 1 noisebridge.social, 1 noiseworks.ne.jp, 1 @@ -106049,7 +105114,6 @@ nomo.com, 1 nomorephish.ru, 1 nomorepizzaparties.com, 1 -nomorigine.com, 1 nomsing.tk, 1 nomtechbytes.com, 1 nona.com.my, 1 @@ -106076,7 +105140,6 @@ nontonfilem.ml, 1 nonx.pro, 1 nonxsistent.tk, 1 -nonzero.io, 1 noob-box.net, 1 noob-rp.ru, 1 nooben.com, 1 @@ -106183,7 +105246,6 @@ nordlandverliebt.de, 1 nordlayer.com, 1 nordlichter-brv.de, 1 -nordloxsecure.com, 1 nordmark-pharma.de, 1 nordmoregatebilklubb.com, 1 nordpass.asia, 1 @@ -106191,7 +105253,6 @@ nordsec.com, 1 nordseeblicke.de, 1 nordstarfossils.com, 1 -nordvestkysten.dk, 1 nordvpn.com, 1 nordwal.de, 1 nordwaldzendo.de, 0 @@ -106239,6 +105300,7 @@ noroutine.me, 1 norridgewock.gov, 1 norrisautomotiveinc.com, 1 +norrisfeigum.com, 1 norrishome.tk, 1 norristn.gov, 1 norrkemi.se, 1 @@ -106329,7 +105391,6 @@ northprairiewi.gov, 1 northrose.net, 1 northsalemny.gov, 1 -northshore-medspa.com, 1 northshoremums.com.au, 1 northshorevisitor.com, 1 northsidecaravansrepairsandspares.com, 1 @@ -106359,7 +105420,6 @@ northwoodstudios.org, 1 northzone.ml, 1 nortvi.com, 1 -norveg.ru, 1 norvelltwp-mi.gov, 1 norwalkct.gov, 1 norwalkps.org, 0 @@ -106488,7 +105548,6 @@ nothingbundtcakes.com, 1 noti.tg, 1 noticiaelmundo.com, 1 -noticias7.org, 1 noticiasdeautos.site, 1 noticiasdebrasiliaonline.com, 1 noticiasdeminasgerais.com, 1 @@ -106623,7 +105682,6 @@ novelacuba.com, 1 novelas.net.br, 1 noveldadigital.es, 1 -novelenergylighting.com, 1 novelfm.com, 1 novelinglife.net, 0 novelly.in, 1 @@ -106796,7 +105854,6 @@ nrdstd.io, 1 nreihofer.de, 1 nrev.ch, 1 -nrityangana.in, 1 nrj-plomberie.com, 1 nrkn.fr, 1 nrla.org.uk, 1 @@ -106885,11 +105942,9 @@ nsradiology.net, 1 nssdeviations.com, 1 nssfchile.tk, 1 -nsspl.com.au, 1 nssquad.tk, 1 nstatic.xyz, 1 nstd.net, 1 -nstiak.com, 1 nstnet.org, 1 nsu.pw, 1 nsv.ee, 1 @@ -106914,7 +105969,6 @@ ntgltema.ml, 1 ntgvision.com, 1 nth.sh, 0 -nthp.me, 1 ntia.gov, 1 ntindependent.com.au, 1 ntinet.com, 1 @@ -106980,6 +106034,7 @@ nucleuspanel.com, 1 nucoplus.com, 1 nudaveritas.tk, 1 +nudeai.com, 1 nudeandfresh.tk, 1 nudegirlphotos.com, 1 nudegirls.tv, 1 @@ -107007,7 +106062,6 @@ nuforma.net, 1 nugdev.co, 0 nugeopend.nl, 1 -nuggetsvape.com, 1 nuggit.ga, 1 nugmanov.net, 1 nugratis.nl, 1 @@ -107062,7 +106116,6 @@ numberzero.org, 1 numbots.com, 1 numedes.com, 1 -numeezy.com, 1 numeracle.com, 1 numerama.com, 1 numerasolution.com, 1 @@ -107091,6 +106144,7 @@ nunesgh.com, 1 nunesgh.org, 1 nunnenmacher.net, 0 +nunnun.jp, 1 nunoarruda.com, 1 nunoefabia.tk, 1 nunogand.com, 1 @@ -107155,7 +106209,6 @@ nutralivbio.com, 1 nutrashop.fr, 1 nutriciametabolics-shop.de, 1 -nutriclub.co.id, 1 nutriflex.co.za, 1 nutrifyyourself.com, 1 nutrijets.com, 1 @@ -107216,7 +106269,6 @@ nvestholdings.com, 1 nvestproperties.co.za, 1 nvests.co.za, 1 -nvfoundation.com, 1 nvh.group, 1 nvhsecho.com, 1 nvi-go.nl, 1 @@ -107276,7 +106328,6 @@ nxdomain.info, 1 nxedge.com, 1 nxit.ca, 1 -nxlogis.kr, 1 nxnt.link, 1 nxplinc.com, 1 nxstudios.tk, 1 @@ -107299,7 +106350,6 @@ nyallpurposepaving.com, 1 nyan.it, 0 nyan.kim, 1 -nyan.stream, 1 nyangasm.com, 0 nyangasm.net, 0 nyangasm.org, 0 @@ -107326,8 +106376,8 @@ nydig.com, 1 nyecountynv.gov, 1 nyerjakekszekkel.hu, 1 -nyerjazoreoval.hu, 1 nyerjenaheraval.hu, 1 +nyflyguyz.com, 1 nyfurnitureoutlets.com, 1 nygbcomicguide.tk, 1 nygbtourguide.tk, 1 @@ -107491,7 +106541,6 @@ o98.net, 0 o9solutions.com, 1 oaaa.org, 1 -oacps.org, 1 oadeo.com, 1 oahpmdata.net, 1 oakbarnvets.com, 1 @@ -107520,7 +106569,6 @@ oakriverfarms.com, 1 oakshield.nl, 1 oakslim.com, 1 -oaktree-realtors.com, 0 oaktreelodge.org.uk, 1 oakvalleyhealth.ca, 1 oakwood-park.tk, 1 @@ -107567,6 +106615,7 @@ obelisco.tk, 1 obelix05.duckdns.org, 1 oberam.de, 1 +obercodosguardas.pt, 1 oberdachstetten.de, 1 obereg.cf, 1 obereg.ga, 1 @@ -107617,7 +106666,6 @@ oblitsov.ru, 1 oblivious.ml, 1 oblojka.tk, 1 -oblondata.io, 0 obmen-viz.tk, 1 obmen-vizitami.ml, 1 obmenka.tk, 1 @@ -107752,6 +106800,7 @@ oceanshaman.ml, 1 oceansidetour.tk, 1 oceanspraymiami.com, 1 +oceanstayandplay.com, 1 oceansurplus.tk, 1 oceanviewde.gov, 1 oceanvisuals.com, 1 @@ -107839,7 +106888,7 @@ octavia.net, 1 octavianguzu.com, 1 octaviorojas.tk, 1 -octaviosimon.com, 1 +octaviosimon.com, 0 octobanana.com, 1 octobered.com, 0 octocaptcha.com, 1 @@ -107962,7 +107011,6 @@ oecherrezepte.duckdns.org, 1 oeconline.org, 1 oedeemboek.nl, 1 -oeffnet.org, 1 oegd.at, 1 oeh.ac.at, 1 oeilpouroeilcreations.fr, 0 @@ -107978,7 +107026,6 @@ oemdrink.com, 1 oemparcacim.com, 1 oemspace.net, 1 -oemwolf.com, 1 oen.tw, 1 oeno.link, 1 oenolab-vidalies.com, 1 @@ -108008,7 +107055,6 @@ ofertasadsl.com, 1 ofertasinternet.com, 1 ofertastop.es, 1 -ofertatis.store, 1 ofertolino.fr, 1 off-festival.pl, 1 off-rabota.tk, 1 @@ -108023,11 +107069,9 @@ offenekommune.de, 1 offenes-deutschland.de, 1 offensity.com, 1 -offensivesentinel.es, 1 offentligsektormedmoln.se, 1 offeo.com, 1 offer-today.ml, 1 -offerground.com, 1 offerhome.com, 1 offerman.com, 1 offerman.industries, 1 @@ -108056,6 +107100,7 @@ office2s.com, 1 office365.us, 1 officecode.co.uk, 1 +officeconceptdesign.com, 1 officedivvy.co, 1 officedivvy.com, 1 officedivvy.company, 1 @@ -108073,10 +107118,8 @@ officerjones.tk, 1 officert.ga, 1 officesib.ddns.net, 1 -officetechrentals.com.br, 1 official-sensitive.org, 1 official.link, 1 -official.my, 1 officialdubaidev.com, 1 officialhazalturesan.tk, 1 officialmc2.com, 1 @@ -108495,6 +107538,7 @@ olffi.com, 1 olfnewcastle.com, 1 olfsecane.org, 1 +olfuscluster.is, 0 olgallery.tk, 1 olgamalytcheva.com, 1 olgamilosevic.edu.rs, 1 @@ -108689,7 +107733,7 @@ omgchocolatedesserts.com, 1 omgdevil.com, 1 omgevingsdiensthaaglanden.nl, 1 -omgidol.com, 1 +omgidol.com, 0 omgit.works, 1 omhome.net, 1 omicawholesale.com, 1 @@ -108824,7 +107868,6 @@ ond-inc.com, 1 ond-inc.jp, 1 ondajoven.tk, 1 -ondav.com, 1 ondcp.gov, 1 onde.xyz, 1 ondeapostar.pt, 1 @@ -108840,7 +107883,6 @@ ondrakutil.cz, 1 ondrei.one, 1 ondrej.org, 1 -ondrejsramek.cz, 1 ondrejvasicek.cz, 1 one-acleaning.com, 1 one-clue.com, 1 @@ -108977,7 +108019,6 @@ onestopshop.ml, 1 onestpasdesanges.fr, 1 onesub.io, 1 -onet.co.jp, 1 onetab.com, 1 onetakeonehit.tk, 1 onetap.com, 1 @@ -109141,6 +108182,7 @@ onlinedivorce.lawyer, 1 onlinedoctornote.com, 1 onlinedoctranslator.com, 1 +onlinedrumminglessons.com, 1 onlineevent.ch, 1 onlinefile.repair, 1 onlinefilerepair.com, 1 @@ -109195,6 +108237,7 @@ onlineseminar.nl, 1 onlineservisprogrami.com, 1 onlineshopsatkhira.tk, 1 +onlinesim.com, 1 onlinesitereviews.com, 1 onlinesloten.nl, 1 onlinesorusor.cf, 1 @@ -109214,7 +108257,6 @@ onlineverdienen.tk, 1 onlinevergidanismani.com, 1 onlineviewers.tk, 1 -onlinevisa.ru, 1 onlinevoting.tk, 1 onlinewallpapers.tk, 1 onlineweblearning.com, 1 @@ -109235,7 +108277,6 @@ onlychristian.me, 1 onlycompress.com, 1 onlycrumbsremain.com, 1 -onlydust.xyz, 1 onlyesb.net, 1 onlyfans.com, 1 onlyfans.freemyip.com, 1 @@ -109279,7 +108320,7 @@ onporn.fun, 1 onrampwallet.com, 1 onrangetout.com, 1 -onrealt.ru, 0 +onrealt.ru, 1 onrr.gov, 1 onsatv.com, 1 onscript.study, 1 @@ -109549,6 +108590,7 @@ openrainbow.org, 1 openre.site, 1 openrealestate.co, 1 +openrecognition.org, 1 openremote.io, 1 openreplay.com, 1 openresa.com, 1 @@ -109673,7 +108715,6 @@ opos.cf, 1 oposicionescorreos.es, 1 oposicionesprofesores.tk, 1 -opp.moe, 1 oppa888.com, 1 oppa888.net, 1 oppabet.com, 1 @@ -109831,7 +108872,7 @@ optykgill.pl, 1 optymyze.com, 1 opulentdivision.com, 0 -opulentranch.com, 0 +opulentranch.com, 1 opus-codium.fr, 1 opus-labs.fr, 1 opus4.com, 1 @@ -109895,7 +108936,6 @@ orangesquash.org.uk, 0 orangesquirrelevents.co.uk, 1 orangetexas.gov, 1 -orangetown.com, 1 orangetrialtech.com, 1 orangetrialtechnology.com, 1 orangewaratahjuniorfc.org.au, 1 @@ -109937,6 +108977,7 @@ orcas.tk, 1 orcasecurity.io, 1 orchardnh.org, 1 +orchestra-ppm.io, 1 orchestra.tk, 1 orchestremetropolitain.com, 1 orchidee-mariage.com, 1 @@ -110019,7 +109060,6 @@ orenohatake.com, 1 orensport.tk, 1 oreo.rocks, 1 -oreomuhely.hu, 1 oreosis.com, 1 oreshinya.xyz, 1 orestadit.dk, 1 @@ -110155,6 +109195,7 @@ ornithopter.tk, 1 ornsyn.no, 1 ornua.com, 1 +oro-express.es, 1 oro.milano.it, 1 oro.roma.it, 1 oro97.com, 1 @@ -110173,7 +109214,6 @@ orrs.de, 1 orsal.fr, 1 orsecurity.com.au, 1 -orsemix.fr, 1 orsgo.com, 1 ortahisarsigorta.com, 1 ortanatech.com, 1 @@ -110430,7 +109470,6 @@ oszteralexandra.hu, 1 ot-honfleur.fr, 1 ot-vinta.tk, 1 -ot.id, 1 otaikajang.org, 1 otako.pl, 0 otaku-treasure.com, 1 @@ -110453,7 +109492,6 @@ otg-drives.tk, 1 otgadaika.tk, 1 otheatre.ru, 1 -other98.com, 0 othercdn.com, 1 otherkinforum.com, 1 otherwise.tk, 1 @@ -110461,6 +109499,7 @@ oticasvisao.net.br, 1 otima.digital, 1 otimismoemrede.tk, 1 +otimo.ro, 1 otinane.eu, 1 otiocafes.com, 1 otipax.ru, 1 @@ -110481,7 +109520,6 @@ otorino.tk, 1 otorium.gq, 1 otorrino.pt, 0 -otosemi.com, 0 otoy.com, 1 otp24hr.com, 1 otpbd.xyz, 1 @@ -110774,7 +109812,6 @@ ovog.pk, 1 ovoreferralcode.com.au, 1 ovosimpatico.com, 1 -ovosimpatico.org, 1 ovpn.com, 1 ovpn.to, 1 ovrwlm.ai, 1 @@ -110807,7 +109844,6 @@ owlandbee.com.au, 1 owlandbee.eu, 1 owlandbee.uk, 1 -owlando.com, 1 owlandrabbitgallery.com, 1 owlbee.be, 1 owlbee.co.uk, 1 @@ -110832,7 +109868,6 @@ ownc.at, 1 owncloud.com, 1 ownerbusiness.org, 1 -ownergroup.net, 1 ownhost.com, 1 ownhosting.cloud, 1 ownhosting.de, 1 @@ -110912,7 +109947,6 @@ oxylabs-china.net, 1 oxylabs.cn, 1 oxylabs.io, 1 -oxylog.fr, 1 oxymail.ru, 1 oxymoron.tk, 1 oxynux.xyz, 1 @@ -110973,7 +110007,6 @@ ozgesezen.com, 1 ozgoz.com, 1 ozgpp.de, 1 -ozgurakin.com.tr, 1 ozgurbozkurt.com, 1 ozgurgokmen.net, 1 ozgurkazancci.com, 1 @@ -110983,7 +110016,6 @@ ozmo.ml, 1 ozna.tk, 1 oznamovacipovinnost.cz, 1 -ozoksteel.com, 1 ozone-medical.fr, 1 ozonegrants.au, 1 ozonegrants.com, 1 @@ -111301,7 +110333,6 @@ pagenews.tk, 1 pagenstedt.de, 1 pageonstage.at, 1 -pagepapi.com, 1 pagerankkings.com, 1 pagerduty.com, 1 pageroonline.com, 1 @@ -111387,7 +110418,7 @@ pajbot.de, 1 pajobsite.com, 1 pajuvuo.fi, 1 -pakalolo.eu, 0 +pakalolo.eu, 1 pakaranggrek.com, 1 pakawal.com, 1 paket.monster, 1 @@ -111417,7 +110448,6 @@ pakjefooi.org, 1 pakkibaat.tk, 1 pakmedia.tk, 1 -paknetworking.org, 1 pakostane-apartments.tk, 1 pakpak.tk, 1 pakremit.com, 1 @@ -111796,6 +110826,7 @@ papieri.dental, 1 papierniak.net, 1 papierniczy.eu, 1 +papierowyrycerz.pl, 1 papillegustative.com, 1 papillon-events.be, 1 papirladen.dk, 1 @@ -111842,9 +110873,10 @@ paradisetownshipmi.gov, 1 paradisim.tk, 1 paradisu.fr, 1 +paradoxdesigns.org, 1 paradoxhotels.com, 1 paradoxium.ml, 1 -paradymecompanies.com, 0 +paradymecompanies.com, 1 paraelganzo.tk, 1 parafarmacia.it, 1 paragardmdlportal.com, 1 @@ -111959,7 +110991,6 @@ paridurable.com, 1 parikmag-pm.ru, 1 parikmaxeru.tk, 1 -pariksana.cloud, 1 parimatch-best.com, 1 parimatch-chance.com, 1 parimatch-email.com, 1 @@ -112021,7 +111052,7 @@ parkeergaragesintjan.nl, 1 parkeergaragestjan.nl, 1 parkeerserviceboxtel.nl, 1 -parkefficient.de, 1 +parkefficient.de, 0 parkerco.gov, 1 parkercs.cf, 1 parkercs.ga, 1 @@ -112081,6 +111112,7 @@ parleur.net, 1 parliament.gov.to, 1 parliamentcamp.com, 1 +parmacityfutsal.it, 1 parmartecultura.it, 1 parmatoday.it, 1 parmatwp.gov, 1 @@ -112157,7 +111189,6 @@ partijvoordedieren.nl, 1 partik.com.br, 1 partilino.com, 1 -partimalzemelerim.com, 1 partin.nl, 0 partiono.com, 1 partir-en-livre.fr, 1 @@ -112202,7 +111233,6 @@ partsestore.com, 1 partsgeek.com, 1 partsguysusa.com, 1 -partsworld.bg, 1 partwerx.com, 1 party-envy.com, 1 party-kneipe-bar.com, 1 @@ -112212,7 +111242,6 @@ partyaccommodationsest.ga, 1 partyausstatter24.de, 1 partyblitzsimi.com, 1 -partybutlers.co.uk, 1 partyclub.tk, 1 partycoin.ga, 1 partyevents.tk, 1 @@ -112308,7 +111337,6 @@ passions-art.com, 1 passiton.com, 1 passive-work.gq, 1 -passiveblogger.com, 0 passivebook.com, 1 passivehousecal.org, 1 passiveseinkommen.tk, 1 @@ -112325,7 +111353,7 @@ passportcorporate.com, 1 passrhce.com, 1 passrhcsa.com, 1 -passthrough.com, 1 +passthrough.com, 0 passtooeasy.com, 1 passumpsicbank.com, 1 passvanille-reservation.fr, 1 @@ -112420,7 +111448,6 @@ patersonpdnj.gov, 1 patguzmanconstruction.com, 1 pathai.com, 1 -pathearn.ai, 1 pathfinderbank.com, 1 pathfindercut.com, 1 pathfindergeo.com, 1 @@ -112434,7 +111461,6 @@ pathwayscenterforgrief.org, 1 pathwayscenterforgriefandloss.org, 1 pathwaysthroughgrief.org, 1 -pathzero.com, 0 patient.info, 1 patientcheckin.com, 1 patientenverfuegung.digital, 1 @@ -112495,7 +111521,7 @@ patrikjohan.tk, 1 patriksima.cz, 1 patrikx3.com, 1 -patrimoine-neuwiller.fr, 1 +patrimoine-neuwiller.fr, 0 patriotbearingsupply.com, 1 patriotcs.tk, 1 patriotinsurancebrokers.com, 0 @@ -112533,7 +111559,6 @@ paul-vierhaus.de, 1 paul-zhang.de, 1 paul.media, 1 -paul.reviews, 1 paulahot.tk, 1 paulandmadge.com, 1 paulanet.tk, 1 @@ -112652,6 +111677,7 @@ pawafuru.com, 0 pawapuro.ga, 1 pawapuro.tk, 1 +pawbuddi.com, 1 pawc.cc, 1 pawchewgo.com, 1 pawdecor.com, 1 @@ -112694,7 +111720,6 @@ pay.equipment, 1 pay.faith, 1 pay.football, 1 -pay.foundation, 1 pay.gallery, 1 pay.gov, 0 pay.hockey, 1 @@ -112747,7 +111772,6 @@ payhub.jp, 1 payjunction.com, 1 payjunctionlabs.com, 1 -paylabs.co.id, 1 paylessclinicers.ga, 1 paylessclinicest.ga, 1 paylessmealsers.ga, 1 @@ -112845,7 +111869,6 @@ pbcknd.ml, 1 pbcpao.gov, 1 pbcu.com, 1 -pbdigital.org, 0 pbern.xyz, 1 pbest.tk, 1 pbforestry.net, 1 @@ -113002,10 +112025,8 @@ pdfconvert.me, 1 pdfflier.cf, 1 pdfhelp.net, 1 -pdfko.com, 1 pdflip.cf, 1 pdfmanga.tk, 1 -pdfmint.com, 1 pdfpassword.org, 1 pdfpasswort.de, 1 pdfpedia.cf, 1 @@ -113060,7 +112081,6 @@ peakseoservices.co.uk, 1 peaksports.com, 0 peaksupport.io, 1 -peaktribe.ro, 1 peakvets.co.uk, 1 peanutbutter.com, 1 peanutpay.de, 1 @@ -113098,7 +112118,7 @@ pec.net, 1 pecadis.de, 1 pecan.ai, 1 -pecasse.be, 1 +pecasse.be, 0 pecetowicz.pl, 1 pecheneg.tk, 1 pechka.tk, 1 @@ -113187,6 +112207,7 @@ peername.com, 1 peerreviewcongress.org, 1 peers-liste.de, 1 +peers.cloud, 1 peers.gq, 1 peers.tk, 1 peersquaders.ga, 1 @@ -113249,6 +112270,7 @@ pelicanbaytx.gov, 1 pelicanconveyancing.co.uk, 1 pelicanottertailmn.gov, 1 +pelicanparty.games, 1 pelicans.tk, 1 peliculaonline.tk, 1 peliculaslatino.tk, 1 @@ -113372,6 +112394,7 @@ pensatore.tk, 1 pensia.tk, 1 pensieridigitali.tk, 1 +pensierolaterale.tech, 1 pensioenfonds-ey.nl, 0 pension-am-alten-waschhaus.de, 1 pension-chevaux.com, 1 @@ -113750,7 +112773,6 @@ personcar.com.br, 1 persondatakonsulenterne.dk, 1 personetics.com, 1 -personjob.ru, 1 personlookup.com.au, 1 personnedisparue.fr, 1 personnelplusinc.com, 1 @@ -113808,7 +112830,6 @@ pesnik.tk, 1 pesnir.net, 1 pesnitut.ga, 1 -pesoccerworld.com, 1 pesquisasremuneradas.net, 1 pess.ch, 1 pessa-webdesign.tk, 1 @@ -113870,7 +112891,6 @@ petdish.ga, 1 petdollar.ga, 1 petech.ro, 1 -petegrahamcarving.co.uk, 1 petelew.is, 1 petemerges.com, 1 petemerges.xyz, 1 @@ -114114,7 +113134,6 @@ pfhstheroar.com, 1 pfingstberg.de, 1 pfingstsportfest.de, 1 -pfish.zone, 1 pflanzen-shop.ch, 1 pflanzen-werkstatt.de, 1 pflege.ch, 1 @@ -114227,7 +113246,6 @@ pharmasyncers.ga, 1 pharmasyncest.ga, 1 pharmgkb.org, 1 -pharmica.uk, 1 pharosconsulting.com, 1 pharosiq.com, 1 pharside.dyndns.org, 1 @@ -114283,7 +113301,6 @@ philadelphia.com.mx, 1 philafound.org, 1 philandson.com, 1 -philanima.com, 1 philarmonic-abaza.tk, 1 philasd.org, 1 philcare.com.ph, 1 @@ -114337,7 +113354,6 @@ philipssupportforum.com, 1 philipstewart.uk, 1 philipthomas.com, 1 -philipzhan.com, 1 philipzhan.tk, 1 philis-oenologie.fr, 1 phillipgoldfarb.com, 1 @@ -114368,7 +113384,6 @@ phimbop.top, 1 phimmoingay.org, 0 phimtor.com, 1 -phinikarides.net, 1 phiomegachi.tk, 1 phishguard.sa, 1 phishing-studie.org, 1 @@ -114385,7 +113400,6 @@ phoebestrong.org, 1 phoenix-correspondence-commission.gov, 1 phoenix-zug.ch, 1 -phoenix.dj, 1 phoenixadvisers.com, 1 phoenixboard.tk, 1 phoenixcourt.gov, 1 @@ -114536,7 +113550,6 @@ phoxden.net, 1 php.watch, 1 phpadmin666.com, 1 -phparena.net, 1 phpbb-tutorials.cf, 1 phpbbchinese.com, 0 phpcraft.de, 1 @@ -114637,7 +113650,6 @@ physioteam-franz.de, 1 physiotherapie-buk.de, 1 physiotherapie-concept.de, 1 -physiotherapie-seiwald.de, 1 physiotherapist-physicaltherapist.com, 1 physiovesenaz.ch, 0 physis.earth, 1 @@ -114659,7 +113671,6 @@ piai.gq, 1 piai.ml, 1 piai.tk, 1 -piaiai.com, 0 piajuly.net, 1 pianetaottica.eu, 1 pianetaottica.info, 1 @@ -114722,7 +113733,6 @@ pickastock.info, 1 pickawaycountyohio.gov, 1 picked.cf, 1 -pickedforhome.com, 1 pickemsheet.com, 1 pickenscountysc.gov, 1 pickerellakelistings.com, 1 @@ -114789,7 +113799,6 @@ pidgi.net, 1 pidjipi.com, 1 pidocchi.it, 1 -pidu.jp, 1 pie-express.xxx, 1 piebridge.me, 1 pieceofcake.solutions, 1 @@ -114808,7 +113817,6 @@ piekacz.eu.org, 1 piekacz.net, 1 piekacz.tel, 1 -piel.vip, 1 pieland.eu, 1 pieldemariposa.es, 1 pielgrzymappka.pl, 1 @@ -114864,7 +113872,6 @@ pig333.com, 1 pigb.net, 1 pigeonholelive.com, 1 -pigeonpairstays.com, 1 pigeonracinginformation.com, 1 pigeons-rings.com, 1 pigfox.com, 1 @@ -115009,7 +114016,6 @@ pinetreeadvisors.us, 1 pinfong.com, 1 ping-books.cf, 1 -pingbandiannao.com, 0 pingminer.com, 1 pingnp.me, 0 pingodoce.pt, 1 @@ -115018,7 +114024,6 @@ pingrc.net, 1 pinguinita.tk, 1 pinguinreal.sk, 1 -pingvin.pro, 1 pingvinofnet.ml, 1 pinhadigital.com, 1 pinigseu.xyz, 1 @@ -115283,7 +114288,6 @@ piw.pw, 0 piwko.co, 1 pix-geeks.com, 1 -pix18.ru, 1 pix5.de, 1 pixa.co.id, 1 pixalatio.tk, 1 @@ -115321,7 +114325,6 @@ pixelonl.com, 1 pixelorastudio.com, 1 pixelpaper.org, 1 -pixelpartyplay.com, 1 pixelplex.io, 1 pixelprint.la, 1 pixelrain.info, 1 @@ -115349,8 +114352,6 @@ pixexid.com, 1 pixiin.com, 1 pixinfo.com, 1 -pixiv.cat, 1 -pixiv.nl, 1 pixiv.re, 1 pixlfox.com, 1 pixloc.fr, 1 @@ -115429,6 +114430,7 @@ pko.ch, 0 pkov.cz, 1 pkservice.tk, 1 +pkshs.my, 1 pkspskov.tk, 1 pkwebsolutions.cf, 1 pl-beauty.com.ua, 1 @@ -115555,7 +114557,6 @@ planetscale.com, 1 planetstairs.com.au, 1 planetstimes.com, 1 -planettimer.com, 1 planetun.mobi, 1 planetweb.tk, 1 planetwild.com, 1 @@ -115567,7 +114568,6 @@ planiserin.tk, 1 planisware.academy, 1 planisware.cn, 1 -planisware.live, 1 planisys.net, 1 planit-inc.com, 1 planitz.com, 1 @@ -115614,7 +114614,6 @@ plantidentification.co, 0 plantinum-cbd.com, 1 plantpro.gr, 1 -plantrustler.com, 1 plantsupplement.co.uk, 1 plantuml.online, 1 planujemywesele.pl, 1 @@ -115776,7 +114775,6 @@ playnuganug.com, 1 playocean.net, 1 playorigin.com, 1 -playphoenix.net, 1 playpirates.com, 1 playplay.com, 1 playpower.tk, 1 @@ -115789,7 +114787,6 @@ playstation-network.ga, 1 playstationplus.es, 1 playstationtrophies.org, 1 -playtheme.ru, 1 playtictactoe.org, 1 playtoearn.net, 1 playtop.tk, 1 @@ -115887,7 +114884,7 @@ plodwithme.com, 1 ploi.cloud, 1 ploi.io, 1 -plokko.com, 1 +plokko.com, 0 plomberie-rivesud.ca, 1 plombierjob.com, 1 plomeros.cl, 1 @@ -115899,6 +114896,7 @@ ploomber.io, 1 ploppis.org, 1 ploptec.tk, 1 +plothost.com, 1 plotly.com, 0 plotscout.ae, 0 ploulech.fr, 1 @@ -115968,6 +114966,7 @@ pluspass.com, 1 plusport-api.com, 1 plusport.com, 1 +plusreed.com, 1 plustwik.com, 1 plutiedev.com, 1 pluto5000.com, 1 @@ -116034,7 +115033,6 @@ pmi.gov, 1 pmi.it, 1 pmiandulive.com, 1 -pmk.ddns.net, 0 pml4t.net, 1 pmme.io, 1 pmoscr.com, 1 @@ -116308,7 +115306,6 @@ poetka.tk, 1 poetry.ge, 1 poetryinmusic.tk, 1 -poetsgate.com, 0 poetsjeboot.nl, 1 poezja.art, 1 poezja.com.pl, 1 @@ -116378,7 +115375,6 @@ pokeelektronik.com.tr, 1 pokefarm.com, 1 pokehidden.com, 1 -pokeinthe.io, 1 pokelens.tk, 1 pokeli.de, 1 pokemmo.com, 1 @@ -116413,7 +115409,7 @@ pokerventure.ga, 1 pokerventureers.ga, 1 pokerventureest.ga, 1 -pokerzone.com, 1 +pokeymanatee4.xyz, 1 poki.at, 1 poki.be, 1 poki.bg, 1 @@ -116465,7 +115461,6 @@ polarisengineering.com, 1 polarispool.com, 0 polaroidmag.com, 1 -polaschin.ch, 1 polatas.com.tr, 1 polatsemih.com, 1 polbox.fr, 1 @@ -117004,7 +115999,6 @@ portiaweb.org.uk, 0 portierato.it, 1 portingkit.com, 1 -portis.io, 1 portiva.com, 1 portlandcompostclaims.com, 1 portlandcrystalcompany.com, 1 @@ -117329,7 +116323,6 @@ powerlp.com, 1 powerman.name, 1 powerman.top, 1 -powerpc.pt, 1 powerpilot.co.za, 1 powerplan.com, 1 powerplay.xyz, 0 @@ -117456,7 +116449,6 @@ pqforce.com, 1 pqgruber.com, 1 pqscript.com, 1 -pr-jf.de, 1 pr-news.spb.ru, 1 pr-project.tk, 1 pr.search.yahoo.com, 0 @@ -117558,7 +116550,6 @@ prana-me.com, 1 pranabesh.com, 1 pranafilms.tk, 1 -prancor.ru, 1 pranita-schals.de, 0 pranita.cz, 0 pranita.sk, 0 @@ -117570,7 +116561,6 @@ prashantcafe.tk, 1 prasinoscomputers.ml, 1 prasos.fi, 1 -prataus.com, 0 prateep.io, 1 pratelloshop.tk, 1 pratemarkets.com, 1 @@ -117654,7 +116644,6 @@ precisebusiness.com.au, 1 precisefuture.com, 1 precisehotels.com, 1 -precisionchiroct.com, 1 precisionclan.com, 1 precisioncourt.com, 1 precisiondentalnyc.com, 1 @@ -117738,7 +116727,6 @@ premieramerica.com, 1 premieraviation.com, 1 premierbouncycastles.co.uk, 1 -premiercountertops.com, 1 premierdisco.co.uk, 1 premieresloges.ca, 1 premierevents.ie, 1 @@ -117764,7 +116752,6 @@ premium-leech.com, 1 premium-rum.de, 1 premium-security.com, 1 -premium-vagyonkezeles.hu, 1 premium.web.id, 1 premiumcredit.am, 1 premiumdesign.hr, 1 @@ -117776,7 +116763,6 @@ premiumplus.io, 1 premiumresidency.in, 1 premiumshop24.de, 1 -premiumsleepingbags.com, 1 premiumsmile.ru, 1 premiumtimesng.com, 1 premiumturkey.ml, 1 @@ -117810,7 +116796,6 @@ preprodfan.gov, 1 prepscouts.tk, 1 prepsiedy.cf, 1 -prequence.com, 1 preregpharmacy.org, 1 prerolls.me, 1 presbee.com, 1 @@ -117860,6 +116845,7 @@ presscenter.jp, 1 presscommunity.tk, 1 presscuozzo.com, 0 +pressed.com, 1 pressemeddelelse.dk, 1 pressfreedomtracker.us, 1 pressidium.com, 1 @@ -117874,7 +116860,6 @@ presson.shop, 1 pressreleasecentral.tk, 1 pressreleasepedia.tk, 1 -pressreleasespower.com, 1 pressride.jp, 1 pressrush.com, 1 pressspace2hack.com, 1 @@ -117913,7 +116898,6 @@ prestonadamscountywi.gov, 1 prestonmn.gov, 1 prestopermits.com, 1 -prestopizzas63.fr, 1 prestudenta.sk, 1 prestupniki.tk, 1 pretabelamodas.com.br, 1 @@ -117969,7 +116953,6 @@ preweather.com, 1 prexxorvita.com, 1 prezentmarzen.com, 1 -prezista.com, 1 preziti.eu, 1 prfanfiction.tk, 1 prg.rs, 1 @@ -118003,7 +116986,6 @@ pridecounseling.com, 1 pridecraft.gay, 1 prideindomination.com, 1 -pridetownconnect.com, 1 pridnestrovye.gq, 1 pridurok.tk, 1 prielwurmjaeger.de, 1 @@ -118015,6 +116997,7 @@ prijsvergelijken.ml, 1 prikeshsavla.com, 1 prikolkz.tk, 1 +prim-wash.de, 1 prima-backoefen.de, 1 prima-badezimmermoebel.de, 1 prima-bohrmaschinen.de, 1 @@ -118055,7 +117038,6 @@ primananda.com, 1 primanota.ch, 0 primapak.bg, 1 -primariachisineucris.ro, 1 primarium.info, 1 primary.health, 1 primarycareconnect.com.au, 1 @@ -118077,7 +117059,6 @@ primecredit.com, 1 primecursos.com.br, 1 primed.io, 1 -primedesigns.com.au, 1 primeeducareer.pk, 1 primeequityproperties.com, 0 primeexecutiveoffices.com, 1 @@ -118096,7 +117077,6 @@ primeratx.gov, 1 primersbc.com.br, 1 primesys.ir, 1 -primetal.ro, 1 primetechpa.com, 1 primetics.co.uk, 1 primeticsseed.com, 1 @@ -118240,6 +117220,7 @@ privacy.ac.cn, 1 privacy.ax, 1 privacy.gov.ph, 1 +privacybydesign.foundation, 1 privacycentermqt.com, 1 privacychick.com, 1 privacychick.io, 1 @@ -118248,7 +117229,6 @@ privacydev.net, 1 privacyend.com, 1 privacyfenceanddeckllc.com, 1 -privacyforpatriots.com, 1 privacyget.tk, 1 privacyguidance.com, 1 privacyguides.net, 1 @@ -118257,6 +117237,7 @@ privacymanatee.com, 1 privacynator.eu, 1 privacynow.eu, 1 +privacypro.io, 1 privacyredirect.com, 1 privacysavvy.com, 1 privacyscore.org, 1 @@ -118293,7 +117274,6 @@ privateger.me, 1 privategiant.com, 1 privatehd.to, 1 -privatehospital.com.ua, 1 privatehost.uk, 1 privateideas.de, 1 privateinvestigatoredu.org, 1 @@ -118312,13 +117292,11 @@ privatetrainingonline.se, 1 privateuploader.com, 1 privatevpn.com, 1 -privatmeet.com, 1 privatstunden.express, 1 privc.io, 1 privcloud.cc, 1 privcloud.org, 1 privcom.net, 1 -privea.fr, 1 priveadressen.tk, 1 privelust.nl, 1 priverify.com, 1 @@ -118503,7 +117481,6 @@ productboard.com, 0 productfetcher.com, 1 productfurniture.ga, 1 -production.vn, 0 productionscime.com, 1 productiv.com, 1 productive.io, 1 @@ -118518,10 +117495,8 @@ produkt.cf, 1 produra.nl, 1 produtosdeacademia.com, 1 -produttori.it, 1 produweb.be, 1 proefexamenbvca.nl, 1 -proefexamensvhsocialehygiene.nl, 1 proeflokaalbakker.nl, 1 proefteksten.nl, 0 proekt.moscow, 1 @@ -118538,7 +117513,6 @@ prof-waldowski.de, 1 prof.lv, 1 profarea.ru, 1 -profautoservice.pl, 1 profbigbang.ru, 1 profbioresearch.ga, 1 profboecker.eu, 0 @@ -118706,7 +117680,6 @@ project-forum.tk, 1 project-haystack.org, 1 project-ice.org, 1 -project-merlin.co.uk, 1 project-novis.org, 1 project-one.co.jp, 1 project-rune.tech, 1 @@ -118860,7 +117833,6 @@ promove.be, 1 promovendum.nl, 1 promozioni.it, 1 -prompt.icu, 1 promptdig.com, 1 promptwars.io, 1 promuovi.tv, 1 @@ -118920,7 +117892,6 @@ propertyfindercdn.com, 1 propertyfurniture.com, 1 propertygroup.pl, 1 -propertyinspect.com, 1 propertylondon.co.uk, 1 propertymarketplace.com.ng, 1 propertymatch.org.uk, 1 @@ -119065,6 +118036,7 @@ protok.tk, 1 proton.ch, 1 proton.me, 1 +protonbg.bg, 1 protonmail.ch, 1 protonmail.com, 1 protonpix.com, 1 @@ -119127,8 +118099,8 @@ provisionircd.tk, 1 provlas.se, 1 provo.gov, 1 -proweb-design.no, 0 prowebservices.ca, 1 +prowechsel.de, 1 prowi.se, 1 prowindow.sk, 1 prowise.com, 1 @@ -119181,7 +118153,6 @@ prpr.win, 1 prrams.com, 1 prrefrigeration.com.au, 1 -prsbtdc.org, 1 prsg.tk, 1 prsnlafk.com, 1 prsstore.com.br, 1 @@ -119292,7 +118263,6 @@ psicomagia.com.br, 1 psicometricas.mx, 1 psigma.co, 1 -psihocentrala.com, 1 psiholognatalija.rs, 1 psihologonline.tk, 1 psihology.gq, 1 @@ -119367,7 +118337,6 @@ psw-consulting.de, 1 psw-group.de, 1 psw-training.de, 1 -psy-web.fr, 1 psyart.tk, 1 psycenter.tk, 1 psych2go.net, 1 @@ -119605,6 +118574,7 @@ puercovalleyfireaz.gov, 1 puertocadiz.com, 1 puertodramaturgia.tk, 1 +puertomalaga.com, 1 puestifiestas.mx, 1 puffinvapes.co, 1 puffverse.pro, 1 @@ -119627,7 +118597,6 @@ pukfalkenberg.dk, 1 pul-ingenieure.de, 1 pula-site.tk, 1 -pulci.it, 1 pulcinella.tk, 1 pulinkai.eu.org, 1 pulinkai.xyz, 1 @@ -119709,7 +118678,7 @@ puntacanapizza.com, 1 puntacanavapor.com, 1 puntaires.com, 1 -puntaprop.com, 1 +puntaprop.com, 0 puntcunts.com, 1 puntocroce.tk, 1 puntoestadodemexico.com, 1 @@ -119771,7 +118740,6 @@ puredigital.nl, 1 puredisinfecting.com, 1 puredisinfection.com, 1 -puredns.org, 1 purefarminggame.com, 1 purefoot.jp, 1 pureholisticwellness.com, 1 @@ -119855,7 +118823,6 @@ pusatrail.com, 1 puschkin.ga, 1 pusehusetmalvik.no, 1 -pusera.com, 1 puset.tk, 1 push-free.com, 1 push-pull.uk, 1 @@ -119869,7 +118836,6 @@ pushthebutton.tk, 1 pushy.tg, 1 pusichatka.ddns.net, 1 -pusonja.com, 1 pusra.ga, 1 pussplay.com, 1 pussycat.ml, 1 @@ -119966,12 +118932,10 @@ pwaresume.com, 1 pwbaccountants.com, 1 pwclegal.de, 1 -pwconserve.org, 1 pwcva.gov, 1 pwd.az, 1 pwd.hu, 1 pwd.vc, 1 -pwddelhi.gov.in, 1 pwdsafe.com, 0 pwe.vision, 1 pwg-see.de, 1 @@ -120091,7 +119055,6 @@ q3.is, 1 q39.org, 1 q3cdn.net, 1 -q3jlzwq.com, 1 q5118.com, 1 q5197.co, 1 q6729.co, 1 @@ -120144,7 +119107,6 @@ qbiltrade.com, 1 qbits.li, 1 qbojj.eu, 1 -qbrix.dk, 1 qbstores.com, 1 qbug.cf, 1 qburst.com, 1 @@ -120157,7 +119119,6 @@ qcdesignschool.com, 0 qcdoll.com, 1 qcert.org, 1 -qcinteriors.in, 1 qclean.com.au, 1 qcnet.com, 1 qconline.com, 1 @@ -120257,7 +119218,6 @@ qisda.com.vn, 1 qisheiosxz.com, 1 qitano.com, 1 -qitarabutrans.com, 0 qiu.moe, 0 qiuwenbaike.cn, 1 qivonline.pt, 1 @@ -120435,7 +119395,6 @@ quail.ink, 1 quaily.com, 1 quakekare.com, 1 -quakeroaksfarm.org, 1 quaketips.ga, 1 quakeworld.tk, 1 qualbe.com, 1 @@ -120573,7 +119532,6 @@ quaxio.com, 1 quay.net, 1 quayconsultingllc.com, 1 -quaydental.ie, 0 qubed.agency, 1 qubeit.co, 1 qubes-os.org, 1 @@ -120635,7 +119593,6 @@ queerwerk.eu, 1 queerwerk.nl, 1 queirozmiotto.adv.br, 1 -queirozmiotto.com.br, 1 quel-dj.com, 1 quelbusinesschoisir.com, 1 quellarotondasembrafi.ga, 1 @@ -120684,6 +119641,7 @@ questfororgasm.com, 1 questiii.com, 1 question.cf, 1 +question.com, 1 questionandanswer.ml, 1 questionyu.com, 0 questlawoffice.com, 1 @@ -120835,7 +119793,6 @@ qul.link, 1 qulix.by, 1 qulix.ch, 1 -qumasaitrading.com, 1 qumind.co.uk, 1 qumirezi.tk, 1 qunzi.la, 1 @@ -120860,7 +119817,6 @@ quotev.com, 1 quotidiani.net, 1 quotidianolavoce.it, 1 -quovadis-worldtour.it, 1 quovadisaustria.com, 1 quoviz.com, 1 qupom.com.br, 1 @@ -121259,7 +120215,6 @@ radiojackienorth.tk, 1 radiojeneverstoker.tk, 1 radioklara.org, 1 -radioknop.nl, 1 radiokontakt.tk, 1 radiokukesi.tk, 1 radiolanguages.tk, 1 @@ -121408,14 +120363,12 @@ rafo.tech, 1 rafo.tk, 1 raft.pub, 1 -rafting-japan.com, 1 raftingbali.net, 1 rafvorsselmans.com, 1 rafy.com.br, 1 rafy.site, 1 rag-deutsche-steinkohle.de, 1 rag.de, 1 -ragadoor.com, 1 ragasto.nl, 1 ragazzi-music.de, 1 rage-overload.ch, 1 @@ -121431,7 +120384,6 @@ ragnaroktop.com.br, 1 ragnarredbeard.com, 1 ragsnprints.com, 1 -ragstores.com, 1 ragt.ag, 1 ragunda.se, 1 ragundadalen.se, 1 @@ -121458,12 +120410,9 @@ raidensnakesden.net, 1 raidentawork.lt, 1 raiderhacks.com, 1 -raidertimes.com, 1 -raidingue.fr, 1 raidkeeper.com, 1 raidstone.net, 1 raidstone.rocks, 1 -raidtcg.com, 1 raiffeisen-gv.ch, 1 raiffeisen-kosovo.com, 0 raiffeisen.al, 0 @@ -121606,6 +120555,7 @@ rajudhoni.ga, 1 rak-business-service.com, 1 rakennuspeli.com, 1 +rakeprofit.com, 1 rakeshkaryana.com, 1 raketa.travel, 1 raketaholst.com.ua, 1 @@ -121627,7 +120577,6 @@ rakudo.org, 1 rakugokai.net, 1 rakuvisa.com, 1 -rakweb.com.br, 1 ralaoui.com, 1 ralaoui.me, 1 raleighadultmedicine.com, 1 @@ -121786,7 +120735,6 @@ rangeforce.eu, 1 rangerfiles.tk, 1 rangersloyalsite.tk, 1 -rangersofbelgium.be, 1 rangeweb.ga, 1 ranginkamonkadeh.ir, 1 rangsmo.se, 0 @@ -122050,6 +120998,8 @@ rawlord.ga, 1 rawmarkable.co.uk, 1 rawmathub.gr, 1 +rawpearls.co.uk, 1 +rawpearls.com, 1 rawr.sexy, 1 rawrvixen.com, 1 raxion.cf, 1 @@ -122063,7 +121013,6 @@ rayensalud.com, 1 rayfalling.com, 1 rayhneatess.com, 1 -rayiris.com, 1 rayj.me, 1 raykitchenware.com, 1 raylo.com, 0 @@ -122087,6 +121036,7 @@ rayusradiology.com, 1 raywisdom.tk, 1 rayworks.de, 1 +rayzer.dk, 1 razakhanimazhab.tk, 1 razawitv.com, 1 razberry.kr, 1 @@ -122327,7 +121277,6 @@ readyclassroomcentral.com, 1 readycolorado.gov, 1 readycontacts.com, 1 -readydedis.com, 1 readyeutaw.gov, 1 readyfiction.com, 1 readyit.pl, 1 @@ -122346,7 +121295,6 @@ readywithresourcestn.gov, 1 reaff.com, 0 reaganlibrary.gov, 1 -reagent-tests.uk, 1 reakcjonista.tk, 1 reaksi.id, 1 real-it.nl, 1 @@ -122363,7 +121311,6 @@ realbiographies.cf, 1 realbiz.ml, 1 realbluesmagazine.com, 1 -realcapoeira.ru, 0 realcdn.nl, 1 realclearlife.com, 1 realclinic.jp, 1 @@ -122380,7 +121327,6 @@ realestateexecutives.tk, 1 realestategreenville.tk, 1 realestatekanada.tk, 1 -realestatelegalupdate.com, 0 realestatemaryland.tk, 1 realestateofnewmexico.com, 0 realestates.istanbul, 1 @@ -122412,6 +121358,7 @@ realizarse-japan.com, 1 realizegov.com, 1 realkeywords.ga, 1 +reall.uk, 1 realliance.net, 1 reallife-it.de, 1 reallifeforums.com, 0 @@ -122486,7 +121433,6 @@ rebase.com.br, 1 rebase.com.tr, 1 rebatekey.com, 1 -rebatemy.rent, 1 rebecamode.ch, 1 rebecca.blackfriday, 1 rebeccawendlandt.com, 1 @@ -122514,14 +121460,12 @@ rebonus.com, 1 reboot.it.com, 1 reboxetine.com, 1 -reboxonline.com, 1 rebrandly.com, 1 rebschool.ml, 1 rebscurtismoss.co.uk, 1 rebsumner.com, 1 rebtoor.com, 0 rebuga.com, 1 -rebuild96.ru, 1 rebull.fr, 1 rebure.com, 0 rebus.support, 1 @@ -122549,7 +121493,6 @@ receptionsbook.com, 1 receptveka.ru, 1 recessmonkeyz.tk, 1 -recetasdelospaises.com, 1 recetasdemape.com, 1 recetips.com, 1 recettecookeo.net, 1 @@ -122609,9 +121552,7 @@ recommend.pro, 1 recommendatron.co.uk, 1 recommends.ml, 1 -recompiled.org, 0 recon-networks.com, 1 -reconciliatecondios.es, 1 reconocimientoincan.org.mx, 1 recordagrave.org, 1 recordati.com.tr, 1 @@ -122660,13 +121601,10 @@ recursosimbiopos.com, 1 recursosmi.com.br, 1 recursosrev.tk, 1 -recycle-it.com.au, 1 -recycle-plant.com, 1 recycle.cf, 1 recyclebin.email, 1 recycledinorsett.co.uk, 1 recycledinorsett.com, 1 -recycleit.au, 1 recyclenow.com, 1 recyclensave.sg, 1 recycling.tk, 1 @@ -122918,7 +121856,7 @@ reeftrip.com, 1 reehomes.com, 1 reel360.com, 1 -reeladventurefishing.com, 1 +reeladventurefishing.com, 0 reelaxmedia.com, 1 reelchicago.com, 1 reelgame.ml, 1 @@ -122932,7 +121870,6 @@ reenio.cz, 1 reenio.sk, 1 reentry.gov, 1 -reents3d.de, 1 reerguer.pt, 1 rees-carter.net, 1 reesefortraviscounty.org, 1 @@ -122967,7 +121904,7 @@ referrer.website, 1 reffect.io, 1 refinedimagelawnlandscape.ca, 1 -refinedinspectionservices.com, 1 +refinedinspectionservices.com, 0 refinedlightingaz.com, 1 refinedroomsllc.com, 1 refinery.services, 1 @@ -123016,7 +121953,6 @@ refpaikgai.top, 1 refpajqhsd.top, 1 refpakrtsb.top, 1 -refpakwpsrbm.top, 1 refpalqtdn.top, 1 refpanjoke.com, 1 refpaqutiu.top, 1 @@ -123030,7 +121966,6 @@ refpaydc.top, 1 refpayio.top, 1 refpazkjixes.top, 1 -refra.com, 1 reframeituk.org.uk, 1 refre.in, 1 refresh-dc.org, 1 @@ -123089,7 +122024,6 @@ regensburg-repariert.de, 1 regent.ac.za, 1 regentchair.com, 1 -regentcruises.com, 1 regentmovies.tk, 1 regento.bg, 1 regentsgarden.com.au, 1 @@ -123131,6 +122065,7 @@ regioplanverbindt.nl, 1 regioprint-werbeagentur.de, 1 regiosalland.nl, 1 +regioseguros.com.br, 1 regiotaxi-s-hertogenbosch.nl, 1 regiotaxidenbosch.nl, 1 regiotaxishertogenbosch.nl, 1 @@ -123176,7 +122111,6 @@ regulative.gq, 1 regulatory-reporting.com, 1 rehab.cf, 1 -rehab.cn.ua, 1 rehabilitologist.ru, 1 rehabthailand.com, 1 rehabthailand.org, 1 @@ -123219,7 +122153,7 @@ reikimaster.tk, 1 reilly.io, 1 reimagine-education.com, 1 -reimaginebelonging.org, 0 +reimaginebelonging.org, 1 reimann.me, 1 reimers.de, 1 reims-digital.fr, 1 @@ -123358,7 +122292,7 @@ reliablewire.com, 1 reliahost.nl, 1 reliancecard.com, 1 -reliant.com, 1 +reliant.com, 0 reliant3sixty.com, 1 reliantpropertygrpri.com, 1 relic.gq, 1 @@ -123515,7 +122449,6 @@ renaultzambezi.co.za, 1 rencia.com, 1 rencontredemerde.fr, 1 -renda360.net, 1 rendall.tv, 1 rendatododia.xyz, 1 render.com, 1 @@ -123548,7 +122481,6 @@ reneschroeter.de, 1 renet.com.br, 1 renet.tk, 1 -renevo.eu, 1 renewablekids.tk, 1 renewablemaine.org, 0 renewals.pl, 1 @@ -123708,8 +122640,8 @@ repeatresponse.com.au, 1 repertuarim.com.tr, 1 repettoshoes.tk, 1 -repharmacy.com, 0 repin.in.ua, 1 +repinger.com, 1 repinger.my.id, 1 repintadoautomotriz.com, 1 repl.ga, 1 @@ -123776,7 +122708,6 @@ reptiledirect.com, 1 reptilepoint.com, 1 reptilescan.com, 1 -reptrax.com, 1 republic.gg, 1 republic.gr, 1 republica.gt, 1 @@ -123786,7 +122717,6 @@ republicasantabanana.org, 1 republicchophouse.com, 1 republicmo.gov, 1 -republictelecom.net, 1 republik-sombora.tk, 1 republique.org, 1 repugnant-conclusion.com, 1 @@ -123949,7 +122879,6 @@ responsivepaper.com, 1 respostas.com.br, 1 respublica.cl, 1 -ressourcement-interieur.com, 1 ressourceportal.dk, 1 ressourcesindivior.com, 1 ressourcesleopharma.fr, 1 @@ -123986,7 +122915,6 @@ restauratorin-maubach-dresden.de, 1 restaured.net, 1 restauriedili.roma.it, 1 -restbygait.com, 1 rester-a-domicile.ch, 1 rester-autonome-chez-soi.ch, 1 restic.net, 1 @@ -124140,7 +123068,6 @@ reurbcaceres.com.br, 1 reusables.org, 1 reuschtools.com, 1 -reusesti.ro, 1 reusorecicla.com.br, 0 reut42.de, 1 reuter-profishop.de, 0 @@ -124254,7 +123181,6 @@ revolutionaryireland.gq, 1 revolutionaryireland.ml, 1 revolutionengine.tk, 1 -revolutionenkommer.dk, 1 revolutionhealth.ca, 1 revolutionizingheartfailure.com, 1 revolutionofbeauty.tk, 1 @@ -124263,7 +123189,7 @@ revolware.com, 1 revosoft.de, 1 revres.info, 1 -revspace.nl, 1 +revspace.nl, 0 revthefox.co.uk, 1 revton.com, 1 revuestarlight.me, 1 @@ -124686,7 +123612,6 @@ rightstartcapital.com, 1 rightstartent.com, 1 rightstartinc.com, 1 -rightstuff.link, 1 rightthingrecruit.com, 1 righttolife.org.uk, 1 righttrack.io, 1 @@ -124755,7 +123680,6 @@ rimpianto.com, 1 rimzim.tk, 1 rinabhabra.com, 1 -rinaent.com, 1 rincat.ch, 1 rincon-nsn.gov, 1 rinconanimalista.com, 1 @@ -124796,7 +123720,6 @@ rioinbox.com.br, 1 riolista.com, 1 rioloagolf.tk, 1 -riomaisbrindes.com.br, 1 riomi.org, 1 riosoil.co.uk, 1 riosoil.com, 1 @@ -124865,7 +123788,6 @@ risheriffs.gov, 1 rishikeshyoga.in, 1 rishikeshyogavalley.com, 1 -rishta360.com, 1 risi-china.com, 1 rising-cubers.tk, 1 risingsoftware.com, 1 @@ -124914,7 +123836,6 @@ rite-tech.us, 1 riteboost.com, 1 ritepriceheatingcooling.com.au, 1 -riterry.com, 1 riteway.rocks, 1 ritirocalcinacci.roma.it, 1 ritirocalcinacci.viterbo.it, 1 @@ -125123,7 +124044,6 @@ roadtochina.tk, 1 roadtoglory.tk, 1 roadtopgm.com, 1 -roadtoross2025.com, 1 roadtripaustralia.com.au, 1 roadtripnation.com, 1 roadtripusa.tk, 1 @@ -125180,7 +124100,7 @@ robertoggarcia.tk, 1 robertopazeller.ch, 1 robertoullan.tk, 1 -robertreeveslaw.com, 0 +robertreeveslaw.com, 1 robertrijnders.nl, 1 robertsfinejewelers.com, 1 robertsjoneslaw.com, 0 @@ -125393,7 +124313,6 @@ rockspringswi.gov, 1 rocktonil.gov, 1 rocktontownshipil.gov, 1 -rockvilledentalarts.com, 1 rockworldteam.tk, 1 rockyford-co.gov, 1 rockymountaininsurancecenter.com, 1 @@ -125401,7 +124320,6 @@ rockymountva.gov, 1 rockymtnexpress.com, 1 rockyourlife.gq, 1 -rockyrealestate.com, 1 rocssocial.com.au, 1 rocssti.net, 1 rodab.party, 1 @@ -125453,7 +124371,6 @@ roelenscitynews.ml, 1 roelfs.org, 1 roelhollander.eu, 1 -roeljoyas.com, 1 roelkoops.nl, 1 roelof.io, 1 roelonline.tk, 1 @@ -125505,7 +124422,7 @@ roguetech.ca, 1 roguevalleywinecountry.com, 1 rohal.tk, 1 -rohanbassett.com, 1 +rohanbassett.com, 0 rohansingh.cf, 1 rohde.de, 0 rohedaten.de, 1 @@ -125515,7 +124432,6 @@ rohkeakirkko.fi, 1 rohlik.cz, 1 rohrle.com, 1 -rohrle.net, 1 rohrreinigung-zentrale.de, 1 rohrstock.at, 1 roi4presenter.com, 1 @@ -125541,7 +124457,6 @@ rokuk.org, 1 rokz.ly, 1 rolamar.com.br, 1 -roland-dickeyjr.com, 0 roland.io, 1 rolandinsh.com, 0 rolandlips.com, 1 @@ -125574,7 +124489,6 @@ rollerwarehouse.com, 1 rolleyes.org, 1 rollforadventure.com.au, 1 -rolling.es, 1 rollingbarge.com, 1 rollingcouchapp.com, 1 rollinghillsestates.gov, 1 @@ -125691,7 +124605,6 @@ roninf.ch, 1 roninitconsulting.com, 1 roninmotorsports.net, 1 -ronkeesom.nl, 1 ronlinemarketing.com, 1 ronniegane.kiwi, 1 ronnylindner.de, 1 @@ -125763,7 +124676,6 @@ root-books.ml, 1 root-couture.de, 1 root-space.eu, 1 -root.bg, 1 root.cz, 1 root.eu.org, 1 root.place, 1 @@ -125772,7 +124684,6 @@ rootcamp.net, 1 rootd.at, 1 rootdo.com, 1 -rootdo.org, 1 rootear.com, 1 rootedallies.space, 1 rootedlifemontessori.com, 1 @@ -125780,7 +124691,6 @@ rootedwellnessot.com, 1 rooter.group, 1 rootergroupinc.ca, 1 -rootfor.me, 1 rootgsm.com, 1 rootie.de, 1 rootingpalace.tk, 1 @@ -125816,7 +124726,6 @@ ropesmart.com, 1 roquebrunesurargens-tourisme.fr, 1 roques.tk, 1 -roquesevilla.com, 1 rorelseprojektet.se, 1 roromendut.online, 1 rorr.im, 1 @@ -125826,7 +124735,6 @@ rosabrasiv.ga, 1 rosacosmos.tn, 1 rosaflorbijoux.com.br, 1 -rosakkreditatsiya-forum.ru, 1 rosalinda.cl, 1 rosalindturner.co.uk, 1 rosalopezcortes.tk, 1 @@ -125846,7 +124754,6 @@ rosebikes.com, 1 rosebikes.de, 1 rosebikes.nl, 1 -roseboom-bouwkundigadvies.nl, 1 rosebudcountysheriffmt.gov, 1 rosecoaudit.com, 1 rosedenellandudno.co.uk, 1 @@ -125912,7 +124819,6 @@ rossignoli.it, 1 rossiyskaja.cf, 1 rosskingbooks.com, 1 -rosskopfs.de, 1 rosslug.org.uk, 1 rossome.org, 1 rossparker.org, 1 @@ -126009,7 +124915,6 @@ roundcube.mayfirst.org, 0 rounder.pics, 1 roundrock-locksmith.com, 1 -roundtechsquare.com, 1 roundtoprealestate.com, 0 roussillon-informatique.fr, 1 roussos.cc, 1 @@ -126091,14 +124996,12 @@ royal877.com, 0 royal88.com, 1 royal880.com, 0 -royal882.com, 0 royal8822.com, 0 royal885.com, 0 royal886.com, 0 royal887.com, 0 royal896.com, 0 royal898.com, 0 -royal899.com, 0 royal929.com, 0 royal939.com, 1 royalasianescorts.co.uk, 1 @@ -126259,7 +125162,6 @@ rsdbyroos.nl, 1 rsdisedezzari.it, 1 rsdns.ml, 1 -rse-reporting.com, 1 rsec.kr, 1 rsecure.tk, 1 rsfinance.ch, 1 @@ -126359,7 +125261,6 @@ rtkbe.com, 1 rtlnitro.de, 1 rtlspiele.de, 1 -rtm.kr, 0 rtmi.co.il, 1 rtmoran.org, 1 rtmtech.ru, 1 @@ -126458,7 +125359,6 @@ rubystore.ga, 1 rucheentreprise.fr, 1 ruchka-mashinka.gq, 1 -rucinscy.net, 1 rucinski.ch, 1 rucinski.eu, 1 rucinski.uk, 1 @@ -126489,7 +125389,6 @@ ruecommune.fr, 1 ruediger-voigt.eu, 1 ruedigervoigt.de, 1 -ruedirrenggli.ch, 0 ruedumas.freeboxos.fr, 1 rueduparticulier.tk, 0 rueg.eu, 1 @@ -126603,7 +125502,6 @@ rundom.co, 1 rundu.ml, 1 rundum-service-omh.de, 1 -rundum-sorglos.digital, 1 rundumcolumn.xyz, 1 runebet.com, 1 runeblog.ru, 1 @@ -126731,7 +125629,6 @@ russia-knigi.ga, 1 russia-rp.tk, 1 russia-travel.com, 1 -russia.dating, 0 russia.wtf, 1 russiahockey.tk, 1 russiahunting.tk, 1 @@ -126817,7 +125714,6 @@ ruvoip.net, 1 ruwhof.com, 1 ruwhof.net, 1 -ruxit.com, 0 ruxleyglobal.com, 1 ruya.com, 1 ruyana.tk, 1 @@ -126870,16 +125766,15 @@ rxcarbon.com, 1 rxcom.net, 1 rxhill.com, 1 +rxkids.org, 1 rxperiusdata.com, 1 rxphoto.com, 1 rxss.com, 1 -rxssplus.com, 1 rxxx.ml, 1 rya.nc, 1 ryabinushka.tk, 1 ryan-13.tk, 1 ryan-design.com, 1 -ryan-gehring.com, 1 ryan-goldstein.com, 1 ryan.black, 1 ryan.cafe, 1 @@ -126934,7 +125829,6 @@ rylin.net, 1 rymanhp.com, 1 rymanow.tk, 1 -rymdweb.com, 1 rymergames.tk, 1 rymshospital.com, 1 rynekpierwotny.pl, 1 @@ -127081,6 +125975,7 @@ saam.aero, 1 saaminuett.fi, 1 saap.me, 1 +saaral.org, 1 saarehaigla.ee, 1 saaremaa.tk, 1 saaricraft.ml, 1 @@ -127210,7 +126105,6 @@ sadoun.com, 1 sadovskiy.tech, 1 sadrailsim.de, 1 -sadroveomitky.net, 1 sadsu.com, 0 sadubykovunu.com.ua, 1 sadurscy.pl, 1 @@ -127234,7 +126128,6 @@ safaris-uganda.com, 1 safarisbonafricatours.com, 1 safarisop.com, 1 -safataviationgroup.com, 1 safatech.me, 1 safc.tk, 1 safcstore.com, 0 @@ -127287,7 +126180,7 @@ safensoundstoragegroton.com, 1 safeo.fr, 1 safeocs.gov, 1 -safepassvpn.com, 1 +safepassvpn.com, 0 safeplay.co, 1 safeplayground.net, 1 safer-software.tk, 1 @@ -127384,7 +126277,6 @@ sagomedia.tk, 1 sagradamadre.hu, 1 sagradobyme.cl, 1 -sagretreviso.it, 1 sagsaga.org, 1 saguaro.care, 1 saguarocc.com, 1 @@ -127416,7 +126308,6 @@ sahpa.co.za, 1 sai.be, 1 sai.com.in, 1 -saibababirthplace.org, 1 saiber.com, 1 saibotk.de, 0 said.id, 1 @@ -127434,7 +126325,6 @@ saiful.web.id, 1 saigonland24h.vn, 1 saigonstar.de, 1 -saijanmasthan.org, 1 saikarra.com, 1 saikouji.tokushima.jp, 1 sail-holidays-hub.gr, 1 @@ -127444,18 +126334,13 @@ sailing-delfina.it, 1 sailmail.io, 1 sailmainecoast.com, 1 -sailormoondoujinshi.org, 1 sailormoonevents.org, 1 sailormoonfansubs.com, 1 sailormoongallery.org, 1 -sailormoonlibrary.org, 1 sailors.org, 1 sailum.tk, 1 -saily.pl, 1 sailyun.cc, 1 saimedia.net, 0 -saimoe.moe, 1 -saimoe.org, 1 sainaracademy.com, 1 sainetworks.net, 1 sainokuni-eng.jp, 1 @@ -127531,6 +126416,7 @@ saisyuusyou-utsunomiya.com, 1 sait.health, 1 saitapovan.com, 1 +saitas.net, 1 saito-koken.co.jp, 1 saitrance.com, 1 saitschool.ml, 1 @@ -127761,13 +126647,11 @@ saludakeuring.nl, 1 saludcarbajal.com, 1 saludcolima.gob.mx, 1 -saludmaspro.com, 1 saludnutrivida.com, 1 saluels.servemp3.com, 1 salukinet.tk, 1 salunganogroup.com, 1 salus-cm.care, 1 -salus.zone, 1 salut-butovo.cf, 1 salutes.tk, 1 salutethefish.com, 1 @@ -127905,8 +126789,6 @@ samquick.me.uk, 1 samroelants.com, 1 samsara.nl, 1 -samsat.info, 1 -samsatcorner.com, 1 samscollection.in, 1 samsebe.ml, 1 samsebe.tk, 1 @@ -127953,7 +126835,6 @@ san-vigilio-marebbe.net, 1 san.tv, 1 san0j.de, 1 -sana-commerce.com, 1 sana-store.com, 1 sana-store.cz, 1 sana-store.sk, 1 @@ -128114,7 +126995,6 @@ sanilaccounty.gov, 1 sanilactownshipmi.gov, 1 sanin.gq, 1 -sanitaer-heinze.com, 1 sanitaer-notdienst-zentrale.de, 1 sanitairwinkel.be, 1 sanitairwinkel.com, 1 @@ -128180,7 +127060,6 @@ sanroque.es, 1 sans-hotel.com, 1 sans-papiers.ch, 1 -sansaenergy.com, 1 sansairyu-kuyoukai.com, 1 sansdb.io, 0 sansdict.ml, 1 @@ -128503,7 +127382,7 @@ satat.tk, 1 sateallia.org, 1 satelital.tk, 1 -satelitnews.com, 0 +satelitnews.com, 1 satellights.tk, 1 satellite-equipment.tk, 1 satellite-shop.tk, 1 @@ -128525,7 +127404,6 @@ sativatunja.com, 1 satl-lelystad.nl, 1 satlantis.tk, 1 -satmd.de, 1 satoplet.cz, 1 satopletova.cz, 1 satoshinumbers.com, 1 @@ -128633,7 +127511,6 @@ saveeachlife.com, 1 savehumanitynow.com, 1 savejonasquinn.tk, 1 -savemycent.com, 1 savemyexams.co.uk, 1 savemyleads.com, 1 savemylicence.co.uk, 1 @@ -129062,7 +127939,6 @@ schizomatrix.cf, 1 schizomatrix.tk, 1 schkamien.pl, 1 -schlachter.ca, 1 schlafteq.com, 1 schlagenhauf.info, 0 schlagma.de, 1 @@ -129114,7 +127990,6 @@ schmucker.it, 1 schmunzelgeist.de, 1 schnalstal.info, 1 -schnalz.de, 1 schnapke.name, 1 schnapsverein.ddns.net, 1 schnaube.de, 1 @@ -129392,7 +128267,6 @@ scity88.com, 1 scjc-bridge.fr, 1 sckc.stream, 1 -sckg.com, 1 sclasupplychain.com, 1 sclee.website, 1 sclegalvideo.com, 1 @@ -129505,7 +128379,6 @@ scottyspot.tk, 1 scounter.tk, 1 scour.cc, 1 -scoure.de, 1 scourgesofcarpathia.tk, 1 scout-korting.tk, 1 scoutbee.io, 0 @@ -129525,7 +128398,7 @@ scoutsanbartolome.tk, 1 scoutsanpieropatti.tk, 1 scoutsdeldesierto.tk, 1 -scoutwired.org, 0 +scoutwired.org, 1 scp-rustenholz-trens.notaires.fr, 1 scpe.eu.org, 1 scpocahontas.nl, 1 @@ -129592,7 +128465,6 @@ scripter.co, 1 scriptline.ga, 1 scriptmaker.tk, 1 -scriptnav.com, 1 scriptolab.com, 1 scriptomania.tk, 1 scriptop.co, 1 @@ -129678,7 +128550,6 @@ sdeu.fr, 1 sdfamilycare.org, 1 sdfcn.org, 1 -sdfi.com, 1 sdgfsdgyuise3.duckdns.org, 1 sdgllc.com, 1 sdgrait.tech, 1 @@ -129709,7 +128580,6 @@ sdpp.cc, 1 sdrp.org, 1 sdruzeniprovltavu.cz, 1 -sds-marburg.de, 0 sdsapa.ai, 1 sdsapa.com, 1 sdsbd.top, 1 @@ -129748,7 +128618,7 @@ seahaweb.org, 1 seaif.org, 1 seal-tite.eu, 1 -sealability.co.uk, 1 +sealability.co.uk, 0 sealart.pl, 1 sealaw.com, 1 sealbaker.com, 1 @@ -129924,7 +128794,6 @@ secapp.fi, 1 secard.cc, 1 secard.me, 1 -secard.xyz, 1 secatscale.org, 1 secaucusnjpolice.gov, 1 secborder.com, 1 @@ -129934,7 +128803,7 @@ secfilingdata.com, 1 secgui.de, 1 sech.me, 1 -secinto.com, 0 +secinto.com, 1 secitem.de, 1 seclimax7.pw, 1 seclink.link, 1 @@ -130119,7 +128988,6 @@ securitypuppy.com, 1 securitysense.co.uk, 1 securitysnobs.com, 0 -securitystreak.com, 1 securitystudio.com, 0 securitytalent.nl, 1 securitytalk.pl, 1 @@ -130309,13 +129177,11 @@ seiservices.com, 1 seishinan.xyz, 1 seishinchuo-lawoffice.com, 1 -seishuncollection.com, 1 seismas1.com, 1 seisthewaytobe.com, 1 seistolzaufdich.de, 1 seistrup.dk, 1 seitai-taiyou.com, 1 -seitanic-cookbook.de, 1 seitensieger.at, 1 seitensieger.ch, 1 seitensieger.de, 1 @@ -130365,7 +129231,6 @@ selbstverteidigung-catmove.de, 1 selco-himejiminami.com, 1 selcusters.nl, 1 -selea.se, 1 selebrita.ml, 1 selecadm.name, 1 selectables.tk, 1 @@ -130552,7 +129417,6 @@ senat.cz, 1 senat.ro, 1 senatorhughes.com, 1 -senbil.net, 1 senbil.video, 1 sence.gob.cl, 1 sencurina.de, 1 @@ -130574,7 +129438,6 @@ sendaimori.com, 1 sendaiouji.com, 1 sendbird.com, 1 -sendbox.cz, 1 sendcredit.com, 1 sendengo.com, 1 sender.net, 1 @@ -130596,7 +129459,7 @@ sendsonar.com, 1 sendsteps.com, 1 sendthisfile.com, 1 -sendtrix.nl, 1 +sendtrix.nl, 0 sendwithses.com, 1 sendy.land, 1 sendzik.eu, 1 @@ -130615,7 +129478,6 @@ seniorem.eu, 1 seniorhelpers.com, 1 seniorhost.net, 1 -seniorie-sart-tilman.be, 1 seniorlivinginvestments.eu, 1 seniormanager.cz, 1 seniornavigator.org, 1 @@ -130771,8 +129633,6 @@ seomag.tk, 1 seomap.ir, 1 seomarketing.bg, 1 -seomaton.com, 1 -seomaton.org, 1 seomaxion.com, 1 seomedo.com, 1 seomen.biz, 1 @@ -130827,10 +129687,9 @@ seovisit.tk, 1 seovisits.tk, 1 seoviziti50.tk, 1 -seowerkz.com, 1 +seowerkz.com, 0 seowhizone.com, 1 seowind.io, 1 -seowordpress.pl, 1 seowork.tk, 1 seozel.tk, 1 seozen.top, 1 @@ -130920,7 +129779,7 @@ sergeantbiggs.net, 1 sergeemond.ca, 1 sergefonville.nl, 1 -sergelapointe.ca, 1 +sergelapointe.ca, 0 sergepalincpa.com, 1 sergeyburov.tk, 1 sergeyesenin.tk, 1 @@ -131009,7 +129868,6 @@ servelelecciones.cl, 1 servelink.com, 1 servend.gov, 1 -servenet.online, 1 serveport.com, 1 serveproxy.com, 1 servepublic.com, 1 @@ -131050,7 +129908,6 @@ serverninja.tk, 1 serveroffline.net, 1 serverpedia.de, 1 -servers.vg, 1 serverscan.com, 1 serversify.host, 1 serversify.net, 0 @@ -131103,7 +129960,6 @@ servicestechnologiquesam.ca, 1 servicestelle-jba.de, 1 servicevie.com, 0 -servicewash.it, 1 servicii-funerare.tk, 1 servicii-wordpress.ro, 1 serviciodebarralibreparaeventos.com, 1 @@ -131280,7 +130136,6 @@ sewing-world.ru, 1 sewingtales.com, 0 seworld.ml, 1 -sex-sex-cam.com, 1 sex-test.com, 1 sex-vergleich.com, 1 sex5.com, 1 @@ -131338,9 +130193,9 @@ sexswing.com, 0 sextacy.tk, 1 sextapegermany.com, 1 -sextoysproductstore.com, 1 sextpanther.com, 1 sextreffendeutschland.com, 1 +sextubespot.com, 1 sextw.net, 1 sexualdiversity.org, 1 sexualidadcursosvip.com, 1 @@ -131468,7 +130323,6 @@ sformule.cz, 1 sfotbal.cz, 1 sfotbalem.cz, 1 -sfpebblesstones.com, 1 sfpuc.gov, 1 sfrms-app.fr, 1 sfs.buzz, 1 @@ -131618,7 +130472,6 @@ shahadpharma.com, 1 shahar.cc, 0 shaharklamka.com, 1 -shaharyaranjum.com, 1 shaheedirfani.tk, 1 shaheednawazirfani.tk, 1 shahidafkar.tk, 1 @@ -131633,7 +130486,6 @@ shahrsazan.tk, 1 shahrvand.ga, 1 shahsaadkhan.tk, 1 -shahyadmusic.com, 1 shahzaibm.com, 1 shaicoleman.com, 1 shaiden-porn.com, 1 @@ -131650,7 +130502,7 @@ shakebeforeuse.tk, 1 shakeit.pt, 1 shaken-kyoto.jp, 1 -shakepay.com, 1 +shakepay.com, 0 shakerheightsoh.gov, 1 shakerwebdesign.net, 1 shakespeareans.net, 1 @@ -131679,7 +130531,7 @@ shamimahmed.tk, 1 shamimmedia.ir, 1 shamiphotos.tk, 1 -shamokit.com, 1 +shamokit.com, 0 shan.io, 0 shan.sg, 1 shan.si, 1 @@ -131889,15 +130741,16 @@ sheepproductions.com, 1 sheeprock.tk, 1 sheepsound.tk, 1 +sheerchain.com, 1 sheet.host, 1 sheetengine.net, 1 sheetflowpro.com, 1 +sheetseeker1486.it, 1 sheezy.art, 1 sheezy.blog, 1 sheezy.games, 1 sheezy.stream, 1 sheezy.wiki, 1 -sheezyf.art, 1 shef.com, 1 shefburgers.com, 1 sheffield-wednesday-fc.tk, 1 @@ -131927,7 +130780,6 @@ shellfire.net, 1 shelljuggler.com, 0 shellopolis.com, 1 -shellot.com, 1 shellsec.pw, 0 shellshock.eu, 1 shellta.com, 1 @@ -132122,10 +130974,8 @@ shipengliang.com, 1 shipgoldchandler.com, 1 shipham.co.uk, 1 -shipheart.tech, 1 shipinhuiyi.com, 0 shipitsmarter.com, 1 -shipkardo.pk, 1 shiplapandshells.com, 1 shipmondo.com, 1 shipmonk.cloud, 1 @@ -132162,7 +131012,6 @@ shirimasen.com, 1 shirley.li, 1 shirlygilad.com, 1 -shiro.love, 1 shiroki-k.net, 1 shiropaev.tk, 1 shirosaki-hana.fun, 1 @@ -132267,7 +131116,7 @@ shooba.net, 1 shoobacreations.com, 1 shooger.com, 1 -shoosmiths.com, 1 +shoosmiths.com, 0 shoot360franchise.com, 1 shooter.dog, 1 shooting-balades.com, 1 @@ -132411,7 +131260,6 @@ shoppingglory.ga, 1 shoppinggrab.ga, 1 shoppingguerilla.ga, 1 -shoppingguru.co.za, 1 shoppinghands.ga, 1 shoppinghandsome.ga, 1 shoppinghotrod.ga, 1 @@ -132559,7 +131407,6 @@ shortwave.tk, 1 shoruihokan.com, 1 shoshonecityid.gov, 1 -shoshovis.com, 1 shossain.tk, 1 shost.ga, 1 shota-sekkotsuin.com, 1 @@ -132572,8 +131419,6 @@ shotsleeve.com, 1 shou.si, 1 shoudanren.jp, 1 -shoujik8.com, 1 -shoujochronicle.org, 1 shouldbetaught.com, 1 shoulderandelbowspecialist.com.au, 1 shouldiclick.it, 1 @@ -132789,7 +131634,7 @@ sibs.com, 1 sibu.one, 1 sicapita.com, 1 -sicblox.com, 0 +sicblox.com, 1 siccardisport.it, 1 sich-fight.club, 1 sich-positionieren.net, 1 @@ -132816,7 +131661,7 @@ sidechannel.blog, 1 sidechannel.media, 1 sidecredit.ga, 1 -sidedoorapp.com, 1 +sidedoorapp.com, 0 sidefx.com, 0 sideleau.com, 1 sidemount-tauchen.com, 1 @@ -132835,7 +131680,6 @@ sidingsmedia.com, 1 sidiprojects.us, 1 sidirokastro.ga, 1 -sidium.de, 1 sidmax.ca, 1 sidneymi.gov, 1 sidnicio.us, 1 @@ -132908,7 +131752,6 @@ sight-restoration.tk, 1 sight-sound.com, 1 sightandsound.co.uk, 1 -sightcure.jp, 1 sightfactory.com, 1 sightful.be, 1 sightful.eu, 1 @@ -132964,13 +131807,12 @@ signaturerx.co.uk, 1 signaturesmilesstudio.com, 1 signcreative.de, 1 -signdeer.com, 1 signeen.com, 1 signeen.net, 1 signere.com, 1 signetfm.com, 1 signicat.com, 1 -signicat.io, 0 +signicat.io, 1 significado.origem.nom.br, 1 significadodenombres.net, 1 significados.com, 1 @@ -133657,7 +132499,6 @@ sirena.ml, 1 sirenassociates.com, 0 sirenasweet.net, 1 -sirenasweet.org, 1 sirencallofficial.com, 1 sirenequestrianvaulting.co.uk, 1 sirenequestrianvaulting.com, 1 @@ -133710,7 +132551,6 @@ sisadmin21.tk, 1 sisap.com, 1 siscompbolivia.tk, 1 -siscompt.com, 0 sisconmed.com.br, 1 siscoweb.it, 1 siscowebcrm.it, 1 @@ -133782,7 +132622,6 @@ sitecreation.tk, 1 sitecreator.tk, 1 sitecrew.cf, 1 -sitecuatui.com, 0 sitedebelezaemoda.com.br, 1 sitedynamix.co.uk, 1 siteforce.com, 1 @@ -133790,7 +132629,6 @@ siteinlight.com, 1 siteintelstage.com, 1 siteinteressant.net, 1 -sitejustice.com, 1 sitek.rocks, 1 sitekatalog.tk, 1 sitelinks.ga, 1 @@ -133854,7 +132692,6 @@ siwyd.com, 1 six.ee, 1 sixam.co.jp, 1 -sixara.com, 1 sixcolors.lu, 1 sixcorners.info, 1 sixcorners.net, 1 @@ -133927,7 +132764,6 @@ skaalen.com, 1 skaapkraalonline.co.za, 1 skabour.co.uk, 1 -skachat-filmi.info, 1 skachat-programmylini.ga, 1 skachat-shablon-rezyume-na-angliyskom-yazyk.tk, 1 skachat-zip.tk, 1 @@ -134148,7 +132984,7 @@ skoda-im-dialog.de, 1 skodapower.tk, 1 skodapreowned.in, 1 -skogsforum.se, 1 +skogsforum.se, 0 skogsstyrelsen.se, 1 skoi2023.com, 1 skoilly.cc, 1 @@ -134164,7 +133000,7 @@ skolkavazka.cz, 1 skolni-system.eu, 1 skolnieks.lv, 1 -skolniweby.cz, 1 +skolniweby.cz, 0 skolplattformen.org, 1 skolskyportalporuba.cz, 1 skomtal.com, 1 @@ -134304,7 +133140,7 @@ skylander.cf, 1 skylandsoft.com, 1 skylarker.org, 1 -skylightcreative.com.au, 1 +skylightcreative.com.au, 0 skylightipv.com, 1 skyline.tw, 1 skylinehk.org, 1 @@ -134328,10 +133164,9 @@ skynet.edu.kg, 1 skynet233.ch, 0 skynet800.goip.de, 1 -skynetcloud.org, 1 skynetcloud.site, 1 -skynetz.tk, 1 skynfans.com, 1 +skynotify.co, 1 skyoceanblue.com, 1 skyoy.com, 0 skypanic.com, 1 @@ -134339,6 +133174,7 @@ skypce.net, 1 skype, 1 skype.com, 0 +skypech.com, 1 skypicker.com, 1 skypicshd.com, 1 skyportcloud.com, 1 @@ -134383,7 +133219,6 @@ skywayplatform.com, 1 skywitnessnews.com, 1 skyworldserver.ddns.net, 1 -skywt.cn, 0 skyynet.de, 1 skyzimba.com.br, 1 sl-alarm.ru, 1 @@ -134439,7 +133274,6 @@ slate.fr, 1 slate.to, 1 slated.ie, 0 -slatemc.com, 1 slatemc.fun, 1 slateteams.com, 0 slathering.cf, 1 @@ -134547,7 +133381,7 @@ slimcrm.vn, 1 slime5.com.tw, 1 slimer.com, 1 -slimgrafix.cz, 1 +slimgrafix.cz, 0 slimhost.com.ua, 0 slimpay.com, 1 slimspots.com, 1 @@ -134712,7 +133546,7 @@ smallfoot.tk, 1 smallguard.fr, 1 smallingerland.nl, 1 -smallplanet.com, 0 +smallplanet.com, 1 smalls-world.tk, 1 smallsiri.gq, 1 smallsites.eu, 1 @@ -134722,6 +133556,7 @@ smallville.tk, 1 smallville25.tk, 1 smallwhitebear.ga, 1 +smaltimento-rifiuti.com, 1 smaltimento.caserta.it, 1 smaltimento.milano.it, 1 smaltimento.napoli.it, 1 @@ -134828,7 +133663,6 @@ smartglassworld.net, 1 smartguardzone.kr, 1 smarthdd.com, 1 -smarthealthinnovationlab.com, 1 smarthis.com, 1 smarthomegeldermalsen.nl, 1 smarthrms.com, 1 @@ -134943,7 +133777,6 @@ smb.wiki, 1 smb445.com, 1 smbabyshop.gr, 1 -smbalaji.com, 1 smbc.direct, 1 smbcmanubank.com, 1 smbi-gelblasterhq.com.au, 1 @@ -135004,7 +133837,6 @@ smileinspector.io, 1 smilenwa.com, 1 smilephi.com, 1 -smilesofcary.com, 1 smilessoftplay.co.uk, 1 smileykylie.com, 1 smileys-emojis.com, 1 @@ -135088,7 +133920,6 @@ smoking-robot.com, 1 smokinghunks.com, 1 smokingtapes.ga, 1 -smokonz.com, 0 smokybay.is, 1 smokymountaingames.org, 1 smokyshores.radio, 0 @@ -135315,6 +134146,7 @@ snotoppen.nl, 1 snoupon.com, 1 snovinky.cz, 1 +snow-companies.com, 1 snow-flowers.com, 1 snow-service.it, 1 snowalerts.nl, 1 @@ -135324,7 +134156,6 @@ snowboard-break.tk, 1 snowboardforum.tk, 1 snowcat.tk, 1 -snowchamps.nl, 1 snowcrestdesign.com, 1 snowdon.io, 1 snowdrop.moe, 1 @@ -135340,7 +134171,6 @@ snowman25.de, 1 snowmassvillage.gov, 1 snoworld.one, 1 -snowpak.com, 0 snowparties.com, 1 snowpaws.de, 1 snowplanet.tk, 1 @@ -135374,7 +134204,6 @@ snwsjz.com, 1 snyder-ne.gov, 1 snydersofhanover.com, 1 -so-academy.fr, 1 so-design.net, 1 so-gorgeo.us.kg, 1 so-link.co, 1 @@ -135399,13 +134228,13 @@ sobakasite.tk, 1 sobaki.tk, 1 sobakoh-nyc.com, 1 +sobatkaos.biz.id, 1 sobchak.ga, 1 sobieray.dyndns.org, 1 soblaznenie.ru, 1 soblaznenie2.ru, 1 sobre.tk, 1 sobrelixo.tk, 1 -sobuj.me, 1 socal-babes.com, 1 socalaccessandvideo.com, 1 socalcoda.org, 1 @@ -135480,7 +134309,6 @@ socialproject.ml, 1 socialresponsibility.nl, 1 socials.gq, 1 -socialsafe.net, 1 socialsecurity.gov, 0 socialstandards.com, 1 socialstrata.com, 1 @@ -135517,7 +134345,6 @@ societyrun.com, 1 socilit.com, 1 sociobiology.com, 1 -sociofab.com, 1 sociohosting.es, 1 sociology-bg.gq, 1 sociology-schools.com, 1 @@ -135568,7 +134395,6 @@ sodrujestvo.tk, 1 sodsouthernindiana.com, 1 sodusny.gov, 1 -soe-server.com, 1 soegi-haru.com, 1 soel.wa.edu.au, 1 soellner.info, 1 @@ -135644,11 +134470,10 @@ softonic.pl, 1 softonic.ru, 1 softonic.se, 1 -softonit.ru, 1 +softonit.ru, 0 softonline.net, 1 softpark.cf, 1 softpark.ml, 1 -softpas.com, 1 softplay4hire.co.uk, 1 softpractice.com, 1 softref.com, 1 @@ -135827,14 +134652,13 @@ solidityfactory.io, 1 solidnet.software, 1 solidnetwork.org, 1 -solidpoint.com.my, 1 solidpurenonsense.tk, 1 solidray.co.jp, 1 solidshield.com, 1 solidsteel.tk, 1 solidtuesday.com, 1 solifi.com, 1 -solihull.ac.uk, 1 +solihull.ac.uk, 0 solihullinflatables.com, 1 solihullpcrepairs.co.uk, 1 solikreis-stuttgart.tk, 1 @@ -135887,7 +134711,6 @@ solostocks.com, 1 solostocks.it, 1 solostocks.ma, 1 -solostocks.pl, 1 sols.style, 1 solsea.io, 1 solsi.ga, 1 @@ -135908,7 +134731,6 @@ solutionbuilders.com, 1 solutionmotsfleches.com, 1 solutionpieces.com, 1 -solutionplumber.com, 1 solutions-ii.com, 1 solutions-it.net, 1 solutions-visuelles.ch, 1 @@ -136131,7 +134953,6 @@ soph.us, 1 sopheos.com, 0 sopher.io, 1 -sophia.com.br, 1 sophiafoundation.org, 1 sophiajaneboutique.com, 1 sophiakligys.com, 1 @@ -136228,7 +135049,6 @@ sosesh.shop, 1 sosessaimabeilles.com, 1 sosevents.nl, 1 -sosharch.com, 1 soshin.cf, 1 sosimple.academy, 1 sosisuka.ga, 1 @@ -136251,7 +135071,6 @@ sostacancun.com, 1 soste.fi, 0 sosyalevin.com, 1 -sosyalitya.com, 1 sosysadmin.com, 1 sosz.org, 1 sota.sh, 1 @@ -136425,13 +135244,11 @@ southcoastlocksmiths.com.au, 0 southdakotahealth.tk, 1 southdakotanet.tk, 1 -southeast-wholesale.com, 1 southeastasianarchaeology.com, 1 southeastattacksquadron.org, 1 southeastwsf.org, 1 southelginumc.org, 1 southerncross.tk, 1 -southerncrosscables.com, 1 southernexportterminals.com.au, 1 southernfashiondecorbd.com, 1 southernfirst.com, 1 @@ -136451,7 +135268,6 @@ southfloridaopenhousesearch.com, 1 southgatemi.gov, 1 southjacksonville-il.gov, 1 -southjerseyhomes.info, 1 southkingstownri.gov, 1 southlakenissanparts.com, 1 southlaketx.gov, 1 @@ -136530,6 +135346,7 @@ sovryn.com, 1 sovtech.tk, 1 sovxoz.gq, 1 +sowero.com, 1 sowero.de, 1 sowget.com, 1 sowhat.dk, 0 @@ -136797,7 +135614,6 @@ spbelect.org, 1 spbet99.com, 1 spbot.ml, 1 -spbtours.online, 1 spc-ag.ch, 1 spcconnect.com, 0 spcollege.edu, 1 @@ -136818,6 +135634,7 @@ speak.software, 1 speakeasy.co, 1 speakermatch.com, 1 +speakersassociates.com, 1 speakersbusiness.com, 1 speakersden.tk, 1 speakertwpmi.gov, 1 @@ -136911,7 +135728,6 @@ speedmarket.pt, 1 speedof.me, 1 speedracer.ca, 1 -speedtailors.com, 1 speedtemplate.de, 1 speedvitals.com, 1 speedwaybring-proposal.cf, 1 @@ -137086,7 +135902,6 @@ spiritdesigns.tk, 1 spiritedengineers.tk, 1 spiritgruppen.no, 1 -spirithouse.com, 1 spiritindia.com, 1 spiritous.cf, 1 spiritscorp.ddns.net, 1 @@ -137100,7 +135915,6 @@ spisochek.tk, 1 spisok-domenov.tk, 1 spit.com.au, 1 -spitalbuhusi.ro, 1 spitfiredialers.com, 0 spithoven.tk, 1 spjaet.dk, 1 @@ -137392,7 +136206,6 @@ springgrovepa.gov, 1 springharveststore.com, 1 springhillmaine.com, 1 -springhow.com, 1 springinklee.com, 1 springlakemi.gov, 1 springlanguages.com, 1 @@ -137515,6 +136328,7 @@ square.ly, 1 square.mx, 1 square.site, 1 +square1.de, 1 squarecdn.com, 1 squaredancedance.tk, 1 squaredaway.co.nz, 1 @@ -137526,7 +136340,6 @@ squaregift.com, 1 squaregift.net, 1 squaregift.org, 1 -squareinchhome.com, 1 squareincircle.me, 1 squareinstallments.com, 1 squareinvite.com, 1 @@ -137545,7 +136358,6 @@ squareupsandbox.com, 1 squatch.tube, 1 squeakie.club, 1 -squeaksscalesandtails.com, 1 squeaky.services, 1 squealing-filth.tk, 1 squeezemetrics.com, 1 @@ -137602,7 +136414,6 @@ srfloki.com, 1 srgry.link, 1 srhdesign.co.uk, 1 -srife.net, 1 srigc.com, 1 srilankan-hope-for-children.nl, 1 srilankanguides.com, 1 @@ -137738,7 +136549,6 @@ sslc.gov, 1 sslcertificaten.nl, 1 sslcheck.nl, 1 -sslcheckerpro.com, 1 sslcloud.net, 1 ssld.at, 1 ssldecoder.eu, 1 @@ -138116,7 +136926,6 @@ starfireorders.com, 1 starfm.gq, 1 starfm.ml, 1 -starfriend.ru, 1 stargarder-jungs.de, 1 stargate.gq, 1 stargate.how, 1 @@ -138133,7 +136942,6 @@ staringer.net, 1 starinup.com, 1 starinvestama.co.id, 1 -starinvestingship.com, 0 starka.st, 1 starken.com, 1 starking.net.cn, 1 @@ -138234,7 +137042,6 @@ startuphakksecurity.com, 1 startupislandtaiwan.com, 1 startupislandtaiwan.net, 1 -startupislandtaiwan.org, 1 startupmadeira.eu, 1 startupmoldova.digital, 1 startupnewstamil.com, 1 @@ -138309,7 +137116,6 @@ staticweb.tk, 1 statik.space, 1 stationa.ch, 0 -stationary-traveller.eu, 1 stationaryengines.tk, 1 stationcharlie.co.za, 1 stationhousecattery.com, 1 @@ -138474,7 +137280,6 @@ steelnavi.jp, 1 steelpoint.com.pl, 1 steelsheds.biz, 1 -steelshop.net, 1 steelsoldiers.com, 1 steelstructuresltd.com, 1 steelvortex.tk, 1 @@ -138584,7 +137389,7 @@ stematechnologies.ga, 1 stembureau-nissewaard.nl, 1 stembureauledenindenhaag.nl, 1 -stembureaunijmegen.nl, 1 +stembureaunijmegen.nl, 0 stemcellclinic.design, 1 stemcellclinic.live, 1 stemcellclinic.ltd, 1 @@ -138640,7 +137445,6 @@ stephanieschreiber.com, 1 stephanoptiek.nl, 1 stephen-oliver-art.co.uk, 1 -stephenalansalon.com, 1 stephenbakalian.com, 1 stephencashman.com, 0 stephencorp.com, 1 @@ -138855,7 +137659,6 @@ stickydot.eu, 1 stickypassword.com, 1 stickypigbbq.com, 1 -stickywilds.com, 1 stidmobile-id.com, 1 stiebel.co.nz, 1 stiebel.com.au, 1 @@ -138867,7 +137670,7 @@ stifflersmom.ga, 1 stift-kremsmuenster.at, 1 stift-kremsmuenster.net, 1 -stiftung-klima.de, 1 +stiftung-klima.de, 0 stiftung-lq.ch, 1 stiftung-lq.com, 1 stiftung-lq.net, 1 @@ -138933,7 +137736,6 @@ stjohnin.com, 0 stjohnin.gov, 1 stjohnks.gov, 1 -stjohnnepomucene.com, 1 stjohnofgodannualreport.nz, 1 stjohnpa.org, 1 stjohnsc.com, 1 @@ -138952,7 +137754,7 @@ stkeverneparishcouncil.org.uk, 1 stkevin-stbenedict.org, 1 stkildaosteopathy.com.au, 1 -stla.net, 0 +stla.net, 1 stlautoenhancements.com, 1 stlawco.gov, 1 stleismann.de, 1 @@ -139012,7 +137814,7 @@ stock-analysis-on.net, 1 stockageprive.net, 1 stockanalysis.com, 1 -stockbrain.co.jp, 1 +stockbrain.co.jp, 0 stockbridge-ma.gov, 1 stockbridgevt.gov, 1 stockfree.download, 1 @@ -139219,12 +138021,10 @@ storewebshop.com, 1 storex.storage, 1 storgaarddieu.com, 1 -stori.press, 1 storiadellarte.com, 1 storiadirectory.tk, 1 storiagraph.com, 1 storiatipic.com, 1 -storiediteecaffe.com, 1 stories-pro.com, 1 storiesbysign.com, 1 storiesofglass.nl, 1 @@ -139238,7 +138038,6 @@ storkurinn.is, 1 storm-news.tk, 1 stormairsoft.tk, 1 -storman.com, 1 stormboost.cz, 1 stormchile.cl, 1 stormdamages.claims, 1 @@ -139409,7 +138208,7 @@ strategysystems.com, 1 stratekispiel.at, 1 stratexonline.com, 1 -stratford.ac.uk, 1 +stratford.ac.uk, 0 stratfordct.gov, 1 stratfordnh.gov, 1 stratfordwi.gov, 1 @@ -139417,7 +138216,7 @@ strathspeycrown.com, 1 strati.com.br, 1 stratiacyber.com, 1 -stratible.com, 0 +stratible.com, 1 stratik.com.co, 1 stratinator.com, 1 stratinformatics.com, 1 @@ -139500,7 +138299,7 @@ streamnetwork.cz, 1 streamodz.com, 1 streampanel.net, 1 -streamr.com, 1 +streamr.com, 0 streams.dyndns.org, 1 streamside.tk, 1 streamsoft.pl, 1 @@ -139584,7 +138383,6 @@ strikeout.ga, 1 strikers.cf, 1 strikers.futbol, 1 -stringaudio.com, 1 strings.cf, 1 striniartglass.com, 1 strip-magazine.com, 1 @@ -139617,6 +138415,7 @@ stroimsami.tk, 1 stroimvse.ml, 1 stroiproect.tk, 1 +strojar.com, 1 strojmaster.tk, 1 strokesb.store, 1 strokesurvivor.nz, 1 @@ -139650,7 +138449,6 @@ strongsalpinesucculents.com, 1 strongspace.com, 1 strongtomorrow.tk, 1 -strony365.pl, 1 stronyinternetowekoszalin.pl, 1 stronypiotra.pl, 1 stronywww-lodz.pl, 1 @@ -139744,7 +138542,6 @@ studentenwerk.sh, 1 studentenwoordenboek.nl, 1 studenterguiden.dk, 1 -studentforums.biz, 1 studenti.tk, 1 studentinaneta.com, 1 studentite.bg, 1 @@ -139830,7 +138627,6 @@ studionerisabatini.it, 1 studionorwood.com, 1 studionowystyl.pl, 1 -studioocasp.com.br, 1 studiopanamaitalia.com, 1 studiopirrate.com, 1 studioshiftup.net, 1 @@ -139878,7 +138674,6 @@ studylish.com, 1 studyme.ml, 1 studynoun.com, 1 -studyportal.net, 1 studysive.com, 1 studyspanish-lapaz-bolivia.tk, 1 studystack.ml, 1 @@ -140126,7 +138921,6 @@ suddenlysavvy.com, 1 sudeleycastle.co.uk, 1 sudetytour.cz, 1 -sudo.ws, 1 sudoash.com, 1 sudocat.me, 1 sudoku-insight.tk, 1 @@ -140151,7 +138945,6 @@ suempresa.cloud, 1 sueniosmundiales.com, 1 suenotek.com, 1 -sueperclean.com, 1 suerteloteria.com, 1 suesse-kunst.de, 1 suessenbecker.de, 1 @@ -140161,14 +138954,12 @@ sufix.cz, 1 sufleu.ro, 1 sufleuri.ro, 1 -sufni.space, 1 sufundamento.com, 1 sufuorg.com, 1 sug.hr, 0 sugar-homes.com, 1 sugarbeatsentertainment.com, 1 sugarbrother.com, 0 -sugarcribs.com, 1 sugarcrm.com, 1 sugarcube.ml, 1 sugarcube.tk, 1 @@ -140325,7 +139116,6 @@ summermovies.nyc, 1 summersagamods.com, 1 summerschoolcybersecurity.org, 1 -summerstylessalon.com, 1 summersummit.eu, 1 summing.ga, 1 summit-group.com, 1 @@ -140343,7 +139133,7 @@ sumner-jc-wi.gov, 1 sumochki.tk, 1 sumppumpchicagoil.com, 1 -sumpters.co.nz, 1 +sumpters.co.nz, 0 sumran.in, 1 sumtercountysc.gov, 1 sumthing.com, 1 @@ -140374,6 +139164,7 @@ sunbusinessnetwork.org, 1 sunby.jp, 1 sunby.org, 1 +suncanakolica.eu, 1 suncanary.tk, 1 suncat.tk, 1 sunchild.ml, 1 @@ -140437,6 +139228,7 @@ sunnuntaimargariini.fi, 1 sunnuntaipaasiainen.fi, 1 sunnuntaipiirakka.fi, 1 +sunnuslight.com, 1 sunny.co.uk, 1 sunnyhome.tk, 1 sunnylyx.com, 1 @@ -140446,7 +139238,6 @@ sunnysideinc.ca, 1 sunnysidesolar.ca, 1 sunnyssingh.tk, 1 -sunnyx3m.com, 1 sunokuran.tk, 1 sunpax.ga, 1 sunpig.com.my, 1 @@ -140471,7 +139262,7 @@ sunsafe.se, 1 sunsandvoids.systems, 1 sunsdesign.net, 1 -sunsetfire.de, 0 +sunsetfire.de, 1 sunsetmusic.tk, 1 sunsetnelson.com, 1 sunsetplumbingutah.com, 1 @@ -140486,7 +139277,6 @@ sunshinelife.tk, 1 sunshinereporting.com, 1 sunshinerequest.com, 1 -sunshinetradingco.com, 0 sunskyview.com, 1 sunsmartnsw.com.au, 1 sunsong.org, 1 @@ -140503,7 +139293,6 @@ sunsunjewelry.com, 1 sunsunjewelry.net, 1 sunsunjewelry.org, 1 -sunsystem-speicher.de, 1 suntechnologies.com, 1 sunticschool.org, 1 suntropez-shop.it, 1 @@ -140512,7 +139301,7 @@ sunwayreit.com, 1 sunwayxfarms.com, 1 sunwei-proxy.tk, 1 -sunwolf.studio, 1 +sunwolf.studio, 0 sunyanzi.cf, 1 sunyanzi.tk, 1 suomensotilas.fi, 1 @@ -140574,7 +139363,6 @@ superbestpalsclub.tk, 1 superbir.net, 1 superbitcoinize.me, 1 -superbock.pt, 1 superboeruh.nl, 1 superbomber.tk, 1 superboom.dance, 1 @@ -140676,7 +139464,6 @@ supermustang.tk, 1 supern0va.net, 0 supernatural-fans.tk, 1 -supernaturalchronicles.com, 1 supernaut.info, 1 supernogi.ga, 1 superpaczka24.pl, 1 @@ -140713,7 +139500,6 @@ supertutorial.com.br, 1 superuser.one, 1 supervasan.se, 1 -supervets.com.au, 1 superway.es, 1 superwhoopi.tk, 1 superzaim.ga, 1 @@ -140798,13 +139584,12 @@ surfduck.cfd, 0 surfduck.club, 0 surfduck.co, 1 -surfduck.link, 0 +surfduck.link, 1 surfduck.me, 0 -surfduck.xyz, 0 +surfduck.xyz, 1 surfenergy.tk, 1 surfersconnect.net, 1 -surfinglisbon.com, 1 -surfingshare.com, 1 +surfingshare.com, 0 surfkath.de, 1 surflessonslisbon.com, 1 surfly.com, 1 @@ -140895,7 +139680,6 @@ sushiginzaonoderala.com, 1 sushikatze.de, 1 sushilmedicos.tk, 1 -sushrutaproject.org, 1 susiestoddart.tk, 1 suska.tk, 1 susoft.tk, 1 @@ -140939,7 +139723,6 @@ sutherlinoregon.gov, 1 sutinenmatthews.tk, 1 sutmar-anwaltskanzlei.de, 1 -sutor-trauerbegleitung.de, 1 sutore.com, 1 sutron.com, 1 suttacentral.net, 1 @@ -141007,7 +139790,6 @@ svarka24.com.ua, 1 svarka26.gq, 1 svarmax.com.ua, 1 -svarnainstitute.com, 1 svarovani.tk, 1 svasse.nl, 1 svatba.cf, 1 @@ -141199,7 +139981,6 @@ sweep.net, 0 sweeppeasweeps.com, 1 sweering.com, 1 -sweers.ch, 1 sweet-spatula.com, 0 sweet64.fr, 1 sweetair.com, 1 @@ -141222,7 +140003,7 @@ sweetlegs.jp, 1 sweetloaded.com, 1 sweetlycakes.com, 1 -sweetmedicinefarm.com, 1 +sweetmedicinefarm.com, 0 sweetnest.com, 1 sweetparis.cf, 1 sweetpinkpussy.org, 1 @@ -141411,7 +140192,7 @@ sx3.no, 1 sx6729.com, 1 sx8.ovh, 1 -sxilm.com, 1 +sxilm.com, 0 sxistolithos.gr, 1 sxls.com, 1 sxyql.de, 0 @@ -141486,7 +140267,6 @@ symbiose.com, 1 symbiosecom.ch, 0 symbiote.com.au, 1 -symbioxr.com, 1 symbo.xyz, 1 symbolics.digital, 1 symbolnodes.org, 1 @@ -141536,7 +140316,6 @@ syncpdi.com, 1 syncplay.pl, 1 syncresis.com, 1 -syncrony.com, 1 syncsci.com, 1 syncspace.live, 1 synder.com, 1 @@ -141548,7 +140327,6 @@ syneart.com, 1 synecek11.cz, 1 synedat.com, 1 -synel.co.il, 1 synergia.website, 1 synergiamedicalcare.es, 1 synergiedenken.de, 1 @@ -141619,8 +140397,6 @@ sys-state.de, 1 sys-tm.com, 1 sys.as, 1 -sysadmin.pm, 1 -sysadmin.xyz, 0 sysadmin21.tk, 1 sysadmins.ro, 1 sysadvisors.pl, 1 @@ -141672,8 +140448,6 @@ system.is, 1 system.md, 1 systemano.ru, 1 -systematic-momo.com, 1 -systematic-momo.dk, 1 systemausfall.org, 1 systemb.ch, 1 systemblog.tk, 1 @@ -141723,7 +140497,7 @@ szadeczky.com, 1 szafadziecka.com.pl, 1 szafkirtv.pl, 1 -szakszervezet.work, 0 +szakszervezet.work, 1 szalaiterko.hu, 1 szamitogepdepo.com, 1 szamlarobot.hu, 1 @@ -141753,7 +140527,6 @@ szih.org.pl, 1 szilagyicsalad.ddns.net, 1 szili.uk, 1 -szimpla.hu, 1 szkolenia-dron.pl, 1 szlovaknyelv.hu, 1 szlovennyelv.hu, 1 @@ -141845,7 +140618,7 @@ t4c.link, 1 t4gh.com, 1 t4gsports.com, 1 -t4x.org, 1 +t4x.org, 0 t5118.com, 1 t51365.com, 1 t5197.co, 1 @@ -141888,14 +140661,12 @@ ta-da.ua, 1 ta-hiroshi.jp, 1 ta-maison.fr, 1 -ta-nehisicoates.com, 1 ta-server.nl, 1 ta-soest.nl, 0 ta3.sk, 1 taabe.net, 1 taakjhaknews.com, 1 taanishsaifu.gq, 1 -taapk.com, 1 taartbesteld.nl, 1 taartenvankoenie.tk, 1 taartenvanmireille.nl, 1 @@ -141928,6 +140699,7 @@ tabi-news.com, 1 tabi-runrun.com, 1 tabi-time.com, 1 +tabi.tours, 1 tabira.tk, 1 tabisuta.com, 1 tabiteollisuus.tk, 1 @@ -142059,9 +140831,6 @@ tagstatravel.com, 1 taguette.com, 1 taguette.fr, 1 -taguette.org, 1 -tagungsraum-usedom.de, 0 -tagungsraum-zinnowitz.de, 0 tagungsstaette-usedom.de, 0 tagungsstaette-zinnowitz.de, 0 tahaluf.ai, 1 @@ -142197,7 +140966,6 @@ takko-fashion.com, 1 takkyu-navi.jp, 1 takosuke.net, 1 -taks.nl, 1 taksaft.tk, 1 takshni.com, 1 taksihesaplama.com, 1 @@ -142214,7 +140982,6 @@ taladphapim.com, 1 talakacaruli.tk, 1 talalaok.gov, 1 -talarislog.com, 1 talbottimber.co.uk, 1 talcualdigital.com, 1 taldia.es, 1 @@ -142231,8 +140998,6 @@ talentedagents.ga, 1 talentexcellence.com, 1 talentguru.ml, 1 -talenthope.com, 1 -talenthope.com.cn, 1 talenthubmpi.com, 1 talentimpuls.de, 1 talentio.com, 1 @@ -142267,7 +141032,6 @@ talkan.ru, 1 talkappin.com.au, 1 talkbasket.net, 1 -talkeducation.com, 1 talkgadget.google.com, 1 talkhaled.com, 1 talki.tk, 1 @@ -142297,8 +141061,8 @@ tallercs.tk, 1 tallerdesign.co.uk, 1 talleresluse.com, 1 +tallertales.net, 1 tallest.nl, 1 -talleyrandconsultancy.com, 1 tallgrasslegal.com, 1 tallinnsec.ee, 1 tallinnsex.ee, 1 @@ -142369,12 +141133,10 @@ tampa.gov, 1 tampabaybusinesslistings.com, 1 tampabayhistorycenter.org, 1 -tampabayhometours.info, 1 tampacific.net, 1 tampacific.vn, 1 tampaexplorer.ml, 1 tampereenliberaalit.tk, 1 -tampus.chat, 1 tamracapital.sa, 1 tamriel-rebuilt.org, 1 tamrielcraft.tk, 1 @@ -142437,7 +141199,6 @@ tangyue.date, 1 tangzhao.net, 1 tanhaa.tk, 1 -tanhongit.com, 1 taniawizualizacja.pl, 1 tanie-obraczki-szczecin.tk, 1 tanie-uprawnienia-sep.pl, 1 @@ -142472,7 +141233,6 @@ tannextcloud.cf, 1 tannlegenityrkia.no, 1 tanomimaster.com, 1 -tanorder.com, 1 tanovar.com, 1 tanphu.tk, 1 tanpopo.io, 1 @@ -142606,7 +141366,6 @@ tarkasparrows.org.za, 1 tarkett-group.com, 1 tarkov.tk, 1 -tarlo.it, 1 taron.top, 1 tarot-online-app.com, 1 tarot-online.cn, 1 @@ -142647,7 +141406,6 @@ tasefiling.gov, 1 tasfil.com, 1 tashicell.com, 1 -tasikmalayakab.go.id, 1 taskforce.eu, 1 taskhorizon.audio, 1 taskido.pl, 1 @@ -142681,7 +141439,6 @@ tastyplacement.com, 1 tastyreading.com, 1 tastystakes.com, 1 -tastyworksreview.co, 1 tasvideos.org, 1 tatamypa.gov, 1 tataog.com, 1 @@ -142758,7 +141515,7 @@ taupochamber.co.nz, 1 taupodental.co.nz, 1 taupopathways.co.nz, 1 -tauposculpturetrust.co.nz, 1 +tauposculpturetrust.co.nz, 0 taupotrampers.club, 1 taura.vn, 1 tauran.net, 1 @@ -142839,7 +141596,6 @@ taxibudapest.nl, 1 taxicollectif.ch, 0 taxid-k.be, 1 -taxihat.co.il, 1 taxihungary.com, 1 taxikraken.tk, 1 taximarcaminha.com, 1 @@ -142860,6 +141616,7 @@ taxo.fi, 1 taxobservatory.eu, 1 taxpackagesupport.com, 1 +taxpi.ru, 1 taxstorestalbans.com.au, 1 taxuni.com, 1 taybee.net, 1 @@ -142920,7 +141677,6 @@ tbld.gov, 1 tblflip.de, 1 tblnk.de, 1 -tbonejs.org, 1 tbox.net, 1 tbpchan.cz, 1 tbq-s.com, 1 @@ -142960,8 +141716,6 @@ tcgbridge.com, 1 tcgc-adms.com, 1 tcgcardcare.com, 1 -tcgcollector.com, 1 -tcglobal.com, 1 tcgpraktijk.nl, 1 tcgprinter.com, 1 tcgrepublic.com, 1 @@ -142995,7 +141749,6 @@ tcrecord.org, 1 tcrid.com, 1 tcspartner.eu, 1 -tcspartner.net, 1 tcttire.com, 1 tcuprs.com, 1 tcust.edu.tw, 1 @@ -143018,7 +141771,6 @@ tdelmas.ovh, 1 tdem.eu, 1 tdev.team, 1 -tdk-ventures.com, 1 tdk.cn, 1 tdk.eu, 1 tdl.ge, 1 @@ -143150,7 +141902,6 @@ teamhybridforums.com, 1 teamjiradia.tk, 1 teamkankun.tk, 1 -teamkgsr.com, 1 teamkilled.tk, 1 teamkiller.tk, 1 teamkoncert.pl, 1 @@ -143416,13 +142167,11 @@ techlearningcollective.com, 1 techlevel.org, 1 techlit.pk, 1 -techlore.tech, 1 techlovers.com, 1 techlr.de, 1 techmagazine.tk, 1 techmagick.com, 1 techmahindrafoundation.org, 1 -techmaish.com, 1 techmammal.de, 1 techmanstan.com, 1 techmatter.tk, 1 @@ -143468,7 +142217,6 @@ techniquetechs.com, 1 techno-utopia.com, 1 technoairlines.com, 0 -technobaboy.com, 1 technocast.dz, 1 technochat.in, 1 technocracy.works, 1 @@ -143506,7 +142254,6 @@ technologyinformation.tk, 1 technologyintergrity.ga, 1 technologyjust.ga, 1 -technologylawdispatch.com, 0 technologylittle.ga, 1 technologymessenger.ga, 1 technologynewss.tk, 1 @@ -143634,13 +142381,11 @@ techwolf12.nl, 1 techzant.com, 1 techzero.cn, 1 -techzjc.com, 0 tecit.ch, 1 tecke.tk, 1 teckgeekz.com, 1 tecklinks.com.pk, 1 tecknobox.fr, 1 -tecknologg.website, 1 teckprojects.com, 1 teckro.com, 1 tecmarkdig.com, 1 @@ -143714,7 +142459,6 @@ tedhardy.com, 1 tedirgin.tk, 1 tedroche.com, 1 -tedscams.com, 1 tedscoffeecompany.com, 1 tedsdivingsystem.com, 1 tedsears.net, 1 @@ -143726,6 +142470,7 @@ tee-suche.de, 1 teechu.com, 1 teecketing.com, 1 +teedinsiam.com, 1 teefashionstar.com, 1 teehany.com, 1 teehar.com, 1 @@ -143814,6 +142559,7 @@ teiron.ml, 1 teiseken.tk, 1 teixobactin.com, 1 +tejasnetworks.com, 1 tejo.tk, 1 tejomaya.net, 1 tek-el.ru, 1 @@ -144038,7 +142784,6 @@ tely360.com, 1 tema-q.com, 1 temaflex.tk, 1 -temaju.com, 1 temakel.com, 1 temariosoposiciones.tk, 1 tembusulaw.com, 1 @@ -144105,6 +142850,7 @@ tenantcloud.com, 1 tenantoptions.com.au, 1 tenanttraining.co.za, 1 +tenarya.com, 1 tenber.ge, 1 tenberg.com, 1 tencent.xn--vuq861b, 1 @@ -144144,7 +142890,6 @@ tenibacgraphion.com, 1 tenismare.si, 1 tenispopular.com, 1 -tenisservis.eu, 1 tenjou-tenge.tk, 1 tenken1010.org, 1 tenkuru.moe, 1 @@ -144172,7 +142917,7 @@ tenno.tools, 1 tenon-backup.com, 1 tenrod.com.au, 1 -tenryo.work, 1 +tenryo.work, 0 tenshindo.ne.jp, 1 tenshoku-hanashi.com, 1 tenshokudo.com, 1 @@ -144197,9 +142942,8 @@ tenyx.de, 1 tenzan.com, 1 tenzer.dk, 1 -tenzorpro.com, 1 +tenzorpro.com, 0 teoassessoria.com.br, 1 -teodorpravicky.com, 1 teoletextsq.tk, 1 teologia.promo, 0 teomahk.de, 1 @@ -144213,7 +142957,6 @@ teplici-crimea.ru, 1 teplo-russia.ru, 0 teplo-unit.ru, 1 -teplohod.kharkov.ua, 1 teplomash24.ru, 1 teplotehnik.tk, 1 teppelin.fr, 1 @@ -144317,7 +143060,6 @@ terracycle.ca, 1 terracycle.com, 1 terracycle.nl, 1 -terradotta.com, 1 terraesencial.com, 1 terrafinanz.de, 1 terrafinastore.com, 1 @@ -144327,7 +143069,6 @@ terralemon.nl, 1 terralogic.com, 1 terramineira.com.br, 1 -terrancetalkstravel.com, 1 terraneesens.fr, 1 terranimo.re, 1 terranostra-gardenhotel.com, 1 @@ -144357,7 +143098,6 @@ terrenosparainvertir.com, 1 terres-et-territoires.com, 1 terresmagiques.com, 0 -terrexllc.com, 1 terrimcaleerphotography.com, 1 terriscope.com, 1 territoriesredress.gov.au, 1 @@ -144529,12 +143269,11 @@ tetracycline500mg.ga, 1 tetramax.eu, 1 tetrapak.com, 1 -tetrarch.co, 1 tetrimus.com, 1 tetryyn.com, 1 -tetsudo.jp.net, 1 tetsumaki.net, 1 tetweb.ir, 1 +teu-fel.com, 1 teufel-cloud.ddns.net, 1 teufel.de, 1 teufelaudio.nl, 1 @@ -144569,7 +143308,6 @@ texasdivorceforall.com, 1 texasgynecomastia.com, 1 texashealthtrace.gov, 1 -texasintegratedservices.com, 1 texasnewsusa.tk, 1 texasonesource.com, 1 texasonlinedivorce.com, 0 @@ -144580,7 +143318,6 @@ texasprosgaragedoors.com, 1 texasready.gov, 1 texasschools.us, 1 -texasscrapiron.com, 1 texasteam.tk, 1 texastitlesearch.com, 1 texasvolunteerattorneys.org, 1 @@ -144608,7 +143345,6 @@ texteditor.co, 1 textencrypted.com, 1 texter-linz.at, 1 -textieldiscounter.nl, 1 textil-kyoto.tk, 1 textiles.bg, 1 textiles.tk, 1 @@ -144691,7 +143427,7 @@ tgexport.eu, 1 tghez.net, 1 tglbbs.com, 0 -tgo-solutions.be, 1 +tgo-solutions.be, 0 tgo6688.com, 0 tgo8899.com, 1 tgoaa.com, 1 @@ -144725,7 +143461,6 @@ thaibizsingapore.com, 0 thaiblanket.com, 1 thaiboystory.ga, 1 -thaicurry.net, 1 thaiforexfamily.com, 1 thaigirls.cf, 1 thaihomecooking.com, 1 @@ -144961,7 +143696,6 @@ thebabelog.gq, 1 thebabiest.com, 1 thebabypassport.com, 1 -thebackdoor.co.za, 1 thebacksplashcompany.com, 1 thebackstage.tk, 1 thebacteriafight.gq, 1 @@ -144983,8 +143717,7 @@ thebatt.com, 1 thebaytalland.com, 1 thebcm.co.uk, 1 -thebeatyard.nl, 1 -thebeaulife.co, 1 +thebeatyard.nl, 0 thebeautifuledge.com, 1 thebeautyqueen.tk, 1 thebedfordcitizen.org, 1 @@ -145164,11 +143897,9 @@ theclonker.de, 0 thecloroxcompany.com, 1 thecloudadmin.eu, 0 -theclubcompany.com, 1 thecnstore.com, 1 thecoffeecamp.com, 1 thecoffinshop.co.nz, 1 -thecolekidsacademy.com, 1 thecolgatemaroonnews.com, 1 thecollegequiz.com, 1 thecolorbarph.com, 1 @@ -145204,7 +143935,6 @@ thecrcconnection.com, 1 thecreditpros.com, 1 thecrew-exchange.com, 1 -thecrewunlimited.ru, 1 thecrimson.tk, 1 thecrimsonwhite.com, 1 thecrite.com, 1 @@ -145225,7 +143955,7 @@ thedailybloon.tk, 1 thedailydunk.co, 1 thedailyexercise.com, 1 -thedailylives.com, 0 +thedailylives.com, 1 thedailyreporteronline.com, 1 thedailyupvote.com, 1 thedaimon.cn, 1 @@ -145262,7 +143992,6 @@ thediamondfinery.com, 1 thedickinsonian.com, 1 thedietsolutionprog.tk, 1 -thedigitaldepartment.ie, 1 thedigitalparadox.tk, 1 thediligentwoman.com, 1 thedinnerdetective.com, 1 @@ -145359,7 +144088,6 @@ theflesh.tk, 1 theflexerzone.ga, 1 theflowerapothecary.com, 0 -theflowershopdeddington.com, 1 theflowstudios.com, 1 theflyingbear.net, 0 theflyingdutch.tk, 1 @@ -145420,7 +144148,6 @@ thegerwingroup.com, 0 thegetaway.com, 1 theghostlytavern.com, 1 -thegiantmovers.ae, 1 thegiantsdream.tk, 1 thegigr.org, 1 thegildedthistle.com, 1 @@ -145473,7 +144200,6 @@ thegrotto.tk, 1 thegroupinc.com, 1 thegrovela.com, 1 -thegrs.com, 0 theguerrilla.agency, 0 thegungrabber.ca, 1 thegungrabber.com, 1 @@ -145547,7 +144273,6 @@ theimaginationagency.com, 0 theimagroup.com, 1 theimpactnews.com, 1 -theimperfective.com, 1 theinboxpros.com, 1 theindependent.ca, 0 theindependent.com, 1 @@ -145566,11 +144291,9 @@ theinternationalgeekconspiracy.eu, 1 theinvisibleman.tk, 1 theislandwellness.com, 1 -theisopurecompany.com, 1 theissen.io, 1 theisthelpline.com, 1 theithacan.org, 1 -theitsage.com, 0 theivybuckhead.com, 1 theixiangrand.gr, 1 thejacksoninstitute.com.au, 1 @@ -145602,7 +144325,6 @@ thekliniquehotdeal.com, 1 theknockout.tk, 1 theknockoutchampionship.com, 1 -theknowitguy.com, 1 thekochampionship.com, 1 thekodaichronicle.com, 1 thekolye.com, 1 @@ -145664,7 +144386,6 @@ thelordofthewing.ml, 1 thelordsofthefallen.com, 1 thelosangelesconservative.com, 1 -thelostroot.com, 1 thelounge.chat, 1 theloveequation.com, 1 theloves.com, 1 @@ -145717,12 +144438,12 @@ themexicos.tk, 1 themexx.at, 1 themiamimarathon.com, 1 -themidaskiss.com, 1 themify.me, 1 themify.org, 1 themigraineinstitute.com, 1 themilanlife.com, 1 themilfmovies.com, 1 +themilnermethod.co.uk, 1 themindcollection.com, 1 themindcompany.com, 1 theminimalistentrepreneur.com, 1 @@ -145845,7 +144566,6 @@ theorchestranow.org, 1 theorganicrecycler.com, 1 theorganist.org, 1 -theoriecheck.de, 1 theoriginalassistant.com, 1 theoriginalcandid.com, 1 theoriginalmarkz.com, 1 @@ -145882,7 +144602,6 @@ thepartner.co.uk, 1 thepartydoctors.co.uk, 1 thepassiveplan.com, 1 -thepatchworks.org, 1 thepathsofdiscovery.com, 1 thepaul.tk, 1 thepavilionbanbury.co.uk, 0 @@ -146002,7 +144721,7 @@ therapysearch.com, 1 therapyservices.co.nz, 1 therapysxm.com, 0 -therapyworks.com, 1 +therapyworks.com, 0 therasmusgt.tk, 1 therasmusperu.tk, 1 theravada.tk, 1 @@ -146078,7 +144797,6 @@ theroyal.tk, 1 theroyalyacht.com, 1 theruleslawyer.net, 1 -therulybully.com, 1 therumfordcitizen.com, 0 therunawayspremiere.tk, 1 theruncibleraven.com, 1 @@ -146119,7 +144837,6 @@ theseofarm.com, 1 theseoframework.com, 1 theseosystem.com, 1 -theseotool.site, 1 theserpent.tk, 1 theserver.ml, 1 theserver201.tk, 1 @@ -146172,7 +144889,6 @@ thesouthern.com, 0 thesoutherneronline.com, 1 thesouthfirst.com, 1 -thesovereigns.xyz, 1 thespacegame.tk, 1 thespanishcollection.com, 1 thespanishcollection.es, 1 @@ -146192,7 +144908,6 @@ thestral.pro, 1 thestralbot.com, 1 thestrangenessofthings.tk, 1 -thestrategycenter.org, 1 thestreet.cz, 1 thestudio.hopto.org, 1 thestudioflasscottage.co.uk, 1 @@ -146488,7 +145203,6 @@ thinkingfaith.org, 1 thinkingliberty.com, 1 thinkingnull.com, 0 -thinkingplanet.net, 1 thinkittech.com, 1 thinklogistics.com, 1 thinko.it, 1 @@ -146755,18 +145469,17 @@ threv.net, 1 thriftdiving.com, 1 thriftywp.com, 1 -thrillernyc.com, 1 +thrillernyc.com, 0 thrillkill.tk, 1 thrillng.com, 1 thrillux-event-hire.co.uk, 1 thriva.co, 1 thrive-gyms.co.za, 1 thrivefostering.com, 1 -thriveondev.com, 0 +thriveondev.com, 1 thriver.com, 1 thrivetours.ca, 0 thrivetracker.com, 1 -thrivewithprofit.com, 1 throckmortoncountytx.gov, 1 throneofmolok.tk, 1 thronia2.ro, 1 @@ -146940,7 +145653,6 @@ ticketsourcebeta.co.uk, 1 ticketswap.co, 1 ticketswap.co.nz, 1 -ticketswap.dk, 1 ticketswap.fi, 1 ticketswap.in, 1 ticketswap.ru, 1 @@ -147001,6 +145713,7 @@ tienic.com, 1 tiens-ib.cz, 1 tiepao.cn, 1 +tier5industries.com, 1 tierarzt-karlsruhe-durlach.de, 1 tierarztpraxis-illerwinkel.de, 1 tieredaccess.com, 1 @@ -147086,7 +145799,6 @@ tijerascreek.com, 0 tijerasnm.gov, 1 tijo.ch, 1 -tijoe.net, 1 tik.edu.ee, 1 tik.porn, 1 tikhonovy.ru, 1 @@ -147188,6 +145900,7 @@ time.ly, 1 time.sh, 1 time2060.ru, 1 +time2choose.com, 1 timeai.io, 1 timebomb.tk, 1 timebookings.cf, 1 @@ -147312,6 +146025,7 @@ timweb.ca, 1 timx.uk, 1 timysewyn.be, 0 +tina-heuter.de, 1 tina.is, 1 tina.media, 1 tinaarenaweb.tk, 1 @@ -147429,7 +146143,6 @@ tipsoftech.tk, 1 tipsplants.com, 1 tipsypresent.com, 1 -tiptoes.cz, 1 tiptop.cloud, 1 tiptopusholdings.com, 1 tipulnagish.co.il, 1 @@ -147532,10 +146245,8 @@ tixtips.com, 1 tiyee.net, 1 tizen-ru.tk, 1 -tizianogasparet.com, 1 tizimin.tk, 1 tizreu.xyz, 1 -tjampoer.com, 1 tjebben.tech, 1 tjgrant.com, 1 tjian.info, 1 @@ -147941,7 +146652,6 @@ tokozoeker.be, 1 tokshop.net, 1 toku.co, 0 -tokyo-co2down.jp, 1 tokyo-hotel.tk, 1 tokyo-onkyo.jp, 1 tokyo-powerstation.com, 1 @@ -148080,7 +146790,6 @@ tommi.space, 1 tommic.eu, 0 tommybrown.ru, 1 -tommycarrauto.com, 1 tommyemo.com, 1 tommyemo.net, 1 tommymoya.tv, 1 @@ -148120,7 +146829,7 @@ tomsoft.hr, 1 tomspdblog.com, 1 tomssite.tk, 1 -tomstew.art, 1 +tomstew.art, 0 tomstile.ca, 1 tomtelist.tk, 1 tomthorogood.co.uk, 1 @@ -148139,7 +146848,6 @@ tomwither.com, 1 tomyork.net, 1 tomyum.com, 1 -tonabor.ru, 1 tonage.de, 1 tonalyca.jp, 1 tonarinoliusan.com, 1 @@ -148182,7 +146890,6 @@ tonicomsa.com, 1 toniduarte.tk, 1 tonies.com, 0 -tonifix.fi, 1 tonight.de, 1 tonik.com, 1 tonik.tk, 1 @@ -148198,13 +146905,13 @@ tonsil-stone.com, 1 tonsilimmune.org, 1 tonsillar-stones.com, 1 +tonsit.com, 1 tonsit.org, 0 tonspion.com, 1 tonton.cf, 1 tontonan.gq, 1 tontonnews.net, 1 tontonroger.org, 1 -tonus.nl, 1 tony-foster.co.uk, 1 tony-millard.com, 1 tonyadamsmba.com, 1 @@ -148275,7 +146982,7 @@ toondah.com.au, 1 toondahjobs.com.au, 1 toondergroup.com, 1 -toonetcreation.com, 1 +toonetcreation.com, 0 toonict.nl, 0 toonmate.tk, 1 toonpool.com, 1 @@ -148359,7 +147066,6 @@ top5camsites.com, 1 topa.tk, 1 topagrar.com, 1 -topaigirlfriend.com, 1 topan.tk, 1 topanimecharacters.com, 1 topanlage.de, 1 @@ -148419,7 +147125,6 @@ tophatpuffin.com, 0 tophighnorldiet.gq, 1 tophr.kz, 1 -topi.it, 1 topicalnet.de, 1 topicdesk.com, 0 topicit.net, 1 @@ -148552,7 +147257,7 @@ torahanytime.com, 0 torako-sendai.com, 1 toranjchap.com, 1 -toranm.me, 1 +toranm.me, 0 torax.pt, 1 torb.com, 1 torba.tk, 1 @@ -148595,7 +147300,6 @@ tornadoarchiv.ml, 1 tornadoautos.com, 1 tornadodetector.ga, 1 -tornadoeth.cash, 1 tornellandcotten.com, 1 torngalaxy.com, 1 tornyosbbq.hu, 1 @@ -148643,7 +147347,6 @@ torrentelectricals.com, 0 torrentfunk.com, 1 torrentfunk2.com, 1 -torrentgas.com, 1 torrentinvestments.com, 1 torrentpower.com, 1 torrenttop100.net, 1 @@ -148761,7 +147464,6 @@ tottalbattle.com, 1 tottoya.com, 1 totuus.sk, 1 -totvs.com, 1 toubkalexperience.com, 1 toucan-informatique.fr, 1 touch-up-net.com, 1 @@ -148780,7 +147482,6 @@ touchmagazine.eu, 1 touchmark.tk, 1 touchmekissmee.com, 1 -touchoflife.in, 1 touchspeak.nl, 0 touchstoneelectrical.com, 1 touchtable.nl, 1 @@ -148802,7 +147503,6 @@ touhouwiki.net, 1 toulis.net, 1 toulouscope.fr, 1 -toulouselautrec.com.br, 1 toumeitech.com, 1 toupcreative.com, 1 touquet-volley.com, 1 @@ -148836,7 +147536,6 @@ tourmaster.com, 1 tournamentmgr.com, 1 tournaments.tk, 1 -tournation.info, 1 tourney.now, 1 tourniquets.org, 1 touroogle.com, 1 @@ -148845,7 +147544,6 @@ toursaindia.com, 1 toursandtransfers.it, 0 tourshopfresno.com, 1 -toursmile.in, 1 toursvieuxquebec.com, 1 tourteller.com, 1 tourtransferitaly.it, 1 @@ -149174,7 +147872,6 @@ toylum.pe, 1 toymania.de, 1 toymarket.tk, 1 -toyonaka-bungei.com, 1 toyonut.co.jp, 0 toyopac.com, 1 toyota-kinenkan.com, 1 @@ -149293,7 +147990,7 @@ trackdays4fun.com, 1 trackdemo.io, 1 trackdev.io, 1 -trackee.link, 1 +trackee.link, 0 tracker-knigi.gq, 1 tracker.com.ar, 1 trackerx.ga, 1 @@ -149325,7 +148022,6 @@ tractive.com, 1 tractor-pulling.fr, 1 tractor-pulling.tk, 1 -tractorfan.nl, 1 tractorpumps.com, 1 tracxn.com, 1 tracxtms.com, 1 @@ -149360,11 +148056,9 @@ traderbobsgeneralstore.com, 1 traderfox.de, 0 traderinside.ga, 1 -traderlion.com, 1 tradernet.com, 1 tradernew.pro, 1 tradernws.com, 1 -traderpen.com, 1 traders-mag.it, 1 tradersgate.eu, 1 tradersport.tk, 1 @@ -149393,7 +148087,7 @@ tradingcomputers.com, 1 tradingdeer.io, 1 tradingfacile.eu, 1 -tradingfuturos.es, 1 +tradingfuturos.es, 0 tradinghelper.be, 1 tradingsetupsreview.com, 1 tradingtag.ga, 1 @@ -149545,7 +148239,6 @@ trangcadobongda.com, 1 tranhlavender.com, 1 tranmao.vn, 0 -tranmerelectric.com, 1 trannycammers.com, 1 trannycamsites.com, 1 trannysurprise.com, 1 @@ -149572,7 +148265,7 @@ transcendconsultoriarh.com.br, 1 transcendmotor.sg, 1 transcendretirement.net, 1 -transchroma.com, 1 +transchroma.com, 0 transco.com.tr, 1 transcoalition.net, 1 transcorphotels.com, 1 @@ -149598,7 +148291,7 @@ transferbudapestairport.com, 1 transferd.ru, 0 transfergo.com, 1 -transferistan.com, 1 +transferistan.com, 0 transferme24.com, 1 transfero-sheregesh.ru, 1 transfers-sheregesh.ru, 1 @@ -149707,7 +148400,6 @@ transvault.com, 1 transwank.com, 1 transwestern.com, 1 -trantrongtri.com, 1 trantrongtri.info, 1 tranvia.info, 1 tranzact.net, 1 @@ -149727,7 +148419,6 @@ trapsexy.org, 1 trapz.xyz, 1 trasandino.tk, 1 -trasatsatelital.com.ar, 1 trash2treasurecreations.co.za, 1 trashcanheroes.tk, 1 trashcraft.tk, 1 @@ -149965,7 +148656,6 @@ trazpracaclub.com.br, 1 trazs.com, 1 trbanka.com, 1 -trblwlf.net, 1 trctaborda.com.br, 1 trdepoist.net, 1 tre-sp.jus.br, 1 @@ -149989,7 +148679,6 @@ trebilfoundationsystems.com, 1 trebnie.nl, 1 trecebits.com, 1 -trecobox.com.br, 1 tredegar.com, 1 tredegarsurfaceprotection.com, 0 tredicom.com, 1 @@ -150019,7 +148708,6 @@ trehand.fr, 1 treiberdrivers.com, 1 treibholz-norddeich.de, 1 -treier.xyz, 1 treinonerd.com, 1 treinonline.tk, 1 treintijden.com, 1 @@ -150056,7 +148744,6 @@ trendingdeals.ga, 1 trendingeducation.tk, 1 trendingknow.tk, 1 -trendingnewswala.online, 1 trendingstory.tk, 1 trendingxxl.nl, 1 trendkraft.de, 1 @@ -150101,7 +148788,6 @@ tresoro.at, 1 tresoro.de, 1 tresredatores.tk, 1 -tressallure.com, 1 tretinoin.gq, 1 treuhand-talente.ch, 1 treurtransport.tk, 1 @@ -150187,7 +148873,6 @@ tributoconsuegra.tk, 1 tricare.mil, 1 tricefy4.com, 1 -tricetirisad.me, 1 tricherenligne.com, 1 triciaree.com, 0 tricityrogues.eu, 1 @@ -150240,7 +148925,6 @@ trillian.media, 1 trillionaire.ca, 1 trilliondigital.io, 0 -trilliux.me, 1 trilogymp.com, 1 trim21.cn, 1 trimage.org, 1 @@ -150309,7 +148993,6 @@ triple1.net, 1 triplebit.net, 1 triplebit.org, 1 -tripleblossom.com, 1 triplefork.com.ua, 1 triplekeys.net, 1 tripleone.co.uk, 1 @@ -150333,7 +149016,7 @@ trippinktattoos.com, 1 trips4foodies.com, 1 tripsfromarrakech.com, 1 -tripstorome.com, 0 +tripstorome.com, 1 triptap.ru, 1 triptravels.tk, 1 triptych.is, 1 @@ -150396,6 +149079,7 @@ trogloditas.tk, 1 troi.de, 1 troiaconsultoria.com.br, 1 +troianet.com.br, 1 troisprime.com, 0 trojanchronicles.tk, 1 trojanherring.com, 1 @@ -150575,7 +149259,6 @@ truenorthtalk.com, 1 truentumvet.it, 1 truepartner.academy, 1 -truepartner.asia, 1 truepartner.capital, 1 truepartner.cn, 1 truepartner.education, 1 @@ -150850,7 +149533,6 @@ tsiakoulias.eu, 1 tsiakoulias.gr, 1 tsico.com, 1 -tsiconnections.com, 1 tsicons.com, 1 tsig.nl, 1 tsigaradiko.com, 1 @@ -151134,7 +149816,6 @@ tuner.cloud, 1 tuneserver.tk, 0 tuniclick.net, 0 -tuning-parts24.de, 1 tuning-werkstatt-nuernberg.de, 1 tuningblog.eu, 0 tunisia-tech.tk, 1 @@ -151165,7 +149846,6 @@ tuoni.ga, 1 tuotromedico.com, 1 tuotteet.org, 1 -tupass.pw, 1 tupatane.gq, 1 tuperiodico.soy, 1 tupeuxpastest.ch, 0 @@ -151205,7 +149885,6 @@ turbohitlerxxx.in, 1 turbohost.co.mz, 0 turbokit.io, 1 -turbomag.pl, 1 turbomodz.com, 1 turbomodz.es, 1 turbosim.de, 1 @@ -151220,7 +149899,6 @@ tures-aurina.it, 1 turfirm.tk, 1 turgut46.tk, 1 -turi.space, 1 turikslab.tk, 1 turing.bio, 0 turisbrasil.com, 1 @@ -151328,7 +150006,6 @@ turtlezone.de, 1 turtunis.ml, 1 turul.tk, 1 -turunculevye.com, 1 tus-kikishinkyo.jp, 1 tus.si, 1 tusaalanga.ca, 0 @@ -151379,7 +150056,6 @@ tutorialinux.com, 1 tutorialitmalaysia.tk, 1 tutorialphotoshop.tk, 1 -tutorials.vg, 1 tutorialseo.com.br, 1 tutorialtactic.com, 1 tutoriel-arduino.com, 1 @@ -151506,7 +150182,6 @@ tvoyaknighka.ga, 1 tvpes.cz, 1 tvpn.co.za, 1 -tvpocos.com.br, 1 tvquot.es, 1 tvregion.com, 1 tvrestyler.eu, 1 @@ -151601,7 +150276,6 @@ twistbets.com, 1 twistedfamilies.com, 1 twistedoakonline.com, 1 -twistedservers.com.au, 1 twistedtea.com, 1 twistedwave.com, 1 twistersolutions.com, 1 @@ -151636,7 +150310,6 @@ twobitbusker.com, 1 twobridges.co.uk, 1 twobrothersbbq.com, 0 -twobrothersinn.com, 1 twocantalk.ca, 1 twoconnect.com, 0 twocornertiming.com, 1 @@ -151714,7 +150387,7 @@ tyan.com, 1 tybox.ca, 1 tyc001.cc, 0 -tyc009.cc, 1 +tyc009.cc, 0 tycaa.org, 1 tycho-station.net, 1 tycho.org, 1 @@ -151775,7 +150448,6 @@ typescript-weekly.com, 1 typesofdogs.info, 1 typesofnote.com, 1 -typesolution.pt, 1 typetwodiabetesexplained.com, 1 typewell.com, 0 typewolf.com, 1 @@ -151818,7 +150490,6 @@ tyroremotes.se, 1 tyrulez.tk, 1 tysabri.com, 0 -tysnes-holm.no, 1 tysonstelzer.com, 1 tysseminilager.no, 1 tysukakorrekt.ga, 1 @@ -151890,7 +150561,6 @@ u2y.io, 1 u32i64.cf, 1 u36533.com, 1 -u4.re, 1 u5.re, 1 u51365.com, 1 u5197.co, 1 @@ -151933,7 +150603,6 @@ uasaumur.com, 1 uash.tk, 1 uasidekick.com, 1 -uasmi.com, 1 uasonics.tk, 1 uat-mypfp.co.uk, 1 uateach.tk, 1 @@ -152064,7 +150733,6 @@ udeca.org, 1 udeca.org.es, 1 udeca.xyz, 1 -udemons.be, 1 udenit.de, 0 udenlandske-casinoer.dk, 1 udenlandskecasinoer.dk, 1 @@ -152076,6 +150744,7 @@ udiffy.ru, 1 udik.tk, 1 udinetoday.it, 1 +udiparfum.com.br, 0 udla.edu.ec, 1 udmarbella.tk, 1 udmurt-news.net, 1 @@ -152092,7 +150761,6 @@ ueberaus.de, 1 ueberdosis.io, 0 uebersetzungscenter.ch, 1 -uebersetzungsshop.de, 1 uebertragungsnetz.de, 1 ueberwachungspaket.at, 1 uedaviolin.com, 1 @@ -152173,10 +150841,8 @@ uhhospitals.org, 1 uhighmidway.com, 1 uhingaro.com, 0 -uhlhosting.ch, 1 uhms.org, 1 uhnwarfarinedu.ca, 1 -uhost.cyou, 1 uhrcenter.de, 1 uhrenlux.de, 1 uhuc.de, 1 @@ -152187,7 +150853,6 @@ uiberlay.cz, 1 uicchy.com, 1 uid0.pl, 1 -uidesignlab.com, 1 uiharu.top, 1 uika-bogor.ac.id, 1 uinst.tk, 1 @@ -152273,7 +150938,6 @@ ukrzoloto.ua, 1 ukseafood.co.uk, 1 ukstaa.org, 1 -uksv.co.uk, 0 ukta.tk, 1 uktw.co.uk, 0 uku.lt, 1 @@ -152341,7 +151005,6 @@ ultimateparts.nl, 1 ultimatepatrol.de, 1 ultimatepower.ga, 1 -ultimatespearfishing.com, 1 ultimateyankees.com, 1 ultimedalweb.it, 1 ultortech.com, 1 @@ -152358,7 +151021,6 @@ ultraman.tk, 1 ultraonline.ml, 1 ultrapedic.com, 1 -ultraport.fr, 1 ultras-venlo.tk, 1 ultrasbet.com, 1 ultrasite.tk, 1 @@ -152471,7 +151133,6 @@ unbelievaboat.com, 1 unbioctium.com, 1 unbl.eu.org, 1 -unblock-zh.org, 1 unblockat.tk, 1 unblocked.cx, 1 unblog.ch, 1 @@ -152587,7 +151248,6 @@ ungrafakta.tk, 1 unhabitat.org, 1 unhappy.tk, 1 -unhub.ru, 1 uni-arts.com, 1 uni-chem.rs, 1 uni-cleaner.com, 1 @@ -152607,7 +151267,6 @@ unicaf.org, 1 unicard.ge, 1 unicarehealth.com.au, 1 -unicarepresentaciones.com, 1 unicef.bg, 1 unicef.pl, 1 unicefcards.cz, 1 @@ -152836,18 +151495,17 @@ universe.horse, 1 universe.la, 1 universe.wtf, 1 -universehistory.net, 1 +universehistory.net, 0 universehk.tk, 1 universellafredsdanser.se, 1 universellesleben.tk, 1 -universemasterplan.com, 1 +universemasterplan.com, 0 universen.tk, 1 universeodon.com, 1 -universereligion.com, 1 +universereligion.com, 0 universeventures.de, 1 -universevision.com, 1 +universevision.com, 0 universidadperu.com, 1 -universiteplatformu.com, 1 universitepourlavie.tk, 1 universitesegou.ml, 1 universitetsforlaget.no, 1 @@ -152876,7 +151534,6 @@ unix.lu, 1 unixadm.org, 1 unixapp.ml, 1 -unixattic.com, 1 unixauto.com, 1 unixauto.de, 1 unixauto.hu, 1 @@ -153067,7 +151724,6 @@ upbtrbt.net, 1 upbtrbt.nl, 1 upbtrbt.org, 1 -upclinic.ru, 0 upcloud.cz, 1 upcwifikeys.com, 1 upcycleandcompany.com, 1 @@ -153147,11 +151803,9 @@ uppercloud.cf, 1 upperglass.co.uk, 1 uppergroup.co.za, 1 -upperhunterlibraries.net.au, 1 upperinc.com, 1 upperskagittribe-nsn.gov, 1 uppfinnarenc.tk, 1 -upplands-bro.se, 1 uppsala.tk, 1 upr.com.ua, 1 upr.edu, 1 @@ -153333,7 +151987,6 @@ urgentcaresouthaven.com, 1 urgrafix.com, 1 urikon.ch, 1 -urinow.com, 1 urion.com.br, 1 uriport.com, 1 uriports.com, 1 @@ -153362,6 +152015,7 @@ urljournal.tk, 1 urlparse.com, 1 urlr.me, 1 +urlrating.com, 1 urlrewriting.net, 1 urlscan.io, 1 urlsimple.tk, 1 @@ -153393,7 +152047,6 @@ uroute.co, 1 urrestarazuserranoabogados.com, 1 ursa-minor-beta.org, 1 -ursae.co, 1 ursonatefanzine.tk, 1 urspringer.com, 1 urspringer.de, 1 @@ -153499,7 +152152,6 @@ usefultravelsite.com, 1 useguestlist.com, 1 usehalo.com, 1 -useinsider.com, 1 useloom.com, 1 usemergencyservices.com, 1 usenet.tk, 1 @@ -153762,7 +152414,6 @@ uwtd.me, 1 uwu.co.nz, 1 uwu.lgbt, 0 -uwu.nu, 1 uwu.tw, 1 uwv.nl, 0 uwwsb.com, 1 @@ -153786,7 +152437,6 @@ uz1xbet.com, 1 uzagmozemunk.ga, 1 uzagmozemunk.ml, 1 -uzayliyiz.biz, 1 uzbaza.tk, 1 uzbek-soft.tk, 1 uzbekforum.org, 1 @@ -153826,7 +152476,6 @@ v-news.tk, 1 v-novosibirske.tk, 1 v-phoenix.tk, 1 -v-plus.ru, 1 v-spin.cz, 1 v-tek.fi, 1 v-zone.org, 1 @@ -153849,7 +152498,6 @@ v2generalcontractors.com, 1 v2x.sk, 1 v2xtls.org, 1 -v2yes.com, 0 v36533.com, 1 v51365.com, 1 v5197.co, 1 @@ -153914,7 +152562,6 @@ vacorps.com, 1 vacpackmedical.net, 1 vacsafe.cc, 1 -vacu.store, 1 vacuna.gov, 1 vacunas.gov, 1 vacuumsealers.ml, 1 @@ -154222,7 +152869,6 @@ vande-walle.eu, 1 vandegriftplasticsurgery.com, 1 vandenbroekwi.gov, 1 -vandenrecycling.com, 1 vandeput.be, 1 vander-bugenne.fr, 1 vanderbeek.be, 1 @@ -154357,8 +153003,6 @@ vapotank.com, 1 vapoteuse.fr, 1 vapteke.ru, 1 -vaptkidsight.azurewebsites.net, 1 -var.cc, 1 vara.se, 1 varaani.tk, 1 varalaval.com, 1 @@ -154675,12 +153319,10 @@ vehiclematsuk.com, 0 vehicletax.service.gov.uk, 1 vehimmo.com, 1 -vei.st, 1 veidiheimar.is, 1 veikkosimpanen.fi, 1 veiligesmartcities.nl, 1 veilletechno-it.info, 1 -veintidos.com.ar, 1 vejanoticias.com.br, 1 vejaparki.lv, 1 vejas2004.tk, 1 @@ -154775,7 +153417,6 @@ vendi.it, 1 vendingmachines.tk, 1 vendingsierra.com, 1 -vendingwebs.com, 1 vendiot.com, 1 vendiscapital.com, 1 vendisrls.it, 1 @@ -154903,7 +153544,6 @@ veply.com, 1 ver-me.com, 1 ver.ma, 0 -ver.re, 1 vera-1.ru, 1 verae.tk, 1 verafin.com, 1 @@ -154921,7 +153561,6 @@ verasoie.fr, 1 verata.co, 0 verbacxss.it, 1 -verbastel.de, 1 verbatimreporting.com, 1 verberne.nu, 1 verbert.be, 1 @@ -154980,7 +153619,6 @@ verif-docs.com, 1 verifalia.com, 1 verificajudicial.com, 1 -verificationguild.com, 1 verificationlink.ga, 1 verified.lu, 1 verifiedchat.co, 1 @@ -155096,7 +153734,6 @@ versatilestructures.com.au, 1 versbesteld.nl, 1 verschil.info, 1 -verschoren.com, 1 verschurendegroot.nl, 1 verse.eu.org, 1 versfin.net, 1 @@ -155159,7 +153796,6 @@ vertrieb-strategie.de, 1 vertrouwenspiegel.nl, 1 vertx.cc, 1 -verumwomen.com, 1 verusmedya.com, 1 verustracking.com, 1 veruvis.com, 1 @@ -155242,7 +153878,6 @@ veteransfirstwatch.com, 1 veteransholidaylights.com, 1 veteransroofingllc.com, 1 -veteranticketsfoundation.org, 1 veterinaire-laure-dissaux.be, 1 veterinanmnm.cz, 1 veterinanmnm.eu, 1 @@ -155271,7 +153906,6 @@ vetres.net.au, 1 vetrnikyjavornickyhreben.cz, 1 vetrnikyrychleby.cz, 1 -vetruvet.com, 1 vets.gov, 1 vetscore.co.za, 1 vetsmarketing.co.za, 1 @@ -155281,7 +153915,6 @@ vettenburg.eu, 1 vetter-pharma.com, 1 vetter.family, 1 -vettix.org, 1 vettweiss.de, 1 vetuni.cz, 1 vetuni.eu, 1 @@ -155295,7 +153928,6 @@ vevioz.com, 1 vevioz.my.id, 1 vevioz.web.id, 1 -vevioz.xyz, 1 vex.ch, 1 vexavium.com, 1 vezirkopru.bel.tr, 1 @@ -155353,7 +153985,6 @@ viaenginfeed.com, 1 viaeth.io, 1 viafoura.com, 1 -viagra-siparis.com, 1 viagra911.com.ua, 1 viagramarketim.com, 1 viagrasiparis.net, 1 @@ -155452,7 +154083,6 @@ victoria-legis.ru, 1 victoriaartist.ru, 1 victoriabeckham.tk, 1 -victoriabuske.com.br, 1 victoriachick.com, 1 victoriacountytx.gov, 1 victoriaharmandjieva.art, 1 @@ -155540,7 +154170,6 @@ videomaker.it, 1 videomaniya.ml, 1 videomarketermastery.com, 1 -videonadzorvlasotince.com, 1 videonieuwsbericht.nl, 1 videonika.tk, 1 videonovinky.cz, 1 @@ -155677,7 +154306,6 @@ viewjobs.com.au, 1 viewpointsfromfacebook.com, 1 views4you.com, 1 -viewsea.com, 1 viewstub.com, 1 viez.vn, 1 vifranco.cl, 1 @@ -155763,7 +154391,6 @@ vilabiamodas.com.br, 1 viladecansjove.cat, 1 viladelpingui.net, 1 -viladomyhrabuvka.cz, 1 vilafloridacapivari.com.br, 1 vilafrancaeagles.tk, 1 vilamarija.tk, 1 @@ -155889,7 +154516,6 @@ villagockel.de, 1 villahistoria.ml, 1 villainsclothing.com.au, 1 -villakarma.at, 1 villakiralik.com, 1 villalmanzo.tk, 1 villamenty.com, 1 @@ -156015,13 +154641,11 @@ vingugaas.ee, 0 vinicius.sl, 1 viniciuscosta.tk, 1 -vinigas.com, 1 vinihk.com, 0 vinilart.com, 1 vinilosdecorativos.net, 1 vinistas.com, 1 vinit.tk, 1 -vinnellarabia.com, 1 vinnie.gq, 1 vinnitsa-news.ru, 1 vinny.tk, 1 @@ -156087,7 +154711,6 @@ vip45bet365.com, 0 vip5414.com, 1 vip6132.com, 1 -vip8522.com, 1 vipaairportsp3.gov, 1 vipbox.city, 1 vipcan.com, 1 @@ -156147,7 +154770,7 @@ viralvids.gq, 1 viraly.me, 1 viralytydne.cz, 1 -viramahan.com, 1 +viramahan.com, 0 viran-khodro.tk, 1 virazh58.tk, 1 vircloud.net, 1 @@ -156252,7 +154875,6 @@ visale.fr, 1 visalia.gov, 1 visaliafarmersmarket.com, 0 -visalist.io, 1 visalogy.com, 1 visaop.com, 1 visapourailleurs.fr, 0 @@ -156288,7 +154910,6 @@ visibilitygurus.com, 1 visiblethoughts.co.uk, 1 visicctv.com, 1 -visio.org, 1 vision-du-net.com, 1 vision-painting.com, 0 vision-ridge.com, 1 @@ -156364,7 +154985,6 @@ visits.tk, 1 visitsights.com, 1 visitsights.de, 1 -visitstegen.com, 1 visitsugartown.com, 0 visittci.com, 1 visitthematrix.tk, 1 @@ -156390,7 +155010,6 @@ vistapoquei.com.br, 1 vistastylebuilder.com, 0 vistatalmidim.com.br, 1 -vistavoyage.eu, 1 vistb.me, 1 vistec-support.de, 1 vistre.com, 1 @@ -156404,7 +155023,6 @@ visualetiquetas.art.br, 1 visualfabriq.com, 1 visualforce.com, 1 -visualgnome.com, 1 visualintent.com.au, 1 visualizing.info, 1 visualmarketingdeals.com, 1 @@ -156476,7 +155094,7 @@ vitavista.health, 1 vitavista.io, 1 vitay.pl, 1 -vitechteam.com, 1 +vitechteam.com, 0 vitekvirtualsolutions.com, 1 viteleaf.com, 1 viteoscrm.ch, 0 @@ -156518,7 +155136,7 @@ vivabraslav.ga, 1 vivace.parts, 1 vivachile.tk, 1 -vivaconagua.org, 1 +vivaconagua.org, 0 vivacredit.bg, 1 vivactis.com, 1 vivahome.tk, 1 @@ -156564,7 +155182,6 @@ vivendoapalavra.org, 1 vivendoderendananet.com.br, 1 viventium.com, 1 -viveoriginals.com, 1 viveport.com, 1 viveportal.com, 1 viveremediglia.tk, 1 @@ -156608,7 +155225,6 @@ vizeenergetiky.cz, 1 vizierdata.ca, 1 vizion.com, 1 -vizional.com, 0 vizir.ba, 1 vizirinvestimentos.com, 1 vizit-obmen.tk, 1 @@ -156667,7 +155283,6 @@ vkfish.ga, 1 vkflac.tk, 1 vkg.nl, 0 -vkgroup.az, 1 vkikaku.com, 0 vkino.com, 0 vkino.ml, 1 @@ -156736,7 +155351,6 @@ vleesbesteld.nl, 1 vleij.com, 0 vleij.family, 1 -vleo.me, 1 vlfcu.org, 1 vlh.dk, 1 vliegendklokske.com, 1 @@ -156874,14 +155488,13 @@ vofem.ru, 1 voffka.com, 1 vofwittenbergwi.gov, 1 -vofy.cz, 1 vogel-verhuizingen.nl, 1 vogelbus.ch, 1 vogelwereld.tk, 1 vogler.name, 1 vogt.sh, 1 vogue.co.uk, 1 -vogue.cz, 1 +vogue.cz, 0 vogue.gr, 1 vogue.ph, 1 voguefabricsstore.com, 1 @@ -156903,7 +155516,7 @@ voiceofprague.eu, 1 voiceofprague.sk, 1 voiceofserbia.tk, 1 -voicesforanimals.ru, 1 +voicesforanimals.ru, 0 voicesoflabor.com, 1 voicesuk.co.uk, 0 voicu.ch, 0 @@ -157076,9 +155689,7 @@ voltmalta.org, 1 voltnederland.org, 1 voltnorway.org, 1 -volto.io, 1 voltoesterreich.org, 1 -voltpoland.org, 1 voltpolska.org, 1 voltportugal.org, 1 voltromania.org, 1 @@ -157108,7 +155719,6 @@ volusiavotes.gov, 1 volvo-klub.cz, 1 volvo1800es.tk, 1 -volvoconnect.com, 1 volvoklub.cz, 1 volyn-news.ru, 1 vomitoxin.ga, 1 @@ -157329,7 +155939,6 @@ vpcfiberglass.com, 1 vpetkov.tk, 1 vpex.de, 1 -vplace.vn, 1 vpn-review.com, 1 vpn-suomi.fi, 1 vpn-sverige.se, 1 @@ -157607,7 +156216,6 @@ vrtidaho.gov, 1 vrtouring.org, 1 vrtuoluo.com, 1 -vrumcar.com, 1 vrzas.net, 1 vrzl.pro, 1 vs603.com, 1 @@ -157682,7 +156290,7 @@ vtipkar.cz, 1 vtjud.gov, 1 vtklan.tk, 1 -vtliving.com, 0 +vtliving.com, 1 vtm.be, 1 vtmgo.be, 1 vtops.com, 1 @@ -157693,7 +156301,6 @@ vttnordisere.fr, 1 vtuber-schedule.info, 1 vtubes.tokyo, 1 -vtul.io, 1 vtupro.com, 1 vtvnetwork.org, 1 vtwonen.be, 1 @@ -157746,10 +156353,8 @@ vurdering.com, 1 vurdst.dk, 1 vurgitsin.com.tr, 1 -vusdigital.com, 0 vuse.com, 1 vutrox.com, 1 -vutruso.com, 0 vuurspuwer.com, 1 vux.li, 1 vuzi.fr, 1 @@ -157863,9 +156468,7 @@ w-oasis.co.jp, 1 w-p-k.de, 1 w-permission.com, 1 -w-solutionshk.xyz, 1 w-spotlight.appspot.com, 1 -w-surgeryhospital.com, 1 w-w-auto.de, 1 w-ws.ga, 1 w.st, 1 @@ -158043,7 +156646,6 @@ waiwei.ml, 1 waixingrenfuli.vip, 1 wajtc.com, 1 -wak.io, 1 wakastream.cc, 1 wakatime.com, 1 wakaya.ma, 1 @@ -158206,7 +156808,6 @@ wander.al, 1 wander.tk, 1 wanderaura.com, 1 -wanderclub.eu, 1 wanderersfc.tk, 1 wanderfost.com, 1 wanderfullcoven.tk, 1 @@ -158645,7 +157246,6 @@ way.ac, 1 way2tech.de, 1 wayaberolodge.com, 1 -wayakcomm.com, 1 waybinary.com, 1 waycoolmail.tk, 1 waycraze.com, 1 @@ -158675,7 +157275,6 @@ wayohoo.net, 1 waysandlore.consulting, 1 waysandlore.fr, 1 -waysandmeanstechnology.com, 1 waysport.ua, 1 waytofreedom.tk, 1 waytogrow.com, 1 @@ -158744,7 +157343,6 @@ wcools.tk, 1 wcpo.com, 1 wcrca.org, 0 -wcreativestudio.com, 1 wcru.one, 1 wcs.rs, 1 wcsoe.gov, 1 @@ -158790,8 +157388,6 @@ we-use-linux.de, 1 we.serveftp.net, 1 we168168.com, 1 -we5688.net, 1 -we9988.net, 1 weacceptbitcoin.gr, 1 weakinreview.org, 1 weakspots.com, 1 @@ -158806,7 +157402,6 @@ wealthx.com, 1 wear-largesizes.tk, 1 wear-referrals.co.uk, 1 -wear.hk, 1 wear1015.ml, 1 wearandcare.net, 1 weare.ie, 1 @@ -158871,7 +157466,6 @@ web-create.ml, 1 web-creations.tk, 1 web-creato.tk, 1 -web-davinci.jp, 1 web-demarche.com, 1 web-design-india.com, 1 web-design-singapore.sg, 1 @@ -158926,7 +157520,6 @@ web.de, 1 web.net, 1 web1212.top, 1 -web1n.com, 0 web22.eu, 1 web2ldap.de, 1 web2screen.tv, 1 @@ -158946,7 +157539,6 @@ webadicto.net, 1 webadish.co.uk, 1 webadmit.org, 1 -webadvisorhub.com, 1 webagenturschmid.ch, 1 webaholic.co.in, 1 webal.co.uk, 1 @@ -158981,7 +157573,7 @@ webbmd.ca, 1 webboggles.com, 1 webbolivia.tk, 1 -webbpedia.com, 1 +webbpedia.com, 0 webbricks.ru, 1 webbty.nl, 1 webbuilder.de, 1 @@ -159071,7 +157663,6 @@ webemployed.com, 1 webencrypt.org, 1 webengage.com, 1 -weber-immobilienberatung.de, 1 weber.com, 1 weber911.gov, 1 webera.lt, 1 @@ -159123,6 +157714,7 @@ webhostingblackfriday.deals, 1 webhostingempresas.com, 1 webhostinghelp.me, 1 +webhostingmagic.com, 1 webhostingmedia.net, 1 webhostingpros.ml, 1 webhostings.org, 1 @@ -159226,13 +157818,12 @@ webnexty.com, 1 webnoob.net, 1 webo.agency, 1 -webo.directory, 1 webo.pl, 1 weboflies.tk, 1 webofthingsmarwane.xyz, 1 weboke.nl, 1 weboperater.rs, 0 -webowell.fr, 1 +webowell.fr, 0 webp.tf, 1 webpantry.ga, 1 webparallax.cf, 1 @@ -159326,7 +157917,6 @@ websmartlink.tk, 1 websoftba.gq, 1 websofts.co.in, 1 -websolid.be, 1 websolutionbd.tk, 1 websouthdesign.com, 1 websphere.tk, 1 @@ -159383,6 +157973,7 @@ webtronic.ie, 1 webtropia.com, 0 webuildsite.ga, 1 +webullreview.co, 1 webuniverse.ml, 1 webunix.ga, 1 webuyloansfast.com, 1 @@ -159395,7 +157986,6 @@ webvpsnet.org, 1 webwatchdogs.net, 1 webwatcher.tk, 1 -webwinkelkeur.nl, 1 webwinkelwestland.nl, 1 webwit.pro, 1 webworksnz.co, 0 @@ -159490,7 +158080,6 @@ weekly-news.pl, 1 weekly-residence.com, 1 weeklydcoupgen.com, 1 -weelam.ca, 1 weelzbahamas.com, 1 weemakers.fr, 0 weepycat.com, 1 @@ -159544,7 +158133,6 @@ weightlossoutcome.com, 1 weightprogram.cf, 1 weihua.life, 1 -weikai.net, 1 weike.tk, 1 weilheim.de, 1 weiling.clinic, 1 @@ -159652,7 +158240,7 @@ wellnessmassage-eitorf.de, 1 wellnesstravelhub.com, 1 welloffpodcast.ca, 1 -wellpaid.hu, 0 +wellpaid.hu, 1 wellreceived.com, 1 wellsbourne.co.uk, 1 wellsburgwvpd.gov, 1 @@ -159704,7 +158292,6 @@ wemissyou.tk, 1 wenanmao.com, 1 wenceslas.org.uk, 1 -wenchengchou.co, 0 wenchieh.com, 1 wend.academy, 1 wendelluguetto.com.br, 1 @@ -159821,7 +158408,6 @@ weshopy.com, 1 wesl.cc, 1 wesleyanbank.co.uk, 1 -wesleycabus.be, 0 wesleymc.org, 1 wesleyville.gov, 1 wesleywarnell.com, 1 @@ -159882,7 +158468,6 @@ westernresourceadvocates.org, 1 westernriversidecog.gov, 1 westernskydental.com, 0 -westernsydney.com.au, 1 westernwaterca.gov, 1 westerwald-esport.de, 1 westexec.com, 1 @@ -159998,7 +158583,6 @@ wexilapp.com, 1 weyerstall1880.de, 1 weymouthslowik.com, 1 -weyoui.de, 1 wf-bigsky-master.appspot.com, 1 wf-demo-eu.appspot.com, 1 wf-demo-hrd.appspot.com, 1 @@ -160127,7 +158711,6 @@ whawtheme.fr, 1 whd-guide.de, 1 whdpc.gov, 1 -whe-eg.com, 1 wheatfieldtwpmi.gov, 1 wheatgra.in, 1 wheatland.com, 1 @@ -160202,7 +158785,6 @@ whiskeytech.org, 1 whisky.com.my, 1 whisky.money, 1 -whisky.my, 1 whiskydb.de, 1 whiskydrivers.tk, 1 whiskymy.com, 1 @@ -160290,7 +158872,7 @@ whiteshelf.org, 1 whitesoxbestteaminbaseball.com, 1 whitesp.eu.org, 1 -whitespace.ch, 1 +whitespace.ch, 0 whitespace.se, 1 whitespi.eu.org, 1 whitespider.cf, 1 @@ -160303,7 +158885,6 @@ whitestonelandproperties.com, 1 whitestoneva.gov, 1 whitesword.tk, 1 -whitevpn.cz, 1 whitewaterks.gov, 1 whitewatertownshipmi.gov, 1 whiteweb.tk, 1 @@ -160387,7 +158968,6 @@ whta.eu, 1 whta.se, 1 whtcsj.com, 0 -whub.io, 0 whwcornwall.co.uk, 1 why-brexit.uk, 1 why918.com, 0 @@ -160767,8 +159347,6 @@ wilketransporte.de, 1 wilkincounty.gov, 1 wilkipedia.org, 1 -wilkushka.com, 1 -wilkushka.net, 1 wilky44.com, 1 willalex.com, 1 willardohio.gov, 1 @@ -160789,7 +159367,6 @@ willi-roth-holzbau.ch, 1 william.legal, 1 williamarias.tk, 1 -williamblondel.fr, 0 williamboulton.co.uk, 1 williamboundsltd.com, 1 williamfeely.info, 1 @@ -160936,7 +159513,6 @@ windowsfreak.de, 0 windowslatest.com, 1 windowsnerd.com, 1 -windowsru.com, 0 windowsviet.com, 1 windpay.ga, 1 windr.win, 1 @@ -161034,7 +159610,6 @@ winoptimise.fr, 1 winphonemetro.com, 1 winpic.co, 1 -winpreso.com, 1 winrar.com, 1 winsabayi.tk, 1 winserver.ne.jp, 1 @@ -161081,9 +159656,9 @@ wipa.tk, 1 wipayfinancial.com, 1 wipeoutracing.tk, 1 -wipers-nz.co.nz, 1 wiphcai.ca, 1 wipp.bayern, 1 +wippie.se, 1 wippler.at, 1 wippy.tk, 1 wiproccs.com, 1 @@ -161253,7 +159828,6 @@ withprocess.com, 1 withsunglasses.co.uk, 1 withthegrid.com, 1 -withwander.com, 1 withyoutube.com, 1 witne.ss, 1 witron.de, 1 @@ -161353,7 +159927,6 @@ wmar2news.com, 1 wmasphaltservices.com, 1 wmataoig.gov, 1 -wmbviaggi.it, 1 wmcuk.net, 1 wmcurrency.exchange, 1 wmcurrency.online, 1 @@ -161375,7 +159948,6 @@ wmo.ch, 1 wmo.int, 1 wmonline.com, 1 -wmphonline.com, 1 wmphvacations.com, 1 wmsndorgen.cf, 1 wmsndorgen.ga, 1 @@ -161522,7 +160094,6 @@ wolvex.nl, 1 wolvox.com, 1 wom.de, 1 -womansong.net, 1 womb.city, 1 wombatnet.com, 1 wombatpass.com, 1 @@ -161559,7 +160130,6 @@ wondercade.com, 1 wondercare.ie, 1 wonderchat.tk, 1 -wondercorner.ca, 1 wondereur.com, 1 wonderfall.space, 1 wonderfuleducation.eu, 1 @@ -161606,7 +160176,6 @@ woodbridgepacific.com, 1 woodbury.io, 1 woodburynj.gov, 1 -woodcat.net, 1 woodcock.cloud, 1 woodcountywi.gov, 1 woodcraftcompany.ru, 1 @@ -161707,7 +160276,6 @@ wordcounter.net, 1 worddunk.com, 1 wordfast.com, 1 -wordforword.info, 1 wordmon.site, 1 wordnietvindbaar.nl, 1 wordops.io, 1 @@ -161760,7 +160328,7 @@ workelo.eu, 1 worker.gov, 1 workermess.tk, 1 -workerscompensationattorneysandiego.net, 0 +workerscompensationattorneysandiego.net, 1 workerscomplawyerhelp.com, 1 workerselforganisation.cf, 1 workerselforganisation.ga, 1 @@ -161832,7 +160400,7 @@ worksmile.com, 1 workspace-bibb.de, 1 workspace.pt, 1 -workspacecleaners.com.au, 1 +workspacecleaners.com.au, 0 worksthatwork.com, 1 workstride.org, 1 worktefa.tk, 1 @@ -161928,7 +160496,6 @@ worldnewsphoto.tk, 1 worldofarganoil.com, 1 worldofbelia.de, 1 -worldofgeekstuff.com, 1 worldofheroes.ml, 1 worldoflegion.ml, 1 worldofparties.co.uk, 1 @@ -161942,7 +160509,6 @@ worldrecipes.eu, 1 worldremit.com, 1 worldrism.com, 1 -worldsage.org, 1 worldsat.tk, 1 worldsaway.ca, 1 worldsbest.ga, 1 @@ -162124,7 +160690,7 @@ wpglossy.com, 1 wpguvenlik.com, 1 wphelpwithhomework.tk, 1 -wphost.nl, 0 +wphost.nl, 1 wphosting.ovh, 1 wpinabox.de, 1 wpinfos.de, 0 @@ -162180,7 +160746,6 @@ wpthemearchive.com, 1 wpthemesbox.com, 1 wptotal.com, 1 -wpturnedup.com, 1 wptv.com, 1 wpuse.ru, 1 wpwebshop.com, 1 @@ -162226,12 +160791,10 @@ wrighttownshippa.gov, 1 wringer.ga, 1 wristler.eu, 1 -wristreview.com, 0 write-right.net, 1 writeandedit-for-you.com, 1 writeaword.tk, 1 writebrigade.com, 1 -writelabel.com, 1 writememos.com, 1 writemyessay.today, 1 writemyessays.com, 1 @@ -162270,7 +160833,6 @@ wrtv.com, 1 wrytin.com, 1 wrzalski.com, 1 -ws-01.com, 1 wsa.poznan.pl, 1 wsadek.ovh, 1 wsave.be, 1 @@ -162315,7 +160877,6 @@ wt-server3.de, 1 wtccc.org.uk, 1 wtdiw.com, 1 -wteam.pl, 1 wtfast.com, 1 wtfbryan.com, 0 wtfindonesia.tk, 1 @@ -162332,7 +160893,6 @@ wtw.io, 1 wtxl.com, 1 wuaffiliate.tk, 1 -wualabs.com, 1 wubuwu.com, 1 wuchipc.com, 1 wuchoamoveis.com.br, 1 @@ -162340,7 +160900,6 @@ wuerfel.wf, 1 wuerfelmail.de, 1 wuergler-consulting.ch, 1 -wuermlitaucher.ch, 1 wuestenbergs.tk, 1 wuevahosting.com, 1 wuff.gay, 1 @@ -162436,7 +160995,6 @@ wwlc.ch, 1 wwp-beauty.com, 1 wwpxbeauty.com, 1 -wws-energysolutions.de, 1 wws.nu, 1 wwtg.gov, 1 wwv-8522.com, 1 @@ -162575,7 +161133,6 @@ wxservices.tk, 1 wxster.com, 1 wxw.cat, 1 -wxw.guru, 1 wxw.moe, 1 wxw.ooo, 1 wxxm.aero, 1 @@ -162643,7 +161200,6 @@ wzdh.com, 0 wzdh.net, 0 wzh.one, 1 -wzitrade.com, 1 wzrd.in, 0 wzutti.com, 0 wzxaini9.com, 1 @@ -162758,7 +161314,6 @@ xb008.com, 1 xb053.com, 1 xb056.com, 1 -xb058.com, 0 xb1001.com, 1 xb2002.com, 1 xb3888.com, 1 @@ -162878,7 +161433,7 @@ xcharge.uk, 1 xchimera.com, 1 xchoco.com, 1 -xchuan.cn, 1 +xchuan.cn, 0 xcler8.com, 1 xclirion-support.de, 1 xcloudways.com, 1 @@ -162953,7 +161508,6 @@ xerbisworks.com, 1 xerdeso.tk, 1 xerezdeportivo.tk, 1 -xerkus.pro, 1 xerownia.eu, 1 xertainty.com, 1 xertainty.de, 1 @@ -163045,7 +161599,7 @@ xice.wang, 1 xicreative.net, 1 xiecongan.org, 1 -xiedeacc.com, 0 +xiedeacc.com, 1 xiexiexi.com, 1 xif.at, 1 xifrem.com, 1 @@ -163063,7 +161617,6 @@ ximg.co, 1 ximware.com, 1 xin.moe, 1 -xin365.com, 1 xinanwork.com, 1 xinbo010.com, 1 xinbo016.com, 1 @@ -163195,7 +161748,6 @@ xinrui.com, 1 xinxeta.es, 1 xinxiaofei.net.cn, 1 -xinxin.pl, 1 xinyazhang.com, 1 xinyezx.com, 1 xinyitour.tw, 1 @@ -163240,11 +161792,9 @@ xlaw.com.br, 1 xlblinds.nl, 1 xldl.ml, 1 -xleech.to, 1 xlem.cn, 1 xler8r.com, 1 xlhalliance.org, 1 -xlink.com.pl, 1 xlnaudio.com, 1 xloud.cf, 1 xlr8.shop, 1 @@ -163253,7 +161803,6 @@ xlstat.com, 1 xluxes.jp, 1 xm1s.life, 1 -xmag.pl, 1 xmail.id, 1 xmanshow.tk, 1 xmanyz.tk, 1 @@ -163303,7 +161852,6 @@ xn----7sbddc9an3aethjp.xn--p1ai, 1 xn----7sbedlbhv2azb6a.xn--j1amh, 1 xn----7sbfl2alf8a.xn--p1ai, 1 -xn----7sbkofbbj4akz.xn--80asehdb, 1 xn----7sblrfhjjgq8g.xn--p1ai, 1 xn----7sbmucgqdbgwwc5e9b.xn--p1ai, 1 xn----7sbqlhcsgevuc0j.xn--p1acf, 1 @@ -163365,7 +161913,6 @@ xn--4gq62f52gdss.com, 1 xn--4kro7fswi.xn--6qq986b3xl, 1 xn--4qs85t91oq9e.com, 1 -xn--54-6kc3btfht.xn--p1ai, 1 xn--57h.ml, 0 xn--5dbkjqb0d.com, 1 xn--5dbkjqb0d.net, 1 @@ -163520,7 +162067,6 @@ xn--c5wy5c025b.xn--fiqs8s, 1 xn--c5wy5c025b.xn--fiqz9s, 1 xn--carlshamnsvxtrike-0qb.se, 1 -xn--cartofidelidade-nkb.online, 1 xn--cck4ax91r.com, 1 xn--cck7f515h.com, 1 xn--cckdrt0kwb4g3cnh.com, 1 @@ -163529,7 +162075,6 @@ xn--cctsgy36bnvprwpekc.com, 1 xn--chrisliebr-y5a.de, 1 xn--chrysopekinsiologie-hzbe.fr, 1 -xn--ciqt1ytyi.news, 1 xn--circul-gva.cc, 1 xn--circul-u3a.cc, 1 xn--cisowcy-pjb5t.pl, 1 @@ -163597,7 +162142,6 @@ xn--familie-pppinghaus-l3b.de, 1 xn--familienforschung-krau-c2b.de, 1 xn--feuerlscher-arten-4zb.de, 1 -xn--ffnet-iua.org, 1 xn--fhqs21ch1c4t0a.xn--czr694b, 0 xn--fiqs8syvac75bffa172w.cn, 1 xn--fiqs8syvak73af2cw10h.cn, 1 @@ -163617,7 +162161,6 @@ xn--grnderlehrstuhl-0vb.de, 1 xn--grnstrm-r1ae.nu, 1 xn--gs8h.eu.org, 1 -xn--h-1ga.net, 1 xn--h1aaahdlb4aki4h.xn--p1ai, 1 xn--h1aaakmzd.xn--p1ai, 1 xn--h1aagcjb0ajh5g.xn--p1ai, 1 @@ -163875,6 +162418,7 @@ xn--xft85up3jca.ga, 1 xn--xz1a.jp, 1 xn--y3cac7d1d.xn--o3cw4h, 1 +xn--y3cri.com, 1 xn--y8j148r.xn--q9jyb4c, 0 xn--y8j2eb5631a4qf5n0h.com, 1 xn--y8ja6lb.xn--q9jyb4c, 1 @@ -163906,7 +162450,6 @@ xnop.yt, 1 xnopyt.com, 1 xnopyt.info, 1 -xnsir.com, 1 xntrik.wtf, 1 xnu.kr, 1 xnxxporns.com, 1 @@ -163955,7 +162498,6 @@ xpertcube.com, 1 xpertgears.com, 1 xpertmedia.ro, 1 -xpertva.com, 1 xpetit.net, 1 xpg.jp, 1 xphelper.tk, 1 @@ -164009,7 +162551,6 @@ xs4ever.org, 1 xsait.tk, 1 xsauto.pt, 1 -xsave.ru, 1 xscancun.com, 1 xsden.info, 1 xsec.me, 1 @@ -164283,7 +162824,6 @@ xzclip.cn, 1 xzib.com, 1 xzibits.com, 1 -xzqy.net, 1 xztech.co, 1 y-erodoga.com, 1 y-nas.tk, 1 @@ -164444,7 +162984,6 @@ yakshop.bg, 1 yakubovich-les.ru, 1 yakult.com.sg, 1 -yakumed.jp, 1 yakupyilmazboru.com, 1 yakushijishika.com, 1 yakutia.tk, 1 @@ -164486,10 +163025,8 @@ yan.gg, 1 yan.lt, 1 yan.net.cn, 1 -yan.sg, 1 yan3321.com, 1 yanaduday.com, 1 -yananikitina.site, 1 yanaya-k.jp, 1 yanbohon.com, 1 yanchevfarm.bg, 1 @@ -164512,7 +163049,6 @@ yanik.info, 1 yanisvaroufakis.eu, 1 yanivboost.com, 1 -yanjicg.com, 0 yankeeinstitute.org, 1 yann.tw, 1 yannic.world, 0 @@ -164617,7 +163153,6 @@ yasudaseiki.cn, 1 yasukevicious.com, 1 yatai18.com, 1 -yatax.fr, 1 yateam.cc, 1 yatescenter.gov, 1 yatescountyny.gov, 1 @@ -164668,7 +163203,7 @@ ybrfrance.fr, 1 ybscareers.co.uk, 1 ybsj.net, 1 -ybti.net, 1 +ybti.net, 0 ybug.io, 1 ybvip789.com, 0 ybzhao.com, 1 @@ -164694,7 +163229,6 @@ ydsbookstore.com, 1 ydskursuankara.net, 1 ydspublishing.com, 1 -ydt.am, 1 ydyy99.com, 1 ydyydy.ml, 1 yeadonboroughpa.gov, 1 @@ -164809,7 +163343,6 @@ yesilliforum.tk, 1 yesilpanda.com, 1 yesjobs.ga, 1 -yesleaks.com, 1 yesmirov.ga, 1 yesod.in, 1 yesogovinpetcare.com, 1 @@ -164992,7 +163525,6 @@ yoga-good.fr, 1 yoga-in-aying.de, 1 yoga-prive.de, 1 -yoga-school.xyz, 1 yoga-zentrum-narayani.de, 1 yoga.is-an-engineer.com, 1 yogaangels.ga, 1 @@ -165015,7 +163547,6 @@ yogaworld.tk, 1 yogesh.com.au, 1 yogibear.tk, 1 -yogonet.com, 1 yogstation.net, 1 yogularm.de, 1 yogunet.de, 1 @@ -165085,7 +163616,6 @@ yorganica.ga, 1 yorgosbos.nl, 1 yorickpeterse.com, 1 -yoriso.com, 1 yorkcountyne.gov, 1 yorkcountysc.gov, 1 yorkcountyschools.org, 1 @@ -165242,10 +163772,8 @@ youran.me, 1 yourantiquarian.com, 1 youraudiobooks.xyz, 1 -yourazbraces.com, 0 yourbenefitsresources.com, 1 yourberksbucksoxon.wedding, 1 -yourbittorrent.com, 1 yourbittorrent2.com, 1 yourblazeguard.com, 1 yourbodyknows.dk, 1 @@ -165257,7 +163785,6 @@ yourbusinessblueprint.com, 1 yourcareerhost.com, 1 yourcause.digital, 1 -yourcfo.co.in, 0 yourcheshiremerseyside.wedding, 1 yourchoicematters.ca, 1 yourcomputer.expert, 1 @@ -165364,7 +163891,6 @@ yoursuper.gov.au, 1 yoursupportline.co.uk, 1 yoursurrey.wedding, 1 -yourtcas.com, 1 yourteaminindia.com, 1 yourtests.tk, 1 yourticketbooking.com, 1 @@ -165382,7 +163908,6 @@ yousei.ne.jp, 1 youservice.it, 1 youshawn.com, 1 -youshouldnthavebeenhacking.com, 1 yousite.by, 1 yousound.tk, 1 youssefmanai.com, 1 @@ -165451,7 +163976,6 @@ yriik.ml, 1 yrityksen-perustaminen.net, 1 yrx.me, 1 -yryz.net, 1 ys.edu.gr, 1 ys.gr, 1 ys96.org, 1 @@ -165535,7 +164059,6 @@ yukari.cafe, 1 yuki-nagato.com, 1 yuki.xyz, 1 -yukicat.net, 1 yukict.com, 1 yukieda.com, 1 yukigroup.ru, 1 @@ -165572,7 +164095,6 @@ yumi-kids-dental.com, 1 yumi2.jp, 1 yumiandryan.com, 1 -yumikim.design, 1 yumisign.com, 1 yumli.net, 1 yumm.menu, 1 @@ -165843,7 +164365,6 @@ zaferbalkan.com, 1 zaffittv.mx, 1 zaffke.co, 1 -zafiriou.de, 1 zafrani.ga, 1 zafrasa.com.ar, 1 zaftigpress.com, 1 @@ -165918,11 +164439,9 @@ zakariya.org, 1 zakarotta.ga, 1 zakaz.cf, 1 -zakaz.ua, 1 zakazbiletov.kz, 1 zakcutner.com, 1 zakcutner.uk, 1 -zakeke.com, 1 zakelijketaalcursus.nl, 1 zakes.tk, 1 zakirov.gq, 1 @@ -165938,7 +164457,6 @@ zakratheme.com, 1 zakrentus-ostrus.space, 1 zakspartiesandevents.com, 1 -zakutka.com, 0 zala.ml, 1 zalaetavoleibol.tk, 1 zalan.do, 1 @@ -166030,7 +164548,6 @@ zaptorg.xyz, 1 zapzockt.de, 1 zar-kripto.tk, 1 -zar.za.net, 1 zarabiaj.com, 1 zarabianiewsieci.tk, 1 zarabotai-doma.ml, 1 @@ -166058,6 +164575,7 @@ zarjadnik.tk, 1 zarla.com, 1 zarnitsa.eu, 1 +zarnu.com, 1 zarobotok-forum.ga, 1 zarobotok-forum.gq, 1 zarobotok-forum.ml, 1 @@ -166070,7 +164588,6 @@ zary.me, 1 zas4eku.tk, 1 zaschtnik.ga, 1 -zastawsamochodu.pl, 1 zastenchivost.tk, 1 zasudili.ru, 1 zataz.com, 1 @@ -166187,7 +164704,6 @@ zdbl.de, 1 zdcs.com, 1 zdebelak.pl, 1 -zdeneklavicky.cz, 1 zdenekspacek.cz, 1 zdenekvecera.cz, 1 zdev.me, 1 @@ -166361,7 +164877,7 @@ zenmod.in.rs, 1 zenneo.com, 1 zenniereport.com, 1 -zeno-dev.com, 1 +zeno-dev.com, 0 zenocious.com, 1 zenon.at, 1 zenon.eu, 1 @@ -166385,7 +164901,6 @@ zenvia.com, 1 zenvideocloud.com, 1 zenvite.com, 1 -zenways.io, 1 zeocax.com, 1 zep.us, 0 zephyr-cloud.io, 1 @@ -166463,10 +164978,9 @@ zervasandpepper.com, 1 zeryn.net, 1 zesgoes.nl, 1 -zeshanfoundation.org, 0 +zeshanfoundation.org, 1 zestedesavoir.com, 1 zesty.co, 1 -zestylemon.co.uk, 1 zeta.co.za, 1 zeta.hk, 1 zetadisseny.es, 1 @@ -166660,7 +165174,6 @@ zihao.me, 0 zihun.club, 1 zij-aan-zij.be, 1 -zijinbor.com, 1 zijingbt.cn, 1 zijingbt.com, 1 zijingbt.net, 1 @@ -166903,7 +165416,6 @@ zocoxx.com, 1 zode.co, 1 zodee.com.au, 1 -zodgame.xyz, 1 zodiacohouses.com, 1 zodiaconline.com, 1 zodiak.tk, 1 @@ -167024,7 +165536,7 @@ zombiesecured.com, 1 zombmage.tk, 1 zomedica.com, 1 -zomentum.com, 1 +zomentum.com, 0 zomerschoen.nl, 1 zomiac.pp.ua, 1 zona-bellepop.tk, 1 @@ -167077,7 +165589,6 @@ zonky.de, 1 zonneglossis.tk, 1 zonnenberg.de, 1 -zonnestudiosundreams.nl, 1 zonnigduiven.nl, 1 zontractors.com, 1 zoo-tver.ru, 1 @@ -167171,7 +165682,6 @@ zozzle.co.uk, 1 zp-news.ru, 1 zp25.ninja, 1 -zpaintedturtle.com, 1 zpapieru.pl, 1 zpasathagroup.com, 1 zpatkynavrchol.cz, 1 @@ -167238,7 +165748,7 @@ ztv.su, 1 zuan-in.com, 1 zuan-in.net, 1 -zubel.it, 0 +zubel.it, 1 zubenciy.tk, 1 zubilo-perm.ru, 1 zubr.net, 1 @@ -167247,9 +165757,9 @@ zudomc.me, 1 zuefle.net, 1 zuehlcke.de, 1 +zuffel.com, 1 zufuribita.tk, 1 zug-anwalt.de, 0 -zugarkovi.cz, 1 zuhausejobs.com, 1 zuhauserealestate.com, 1 zuhur2021.tk, 1 @@ -167260,7 +165770,6 @@ zuivelonline.nl, 1 zuiverjegeest.nl, 1 zuiververloskundigen.nl, 1 -zuklescentras.lt, 1 zukong.party, 1 zukunft-mobilitaet.net, 1 zukunft-niederrhein.de, 1 @@ -167283,7 +165792,6 @@ zumub.com, 1 zumwildenaffen.com, 1 zundapp.one, 1 -zundappachterhoek.nl, 1 zuomin.tk, 1 zupit.it, 1 zuplu.com, 1 @@ -167324,7 +165832,6 @@ zwemclub-rob.nl, 0 zwemschooldezwaantjes.tk, 1 zwergenfeste.ch, 1 -zwergenfreiheit.at, 1 zwerimex.com, 1 zwhblog.xyz, 0 zwickau.de, 1 @@ -167384,7 +165891,6 @@ zymmm.com, 1 zyner.org, 1 zynga.com, 1 -zyno.space, 1 zynqit.com, 0 zypern-und-ich.de, 1 zypernreisen.com, 1 diff -Nru firefox-esr-140.6.0esr/security/manager/tools/log_list.json firefox-esr-140.7.0esr/security/manager/tools/log_list.json --- firefox-esr-140.6.0esr/security/manager/tools/log_list.json 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/security/manager/tools/log_list.json 2026-01-06 21:09:51.000000000 +0000 @@ -1,6 +1,6 @@ { - "version": "76.4", - "log_list_timestamp": "2025-11-30T12:54:31Z", + "version": "80.16", + "log_list_timestamp": "2026-01-04T12:53:12Z", "operators": [ { "name": "Google", @@ -289,8 +289,8 @@ "url": "https://wyvern.ct.digicert.com/2027h1/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2025-10-10T18:00:00Z" + "usable": { + "timestamp": "2025-12-20T18:00:00Z" } }, "temporal_interval": { @@ -305,8 +305,8 @@ "url": "https://wyvern.ct.digicert.com/2027h2/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2025-10-10T18:00:00Z" + "usable": { + "timestamp": "2025-12-20T18:00:00Z" } }, "temporal_interval": { @@ -369,8 +369,8 @@ "url": "https://sphinx.ct.digicert.com/2027h1/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2025-10-10T18:00:00Z" + "usable": { + "timestamp": "2025-12-20T18:00:00Z" } }, "temporal_interval": { @@ -385,8 +385,8 @@ "url": "https://sphinx.ct.digicert.com/2027h2/", "mmd": 86400, "state": { - "qualified": { - "timestamp": "2025-10-10T18:00:00Z" + "usable": { + "timestamp": "2025-12-20T18:00:00Z" } }, "temporal_interval": { @@ -699,8 +699,12 @@ "url": "https://oak.ct.letsencrypt.org/2025h2/", "mmd": 86400, "state": { - "usable": { - "timestamp": "2023-11-26T12:00:00Z" + "readonly": { + "timestamp": "2025-12-12T22:30:00Z", + "final_tree_head": { + "sha256_root_hash": "fn06m+bnTrDRl01hT1F1TdZPYfxciFZZn7NAayeGOVQ=", + "tree_size": 1958525022 + } } }, "temporal_interval": { @@ -715,8 +719,12 @@ "url": "https://oak.ct.letsencrypt.org/2026h1/", "mmd": 86400, "state": { - "usable": { - "timestamp": "2024-11-04T00:00:00Z" + "readonly": { + "timestamp": "2025-12-12T22:30:00Z", + "final_tree_head": { + "sha256_root_hash": "deSRNfTNPgd9wfzoXIznvi+QUTxuK0R+daC6JGKGK3Q=", + "tree_size": 598614696 + } } }, "temporal_interval": { @@ -731,8 +739,12 @@ "url": "https://oak.ct.letsencrypt.org/2026h2/", "mmd": 86400, "state": { - "usable": { - "timestamp": "2024-11-04T00:00:00Z" + "readonly": { + "timestamp": "2025-12-12T22:30:00Z", + "final_tree_head": { + "sha256_root_hash": "uTgg1k3DUbSFFdXewyyxbsQuCc9RupplMphTwtXqvf4=", + "tree_size": 130815692 + } } }, "temporal_interval": { @@ -1001,7 +1013,25 @@ } } ], - "tiled_logs": [] + "tiled_logs": [ + { + "description": "TrustAsia Luoshu2027", + "log_id": "VzRIzG4dLA3JS2nyh9Hv5IPHolxQxTILuzrep29usEE=", + "key": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEumSYzy6dUQlwTckPzKMKApMRinqxHIBlLfmrvx1SdMH1RTACi1wb1V18ss8YjlaC7Pch2OQa8OfRevub4Y9BDQ==", + "submission_url": "https://luoshu2027.trustasia.com/luoshu2027/", + "monitoring_url": "https://luoshu2027.trustasia.com/luoshu2027/", + "mmd": 60, + "state": { + "qualified": { + "timestamp": "2025-12-02T18:30:00Z" + } + }, + "temporal_interval": { + "start_inclusive": "2026-12-24T00:00:00Z", + "end_exclusive": "2028-01-08T00:00:00Z" + } + } + ] }, { "name": "Geomys", @@ -1146,8 +1176,8 @@ "monitoring_url": "https://halloumi2025h2.mon.ct.ipng.ch/", "mmd": 60, "state": { - "qualified": { - "timestamp": "2025-10-07T18:30:00Z" + "usable": { + "timestamp": "2025-12-17T18:30:00Z" } }, "temporal_interval": { @@ -1163,8 +1193,8 @@ "monitoring_url": "https://halloumi2026h1.mon.ct.ipng.ch/", "mmd": 60, "state": { - "qualified": { - "timestamp": "2025-10-07T18:30:00Z" + "usable": { + "timestamp": "2025-12-17T18:30:00Z" } }, "temporal_interval": { @@ -1197,8 +1227,8 @@ "monitoring_url": "https://halloumi2027h1.mon.ct.ipng.ch/", "mmd": 60, "state": { - "qualified": { - "timestamp": "2025-10-07T18:30:00Z" + "usable": { + "timestamp": "2025-12-17T18:30:00Z" } }, "temporal_interval": { @@ -1214,8 +1244,8 @@ "monitoring_url": "https://halloumi2027h2.mon.ct.ipng.ch/", "mmd": 60, "state": { - "qualified": { - "timestamp": "2025-10-07T18:30:00Z" + "usable": { + "timestamp": "2025-12-17T18:30:00Z" } }, "temporal_interval": { diff -Nru firefox-esr-140.6.0esr/security/sandbox/common/test/SandboxTestingChildTests.h firefox-esr-140.7.0esr/security/sandbox/common/test/SandboxTestingChildTests.h --- firefox-esr-140.6.0esr/security/sandbox/common/test/SandboxTestingChildTests.h 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/security/sandbox/common/test/SandboxTestingChildTests.h 2026-01-06 21:09:50.000000000 +0000 @@ -74,6 +74,16 @@ # ifndef MREMAP_DONTUNMAP # define MREMAP_DONTUNMAP 4 # endif +// +// This constant is ancient, but the kernel header for it conflicts +// with glibc's fcntl.h: +# ifndef F_LINUX_SPECIFIC_BASE +# define F_LINUX_SPECIFIC_BASE 1024 +# endif +// Added in 6.10: +# ifndef F_DUPFD_QUERY +# define F_DUPFD_QUERY (F_LINUX_SPECIFIC_BASE + 3) +# endif #endif constexpr bool kIsDebug = @@ -143,6 +153,23 @@ MOZ_RELEASE_ASSERT(flags & O_NONBLOCK); } } + + if (!aIsGMP) { + constexpr auto name = "fcntl_dupfd_query"_ns; + int rv = fcntl(0, F_DUPFD_QUERY, 0); + // Expected: + // * success with rv == 1 (new kernel) + // * failure with EINVAL (old kernel) + // Rejected: + // * failure with ENOSYS or any other error + // * success with rv == 0 (shouldn't be possible) + MOZ_RELEASE_ASSERT(rv != 0); + if (rv > 0) { + child->PosixTest(name, true, 0); + } else { // (rv < 0), errno unchanged since fcntl + child->PosixTest(name, false, errno, Some(EINVAL)); + } + } #endif // XP_LINUX } diff -Nru firefox-esr-140.6.0esr/security/sandbox/linux/SandboxFilter.cpp firefox-esr-140.7.0esr/security/sandbox/linux/SandboxFilter.cpp --- firefox-esr-140.6.0esr/security/sandbox/linux/SandboxFilter.cpp 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/security/sandbox/linux/SandboxFilter.cpp 2026-01-06 21:09:51.000000000 +0000 @@ -118,6 +118,13 @@ static_assert(MADV_GUARD_REMOVE == 103); #endif +// Added in 6.10 +#ifndef F_DUPFD_QUERY +# define F_DUPFD_QUERY (F_LINUX_SPECIFIC_BASE + 3) +#else +static_assert(F_DUPFD_QUERY == (F_LINUX_SPECIFIC_BASE + 3)); +#endif + // To avoid visual confusion between "ifdef ANDROID" and "ifndef ANDROID": #ifndef ANDROID # define DESKTOP @@ -1100,6 +1107,9 @@ #endif // Not much different from other forms of dup(), and commonly used. .Case(F_DUPFD_CLOEXEC, Allow()) + // Used by Mesa, generally useful, and harmless: tests if + // two file descriptors refer to the same file description. + .Case(F_DUPFD_QUERY, Allow()) .Default(SandboxPolicyBase::EvaluateSyscall(sysno)); } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json firefox-esr-140.7.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json --- firefox-esr-140.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json 2025-12-01 18:15:40.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json 2026-01-06 21:09:51.000000000 +0000 @@ -5,6 +5,4265 @@ "blocked": [], "unblocked": [], "softblocked": [ + "{be2be274-fa1e-4ad6-a27f-666475714544}:1.0", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.8", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.7", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.6", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:1.0", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.5", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.0", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.1", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.4", + "{5cb94fc8-76d8-4903-b752-ba74539ea195}:2.3", + "@archtube:1.0.0", + "nativ-google-results-indicator@example.com:0.1.3", + "{3156ac7b-344b-4b09-9a7b-67bf740a5df3}:1.0", + "{3156ac7b-344b-4b09-9a7b-67bf740a5df3}:2.0", + "{3156ac7b-344b-4b09-9a7b-67bf740a5df3}:3.0", + "{3f5de377-70a5-4724-93cd-04f2dbcaf114}:1.0", + "speed-controller@vijigishu.com:1.0", + "speed-controller@vijigishu.com:1.1", + "speed-controller@vijigishu.com:1.2", + "{2679a16c-771a-4823-a9c3-33131fbc75ee}:2.0.63" + ] + }, + "schema": 1767594993203, + "key_format": "{guid}:{version}", + "stash_time": 1767616506235, + "id": "9222a20c-856a-4294-b86f-12142473f747", + "last_modified": 1767616590393 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{ec280a3e-01cd-4a28-b195-f36f4bb14299}:1.0", + "favory@sp4ce.pw:2.6.4", + "j4ck0lantern@protonmail.com:3.0", + "@ocsc-ai-assist:1.0", + "@ocsc-ai-assist:1.1", + "focus-warning@syiroth.local:1.0" + ] + }, + "schema": 1767573391369, + "key_format": "{guid}:{version}", + "stash_time": 1767594906708, + "id": "33fdd298-cc9b-438c-baff-16a3797d8af0", + "last_modified": 1767594992940 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "image-downloader@ozler365:12.5", + "image-downloader@ozler365:12.6", + "{e2c5beaa-fa93-49aa-ba87-c0d59f8b2317}:1.2", + "{db55a6f2-601d-4d69-af93-3f4bfa70fe6a}:1.0", + "{cad379db-edfe-4c5e-b936-27a19156b5dc}:2.2.0", + "privacy-shield@argentum.com:3.0", + "{3d073f09-d28d-4f50-b3ca-f73f8957f2f1}:1.0", + "{3d073f09-d28d-4f50-b3ca-f73f8957f2f1}:2.0", + "{a1b2c3d4-e5f6-4789-a013-3456789abcde}:1.0", + "{3d073f09-d28d-4f50-b5ca-f73f8957f2f1}:2.0.0" + ] + }, + "schema": 1767551789189, + "key_format": "{guid}:{version}", + "stash_time": 1767573306639, + "id": "b699a78d-a23b-40b4-8b20-549a31e871e2", + "last_modified": 1767573391116 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "fdm-integration@fastdownloadmanager.com:1.0.0", + "jabdlhfpmdadoflkloeifokbadiflagj@chrome-store-foxified-3967678046:1.0", + "neonntp@samir.local:1.0.1", + "@searchClear:0.1", + "{e2482817-3d73-7153-850d-b62d5e42d505}:0.4.6", + "linkedin-mieux@cyrilou242.github.io:0.1.2" + ] + }, + "schema": 1767530188945, + "key_format": "{guid}:{version}", + "stash_time": 1767551706258, + "id": "22789bf8-fb9c-460f-b675-4e0bbc0690cf", + "last_modified": 1767551788923 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:6.4", + "{7623c940-85c7-4f65-ab40-6d494597e0c7}:1.0", + "{7623c940-85c7-4f65-ab40-6d494597e0c7}:1.1", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:6.5", + "job-import@johncabiles.com:1.1.0", + "asic-extractor@clearbyte.au:2.0.2", + "asic-extractor@clearbyte.au:2.0.3", + "asic-extractor@clearbyte.au:2.0.4", + "asic-extractor@clearbyte.au:2.0.6", + "asic-extractor@clearbyte.au:2.0.7", + "asic-extractor@clearbyte.au:2.0.8", + "asic-extractor@clearbyte.au:2.0.9", + "asic-extractor@clearbyte.au:2.1.0", + "job-import@johncabiles.com:1.1.1", + "asic-extractor@clearbyte.au:2.1.1", + "asic-extractor@clearbyte.au:2.1.2", + "asic-extractor@clearbyte.au:2.1.3", + "grpc-devtools@example.com:0.1.0", + "asic-extractor@clearbyte.au:2.1.4", + "app-support-twilio-toolkit@uhaul.local:4.1" + ] + }, + "schema": 1767508592746, + "key_format": "{guid}:{version}", + "stash_time": 1767530106783, + "id": "28de76d6-c465-4f3e-a76b-eabfd2fa2419", + "last_modified": 1767530188717 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "funpay-auto-phrase@local-addon.com:1.0", + "funpay-auto-phrase@local-addon.com:1.11", + "funpay-auto-phrase@local-addon.com:1.12" + ] + }, + "schema": 1767486993207, + "key_format": "{guid}:{version}", + "stash_time": 1767508506653, + "id": "b0ad0261-767f-4ce6-9223-b0f8033f8003", + "last_modified": 1767508592607 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{f5d610de-acde-4c13-9c1d-193204b5a1b0}:4.0", + "gemix@extension.geisha:1.9.2", + "gemix@extension.geisha:1.9.1", + "gemix@extension.geisha:1.6.0", + "gemix@extension.geisha:1.0.4", + "gemix@extension.geisha:1.0.3", + "image-downloader@ozler365:6.6", + "image-downloader@ozler365:12.2", + "image-downloader@ozler365:12.3", + "image-downloader@ozler365:12.1", + "image-downloader@ozler365:12.0", + "image-downloader@ozler365:11.0", + "image-downloader@ozler365:10.0", + "image-downloader@ozler365:9.0", + "image-downloader@ozler365:8.5", + "image-downloader@ozler365:6.7", + "image-downloader@ozler365:1.6.0", + "tripoli@phoenicia.io:1.2", + "tripoli@phoenicia.io:1.3resigned1", + "xristodoulakis@pm.me:1.0" + ] + }, + "schema": 1767465390144, + "key_format": "{guid}:{version}", + "stash_time": 1767486906690, + "id": "b37574da-4c87-4b20-9969-33f2f49bcc4f", + "last_modified": 1767486992952 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "neomigpibafpboiknmijddgnncengfnm@chrome-store-foxified--1266285612:3.3.8", + "laicai@linux.do:2.6.5", + "{5a95e61d-6981-44e0-bf1d-9d6176e7d83f}:1.14", + "browsing-enhancer-1@example.com:1.0", + "browsing-enhancer-1@example.com:2.0", + "browsing-enhancer-1@example.com:3.0", + "browsing-enhancer-1@example.com:4.0", + "popup-blocker-remover@example.com:1.0", + "syno-android-test@example.com:0.12.2", + "smhg-extension@internal.smhg:1.0.0", + "manual-linetv-cleaner@yourdomain.com:1.0.5", + "twitter@kini.zip:1.0", + "blazing-converter@extension-craft.com:5.4.8", + "blazing-converter@extension-craft.com:25.15.19.1", + "blazing-converter@extension-craft.com:25.15.19.2" + ] + }, + "schema": 1767443792188, + "key_format": "{guid}:{version}", + "stash_time": 1767465306313, + "id": "5db0cddf-8d37-4f44-ac7f-d5b63850dba0", + "last_modified": 1767465389990 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "ff-saver@mu-cli-tools.local:1.1.0", + "ff-saver-20260103@mu-cli-tools.local:1.1.0", + "prismium-ai@extensions.cubinghackerz.com:1.0", + "bookmark-board-v1-ciro@cirodisalvo.it:1.0.0", + "chatgpt-cleanup@chatgpt-cleanup:1.0", + "zen-flow-tracker@yourname.local:1.0", + "zen-flow-tracker@yourname.local:1.1", + "tab-highlighter@nihaltp:1.2.1", + "Stealth@Guard.local:1.0", + "favory@sp4ce.pw:2.6.1", + "favory@sp4ce.pw:2.6.2" + ] + }, + "schema": 1767422190137, + "key_format": "{guid}:{version}", + "stash_time": 1767443706155, + "id": "7acfba43-d182-480f-80a4-a86d627f49c1", + "last_modified": 1767443792039 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{9d3237cd-d7eb-4e7c-b883-e1f30daa5b8a}:1.0", + "{15a9235a-de6e-4cef-8b90-e8efbf13f881}:0.0.31", + "{9d3237cd-d7eb-4e7c-b883-e1f30daa5b8a}:1.0.1", + "8muses-downloader-ui-fix@yourname.com:1.5.8.5", + "8muses-downloader-ui-fix@yourname.com:2.3.0", + "hhinaapppaileiechjoiifaancjggfjm@chrome-store-foxified-2078846985:2.2.4", + "dogjomhpgfhidkifpoeapcggdpbhgcgk@chrome-store-foxified-2078846985:1.1.5", + "dighmiipfpfdfbfmpodcmfdgkkcakbco@chrome-store-foxified-1556938619:3.10.2", + "asic-extractor@clearbyte.au:2.0", + "asic-extractor@clearbyte.au:2.0.1", + "{dee969be-a08d-4577-8323-5cd7afde430b}:1.0", + "@copy-dog:0.9.9" + ] + }, + "schema": 1767400591286, + "key_format": "{guid}:{version}", + "stash_time": 1767422106636, + "id": "1a733cda-9aff-44f4-bdaa-4fed0d3aca53", + "last_modified": 1767422189905 + }, + { + "stash": { + "blocked": [ + "pluginsa-extension2@local.dev:1.7" + ], + "unblocked": [], + "softblocked": [ + "bob@renebomers.nl:1.0", + "info@bobbomers.nl:1.0", + "info@bobbomers.nl:1.1", + "favory@sp4ce.pw:2.5.9", + "favory@sp4ce.pw:2.5.10", + "formsaver-pf2026@custom.addon:1.0", + "formsaver-pf2026@custom.addon:1.1", + "formsaver-pf2026@custom.addon:1.1.2", + "formsaver-pf2026@custom.addon:1.1.5", + "image-downloader@ozler365:6.3", + "image-downloader@ozler365:6.2", + "image-downloader@ozler365:6.4", + "image-downloader@ozler365:6.1", + "{2f53cd0a-0497-4d31-b0ba-f3645e5dbc9e}:1.0", + "{2f53cd0a-0497-4d31-b0ba-f3645e5dbc9e}:2.0", + "image-downloader@ozler365:6.0", + "image-downloader@ozler365:5.6", + "image-downloader@ozler365:5.5", + "{d69d42f0-7b36-447e-98b2-c2e25a767eb1}:12.3", + "{d69d42f0-7b36-447e-98b2-c2e25a767eb1}:3.7.1" + ] + }, + "schema": 1767378992653, + "key_format": "{guid}:{version}", + "stash_time": 1767400506281, + "id": "d742a659-2e4a-4b72-824b-0a534d456d13", + "last_modified": 1767400591145 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "litetube-v1-release@my-addon.com:1.2.4", + "extension@linkwy.com:1.0.1", + "{82864d58-ad2b-49a3-b114-fb3a5de70137}:1.0", + "pagesidebar-fork@rfluethi.local:1.2.22", + "{8a23d4f3-850b-410c-8b0c-956854610786}:1.0", + "{e1f41a7c-4825-4cfb-8186-11df01007a89}:1.0.7", + "job-saver@oplinque.com:0.0.2", + "ui@udemy:1.0.1", + "android-universal-image-download@ozler365:6.0" + ] + }, + "schema": 1767357390890, + "key_format": "{guid}:{version}", + "stash_time": 1767378906893, + "id": "227cb49b-9da3-49a0-8bfd-2207eaa5bdac", + "last_modified": 1767378992319 + }, + { + "stash": { + "blocked": [ + "{8ec89472-1c97-4c34-a16d-93f7c5316621}:1.0", + "{8ec89472-1c97-4c34-a16d-93f7c5316621}:1.3", + "{32a6d9ee-aafd-4ed5-a839-c942cd966dd9}:11.1.0", + "{32a6d9ee-aafd-4ed5-a839-c922cd966dd9}:11.1.0", + "{0d89dcd1-fdc3-4e55-b59a-b6ff2d1fe23d}:1.0", + "{0d89dcd1-fdc3-4e55-b59a-b6ff2d1fe23d}:1.5", + "{13177739-791a-45e2-876a-dfffe0b7bfed}:1.0", + "{13177739-791a-45e2-876a-dfffe0b7bfed}:1.2", + "{13177739-791a-45e2-876a-dfffe0b7bfed}:1.5", + "{13177739-791a-45e2-876a-dfffe0b7bfed}:1.7", + "{13177739-791a-45e2-876a-dfffe0b7bfed}:2.3", + "{99ab719d-337c-472f-abda-61e45579b361}:1.0", + "{450f51a4-c0de-4fd3-97c6-961c8c80f089}:1.0", + "{450f51a4-c0de-4fd3-97c6-961c8c80f089}:2.3" + ], + "unblocked": [ + "{4d13d126-343f-44a9-8dcf-1bf5218b618a}:1.0.0", + "{4d13d126-343f-44a9-8dcf-1bf5218b618a}:1.1.0" + ], + "softblocked": [ + "favory@sp4ce.pw:2.5.8", + "novapadev-ai-translator@1:1.0.0", + "{8a0bff00-4308-4bff-8b7d-b3d708f8813a}:1.0", + "{4cfaa5dd-ca14-4659-8db8-a55b3ba3bbb5}:1.0", + "{72b3ff78-ba8e-4dad-9fe0-db1869e613c1}:1.0.3", + "kontenmanager@gmx.de:2025.1.2.0", + "kontenmanager@gmx.de:2025.1.2.1", + "kontenmanager@gmx.de:2025.1.2.2", + "kontenmanager@gmx.de:2025.1.2.3", + "kontenmanager@gmx.de:2025.1.2.4", + "kontenmanager@gmx.de:2025.1.2.5", + "visual-bug-tracker@yourdomain.com:1.0.0", + "klorel.01.test@gmail.com:1.1", + "downloads-rescue@despecial.local:1.3.2", + "chordifyclean@iwltechnology.github.io:1.0", + "8981407246246795@extension:1.2", + "8981407246246795@extension:1.3" + ] + }, + "schema": 1767335790135, + "key_format": "{guid}:{version}", + "stash_time": 1767357306426, + "id": "3b070496-9794-4db6-8a45-96ceee52b041", + "last_modified": 1767357390549 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{a09c7d5e-4a1f-4721-b570-c601e178c8fa}:220251225.1", + "sorare-price-analytics@davidmohamed.dev:1.2.10", + "@idontlikechzzkgrid:0.2.1", + "{971b2b38-0f6d-4aa3-9811-85e2a441f3bb}:1.0", + "{971b2b38-0f6d-4aa3-9811-85e2a441f3bb}:2.0" + ] + }, + "schema": 1767314190823, + "key_format": "{guid}:{version}", + "stash_time": 1767335706451, + "id": "daf86385-0387-4749-bf88-e3ddf846fa2d", + "last_modified": 1767335789907 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "8981407246246795@extension:1.0", + "8981407246246795@extension:1.1", + "tron@tron.dev:0.1.1", + "mass-image-downloader-pro@local:1.0.1", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.1.9", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.0", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.2", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.3", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.4", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.5", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.6", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.8", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.9", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.10", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.11", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.12", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.13", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.14", + "{e36cd785-3642-41fe-b99f-e9605c553388}:1.2.15", + "dp-beta@cel.ro:1.0.185", + "dp-beta@cel.ro:1.0.184", + "dp-beta@cel.ro:1.0.181", + "dp-beta@cel.ro:1.0.183", + "dp-beta@cel.ro:1.0.180", + "dp-beta@cel.ro:1.0.178", + "dp-beta@cel.ro:1.0.179", + "dp-beta@cel.ro:1.0.186", + "kontenmanager@gmx.de:2025.1.1.8", + "kontenmanager@gmx.de:2025.1.1.0", + "kontenmanager@gmx.de:2025.1.1.1", + "kontenmanager@gmx.de:2025.1.1.2", + "kontenmanager@gmx.de:2025.1.1.3", + "kontenmanager@gmx.de:2025.1.1.4", + "kontenmanager@gmx.de:2025.1.1.5", + "kontenmanager@gmx.de:2025.1.1.6", + "kontenmanager@gmx.de:2025.1.1.7", + "testpilot@rabbitxone.com:4.2.1", + "stripper@burp:1.2", + "stripper@burp:1.3", + "stripper@burp:1.5" + ] + }, + "schema": 1767292589807, + "key_format": "{guid}:{version}", + "stash_time": 1767314106640, + "id": "eb110fe6-3c36-462e-9b8c-1d8a94675362", + "last_modified": 1767314190598 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "peek-audio-meter-self@muniyoshid:1.0", + "{6a99761a-ad67-46a7-9254-a11fcf51f38d}:1.0", + "downloads-rescue@despecial.local:1.3.0", + "@private-history-cleaner-v0.1:0.1", + "8muses-downloader-ui-fix@yourname.com:2.1.5", + "8muses-downloader-ui-fix@yourname.com:2.1.0", + "downloads-rescue@despecial.local:1.3.1", + "heyoo@gmail.com:1.0.0", + "linkedin-optimizer@codebasics.io:1.0.1", + "{42CFCB74-44E1-41D1-A55D-BDDC2770EA9F}:1.13.0", + "{f09ecbe3-0edb-475f-94fc-78b7349a3648}:1.0", + "tktsto@toykeeper.net:0.0.1.0", + "favory@sp4ce.pw:2.5.5", + "favory@sp4ce.pw:2.5.7" + ] + }, + "schema": 1767270992796, + "key_format": "{guid}:{version}", + "stash_time": 1767292506717, + "id": "1c81acb9-f6c1-4fd2-a118-4cd96e1fc084", + "last_modified": 1767292589553 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "nils@teampass.net:0.1.0", + "nils@teampass.net:0.1.1", + "nils@teampass.net:0.1.2", + "nils@teampass.net:0.1.3", + "nils@teampass.net:0.1.4", + "nils@teampass.net:0.1.5", + "nils@teampass.net:0.1.6", + "nils@teampass.net:0.1.8", + "nils@teampass.net:0.1.9", + "8muses-downloader-ui-fix@yourname.com:1.9.0", + "8muses-downloader-ui-fix@yourname.com:1.8.6", + "8muses-downloader-ui-fix@yourname.com:1.9.2", + "8muses-downloader-ui-fix@yourname.com:1.9.1", + "8muses-downloader-ui-fix@yourname.com:1.9.3", + "8muses-downloader-ui-fix@yourname.com:1.9.4", + "8muses-downloader-ui-fix@yourname.com:1.9.5.2", + "8muses-downloader-ui-fix@yourname.com:1.9.6", + "8muses-downloader-ui-fix@yourname.com:1.9.7", + "8muses-downloader-ui-fix@yourname.com:2.0.0", + "8muses-downloader-ui-fix@yourname.com:2.0.1" + ] + }, + "schema": 1767249390431, + "key_format": "{guid}:{version}", + "stash_time": 1767270906254, + "id": "84cca4aa-627c-4963-a17e-0c333dada806", + "last_modified": 1767270992503 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "halo-capture-temp@local:1.0.27", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.1", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.2", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.3", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.4", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.5", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.6", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.7", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.8", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.9", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.10", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.11", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.12", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.13", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.14", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.15", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.16", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.17", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.18", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.19", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.20", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.21", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.22", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.23", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.24", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.25", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.26", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.27", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.28", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.29", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.30", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.31", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.32", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.33", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.34", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.35", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.36", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.37", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.38", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.39", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.40", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.41", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.42", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.43", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.44", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.45", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.46", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.47", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.48", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.49", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.50", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.51", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.52", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.53", + "{0388e670-45ee-4ad7-b87e-0c5f3a52c33f}:0.0.0.54", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.1", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.2", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.3", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.4", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.5", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.6", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.7", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.8", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.9", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.10", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.11", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.12", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.13", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.14", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.15", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.16", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.17", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.18", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.19", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.20", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.21", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.22", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.23", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.24", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.25", + "{8f92e98b-81b8-4989-861c-29e27a069e5b}:0.0.0.26", + "8muses-downloader-ui-fix@yourname.com:1.8.1", + "8muses-downloader-ui-fix@yourname.com:1.7.2", + "8muses-downloader-ui-fix@yourname.com:1.8.3", + "8muses-downloader@yourname.com:1.0", + "8muses-downloader-ui-fix@yourname.com:1.8.4", + "favory@sp4ce.pw:2.5.6", + "{9282bc49-b1b4-4f46-b135-1dfe00f182c9}:2.6.8", + "{8ec89472-1c97-4c34-a16d-93f7c5316621}:2.3", + "pipe-cleaner@example.com:1.2" + ] + }, + "schema": 1767227790861, + "key_format": "{guid}:{version}", + "stash_time": 1767249306521, + "id": "8e5ad64d-c718-453a-a88d-5560a07fdea4", + "last_modified": 1767249390193 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.5.4", + "{7379c6b1-9e05-42f6-89de-bf29a18f944d}:1.0", + "{7379c6b1-9e05-42f6-89de-bf29a18f944d}:2.0", + "tenki.jp.avbiq@passmail.net:1.0", + "tenki.jp.avbiq@passmail.net:1.0.1", + "tenki.jp.avbiq@passmail.net:1.0.3" + ] + }, + "schema": 1767206190488, + "key_format": "{guid}:{version}", + "stash_time": 1767227706479, + "id": "eb526711-d1b7-4fe3-b43e-b607b3f89935", + "last_modified": 1767227790603 + }, + { + "stash": { + "blocked": [ + "{32a6d9ee-aafd-4ed5-a839-c922cd979dc9}:11.1.0", + "{d013147a-9ace-42e7-a655-854e59645c84}:1.0", + "{d013147a-9ace-42e7-a655-854e59645c84}:1.2", + "{d013147a-9ace-42e7-a655-854e59645c84}:1.3", + "{06eeba01-2099-494c-acb9-1adb7cc8d1a9}:1.0", + "{06eeba01-2099-494c-acb9-1adb7cc8d1a9}:1.2" + ], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.5.1", + "{8a122159-cd6f-4a87-b7f4-cd112f67c070}:1.22.2001.2938", + "{8a122159-cd6f-4a87-b7f4-cd112f67c070}:1.23.1416.2600", + "favory@sp4ce.pw:2.5.2", + "family-photo-downloader@example.com:1.0", + "vrsa-suno-bridge@example.com:1.0", + "favory@sp4ce.pw:2.5.2.1", + "favory@sp4ce.pw:2.5.3" + ] + }, + "schema": 1767184589670, + "key_format": "{guid}:{version}", + "stash_time": 1767206106990, + "id": "41c62f11-a351-4f99-9eac-087ca374e951", + "last_modified": 1767206190267 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "261239765@qq.com:1.5", + "8muses-downloader-ui-fix@yourname.com:1.7.0", + "clipwave@clipwave.app:1.2.12", + "8muses-downloader-ui-fix@yourname.com:1.7.1", + "chromium-session-restore@example.com:4.0.0", + "mciiogijehkdemklbdcbfkefimifhecn@chrome-store-foxified-11300298:0.9.3", + "test@realchill:0.2", + "{bc3c6269-37bb-42e8-bb18-ca13bbbd046f}:1.0", + "{21598acf-2916-401d-a3cb-7ee417234ad1}:1.0", + "instatools@example.com:10.1.0", + "instagrabber@example.com:1.3.3", + "{3b2c6046-f40c-4554-8683-99601b6c848e}:1.0", + "enhanced-video-favorites@example.com:1.0", + "enhanced-video-favorites@example.com:1.0.1", + "enhanced-video-favorites@example.com:1.0.2", + "enhanced-video-favorites@example.com:1.0.3" + ] + }, + "schema": 1767162980914, + "key_format": "{guid}:{version}", + "stash_time": 1767184506469, + "id": "c12efc3c-70c3-4a08-b3a4-5725f188fa32", + "last_modified": 1767184589365 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{77848413-c981-481d-9bad-a4ef983f9413}:1.2", + "favory@sp4ce.pw:2.4.8", + "8muses-downloader-ui-fix@yourname.com:1.5.8.4", + "tsukihi-fork@lrr:2.0.8", + "tsukihi-fork@lrr:2.0.7", + "tsukihi-fork@lrr:2.0.6", + "tsukihi-fork@lrr:2.0.5", + "tsukihi-fork@lrr:2.0.4", + "tsukihi-fork@lrr:2.0.3", + "8muses-downloader-ui-fix@yourname.com:1.6", + "8muses-downloader-ui-fix@yourname.com:1.6.1", + "favory@sp4ce.pw:2.5.0", + "clipwave@clipwave.app:1.2.6", + "clipwave@clipwave.app:1.2.9", + "clipwave@clipwave.app:1.2.10", + "clipwave@clipwave.app:1.2.11" + ] + }, + "schema": 1767141390851, + "key_format": "{guid}:{version}", + "stash_time": 1767162905121, + "id": "0e8d3f44-ab45-4418-b43a-943cde2ba80e", + "last_modified": 1767162980653 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "ratnot@dev:0.5.3", + "{32f7a5ba-e59a-4dbf-b984-5c06a18b2754}:1.0", + "inventory-final-v3@linux-mint-user:1.0", + "instagrabber@example.com:1.3.1", + "instatools@example.com:10.0", + "Passman@xuzhao.net:2.1.5", + "Passman@xuzhao.net:2.1.6", + "Passman@xuzhao.net:2.1.7", + "Passman@xuzhao.net:2.1.8", + "Passman@xuzhao.net:2.1.9", + "downloads-rescue@despecial.local:1.1", + "downloads-rescue@despecial.local:1.1.1", + "downloads-rescue@despecial.local:1.2", + "{52b2997a-ef6b-4bdb-bfd5-e32cd3ae247f}:1.0", + "{52b2997a-ef6b-4bdb-bfd5-e32cd3ae247f}:2.0", + "{77848413-c981-481d-9bad-a4ef983f9413}:1.0" + ] + }, + "schema": 1767119780635, + "key_format": "{guid}:{version}", + "stash_time": 1767141306279, + "id": "e1bf6bff-7b14-4ef3-b76a-e396dbff62e7", + "last_modified": 1767141390637 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "binsnipersb@binsniper.com:4.3", + "{8dc17602-6498-444a-9959-6b561f02115d}:1.0", + "{15a75c5a-eb98-4327-9de8-53e6a6b0bdd5}:1.1", + "lilypichufox@naomie.digital:1.0.0", + "toneFox@naomie.digital:2.1.0", + "@sb-arimil:4.1.0", + "clipwave@clipwave.app:1.1.1", + "clipwave@clipwave.app:1.1.0", + "clipwave@clipwave.app:1.0.0", + "kaspi-parser-pro@extension.local:6.2.0", + "clipwave@clipwave.app:1.1.5", + "clipwave@clipwave.app:1.2.5", + "readnext@antigravity.local:1.7.15", + "readnext@antigravity.local:1.7.17", + "readnext@antigravity.local:1.7.16", + "readnext@antigravity.local:1.7.13", + "readnext@antigravity.local:1.7.12", + "readnext@antigravity.local:1.7.11", + "readnext@antigravity.local:1.7.14", + "readnext@antigravity.local:1.7.8", + "readnext@antigravity.local:1.7.9", + "readnext@antigravity.local:1.7.10", + "readnext@antigravity.local:1.7.6", + "readnext@antigravity.local:1.7.5", + "readnext@antigravity.local:1.7.7", + "readnext@antigravity.local:1.7.18" + ] + }, + "schema": 1767098180657, + "key_format": "{guid}:{version}", + "stash_time": 1767119705269, + "id": "ec71171f-6cff-4ccc-ba85-c7f268e17603", + "last_modified": 1767119780403 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "webpage-tracker@freem.com:3.1", + "{744f07e1-1952-40b4-86a2-4f471d6a8a78}:1.0", + "{db251f59-b6a5-496b-9820-924fad84dede}:1.0", + "{db251f59-b6a5-496b-9820-924fad84dede}:2.0", + "{79cde338-87dd-4e15-b183-6de989a87156}:1.0", + "{79cde338-87dd-4e15-b183-6de989a87156}:2.0", + "{79cde338-87dd-4e15-b183-6de989a87156}:3.0", + "{2f6f28bb-bed1-40b6-8a50-afbcd56bd563}:1.2", + "{9e1e1073-8755-483e-bdaa-1ec2497650d8}:1.0", + "{dc0ebe31-2bad-4d17-9478-0464724d8ad2}:1.3", + "{4d13d126-343f-44a9-8dcf-1bf5218b618a}:1.0.0", + "{4d13d126-343f-44a9-8dcf-1bf5218b618a}:1.1.0", + "261239765@qq.com:1.2", + "{5997e7bd-1940-4058-a5f4-1562afce6354}:0.2.2", + "{436a3e74-c2bf-4fb4-b3ec-75a1cbdd83ae}:2.5", + "{446a3e74-c2bf-4fb4-b3ec-75a1cbdd83ae}:2.5", + "{28e1b605-8596-4dfa-89d5-31352be215c9}:0.4.58.999", + "basquet-catala-stats@sergio.delgado:1.0" + ] + }, + "schema": 1767076592281, + "key_format": "{guid}:{version}", + "stash_time": 1767098105267, + "id": "1e4ab1df-e513-416e-84b7-8a40dd7fd6fe", + "last_modified": 1767098180444 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "tsukihi-fork@lrr:2.0.1", + "tsukihi-fork@lrr:0.0.2", + "tsukihi-fork@lrr:0.0.1", + "drubino@live.com:1.0", + "drubino@live.com:1.1", + "drubino@live.com:1.2", + "{5beb89b8-cd9a-46f8-8a0f-c3a34c5eceb1}:1.0", + "{5beb89b8-cd9a-46f8-8a0f-c3a34c5eceb1}:1.1", + "erpxt-extension@example.com:1.0", + "xifanasdsdsdsgczy@gmail.com:2.6.5", + "youtube-scheduler@yourdomain.com:1.4.5", + "youtube-scheduler@yourdomain.com:1.4.6", + "youtube-scheduler@yourdomain.com:1.5.0" + ] + }, + "schema": 1767054988539, + "key_format": "{guid}:{version}", + "stash_time": 1767076506246, + "id": "3a2f39ca-1851-4379-b7f0-164d585e5b28", + "last_modified": 1767076592048 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "261239765@qq.com:1.0" + ] + }, + "schema": 1767033381093, + "key_format": "{guid}:{version}", + "stash_time": 1767054906274, + "id": "99d8cbd5-ff16-485d-b2cc-165c62fc2595", + "last_modified": 1767054988191 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "webrtc-toggle@example.com:1.0.0", + "omnisync-firefox@croves.me:1.0", + "antitwitter@example.com:1.0", + "antitwitter@example.com:1.1", + "magnolia@12.34:4.2.7.3", + "magnolia@12.34:4.2.7.6", + "ai-code-hint@ramnaresh:1.1.1" + ] + }, + "schema": 1767011790486, + "key_format": "{guid}:{version}", + "stash_time": 1767033305689, + "id": "d8e33cf3-f6f9-4dd9-8997-1b8c38e24c54", + "last_modified": 1767033380950 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "Earn-Knowledge@srutiganti.com:2.0", + "{b50a9e65-6cfb-4fe9-986f-8a16acda8835}:1.1.6", + "{6384c57b-f03b-4de7-b146-d0159cde0ca2}:1.0.0", + "{6384c57b-f03b-4de7-b146-d0159cde0ca2}:1.1.0", + "{6384c57b-f03b-4de7-b146-d0159cde0ca2}:1.2.0", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.11", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.12", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.47", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.45", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.44", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.43", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.42", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.48", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.41", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.61", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.62", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.60", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.59", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.58", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.56", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.55", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.29", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.27", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.26", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.25", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.24", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.23", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.22", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.21", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.20", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.19", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.18", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.17", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.16", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.15", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.14", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.13", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.37", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.31", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.32", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.33", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.34", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.35", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.36", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.38", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.39", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.40", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.49", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.50", + "{20d87fd0-9e40-482f-8081-ce6802d639a8}:1.51", + "s.olegys0801@gmail.com:1.6", + "youtube-loop-toggle@dev.com:1.0", + "seekingalpha-paywall-remover@local.dev:1.12", + "@local:1.0", + "{8f551328-5ae0-4b98-8ab8-aa8c2ff0a35a}:1.0", + "{a55053e7-1f30-4d3e-8343-8ee0826984f6}:1.0", + "{40a56d9e-3b51-47c7-b203-00aedf0ba2b1}:1.0", + "{40a56d9e-3b51-47c7-b203-00aedf0ba2b1}:2.0", + "{69494d0f-bfb6-49bf-b903-29af556c57d6}:1.0", + "{e9c320c6-c109-4794-a626-3fbe2d80d05a}:1.0", + "{0710b24b-8a1b-4f54-b401-801901cae308}:1.0", + "{0710b24b-8a1b-4f54-b401-801901cae308}:1.1", + "{ca7ae057-7afe-4c04-bfa4-3008db0146bb}:1.0" + ] + }, + "schema": 1766990190430, + "key_format": "{guid}:{version}", + "stash_time": 1767011706260, + "id": "a806e2c7-7233-471a-8f89-3622a26ded92", + "last_modified": 1767011790277 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{c4943597-72ed-4b72-b7e8-2dbea0041a9c}:1.0", + "{f8413609-aed7-4746-a105-60fe13974532}:1.0", + "{b6499cce-d849-4421-a34a-7689118d7f09}:1.1", + "{32a6d9ee-aafd-4ed5-a839-c922cd979dd9}:11.1.0", + "rotnot@pupendo.com:0.2.0", + "favory@sp4ce.pw:2.4.6", + "favory@sp4ce.pw:2.4.7", + "{53d5a89a-8680-4c5d-bdb4-397e7192b722}:1.0", + "extensions@deepbrid.com:1.0.1", + "extensions@deepbrid.com:1.1.2", + "extensions@deepbrid.com:1.1.1", + "extensions@deepbrid.com:1.1.0", + "spelling-bee-buddy@example.com:1.3.0", + "meet-reminder@my-local-pc:1.0", + "glocker@glocker.local:1.1", + "glocker@glocker.local:1.0", + "{5dde6c50-6cea-463f-8c5a-3574552631c1}:1.1", + "{5dde6c50-6cea-463f-8c5a-3574552631c1}:1.1.1", + "youtubeRemote@bonehead.org:1.0.0", + "youtubeRemote@bonehead.org:1.0.1", + "{4a154b8d-b5ef-4767-80f7-120f801f718e}:1.0", + "{4a154b8d-b5ef-4767-80f7-120f801f718e}:1.5", + "{4a154b8d-b5ef-4767-80f7-120f801f718e}:2", + "{4a154b8d-b5ef-4767-80f7-120f801f718e}:3", + "{4a154b8d-b5ef-4767-80f7-120f801f718e}:4" + ] + }, + "schema": 1766968591910, + "key_format": "{guid}:{version}", + "stash_time": 1766990106452, + "id": "88d9bff2-ae55-459e-b550-ee93d9d22ba5", + "last_modified": 1766990190274 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "@private-history-cleaner-v4.1:0.2.6", + "berkay8110@gmail.com:2.4.0", + "berkay8110@gmail.com:2.4.1", + "@private-history-cleaner-v4.3:0.1", + "{efe9d9de-5a08-4ef9-b8f5-ecdb2aaa5d37}:1.0" + ] + }, + "schema": 1766946990282, + "key_format": "{guid}:{version}", + "stash_time": 1766968506642, + "id": "ebcd5de2-42ae-4960-aa91-da19bb10e914", + "last_modified": 1766968591689 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{fb277f3c-c0e9-42a9-810e-8537050cb111}:1.0", + "{fb277f3c-c0e9-42a9-810e-8537050cb111}:2.0", + "{acf9490d-97f7-4757-b9a2-bb19d3b916ca}:1.0", + "{acf9490d-97f7-4757-b9a2-bb19d3b916ca}:2.0", + "{f58c3171-a854-4516-b105-8662cb9bf2ab}:1.0", + "{f58c3171-a854-4516-b105-8662cb9bf2ab}:2.0", + "maar-ten@users.noreply.github.com:2.5", + "maar-ten@users.noreply.github.com:3.0", + "maar-ten@users.noreply.github.com:3.1", + "{548f9f3a-550b-4d63-a817-620ecff3c039}:1.2", + "{548f9f3a-550b-4d63-a817-620ecff3c039}:1.3", + "{548f9f3a-550b-4d63-a817-620ecff3c039}:1.4", + "jngkenaoceimiimeokpdbmejeonaaami@chrome-store-foxified--187331066:1.5.0", + "my-ext@example:1.1", + "passei-aki@renanrmx.github.io:2.4.0" + ] + }, + "schema": 1766925389978, + "key_format": "{guid}:{version}", + "stash_time": 1766946906687, + "id": "34efd211-44bb-47a0-8d13-a9c5307db32b", + "last_modified": 1766946990146 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.4.5", + "visited-links-colorizer@ngothang2805.github.io:1.2.6", + "video-preview-hover@trg69:1.0", + "comfyui-bridge@prompt-forge.ai:1.0.0" + ] + }, + "schema": 1766903778689, + "key_format": "{guid}:{version}", + "stash_time": 1766925306711, + "id": "ef1cd1b9-dcfa-4062-aff9-635bda374b54", + "last_modified": 1766925389765 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "article-to-epub@extension:1.0.0", + "favory@sp4ce.pw:2.4.4", + "favory@sp4ce.pw:2.4.3", + "favory@sp4ce.pw:2.4.2" + ] + }, + "schema": 1766882182227, + "key_format": "{guid}:{version}", + "stash_time": 1766903705650, + "id": "0c42868f-235e-4363-9d3a-f0f71d21e18c", + "last_modified": 1766903778554 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "crowbs00xx@gmail.com:1.0", + "browser-companion@encrypta.in:1.1.35", + "{b10fb653-1462-4855-aff0-fd23463e859e}:1.0", + "forecastfox-pirateweather@s3_fix_version:4.18" + ] + }, + "schema": 1766860591879, + "key_format": "{guid}:{version}", + "stash_time": 1766882105809, + "id": "848589a1-34e0-4fcd-ac68-936800b30836", + "last_modified": 1766882182088 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "@private-history-cleaner-v2:0.2.3", + "@private-history-cleaner-v2:0.2.4", + "urgesurf@urgesurf.app:1.0", + "urgesurf@urgesurf.app:1.1", + "urgesurf@urgesurf.app:1.2", + "urgesurf@urgesurf.app:1.3", + "urgesurf@urgesurf.app:1.4", + "urgesurf@urgesurf.app:1.5", + "urgesurf@urgesurf.app:1.6", + "urgesurf@urgesurf.app:1.7", + "urgesurf@urgesurf.app:1.8", + "urgesurf@urgesurf.app:1.9", + "urgesurf@urgesurf.app:2.0", + "urgesurf@urgesurf.app:2.1", + "urgesurf@urgesurf.app:2.2", + "urgesurf@urgesurf.app:2.3", + "urgesurf@urgesurf.app:2.4", + "atomicmail-manager@yourdomain.com:1.0.0", + "dich-truyen-plus2.2@extension:2.2", + "{f321b028-dc68-4800-b646-c5bc43490b09}:1.0", + "{f13fea77-aa6e-4714-abc8-d9f83a758633}:1.0", + "{8875e4fe-93ae-4148-8c2d-db5e8514d4e8}:1.0", + "{8875e4fe-93ae-4148-8c2d-db5e8514d4e8}:1.0.1" + ] + }, + "schema": 1766838980345, + "key_format": "{guid}:{version}", + "stash_time": 1766860506640, + "id": "0843dde4-98c3-4c9e-92cd-f441ba4ebbfc", + "last_modified": 1766860591626 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{30de6d57-c876-427a-bc81-1f0672fb993b}:0.1.0", + "{f89bd7bc-12cf-4f91-b3a9-7db903012ab8}:0.1.0", + "ydiaz@hiredexperts.com:1.0.6", + "gjyyds1@gjcraft.asia:1.0", + "contact@bulenox.codes:4.0", + "contact@bulenox.codes:4.3.3", + "sample-id-12@example.com:1.0" + ] + }, + "schema": 1766817393244, + "key_format": "{guid}:{version}", + "stash_time": 1766838905092, + "id": "c5b0ae85-7b31-4447-adcd-a1f3abd25b8d", + "last_modified": 1766838980092 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.4.1", + "halo-capture-temp@local:0.1.3", + "halo-capture-temp@local:1.0.0", + "halo-capture-temp@local:1.0.1", + "halo-capture-temp@local:1.0.3", + "halo-capture-temp@local:1.0.4", + "halo-capture-temp@local:1.0.5", + "{23628864-5769-435c-942a-4b32bd2bb6b1}:1.0", + "{d877cfa8-f2eb-4709-be10-fdde093c1ed2}:1.0", + "{d877cfa8-f2eb-4709-be10-fdde093c1ed2}:1.1", + "{d877cfa8-f2eb-4709-be10-fdde093c1ed2}:1.2", + "{d0b62351-41d0-43d4-849e-44e7df2cbd5c}:1.0", + "{5a7c48c1-87f8-4f6e-8b1d-ba4a49f66a00}:1.0", + "{5a7c48c1-87f8-4f6e-8b1d-ba4a49f66a00}:1.2", + "{5a7c48c1-87f8-4f6e-8b1d-ba4a49f66a00}:1.8", + "{5459544d-20ec-45dc-b18d-9de031bdc634}:1.0" + ] + }, + "schema": 1766795779096, + "key_format": "{guid}:{version}", + "stash_time": 1766817306449, + "id": "f1c4196c-859d-4f7a-a1ca-e8a4e95c5c0a", + "last_modified": 1766817392899 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{b4166db9-df5e-4847-a437-7d44974bf175}:2.0.0", + "{1a3491eb-d127-4024-9897-754d900ccb83}:4.3", + "{034c67d9-b135-4729-9aea-379b7f691960}:18.51", + "{2c5be051-ab03-437f-9fd1-9ad2a4d7286d}:4.28", + "{3ff9b470-a011-4520-9396-218091733701}:1.13", + "{b04ffe19-e1c8-4e9a-96b6-031febb37eb4}:3.70" + ] + }, + "schema": 1766774180837, + "key_format": "{guid}:{version}", + "stash_time": 1766795705534, + "id": "cf2a5907-3e58-4c5f-a275-3b486e9f6cb1", + "last_modified": 1766795778960 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{f2f88c1c-bc62-4344-b006-a1f996fee295}:1.0", + "auto-pin-media@example.com:1.2" + ] + }, + "schema": 1766752590019, + "key_format": "{guid}:{version}", + "stash_time": 1766774105775, + "id": "ea9333b7-53b0-49e2-85c9-e6e48922b712", + "last_modified": 1766774180491 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{9d88f095-6fdc-4abc-b68f-7d686f81a10d}:1.0", + "miguelaraujo.web@gmail.com:4.0.0" + ] + }, + "schema": 1766730978518, + "key_format": "{guid}:{version}", + "stash_time": 1766752506365, + "id": "db52cbab-3274-49bf-b579-190c78e9216b", + "last_modified": 1766752589897 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{56fd3a70-5331-42ea-92d0-b0505792fc98}:16.40", + "{7e3d2ae8-3470-408d-8e88-4e2459b02618}:7.47", + "calendar-extension@calendrier.com:1.0", + "calendar-extension@calendrier.com:1.1", + "favory@sp4ce.pw:2.3.7", + "favory@sp4ce.pw:2.4.0", + "serverid-switcher@example.com:3.0", + "baaaamynew--timer@example.com:1.2", + "serverid-switcher@example.com:1.0", + "support@tabcolorizer.io:1.6.15", + "support@tabcolorizer.io:1.6.5" + ] + }, + "schema": 1766709390047, + "key_format": "{guid}:{version}", + "stash_time": 1766730905203, + "id": "f6f40230-e21c-4e68-9257-7c318d34631c", + "last_modified": 1766730978380 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "publishing-date-finder@lazarcovs.com:1.0.0", + "publishing-date-finder@lazarcovs.com:1.1.0", + "publishing-date-finder@lazarcovs.com:1.2.4", + "publishing-date-finder@lazarcovs.com:1.2.5", + "{6eefc195-70ee-4475-867b-4d02cf7355f8}:1.0", + "{6eefc195-70ee-4475-867b-4d02cf7355f8}:1.1" + ] + }, + "schema": 1766687791326, + "key_format": "{guid}:{version}", + "stash_time": 1766709306497, + "id": "64ce261c-4951-43e4-b546-1fadcb200469", + "last_modified": 1766709389828 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{3cba1448-1c5f-4e5a-8548-53417f91f2ea}:6.44", + "scloud-filter@local:1.0", + "temp-mail@temp-mail.ai:1.2.0", + "adblock@example.org:1.5" + ] + }, + "schema": 1766666188844, + "key_format": "{guid}:{version}", + "stash_time": 1766687706579, + "id": "6e380cd4-ca9e-4667-928c-4a8c6fa3a012", + "last_modified": 1766687791051 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "amynew--timer@example.com:1.2", + "aamynew--timer@example.com:1.2", + "500newtabs@olibu.com:0.0.3", + "500newtabs@olibu.com:0.0.2", + "500newtabs@olibu.com:0.0.1", + "sip-custom-startpage@serph4:1.1.5", + "teste@teste.com:1.1" + ] + }, + "schema": 1766644580135, + "key_format": "{guid}:{version}", + "stash_time": 1766666106462, + "id": "12c29433-d555-4254-88f9-e90fd80f648e", + "last_modified": 1766666188685 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "xhamster-history-auto-delete@example.com:3.1", + "@auto-close-no-data:1.0", + "dns@wesinator.github.io:0.8", + "timer-link-opener@example.com:1.2", + "{c004c39a-e41d-4227-819e-bedf1cef0418}:1.0", + "my-new-timer@example.com:1.2", + "mynew-timer@example.com:1.2", + "@new-tab-page.overcq.com:3.3.1.1", + "mynew--timer@example.com:1.2" + ] + }, + "schema": 1766622979489, + "key_format": "{guid}:{version}", + "stash_time": 1766644505553, + "id": "3c2d51e8-ba74-41d9-a8c6-cf7ce29b00d0", + "last_modified": 1766644579982 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "optiload@yourdomain.com:1.0.1", + "optiload@yourdomain.com:1.0.0" + ] + }, + "schema": 1766601378045, + "key_format": "{guid}:{version}", + "stash_time": 1766622905568, + "id": "69ffb1ac-796e-416d-b727-c6affb9b8ac3", + "last_modified": 1766622979143 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "siftahladim-ilan-ekle@ferhatcengz:1.0.0", + "siftahladim-ilan-ekle@ferhatcengz:1.0.1", + "kill_ouo_timer@null:1.0", + "kill_ouo_timer@null:2.0", + "owhefoiubewcawoiefji@null:2.0", + "{6cb58878-cac7-44c7-af55-1bdb809f81a7}:1.0", + "technopat-ai-asistan@atakan.karakus:3.2.0" + ] + }, + "schema": 1766579791568, + "key_format": "{guid}:{version}", + "stash_time": 1766601305163, + "id": "8759d982-b9dd-400e-a079-6d71c2449d06", + "last_modified": 1766601377812 + }, + { + "stash": { + "blocked": [ + "{32a6d9ee-aafd-4ed5-a839-c922cd979de9}:11.1.0", + "{907ed6bd-dc2b-47d1-9ff2-5d639221847b}:1.0", + "{907ed6bd-dc2b-47d1-9ff2-5d639221847b}:1.1.2", + "{fb0d5e86-9815-4951-82f8-a2d6a3e5ed55}:1.0", + "{fb0d5e86-9815-4951-82f8-a2d6a3e5ed55}:1.2", + "{e310c726-71fb-4ee1-83e6-5886c94c9803}:1.0.0", + "{e310c726-71fb-4ee1-83e6-5886c94c9803}:2.2" + ], + "unblocked": [], + "softblocked": [ + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:6.1", + "{a60a9c39-104b-451b-a651-e36c6d247726}:1.6.24", + "{a60a9c39-104b-451b-a651-e36c6d247726}:1.6.64", + "{a60a9c39-104b-451b-a651-e36c6d247726}:1.6.65", + "{a60a9c39-104b-451b-a651-e36c6d247726}:1.6.96", + "{a60a9c39-104b-451b-a651-e36c6d247726}:1.6.97", + "precheck-widget@local:1.0", + "precheck-widget-gn@local:1.0", + "{693c5f72-d733-4fb9-aaf8-7fac32ef5a6d}:1.10", + "{693c5f72-d733-4fb9-aaf8-7fac32ef5a6d}:1.11", + "{693c5f72-d733-4fb9-aaf8-7fac32ef5a6d}:1.20", + "{290aab70-dc03-44dc-89e4-d0a38d428647}:1.0", + "{6c86738b-4526-4bb9-8211-dce8debc72f6}:1.11", + "{d29d24b7-cfac-4fd3-bf72-45d3f6fd41d0}:1.0", + "{a9c44835-5ec2-42db-b52b-cc72d3f94d4e}:1.0", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.0", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.1", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.2", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.21", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.22", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.23", + "{4e716b30-856f-470b-bd9a-36bc6d92f024}:1.24", + "civitai-comfyui-downloader@example.com:1.0.0" + ] + }, + "schema": 1766558178769, + "key_format": "{guid}:{version}", + "stash_time": 1766579706380, + "id": "5553f7c7-7fe9-4ce1-9b23-ff5403b9f271", + "last_modified": 1766579791409 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{87462328-db80-4257-9c9e-f46da8b4090d}:1.0", + "{87462328-db80-4257-9c9e-f46da8b4090d}:2.0", + "{87462328-db80-4257-9c9e-f46da8b4090d}:3.0", + "{a122f33f-4f3f-49cb-9c56-2b0f9d5f2296}:1.0", + "emmy-tools@amazon.com:1.2.2", + "{595e4c4d-fd50-4a98-bf00-580b3d1b03d3}:1.3", + "{1357aced-aced-5312-1729-34125ace4ace}:1.0.2" + ] + }, + "schema": 1766536589536, + "key_format": "{guid}:{version}", + "stash_time": 1766558105144, + "id": "52cb98bc-cd06-40cf-a87c-840acfadbb3d", + "last_modified": 1766558178531 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "vpn@protons.ch:1.2.9", + "auto_valvur24@example.com:1.0", + "{f822aaf8-16e7-4cb8-8161-c04c4994401a}:1.0", + "sc-speed-pro@max.dev:1.7.9" + ] + }, + "schema": 1766514984205, + "key_format": "{guid}:{version}", + "stash_time": 1766536506430, + "id": "14b7888f-1b3d-42de-bb3a-b84504b77aa7", + "last_modified": 1766536589360 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "hub-manager@amazon.com:6.6", + "hub-manager@amazon.com:1.0", + "harmony-vrid@yourcompany.com:4.1", + "harmony-vrid@yourcompany.com:4.2", + "harmony-vrid@yourcompany.com:4.3", + "harmony-vrid@yourcompany.com:4.4", + "harmony-vrid@yourcompany.com:4.5", + "harmony-vrid@yourcompany.com:4.6", + "harmony-vrid@yourcompany.com:4.7", + "harmony-vrid@yourcompany.com:4.8", + "harmony-vrid@yourcompany.com:4.9", + "harmony-vrid@yourcompany.com:5.1", + "harmony-vrid@yourcompany.com:5.2", + "harmony-vrid@yourcompany.com:5.3", + "harmony-vrid@yourcompany.com:5.4", + "harmony-vrid@yourcompany.com:5.5", + "harmony-vrid@yourcompany.com:5.6", + "harmony-vrid@yourcompany.com:5.7", + "harmony-vrid@yourcompany.com:5.8", + "harmony-vrid@yourcompany.com:5.9", + "harmony-vrid@yourcompany.com:6.0", + "harmony-vrid@yourcompany.com:6.1", + "harmony-vrid@yourcompany.com:6.2", + "harmony-vrid@yourcompany.com:6.3", + "harmony-vrid@yourcompany.com:6.4", + "hub-manager@amazon.com:1.1", + "{d08bd171-a3f5-450f-9382-2d8eda13dc2a}:1.0", + "{d08bd171-a3f5-450f-9382-2d8eda13dc2a}:2.0", + "t6b@de:2.0", + "{7fb4f23f-d3ad-4286-a13b-fb08c87937db}:1.0.283", + "bahria-cms-attendance-tracker@your-name.org:1.0.0", + "v4-contacts@vdm-vsg.de:1.0.0" + ] + }, + "schema": 1766493379301, + "key_format": "{guid}:{version}", + "stash_time": 1766514906131, + "id": "630c5b5d-7cc5-4f95-88a3-c3cb5bdd0a76", + "last_modified": 1766514984043 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "@head-on-dev-browser-extension:0.0.1", + "@grip.security.beta1:0.0.3", + "@grip.security.beta1:0.0.2", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:5.6", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:6.0", + "{d390843c-69cf-4196-9875-4b51c2b80934}:1.1", + "{d390843c-69cf-4196-9875-4b51c2b80934}:1.2" + ] + }, + "schema": 1766471780805, + "key_format": "{guid}:{version}", + "stash_time": 1766493305415, + "id": "c84a3992-a5b6-4688-a86f-e6e2aebf0501", + "last_modified": 1766493379033 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "recording-extensions@skyatt.net_beta1:1.0", + "recording-extensions@skyatt.net_beta1:1.0beta1", + "recording-extensions@skyatt.net_beta1:1.1", + "recording-extensions@skyatt.net_beta1:1.0.0.2", + "skyatt-recording-extensions-beta@skyatt.net:1.0.3", + "skyatt-recording-extensions-beta@skyatt.net:1.0.4", + "hogehoge@fugafuga99.com:1.0beta1", + "hogehoge@fugafuga99.com:1.0beta2", + "hogehoge@fugafuga99.com:1.0", + "hogehoge@fugafuga99.com:0.1", + "hogehoge@fugafuga99.com:1.0BETAA1", + "hogehoge@fugafuga99.com:1.3", + "hogehoge@fugafuga99.com:1.4", + "youtube-volume-toggle@local:1.7", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.1.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.2.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.2.1", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.3.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.4.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.5.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.6.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.7.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.8.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.8.5", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.8.6", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.9.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.9.2", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.10.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.10.1", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.11.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.11.5", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.11.6", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.12.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.13.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.14.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.14.1", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.14.2", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.14.3", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.15.0", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.15.1", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.15.2", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.15.3", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.15.4", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.15.5", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:1.16.6", + "{4b726fbc-aba9-4fa7-97fd-a42c2511ddf7}:2.1.1", + "identra-guard@identra.ai:1.0.40" + ] + }, + "schema": 1766450189818, + "key_format": "{guid}:{version}", + "stash_time": 1766471705064, + "id": "db57fcca-976d-4aa3-afa8-144247255698", + "last_modified": 1766471780533 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "github-notify@example.com:1.0", + "olih@live.at:1.0", + "favory@sp4ce.pw:2.3.6", + "{6ce7aa95-13f5-455a-b779-b0c16ace2750}:1.70", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.3", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.4", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.5", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.6", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.7", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.8", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.9", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.10", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.11", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.12", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.13", + "{804165e5-f1ae-45c7-a974-e00772c866e6}:1.14", + "{6ce7aa95-13f5-455a-b779-b0c16ace2750}:1.71", + "eleven-audio-amplifier@your-email.com:1.0.0", + "imagus-reborn@extension-id.com:2025.12.21" + ] + }, + "schema": 1766428589924, + "key_format": "{guid}:{version}", + "stash_time": 1766450106383, + "id": "610ced53-29c7-40aa-98e8-1c79a9047d31", + "last_modified": 1766450189508 + }, + { + "stash": { + "blocked": [ + "slush.addon@outlook.com:2.1.4", + "slush-panel2@slush.dev:2.1.4" + ], + "unblocked": [], + "softblocked": [ + "pilpropj-firefox@orange.com:2.5", + "crystal-report-printer@myk-the-one.local:1.4.2", + "securesafe-pass@dswiss.com:1.0.3", + "bookmark-sr@razvan:1", + "bookmark-sr@razvan:2", + "favory@sp4ce.pw:2.3.5", + "{95939547-ac97-4441-9c0e-d89616635758}:1.0", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.0", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.1", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.2", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.3", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.4", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.5", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.6", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.7", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.8", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.9", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.10", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.11", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.12", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.13", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.14", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.15", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.16", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.17", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.18", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.19", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.20", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.21", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.22", + "OutlookWebAppDarkTheme@WolfDev.com:1.0.23", + "{3be3c089-1c4f-4bc5-bf55-33d41d96f87d}:1.0", + "{3be3c089-1c4f-4bc5-bf55-33d41d96f87d}:1.1" + ] + }, + "schema": 1766406989510, + "key_format": "{guid}:{version}", + "stash_time": 1766428506282, + "id": "71e3d61e-a2f6-4c57-a034-a77b4f6e9d42", + "last_modified": 1766428589765 + }, + { + "stash": { + "blocked": [ + "{f58688c8-d4f2-470c-bceb-c07ab8d905aa}:1.0.0", + "{f58688c8-d4f2-470c-bceb-c07ab8d905aa}:1.2", + "{a1ac25bb-4182-4a19-a246-22939cd93544}:1.0.0", + "{a1ac25bb-4182-4a19-a246-22939cd93544}:1.3", + "{0abb2d5b-3b27-4822-b0de-b391b6ce3d88}:1.0.0", + "{b6420498-ee08-40eb-ad3b-00fc65d5ca48}:1.0.0", + "{54e18476-9014-4e93-9ea5-4a9c7703fb9a}:1.0.0", + "{2da69b3f-585b-4857-99bd-bae7c180d20d}:1.0.0", + "{0d338994-4e31-4df8-b71f-084aae9147e2}:1.0.0", + "{d67b5afd-3600-4834-9f1e-6c4fe72aa03c}:1.0.0" + ], + "unblocked": [], + "softblocked": [ + "test824u73@example.com:8.2.4", + "test824u72@example.com:8.2.4", + "test824u71@example.com:8.2.4", + "maystor@perjika.com:1.0", + "maystor@perjika.com:1.0.2", + "alphapai-extension@rabyte.cn:1.0.2", + "yromeqwkaqfsd@gmail.com:1.0", + "yromkaq@mail.ru:1.0" + ] + }, + "schema": 1766385393627, + "key_format": "{guid}:{version}", + "stash_time": 1766406906673, + "id": "56c94e5b-5b7a-4212-8f85-37991906e233", + "last_modified": 1766406989276 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{6606cc58-1cb6-4c1f-ad1c-528286e1dcfc}:0.1.0", + "{85111c37-311f-4ea7-81fb-8e97ded12922}:1.0", + "{8d18c107-4ec5-4654-bf5c-69421129ffdd}:1.0", + "{8d18c107-4ec5-4654-bf5c-69421129ffdd}:2.0", + "{e7d53e90-d239-4bff-bd39-58ab3f9dd133}:1.0", + "{c7ea14c4-21fe-4175-b83a-bea02f241e0c}:1.0", + "{74f5b41a-fb33-46ce-a23d-f2dc9237f9a2}:1.0", + "{ee4e7769-121a-4cbb-af26-5a04bfa829fa}:1.0", + "{42516e2c-0be4-4882-be3d-e069624fa4ed}:1.0", + "{6921dfab-4306-4685-9f7e-4b28cc2afee4}:1.0", + "{64d53a22-91d3-480f-9a9f-8f5971fb38d5}:1.0", + "{689509d4-9dca-4e76-808f-c83449d2a454}:1.0", + "{8ae38448-6888-43c7-992e-c053ddd8ab74}:1.0", + "{05516d00-24f0-435b-8776-86a27491f810}:1.0", + "{5024a39f-9cff-4a3e-8c90-a8651e9462df}:1.0", + "{6a41deb3-a249-427c-ab4f-2e1bbd199e07}:1.0", + "{80048720-8bd4-46ec-b43d-7b7a0b7e93f2}:1.0", + "{6d1f40d9-719c-4c75-a6da-ab0f1df96032}:1.0" + ] + }, + "schema": 1766363779049, + "key_format": "{guid}:{version}", + "stash_time": 1766385306306, + "id": "b93e90b4-0fe4-491b-a0b3-19e0d5500307", + "last_modified": 1766385393336 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.3.3", + "Soluna@Sytonic.com:1.2", + "Soluna@Sytonic.com:1.2.1", + "{7f3b9e7a-9c4d-4a4c-b6c3-6f1b8e0a2d91}:10.0.271.2", + "favory@sp4ce.pw:2.3.4", + "{dfb78fb6-b53a-4747-9f0f-8588869c8b3c}:1.0" + ] + }, + "schema": 1766342182478, + "key_format": "{guid}:{version}", + "stash_time": 1766363705409, + "id": "921decc2-76c7-48f0-ae1a-f1794451b73e", + "last_modified": 1766363778756 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "iva21-base@joyariart.com:1.0.3", + "iva21-base@joyariart.com:1.0.2", + "{621a0509-fbae-4277-98fb-c7985cc2d8f3}:1.0", + "{560e10f3-948b-46e9-88ab-43608634b727}:1.0", + "{96969e57-8c60-4cfd-a64d-54eeea73fdf9}:1.0", + "drag_to_privew@uxer:0.0.71", + "aura@sagarsirikonda:1.0.0", + "drag_to_privew@uxer:0.0.72" + ] + }, + "schema": 1766320579650, + "key_format": "{guid}:{version}", + "stash_time": 1766342106172, + "id": "fc6106ac-0044-4d40-a805-d92263126412", + "last_modified": 1766342182200 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{ed4257b8-84b3-466c-8005-af0024949cef}:0.1.29", + "{617192a5-56a6-467e-9d75-89341210d398}:1.7.8", + "searchng@shion-ng.addon:1.0", + "searchng@shion-ng.addon:1.0.1", + "pl-en@magnus:1.0.2", + "pl-en@magnus:1.1.0", + "pl-en@magnus:1.1.1", + "pl-en@magnus:1.2.1", + "pl-en@magnus:1.2.2", + "pl-en@magnus:1.2.3", + "pl-en@magnus:1.2.4", + "pl-en@magnus:1.2.5", + "{d78bb7d2-345b-4b3e-8d30-80e6361f89d0}:1.0", + "{25fedb69-b4ac-4e5c-895d-bbfc08972afa}:1.0", + "{21691324-6e9d-4a96-91d9-6f819323cd2a}:1.0", + "{b315d16a-346a-416d-a639-3bdca9396eca}:1.0", + "{dca5e6da-bed3-4405-ac61-985854837a64}:1.0", + "{dca5e6da-bed3-4405-ac61-985854837a64}:2.0", + "{dca5e6da-bed3-4405-ac61-985854837a64}:3.0", + "{dca5e6da-bed3-4405-ac61-985854837a64}:3.14" + ] + }, + "schema": 1766298977234, + "key_format": "{guid}:{version}", + "stash_time": 1766320505609, + "id": "89c70984-0069-4e96-bf57-5fa7375a1e89", + "last_modified": 1766320579391 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.3.1", + "{36e8d5c0-9e4d-45d3-b535-388cee166a29}:1.0.0", + "favory@sp4ce.pw:2.3.2", + "{cdbecd81-1ea3-4a20-bfa4-d047ab3b3d3f}:1.0", + "lavaglowdrift@example.com:1.0", + "frostcrystalveins@example.com:1.0", + "systems_at_finall_work_v4@ata.local:23.0.0", + "auroraribboncurve@example.com:1.0", + "@start-gg-conflict-finder:1.0", + "{389c1550-ed09-4a36-ab56-64e1c3a1463a}:1.0" + ] + }, + "schema": 1766277378752, + "key_format": "{guid}:{version}", + "stash_time": 1766298905579, + "id": "a545bf53-3284-46fb-b825-e3061651b177", + "last_modified": 1766298976969 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{549f5231-d65d-4f36-bffb-b0549f157844}:1.0", + "matryona-adblock@firefox:1.11", + "{7c7f6dea-3957-4bb9-9eec-2ef2b9e5bcec}:1.6.44", + "{7c7f6dea-3957-4bb9-9eec-2ef2b9e5bcec}:1.6.43", + "{7c7f6dea-3957-4bb9-9eec-2ef2b9e5bcec}:1.6.45", + "{7c7f6dea-3957-4bb9-9eec-2ef2b9e5bcec}:1.6.46", + "{e70111b3-b362-47a7-bbdc-a6fb7249d47a}:3.12.1", + "{ed3d93b0-16a0-4524-9d67-d6875d7c6f49}:1.13", + "{ed3d93b0-16a0-4524-9d67-d6875d7c6f49}:1.14", + "{b6bb262b-1049-47a6-a86f-5919dabd8952}:1.0.0", + "favory@sp4ce.pw:2.3.0", + "KunaRefresh@bulaxy.dev:1.0.0", + "KunaRefresh@bulaxy.dev:1.0.1", + "KunaRefresh@bulaxy.dev:1.0.2", + "KunaRefresh@bulaxy.dev:1.1.0", + "OnlyTalkToKuna@bulaxy.dev:0.0.0", + "StickWithKuna@bulaxy.dev:1.0.0", + "StickWithKuna@bulaxy.dev:1.0.1", + "StickWithKuna@bulaxy.dev:1.1.0", + "StickWithKuna@bulaxy.dev:1.2.0", + "StickWithKuna@bulaxy.dev:1.3.0", + "StickWithKuna@bulaxy.dev:1.3.1", + "StickWithKuna@bulaxy.dev:1.4.0", + "StickWithKuna@bulaxy.dev:1.4.1" + ] + }, + "schema": 1766255778925, + "key_format": "{guid}:{version}", + "stash_time": 1766277305290, + "id": "ca949806-73e9-4e92-a088-3c2becb889d1", + "last_modified": 1766277378445 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{1e95ff7a-6043-48c3-bbc8-d5d931cd6671}:1.0", + "vot@firefox.extension:1.10.4", + "vot@firefox.extension:1.0.0", + "vot@firefox.extension:1.10.5", + "vot@meowrch:1.10.5", + "{b5a87e37-4945-481b-a19d-699de2814c10}:1.0.0", + "{0db676d9-e605-4e44-a50c-c9ce776442b6}:1.0.0", + "{4c4ab394-93cb-4713-9d31-90296fbea90d}:1.0", + "{246d16d4-69c8-419e-8da0-db0c922865db}:1.0", + "{b7fcd6a7-fb12-40da-a931-7ae811d3ccbb}:1.0.0", + "{b7fcd6a7-fb12-40da-a931-7ae811d3ccbb}:1.2", + "{b7fcd6a7-fb12-40da-a931-7ae811d3ccbb}:2.2", + "{38bb2a1d-e3df-4200-8f42-2a1a812988db}:1.0.0", + "{277de77e-a9ba-448a-9d2d-6a7a7985e44c}:1.0.0", + "{277de77e-a9ba-448a-9d2d-6a7a7985e44c}:1.1.2" + ] + }, + "schema": 1766234179516, + "key_format": "{guid}:{version}", + "stash_time": 1766255704981, + "id": "b2216402-2cf8-447d-b1d1-ea50ce052408", + "last_modified": 1766255778662 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "kinozalhelper@elektrikis.id.lv:3.5.0", + "kinozalhelper@elektrikis.id.lv:3.5.1", + "kinozalhelper@elektrikis.id.lv:3.6.0", + "kinozalhelper@elektrikis.id.lv:3.6.1", + "kinozalhelper@elektrikis.id.lv:3.6.2", + "kinozalhelper@elektrikis.id.lv:3.6.3", + "kinozalhelper@elektrikis.id.lv:3.7.0", + "kinozalhelper@elektrikis.id.lv:3.7.1", + "manwinwin-terminate@example.com:1.0", + "iva21-base@joyariart.com:1.0.7", + "iva21-base@joyariart.com:1.0.4.1", + "iva21-base@joyariart.com:1.0.8", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.1", + "InviTube@Indogermane:1.3", + "YouPiped@Indogermane:1.8", + "YouTubeTVPS5@corkgp.app:1.1.0", + "YouTubeTVPS5@corkgp.app:1.2.0" + ] + }, + "schema": 1766212582336, + "key_format": "{guid}:{version}", + "stash_time": 1766234105439, + "id": "349e52e3-613d-40e3-8152-d9edf67cfa56", + "last_modified": 1766234179270 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{35bbaed5-70a5-4105-8f58-142061160a6a}:5.0", + "{066b9ca2-4203-4719-88d2-250f9eecb0be}:1.0" + ] + }, + "schema": 1766190991156, + "key_format": "{guid}:{version}", + "stash_time": 1766212505681, + "id": "35fbda33-5c03-4327-a54c-64ee8eb6f9f6", + "last_modified": 1766212582094 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "songsterr-downloader@ertagh.de:1.0.0", + "favory@sp4ce.pw:2.2.6", + "@remove-canvas-ks:1.0", + "@remove-canvas-ks:1.1", + "{dbc85bef-12a2-4224-a971-2ddc279e660b}:2.3.1", + "{dbc85bef-12a2-4224-a971-2ddc279e660b}:2.3.2", + "aileihjgpakhkhedejpkpamnhpbnjhoj@chrome-store-foxified-unsigned:2.3", + "vimium-dev@ryi:2.3.1", + "{d7742d87-e61d-4b78-b8a1-b469842139ff}:0.0.1", + "favory@sp4ce.pw:2.2.7", + "favory@sp4ce.pw:2.2.8", + "@KISKO-KB:1.0.0", + "favory@sp4ce.pw:2.2.9" + ] + }, + "schema": 1766169388427, + "key_format": "{guid}:{version}", + "stash_time": 1766190906886, + "id": "f9c3e5e8-99dd-4bf1-83d3-faf74d5464b9", + "last_modified": 1766190991006 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{17e88b83-99ed-49ee-9395-945821ce2cda}:1.12.20265.1", + "{17e56df6-3f52-4fba-85df-3953aa715c10}:1.11.3.11", + "{17e56df6-3f52-4fba-85df-3953aa715c10}:1.12.20265.1", + "{e0c04942-b9d5-4619-a0a8-19f1eed0907a}:1.11.3.11", + "{e0c04942-b9d5-4619-a0a8-19f1eed0907a}:1.12.20265.1", + "{c466efb2-3aae-4b8d-ba13-ff210dab4bf7}:1.11.3.11", + "{c466efb2-3aae-4b8d-ba13-ff210dab4bf7}:1.12.20265.1", + "webrootsecure@webroot.com:1.10.1.24", + "webrootsecure@webroot.com:1.10.2.2", + "webrootsecure@webroot.com:1.10.2.3", + "@z-lib.fm:1.4.1", + "devilgreenday17@gmail:1.0.0", + "{c5ee159a-1900-446f-b695-83e4bc00dce0}:1.1.0", + "nudge-security-extension-internal@nudge.security:0.10.72", + "gitlab-enhancer@sp-enreach.com:1.0", + "{92f62dfb-de63-4737-820d-e92d4364a13b}:1.0", + "{92f62dfb-de63-4737-820d-e92d4364a13b}:1.2", + "{d0cf9c1d-30b2-415f-847c-d560297eea2a}:1.0", + "{22919b8a-3e6e-4529-aa25-8f7665bc0d6c}:1.0", + "valamovieez-to-pulsedl@example.com:1.0", + "truth-hounds@local:0.2.12" + ] + }, + "schema": 1766147789701, + "key_format": "{guid}:{version}", + "stash_time": 1766169305932, + "id": "b4432f41-cf0f-4f3f-b591-36bfc680639c", + "last_modified": 1766169388177 + }, + { + "stash": { + "blocked": [ + "plugin-extension2@local.dev:1.5" + ], + "unblocked": [], + "softblocked": [ + "mark-e@mehrwerk.de:1.1", + "mark-e@mehrwerk.de:1.2", + "{729fbf26-0950-435f-9285-4b731bc3e8a0}:1.5.5", + "{729fbf26-0950-435f-9285-4b731bc3e8a0}:1.5.4", + "{729fbf26-0950-435f-9285-4b731bc3e8a0}:1.5.3", + "{729fbf26-0950-435f-9285-4b731bc3e8a0}:1.5.1", + "{504b1cd7-ff02-4c9a-9f0c-41da3aa62110}:1.0", + "{33087e30-34a9-47f3-b4bd-70e30995f569}:1.0", + "truth-hounds@local:0.1.1", + "chaja@alex.dev:0.2.0", + "{04f8a6b0-e077-4707-bc5e-32d0861d3dec}:1.0", + "navigation-profiles@vaskveider.mozilla.org:1.4.270" + ] + }, + "schema": 1766126183295, + "key_format": "{guid}:{version}", + "stash_time": 1766147706083, + "id": "5677fff9-9c7f-4d08-b089-48c713e9783c", + "last_modified": 1766147789350 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "mosa.allbedre0@gmail.com:1.4", + "{a027b524-0f1b-48c5-a5a2-3ea1f65a00d9}:1.0" + ] + }, + "schema": 1766104581307, + "key_format": "{guid}:{version}", + "stash_time": 1766126105865, + "id": "819b49b2-46d3-4ea4-866b-966c721626b8", + "last_modified": 1766126183013 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "speed-dial@talentsphere.ca:1.1.2", + "{a9f1c735-1b2c-47dc-adbb-cc5b26e2dd56}:1.0", + "{1603a80e-3de9-4cee-81ba-c56a7659cabd}:0.1", + "{1603a80e-3de9-4cee-81ba-c56a7659cabd}:0.2", + "{1603a80e-3de9-4cee-81ba-c56a7659cabd}:0.3", + "{5d94c772-d5d8-4be4-bc67-706b68d3701a}:1.0", + "{f0176302-dda2-4bb6-8e8d-07639efacab8}:1.0", + "mosa.allbedre8@gmail.com:1.0", + "mosa.allbedre8@gmail.com:1.1", + "mosa.allbedre8@gmail.com:1.2", + "{6a38c16d-37e7-4dad-a403-a638c3a8d7c6}:1.0", + "{ef70ee06-81b8-4503-87e8-e7299d0c2f13}:1.0", + "{de8247a6-6ab2-47a6-864e-19132385c2e5}:1.0", + "{347f719e-1414-43ef-abb5-07e68502f92a}:1.0", + "firefox-extension@melchio:1.0.2", + "focus-mode@personal.extension:1.2.0", + "{72debdf6-7bd4-4ce0-93d0-e9e607dad2ab}:1.0" + ] + }, + "schema": 1766082980445, + "key_format": "{guid}:{version}", + "stash_time": 1766104505307, + "id": "3a243730-51f4-4f7f-8569-24025bed93bf", + "last_modified": 1766104581173 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:2.2.3", + "favory@sp4ce.pw:2.2.4", + "favory@sp4ce.pw:2.2.5", + "ydiaz@hiredexperts.com:1.0.3", + "ydiaz@hiredexperts.com:1.0.4", + "ydiaz@hiredexperts.com:1.0.5", + "{20be77a2-7ab4-4f3b-9611-96f05a926be0}:0.6.5", + "pilpropj-firefox@orange.com:2.3", + "{8b81a2a2-bb2f-4974-8d79-ab3d1420660e}:1.0", + "{8b81a2a2-bb2f-4974-8d79-ab3d1420660e}:2.0", + "{41cef68a-4fbc-4577-aadc-f3fbafabcd50}:1.0", + "jccocffecajimkdjgfpjhlpiimcnadhb@chrome-store-foxified-1313464560:3.2", + "lichess-advanced-search@local:0.1.0", + "package-tracker@firefox-extension:1.0", + "{b84a0fc3-7ef1-40f2-9853-3158bed3e7ce}:1.9.4" + ] + }, + "schema": 1766061390927, + "key_format": "{guid}:{version}", + "stash_time": 1766082905445, + "id": "1061a3c6-24aa-4565-88f8-858026d4c145", + "last_modified": 1766082980025 + }, + { + "stash": { + "blocked": [ + "{dd489b5c-1f9e-4bf4-80af-77857e2739f4}:1.1", + "{dd489b5c-1f9e-4bf4-80af-77857e2739f4}:1.2" + ], + "unblocked": [], + "softblocked": [ + "mohalata-capture@mohalata.app:0.0.4", + "{19321c4f-a39e-4578-b7a8-5093355ab3a1}:1.0.10", + "{dd3db273-9825-4419-b6ff-8380e1081867}:1.0.4", + "{89eb8a21-6311-4e15-a388-fef93fa61f66}:1.0.1", + "{95ccf8ff-7b52-49b6-9319-cbca4bcc7677}:1.0.0", + "{c6cec315-7273-46a0-830a-cb369ce2b535}:1.0.0", + "asic-extractor@clearbyte.au:1.4", + "asic-extractor@clearbyte.au:1.5", + "asic-extractor@clearbyte.au:1.6", + "reloadtabs@example.com:8.1", + "reloadtabs@example.com:7.5", + "reloadtabs@example.com:7.3", + "reloadtabs@example.com:7.1", + "skyblind@lukesteuber.com:1.0.0", + "skyblind@lukesteuber.com:1.1.0", + "skywire-dm@lukesteuber.com:1.0.0", + "skywire@lukesteuber.com:1.0.0", + "skygram@lukesteuber.com:1.0.0", + "skygram@lukesteuber.com:1.0.1", + "blueblindfold@lukesteuber.com:1.0.0", + "blueblindfold@lukesteuber.com:1.0.1", + "bluewall@lukesteuber.com:1.1.0", + "bluedreams@lukesteuber.com:1.0.0", + "asic-extractor@clearbyte.au:1.7", + "asic-extractor@clearbyte.au:1.8" + ] + }, + "schema": 1766039781109, + "key_format": "{guid}:{version}", + "stash_time": 1766061306291, + "id": "28d6edaf-0b0d-4e78-87b3-c1c4da374b62", + "last_modified": 1766061390701 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "webaiassistant@users.noreply.github.com:1.5", + "{2791ccd5-c212-4565-aa93-efa127365f84}:1.0.0", + "asic-extractor@clearbyte.au:1.1", + "asic-extractor@clearbyte.au:1.2", + "asic-extractor@clearbyte.au:1.3", + "webaiassistant@users.noreply.github.com:1.5.1", + "{5439daba-3e1c-4ccb-9fd7-57dc20f1fc7e}:1.0", + "webaiassistant@users.noreply.github.com:1.5.5", + "jcpqdstAfroSAfroMonitorIA@AfroMonitorIA.com:1.0", + "jcpqdstAfroSAfroMonitorIA@AfroMonitorIA.com:1.1", + "jcpqdstAfroSAfroMonitorIA@AfroMonitorIA.com:1.2" + ] + }, + "schema": 1766018188832, + "key_format": "{guid}:{version}", + "stash_time": 1766039705433, + "id": "df2647e1-aa08-48af-9893-0b5d2846826c", + "last_modified": 1766039780882 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{7dea0b1f-5b18-46c0-8510-449ef2408014}:1.0", + "jafar@internal:2.1", + "{cfea195b-209b-428b-a5d6-78cdf3907166}:0.2", + "{cfea195b-209b-428b-a5d6-78cdf3907166}:0.21", + "{cfea195b-209b-428b-a5d6-78cdf3907166}:0.3", + "{cfea195b-209b-428b-a5d6-78cdf3907166}:0.31", + "{b33eb753-c9d4-4798-b185-f573ecdd41ef}:1.0.0", + "{b33eb753-c9d4-4798-b185-f573ecdd41ef}:1.0.1", + "FireFox-Extension-v2@melchio:1.0.0" + ] + }, + "schema": 1765996579978, + "key_format": "{guid}:{version}", + "stash_time": 1766018106187, + "id": "3e34c6e1-be6a-4929-8c01-e8a6e42c5e86", + "last_modified": 1766018188571 + }, + { + "stash": { + "blocked": [ + "{4bff6036-064e-4903-bcfc-5ef4001f4cae}:2.1", + "{4bff6036-064e-4903-bcfc-5ef4001f4cae}:2.1.2", + "{7cbc8d8a-4631-4ac7-b349-31b7d1a46d18}:1.0", + "{7cbc8d8a-4631-4ac7-b349-31b7d1a46d18}:372.6", + "{30fce3ea-7aad-494f-b0a8-24b7cf5fea2f}:1.0.2", + "{30fce3ea-7aad-494f-b0a8-24b7cf5fea2f}:1.0.3", + "{bde58d6c-fe1a-5571-7776-6c4582ecc73c}:1.2.0", + "{bde58d6c-fe1a-5571-7776-6c4582ecc73c}:1.2.1", + "{bde58d6c-fe1a-5571-7776-6c4582ecc73c}:1.2.2", + "{bde58d6c-fe1a-5571-7776-6c4582ecc73c}:2.1.0", + "{856e3dc3-7911-45bd-838d-7b7b02449a86}:1.9.0", + "{d2559494-8f82-b831-acf4-f5c4ce8b6175}:3.0.1", + "{9156f4b4-1ff8-3b8f-4cff-03b1a8a1813c}:4.0.4", + "d2b881eb-97d3-47f8-8860-67dc3ce8abc8@similarsites:7.3.11", + "{4e3cb439-fb10-404b-b702-9d5043dea95d}:5.0" + ], + "unblocked": [], + "softblocked": [ + "{d2a5b9f1-3c6d-4a7f-a2b3-1234567890ab}:1.0.0.0", + "{8f56577a-bcb5-42d1-9ce6-1171c076efab}:0.0.1", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.0.3", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.0.4", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.0.5", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.0.6", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.1.0", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.1.2", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.1.3", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.1.5", + "{ed067b0b-e64b-4398-a45d-d58f1f30544a}:2.1.6", + "boostbuddy-ext@boostbuddy.io:2.0.0", + "boostbuddy-ext@boostbuddy.io:2.0.1", + "baccounts@boostbuddy.io:2.0.0", + "{fb1cbcc0-e0d3-46f8-a8ef-6bb190405c9b}:1.0", + "{0cd06369-c5ed-4245-8334-7a118d1d13da}:1.0", + "{0cd06369-c5ed-4245-8334-7a118d1d13da}:1.5", + "{0cd06369-c5ed-4245-8334-7a118d1d13da}:2.0", + "{0cd06369-c5ed-4245-8334-7a118d1d13da}:2.1", + "{0cd06369-c5ed-4245-8334-7a118d1d13da}:2.2", + "html-to-figma@grazy.extension:1.0.0", + "privacyredirect-custom@32bitclone:1.0.0", + "privacyredirect-custom@32bitclone:1.0.1", + "privacyredirect-custom@32bitclone:1.0.2", + "shortkeys-custom@32bitclone:0.9.1", + "shortkeys-custom@32bitclone:1.0.0", + "{a467949a-c604-4720-94e8-76d5c8f2d4bd}:1.0", + "surfingkeys-custom@32bitclone:0.9.0", + "surfingkeys-custom@32bitclone:1.0.0", + "surfingkeys-custom@32bitclone:1.0.1", + "surfingkeys-custom@32bitclone:1.0.2", + "surfingkeys-custom@32bitclone:1.0.3", + "surfingkeys-custom@32bitclone:1.0.4", + "surfingkeys-custom@32bitclone:1.0.5", + "surfingkeys-custom@32bitclone:1.0.6", + "surfingkeys-custom@32bitclone:1.0.7", + "surfingkeys-custom@32bitclone:1.0.8", + "surfingkeys-custom@32bitclone:1.0.9", + "surfingkeys-custom@32bitclone:1.1.0", + "surfingkeys-custom@surrogatesoul:1.0.0", + "privacyredirect-custom@surrogatesoul:1.0.0", + "shortkeys-custom@surrogatesoul:1.0.0", + "tiled-tab-groups-custom@32bitclone:0.9.0", + "tiled-tab-groups-custom@32bitclone:1.0.0", + "tiled-tab-groups-custom@32bitclone:1.0.1", + "tiled-tab-groups-custom@32bitclone:1.0.2", + "tiled-tab-groups-custom@32bitclone:1.0.3", + "tiled-tab-groups-custom@32bitclone:1.0.4", + "{6a47ea4e-638e-4dba-b7c8-b0f1dac822d0}:0.0.2", + "{82bee129-4b77-436b-bc44-41d1111047ac}:1.0.4", + "{82bee129-4b77-436b-bc44-41d1111047ac}:1.0.5", + "{82bee129-4b77-436b-bc44-41d1111047ac}:1.0.5.1", + "{0f0f343a-f745-4aec-bc04-632d07becfb4}:1.1", + "{0f0f343a-f745-4aec-bc04-632d07becfb4}:1.2", + "{30421dd1-c526-4a36-815b-2c3b80ceb703}:1.0.2" + ] + }, + "schema": 1765974981641, + "key_format": "{guid}:{version}", + "stash_time": 1765996505368, + "id": "d656d1b8-7b1e-436b-8d66-bd0d323f8256", + "last_modified": 1765996579768 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:1.8.1", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:1.8.2", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.9", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.8", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.6", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.5", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.4", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.3", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.2", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.1", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.7.0", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.6.1", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.5.2", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.5.1", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.5.0", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.4.10", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.4.9", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.4.8", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.4.7", + "{6bc05d80-9050-4bbd-a3bd-8619d4a88073}:2.4.6", + "{0c6444e1-dc7b-499c-b4f8-dae57465b479}:1.0.0", + "{0c6444e1-dc7b-499c-b4f8-dae57465b479}:1.0.1", + "pip-calculator@lucasnguyen.me:1.0.0", + "{bd70af86-c758-4f60-bd7e-ec6612174533}:1.0", + "{bd70af86-c758-4f60-bd7e-ec6612174533}:1.1", + "{bd70af86-c758-4f60-bd7e-ec6612174533}:1.3.0", + "haex-pass@haex.space:1.0.1", + "mym-chat-live@mymchat.fr:2.0.10", + "mym-chat-live@mymchat.fr:2.0.9", + "mym-chat-live@mymchat.fr:2.0.8", + "mym-chat-live@mymchat.fr:2.0.7", + "magnolia@12.34:4.2.6.7", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:5.5" + ] + }, + "schema": 1765953378177, + "key_format": "{guid}:{version}", + "stash_time": 1765974905643, + "id": "aab09ffb-34f2-476e-afd9-092be46c86dc", + "last_modified": 1765974981439 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{d5100f02-fb2f-4963-8e07-c5cad942326d}:1.0", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.4", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.5", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.6", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.8", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.9", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.10", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.11", + "{5c5225cf-1961-49a9-ba23-60b7b95d61b2}:1.0.12", + "{0ba936c7-60d9-4e3a-abb4-d562304a1307}:1.0", + "iflyrpa@iflytek.com:5.2.4", + "iflyrpa@iflytek.com:5.2.2", + "iflyrpa@iflytek.com:5.0.9" + ] + }, + "schema": 1765931784777, + "key_format": "{guid}:{version}", + "stash_time": 1765953305429, + "id": "5d6b72fe-cdfc-43c6-bd14-77300c32edf2", + "last_modified": 1765953377989 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{d2a5b9f1-3c6d-4a7f-a2b3-1234567890ab}:1.0.0.1", + "{9da119b5-8085-4ebb-9849-d731e08363eb}:1.0.0", + "auto-form@kairiroberto:1.0" + ] + }, + "schema": 1765910180435, + "key_format": "{guid}:{version}", + "stash_time": 1765931705517, + "id": "1b288a41-a330-42b1-8d05-ed5a1ee2b51c", + "last_modified": 1765931784574 + }, + { + "stash": { + "blocked": [ + "{6314cc5e-e93f-42a1-9dfc-d1438dc407e7}:1.0.2", + "{71df3f84-4375-4aa5-b52c-f1071ccb7c62}:0.6", + "{71df3f84-4375-4aa5-b52c-f1071ccb7c62}:0.61", + "{ada9cd32-a359-425e-89c1-518acf0c4aa5}:3.6.1", + "{85909e1e-9afc-4750-9298-9e5a838957c5}:0.0.9", + "{85909e1e-9afc-4750-9298-9e5a838957c5}:0.0.10", + "{85909e1e-9afc-4750-9298-9e5a838957c5}:0.0.11", + "{75909e1e-9afc-4750-9298-9e5a838957c5}:0.0.9", + "1b6cb78e-5660-4b7a-a106-25c5140dc7d1@gbbdtranslator:3.0.0", + "c988684d-3bd2-4a00-9e53-0a18eacabf6c@libretv:1.1.3", + "c988684d-3bd2-4a00-9e53-0a18eacabf6c@libretv:1.1.4", + "c988684d-3bd2-4a00-9e53-0a18eacabf6c@libretv:1.1.6", + "3b5bd17c-08c4-4efe-9af9-e66db42a55a9@mp3downloader:2.2.0", + "3b5bd17c-08c4-4efe-9af9-e66db42a55a9@mp3downloader:2.2.1", + "{7e6d3c2b-70e8-4a26-9a0f-cbdaddd395be}:3.1", + "{7e6d3c2b-70e8-4a26-9a0f-cbdaddd395be}:3.1.1", + "{7e6d3c2b-70e8-4a26-9a0f-cbdaddd395be}:3.1.2", + "{7e6d3c2b-70e8-4a26-9a0f-cbdaddd395be}:3.2.1", + "{41b57c90-eb8b-7c9b-4510-f6cf48908edb}:4.9.1", + "{41b57c90-eb8b-7c9b-4510-f6cf48908edb}:4.9.2", + "{41b57c90-eb8b-7c9b-4510-f6cf48908edb}:4.9.2.1", + "{41b57c90-eb8b-7c9b-4510-f6cf48908edb}:4.9.3" + ], + "unblocked": [], + "softblocked": [ + "lifetrack_addon@gmail.com:1.4.3.0", + "lifetrack_addon@gmail.com:1.4.3.1", + "lifetrack_addon@gmail.com:1.4.3.2", + "lifetrack_addon@gmail.com:1.4.3.3", + "lifetrack_addon@gmail.com:1.4.3.4", + "lifetrack_addon@gmail.com:1.4.3.5", + "lifetrack_addon@gmail.com:1.5", + "lifetrack_addon@gmail.com:1.5.1", + "lifetrack_addon@gmail.com:1.5.2", + "lifetrack_addon@gmail.com:1.5.4", + "lifetrack_addon@gmail.com:1.5.5", + "lifetrack_addon@gmail.com:1.5.6", + "session-switcher@agungkristd.site:1.0.0", + "session-switcher@agungkristd.site:1.0.2", + "session-switcher@agungkristd.site:1.0.3", + "msg_extname@converted-extension.org:6.7.5", + "tab-highlighter-test@nihaltp:1.0.0", + "{12bddf29-549f-4512-b349-9c8566d69fb0}:1.7.1", + "{a7a1025a-63d4-4db3-8b6c-82e51c2abc9d}:1.0", + "favory@sp4ce.pw:2.2.2", + "CSSInjectorPriv@chway:0.0.2", + "CSSInjectorPriv@chway:0.0.3", + "CSSInjectorPriv@chway:0.2.0", + "CSSInjectorPriv@chway:0.2.1", + "CSSInjectorPriv@chway:0.2.2", + "CSSInjectorPriv@chway:0.2.3" + ] + }, + "schema": 1765888591607, + "key_format": "{guid}:{version}", + "stash_time": 1765910105378, + "id": "b0c6e8bb-fcfc-448e-825c-20c67ca27aff", + "last_modified": 1765910180307 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{f5c862c6-dda7-4c4c-82a0-607eb0ffd8f2}:4.6.11600", + "{f5c862c6-dda7-4c4c-82a0-607eb0ffd8f2}:4.6.116555", + "{fac8ef5d-2cd3-4fb0-8c82-4f99fad4f3dd}:1.5.1", + "{fac8ef5d-2cd3-4fb0-8c82-4f99fad4f3dd}:1.5.2" + ] + }, + "schema": 1765866982735, + "key_format": "{guid}:{version}", + "stash_time": 1765888506355, + "id": "22fdbd3c-e408-4779-8ee8-0d9669d94128", + "last_modified": 1765888591488 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "biochem-solver@davidzaev.com:5.1", + "safeswapffox-v9-3.2@addon:9.3.2", + "safeswapffox-v9-3.1@addon:9.3.1", + "safeswapffox.pro.v9_2_1@local:9.2.1", + "safeswapffox.win.v9_1_4.unique@local:9.1.4", + "safeswapffox.win.v9_1_2@local:9.1.2", + "safeswapffox-v9-3-0@addon:9.3.0", + "safeswapffox-v9-2-9@addon:9.2.9", + "safeswapffox-v9-2-7@addon:9.2.7", + "safeswapffox-v9-2-7@addon:9.2.8", + "safeswapffox-v9-2-6@addon:9.2.6", + "safeswapffox-v9-2-5@addon:9.2.5", + "safeswapffox.pro.v9_2_4.distinct@local:9.2.4", + "safeswapffox.pro.v9_2_2.distinct@local:9.2.2", + "safeswapffox.pro.v9_2_2.distinct@local:9.2.3", + "safeswapffox-new@addon:1.0.0", + "safeswapffox.android@local:9.1.1", + "safeswapffox@local:2.0.1", + "safeswapffox@local:7.1.0", + "safeswapffox@local:7.2.0", + "safeswapffox@local:7.2.1", + "safeswapffox@local:7.2.2", + "safeswapffox@local:7.3.3", + "safeswapffox@local:8.0.0", + "safeswapffox@local:9.0.0", + "safeswapffox@local:9.0.1", + "safeswapffox@local:9.0.2", + "safeswapffox@local:9.0.3", + "session-switcher@example.com:1.0.0", + "ayupage999@gmail.com:1.2.1" + ] + }, + "schema": 1765845382297, + "key_format": "{guid}:{version}", + "stash_time": 1765866905410, + "id": "6bad33e8-1ad9-434e-8b3d-3ff1e32d6c93", + "last_modified": 1765866982511 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{06b8bd78-956e-4f8d-b6f5-c6a02cb4cd87}:241029.5", + "{8d9870ae-e80e-44f3-b61d-ddd2231d682d}:241029.5", + "{f5c862c6-dda7-4c4c-82a0-607eb0ffd8f2}:4.6.11655511", + "@minimalist-dev-build:5.7" + ] + }, + "schema": 1765823777966, + "key_format": "{guid}:{version}", + "stash_time": 1765845305766, + "id": "3c7597a6-7fdb-44d0-8d10-1f8a83ea6cca", + "last_modified": 1765845382096 + }, + { + "stash": { + "blocked": [ + "plus.calculator@basji.com:1.0", + "plus.calculator@laski.com:1.0", + "plus.calculator@montraski.com:1.0", + "plus.calculator@macrmamaloskiisli.com:1.0", + "plus.calculator@macrmaskiisli.com:1.0", + "plus.calculator@macrisli.com:1.0", + "plugincalc-extension@local.dev:1.0.0", + "gif-player-controller@example.com:1.2.0", + "apmosys-aiops@example.com:1.0" + ], + "unblocked": [], + "softblocked": [ + "hive@local:1.1", + "easyvista-hv-tools-ENF0@luma.local:1.0.0", + "easyvista-hv-tools@luma.local:1.3.3", + "logzio-validator@form3.tech:1.0.10.0", + "logzio-validator@form3.tech:1.0.11.0", + "logzio-validator@form3.tech:1.0.12.0", + "logzio-validator@form3.tech:1.0.13.0", + "logzio-validator@form3.tech:1.1.1.0", + "logzio-validator@form3.tech:1.1.0.0", + "logzio-validator@form3.tech:1.1.2.0", + "fs-validator@form3.tech:1.4.1.0", + "fs-validator@form3.tech:1.5.0.0", + "fs-validator@form3.tech:1.4.2.0", + "fs-validator@form3.tech:1.5.1.0", + "fs-validator@form3.tech:1.5.2.0", + "logzio-validator@form3.tech:1.2.0.0", + "fs-validator@form3.tech:1.6.0.0", + "page-capture@sanctum.local:1.0.0", + "{20dda4c4-1e95-4c8c-aa73-3960db2aeef9}:1.2", + "{20dda4c4-1e95-4c8c-aa73-3960db2aeef9}:1.3resigned1", + "info-extract@adminui:1.0.0", + "{6a2c5da5-4215-4a83-b952-af827c4ee780}:0.9.4", + "page-capture@sanctum.local:1.2.0", + "page-capture@sanctum.local:1.3.0", + "page-capture@sanctum.local:1.4.0", + "page-capture@sanctum.local:1.4.1", + "easyvista-hv-tools@rxtx.pt:1.0.0", + "easyvista-hv-tools@rxtx.pt:1.0.1" + ] + }, + "schema": 1765802179124, + "key_format": "{guid}:{version}", + "stash_time": 1765823705005, + "id": "9968db44-83f7-4e75-b94d-59fc95ad29f4", + "last_modified": 1765823777757 + }, + { + "stash": { + "blocked": [ + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.0.1", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.0.2", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.0.3", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.0.4", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.0.6", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.1", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.2", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.3", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.5", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.6", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.7", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.8", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.9", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.10", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.11", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.12", + "{66ce400c-0d7b-421e-8402-6eafaf9dc183}:1.1.13", + "trackercrypto@metacrypto:1.0", + "{0da54e54-1740-46a3-b8ae-e8eb9458f202}:1.0", + "{0da54e54-1740-46a3-b8ae-e8eb9458f202}:1.8.1" + ], + "unblocked": [], + "softblocked": [ + "bluewall@lukesteuber.com:1.0.0", + "bluedm@lukesteuber.com:0.2.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.0.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.1.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.2.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.3.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.4.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.5.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.6.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.7.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:1.9.0", + "{bda5752d-3dfc-4f47-8dec-f18d7ffdaeaf}:2.1.0", + "markaz-ertegha@local:1.0", + "cdc@local:1.1", + "copai@inet4.github.com:1.0.1", + "{187755cc-b25a-4fab-9176-f603ed30d4dc}:1.0.0", + "{187755cc-b25a-4fab-9176-f603ed30d4dc}:1.0.1", + "{187755cc-b25a-4fab-9176-f603ed30d4dc}:1.3.3", + "8muses-downloader-ui-fix@yourname.com:1.5.8.1", + "8muses-downloader-ui-fix@yourname.com:1.3", + "8muses-downloader-ui-fix@yourname.com:1.5.6.5", + "8muses-downloader-ui-fix@yourname.com:1.5.8", + "8muses-downloader-ui-fix@yourname.com:1.5.8.2", + "@ice2952095:0.1.0", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:6.21", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.0", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.4", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.5", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.6", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.7", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.7.1", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.7.2", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.8", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.9", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.9.1", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.9.2", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.9.3", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.10.1", + "{a9ec3fbf-a530-42a2-896e-ec3e46220d3e}:7.11.0", + "{c08ab914-f219-4343-9004-b15e42b77fb8}:1.0.2", + "zendesk-tool@cksource.com:1.0.4", + "zendesk-tool@cksource.com:1.0.8", + "zendesk-tool@cksource.com:1.0.9", + "zendesk-tool@cksource.com:1.0.10", + "zendesk-tool@cksource.com:1.2.3", + "zendesk-tool@cksource.com:1.2.4", + "zendesk-tool@cksource.com:1.3.0", + "zendesk-tool@cksource.com:1.3.1", + "zendesk-tool@cksource.com:1.3.2", + "zendesk-tool@cksource.com:1.3.3", + "zendesk-tool@cksource.com:1.6.0", + "zendesk-tool@cksource.com:1.7.0", + "zendesk-tool@cksource.com:2.0.0", + "zendesk-tool@cksource.com:2.0.1", + "zendesk-tool@cksource.com:2.0.2", + "zendesk-tool@cksource.com:2.0.4", + "zendesk-tool@cksource.com:2.0.6", + "hanghub@cksource.com:1.0", + "hanghub@cksource.com:1.0.1", + "hanghub@cksource.com:1.0.2", + "hanghub@cksource.com:1.0.3", + "hanghub@cksource.com:1.0.4", + "hanghub@cksource.com:1.0.5", + "gritab@wkolbe.de:1.1", + "browser-window-monitor@your-local-dev:1.0" + ] + }, + "schema": 1765780590603, + "key_format": "{guid}:{version}", + "stash_time": 1765802104883, + "id": "7bdb51e6-de14-48f1-a203-bcb578a484e6", + "last_modified": 1765802178929 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:1.2.4", + "favory@sp4ce.pw:2.2.1", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:1.6", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:1.7", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.0", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:3.3", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:3.2", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:3.1", + "ultra-audio-upsampler@firefox:1.0.2", + "bookmark-rag@example.com:1.0.0", + "{faee9a9d-7fd4-4af1-b353-58d210e7ba66}:0.0.1", + "previews@mz.com:15.2" + ] + }, + "schema": 1765758993362, + "key_format": "{guid}:{version}", + "stash_time": 1765780506388, + "id": "f4e204a9-c682-4dda-8439-02be92f7dd8e", + "last_modified": 1765780590414 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "mym-chat-live@mymchat.fr:2.0.6", + "maddenp@colorado.edu:1.0", + "magnolia_limited_permissions@12.34:4.2.6.8", + "{86e7565c-e56f-40ed-9ddd-a36bb042bf14}:1.0.3", + "{86e7565c-e56f-40ed-9ddd-a36bb042bf14}:1.0.2resigned1", + "{86e7565c-e56f-40ed-9ddd-a36bb042bf14}:1.0.1", + "ecourse-expander@bill.gr:1.1", + "aws-favorites-quickbar@example.com:1.0.0", + "{24bf56d4-c5f1-4baf-81de-257ad617223e}:1.0.0", + "{fcc8b070-b4f3-4b8e-b4a8-a0a4abe16afc}:1.0.0", + "{d716c670-9039-492b-bc37-eae5f9e6eab2}:1.0.0", + "{f4481ee6-b221-4b0f-abb1-3c0aed62303f}:1.0", + "{f4481ee6-b221-4b0f-abb1-3c0aed62303f}:1.1", + "{f4481ee6-b221-4b0f-abb1-3c0aed62303f}:1.2", + "{f4481ee6-b221-4b0f-abb1-3c0aed62303f}:1.3" + ] + }, + "schema": 1765737391953, + "key_format": "{guid}:{version}", + "stash_time": 1765758906405, + "id": "5723fc60-b6fd-4195-b556-2a1401ae9842", + "last_modified": 1765758993150 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "bing-youtube-newtab@luckystar-studio.com:1.1.0", + "tab-harvester@extension.local:1.0.0", + "{a3d7d1c3-8072-5c39-962c-9fc6061857b1}:0.0.0", + "{a3d7d1c3-8072-5c39-962c-9fc6061857b1}:0.0.1", + "{a3d7d1c3-8072-5c39-962c-9fc6061857b1}:0.0.5", + "{e63e5605-82c5-437f-928e-3353a06f4dfc}:1.0", + "{9a41ac34-5d6f-4b69-938e-8054e9e0d949}:1.0", + "{781436a8-40d1-4f39-a326-a283ebd7ea4f}:1.0", + "martin.heine89@web.de:1.2" + ] + }, + "schema": 1765715791810, + "key_format": "{guid}:{version}", + "stash_time": 1765737306101, + "id": "d910ffd1-aad5-45c2-ac63-c7df6bb22301", + "last_modified": 1765737391720 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{ed7ba470-8e54-465e-825c-99712043e01c}:1.0.1", + "jid1-tfBgelm3d4bLkQ@jetpack:3.4.1", + "easy-local-storage-manager@nhrdev.com:2.2.0", + "fleckenbases@hhoefling.de:2.0.6", + "8muses-downloader-ui-fix@yourname.com:1.5.7.1", + "8muses-downloader-ui-fix@yourname.com:1.5.7.2", + "{7ed1ec49-7438-4807-a8b9-d799e4c8caa8}:0.3.1", + "bread@kly.life:0.1.28" + ] + }, + "schema": 1765694192919, + "key_format": "{guid}:{version}", + "stash_time": 1765715706552, + "id": "1e73c95d-d185-47fe-9f41-ca32eea7c302", + "last_modified": 1765715791596 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{b046d15c-185f-41c0-9ad2-edc4a2c23bac}:1.34", + "extension@distractshield.com:1.28", + "extension@distractshield.com:1.29.2", + "extension@distractshield.com:1.0", + "extension@distractshield.com:1.21", + "8muses-downloader-ui-fix@yourname.com:1.1", + "mciiogijehkdemklbdcbfkefimifhecn@chrome-store-foxified-1987658502:0.9.3", + "8muses-downloader-ui-fix@yourname.com:1.2", + "8muses-downloader-ui-fix@yourname.com:1.5.1", + "8muses-downloader-ui-fix@yourname.com:1.5", + "8muses-downloader-ui-fix@yourname.com:1.4", + "8muses-downloader-ui-fix@yourname.com:1.5.5", + "8muses-downloader-ui-fix@yourname.com:1.5.4", + "8muses-downloader-ui-fix@yourname.com:1.5.2", + "8muses-downloader-ui-fix@yourname.com:1.5.3", + "hidden-drops@gmail.com:0.1.0", + "kusa.yokoshima4951@outlook.com:0.0.1", + "8muses-downloader-ui-fix@yourname.com:1.5.6", + "8muses-downloader-ui-fix@yourname.com:1.5.6.4", + "8muses-downloader-ui-fix@yourname.com:1.5.6.2", + "8muses-downloader-ui-fix@yourname.com:1.5.6.1", + "8muses-downloader-ui-fix@yourname.com:1.5.7", + "8muses-downloader-ui-fix@yourname.com:1.5.6.3" + ] + }, + "schema": 1765672589916, + "key_format": "{guid}:{version}", + "stash_time": 1765694106546, + "id": "c2c5beb3-9d86-42bc-a5ed-e02e8abf822d", + "last_modified": 1765694192770 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{eb31fc0c-420c-4052-bbcf-bbc4144f1363}:1.3L", + "{9f37c85e-a1ca-4584-8f12-f73ae3c1641e}:1.3A", + "batch-bookmark-updater@example.com:1.0.0", + "wa-incognito@sz.local:2.3.6" + ] + }, + "schema": 1765650991534, + "key_format": "{guid}:{version}", + "stash_time": 1765672506233, + "id": "2235eba8-6c83-4e41-acb2-394948319566", + "last_modified": 1765672589717 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{32aadd9f-ebce-40df-9ab3-09b60781fed0}:4.5.2", + "{32aadd9f-ebce-40df-9ab3-09b60781fed0}:4.6.0", + "{32aadd9f-ebce-40df-9ab3-09b60781fed0}:4.7.0", + "new-source-viewer@example.com:1.0.3", + "{e7b3d39d-7dc4-44e9-9af2-54c0b64f18cc}:1.1", + "{e7b3d39d-7dc4-44e9-9af2-54c0b64f18cc}:1.0", + "redherring@bhmt:0.1.1", + "{167d0734-fd4f-41eb-b930-f2a3bb964959}:1.3", + "{656e63e3-678e-4229-8980-591883a6b3a8}:1.5", + "filejo_fixer_custom@example.com:1.0", + "filejo_fixer_custom@example.com:1.1", + "filejo_fixer_custom@example.com:1.12" + ] + }, + "schema": 1765629390214, + "key_format": "{guid}:{version}", + "stash_time": 1765650906448, + "id": "255ee97b-348b-4b8b-889d-62f9b9753a57", + "last_modified": 1765650991299 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{57d21bc1-8434-5c3c-8cc8-69082edd16d9}:1.0.0", + "{57d21bc1-8434-5c3c-8cc8-69082edd16d9}:0.0.2", + "{57d21bc1-8434-5c3c-8cc8-69082edd16d9}:0.0.3", + "{57d21bc1-8434-5c3c-8cc8-69082edd16d9}:0.0.0", + "youtube-silence-skipper@example.com:1.0", + "@ai-assist:1.1", + "@ai-assist:1.0", + "{c8ccb4ef-a1a2-4948-9aec-fd308ac1e0f6}:1.0", + "{c8ccb4ef-a1a2-4948-9aec-fd308ac1e0f6}:2.0", + "{265738b1-74ab-451c-86e0-922f58f1fd03}:1.0", + "{9fe939e1-0bef-403e-b514-1408103e8e52}:2.0" + ] + }, + "schema": 1765607787572, + "key_format": "{guid}:{version}", + "stash_time": 1765629306399, + "id": "eede8c99-7494-45ae-83bc-201b9deaf1ca", + "last_modified": 1765629390047 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{ce5246ae-cb7a-4303-b12a-c0b52d425ba0}:1.0", + "{5e9903cc-b510-4324-87bb-634b6762d95b}:1.0", + "{5e9903cc-b510-4324-87bb-634b6762d95b}:1.8.1", + "{8c0b10cd-4e3f-4f34-bb12-7fa78c00d2d5}:1.0", + "{20f99a9d-9177-47bf-a22d-24f3c6ee182f}:1.0", + "{3efc41ba-1d13-43c3-83ec-305ad6b8b7f2}:1.0", + "{3efc41ba-1d13-43c3-83ec-305ad6b8b7f2}:1.8.1", + "{5c8f4c68-fbbb-4ea5-99b4-3b86d652b492}:1.0", + "{51e46a91-2799-4455-bdcd-d505bbbe06ae}:1.5.8.2", + "{51e46a91-2799-4455-bdcd-d505bbbe06ae}:1.5.8", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:19.6.6", + "daum-dictionary-search@yourdomain.com:1.0", + "iframe-fullscreen-fit@extension:1.0" + ] + }, + "schema": 1765586190471, + "key_format": "{guid}:{version}", + "stash_time": 1765607706390, + "id": "64c62fb8-b516-4e7c-aeae-88e1c8c1c72c", + "last_modified": 1765607787348 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "youtube-clean-copy@fylasra.com:1.0", + "yonatinator6000@jonathanginzburg.com:1.0", + "ceofood-print@ascensiontech.com:1.1.0", + "yonatinator6007@jonathanginzburg.com:1.0", + "yonatinator6007@jonathanginzburg.com:1.1", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:5.1", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:5", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.9", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.8", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.7", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.6", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.5", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.4", + "{8fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:4.3" + ] + }, + "schema": 1765564588799, + "key_format": "{guid}:{version}", + "stash_time": 1765586106136, + "id": "ac689b5a-ebe4-4a98-b271-926a5de98580", + "last_modified": 1765586190329 + }, + { + "stash": { + "blocked": [ + "madison.page.41@outlook.com:1.0.4", + "imagedownloader@media.tools:1.0.0", + "plugin-extension@local.dev:1.0", + "plugin-extension@local.dev:1.1", + "plugin-extension@local.dev:1.3", + "@fast-safe-search:2.1", + "@fast-safe-search:2.2", + "@fast-safe-search:2.3", + "@fast-safe-search:2.4", + "@quicksafesearch:1.4", + "@quicksafesearch:1.5", + "@quick-safe-search:1.1", + "@quick-safe-search:1.2", + "@quick-safe-search:1.3", + "@quick-safe-search:1.4", + "@quick-safe-search:1.5", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.0", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.1", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.2", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.3", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.4", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.5", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.6", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.7", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.8", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:1.9", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:2.0", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:2.1", + "{7f60e169-99f6-44ea-9b90-2413dd89999a}:2.2", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1.1", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1.2", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1.3", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1.4", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1.8", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:1.9", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:2.0", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:2.1", + "{7f953825-b576-4ec0-8b7a-d8034350f294}:2.2" + ], + "unblocked": [], + "softblocked": [ + "inspectlocker@example.com:2.0.1", + "jedi-browser-extension@picsart.com:1.0.0", + "mym-chat-live@mymchat.fr:2.0.4", + "mym-chat-live@mymchat.fr:2.0.3", + "claude-usage@example.com:1.0", + "hsite3-downloader@arthurvanremoortel.me:1.0.0", + "{188de824-54f1-4be3-b440-3a1e31d264de}:1.0", + "mym-chat-live@mymchat.fr:2.0.5", + "{57d21bc1-8434-5c3c-8cc8-69082edd16d9}:0.0.1", + "moodle-helper@pnzgu.ru:1.0", + "moodle-helperr@pnzgu.ru:1.1", + "better-new-tab@local.addon:1.0", + "better-new-tab@local.addon:1.1", + "better-new-tab@local.addon:1.2", + "better-new-tab@local.addon:1.3", + "better-new-tab@local.addon:1.4", + "better-new-tab@local.addon:1.5", + "better-new-tab@local.addon:1.6", + "{efbcef5b-811e-4558-ba04-944d8bc3a630}:1.991", + "universal-colorscheme@local.addon:1.0" + ] + }, + "schema": 1765542991362, + "key_format": "{guid}:{version}", + "stash_time": 1765564506358, + "id": "33b8074b-2b0f-4d3d-bfc7-10b142e77a05", + "last_modified": 1765564588668 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "hendro13124@gmail.com:1.0", + "hendro13124@gmail.com:1.1", + "new-app-front-vassd@example.com:1.0", + "itop-notification@internal:2.0.0", + "angel.9535@gmail.com:3.0", + "{7405e7bd-cfc6-406a-b491-7be15aa3ac46}:1.0", + "@owo_mail_v1.2:1.2", + "zenmode@woodendoor.website:1.2" + ] + }, + "schema": 1765521390226, + "key_format": "{guid}:{version}", + "stash_time": 1765542906510, + "id": "afe86bdc-4f48-4c48-8cec-d2f606d947ca", + "last_modified": 1765542991227 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "youtube-volume-normalizer-dev@murahito130.com:1.0.0", + "youtube-volume-normalizer-dev@murahito130.co.jp:1.0.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1212", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.2.1212", + "youtube-volume-normalizer-dev@murahito130.co.jp:1.0.2" + ] + }, + "schema": 1765499790221, + "key_format": "{guid}:{version}", + "stash_time": 1765521306349, + "id": "77e618de-7a30-4655-9a97-ba43d6536401", + "last_modified": 1765521390118 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.1", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.2", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.3", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.4", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.5", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.6", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.7", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.8", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.9", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.10", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.11", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.12", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.13", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.14", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.15", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.16", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.0.17", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.1.0", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.1.1", + "{0f86f6d1-089c-4631-a9b4-97d90c462340}:1.1.2", + "{7957f712-f290-4fd2-a921-267d83361cc7}:1.0", + "{347020a8-161c-4b82-9db3-e522a35a7e44}:1.0", + "{3364d3cf-f457-4432-9307-e72b3da6b268}:1.0", + "{9f48d6ea-30c4-4489-aa17-e0d29a6fab92}:1.0", + "{8b8b0427-c16a-41cc-a41c-22619c54b730}:1.0", + "{f50c1e3e-2053-4d44-b937-0e2c9a2f300b}:1.0", + "{4f9405c8-09c2-4e63-aaff-c24a48ecac0e}:1.0", + "{f8c56a0a-89a6-4256-9da9-d92378b4e709}:1.0", + "{84c93644-2e1a-48e2-938e-7b9f50b5ec48}:1.0", + "{e7e63445-513a-428d-bc84-e86687779fce}:1.0", + "{d7d55132-5366-4cdb-9711-c52fc232e5b3}:1.0", + "{3cfe647b-110e-459e-93dc-11e1a21259a2}:1.0", + "youtube-volume-normalizer@example.com:1.0.0", + "youtube-volume-normalizer@example.com:1.1.0" + ] + }, + "schema": 1765478192511, + "key_format": "{guid}:{version}", + "stash_time": 1765499706491, + "id": "8016891d-c6cd-4495-afc4-1b6806153774", + "last_modified": 1765499790100 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "tabvolumecontrol@eth1c.com:1.1", + "lee-su-threads@meetandy.ai:0.4.0", + "lee-su-threads@meetandy.ai:0.3.9", + "lee-su-threads@meetandy.ai:0.3.8", + "{65a50cb9-38f3-468d-8281-23b534da5e88}:1.0", + "{3f1ca6e4-36c2-407a-a065-9b77e95b1606}:1.0.0", + "{1520adf1-7215-4538-acf3-15c87a3327db}:1.0", + "{1520adf1-7215-4538-acf3-15c87a3327db}:2.0", + "{204fc77d-a533-42c5-a432-482e92fe301f}:1.0", + "{204fc77d-a533-42c5-a432-482e92fe301f}:2.0", + "{507c73f6-07b2-4607-88d2-46739ad216e7}:1.31", + "{b046d15c-185f-41c0-9ad2-edc4a2c23baa}:1.31", + "{b046d15c-185f-41c0-9ad2-edc4a2c23baa}:1.30", + "{b046d15c-185f-41c0-9ad2-edc4a2c23baa}:1.35", + "{b046d15c-185f-41c0-9ad2-edc4a2c23bab}:1.34", + "filejo-partner-auto-tool@example.com:1.1", + "filejo-partner-auto-tool@example.com:1.12", + "{5d428d21-58b6-4da8-ab35-b2ca7c72e7f0}:2.0", + "select-all-tabs@example.com:1.0", + "enhancer@goldenfox.com:20.5.2", + "{7a6131f5-8371-4d91-9ebc-d0d20e65335a}:1.0", + "rsc-rce-tool@firefox:1.0.2" + ] + }, + "schema": 1765456591128, + "key_format": "{guid}:{version}", + "stash_time": 1765478106024, + "id": "87ddd3ef-ec28-49b3-be96-fab8693aec28", + "last_modified": 1765478192392 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "lowendtalkplus@example.com:1.0", + "{b0c59a5f-4df5-4a34-8f10-c3a9e611e12d}:1.0.3", + "netflux-modified@yourdomain.com:1.1.0", + "hide-prolific-balance@twoja-domena-email.com:1.0", + "rektcaptcha@venuswoodfolkxet37.com:0.1.0", + "{cbd44b59-dab3-4ce4-bc6a-c6ffbb46b71f}:1.0", + "ultra-audio-upsampler@firefox:1.0.0", + "{ba0134dc-76d5-40c2-8075-8e56ce2b664a}:4.0", + "{6b299c22-9b61-46e2-9337-15a05cd5742c}:1.0", + "{2098785b-9a60-48ca-94a7-fd02dd7f1368}:4.14.0", + "{2098785b-9a60-48ca-94a7-fd02dd7f1368}:4.8.0", + "{2098785b-9a60-48ca-94a7-fd02dd7f1368}:4.7.1", + "{2098785b-9a60-48ca-94a7-fd02dd7f1368}:4.7.0", + "{2098785b-9a60-48ca-94a7-fd02dd7f1368}:4.6.1", + "{50123e42-1e9f-431b-ab5f-d85c88426090}:0.0.0", + "michael@mrbos.nl:1.0", + "tabvolumecontrol@eth1c.com:1.0" + ] + }, + "schema": 1765413391708, + "key_format": "{guid}:{version}", + "stash_time": 1765456506014, + "id": "2a462e6f-7689-499e-82df-31d0fb4f22f1", + "last_modified": 1765456590887 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "yt_music_extractor@example.org:1.0", + "Simple-Volume-Master@local:1.1", + "Simple-Volume-Master@local:1.2", + "media-controller@firefox.example:1.0", + "media-controller@firefox.example:1.1", + "media-controller@firefox.example:1.2", + "media-controller@firefox.example:1.5", + "media-controller@firefox.example:1.6", + "flow-metrics@assecobs.pl:1.1.615", + "flow-metrics@assecobs.pl:1.1.614", + "flow-metrics@assecobs.pl:1.1.582", + "flow-metrics@assecobs.pl:1.0.4", + "flow-metrics@assecobs.pl:1.1.509", + "flow-metrics@assecobs.pl:1.1.510", + "flow-metrics@assecobs.pl:1.1.533", + "flow-metrics@assecobs.pl:1.1.551", + "flow-metrics@assecobs.pl:1.1.552", + "flow-metrics@assecobs.pl:1.1.575", + "flow-metrics@assecobs.pl:1.1.616", + "flow-metrics@assecobs.pl:1.1.619", + "flow-metrics@assecobs.pl:1.1.617", + "@copy-url.sisk.wtf:1.0.2", + "{f8b9e148-048a-4284-899c-34d28f865290}:1.0" + ] + }, + "schema": 1765391789885, + "key_format": "{guid}:{version}", + "stash_time": 1765413306759, + "id": "dadbe368-9de6-4709-835e-0e1e95293854", + "last_modified": 1765413391561 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "AlarmStatusChecker@colbap:1.0.8", + "AlarmStatusChecker@colbap:1.0.7", + "AlarmStatusChecker@colbap:1.0.9", + "AlarmStatusChecker@colbap:1.0.10", + "AlarmStatusChecker@colbap:1.0.11", + "AlarmStatusChecker@colbap:1.0.12", + "link-copier@extension.local:1.0", + "{684aef3c-8ab0-4c0c-8438-c39ecd3d66d6}:1.0", + "{684aef3c-8ab0-4c0c-8438-c39ecd3d66d6}:2.0", + "{684aef3c-8ab0-4c0c-8438-c39ecd3d66d6}:3.0", + "magentastrike@telekom.de:0.0.0", + "{4cc791fe-4250-4890-b1d2-4de7275ffd7e}:0.0", + "{4cc791fe-4250-4890-b1d2-4de7275ffd7e}:0.1", + "keep-video-playing@local:1.0", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:5.0.0", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:19.4.1", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:18.0.1", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:15.6.0.8", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:15.5.6.1", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:15.7.0", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:19.6.5", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.2", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.4", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.9.5", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.5.0", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.9.4", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.9.6", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.9.0", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.9.2", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.7.0", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:11.2.3", + "{199632b5-8dd2-4205-899d-0b1f5ad03239}:15.6.0.7", + "tokens@opolo.nl:1.0.22", + "tokens@opolo.nl:1.0.21", + "tokens@opolo.nl:1.0.18", + "{582874d3-e78b-437f-91ea-3bc443f5fedf}:1.0", + "pushstr@local:0.1.4", + "pushstr@local:0.1.2", + "pushstr@local:0.1.0", + "Simple-Volume-Master@local:1.0", + "{1dc8bfb4-e454-4383-a457-0113beca56ff}:1.0", + "{1dc8bfb4-e454-4383-a457-0113beca56ff}:2.0", + "{89323998-acb5-4624-9f44-ca34df9705ad}:1.0", + "{89323998-acb5-4624-9f44-ca34df9705ad}:2.0", + "{89323998-acb5-4624-9f44-ca34df9705ad}:2.3", + "{89323998-acb5-4624-9f44-ca34df9705ad}:2.1", + "{89323998-acb5-4624-9f44-ca34df9705ad}:2.4", + "{89323998-acb5-4624-9f44-ca34df9705ad}:2.5", + "{89323998-acb5-4624-9f44-ca34df9705ad}:2.6", + "{89323998-acb5-4624-9f44-ca34df9705ad}:3.0", + "{89323998-acb5-4624-9f44-ca34df9705ad}:3.1", + "{89323998-acb5-4624-9f44-ca34df9705ad}:3.2", + "{89323998-acb5-4624-9f44-ca34df9705ad}:3.5" + ] + }, + "schema": 1765370191641, + "key_format": "{guid}:{version}", + "stash_time": 1765391706483, + "id": "5a13bde1-0852-4aa2-8c20-87c5a47c8d95", + "last_modified": 1765391789730 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "wayback-url-finder@local:1.0", + "wayback-url-finder@local:2.0", + "wayback-url-finder@local:2.1", + "{44591551-9a12-412d-a533-7ef6ebf292e0}:1.0", + "yt-private-popup@example.com:0.0.1", + "yt-private-popup@example.com:0.0.2", + "yt-private-popup@example.com:0.0.3", + "yt-private-popup@example.com:0.0.5", + "yt-private-popup@example.com:0.0.6", + "yt-private-popup@example.com:0.0.8", + "yt-private-popup@example.com:0.1.0", + "yt-private-popup@example.com:0.1.1", + "yt-private-popup@example.com:0.1.2", + "yt-private-popup@example.com:0.1.3", + "yt-private-popup@example.com:0.1.4", + "yt-private-popup@example.com:0.1.5", + "yt-private-popup@example.com:0.1.6", + "yt-private-popup@example.com:0.1.7", + "magnolia@12.34:4.2.6.4", + "contact@thomyris.com:1.1.2", + "avatar70t@gmail.com:1.0", + "@intent-gate.tvd:1.1", + "bilibili-vip-helper@firefox.extension:1.0.1", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.6", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.7.1", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.8.2", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.8.4", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.8.5", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.8.6.1", + "{ffde0448-e16f-462b-94d7-3c24a88babc6}:0.8.6.2", + "{c8339dcb-b766-46e4-b780-1cd83eab8898}:3.1" + ] + }, + "schema": 1765348589018, + "key_format": "{guid}:{version}", + "stash_time": 1765370106924, + "id": "60b19e96-e6b1-483d-b6bc-49a3c1fcadc7", + "last_modified": 1765370191442 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{e5621243-3bed-4f23-87ea-0713838a909c}:2.0", + "{28a13fdc-e57a-44be-b396-bd3ea6c716f1}:2.5.5", + "{945073ba-335c-440e-8fbb-d88c98e57803}:0.7.4", + "ai-sidebar@tylxr:1.2", + "youtube-scheduler@yourdomain.com:1.4.1", + "youtube-scheduler@yourdomain.com:1.4.3", + "youtube-scheduler@yourdomain.com:1.4.4", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.8.1209", + "diding00gl3remote@gmail2.com:6.0", + "diding00gl3remote@gmail2.com:1.1" + ] + }, + "schema": 1765326988951, + "key_format": "{guid}:{version}", + "stash_time": 1765348506340, + "id": "c6041867-207e-4519-a399-5ca0f224fc61", + "last_modified": 1765348588797 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "myblocker@example.com:1.0", + "patreon-easy-downloader@patreon.cosmious.com:288", + "sample-extension@jyothsna.dev:1.0", + "filejo-partner-auto-tool@example.com:1.0", + "oracle-jira-tracker@oracle.com:2.0.29", + "painless-leetcode@nikaltipar:1.0" + ] + }, + "schema": 1765305389291, + "key_format": "{guid}:{version}", + "stash_time": 1765326906106, + "id": "f026cde1-b30a-46f0-a30a-b2340c87c408", + "last_modified": 1765326988689 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "container-782-warning@logistik32.local:1.0", + "extension@ciuvo.com:1.6.9", + "extension@ciuvo.com:1.6.10", + "extension@ciuvo.com:1.6.11", + "extension@ciuvo.com:1.6.12", + "extension@ciuvo.com:1.6.13", + "extension@ciuvo.com:2.2.7", + "extension@ciuvo.com:2.2.8", + "extension@ciuvo.com:4.0.1", + "extension@ciuvo.com:4.0.2", + "extension@ciuvo.com:4.0.3", + "extension@ciuvo.com:4.0.4", + "extension@ciuvo.com:4.0.5", + "extension@ciuvo.com:4.0.6", + "extension@ciuvo.com:4.0.7", + "extension@ciuvo.com:4.0.8", + "extension@pricesparrow.com:1.6.10", + "extension@preispilot.com:1.6.10", + "permissions-test-case-2@svincent:1.0.0", + "{6fe29810-7109-4b90-9377-770a3dfc125d}:0.0.1", + "{375a1b95-bbef-4118-9cd8-554687dbfc8b}:0.1", + "theme@autumn-moon-gold.org:1.0" + ] + }, + "schema": 1765283791572, + "key_format": "{guid}:{version}", + "stash_time": 1765305306617, + "id": "0f8a741b-8540-47b9-b922-0d9ae74f2f9c", + "last_modified": 1765305389169 + }, + { + "stash": { + "blocked": [ + "{9ee5b337-ca7d-4726-8fe8-a609e2a434a8}:1.0.0", + "{7015afb7-9d85-47ac-b9fa-5d8d86b24a6c}:1.0.0", + "{93fe52f1-561d-4195-804f-dedc27ab381b}:1.0.0", + "{3a97f476-04e5-4736-9c8d-a7069e66b687}:1.0.0", + "{768c6427-92e8-4ef4-ad8f-6083017268c6}:1.0.0", + "{0ec9f483-25a2-4e94-b699-e2d3826f2cab}:1.0.0", + "{c880e326-7480-46e2-bb34-18874339a4e3}:2.1.0" + ], + "unblocked": [], + "softblocked": [ + "{774584fa-54e2-437a-bf27-104f2bc04807}:1.30", + "{583f88fb-52f8-4680-ba0c-955cc11dbc3e}:1.1", + "contact@kalinotes.com:1.11", + "contact@kalinotes.com:1.12", + "contact@kalinotes.com:1.13", + "flow-optimizer@tools.example.com:1.1.2", + "ytthumbv@example.com:1.1", + "auto-report-facebook@example.com:2.1.0", + "@Confluence-Wiki-Style-Fix:1.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.6.1209", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.5.1209", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.1.1208" + ] + }, + "schema": 1765262189451, + "key_format": "{guid}:{version}", + "stash_time": 1765283706358, + "id": "431e3fa3-b308-4939-9712-9abba4f44036", + "last_modified": 1765283791233 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.3.1209", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1209", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.1.1209", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.2.1209", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.4.1209", + "{50123e42-1e9f-431b-ab5f-d85c88426090}:1.0.0", + "{50123e42-1e9f-431b-ab5f-d85c88426090}:1.0.1", + "{d172002d-f177-4621-8d55-c2da4cf5c50f}:3.1.1", + "{d172002d-f177-4621-8d55-c2da4cf5c50f}:1.1.0" + ] + }, + "schema": 1765240589846, + "key_format": "{guid}:{version}", + "stash_time": 1765262106304, + "id": "b2f41fed-479a-4412-8dd3-398ac85c5553", + "last_modified": 1765262189194 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{86ee9b71-c016-4fa8-84c6-98342c9efa25}:1.0.0", + "{4e644cca-b043-45e9-9f43-fad4a9163544}:1.0", + "{a8b72ea1-68ae-41af-8839-4bb0f642e049}:2.73", + "@reddit-home-button-fix:1.0", + "hotelrunner-pos-ticket@extension.com:1.0.0", + "pushstr@local:0.1.1", + "hide-telegram-search@example.com:1.0", + "linkedin-llm-assistant@ex:0.1.0", + "linkedin-llm-assistant@ex2:0.1.0", + "pushstr@local:0.1.3" + ] + }, + "schema": 1765218990371, + "key_format": "{guid}:{version}", + "stash_time": 1765240506337, + "id": "0f8d370a-407a-4c17-9bef-8f400c5e955e", + "last_modified": 1765240589565 + }, + { + "stash": { + "blocked": [ + "{e25de617-c0a8-415f-8bab-1d6d3f1f6b76}:1.0.0", + "{e25de617-c0a8-415f-8bab-1d6d3f1f6b76}:2.0.0", + "{8b508f0a-b76d-43e9-884a-733a99d9c32d}:1.0.0", + "{e7cd3f6a-3292-4ddd-83c7-b66221edd4b8}:1.0.0" + ], + "unblocked": [], + "softblocked": [ + "{a9b162ba-4d41-4471-bba6-e6ca6bdcdd8a}:1.0.0", + "{580f501c-2a05-4019-b428-995ccc0eb664}:1.0.0", + "{626a0ca0-4605-410e-aa96-ef0bdea7043c}:1.0.0", + "{e557469a-94ed-44f9-8247-25041e684c38}:1.0.0", + "{3f22e878-126e-4670-b806-0e0ce7196752}:1.0.0", + "{ccdc6734-3c96-4ab9-80fc-4fa8bb6428c2}:1.0.0", + "{20cd547c-0cd4-42de-9981-c7ffea1f5aa9}:1.0.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.2.1208", + "synchro-progisap@ococo.ovh:1.1", + "{cd99f1ce-a4e9-4230-989e-621aae75392d}:1.2", + "close-bookmarked-tabs@elisabeth:1.4", + "none@fuckmichnichtab.com:1.0", + "{627686d7-014b-4ba5-a78c-6411ad70fd14}:1.1" + ] + }, + "schema": 1765197396329, + "key_format": "{guid}:{version}", + "stash_time": 1765218906282, + "id": "3ad09eb7-8802-4265-9b0a-4e9d899d60ed", + "last_modified": 1765218990180 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{3e7b22d0-c555-48df-bfab-fcd7d8f2790c}:2.2.4", + "{9dfa9719-65f1-4d78-a2c9-85c7c8b039a3}:2.2.4", + "addon@kleinanzeigen-enhanced.de:0.0.1", + "addon@kleinanzeigen-enhanced.de:0.0.2", + "smartasbrokst@example.com:0.2", + "smartasbrokst@example.com:0.3", + "{774584fa-54e2-437a-bf27-104f2bc04807}:1.29", + "{6478427a-51a4-4b6c-aaef-41ae64b9cc1c}:1.0", + "{0a2c1650-b20c-462b-935d-5c0aaa1f17d0}:1.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.1.1206", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1208", + "{28a13fdc-e57a-44be-b396-bd3ea6c716f1}:2.5.2", + "{28a13fdc-e57a-44be-b396-bd3ea6c716f1}:2.5.4", + "{28a13fdc-e57a-44be-b396-bd3ea6c716f1}:2.5.0" + ] + }, + "schema": 1765175799336, + "key_format": "{guid}:{version}", + "stash_time": 1765197306677, + "id": "ff49078b-075f-4cc6-8300-f0209023c7ee", + "last_modified": 1765197395990 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "shareyt-extension@shareyt.com:0.0.0", + "shareyt-extension@shareyt.com:0.0.2", + "shareyt-extension@shareyt.com:0.0.3", + "firefox@thisisdaan.com:1.0", + "firefox@thisisdaan.com:1.1", + "{28a13fdc-e57a-44be-b396-bd3ea6c716f1}:2.5.1" + ] + }, + "schema": 1765154189262, + "key_format": "{guid}:{version}", + "stash_time": 1765175707050, + "id": "cb290eb1-4652-4422-9788-163b346a4675", + "last_modified": 1765175799062 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{43082f9f-0ef5-4a33-8846-846c3a06eb0c}:1.0", + "{43082f9f-0ef5-4a33-8846-846c3a06eb0c}:1.1", + "{c62b66fe-a3c6-4423-b84d-9b9796a80a15}:1.0", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.0.5.5", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.0.6.6", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.6", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.7", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.8", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.0", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.3", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.9", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:2.0", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:0.3", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:0.4", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:0.5", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.2.2", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.1", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.2", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.3", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.4", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.5", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.6", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.7", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.8", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.3.9", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.4.0", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.1.4.1", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.0", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.1", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.2", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.3", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.4", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.5", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.6", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.7", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.2.2.8", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.3.3.5", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.3.3.8", + "{9a41dca9-1a2e-44f9-9344-9ac479d1f738}:1.5.1a", + "{6fbd309d-cae0-483d-becf-0da3088b2d16}:1.2", + "{6fbd309d-cae0-483d-becf-0da3088b2d16}:1.2.2.0", + "{6fbd309d-cae0-483d-becf-0da3088b2d16}:1.5.1a", + "{6fbd309d-cae0-483d-becf-0da3088b2d16}:1.5.1.1a", + "{6fbd309d-cae0-483d-becf-0da3088b2d16}:1.5.1.2a", + "{f388c187-4d82-4653-bf67-2c22328c1bca}:2.2.4" + ] + }, + "schema": 1765132590414, + "key_format": "{guid}:{version}", + "stash_time": 1765154106165, + "id": "6374ac96-f821-467a-9a06-d2c4d184055f", + "last_modified": 1765154189071 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "favory@sp4ce.pw:1.2.2", + "favory@sp4ce.pw:1.2.3", + "gemini-prekladac-vlastni@localhost:1.0", + "{9fdfdf7d-6502-480c-8047-d01488edf8a0}:1.0.0", + "visilant-beta@xcoder.non-existant-domain.com:1.1.0", + "{e1115949-b669-4cdc-ac1f-326ddb3c7234}:1.0", + "{9088d870-3a33-4c22-8662-36047b66f8bc}:1.0.0", + "{4da1ec58-57c2-4c45-8c39-3b6c027ee944}:1.0.0" + ] + }, + "schema": 1765110987552, + "key_format": "{guid}:{version}", + "stash_time": 1765132506415, + "id": "80bca371-fc6e-4c9b-b880-4853d18d1e7e", + "last_modified": 1765132590103 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{03a90996-1a80-4372-b8c0-6ff5139cad5f}:1.0", + "internetbilltrackerpro@example.com:1.0.0", + "@antibanner:3.5", + "@antibanner:4.0", + "@antibanner:4.0.1", + "randyfrey@tutanota.com:1.0", + "randyfrey@tutanota.com:1.0.4", + "m3u8-sniffer@firefox.addon:1.0.0", + "{d4b72db7-67f0-4e8c-be7d-4ea7038b9687}:1.0", + "filejo_fixer_custom@example.com:1.11", + "mailinfo.ir@gmail.com:1.2", + "{e4e5d47a-49a7-11ee-be56-0242ac120002}:1.0.7", + "{fd3bb385-9595-49a0-9c21-0cf9b9172a4e}:1.0", + "favory@sp4ce.pw:1.1.7", + "favory@sp4ce.pw:1.1.8", + "favory@sp4ce.pw:1.1.9", + "favory@sp4ce.pw:1.2.0", + "favory@sp4ce.pw:1.2.1" + ] + }, + "schema": 1765089389032, + "key_format": "{guid}:{version}", + "stash_time": 1765110906454, + "id": "73f05753-074e-42c8-9a1b-621a501a23c3", + "last_modified": 1765110987297 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "randyfrey@tutanota.com:1.0.1", + "randyfrey@tutanota.com:1.0.3", + "teledown@example.com:1.0", + "ghostrabbit-security@example.com:3.1", + "{b4957d77-f4e9-4052-8f7d-5c79e3256b6a}:1.0", + "{b4957d77-f4e9-4052-8f7d-5c79e3256b6a}:2.0" + ] + }, + "schema": 1765067779534, + "key_format": "{guid}:{version}", + "stash_time": 1765089306158, + "id": "d83dc55e-c998-46fb-8d78-bd2e2a32057e", + "last_modified": 1765089388782 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "tabby@momo.com:0.1", + "stockmanager@gmx.de:2025.1005", + "{a8d3b00b-c781-4009-aa19-9004ff3adfef}:1.3", + "formatter@cryptohelper:1.4", + "{c79821b7-13c3-4ea3-acee-057de14918f4}:1.0", + "{72f793ac-57fb-4cb1-b5f1-287a89dba20c}:7.5", + "{6ab1a57b-2b1c-4c8f-a397-49ce2937d723}:4.62", + "{022879aa-58fb-4579-8b17-4cd2df9dc805}:1.0", + "vod-tracker2@example.com:1.0", + "vod-tracker@example.com:1.0" + ] + }, + "schema": 1765046194777, + "key_format": "{guid}:{version}", + "stash_time": 1765067705046, + "id": "cef139ea-5b61-4b14-a95c-aef219f7a394", + "last_modified": 1765067779343 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.2.1206", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1206", + "{0b6f6349-25fd-4258-be80-696547cd0894}:20251205.1833", + "audio-effects@studio.extension:1.0.0", + "audio-effects@studio.extension:1.0.2", + "audio-effects@studio.extension:1.0.4", + "audio-effects@studio.extension:1.1.2", + "focus-time-blocker-tempo@extension.dev:2.0.0", + "erp-sales-analysis@example.com:1.4.2", + "{11cfd46d-f1de-465f-85ba-a59078bf9869}:1.2.1", + "{11cfd46d-f1de-465f-85ba-a59078bf9869}:1.2" + ] + }, + "schema": 1765024589417, + "key_format": "{guid}:{version}", + "stash_time": 1765046106134, + "id": "bae3a5f7-0267-4341-86f1-dffb9bfe8a4e", + "last_modified": 1765046194594 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{df5aec55-4e29-46ac-a1e1-c247d8bb3e12}:1.0", + "tipple@youngryan.com:0.1", + "re-start-custom@yourdomain.com:1.3.5", + "re-start-custom@yourdomain.com:1.3.6", + "re-start-custom@yourdomain.com:1.3.7", + "re-start-custom@yourdomain.com:1.3.8", + "re-start-custom@yourdomain.com:1.3.9", + "re-start-custom@yourdomain.com:1.3.10", + "SmartClip@Smitis:1.0.1", + "SmartClip@Smitis:1.0.21.0", + "SmartClip@Smitis:1.0.22.4", + "SmartClip@Smitis:1.0.24.0", + "SmartClip@Smitis:1.0.24.1", + "SmartClip@Smitis:1.0.24.2", + "SmartClip@Smitis:1.0.24.3", + "SmartClip@Smitis:1.0.24.5", + "SmartClip@Smitis:1.0.24.6", + "SmartClip@Smitis:1.0.24.7", + "SmartClip@Smitis:1.0.24.9", + "SmartClip@Smitis:1.0.25.0", + "SmartClip@Smitis:1.0.26.0" + ] + }, + "schema": 1765002994320, + "key_format": "{guid}:{version}", + "stash_time": 1765024506422, + "id": "a96f39da-ec9f-4047-9707-e88e0f04c2f6", + "last_modified": 1765024589298 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "zen-chatgpt-launcher@example.com:1.0", + "zen-chatgpt-launcher@example.com:1.1", + "zen-chatgpt-launcher@example.com:1.2", + "szczypi@hotmail.com:3.2", + "purple-monocle-beta@firefoxplugin:0.1.64", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.14.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.19.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.20.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.21.1204", + "mr.iramis@gmail.com:0.1.0" + ] + }, + "schema": 1764981396412, + "key_format": "{guid}:{version}", + "stash_time": 1765002906493, + "id": "a8a006c4-fabf-4100-bacc-d7d21f928351", + "last_modified": 1765002994100 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{2b38446a-b241-49fb-8e9f-04634d22648e}:1.0", + "{03ed4fb9-7f01-4d74-82f3-028f35ba387a}:1.0", + "{5e9633f7-6af1-4213-a708-b73089c94a58}:1.0", + "{f79501c1-65fb-4a8a-adca-3ce247fb2cf7}:1.0", + "{dc481bd6-df4d-4015-9357-14a07f093d24}:1.0", + "{76a937c3-44db-44ae-ad2d-4235d826090a}:1.0", + "{8b33efa8-81c2-4495-b6c2-133194a457d2}:1.0", + "{363573fc-7fc7-4e3e-bff8-0bf179358903}:1.0", + "vl-notifier@local:1.0.1", + "vl-notifier@local:1.0.2", + "vl-notifier@local:1.0.3", + "loginoverlayblocker@dev.fr:1.3", + "loginoverlayblocker@dev.fr:1.4resigned1", + "{e0b3c89e-ac95-4ef7-abad-e00f5aeb1906}:1.0", + "{12345678-1234-1234-432A-123456789aba}:1.0", + "{fec14abb-864c-4d13-9d1d-bce43ec8ca4f}:1.0.0", + "{fec14abb-864c-4d13-9d1d-bce43ec8ca4f}:1.0.1" + ] + }, + "schema": 1764959790917, + "key_format": "{guid}:{version}", + "stash_time": 1764981307235, + "id": "e732864b-5568-4e1c-8979-05329ccd4e26", + "last_modified": 1764981396160 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{1477aae4-5e27-4008-aaf4-243294f7b41d}:1.8.1", + "labs@promptmarketcap.com:1.0.10", + "{5b301532-45b7-4836-955e-560fdaee947b}:1.1", + "{5b301532-45b7-4836-955e-560fdaee947b}:1.2", + "gitlab-tools@lequipe.fr:1.0", + "gitlab-tools@lequipe.fr:1.1", + "gitlab-tools@lequipe.fr:1.2", + "gitlab-tools@lequipe.fr:1.3", + "gitlab-tools@lequipe.fr:1.4", + "gitlab-tools@lequipe.fr:1.5", + "kagi-sidebar@your-unique-name.com:4.0", + "magnoliaAS@12.34:4.2.6.3", + "magnolie@12.34:4.2.6.3", + "password-manager@extension.com:1.0.0", + "{5d77c7a5-ee1b-4068-b15d-e23224533775}:2.3.6" + ] + }, + "schema": 1764938194052, + "key_format": "{guid}:{version}", + "stash_time": 1764959706296, + "id": "64e3afde-4299-44c0-ab73-3c5c0734186c", + "last_modified": 1764959790637 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{f99128d2-2503-405e-a5c8-02d36abf9540}:12.2.2.2", + "{f99128d2-2503-405e-a5c8-02d36abf9540}:12.2.2.1", + "{f99128d2-2503-405e-a5c8-02d36abf9540}:12.2.2", + "{e6fd26f2-5737-4258-a3b5-e7061cb28d0d}:12.1.6", + "@chaturbate:2.41", + "@chaturbate:2.42", + "@chaturbate:2.44", + "sab-ffx-ext@zpowerbot.com:2.2", + "{9bad2d38-013f-47bf-8237-d270e5d41216}:1.0", + "{9bad2d38-013f-47bf-8237-d270e5d41216}:1.1", + "{9bad2d38-013f-47bf-8237-d270e5d41216}:1.2", + "{9bad2d38-013f-47bf-8237-d270e5d41216}:1.3", + "4ChanDL@example.com:1.0", + "4ChanDL@example.com:1.1", + "{39999d6d-30ac-4aa5-9aa8-181bdfecc5f3}:0.1", + "{39999d6d-30ac-4aa5-9aa8-181bdfecc5f3}:0.2", + "{39999d6d-30ac-4aa5-9aa8-181bdfecc5f3}:0.3", + "sysinfo@pivdenny.ua:1.0", + "my-startup-groups@example.com:1.0" + ] + }, + "schema": 1764916591437, + "key_format": "{guid}:{version}", + "stash_time": 1764938106290, + "id": "0ab23f34-ea09-4f1f-b257-462905b31ad3", + "last_modified": 1764938193841 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "sidebrain@example.com:1.0.4", + "ensek-azure-helper@example.com:1.0.0", + "bnjphnhongclfcjiokiffmbhnenjkhea@CWS_CRXInstaller:25.3.1.25", + "@RingCXforHubSpot-.ccope:25.3.1.25", + "test824u8@example.com:8.2.4", + "test824u80@example.com:8.2.4", + "test824u81@example.com:8.2.4", + "test824u82@example.com:8.2.4", + "Android@bravenhancer.com:20.5.0", + "enhancer@goldenfox.com:20.5.0", + "test824u83@example.com:8.2.4", + "btbattery@example.org:1.4.5", + "btbattery@example.org:1.4.7", + "btbattery@example.org:1.5.0", + "btbattery@example.org:1.5.1", + "simpleshot@secondversion.com:1.0", + "simpleshot@secondversion.com:2.0" + ] + }, + "schema": 1764900945824, + "key_format": "{guid}:{version}", + "stash_time": 1764916506221, + "id": "277c5d65-8103-42f6-8620-cd8ce733a37c", + "last_modified": 1764916591246 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "fertilis.ai@gmail.com:0.0.2", + "{9b8f61dc-6d4b-4282-8258-d44e83843b89}:1.0", + "{9602dbf1-2ceb-4c10-91ff-5cf23e97daf3}:1.0", + "{9602dbf1-2ceb-4c10-91ff-5cf23e97daf3}:2.0", + "{9602dbf1-2ceb-4c10-91ff-5cf23e97daf3}:3.0", + "{9602dbf1-2ceb-4c10-91ff-5cf23e97daf3}:4.0", + "{9602dbf1-2ceb-4c10-91ff-5cf23e97daf3}:5.0", + "{9602dbf1-2ceb-4c10-91ff-5cf23e97daf3}:6.0", + "{d085a167-cb13-4ff5-bf3b-7afda63aeefd}:1.0", + "{49f467c2-496d-4415-be8f-65b3a01f34c2}:1.0", + "{3f8daeb6-e40b-4722-a388-2f4d6828b327}:1.0", + "{b208050e-1a94-4589-bc82-4907612bc1a6}:1.0", + "{552fe1a5-f125-4145-9f71-5357d0054751}:1.0", + "{2e616cf5-038c-41de-98c8-8eadd341d125}:1.0", + "{54f9e1cd-f44e-4946-b3ce-f3ce35f2d076}:1.0", + "{2fe8dd57-6044-4384-9a7d-322965cffcb4}:1.0", + "pera-algo-panel@peraalgo.dev:2.0.4", + "tangem-panel@tangem.dev:2.0.4" + ] + }, + "schema": 1764873392441, + "key_format": "{guid}:{version}", + "stash_time": 1764894906394, + "id": "2f1a454a-1324-499d-b555-2c52b533cdf4", + "last_modified": 1764894989455 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "noreply@renowify.lu:2.2", + "youtube-redirect@yourdomain.com:1.4", + "quiz-ai-helper@quiz-ai-helper.local:1.0.0", + "timetolockin@no.ai:1.0", + "{874f309e-fce3-40ba-a4cd-9e3b298d1dd8}:1.0", + "szczypi@hotmail.com:3.1.1", + "szczypi@hotmail.com:3.1", + "szczypi@hotmail.com:3.0.2", + "szczypi@hotmail.com:3.0.1", + "szczypi@hotmail.com:3.0", + "szczypi@hotmail.com:2.1", + "szczypi@hotmail.com:2.0", + "szczypi@hotmail.com:1.0", + "container-proxy-manager@your-domain.tld:1.0.0", + "stoptimers@admetricks.com:1.0", + "stoptimers@admetricks.com:1.1", + "stoptimers@admetricks.com:1.2", + "stoptimers@admetricks.com:1.3", + "ittcatcher@admetricks.com:1.0", + "paywall-remover-9000@sjoertjuh.dev:1.0.0", + "paywall-remover-9000@sjoertjuh.dev:1.0.1", + "calico-cats@extension:1.0.0", + "@ap-history-tracker:1.1", + "@ap-history-tracker:1.0" + ] + }, + "schema": 1764862094519, + "key_format": "{guid}:{version}", + "stash_time": 1764873307396, + "id": "aa62b81f-11da-4731-916e-644cdf296fab", + "last_modified": 1764873392181 + }, + { + "stash": { + "blocked": [ + "{7eef959d-570c-49bf-914d-52e3243165ca}:1.7", + "{1483d2bf-ee90-4dc0-ad65-684689cfcfc7}:4.0.133", + "{1483d2bf-ee90-4dc0-ad65-684689cfcfc7}:4.0.161", + "{ef34f2c9-f773-4beb-96ec-e532fc7f1738}:1.3.5" + ], + "unblocked": [], + "softblocked": [ + "btbattery@example.org:1.4.1", + "btbattery@example.org:1.4.2", + "{51cfd46d-f1de-465f-85ba-a59078bf9869}:2.0", + "{51cfd46d-f1de-465f-85ba-a59078bf9869}:2.1", + "{51cfd46d-f1de-465f-85ba-a59078bf9869}:2.2", + "{51cfd46d-f1de-465f-85ba-a59078bf9869}:2.3", + "{50cfd46d-f1de-465f-85ba-a59078bf9849}:1.1", + "addontest918@testexample.com:0.0.14", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.9.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.10.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.11.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.12.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.13.1204", + "btbattery@example.org:1.4.3", + "{7f3a9c2b-2222-4f1a-b5c6-9e2d1a8f4b70}:1.0.11", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.15.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.17.1204", + "demo_cvs_riverop0@proton.me:1.2", + "Extractor_riverop0@proton.me:1.0", + "container-proxy-fork@local:0.2.0", + "{6ab1a57b-2b1c-4c8f-a397-49ce2937d723}:4.61", + "{764b10ae-d31a-40bd-a60b-14ff854dd3f7}:5.33" + ] + }, + "schema": 1764830190759, + "key_format": "{guid}:{version}", + "stash_time": 1764851705334, + "id": "8623238e-3774-4468-be5e-a52e68828584", + "last_modified": 1764851779519 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "{261a39da-f913-4c73-b956-239559e3ad64}:1.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.1.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.11.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.2.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.3.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.4.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.5.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.6.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.7.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.8.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.9.1203", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.5.1201", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.10.1203", + "firefox-mobile.unopened558@slmail.me:1.0.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.3.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.4.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.5.1204", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.6.1205", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.8.1204", + "{a8554147-3da5-47ac-b78d-dd11afc9b996}:1.0" + ] + }, + "schema": 1764814539298, + "key_format": "{guid}:{version}", + "stash_time": 1764830106314, + "id": "ab4b2bea-a536-4441-b3a3-63125fe88bbf", + "last_modified": 1764830190557 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "asasosuke0920addon@example.com:1.0", + "sosuke0920addon@example.com:1.0.0", + "{5cd8143b-7ea3-4c9b-8dcc-cfd787ce2ee7}:241029.5", + "civitai-private-tool@seunome.com:1.0.7" + ] + }, + "schema": 1764787802547, + "key_format": "{guid}:{version}", + "stash_time": 1764808507282, + "id": "f876a54c-3860-4a94-ae32-06a85471fc19", + "last_modified": 1764808596284 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "plen@magnus:1.0.0", + "81bece25-d8c5-46fd-86b8-01e4b24796f1@swiftsecurity.ai:1.1.8", + "81bece25-d8c5-46fd-86b8-01e4b24796f1@swiftsecurity.ai:1.1.9", + "81bece25-d8c5-46fd-86b8-01e4b24796f1@swiftsecurity.ai:1.2.0", + "81bece25-d8c5-46fd-86b8-01e4b24796f1@swiftsecurity.ai:1.2.1", + "irctc-automation@example.com:1.5", + "upcextractor@local:1.2", + "{7fdea742-9b86-4c1f-a79b-e8b5c6aa21e7}:1.7", + "{8ec7be8e-ab51-4978-aa39-bf7b9459ec19}:3.0", + "{3a52074f-e718-4bc6-8f27-066a75f75982}:1.1", + "conrep-content-capture@conrep.com:1.1", + "conrep-content-capture@conrep.com:1.2", + "amazon-review-helper@example.com:1.1", + "magnolia@12.34:4.2.5.6", + "{52107386-e663-471f-adc1-e9f3a076bc72}:0.1", + "oldtweetdeck@ajim.dev:4.0.6", + "oldtweetdeck@ajim.dev:4.0.7", + "oldtweetdeck@ajim.dev:4.2.0", + "oldtweetdeck@ajim.dev:4.3.1", + "chat-plagin@chat.pokody.ru:1.0.0", + "save-to-notion-n8n@bibz.dev:1.2" + ] + }, + "schema": 1764776147238, + "key_format": "{guid}:{version}", + "stash_time": 1764786906304, + "id": "13a4b60e-f595-44df-ad09-5b0fe040f173", + "last_modified": 1764786991987 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "contact@kalinotes.com:1.10", + "{9d512393-6113-4924-aa31-3c4a3b0b18c3}:1.2", + "{9d512393-6113-4924-aa31-3c4a3b0b18c3}:1.3", + "{9d512393-6113-4924-aa31-3c4a3b0b18c3}:1.4", + "{9d512393-6113-4924-aa31-3c4a3b0b18c3}:1.5", + "{9d512393-6113-4924-aa31-3c4a3b0b18c3}:1.6", + "{9d512393-6113-4924-aa31-3c4a3b0b18c3}:1.7", + "{f00ce5dc-ec40-41d1-abb5-8a974e97dae4}:1.0", + "@lecoinannote:1.4", + "@lecoinannote:1.5", + "ebdev@wukonig.com:0.0.2", + "DO@Alerter2024:2", + "{d2effd0b-da22-472d-a4ed-09759eb211b3}:1.0", + "darkDelta@example.com:0.1", + "dk-price-checker-misterbr@extension:1.0.0", + "cmds-save-check24@internal:1.0.0" + ] + }, + "schema": 1764743789198, + "key_format": "{guid}:{version}", + "stash_time": 1764765305355, + "id": "2bb2b6d2-abbd-4ee6-831e-5d8dc7f3cd2e", + "last_modified": 1764765381657 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "nice@realnice.com:1.0a", + "{774584fa-54e2-437a-bf27-104f2bc04807}:1.28", + "{b9a13672-ebe9-4328-9212-df0bc1d7bf13}:1.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1203", + "contact@kalinotes.com:1.2", + "contact@kalinotes.com:1.4", + "contact@kalinotes.com:1.5", + "contact@kalinotes.com:1.7", + "contact@kalinotes.com:1.8", + "contact@kalinotes.com:1.9" + ] + }, + "schema": 1764728143172, + "key_format": "{guid}:{version}", + "stash_time": 1764743706299, + "id": "8a61a36a-c856-4675-94ef-42fc50a4c612", + "last_modified": 1764743789065 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "sound-tabs@soundtabs.addon:1.0.0", + "liquid-glass-nav@example.com:1.0", + "liquid-glass-nav@example.com:1.1", + "liquid-glass-nav@example.com:1.2", + "liquid-glass-nav@example.com:1.2.1", + "liquid-glass-nav@example.com:1.3.3", + "liquid-glass-nav@example.com:1.3.4", + "{3ef88308-eb0b-4978-a8ca-f7538ab61e21}:1.0", + "{d393866f-2ad8-4456-8493-2478ac782a84}:1.0", + "vocab-translator@michael.dev:1.0", + "{44eeab13-b15b-4f53-a86f-8b1c2df0853b}:3.4", + "altimer@qruciatus.com:1.1", + "altimer@qruciatus.com:1.2" + ] + }, + "schema": 1764700589886, + "key_format": "{guid}:{version}", + "stash_time": 1764722106932, + "id": "2dbf6ac5-e84f-46c8-b1a6-fdf48bc26823", + "last_modified": 1764722190878 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "beta@premid.app:2.0.2", + "beta@premid.app:2.0.3", + "beta@premid.app:2.0.4", + "rotector@jaxron.me:2.6.0", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.0.1202", + "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.1.1202", + "@rf-extension-001:3.2", + "admin@minutesview.tech:2.4.36", + "louis2@lesniak.fr:1.0" + ] + }, + "schema": 1764678989231, + "key_format": "{guid}:{version}", + "stash_time": 1764700506280, + "id": "da8e88b5-1243-48a4-a4ae-cd52d86b1dad", + "last_modified": 1764700589607 + }, + { + "stash": { + "blocked": [ + "{f0b3a684-6e1e-4e91-b9a4-b3ae3b85891f}:1.0.0", + "{125f9c2d-3a6d-4f94-9c96-daf96cc14d6e}:1.0.0", + "{4d6dd848-9248-492b-bcf3-fabf960b047b}:1.0.0", + "{9f90d3bc-f0f0-4161-a624-c369691e1304}:1.0.0", + "{adbc41af-2f40-4522-935e-b0af93c53209}:1.0.0", + "{3df4692a-2161-41ab-b683-07e29692fdb2}:1.0.0", + "{ed6c839a-25bc-43ed-a71a-c1529460bcd8}:1.0.0", + "metasite-mask@metasite:1.0" + ], + "unblocked": [], + "softblocked": [ + "{7548f5f2-97bf-4c09-befb-f60628802c46}:2.6.6", + "{4de6f645-172d-486e-bfba-f18b371e70c9}:2.6.6.1", + "{71dc1c3b-2d04-43c9-adfb-0a53e172af7b}:2.6.5.1", + "{d942c724-cbbe-4ea3-8a56-3a477ebf4907}:2.6.5", + "navipartner-browser-extension@navipartner.com:1.0.0", + "{ae5fde37-1288-4c1f-9469-dd69b7f157d0}:0.0.22", + "{d28be68b-691c-413e-bab7-6f9d8aa4ab07}:1.1", + "aiwattch@antarcticaglobal.com:1.0.6", + "aiwattch@antarcticaglobal.com:1.0.5", + "aiwattch@antarcticaglobal.com:1.0.4", + "aiwattch@antarcticaglobal.com:1.0.0" + ] + }, + "schema": 1764657390503, + "key_format": "{guid}:{version}", + "stash_time": 1764678906295, + "id": "72efaaf5-6882-476c-b202-119d0370b17e", + "last_modified": 1764678989112 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "floatingresumetoolbar@example.com:7.0", + "domrecon-scanner@test.com:1.0", + "{8d41eb56-1df6-483e-82b1-358d0dba62ee}:0.5", + "llm-history-search@conversai.us:1.2" + ] + }, + "schema": 1764641740686, + "key_format": "{guid}:{version}", + "stash_time": 1764657307047, + "id": "ef520296-03ab-494f-a0ed-4cf06c27954d", + "last_modified": 1764657390328 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "lorduss21@gmail.com:0.2", + "ekici@yahoo.com:0.1", + "ekici@yahoo.com:0.2", + "{E30039D8-ED47-4A32-AEC8-2A951E1F55D5}:1.0.0", + "bettersnap-custom-123@local:1.4.0", + "@uuid-063caffc-ca2b-2783-c5dd-5be6adacc941:1.3", + "{722d1fd3-a381-4c5f-8a68-a3de45138817}:0.10.13", + "{a6fa8776-fe3c-491f-bb36-e9383e4abc95}:1.0.0", + "{a6fa8776-fe3c-491f-bb36-e9383e4abc95}:1.0.1", + "{a6fa8776-fe3c-491f-bb36-e9383e4abc95}:1.0.2", + "{a6fa8776-fe3c-491f-bb36-e9383e4abc95}:1.0.3", + "{a6fa8776-fe3c-491f-bb36-e9383e4abc95}:1.0.4", + "{a6fa8776-fe3c-491f-bb36-e9383e4abc95}:1.0.5" + ] + }, + "schema": 1764614190630, + "key_format": "{guid}:{version}", + "stash_time": 1764635706624, + "id": "d8309d3d-fe16-4f84-a7fa-04643b04e015", + "last_modified": 1764635792363 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "youtube-speed-changer@example.com:1.23", + "{3341e51d-31a4-4fd7-83b2-07c3de5f4a92}:0.6", + "tasp-jira-extension@ibm.com:1.0.0", + "66d1aa1b-5805-4357-86a0-96e0c04704e6@concentric.ai:1.4.7", + "{945b3764-0836-4388-877f-f1b5dcbfa74a}:1.0", + "{ae5fde37-1288-4c1f-9469-dd69b7f157d0}:0.0.21", + "michoscheckin@your-domain.com:0.0.1.1", + "hogehuga@zozege.local:0.41.2", + "opinionrejector@melikechan.me:0.1", + "opinionrejector@melikechan.me:0.2", + "addon-TVer@uuid-c1372cd9-9607-67dc-3187-01857363bc0f:1.5", + "{cfb9019a-615c-4c7c-92f2-1a1c6da80a25}:1.0", + "97shop@97shop.com:0.1.0", + "97shop@97shop.com:1.0.0", + "97shop@97shop.com:1.1.1", + "97shop@97shop.com:1.2.0", + "97shop@97shop.com:1.3.0", + "97shop@97shop.com:1.5", + "97shop@97shop.com:1.5.4", + "97shop@97shop.com:1.5.20", + "97shop@97shop.com:1.5.21", + "97shop@97shop.com:1.5.22", + "97shop@97shop.com:1.5.23", + "97shop-firefox-android@97shop.com:0.0.1", + "97shop-firefox-android@97shop.com:1.1.1", + "97shop-firefox-android@97shop.com:1.1.2", + "97shop-firefox-android@97shop.com:1.5", + "97shop-firefox-android@97shop.com:1.5.4", + "97shop-firefox-android@97shop.com:1.5.5", + "97shop-firefox-android@97shop.com:1.5.6", + "97shop-firefox-android@97shop.com:1.5.7", + "97shop-firefox-android@97shop.com:1.5.8", + "97shop-firefox-android@97shop.com:1.5.9", + "97shop-firefox-android@97shop.com:1.5.10", + "97shop-firefox-android@97shop.com:1.5.11", + "97shop-firefox-android@97shop.com:1.5.13", + "97shop-firefox-android@97shop.com:1.5.15", + "97shop-firefox-android@97shop.com:1.5.16", + "97shop-firefox-android@97shop.com:1.5.20", + "97shop-firefox-android@97shop.com:1.5.21", + "97shop-firefox-android@97shop.com:1.5.22", + "97shop-firefox-android@97shop.com:1.5.24" + ] + }, + "schema": 1764592592864, + "key_format": "{guid}:{version}", + "stash_time": 1764614106541, + "id": "16f2ec2b-ef7d-410a-941d-baff9384f729", + "last_modified": 1764614190520 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ + "ews-auto-login@example.com:1.0", + "{3bb6a6f3-2ed4-4ec1-86d7-7cefa9ddea87}:1.5", + "{3bb6a6f3-2ed4-4ec1-86d7-7cefa9ddea87}:1.6", + "antilrp@example:1.3.5", + "anti-aitm@hob-it.nl:1.1.5", + "gemini-branch-editor@ushanov:2.2", + "youtube-scheduler@yourdomain.com:1.2.2", + "youtube-scheduler@yourdomain.com:1.3", + "youtube-scheduler@yourdomain.com:1.4", + "{d137b52b-3fb0-43c6-a564-051ab7273ae9}:1.0", + "{e4182e50-1974-4329-8745-50a09984be54}:1.0.0", + "{e4182e50-1974-4329-8745-50a09984be54}:1.0.1" + ] + }, + "schema": 1764570990345, + "key_format": "{guid}:{version}", + "stash_time": 1764592506692, + "id": "006d659c-a0b4-4d1f-8659-ae35fa8f3aac", + "last_modified": 1764592592670 + }, + { + "stash": { + "blocked": [], + "unblocked": [], + "softblocked": [ "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.7.1130", "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.8.1130", "{dc5f5d17-0a0b-4576-b146-e92e5df164ac}:1.9.1130", @@ -4867,5 +9126,5 @@ "last_modified": 1761136764909 } ], - "timestamp": 1764570990070 + "timestamp": 1767616590393 } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json firefox-esr-140.7.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json --- firefox-esr-140.6.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json 2026-01-06 21:09:50.000000000 +0000 @@ -1,337 +1,310 @@ { "data": [ { + "name": "Safari", + "schema": 1766016303794, + "status": "current", + "version": "26.3", + "browserid": "safari", + "id": "f7f0e108-c839-4036-94f6-1d77b172c85a", + "last_modified": 1766045402721 + }, + { + "name": "WebView on iOS", + "schema": 1766016304219, + "status": "current", + "version": "26.3", + "browserid": "webview_ios", + "id": "8ac8569d-f6dc-41e4-b448-7c54f6923a36", + "last_modified": 1766045402718 + }, + { + "name": "Safari on iOS", + "schema": 1766016304005, + "status": "current", + "version": "26.3", + "browserid": "safari_ios", + "id": "916681bd-04e0-4dbe-9c02-965181db1356", + "last_modified": 1766045402715 + }, + { "name": "Bun", - "schema": 1762992304400, + "schema": 1765411502852, "status": "current", - "version": "1.3.2", + "version": "1.3.4", "browserid": "bun", - "id": "5034aa5c-d78a-4a4a-ade2-d9aaef93a941", - "last_modified": 1763038623318 + "id": "bb61843a-d6b5-40f0-bf14-89b02e02cdd1", + "last_modified": 1765440270114 + }, + { + "name": "Firefox for Android", + "schema": 1765411503604, + "status": "planned", + "version": "149", + "browserid": "firefox_android", + "id": "78dc5472-36f7-465d-92c2-3d2ff5d7c323", + "last_modified": 1765440270110 }, { "name": "Firefox", - "schema": 1762992304751, + "schema": 1765411503258, "status": "planned", + "version": "149", + "browserid": "firefox", + "id": "2154c26d-3d7d-4ddc-a6ec-de10aeaba65f", + "last_modified": 1765440270107 + }, + { + "name": "Firefox", + "schema": 1765411503145, + "status": "nightly", "version": "148", "browserid": "firefox", "id": "4ebdb515-56c0-4aae-bf80-631df396b3c5", - "last_modified": 1763038623314 + "last_modified": 1765440270099 }, { "name": "Firefox for Android", - "schema": 1762992305101, - "status": "planned", + "schema": 1765411503533, + "status": "nightly", "version": "148", "browserid": "firefox_android", "id": "5e1afc2d-b301-49b8-9052-0d0ceed8d7a3", - "last_modified": 1763038623310 + "last_modified": 1765440270095 }, { "name": "Firefox for Android", - "schema": 1762992305037, - "status": "nightly", + "schema": 1765411503470, + "status": "beta", "version": "147", "browserid": "firefox_android", "id": "6d4ac1b5-fae6-4cf0-8966-3833c78d2d6d", - "last_modified": 1763038623304 + "last_modified": 1765440270091 }, { "name": "Firefox", - "schema": 1762992304683, - "status": "nightly", + "schema": 1765411503078, + "status": "beta", "version": "147", "browserid": "firefox", "id": "da813114-57b4-435c-831e-4fc28589a55c", - "last_modified": 1763038623300 + "last_modified": 1765440270088 }, { "name": "Firefox for Android", - "schema": 1762992304970, - "status": "beta", + "schema": 1765411503404, + "status": "current", "version": "146", "browserid": "firefox_android", "id": "b8de7d68-78f0-49a8-ae02-2b807c2a40d0", - "last_modified": 1763038623295 + "last_modified": 1765440270084 }, { "name": "Firefox", - "schema": 1762992304614, - "status": "beta", + "schema": 1765411503010, + "status": "current", "version": "146", "browserid": "firefox", "id": "db1e42f6-cbd7-4a17-a388-2190ad554abf", - "last_modified": 1763038623291 + "last_modified": 1765440270080 }, { - "name": "Firefox for Android", - "schema": 1762992304900, - "status": "current", - "version": "145", - "browserid": "firefox_android", - "id": "546eaac9-d444-4f9f-a403-b97a76646211", - "last_modified": 1763038623283 + "name": "WebView Android", + "schema": 1764979505137, + "status": "planned", + "version": "146", + "browserid": "webview_android", + "id": "620f087d-d5c6-4b67-80f4-02358d8298e7", + "last_modified": 1765180094112 }, { - "name": "Firefox", - "schema": 1762992304541, + "name": "Opera Android", + "schema": 1764979504685, "status": "current", - "version": "145", - "browserid": "firefox", - "id": "04fc0708-9123-4914-a491-ca13f20285e6", - "last_modified": 1763038623278 - }, - { - "name": "Safari on iOS", - "schema": 1762387504104, - "status": "beta", - "version": "26.2", - "browserid": "safari_ios", - "id": "2eb9ac0d-f4bf-4cdf-83a1-49dc43362039", - "last_modified": 1762424892978 + "version": "93", + "browserid": "opera_android", + "id": "d804ce23-825c-4e96-a0f4-c70981bb9a18", + "last_modified": 1765180094108 }, { - "name": "Safari", - "schema": 1762387503881, - "status": "beta", - "version": "26.2", - "browserid": "safari", - "id": "8982e715-0fe8-485b-a68f-582f3420cf8c", - "last_modified": 1762424892974 + "name": "Chrome Android", + "schema": 1764979504231, + "status": "planned", + "version": "146", + "browserid": "chrome_android", + "id": "1b035778-10c7-4ea3-aeb4-3606fd3483e1", + "last_modified": 1765180094104 }, { "name": "Edge", - "schema": 1762387503671, + "schema": 1764979504557, "status": "planned", - "version": "145", + "version": "146", "browserid": "edge", - "id": "40684037-f3dc-4106-b1f7-91bd4fa18a32", - "last_modified": 1762424892971 - }, - { - "name": "WebView on iOS", - "schema": 1762387504304, - "status": "beta", - "version": "26.2", - "browserid": "webview_ios", - "id": "0ec79789-21e6-4251-9728-07edaa787a52", - "last_modified": 1762424892967 + "id": "71070e67-3067-4271-acef-cf0bd7a4f555", + "last_modified": 1765180094101 }, { - "name": "Opera", - "schema": 1761955503268, - "status": "nightly", - "version": "125", - "browserid": "opera", - "id": "5bdc65b2-ee44-4f2a-b776-54b9ffe1147f", - "last_modified": 1762424892963 + "name": "Chrome", + "schema": 1764979503917, + "status": "planned", + "version": "146", + "browserid": "chrome", + "id": "b9100141-3b96-44f6-89b5-2dd19d6dfba6", + "last_modified": 1765180094097 }, { "name": "Edge", - "schema": 1762387503603, + "schema": 1764979504497, "status": "nightly", - "version": "144", - "browserid": "edge", - "id": "64945ca2-8c7c-4d04-8a37-dd304f2e93ce", - "last_modified": 1762424892958 - }, - { - "name": "Edge", - "schema": 1762387503533, - "status": "beta", - "version": "143", - "browserid": "edge", - "id": "5fbdfe94-de4c-4bfe-b789-246f64a7f4b6", - "last_modified": 1762424892954 - }, - { - "name": "Opera", - "schema": 1761955503193, - "status": "beta", - "version": "124", - "browserid": "opera", - "id": "b74063d3-65d7-45b2-afc1-d30123fc2999", - "last_modified": 1762424892950 - }, - { - "name": "Opera", - "schema": 1761955503117, - "status": "current", - "version": "123", - "browserid": "opera", - "id": "847fc43b-579e-4b26-a1fa-cb978ec0438b", - "last_modified": 1762424892945 - }, - { - "name": "WebView on iOS", - "schema": 1762387504245, - "status": "current", - "version": "26.1", - "browserid": "webview_ios", - "id": "715b8853-603d-4ca8-a18c-3e24169f8895", - "last_modified": 1762424892941 - }, - { - "name": "Safari", - "schema": 1762387503809, - "status": "current", - "version": "26.1", - "browserid": "safari", - "id": "4e69de42-b3b9-4a6e-a764-3038552d0ecb", - "last_modified": 1762424892936 - }, - { - "name": "Safari on iOS", - "schema": 1762387504034, - "status": "current", - "version": "26.1", - "browserid": "safari_ios", - "id": "c67d6870-269b-4aa5-9a1b-03662a4b5771", - "last_modified": 1762424892932 - }, - { - "name": "Edge", - "schema": 1762387503452, - "status": "current", - "version": "142", + "version": "145", "browserid": "edge", - "id": "7d644a9d-4167-44d0-b58a-165beedf43e5", - "last_modified": 1762424892927 - }, - { - "name": "Node.js", - "schema": 1761696314245, - "status": "current", - "version": "24.7.0", - "browserid": "nodejs", - "id": "91237d21-1b61-4fa2-8a8e-7d6237471e87", - "last_modified": 1761724372882 + "id": "40684037-f3dc-4106-b1f7-91bd4fa18a32", + "last_modified": 1765180094092 }, { "name": "WebView Android", - "schema": 1761696314562, - "status": "planned", + "schema": 1764979505076, + "status": "nightly", "version": "145", "browserid": "webview_android", "id": "51da2d32-d596-43de-8dea-bb19b07b2bf0", - "last_modified": 1761724372878 + "last_modified": 1765180094085 }, { "name": "Chrome", - "schema": 1761696313807, - "status": "planned", + "schema": 1764979503854, + "status": "nightly", "version": "145", "browserid": "chrome", "id": "1bcd114b-13e9-428b-9d54-bd2d993aa5bb", - "last_modified": 1761724372875 + "last_modified": 1765180094082 }, { "name": "Chrome Android", - "schema": 1761696314122, - "status": "planned", + "schema": 1764979504166, + "status": "nightly", "version": "145", "browserid": "chrome_android", "id": "4363f23f-12a8-40d5-aedb-9c90514c368c", - "last_modified": 1761724372871 + "last_modified": 1765180094078 }, { "name": "WebView Android", - "schema": 1761696314499, - "status": "nightly", + "schema": 1764979505016, + "status": "beta", "version": "144", "browserid": "webview_android", "id": "336a5fe9-5846-4e9d-9039-be3d1d82f97f", - "last_modified": 1761724372867 + "last_modified": 1765180094075 }, { "name": "Chrome", - "schema": 1761696313747, - "status": "nightly", + "schema": 1764979503790, + "status": "beta", "version": "144", "browserid": "chrome", "id": "445d8b56-0300-4c6b-8e1f-0d1ab3f45500", - "last_modified": 1761724372864 + "last_modified": 1765180094071 }, { "name": "Chrome Android", - "schema": 1761696314057, - "status": "nightly", + "schema": 1764979504105, + "status": "beta", "version": "144", "browserid": "chrome_android", "id": "196eb3bc-6b04-4a4e-875f-b46ff5d5e6da", - "last_modified": 1761724372861 + "last_modified": 1765180094068 }, { "name": "Chrome", - "schema": 1761696313690, - "status": "beta", + "schema": 1764979503724, + "status": "current", "version": "143", "browserid": "chrome", "id": "d18f46a3-d6bd-4291-8088-27feea84ca76", - "last_modified": 1761724372857 + "last_modified": 1765180094064 }, { - "name": "WebView Android", - "schema": 1761696314379, + "name": "Samsung Internet", + "schema": 1764979504820, "status": "current", - "version": "142", - "browserid": "webview_android", - "id": "d1917e2a-614b-4b6c-8bb4-683132e1fd64", - "last_modified": 1761724372851 + "version": "29.0", + "browserid": "samsunginternet_android", + "id": "c30b100b-baa9-418f-b196-11e2cc06c7ad", + "last_modified": 1765180094055 }, { - "name": "Chrome", - "schema": 1761696313619, + "name": "Edge", + "schema": 1764979504435, + "status": "beta", + "version": "144", + "browserid": "edge", + "id": "64945ca2-8c7c-4d04-8a37-dd304f2e93ce", + "last_modified": 1765180094052 + }, + { + "name": "Edge", + "schema": 1764979504368, "status": "current", - "version": "142", - "browserid": "chrome", - "id": "80f03197-a17b-4032-ba47-0e81e04ffce2", - "last_modified": 1761724372848 + "version": "143", + "browserid": "edge", + "id": "5fbdfe94-de4c-4bfe-b789-246f64a7f4b6", + "last_modified": 1765180094048 }, { "name": "WebView Android", - "schema": 1761696314437, - "status": "beta", + "schema": 1764979504956, + "status": "current", "version": "143", "browserid": "webview_android", "id": "c0345eaf-8f79-42e7-9d5d-a16f48e6761f", - "last_modified": 1761724372841 + "last_modified": 1765180094045 }, { "name": "Chrome Android", - "schema": 1761696313996, - "status": "beta", + "schema": 1764979504045, + "status": "current", "version": "143", "browserid": "chrome_android", "id": "88163a1b-c1ef-4699-a50e-bd33a32ea075", - "last_modified": 1761724372838 + "last_modified": 1765180094041 }, { - "name": "Chrome Android", - "schema": 1761696313933, + "name": "Node.js", + "schema": 1764115503977, "status": "current", - "version": "142", - "browserid": "chrome_android", - "id": "0b5cf19b-6816-4a96-aeb8-de25f776b025", - "last_modified": 1761724372834 + "version": "25.2.0", + "browserid": "nodejs", + "id": "72793b48-82fb-4674-9659-b51e661cb10b", + "last_modified": 1764597259381 }, { - "name": "Opera Android", - "schema": 1760141104124, - "status": "current", - "version": "92", - "browserid": "opera_android", - "id": "2d5b3e9f-ae53-4833-adac-d2fdb3267611", - "last_modified": 1760336031485 + "name": "Opera", + "schema": 1761955503268, + "status": "nightly", + "version": "125", + "browserid": "opera", + "id": "5bdc65b2-ee44-4f2a-b776-54b9ffe1147f", + "last_modified": 1762424892963 }, { - "name": "Samsung Internet", - "schema": 1759889746802, + "name": "Opera", + "schema": 1761955503193, "status": "beta", - "version": "29.0", - "browserid": "samsunginternet_android", - "id": "c30b100b-baa9-418f-b196-11e2cc06c7ad", - "last_modified": 1759989898794 + "version": "124", + "browserid": "opera", + "id": "b74063d3-65d7-45b2-afc1-d30123fc2999", + "last_modified": 1762424892950 + }, + { + "name": "Opera", + "schema": 1761955503117, + "status": "current", + "version": "123", + "browserid": "opera", + "id": "847fc43b-579e-4b26-a1fa-cb978ec0438b", + "last_modified": 1762424892945 }, { "name": "Deno", @@ -361,15 +334,6 @@ "last_modified": 1754642891013 }, { - "name": "Samsung Internet", - "schema": 1749254703179, - "status": "current", - "version": "28.0", - "browserid": "samsunginternet_android", - "id": "d85a7f04-256c-4b3c-a633-29d0b2a19f18", - "last_modified": 1749550693720 - }, - { "name": "Node.js", "schema": 1734480302872, "status": "esr", @@ -388,5 +352,5 @@ "last_modified": 1665656484764 } ], - "timestamp": 1763038623318 + "timestamp": 1766045402721 } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/main/password-rules.json firefox-esr-140.7.0esr/services/settings/dumps/main/password-rules.json --- firefox-esr-140.6.0esr/services/settings/dumps/main/password-rules.json 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/main/password-rules.json 2026-01-06 21:09:51.000000000 +0000 @@ -1,6 +1,204 @@ { "data": [ { + "Domain": "bkvenergy.com", + "password-rules": "minlength: 8; maxlength: 12; required: upper; required: lower; required: digit; required: [-~!@#$%^&*()_=+,<.> ];", + "id": "79120746-e8f2-4ff2-b18e-730f72e35156", + "last_modified": 1764684322196 + }, + { + "Domain": "sjwaterhub.com", + "password-rules": "minlength: 8; maxlength: 30; required: digit, lower, upper; allowed: [!#%&*.];", + "id": "ad4dc632-7790-42cf-a798-12a1fabf4585", + "last_modified": 1764684322192 + }, + { + "Domain": "promozoneapp.nmlottery.com", + "password-rules": "minlength: 6; maxlength: 16; required: lower; required: upper; required: digit; allowed: special;", + "id": "b84b78b1-6f59-4b63-813f-ac1965568c72", + "last_modified": 1764684322188 + }, + { + "Domain": "mypatientvisit.com", + "password-rules": "minlength: 8; required: lower; required: upper; required: digit; required: [!#$%&*+.;?@^_~];", + "id": "5eb5ee14-8f2c-4397-afa9-bd59fc79f4df", + "last_modified": 1764684322177 + }, + { + "Domain": "mybam.bcbsnm.com", + "password-rules": "minlength: 8; maxlength: 64; max-consecutive: 2; required: lower; required: upper; required: digit; allowed: [!#$%&()*@[^{}~];", + "id": "21a8ea3d-676d-409a-9dc5-8a3ec72d7d9a", + "last_modified": 1764684322173 + }, + { + "Domain": "id.westfield.com", + "password-rules": "minlength: 9; maxlength: 20; required: lower; required: upper; required: digit; required: [!\"#&'()*,./:;?@[\\^_`{|}~];", + "id": "37ac075d-294f-4c68-b5ae-63324992786b", + "last_modified": 1764684322169 + }, + { + "Domain": "id.nfpa.org", + "password-rules": "minlength: 8; maxlength: 16; required: lower; required: upper; required: digit; required: [-\"^#$%&'()*+:=@[_|{}~]];", + "id": "9bf8d9d2-ffa4-4bf6-8b3c-aa3ed98b1114", + "last_modified": 1764684322166 + }, + { + "Domain": "cardcash.com", + "password-rules": "minlength: 8; required: lower; required: upper; required: digit; required: [!$%&*?@];", + "id": "ed380255-5637-4a0a-9336-54e743632071", + "last_modified": 1764684322162 + }, + { + "Domain": "auth.zennioptical.com", + "password-rules": "minlength: 8; maxlength: 14; required: lower; required: upper; required: digit; allowed: special;", + "id": "c5e8a7c1-e20c-4d60-b411-6f2cadf75d35", + "last_modified": 1764684322157 + }, + { + "Domain": "app8menu.com", + "password-rules": "minlength: 8; required: lower; required: upper; required: digit; required: [@$!%*?&];", + "id": "332895b3-7ed5-4353-abfa-2540cd218959", + "last_modified": 1764684322153 + }, + { + "Domain": "publix.com", + "password-rules": "minlength: 8; maxlength: 28; required: upper; required: lower; allowed: digit,[!#$%*@^];", + "id": "2f716ab9-e74b-4c12-9c49-0cb6a2e819f7", + "last_modified": 1764684322149 + }, + { + "Domain": "themovingportal.co.uk", + "password-rules": "minlength: 8; maxlength: 16; required: lower; required: upper; required: digit; allowed: [-@#$%^&*_+={}|\\:',?/'~\" ();.[]];", + "id": "b5cdfe1b-6582-42e2-ae6a-70abf3cff53e", + "last_modified": 1764684322146 + }, + { + "Domain": "ticketweb.com", + "password-rules": "minlength: 12; maxlength: 15;", + "id": "71bd6187-4ebe-4be4-8f82-617a8baebd0a", + "last_modified": 1764684322142 + }, + { + "Domain": "act.org", + "password-rules": "minlength: 8; maxlength: 64; required: lower; required: upper; required: digit; required: [!#$%&*@^];", + "id": "444e2e0f-e423-4702-8f27-2cea28fd97c4", + "last_modified": 1764684322138 + }, + { + "Domain": "yeti.com", + "password-rules": "minlength: 8; required: lower; required: upper; required: digit; required: [#$%*];", + "id": "a14cc11d-9f16-4c0c-aa7e-ca4010d38967", + "last_modified": 1764684322135 + }, + { + "Domain": "vons.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "427bb481-ac5e-463c-b164-e2e2d9a6eb94", + "last_modified": 1764684322131 + }, + { + "Domain": "tomthumb.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "5790bfe5-d80f-4067-b47d-967b6219e307", + "last_modified": 1764684322128 + }, + { + "Domain": "starmarket.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "de0a163b-0538-402a-9a4b-08da580bb03a", + "last_modified": 1764684322124 + }, + { + "Domain": "shaws.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "c98a263c-08ab-4f5b-bdce-4c4d4a6bae1a", + "last_modified": 1764684322120 + }, + { + "Domain": "savemart.com", + "password-rules": "minlength: 8; maxlength: 12; required: digit; required: upper,lower; required: [!#$%&@]; allowed: ascii-printable;", + "id": "124261a6-9926-4d4c-ab98-b1bf2bde81b1", + "last_modified": 1764684322117 + }, + { + "Domain": "safeway.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "e32a0925-07e7-47c6-af3c-0791d873cc7e", + "last_modified": 1764684322113 + }, + { + "Domain": "randalls.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "bf4996a5-4556-4ba3-968d-af8143f4f22c", + "last_modified": 1764684322109 + }, + { + "Domain": "pavilions.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "2c15e93c-4780-4775-80c8-08c66f9f756f", + "last_modified": 1764684322106 + }, + { + "Domain": "kingsfoodmarkets.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "68647a6b-179b-4742-86a2-1cbfcd4c564d", + "last_modified": 1764684322102 + }, + { + "Domain": "jewelosco.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "488c6089-7e00-4081-a207-7baefa5cd259", + "last_modified": 1764684322048 + }, + { + "Domain": "haggen.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "8de06c6c-e07f-446a-8b25-f8129cf1c717", + "last_modified": 1764684322044 + }, + { + "Domain": "carrsqc.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "42f897e7-1106-47e9-b294-128fd45488e4", + "last_modified": 1764684322039 + }, + { + "Domain": "balduccis.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "359e538d-f52d-4662-ba4e-f65c28abb210", + "last_modified": 1764684322035 + }, + { + "Domain": "andronicos.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "982e3235-9d92-4d01-894c-6b81298e4b53", + "last_modified": 1764684322032 + }, + { + "Domain": "albertsons.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "42346b95-1942-4a8b-9d3d-e4bc87804718", + "last_modified": 1764684322028 + }, + { + "Domain": "acmemarkets.com", + "password-rules": "minlength: 8; maxlength: 40; required: upper; required: [!#$%&*@^]; allowed: lower,digit;", + "id": "69b79395-9801-4295-808c-a811ccd76a2f", + "last_modified": 1764684322024 + }, + { + "Domain": "ea.com", + "password-rules": "minlength: 8; maxlength: 64; required: lower; required: upper; required: digit; allowed: special;", + "id": "925e748f-9880-4af9-b5a1-fb28e5c1c7e7", + "last_modified": 1764684322019 + }, + { + "Domain": "hetzner.com", + "password-rules": "minlength: 8; required: lower; required: upper; required: digit; required: [-^!$%/()=?+#.,;:~*@{}_&[]];", + "id": "a27316a5-29c1-468f-b046-655637fe7fc6", + "last_modified": 1764684322014 + }, + { "Domain": "nekochat.cn", "password-rules": "minlength: 8; maxlength: 15; required: lower; required: upper; required: digit;", "id": "8c0415cb-2255-43c1-b292-773ce54890e1", @@ -1387,12 +1585,6 @@ "last_modified": 1624479577265 }, { - "Domain": "ea.com", - "password-rules": "minlength: 8; maxlength: 16; required: lower; required: upper; required: digit; allowed: special;", - "id": "925e748f-9880-4af9-b5a1-fb28e5c1c7e7", - "last_modified": 1624479577260 - }, - { "Domain": "easycoop.com", "password-rules": "minlength: 8; required: upper; required: special; allowed: lower, digit;", "id": "8a5e5362-d9dd-41ff-b2ce-3e0a684c6dfb", @@ -1549,12 +1741,6 @@ "last_modified": 1624479577129 }, { - "Domain": "hetzner.com", - "password-rules": "minlength: 8; required: lower; required: upper; required: digit, special;", - "id": "a27316a5-29c1-468f-b046-655637fe7fc6", - "last_modified": 1624479577124 - }, - { "Domain": "hilton.com", "password-rules": "minlength: 8; maxlength: 32; required: lower; required: upper; required: digit;", "id": "3dd64887-7a1c-42bd-b636-f825d155f9fc", @@ -2233,5 +2419,5 @@ "last_modified": 1624479576629 } ], - "timestamp": 1743683182607 + "timestamp": 1764684322196 } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/main/search-config-icons.json firefox-esr-140.7.0esr/services/settings/dumps/main/search-config-icons.json --- firefox-esr-140.6.0esr/services/settings/dumps/main/search-config-icons.json 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/main/search-config-icons.json 2026-01-06 21:09:51.000000000 +0000 @@ -169,23 +169,6 @@ "last_modified": 1744118264964 }, { - "schema": 1743687938695, - "imageSize": 96, - "attachment": { - "hash": "3426b5100a6bdb45f8039f0c71a6b68193750ba7bae5b36e5ed31b2b7f372cda", - "size": 1357, - "filename": "azerdict_mobile.png", - "location": "main-workspace/search-config-icons/1229ffe4-7a6f-46d7-b664-5596df0aa730.png", - "mimetype": "image/png" - }, - "engineIdentifiers": [ - "azerdict" - ], - "filter_expression": "env.appinfo.OS == \"iOS\" || env.appinfo.OS == \"Android\"", - "id": "95ed201d-4ab8-4cb8-831d-454f53cab0f8", - "last_modified": 1744118264962 - }, - { "schema": 1743687936599, "imageSize": 96, "attachment": { @@ -1140,23 +1123,6 @@ "last_modified": 1744118264833 }, { - "schema": 1743687843227, - "imageSize": 16, - "attachment": { - "hash": "24daa27a3234d01b5add42e027b0a34000d0ab47c17fe3924c2ca267b7b61c19", - "size": 5430, - "filename": "azerdict-16-firefox.ico", - "location": "main-workspace/search-config-icons/4d6f988d-8905-4aa7-aeea-5b04a6197767.ico", - "mimetype": "image/x-icon" - }, - "engineIdentifiers": [ - "azerdict" - ], - "filter_expression": "env.appinfo.OS != \"iOS\" && env.appinfo.OS != \"Android\"", - "id": "7bbe6c5c-fdb8-2845-a4f4-e1382e708a0e", - "last_modified": 1744118264831 - }, - { "schema": 1743687843968, "imageSize": 16, "attachment": { @@ -1206,5 +1172,5 @@ "last_modified": 1744118264825 } ], - "timestamp": 1763049497744 + "timestamp": 1765918784979 } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/main/websites-with-shared-credential-backends.json firefox-esr-140.7.0esr/services/settings/dumps/main/websites-with-shared-credential-backends.json --- firefox-esr-140.6.0esr/services/settings/dumps/main/websites-with-shared-credential-backends.json 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/main/websites-with-shared-credential-backends.json 2026-01-06 21:09:50.000000000 +0000 @@ -20,6 +20,23 @@ "americanairlines.jp" ], [ + "acmemarkets.com", + "albertsons.com", + "andronicos.com", + "balduccis.com", + "carrsqc.com", + "haggen.com", + "jewelosco.com", + "kingsfoodmarkets.com", + "pavilions.com", + "randalls.com", + "safeway.com", + "shaws.com", + "starmarket.com", + "tomthumb.com", + "vons.com" + ], + [ "aetna.com", "banneraetna.myplanportal.com" ], @@ -84,17 +101,10 @@ "airnewzealand.com.au" ], [ - "albertsons.com", - "acmemarkets.com", - "carrsqc.com", - "jewelosco.com", - "pavilions.com", - "randalls.com", - "safeway.com", - "shaws.com", - "starmarket.com", - "tomthumb.com", - "vons.com" + "albertsonsmarket.com", + "amigosunited.com", + "marketstreetunited.com", + "unitedsupermarkets.com" ], [ "alelo.com.br", @@ -231,6 +241,10 @@ "braze.eu" ], [ + "candyrect.com", + "nekochat.cn" + ], + [ "capitalone.com", "capitalone360.com" ], @@ -243,6 +257,12 @@ "centralfcu.com" ], [ + "check24.at", + "check24.com", + "check24.de", + "check24.es" + ], + [ "citi.com", "citibank.com", "citibankonline.com" @@ -311,6 +331,10 @@ "docusign.net" ], [ + "dq.com", + "dairyqueen.com" + ], + [ "drivethrucards.com", "drivethrucomics.com", "drivethrufiction.com", @@ -356,6 +380,8 @@ ], [ "epicgames.com", + "fortnite.com", + "twinmotion.com", "unrealengine.com" ], [ @@ -423,6 +449,17 @@ "swarmapp.com" ], [ + "gamefaqs.com", + "gamefaqs.gamespot.com" + ], + [ + "gamepedia.com", + "wikia.com", + "wikia.org", + "wikicities.com", + "fandom.com" + ], + [ "gazduire.com.ro", "gazduire.net", "admin.ro" @@ -437,6 +474,10 @@ "gogoinflight.com" ], [ + "hawaiianairlines.com", + "alaskaair.com" + ], + [ "hbo.com", "hbomax.com", "hbonow.com", @@ -461,7 +502,8 @@ ], [ "instagram.com", - "threads.net" + "threads.net", + "threads.com" ], [ "intuit.com", @@ -481,6 +523,14 @@ "kcls.org" ], [ + "keypointcu.com", + "kpcu.com" + ], + [ + "koboldpress.com", + "labyrinth.talesofthevaliant.com" + ], + [ "letsdeel.com", "deel.com" ], @@ -570,6 +620,10 @@ "mojang.com" ], [ + "monarch.com", + "monarchmoney.com" + ], + [ "moneybird.nl", "moneybird.de", "moneybird.com" @@ -630,6 +684,11 @@ "bedbathandbeyond.com" ], [ + "padmapper.com", + "zumper.com", + "zumperrentals.com" + ], + [ "parkmobile.us", "parkmobile.io" ], @@ -702,6 +761,11 @@ "redislabs.com" ], [ + "rekordbox.com", + "pioneerdj.com", + "community.pioneerdj.com" + ], + [ "rocketaccount.com", "rocketmortgage.com" ], @@ -817,6 +881,7 @@ ], [ "turkishairlines.com", + "tkwifi.net", "thy.com" ], [ @@ -944,8 +1009,8 @@ ] ], "id": "8c3d4151-8e68-4bb3-a3fd-babf4aba2cdc", - "last_modified": 1738775297137 + "last_modified": 1764684432032 } ], - "timestamp": 1738775297137 + "timestamp": 1764684432032 } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/security-state/intermediates.json firefox-esr-140.7.0esr/services/settings/dumps/security-state/intermediates.json --- firefox-esr-140.6.0esr/services/settings/dumps/security-state/intermediates.json 2025-12-01 18:15:40.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/security-state/intermediates.json 2026-01-06 21:09:51.000000000 +0000 @@ -1,6 +1,292 @@ { "data": [ { + "schema": 1766545151547, + "derHash": "apoq8tf6rOXigX6DmIJ6FAa+5xHdtxjntVlXeqTBK18=", + "attachment": { + "hash": "4d3692ac441d7c3f075664f508fa72eb6b12c6d921e6f20d39970029ba654f46", + "size": 1999, + "filename": "D2CK5YkrtH6dJajHxLR-P6JOnCIlK4TORS4_07BmMA8=.pem", + "location": "security-state-staging/intermediates/bb6e2bb1-edcc-45e5-856e-f125101628b4.pem", + "mimetype": "application/x-pem-file" + }, + "id": "1f0679b5-b285-43cb-af3b-c9c91f566f52", + "last_modified": 1766548622587 + }, + { + "schema": 1766545150870, + "derHash": "QdmJ/zITleggScLpWry9ecbMIHti+fGCdL3ixy+DQdY=", + "attachment": { + "hash": "3061d1494d2670d64c2b8d2a3b20753446cb3cd16a58e3fc20901e6221952cac", + "size": 1999, + "filename": "DaH-BZQc0vDvzDnwIYWQow8VlNFoJSPHT4EqvAUJlno=.pem", + "location": "security-state-staging/intermediates/6a972243-c1ca-4f56-afd5-dd541badc509.pem", + "mimetype": "application/x-pem-file" + }, + "id": "fe8783cf-bfbf-4942-9459-d38873cd3849", + "last_modified": 1766548622584 + }, + { + "schema": 1766545150516, + "derHash": "N0yqtHIYFqTzgBMA7Wzl1k8VVPkXjZQLTnMGvJPSty4=", + "attachment": { + "hash": "1b6f61ae529e45efc2b08a2c5e354ea73a4eabadec9784b615de5a52b19a07d9", + "size": 1999, + "filename": "FZ9pybbuyn9HhpGR1NPthWsnzkVhQmQzQLyshe2YYQI=.pem", + "location": "security-state-staging/intermediates/82cdb7b6-b69c-4f50-8707-fd6ef2e45fe0.pem", + "mimetype": "application/x-pem-file" + }, + "id": "2aaafebe-5bd9-4295-94b0-781f94ed876a", + "last_modified": 1766548622581 + }, + { + "schema": 1766545151205, + "derHash": "06hD1NyS613xJ+ZGwvUO6ANFJ0fYycbU/bn3yyBgxbc=", + "attachment": { + "hash": "fc501019fa6c2cc3194e8494997361d37dfa2930d979f1a004ec5c96912d8699", + "size": 1999, + "filename": "XztAsecQzzxu1jUv1WbLy4I-Rd8k920eS6JthbhBF7w=.pem", + "location": "security-state-staging/intermediates/c6cfe955-4314-42e4-aa56-147d1a1c1a9c.pem", + "mimetype": "application/x-pem-file" + }, + "id": "db7338eb-337f-4678-90d0-017f070ea48e", + "last_modified": 1766548622575 + }, + { + "schema": 1766545150040, + "derHash": "yvAIQqcvlpblPCnyxeehudcaPi8MMdi5QGlNWdzO9kM=", + "attachment": { + "hash": "c9ddd15d4575624c6480bca5f1621f558809f3d159392240ee373ec1a9c58712", + "size": 1199, + "filename": "p4UlhI-4INdk1HPs8-QdeU9xFTzIwh8tuwVaVcuoAdg=.pem", + "location": "security-state-staging/intermediates/8b0827bc-68a0-4177-adc6-dd30594c243f.pem", + "mimetype": "application/x-pem-file" + }, + "id": "ef0d45b4-04df-431a-ae55-a2db91a67de2", + "last_modified": 1766548622572 + }, + { + "schema": 1766545149681, + "derHash": "x3KGXm+eCneLDoZESiH7ZUf3oF4WnM/Fv+oFMX4PX2k=", + "attachment": { + "hash": "cea5d7631fdb975eaab8abcdeafa6dc8b875ef4ddd5d629506adc68836863859", + "size": 1195, + "filename": "W-Umw3HYfIOzV9bxKzoWQcUfT5Ssj5St0SlQgxYWXVI=.pem", + "location": "security-state-staging/intermediates/2ed1e716-f4b6-4b37-a11b-871ac84e2585.pem", + "mimetype": "application/x-pem-file" + }, + "id": "9a5e2215-2d9b-4b78-b8c9-5cdbc6a6e04a", + "last_modified": 1766548622569 + }, + { + "schema": 1766199553968, + "derHash": "uNBo3GxmB5p1Zp5VsOo+Zv7xBHOUcer8PRZ6aBlyNPY=", + "attachment": { + "hash": "2721d976197c0971feb3b2aa3fe7ab4116f5b873f7762c1b903bed71f274889e", + "size": 2194, + "filename": "fNZ8JI9p2D_C-bsB3LH3rWejY9BGBDeW0JhMOiMfa7A=.pem", + "location": "security-state-staging/intermediates/4538ae28-7ee7-4f9f-9b25-494e072ba946.pem", + "mimetype": "application/x-pem-file" + }, + "id": "1d3479b6-a941-456d-aa49-38d4829fed8f", + "last_modified": 1766203022761 + }, + { + "schema": 1766199553271, + "derHash": "RppWJMvxJcKbHHOqTQXUsr9PhAC11WnppMpVSrTE+vU=", + "attachment": { + "hash": "b0eb06ac30b4d1952a31af513c2b2b13be71d0993ac06a3c9d45b32bfdeffd05", + "size": 1540, + "filename": "G_ANXI8TwJTdF-AFBM8IiIUPEv0Gf6H5LA_b9guG4yE=.pem", + "location": "security-state-staging/intermediates/55a07545-3406-49c7-b4c2-75ab41e736be.pem", + "mimetype": "application/x-pem-file" + }, + "id": "11abffc6-86d0-4dca-8c39-d6a546d872d0", + "last_modified": 1766203022758 + }, + { + "schema": 1766199552928, + "derHash": "Mn7JOVXJFFJhsIfG/F6sinEmK/JWjo0298L+29GxB3o=", + "attachment": { + "hash": "fce6d2adb30e15ecebfc251a25aa18fd326eb2f5bd8def6cdf2c4051fc40d421", + "size": 2308, + "filename": "IcENwofaRhqQc2PcjyjgcuebC1DnPogY1Yfis0DLQJM=.pem", + "location": "security-state-staging/intermediates/1b91e146-c5f2-40c0-8110-19742cfc72f7.pem", + "mimetype": "application/x-pem-file" + }, + "id": "40ee61ef-0bc5-4ea9-8718-4888ecf4305e", + "last_modified": 1766203022755 + }, + { + "schema": 1766199553624, + "derHash": "Gx3gaZDNCzBeLhJIBhA7Gtz/xJnyElBNx39I3QrWIgk=", + "attachment": { + "hash": "8790a12a03afdc57bfe66ff20ba236054617d0d5509f56709ce442cdb4e42a18", + "size": 2121, + "filename": "K89VOmb1cJAN3TK6bf4ezAbJGC1mLcG2Dh97dnwr3VQ=.pem", + "location": "security-state-staging/intermediates/8d7d0493-30e8-4926-b826-971a2e8d1ac7.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b85f75ad-679d-4d04-9406-289abb01f97e", + "last_modified": 1766203022751 + }, + { + "schema": 1766127551521, + "derHash": "s+hkZ9F4886+Eec5/CFp5MeFkHjsY/tAMYmB7zpOqyY=", + "attachment": { + "hash": "c09aff236ce4f0c0fdbedb011c055253734d85ee01f4731d866797babaed2236", + "size": 2182, + "filename": "0cRTd-vc1hjNFlHcLgLCHXUeWqn80bNDH_bs9qMTSPo=.pem", + "location": "security-state-staging/intermediates/1c94507f-bac7-453c-806d-0ac393641919.pem", + "mimetype": "application/x-pem-file" + }, + "id": "9d7646ec-f495-4a54-9a7d-de78added679", + "last_modified": 1766131022600 + }, + { + "schema": 1766026758172, + "derHash": "f+tvjJyEekSeC3AjhsIxmqEZHzjfAtA75ks/GuGXH5Q=", + "attachment": { + "hash": "fc4fafa94f5576c91b52ab38126ac5805910dcc29ff3f249ef2d66fe90c05f9e", + "size": 1297, + "filename": "cC948ZGRQqa4jzUFhFrPLMQ23ZJtoLcISSak2FyC1W4=.pem", + "location": "security-state-staging/intermediates/83d1c892-5314-4a26-959e-afc240dad367.pem", + "mimetype": "application/x-pem-file" + }, + "id": "199298d3-8252-408f-9699-40b091ffc5e8", + "last_modified": 1766030226231 + }, + { + "schema": 1765983546338, + "derHash": "mZPRgykq/EFlq80nK0RUMhRZGDrHtBkROVAzcrzMKKk=", + "attachment": { + "hash": "5cf3c0bfdc7b17d1ae7c3fc1d0bdbf35f10b3fb606b2c8ef50bbfd593549bf92", + "size": 1297, + "filename": "IlYqx6aK68NNdqzDPc346Xl199h2mbiAnsDRwDf7z8s=.pem", + "location": "security-state-staging/intermediates/654d91da-ac76-4cc4-8bfa-d4543598ce45.pem", + "mimetype": "application/x-pem-file" + }, + "id": "0f01296d-e0bc-4d08-944c-1020c8cbb5d0", + "last_modified": 1765987022922 + }, + { + "schema": 1765378748973, + "derHash": "opLN9ZkF/DABbCITHW8uSXRJ8VWgWiNMzsDgQhcb9w8=", + "attachment": { + "hash": "f07935f4dd9d0401863201b99d4893058b39b12c95ba433db82609dd649063d0", + "size": 2353, + "filename": "KsO_2ZCPae5nBbHkbrZGSJnspMLVD2HOwMOS6QlrN4g=.pem", + "location": "security-state-staging/intermediates/ea5c0f11-b67b-46e4-9200-4af33ec21a4d.pem", + "mimetype": "application/x-pem-file" + }, + "id": "8521464e-e102-4a3b-a482-86bf2c3362e2", + "last_modified": 1765382227673 + }, + { + "schema": 1765378748122, + "derHash": "ayJ+6IUPsRNHiouDWm4Dpus/tRkb+5qynYguppulCU0=", + "attachment": { + "hash": "d7c8880d2f6429c7a21df0c8f3510fa82b5385199bb840fcad3bf9417328e59d", + "size": 2345, + "filename": "wlNHZlPQ35zQrKv-RbxnwroHj_ZkxaY4wZ8DGQgvT-I=.pem", + "location": "security-state-staging/intermediates/c86a6fc0-65c7-446f-9506-2647e2f12975.pem", + "mimetype": "application/x-pem-file" + }, + "id": "13f87e5a-265e-4cac-8b2e-a1ebbd86b510", + "last_modified": 1765382227670 + }, + { + "schema": 1765378748571, + "derHash": "Rbxq6V5AerXlav3+7jjO2OlqaskDKtTRIsWstGvcMxI=", + "attachment": { + "hash": "bf21ea3106c8f4a2a5b4422ad54953b4fc54c7dca51ff6dd27b4a9d1994c73b1", + "size": 2361, + "filename": "Q-K2ZHTOJDK_ZL8mtXILZ6yfL-_txpYibcmmr4NWCxs=.pem", + "location": "security-state-staging/intermediates/89ea1551-1a9d-48a7-828c-6dc72e19fb6f.pem", + "mimetype": "application/x-pem-file" + }, + "id": "7545285f-f72e-4009-96a2-d914b8c774e0", + "last_modified": 1765382227667 + }, + { + "schema": 1765378749325, + "derHash": "d1f+MpjzmwusToMNb5jIKOend4DkhcAZWIZOfSSz29E=", + "attachment": { + "hash": "ad54f34781fb85b2cd469c50615b2c8e3113ecfd3e455e3b0f2184b5cd5c158b", + "size": 2345, + "filename": "E1-Hcf9n73xmMa2cczt-v4_p_6OrrN37lruLhCWKP_M=.pem", + "location": "security-state-staging/intermediates/c9dca64c-83dd-4afa-8d5c-e90dc9aa09f2.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b6a3c2b1-7236-4ec8-b4c2-b4dea64ce8e8", + "last_modified": 1765382227663 + }, + { + "schema": 1764817156198, + "derHash": "UZX54oPqjcINa5RkglkXZ5bUrTVDgqOBkFh9aPSNfVk=", + "attachment": { + "hash": "8341b7d535e19bb68109cb0754993e2a65157a98766d1dd8200dbe0e7dddd7a4", + "size": 1975, + "filename": "mySUJCQH0F8sT4UxrtcCo1T-VVJTTxIgq1eyf5wqbAs=.pem", + "location": "security-state-staging/intermediates/524f95da-7ef2-4502-ae2d-7459647fbbbd.pem", + "mimetype": "application/x-pem-file" + }, + "id": "ceaa59dc-8c7b-4c28-bd1c-672a598df7d6", + "last_modified": 1764820622846 + }, + { + "schema": 1764817155820, + "derHash": "BVQINDyz1IIwcsHf6Zrgme1PIDxq6T+6J+O2ZjSemEA=", + "attachment": { + "hash": "08ac715e2de25cd98032acfff7dfeb2604a7f81c433b069cf9f21a9cc1db8caf", + "size": 1134, + "filename": "-75kUEGD589mEpNjiQnoCeQPpBYDqWPrDlC3xwJuUtM=.pem", + "location": "security-state-staging/intermediates/899f5a14-a885-4a61-92d7-a8c58bf087ce.pem", + "mimetype": "application/x-pem-file" + }, + "id": "deb3bf93-0ada-463c-8f8c-5e88174c72ec", + "last_modified": 1764820622843 + }, + { + "schema": 1764817155443, + "derHash": "lEVHbTmJdKDGem0QJKCr/y1OBKCNtFW3zk4PpY0Wpak=", + "attachment": { + "hash": "efe5e2b32dd394d042fe6f4f9bd9591e829f415bdce3909bee87cb987aecff42", + "size": 1134, + "filename": "cjGARjmhkHouKDtiSoO33a4uOH7XEfeIO5iVcVsVbb8=.pem", + "location": "security-state-staging/intermediates/c9e4af62-30a3-4642-bf36-30c4435f9f3b.pem", + "mimetype": "application/x-pem-file" + }, + "id": "68c4032e-2562-4fc8-b778-5f31bca2d5ce", + "last_modified": 1764820622840 + }, + { + "schema": 1764817155036, + "derHash": "ocpRNACZtZTaw0vz3+DCchaIWl7CfsvDoJC+/vHLpj0=", + "attachment": { + "hash": "d69af697f9048ffcc18d359faab125a10f91f7aa10a573d0e31b810b12a8cc44", + "size": 1975, + "filename": "KKESdmQ_GK7Py9tAgDGG9Nw7M1gODAg5fAHThb7syWs=.pem", + "location": "security-state-staging/intermediates/d27ef6a3-58fb-447a-8dbe-30c726218faa.pem", + "mimetype": "application/x-pem-file" + }, + "id": "870f7e56-f650-479b-bf33-f593e36ba7e4", + "last_modified": 1764820622837 + }, + { + "schema": 1764601145271, + "derHash": "mZd78coyP6lgR+faX5O9bL8XAQ1tj7zgMJHs55yFfvo=", + "attachment": { + "hash": "2f39906c9b7687906afb73588a223b73d3bb40c543cf27bcdbf0ed00be872ad3", + "size": 1845, + "filename": "joBG7EysAVpQfODS0BVKS0Do5CsxZc-lRlcUNREtF-U=.pem", + "location": "security-state-staging/intermediates/46076939-8285-409a-a567-12a82a184141.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b18518de-0065-4318-a36f-348417e3f421", + "last_modified": 1764604622418 + }, + { "schema": 1764079149622, "derHash": "Vx5SHl4igQ0zuxo5mRFD6eZM2NrpfWWTGxlOGa7oHoY=", "attachment": { @@ -2939,19 +3225,6 @@ "last_modified": 1748789822362 }, { - "schema": 1748613468911, - "derHash": "aIaMMybttIZShO4SOqy6mO5jS9wotEPbsjSISnu326U=", - "attachment": { - "hash": "46aba2c3a09d43f58213046d0d24b8d72909214f6a12ef536b9ac464675df479", - "size": 6606, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/c08e74d4-41bc-4c0b-a013-178b2df71ef1.pem", - "mimetype": "application/x-pem-file" - }, - "id": "c7ce988b-e290-4807-8114-6aa381e488a9", - "last_modified": 1748617022274 - }, - { "schema": 1748613467301, "derHash": "6RWMavVojPz5iQIGxDBhyB+n/AfQjiiifAaMWAc6aZo=", "attachment": { @@ -2991,32 +3264,6 @@ "last_modified": 1748617022260 }, { - "schema": 1748613465743, - "derHash": "MjIq4uMadDC+HWwEvYyr+9JAx00snb6CeA2x8/c2YKY=", - "attachment": { - "hash": "1e96c83a685ed5ee76287c49fd81f3a8b5725ab6459929b3bcfbdfe275bac468", - "size": 6480, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/43790604-9e8f-4964-882d-4abfd11191ba.pem", - "mimetype": "application/x-pem-file" - }, - "id": "02655d38-e49e-4724-95ee-7106b411ae85", - "last_modified": 1748617022256 - }, - { - "schema": 1748613464898, - "derHash": "xrPG3kW8irklU2od8L7N6cQivhoGujkUJ1jB7MVYaA4=", - "attachment": { - "hash": "7838c760cb523cdd55efe81c53ee4c5a1ee9702379e1fdc610be0d4c52a1a332", - "size": 1999, - "filename": "LgbK4fwgsgDm-3SFV6RES-yTF9__LkFRZp4PeUTwqeA=.pem", - "location": "security-state-staging/intermediates/b6ca3b07-7c7f-41bf-8627-51e8624a2754.pem", - "mimetype": "application/x-pem-file" - }, - "id": "8535d081-5cb2-412d-8452-365fba55e282", - "last_modified": 1748617022249 - }, - { "schema": 1748570266149, "derHash": "QYuXFAxxBYoJ6TOwidDVaD4xM81fclSPbBWhdXm6J9s=", "attachment": { @@ -7484,78 +7731,6 @@ "last_modified": 1721872623502 }, { - "schema": 1721314066965, - "derHash": "F3cfaUf6NHJ4bTpEta3iqsupraIDujHr1L2M66/OSUo=", - "subject": "CN=NETLOCK TLS Qualified EV ECC CA,O=NETLOCK Kft.,L=Budapest,C=HU", - "subjectDN": "MHoxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEVMBMGA1UECgwMTkVUTE9DSyBLZnQuMSgwJgYDVQQDDB9ORVRMT0NLIFRMUyBRdWFsaWZpZWQgRVYgRUNDIENBMRcwFQYDVQRhDA5WQVRIVS0xMjIwMTUyMQ==", - "whitelist": false, - "attachment": { - "hash": "c9ece95860512e413eb8e22277dcad84c1d4ea14021af9ac7e7716b861cb07fc", - "size": 1622, - "filename": "8hGei3i00u2h5PvrbQEWCXLIaozLXkbULtTHvZ-3QZg=.pem", - "location": "security-state-staging/intermediates/61dcf76f-a95b-4f56-b986-2147acdca2ae.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "8hGei3i00u2h5PvrbQEWCXLIaozLXkbULtTHvZ+3QZg=", - "crlite_enrolled": false, - "id": "cbb6e3e5-aef1-4dbd-9969-ee713e54f56f", - "last_modified": 1721314623022 - }, - { - "schema": 1721314066604, - "derHash": "ABJ5uUndhnDxrm2kB5E7cm9hrveKL/GcLaOVIrMdwMc=", - "subject": "CN=NETLOCK TLS DV ECC CA,O=NETLOCK Kft.,L=Budapest,C=HU", - "subjectDN": "MHAxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEVMBMGA1UECgwMTkVUTE9DSyBLZnQuMR4wHAYDVQQDDBVORVRMT0NLIFRMUyBEViBFQ0MgQ0ExFzAVBgNVBGEMDlZBVEhVLTEyMjAxNTIx", - "whitelist": false, - "attachment": { - "hash": "3b6ba905027ab376f8a0d1dc686ac229d8f8c842a00fb4de31f37a87ec39469b", - "size": 1609, - "filename": "li0YuffRNQ1XEOF7VTuJakr96zJ_ALD7q_pshmkp7mU=.pem", - "location": "security-state-staging/intermediates/1cd4921a-91a9-442f-afba-b1891d75cbcf.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "li0YuffRNQ1XEOF7VTuJakr96zJ/ALD7q/pshmkp7mU=", - "crlite_enrolled": false, - "id": "82b342ce-a491-4a61-966c-d18c2dfb17a9", - "last_modified": 1721314623019 - }, - { - "schema": 1721249267434, - "derHash": "83562S7OoS8wdQHBJrPi1t4sdBfT4bctJgacE3DniJQ=", - "subject": "CN=NETLOCK TLS EV ECC CA,O=NETLOCK Kft.,L=Budapest,C=HU", - "subjectDN": "MHAxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEVMBMGA1UECgwMTkVUTE9DSyBLZnQuMR4wHAYDVQQDDBVORVRMT0NLIFRMUyBFViBFQ0MgQ0ExFzAVBgNVBGEMDlZBVEhVLTEyMjAxNTIx", - "whitelist": false, - "attachment": { - "hash": "6cec58bc428099e4938b4ed602a712431dbb35289dc6c5637c2fd4085f1a4506", - "size": 1609, - "filename": "cbddOej5UNOOv4KN9cNSXUsA1PNl6KujuXDCLRgBnFg=.pem", - "location": "security-state-staging/intermediates/46b3b865-76a2-4411-94a8-2ab122ecabcf.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "cbddOej5UNOOv4KN9cNSXUsA1PNl6KujuXDCLRgBnFg=", - "crlite_enrolled": false, - "id": "5069295a-97e9-45cf-8b62-e71284a97699", - "last_modified": 1721249822940 - }, - { - "schema": 1721249267110, - "derHash": "0OuQhAHzMkJgJjSv1RmRU2s616qQFYb960lV/lGw5Bk=", - "subject": "CN=NETLOCK TLS OV ECC CA,O=NETLOCK Kft.,L=Budapest,C=HU", - "subjectDN": "MHAxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEVMBMGA1UECgwMTkVUTE9DSyBLZnQuMR4wHAYDVQQDDBVORVRMT0NLIFRMUyBPViBFQ0MgQ0ExFzAVBgNVBGEMDlZBVEhVLTEyMjAxNTIx", - "whitelist": false, - "attachment": { - "hash": "c88e2b1e7410dd323a5bc34a7c3f85bd4affb345950c976b16e9db704ef4aac9", - "size": 1609, - "filename": "i16I9ip2k2JwWRaZXmFeIeiS2KzOYhrChFGnUDooIl0=.pem", - "location": "security-state-staging/intermediates/4c2b366d-3949-4dd1-b8aa-a6cacea9a11f.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "i16I9ip2k2JwWRaZXmFeIeiS2KzOYhrChFGnUDooIl0=", - "crlite_enrolled": false, - "id": "ad955f30-a150-4a7e-8606-f8be1f785134", - "last_modified": 1721249822937 - }, - { "schema": 1721227673766, "derHash": "t3bf8AeekKa/aJc4DUDWzwyA/obmWgbg3wLVgah3BeI=", "subject": "CN=GlobalSign Atlas R3 DV TLS CA 2024 Q4,O=GlobalSign nv-sa,C=BE", @@ -10706,78 +10881,6 @@ "last_modified": 1693407423723 }, { - "schema": 1693342092773, - "derHash": "snT+vm68cYZsM58Bitkz581oBbQ7/ebSGNwhFHFp12s=", - "subject": "CN=e-Szigno Online SSL CA 2017,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHcxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxJDAiBgNVBAMMG2UtU3ppZ25vIE9ubGluZSBTU0wgQ0EgMjAxNw==", - "whitelist": false, - "attachment": { - "hash": "72bc4f35ba6c3e85f36f856880dc364ba08e1ce42b81244f1ebf53e8514a8d5f", - "size": 1435, - "filename": "G_JwHP_ydSe7pufWcUyNckBrxBbnQ6Kmqw_OFPPiQI0=.pem", - "location": "security-state-staging/intermediates/9cda4ca9-3689-48fd-af2c-640bd25284ff.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "G/JwHP/ydSe7pufWcUyNckBrxBbnQ6Kmqw/OFPPiQI0=", - "crlite_enrolled": false, - "id": "df7a20cf-df80-4bde-8483-7d48af559d55", - "last_modified": 1693342624041 - }, - { - "schema": 1693342093437, - "derHash": "F0TXMTT5XOkWrevub3V0LEeTaGi2TSoMFi7xMpAPDuQ=", - "subject": "CN=e-Szigno Class3 SSL CA 2017,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHcxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxJDAiBgNVBAMMG2UtU3ppZ25vIENsYXNzMyBTU0wgQ0EgMjAxNw==", - "whitelist": false, - "attachment": { - "hash": "f875b715f8027d390ccd47c7e62fa9a8cb805078002c5447fead8ec98441abbd", - "size": 1435, - "filename": "69Duo3nmlQnUEvqzlU27qTDaDY9K1yN0wfdopIs9Y7s=.pem", - "location": "security-state-staging/intermediates/1986ba70-a9d5-4c04-9f62-2c8f532bde42.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "69Duo3nmlQnUEvqzlU27qTDaDY9K1yN0wfdopIs9Y7s=", - "crlite_enrolled": false, - "id": "0b79b1b7-45eb-4167-b5a4-52c77a4ae693", - "last_modified": 1693342624038 - }, - { - "schema": 1693342093097, - "derHash": "/Y4MjMzbuuTB8HwkjRH+u7D7PaDNDYlKioDYBKjTmn0=", - "subject": "CN=e-Szigno Class2 SSL CA 2017,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHcxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxJDAiBgNVBAMMG2UtU3ppZ25vIENsYXNzMiBTU0wgQ0EgMjAxNw==", - "whitelist": false, - "attachment": { - "hash": "eb233f6d83b210e52823cdff3145fe53c2632e2cf95904c5ac6d29368eb61943", - "size": 1435, - "filename": "HGXB7TIfcoLqLINF3LJD2A9t3V4VdHjcBv6LboViQMo=.pem", - "location": "security-state-staging/intermediates/36fd2d27-8c24-4aee-9ba5-feccce9483d5.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "HGXB7TIfcoLqLINF3LJD2A9t3V4VdHjcBv6LboViQMo=", - "crlite_enrolled": false, - "id": "c2701cd6-d220-4744-a18b-3a3b323259ee", - "last_modified": 1693342624035 - }, - { - "schema": 1693342092400, - "derHash": "akjnNKxvBnFAySitu8xEkkadQW3i08mnoZfWI3DqwOI=", - "subject": "CN=e-Szigno Qualified TLS CA 2018,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHoxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxJzAlBgNVBAMMHmUtU3ppZ25vIFF1YWxpZmllZCBUTFMgQ0EgMjAxOA==", - "whitelist": false, - "attachment": { - "hash": "acb85909161220196625771f857155f74f662f21acb6efeab36c92266013233a", - "size": 1439, - "filename": "qd9EIyfp7CEtbkxafeyYAuC_8wQBWqGZflkLznwnuyc=.pem", - "location": "security-state-staging/intermediates/86baa78d-dbf7-44c9-b002-1a204379bad6.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "qd9EIyfp7CEtbkxafeyYAuC/8wQBWqGZflkLznwnuyc=", - "crlite_enrolled": false, - "id": "9cf88ec1-23c0-487b-9991-3fc43bbf71c0", - "last_modified": 1693342624031 - }, - { "schema": 1693104479614, "derHash": "8BBP8XJ0YI8aGKHh6r+OaKUfUAqH4u+iLstiJ2P+9M8=", "subject": "CN=Gandi RSA Domain Validation Secure Server CA 3,O=Gandi,C=FR", @@ -12038,60 +12141,6 @@ "last_modified": 1691204223383 }, { - "schema": 1690296478698, - "derHash": "oRXsDXPC6KuxiDE0+i3w2YXnQYgWBKQIKQfXBeJAfHI=", - "subject": "CN=e-Szigno Qualified TLS CA 2023,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHoxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxJzAlBgNVBAMMHmUtU3ppZ25vIFF1YWxpZmllZCBUTFMgQ0EgMjAyMw==", - "whitelist": false, - "attachment": { - "hash": "e5582687d546ac85a09c343f23ce9764cbc06e78844654f61940dde5034b145f", - "size": 1439, - "filename": "FfstIBJRQL_OSddFhkXVXxYXvlwpeV4N5QyzQSOMer4=.pem", - "location": "security-state-staging/intermediates/c3eaa351-c45f-4c58-b312-1a214832f8b5.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "FfstIBJRQL/OSddFhkXVXxYXvlwpeV4N5QyzQSOMer4=", - "crlite_enrolled": false, - "id": "da49e20c-b2f2-4d31-b07b-1064e96e3b70", - "last_modified": 1690297023211 - }, - { - "schema": 1690296478406, - "derHash": "wEww5A3X6WmC+GBuvvNVSOXG9PeSpSpReM8koOn9c5Y=", - "subject": "CN=e-Szigno DV TLS CA 2023,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHMxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIDAeBgNVBAMMF2UtU3ppZ25vIERWIFRMUyBDQSAyMDIz", - "whitelist": false, - "attachment": { - "hash": "e024d6f71f79e22a937ce5712dfbf1c17be250937f7a1a1b7aaa69d96607e27b", - "size": 1431, - "filename": "XxwXFeAhoV94cB2wpw1cfCsPS8BPvJevCyCobm4QKxg=.pem", - "location": "security-state-staging/intermediates/6e6e1fde-6155-4773-b392-6ee7800fcbdc.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "XxwXFeAhoV94cB2wpw1cfCsPS8BPvJevCyCobm4QKxg=", - "crlite_enrolled": false, - "id": "0d228708-baa8-45e3-a4ea-0bce48f43f86", - "last_modified": 1690297023208 - }, - { - "schema": 1690296478088, - "derHash": "EtRTenVH/2PDaSNiKiga/+lIESDbeBd2qvmBofm2aNg=", - "subject": "CN=e-Szigno OV TLS CA 2023,O=Microsec Ltd.,L=Budapest,C=HU", - "subjectDN": "MHMxCzAJBgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxIDAeBgNVBAMMF2UtU3ppZ25vIE9WIFRMUyBDQSAyMDIz", - "whitelist": false, - "attachment": { - "hash": "ab5bf3cb8d3a60923137ac8e379030e9e4208f811155f11e65307099425c5d04", - "size": 1431, - "filename": "CBpKKUYnWuYNjyn6A4C6-fbIOhB5kbX1rkHpBJ-7g0Y=.pem", - "location": "security-state-staging/intermediates/0052bd62-f25b-4c75-b5e2-123cf02b80fe.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "CBpKKUYnWuYNjyn6A4C6+fbIOhB5kbX1rkHpBJ+7g0Y=", - "crlite_enrolled": false, - "id": "a206224b-c943-44b0-b74e-3c4bfb484c15", - "last_modified": 1690297023205 - }, - { "schema": 1689929282855, "derHash": "5G+yp1CXo0XUJG3PRKENqnHZ/Q6/q2G6Z+bbhO5bbKs=", "subject": "CN=GlobalSign GCC R6 AlphaSSL CA 2023,O=GlobalSign nv-sa,C=BE", @@ -14576,24 +14625,6 @@ "last_modified": 1666727874812 }, { - "schema": 1666727388343, - "derHash": "ppxZlm67zf7H9P8CiMhv9gNW+nhgIIuTtDoJWwYAzB4=", - "subject": "CN=nazwaSSL,OU=http://nazwa.pl,O=nazwa.pl sp. z o.o.,C=PL", - "subjectDN": "MFgxCzAJBgNVBAYTAlBMMRwwGgYDVQQKDBNuYXp3YS5wbCBzcC4geiBvLm8uMRgwFgYDVQQLDA9odHRwOi8vbmF6d2EucGwxETAPBgNVBAMMCG5hendhU1NM", - "whitelist": false, - "attachment": { - "hash": "882b6da025cdfc61d89e03806a350163dfdfc251470ff6e5f8433ca8370adea9", - "size": 1605, - "filename": "AW6U8qPqk114rfl2sAhiEim2Pf0mq_Rb_BeWSlVAiP4=.pem", - "location": "security-state-staging/intermediates/4a692d29-8a7d-4aa6-b0fa-426ad6f59300.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "AW6U8qPqk114rfl2sAhiEim2Pf0mq/Rb/BeWSlVAiP4=", - "crlite_enrolled": false, - "id": "bbeb9d9e-3dd2-4546-8c96-d7fc9be4f2e6", - "last_modified": 1666727874798 - }, - { "schema": 1666727382505, "derHash": "6sJBwEQKNoMBETgzNrwgysdAnCD26I1PhPSCe+kZ4zg=", "subject": "CN=e-Szigno SSL CA 2014,O=Microsec Ltd.,L=Budapest,C=HU", @@ -16016,24 +16047,6 @@ "last_modified": 1666727872798 }, { - "schema": 1666727452311, - "derHash": "I7zV16lqUTqYHq0nk25ZqAKKgHvXKGBBj2i1VaKRFnA=", - "subject": "CN=Certigna Identity CA,OU=0002 48146308100036,O=DHIMYOTIS,C=FR", - "subjectDN": "MIGCMQswCQYDVQQGEwJGUjESMBAGA1UECgwJREhJTVlPVElTMRwwGgYDVQQLDBMwMDAyIDQ4MTQ2MzA4MTAwMDM2MSIwIAYDVQRhDBlOVFJGUi0wMDAyIDQ4MTQ2MzA4MTAwMDM2MR0wGwYDVQQDDBRDZXJ0aWduYSBJZGVudGl0eSBDQQ==", - "whitelist": false, - "attachment": { - "hash": "211c9fabe3b82a58caaded8a0e4fe51f77d8506e143103dc3f8db31704cb7e6e", - "size": 2178, - "filename": "lwJkDQYtogkGJEFJMX5DjskCXh2W7dNBRH_eJZlWjWo=.pem", - "location": "security-state-staging/intermediates/00c1f21f-a695-478a-9e33-19d48f9525d8.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "lwJkDQYtogkGJEFJMX5DjskCXh2W7dNBRH/eJZlWjWo=", - "crlite_enrolled": false, - "id": "f695b618-333e-4759-a681-19c5f52aeb16", - "last_modified": 1666727872784 - }, - { "schema": 1666727400274, "derHash": "HMNYpt+gp2u1RwZg1487JfI8zWOVZn5JzPyCAdo9GS0=", "subject": "CN=Certigna Entity CA,OU=0002 48146308100036,O=DHIMYOTIS,C=FR", @@ -18554,24 +18567,6 @@ "last_modified": 1666727869444 }, { - "schema": 1666727411011, - "derHash": "co2vQG/ans1NVV3BLyfWfW3kRSRpVGShIGaSAPILKEs=", - "subject": "CN=AgID CA1,OU=Area Soluzioni per la Pubblica Amministrazione,O=Agenzia per l'Italia Digitale,L=Roma,C=IT", - "subjectDN": "MIGQMQswCQYDVQQGEwJJVDENMAsGA1UEBwwEUm9tYTEmMCQGA1UECgwdQWdlbnppYSBwZXIgbCdJdGFsaWEgRGlnaXRhbGUxNzA1BgNVBAsMLkFyZWEgU29sdXppb25pIHBlciBsYSBQdWJibGljYSBBbW1pbmlzdHJhemlvbmUxETAPBgNVBAMMCEFnSUQgQ0Ex", - "whitelist": false, - "attachment": { - "hash": "ff3a99bc1b4b533a0133498e18b56144ddeaaae3dfb43cf3c18b178f16a864a6", - "size": 6127, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/f92cd274-a6c5-4692-89d8-bb79a6ff2229.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=", - "crlite_enrolled": false, - "id": "fbd44422-0d3b-47de-9e7b-2a8f647897eb", - "last_modified": 1666727869413 - }, - { "schema": 1666727367726, "derHash": "N/0pxwHWl3mY8gUVPqikwumWNU3wctSYTcXYsfdaK2E=", "subject": "CN=SwissNS TLS Issuing RSA CA R1,O=swissns GmbH,L=Luzern,ST=Luzern,C=CH", @@ -18590,24 +18585,6 @@ "last_modified": 1666727869399 }, { - "schema": 1666727395775, - "derHash": "0HC/AZz7pGyNNBTW/o19IQd/NUXC/oOePSUPMk43xas=", - "subject": "CN=AgID CA1,OU=Area Soluzioni per la Pubblica Amministrazione,O=Agenzia per l'Italia Digitale,L=Roma,C=IT", - "subjectDN": "MIGQMQswCQYDVQQGEwJJVDENMAsGA1UEBwwEUm9tYTEmMCQGA1UECgwdQWdlbnppYSBwZXIgbCdJdGFsaWEgRGlnaXRhbGUxNzA1BgNVBAsMLkFyZWEgU29sdXppb25pIHBlciBsYSBQdWJibGljYSBBbW1pbmlzdHJhemlvbmUxETAPBgNVBAMMCEFnSUQgQ0Ex", - "whitelist": false, - "attachment": { - "hash": "acd4d6d8a473c1fc0d659c79901ef8ffbd4acdcd519a73233aa6ae62e6eafbda", - "size": 6208, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/995cf1f7-a18a-4753-a7dd-edadaef3dfe1.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=", - "crlite_enrolled": false, - "id": "d5a2518e-b5a8-4ddb-bf31-9b97ea3416f9", - "last_modified": 1666727869386 - }, - { "schema": 1666727382024, "derHash": "lItxEa9C9UbVec/1ziveyCE03ZkUhCvdsMUocutgTjk=", "subject": "CN=SSL.com SSL Intermediate CA ECC R2,O=SSL Corp,L=Houston,ST=Texas,C=US", @@ -18626,24 +18603,6 @@ "last_modified": 1666727869373 }, { - "schema": 1666727357771, - "derHash": "knHKfojO0l7R0fjgivoDsR0f4S7RElWFraUBJD4srAk=", - "subject": "CN=AgID CA1,OU=Area Soluzioni per la Pubblica Amministrazione,O=Agenzia per l'Italia Digitale,L=Roma,C=IT", - "subjectDN": "MIGQMQswCQYDVQQGEwJJVDENMAsGA1UEBwwEUm9tYTEmMCQGA1UECgwdQWdlbnppYSBwZXIgbCdJdGFsaWEgRGlnaXRhbGUxNzA1BgNVBAsMLkFyZWEgU29sdXppb25pIHBlciBsYSBQdWJibGljYSBBbW1pbmlzdHJhemlvbmUxETAPBgNVBAMMCEFnSUQgQ0Ex", - "whitelist": false, - "attachment": { - "hash": "134d08513f86579b09ea4693ac4d3685f5fc88e012db239d7b017feecbf3f87e", - "size": 6306, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/f3792909-e805-46b5-a4d0-bb3979399b7b.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=", - "crlite_enrolled": false, - "id": "07f2dc33-3379-48ad-b352-dc3a300c8197", - "last_modified": 1666727869330 - }, - { "schema": 1666727444337, "derHash": "g5Tj0H780el+psuiFMOgVcF92afr+N3gAg/N23byhlM=", "subject": "CN=SSL.com EV SSL Intermediate CA ECC R2,O=SSL Corp,L=Houston,ST=Texas,C=US", @@ -18698,24 +18657,6 @@ "last_modified": 1666727869270 }, { - "schema": 1666727413717, - "derHash": "YBjw3/qk1I9rNj29iVtD1yBpH5ZY49lAcn+xSZ1SUAU=", - "subject": "CN=AgID CA1,OU=Area Soluzioni per la Pubblica Amministrazione,O=Agenzia per l'Italia Digitale,L=Roma,C=IT", - "subjectDN": "MIGQMQswCQYDVQQGEwJJVDENMAsGA1UEBwwEUm9tYTEmMCQGA1UECgwdQWdlbnppYSBwZXIgbCdJdGFsaWEgRGlnaXRhbGUxNzA1BgNVBAsMLkFyZWEgU29sdXppb25pIHBlciBsYSBQdWJibGljYSBBbW1pbmlzdHJhemlvbmUxETAPBgNVBAMMCEFnSUQgQ0Ex", - "whitelist": false, - "attachment": { - "hash": "2ce5754aafd954d566863872c84b5b09cc520df3b7c3fcdf3f3109c176f7236f", - "size": 6204, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/71d7de8a-96d4-4d28-95c1-ddd904ad7b95.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=", - "crlite_enrolled": false, - "id": "f311d986-6d46-4d1e-87fe-52110484e044", - "last_modified": 1666727869243 - }, - { "schema": 1666727453330, "derHash": "TpO8rdXU6VMxrjYt+cYGbMp/lCqP3k0+4BHeNAdPWEA=", "subject": "CN=3CX CA RSA R1,O=3CX,C=CY", @@ -18734,24 +18675,6 @@ "last_modified": 1666727869229 }, { - "schema": 1666727368224, - "derHash": "RkiQCwQnJiirey2C3fdM1beNd/hlLVu/KCS7ZN0Xhlk=", - "subject": "CN=AgID CA1,OU=Area Soluzioni per la Pubblica Amministrazione,O=Agenzia per l'Italia Digitale,L=Roma,C=IT", - "subjectDN": "MIGQMQswCQYDVQQGEwJJVDENMAsGA1UEBwwEUm9tYTEmMCQGA1UECgwdQWdlbnppYSBwZXIgbCdJdGFsaWEgRGlnaXRhbGUxNzA1BgNVBAsMLkFyZWEgU29sdXppb25pIHBlciBsYSBQdWJibGljYSBBbW1pbmlzdHJhemlvbmUxETAPBgNVBAMMCEFnSUQgQ0Ex", - "whitelist": false, - "attachment": { - "hash": "db3cb445b73014519c03c7c1b234573a3cf1ba480f778be153e10d2069492dc1", - "size": 6383, - "filename": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=.pem", - "location": "security-state-staging/intermediates/6f6d6bc0-5ac7-497e-b77d-50b85aeaad14.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "OePGxvE8liB3UXJpTSD4HtrVWoYTk0zap8N5Om0muGs=", - "crlite_enrolled": false, - "id": "ec340448-450e-44bb-9a1b-f58c6fa4661e", - "last_modified": 1666727869203 - }, - { "schema": 1666727406308, "derHash": "mKDDuhiZJYWV0E8V0TTFcy6GS3VcZIpI0cF/CiYO9ac=", "subject": "CN=TrustSafe TLS RSA SubCA R1,O=Isimtescil Bilisim A.S.,C=TR", @@ -20228,24 +20151,6 @@ "last_modified": 1666727867498 }, { - "schema": 1666727385276, - "derHash": "vbeqKPFk5LwV1pIHM7Ij7ZjlUiCj5W87Hs/QTofTC3E=", - "subject": "CN=InCommon ECC Server CA,OU=InCommon,O=Internet2,L=Ann Arbor,ST=MI,C=US", - "subjectDN": "MHYxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNSTESMBAGA1UEBxMJQW5uIEFyYm9yMRIwEAYDVQQKEwlJbnRlcm5ldDIxETAPBgNVBAsTCEluQ29tbW9uMR8wHQYDVQQDExZJbkNvbW1vbiBFQ0MgU2VydmVyIENB", - "whitelist": false, - "attachment": { - "hash": "6ba40ddb17a0c5e550d03cf27b415658441db787e87cc7efbaeacbe40e7954dd", - "size": 1293, - "filename": "8Ped1-_2NPqUB2Q-UJri8oBJaaIrldtkbw8LmkGTkrE=.pem", - "location": "security-state-staging/intermediates/b23bebad-6d65-4274-8012-f0cc243b967d.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "8Ped1+/2NPqUB2Q+UJri8oBJaaIrldtkbw8LmkGTkrE=", - "crlite_enrolled": false, - "id": "d876197d-e674-4e0b-8d72-41091e4b2fb3", - "last_modified": 1666727867454 - }, - { "schema": 1666727366065, "derHash": "51WunELBMV8n3NBkUcar4LxqrW7dwuVjXPxJGBktNEw=", "subject": "CN=sslTrus (RSA) EV CA,O=sslTrus (上海锐成信息科技有限公司),C=CN", @@ -29210,24 +29115,6 @@ "last_modified": 1576536533289 }, { - "schema": 1576535711746, - "derHash": "k1BhvlLI6ojANLOa39UiuzFMv1ME5acGRzXdvaMkKq8=", - "subject": "CN=Certigna Entity Code Signing CA,OU=0002 48146308100036,O=DHIMYOTIS,C=FR", - "subjectDN": "MIGIMQswCQYDVQQGEwJGUjESMBAGA1UECgwJREhJTVlPVElTMRwwGgYDVQQLDBMwMDAyIDQ4MTQ2MzA4MTAwMDM2MR0wGwYDVQRhDBROVFJGUi00ODE0NjMwODEwMDAzNjEoMCYGA1UEAwwfQ2VydGlnbmEgRW50aXR5IENvZGUgU2lnbmluZyBDQQ==", - "whitelist": false, - "attachment": { - "hash": "dfa52fac8680622c2c208aa337be1f107052398f893cb8cdaa1bc8ee0c3c1f93", - "size": 2186, - "filename": "u3ZvFIlkZqOQDQbj9Abh3WXDOESr4pASOdoob9Oo2YI=.pem", - "location": "security-state-staging/intermediates/a34d09dc-c1e9-4b35-bb0f-0c7ee3e64ad8.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "u3ZvFIlkZqOQDQbj9Abh3WXDOESr4pASOdoob9Oo2YI=", - "crlite_enrolled": false, - "id": "90283279-5bef-4526-8705-37883c1dc2bc", - "last_modified": 1576536533281 - }, - { "schema": 1576535685544, "derHash": "Rcsdh0ywO9XFtuB5yPwp5RUh7lYoSGMBlkpB+Uuln4g=", "subject": "CN=GlobalSign Root R46,O=GlobalSign nv-sa,C=BE", @@ -30668,5 +30555,5 @@ "last_modified": 1559865884636 } ], - "timestamp": 1764082622611 + "timestamp": 1767110222688 } diff -Nru firefox-esr-140.6.0esr/services/settings/dumps/security-state/onecrl.json firefox-esr-140.7.0esr/services/settings/dumps/security-state/onecrl.json --- firefox-esr-140.6.0esr/services/settings/dumps/security-state/onecrl.json 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/services/settings/dumps/security-state/onecrl.json 2026-01-06 21:09:51.000000000 +0000 @@ -1,6 +1,246 @@ { "data": [ { + "schema": 1764954051281, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", + "serialNumber": "AJFZN56em7HZgckLifaauTo=", + "id": "09f13136-0183-4582-be09-38b0dec73c60", + "last_modified": 1765387587348 + }, + { + "schema": 1764954051205, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", + "serialNumber": "AN+yROlloEAqqg4G6aHdFk8=", + "id": "c7a3bd39-ee1d-4675-9e99-e954502bc6ef", + "last_modified": 1765387587342 + }, + { + "schema": 1764954051050, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MDcxFDASBgNVBAoMC1RlbGlhU29uZXJhMR8wHQYDVQQDDBZUZWxpYVNvbmVyYSBSb290IENBIHYx", + "serialNumber": "TEYq9tv794BPhMF8/qlytg==", + "id": "159440cb-b6c1-4a3b-abb1-463a4a8e00a6", + "last_modified": 1765387587336 + }, + { + "schema": 1764954050974, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGCMQswCQYDVQQGEwJERTErMCkGA1UECgwiVC1TeXN0ZW1zIEVudGVycHJpc2UgU2VydmljZXMgR21iSDEfMB0GA1UECwwWVC1TeXN0ZW1zIFRydXN0IENlbnRlcjElMCMGA1UEAwwcVC1UZWxlU2VjIEdsb2JhbFJvb3QgQ2xhc3MgMg==", + "serialNumber": "DQhC23luw5lX4cFe2MeDxw==", + "id": "73149904-bb79-44a5-9b14-eebb7c1ee93f", + "last_modified": 1765387587331 + }, + { + "schema": 1764954050730, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGCMQswCQYDVQQGEwJERTErMCkGA1UECgwiVC1TeXN0ZW1zIEVudGVycHJpc2UgU2VydmljZXMgR21iSDEfMB0GA1UECwwWVC1TeXN0ZW1zIFRydXN0IENlbnRlcjElMCMGA1UEAwwcVC1UZWxlU2VjIEdsb2JhbFJvb3QgQ2xhc3MgMg==", + "serialNumber": "Ks7V+RxC8r+Ri1uAk6jAJA==", + "id": "3b08fe4c-94d3-41e5-bb12-7b4ac1499c76", + "last_modified": 1765387587326 + }, + { + "schema": 1764954050510, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGsxCzAJBgNVBAYTAklUMQ4wDAYDVQQHDAVNaWxhbjEjMCEGA1UECgwaQWN0YWxpcyBTLnAuQS4vMDMzNTg1MjA5NjcxJzAlBgNVBAMMHkFjdGFsaXMgQXV0aGVudGljYXRpb24gUm9vdCBDQQ==", + "serialNumber": "SYgCH6U1+Go=", + "id": "92434599-a653-47af-aac7-e8a1f40242d6", + "last_modified": 1765387587321 + }, + { + "schema": 1764954050815, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", + "serialNumber": "WyXOaQfEJlVm0zkMmalUrQ==", + "id": "7cfc413a-e855-4723-afd4-5d77984fdb40", + "last_modified": 1765387587316 + }, + { + "schema": 1764954050436, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGsxCzAJBgNVBAYTAklUMQ4wDAYDVQQHDAVNaWxhbjEjMCEGA1UECgwaQWN0YWxpcyBTLnAuQS4vMDMzNTg1MjA5NjcxJzAlBgNVBAMMHkFjdGFsaXMgQXV0aGVudGljYXRpb24gUm9vdCBDQQ==", + "serialNumber": "bHGKodaE7KY=", + "id": "1e09c558-f654-4e08-95d4-a9d0ed05bc5d", + "last_modified": 1765387587311 + }, + { + "schema": 1764954050282, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", + "serialNumber": "AOiuT82x88HxRnXSU5rusCc=", + "id": "7885b8f0-842b-445f-9849-e6be71654fba", + "last_modified": 1765387587306 + }, + { + "schema": 1764954051362, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGsxCzAJBgNVBAYTAklUMQ4wDAYDVQQHDAVNaWxhbjEjMCEGA1UECgwaQWN0YWxpcyBTLnAuQS4vMDMzNTg1MjA5NjcxJzAlBgNVBAMMHkFjdGFsaXMgQXV0aGVudGljYXRpb24gUm9vdCBDQQ==", + "serialNumber": "JBwXCyRk4Bg=", + "id": "9b0b6908-be23-450a-9b16-78cb603c53ae", + "last_modified": 1765387587300 + }, + { + "schema": 1764954050656, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGMxCzAJBgNVBAYTAkRFMScwJQYDVQQKDB5EZXV0c2NoZSBUZWxla29tIFNlY3VyaXR5IEdtYkgxKzApBgNVBAMMIlRlbGVrb20gU2VjdXJpdHkgVExTIEVDQyBSb290IDIwMjA=", + "serialNumber": "H7KN4bwqtn0heoLQH+Ikfg==", + "id": "d803458c-98bd-4269-9a47-6da26c059d1f", + "last_modified": 1765387587295 + }, + { + "schema": 1764900945407, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIEVDQyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", + "serialNumber": "d80mOd5SbH9F5w2RaqvnRg==", + "id": "bceaddea-4834-4c20-bc0d-f9ff865df807", + "last_modified": 1765387587290 + }, + { + "schema": 1764954051131, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGMxCzAJBgNVBAYTAkRFMScwJQYDVQQKDB5EZXV0c2NoZSBUZWxla29tIFNlY3VyaXR5IEdtYkgxKzApBgNVBAMMIlRlbGVrb20gU2VjdXJpdHkgVExTIFJTQSBSb290IDIwMjM=", + "serialNumber": "EohvAEWvDUpPBmzprCXgAA==", + "id": "a87e2e5c-8215-43e0-adb1-8a13121ff595", + "last_modified": 1765387587285 + }, + { + "schema": 1764954050584, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGsxCzAJBgNVBAYTAklUMQ4wDAYDVQQHDAVNaWxhbjEjMCEGA1UECgwaQWN0YWxpcyBTLnAuQS4vMDMzNTg1MjA5NjcxJzAlBgNVBAMMHkFjdGFsaXMgQXV0aGVudGljYXRpb24gUm9vdCBDQQ==", + "serialNumber": "SYGm41PP2qU=", + "id": "26ade970-ec10-4be1-b857-ba2e83cd9456", + "last_modified": 1765387587280 + }, + { + "schema": 1764954050363, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MIGFMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDErMCkGA1UEAxMiQ09NT0RPIFJTQSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", + "serialNumber": "C6LQHcvLd3borGUJesElQQ==", + "id": "53f31f8b-61e9-4a6e-8a53-3a723fe17256", + "last_modified": 1765387587274 + }, + { + "schema": 1764954050892, + "details": { + "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=2004418", + "who": "", + "why": "", + "name": "", + "created": "" + }, + "enabled": false, + "issuerName": "MGsxCzAJBgNVBAYTAklUMQ4wDAYDVQQHDAVNaWxhbjEjMCEGA1UECgwaQWN0YWxpcyBTLnAuQS4vMDMzNTg1MjA5NjcxJzAlBgNVBAMMHkFjdGFsaXMgQXV0aGVudGljYXRpb24gUm9vdCBDQQ==", + "serialNumber": "ZyDvubBx51s=", + "id": "c9c582ba-71f1-4147-9a1b-95e48cdaaa5a", + "last_modified": 1765387587268 + }, + { "schema": 1759112148984, "details": { "bug": "https://bugzilla.mozilla.org/show_bug.cgi?id=1991483", @@ -25994,5 +26234,5 @@ "last_modified": 1480349158647 } ], - "timestamp": 1759512219332 + "timestamp": 1765387587348 } diff -Nru firefox-esr-140.6.0esr/sourcestamp.txt firefox-esr-140.7.0esr/sourcestamp.txt --- firefox-esr-140.6.0esr/sourcestamp.txt 2025-12-01 18:16:10.000000000 +0000 +++ firefox-esr-140.7.0esr/sourcestamp.txt 2026-01-06 21:10:19.000000000 +0000 @@ -1,2 +1,2 @@ -20251201132345 -https://hg.mozilla.org/releases/mozilla-esr140/rev/18556c0b079c839f4d15597a57b0f048fdadcedd +20260106170501 +https://hg.mozilla.org/releases/mozilla-esr140/rev/82e96a128bf5e3e7dd6e5180c9528f623ba5e0f7 diff -Nru firefox-esr-140.6.0esr/taskcluster/config.yml firefox-esr-140.7.0esr/taskcluster/config.yml --- firefox-esr-140.6.0esr/taskcluster/config.yml 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/config.yml 2026-01-06 21:09:51.000000000 +0000 @@ -643,11 +643,36 @@ workers: aliases: - b-linux.*: + b-linux-gcp: provisioner: '{trust-domain}-{level}' implementation: docker-worker os: linux - worker-type: '{alias}' + worker-type: b-linux + b-linux-gcp-aarch64: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: b-linux-aarch64 + b-linux-kvm-gcp: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: b-linux-kvm + b-linux-medium-gcp: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: b-linux-medium + b-linux-large-gcp: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: b-linux-large + b-linux-xlarge-gcp: + provisioner: '{trust-domain}-{level}' + implementation: docker-worker + os: linux + worker-type: b-linux-xlarge b-win2012: provisioner: '{trust-domain}-{level}' implementation: generic-worker @@ -677,12 +702,12 @@ provisioner: '{trust-domain}-{level}' implementation: docker-worker os: linux - worker-type: '{alias}' + worker-type: images images-gcp-aarch64: provisioner: '{trust-domain}-{level}' implementation: docker-worker os: linux - worker-type: '{alias}' + worker-type: images-aarch64 addon: provisioner: scriptworker-k8s implementation: push-addons @@ -838,16 +863,6 @@ implementation: docker-worker os: linux worker-type: '{alias}' - t-linux(-large|-xlarge|-xlarge-source): - provisioner: '{trust-domain}-t' - implementation: docker-worker - os: linux - worker-type: '{alias}-gcp' - t-linux(-large|-xlarge|-xlarge-source)-noscratch: - provisioner: '{trust-domain}-t' - implementation: docker-worker - os: linux - worker-type: '{alias}-gcp' t-linux-kvm: provisioner: '{trust-domain}-t' implementation: docker-worker @@ -983,7 +998,7 @@ provisioner: '{trust-domain}-t' implementation: docker-worker os: linux - worker-type: misc-gcp + worker-type: misc mac-signing: diff -Nru firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/fetch.py firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/fetch.py --- firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/fetch.py 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/fetch.py 2026-01-06 21:09:51.000000000 +0000 @@ -202,6 +202,7 @@ # download. Required("key-path"): str, }, + Optional("headers"): [str], # The name to give to the generated artifact. Defaults to the file # portion of the URL. Using a different extension converts the # archive to the given type. Only conversion to .tar.zst is @@ -265,6 +266,9 @@ ] ) + for header in fetch.get("headers", []): + command.extend(["--header", header]) + command.extend( [ fetch["url"], diff -Nru firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/test/__init__.py firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/test/__init__.py --- firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/test/__init__.py 2025-12-01 18:15:40.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/test/__init__.py 2026-01-06 21:09:50.000000000 +0000 @@ -127,7 +127,6 @@ "large-noscratch", "xlarge", "xlarge-noscratch", - "large-dw", ), ), # type of virtualization or hardware required by test. diff -Nru firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/test/other.py firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/test/other.py --- firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/test/other.py 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/test/other.py 2026-01-06 21:09:51.000000000 +0000 @@ -607,9 +607,6 @@ task["instance-size"] = "xlarge-noscratch" if "jittest" in task["test-name"]: task["instance-size"] = "xlarge" - elif task["suite"] == "xpcshell" and "linux" in task["build-platform"]: - # TODO figure out OOM/timeout issues on d2g (bug 1962414) - task["instance-size"] = "large-dw" # Temporarily disable Mac tests on mozilla-central if "mac" in task["build-platform"]: diff -Nru firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/test/worker.py firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/test/worker.py --- firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/transforms/test/worker.py 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/transforms/test/worker.py 2026-01-06 21:09:51.000000000 +0000 @@ -10,7 +10,6 @@ "large-noscratch": "t-linux-docker-noscratch", "xlarge": "t-linux-docker", "xlarge-noscratch": "t-linux-docker-noscratch", - "large-dw": "t-linux-large-noscratch", "default": "t-linux-docker-noscratch", } diff -Nru firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/util/chunking.py firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/util/chunking.py --- firefox-esr-140.6.0esr/taskcluster/gecko_taskgraph/util/chunking.py 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/gecko_taskgraph/util/chunking.py 2026-01-06 21:09:51.000000000 +0000 @@ -172,24 +172,20 @@ A list of length `chunks` where each item contains a list of manifests that run in that chunk. """ - ini_manifests = set([x.replace(".toml", ".ini") for x in manifests]) - - if "web-platform-tests" not in suite and "marionette" not in suite: + if "web-platform-tests" not in suite: + ini_manifests = {x.replace(".toml", ".ini"): x for x in manifests} runtimes = { k: v for k, v in get_runtimes(platform, suite).items() if k in ini_manifests } - retVal = [] - for c in chunk_by_runtime(None, chunks, runtimes).get_chunked_manifests( - ini_manifests - ): - retVal.append( - [m if m in manifests else m.replace(".ini", ".toml") for m in c[1]] - ) - # Keep track of test paths for each chunk, and the runtime information. - chunked_manifests = [[] for _ in range(chunks)] + cbr = chunk_by_runtime(None, chunks, runtimes) + return [ + [ini_manifests.get(m, m) for m in c] + for _, c in cbr.get_chunked_manifests(manifests) + ] # Spread out the test manifests evenly across all chunks. + chunked_manifests = [[] for _ in range(chunks)] for index, key in enumerate(sorted(manifests)): chunked_manifests[index % chunks].append(key) diff -Nru firefox-esr-140.6.0esr/taskcluster/kinds/fetch/toolchains.yml firefox-esr-140.7.0esr/taskcluster/kinds/fetch/toolchains.yml --- firefox-esr-140.6.0esr/taskcluster/kinds/fetch/toolchains.yml 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/kinds/fetch/toolchains.yml 2026-01-06 21:09:50.000000000 +0000 @@ -137,11 +137,11 @@ description: mpfr 3.1.4 source code fetch: type: static-url - url: http://www.mpfr.org/mpfr-3.1.4/mpfr-3.1.4.tar.bz2 + url: https://ftpmirror.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2 sha256: d3103a80cdad2407ed581f3618c4bed04e0c92d1cf771a65ead662cc397f7775 size: 1279284 gpg-signature: - sig-url: "{url}.asc" + sig-url: "{url}.sig" key-path: build/unix/build-gcc/07F3DBBECC1A39605078094D980C197698C3739D.key artifact-name: mpfr-source.tar.zst strip-components: 1 @@ -276,6 +276,8 @@ url: https://src.fedoraproject.org/repo/pkgs/hfsplus-tools/diskdev_cmds-540.1.linux3.tar.gz/0435afc389b919027b69616ad1b05709/diskdev_cmds-540.1.linux3.tar.gz sha256: b01b203a97f9a3bf36a027c13ddfc59292730552e62722d690d33bd5c24f5497 size: 411205 + headers: + - "Accept: application/octet-stream" xar: description: xar source code @@ -756,7 +758,7 @@ fetch: type: git repo: https://github.com/mozilla/pdf.js - revision: 81cf42df470f85eb60150bdffca380e3eee79c08 + revision: 2ac8185956b0e222cbb798a9d455e82bca954462 xmlstarlet-1.6.1: description: xmlstarlet for Android Performance Tests diff -Nru firefox-esr-140.6.0esr/taskcluster/kinds/source-test/mozlint-android.yml firefox-esr-140.7.0esr/taskcluster/kinds/source-test/mozlint-android.yml --- firefox-esr-140.6.0esr/taskcluster/kinds/source-test/mozlint-android.yml 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/kinds/source-test/mozlint-android.yml 2026-01-06 21:09:51.000000000 +0000 @@ -107,7 +107,6 @@ - 'tools/lint/**' fenix: - worker-type: t-linux-xlarge-source treeherder: symbol: A(fenix-lints) run: @@ -135,7 +134,6 @@ - 'tools/lint/**' focus: - worker-type: t-linux-xlarge-source treeherder: symbol: A(focus-lints) run: @@ -163,7 +161,6 @@ - 'tools/lint/**' android-components: - worker-type: t-linux-xlarge-source treeherder: symbol: A(ac-lints) run: diff -Nru firefox-esr-140.6.0esr/taskcluster/kinds/update/kind.yml firefox-esr-140.7.0esr/taskcluster/kinds/update/kind.yml --- firefox-esr-140.6.0esr/taskcluster/kinds/update/kind.yml 2025-12-01 18:15:40.000000000 +0000 +++ firefox-esr-140.7.0esr/taskcluster/kinds/update/kind.yml 2026-01-06 21:09:50.000000000 +0000 @@ -53,7 +53,7 @@ ./mach update-test linux64-firefox: - worker-type: t-linux-xlarge-source + worker-type: t-linux-docker worker: docker-image: {in-tree: ubuntu2404-test} description: Test updates on Linux diff -Nru firefox-esr-140.6.0esr/testing/web-platform/meta/editing/run/delete.html.ini firefox-esr-140.7.0esr/testing/web-platform/meta/editing/run/delete.html.ini --- firefox-esr-140.6.0esr/testing/web-platform/meta/editing/run/delete.html.ini 2025-12-01 18:15:40.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/meta/editing/run/delete.html.ini 2026-01-06 21:09:51.000000000 +0000 @@ -137,12 +137,6 @@ [[["delete",""\]\] "
  1. foo
{}
" compare innerHTML] expected: FAIL - [[["defaultparagraphseparator","div"\],["delete",""\]\] "
  1. foo

{}
" compare innerHTML] - expected: FAIL - - [[["defaultparagraphseparator","p"\],["delete",""\]\] "

  1. foo

{}
" compare innerHTML] - expected: FAIL - [delete.html?2001-3000] expected: diff -Nru firefox-esr-140.6.0esr/testing/web-platform/meta/editing/run/forwarddelete.html.ini firefox-esr-140.7.0esr/testing/web-platform/meta/editing/run/forwarddelete.html.ini --- firefox-esr-140.6.0esr/testing/web-platform/meta/editing/run/forwarddelete.html.ini 2025-12-01 18:15:40.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/meta/editing/run/forwarddelete.html.ini 2026-01-06 21:09:51.000000000 +0000 @@ -550,3 +550,6 @@ [[["forwarddelete",""\]\] "

ab{}

": execCommand("forwarddelete", false, "") return value] expected: FAIL + + [[["forwarddelete",""\]\] "

abc{}


" compare innerHTML] + expected: FAIL diff -Nru firefox-esr-140.6.0esr/testing/web-platform/meta/editing/run/multitest.html.ini firefox-esr-140.7.0esr/testing/web-platform/meta/editing/run/multitest.html.ini --- firefox-esr-140.6.0esr/testing/web-platform/meta/editing/run/multitest.html.ini 2025-12-01 18:15:39.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/meta/editing/run/multitest.html.ini 2026-01-06 21:09:52.000000000 +0000 @@ -972,3 +972,6 @@ [[["styleWithCSS","false"\],["delete",""\],["inserttext","a"\]\] "
[abc\]
" compare innerHTML] expected: FAIL + + [[["forwarddelete",""\],["inserttext","d"\]\] "

abc[\]


" compare innerHTML] + expected: FAIL diff -Nru firefox-esr-140.6.0esr/testing/web-platform/tests/editing/data/delete.js firefox-esr-140.7.0esr/testing/web-platform/tests/editing/data/delete.js --- firefox-esr-140.6.0esr/testing/web-platform/tests/editing/data/delete.js 2025-12-01 18:15:44.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/tests/editing/data/delete.js 2026-01-06 21:09:55.000000000 +0000 @@ -3203,4 +3203,20 @@ "
a


e
", [true], {}], + +["

abc

{}

", + [["delete",""]], + "

abc

", + [true], + {}], +["

abc

{}

", + [["delete",""]], + "

abc

", + [true], + {}], +["

abc

{}

", + [["delete",""]], + "

abc

", + [true], + {}], ] diff -Nru firefox-esr-140.6.0esr/testing/web-platform/tests/editing/data/forwarddelete.js firefox-esr-140.7.0esr/testing/web-platform/tests/editing/data/forwarddelete.js --- firefox-esr-140.6.0esr/testing/web-platform/tests/editing/data/forwarddelete.js 2025-12-01 18:15:44.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/tests/editing/data/forwarddelete.js 2026-01-06 21:09:54.000000000 +0000 @@ -3065,4 +3065,20 @@ "
a


e
", [true], {}], + +["

abc{}


", + [["forwarddelete",""]], + "

abc

", + [true], + {}], +["

abc{}


", + [["forwarddelete",""]], + "

abc

", + [true], + {}], +["

abc{}


", + [["forwarddelete",""]], + "

abc


", + [true], + {}], ] diff -Nru firefox-esr-140.6.0esr/testing/web-platform/tests/editing/data/multitest.js firefox-esr-140.7.0esr/testing/web-platform/tests/editing/data/multitest.js --- firefox-esr-140.6.0esr/testing/web-platform/tests/editing/data/multitest.js 2025-12-01 18:15:45.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/tests/editing/data/multitest.js 2026-01-06 21:09:54.000000000 +0000 @@ -3260,4 +3260,25 @@ ["

abc d

", "

abc d

"], [true,true,true], {}], + +["

abc

{}

", + [["delete",""],["inserttext","d"]], + "

abcd

", + [true,true], + {}], +["

abc

{}

", + [["delete",""],["inserttext","d"]], + "

abc

d
", + [true,true], + {}], +["

abc[]


", + [["forwarddelete",""],["inserttext","d"]], + "

abcd

", + [true,true], + {}], +["

abc[]


", + [["forwarddelete",""],["inserttext","d"]], + "

abcd


", + [true,true], + {}], ] diff -Nru firefox-esr-140.6.0esr/testing/web-platform/tests/svg/types/scripted/SVGGraphicsElement-padding.svg firefox-esr-140.7.0esr/testing/web-platform/tests/svg/types/scripted/SVGGraphicsElement-padding.svg --- firefox-esr-140.6.0esr/testing/web-platform/tests/svg/types/scripted/SVGGraphicsElement-padding.svg 2025-12-01 18:15:46.000000000 +0000 +++ firefox-esr-140.7.0esr/testing/web-platform/tests/svg/types/scripted/SVGGraphicsElement-padding.svg 2026-01-06 21:09:55.000000000 +0000 @@ -51,6 +51,17 @@ test(function() { let svg = document.getElementById("svg"); + svg.setAttribute("style", "padding-left: 12px; padding-bottom: 10px; padding-top: 12px; padding-right: 24px; transform: rotate(180deg);"); + let ctm = svg.getScreenCTM(); + let pt = DOMPoint.fromPoint({x: 50, y: 50}); + let transformedPoint = pt.matrixTransform(ctm.inverse()); + svg.removeAttribute("style"); + assert_approx_equals(transformedPoint.x, pt.x + 24, 0.1); + assert_approx_equals(transformedPoint.y, pt.y + 10, 0.1); + }, 'getScreenCTM with padding and rotation'); + + test(function() { + let svg = document.getElementById("svg"); svg.setAttribute("style", "padding-left: 12px; transform: rotate(180deg); transform-box: content-box"); let ctm = svg.getScreenCTM(); let pt = DOMPoint.fromPoint({x: 50, y: 50}); @@ -60,5 +71,27 @@ assert_equals(transformedPoint.y, pt.y); }, 'getScreenCTM with padding-left, rotation and content-box'); + test(function() { + let svg = document.getElementById("svg"); + svg.setAttribute("style", "padding-left: 12px; transform: scale(2)"); + let ctm = svg.getScreenCTM(); + let pt = DOMPoint.fromPoint({x: 50, y: 50}); + let transformedPoint = pt.matrixTransform(ctm.inverse()); + svg.removeAttribute("style"); + assert_equals(transformedPoint.x, pt.x - 3); + assert_equals(transformedPoint.y, pt.y); + }, 'getScreenCTM with padding-left, scale'); + + test(function() { + let svg = document.getElementById("svg"); + svg.setAttribute("style", "border-width: 12px; transform: rotate(180deg);"); + let ctm = svg.getScreenCTM(); + let pt = DOMPoint.fromPoint({x: 50, y: 50}); + let transformedPoint = pt.matrixTransform(ctm.inverse()); + svg.removeAttribute("style"); + assert_equals(transformedPoint.x, pt.x); + assert_equals(transformedPoint.y, pt.y); + }, 'getScreenCTM with border-width and rotation'); + ]]> diff -Nru firefox-esr-140.6.0esr/toolkit/components/formautofill/shared/FormAutofillHandler.sys.mjs firefox-esr-140.7.0esr/toolkit/components/formautofill/shared/FormAutofillHandler.sys.mjs --- firefox-esr-140.6.0esr/toolkit/components/formautofill/shared/FormAutofillHandler.sys.mjs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/formautofill/shared/FormAutofillHandler.sys.mjs 2026-01-06 21:09:59.000000000 +0000 @@ -607,7 +607,7 @@ this.#refillTimeoutId = lazy.setTimeout(() => { for (let [e, v] of filledElementValues) { - if (e.autofillState == FIELD_STATES.AUTO_FILLED && e.value === v) { + if (e.autofillState == FIELD_STATES.NORMAL || e.value) { // Nothing to do if the autofilled value wasn't cleared or the // element's autofill state has changed to NORMAL in the meantime continue; diff -Nru firefox-esr-140.6.0esr/toolkit/components/glean/bindings/private/Ping.cpp firefox-esr-140.7.0esr/toolkit/components/glean/bindings/private/Ping.cpp --- firefox-esr-140.6.0esr/toolkit/components/glean/bindings/private/Ping.cpp 2025-12-01 18:15:47.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/glean/bindings/private/Ping.cpp 2026-01-06 21:09:59.000000000 +0000 @@ -22,7 +22,8 @@ namespace impl { -using CallbackMapType = nsTHashMap; +using CallbackMapType = + nsTHashMap, FalliblePingTestCallback>; using MetricIdToCallbackMutex = StaticDataMutex>; static Maybe GetCallbackMapLock() { static MetricIdToCallbackMutex sCallbacks("sCallbacks"); diff -Nru firefox-esr-140.6.0esr/toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs firefox-esr-140.7.0esr/toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs --- firefox-esr-140.6.0esr/toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/pdfjs/content/PdfStreamConverter.sys.mjs 2026-01-06 21:09:59.000000000 +0000 @@ -1203,6 +1203,9 @@ ); // The viewer does not need to handle HTTP Refresh header. aRequest.setResponseHeader("Refresh", "", false); + // There is no reason to load something via : the only external + // resource is the pdf itself. + aRequest.setResponseHeader("Link", "", false); } lazy.PdfJsTelemetryContent.onViewerIsUsed(); diff -Nru firefox-esr-140.6.0esr/toolkit/components/pdfjs/test/browser.toml firefox-esr-140.7.0esr/toolkit/components/pdfjs/test/browser.toml --- firefox-esr-140.6.0esr/toolkit/components/pdfjs/test/browser.toml 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/pdfjs/test/browser.toml 2026-01-06 21:09:59.000000000 +0000 @@ -83,6 +83,9 @@ ["browser_pdfjs_properties.js"] +["browser_pdfjs_response_link.js"] +support-files = ["pdf_response_link.sjs"] + ["browser_pdfjs_saveas.js"] support-files = [ "!/toolkit/content/tests/browser/common/mockTransfer.js", diff -Nru firefox-esr-140.6.0esr/toolkit/components/pdfjs/test/browser_pdfjs_response_link.js firefox-esr-140.7.0esr/toolkit/components/pdfjs/test/browser_pdfjs_response_link.js --- firefox-esr-140.6.0esr/toolkit/components/pdfjs/test/browser_pdfjs_response_link.js 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/pdfjs/test/browser_pdfjs_response_link.js 2026-01-06 21:09:58.000000000 +0000 @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +const RELATIVE_DIR = "toolkit/components/pdfjs/test/"; +const TESTROOT = "https://example.com/browser/" + RELATIVE_DIR; + +function getBodyBackgroundColor(browser) { + return SpecialPowers.spawn(browser, [], async () => { + return content.getComputedStyle(content.document.querySelector("body")) + .backgroundColor; + }); +} + +// Sanity check: the pdf test does not trivially pass due to the lack of support +// for Link header. +add_task(async function test_plain_text_with_link_in_response() { + await BrowserTestUtils.withNewTab( + { gBrowser, url: `${TESTROOT}pdf_response_link.sjs?text` }, + async function (browser) { + const bodyBackgroundColor = await getBodyBackgroundColor(browser); + Assert.equal( + bodyBackgroundColor, + "rgb(255, 0, 0)", + "Body background is red" + ); + } + ); +}); + +add_task(async function test_pdf_with_link_in_response() { + makePDFJSHandler(); + + await BrowserTestUtils.withNewTab( + { gBrowser, url: "about:blank" }, + async function (browser) { + await waitForPdfJSCanvas(browser, `${TESTROOT}pdf_response_link.sjs?pdf`); + const bodyBackgroundColor = await getBodyBackgroundColor(browser); + Assert.notEqual( + bodyBackgroundColor, + "rgb(255, 0, 0)", + "Body background is not red" + ); + await waitForPdfJSClose(browser); + } + ); +}); diff -Nru firefox-esr-140.6.0esr/toolkit/components/pdfjs/test/pdf_response_link.sjs firefox-esr-140.7.0esr/toolkit/components/pdfjs/test/pdf_response_link.sjs --- firefox-esr-140.6.0esr/toolkit/components/pdfjs/test/pdf_response_link.sjs 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/pdfjs/test/pdf_response_link.sjs 2026-01-06 21:09:59.000000000 +0000 @@ -0,0 +1,24 @@ +const DATA = { + pdf: { + mimetype: "application/pdf", + content: + "%PDF-1.\ntrailer<>]>>>>>>", + }, + text: { + mimetype: "text/plain", + content: "hello world", + }, +}; + +function handleRequest(request, response) { + response.setHeader("Cache-Control", "no-cache", false); + response.setHeader( + "Link", + "; rel=stylesheet", + false + ); + response.setStatusLine(request.httpVersion, "200", "Found"); + const { mimetype, content } = DATA[request.queryString]; + response.setHeader("Content-Type", mimetype, false); + response.write(content); +} diff -Nru firefox-esr-140.6.0esr/toolkit/components/viaduct/ViaductRequest.cpp firefox-esr-140.7.0esr/toolkit/components/viaduct/ViaductRequest.cpp --- firefox-esr-140.6.0esr/toolkit/components/viaduct/ViaductRequest.cpp 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/components/viaduct/ViaductRequest.cpp 2026-01-06 21:09:59.000000000 +0000 @@ -127,7 +127,8 @@ nullptr, loadFlags); NS_ENSURE_SUCCESS(rv, rv); - nsCOMPtr httpChannel = do_QueryInterface(mChannel); + nsCOMPtr httpChannel = do_QueryInterface(mChannel, &rv); + NS_ENSURE_SUCCESS(rv, rv); nsCString method = ConvertMethod(request.method()); rv = httpChannel->SetRequestMethod(method); NS_ENSURE_SUCCESS(rv, rv); diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/lib.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/lib.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/lib.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/lib.rs 2026-01-06 21:10:00.000000000 +0000 @@ -5,8 +5,8 @@ use anyhow::{bail, Result}; use crash_helper_common::{ messages::{self}, - AncillaryData, BreakpadString, IPCClientChannel, IPCConnector, ProcessHandle, - INVALID_ANCILLARY_DATA, + AncillaryData, BreakpadString, IPCClientChannel, IPCConnector, IntoRawAncillaryData, + ProcessHandle, RawAncillaryData, INVALID_ANCILLARY_DATA, }; #[cfg(any(target_os = "android", target_os = "linux"))] use minidump_writer::minidump_writer::{AuxvType, DirectAuxvDumpInfo}; @@ -34,13 +34,12 @@ pub struct CrashHelperClient { connector: IPCConnector, spawner_thread: Option>>, - helper_process: Option, } impl CrashHelperClient { fn set_crash_report_path(&mut self, path: OsString) -> Result<()> { let message = messages::SetCrashReportPath::new(path); - self.connector.send_message(&message)?; + self.connector.send_message(message)?; Ok(()) } @@ -57,52 +56,32 @@ bail!("The crash helper process failed to launch"); }; - self.helper_process = Some(process_handle); + self.connector.set_process(process_handle); } - if self.helper_process.is_none() { - bail!("The crash helper process is not available"); - }; - - // The endpoint will be sent to the crash helper process (and essentially dup'd on unix), - // so we have to retain ownership of the server_endpoint using `as_ancillary()` until the - // message is sent. - let Ok(ancillary_data) = server_endpoint.as_ancillary(&self.helper_process) else { - bail!("Could not convert the server IPC endpoint"); - }; - - let message = messages::RegisterChildProcess::new(ancillary_data); - self.connector.send_message(&message)?; - // We use `into_ancillary()` because the returned fd will stay in this process (so we don't - // want to close it). - let Ok(ancillary_data) = client_endpoint.into_ancillary(/* dst_process */ &None) else { - bail!("Could not convert the local IPC endpoint"); - }; + let message = messages::RegisterChildProcess::new(server_endpoint.into_ancillary()); + self.connector.send_message(message)?; - Ok(ancillary_data) + Ok(client_endpoint.into_ancillary()) } #[cfg(any(target_os = "android", target_os = "linux"))] fn register_auxv_info(&mut self, pid: Pid, auxv_info: DirectAuxvDumpInfo) -> Result<()> { let message = messages::RegisterAuxvInfo::new(pid, auxv_info); - self.connector.send_message(&message)?; + self.connector.send_message(message)?; Ok(()) } #[cfg(any(target_os = "android", target_os = "linux"))] fn unregister_auxv_info(&mut self, pid: Pid) -> Result<()> { let message = messages::UnregisterAuxvInfo::new(pid); - self.connector.send_message(&message)?; + self.connector.send_message(message)?; Ok(()) } fn transfer_crash_report(&mut self, pid: Pid) -> Result { let message = messages::TransferMinidump::new(pid); - self.connector.send_message(&message)?; - - // HACK: Workaround for a macOS-specific bug - #[cfg(target_os = "macos")] - self.connector.poll(nix::poll::PollFlags::POLLIN)?; + self.connector.send_message(message)?; let reply = self .connector @@ -232,10 +211,10 @@ #[no_mangle] pub unsafe extern "C" fn register_child_ipc_channel( client: *mut CrashHelperClient, -) -> AncillaryData { +) -> RawAncillaryData { let client = client.as_mut().unwrap(); if let Ok(client_endpoint) = client.register_child_process() { - client_endpoint + client_endpoint.into_raw() } else { INVALID_ANCILLARY_DATA } @@ -311,7 +290,7 @@ let server_addr = crash_helper_common::server_addr(main_process_pid); if let Ok(connector) = IPCConnector::connect(&server_addr) { let _ = connector - .send_message(&message) + .send_message(message) .and_then(|_| connector.recv_reply::()); } } @@ -389,7 +368,7 @@ // signal/exception-safe. We will access this endpoint only from within the // exception handler with bare syscalls so we can leave the `IPCConnector` // object behind. -static CHILD_IPC_ENDPOINT: OnceLock> = OnceLock::new(); +static CHILD_IPC_ENDPOINT: OnceLock> = OnceLock::new(); static RENDEZVOUS_FAILED: AtomicBool = AtomicBool::new(false); /// Let a client rendez-vous with the crash helper process. This step ensures @@ -402,8 +381,8 @@ /// a valid pipe handle (on Windows) or a valid file descriptor (on all other /// platforms). #[no_mangle] -pub unsafe extern "C" fn crash_helper_rendezvous(client_endpoint: AncillaryData) { - let Ok(connector) = IPCConnector::from_ancillary(client_endpoint) else { +pub unsafe extern "C" fn crash_helper_rendezvous(client_endpoint: RawAncillaryData) { + let Ok(connector) = IPCConnector::from_raw_ancillary(client_endpoint) else { RENDEZVOUS_FAILED.store(true, Ordering::Relaxed); return; }; @@ -413,7 +392,7 @@ CrashHelperClient::prepare_for_minidump(message.crash_helper_pid); assert!( CHILD_IPC_ENDPOINT - .set(Box::new(connector.into_ancillary(&None).unwrap())) + .set(Box::new(connector.into_raw_ancillary())) .is_ok(), "The crash_helper_rendezvous() function must only be called once" ); diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/platform/android.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/platform/android.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/platform/android.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/platform/android.rs 2026-01-06 21:09:59.000000000 +0000 @@ -3,21 +3,20 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ use anyhow::Result; -use crash_helper_common::{IPCConnector, Pid}; -use std::os::fd::{FromRawFd, OwnedFd, RawFd}; +use crash_helper_common::{IPCConnector, Pid, RawAncillaryData}; use crate::CrashHelperClient; impl CrashHelperClient { - pub(crate) fn new(server_socket: RawFd) -> Result { + pub(crate) fn new(server_socket: RawAncillaryData) -> Result { // SAFETY: The `server_socket` passed in from the application is valid - let server_socket = unsafe { OwnedFd::from_raw_fd(server_socket) }; - let connector = IPCConnector::from_fd(server_socket)?; + let connector = unsafe { + IPCConnector::from_raw_ancillary(server_socket)? + }; Ok(CrashHelperClient { connector, spawner_thread: None, - helper_process: Some(()), }) } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/platform/unix.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/platform/unix.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/platform/unix.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/platform/unix.rs 2026-01-06 21:10:00.000000000 +0000 @@ -34,7 +34,6 @@ Ok(CrashHelperClient { connector: client_endpoint, spawner_thread: None, - helper_process: Some(()), }) } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/platform/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/platform/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_client/src/platform/windows.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_client/src/platform/windows.rs 2026-01-06 21:09:59.000000000 +0000 @@ -52,7 +52,6 @@ Ok(CrashHelperClient { connector: client_endpoint, spawner_thread: Some(spawner_thread), - helper_process: None, }) } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/Cargo.toml firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/Cargo.toml --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/Cargo.toml 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/Cargo.toml 2026-01-06 21:09:59.000000000 +0000 @@ -17,6 +17,7 @@ minidump-writer = "0.10" [target."cfg(target_os = \"windows\")".dependencies] +getrandom = { version = "0.3" } windows-sys = { version = "0.52", features = [ "Win32_Foundation", "Win32_Security", diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/unix_strings.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/unix_strings.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/unix_strings.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/unix_strings.rs 2026-01-06 21:09:59.000000000 +0000 @@ -9,7 +9,7 @@ os::unix::ffi::OsStringExt, }; -use crate::{errors::MessageError, BreakpadString}; +use crate::{messages::MessageError, BreakpadString}; use super::BreakpadChar; diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/windows_strings.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/windows_strings.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/windows_strings.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/breakpad/windows_strings.rs 2026-01-06 21:09:59.000000000 +0000 @@ -9,7 +9,7 @@ os::windows::ffi::{OsStrExt, OsStringExt}, }; -use crate::{errors::MessageError, BreakpadChar, BreakpadString}; +use crate::{messages::MessageError, BreakpadChar, BreakpadString}; // BreakpadString trait implementation for Windows native UTF-16 strings impl BreakpadString for OsString { diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/errors.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/errors.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/errors.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/errors.rs 2026-01-06 21:09:59.000000000 +0000 @@ -2,60 +2,37 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -use std::{ - array::TryFromSliceError, - ffi::{FromBytesWithNulError, NulError}, - num::TryFromIntError, -}; +use std::num::TryFromIntError; use thiserror::Error; #[cfg(not(target_os = "windows"))] -use nix::errno::Errno as SystemError; +pub use nix::errno::Errno as SystemError; #[cfg(target_os = "windows")] -use windows_sys::Win32::Foundation::WIN32_ERROR as SystemError; +pub use windows_sys::Win32::Foundation::WIN32_ERROR as SystemError; + +use crate::{ + messages::{self, MessageError}, + platform::PlatformError, +}; #[derive(Debug, Error)] pub enum IPCError { #[error("Message error")] BadMessage(#[from] MessageError), - #[error("Generic system error: {0}")] - System(SystemError), - #[error("Could not bind socket to an address, error: {0}")] - BindFailed(SystemError), - #[error("Could not listen on a socket, error: {0}")] - ListenFailed(SystemError), - #[error("Could not accept an incoming connection, error: {0}")] - AcceptFailed(SystemError), - #[error("Could not connect to a socket, error: {0}")] + #[error("Could not connect to a socket: {0}")] ConnectionFailure(SystemError), - #[error("Could not send data, error: {0}")] - TransmissionFailure(SystemError), - #[error("Could not receive data, error: {0}")] - ReceptionFailure(SystemError), - #[error("Error while waiting for events, error: {0:?}")] - WaitingFailure(Option), + #[error("Failed to create a connector: {0}")] + CreationFailure(PlatformError), #[error("Buffer length exceeds a 32-bit integer")] InvalidSize(#[from] TryFromIntError), #[error("Error while parsing a file descriptor string")] ParseError, - #[error("Failed to duplicate clone handle")] - CloneHandleFailed(#[source] std::io::Error), -} - -#[derive(Debug, Error)] -pub enum MessageError { - #[error("Truncated message")] - Truncated, - #[error("Message kind is invalid")] - InvalidKind, - #[error("The message contained an invalid payload")] - InvalidData, - #[error("Missing ancillary data")] - MissingAncillary, - #[error("Invalid message size")] - InvalidSize(#[from] TryFromSliceError), - #[error("Missing nul terminator")] - MissingNul(#[from] FromBytesWithNulError), - #[error("Missing nul terminator")] - InteriorNul(#[from] NulError), + #[error("Could not receive data: {0}")] + ReceptionFailure(PlatformError), + #[error("An operation timed out")] + Timeout, + #[error("Could not send data: {0}")] + TransmissionFailure(PlatformError), + #[error("Unexpected message of kind: {0:?}")] + UnexpectedMessage(messages::Kind), } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/unix.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/unix.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/unix.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/unix.rs 2026-01-06 21:09:59.000000000 +0000 @@ -8,7 +8,7 @@ use crate::platform::linux::unix_socketpair; #[cfg(target_os = "macos")] use crate::platform::macos::unix_socketpair; -use crate::{errors::IPCError, IPCConnector, IPCListener, Pid}; +use crate::{ipc_channel::IPCChannelError, IPCConnector, IPCListener, Pid}; pub struct IPCChannel { listener: IPCListener, @@ -21,11 +21,11 @@ /// will use the current process PID as part of its address and two /// connected endpoints. The listener and the server-side endpoint can be /// inherited by a child process, the client-side endpoint cannot. - pub fn new() -> Result { + pub fn new() -> Result { let listener = IPCListener::new(process::id() as Pid)?; // Only the server-side socket will be left open after an exec(). - let pair = unix_socketpair().map_err(IPCError::System)?; + let pair = unix_socketpair().map_err(IPCChannelError::SocketPair)?; let client_endpoint = IPCConnector::from_fd(pair.0)?; let server_endpoint = IPCConnector::from_fd_inheritable(pair.1)?; @@ -52,8 +52,8 @@ impl IPCClientChannel { /// Create a new IPC channel for use between one of the browser's child /// processes and the crash helper. - pub fn new() -> Result { - let pair = unix_socketpair().map_err(IPCError::System)?; + pub fn new() -> Result { + let pair = unix_socketpair().map_err(IPCChannelError::SocketPair)?; let client_endpoint = IPCConnector::from_fd(pair.0)?; let server_endpoint = IPCConnector::from_fd(pair.1)?; diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/windows.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel/windows.rs 2026-01-06 21:10:00.000000000 +0000 @@ -2,13 +2,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -use std::{ffi::CString, hash::RandomState, process}; +use std::{ffi::CString, process}; -use windows_sys::Win32::Foundation::ERROR_ACCESS_DENIED; +use windows_sys::Win32::Foundation::{ERROR_ACCESS_DENIED, ERROR_ADDRESS_ALREADY_ASSOCIATED}; use crate::{ - errors::IPCError, - platform::windows::{get_last_error, server_addr}, + ipc_channel::IPCChannelError, + ipc_listener::IPCListenerError, + platform::windows::{server_addr, PlatformError}, IPCConnector, IPCListener, Pid, }; @@ -22,7 +23,7 @@ /// Create a new IPCChannel, this includes a listening endpoint that /// will use the current process PID as part of its address and two /// connected endpoints. - pub fn new() -> Result { + pub fn new() -> Result { let pid = process::id() as Pid; let mut listener = IPCListener::new(server_addr(pid))?; listener.listen()?; @@ -52,7 +53,7 @@ impl IPCClientChannel { /// Create a new IPC channel for use between one of the browser's child /// processes and the crash helper. - pub fn new() -> Result { + pub fn new() -> Result { let mut listener = Self::create_listener()?; listener.listen()?; let client_endpoint = IPCConnector::connect(listener.address())?; @@ -64,14 +65,15 @@ }) } - fn create_listener() -> Result { + fn create_listener() -> Result { const ATTEMPTS: u32 = 5; // We pick the listener name at random, as unlikely as it may be there // could be clashes so try a few times before giving up. for _i in 0..ATTEMPTS { - use std::hash::{BuildHasher, Hasher}; - let random_id = RandomState::new().build_hasher().finish(); + let Ok(random_id) = getrandom::u64() else { + continue; + }; let pipe_name = CString::new(format!( "\\\\.\\pipe\\gecko-crash-helper-child-pipe.{random_id:}" @@ -79,14 +81,19 @@ .unwrap(); match IPCListener::new(pipe_name) { Ok(listener) => return Ok(listener), - Err(_error @ IPCError::System(ERROR_ACCESS_DENIED)) => {} // Try again + Err( + _error @ IPCListenerError::CreationError(PlatformError::CreatePipeFailure( + ERROR_ACCESS_DENIED, + )), + ) => {} // Try again Err(error) => return Err(error), } } - // If we got to this point return whatever was the last error we - // encountered along the way. - Err(IPCError::System(get_last_error())) + // If we got to this point give up. + Err(IPCListenerError::CreationError( + PlatformError::CreatePipeFailure(ERROR_ADDRESS_ALREADY_ASSOCIATED), + )) } /// Deconstruct the IPC channel, returning the listening endpoint, diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_channel.rs 2026-01-06 21:09:59.000000000 +0000 @@ -2,6 +2,24 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use thiserror::Error; + +use crate::{errors::IPCError, platform::PlatformError, IPCListenerError}; + +/***************************************************************************** + * Error definitions * + *****************************************************************************/ + +#[derive(Debug, Error)] +pub enum IPCChannelError { + #[error("Could not create connector: {0}")] + Connector(#[from] IPCError), + #[error("Could not create a listener: {0}")] + Listener(#[from] IPCListenerError), + #[error("Could not create a socketpair: {0}")] + SocketPair(#[from] PlatformError), +} + /***************************************************************************** * Windows * *****************************************************************************/ diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/unix.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/unix.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/unix.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/unix.rs 2026-01-06 21:09:59.000000000 +0000 @@ -3,14 +3,12 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #[cfg(any(target_os = "android", target_os = "linux"))] -use crate::platform::linux::{ - set_socket_cloexec, set_socket_default_flags, -}; +use crate::platform::linux::{set_socket_cloexec, set_socket_default_flags}; #[cfg(target_os = "macos")] -use crate::platform::macos::{ - set_socket_cloexec, set_socket_default_flags, +use crate::platform::macos::{set_socket_cloexec, set_socket_default_flags}; +use crate::{ + ignore_eintr, platform::PlatformError, IntoRawAncillaryData, ProcessHandle, IO_TIMEOUT, }; -use crate::{ignore_eintr, ProcessHandle, IO_TIMEOUT}; use nix::{ cmsg_space, @@ -21,7 +19,7 @@ use std::{ ffi::{CStr, CString}, io::{IoSlice, IoSliceMut}, - os::fd::{AsFd, AsRawFd, BorrowedFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}, + os::fd::{AsFd, AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}, str::FromStr, }; @@ -30,10 +28,19 @@ messages::{self, Message}, }; -pub type AncillaryData = RawFd; +pub type RawAncillaryData = RawFd; +pub type AncillaryData = OwnedFd; + +impl IntoRawAncillaryData for AncillaryData { + fn into_raw(self) -> RawAncillaryData { + self.into_raw_fd() + } +} // This must match `kInvalidHandle` in `mfbt/UniquePtrExt.h` -pub const INVALID_ANCILLARY_DATA: AncillaryData = -1; +pub const INVALID_ANCILLARY_DATA: RawAncillaryData = -1; + +pub type IPCConnectorKey = RawFd; pub struct IPCConnector { socket: OwnedFd, @@ -43,29 +50,43 @@ /// Create a new connector from an already connected socket. The /// `FD_CLOEXEC` flag will be set on the underlying socket and thus it /// will not be possible to inerhit this connector in a child process. - pub fn from_fd(socket: OwnedFd) -> Result { + pub(crate) fn from_fd(socket: OwnedFd) -> Result { let connector = IPCConnector::from_fd_inheritable(socket)?; - set_socket_cloexec(connector.socket.as_fd()).map_err(IPCError::System)?; + set_socket_cloexec(connector.socket.as_fd()).map_err(IPCError::CreationFailure)?; Ok(connector) } /// Create a new connector from an already connected socket. The /// `FD_CLOEXEC` flag will not be set on the underlying socket and thus it /// will be possible to inherit this connector in a child process. - pub fn from_fd_inheritable(socket: OwnedFd) -> Result { - set_socket_default_flags(socket.as_fd()).map_err(IPCError::System)?; + pub(crate) fn from_fd_inheritable(socket: OwnedFd) -> Result { + set_socket_default_flags(socket.as_fd()).map_err(IPCError::CreationFailure)?; Ok(IPCConnector { socket }) } - pub fn from_ancillary(ancillary_data: AncillaryData) -> Result { - IPCConnector::from_fd(unsafe { OwnedFd::from_raw_fd(ancillary_data) }) + pub fn from_ancillary(socket: AncillaryData) -> Result { + IPCConnector::from_fd(socket) + } + + /// Create a connector from a raw file descriptor. + /// + /// # Safety + /// + /// The `ancillary_data` argument must be an open file descriptor + /// representing a connected Unix socket. + pub unsafe fn from_raw_ancillary( + ancillary_data: RawAncillaryData, + ) -> Result { + IPCConnector::from_fd(OwnedFd::from_raw_fd(ancillary_data)) } + pub fn set_process(&mut self, _process: ProcessHandle) {} + /// Serialize this connector into a string that can be passed on the /// command-line to a child process. This only works for newly /// created connectors because they are explicitly created as inheritable. pub fn serialize(&self) -> CString { - CString::new(self.socket.as_raw_fd().to_string()).unwrap() + CString::new(self.as_raw().to_string()).unwrap() } /// Deserialize a connector from an argument passed on the command-line. @@ -77,47 +98,43 @@ Ok(IPCConnector { socket }) } - fn raw_fd(&self) -> RawFd { - self.socket.as_raw_fd() + pub fn into_ancillary(self) -> AncillaryData { + self.socket } - pub fn into_ancillary( - self, - _dst_process: &Option, - ) -> Result { - Ok(self.socket.into_raw_fd()) + pub fn into_raw_ancillary(self) -> RawAncillaryData { + self.socket.into_raw() } - /// Like into_ancillary, but the IPCConnector retains ownership of the file descriptor (so be - /// sure to use the result during the lifetime of the IPCConnector). - pub fn as_ancillary( - &self, - _dst_process: &Option, - ) -> Result { - Ok(self.raw_fd()) + pub(crate) fn as_raw(&self) -> RawFd { + self.socket.as_raw_fd() } - pub fn as_raw_ref(&self) -> BorrowedFd<'_> { - self.socket.as_fd() + pub fn key(&self) -> IPCConnectorKey { + self.socket.as_raw_fd() } - pub fn poll(&self, flags: PollFlags) -> Result<(), Errno> { + fn poll(&self, flags: PollFlags) -> Result<(), PlatformError> { let timeout = PollTimeout::from(IO_TIMEOUT); let res = ignore_eintr!(poll( &mut [PollFd::new(self.socket.as_fd(), flags)], timeout )); match res { - Err(e) => Err(e), - Ok(_res @ 0) => Err(Errno::EAGAIN), + Err(e) => Err(PlatformError::PollFailure(e)), + Ok(_res @ 0) => Err(PlatformError::PollFailure(Errno::EAGAIN)), Ok(_) => Ok(()), } } - pub fn send_message(&self, message: &dyn Message) -> Result<(), IPCError> { + pub fn send_message(&self, message: T) -> Result<(), IPCError> + where + T: Message, + { self.send(&message.header(), None) .map_err(IPCError::TransmissionFailure)?; - self.send(&message.payload(), message.ancillary_payload()) + let (payload, ancillary_data) = message.into_payload(); + self.send(&payload, ancillary_data) .map_err(IPCError::TransmissionFailure) } @@ -125,23 +142,28 @@ where T: Message, { + // HACK: Workaround for a macOS-specific bug + #[cfg(target_os = "macos")] + self.poll(PollFlags::POLLIN) + .map_err(IPCError::ReceptionFailure)?; + let header = self.recv_header()?; if header.kind != T::kind() { - return Err(IPCError::ReceptionFailure(Errno::EBADMSG)); + return Err(IPCError::UnexpectedMessage(header.kind)); } - let (data, _) = self.recv(header.size).map_err(IPCError::ReceptionFailure)?; + let (data, _) = self.recv(header.size)?; T::decode(&data, None).map_err(IPCError::from) } - fn send_nonblock(&self, buff: &[u8], fd: Option) -> Result<(), Errno> { + fn send_nonblock(&self, buff: &[u8], fd: &Option) -> Result<(), PlatformError> { let iov = [IoSlice::new(buff)]; - let scm_fds: Vec = fd.map_or(vec![], |fd| vec![fd]); + let scm_fds: Vec = fd.iter().map(|fd| fd.as_raw_fd()).collect(); let scm = ControlMessage::ScmRights(&scm_fds); let res = ignore_eintr!(sendmsg::<()>( - self.raw_fd(), + self.as_raw(), &iov, &[scm], MsgFlags::empty(), @@ -153,45 +175,44 @@ if bytes_sent == buff.len() { Ok(()) } else { - // TODO: This should never happen but we might want to put a - // better error message here. - Err(Errno::EMSGSIZE) + Err(PlatformError::SendTooShort { + expected: buff.len(), + sent: bytes_sent, + }) } } - Err(code) => Err(code), + Err(code) => Err(PlatformError::SendFailure(code)), } } - fn send(&self, buff: &[u8], fd: Option) -> Result<(), Errno> { - let res = self.send_nonblock(buff, fd); + fn send(&self, buff: &[u8], fd: Option) -> Result<(), PlatformError> { + let res = self.send_nonblock(buff, &fd); match res { - Err(_code @ Errno::EAGAIN) => { + Err(PlatformError::SendFailure(Errno::EAGAIN)) => { // If the socket was not ready to send data wait for it to // become unblocked then retry sending just once. self.poll(PollFlags::POLLOUT)?; - self.send_nonblock(buff, fd) + self.send_nonblock(buff, &fd) } _ => res, } } - pub fn recv_header(&self) -> Result { - let (header, _) = self - .recv(messages::HEADER_SIZE) - .map_err(IPCError::ReceptionFailure)?; + pub(crate) fn recv_header(&self) -> Result { + let (header, _) = self.recv(messages::HEADER_SIZE)?; messages::Header::decode(&header).map_err(IPCError::BadMessage) } fn recv_nonblock( &self, expected_size: usize, - ) -> Result<(Vec, Option), Errno> { + ) -> Result<(Vec, Option), PlatformError> { let mut buff: Vec = vec![0; expected_size]; let mut cmsg_buffer = cmsg_space!(RawFd); let mut iov = [IoSliceMut::new(&mut buff)]; let res = ignore_eintr!(recvmsg::<()>( - self.raw_fd(), + self.as_raw(), &mut iov, Some(&mut cmsg_buffer), MsgFlags::empty(), @@ -207,44 +228,47 @@ let res = match res { #[cfg(target_os = "macos")] Err(_code @ Errno::ENOMEM) => ignore_eintr!(recvmsg::<()>( - self.raw_fd(), + self.as_raw(), &mut iov, Some(&mut cmsg_buffer), MsgFlags::empty(), ))?, - Err(e) => return Err(e), + Err(e) => return Err(PlatformError::ReceiveFailure(e)), Ok(val) => val, }; let fd = if let Some(cmsg) = res.cmsgs()?.next() { if let ControlMessageOwned::ScmRights(fds) = cmsg { - fds.first().copied() + fds.first().map(|&fd| unsafe { OwnedFd::from_raw_fd(fd) }) } else { - return Err(Errno::EBADMSG); + return Err(PlatformError::ReceiveMissingCredentials); } } else { None }; if res.bytes != expected_size { - // TODO: This should only ever happen if the other side has gone rogue, - // we need a better error message here. - return Err(Errno::EBADMSG); + return Err(PlatformError::ReceiveTooShort { + expected: expected_size, + received: res.bytes, + }); } Ok((buff, fd)) } - pub fn recv(&self, expected_size: usize) -> Result<(Vec, Option), Errno> { + pub fn recv(&self, expected_size: usize) -> Result<(Vec, Option), IPCError> { let res = self.recv_nonblock(expected_size); match res { - Err(_code @ Errno::EAGAIN) => { + Err(PlatformError::ReceiveFailure(Errno::EAGAIN)) => { // If the socket was not ready to receive data wait for it to // become unblocked then retry receiving just once. - self.poll(PollFlags::POLLIN)?; + self.poll(PollFlags::POLLIN) + .map_err(IPCError::ReceptionFailure)?; self.recv_nonblock(expected_size) } _ => res, } + .map_err(IPCError::ReceptionFailure) } } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/windows.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector/windows.rs 2026-01-06 21:10:00.000000000 +0000 @@ -4,23 +4,28 @@ use crate::{ errors::IPCError, - messages::{self, Message}, - platform::windows::{create_manual_reset_event, get_last_error, OverlappedOperation}, - ProcessHandle, IO_TIMEOUT, + messages::{self, Message, HEADER_SIZE}, + platform::windows::{ + create_manual_reset_event, get_last_error, OverlappedOperation, PlatformError, + }, + IntoRawAncillaryData, IO_TIMEOUT, }; use std::{ - ffi::{c_void, CStr, OsString}, - os::windows::io::{AsRawHandle, FromRawHandle, IntoRawHandle, OwnedHandle, RawHandle}, + ffi::{CStr, OsString}, + io::Error, + os::windows::io::{ + AsHandle, AsRawHandle, FromRawHandle, IntoRawHandle, OwnedHandle, RawHandle, + }, ptr::null_mut, + rc::Rc, str::FromStr, time::{Duration, Instant}, }; use windows_sys::Win32::{ Foundation::{ - DuplicateHandle, GetLastError, DUPLICATE_CLOSE_SOURCE, DUPLICATE_SAME_ACCESS, - ERROR_FILE_NOT_FOUND, ERROR_INVALID_MESSAGE, ERROR_PIPE_BUSY, FALSE, HANDLE, - INVALID_HANDLE_VALUE, WAIT_TIMEOUT, + DuplicateHandle, DUPLICATE_CLOSE_SOURCE, DUPLICATE_SAME_ACCESS, ERROR_FILE_NOT_FOUND, + ERROR_PIPE_BUSY, FALSE, HANDLE, INVALID_HANDLE_VALUE, }, Security::SECURITY_ATTRIBUTES, Storage::FileSystem::{ @@ -33,17 +38,24 @@ }, }; -pub type AncillaryData = HANDLE; +pub type AncillaryData = OwnedHandle; +pub type RawAncillaryData = HANDLE; + +impl IntoRawAncillaryData for AncillaryData { + fn into_raw(self) -> RawAncillaryData { + self.into_raw_handle() as HANDLE + } +} // This must match `kInvalidHandle` in `mfbt/UniquePtrExt.h` -pub const INVALID_ANCILLARY_DATA: AncillaryData = 0; +pub const INVALID_ANCILLARY_DATA: RawAncillaryData = 0; const HANDLE_SIZE: usize = size_of::(); // We encode handles at the beginning of every transmitted message. This // function extracts the handle (if present) and returns it together with // the rest of the buffer. -fn extract_buffer_and_handle(buffer: Vec) -> Result<(Vec, Option), IPCError> { +fn extract_buffer_and_handle(buffer: Vec) -> Result<(Vec, Option), IPCError> { let handle_bytes = &buffer[0..HANDLE_SIZE]; let data = &buffer[HANDLE_SIZE..]; let handle_bytes: Result<[u8; HANDLE_SIZE], _> = handle_bytes.try_into(); @@ -52,39 +64,57 @@ }; let handle = match HANDLE::from_ne_bytes(handle_bytes) { INVALID_ANCILLARY_DATA => None, - handle => Some(handle), + handle => Some(unsafe { OwnedHandle::from_raw_handle(handle as RawHandle) }), }; Ok((data.to_vec(), handle)) } +pub type IPCConnectorKey = usize; + pub struct IPCConnector { - handle: OwnedHandle, + /// A connected pipe handle + handle: Rc, + /// A handle to an event which will be used for overlapped I/O on the pipe event: OwnedHandle, - overlapped: Option, + /// The process at the other end of the pipe, this is needed to send + /// ancillary data and a send operation will fail if not set. + process: Option, } impl IPCConnector { - pub fn new(handle: OwnedHandle) -> Result { - let event = create_manual_reset_event()?; + pub fn from_ancillary(handle: OwnedHandle) -> Result { + let event = create_manual_reset_event().map_err(IPCError::CreationFailure)?; Ok(IPCConnector { - handle, + handle: Rc::new(handle), event, - overlapped: None, + process: None, }) } - pub fn from_ancillary(ancillary_data: AncillaryData) -> Result { - IPCConnector::new(unsafe { OwnedHandle::from_raw_handle(ancillary_data as RawHandle) }) + /// Create a connector from a raw handle. + /// + /// # Safety + /// + /// The `ancillary_data` argument must be a valid HANDLE representing the + /// endpoint of a named pipe. + pub unsafe fn from_raw_ancillary( + ancillary_data: RawAncillaryData, + ) -> Result { + IPCConnector::from_ancillary(OwnedHandle::from_raw_handle(ancillary_data as RawHandle)) } - pub fn as_raw(&self) -> HANDLE { + pub fn set_process(&mut self, process: OwnedHandle) { + self.process = Some(process); + } + + pub(crate) fn as_raw(&self) -> HANDLE { self.handle.as_raw_handle() as HANDLE } - pub fn event_raw_handle(&self) -> HANDLE { - self.event.as_raw_handle() as HANDLE + pub fn key(&self) -> IPCConnectorKey { + self.handle.as_raw_handle() as IPCConnectorKey } pub fn connect(server_addr: &CStr) -> Result { @@ -120,10 +150,10 @@ let elapsed = now.elapsed(); if elapsed >= timeout { - return Err(IPCError::System(WAIT_TIMEOUT)); // TODO: We need a dedicated error + return Err(IPCError::Timeout); } - let error = unsafe { GetLastError() }; + let error = get_last_error(); // The pipe might have not been created yet or it might be busy. if (error == ERROR_FILE_NOT_FOUND) || (error == ERROR_PIPE_BUSY) { @@ -134,14 +164,14 @@ (timeout - elapsed).as_millis() as u32, ) }; - let error = unsafe { GetLastError() }; + let error = get_last_error(); // If the pipe hasn't been created yet loop over and try again if (res == FALSE) && (error != ERROR_FILE_NOT_FOUND) { - return Err(IPCError::System(error)); + return Err(IPCError::ConnectionFailure(error)); } } else { - return Err(IPCError::System(error)); + return Err(IPCError::ConnectionFailure(error)); } } @@ -158,12 +188,11 @@ ) }; if res == FALSE { - return Err(IPCError::System(unsafe { GetLastError() })); + return Err(IPCError::ConnectionFailure(get_last_error())); } - // SAFETY: The raw pipe handle is guaranteed to be open at this point - let handle = unsafe { OwnedHandle::from_raw_handle(pipe as RawHandle) }; - IPCConnector::new(handle) + // SAFETY: We've verified above that the pipe handle is valid + unsafe { IPCConnector::from_raw_ancillary(pipe) } } /// Serialize this connector into a string that can be passed on the @@ -178,148 +207,114 @@ pub fn deserialize(string: &CStr) -> Result { let string = string.to_str().map_err(|_e| IPCError::ParseError)?; let handle = usize::from_str(string).map_err(|_e| IPCError::ParseError)?; - let handle = handle as *mut c_void; // SAFETY: This is a handle we passed in ourselves. - let handle = unsafe { OwnedHandle::from_raw_handle(handle) }; - IPCConnector::new(handle) + unsafe { IPCConnector::from_raw_ancillary(handle as HANDLE) } } - pub fn into_ancillary( - self, - dst_process: &Option, - ) -> Result { - let mut dst_handle: HANDLE = INVALID_ANCILLARY_DATA; + pub fn into_ancillary(self) -> AncillaryData { + Rc::try_unwrap(self.handle).expect("Multiple references to the underlying handle") + } - if let Some(dst_process) = dst_process.as_ref() { - let res = unsafe { - DuplicateHandle( - GetCurrentProcess(), - self.handle.into_raw_handle() as HANDLE, - dst_process.as_raw_handle() as HANDLE, - &mut dst_handle, - /* dwDesiredAccess */ 0, - /* bInheritHandle */ FALSE, - DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS, - ) - }; + pub fn into_raw_ancillary(self) -> RawAncillaryData { + self.into_ancillary().into_raw() + } - if res > 0 { - Ok(dst_handle) - } else { - Err(IPCError::System(get_last_error())) - } - } else { - Ok(self.handle.into_raw_handle() as HANDLE) - } + pub fn send_message(&self, message: T) -> Result<(), IPCError> + where + T: Message, + { + self.send_message_internal(message) + .map_err(IPCError::TransmissionFailure) } - /// Like into_ancillary, but the IPCConnector retains ownership of the file descriptor (so be - /// sure to use the result during the lifetime of the IPCConnector). - pub fn as_ancillary( - &self, - dst_process: &Option, - ) -> Result { - let mut dst_handle: HANDLE = INVALID_ANCILLARY_DATA; + fn send_message_internal(&self, message: T) -> Result<(), PlatformError> + where + T: Message, + { + let header = message.header(); + let (payload, ancillary_data) = message.into_payload(); - if let Some(dst_process) = dst_process.as_ref() { - let res = unsafe { - DuplicateHandle( - GetCurrentProcess(), - self.handle.as_raw_handle() as HANDLE, - dst_process.as_raw_handle() as HANDLE, - &mut dst_handle, - /* dwDesiredAccess */ 0, - /* bInheritHandle */ FALSE, - DUPLICATE_SAME_ACCESS, - ) - }; + // Send the message header + OverlappedOperation::send(&self.handle, self.event.as_handle(), header)?; - if res > 0 { - Ok(dst_handle) - } else { - Err(IPCError::System(get_last_error())) - } + // Send the message payload plus the optional handles + let handle = if let Some(handle) = ancillary_data { + self.clone_handle(handle)? } else { - Ok(self.handle.as_raw_handle() as HANDLE) - } - } - - pub fn send_message(&self, message: &dyn Message) -> Result<(), IPCError> { - // Send the message header - self.send(&message.header(), None)?; + INVALID_ANCILLARY_DATA + }; - // Send the message payload - self.send(&message.payload(), message.ancillary_payload())?; + let mut buffer = Vec::::with_capacity(HANDLE_SIZE + payload.len()); + buffer.extend(handle.to_ne_bytes()); + buffer.extend(payload); - Ok(()) + OverlappedOperation::send(&self.handle, self.event.as_handle(), buffer) } pub fn recv_reply(&self) -> Result where T: Message, { - let header = self.recv_header()?; + let header = self + .recv_buffer(messages::HEADER_SIZE) + .map_err(IPCError::ReceptionFailure)?; + let header = messages::Header::decode(&header).map_err(IPCError::BadMessage)?; if header.kind != T::kind() { - return Err(IPCError::ReceptionFailure(ERROR_INVALID_MESSAGE)); + return Err(IPCError::UnexpectedMessage(header.kind)); } - let (data, _) = self.recv(header.size)?; - T::decode(&data, None).map_err(IPCError::from) + let (buffer, handle) = self.recv(header.size)?; + T::decode(&buffer, handle).map_err(IPCError::from) + } + + pub(crate) fn sched_recv_header(&self) -> Result { + OverlappedOperation::sched_recv(&self.handle, HEADER_SIZE) + .map_err(IPCError::ReceptionFailure) + } + + pub(crate) fn recv( + &self, + expected_size: usize, + ) -> Result<(Vec, Option), IPCError> { + let buffer = self + .recv_buffer(HANDLE_SIZE + expected_size) + .map_err(IPCError::ReceptionFailure)?; + extract_buffer_and_handle(buffer) } - fn recv_header(&self) -> Result { - let (header, _) = self.recv(messages::HEADER_SIZE)?; - messages::Header::decode(&header).map_err(IPCError::BadMessage) + fn recv_buffer(&self, expected_size: usize) -> Result, PlatformError> { + OverlappedOperation::recv(&self.handle, self.event.as_handle(), expected_size) } - pub fn sched_recv_header(&mut self) -> Result<(), IPCError> { - if self.overlapped.is_some() { - // We're already waiting for a header. - return Ok(()); + /// Clone a handle in the destination process, this is required to + /// transfer handles over this connector. Note that this consumes the + /// incoming handle because we want it to be closed after it's been cloned + /// over to the other process. + fn clone_handle(&self, handle: OwnedHandle) -> Result { + let Some(dst_process) = self.process.as_ref() else { + return Err(PlatformError::MissingProcessHandle); + }; + let mut dst_handle: HANDLE = INVALID_ANCILLARY_DATA; + let res = unsafe { + DuplicateHandle( + GetCurrentProcess(), + handle.into_raw_handle() as HANDLE, + dst_process.as_raw_handle() as HANDLE, + &mut dst_handle, + /* dwDesiredAccess */ 0, + /* bInheritHandle */ FALSE, + DUPLICATE_CLOSE_SOURCE | DUPLICATE_SAME_ACCESS, + ) + }; + + if res == 0 { + return Err(PlatformError::CloneHandleFailed(Error::from_raw_os_error( + get_last_error() as i32, + ))); } - self.overlapped = Some(OverlappedOperation::sched_recv( - self.handle - .try_clone() - .map_err(IPCError::CloneHandleFailed)?, - self.event_raw_handle(), - HANDLE_SIZE + messages::HEADER_SIZE, - )?); - Ok(()) - } - - pub fn collect_header(&mut self) -> Result { - // We should never call collect_header() on a connector that wasn't - // waiting for one, so panic in that scenario. - let overlapped = self.overlapped.take().unwrap(); - let buffer = overlapped.collect_recv(/* wait */ false)?; - let (data, _) = extract_buffer_and_handle(buffer)?; - messages::Header::decode(data.as_ref()).map_err(IPCError::BadMessage) - } - - pub fn send(&self, buff: &[u8], handle: Option) -> Result<(), IPCError> { - let mut buffer = Vec::::with_capacity(HANDLE_SIZE + buff.len()); - buffer.extend(handle.unwrap_or(INVALID_ANCILLARY_DATA).to_ne_bytes()); - buffer.extend(buff); - - let overlapped = - OverlappedOperation::sched_send(self.handle - .try_clone() - .map_err(IPCError::CloneHandleFailed)?, self.event_raw_handle(), buffer)?; - overlapped.complete_send(/* wait */ true) - } - - pub fn recv(&self, expected_size: usize) -> Result<(Vec, Option), IPCError> { - let overlapped = OverlappedOperation::sched_recv( - self.handle - .try_clone() - .map_err(IPCError::CloneHandleFailed)?, - self.event_raw_handle(), - HANDLE_SIZE + expected_size, - )?; - let buffer = overlapped.collect_recv(/* wait */ true)?; - extract_buffer_and_handle(buffer) + Ok(dst_handle) } } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_connector.rs 2026-01-06 21:09:59.000000000 +0000 @@ -2,12 +2,14 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use std::rc::Rc; + use crate::messages::Header; pub enum IPCEvent { - Connect(IPCConnector), - Header(usize, Header), - Disconnect(usize), + Connect(Rc), + Message(IPCConnectorKey, Header, Vec, Option), + Disconnect(IPCConnectorKey), } /***************************************************************************** @@ -15,7 +17,9 @@ *****************************************************************************/ #[cfg(target_os = "windows")] -pub use windows::{AncillaryData, IPCConnector, INVALID_ANCILLARY_DATA}; +pub use windows::{ + AncillaryData, IPCConnector, IPCConnectorKey, RawAncillaryData, INVALID_ANCILLARY_DATA, +}; #[cfg(target_os = "windows")] pub(crate) mod windows; @@ -25,7 +29,9 @@ *****************************************************************************/ #[cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))] -pub use unix::{AncillaryData, IPCConnector, INVALID_ANCILLARY_DATA}; +pub use unix::{ + AncillaryData, IPCConnector, IPCConnectorKey, RawAncillaryData, INVALID_ANCILLARY_DATA, +}; #[cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))] pub(crate) mod unix; diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener/windows.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener/windows.rs 2026-01-06 21:09:59.000000000 +0000 @@ -4,18 +4,21 @@ use crate::{ errors::IPCError, - platform::windows::{create_manual_reset_event, server_addr, OverlappedOperation}, + ipc_listener::IPCListenerError, + platform::windows::{get_last_error, server_addr, OverlappedOperation, PlatformError}, IPCConnector, Pid, }; use std::{ - ffi::{c_void, CStr, CString, OsString}, + cell::RefCell, + ffi::{CStr, CString, OsString}, os::windows::io::{AsRawHandle, FromRawHandle, OwnedHandle, RawHandle}, ptr::null_mut, + rc::Rc, str::FromStr, }; use windows_sys::Win32::{ - Foundation::{GetLastError, HANDLE, INVALID_HANDLE_VALUE, TRUE}, + Foundation::{HANDLE, INVALID_HANDLE_VALUE, TRUE}, Security::SECURITY_ATTRIBUTES, Storage::FileSystem::{ FILE_FLAG_FIRST_PIPE_INSTANCE, FILE_FLAG_OVERLAPPED, PIPE_ACCESS_DUPLEX, @@ -27,90 +30,86 @@ }; pub struct IPCListener { + /// The name of the pipe this listener will be bound to server_addr: CString, - handle: OwnedHandle, + /// A named pipe handle listening for incoming connections + handle: RefCell>, + /// Stores the only listen operation that might be pending overlapped: Option, - event: OwnedHandle, } impl IPCListener { - pub fn new(server_addr: CString) -> Result { - let pipe = create_named_pipe(&server_addr, /* first_instance */ true)?; - let event = create_manual_reset_event()?; + pub(crate) fn new(server_addr: CString) -> Result { + let pipe = create_named_pipe(&server_addr, /* first_instance */ true) + .map_err(IPCListenerError::PipeCreationFailure)?; Ok(IPCListener { server_addr, - handle: pipe, + handle: RefCell::new(Rc::new(pipe)), overlapped: None, - event, }) } - pub fn event_raw_handle(&self) -> HANDLE { - self.event.as_raw_handle() as HANDLE + pub(crate) fn as_raw(&self) -> HANDLE { + self.handle.borrow().as_raw_handle() as HANDLE } - pub fn address(&self) -> &CStr { + pub(crate) fn address(&self) -> &CStr { &self.server_addr } - pub fn listen(&mut self) -> Result<(), IPCError> { - self.overlapped = Some(OverlappedOperation::listen( - self.handle - .try_clone() - .map_err(IPCError::CloneHandleFailed)?, - self.event_raw_handle(), - )?); - Ok(()) + pub(crate) fn sched_listen(&self) -> Result { + OverlappedOperation::listen(&self.handle.borrow()).map_err(IPCListenerError::ListenError) } - pub fn accept(&mut self) -> Result { - // We should never call accept() on a listener that wasn't - // already waiting, so panic in that scenario. - let overlapped = self.overlapped.take().unwrap(); - overlapped.accept(self.handle.as_raw_handle() as HANDLE)?; - let new_pipe = create_named_pipe(&self.server_addr, /* first_instance */ false)?; - let connected_pipe = std::mem::replace(&mut self.handle, new_pipe); - - // Once we've accepted a new connection and replaced the listener's - // pipe we need to listen again before we return, so that we're ready - // for the next iteration. - self.listen()?; + pub(crate) fn listen(&mut self) -> Result<(), IPCListenerError> { + self.overlapped = Some(self.sched_listen()?); + Ok(()) + } - IPCConnector::new(connected_pipe) + pub fn accept(&mut self) -> Result { + let overlapped = self + .overlapped + .take() + .expect("Accepting a connection without listening first"); + overlapped.accept().map_err(IPCListenerError::AcceptError)?; + self.replace_pipe() + } + + pub(crate) fn replace_pipe(&self) -> Result { + let new_pipe = create_named_pipe(&self.server_addr, /* first_instance */ false) + .map_err(IPCListenerError::PipeCreationFailure)?; + let connected_pipe = self.handle.replace(Rc::new(new_pipe)); + + // We can guarantee that there's only one reference to this handle at + // this point in time. + Ok(IPCConnector::from_ancillary( + Rc::::try_unwrap(connected_pipe).unwrap(), + )?) } /// Serialize this listener into a string that can be passed on the /// command-line to a child process. This only works for newly /// created listeners because they are explicitly created as inheritable. pub fn serialize(&self) -> OsString { - let raw_handle = self.handle.as_raw_handle() as usize; + let raw_handle = self.handle.borrow().as_raw_handle() as usize; OsString::from_str(raw_handle.to_string().as_ref()).unwrap() } /// Deserialize a listener from an argument passed on the command-line. /// The resulting listener is ready to accept new connections. - pub fn deserialize(string: &CStr, pid: Pid) -> Result { + pub fn deserialize(string: &CStr, pid: Pid) -> Result { let server_addr = server_addr(pid); let string = string.to_str().map_err(|_e| IPCError::ParseError)?; let handle = usize::from_str(string).map_err(|_e| IPCError::ParseError)?; - let handle = handle as *mut c_void; // SAFETY: This is a handle we passed in ourselves. - let handle = unsafe { OwnedHandle::from_raw_handle(handle) }; - let event = create_manual_reset_event()?; + let handle = unsafe { OwnedHandle::from_raw_handle(handle as RawHandle) }; - let mut listener = IPCListener { + Ok(IPCListener { server_addr, - handle, + handle: RefCell::new(Rc::new(handle)), overlapped: None, - event, - }; - - // Since we've inherited this handler we need to start a new - // asynchronous operation to listen for incoming connections. - listener.listen()?; - - Ok(listener) + }) } } @@ -119,7 +118,10 @@ // used internally and never visible externally. unsafe impl Send for IPCListener {} -fn create_named_pipe(server_addr: &CStr, first_instance: bool) -> Result { +fn create_named_pipe( + server_addr: &CStr, + first_instance: bool, +) -> Result { const PIPE_BUFFER_SIZE: u32 = 4096; let open_mode = PIPE_ACCESS_DUPLEX @@ -152,7 +154,7 @@ }; if pipe == INVALID_HANDLE_VALUE { - return Err(IPCError::System(unsafe { GetLastError() })); + return Err(PlatformError::CreatePipeFailure(get_last_error())); } // SAFETY: We just verified that the handle is valid. diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_listener.rs 2026-01-06 21:10:00.000000000 +0000 @@ -2,6 +2,30 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use thiserror::Error; + +use crate::{errors::IPCError, platform::PlatformError}; + +/***************************************************************************** + * Error definitions * + *****************************************************************************/ + +#[derive(Debug, Error)] +pub enum IPCListenerError { + #[error("Could not accept incoming connection: {0}")] + AcceptError(PlatformError), + #[error("Issue with an underlying connector: {0}")] + ConnectorError(#[from] IPCError), + #[error("Could not create listener: {0}")] + CreationError(PlatformError), + #[error("Could not listen for incoming connections: {0}")] + ListenError(PlatformError), + #[error("Could not parse handle: {0}")] + ParseError(String), + #[error("Could not create a new pipe: {0}")] + PipeCreationFailure(PlatformError), +} + /***************************************************************************** * Windows * *****************************************************************************/ diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/unix.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/unix.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/unix.rs 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/unix.rs 2026-01-06 21:09:59.000000000 +0000 @@ -0,0 +1,93 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use nix::poll::{poll, PollFd, PollFlags, PollTimeout}; +use std::{collections::HashMap, os::fd::BorrowedFd, rc::Rc}; + +use crate::{ + ignore_eintr, ipc_queue::IPCQueueError, IPCConnector, IPCConnectorKey, IPCEvent, IPCListener, +}; + +pub struct IPCQueue { + connectors: HashMap>, +} + +impl IPCQueue { + pub fn new(_listener: IPCListener) -> Result { + let connectors = HashMap::with_capacity(10); + Ok(IPCQueue { connectors }) + } + + pub fn add_connector(&mut self, connector: &Rc) -> Result<(), IPCQueueError> { + let res = self.connectors.insert(connector.key(), connector.clone()); + debug_assert!(res.is_none()); + Ok(()) + } + + pub fn add_listener(&self, _listener: &IPCListener) -> Result<(), IPCQueueError> { + Ok(()) + } + + pub fn wait_for_events(&mut self) -> Result, IPCQueueError> { + let mut pollfds = Vec::with_capacity(self.connectors.len()); + // SAFETY: All the fds held by the queue are known to be valid. + pollfds.extend(self.connectors.iter().map(|connector| { + PollFd::new( + unsafe { BorrowedFd::borrow_raw(connector.1.as_raw()) }, + PollFlags::POLLIN, + ) + })); + + let mut events = Vec::::new(); + let mut num_events = ignore_eintr!(poll(&mut pollfds, PollTimeout::NONE)) + .map_err(IPCQueueError::WaitError)?; + + for (pollfd, (&key, connector)) in pollfds.iter().zip(&self.connectors) { + // revents() returns None only if the kernel sends back data + // that nix does not understand, we can safely assume this + // never happens in practice hence the unwrap(). + let Some(revents) = pollfd.revents() else { + // TODO: We should log this error, disconnect the socket or do + // both things. Probably needs a new event type. + continue; + }; + + if revents.contains(PollFlags::POLLHUP) { + events.push(IPCEvent::Disconnect(key)); + // If a process was disconnected then skip all further + // processing of the socket. This wouldn't matter normally, + // but on macOS calling recvmsg() on a hung-up socket seems + // to trigger a kernel panic, one we've already encountered + // in the past. Doing things this way avoids the panic + // while having no real downsides. + continue; + } + + if revents.contains(PollFlags::POLLIN) { + let header = connector.recv_header()?; + let payload = connector + .recv(header.size) + .map_err(IPCQueueError::IPCError)?; + events.push(IPCEvent::Message(key, header, payload.0, payload.1)); + } + + if !revents.is_empty() { + num_events -= 1; + + if num_events == 0 { + break; + } + } + } + + // Remove all connectors for which we've received disconnect events. + for event in &events { + if let IPCEvent::Disconnect(key) = event { + self.connectors.remove(key); + } + } + + Ok(events) + } +} diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/windows.rs 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue/windows.rs 2026-01-06 21:09:59.000000000 +0000 @@ -0,0 +1,281 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use std::{ + collections::HashMap, + mem::MaybeUninit, + os::windows::io::{AsRawHandle, FromRawHandle, OwnedHandle, RawHandle}, + ptr::null_mut, + rc::Rc, +}; +use windows_sys::Win32::{ + Foundation::{ERROR_BROKEN_PIPE, FALSE, HANDLE, INVALID_HANDLE_VALUE}, + System::{ + Threading::INFINITE, + IO::{CreateIoCompletionPort, GetQueuedCompletionStatus, OVERLAPPED}, + }, +}; + +use crate::{ + errors::IPCError, + ipc_queue::IPCQueueError, + messages::Header, + platform::{ + windows::{get_last_error, OverlappedOperation}, + PlatformError, + }, + IPCConnector, IPCConnectorKey, IPCEvent, IPCListener, +}; + +const CONCURRENT_THREADS: u32 = 1; + +struct IPCQueueElement { + connector: Rc, + operation: Option, +} + +pub struct IPCQueue { + connectors: HashMap, + listener: IPCListener, + listen_operation: Option, + port: OwnedHandle, +} + +impl IPCQueue { + pub fn new(listener: IPCListener) -> Result { + let listener_port = listener.as_raw(); + + // Create a new completion port that allows only one active thread. + let port = unsafe { + CreateIoCompletionPort( + /* FileHandle */ INVALID_HANDLE_VALUE, + /* ExistingCompletionPort */ 0, + /* CompletionKey */ 0, + CONCURRENT_THREADS, + ) as RawHandle + }; + + if port.is_null() { + return Err(IPCQueueError::CreationFailure(get_last_error())); + } + + let mut queue = IPCQueue { + connectors: HashMap::with_capacity(10), + listener, + listen_operation: None, + port: unsafe { OwnedHandle::from_raw_handle(port) }, + }; + + queue.add_handle(listener_port)?; + + Ok(queue) + } + + pub fn add_connector(&mut self, connector: &Rc) -> Result<(), IPCQueueError> { + self.add_handle(connector.as_raw())?; + self.insert_connector(connector); + Ok(()) + } + + fn insert_connector(&mut self, connector: &Rc) { + let res = self.connectors.insert( + connector.key(), + IPCQueueElement { + connector: connector.clone(), + operation: None, + }, + ); + debug_assert!(res.is_none()); + } + + fn add_handle(&mut self, handle: HANDLE) -> Result<(), IPCQueueError> { + let port = unsafe { + CreateIoCompletionPort( + handle, + self.port.as_raw_handle() as HANDLE, + // Use the connector's handle as the events' key + handle as usize, + CONCURRENT_THREADS, + ) as RawHandle + }; + + if port.is_null() { + return Err(IPCQueueError::RegistrationFailure(get_last_error())); + } + + Ok(()) + } + + pub fn wait_for_events(&mut self) -> Result, IPCQueueError> { + let mut events = Vec::with_capacity(1); + + for element in self.connectors.values_mut() { + if element.operation.is_none() { + match element.connector.sched_recv_header() { + Ok(operation) => element.operation = Some(operation), + Err(_error @ IPCError::ReceptionFailure(PlatformError::BrokenPipe)) => { + events.push(IPCEvent::Disconnect(element.connector.key())); + } + Err(error) => return Err(IPCQueueError::from(error)), + } + } + } + + for event in &events { + if let IPCEvent::Disconnect(key) = event { + self.connectors.remove(key); + } + } + + if self.connectors.len() == 0 { + // The last client disconnected. + return Ok(events); + } + + if self.listen_operation.is_none() { + self.listen_operation = Some(self.listener.sched_listen()?); + } + + let mut number_of_bytes_transferred = MaybeUninit::::uninit(); + let mut completion_key = MaybeUninit::::uninit(); + let mut overlapped = MaybeUninit::<*mut OVERLAPPED>::uninit(); + + let res = unsafe { + GetQueuedCompletionStatus( + self.port.as_raw_handle() as HANDLE, + number_of_bytes_transferred.as_mut_ptr(), + completion_key.as_mut_ptr(), + overlapped.as_mut_ptr(), + INFINITE, + ) + }; + + // SAFETY: `overlapped` will always be populated by + // `GetQueueCompletionStatus()` so it's safe to assume initialization. + let overlapped = unsafe { overlapped.assume_init() }; + + if res == FALSE { + let err = get_last_error(); + + // If `overlapped` is non-null then the completion packet contained + // the result of a failed I/O operation. We only handle failures + // caused by a broken pipes, all others are considered fatal. + if !overlapped.is_null() && (err == ERROR_BROKEN_PIPE) { + // SAFETY: `overlapped` was non-null, so `completion_key` has + // also been populated by `GetQueuedCompletionStatus()`. + let completion_key = unsafe { completion_key.assume_init() }; + let element = self.connectors.remove(&completion_key); + debug_assert!(element.is_some(), "Completion on missing connector"); + events.push(IPCEvent::Disconnect(completion_key)); + } else { + return Err(IPCQueueError::WaitError(err)); + } + } else { + // SAFETY: `GetQueueCompletionStatus()` successfully retrieved a + // completed I/O operation, all parameters have been populated. + let (number_of_bytes_transferred, completion_key) = unsafe { + ( + number_of_bytes_transferred.assume_init(), + completion_key.assume_init(), + ) + }; + + if number_of_bytes_transferred == 0 { + // This is an event on the listener + debug_assert!( + self.listener.as_raw() as IPCConnectorKey == completion_key, + "Completion event doesn't match the listener" + ); + let operation = self.listen_operation.take(); + if let Some(operation) = operation { + operation + .accept() + .map_err(|_e| IPCQueueError::RegistrationFailure(0))?; + } + let connector = Rc::new(self.listener.replace_pipe()?); + self.insert_connector(&connector); + + // After the pipe is connected the listener handle will have been + // replaced with a new one, so associate the new handle with the + // completion queue. + self.add_handle(self.listener.as_raw())?; + + events.push(IPCEvent::Connect(connector)); + } else { + let element = self + .connectors + .get_mut(&completion_key) + .expect("Event did not match a known connector"); + let operation = element + .operation + .take() + .expect("No pending receive operation"); + let buffer = &operation.collect_recv(); + let header = Header::decode(buffer)?; + let payload = element.connector.recv(header.size); + match payload { + Ok(payload) => { + events.push(IPCEvent::Message( + completion_key, + header, + payload.0, + payload.1, + )); + } + Err(_error @ IPCError::ReceptionFailure(PlatformError::BrokenPipe)) => { + // This connector will generate a disconnection event + // when `wait_for_events()` is called again. Do nothing + // for the time being. + } + Err(error) => return Err(IPCQueueError::from(error)), + } + } + } + + Ok(events) + } +} + +impl Drop for IPCQueue { + fn drop(&mut self) { + // Cancel all the pending operations. + for element in self.connectors.values_mut() { + if let Some(operation) = &mut element.operation { + if !operation.cancel() { + operation.leak(); + } + } + } + + if let Some(operation) = &mut self.listen_operation { + if !operation.cancel() { + operation.leak(); + } + } + + // Drain the queue, once no more events are left we can safely drop it. + loop { + let mut number_of_bytes_transferred: u32 = 0; + let mut completion_key: IPCConnectorKey = 0; + let mut overlapped: *mut OVERLAPPED = null_mut(); + + let res = unsafe { + GetQueuedCompletionStatus( + self.port.as_raw_handle() as HANDLE, + &mut number_of_bytes_transferred, + &mut completion_key, + &mut overlapped, + 0, + ) + }; + + // TODO: Check that we got enough completion events? + + if res == FALSE && overlapped.is_null() { + // TODO: Maybe check the error and report odd ones? + break; + } + } + } +} diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue.rs 1970-01-01 00:00:00.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/ipc_queue.rs 2026-01-06 21:09:59.000000000 +0000 @@ -0,0 +1,53 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +use thiserror::Error; + +use crate::{ + errors::{IPCError, SystemError}, + messages::MessageError, + IPCListenerError, +}; + +/***************************************************************************** + * Error definitions * + *****************************************************************************/ + +#[derive(Debug, Error)] +pub enum IPCQueueError { + #[error("Could not create queue: {0}")] + CreationFailure(SystemError), + #[error("Could not register with queue: {0}")] + RegistrationFailure(SystemError), + #[error("Could not post an event on the queue: {0}")] + PostEventFailure(SystemError), + #[error("Could not wait for events: {0}")] + WaitError(SystemError), + #[error("Underlying IPC connector error: {0}")] + IPCError(#[from] IPCError), + #[error("Underlying IPC listener error: {0}")] + IPCListenerError(#[from] IPCListenerError), + #[error("Underlying message error: {0}")] + MessageError(#[from] MessageError), +} + +/***************************************************************************** + * Windows * + *****************************************************************************/ + +#[cfg(target_os = "windows")] +pub use windows::IPCQueue; + +#[cfg(target_os = "windows")] +pub(crate) mod windows; + +/***************************************************************************** + * Android, macOS & Linux * + *****************************************************************************/ + +#[cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))] +pub use unix::IPCQueue; + +#[cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))] +pub(crate) mod unix; diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/lib.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/lib.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/lib.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/lib.rs 2026-01-06 21:09:59.000000000 +0000 @@ -11,15 +11,20 @@ mod ipc_channel; mod ipc_connector; mod ipc_listener; +mod ipc_queue; mod platform; -use errors::MessageError; +use messages::MessageError; // Re-export the platform-specific types and functions pub use crate::breakpad::{BreakpadChar, BreakpadData, BreakpadRawData, Pid}; pub use crate::ipc_channel::{IPCChannel, IPCClientChannel}; -pub use crate::ipc_connector::{AncillaryData, IPCConnector, IPCEvent, INVALID_ANCILLARY_DATA}; -pub use crate::ipc_listener::IPCListener; +pub use crate::ipc_connector::{ + AncillaryData, IPCConnector, IPCConnectorKey, IPCEvent, RawAncillaryData, + INVALID_ANCILLARY_DATA, +}; +pub use crate::ipc_listener::{IPCListener, IPCListenerError}; +pub use crate::ipc_queue::IPCQueue; pub use crate::platform::ProcessHandle; #[cfg(target_os = "windows")] @@ -58,4 +63,9 @@ unsafe fn from_raw(ptr: *mut BreakpadChar) -> OsString; } +/// Owned handle or file descriptor conversion to their respective raw versions +pub trait IntoRawAncillaryData { + fn into_raw(self) -> RawAncillaryData; +} + pub const IO_TIMEOUT: u16 = 2 * 1000; diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/messages.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/messages.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/messages.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/messages.rs 2026-01-06 21:09:59.000000000 +0000 @@ -7,13 +7,33 @@ use num_derive::{FromPrimitive, ToPrimitive}; use num_traits::FromPrimitive; use std::{ - ffi::{CString, OsString}, + array::TryFromSliceError, + ffi::{CString, FromBytesWithNulError, NulError, OsString}, mem::size_of, }; +use thiserror::Error; #[cfg(target_os = "windows")] use windows_sys::Win32::System::Diagnostics::Debug::{CONTEXT, EXCEPTION_RECORD}; -use crate::{breakpad::Pid, errors::MessageError, ipc_connector::AncillaryData, BreakpadString}; +use crate::{breakpad::Pid, ipc_connector::AncillaryData, BreakpadString}; + +#[derive(Debug, Error)] +pub enum MessageError { + #[error("Nul terminator found within a string")] + InteriorNul(#[from] NulError), + #[error("The message contained an invalid payload")] + InvalidData, + #[error("Message kind is invalid")] + InvalidKind, + #[error("Invalid message size")] + InvalidSize(#[from] TryFromSliceError), + #[error("Missing ancillary data")] + MissingAncillary, + #[error("Missing nul terminator")] + MissingNul(#[from] FromBytesWithNulError), + #[error("Truncated message")] + Truncated, +} #[repr(u8)] #[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive, PartialEq)] @@ -57,8 +77,7 @@ where Self: Sized; fn header(&self) -> Vec; - fn payload(&self) -> Vec; - fn ancillary_payload(&self) -> Option; + fn into_payload(self) -> (Vec, Option); fn decode(data: &[u8], ancillary_data: Option) -> Result where Self: Sized; @@ -126,16 +145,12 @@ .encode() } - fn payload(&self) -> Vec { + fn into_payload(self) -> (Vec, Option) { let mut payload = Vec::with_capacity(self.payload_size()); let path = self.path.serialize(); payload.extend(path.len().to_ne_bytes()); payload.extend(self.path.serialize()); - payload - } - - fn ancillary_payload(&self) -> Option { - None + (payload, None) } fn decode( @@ -184,12 +199,8 @@ .encode() } - fn payload(&self) -> Vec { - self.pid.to_ne_bytes().to_vec() - } - - fn ancillary_payload(&self) -> Option { - None + fn into_payload(self) -> (Vec, Option) { + (self.pid.to_ne_bytes().to_vec(), None) } fn decode( @@ -245,7 +256,7 @@ .encode() } - fn payload(&self) -> Vec { + fn into_payload(self) -> (Vec, Option) { let path_bytes = self.path.serialize(); let mut buffer = Vec::with_capacity(self.payload_size()); buffer.extend(path_bytes.len().to_ne_bytes()); @@ -262,11 +273,7 @@ .as_ref() .map_or(Vec::new(), |error| Vec::from(error.as_bytes())), ); - buffer - } - - fn ancillary_payload(&self) -> Option { - None + (buffer, None) } fn decode( @@ -348,7 +355,7 @@ .encode() } - fn payload(&self) -> Vec { + fn into_payload(self) -> (Vec, Option) { let mut buffer = Vec::::with_capacity(self.payload_size()); buffer.extend(self.pid.to_ne_bytes()); buffer.extend(self.tid.to_ne_bytes()); @@ -360,11 +367,7 @@ } let bytes: [u8; size_of::()] = unsafe { std::mem::transmute(self.context) }; buffer.extend(bytes); - buffer - } - - fn ancillary_payload(&self) -> Option { - None + (buffer, None) } fn decode( @@ -452,12 +455,8 @@ .encode() } - fn payload(&self) -> Vec { - Vec::::new() - } - - fn ancillary_payload(&self) -> Option { - None + fn into_payload(self) -> (Vec, Option) { + (Vec::::new(), None) } fn decode( @@ -507,7 +506,7 @@ .encode() } - fn payload(&self) -> Vec { + fn into_payload(self) -> (Vec, Option) { let mut payload = Vec::with_capacity(self.payload_size()); payload.extend(self.pid.to_ne_bytes()); payload.extend(self.auxv_info.program_header_count.to_ne_bytes()); @@ -515,11 +514,7 @@ payload.extend(self.auxv_info.linux_gate_address.to_ne_bytes()); payload.extend(self.auxv_info.entry_address.to_ne_bytes()); debug_assert!(self.payload_size() == payload.len()); - payload - } - - fn ancillary_payload(&self) -> Option { - None + (payload, None) } fn decode( @@ -598,15 +593,11 @@ .encode() } - fn payload(&self) -> Vec { + fn into_payload(self) -> (Vec, Option) { let mut payload = Vec::with_capacity(self.payload_size()); payload.extend(self.pid.to_ne_bytes()); debug_assert!(self.payload_size() == payload.len()); - payload - } - - fn ancillary_payload(&self) -> Option { - None + (payload, None) } fn decode( @@ -627,7 +618,16 @@ /* Message sent from the main process to the crash helper to register a new * child process which is about to be spawned. This message contains the IPC - * endpoint which the crash helper will use to talk to the child. */ + * endpoint which the crash helper will use to talk to the child. + * + * Note that these processes should only contain an IPC endpoint and no actual + * data, however they declare a 1-byte sized payload which is transferred but + * ignored on the receiving size. This is a workaround to an issue with macOS + * 10.15 implementation of Unix sockets which would sometimes fail to deliver + * a message that would only contain control data and no buffer. See bug + * 1989686 for more information. This dummy payload can be removed once bug + * 2002791 is implemented. + */ pub struct RegisterChildProcess { pub ipc_endpoint: AncillaryData, @@ -639,7 +639,7 @@ } fn payload_size(&self) -> usize { - 0 + 1 } } @@ -656,12 +656,8 @@ .encode() } - fn payload(&self) -> Vec { - Vec::::new() - } - - fn ancillary_payload(&self) -> Option { - Some(self.ipc_endpoint) + fn into_payload(self) -> (Vec, Option) { + (vec![0], Some(self.ipc_endpoint)) } fn decode( @@ -705,12 +701,8 @@ .encode() } - fn payload(&self) -> Vec { - self.crash_helper_pid.to_ne_bytes().to_vec() - } - - fn ancillary_payload(&self) -> Option { - None + fn into_payload(self) -> (Vec, Option) { + (self.crash_helper_pid.to_ne_bytes().to_vec(), None) } fn decode( diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform/linux.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform/linux.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform/linux.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform/linux.rs 2026-01-06 21:09:59.000000000 +0000 @@ -3,35 +3,61 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ use nix::{ + errno::Errno, fcntl::{ fcntl, FcntlArg::{F_GETFL, F_SETFD, F_SETFL}, FdFlag, OFlag, }, sys::socket::{socketpair, AddressFamily, SockFlag, SockType}, - Result, -}; -use std::{ - os::fd::{BorrowedFd, OwnedFd}, }; +use std::os::fd::{BorrowedFd, OwnedFd}; +use thiserror::Error; pub type ProcessHandle = (); -pub(crate) fn unix_socketpair() -> Result<(OwnedFd, OwnedFd)> { +#[derive(Error, Debug)] +pub enum PlatformError { + #[error("poll() call failed with error: {0}")] + PollFailure(Errno), + #[error("Could not set socket in non-blocking mode: {0}")] + SocketNonBlockError(Errno), + #[error("Could not flag socket as close-after-exec: {0}")] + SocketCloexecError(Errno), + #[error("Could not create a socket pair: {0}")] + SocketpairFailure(#[from] Errno), + #[error("sendmsg() call failed with error: {0}")] + SendFailure(Errno), + #[error("Sending {expected} bytes failed, only {sent} bytes sent")] + SendTooShort { expected: usize, sent: usize }, + #[error("recvmsg() call failed with error: {0}")] + ReceiveFailure(Errno), + #[error("Missing SCM credentials")] + ReceiveMissingCredentials, + #[error("Receiving {expected} bytes failed, only {received} bytes received")] + ReceiveTooShort { expected: usize, received: usize }, +} + +pub(crate) fn unix_socketpair() -> Result<(OwnedFd, OwnedFd), PlatformError> { socketpair( AddressFamily::Unix, SockType::SeqPacket, None, SockFlag::empty(), ) + .map_err(PlatformError::SocketpairFailure) } -pub(crate) fn set_socket_default_flags(socket: BorrowedFd) -> Result<()> { +pub(crate) fn set_socket_default_flags(socket: BorrowedFd) -> Result<(), PlatformError> { // All our sockets are in non-blocking mode. let flags = OFlag::from_bits_retain(fcntl(socket, F_GETFL)?); - fcntl(socket, F_SETFL(flags.union(OFlag::O_NONBLOCK))).map(|_res| ()) + fcntl(socket, F_SETFL(flags.union(OFlag::O_NONBLOCK))) + .map(|_res| ()) + .map_err(PlatformError::SocketNonBlockError) } -pub(crate) fn set_socket_cloexec(socket: BorrowedFd) -> Result<()> { - fcntl(socket, F_SETFD(FdFlag::FD_CLOEXEC)).map(|_res| ()) +pub(crate) fn set_socket_cloexec(socket: BorrowedFd) -> Result<(), PlatformError> { + fcntl(socket, F_SETFD(FdFlag::FD_CLOEXEC)) + .map(|_res| ()) + .map_err(PlatformError::SocketCloexecError) } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform/macos.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform/macos.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform/macos.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform/macos.rs 2026-01-06 21:09:59.000000000 +0000 @@ -11,25 +11,48 @@ }, libc::{setsockopt, SOL_SOCKET, SO_NOSIGPIPE}, sys::socket::{socketpair, AddressFamily, SockFlag, SockType}, - Result, }; use std::{ mem::size_of, os::fd::{AsRawFd, BorrowedFd, OwnedFd}, }; +use thiserror::Error; pub type ProcessHandle = (); -pub(crate) fn unix_socketpair() -> Result<(OwnedFd, OwnedFd)> { +#[derive(Error, Debug)] +pub enum PlatformError { + #[error("poll() call failed with error: {0}")] + PollFailure(Errno), + #[error("Could not set socket in non-blocking mode: {0}")] + SocketNonBlockError(Errno), + #[error("Could not flag socket as close-after-exec: {0}")] + SocketCloexecError(Errno), + #[error("Could not create a socket pair: {0}")] + SocketpairFailure(#[from] Errno), + #[error("sendmsg() call failed with error: {0}")] + SendFailure(Errno), + #[error("Sending {expected} bytes failed, only {sent} bytes sent")] + SendTooShort { expected: usize, sent: usize }, + #[error("recvmsg() call failed with error: {0}")] + ReceiveFailure(Errno), + #[error("Missing SCM credentials")] + ReceiveMissingCredentials, + #[error("Receiving {expected} bytes failed, only {received} bytes received")] + ReceiveTooShort { expected: usize, received: usize }, +} + +pub(crate) fn unix_socketpair() -> Result<(OwnedFd, OwnedFd), PlatformError> { socketpair( AddressFamily::Unix, SockType::Stream, None, SockFlag::empty(), ) + .map_err(PlatformError::SocketpairFailure) } -pub(crate) fn set_socket_default_flags(socket: BorrowedFd) -> Result<()> { +pub(crate) fn set_socket_default_flags(socket: BorrowedFd) -> Result<(), PlatformError> { // All our sockets are in non-blocking mode. let flags = OFlag::from_bits_retain(fcntl(socket, F_GETFL)?); fcntl(socket, F_SETFL(flags.union(OFlag::O_NONBLOCK)))?; @@ -48,12 +71,14 @@ }; if res < 0 { - return Err(Errno::last()); + return Err(PlatformError::SocketNonBlockError(Errno::last())); } Ok(()) } -pub(crate) fn set_socket_cloexec(socket: BorrowedFd) -> Result<()> { - fcntl(socket, F_SETFD(FdFlag::FD_CLOEXEC)).map(|_res| ()) +pub(crate) fn set_socket_cloexec(socket: BorrowedFd) -> Result<(), PlatformError> { + fcntl(socket, F_SETFD(FdFlag::FD_CLOEXEC)) + .map(|_res| ()) + .map_err(PlatformError::SocketCloexecError) } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform/windows.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform/windows.rs 2026-01-06 21:09:59.000000000 +0000 @@ -2,19 +2,20 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ -use crate::{ - errors::{IPCError, MessageError}, - Pid, IO_TIMEOUT, -}; +use crate::{Pid, IO_TIMEOUT}; use std::{ ffi::CString, - mem::zeroed, - os::windows::io::{AsRawHandle, FromRawHandle, OwnedHandle, RawHandle}, + mem::{zeroed, MaybeUninit}, + os::windows::io::{ + AsHandle, AsRawHandle, BorrowedHandle, FromRawHandle, OwnedHandle, RawHandle, + }, ptr::{null, null_mut}, + rc::Rc, }; +use thiserror::Error; use windows_sys::Win32::{ Foundation::{ - GetLastError, ERROR_IO_INCOMPLETE, ERROR_IO_PENDING, ERROR_NOT_FOUND, ERROR_PIPE_CONNECTED, + GetLastError, ERROR_BROKEN_PIPE, ERROR_IO_PENDING, ERROR_NOT_FOUND, ERROR_PIPE_CONNECTED, FALSE, HANDLE, WAIT_TIMEOUT, WIN32_ERROR, }, Storage::FileSystem::{ReadFile, WriteFile}, @@ -27,6 +28,36 @@ pub type ProcessHandle = OwnedHandle; +#[derive(Error, Debug)] +pub enum PlatformError { + #[error("Could not accept incoming connection: {0}")] + AcceptFailed(WIN32_ERROR), + #[error("Broken pipe")] + BrokenPipe, + #[error("Failed to duplicate clone handle")] + CloneHandleFailed(#[source] std::io::Error), + #[error("Could not create event: {0}")] + CreateEventFailed(WIN32_ERROR), + #[error("Could not create a pipe: {0}")] + CreatePipeFailure(WIN32_ERROR), + #[error("I/O error: {0}")] + IOError(WIN32_ERROR), + #[error("No process handle specified")] + MissingProcessHandle, + #[error("Could not listen for incoming connections: {0}")] + ListenFailed(WIN32_ERROR), + #[error("Receiving {expected} bytes failed, only {received} bytes received")] + ReceiveTooShort { expected: usize, received: usize }, + #[error("Could not reset event: {0}")] + ResetEventFailed(WIN32_ERROR), + #[error("Sending {expected} bytes failed, only {sent} bytes sent")] + SendTooShort { expected: usize, sent: usize }, + #[error("Could not set event: {0}")] + SetEventFailed(WIN32_ERROR), + #[error("Value too large")] + ValueTooLarge, +} + pub(crate) fn get_last_error() -> WIN32_ERROR { // SAFETY: This is always safe to call unsafe { GetLastError() } @@ -37,7 +68,7 @@ CString::new(format!("\\\\.\\pipe\\gecko-crash-helper-pipe.{pid:}")).unwrap() } -pub(crate) fn create_manual_reset_event() -> Result { +pub(crate) fn create_manual_reset_event() -> Result { // SAFETY: We pass null pointers for all the pointer arguments. let raw_handle = unsafe { CreateEventA( @@ -49,27 +80,36 @@ } as RawHandle; if raw_handle.is_null() { - return Err(IPCError::System(get_last_error())); + return Err(PlatformError::CreateEventFailed(get_last_error())); } // SAFETY: We just verified that `raw_handle` is valid. Ok(unsafe { OwnedHandle::from_raw_handle(raw_handle) }) } -fn set_event(handle: HANDLE) -> Result<(), IPCError> { +fn set_event(handle: BorrowedHandle) -> Result<(), PlatformError> { // SAFETY: This is always safe, even when passing an invalid handle. - if unsafe { SetEvent(handle) } == FALSE { - Err(IPCError::System(get_last_error())) + if unsafe { SetEvent(handle.as_raw_handle() as HANDLE) } == FALSE { + Err(PlatformError::SetEventFailed(get_last_error())) } else { Ok(()) } } -fn cancel_overlapped_io(handle: HANDLE, overlapped: &mut OVERLAPPED) -> bool { +fn reset_event(handle: BorrowedHandle) -> Result<(), PlatformError> { + // SAFETY: This is always safe, even when passing an invalid handle. + if unsafe { ResetEvent(handle.as_raw_handle() as HANDLE) } == FALSE { + Err(PlatformError::ResetEventFailed(get_last_error())) + } else { + Ok(()) + } +} + +fn cancel_overlapped_io(handle: BorrowedHandle, overlapped: &OVERLAPPED) -> bool { // SAFETY: the pointer to the overlapped structure is always valid as the // structure is passed by reference. The handle should be valid but will // be handled properly in case it isn't. - let res = unsafe { CancelIoEx(handle, overlapped) }; + let res = unsafe { CancelIoEx(handle.as_raw_handle() as HANDLE, overlapped) }; if res == FALSE { if get_last_error() == ERROR_NOT_FOUND { // There was no pending operation @@ -79,14 +119,19 @@ return false; } + if overlapped.hEvent == 0 { + // No associated event, don't wait + return true; + } + // Just wait for the operation to finish, we don't care about the result - let mut number_of_bytes_transferred: u32 = 0; + let mut number_of_bytes_transferred = MaybeUninit::::uninit(); // SAFETY: Same as above let res = unsafe { GetOverlappedResultEx( - handle, + handle.as_raw_handle() as HANDLE, overlapped, - &mut number_of_bytes_transferred, + number_of_bytes_transferred.as_mut_ptr(), INFINITE, /* bAlertable */ FALSE, ) @@ -96,7 +141,7 @@ } pub(crate) struct OverlappedOperation { - handle: OwnedHandle, + handle: Rc, overlapped: Option>, buffer: Option>, } @@ -107,11 +152,9 @@ } impl OverlappedOperation { - pub(crate) fn listen( - handle: OwnedHandle, - event: HANDLE, - ) -> Result { - let mut overlapped = Self::overlapped_with_event(event)?; + // Asynchronously listen for an incoming connection + pub(crate) fn listen(handle: &Rc) -> Result { + let mut overlapped = Self::overlapped(); // SAFETY: We guarantee that the handle and OVERLAPPED object are both // valid and remain so while used by this function. @@ -122,47 +165,42 @@ if res != FALSE { // According to Microsoft's documentation this should never happen, // we check out of an abundance of caution. - return Err(IPCError::System(error)); + return Err(PlatformError::ListenFailed(error)); } - if error == ERROR_PIPE_CONNECTED { - // The operation completed synchronously, set the event so that - // waiting on it will return immediately. - set_event(event)?; - } else if error != ERROR_IO_PENDING { - return Err(IPCError::System(error)); - } + match error { + ERROR_PIPE_CONNECTED | ERROR_IO_PENDING => { + // The operations succeeded, we'll get a completion event + } + error => return Err(PlatformError::ListenFailed(error)), + }; Ok(OverlappedOperation { - handle, + handle: handle.clone(), overlapped: Some(overlapped), buffer: None, }) } - pub(crate) fn accept(mut self, handle: HANDLE) -> Result<(), IPCError> { + // Synchronously accept an incoming connection, does not wait and fails if + // no incoming connection is present. + pub(crate) fn accept(mut self) -> Result<(), PlatformError> { let overlapped = self.overlapped.take().unwrap(); - let mut _number_of_bytes_transferred: u32 = 0; + let mut number_of_bytes_transferred = MaybeUninit::::uninit(); // SAFETY: The pointer to the OVERLAPPED structure is under our // control and thus guaranteed to be valid. let res = unsafe { GetOverlappedResultEx( - handle, + self.handle.as_raw_handle() as HANDLE, overlapped.as_ref(), - &mut _number_of_bytes_transferred, + number_of_bytes_transferred.as_mut_ptr(), 0, /* bAlertable */ FALSE, ) }; if res == FALSE { - let error = get_last_error(); - if error == ERROR_IO_INCOMPLETE { - // The I/O operation did not complete yet - self.cancel_or_leak(overlapped, None); - } - - return Err(IPCError::System(error)); + return Err(PlatformError::AcceptFailed(get_last_error())); } Ok(()) @@ -171,35 +209,49 @@ fn await_io( mut self, optype: OverlappedOperationType, - wait: bool, - ) -> Result>, IPCError> { + ) -> Result>, PlatformError> { let overlapped = self.overlapped.take().unwrap(); let buffer = self.buffer.take().unwrap(); - let mut number_of_bytes_transferred: u32 = 0; + let mut number_of_bytes_transferred = MaybeUninit::::uninit(); // SAFETY: All the pointers passed to this call are under our control // and thus guaranteed to be valid. let res = unsafe { GetOverlappedResultEx( self.handle.as_raw_handle() as HANDLE, overlapped.as_ref(), - &mut number_of_bytes_transferred, - if wait { IO_TIMEOUT as u32 } else { 0 }, + number_of_bytes_transferred.as_mut_ptr(), + IO_TIMEOUT as u32, /* bAlertable */ FALSE, ) }; if res == FALSE { let error = get_last_error(); - if (wait && (error == WAIT_TIMEOUT)) || (!wait && (error == ERROR_IO_INCOMPLETE)) { + if error == WAIT_TIMEOUT { // The I/O operation did not complete yet self.cancel_or_leak(overlapped, Some(buffer)); + } else if error == ERROR_BROKEN_PIPE { + return Err(PlatformError::BrokenPipe); } - return Err(IPCError::System(error)); + return Err(PlatformError::IOError(error)); } - if (number_of_bytes_transferred as usize) != buffer.len() { - return Err(IPCError::BadMessage(MessageError::InvalidData)); + // SAFETY: We've verified that `number_of_bytes_transferred` has been + // populated by the `GetOverlappedResultEx()` call. + let number_of_bytes_transferred = unsafe { number_of_bytes_transferred.assume_init() }; + + if number_of_bytes_transferred as usize != buffer.len() { + return Err(match optype { + OverlappedOperationType::Read => PlatformError::ReceiveTooShort { + expected: buffer.len(), + received: number_of_bytes_transferred as usize, + }, + OverlappedOperationType::Write => PlatformError::SendTooShort { + expected: buffer.len(), + sent: number_of_bytes_transferred as usize, + }, + }); } Ok(match optype { @@ -208,14 +260,20 @@ }) } - pub(crate) fn sched_recv( - handle: OwnedHandle, - event: HANDLE, + fn sched_recv_internal( + handle: &Rc, + event: Option, expected_size: usize, - ) -> Result { - let mut overlapped = Self::overlapped_with_event(event)?; + ) -> Result { + let mut overlapped = if let Some(event) = event { + OverlappedOperation::overlapped_with_event(event)? + } else { + OverlappedOperation::overlapped() + }; let mut buffer = vec![0u8; expected_size]; - let number_of_bytes_to_read: u32 = expected_size.try_into()?; + let number_of_bytes_to_read: u32 = expected_size + .try_into() + .map_err(|_e| PlatformError::ValueTooLarge)?; // SAFETY: We control all the pointers going into this call, guarantee // that they're valid and that they will be alive for the entire // duration of the asynchronous operation. @@ -231,31 +289,56 @@ let error = get_last_error(); if res != FALSE { - // The operation completed synchronously, set the event so that - // waiting on it will return immediately. - set_event(event)?; + if let Some(event) = event { + // The operation completed synchronously, if we have an event + // set it so that waiting on it will return immediately. + set_event(event)?; + } + } else if error == ERROR_BROKEN_PIPE { + return Err(PlatformError::BrokenPipe); } else if error != ERROR_IO_PENDING { - return Err(IPCError::System(error)); + return Err(PlatformError::IOError(error)); } Ok(OverlappedOperation { - handle, + handle: handle.clone(), overlapped: Some(overlapped), buffer: Some(buffer), }) } - pub(crate) fn collect_recv(self, wait: bool) -> Result, IPCError> { - Ok(self.await_io(OverlappedOperationType::Read, wait)?.unwrap()) + pub(crate) fn recv( + handle: &Rc, + event: BorrowedHandle<'_>, + expected_size: usize, + ) -> Result, PlatformError> { + let overlapped = Self::sched_recv_internal(handle, Some(event), expected_size)?; + overlapped + .await_io(OverlappedOperationType::Read) + .map(|buffer| buffer.unwrap()) + } + + pub(crate) fn sched_recv( + handle: &Rc, + expected_size: usize, + ) -> Result { + Self::sched_recv_internal(handle, None, expected_size) } - pub(crate) fn sched_send( - handle: OwnedHandle, - event: HANDLE, + pub(crate) fn collect_recv(mut self) -> Vec { + self.buffer.take().expect("Missing receive buffer") + } + + pub(crate) fn send( + handle: &Rc, + event: BorrowedHandle<'_>, mut buffer: Vec, - ) -> Result { + ) -> Result<(), PlatformError> { let mut overlapped = Self::overlapped_with_event(event)?; - let number_of_bytes_to_write: u32 = buffer.len().try_into()?; + let number_of_bytes_to_write: u32 = buffer + .len() + .try_into() + .map_err(|_e| PlatformError::ValueTooLarge)?; // SAFETY: We control all the pointers going into this call, guarantee // that they're valid and that they will be alive for the entire // duration of the asynchronous operation. @@ -274,36 +357,64 @@ // The operation completed synchronously, set the event so that // waiting on it will return immediately. set_event(event)?; + } else if error == ERROR_BROKEN_PIPE { + return Err(PlatformError::BrokenPipe); } else if error != ERROR_IO_PENDING { - return Err(IPCError::System(error)); + return Err(PlatformError::IOError(error)); } - Ok(OverlappedOperation { - handle, + let overlapped = OverlappedOperation { + handle: handle.clone(), overlapped: Some(overlapped), buffer: Some(buffer), - }) - } + }; - pub(crate) fn complete_send(self, wait: bool) -> Result<(), IPCError> { - self.await_io(OverlappedOperationType::Write, wait)?; - Ok(()) + overlapped + .await_io(OverlappedOperationType::Write) + .map(|buffer| { + debug_assert!(buffer.is_none()); + }) } - fn overlapped_with_event(event: HANDLE) -> Result, IPCError> { - // SAFETY: This is always safe, even when passing an invalid handle. - if unsafe { ResetEvent(event) } == FALSE { - return Err(IPCError::System(get_last_error())); - } - + fn overlapped_with_event(event: BorrowedHandle<'_>) -> Result, PlatformError> { + reset_event(event)?; + + // We set the last bit of the `hEvent` field to prevent this overlapped + // operation from generating completion events. The event handle will + // be notified instead when it completes. Ok(Box::new(OVERLAPPED { - hEvent: event, + hEvent: event.as_raw_handle() as HANDLE | 1, ..unsafe { zeroed() } })) } + fn overlapped() -> Box { + Box::new(unsafe { zeroed() }) + } + + /// Cancel the pending operation but leave the buffers intact. It's the + /// caller's responsibility to wait for the operation to complete and free + /// the buffers. + pub(crate) fn cancel(&self) -> bool { + if let Some(overlapped) = self.overlapped.as_deref() { + return cancel_overlapped_io(self.handle.as_handle(), overlapped); + } + + true + } + + /// Leak the buffers involved in the operation. + pub(crate) fn leak(&mut self) { + if let Some(overlapped) = self.overlapped.take() { + Box::leak(overlapped); + if let Some(buffer) = self.buffer.take() { + buffer.leak(); + } + } + } + fn cancel_or_leak(&self, mut overlapped: Box, buffer: Option>) { - if !cancel_overlapped_io(self.handle.as_raw_handle() as HANDLE, overlapped.as_mut()) { + if !cancel_overlapped_io(self.handle.as_handle(), overlapped.as_mut()) { // If we cannot cancel the operation we must leak the // associated buffers so that they're available in case it // ever completes. @@ -320,6 +431,10 @@ let overlapped = self.overlapped.take(); let buffer = self.buffer.take(); if let Some(overlapped) = overlapped { + if overlapped.hEvent == 0 { + return; // This operation should have already been cancelled. + } + self.cancel_or_leak(overlapped, buffer); } } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_common/src/platform.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_common/src/platform.rs 2026-01-06 21:09:59.000000000 +0000 @@ -3,19 +3,19 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #[cfg(target_os = "windows")] -pub use windows::{server_addr, ProcessHandle}; +pub use windows::{server_addr, PlatformError, ProcessHandle}; #[cfg(target_os = "windows")] pub(crate) mod windows; #[cfg(any(target_os = "android", target_os = "linux"))] -pub use linux::ProcessHandle; +pub use linux::{PlatformError, ProcessHandle}; #[cfg(any(target_os = "android", target_os = "linux"))] pub(crate) mod linux; #[cfg(target_os = "macos")] -pub use macos::ProcessHandle; +pub use macos::{PlatformError, ProcessHandle}; #[cfg(target_os = "macos")] pub(crate) mod macos; diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/crash_generation.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/crash_generation.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/crash_generation.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/crash_generation.rs 2026-01-06 21:09:59.000000000 +0000 @@ -78,7 +78,6 @@ pub(crate) enum MessageResult { None, - Reply(Box), Connection(IPCConnector), } @@ -111,6 +110,7 @@ // reply that will be sent back to the parent. pub(crate) fn parent_message( &mut self, + client: &IPCConnector, kind: messages::Kind, data: &[u8], ancillary_data: Option, @@ -123,9 +123,8 @@ } messages::Kind::TransferMinidump => { let message = messages::TransferMinidump::decode(data, ancillary_data)?; - Ok(MessageResult::Reply(Box::new( - self.transfer_minidump(message.pid), - ))) + client.send_message(self.transfer_minidump(message.pid))?; + Ok(MessageResult::None) } messages::Kind::GenerateMinidump => { todo!("Implement all messages"); @@ -150,7 +149,7 @@ let message = messages::RegisterChildProcess::decode(data, ancillary_data)?; let connector = IPCConnector::from_ancillary(message.ipc_endpoint)?; connector - .send_message(&messages::ChildProcessRegistered::new(process::id() as Pid))?; + .send_message(messages::ChildProcessRegistered::new(process::id() as Pid))?; Ok(MessageResult::Connection(connector)) } kind => { @@ -174,6 +173,7 @@ // reply that will be sent back. pub(crate) fn external_message( &mut self, + #[allow(unused_variables)] runtime: &IPCConnector, kind: messages::Kind, #[allow(unused_variables)] data: &[u8], #[allow(unused_variables)] ancillary_data: Option, @@ -184,9 +184,8 @@ let message = messages::WindowsErrorReportingMinidump::decode(data, ancillary_data)?; let _ = self.generate_wer_minidump(message); - Ok(MessageResult::Reply(Box::new( - messages::WindowsErrorReportingMinidumpReply::new(), - ))) + runtime.send_message(messages::WindowsErrorReportingMinidumpReply::new())?; + Ok(MessageResult::None) } kind => { bail!("Unexpected message {kind:?} from external process"); diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/unix.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/unix.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/unix.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/unix.rs 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -use crash_helper_common::{errors::IPCError, ignore_eintr, IPCEvent}; -use nix::poll::{poll, PollFd, PollFlags, PollTimeout}; - -use super::IPCServer; - -impl IPCServer { - pub fn wait_for_events(&mut self) -> Result, IPCError> { - let mut pollfds = Vec::with_capacity(self.connections.len()); - pollfds.extend( - self.connections.iter().map(|connection| { - PollFd::new(connection.connector.as_raw_ref(), PollFlags::POLLIN) - }), - ); - - let mut events = Vec::::new(); - let mut num_events = - ignore_eintr!(poll(&mut pollfds, PollTimeout::NONE)).map_err(IPCError::System)?; - - for (index, pollfd) in pollfds.iter().enumerate() { - // revents() returns None only if the kernel sends back data - // that nix does not understand, we can safely assume this - // never happens in practice hence the unwrap(). - let revents = pollfd.revents().unwrap(); - - if revents.contains(PollFlags::POLLHUP) { - events.push(IPCEvent::Disconnect(index)); - // If a process was disconnected then skip all further - // processing of the socket. This wouldn't matter normally, - // but on macOS calling recvmsg() on a hung-up socket seems - // to trigger a kernel panic, one we've already encountered - // in the past. Doing things this way avoids the panic - // while having no real downsides. - continue; - } - - if revents.contains(PollFlags::POLLIN) { - // SAFETY: The index is guaranteed to be >0 and within - // the bounds of the connections array. - let connection = unsafe { self.connections.get_unchecked(index) }; - let header = connection.connector.recv_header(); - if let Ok(header) = header { - // Note that if we encounter a failure we don't propagate - // it, when the socket gets disconnected we'll get a - // POLLHUP event anyway so deal with disconnections there - // instead of here. - events.push(IPCEvent::Header(index, header)); - } - } - - if !revents.is_empty() { - num_events -= 1; - - if num_events == 0 { - break; - } - } - } - - Ok(events) - } -} diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/windows.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/windows.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/windows.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server/windows.rs 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this file, - * You can obtain one at http://mozilla.org/MPL/2.0/. */ - -use std::convert::TryInto; - -use crash_helper_common::{errors::IPCError, IPCEvent}; -use log::error; -use windows_sys::Win32::{ - Foundation::{ERROR_BROKEN_PIPE, FALSE, HANDLE, WAIT_OBJECT_0}, - System::{ - SystemServices::MAXIMUM_WAIT_OBJECTS, - Threading::{WaitForMultipleObjects, INFINITE}, - }, -}; - -use super::IPCServer; - -impl IPCServer { - pub fn wait_for_events(&mut self) -> Result, IPCError> { - for connection in self.connections.iter_mut() { - // TODO: We might get a broken pipe error here which would cause us to - // fail instead of just dropping the disconnected connection. - connection.connector.sched_recv_header()?; - } - - let native_events = self.collect_events(); - - // SAFETY: This is less than MAXIMUM_WAIT_OBJECTS - let native_events_len: u32 = unsafe { native_events.len().try_into().unwrap_unchecked() }; - - let res = unsafe { - WaitForMultipleObjects( - native_events_len, - native_events.as_ptr(), - FALSE, // bWaitAll - INFINITE, - ) - }; - - if res >= (WAIT_OBJECT_0 + native_events_len) { - return Err(IPCError::WaitingFailure(None)); - } - - let index = (res - WAIT_OBJECT_0) as usize; - - let mut events = Vec::::new(); - if index == 0 { - if let Ok(connector) = self.listener.accept() { - events.push(IPCEvent::Connect(connector)); - } - } else { - let index = index - 1; - // SAFETY: The index is guaranteed to be within the bounds of the connections array. - let connection = unsafe { self.connections.get_unchecked_mut(index) }; - let header = connection.connector.collect_header(); - - match header { - Ok(header) => { - events.push(IPCEvent::Header(index, header)); - } - Err(error) => match error { - IPCError::System(_code @ ERROR_BROKEN_PIPE) => { - events.push(IPCEvent::Disconnect(index)); - } - _ => return Err(error), - }, - } - } - - Ok(events) - } - - /// This currently returns a vector that is no longer than - /// `MAXIMUM_WAIT_OBJECTS`, so its contents can be safely passed to - /// a `WaitForMultipleObjects()` call. - fn collect_events(&self) -> Vec { - let mut events = Vec::with_capacity(1 + self.connections.len()); - - events.push(self.listener.event_raw_handle()); - for connection in self.connections.iter() { - events.push(connection.connector.event_raw_handle()); - } - - // HACK: When we hit this limit we should be splitting this list in - // multiple groups of at most MAXIMUM_WAIT_OBJECTS objects and have - // several threads wait on the groups, then wait on the threads - // themselves. - if events.len() > MAXIMUM_WAIT_OBJECTS.try_into().unwrap() { - error!("More than {MAXIMUM_WAIT_OBJECTS} processes connecting to the crash helper"); - events.truncate(MAXIMUM_WAIT_OBJECTS.try_into().unwrap()); - } - - events - } -} diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server.rs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/ipc_server.rs 2026-01-06 21:09:59.000000000 +0000 @@ -3,15 +3,13 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ use anyhow::Result; -use crash_helper_common::{errors::IPCError, messages, IPCConnector, IPCEvent, IPCListener}; +use crash_helper_common::{ + messages::Header, AncillaryData, IPCConnector, IPCConnectorKey, IPCEvent, IPCListener, IPCQueue, +}; +use std::{collections::HashMap, rc::Rc}; use crate::crash_generation::{CrashGenerator, MessageResult}; -#[cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))] -mod unix; -#[cfg(target_os = "windows")] -mod windows; - #[derive(PartialEq)] pub enum IPCServerState { Running, @@ -21,61 +19,73 @@ #[derive(PartialEq)] enum IPCEndpoint { Parent, // A connection to the parent process - #[allow(dead_code)] + Child, // A connection to the child process + #[allow(dead_code)] External, // A connection to an external process } struct IPCConnection { - connector: IPCConnector, + connector: Rc, endpoint: IPCEndpoint, } pub(crate) struct IPCServer { - #[cfg_attr(unix, allow(dead_code))] - listener: IPCListener, - connections: Vec, + /// Platform-specific mechanism to wait for events. This will contain + /// references to the connectors so needs to be the first element in + /// the structure so that it's dropped first. + queue: IPCQueue, + connections: HashMap, } impl IPCServer { - pub(crate) fn new(listener: IPCListener, connector: IPCConnector) -> IPCServer { - IPCServer { - listener, - connections: vec![IPCConnection { + pub(crate) fn new(listener: IPCListener, connector: IPCConnector) -> Result { + let connector = Rc::new(connector); + let mut queue = IPCQueue::new(listener)?; + queue.add_connector(&connector)?; + + let mut connections = HashMap::with_capacity(10); + connections.insert( + connector.key(), + IPCConnection { connector, endpoint: IPCEndpoint::Parent, - }], - } + }, + ); + + Ok(IPCServer { queue, connections }) } - pub(crate) fn run( - &mut self, - generator: &mut CrashGenerator, - ) -> Result { - let events = self.wait_for_events()?; + pub(crate) fn run(&mut self, generator: &mut CrashGenerator) -> Result { + let events = self.queue.wait_for_events()?; - // We reverse the order of events, so that we start processing them - // from the highest indexes toward the lowest. If we did the opposite - // removed connections would invalidate the successive indexes. - for event in events.into_iter().rev() { + for event in events.into_iter() { match event { IPCEvent::Connect(connector) => { - self.connections.push(IPCConnection { - connector, - endpoint: IPCEndpoint::External, - }); + self.connections.insert( + connector.key(), + IPCConnection { + connector, + endpoint: IPCEndpoint::External, + }, + ); } - IPCEvent::Header(index, header) => { - let res = self.handle_message(index, &header, generator); - if let Err(error) = res { + IPCEvent::Message(key, header, payload, ancillary_data) => { + if let Err(error) = + self.handle_message(key, &header, payload, ancillary_data, generator) + { log::error!( - "Error {error} while handling a message of {:?} kind", + "Error {error} when handling a message of kind {:?}", header.kind ); } } - IPCEvent::Disconnect(index) => { - let connection = self.connections.remove(index); + IPCEvent::Disconnect(key) => { + let connection = self + .connections + .remove(&key) + .expect("Disconnection event but no corresponding connection"); + if connection.endpoint == IPCEndpoint::Parent { // The main process disconnected, leave return Ok(IPCServerState::ClientDisconnected); @@ -89,34 +99,41 @@ fn handle_message( &mut self, - index: usize, - header: &messages::Header, + key: IPCConnectorKey, + header: &Header, + data: Vec, + ancillary_data: Option, generator: &mut CrashGenerator, ) -> Result<()> { let connection = self .connections - .get_mut(index) - .expect("Invalid connector index"); - let connector = &mut connection.connector; - let (data, ancillary_data) = connector.recv(header.size)?; - - let reply = match connection.endpoint { - IPCEndpoint::Parent => generator.parent_message(header.kind, &data, ancillary_data), - IPCEndpoint::Child => generator.child_message(header.kind, &data, ancillary_data), - IPCEndpoint::External => generator.external_message(header.kind, &data, ancillary_data), - }?; - - match reply { - MessageResult::Reply(reply) => connector.send_message(reply.as_ref())?, - MessageResult::Connection(connector) => { - self.connections.push(IPCConnection { - connector, - endpoint: IPCEndpoint::Child, - }); + .get(&key) + .expect("Event received on non-existing connection"); + let connector = &connection.connector; + + match connection.endpoint { + IPCEndpoint::Parent => { + let res = + generator.parent_message(connector, header.kind, &data, ancillary_data)?; + if let MessageResult::Connection(connector) = res { + let connector = Rc::new(connector); + self.queue.add_connector(&connector)?; + self.connections.insert( + connector.key(), + IPCConnection { + connector, + endpoint: IPCEndpoint::Child, + }, + ); + } } - - MessageResult::None => {} - } + IPCEndpoint::Child => { + generator.child_message(header.kind, &data, ancillary_data)?; + } + IPCEndpoint::External => { + generator.external_message(connector, header.kind, &data, ancillary_data)?; + } + }; Ok(()) } diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/lib.rs firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/lib.rs --- firefox-esr-140.6.0esr/toolkit/crashreporter/crash_helper_server/src/lib.rs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/crash_helper_server/src/lib.rs 2026-01-06 21:09:59.000000000 +0000 @@ -13,13 +13,16 @@ #[cfg(not(target_os = "android"))] use crash_helper_common::Pid; +#[cfg(target_os = "android")] +use crash_helper_common::RawAncillaryData; use crash_helper_common::{BreakpadData, BreakpadRawData, IPCConnector, IPCListener}; -use std::ffi::{c_char, CStr, OsString}; +use std::{ + ffi::{c_char, CStr, OsString}, + fmt::Display, +}; use crash_generation::CrashGenerator; use ipc_server::{IPCServer, IPCServerState}; -#[cfg(target_os = "android")] -use std::os::fd::{FromRawFd, OwnedFd, RawFd}; /// Runs the crash generator process logic, this includes the IPC used by /// processes to signal that they crashed, the IPC used to retrieve crash @@ -52,26 +55,25 @@ .unwrap(); let minidump_path = OsString::from(minidump_path); let listener = unsafe { CStr::from_ptr(listener) }; - let listener = IPCListener::deserialize(listener, client_pid) - .map_err(|error| { - log::error!("Could not parse the crash generator's listener (error: {error})"); - }) - .unwrap(); + let listener = unwrap_with_message( + IPCListener::deserialize(listener, client_pid), + "Could not parse the crash generator's listener", + ); let pipe = unsafe { CStr::from_ptr(pipe) }; - let connector = IPCConnector::deserialize(pipe) - .map_err(|error| { - log::error!("Could not parse the crash generator's connector (error: {error})"); - }) - .unwrap(); - - let crash_generator = CrashGenerator::new(breakpad_data, minidump_path) - .map_err(|error| { - log::error!("Could not create the crash generator (error: {error})"); - error - }) - .unwrap(); - - let ipc_server = IPCServer::new(listener, connector); + let connector = unwrap_with_message( + IPCConnector::deserialize(pipe), + "Could not parse the crash generator's connector", + ); + + let crash_generator = unwrap_with_message( + CrashGenerator::new(breakpad_data, minidump_path), + "Could not create the crash generator", + ); + + let ipc_server = unwrap_with_message( + IPCServer::new(listener, connector), + "Could not create the IPC server", + ); main_loop(ipc_server, crash_generator) } @@ -92,7 +94,7 @@ pub unsafe extern "C" fn crash_generator_logic_android( breakpad_data: BreakpadRawData, minidump_path: *const c_char, - pipe: RawFd, + pipe: RawAncillaryData, ) { logging::init(); @@ -102,25 +104,28 @@ .into_string() .unwrap(); let minidump_path = OsString::from(minidump_path); - let crash_generator = CrashGenerator::new(breakpad_data, minidump_path) - .map_err(|error| { - log::error!("Could not create the crash generator (error: {error})"); - error - }) - .unwrap(); - - let listener = IPCListener::new(0).unwrap(); - let pipe = unsafe { OwnedFd::from_raw_fd(pipe) }; - let connector = IPCConnector::from_fd(pipe) - .map_err(|error| { - log::error!("Could not use the pipe (error: {error})"); - }) - .unwrap(); - let ipc_server = IPCServer::new(listener, connector); // On Android the main thread is used to respond to the intents so we // can't block it. Run the crash generation loop in a separate thread. - let _ = std::thread::spawn(move || main_loop(ipc_server, crash_generator)); + let _ = std::thread::spawn(move || { + let crash_generator = unwrap_with_message( + CrashGenerator::new(breakpad_data, minidump_path), + "Could not create the crash generator", + ); + + let listener = IPCListener::new(0).unwrap(); + // SAFETY: The `pipe` file descriptor passed in from the caller is + // guaranteed to be valid. + let connector = unwrap_with_message( + unsafe { IPCConnector::from_raw_ancillary(pipe) }, + "Could not use the pipe", + ); + let ipc_server = unwrap_with_message( + IPCServer::new(listener, connector), + "Could not create the IPC server", + ); + main_loop(ipc_server, crash_generator) + }); } fn main_loop(mut ipc_server: IPCServer, mut crash_generator: CrashGenerator) -> i32 { @@ -178,3 +183,13 @@ } } } + +fn unwrap_with_message(res: Result, error_string: &str) -> T { + match res { + Ok(value) => value, + Err(error) => { + log::error!("{error_string} (error: {error})"); + panic!("{} (error: {})", error_string, error); + } + } +} diff -Nru firefox-esr-140.6.0esr/toolkit/crashreporter/nsExceptionHandler.cpp firefox-esr-140.7.0esr/toolkit/crashreporter/nsExceptionHandler.cpp --- firefox-esr-140.6.0esr/toolkit/crashreporter/nsExceptionHandler.cpp 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/crashreporter/nsExceptionHandler.cpp 2026-01-06 21:10:00.000000000 +0000 @@ -3345,7 +3345,8 @@ UniqueFileHandle RegisterChildIPCChannel() { StaticMutexAutoLock lock(gCrashHelperClientMutex); if (gCrashHelperClient) { - AncillaryData ipc_endpoint = register_child_ipc_channel(gCrashHelperClient); + RawAncillaryData ipc_endpoint = + register_child_ipc_channel(gCrashHelperClient); return UniqueFileHandle{ipc_endpoint}; } diff -Nru firefox-esr-140.6.0esr/toolkit/modules/BrowserUtils.sys.mjs firefox-esr-140.7.0esr/toolkit/modules/BrowserUtils.sys.mjs --- firefox-esr-140.6.0esr/toolkit/modules/BrowserUtils.sys.mjs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/modules/BrowserUtils.sys.mjs 2026-01-06 21:09:59.000000000 +0000 @@ -91,7 +91,10 @@ ); ChromeUtils.defineLazyGetter(lazy, "gLocalization", () => { - return new Localization(["toolkit/global/browser-utils.ftl"], true); + return new Localization( + ["toolkit/global/browser-utils.ftl", "toolkit/downloads/downloadUtils.ftl"], + true + ); }); function stringPrefToSet(prefVal) { @@ -246,8 +249,36 @@ } }, + /** + * Show a URI in the UI in a user-friendly (but security-sensitive) way. + * + * @param {nsIURI} uri + * @param {object} [options={}] + * @param {boolean} [options.showInsecureHTTP=false] + * Whether to show "http://" for insecure HTTP URLs. + * @param {boolean} [options.showWWW=false] + * Whether to show "www." for URLs that have it. + * @param {boolean} [options.onlyBaseDomain=false] + * Whether to show only the base domain (eTLD+1) for HTTP(S) URLs. + * @param {boolean} [options.showFilenameForLocalURIs=false] + * If false (default), will show a protocol-specific label for local + * URIs (file:, chrome:, resource:, moz-src:, jar:). + * Otherwise, will show the filename for such URIs. Only use 'true' if + * the context in which the URI is being represented is not security- + * critical. + */ formatURIForDisplay(uri, options = {}) { - let { showInsecureHTTP = false } = options; + let { + showInsecureHTTP = false, + showWWW = false, + onlyBaseDomain = false, + showFilenameForLocalURIs = false, + } = options; + // For moz-icon and jar etc. which wrap nsIURLs, if we want to show the + // actual filename, unwrap: + if (uri && uri instanceof Ci.nsINestedURI && showFilenameForLocalURIs) { + return this.formatURIForDisplay(uri.innermostURI, options); + } switch (uri.scheme) { case "view-source": { let innerURI = uri.spec.substring("view-source:".length); @@ -257,8 +288,14 @@ // Fall through. case "https": { let host = uri.displayHostPort; - if (!showInsecureHTTP && host.startsWith("www.")) { + let removeSubdomains = + !showInsecureHTTP && + (onlyBaseDomain || (!showWWW && host.startsWith("www."))); + if (removeSubdomains) { host = Services.eTLD.getSchemelessSite(uri); + if (uri.port != -1) { + host += ":" + uri.port; + } } if (showInsecureHTTP && uri.scheme == "http") { return "http://" + host; @@ -269,7 +306,7 @@ return "about:" + uri.filePath; case "blob": try { - let url = new URL(uri.specIgnoringRef); + let url = URL.fromURI(uri); // _If_ we find a non-null origin, report that. if (url.origin && url.origin != "null") { return this.formatURIStringForDisplay(url.origin, options); @@ -291,8 +328,22 @@ } case "chrome": case "resource": + case "moz-icon": + case "moz-src": case "jar": case "file": + if (!showFilenameForLocalURIs) { + if (uri.scheme == "file") { + return lazy.gLocalization.formatValueSync( + "download-utils-done-file-scheme" + ); + } + return lazy.gLocalization.formatValueSync( + "download-utils-done-scheme", + { scheme: uri.scheme } + ); + } + // Otherwise, fall through to show filename... default: try { let url = uri.QueryInterface(Ci.nsIURL); @@ -318,7 +369,7 @@ console.error(ex); } } - return uri.asciiHost || uri.spec; + return uri.spec; }, // Given a URL returns a (possibly transformed) URL suitable for sharing, or null if diff -Nru firefox-esr-140.6.0esr/toolkit/modules/ClipboardContextMenu.sys.mjs firefox-esr-140.7.0esr/toolkit/modules/ClipboardContextMenu.sys.mjs --- firefox-esr-140.6.0esr/toolkit/modules/ClipboardContextMenu.sys.mjs 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/modules/ClipboardContextMenu.sys.mjs 2026-01-06 21:09:59.000000000 +0000 @@ -164,6 +164,7 @@ let menupopup = aChromeDoc.createXULElement("menupopup"); menupopup.id = this.MENU_POPUP_ID; menupopup.setAttribute("tabspecific", "true"); + menupopup.setAttribute("locationspecific", "true"); menupopup.appendChild(menuitem); return menupopup; }, diff -Nru firefox-esr-140.6.0esr/toolkit/modules/tests/xpcshell/test_BrowserUtils_urlFormatting.js firefox-esr-140.7.0esr/toolkit/modules/tests/xpcshell/test_BrowserUtils_urlFormatting.js --- firefox-esr-140.6.0esr/toolkit/modules/tests/xpcshell/test_BrowserUtils_urlFormatting.js 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/modules/tests/xpcshell/test_BrowserUtils_urlFormatting.js 2026-01-06 21:10:00.000000000 +0000 @@ -9,7 +9,10 @@ const TEST_LOCAL_FILE_NAME = "hello.txt"; tempFile.append(TEST_LOCAL_FILE_NAME); -const gL10n = new Localization(["toolkit/global/browser-utils.ftl"], true); +const gL10n = new Localization( + ["toolkit/global/browser-utils.ftl", "toolkit/downloads/downloadUtils.ftl"], + true +); const DATA_URL_EXPECTED_STRING = gL10n.formatValueSync( "browser-utils-url-data" ); @@ -19,6 +22,10 @@ { extension: EXTENSION_NAME } ); +const FILE_URL_EXPECTED_STRING = gL10n.formatValueSync( + "download-utils-done-file-scheme" +); + const { AddonTestUtils } = ChromeUtils.importESModule( "resource://testing-common/AddonTestUtils.sys.mjs" ); @@ -88,7 +95,7 @@ output: "www.co.uk", }, - // Other sudomains should be kept: + // Other subdomains should be kept: { input: "https://webmail.example.co.uk", output: "webmail.example.co.uk", @@ -158,6 +165,15 @@ input: "data:text/html,42", output: DATA_URL_EXPECTED_STRING, }, + + { + input: `moz-icon:${Services.io.newFileURI(tempFile).spec}`, + output: tempFile.leafName, + }, + { + input: "moz-icon://.extension?size=16", + output: "moz-icon://.extension?size=16", + }, ]; add_setup(async () => { @@ -220,7 +236,9 @@ add_task(async function test_checkStringFormatting() { for (let { input, output } of TESTS) { Assert.equal( - BrowserUtils.formatURIStringForDisplay(input), + BrowserUtils.formatURIStringForDisplay(input, { + showFilenameForLocalURIs: true, + }), output, `String ${input} formatted for output should match` ); @@ -231,13 +249,56 @@ for (let { input, output } of TESTS) { let uri = Services.io.newURI(input); Assert.equal( - BrowserUtils.formatURIForDisplay(uri), + BrowserUtils.formatURIForDisplay(uri, { + showFilenameForLocalURIs: true, + }), + output, + `URI ${input} formatted for output should match` + ); + } +}); + +add_task(async function test_checkOnlyBaseDomain() { + for (let { input, output } of [ + { input: "https://subdomain.example.com/", output: "example.com" }, + { + input: "http://www.city.mikasa.hokkaido.jp/", + output: "city.mikasa.hokkaido.jp", + }, + { input: "https://www.example.co.uk/", output: "example.co.uk" }, + { + input: "mailto:example@subdomain.example.com", + output: "mailto:example@subdomain.example.com", + }, + ]) { + let uri = Services.io.newURI(input); + Assert.equal( + BrowserUtils.formatURIForDisplay(uri, { onlyBaseDomain: true }), output, `URI ${input} formatted for output should match` ); } }); +add_task(async function test_checkLocalFileFormatting() { + for (let { input } of TESTS) { + let uri = Services.io.newURI(input); + if ( + ["file", "chrome", "moz-icon", "resource", "jar"].includes(uri.scheme) + ) { + Assert.equal( + BrowserUtils.formatURIForDisplay(uri, { + showFilenameForLocalURIs: false, + }), + uri.scheme == "file" + ? FILE_URL_EXPECTED_STRING + : `${uri.scheme} resource`, + `URI ${input} formatted for output should match` + ); + } + } +}); + add_task(async function test_checkViewSourceFormatting() { for (let { input, output } of HTTP_TESTS) { Assert.equal( diff -Nru firefox-esr-140.6.0esr/toolkit/mozapps/downloads/DownloadUtils.sys.mjs firefox-esr-140.7.0esr/toolkit/mozapps/downloads/DownloadUtils.sys.mjs --- firefox-esr-140.6.0esr/toolkit/mozapps/downloads/DownloadUtils.sys.mjs 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/mozapps/downloads/DownloadUtils.sys.mjs 2026-01-06 21:10:00.000000000 +0000 @@ -3,8 +3,6 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; - /** * This module provides the DownloadUtils object which contains useful methods * for downloads such as displaying file sizes, transfer times, and download @@ -55,14 +53,6 @@ // with TIME_UNITS without the last item const TIME_SIZES = [60, 60, 24]; -const lazy = {}; -XPCOMUtils.defineLazyServiceGetter( - lazy, - "IDNService", - "@mozilla.org/network/idn-service;1", - "nsIIDNService" -); - var localeNumberFormatCache = new Map(); function getLocaleNumberFormat(fractionDigits) { if (!localeNumberFormatCache.has(fractionDigits)) { @@ -387,82 +377,6 @@ }, /** - * Get the appropriate display host string for a URI string depending on if - * the URI has an eTLD + 1, is an IP address, a local file, or other protocol - * - * @param aURIString - * The URI string to try getting an eTLD + 1, etc. - * @return A pair: [display host for the URI string, full host name] - */ - getURIHost: function DU_getURIHost(aURIString) { - // Get a URI that knows about its components - let uri = URL.parse(aURIString)?.URI; - if (!uri) { - return ["", ""]; - } - - // Get the inner-most uri for schemes like jar: - if (uri instanceof Ci.nsINestedURI) { - uri = uri.innermostURI; - } - - if (uri.schemeIs("blob")) { - let origin = URL.fromURI(uri).origin; - // Origin can be "null" for blob URIs from a sandbox. - if (origin != "null") { - // `newURI` can throw (like for null) and throwing here breaks... - // a lot of stuff. So let's avoid doing that in case there are other - // edgecases we're missing here. - try { - uri = Services.io.newURI(origin); - } catch (ex) { - console.error(ex); - } - } - } - - let fullHost; - try { - // Get the full host name; some special URIs fail (data: jar:) - fullHost = uri.host; - } catch (e) { - fullHost = ""; - } - - let displayHost; - try { - // This might fail if it's an IP address or doesn't have more than 1 part - let baseDomain = Services.eTLD.getBaseDomain(uri); - - // Convert base domain for display - displayHost = lazy.IDNService.convertToDisplayIDN(baseDomain); - } catch (e) { - // Default to the host name - displayHost = fullHost; - } - - // Check if we need to show something else for the host - if (uri.schemeIs("file")) { - // Display special text for file protocol - displayHost = l10n.formatValueSync("download-utils-done-file-scheme"); - fullHost = displayHost; - } else if (!displayHost.length) { - // Got nothing; show the scheme (data: about: moz-icon:) - displayHost = l10n.formatValueSync("download-utils-done-scheme", { - scheme: uri.scheme, - }); - fullHost = displayHost; - } else if (uri.port != -1) { - // Tack on the port if it's not the default port - let port = ":" + uri.port; - displayHost += port; - fullHost += port; - } - - return [displayHost, fullHost]; - }, - - /** * Converts a number of bytes to the appropriate unit that results in an * internationalized number that needs fewer than 4 digits. * diff -Nru firefox-esr-140.6.0esr/toolkit/mozapps/downloads/tests/browser/browser_unknownContentType_blob.js firefox-esr-140.7.0esr/toolkit/mozapps/downloads/tests/browser/browser_unknownContentType_blob.js --- firefox-esr-140.6.0esr/toolkit/mozapps/downloads/tests/browser/browser_unknownContentType_blob.js 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/mozapps/downloads/tests/browser/browser_unknownContentType_blob.js 2026-01-06 21:09:59.000000000 +0000 @@ -36,7 +36,7 @@ await check_blob_origin( "data:text/html,Some Text
", "(data)", - "blob" + "(data)" ); }); diff -Nru firefox-esr-140.6.0esr/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js firefox-esr-140.7.0esr/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js --- firefox-esr-140.6.0esr/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js 2026-01-06 21:09:59.000000000 +0000 @@ -83,16 +83,6 @@ Assert.equal(status.l10n.id, aExpected); } -function testURI(aURI, aDisp, aHost) { - dump("URI Test: " + [aURI, aDisp, aHost] + "\n"); - - let [disp, host] = DownloadUtils.getURIHost(aURI); - - // Make sure we have the right display host and full host - Assert.equal(disp, aDisp); - Assert.equal(host, aHost); -} - function testGetReadableDates(aDate, aCompactValue) { const now = new Date(2000, 11, 31, 11, 59, 59); @@ -373,26 +363,5 @@ testFormattedTimeStatus(0, "downloading-file-opens-in-seconds-2"); testFormattedTimeStatus(30, "downloading-file-opens-in-seconds-2"); - testURI("http://www.mozilla.org/", "mozilla.org", "www.mozilla.org"); - testURI( - "http://www.city.mikasa.hokkaido.jp/", - "city.mikasa.hokkaido.jp", - "www.city.mikasa.hokkaido.jp" - ); - testURI("data:text/html,Hello World", "data resource", "data resource"); - testURI( - "jar:http://www.mozilla.com/file!/magic", - "mozilla.com", - "www.mozilla.com" - ); - testURI("file:///C:/Cool/Stuff/", "local file", "local file"); - // Don't test for moz-icon if we don't have a protocol handler for it (e.g. b2g): - if ("@mozilla.org/network/protocol;1?name=moz-icon" in Cc) { - testURI("moz-icon:file:///test.extension", "local file", "local file"); - testURI("moz-icon://.extension", "moz-icon resource", "moz-icon resource"); - } - testURI("about:config", "about resource", "about resource"); - testURI("invalid.uri", "", ""); - testAllGetReadableDates(); } diff -Nru firefox-esr-140.6.0esr/toolkit/system/gnome/nsAlertsIconListener.cpp firefox-esr-140.7.0esr/toolkit/system/gnome/nsAlertsIconListener.cpp --- firefox-esr-140.6.0esr/toolkit/system/gnome/nsAlertsIconListener.cpp 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/toolkit/system/gnome/nsAlertsIconListener.cpp 2026-01-06 21:09:59.000000000 +0000 @@ -115,7 +115,11 @@ mBackend(aBackend), mAlertNotification(aAlertNotification) { if (!libNotifyHandle && !libNotifyNotAvail) { +#ifdef __OpenBSD__ + libNotifyHandle = dlopen("libnotify.so", RTLD_LAZY); +#else libNotifyHandle = dlopen("libnotify.so.4", RTLD_LAZY); +#endif if (!libNotifyHandle) { libNotifyHandle = dlopen("libnotify.so.1", RTLD_LAZY); if (!libNotifyHandle) { diff -Nru firefox-esr-140.6.0esr/tools/tryselect/test/test_fuzzy.py firefox-esr-140.7.0esr/tools/tryselect/test/test_fuzzy.py --- firefox-esr-140.6.0esr/tools/tryselect/test/test_fuzzy.py 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/tools/tryselect/test/test_fuzzy.py 2026-01-06 21:10:00.000000000 +0000 @@ -79,6 +79,11 @@ "2025-08-01", "%Y-%m-%d" ) monkeypatch.setattr(datetime, "datetime", datetime_mock) + # also patch the cache key since faking the date means we don't want to reuse another graph + monkeypatch.setattr( + "tryselect.tasks.cache_key", + lambda attr, *args: f"{attr}-test_query_paths_variants", + ) if variant: variant = "-%s" % variant diff -Nru firefox-esr-140.6.0esr/tools/tryselect/test/test_task_configs.py firefox-esr-140.7.0esr/tools/tryselect/test/test_task_configs.py --- firefox-esr-140.6.0esr/tools/tryselect/test/test_task_configs.py 2025-12-01 18:15:49.000000000 +0000 +++ firefox-esr-140.7.0esr/tools/tryselect/test/test_task_configs.py 2026-01-06 21:10:00.000000000 +0000 @@ -67,31 +67,31 @@ "worker-overrides": [ ([], None), ( - ["--worker-override", "b-linux=worker/pool"], - {"try_task_config": {"worker-overrides": {"b-linux": "worker/pool"}}}, + ["--worker-override", "b-linux-gcp=worker/pool"], + {"try_task_config": {"worker-overrides": {"b-linux-gcp": "worker/pool"}}}, ), ( [ "--worker-override", - "b-linux=worker/pool", + "b-linux-gcp=worker/pool", "--worker-override", - "b-linux=other/pool", + "b-linux-gcp=other/pool", ], SystemExit, ), ( - ["--worker-suffix", "b-linux=-dev"], + ["--worker-suffix", "b-linux-gcp=-dev"], { "try_task_config": { - "worker-overrides": {"b-linux": "gecko-1/b-linux-dev"} + "worker-overrides": {"b-linux-gcp": "gecko-1/b-linux-dev"} } }, ), ( [ "--worker-override", - "b-linux=worker/pool" "--worker-suffix", - "b-linux=-dev", + "b-linux-gcp=worker/pool" "--worker-suffix", + "b-linux-gcp=-dev", ], SystemExit, ), diff -Nru firefox-esr-140.6.0esr/xpcom/ds/nsTArray.h firefox-esr-140.7.0esr/xpcom/ds/nsTArray.h --- firefox-esr-140.6.0esr/xpcom/ds/nsTArray.h 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/xpcom/ds/nsTArray.h 2026-01-06 21:09:59.000000000 +0000 @@ -996,6 +996,8 @@ } // namespace detail +enum class SortBoundsCheck { Enable, Disable }; + // // nsTArray_Impl contains most of the guts supporting nsTArray, FallibleTArray, // AutoTArray. @@ -2376,7 +2378,7 @@ // nsTArray_RelocationStrategy. // // @param aComp The Comparator used to collate elements. - template + template void Sort(const Comparator& aComp) { static_assert(std::is_move_assignable_v); static_assert(std::is_move_constructible_v); @@ -2385,13 +2387,20 @@ auto compFn = [&comp](const auto& left, const auto& right) { return comp.LessThan(left, right); }; - std::sort(Elements(), Elements() + Length(), compFn); + if constexpr (Check == SortBoundsCheck::Enable) { + std::sort(begin(), end(), compFn); + } else { + std::sort(Elements(), Elements() + Length(), compFn); + } ::detail::AssertStrictWeakOrder(Elements(), Elements() + Length(), compFn); } // A variation on the Sort method defined above that assumes that // 'operator<' is defined for 'value_type'. - void Sort() { Sort(nsDefaultComparator()); } + template + void Sort() { + Sort(nsDefaultComparator()); + } // This method sorts the elements of the array in a stable way (i.e. not // changing the relative order of elements considered equal by the @@ -2402,7 +2411,7 @@ // nsTArray_RelocationStrategy. // // @param aComp The Comparator used to collate elements. - template + template void StableSort(const Comparator& aComp) { static_assert(std::is_move_assignable_v); static_assert(std::is_move_constructible_v); @@ -2411,12 +2420,17 @@ auto compFn = [&comp](const auto& lhs, const auto& rhs) { return comp.LessThan(lhs, rhs); }; - std::stable_sort(Elements(), Elements() + Length(), compFn); + if constexpr (Check == SortBoundsCheck::Enable) { + std::stable_sort(begin(), end(), compFn); + } else { + std::stable_sort(Elements(), Elements() + Length(), compFn); + } ::detail::AssertStrictWeakOrder(Elements(), Elements() + Length(), compFn); } // A variation on the StableSort method defined above that assumes that // 'operator<' is defined for 'value_type'. + template void StableSort() { StableSort(nsDefaultComparator()); } diff -Nru firefox-esr-140.6.0esr/xpcom/ds/nsTHashtable.h firefox-esr-140.7.0esr/xpcom/ds/nsTHashtable.h --- firefox-esr-140.6.0esr/xpcom/ds/nsTHashtable.h 2025-12-01 18:15:48.000000000 +0000 +++ firefox-esr-140.7.0esr/xpcom/ds/nsTHashtable.h 2026-01-06 21:10:00.000000000 +0000 @@ -651,6 +651,15 @@ memcpy(aTo, aFrom, N); } +// Helper type which wraps the access to EntryType::ALLOW_MEMMOVE. This is done +// to ensure that the MOZ_NEEDS_MEMMOVABLE_TYPE attribute is applied to the +// entry if we're going to use FixedSizeEntryMover, performing extra +// compile-time checks against the use of non-memmoveable types. +template +struct MOZ_NEEDS_MEMMOVABLE_TYPE CheckAllowMemmove : std::true_type {}; +template +struct CheckAllowMemmove : std::false_type {}; + } // namespace detail } // namespace mozilla @@ -676,7 +685,9 @@ // function avoids that problem. static const PLDHashTableOps sOps = { s_HashKey, s_MatchEntry, - EntryType::ALLOW_MEMMOVE + // We intentionally indirect the access of ALLOW_MEMMOVE through + // CheckAllowMemmove to perform some additional static analysis. + mozilla::detail::CheckAllowMemmove::value ? mozilla::detail::FixedSizeEntryMover : s_CopyEntry, // Simplify hashtable clearing in case our entries are trivially