Merge mozilla-central to inbound. a=merge CLOSED TREE
authorGurzau Raul <rgurzau@mozilla.com>
Mon, 17 Sep 2018 19:48:54 +0300
changeset 436816 70696eed54f9aca57327bd43fa75dc264841a2df
parent 436815 057a798ae66189f81a2b2944080c7f481347f723 (current diff)
parent 436743 5ecae696c54f6240e520e9a1517e7a5fc24069ed (diff)
child 436817 61b1c8ba788952712328d0d4db5c088df4b024b9
push id34660
push userbtara@mozilla.com
push dateMon, 17 Sep 2018 21:58:52 +0000
treeherdermozilla-central@87a95e1b7ec6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone64.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge mozilla-central to inbound. a=merge CLOSED TREE
dom/base/nsDocument.cpp
dom/base/nsIDocument.h
dom/xul/nsXULElement.cpp
testing/web-platform/meta/fullscreen/api/document-fullscreen-enabled-active-document.html.ini
testing/web-platform/tests/referrer-policy/css-integration/external-import-stylesheet.html
testing/web-platform/tests/referrer-policy/css-integration/external-stylesheet.html
testing/web-platform/tests/referrer-policy/css-integration/inline-style.html
testing/web-platform/tests/referrer-policy/css-integration/internal-import-stylesheet.html
testing/web-platform/tests/referrer-policy/css-integration/internal-stylesheet.html
testing/web-platform/tests/referrer-policy/css-integration/presentation-attribute.html
testing/web-platform/tests/referrer-policy/css-integration/processing-instruction.html
testing/web-platform/tests/referrer-policy/generic/template/stylesheet.css.template
toolkit/themes/osx/global/icons/warning-16.png
toolkit/themes/windows/global/icons/warning-16.png
--- a/browser/base/content/aboutNetError-new.xhtml
+++ b/browser/base/content/aboutNetError-new.xhtml
@@ -19,17 +19,17 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Security-Policy" content="default-src chrome:" />
     <title>&loadError.label;</title>
     <link rel="stylesheet" href="chrome://browser/skin/aboutNetError-new.css" type="text/css" media="all" />
     <!-- If the location of the favicon is changed here, the FAVICON_ERRORPAGE_URL symbol in
          toolkit/components/places/src/nsFaviconService.h should be updated. -->
-    <link rel="icon" type="image/png" id="favicon" href="chrome://global/skin/icons/warning-16.png"/>
+    <link rel="icon" id="favicon" href="chrome://global/skin/icons/warning.svg"/>
   </head>
 
   <body dir="&locale.dir;">
     <!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) -->
     <div id="errorContainer">
       <div id="errorPageTitlesContainer">
         <span id="ept_nssBadCert">&certerror.pagetitle2;</span>
         <span id="ept_captivePortal">&captivePortal.title;</span>
--- a/browser/base/content/aboutNetError.xhtml
+++ b/browser/base/content/aboutNetError.xhtml
@@ -19,17 +19,17 @@
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Security-Policy" content="default-src chrome:" />
     <title>&loadError.label;</title>
     <link rel="stylesheet" href="chrome://browser/skin/aboutNetError.css" type="text/css" media="all" />
     <!-- If the location of the favicon is changed here, the FAVICON_ERRORPAGE_URL symbol in
          toolkit/components/places/src/nsFaviconService.h should be updated. -->
-    <link rel="icon" type="image/png" id="favicon" href="chrome://global/skin/icons/warning-16.png"/>
+    <link rel="icon" id="favicon" href="chrome://global/skin/icons/warning.svg"/>
   </head>
 
   <body dir="&locale.dir;">
     <!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) -->
     <div id="errorContainer">
       <div id="errorPageTitlesContainer">
         <span id="ept_nssBadCert">&certerror.pagetitle1;</span>
         <span id="ept_captivePortal">&captivePortal.title;</span>
--- a/browser/base/content/aboutRestartRequired.xhtml
+++ b/browser/base/content/aboutRestartRequired.xhtml
@@ -22,18 +22,18 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <title>&restartRequired.title;</title>
     <link rel="stylesheet" type="text/css" media="all"
           href="chrome://browser/skin/aboutRestartRequired.css"/>
     <!-- If the location of the favicon is changed here, the
          FAVICON_ERRORPAGE_URL symbol in
          toolkit/components/places/src/nsFaviconService.h should be updated. -->
-    <link rel="icon" type="image/png" id="favicon"
-          href="chrome://global/skin/icons/warning-16.png"/>
+    <link rel="icon" id="favicon"
+          href="chrome://global/skin/icons/warning.svg"/>
   </head>
 
   <body dir="&locale.dir;">
     <!-- PAGE CONTAINER (for styling purposes only) -->
     <div id="errorPageContainer">
       <div id="text-container">
         <div id="title">
           <h1 id="title-text">&restartRequired.header;</h1>
--- a/browser/components/feeds/WebContentConverter.js
+++ b/browser/components/feeds/WebContentConverter.js
@@ -235,18 +235,18 @@ WebContentConverterRegistrar.prototype =
       logStringMessage("Web page denied access to register a protocol handler inside private browsing mode");
       return;
     }
 
     Utils.checkProtocolHandlerAllowed(aProtocol, aURIString,
                                       haveWindow ? aBrowserOrWindow : null);
 
     // Now Ask the user and provide the proper callback
-    let message = this._getFormattedString("addProtocolHandler",
-                                           [aTitle, uri.host, aProtocol]);
+    let message = this._getFormattedString("addProtocolHandlerMessage",
+                                           [uri.host, aProtocol]);
 
     let notificationIcon = uri.prePath + "/favicon.ico";
     let notificationValue = "Protocol Registration: " + aProtocol;
     let addButton = {
       label: this._getString("addProtocolHandlerAddButton"),
       accessKey: this._getString("addProtocolHandlerAddButtonAccesskey"),
       protocolInfo: { protocol: aProtocol, uri: uri.spec, name: aTitle },
 
--- a/browser/components/library/content/aboutLibrary.xhtml
+++ b/browser/components/library/content/aboutLibrary.xhtml
@@ -7,15 +7,15 @@
 <!DOCTYPE html>
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Security-Policy" content="default-src chrome:" />
     <title>about:library</title>
     <link rel="stylesheet" href="chrome://browser/skin/aboutLibrary.css" type="text/css" media="all"/>
     <link rel="stylesheet" href="chrome://global/skin/in-content/info-pages.css" type="text/css" media="all"/>
-    <link rel="icon" type="image/png" href="chrome://global/skin/icons/warning-16.png"/>
+    <link rel="icon" href="chrome://global/skin/icons/warning.svg"/>
   </head>
 
   <body>
     <div class="under-construction"/>
   </body>
 </html>
--- a/browser/components/sessionstore/content/aboutSessionRestore.xhtml
+++ b/browser/components/sessionstore/content/aboutSessionRestore.xhtml
@@ -15,17 +15,17 @@
   %restorepageDTD;
 ]>
 
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   <head>
     <title>&restorepage.tabtitle;</title>
     <link rel="stylesheet" href="chrome://global/skin/in-content/info-pages.css" type="text/css" media="all"/>
     <link rel="stylesheet" href="chrome://browser/skin/aboutSessionRestore.css" type="text/css" media="all"/>
-    <link rel="icon" type="image/png" href="chrome://global/skin/icons/warning-16.png"/>
+    <link rel="icon" href="chrome://global/skin/icons/warning.svg"/>
 
     <script type="application/javascript" src="chrome://browser/content/aboutSessionRestore.js"/>
   </head>
 
   <body dir="&locale.dir;" class="illustrated">
 
     <div class="container restore-chosen">
       <div class="description-wrapper">
--- a/browser/locales/en-US/chrome/browser/feeds/subscribe.properties
+++ b/browser/locales/en-US/chrome/browser/feeds/subscribe.properties
@@ -40,13 +40,14 @@ subscribeVideoPodcastUsing=Subscribe to 
 feedSubscriptionFeed1=This is a “feed” of frequently changing content on this site.
 feedSubscriptionAudioPodcast1=This is a “podcast” of frequently changing content on this site.
 feedSubscriptionVideoPodcast1=This is a “video podcast” of frequently changing content on this site.
 
 feedSubscriptionFeed2=You can subscribe to this feed to receive updates when this content changes.
 feedSubscriptionAudioPodcast2=You can subscribe to this podcast to receive updates when this content changes.
 feedSubscriptionVideoPodcast2=You can subscribe to this video podcast to receive updates when this content changes.
 
-# Protocol Handling
-# "Add %appName (%appDomain) as an application for %protocolType links?"
-addProtocolHandler=Add %S (%S) as an application for %S links?
+# LOCALIZATION NOTE (addProtocolHandlerMessage):
+# Message displayed when adding a protocol handler:
+# %1$S is the application's domain, %2$S is the type of protocol
+addProtocolHandlerMessage=Add “%1$S” as an application for %2$S links?
 addProtocolHandlerAddButton=Add Application
-addProtocolHandlerAddButtonAccesskey=A
\ No newline at end of file
+addProtocolHandlerAddButtonAccesskey=A
--- a/browser/themes/linux/jar.mn
+++ b/browser/themes/linux/jar.mn
@@ -1,15 +1,14 @@
 # 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/.
 
 browser.jar:
 % skin browser classic/1.0 %skin/classic/browser/
-% override chrome://global/skin/icons/warning-16.png moz-icon://stock/gtk-dialog-warning?size=menu
 #include ../shared/jar.inc.mn
   skin/classic/browser/sanitizeDialog.css
 * skin/classic/browser/syncedtabs/sidebar.css     (syncedtabs/sidebar.css)
 * skin/classic/browser/browser.css
 * skin/classic/browser/compacttheme.css
   skin/classic/browser/monitor.png
   skin/classic/browser/monitor_16-10.png
 * skin/classic/browser/pageInfo.css
--- a/devtools/client/netmonitor/src/components/CustomRequestPanel.js
+++ b/devtools/client/netmonitor/src/components/CustomRequestPanel.js
@@ -95,28 +95,21 @@ class CustomRequestPanel extends Compone
    * @param {updateRequest} updateRequest action
    */
   updateCustomRequestFields(evt, request, updateRequest) {
     const val = evt.target.value;
     let data;
 
     switch (evt.target.id) {
       case "custom-headers-value":
-        let customHeadersValue = val || "";
-        // Parse text representation of multiple HTTP headers
-        const headersArray = this.parseRequestText(customHeadersValue, "\\S+?", ":");
-        // Remove temp customHeadersValue while query string is parsable
-        if (customHeadersValue === "" ||
-          headersArray.length === customHeadersValue.split("\n").length) {
-          customHeadersValue = null;
-        }
         data = {
           requestHeaders: {
-            customHeadersValue,
-            headers: headersArray,
+            customHeadersValue: val || "",
+            // Parse text representation of multiple HTTP headers
+            headers: this.parseRequestText(val, "\\S+?", ":")
           },
         };
         break;
       case "custom-method-value":
         data = { method: val.trim() };
         break;
       case "custom-postdata-value":
         data = {
--- a/devtools/client/netmonitor/test/browser.ini
+++ b/devtools/client/netmonitor/test/browser.ini
@@ -114,16 +114,17 @@ skip-if = (verify && debug && os == 'win
 [browser_net_copy_as_curl.js]
 subsuite = clipboard
 [browser_net_cors_requests.js]
 [browser_net_cyrillic-01.js]
 [browser_net_cyrillic-02.js]
 [browser_net_frame.js]
 skip-if = (os == 'mac') # Bug 1479782
 [browser_net_header-docs.js]
+[browser_net_edit_resend_caret.js]
 [browser_net_filter-01.js]
 [browser_net_filter-02.js]
 [browser_net_filter-03.js]
 [browser_net_filter-04.js]
 [browser_net_filter-autocomplete.js]
 [browser_net_filter-flags.js]
 [browser_net_footer-summary.js]
 [browser_net_headers-alignment.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_edit_resend_caret.js
@@ -0,0 +1,66 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests if position of caret does not change (resets to the end) after setting
+ * header's value to empty string.
+ */
+
+add_task(async function() {
+  const { tab, monitor } = await initNetMonitor(SIMPLE_URL);
+  info("Starting test... ");
+
+  const { document, store, windowRequire, parent } = monitor.panelWin;
+  const parentDocument = parent.document;
+  const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
+  store.dispatch(Actions.batchEnable(false));
+
+  // Reload to have one request in the list.
+  const waitForEvents = waitForNetworkEvents(monitor, 1);
+  tab.linkedBrowser.loadURI(SIMPLE_URL);
+  await waitForEvents;
+
+  // Open context menu and execute "Edit & Resend".
+  const firstRequest = document.querySelectorAll(".request-list-item")[0];
+  const waitForHeaders = waitUntil(() => document.querySelector(".headers-overview"));
+  EventUtils.sendMouseEvent({ type: "mousedown" }, firstRequest);
+  await waitForHeaders;
+  await waitForRequestData(store, ["requestHeaders"]);
+  EventUtils.sendMouseEvent({ type: "contextmenu" }, firstRequest);
+
+  // Open "New Request" form
+  const contextResend =  parentDocument.querySelector("#request-list-context-resend");
+  contextResend.click();
+  await waitUntil(() => document.querySelector("#custom-headers-value"));
+  const headersTextarea = document.querySelector("#custom-headers-value");
+  const {
+    getSelectedRequest
+  } = windowRequire("devtools/client/netmonitor/src/selectors/index");
+  const request = getSelectedRequest(store.getState());
+  const hostHeader = request.requestHeaders.headers[0];
+
+  // Close the open context menu, otherwise sendString will not work
+  EventUtils.synthesizeKey("VK_ESCAPE", {});
+  headersTextarea.focus();
+
+  // Clean value of host header
+  const headersContent = headersTextarea.value;
+  const start = "Host: ".length;
+  const end = headersContent.indexOf("\n");
+  headersTextarea.setSelectionRange(start, end);
+  EventUtils.synthesizeKey("VK_DELETE", {});
+
+  ok(getSelectedRequest(store.getState()).requestHeaders.headers[0] !== hostHeader,
+    "Value of Host header was edited and should change"
+  );
+
+  ok(headersTextarea.selectionStart === start && headersTextarea.selectionEnd === start,
+    "Position of caret should not change"
+  );
+
+  return teardown(monitor);
+});
--- a/devtools/client/shared/components/NotificationBox.css
+++ b/devtools/client/shared/components/NotificationBox.css
@@ -59,17 +59,17 @@
 
 /* Default icons for notifications */
 
 .notificationbox .messageImage[data-type="info"] {
   background-image: url("chrome://global/skin/icons/info.svg");
 }
 
 .notificationbox .messageImage[data-type="warning"] {
-  background-image: url("chrome://global/skin/icons/warning-16.png");
+  background-image: url("chrome://global/skin/icons/warning.svg");
 }
 
 .notificationbox .messageImage[data-type="critical"] {
   background-image: url("chrome://global/skin/icons/error-16.png");
 }
 
 /* Close button */
 
--- a/devtools/client/webconsole/components/ReverseSearchInput.js
+++ b/devtools/client/webconsole/components/ReverseSearchInput.js
@@ -25,18 +25,18 @@ const Services = require("Services");
 const isMacOS = Services.appinfo.OS === "Darwin";
 
 class ReverseSearchInput extends Component {
   static get propTypes() {
     return {
       dispatch: PropTypes.func.isRequired,
       hud: PropTypes.object.isRequired,
       reverseSearchResult: PropTypes.string,
-      reverseSearchTotalResults: PropTypes.Array,
-      reverseSearchResultPosition: PropTypes.int,
+      reverseSearchTotalResults: PropTypes.number,
+      reverseSearchResultPosition: PropTypes.number,
       visible: PropTypes.bool,
     };
   }
 
   constructor(props) {
     super(props);
 
     this.onInputKeyDown = this.onInputKeyDown.bind(this);
@@ -147,25 +147,27 @@ class ReverseSearchInput extends Compone
     } = this.props;
 
     if (!Number.isInteger(reverseSearchTotalResults) || reverseSearchTotalResults <= 1) {
       return null;
     }
 
     return [
       dom.button({
+        key: "search-result-button-prev",
         className: "devtools-button search-result-button-prev",
         title: l10n.getFormatStr("webconsole.reverseSearch.result.previousButton.tooltip",
           [isMacOS ? "Ctrl + R" : "F9"]),
         onClick: () => {
           dispatch(actions.showReverseSearchBack());
           this.inputNode.focus();
         }
       }),
       dom.button({
+        key: "search-result-button-next",
         className: "devtools-button search-result-button-next",
         title: l10n.getFormatStr("webconsole.reverseSearch.result.nextButton.tooltip",
           [isMacOS ? "Ctrl + S" : "Shift + F9"]),
         onClick: () => {
           dispatch(actions.showReverseSearchNext());
           this.inputNode.focus();
         }
       })
@@ -189,17 +191,17 @@ class ReverseSearchInput extends Compone
     }
 
     return dom.div({className: classNames.join(" ")},
       dom.input({
         ref: node => {
           this.inputNode = node;
         },
         autoFocus: true,
-        placeHolder: l10n.getStr("webconsole.reverseSearch.input.placeHolder"),
+        placeholder: l10n.getStr("webconsole.reverseSearch.input.placeHolder"),
         className: "reverse-search-input devtools-monospace",
         onKeyDown: this.onInputKeyDown,
         onInput: ({target}) => dispatch(actions.reverseSearchInputChange(target.value))
       }),
       this.renderSearchInformation(),
       this.renderNavigationButtons(),
       dom.button({
         className: "devtools-button reverse-search-close-button",
--- a/devtools/client/webconsole/test/mocha-test-setup.js
+++ b/devtools/client/webconsole/test/mocha-test-setup.js
@@ -20,16 +20,17 @@ pref("devtools.webconsole.filter.css", f
 pref("devtools.webconsole.filter.net", false);
 pref("devtools.webconsole.filter.netxhr", false);
 pref("devtools.webconsole.ui.filterbar", false);
 pref("devtools.webconsole.inputHistoryCount", 50);
 pref("devtools.webconsole.persistlog", false);
 pref("devtools.webconsole.timestampMessages", false);
 pref("devtools.webconsole.sidebarToggle", true);
 pref("devtools.webconsole.jsterm.codeMirror", true);
+pref("devtools.webconsole.jsterm.reverse-search", true);
 
 global.loader = {
   lazyServiceGetter: () => {},
   lazyRequireGetter: (context, name, path) => {
     if (path === "devtools/shared/async-storage") {
       global[name] = require("devtools/client/webconsole/test/fixtures/async-storage");
     }
   }
--- a/docshell/base/BrowsingContext.cpp
+++ b/docshell/base/BrowsingContext.cpp
@@ -1,16 +1,17 @@
 /* -*- Mode: C++; 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/. */
 
 #include "BrowsingContext.h"
 
+#include "mozilla/dom/ChromeBrowsingContext.h"
 #include "mozilla/dom/BrowsingContextBinding.h"
 #include "mozilla/dom/ContentChild.h"
 #include "mozilla/Assertions.h"
 #include "mozilla/ClearOnShutdown.h"
 #include "mozilla/Logging.h"
 #include "mozilla/StaticPtr.h"
 
 #include "nsDataHashtable.h"
@@ -56,64 +57,51 @@ BrowsingContext::Init()
 }
 
 /* static */ LogModule*
 BrowsingContext::GetLog()
 {
   return gBrowsingContextLog;
 }
 
-// TODO(farre): BrowsingContext::CleanupContexts starts from the list
-// of root BrowsingContexts. This isn't enough when separate
-// BrowsingContext nodes of a BrowsingContext tree not in a crashing
-// child process are from that process and thus needs to be
-// cleaned. [Bug 1472108]
-/* static */ void
-BrowsingContext::CleanupContexts(uint64_t aProcessId)
-{
-  if (sRootBrowsingContexts) {
-    RefPtr<BrowsingContext> context = sRootBrowsingContexts->getFirst();
-
-    while (context) {
-      RefPtr<BrowsingContext> next = context->getNext();
-      if (context->IsOwnedByProcess() &&
-          aProcessId == context->OwnerProcessId()) {
-        context->Detach();
-      }
-      context = next;
-    }
-  }
-}
-
 /* static */ already_AddRefed<BrowsingContext>
 BrowsingContext::Get(uint64_t aId)
 {
   RefPtr<BrowsingContext> abc = sBrowsingContexts->Get(aId);
   return abc.forget();
 }
 
+/* static */ already_AddRefed<BrowsingContext>
+BrowsingContext::Create(nsIDocShell* aDocShell)
+{
+  RefPtr<BrowsingContext> context;
+  if (XRE_IsParentProcess()) {
+    context = new ChromeBrowsingContext(aDocShell);
+  } else {
+    // TODO(farre): will we ever create BrowsingContexts on processes
+    // other than content and parent?
+    MOZ_ASSERT(XRE_IsContentProcess());
+    context = new BrowsingContext(aDocShell);
+  }
+
+  return context.forget();
+}
+
 BrowsingContext::BrowsingContext(nsIDocShell* aDocShell)
   : mBrowsingContextId(nsContentUtils::GenerateBrowsingContextId())
-  , mProcessId(Nothing())
   , mDocShell(aDocShell)
 {
   sBrowsingContexts->Put(mBrowsingContextId, this);
 }
 
 BrowsingContext::BrowsingContext(uint64_t aBrowsingContextId,
-                                 const nsAString& aName,
-                                 const Maybe<uint64_t>& aProcessId)
+                const nsAString& aName)
   : mBrowsingContextId(aBrowsingContextId)
-  , mProcessId(aProcessId)
   , mName(aName)
 {
-  // mProcessId only really has a meaning in the parent process, where
-  // it keeps track of which BrowsingContext is actually holding the
-  // nsDocShell.
-  MOZ_DIAGNOSTIC_ASSERT(XRE_IsParentProcess() || aProcessId.isNothing());
   sBrowsingContexts->Put(mBrowsingContextId, this);
 }
 
 void
 BrowsingContext::Attach(BrowsingContext* aParent)
 {
   if (isInList()) {
     MOZ_LOG(GetLog(),
@@ -140,21 +128,21 @@ BrowsingContext::Attach(BrowsingContext*
   auto* children = aParent ? &aParent->mChildren : sRootBrowsingContexts.get();
   children->insertBack(this);
   mParent = aParent;
 
   if (!XRE_IsContentProcess()) {
     return;
   }
 
-  auto cc = dom::ContentChild::GetSingleton();
+  auto cc = ContentChild::GetSingleton();
   MOZ_DIAGNOSTIC_ASSERT(cc);
   cc->SendAttachBrowsingContext(
-    dom::BrowsingContextId(mParent ? mParent->Id() : 0),
-    dom::BrowsingContextId(Id()),
+    BrowsingContextId(mParent ? mParent->Id() : 0),
+    BrowsingContextId(Id()),
     mName);
 }
 
 void
 BrowsingContext::Detach()
 {
   RefPtr<BrowsingContext> kungFuDeathGrip(this);
 
@@ -179,19 +167,19 @@ BrowsingContext::Detach()
            mParent ? mParent->Id() : 0));
 
   remove();
 
   if (!XRE_IsContentProcess()) {
     return;
   }
 
-  auto cc = dom::ContentChild::GetSingleton();
+  auto cc = ContentChild::GetSingleton();
   MOZ_DIAGNOSTIC_ASSERT(cc);
-  cc->SendDetachBrowsingContext(dom::BrowsingContextId(Id()),
+  cc->SendDetachBrowsingContext(BrowsingContextId(Id()),
                                 false /* aMoveToBFCache */);
 }
 
 void
 BrowsingContext::CacheChildren()
 {
   if (mChildren.isEmpty()) {
     return;
@@ -207,35 +195,28 @@ BrowsingContext::CacheChildren()
     RefPtr<BrowsingContext> child = mChildren.popFirst();
     sCachedBrowsingContexts->Put(child->Id(), child);
   }
 
   if (!XRE_IsContentProcess()) {
     return;
   }
 
-  auto cc = dom::ContentChild::GetSingleton();
+  auto cc = ContentChild::GetSingleton();
   MOZ_DIAGNOSTIC_ASSERT(cc);
-  cc->SendDetachBrowsingContext(dom::BrowsingContextId(Id()),
+  cc->SendDetachBrowsingContext(BrowsingContextId(Id()),
                                 true /* aMoveToBFCache */);
 }
 
 bool
 BrowsingContext::IsCached()
 {
   return sCachedBrowsingContexts->Contains(Id());
 }
 
-uint64_t
-BrowsingContext::OwnerProcessId() const
-{
-  MOZ_DIAGNOSTIC_ASSERT(XRE_IsParentProcess());
-  return mProcessId.value();
-}
-
 void
 BrowsingContext::GetChildren(nsTArray<RefPtr<BrowsingContext>>& aChildren)
 {
   for (BrowsingContext* context : mChildren) {
     aChildren.AppendElement(context);
   }
 }
 
@@ -282,14 +263,32 @@ ImplCycleCollectionTraverse(nsCycleColle
                             uint32_t aFlags = 0)
 {
   for (BrowsingContext* aContext : aField) {
     aCallback.NoteNativeChild(aContext,
                               NS_CYCLE_COLLECTION_PARTICIPANT(BrowsingContext));
   }
 }
 
-NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE(BrowsingContext, mDocShell, mChildren)
+NS_IMPL_CYCLE_COLLECTION_CLASS(BrowsingContext)
+
+NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(BrowsingContext)
+  NS_IMPL_CYCLE_COLLECTION_UNLINK(mDocShell, mChildren)
+  if (XRE_IsParentProcess()) {
+    ChromeBrowsingContext::Cast(tmp)->Unlink();
+  }
+  NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
+NS_IMPL_CYCLE_COLLECTION_UNLINK_END
+
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(BrowsingContext)
+  NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mDocShell, mChildren)
+  if (XRE_IsParentProcess()) {
+    ChromeBrowsingContext::Cast(tmp)->Traverse(cb);
+  }
+NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
+
+NS_IMPL_CYCLE_COLLECTION_TRACE_WRAPPERCACHE(BrowsingContext)
+
 NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(BrowsingContext, AddRef)
 NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(BrowsingContext, Release)
 
 } // namespace dom
 } // namespace mozilla
--- a/docshell/base/BrowsingContext.h
+++ b/docshell/base/BrowsingContext.h
@@ -43,28 +43,17 @@ class BrowsingContext
   , public LinkedListElement<RefPtr<BrowsingContext>>
 {
 public:
   static void Init();
   static LogModule* GetLog();
   static void CleanupContexts(uint64_t aProcessId);
 
   static already_AddRefed<BrowsingContext> Get(uint64_t aId);
-
-  // Create a new BrowsingContext for 'aDocShell'. The id will be
-  // generated so that it is unique across all content child processes
-  // and the content parent process.
-  explicit BrowsingContext(nsIDocShell* aDocShell);
-  // Create a BrowsingContext for a particular BrowsingContext id, in
-  // the case where the id is known beforehand and a nsDocShell isn't
-  // needed (e.g. when creating BrowsingContexts in the parent
-  // process).
-  BrowsingContext(uint64_t aBrowsingContextId,
-                  const nsAString& aName,
-                  const Maybe<uint64_t>& aProcessId = Nothing());
+  static already_AddRefed<BrowsingContext> Create(nsIDocShell* aDocShell);
 
   // Attach the current BrowsingContext to its parent, in both the
   // child and the parent process. If 'aParent' is null, 'this' is
   // taken to be a root BrowsingContext.
   void Attach(BrowsingContext* aParent);
 
   // Detach the current BrowsingContext from its parent, in both the
   // child and the parent process.
@@ -77,17 +66,16 @@ public:
   bool IsCached();
 
   void SetName(const nsAString& aName) { mName = aName; }
   void GetName(nsAString& aName) { aName = mName; }
   bool NameEquals(const nsAString& aName) { return mName.Equals(aName); }
 
   uint64_t Id() const { return mBrowsingContextId; }
   uint64_t OwnerProcessId() const;
-  bool IsOwnedByProcess() const { return mProcessId.isSome(); }
 
   already_AddRefed<BrowsingContext> GetParent()
   {
     return do_AddRef(mParent.get());
   }
 
   void GetChildren(nsTArray<RefPtr<BrowsingContext>>& aChildren);
 
@@ -99,25 +87,28 @@ public:
                                JS::Handle<JSObject*> aGivenProto) override;
 
   MOZ_DECLARE_WEAKREFERENCE_TYPENAME(BrowsingContext)
   NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(BrowsingContext)
   NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(BrowsingContext)
 
   using Children = AutoCleanLinkedList<RefPtr<BrowsingContext>>;
 
-private:
+protected:
   virtual ~BrowsingContext();
+  // Create a new BrowsingContext for 'aDocShell'. The id will be
+  // generated so that it is unique across all content child processes
+  // and the content parent process.
+  explicit BrowsingContext(nsIDocShell* aDocShell);
+  BrowsingContext(uint64_t aBrowsingContextId,
+                  const nsAString& aName);
 
+private:
   const uint64_t mBrowsingContextId;
 
-  // Indicates which process owns the docshell. Only valid in the
-  // parent process.
-  Maybe<uint64_t> mProcessId;
-
   WeakPtr<BrowsingContext> mParent;
   Children mChildren;
   nsCOMPtr<nsIDocShell> mDocShell;
   nsString mName;
 };
 
 } // namespace dom
 } // namespace mozilla
new file mode 100644
--- /dev/null
+++ b/docshell/base/ChromeBrowsingContext.cpp
@@ -0,0 +1,74 @@
+/* -*- Mode: C++; 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/. */
+
+#include "ChromeBrowsingContext.h"
+
+namespace mozilla {
+namespace dom {
+
+ChromeBrowsingContext::ChromeBrowsingContext(uint64_t aBrowsingContextId,
+                                             const nsAString& aName,
+                                             uint64_t aProcessId)
+  : BrowsingContext(aBrowsingContextId, aName)
+  , mProcessId(aProcessId)
+{
+  // You are only ever allowed to create ChromeBrowsingContexts in the
+  // parent process.
+  MOZ_RELEASE_ASSERT(XRE_IsParentProcess());
+}
+
+ChromeBrowsingContext::ChromeBrowsingContext(nsIDocShell* aDocShell)
+  : BrowsingContext(aDocShell)
+  , mProcessId(0)
+{
+  // You are only ever allowed to create ChromeBrowsingContexts in the
+  // parent process.
+  MOZ_RELEASE_ASSERT(XRE_IsParentProcess());
+}
+
+// TODO(farre): ChromeBrowsingContext::CleanupContexts starts from the
+// list of root BrowsingContexts. This isn't enough when separate
+// BrowsingContext nodes of a BrowsingContext tree, not in a crashing
+// child process, are from that process and thus needs to be
+// cleaned. [Bug 1472108]
+/* static */ void
+ChromeBrowsingContext::CleanupContexts(uint64_t aProcessId)
+{
+  nsTArray<RefPtr<BrowsingContext>> roots;
+  BrowsingContext::GetRootBrowsingContexts(roots);
+
+  for (RefPtr<BrowsingContext> context : roots) {
+    if (Cast(context)->IsOwnedByProcess(aProcessId)) {
+      context->Detach();
+    }
+  }
+}
+
+/* static */ already_AddRefed<ChromeBrowsingContext>
+ChromeBrowsingContext::Get(uint64_t aId)
+{
+  MOZ_RELEASE_ASSERT(XRE_IsParentProcess());
+  return BrowsingContext::Get(aId).downcast<ChromeBrowsingContext>();
+}
+
+/* static */ ChromeBrowsingContext*
+ChromeBrowsingContext::Cast(BrowsingContext* aContext)
+{
+  MOZ_RELEASE_ASSERT(XRE_IsParentProcess());
+  return static_cast<ChromeBrowsingContext*>(aContext);
+}
+
+/* static */ already_AddRefed<ChromeBrowsingContext>
+ChromeBrowsingContext::Create(
+  uint64_t aBrowsingContextId,
+  const nsAString& aName,
+  uint64_t aProcessId)
+{
+  return do_AddRef(new ChromeBrowsingContext(aBrowsingContextId, aName, aProcessId));
+}
+
+} // namespace dom
+} // namespace mozilla
new file mode 100644
--- /dev/null
+++ b/docshell/base/ChromeBrowsingContext.h
@@ -0,0 +1,58 @@
+/* -*- Mode: C++; 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/. */
+
+#ifndef ChromeBrowsingContext_h
+#define ChromeBrowsingContext_h
+
+#include "mozilla/dom/BrowsingContext.h"
+#include "mozilla/RefPtr.h"
+#include "nsCycleCollectionParticipant.h"
+#include "nsWrapperCache.h"
+
+class nsIDocShell;
+
+namespace mozilla {
+namespace dom {
+
+// ChromeBrowsingContext is a BrowsingContext living in the parent
+// process, with whatever extra data that a BrowsingContext in the
+// parent needs.
+class ChromeBrowsingContext final
+  : public BrowsingContext
+{
+public:
+  static void CleanupContexts(uint64_t aProcessId);
+  static already_AddRefed<ChromeBrowsingContext> Get(uint64_t aId);
+  static ChromeBrowsingContext* Cast(BrowsingContext* aContext);
+  static already_AddRefed<ChromeBrowsingContext> Create(
+    uint64_t aBrowsingContextId,
+    const nsAString& aName,
+    uint64_t aProcessId);
+
+  bool IsOwnedByProcess(uint64_t aProcessId) const
+  {
+    return mProcessId == aProcessId;
+  }
+
+protected:
+  void Traverse(nsCycleCollectionTraversalCallback& cb) {}
+  void Unlink() {}
+  ChromeBrowsingContext(uint64_t aBrowsingContextId,
+                        const nsAString& aName,
+                        uint64_t aProcessId);
+
+private:
+  friend class BrowsingContext;
+
+  explicit ChromeBrowsingContext(nsIDocShell* aDocShell);
+
+  // Indicates which process owns the docshell.
+  uint64_t mProcessId;
+};
+
+} // namespace dom
+} // namespace mozilla
+#endif
--- a/docshell/base/moz.build
+++ b/docshell/base/moz.build
@@ -71,20 +71,22 @@ EXPORTS += [
 
 EXPORTS.mozilla += [
     'IHistory.h',
     'LoadContext.h',
 ]
 
 EXPORTS.mozilla.dom += [
     'BrowsingContext.h',
+    'ChromeBrowsingContext.h'
 ]
 
 UNIFIED_SOURCES += [
     'BrowsingContext.cpp',
+    'ChromeBrowsingContext.cpp',
     'LoadContext.cpp',
     'nsAboutRedirector.cpp',
     'nsDefaultURIFixup.cpp',
     'nsDocShell.cpp',
     'nsDocShellEditorData.cpp',
     'nsDocShellEnumerator.cpp',
     'nsDocShellLoadInfo.cpp',
     'nsDocShellTreeOwner.cpp',
--- a/docshell/base/nsDocShell.cpp
+++ b/docshell/base/nsDocShell.cpp
@@ -469,17 +469,17 @@ nsDocShell::Init()
   // ref to us...  use an InterfaceRequestorProxy to do this.
   nsCOMPtr<nsIInterfaceRequestor> proxy =
     new InterfaceRequestorProxy(static_cast<nsIInterfaceRequestor*>(this));
   mLoadGroup->SetNotificationCallbacks(proxy);
 
   rv = nsDocLoader::AddDocLoaderAsChildOfRoot(this);
   NS_ENSURE_SUCCESS(rv, rv);
 
-  mBrowsingContext = new BrowsingContext(this);
+  mBrowsingContext = BrowsingContext::Create(this);
 
   // Add as |this| a progress listener to itself.  A little weird, but
   // simpler than reproducing all the listener-notification logic in
   // overrides of the various methods via which nsDocLoader can be
   // notified.   Note that this holds an nsWeakPtr to ourselves, so it's ok.
   return AddProgressListener(this, nsIWebProgress::NOTIFY_STATE_DOCUMENT |
                                      nsIWebProgress::NOTIFY_STATE_NETWORK);
 }
--- a/docshell/resources/content/netError.xhtml
+++ b/docshell/resources/content/netError.xhtml
@@ -21,17 +21,17 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <title>&loadError.label;</title>
     <link rel="stylesheet" href="chrome://global/skin/netError.css" type="text/css" media="all" />
     <!-- If the location of the favicon is changed here, the FAVICON_ERRORPAGE_URL symbol in
          toolkit/components/places/src/nsFaviconService.h should be updated. -->
-    <link rel="icon" type="image/png" id="favicon" href="chrome://global/skin/icons/warning-16.png"/>
+    <link rel="icon" id="favicon" href="chrome://global/skin/icons/warning.svg"/>
 
     <script type="application/javascript"><![CDATA[
       // Error url MUST be formatted like this:
       //   moz-neterror:page?e=error&u=url&d=desc
       //
       // or optionally, to specify an alternate CSS class to allow for
       // custom styling and favicon:
       //
--- a/dom/base/FragmentOrElement.cpp
+++ b/dom/base/FragmentOrElement.cpp
@@ -435,17 +435,18 @@ nsIContent::GetURLDataForStyleAttr(nsIPr
     if (URLExtraData* data = use->GetContentURLData()) {
       return do_AddRef(data);
     }
   }
   if (aSubjectPrincipal && aSubjectPrincipal != NodePrincipal()) {
     // TODO: Cache this?
     return MakeAndAddRef<URLExtraData>(OwnerDoc()->GetDocBaseURI(),
                                        OwnerDoc()->GetDocumentURI(),
-                                       aSubjectPrincipal);
+                                       aSubjectPrincipal,
+                                       OwnerDoc()->GetReferrerPolicy());
   }
   // This also ignores the case that SVG inside XBL binding.
   // But it is probably fine.
   return do_AddRef(OwnerDoc()->DefaultStyleAttrURLData());
 }
 
 void
 nsIContent::ConstructUbiNode(void* storage)
--- a/dom/base/IDTracker.cpp
+++ b/dom/base/IDTracker.cpp
@@ -30,20 +30,19 @@ DocOrShadowFromContent(nsIContent& aCont
   if (shadow) {
     return shadow;
   }
 
   return aContent.OwnerDoc();
 }
 
 void
-IDTracker::Reset(nsIContent* aFromContent,
-                 nsIURI* aURI,
-                 bool aWatch,
-                 bool aReferenceImage)
+IDTracker::Reset(nsIContent* aFromContent, nsIURI* aURI,nsIURI* aReferrer,
+                 uint32_t aReferrerPolicy,
+                 bool aWatch, bool aReferenceImage)
 {
   MOZ_ASSERT(aFromContent, "Reset() expects non-null content pointer");
 
   Unlink();
 
   if (!aURI)
     return;
 
@@ -110,18 +109,18 @@ IDTracker::Reset(nsIContent* aFromConten
       }
     }
   }
 
   bool isEqualExceptRef;
   rv = aURI->EqualsExceptRef(doc->GetDocumentURI(), &isEqualExceptRef);
   if (NS_FAILED(rv) || !isEqualExceptRef) {
     RefPtr<nsIDocument::ExternalResourceLoad> load;
-    doc = doc->RequestExternalResource(aURI, aFromContent,
-                                       getter_AddRefs(load));
+    doc = doc->RequestExternalResource(aURI, aReferrer, aReferrerPolicy,
+                                       aFromContent, getter_AddRefs(load));
     docOrShadow = doc;
     if (!doc) {
       if (!load || !aWatch) {
         // Nothing will ever happen here
         return;
       }
 
       DocumentLoadNotification* observer =
--- a/dom/base/IDTracker.h
+++ b/dom/base/IDTracker.h
@@ -53,25 +53,26 @@ public:
   Element* get() { return mElement; }
 
   /**
    * Set up the reference. This can be called multiple times to
    * change which reference is being tracked, but these changes
    * do not trigger ElementChanged.
    * @param aFrom the source element for context
    * @param aURI the URI containing a hash-reference to the element
+   * @param aReferrer the referrer URI for loading external resource
+   * @param aReferrerPolicy the referrer policy for loading external resource
    * @param aWatch if false, then we do not set up the notifications to track
    * changes, so ElementChanged won't fire and get() will always return the same
    * value, the current element for the ID.
    * @param aReferenceImage whether the ID references image elements which are
    * subject to the document's mozSetImageElement overriding mechanism.
    */
-  void Reset(nsIContent* aFrom,
-             nsIURI* aURI,
-             bool aWatch = true,
+  void Reset(nsIContent* aFrom, nsIURI* aURI, nsIURI* aReferrer,
+             uint32_t aReferrerPolicy, bool aWatch = true,
              bool aReferenceImage = false);
 
   /**
    * A variation on Reset() to set up a reference that consists of the ID of
    * an element in the same document as aFrom.
    * @param aFrom the source element for context
    * @param aID the ID of the element
    * @param aWatch if false, then we do not set up the notifications to track
--- a/dom/base/WindowDestroyedEvent.cpp
+++ b/dom/base/WindowDestroyedEvent.cpp
@@ -1,30 +1,33 @@
+/* -*- Mode: C++; 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/. */
+
 #include "WindowDestroyedEvent.h"
 
 #include "nsJSUtils.h"
 #include "jsapi.h"
 #include "js/Wrapper.h"
 #include "nsIPrincipal.h"
 #include "nsISupportsPrimitives.h"
 #include "nsIAppStartup.h"
 #include "nsToolkitCompsCID.h"
 #include "nsCOMPtr.h"
 #include "nsContentUtils.h"
+#include "xpcpublic.h"
 
 namespace mozilla {
 
-// Try to match compartments that are not web content by matching compartments
-// with principals that are either the system principal or an expanded principal.
-// This may not return true for all non-web-content compartments.
 struct BrowserCompartmentMatcher : public js::CompartmentFilter {
   bool match(JS::Compartment* aC) const override
   {
-    nsCOMPtr<nsIPrincipal> pc = nsJSPrincipals::get(JS_GetCompartmentPrincipals(aC));
-    return nsContentUtils::IsSystemOrExpandedPrincipal(pc);
+    return !xpc::MightBeWebContentCompartment(aC);
   }
 };
 
 WindowDestroyedEvent::WindowDestroyedEvent(nsGlobalWindowInner* aWindow,
                                            uint64_t aID, const char* aTopic)
   : mozilla::Runnable("WindowDestroyedEvent")
   , mID(aID)
   , mPhase(Phase::Destroying)
@@ -107,18 +110,21 @@ WindowDestroyedEvent::Run()
           nsGlobalWindowOuter* outer = nsGlobalWindowOuter::FromSupports(window);
           currentInner = outer->GetCurrentInnerWindowInternal();
         }
         NS_ENSURE_TRUE(currentInner, NS_OK);
 
         AutoSafeJSContext cx;
         JS::Rooted<JSObject*> obj(cx, currentInner->FastGetGlobalJSObject());
         if (obj && !js::IsSystemRealm(js::GetNonCCWObjectRealm(obj))) {
-          JS::Compartment* cpt = js::GetObjectCompartment(obj);
-          nsCOMPtr<nsIPrincipal> pc = nsJSPrincipals::get(JS_GetCompartmentPrincipals(cpt));
+          JS::Realm* realm = js::GetNonCCWObjectRealm(obj);
+          JS::Compartment* cpt = JS::GetCompartmentForRealm(realm);
+
+          nsCOMPtr<nsIPrincipal> pc =
+            nsJSPrincipals::get(JS::GetRealmPrincipals(realm));
 
           if (BasePrincipal::Cast(pc)->AddonPolicy()) {
             // We want to nuke all references to the add-on compartment.
             xpc::NukeAllWrappersForCompartment(cx, cpt,
                                                mIsInnerWindow ? js::DontNukeWindowReferences
                                                               : js::NukeWindowReferences);
           } else {
             // We only want to nuke wrappers for the chrome->content case
--- a/dom/base/nsAttrValue.cpp
+++ b/dom/base/nsAttrValue.cpp
@@ -1732,22 +1732,23 @@ nsAttrValue::ParseStyleAttribute(const n
     if (cont) {
       // Set our MiscContainer to the cached one.
       NS_ADDREF(cont);
       SetPtrValueAndType(cont, eOtherBase);
       return true;
     }
   }
 
-  RefPtr<URLExtraData> data = new URLExtraData(baseURI, docURI, principal);
-  RefPtr<DeclarationBlock> decl =
-    DeclarationBlock::FromCssText(aString,
-                                  data,
-                                  ownerDoc->GetCompatibilityMode(),
-                                  ownerDoc->CSSLoader());
+  RefPtr<URLExtraData> data = new URLExtraData(baseURI, docURI,
+                                               principal,
+                                               ownerDoc->GetReferrerPolicy());
+  RefPtr<DeclarationBlock> decl = DeclarationBlock::
+    FromCssText(aString, data,
+                ownerDoc->GetCompatibilityMode(),
+                ownerDoc->CSSLoader());
   if (!decl) {
     return false;
   }
   decl->SetHTMLCSSStyleSheet(sheet);
   SetTo(decl.forget(), &aString);
 
   if (cachingAllowed) {
     MiscContainer* cont = GetMiscContainer();
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -8669,16 +8669,36 @@ nsContentUtils::GetReferrerPolicyFromHea
     if (policy != net::RP_Unset) {
       referrerPolicy = policy;
     }
   }
   return referrerPolicy;
 }
 
 // static
+net::ReferrerPolicy
+nsContentUtils::GetReferrerPolicyFromChannel(nsIChannel* aChannel)
+{
+  nsCOMPtr<nsIHttpChannel> httpChannel = do_QueryInterface(aChannel);
+  if (!httpChannel) {
+    return net::RP_Unset;
+  }
+
+  nsresult rv;
+  nsAutoCString headerValue;
+  rv = httpChannel->GetResponseHeader(NS_LITERAL_CSTRING("referrer-policy"),
+                                      headerValue);
+  if (NS_FAILED(rv) || headerValue.IsEmpty()) {
+    return net::RP_Unset;
+  }
+
+  return GetReferrerPolicyFromHeader(NS_ConvertUTF8toUTF16(headerValue));
+}
+
+// static
 bool
 nsContentUtils::IsNonSubresourceRequest(nsIChannel* aChannel)
 {
   nsLoadFlags loadFlags = 0;
   aChannel->GetLoadFlags(&loadFlags);
   if (loadFlags & nsIChannel::LOAD_DOCUMENT_URI) {
     return true;
   }
--- a/dom/base/nsContentUtils.h
+++ b/dom/base/nsContentUtils.h
@@ -2891,16 +2891,26 @@ public:
    * https://w3c.github.io/webappsec/specs/referrer-policy/#determine-requests-referrer
    */
   static nsresult SetFetchReferrerURIWithPolicy(nsIPrincipal* aPrincipal,
                                                 nsIDocument* aDoc,
                                                 nsIHttpChannel* aChannel,
                                                 mozilla::net::ReferrerPolicy aReferrerPolicy);
 
   /*
+   * If there is a Referrer-Policy response header in |aChannel|, parse a
+   * referrer policy from the header.
+   *
+   * @param the channel from which to get the Referrer-Policy header
+   * @return referrer policy from the response header in aChannel
+   */
+  static mozilla::net::ReferrerPolicy
+    GetReferrerPolicyFromChannel(nsIChannel* aChannel);
+
+  /*
    * Parse a referrer policy from a Referrer-Policy header
    * https://www.w3.org/TR/referrer-policy/#parse-referrer-policy-from-header
    *
    * @param aHeader the response's Referrer-Policy header to parse
    * @return referrer policy from the response header.
    */
   static mozilla::net::ReferrerPolicy GetReferrerPolicyFromHeader(const nsAString& aHeader);
 
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -813,16 +813,18 @@ nsOnloadBlocker::SetLoadFlags(nsLoadFlag
 
 nsExternalResourceMap::nsExternalResourceMap()
   : mHaveShutDown(false)
 {
 }
 
 nsIDocument*
 nsExternalResourceMap::RequestResource(nsIURI* aURI,
+                                       nsIURI* aReferrer,
+                                       uint32_t aReferrerPolicy,
                                        nsINode* aRequestingNode,
                                        nsIDocument* aDisplayDocument,
                                        ExternalResourceLoad** aPendingLoad)
 {
   // If we ever start allowing non-same-origin loads here, we might need to do
   // something interesting with aRequestingPrincipal even for the hashtable
   // gets.
   MOZ_ASSERT(aURI, "Must have a URI");
@@ -850,17 +852,18 @@ nsExternalResourceMap::RequestResource(n
     RefPtr<PendingLoad> load(loadEntry);
     load.forget(aPendingLoad);
     return nullptr;
   }
 
   RefPtr<PendingLoad> load(new PendingLoad(aDisplayDocument));
   loadEntry = load;
 
-  if (NS_FAILED(load->StartLoad(clone, aRequestingNode))) {
+  if (NS_FAILED(load->StartLoad(clone, aReferrer, aReferrerPolicy,
+                                aRequestingNode))) {
     // Make sure we don't thrash things by trying this load again, since
     // chances are it failed for good reasons (security check, etc).
     AddExternalResource(clone, nullptr, nullptr, aDisplayDocument);
   } else {
     load.forget(aPendingLoad);
   }
 
   return nullptr;
@@ -1159,16 +1162,18 @@ nsExternalResourceMap::PendingLoad::OnSt
     return listener->OnStopRequest(aRequest, aContext, aStatus);
   }
 
   return NS_OK;
 }
 
 nsresult
 nsExternalResourceMap::PendingLoad::StartLoad(nsIURI* aURI,
+                                              nsIURI* aReferrer,
+                                              uint32_t aReferrerPolicy,
                                               nsINode* aRequestingNode)
 {
   MOZ_ASSERT(aURI, "Must have a URI");
   MOZ_ASSERT(aRequestingNode, "Must have a node");
 
   nsCOMPtr<nsILoadGroup> loadGroup =
     aRequestingNode->OwnerDoc()->GetDocumentLoadGroup();
 
@@ -1178,16 +1183,22 @@ nsExternalResourceMap::PendingLoad::Star
                      aURI,
                      aRequestingNode,
                      nsILoadInfo::SEC_REQUIRE_SAME_ORIGIN_DATA_INHERITS,
                      nsIContentPolicy::TYPE_OTHER,
                      nullptr, // aPerformanceStorage
                      loadGroup);
   NS_ENSURE_SUCCESS(rv, rv);
 
+  nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
+  if (httpChannel) {
+    rv = httpChannel->SetReferrerWithPolicy(aReferrer, aReferrerPolicy);
+    Unused << NS_WARN_IF(NS_FAILED(rv));
+  }
+
   mURI = aURI;
 
   return channel->AsyncOpen2(this);
 }
 
 NS_IMPL_ISUPPORTS(nsExternalResourceMap::LoadgroupCallbacks,
                   nsIInterfaceRequestor)
 
@@ -3734,21 +3745,23 @@ nsIDocument::SetBaseURI(nsIURI* aURI)
 
 URLExtraData*
 nsIDocument::DefaultStyleAttrURLData()
 {
   MOZ_ASSERT(NS_IsMainThread());
   nsIURI* baseURI = GetDocBaseURI();
   nsIURI* docURI = GetDocumentURI();
   nsIPrincipal* principal = NodePrincipal();
+  mozilla::net::ReferrerPolicy policy = GetReferrerPolicy();
   if (!mCachedURLData ||
       mCachedURLData->BaseURI() != baseURI ||
       mCachedURLData->GetReferrer() != docURI ||
+      mCachedURLData->GetReferrerPolicy() != policy ||
       mCachedURLData->GetPrincipal() != principal) {
-    mCachedURLData = new URLExtraData(baseURI, docURI, principal);
+    mCachedURLData = new URLExtraData(baseURI, docURI, principal, policy);
   }
   return mCachedURLData;
 }
 
 void
 nsIDocument::SetDocumentCharacterSet(NotNull<const Encoding*> aEncoding)
 {
   if (mCharacterSet != aEncoding) {
@@ -6694,29 +6707,34 @@ nsIDocument::TryCancelFrameLoaderInitial
       mInitializableFrameLoaders.RemoveElementAt(i);
       return;
     }
   }
 }
 
 nsIDocument*
 nsIDocument::RequestExternalResource(nsIURI* aURI,
+                                     nsIURI* aReferrer,
+                                     uint32_t aReferrerPolicy,
                                      nsINode* aRequestingNode,
                                      ExternalResourceLoad** aPendingLoad)
 {
   MOZ_ASSERT(aURI, "Must have a URI");
   MOZ_ASSERT(aRequestingNode, "Must have a node");
   if (mDisplayDocument) {
     return mDisplayDocument->RequestExternalResource(aURI,
+                                                     aReferrer,
+                                                     aReferrerPolicy,
                                                      aRequestingNode,
                                                      aPendingLoad);
   }
 
-  return mExternalResourceMap.RequestResource(aURI, aRequestingNode,
-                                              this, aPendingLoad);
+  return mExternalResourceMap.RequestResource(aURI, aReferrer, aReferrerPolicy,
+                                              aRequestingNode, this,
+                                              aPendingLoad);
 }
 
 void
 nsIDocument::EnumerateExternalResources(nsSubDocEnumFunc aCallback, void* aData)
 {
   mExternalResourceMap.EnumerateResources(aCallback, aData);
 }
 
@@ -11141,16 +11159,20 @@ GetFullscreenError(nsIDocument* aDoc, Ca
     // explicitly disabled.
     return nullptr;
   }
 
   if (!apiEnabled) {
     return "FullscreenDeniedDisabled";
   }
 
+  if (!aDoc->IsVisible()) {
+    return "FullscreenDeniedHidden";
+  }
+
   // Ensure that all containing elements are <iframe> and have
   // allowfullscreen attribute set.
   nsCOMPtr<nsIDocShell> docShell(aDoc->GetDocShell());
   if (!docShell || !docShell->GetFullscreenAllowed()) {
     return "FullscreenDeniedContainerNotAllowed";
   }
   return nullptr;
 }
@@ -11179,20 +11201,16 @@ nsIDocument::FullscreenElementReadyCheck
   if (!GetWindow()) {
     aRequest.Reject("FullscreenDeniedLostWindow");
     return false;
   }
   if (const char* msg = GetFullscreenError(this, aRequest.mCallerType)) {
     aRequest.Reject(msg);
     return false;
   }
-  if (!IsVisible()) {
-    aRequest.Reject("FullscreenDeniedHidden");
-    return false;
-  }
   if (HasFullscreenSubDocument(this)) {
     aRequest.Reject("FullscreenDeniedSubDocFullScreen");
     return false;
   }
   //XXXsmaug Note, we don't follow the latest fullscreen spec here.
   //         This whole check could be probably removed.
   if (FullscreenStackTop() &&
       !nsContentUtils::ContentIsHostIncludingDescendantOf(elem,
--- a/dom/base/nsIDocument.h
+++ b/dom/base/nsIDocument.h
@@ -278,16 +278,18 @@ public:
 
   nsExternalResourceMap();
 
   /**
    * Request an external resource document.  This does exactly what
    * nsIDocument::RequestExternalResource is documented to do.
    */
   nsIDocument* RequestResource(nsIURI* aURI,
+                               nsIURI* aReferrer,
+                               uint32_t aReferrerPolicy,
                                nsINode* aRequestingNode,
                                nsIDocument* aDisplayDocument,
                                ExternalResourceLoad** aPendingLoad);
 
   /**
    * Enumerate the resource documents.  See
    * nsIDocument::EnumerateExternalResources.
    */
@@ -343,18 +345,20 @@ protected:
     NS_DECL_ISUPPORTS
     NS_DECL_NSISTREAMLISTENER
     NS_DECL_NSIREQUESTOBSERVER
 
     /**
      * Start aURI loading.  This will perform the necessary security checks and
      * so forth.
      */
-    nsresult StartLoad(nsIURI* aURI, nsINode* aRequestingNode);
-
+    nsresult StartLoad(nsIURI* aURI,
+                       nsIURI* aReferrer,
+                       uint32_t aReferrerPolicy,
+                       nsINode* aRequestingNode);
     /**
      * Set up an nsIContentViewer based on aRequest.  This is guaranteed to
      * put null in *aViewer and *aLoadGroup on all failures.
      */
     nsresult SetupViewer(nsIRequest* aRequest, nsIContentViewer** aViewer,
                          nsILoadGroup** aLoadGroup);
 
   private:
@@ -2536,20 +2540,24 @@ public:
    * resource document if available.  If one is not available yet, it will
    * start loading as needed, and the pending load object will be returned in
    * aPendingLoad so that the caller can register an observer to wait for the
    * load.  If this function returns null and doesn't return a pending load,
    * that means that there is no resource document for this URI and won't be
    * one in the future.
    *
    * @param aURI the URI to get
+   * @param aReferrer the referrer of the request
+   * @param aReferrerPolicy the referrer policy of the request
    * @param aRequestingNode the node making the request
    * @param aPendingLoad the pending load for this request, if any
    */
   nsIDocument* RequestExternalResource(nsIURI* aURI,
+                                       nsIURI* aReferrer,
+                                       uint32_t aReferrerPolicy,
                                        nsINode* aRequestingNode,
                                        ExternalResourceLoad** aPendingLoad);
 
   /**
    * Enumerate the external resource documents associated with this document.
    * The enumerator callback should return true to continue enumerating, or
    * false to stop.  This callback will never get passed a null aDocument.
    */
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -2634,17 +2634,18 @@ CanvasRenderingContext2D::SetShadowColor
 static already_AddRefed<RawServoDeclarationBlock>
 CreateDeclarationForServo(nsCSSPropertyID aProperty,
                           const nsAString& aPropertyValue,
                           nsIDocument* aDocument)
 {
   RefPtr<URLExtraData> data =
     new URLExtraData(aDocument->GetDocBaseURI(),
                      aDocument->GetDocumentURI(),
-                     aDocument->NodePrincipal());
+                     aDocument->NodePrincipal(),
+                     aDocument->GetReferrerPolicy());
 
   ServoCSSParser::ParsingEnvironment env(data,
                                          aDocument->GetCompatibilityMode(),
                                          aDocument->CSSLoader());
   RefPtr<RawServoDeclarationBlock> servoDeclarations =
     ServoCSSParser::ParseProperty(aProperty, aPropertyValue, env);
 
   if (!servoDeclarations) {
--- a/dom/ipc/ContentParent.cpp
+++ b/dom/ipc/ContentParent.cpp
@@ -32,16 +32,17 @@
 #include "mozilla/AntiTrackingCommon.h"
 #include "mozilla/BasePrincipal.h"
 #include "mozilla/ClearOnShutdown.h"
 #include "mozilla/StyleSheetInlines.h"
 #include "mozilla/DataStorage.h"
 #include "mozilla/devtools/HeapSnapshotTempFileHelperParent.h"
 #include "mozilla/docshell/OfflineCacheUpdateParent.h"
 #include "mozilla/dom/BrowsingContext.h"
+#include "mozilla/dom/ChromeBrowsingContext.h"
 #include "mozilla/dom/ClientManager.h"
 #include "mozilla/dom/ClientOpenWindowOpActors.h"
 #include "mozilla/dom/DataTransfer.h"
 #include "mozilla/dom/Element.h"
 #include "mozilla/dom/File.h"
 #include "mozilla/dom/FileCreatorHelper.h"
 #include "mozilla/dom/FileSystemSecurity.h"
 #include "mozilla/dom/IPCBlobUtils.h"
@@ -1896,17 +1897,17 @@ ContentParent::ActorDestroy(ActorDestroy
   }
 
   mBlobURLs.Clear();
 
 #if defined(XP_WIN32) && defined(ACCESSIBILITY)
   a11y::AccessibleWrap::ReleaseContentProcessIdFor(ChildID());
 #endif
 
-  BrowsingContext::CleanupContexts(ChildID());
+  ChromeBrowsingContext::CleanupContexts(ChildID());
 }
 
 bool
 ContentParent::TryToRecycle()
 {
   // This life time check should be replaced by a memory health check (memory usage + fragmentation).
   const double kMaxLifeSpan = 5;
   if (mShutdownPending ||
@@ -5966,17 +5967,17 @@ ContentParent::RecvFirstPartyStorageAcce
 }
 
 mozilla::ipc::IPCResult
 ContentParent::RecvAttachBrowsingContext(
   const BrowsingContextId& aParentId,
   const BrowsingContextId& aChildId,
   const nsString& aName)
 {
-  RefPtr<BrowsingContext> parent = BrowsingContext::Get(aParentId);
+  RefPtr<ChromeBrowsingContext> parent = ChromeBrowsingContext::Get(aParentId);
   if (aParentId && !parent) {
     // Unless 'aParentId' is 0 (which it is when the child is a root
     // BrowsingContext) there should always be a corresponding
     // 'parent'. The only reason for there not beeing one is if the
     // parent has already been detached, in which case the
     // BrowsingContext that tries to attach itself to the context with
     // 'aParentId' is surely doomed and we can safely do nothing.
 
@@ -5988,17 +5989,17 @@ ContentParent::RecvAttachBrowsingContext
     MOZ_LOG(
       BrowsingContext::GetLog(),
       LogLevel::Debug,
       ("ParentIPC: Trying to attach to already detached parent 0x%08" PRIx64,
        (uint64_t)aParentId));
     return IPC_OK();
   }
 
-  if (parent && parent->OwnerProcessId() != ChildID()) {
+  if (parent && !parent->IsOwnedByProcess(ChildID())) {
     // Where trying attach a child BrowsingContext to a parent
     // BrowsingContext in another process. This is illegal since the
     // only thing that could create that child BrowsingContext is a
     // parent docshell in the same process as that BrowsingContext.
 
     // TODO(farre): We're doing nothing now, but is that exactly what
     // we want? Maybe we want to crash the child currently calling
     // SendAttachBrowsingContext and/or the child that originally
@@ -6026,38 +6027,38 @@ ContentParent::RecvAttachBrowsingContext
             ("ParentIPC: Trying to attach already attached 0x%08" PRIx64
              " to 0x%08" PRIx64,
              child->Id(),
              (uint64_t)aParentId));
     return IPC_OK();
   }
 
   if (!child) {
-    child = new BrowsingContext(aChildId, aName, Some(ChildID()));
+    child = ChromeBrowsingContext::Create(aChildId, aName, ChildID());
   }
   child->Attach(parent);
 
   return IPC_OK();
 }
 
 mozilla::ipc::IPCResult
 ContentParent::RecvDetachBrowsingContext(const BrowsingContextId& aContextId,
                                          const bool& aMoveToBFCache)
 {
-  RefPtr<BrowsingContext> context = BrowsingContext::Get(aContextId);
+  RefPtr<ChromeBrowsingContext> context = ChromeBrowsingContext::Get(aContextId);
 
   if (!context) {
     MOZ_LOG(BrowsingContext::GetLog(),
             LogLevel::Debug,
             ("ParentIPC: Trying to detach already detached 0x%08" PRIx64,
              (uint64_t)aContextId));
     return IPC_OK();
   }
 
-  if (context->OwnerProcessId() != ChildID()) {
+  if (!context->IsOwnedByProcess(ChildID())) {
     // Where trying to detach a child BrowsingContext in another child
     // process. This is illegal since the owner of the BrowsingContext
     // is the proccess with the in-process docshell, which is tracked
     // by OwnerProcessId.
 
     // TODO(farre): To crash or not to crash. Same reasoning as in
     // above TODO. [Bug 1471598]
     MOZ_LOG(BrowsingContext::GetLog(),
--- a/dom/svg/SVGAnimationElement.cpp
+++ b/dom/svg/SVGAnimationElement.cpp
@@ -409,17 +409,21 @@ SVGAnimationElement::IsEventAttributeNam
 
 void
 SVGAnimationElement::UpdateHrefTarget(const nsAString& aHrefStr)
 {
   nsCOMPtr<nsIURI> targetURI;
   nsCOMPtr<nsIURI> baseURI = GetBaseURI();
   nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI),
                                             aHrefStr, OwnerDoc(), baseURI);
-  mHrefTarget.Reset(this, targetURI);
+  // Bug 1415044 to investigate which referrer we should use
+  mHrefTarget.Reset(this,
+                    targetURI,
+                    OwnerDoc()->GetDocumentURI(),
+                    OwnerDoc()->GetReferrerPolicy());
   AnimationTargetChanged();
 }
 
 void
 SVGAnimationElement::AnimationTargetChanged()
 {
   mTimedElement.HandleTargetElementChange(GetTargetElementContent());
   AnimationNeedsResample();
--- a/dom/svg/SVGMPathElement.cpp
+++ b/dom/svg/SVGMPathElement.cpp
@@ -234,17 +234,20 @@ SVGMPathElement::UpdateHrefTarget(nsICon
   if (mPathTracker.get()) {
     mPathTracker.get()->RemoveMutationObserver(this);
   }
 
   if (aParent) {
     // Pass in |aParent| instead of |this| -- first argument is only used
     // for a call to GetComposedDoc(), and |this| might not have a current
     // document yet (if our caller is BindToTree).
-    mPathTracker.Reset(aParent, targetURI);
+    // Bug 1415044 to investigate which referrer we should use
+    mPathTracker.Reset(aParent, targetURI,
+                       OwnerDoc()->GetDocumentURI(),
+                       OwnerDoc()->GetReferrerPolicy());
   } else {
     // if we don't have a parent, then there's no animateMotion element
     // depending on our target, so there's no point tracking it right now.
     mPathTracker.Unlink();
   }
 
   // Start observing new target (if any)
   if (mPathTracker.get()) {
--- a/dom/svg/SVGUseElement.cpp
+++ b/dom/svg/SVGUseElement.cpp
@@ -15,16 +15,17 @@
 #include "nsIDocument.h"
 #include "nsIPresShell.h"
 #include "mozilla/dom/Element.h"
 #include "nsContentUtils.h"
 #include "nsIURI.h"
 #include "mozilla/URLExtraData.h"
 #include "SVGObserverUtils.h"
 #include "nsSVGUseFrame.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(Use)
 
 namespace mozilla {
 namespace dom {
 
 JSObject*
 SVGUseElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
@@ -321,20 +322,22 @@ SVGUseElement::UpdateShadowTree()
   if (newElement->IsAnyOfSVGElements(nsGkAtoms::svg, nsGkAtoms::symbol)) {
     auto* newSVGElement = static_cast<nsSVGElement*>(newElement.get());
     if (mLengthAttributes[ATTR_WIDTH].IsExplicitlySet())
       newSVGElement->SetLength(nsGkAtoms::width, mLengthAttributes[ATTR_WIDTH]);
     if (mLengthAttributes[ATTR_HEIGHT].IsExplicitlySet())
       newSVGElement->SetLength(nsGkAtoms::height, mLengthAttributes[ATTR_HEIGHT]);
   }
 
-  // Store the base URI
+  // The specs do not say which referrer policy we should use, pass RP_Unset for
+  // now
   mContentURLData = new URLExtraData(baseURI.forget(),
                                      do_AddRef(OwnerDoc()->GetDocumentURI()),
-                                     do_AddRef(NodePrincipal()));
+                                     do_AddRef(NodePrincipal()),
+                                     mozilla::net::RP_Unset);
 
   targetElement->AddMutationObserver(this);
 }
 
 nsIURI*
 SVGUseElement::GetSourceDocURI()
 {
   nsIContent* targetElement = mReferencedElementTracker.get();
@@ -414,17 +417,20 @@ SVGUseElement::LookupHref()
     mOriginal ? mOriginal->GetBaseURI() : GetBaseURI();
   nsCOMPtr<nsIURI> baseURI = nsContentUtils::IsLocalRefURL(href)
     ? SVGObserverUtils::GetBaseURLForLocalRef(this, originURI)
     : originURI;
 
   nsCOMPtr<nsIURI> targetURI;
   nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI), href,
                                             GetComposedDoc(), baseURI);
-  mReferencedElementTracker.Reset(this, targetURI);
+  // Bug 1415044 to investigate which referrer we should use
+  mReferencedElementTracker.Reset(this, targetURI,
+                                  OwnerDoc()->GetDocumentURI(),
+                                  OwnerDoc()->GetReferrerPolicy());
 }
 
 void
 SVGUseElement::TriggerReclone()
 {
   if (nsIDocument* doc = GetComposedDoc()) {
     doc->ScheduleSVGUseElementShadowTreeUpdate(*this);
   }
--- a/dom/svg/nsSVGElement.cpp
+++ b/dom/svg/nsSVGElement.cpp
@@ -1189,18 +1189,19 @@ MappedAttrParser::ParseMappedAttrValue(n
 
   // Get the nsCSSPropertyID ID for our mapped attribute.
   nsCSSPropertyID propertyID =
     nsCSSProps::LookupProperty(nsDependentAtomString(aMappedAttrName));
   if (propertyID != eCSSProperty_UNKNOWN) {
     bool changed = false; // outparam for ParseProperty.
     NS_ConvertUTF16toUTF8 value(aMappedAttrValue);
     // FIXME (bug 1343964): Figure out a better solution for sending the base uri to servo
-    RefPtr<URLExtraData> data = new URLExtraData(mBaseURI, mDocURI,
-                                                 mElement->NodePrincipal());
+    RefPtr<URLExtraData> data =
+      new URLExtraData(mBaseURI, mDocURI, mElement->NodePrincipal(),
+                       mElement->OwnerDoc()->GetReferrerPolicy());
     changed = Servo_DeclarationBlock_SetPropertyById(
       mDecl->Raw(), propertyID, &value, false, data,
       ParsingMode::AllowUnitlessLength,
       mElement->OwnerDoc()->GetCompatibilityMode(), mLoader, { });
 
     if (changed) {
       // The normal reporting of use counters by the nsCSSParser won't happen
       // since it doesn't have a sheet.
--- a/dom/xul/nsXULElement.cpp
+++ b/dom/xul/nsXULElement.cpp
@@ -1864,18 +1864,20 @@ nsXULPrototypeElement::SetAttrAt(uint32_
 
         // This is basically duplicating what nsINode::NodePrincipal() does
         nsIPrincipal* principal =
           mNodeInfo->NodeInfoManager()->DocumentPrincipal();
         // XXX Get correct Base URI (need GetBaseURI on *prototype* element)
         // TODO: If we implement Content Security Policy for chrome documents
         // as has been discussed, the CSP should be checked here to see if
         // inline styles are allowed to be applied.
+        // XXX No specific specs talk about xul and referrer policy, pass Unset
         RefPtr<URLExtraData> data =
-          new URLExtraData(aDocumentURI, aDocumentURI, principal);
+          new URLExtraData(aDocumentURI, aDocumentURI, principal,
+                           mozilla::net::RP_Unset);
         RefPtr<DeclarationBlock> declaration =
           DeclarationBlock::FromCssText(
             aValue, data, eCompatibility_FullStandards, nullptr);
         if (declaration) {
             mAttributes[aPos].mValue.SetTo(declaration.forget(), &aValue);
 
             return NS_OK;
         }
--- a/js/xpconnect/src/XPCJSRuntime.cpp
+++ b/js/xpconnect/src/XPCJSRuntime.cpp
@@ -508,16 +508,35 @@ IsInSandboxCompartment(JSObject* obj)
     JS::Compartment* comp = js::GetObjectCompartment(obj);
 
     // We always eagerly create compartment privates for sandbox compartments.
     CompartmentPrivate* priv = CompartmentPrivate::Get(comp);
     return priv && priv->isSandboxCompartment;
 }
 
 bool
+CompartmentOriginInfo::MightBeWebContent() const
+{
+    // Compartments with principals that are either the system principal or an
+    // expanded principal are definitely not web content.
+    return !nsContentUtils::IsSystemOrExpandedPrincipal(mOrigin);
+}
+
+bool
+MightBeWebContentCompartment(JS::Compartment* compartment)
+{
+    if (CompartmentPrivate* priv = CompartmentPrivate::Get(compartment)) {
+        return priv->originInfo.MightBeWebContent();
+    }
+
+    // No CompartmentPrivate; try IsSystemCompartment.
+    return !js::IsSystemCompartment(compartment);
+}
+
+bool
 IsUniversalXPConnectEnabled(JS::Compartment* compartment)
 {
     CompartmentPrivate* priv = CompartmentPrivate::Get(compartment);
     if (!priv) {
         return false;
     }
     return priv->universalXPConnectEnabled;
 }
--- a/js/xpconnect/src/xpcprivate.h
+++ b/js/xpconnect/src/xpcprivate.h
@@ -2927,16 +2927,18 @@ public:
       , mSite(aSite)
     {
         MOZ_ASSERT(aOrigin);
         MOZ_ASSERT(aSite.IsInitialized());
     }
 
     bool IsSameOrigin(nsIPrincipal* aOther) const;
 
+    bool MightBeWebContent() const;
+
     const mozilla::SiteIdentifier& SiteRef() const {
         return mSite;
     }
 
     bool HasChangedDocumentDomain() const {
         return mChangedDocumentDomain;
     }
     void SetChangedDocumentDomain() {
--- a/js/xpconnect/src/xpcpublic.h
+++ b/js/xpconnect/src/xpcpublic.h
@@ -87,16 +87,18 @@ bool IsContentXBLScope(JS::Realm* realm)
 bool IsInContentXBLScope(JSObject* obj);
 
 bool IsUAWidgetCompartment(JS::Compartment* compartment);
 bool IsUAWidgetScope(JS::Realm* realm);
 bool IsInUAWidgetScope(JSObject* obj);
 
 bool IsInSandboxCompartment(JSObject* obj);
 
+bool MightBeWebContentCompartment(JS::Compartment* compartment);
+
 void SetCompartmentChangedDocumentDomain(JS::Compartment* compartment);
 
 // Return a raw XBL scope object corresponding to contentScope, which must
 // be an object whose global is a DOM window.
 //
 // The return value is not wrapped into cx->compartment, so be sure to enter
 // its compartment before doing anything meaningful.
 //
--- a/layout/painting/nsImageRenderer.cpp
+++ b/layout/painting/nsImageRenderer.cpp
@@ -174,20 +174,23 @@ nsImageRenderer::PrepareImage()
         NS_LITERAL_STRING("#") + nsDependentAtomString(mImage->GetElementId());
       nsCOMPtr<nsIURI> targetURI;
       nsCOMPtr<nsIURI> base = mForFrame->GetContent()->GetBaseURI();
       nsContentUtils::NewURIWithDocumentCharset(
         getter_AddRefs(targetURI),
         elementId,
         mForFrame->GetContent()->GetUncomposedDoc(),
         base);
-      nsSVGPaintingProperty* property =
-        SVGObserverUtils::GetPaintingPropertyForURI(
-          targetURI,
-          mForFrame->FirstContinuation(),
+      RefPtr<URLAndReferrerInfo> url = new URLAndReferrerInfo(
+        targetURI,
+        mForFrame->GetContent()->OwnerDoc()->GetDocumentURI(),
+        mForFrame->GetContent()->OwnerDoc()->GetReferrerPolicy());
+
+      nsSVGPaintingProperty* property = SVGObserverUtils::GetPaintingPropertyForURI(
+          url, mForFrame->FirstContinuation(),
           SVGObserverUtils::BackgroundImageProperty());
       if (!property) {
         mPrepareResult = ImgDrawResult::BAD_IMAGE;
         return false;
       }
 
       // If the referenced element is an <img>, <canvas>, or <video> element,
       // prefer SurfaceFromElement as it's more reliable.
--- a/layout/style/FontFace.cpp
+++ b/layout/style/FontFace.cpp
@@ -16,16 +16,17 @@
 #include "mozilla/CycleCollectedJSContext.h"
 #include "mozilla/ServoBindings.h"
 #include "mozilla/ServoCSSParser.h"
 #include "mozilla/ServoStyleSet.h"
 #include "mozilla/ServoUtils.h"
 #include "mozilla/StaticPrefs.h"
 #include "nsIDocument.h"
 #include "nsStyleUtil.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 namespace mozilla {
 namespace dom {
 
 // -- FontFaceBufferSource ---------------------------------------------------
 
 /**
  * An object that wraps a FontFace object and exposes its ArrayBuffer
@@ -525,17 +526,20 @@ FontFace::GetURLExtraData() const
 {
   nsCOMPtr<nsIGlobalObject> global = do_QueryInterface(mParent);
   nsCOMPtr<nsIPrincipal> principal = global->PrincipalOrNull();
 
   nsCOMPtr<nsPIDOMWindowInner> window = do_QueryInterface(mParent);
   nsCOMPtr<nsIURI> docURI = window->GetDocumentURI();
   nsCOMPtr<nsIURI> base = window->GetDocBaseURI();
 
-  RefPtr<URLExtraData> url = new URLExtraData(base, docURI, principal);
+  // We pass RP_Unset when creating URLExtraData object here because it's not
+  // going to result to change referer policy in a resource request.
+  RefPtr<URLExtraData> url = new URLExtraData(base, docURI, principal,
+                                              net::RP_Unset);
   return url.forget();
 }
 
 bool
 FontFace::SetDescriptor(nsCSSFontDesc aFontDesc,
                         const nsAString& aValue,
                         ErrorResult& aRv)
 {
--- a/layout/style/FontFaceSet.cpp
+++ b/layout/style/FontFaceSet.cpp
@@ -648,17 +648,17 @@ FontFaceSet::StartLoad(gfxUserFontEntry*
          aFontFaceSrc->mReferrer
          ? aFontFaceSrc->mReferrer->GetSpecOrDefault().get()
          : ""));
   }
 
   nsCOMPtr<nsIHttpChannel> httpChannel(do_QueryInterface(channel));
   if (httpChannel) {
     rv = httpChannel->SetReferrerWithPolicy(aFontFaceSrc->mReferrer,
-                                            mDocument->GetReferrerPolicy());
+                                            aFontFaceSrc->mReferrerPolicy);
     Unused << NS_WARN_IF(NS_FAILED(rv));
 
     nsAutoCString accept("application/font-woff;q=0.9,*/*;q=0.8");
     if (Preferences::GetBool(GFX_PREF_WOFF2_ENABLED)) {
       accept.InsertLiteral("application/font-woff2;q=1.0,", 0);
     }
     rv = httpChannel->SetRequestHeader(NS_LITERAL_CSTRING("Accept"),
                                        accept, false);
@@ -1206,17 +1206,17 @@ FontFaceSet::FindOrCreateUserFontEntryFr
           break;
         }
         case eCSSUnit_URL: {
           face->mSourceType = gfxFontFaceSrc::eSourceType_URL;
           nsIURI* uri = val.GetURLValue();
           face->mURI = uri ? new gfxFontSrcURI(uri) : nullptr;
           URLValue* url = val.GetURLStructValue();
           face->mReferrer = url->mExtraData->GetReferrer();
-          face->mReferrerPolicy = set->mDocument->GetReferrerPolicy();
+          face->mReferrerPolicy = url->mExtraData->GetReferrerPolicy();
           face->mOriginPrincipal =
             new gfxFontSrcPrincipal(url->mExtraData->GetPrincipal());
           NS_ASSERTION(face->mOriginPrincipal, "null origin principal in @font-face rule");
 
           // agent and user stylesheets are treated slightly differently,
           // the same-site origin check and access control headers are
           // enforced against the sheet principal rather than the document
           // principal to allow user stylesheets to include @font-face rules
--- a/layout/style/ImageLoader.cpp
+++ b/layout/style/ImageLoader.cpp
@@ -356,34 +356,36 @@ ImageLoader::ClearFrames(nsPresContext* 
   }
 
   mRequestToFrameMap.Clear();
   mFrameToRequestMap.Clear();
 }
 
 void
 ImageLoader::LoadImage(nsIURI* aURI, nsIPrincipal* aOriginPrincipal,
-                       nsIURI* aReferrer, ImageLoader::Image* aImage,
+                       nsIURI* aReferrer,
+                       mozilla::net::ReferrerPolicy aPolicy,
+                       ImageLoader::Image* aImage,
                        CORSMode aCorsMode)
 {
   NS_ASSERTION(aImage->mRequests.Count() == 0, "Huh?");
 
   aImage->mRequests.Put(nullptr, nullptr);
 
   if (!aURI) {
     return;
   }
 
   int32_t loadFlags = nsIRequest::LOAD_NORMAL |
                       nsContentUtils::CORSModeToLoadImageFlags(aCorsMode);
 
   RefPtr<imgRequestProxy> request;
   nsresult rv = nsContentUtils::LoadImage(aURI, mDocument, mDocument,
                                           aOriginPrincipal, 0, aReferrer,
-                                          mDocument->GetReferrerPolicy(),
+                                          aPolicy,
                                           nullptr, loadFlags,
                                           NS_LITERAL_STRING("css"),
                                           getter_AddRefs(request));
 
   if (NS_FAILED(rv) || !request) {
     return;
   }
 
--- a/layout/style/ImageLoader.h
+++ b/layout/style/ImageLoader.h
@@ -14,16 +14,17 @@
 #include "nsClassHashtable.h"
 #include "nsHashKeys.h"
 #include "nsIFrame.h"
 #include "nsIReflowCallback.h"
 #include "nsTArray.h"
 #include "imgIRequest.h"
 #include "imgINotificationObserver.h"
 #include "mozilla/Attributes.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 class imgIContainer;
 class nsIFrame;
 class nsIDocument;
 class nsPresContext;
 class nsIURI;
 class nsIPrincipal;
 
@@ -72,17 +73,18 @@ public:
   void SetAnimationMode(uint16_t aMode);
 
   // The prescontext for this ImageLoader's document. We need it to be passed
   // in because this can be called during presentation destruction after the
   // presshell pointer on the document has been cleared.
   void ClearFrames(nsPresContext* aPresContext);
 
   void LoadImage(nsIURI* aURI, nsIPrincipal* aPrincipal, nsIURI* aReferrer,
-                 Image* aCSSValue, CORSMode aCorsMode);
+                 mozilla::net::ReferrerPolicy aPolicy, Image* aCSSValue,
+                 CORSMode aCorsMode);
 
   void DestroyRequest(imgIRequest* aRequest);
 
   void FlushUseCounters();
 
 private:
   // This callback is used to unblock document onload after a reflow
   // triggered from an image load.
--- a/layout/style/Loader.cpp
+++ b/layout/style/Loader.cpp
@@ -59,16 +59,17 @@
 #endif
 
 #include "nsError.h"
 
 #include "nsIContentSecurityPolicy.h"
 #include "mozilla/dom/SRICheck.h"
 
 #include "mozilla/Encoding.h"
+#include "mozilla/Logging.h"
 
 using namespace mozilla::dom;
 
 // 1024 bytes is specified in https://drafts.csswg.org/css-syntax/
 #define SNIFFING_BUFFER_SIZE 1024
 
 /**
  * OVERALL ARCHITECTURE
@@ -91,21 +92,16 @@ using namespace mozilla::dom;
  * The following helper object is used:
  *    SheetLoadData -- a small class that is used to store all the
  *                     information needed for the loading of a sheet;
  *                     this class handles listening for the stream
  *                     loader completion and also handles charset
  *                     determination.
  */
 
-namespace mozilla {
-namespace css {
-
-#include "mozilla/Logging.h"
-
 static mozilla::LazyLogModule sCssLoaderLog("nsCSSLoader");
 
 static mozilla::LazyLogModule gSriPRLog("SRI");
 
 #define LOG_ERROR(args) MOZ_LOG(sCssLoaderLog, mozilla::LogLevel::Error, args)
 #define LOG_WARN(args) MOZ_LOG(sCssLoaderLog, mozilla::LogLevel::Warning, args)
 #define LOG_DEBUG(args) MOZ_LOG(sCssLoaderLog, mozilla::LogLevel::Debug, args)
 #define LOG(args) LOG_DEBUG(args)
@@ -127,16 +123,32 @@ static mozilla::LazyLogModule gSriPRLog(
 static const char* const gStateStrings[] = {
   "eSheetStateUnknown",
   "eSheetNeedsParser",
   "eSheetPending",
   "eSheetLoading",
   "eSheetComplete"
 };
 
+namespace mozilla {
+
+URIPrincipalReferrerPolicyAndCORSModeHashKey::
+URIPrincipalReferrerPolicyAndCORSModeHashKey(css::SheetLoadData* aLoadData)
+  : nsURIHashKey(aLoadData->mURI)
+  , mPrincipal(aLoadData->mLoaderPrincipal)
+  , mCORSMode(aLoadData->mSheet->GetCORSMode())
+  , mReferrerPolicy(aLoadData->mSheet->GetReferrerPolicy())
+{
+  MOZ_COUNT_CTOR(URIPrincipalReferrerPolicyAndCORSModeHashKey);
+}
+} // namespace mozilla
+
+namespace mozilla {
+namespace css {
+
 /********************************
  * SheetLoadData implementation *
  ********************************/
 NS_IMPL_ISUPPORTS(SheetLoadData, nsIRunnable,
                   nsIThreadObserver)
 
 SheetLoadData::SheetLoadData(Loader* aLoader,
                              const nsAString& aTitle,
@@ -554,16 +566,35 @@ SheetLoadData::GetReferrerURI()
   nsCOMPtr<nsIURI> uri;
   if (mParentData)
     uri = mParentData->mSheet->GetSheetURI();
   if (!uri && mLoader->mDocument)
     uri = mLoader->mDocument->GetDocumentURI();
   return uri.forget();
 }
 
+void
+SheetLoadData::SetReferrerPolicyFromHeader(nsIChannel* aChannel)
+{
+  net::ReferrerPolicy policy =
+    nsContentUtils::GetReferrerPolicyFromChannel(aChannel);
+  if (policy == net::RP_Unset ||
+      policy == mSheet->GetReferrerPolicy()) {
+    return;
+  }
+
+  URIPrincipalReferrerPolicyAndCORSModeHashKey oldKey(mURI,
+                                                      mLoaderPrincipal,
+                                                      mSheet->GetCORSMode(),
+                                                      mSheet->GetReferrerPolicy());
+
+  mSheet->SetReferrerPolicy(policy);
+  mLoader->UpdateLoadingData(&oldKey, this);
+}
+
 static nsresult
 VerifySheetIntegrity(const SRIMetadata& aMetadata,
                      nsIChannel* aChannel,
                      const nsACString& aFirst,
                      const nsACString& aSecond,
                      const nsACString& aSourceFileURI,
                      nsIConsoleReportCollector* aReporter)
 {
@@ -600,17 +631,17 @@ VerifySheetIntegrity(const SRIMetadata& 
  * loading non-text/css data in standards mode.
  */
 nsresult
 SheetLoadData::VerifySheetReadyToParse(nsresult aStatus,
                                        const nsACString& aBytes1,
                                        const nsACString& aBytes2,
                                        nsIChannel* aChannel)
 {
-  LOG(("SheetLoadData::OnStreamComplete"));
+  LOG(("SheetLoadData::VerifySheetReadyToParse"));
   NS_ASSERTION(!mLoader->mSyncCallback, "Synchronous callback from necko");
 
   if (mIsCancelled) {
     // Just return.  Don't call SheetComplete -- it's already been
     // called and calling it again will lead to an extra NS_RELEASE on
     // this data and a likely crash.
     return NS_OK;
   }
@@ -810,16 +841,18 @@ SheetLoadData::VerifySheetReadyToParse(n
       LOG(("  Load was blocked by SRI"));
       MOZ_LOG(gSriPRLog, mozilla::LogLevel::Debug,
               ("css::Loader::OnStreamComplete, bad metadata"));
       mLoader->SheetComplete(this, NS_ERROR_SRI_CORRUPT);
       return NS_OK;
     }
   }
 
+  SetReferrerPolicyFromHeader(aChannel);
+
   // Enough to set the URIs on mSheet, since any sibling datas we have share
   // the same mInner as mSheet and will thus get the same URI.
   mSheet->SetURIs(channelURI, originalURI, channelURI);
   return NS_OK_PARSE_SHEET;
 }
 
 Loader::IsAlternate
 Loader::IsAlternateSheet(const nsAString& aTitle, bool aHasAlternateRel)
@@ -848,16 +881,30 @@ Loader::IsAlternateSheet(const nsAString
     if (aTitle.Equals(currentSheetSet)) {
       return IsAlternate::No;
     }
   }
 
   return IsAlternate::Yes;
 }
 
+void
+Loader::UpdateLoadingData(URIPrincipalReferrerPolicyAndCORSModeHashKey* aOldKey,
+                          SheetLoadData* aData)
+{
+  MOZ_ASSERT(mSheets, "Must have sheets!");
+  MOZ_ASSERT(aData->mIsLoading, "data must be loading");
+
+  DebugOnly<bool> removed = mSheets->mLoadingDatas.Remove(aOldKey);
+  MOZ_ASSERT(removed, "Can't find data to remove!!!");
+
+  URIPrincipalReferrerPolicyAndCORSModeHashKey newKey(aData);
+  mSheets->mLoadingDatas.Put(&newKey, aData);
+}
+
 nsresult
 Loader::CheckContentPolicy(nsIPrincipal* aLoadingPrincipal,
                            nsIPrincipal* aTriggeringPrincipal,
                            nsIURI* aTargetURI,
                            nsINode* aRequestingNode,
                            bool aIsPreload)
 {
   // When performing a system load (e.g. aUseSystemPrincipal = true)
@@ -1369,20 +1416,18 @@ Loader::LoadSheet(SheetLoadData* aLoadDa
     // SheetComplete has been called.
     return nsSyncLoadService::PushSyncStreamToListener(stream.forget(),
                                                        streamLoader,
                                                        channel);
   }
 
   SheetLoadData* existingData = nullptr;
 
-  URIPrincipalReferrerPolicyAndCORSModeHashKey key(aLoadData->mURI,
-                                     aLoadData->mLoaderPrincipal,
-                                     aLoadData->mSheet->GetCORSMode(),
-                                     aLoadData->mSheet->GetReferrerPolicy());
+  URIPrincipalReferrerPolicyAndCORSModeHashKey key(aLoadData);
+
   if (aSheetState == eSheetLoading) {
     mSheets->mLoadingDatas.Get(&key, &existingData);
     NS_ASSERTION(existingData, "CreateSheet lied about the state");
   } else if (aSheetState == eSheetPending) {
     mSheets->mPendingDatas.Get(&key, &existingData);
     NS_ASSERTION(existingData, "CreateSheet lied about the state");
   }
 
@@ -1713,20 +1758,17 @@ Loader::DoSheetComplete(SheetLoadData* a
   MOZ_ASSERT(aLoadData->mSheet, "Must have a sheet");
   NS_ASSERTION(mSheets, "mLoadingDatas should be initialized by now.");
 
   // Twiddle the hashtables
   if (aLoadData->mURI) {
     LOG_URI("  Finished loading: '%s'", aLoadData->mURI);
     // Remove the data from the list of loading datas
     if (aLoadData->mIsLoading) {
-      URIPrincipalReferrerPolicyAndCORSModeHashKey key(aLoadData->mURI,
-                                         aLoadData->mLoaderPrincipal,
-                                         aLoadData->mSheet->GetCORSMode(),
-                                         aLoadData->mSheet->GetReferrerPolicy());
+      URIPrincipalReferrerPolicyAndCORSModeHashKey key(aLoadData);
 #ifdef DEBUG
       SheetLoadData *loadingData;
       NS_ASSERTION(
         mSheets->mLoadingDatas.Get(&key, &loadingData) &&
         loadingData == aLoadData,
         "Bad loading table");
 #endif
 
@@ -1801,20 +1843,17 @@ Loader::DoSheetComplete(SheetLoadData* a
           NS_ASSERTION(sheet->IsComplete(),
                        "Should only be caching complete sheets");
           cache->PutStyleSheet(sheet);
         }
       }
     }
     else {
 #endif
-      URIPrincipalReferrerPolicyAndCORSModeHashKey key(aLoadData->mURI,
-                                         aLoadData->mLoaderPrincipal,
-                                         aLoadData->mSheet->GetCORSMode(),
-                                         aLoadData->mSheet->GetReferrerPolicy());
+      URIPrincipalReferrerPolicyAndCORSModeHashKey key(aLoadData);
       NS_ASSERTION(sheet->IsComplete(),
                    "Should only be caching complete sheets");
       mSheets->mCompleteSheets.Put(&key, sheet);
 #ifdef MOZ_XUL
     }
 #endif
   }
 
@@ -2047,20 +2086,17 @@ Loader::LoadStyleLink(const SheetInfo& a
              "These should better match!");
 
   // If we have to parse and it's a non-blocking non-inline sheet, defer it.
   if (!syncLoad &&
       state == eSheetNeedsParser &&
       mSheets->mLoadingDatas.Count() != 0 &&
       !result.ShouldBlock()) {
     LOG(("  Deferring sheet load"));
-    URIPrincipalReferrerPolicyAndCORSModeHashKey key(data->mURI,
-                                                     data->mLoaderPrincipal,
-                                                     data->mSheet->GetCORSMode(),
-                                                     data->mSheet->GetReferrerPolicy());
+    URIPrincipalReferrerPolicyAndCORSModeHashKey key(data);
     mSheets->mPendingDatas.Put(&key, data);
 
     data->mMustNotify = true;
     return result;
   }
 
   // Load completion will free the data
   rv = LoadSheet(data, state, false);
--- a/layout/style/Loader.h
+++ b/layout/style/Loader.h
@@ -64,24 +64,28 @@ public:
                                                ReferrerPolicy aReferrerPolicy)
     : nsURIHashKey(aURI),
       mPrincipal(aPrincipal),
       mCORSMode(aCORSMode),
       mReferrerPolicy(aReferrerPolicy)
   {
     MOZ_COUNT_CTOR(URIPrincipalReferrerPolicyAndCORSModeHashKey);
   }
+
   URIPrincipalReferrerPolicyAndCORSModeHashKey(const URIPrincipalReferrerPolicyAndCORSModeHashKey& toCopy)
     : nsURIHashKey(toCopy),
       mPrincipal(toCopy.mPrincipal),
       mCORSMode(toCopy.mCORSMode),
       mReferrerPolicy(toCopy.mReferrerPolicy)
   {
     MOZ_COUNT_CTOR(URIPrincipalReferrerPolicyAndCORSModeHashKey);
   }
+
+  explicit URIPrincipalReferrerPolicyAndCORSModeHashKey(css::SheetLoadData* aLoadData);
+
   ~URIPrincipalReferrerPolicyAndCORSModeHashKey()
   {
     MOZ_COUNT_DTOR(URIPrincipalReferrerPolicyAndCORSModeHashKey);
   }
 
   URIPrincipalReferrerPolicyAndCORSModeHashKey* GetKey() const {
     return const_cast<URIPrincipalReferrerPolicyAndCORSModeHashKey*>(this);
   }
@@ -572,16 +576,21 @@ private:
   // datas whose observers need to be notified can be added to it.
   void DoSheetComplete(SheetLoadData* aLoadData, LoadDataArray& aDatasToNotify);
 
   // Mark the given SheetLoadData, as well as any of its siblings, parents, etc
   // transitively, as failed.  The idea is to mark as failed any load that was
   // directly or indirectly @importing the sheet this SheetLoadData represents.
   void MarkLoadTreeFailed(SheetLoadData* aLoadData);
 
+  // If there's Referrer-Policy reponse header, the loading data and key should
+  // be updated with the referer policy parsed from the header.
+  void UpdateLoadingData(URIPrincipalReferrerPolicyAndCORSModeHashKey* aOldKey,
+                         SheetLoadData* aData);
+
   struct Sheets {
     nsBaseHashtable<URIPrincipalReferrerPolicyAndCORSModeHashKey,
                     RefPtr<StyleSheet>,
                     StyleSheet*> mCompleteSheets;
     nsDataHashtable<URIPrincipalReferrerPolicyAndCORSModeHashKey, SheetLoadData*>
                       mLoadingDatas; // weak refs
     nsDataHashtable<URIPrincipalReferrerPolicyAndCORSModeHashKey, SheetLoadData*>
                       mPendingDatas; // weak refs
--- a/layout/style/ServoCSSParser.cpp
+++ b/layout/style/ServoCSSParser.cpp
@@ -81,17 +81,18 @@ ServoCSSParser::ParseFontShorthandForMat
 /* static */ already_AddRefed<URLExtraData>
 ServoCSSParser::GetURLExtraData(nsIDocument* aDocument)
 {
   MOZ_ASSERT(aDocument);
 
   // FIXME this is using the wrong base uri (bug 1343919)
   RefPtr<URLExtraData> url = new URLExtraData(aDocument->GetDocumentURI(),
                                               aDocument->GetDocumentURI(),
-                                              aDocument->NodePrincipal());
+                                              aDocument->NodePrincipal(),
+                                              aDocument->GetReferrerPolicy());
   return url.forget();
 }
 
 /* static */ ServoCSSParser::ParsingEnvironment
 ServoCSSParser::GetParsingEnvironment(nsIDocument* aDocument)
 {
   return ParsingEnvironment(GetURLExtraData(aDocument),
                             aDocument->GetCompatibilityMode(),
--- a/layout/style/SheetLoadData.h
+++ b/layout/style/SheetLoadData.h
@@ -86,16 +86,18 @@ public:
 
   // The caller may have the bytes for the stylesheet split across two strings,
   // so aBytes1 and aBytes2 refer to those pieces.
   nsresult VerifySheetReadyToParse(nsresult aStatus,
                                    const nsACString& aBytes1,
                                    const nsACString& aBytes2,
                                    nsIChannel* aChannel);
 
+  void SetReferrerPolicyFromHeader(nsIChannel* aChannel);
+
   NS_DECL_ISUPPORTS
   NS_DECL_NSIRUNNABLE
   NS_DECL_NSITHREADOBSERVER
 
   // Hold a ref to the CSSLoader so we can call back to it to let it
   // know the load finished
   RefPtr<Loader> mLoader;
 
--- a/layout/style/StyleSheet.cpp
+++ b/layout/style/StyleSheet.cpp
@@ -272,16 +272,25 @@ StyleSheet::SetDisabled(bool aDisabled)
     mState &= ~State::Disabled;
   }
 
   if (IsComplete()) {
     ApplicableStateChanged(!aDisabled);
   }
 }
 
+already_AddRefed<URLExtraData>
+StyleSheet::CreateURLExtraData() const
+{
+  RefPtr<URLExtraData> data = new URLExtraData(GetBaseURI(),
+                                               GetSheetURI(),
+                                               Principal(),
+                                               GetReferrerPolicy());
+  return data.forget();
+}
 StyleSheetInfo::StyleSheetInfo(CORSMode aCORSMode,
                                ReferrerPolicy aReferrerPolicy,
                                const SRIMetadata& aIntegrity,
                                css::SheetParsingMode aParsingMode)
   : mPrincipal(NullPrincipal::CreateWithoutOriginAttributes())
   , mCORSMode(aCORSMode)
   , mReferrerPolicy(aReferrerPolicy)
   , mIntegrity(aIntegrity)
@@ -880,16 +889,22 @@ StyleSheet::SetMedia(dom::MediaList* aMe
 {
   if (aMedia) {
     aMedia->SetStyleSheet(this);
   }
   mMedia = aMedia;
 }
 
 void
+StyleSheet::SetReferrerPolicy(net::ReferrerPolicy aReferrerPolicy)
+{
+  Inner().mReferrerPolicy = aReferrerPolicy;
+}
+
+void
 StyleSheet::DropMedia()
 {
   if (mMedia) {
     mMedia->SetStyleSheet(nullptr);
     mMedia = nullptr;
   }
 }
 
@@ -1007,18 +1022,17 @@ RefPtr<StyleSheetParsePromise>
 StyleSheet::ParseSheet(css::Loader* aLoader,
                        const nsACString& aBytes,
                        css::SheetLoadData* aLoadData)
 {
   MOZ_ASSERT(aLoader);
   MOZ_ASSERT(aLoadData);
   MOZ_ASSERT(mParsePromise.IsEmpty());
   RefPtr<StyleSheetParsePromise> p = mParsePromise.Ensure(__func__);
-  Inner().mURLData =
-    new URLExtraData(GetBaseURI(), GetSheetURI(), Principal()); // RefPtr
+  Inner().mURLData = CreateURLExtraData(); // RefPtr
 
   const StyleUseCounters* useCounters = aLoader->GetDocument()
     ? aLoader->GetDocument()->GetStyleUseCounters()
     : nullptr;
 
   if (!AllowParallelParse(aLoader, GetSheetURI())) {
     RefPtr<RawServoStyleSheetContents> contents =
       Servo_StyleSheet_FromUTF8Bytes(aLoader,
@@ -1068,17 +1082,17 @@ StyleSheet::ParseSheetSync(css::Loader* 
 {
   nsCompatibility compatMode =
     aLoader ? aLoader->GetCompatibilityMode() : eCompatibility_FullStandards;
 
   const StyleUseCounters* useCounters = aLoader && aLoader->GetDocument()
     ? aLoader->GetDocument()->GetStyleUseCounters()
     : nullptr;
 
-  Inner().mURLData = new URLExtraData(GetBaseURI(), GetSheetURI(), Principal()); // RefPtr
+  Inner().mURLData = CreateURLExtraData(); // RefPtr
   Inner().mContents = Servo_StyleSheet_FromUTF8Bytes(aLoader,
                                                      this,
                                                      aLoadData,
                                                      &aBytes,
                                                      mParsingMode,
                                                      Inner().mURLData,
                                                      aLineNumber,
                                                      compatMode,
--- a/layout/style/StyleSheet.h
+++ b/layout/style/StyleSheet.h
@@ -358,16 +358,19 @@ public:
   void SetMedia(dom::MediaList* aMedia);
 
   // Get this style sheet's CORS mode
   CORSMode GetCORSMode() const
   {
     return Inner().mCORSMode;
   }
 
+  // Set style sheet's Referrer Policy
+  void SetReferrerPolicy(net::ReferrerPolicy aReferrerPolicy);
+
   // Get this style sheet's Referrer Policy
   net::ReferrerPolicy GetReferrerPolicy() const
   {
     return Inner().mReferrerPolicy;
   }
   // Get this style sheet's integrity metadata
   void GetIntegrity(dom::SRIMetadata& aResult) const
   {
@@ -459,16 +462,18 @@ private:
   }
 
   // Check if the rules are available for read and write.
   // It does the security check as well as whether the rules have been
   // completely loaded. aRv will have an exception set if this function
   // returns false.
   bool AreRulesAvailable(nsIPrincipal& aSubjectPrincipal, ErrorResult& aRv);
 
+  already_AddRefed<URLExtraData> CreateURLExtraData() const;
+
 protected:
   // Internal methods which do not have security check and completeness check.
   uint32_t InsertRuleInternal(const nsAString& aRule,
                               uint32_t aIndex,
                               ErrorResult&);
   void DeleteRuleInternal(uint32_t aIndex, ErrorResult&);
   nsresult InsertRuleIntoGroupInternal(const nsAString& aRule,
                                        css::GroupRule* aGroup,
--- a/layout/style/URLExtraData.cpp
+++ b/layout/style/URLExtraData.cpp
@@ -5,29 +5,31 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* thread-safe container of information for resolving url values */
 
 #include "mozilla/URLExtraData.h"
 
 #include "mozilla/NullPrincipalURI.h"
 #include "nsProxyRelease.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 namespace mozilla {
 
 StaticRefPtr<URLExtraData> URLExtraData::sDummy;
 
 /* static */ void
 URLExtraData::InitDummy()
 {
   RefPtr<nsIURI> baseURI = NullPrincipalURI::Create();
   RefPtr<nsIURI> referrer = baseURI;
   sDummy = new URLExtraData(baseURI.forget(),
                             referrer.forget(),
-                            NullPrincipal::CreateWithoutOriginAttributes());
+                            NullPrincipal::CreateWithoutOriginAttributes(),
+                            net::RP_Unset);
 }
 
 /* static */ void
 URLExtraData::ReleaseDummy()
 {
   sDummy = nullptr;
 }
 
--- a/layout/style/URLExtraData.h
+++ b/layout/style/URLExtraData.h
@@ -7,61 +7,68 @@
 /* thread-safe container of information for resolving url values */
 
 #ifndef mozilla_URLExtraData_h
 #define mozilla_URLExtraData_h
 
 #include "mozilla/dom/URL.h"
 #include "mozilla/Move.h"
 #include "mozilla/StaticPtr.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 #include "nsCOMPtr.h"
 #include "nsIPrincipal.h"
 #include "nsIURI.h"
 
 namespace mozilla {
 
 struct URLExtraData
 {
   URLExtraData(already_AddRefed<nsIURI> aBaseURI,
                already_AddRefed<nsIURI> aReferrer,
-               already_AddRefed<nsIPrincipal> aPrincipal)
+               already_AddRefed<nsIPrincipal> aPrincipal,
+               net::ReferrerPolicy aReferrerPolicy)
     : mBaseURI(std::move(aBaseURI))
     , mReferrer(std::move(aReferrer))
+    , mReferrerPolicy(aReferrerPolicy)
     , mPrincipal(std::move(aPrincipal))
       // When we hold the URI data of a style sheet, mReferrer is always
       // equal to the sheet URI.
     , mIsChrome(mReferrer ? dom::IsChromeURI(mReferrer) : false)
   {
     MOZ_ASSERT(mBaseURI);
   }
 
-  URLExtraData(nsIURI* aBaseURI, nsIURI* aReferrer, nsIPrincipal* aPrincipal)
+  URLExtraData(nsIURI* aBaseURI, nsIURI* aReferrer, nsIPrincipal* aPrincipal,
+               net::ReferrerPolicy aReferrerPolicy)
     : URLExtraData(do_AddRef(aBaseURI),
                    do_AddRef(aReferrer),
-                   do_AddRef(aPrincipal)) {}
+                   do_AddRef(aPrincipal),
+                   aReferrerPolicy) {}
 
   NS_INLINE_DECL_THREADSAFE_REFCOUNTING(URLExtraData)
 
   nsIURI* BaseURI() const { return mBaseURI; }
   nsIURI* GetReferrer() const { return mReferrer; }
+  net::ReferrerPolicy GetReferrerPolicy() const { return mReferrerPolicy;}
   nsIPrincipal* GetPrincipal() const { return mPrincipal; }
 
   static URLExtraData* Dummy() {
     MOZ_ASSERT(sDummy);
     return sDummy;
   }
   static void InitDummy();
   static void ReleaseDummy();
 
 private:
   ~URLExtraData();
 
   nsCOMPtr<nsIURI> mBaseURI;
   nsCOMPtr<nsIURI> mReferrer;
+  net::ReferrerPolicy mReferrerPolicy;
   nsCOMPtr<nsIPrincipal> mPrincipal;
 
   // True if mReferrer is a chrome:// URI.
   const bool mIsChrome;
 
   static StaticRefPtr<URLExtraData> sDummy;
 };
 
--- a/layout/style/nsCSSValue.cpp
+++ b/layout/style/nsCSSValue.cpp
@@ -1435,16 +1435,17 @@ css::ImageValue::Initialize(nsIDocument*
   if (!loadingDoc) {
     loadingDoc = aDocument;
   }
 
   if (!mLoadedImage) {
     loadingDoc->StyleImageLoader()->LoadImage(GetURI(),
                                               mExtraData->GetPrincipal(),
                                               mExtraData->GetReferrer(),
+                                              mExtraData->GetReferrerPolicy(),
                                               this,
                                               mCORSMode);
 
     mLoadedImage = true;
   }
 
   aDocument->StyleImageLoader()->MaybeRegisterCSSImage(this);
 }
--- a/layout/style/test/gtest/StyloParsingBench.cpp
+++ b/layout/style/test/gtest/StyloParsingBench.cpp
@@ -6,16 +6,17 @@
 
 #include "gtest/gtest.h"
 #include "gtest/MozGTestBench.h"
 #include "nsString.h"
 #include "ExampleStylesheet.h"
 #include "ServoBindings.h"
 #include "mozilla/Encoding.h"
 #include "mozilla/NullPrincipalURI.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 using namespace mozilla;
 using namespace mozilla::css;
 using namespace mozilla::dom;
 using namespace mozilla::net;
 
 // Bug 1436018 - Disable Stylo microbenchmark on Windows
 #if !defined(_WIN32) && !defined(_WIN64)
@@ -26,18 +27,21 @@ using namespace mozilla::net;
 
 static void ServoParsingBench(const StyleUseCounters* aCounters)
 {
   auto css = AsBytes(MakeStringSpan(EXAMPLE_STYLESHEET));
   nsCString cssStr;
   cssStr.Append(css);
   ASSERT_EQ(Encoding::UTF8ValidUpTo(css), css.Length());
 
-  RefPtr<URLExtraData> data = new URLExtraData(
-    NullPrincipalURI::Create(), nullptr, NullPrincipal::CreateWithoutOriginAttributes());
+  RefPtr<URLExtraData> data =
+    new URLExtraData(NullPrincipalURI::Create(),
+                     nullptr,
+                     NullPrincipal::CreateWithoutOriginAttributes(),
+                     mozilla::net::RP_Unset);
   for (int i = 0; i < PARSING_REPETITIONS; i++) {
     RefPtr<RawServoStyleSheetContents> stylesheet =
       Servo_StyleSheet_FromUTF8Bytes(nullptr,
                                      nullptr,
                                      nullptr,
                                      &cssStr,
                                      eAuthorSheetFeatures,
                                      data,
@@ -47,19 +51,21 @@ static void ServoParsingBench(const Styl
                                      aCounters)
         .Consume();
   }
 }
 
 static void ServoSetPropertyByIdBench(const nsACString& css)
 {
   RefPtr<RawServoDeclarationBlock> block = Servo_DeclarationBlock_CreateEmpty().Consume();
-  RefPtr<URLExtraData> data = new URLExtraData(
-    NullPrincipalURI::Create(), nullptr, NullPrincipal::CreateWithoutOriginAttributes());
-
+  RefPtr<URLExtraData> data =
+    new URLExtraData(NullPrincipalURI::Create(),
+                     nullptr,
+                     NullPrincipal::CreateWithoutOriginAttributes(),
+                     mozilla::net::RP_Unset);
   ASSERT_TRUE(IsUTF8(css));
 
   for (int i = 0; i < SETPROPERTY_REPETITIONS; i++) {
     Servo_DeclarationBlock_SetPropertyById(
       block,
       eCSSProperty_width,
       &css,
       /* is_important = */ false,
@@ -69,18 +75,21 @@ static void ServoSetPropertyByIdBench(co
       nullptr,
       { }
     );
   }
 }
 
 static void ServoGetPropertyValueById() {
   RefPtr<RawServoDeclarationBlock> block = Servo_DeclarationBlock_CreateEmpty().Consume();
-  RefPtr<URLExtraData> data = new URLExtraData(
-    NullPrincipalURI::Create(), nullptr, NullPrincipal::CreateWithoutOriginAttributes());
+  RefPtr<URLExtraData> data =
+    new URLExtraData(NullPrincipalURI::Create(),
+                     nullptr,
+                     NullPrincipal::CreateWithoutOriginAttributes(),
+                     mozilla::net::RP_Unset);
   NS_NAMED_LITERAL_CSTRING(css_, "10px");
   const nsACString& css = css_;
   Servo_DeclarationBlock_SetPropertyById(
     block,
     eCSSProperty_width,
     &css,
     /* is_important = */ false,
     data,
--- a/layout/svg/SVGGeometryFrame.cpp
+++ b/layout/svg/SVGGeometryFrame.cpp
@@ -692,17 +692,17 @@ SVGGeometryFrame::GetCanvasTM()
 }
 
 SVGGeometryFrame::MarkerProperties
 SVGGeometryFrame::GetMarkerProperties(SVGGeometryFrame *aFrame)
 {
   NS_ASSERTION(!aFrame->GetPrevContinuation(), "aFrame should be first continuation");
 
   MarkerProperties result;
-  nsCOMPtr<nsIURI> markerURL =
+  RefPtr<URLAndReferrerInfo> markerURL =
     SVGObserverUtils::GetMarkerURI(aFrame, &nsStyleSVG::mMarkerStart);
   result.mMarkerStart =
     SVGObserverUtils::GetMarkerProperty(markerURL, aFrame,
                                         SVGObserverUtils::MarkerBeginProperty());
 
   markerURL = SVGObserverUtils::GetMarkerURI(aFrame, &nsStyleSVG::mMarkerMid);
   result.mMarkerMid =
     SVGObserverUtils::GetMarkerProperty(markerURL, aFrame,
--- a/layout/svg/SVGObserverUtils.cpp
+++ b/layout/svg/SVGObserverUtils.cpp
@@ -15,16 +15,17 @@
 #include "nsSVGPaintServerFrame.h"
 #include "nsSVGFilterFrame.h"
 #include "nsSVGMaskFrame.h"
 #include "nsIReflowCallback.h"
 #include "nsCycleCollectionParticipant.h"
 #include "SVGGeometryElement.h"
 #include "SVGUseElement.h"
 #include "ImageLoader.h"
+#include "mozilla/net/ReferrerPolicy.h"
 
 using namespace mozilla::dom;
 
 namespace mozilla {
 
 void
 SVGRenderingObserver::StartObserving()
 {
@@ -166,23 +167,33 @@ SVGRenderingObserver::ContentRemoved(nsI
  * SVGIDRenderingObserver object also adds itself to an
  * SVGRenderingObserverList object belonging to the referenced
  * element.
  *
  * XXX: it would be nice to have a clear and concise executive summary of the
  * benefits/necessity of maintaining a second observer list.
  */
 
-SVGIDRenderingObserver::SVGIDRenderingObserver(nsIURI* aURI,
+SVGIDRenderingObserver::SVGIDRenderingObserver(URLAndReferrerInfo* aURI,
                                                nsIContent* aObservingContent,
                                                bool aReferenceImage)
   : mObservedElementTracker(this)
 {
   // Start watching the target element
-  mObservedElementTracker.Reset(aObservingContent, aURI, true, aReferenceImage);
+  nsCOMPtr<nsIURI> uri;
+  nsCOMPtr<nsIURI> referrer;
+  uint32_t referrerPolicy = mozilla::net::RP_Unset;
+  if (aURI) {
+    uri = aURI->GetURI();
+    referrer = aURI->GetReferrer();
+    referrerPolicy = aURI->GetReferrerPolicy();
+  }
+
+  mObservedElementTracker.Reset(aObservingContent, uri, referrer,
+                                referrerPolicy, true, aReferenceImage);
   StartObserving();
 }
 
 SVGIDRenderingObserver::~SVGIDRenderingObserver()
 {
   StopObserving();
 }
 
@@ -291,19 +302,29 @@ SVGFilterObserverList::SVGFilterObserver
                                              nsIFrame* aFilteredFrame)
 {
   for (uint32_t i = 0; i < aFilters.Length(); i++) {
     if (aFilters[i].GetType() != NS_STYLE_FILTER_URL)
       continue;
 
     // aFilteredFrame can be null if this filter belongs to a
     // CanvasRenderingContext2D.
-    nsCOMPtr<nsIURI> filterURL = aFilteredFrame
-      ? SVGObserverUtils::GetFilterURI(aFilteredFrame, i)
-      : aFilters[i].GetURL()->ResolveLocalRef(aFilteredElement);
+    RefPtr<URLAndReferrerInfo> filterURL;
+    if (aFilteredFrame) {
+      filterURL = SVGObserverUtils::GetFilterURI(aFilteredFrame, i);
+    } else {
+      nsCOMPtr<nsIURI> resolvedURI =
+        aFilters[i].GetURL()->ResolveLocalRef(aFilteredElement);
+      if (resolvedURI) {
+        filterURL = new URLAndReferrerInfo(
+          resolvedURI,
+          aFilters[i].GetURL()->mExtraData->GetReferrer(),
+          aFilters[i].GetURL()->mExtraData->GetReferrerPolicy());
+      }
+    }
 
     RefPtr<SVGFilterObserver> observer =
       new SVGFilterObserver(filterURL, aFilteredElement, this);
     mObservers.AppendElement(observer);
   }
 }
 
 SVGFilterObserverList::~SVGFilterObserverList()
@@ -386,20 +407,21 @@ SVGMarkerObserver::OnRenderingChange()
 NS_IMPL_ISUPPORTS(SVGMaskObserverList, nsISupports)
 
 SVGMaskObserverList::SVGMaskObserverList(nsIFrame* aFrame)
  : mFrame(aFrame)
 {
   const nsStyleSVGReset *svgReset = aFrame->StyleSVGReset();
 
   for (uint32_t i = 0; i < svgReset->mMask.mImageCount; i++) {
-    nsCOMPtr<nsIURI> maskUri = SVGObserverUtils::GetMaskURI(aFrame, i);
+    RefPtr<URLAndReferrerInfo> maskUri =
+      SVGObserverUtils::GetMaskURI(aFrame, i);
     bool hasRef = false;
     if (maskUri) {
-      maskUri->GetHasRef(&hasRef);
+      maskUri->GetURI()->GetHasRef(&hasRef);
     }
 
     // Accrording to maskUri, nsSVGPaintingProperty's ctor may trigger an
     // external SVG resource download, so we should pass maskUri in only if
     // maskUri has a chance pointing to an SVG mask resource.
     //
     // And, an URL may refer to an SVG mask resource if it consists of
     // a fragment.
@@ -529,57 +551,58 @@ GetOrCreateMaskProperty(nsIFrame* aFrame
   prop = new SVGMaskObserverList(aFrame);
   NS_ADDREF(prop);
   aFrame->SetProperty(SVGObserverUtils::MaskProperty(), prop);
   return prop;
 }
 
 template<class T>
 static T*
-GetEffectProperty(nsIURI* aURI, nsIFrame* aFrame,
+GetEffectProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
   const mozilla::FramePropertyDescriptor<T>* aProperty)
 {
   if (!aURI)
     return nullptr;
 
   T* prop = aFrame->GetProperty(aProperty);
   if (prop)
     return prop;
   prop = new T(aURI, aFrame, false);
   NS_ADDREF(prop);
   aFrame->SetProperty(aProperty, prop);
   return prop;
 }
 
 SVGMarkerObserver*
-SVGObserverUtils::GetMarkerProperty(nsIURI* aURI, nsIFrame* aFrame,
+SVGObserverUtils::GetMarkerProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
   const mozilla::FramePropertyDescriptor<SVGMarkerObserver>* aProperty)
 {
   MOZ_ASSERT(aFrame->IsSVGGeometryFrame() &&
              static_cast<SVGGeometryElement*>(aFrame->GetContent())->IsMarkable(),
              "Bad frame");
   return GetEffectProperty(aURI, aFrame, aProperty);
 }
 
 SVGTextPathObserver*
-SVGObserverUtils::GetTextPathProperty(nsIURI* aURI, nsIFrame* aFrame,
+SVGObserverUtils::GetTextPathProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
   const mozilla::FramePropertyDescriptor<SVGTextPathObserver>* aProperty)
 {
   return GetEffectProperty(aURI, aFrame, aProperty);
 }
 
 nsSVGPaintingProperty*
-SVGObserverUtils::GetPaintingProperty(nsIURI* aURI, nsIFrame* aFrame,
+SVGObserverUtils::GetPaintingProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
   const mozilla::FramePropertyDescriptor<nsSVGPaintingProperty>* aProperty)
 {
   return GetEffectProperty(aURI, aFrame, aProperty);
 }
 
 nsSVGPaintingProperty*
-SVGObserverUtils::GetPaintingPropertyForURI(nsIURI* aURI, nsIFrame* aFrame,
+SVGObserverUtils::GetPaintingPropertyForURI(URLAndReferrerInfo* aURI,
+  nsIFrame* aFrame,
   URIObserverHashtablePropertyDescriptor aProperty)
 {
   if (!aURI)
     return nullptr;
 
   SVGObserverUtils::URIObserverHashtable *hashtable =
     aFrame->GetProperty(aProperty);
   if (!hashtable) {
@@ -602,17 +625,17 @@ SVGObserverUtils::GetEffectProperties(ns
   NS_ASSERTION(!aFrame->GetPrevContinuation(), "aFrame should be first continuation");
 
   EffectProperties result;
   const nsStyleSVGReset *style = aFrame->StyleSVGReset();
 
   result.mFilterObservers = GetOrCreateFilterObserverListForCSS(aFrame);
 
   if (style->mClipPath.GetType() == StyleShapeSourceType::URL) {
-    nsCOMPtr<nsIURI> pathURI = SVGObserverUtils::GetClipPathURI(aFrame);
+    RefPtr<URLAndReferrerInfo> pathURI = SVGObserverUtils::GetClipPathURI(aFrame);
     result.mClipPath =
       GetPaintingProperty(pathURI, aFrame, ClipPathProperty());
   } else {
     result.mClipPath = nullptr;
   }
 
   MOZ_ASSERT(style->mMask.mImageCount > 0);
   result.mMaskObservers = style->HasMask()
@@ -638,17 +661,17 @@ SVGObserverUtils::GetPaintServer(nsIFram
       frame = grandparent;
     }
   }
 
   const nsStyleSVG* svgStyle = frame->StyleSVG();
   if ((svgStyle->*aPaint).Type() != eStyleSVGPaintType_Server)
     return nullptr;
 
-  nsCOMPtr<nsIURI> paintServerURL =
+  RefPtr<URLAndReferrerInfo> paintServerURL =
     SVGObserverUtils::GetPaintURI(frame, aPaint);
   nsSVGPaintingProperty *property =
     SVGObserverUtils::GetPaintingProperty(paintServerURL, frame, aType);
   if (!property)
     return nullptr;
   nsIFrame* result = property->GetReferencedFrame();
   if (!result)
     return nullptr;
@@ -762,17 +785,17 @@ SVGObserverUtils::UpdateEffects(nsIFrame
   // Ensure that the filter is repainted correctly
   // We can't do that in OnRenderingChange as the referenced frame may
   // not be valid
   GetOrCreateFilterObserverListForCSS(aFrame);
 
   if (aFrame->IsSVGGeometryFrame() &&
       static_cast<SVGGeometryElement*>(aFrame->GetContent())->IsMarkable()) {
     // Set marker properties here to avoid reference loops
-    nsCOMPtr<nsIURI> markerURL =
+    RefPtr<URLAndReferrerInfo> markerURL =
       GetMarkerURI(aFrame, &nsStyleSVG::mMarkerStart);
     GetMarkerProperty(markerURL, aFrame, MarkerBeginProperty());
     markerURL = GetMarkerURI(aFrame, &nsStyleSVG::mMarkerMid);
     GetMarkerProperty(markerURL, aFrame, MarkerMiddleProperty());
     markerURL = GetMarkerURI(aFrame, &nsStyleSVG::mMarkerEnd);
     GetMarkerProperty(markerURL, aFrame, MarkerEndProperty());
   }
 }
@@ -989,91 +1012,106 @@ SVGObserverUtils::GetBaseURLForLocalRef(
     if (isEqualsExceptRef) {
       return originalURI.forget();
     }
   }
 
   return baseURI.forget();
 }
 
-static already_AddRefed<nsIURI>
+static already_AddRefed<URLAndReferrerInfo>
 ResolveURLUsingLocalRef(nsIFrame* aFrame, const css::URLValueData* aURL)
 {
   MOZ_ASSERT(aFrame);
 
   if (!aURL) {
     return nullptr;
   }
 
+  nsCOMPtr<nsIURI> uri = aURL->GetURI();
+  RefPtr<URLAndReferrerInfo> result;
+
   // Non-local-reference URL.
   if (!aURL->IsLocalRef()) {
-    nsCOMPtr<nsIURI> result = aURL->GetURI();
+    if (!uri) {
+      return nullptr;
+    }
+    result = new URLAndReferrerInfo(uri,
+                                    aURL->mExtraData->GetReferrer(),
+                                    aURL->mExtraData->GetReferrerPolicy());
     return result.forget();
   }
 
   nsCOMPtr<nsIURI> baseURI =
-    SVGObserverUtils::GetBaseURLForLocalRef(aFrame->GetContent(),
-                                            aURL->GetURI());
+    SVGObserverUtils::GetBaseURLForLocalRef(aFrame->GetContent(), uri);
 
-  return aURL->ResolveLocalRef(baseURI);
+  nsCOMPtr<nsIURI> resolvedURI = aURL->ResolveLocalRef(baseURI);
+  if (!resolvedURI) {
+    return nullptr;
+  }
+
+  result = new URLAndReferrerInfo(resolvedURI,
+                                  aURL->mExtraData->GetReferrer(),
+                                  aURL->mExtraData->GetReferrerPolicy());
+  return result.forget();
 }
 
-already_AddRefed<nsIURI>
+already_AddRefed<URLAndReferrerInfo>
 SVGObserverUtils::GetMarkerURI(nsIFrame* aFrame,
                                RefPtr<css::URLValue> nsStyleSVG::* aMarker)
 {
   return ResolveURLUsingLocalRef(aFrame, aFrame->StyleSVG()->*aMarker);
 }
 
-already_AddRefed<nsIURI>
+already_AddRefed<URLAndReferrerInfo>
 SVGObserverUtils::GetClipPathURI(nsIFrame* aFrame)
 {
   const nsStyleSVGReset* svgResetStyle = aFrame->StyleSVGReset();
   MOZ_ASSERT(svgResetStyle->mClipPath.GetType() == StyleShapeSourceType::URL);
 
   css::URLValue* url = svgResetStyle->mClipPath.GetURL();
   return ResolveURLUsingLocalRef(aFrame, url);
 }
 
-already_AddRefed<nsIURI>
+already_AddRefed<URLAndReferrerInfo>
 SVGObserverUtils::GetFilterURI(nsIFrame* aFrame, uint32_t aIndex)
 {
   const nsStyleEffects* effects = aFrame->StyleEffects();
   MOZ_ASSERT(effects->mFilters.Length() > aIndex);
   MOZ_ASSERT(effects->mFilters[aIndex].GetType() == NS_STYLE_FILTER_URL);
 
   return ResolveURLUsingLocalRef(aFrame, effects->mFilters[aIndex].GetURL());
 }
 
-already_AddRefed<nsIURI>
+already_AddRefed<URLAndReferrerInfo>
 SVGObserverUtils::GetFilterURI(nsIFrame* aFrame, const nsStyleFilter& aFilter)
 {
   MOZ_ASSERT(aFrame->StyleEffects()->mFilters.Length());
   MOZ_ASSERT(aFilter.GetType() == NS_STYLE_FILTER_URL);
 
   return ResolveURLUsingLocalRef(aFrame, aFilter.GetURL());
 }
 
-already_AddRefed<nsIURI>
+already_AddRefed<URLAndReferrerInfo>
 SVGObserverUtils::GetPaintURI(nsIFrame* aFrame,
                               nsStyleSVGPaint nsStyleSVG::* aPaint)
 {
   const nsStyleSVG* svgStyle = aFrame->StyleSVG();
   MOZ_ASSERT((svgStyle->*aPaint).Type() ==
              nsStyleSVGPaintType::eStyleSVGPaintType_Server);
 
   return ResolveURLUsingLocalRef(aFrame,
                                  (svgStyle->*aPaint).GetPaintServer());
 }
 
-already_AddRefed<nsIURI>
+already_AddRefed<URLAndReferrerInfo>
 SVGObserverUtils::GetMaskURI(nsIFrame* aFrame, uint32_t aIndex)
 {
   const nsStyleSVGReset* svgReset = aFrame->StyleSVGReset();
   MOZ_ASSERT(svgReset->mMask.mLayers.Length() > aIndex);
 
-  mozilla::css::URLValueData* data =
+  css::URLValueData* data =
     svgReset->mMask.mLayers[aIndex].mImage.GetURLValue();
   return ResolveURLUsingLocalRef(aFrame, data);
 }
 
 } // namespace mozilla
 
--- a/layout/svg/SVGObserverUtils.h
+++ b/layout/svg/SVGObserverUtils.h
@@ -33,16 +33,48 @@ class nsSVGFilterFrame;
 class nsSVGMaskFrame;
 namespace mozilla {
 class SVGFilterObserverList;
 }
 
 namespace mozilla {
 
 /*
+ * This class contains URL and referrer information (referrer and referrer
+ * policy).
+ * We use it to pass to svg system instead of nsIURI. The object brings referrer
+ * and referrer policy so we can send correct Referer headers.
+ */
+class URLAndReferrerInfo
+{
+public:
+  URLAndReferrerInfo(nsIURI* aURI, nsIURI* aReferrer,
+                     mozilla::net::ReferrerPolicy aReferrerPolicy)
+    : mURI(aURI)
+    , mReferrer(aReferrer)
+    , mReferrerPolicy(aReferrerPolicy)
+ {
+   MOZ_ASSERT(aURI);
+ }
+
+  NS_INLINE_DECL_REFCOUNTING(URLAndReferrerInfo)
+
+  nsIURI* GetURI() { return mURI; }
+  nsIURI* GetReferrer() { return mReferrer; }
+  mozilla::net::ReferrerPolicy GetReferrerPolicy() { return mReferrerPolicy; }
+
+private:
+  ~URLAndReferrerInfo() = default;
+
+  nsCOMPtr<nsIURI> mURI;
+  nsCOMPtr<nsIURI> mReferrer;
+  mozilla::net::ReferrerPolicy mReferrerPolicy;
+};
+
+/*
  * This interface allows us to be notified when a piece of SVG content is
  * re-rendered.
  *
  * Concrete implementations of this interface need to implement
  * "GetTarget()" to specify the piece of SVG content that they'd like to
  * monitor, and they need to implement "OnRenderingChange" to specify how
  * we'll react when that content gets re-rendered. They also need to implement
  * a constructor and destructor, which should call StartObserving and
@@ -133,17 +165,17 @@ protected:
  * property object is attached to the referencing frame.
  */
 class SVGIDRenderingObserver : public SVGRenderingObserver
 {
 public:
   typedef mozilla::dom::Element Element;
   typedef mozilla::dom::IDTracker IDTracker;
 
-  SVGIDRenderingObserver(nsIURI* aURI, nsIContent* aObservingContent,
+  SVGIDRenderingObserver(URLAndReferrerInfo* aURI, nsIContent* aObservingContent,
                          bool aReferenceImage);
   virtual ~SVGIDRenderingObserver();
 
 protected:
   Element* GetTarget() override { return mObservedElementTracker.get(); }
 
   void OnRenderingChange() override;
 
@@ -203,17 +235,17 @@ private:
   nsIPresShell *mFramePresShell;
 };
 
 class nsSVGRenderingObserverProperty : public SVGIDRenderingObserver
 {
 public:
   NS_DECL_ISUPPORTS
 
-  nsSVGRenderingObserverProperty(nsIURI* aURI, nsIFrame *aFrame,
+  nsSVGRenderingObserverProperty(URLAndReferrerInfo* aURI, nsIFrame *aFrame,
                                  bool aReferenceImage)
     : SVGIDRenderingObserver(aURI, aFrame->GetContent(), aReferenceImage)
     , mFrameReference(aFrame)
   {}
 
 protected:
   virtual ~nsSVGRenderingObserverProperty() {}
 
@@ -236,17 +268,17 @@ protected:
  * It fires invalidations when the SVG filter element's id changes or when
  * the SVG filter element's content changes.
  *
  * The SVGFilterObserverList class manages a list of SVGFilterObservers.
  */
 class SVGFilterObserver final : public SVGIDRenderingObserver
 {
 public:
-  SVGFilterObserver(nsIURI* aURI,
+  SVGFilterObserver(URLAndReferrerInfo* aURI,
                     nsIContent* aObservingContent,
                     SVGFilterObserverList* aFilterChainObserver)
     : SVGIDRenderingObserver(aURI, aObservingContent, false)
     , mFilterObserverList(aFilterChainObserver)
   {
   }
 
   bool ReferencesValidResource() { return GetFilterFrame(); }
@@ -336,27 +368,27 @@ protected:
   virtual void OnRenderingChange() override;
 
   nsSVGFrameReferenceFromProperty mFrameReference;
 };
 
 class SVGMarkerObserver final: public nsSVGRenderingObserverProperty
 {
 public:
-  SVGMarkerObserver(nsIURI* aURI, nsIFrame* aFrame, bool aReferenceImage)
+  SVGMarkerObserver(URLAndReferrerInfo* aURI, nsIFrame* aFrame, bool aReferenceImage)
     : nsSVGRenderingObserverProperty(aURI, aFrame, aReferenceImage) {}
 
 protected:
   virtual void OnRenderingChange() override;
 };
 
 class SVGTextPathObserver final : public nsSVGRenderingObserverProperty
 {
 public:
-  SVGTextPathObserver(nsIURI* aURI, nsIFrame* aFrame, bool aReferenceImage)
+  SVGTextPathObserver(URLAndReferrerInfo* aURI, nsIFrame* aFrame, bool aReferenceImage)
     : nsSVGRenderingObserverProperty(aURI, aFrame, aReferenceImage)
     , mValid(true) {}
 
   virtual bool ObservesReflow() override { return false; }
 
 protected:
   virtual void OnRenderingChange() override;
 
@@ -367,17 +399,17 @@ private:
   bool TargetIsValid();
 
   bool mValid;
 };
 
 class nsSVGPaintingProperty final : public nsSVGRenderingObserverProperty
 {
 public:
-  nsSVGPaintingProperty(nsIURI* aURI, nsIFrame* aFrame, bool aReferenceImage)
+  nsSVGPaintingProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame, bool aReferenceImage)
     : nsSVGRenderingObserverProperty(aURI, aFrame, aReferenceImage) {}
 
 protected:
   virtual void OnRenderingChange() override;
 };
 
 class SVGMaskObserverList final : public nsISupports
 {
@@ -462,18 +494,18 @@ public:
 private:
   nsTHashtable<nsPtrHashKey<SVGRenderingObserver>> mObservers;
 };
 
 class SVGObserverUtils
 {
 public:
   typedef mozilla::dom::Element Element;
-  typedef nsInterfaceHashtable<nsURIHashKey, nsIMutationObserver>
-    URIObserverHashtable;
+  typedef nsInterfaceHashtable<nsRefPtrHashKey<URLAndReferrerInfo>,
+    nsIMutationObserver> URIObserverHashtable;
 
   using PaintingPropertyDescriptor =
     const mozilla::FramePropertyDescriptor<nsSVGPaintingProperty>*;
   using URIObserverHashtablePropertyDescriptor =
     const mozilla::FramePropertyDescriptor<URIObserverHashtable>*;
 
   static void DestroyFilterProperty(SVGFilterObserverListForCSSProp* aProp)
   {
@@ -651,73 +683,74 @@ public:
    */
   static void InvalidateDirectRenderingObservers(Element* aElement, uint32_t aFlags = 0);
   static void InvalidateDirectRenderingObservers(nsIFrame* aFrame, uint32_t aFlags = 0);
 
   /**
    * Get an SVGMarkerObserver for the frame, creating a fresh one if necessary
    */
   static SVGMarkerObserver *
-  GetMarkerProperty(nsIURI* aURI, nsIFrame* aFrame,
+  GetMarkerProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
     const mozilla::FramePropertyDescriptor<SVGMarkerObserver>* aProperty);
   /**
    * Get an SVGTextPathObserver for the frame, creating a fresh one if necessary
    */
   static SVGTextPathObserver *
-  GetTextPathProperty(nsIURI* aURI, nsIFrame* aFrame,
+  GetTextPathProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
     const mozilla::FramePropertyDescriptor<SVGTextPathObserver>* aProperty);
   /**
    * Get an nsSVGPaintingProperty for the frame, creating a fresh one if necessary
    */
   static nsSVGPaintingProperty*
-  GetPaintingProperty(nsIURI* aURI, nsIFrame* aFrame,
+  GetPaintingProperty(URLAndReferrerInfo* aURI, nsIFrame* aFrame,
       const mozilla::FramePropertyDescriptor<nsSVGPaintingProperty>* aProperty);
   /**
    * Get an nsSVGPaintingProperty for the frame for that URI, creating a fresh
    * one if necessary
    */
   static nsSVGPaintingProperty*
-  GetPaintingPropertyForURI(nsIURI* aURI, nsIFrame* aFrame,
+  GetPaintingPropertyForURI(URLAndReferrerInfo* aURI,
+                            nsIFrame* aFrame,
                             URIObserverHashtablePropertyDescriptor aProp);
 
   /**
    * A helper function to resolve marker's URL.
    */
-  static already_AddRefed<nsIURI>
+  static already_AddRefed<URLAndReferrerInfo>
   GetMarkerURI(nsIFrame* aFrame,
                RefPtr<mozilla::css::URLValue> nsStyleSVG::* aMarker);
 
   /**
    * A helper function to resolve clip-path URL.
    */
-  static already_AddRefed<nsIURI>
+  static already_AddRefed<URLAndReferrerInfo>
   GetClipPathURI(nsIFrame* aFrame);
 
   /**
    * A helper function to resolve filter URL.
    */
-  static already_AddRefed<nsIURI>
+  static already_AddRefed<URLAndReferrerInfo>
   GetFilterURI(nsIFrame* aFrame, uint32_t aIndex);
 
   /**
    * A helper function to resolve filter URL.
    */
-  static already_AddRefed<nsIURI>
+  static already_AddRefed<URLAndReferrerInfo>
   GetFilterURI(nsIFrame* aFrame, const nsStyleFilter& aFilter);
 
   /**
    * A helper function to resolve paint-server URL.
    */
-  static already_AddRefed<nsIURI>
+  static already_AddRefed<URLAndReferrerInfo>
   GetPaintURI(nsIFrame* aFrame, nsStyleSVGPaint nsStyleSVG::* aPaint);
 
   /**
    * A helper function to resolve SVG mask URL.
    */
-  static already_AddRefed<nsIURI>
+  static already_AddRefed<URLAndReferrerInfo>
   GetMaskURI(nsIFrame* aFrame, uint32_t aIndex);
 
   /**
    * Return a baseURL for resolving a local-ref URL.
    *
    * @param aContent an element which uses a local-ref property. Here are some
    *                 examples:
    *                   <rect fill=url(#foo)>
--- a/layout/svg/SVGTextFrame.cpp
+++ b/layout/svg/SVGTextFrame.cpp
@@ -5005,18 +5005,25 @@ SVGTextFrame::GetTextPathGeometryElement
       return nullptr; // no URL
     }
 
     nsCOMPtr<nsIURI> targetURI;
     nsCOMPtr<nsIURI> base = content->GetBaseURI();
     nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI), href,
                                               content->GetUncomposedDoc(), base);
 
+    // There's no clear refererer policy spec about non-CSS SVG resource references
+    // Bug 1415044 to investigate which referrer we should use
+    RefPtr<URLAndReferrerInfo> target =
+      new URLAndReferrerInfo(targetURI,
+                             mContent->OwnerDoc()->GetDocumentURI(),
+                             mContent->OwnerDoc()->GetReferrerPolicy());
+
     property = SVGObserverUtils::GetTextPathProperty(
-      targetURI,
+      target,
       aTextPathFrame,
       SVGObserverUtils::HrefAsTextPathProperty());
     if (!property)
       return nullptr;
   }
 
   Element* element = property->GetReferencedElement();
   return (element && element->IsNodeOfType(nsINode::eSHAPE)) ?
--- a/layout/svg/nsSVGFilterFrame.cpp
+++ b/layout/svg/nsSVGFilterFrame.cpp
@@ -138,19 +138,24 @@ nsSVGFilterFrame::GetReferencedFilter()
     }
 
     // Convert href to an nsIURI
     nsCOMPtr<nsIURI> targetURI;
     nsCOMPtr<nsIURI> base = mContent->GetBaseURI();
     nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI), href,
                                               mContent->GetUncomposedDoc(), base);
 
-    property =
-      SVGObserverUtils::GetPaintingProperty(targetURI, this,
-                          SVGObserverUtils::HrefAsPaintingProperty());
+    // There's no clear refererer policy spec about non-CSS SVG resource references
+    // Bug 1415044 to investigate which referrer we should use
+    RefPtr<URLAndReferrerInfo> target =
+      new URLAndReferrerInfo(targetURI,
+                             mContent->OwnerDoc()->GetDocumentURI(),
+                             mContent->OwnerDoc()->GetReferrerPolicy());
+    property = SVGObserverUtils::GetPaintingProperty(target, this,
+      SVGObserverUtils::HrefAsPaintingProperty());
     if (!property)
       return nullptr;
   }
 
   nsIFrame *result = property->GetReferencedFrame();
   if (!result)
     return nullptr;
 
--- a/layout/svg/nsSVGFilterInstance.cpp
+++ b/layout/svg/nsSVGFilterInstance.cpp
@@ -124,29 +124,37 @@ nsSVGFilterInstance::GetFilterFrame(nsIF
   // Get the target element to use as a point of reference for looking up the
   // filter element.
   if (!mTargetContent) {
     return nullptr;
   }
 
   // aTargetFrame can be null if this filter belongs to a
   // CanvasRenderingContext2D.
-  nsCOMPtr<nsIURI> url = aTargetFrame
-    ? SVGObserverUtils::GetFilterURI(aTargetFrame, mFilter)
-    : mFilter.GetURL()->ResolveLocalRef(mTargetContent);
+  nsCOMPtr<nsIURI> url;
+  if(aTargetFrame) {
+    RefPtr<URLAndReferrerInfo> urlExtraReferrer =
+      SVGObserverUtils::GetFilterURI(aTargetFrame, mFilter);
+    url = urlExtraReferrer->GetURI();
+  } else {
+    url = mFilter.GetURL()->ResolveLocalRef(mTargetContent);
+  }
 
   if (!url) {
     MOZ_ASSERT_UNREACHABLE("an nsStyleFilter of type URL should have a non-null URL");
     return nullptr;
   }
 
   // Look up the filter element by URL.
   IDTracker filterElement;
   bool watch = false;
-  filterElement.Reset(mTargetContent, url, watch);
+  filterElement.Reset(mTargetContent, url,
+                      mFilter.GetURL()->mExtraData->GetReferrer(),
+                      mFilter.GetURL()->mExtraData->GetReferrerPolicy(),
+                      watch);
   Element* element = filterElement.get();
   if (!element) {
     // The URL points to no element.
     return nullptr;
   }
 
   // Get the frame of the filter element.
   nsIFrame* frame = element->GetPrimaryFrame();
--- a/layout/svg/nsSVGGradientFrame.cpp
+++ b/layout/svg/nsSVGGradientFrame.cpp
@@ -365,19 +365,25 @@ nsSVGGradientFrame::GetReferencedGradien
     }
 
     // Convert href to an nsIURI
     nsCOMPtr<nsIURI> targetURI;
     nsCOMPtr<nsIURI> base = mContent->GetBaseURI();
     nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI), href,
                                               mContent->GetUncomposedDoc(), base);
 
-    property =
-      SVGObserverUtils::GetPaintingProperty(targetURI, this,
-                          SVGObserverUtils::HrefAsPaintingProperty());
+    // There's no clear refererer policy spec about non-CSS SVG resource references
+    // Bug 1415044 to investigate which referrer we should use
+    RefPtr<URLAndReferrerInfo> target =
+      new URLAndReferrerInfo(targetURI,
+                             mContent->OwnerDoc()->GetDocumentURI(),
+                             mContent->OwnerDoc()->GetReferrerPolicy());
+
+    property = SVGObserverUtils::GetPaintingProperty(target, this,
+      SVGObserverUtils::HrefAsPaintingProperty());
     if (!property)
       return nullptr;
   }
 
   nsIFrame *result = property->GetReferencedFrame();
   if (!result)
     return nullptr;
 
--- a/layout/svg/nsSVGPatternFrame.cpp
+++ b/layout/svg/nsSVGPatternFrame.cpp
@@ -599,19 +599,25 @@ nsSVGPatternFrame::GetReferencedPattern(
     }
 
     // Convert href to an nsIURI
     nsCOMPtr<nsIURI> targetURI;
     nsCOMPtr<nsIURI> base = mContent->GetBaseURI();
     nsContentUtils::NewURIWithDocumentCharset(getter_AddRefs(targetURI), href,
                                               mContent->GetUncomposedDoc(), base);
 
-    property =
-      SVGObserverUtils::GetPaintingProperty(targetURI, this,
-                          SVGObserverUtils::HrefAsPaintingProperty());
+    // There's no clear refererer policy spec about non-CSS SVG resource references
+    // Bug 1415044 to investigate which referrer we should use
+    RefPtr<URLAndReferrerInfo> target =
+      new URLAndReferrerInfo(targetURI,
+                             mContent->OwnerDoc()->GetDocumentURI(),
+                             mContent->OwnerDoc()->GetReferrerPolicy());
+
+    property = SVGObserverUtils::GetPaintingProperty(target, this,
+      SVGObserverUtils::HrefAsPaintingProperty());
     if (!property)
       return nullptr;
   }
 
   nsIFrame *result = property->GetReferencedFrame();
   if (!result)
     return nullptr;
 
--- a/mobile/android/base/java/org/mozilla/gecko/TelemetryContract.java
+++ b/mobile/android/base/java/org/mozilla/gecko/TelemetryContract.java
@@ -102,16 +102,19 @@ public interface TelemetryContract {
         UNPIN("unpin.1"),
 
         // Stop holding a resource (reader, bookmark, etc) for viewing later.
         UNSAVE("unsave.1"),
 
         // When the user performs actions on the in-content network error page.
         NETERROR("neterror.1"),
 
+        // User actions related to a Progressive Web Application
+        PWA("pwa.1"),
+
         // VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING.
         _TEST1("_test_event_1.1"),
         _TEST2("_test_event_2.1"),
         _TEST3("_test_event_3.1"),
         _TEST4("_test_event_4.1"),
         ;
 
         private final String string;
--- a/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
@@ -24,16 +24,18 @@ import android.widget.Toast;
 import org.mozilla.gecko.ActivityHandlerHelper;
 import org.mozilla.gecko.AppConstants;
 import org.mozilla.gecko.BrowserApp;
 import org.mozilla.gecko.DoorHangerPopup;
 import org.mozilla.gecko.FormAssistPopup;
 import org.mozilla.gecko.GeckoApplication;
 import org.mozilla.gecko.GeckoScreenOrientation;
 import org.mozilla.gecko.R;
+import org.mozilla.gecko.Telemetry;
+import org.mozilla.gecko.TelemetryContract;
 import org.mozilla.gecko.customtabs.CustomTabsActivity;
 import org.mozilla.gecko.permissions.Permissions;
 import org.mozilla.gecko.prompts.PromptService;
 import org.mozilla.gecko.text.TextSelection;
 import org.mozilla.gecko.util.ActivityUtils;
 import org.mozilla.gecko.util.ColorUtil;
 import org.mozilla.gecko.widget.ActionModePresenter;
 import org.mozilla.geckoview.GeckoResult;
@@ -81,16 +83,18 @@ public class WebAppActivity extends AppC
             // annoying habit of never updating its stored intent after our initial creation,
             // even if we've been subsequently started with a new intent.
 
             // This below is needed if we should ever decide to store a custom class as intent extra.
             savedInstanceState.setClassLoader(getClass().getClassLoader());
 
             Intent lastLaunchIntent = savedInstanceState.getParcelable(SAVED_INTENT);
             setIntent(lastLaunchIntent);
+        } else {
+            Telemetry.sendUIEvent(TelemetryContract.Event.PWA, TelemetryContract.Method.HOMESCREEN);
         }
 
         super.onCreate(savedInstanceState);
         setContentView(R.layout.webapp_activity);
         mGeckoView = (GeckoView) findViewById(R.id.pwa_gecko_view);
 
         final GeckoSessionSettings settings = new GeckoSessionSettings();
         settings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, false);
--- a/mobile/android/docs/uitelemetry.rst
+++ b/mobile/android/docs/uitelemetry.rst
@@ -172,16 +172,19 @@ Events
 
 ``pin.1``, ``unpin.1``
   Sent when the user pinned or unpinned a top site.
 
 ``policynotification.success.1:true``
   Sent when a user has accepted the data notification policy. Can be ``false``
   instead of ``true`` if an error occurs.
 
+``pwa.1``
+  When the user interacts with a Progressive Web Application
+
 ``sanitize.1``
   Sent when the user chooses to clear private data.
 
 ``save.1``, ``unsave.1``
   Saving or unsaving a resource (reader, bookmark, etc.) for viewing later.
 
 ``search.1``
   Sent when the user performs a search. Currently used in the search activity.
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -5896,21 +5896,16 @@ pref("browser.fastblock.limit", 0);
 
 // Enable clipboard readText() and writeText() by default
 pref("dom.events.asyncClipboard", true);
 // Disable clipboard read() and write() by default
 pref("dom.events.asyncClipboard.dataTransfer", false);
 // Should only be enabled in tests
 pref("dom.events.testing.asyncClipboard", false);
 
-// Enable to correctly draw CSD window headerbar
-#if defined(MOZ_WIDGET_GTK)
-pref("mozilla.widget.use-argb-visuals", false);
-#endif
-
 #ifdef NIGHTLY_BUILD
 // Disable moz* APIs in DataTransfer
 pref("dom.datatransfer.mozAtAPIs", false);
 #else
 pref("dom.datatransfer.mozAtAPIs", true);
 #endif
 
 // Whether or not Prio is supported on this platform.
--- a/parser/htmlparser/nsExpatDriver.cpp
+++ b/parser/htmlparser/nsExpatDriver.cpp
@@ -528,17 +528,17 @@ nsExpatDriver::HandleEndDoctypeDecl()
                "Need to add back support for catalog style sheets");
 
     // Note: mInternalSubset already doesn't include the [] around it.
     nsresult rv = mSink->HandleDoctypeDecl(mInternalSubset, mDoctypeName,
                                            mSystemID, mPublicID, data);
     MaybeStopParser(rv);
   }
   
-  mInternalSubset.SetCapacity(0);
+  mInternalSubset.Truncate();
 
   return NS_OK;
 }
 
 static nsresult
 ExternalDTDStreamReaderFunc(nsIUnicharInputStream* aIn,
                             void* aClosure,
                             const char16_t* aFromSegment,
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1169,9 +1169,9 @@ static const TransportSecurityPreload kP
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
 // Pinning Preload List Length = 487;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1545307066674000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1545652781713000);
--- a/security/manager/ssl/nsSTSPreloadList.inc
+++ b/security/manager/ssl/nsSTSPreloadList.inc
@@ -3,17 +3,17 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /*****************************************************************************/
 /* This is an automatically generated file. If you're not                    */
 /* nsSiteSecurityService.cpp, you shouldn't be #including it.                */
 /*****************************************************************************/
 
 #include <stdint.h>
-const PRTime gPreloadListExpirationTime = INT64_C(1547726262660000);
+const PRTime gPreloadListExpirationTime = INT64_C(1548071977321000);
 %%
 0-1.party, 1
 00100010.net, 1
 0010100.net, 1
 00120012.net, 1
 00130013.net, 1
 00140014.net, 1
 00150015.net, 1
@@ -57,17 +57,16 @@ 02327.net, 1
 02375.net, 1
 023sec.com, 1
 02607.com, 1
 026122.com, 1
 02638.net, 1
 029inno.com, 1
 02smh.com, 1
 03-09-2016.wedding, 1
-0311buy.cn, 1
 03170317.com, 1
 0391315.com, 1
 046569.com, 1
 04sun.com, 1
 050.ca, 1
 050media.nl, 1
 0511315.net, 1
 0513c.com, 1
@@ -149,17 +148,17 @@ 0xee.eu, 1
 0xf00.ch, 1
 0xfc.de, 1
 0xn.de, 1
 0yen.org, 1
 1-2-3bounce.co.uk, 1
 100-downloads.com, 1
 10000v.ru, 1
 1000minds.com, 1
-1000serien.com, 0
+1000serien.com, 1
 1001.best, 1
 1001carats.fr, 1
 1001firms.com, 1
 1001kartini.com, 1
 1001kerstpakketten.com, 0
 1001mv.com, 1
 10086.nl, 1
 10086.ru, 1
@@ -213,16 +212,17 @@ 123123q.com, 1
 123123qq.com, 1
 123apps.net, 1
 123bearing.co.uk, 1
 123bearing.com, 1
 123bearing.eu, 1
 123comparer.fr, 0
 123djdrop.com, 1
 123midterm.com, 1
+123movies.fyi, 1
 123opstalverzekeringen.nl, 1
 123pay.ir, 0
 123plons.nl, 1
 123roulement.be, 1
 123roulement.com, 1
 123termpapers.com, 1
 123test.com, 1
 123test.nl, 1
@@ -273,16 +273,17 @@ 15-10.com, 1
 1511774230.rsc.cdn77.org, 1
 152433.com, 1
 154233.com, 1
 154633.com, 1
 154933.com, 1
 156433.com, 1
 1590284872.rsc.cdn77.org, 1
 1600esplanade.com, 1
+160887.com, 1
 16164f.com, 1
 1644091933.rsc.cdn77.org, 1
 1661237.com, 1
 166166.com, 1
 168bet9.com, 1
 168bo9.com, 1
 168bo9.net, 1
 168esb.com, 1
@@ -343,16 +344,17 @@ 1on1on1.de, 1
 1on1on1.tv, 1
 1p.ro, 0
 1panorama.ru, 1
 1para.net, 1
 1password.ca, 1
 1password.com, 1
 1password.eu, 1
 1px.tv, 1
+1q2w.nl, 1
 1q365a.com, 1
 1r.is, 1
 1rs.nl, 1
 1salland.nl, 1
 1scope.com, 1
 1se2or3.com, 1
 1st-bounce.co.uk, 1
 1st-community.de, 1
@@ -414,16 +416,17 @@ 24timeravis.dk, 1
 24zpravy.cz, 1
 2566335.xyz, 1
 256k.me, 1
 256pages.com, 0
 258da.com, 1
 25reinyan25.net, 1
 2600edinburgh.org, 1
 2600hq.com, 1
+260887.com, 1
 263.info, 1
 27728522.com, 1
 28-industries.com, 1
 281180.de, 1
 2858958.com, 1
 286.com, 1
 288da.com, 1
 28peaks.com, 1
@@ -481,17 +484,16 @@ 302422.com, 1
 303422.com, 1
 304122.com, 1
 304322.com, 1
 304622.com, 1
 304squadron.org, 1
 3056999.com, 1
 309422.com, 1
 30hzcollective.com, 1
-30yearmortgagerates.net, 1
 310422.com, 1
 313422.com, 1
 314022.com, 1
 314122.com, 1
 314322.com, 1
 314522.com, 1
 314553.com, 1
 314622.com, 1
@@ -682,24 +684,34 @@ 411movie.com, 1
 414553.com, 1
 41844.de, 1
 41studio.com, 1
 41where.com, 1
 420java.com, 1
 42day.info, 1
 42t.ru, 1
 439050.com, 1
+440887.com, 1
 441jj.com, 0
+442887.com, 1
+443887.com, 1
 4444yh.com, 1
+444887.com, 1
+445887.com, 1
 448da.com, 1
 44scc.com, 1
 451.ooo, 1
 4553s.com, 1
 4553vip.com, 1
+4706666.com, 1
+4716666.com, 1
+4726666.com, 1
 4736666.com, 1
+4756666.com, 1
+4786666.com, 1
 47essays.com, 1
 47tech.com, 1
 491mhz.net, 1
 49889.com, 1
 49948522.com, 1
 4997777.com, 1
 49dollaridahoregisteredagent.com, 1
 4baby.com.br, 1
@@ -708,33 +720,31 @@ 4d2.xyz, 1
 4dbygg.se, 1
 4decor.org, 1
 4everproxy.com, 1
 4eyes.ch, 1
 4fit.ro, 1
 4flex.info, 1
 4freepress.com, 1
 4g-server.eu, 0
-4garage.com.br, 1
 4host.ch, 1
 4kprojektory.cz, 1
 4loc.us, 1
 4mm.org, 1
 4plebs.moe, 1
 4project.co.il, 1
 4share.tv, 1
 4sics.se, 1
 4th-ave-studio.com, 1
 4thdc.com, 1
 4u.services, 1
 4u2ore.net, 1
 4vector.com, 1
 4vf.de, 1
 4web-hosting.com, 1
-4winds.pt, 1
 4x.fi, 1
 4x4.lk, 1
 4xlabs.co, 1
 50.pe, 1
 5000yz.com, 1
 500103.com, 1
 500108.com, 1
 500a500.com, 1
@@ -804,16 +814,19 @@ 52sykb.com, 1
 5310899.com, 1
 5310899.net, 1
 531422.com, 1
 534122.com, 1
 534622.com, 1
 534922.com, 1
 5364.com, 1
 536422.com, 1
+5364b.com, 1
+5364c.com, 1
+5364d.com, 1
 53ningen.com, 1
 540922.com, 1
 541022.com, 1
 541622.com, 1
 541722.com, 1
 541922.com, 1
 545922.com, 1
 546802.com, 1
@@ -947,16 +960,17 @@ 6616fc.com, 1
 66205.net, 1
 6633445.com, 1
 6652566.com, 1
 6660111.ru, 1
 6664553.com, 1
 666668722.com, 1
 6666yh.com, 1
 666omg.com, 1
+6677.us, 1
 668da.com, 1
 66bwf.com, 1
 670422.com, 1
 671422.com, 1
 672422.com, 1
 673422.com, 1
 676422.com, 1
 679422.com, 1
@@ -1065,27 +1079,27 @@ 8522usa.com, 1
 8560.be, 1
 86286286.com, 1
 86499.com, 1
 8649955.com, 1
 8649966.com, 1
 8649977.com, 1
 8688fc.com, 1
 86metro.ru, 1
-8722.am, 1
 8722am.com, 1
 8722cn.com, 1
 8722hk.com, 1
 8722ph.com, 1
 8722tw.com, 1
 8722usa.com, 1
 87577.com, 1
 8818k3.com, 1
 8833445.com, 1
 88522am.com, 1
+887.ag, 1
 8884553.com, 1
 8887999.com, 0
 888888722.com, 1
 88889822.com, 1
 8888esb.com, 1
 8888yh.com, 1
 888bwf.com, 1
 888msc.vip, 1
@@ -1237,17 +1251,16 @@ a3.pm, 1
 a4sound.com, 1
 a632079.me, 1
 a7m2.me, 1
 a8q.org, 1
 aa-tour.ru, 1
 aa43d.cn, 1
 aa6688.net, 1
 aaapl.com, 1
-aabanet.com.br, 1
 aaben-bank.dk, 1
 aabenbank.dk, 1
 aacfree.com, 1
 aagetransport.no, 1
 aalalbayt.com, 1
 aalalbayt.net, 1
 aalstmotors-usedcars.be, 1
 aaltocapital.com, 1
@@ -1377,17 +1390,17 @@ aboutmyproperty.ca, 1
 aboutspice.com, 1
 aboutyou.at, 1
 aboutyou.be, 1
 aboutyou.ch, 1
 aboutyou.de, 1
 aboutyou.nl, 1
 abox-kb.com, 1
 abpis.hr, 1
-abrakidabra.com.br, 1
+abracadabra.co.jp, 0
 abraxan.pro, 1
 abrilect.com, 1
 abristolgeek.co.uk, 1
 abseits.org, 1
 absolem.cc, 1
 absolutedouble.co.uk, 1
 absolutehaitian.com, 1
 absolutehosting.co.za, 1
@@ -1413,17 +1426,16 @@ ac-epmservices.com, 1
 ac-town.com, 1
 ac0g.dyndns.org, 1
 aca-creative.co.uk, 1
 academicexperts.us, 1
 academichealthscience.net, 1
 academie-de-police.ch, 1
 academytv.com.au, 1
 acaeum.com, 1
-acampar.com.br, 1
 acaonegocios.com.br, 1
 acaptureservices.com, 1
 acara-yoga.de, 1
 acareer.in, 1
 acat.io, 1
 acbrussels-used.be, 1
 accadoro.it, 1
 accbay.com, 1
@@ -1463,17 +1475,16 @@ acecolleges.edu.au, 1
 acedog.co, 1
 aceinflatables.com, 1
 aceinstituteonline.com, 1
 acelpb.com, 1
 acem.org.au, 1
 acemobileforce.com, 1
 acemypaper.com, 1
 acen.eu, 1
-acendealuz.com.br, 1
 acerentalandsales.com, 1
 acerislaw.com, 1
 acessoeducacao.com, 1
 acevik.de, 1
 acfo.org, 1
 acg.mn, 1
 acg.sb, 0
 acg.social, 1
@@ -1588,28 +1599,28 @@ ad-notam.asia, 1
 ad-notam.ch, 1
 ad-notam.co.uk, 1
 ad-notam.com, 1
 ad-notam.de, 1
 ad-notam.fr, 1
 ad-notam.it, 1
 ad-notam.pt, 1
 ad-notam.us, 1
+ad13.in, 1
 ada.gov, 1
 adalis.org, 1
 adam-ant.co.uk, 1
 adam-kostecki.de, 1
 adam-wilson.me, 1
 adamas-magicus.ru, 1
 adambalogh.net, 1
 adambyers.com, 1
 adamcoffee.net, 1
 adamdixon.co.uk, 1
 adamek.online, 1
-adamfontenot.com, 1
 adamh.us, 1
 adamjoycegames.co.uk, 1
 adamkaminski.com, 1
 adamkostecki.de, 1
 adamoutler.com, 1
 adamradocz.com, 1
 adams.dk, 1
 adamsbouncycastles.co.uk, 1
@@ -1805,17 +1816,16 @@ aereco.com, 1
 aerelon.de, 0
 aergia.eu, 1
 aerisnetwork.com, 1
 aero-pioneer.com, 1
 aerobasegroup.com, 1
 aerobotz.com, 1
 aerosimexperience.com, 1
 aertel.ie, 1
-aessencia.com.br, 1
 aestheticdr.org, 1
 aesthetx.com, 1
 aestore.by, 1
 aesym.de, 1
 aeternus.tech, 1
 aetherc0r3.eu, 1
 aethonan.pro, 1
 aetoscg.com, 1
@@ -1834,17 +1844,16 @@ afcurgentcarelyndhurst.com, 1
 affichagepub3.com, 1
 affiliatefeatures.com, 1
 affiliateroyale.com, 1
 affiliatetest.azurewebsites.net, 1
 affilie.de, 1
 affily.io, 1
 affinitysync.com, 1
 affissioni.roma.it, 1
-affittacamere.roma.it, 1
 affordableazdivorce.com, 1
 affordableblindsexpress.com, 1
 affordableenergyadvocates.com, 1
 affordablehealthquotesforyou.com, 1
 affordablekilimanjaro.com, 1
 affordablemudjacking.com, 1
 affordablepapers.com, 1
 affordableracingparts.com.au, 1
@@ -2105,17 +2114,16 @@ airbnb.pl, 1
 airbnb.pt, 1
 airbnb.ru, 1
 airbnb.se, 1
 airbnb.tools, 1
 airbnbopen.com, 1
 airborne-inflatables.co.uk, 1
 airclass.com, 1
 aircomms.com, 1
-airconssandton.co.za, 1
 airductclean.com, 0
 airductcleaning-fresno.com, 1
 airductcleaninggrandprairie.com, 1
 airductcleaningirving.com, 1
 airdur.eu, 1
 aireaseleaks.org, 1
 airedaleterrier.com.br, 1
 airetvie.com, 1
@@ -2275,17 +2283,16 @@ alca31.com, 1
 alcatelonetouch.us, 1
 alcatraz.online, 1
 alchimic.ch, 1
 alcnutrition.com, 1
 alco-united.com, 1
 alcoholapi.com, 1
 alcorao.org, 1
 aldiabcs.com, 1
-aldien.com.br, 1
 aldo-vandini.de, 1
 aldomedia.com, 1
 aldorr.net, 0
 aldous-huxley.com, 1
 aldred.cloud, 1
 aleax.me, 1
 alecpap.com, 1
 alecpapierniak.com, 1
@@ -2298,17 +2305,16 @@ alela.fr, 1
 aleph.land, 1
 alerbon.net, 1
 alertboxx.com, 1
 alertonline.nl, 1
 alerts.sg, 1
 alertwire.com, 1
 alesia-formation.fr, 1
 alessandro.pw, 1
-alessandroonline.com.br, 1
 alessandroz.ddns.net, 1
 aletm.it, 1
 alex-ross.co.uk, 1
 alex97000.de, 1
 alexander-beck.eu, 1
 alexanderb.info, 1
 alexandermuetzel.de, 1
 alexanderneng.de, 1
@@ -2359,17 +2365,16 @@ alextaffe.com, 1
 alexthayne.co.uk, 1
 alextjam.es, 1
 alextsang.net, 1
 alexvdveen.nl, 1
 alexvetter.de, 1
 alexwardweb.com, 1
 alexyang.me, 1
 alfa-tech.su, 1
-alfaperfumes.com.br, 1
 alfaponny.se, 1
 alfirous.com, 1
 alftrain.com, 1
 algarmatic-automatismos.pt, 1
 alghanimcatering.com, 1
 algoaware.eu, 1
 algoentremanos.com, 1
 algofactory.de, 1
@@ -2561,17 +2566,16 @@ alt.org, 1
 altahrim.net, 1
 altapina.com, 1
 altaplana.be, 1
 altbinaries.com, 1
 altedirect.com, 1
 alter-news.fr, 1
 alterbaum.net, 1
 altered.network, 1
-alternador.com.br, 1
 alternative.bike, 1
 alternativebit.fr, 1
 alternativedev.ca, 1
 alternativet.party, 1
 alterspalter.de, 1
 altes-sportamt.de, 1
 altesses.eu, 1
 altestore.com, 1
@@ -2830,16 +2834,17 @@ andrefaber.nl, 1
 andrehansen.de, 1
 andrei-coman.com, 1
 andrei-nakov.org, 1
 andrejbenz.com, 1
 andreoliveira.io, 1
 andrepicard.de, 1
 andrespaz.com, 1
 andreundnina.de, 1
+andrew.fi, 1
 andrew.london, 1
 andrewbdesign.com, 1
 andrewdaws.co, 1
 andrewdaws.info, 1
 andrewdaws.io, 1
 andrewdaws.me, 1
 andrewdaws.tv, 1
 andrewensley.com, 1
@@ -2870,17 +2875,17 @@ androidservicetool.com, 1
 androidsis.com, 1
 androidtamer.com, 1
 androidtelefony.cz, 1
 androidzone.me, 1
 andromedacenter.com, 1
 androticsdirect.com, 1
 andruvision.cz, 1
 andsat.org, 1
-andschwa.com, 0
+andschwa.com, 1
 andso.cn, 1
 anduril.de, 1
 anduril.eu, 1
 andybrett.com, 1
 andyc.cc, 1
 andycloud.dynu.net, 1
 andycrockett.io, 1
 andymoore.info, 1
@@ -3064,17 +3069,16 @@ anteprima.info, 1
 anthedesign.fr, 1
 anthisis.tv, 1
 anthony-rouanet.com, 1
 anthony.codes, 1
 anthonyaires.com, 1
 anthonycarbonaro.com, 1
 anthonyfontanez.com, 1
 anthonygaidot.fr, 1
-anthonyvadala.me, 1
 anthropoid.ca, 1
 anti-bible.com, 1
 anti-radar.org, 1
 antibioticshome.com, 1
 anticapitalist.party, 0
 anticopyright.com, 1
 antiekboerderijgraafland.nl, 1
 antihype.space, 1
@@ -3099,17 +3103,16 @@ antonchen.com, 1
 antonellabb.eu, 1
 antonin.one, 1
 antonio-gartenbau.de, 1
 antonjuulnaber.dk, 1
 antons.io, 1
 antota.lt, 1
 antragsgruen.de, 1
 antraxx.ee, 1
-antroposofica.com.br, 1
 anttitenhunen.com, 1
 antyblokada.pl, 1
 anulowano.pl, 1
 anvartay.com, 1
 anwaltsindex.com, 1
 anxietyspace.com, 1
 anxiolytics.com, 1
 any.pm, 0
@@ -3142,16 +3145,17 @@ aos-llc.com, 1
 aosc.io, 0
 aosus.org, 1
 aotearoa.maori.nz, 1
 aotearoaleaks.org, 1
 ap-swiss.ch, 1
 apac-tech.com, 0
 apache-portal.com, 1
 apachehaus.de, 0
+apachelounge.com, 1
 apadvantage.com, 1
 aparaatti.org, 1
 apartmanicg.me, 1
 apartment-in-rijeka.com, 1
 apartment-natik.fr, 1
 apartmentkroatien.at, 1
 apartmentregister.com.au, 1
 apbox.de, 1
@@ -3277,17 +3281,16 @@ apptomics.com, 1
 apptoutou.com, 1
 appuals.com, 1
 appui-de-fenetre.fr, 1
 appveyor.com, 1
 appzoojoo.be, 1
 apratimsaha.com, 1
 aprefix.com, 1
 apretatuercas.es, 1
-aprogend.com.br, 1
 aproposcomputing.com, 1
 aprovpn.com, 1
 aprr.org, 1
 aprsdroid.org, 1
 aprz.de, 1
 apsa.paris, 1
 apstudynotes.org, 1
 aptitude9.com, 1
@@ -3324,21 +3327,19 @@ aquitroc.com, 1
 ar-informatique.ch, 1
 arab.dating, 1
 arabicxz.com, 1
 arabsexi.info, 1
 arachina.com, 1
 arados.de, 1
 arai21.net, 1
 araleeniken.com, 1
-aramado.com, 1
 aramido.de, 1
 aranel.me, 1
 aranycsillag.net, 1
-araraexpress.com.br, 1
 araratour.com, 1
 araro.ch, 1
 araseifudousan.com, 1
 arawaza.biz, 1
 arawaza.com, 0
 arawaza.info, 1
 araxis.com, 1
 arbeitsch.eu, 1
@@ -3389,41 +3390,40 @@ arenlor.info, 1
 arenns.com, 1
 arent.kz, 1
 arenzanaphotography.com, 1
 areqgaming.com, 1
 ares-trading.de, 1
 arethsu.se, 1
 arfad.ch, 1
 arg.zone, 1
-argama-nature.com, 1
 arganaderm.ch, 1
 argb.de, 1
 argekultur.at, 1
 argh.io, 1
 argot.com, 1
 argovpay.com, 1
 ariaartgallery.com, 1
 ariadermspa.com, 1
 arian.io, 1
 arias.re, 1
 ariba.info, 1
+ariege-pyrenees.net, 1
 arieswdd.com, 1
 arifburhan.online, 1
 arifp.me, 1
 arigato-java.download, 1
 arijitdg.net, 1
 arikar.eu, 1
 arima.co.ke, 1
 arimarie.com, 1
 arinde.ee, 1
 arinflatablefun.co.uk, 1
 arise19.com, 1
 arisevendor.net, 1
-aristilabs.com, 1
 aristocrates.co, 1
 aritec-la.com, 1
 arivo.com.br, 1
 arizer.com, 1
 arizonaautomobileclub.com, 1
 arizonabondedtitle.com, 1
 arjandejong.eu, 1
 arjanvaartjes.net, 1
@@ -3437,23 +3437,21 @@ arknodejs.com, 1
 arksan.com.tr, 1
 arkulagunak.com, 0
 arlatools.com, 1
 arlen.tv, 1
 arlenarmageddon.com, 1
 arlet.click, 1
 arletalibrary.com, 1
 arlingtonwine.net, 1
-arm-host.com, 1
 armadaquadrat.com, 1
 armandsdiscount.com, 1
 armanozak.com, 1
 armansfinejewellery.com, 1
 armansfinejewellery.com.au, 1
-armarinhovirtual.com.br, 1
 armazemdaminiatura.com.br, 1
 armbrust.me, 1
 armedpoet.com, 1
 armeni-jewellery.gr, 1
 armenians.online, 1
 armil.it, 1
 arminc.tk, 1
 arminpech.de, 1
@@ -3521,17 +3519,16 @@ arteaga.eu, 1
 arteaga.me, 1
 arteaga.tech, 1
 arteaga.uk, 1
 arteaga.xyz, 1
 artecat.ch, 1
 artedellavetrina.it, 1
 artedona.com, 1
 artefakt.es, 1
-artefeita.com.br, 1
 arteinstudio.it, 1
 artelt.com, 1
 artemis.re, 1
 arterienundvenen.ch, 1
 arteshow.ch, 1
 artetrama.com, 0
 artforum.sk, 1
 artfullyelegant.com, 1
@@ -3624,17 +3621,16 @@ asge-handel.de, 1
 ashd1.goip.de, 1
 ashd2.goip.de, 1
 ashd3.goip.de, 1
 ashleakunowski.com, 1
 ashleyadum.com, 1
 ashleyedisonuk.com, 1
 ashleyfoley.photography, 1
 ashlocklawgroup.com, 1
-ashmportfolio.com, 1
 ashutoshmishra.org, 1
 asia-gazette.com, 1
 asia-global-risk.com, 1
 asia.dating, 1
 asiaheavens.com, 1
 asialeonding.at, 1
 asian-industry.eu, 1
 asianodor.com, 1
@@ -3732,24 +3728,22 @@ asucrews.com, 1
 asuhe.cc, 1
 asuhe.xyz, 1
 asuka.io, 1
 asun.co, 1
 asurepay.cc, 0
 asustreiber.de, 1
 asvsa.ch, 1
 asws.nl, 1
-async.be, 0
 asystent-dzierzawy.pl, 1
 at-one.ca, 1
 at.search.yahoo.com, 0
 at1.co, 1
 ataber.pw, 1
 atac.no, 1
-atacadocervejeiro.com.br, 1
 atacadodesandalias.com.br, 1
 atacadooptico.com.br, 1
 ataton.ch, 1
 atc.io, 1
 atchleyjazz.com, 1
 atchleyjazz.org, 1
 atchleylab.org, 1
 atcom.cl, 1
@@ -3823,17 +3817,16 @@ ato4sound.com, 1
 atolm.net, 1
 atom-china.org, 1
 atom.solutions, 1
 atom86.net, 1
 atombase.org, 1
 atomic-bounce.com, 1
 atomicbounce.co.uk, 1
 atomism.com, 1
-atorcidabrasileira.com.br, 1
 atplonline.co, 1
 atpnutrition.com, 1
 atracaosexshop.com.br, 1
 atraining.ru, 1
 atraverscugy.ch, 1
 atrevillot.com, 1
 atrinik.org, 1
 atsoftware.de, 1
@@ -3894,17 +3887,17 @@ auditsquare.com, 1
 auerbach-verlag.de, 1
 auf-feindgebiet.de, 1
 aufmerksamkeitsstudie.com, 1
 augaware.org, 1
 augen-seite.de, 1
 augenblicke-blog.de, 1
 augiero.it, 1
 augix.net, 1
-augmentable.de, 1
+augmentable.de, 0
 august-don.site, 1
 august.black, 1
 augustian-life.cz, 1
 augustiner-kantorei-erfurt.de, 1
 augustiner-kantorei.de, 1
 aukaraoke.su, 1
 aulaschrank.gq, 1
 aulo.in, 0
@@ -4412,17 +4405,16 @@ bahnbonus-praemienwelt.de, 1
 bahnenimbild.de, 1
 bahnenimbild.eu, 1
 bahnhelden.de, 1
 bahninrotweissrot.at, 1
 bahnmagazine.de, 1
 baiduo.com, 1
 baifubao.com, 1
 baiker.info, 1
-bailakomigo.com.br, 1
 baildonbouncycastles.co.uk, 1
 baildonhottubs.co.uk, 1
 baileebee.com, 1
 bairdzhang.com, 1
 baitulongbaycruises.com, 1
 baiyangliu.com, 1
 bajic.ch, 0
 baka-gamer.net, 1
@@ -4435,27 +4427,25 @@ bakermen.com, 1
 bakersafari.co, 1
 bakeup.be, 1
 bakibal.com, 1
 bakim.li, 1
 bakkerinjebuurt.be, 1
 bakongcondo.com, 1
 balade-commune.ch, 1
 baladecommune.ch, 1
-balancascia.com.br, 1
 balance7.jp, 1
 balancedbrawl.net, 1
 balancenaturalhealthclinic.ca, 1
 balboa.io, 1
 balcaonet.com.br, 1
 balconnr.com, 1
 balconsverdun.com, 1
 balia.de, 1
 balicekzdravi.cz, 1
-balidesignshop.com.br, 1
 balikonos.cz, 1
 balinese.dating, 1
 balist.es, 1
 balivillassanur.com, 1
 baliyano.com, 1
 balkonien.org, 1
 ball.holdings, 1
 ball3d.es, 1
@@ -4467,36 +4457,34 @@ ballitolocksmith.com, 1
 ballmerpeak.org, 1
 ballonsportclub-erlangen.de, 1
 ballotapi.com, 1
 ballothero.com, 1
 ballparkbuns.com, 0
 ballroom.info, 1
 balonmano.co, 1
 balslev.io, 1
+balticer.de, 1
 balticnetworks.com, 1
 bamahammer.com, 1
 bambambaby.com.br, 1
 bambooforest.nl, 1
 bamboorelay.com, 1
-bambumania.com.br, 1
 bamily.rocks, 1
 bamtoki.com, 1
 bananavapes.com, 1
 bananium.fr, 1
 banburybid.com, 1
 bancacrs.it, 1
-bancaolhares.com.br, 1
 bancobai.ao, 1
 bancoctt.pt, 1
 bancor.network, 1
 bandagastrica.es, 1
 bandally.net, 1
 bandarifamily.com, 1
-bandeira1.com.br, 1
 bandgap.io, 1
 bandiga.it, 1
 bandito.re, 1
 banes.ch, 1
 bangdream.ga, 1
 bangkok-dark-night.com, 1
 bangkok.dating, 1
 bangkokcity.de, 1
@@ -4524,17 +4512,16 @@ bankofdenton.com, 1
 bankofrealty.review, 1
 banksiaparkcottages.com.au, 1
 bankstownapartments.com.au, 1
 bankvanbreda.be, 1
 banned-bitches.tk, 1
 bannermarquees.ie, 1
 bannisbierblog.de, 1
 bannsecurity.com, 1
-banoviny.sk, 1
 banquevanbreda.be, 1
 banri.me, 1
 banter.city, 1
 bao-in.com, 1
 bao-in.net, 1
 baobeiglass.com, 1
 baodan666.com, 1
 baofengtech.com, 1
@@ -4582,17 +4569,16 @@ barpodsosnami.pl, 1
 barprive.com, 1
 barqo.co, 1
 barracuda.blog, 1
 barracuda.com.tr, 1
 barrera.io, 1
 barriofut.com, 1
 barryswebdesign.co.uk, 1
 bars.kh.ua, 1
-barsashop.com.br, 1
 barsil.de, 1
 barslecht.com, 1
 barslecht.nl, 1
 barss.io, 1
 bart-f.com, 1
 barta.me, 1
 bartel.ws, 1
 bartelt.name, 1
@@ -4648,17 +4634,16 @@ bat909.net, 1
 bat9vip.com, 1
 bat9vip.net, 1
 batcave.tech, 1
 batch.com, 1
 batfoundry.com, 1
 bati-alu.fr, 1
 batiburrillo.net, 1
 batipresta.ch, 1
-batistareisfloresonline.com.br, 1
 batlab.ch, 1
 batolis.com, 1
 batook.org, 1
 batschu.de, 1
 batten.eu.org, 1
 batterystaple.pw, 1
 battle-game.com, 1
 battleboxx.com, 0
@@ -4788,17 +4773,16 @@ beaglesecurity.com, 1
 beagreenbean.co.uk, 1
 bealpha.pl, 1
 beamer-discount.de, 1
 beamitapp.com, 1
 beamstat.com, 1
 beanbot.party, 1
 beanjuice.me, 1
 beans-one.com, 0
-bearcosports.com.br, 1
 bearded.sexy, 1
 beardic.cn, 1
 bearingworks.com, 1
 beasel.biz, 1
 beastowner.li, 1
 beatfeld.de, 1
 beatnikbreaks.com, 1
 beatrizaebischer.ch, 1
@@ -4806,17 +4790,16 @@ beaute-eternelle.ch, 1
 beauty-hippie-schmuck.de, 1
 beauty-italy.ru, 1
 beauty24.de, 1
 beautybear.dk, 1
 beautyby.tv, 1
 beautyevent.fr, 1
 beautykat.ru, 1
 bebef.de, 1
-bebefofuxo.com.br, 1
 bebes.uno, 1
 bebest.gov, 1
 bebetrotteur.com, 1
 bebout.domains, 1
 bebout.pw, 1
 beccajoshwedding.com, 1
 beckenhamcastles.co.uk, 1
 beckerantiques.com, 1
@@ -4882,17 +4865,16 @@ beeswax-orgone.com, 1
 beetgroup.id, 1
 beethoveninlove.com, 1
 beetman.net, 1
 beeutifulparties.co.uk, 1
 beexfit.com, 1
 beezkneezcastles.co.uk, 1
 beeznest.com, 1
 befoodsafe.gov, 1
-beforesunrise.de, 1
 beframed.ch, 1
 befundonline.de, 1
 begabungsfoerderung.info, 1
 begbie.com, 1
 beginatzero.com, 1
 beginner.nl, 1
 beginwp.top, 1
 begoodny.co.il, 1
@@ -4969,17 +4951,16 @@ benchmarkmonument.com, 1
 bencorby.com, 1
 bendemaree.com, 1
 bendigoland.com.au, 1
 bendingtheending.com, 1
 bendix.co, 1
 bendyworks.com, 1
 beneathvt.com, 1
 benedict-balzer.de, 1
-benepiscinas.com.br, 1
 beneri.se, 1
 benevisim.com, 1
 benevita.bio, 1
 benevita.life, 1
 benevita.live, 1
 benevita.organic, 1
 benfairclough.com, 1
 bengalurugifts.com, 1
@@ -5119,17 +5100,16 @@ best2pay.net, 1
 best66.me, 1
 bestattungen-kammerer.de, 1
 bestattungshaus-kammerer.de, 1
 bestautoinsurance.com, 1
 bestbatteriesonline.com, 1
 bestbestbitcoin.com, 1
 bestbrakes.com, 1
 bestbridal.top, 1
-bestbyte.com.br, 1
 bestcellular.com, 0
 bestdating.today, 1
 bestellipticalmachinereview.info, 1
 bestemailmarketingsoftware.org, 1
 bestesb.com, 1
 bestesb.net, 1
 bestessaycheap.com, 1
 bestessayhelp.com, 1
@@ -5341,27 +5321,25 @@ bigbouncebouncycastles.co.uk, 1
 bigbouncetheory.co.uk, 1
 bigbounceuk.com, 1
 bigcakes.dk, 1
 bigclassaction.com, 1
 bigdinosaur.org, 1
 bigerbio.com, 1
 biggreenexchange.com, 1
 bight.ca, 1
-bigio.com.br, 1
 bigjohn.ru, 1
 biglou.com, 0
 bignumworks.com, 1
 bigshort.org, 1
 bigsisterchannel.com, 1
 bigskymontanalandforsale.com, 1
 bihub.io, 1
 biilo.com, 1
 bijoux.com.br, 1
-bijouxbrasil.com.br, 1
 bijouxcherie.com, 1
 bijuteriicualint.ro, 1
 bike-discount.de, 1
 bike-kurse.ch, 1
 bike-shack.com, 1
 bikebay.it, 1
 bikehistory.org, 1
 biker.dating, 1
@@ -5810,17 +5788,16 @@ blizora.com, 1
 blizz.news, 1
 blkbx.eu, 1
 blm.gov, 1
 blobfolio.com, 1
 block-this.com, 1
 block65.com, 1
 blockchain.com, 1
 blockchain.info, 1
-blockchainced.com, 1
 blockchaindaigakko.jp, 1
 blockchainwhiz.com, 1
 blockcheck.network, 1
 blockedyourcar.com, 1
 blockedyourcar.net, 1
 blockedyourcar.org, 1
 blockified.io, 1
 blockmetry.com, 1
@@ -5987,17 +5964,16 @@ bodrumfarm.com, 1
 bodsch.com, 1
 bodybuilding.events, 1
 bodybuildingworld.com, 1
 bodyconshop.com, 1
 bodygearguide.com, 1
 bodymusclejournal.com, 1
 bodypainter.pl, 1
 bodypainting.waw.pl, 1
-bodyweb.com.br, 1
 bodyworkbymichael.com, 1
 boeddhashop.nl, 1
 boekenlegger.nl, 1
 boem.gov, 1
 boernecancerfonden.dk, 1
 bogdancornianu.com, 1
 bogdanepureanu.ro, 1
 bogner.sh, 1
@@ -6046,17 +6022,16 @@ bondlink.com, 1
 bondoer.fr, 1
 bondpro.gov, 1
 bondskampeerder.nl, 1
 bonebunny.de, 1
 bonesserver.com, 1
 bonfi.net, 1
 bonibuty.com, 1
 bonifacius.be, 1
-bonita.com.br, 1
 bonito.pl, 1
 bonnant-associes.ch, 1
 bonnant-partners.ch, 1
 bonnebouffe.fr, 1
 bonnieradvocaten.nl, 1
 bonnsustainabilityportal.de, 1
 bonnyprints.at, 1
 bonnyprints.ch, 1
@@ -6118,17 +6093,16 @@ bopiweb.com, 1
 bopp.org, 1
 borahan.net, 1
 borchers-media.de, 1
 bordadoenpedreria.com, 1
 bordes.me, 1
 boredhackers.com, 1
 borgmestervangen.xyz, 1
 boringsmith.com, 1
-boris64.net, 1
 borisbesemer.com, 1
 borisenko.by, 1
 borisschapira.com, 1
 borja.io, 1
 born2bounce.co.uk, 1
 bornandgrazed.com, 1
 bornfiber.dk, 1
 bornhack.dk, 1
@@ -6280,18 +6254,16 @@ bourasse.fr, 1
 bourdon.fr.eu.org, 1
 bourgdepabos.com, 1
 bourhis.info, 1
 bournefun.co.uk, 1
 bourqu.in, 1
 bourse-aux-jouets.org, 0
 bourse-aux-vetements.org, 0
 bourse-puericulture.org, 0
-boutiquedecanetas.com.br, 1
-boutiquefutebol.com.br, 1
 boutiqueguenaelleverdin.com, 1
 bouw.live, 1
 bouzouks.net, 1
 bovenwebdesign.nl, 1
 bowdens.me, 1
 bowedwallcrackrepair.com, 1
 boweryandvine.com, 1
 bowlcake.fr, 1
@@ -6299,17 +6271,16 @@ bowling.com, 1
 bownty.be, 1
 bownty.co.uk, 1
 bownty.de, 1
 bownty.dk, 1
 bownty.es, 1
 bownty.fr, 1
 bownty.it, 1
 bownty.nl, 1
-bownty.pt, 1
 bowntycdn.net, 1
 boxdevigneron.fr, 1
 boxpeg.com, 1
 boxpirates.to, 1
 boxvergelijker.nl, 1
 boxview.com, 1
 boyerassoc.com, 1
 boyfriendcookbook.com, 1
@@ -6397,17 +6368,16 @@ brandtrapselfie.nl, 1
 brandweerfraneker.nl, 1
 brandweertrainingen.nl, 1
 brandweeruitgeest.nl, 1
 brank.as, 1
 branw.xyz, 1
 brasal.ma, 1
 brasalcosmetics.com, 1
 brashear.me, 1
-brasilbombas.com.br, 1
 brasildxn.com.br, 1
 brasserie-mino.fr, 1
 brasspipedreams.org, 1
 bratislava-airport-taxi.com, 1
 bratteng.me, 1
 bratteng.xyz, 1
 bratvanov.com, 1
 brau-ingenieur.de, 1
@@ -6420,17 +6390,16 @@ brave-foods.ch, 1
 brave-foods.com, 1
 brave.com, 1
 bravebaby.com.au, 1
 bravehearts.org.au, 1
 braviskindenjeugd.nl, 1
 bravisziekenhuis.nl, 1
 brazenfol.io, 1
 brazilian.dating, 1
-brazillens.com, 1
 brck.nl, 1
 brd.ro, 1
 breadandlife.org, 1
 breadofgod.org, 1
 breakingtech.it, 1
 breakpoint.at, 1
 breathedreamgo.com, 1
 breathingblanket.com, 1
@@ -6550,17 +6519,16 @@ brockmeyer.org, 1
 brodowski.cc, 1
 broersma.com, 1
 broerweb.nl, 1
 broeselei.at, 1
 brokenhands.io, 1
 brokenjoysticks.net, 1
 brokervalues.com, 1
 brompton-cocktail.com, 1
-bronetb2b.com.br, 1
 bronevichok.ru, 1
 bronwynlewis.com, 1
 broodbesteld.nl, 1
 brooke-fan.com, 1
 brookehatton.com, 1
 brookframework.org, 1
 brooklynrealestateblog.com, 1
 brookworth.com, 1
@@ -6644,17 +6612,16 @@ btc2secure.com, 1
 btcarmory.com, 1
 btcbolsa.com, 1
 btcontract.com, 1
 btcp.space, 1
 btcpop.co, 1
 btcycle.org, 1
 btio.pw, 1
 btku.org, 1
-btmstore.com.br, 1
 btnissanparts.com, 1
 btorrent.xyz, 1
 btrb.ml, 1
 btsapem.com, 1
 btserv.de, 1
 btsoft.eu, 1
 btsow.com, 1
 bttc.co.uk, 1
@@ -6684,17 +6651,16 @@ buddyworks.net, 1
 budeanu.com, 1
 buderus-family.be, 1
 budger.nl, 1
 budget.gov, 1
 budgetalk.com, 1
 budgetcastlehire.co.uk, 1
 budgetenergievriendenvoordeel.nl, 1
 budgetlob.gov, 1
-budgetlovers.nl, 1
 budgiesballoons.com, 1
 budntod.com, 1
 budolfs.de, 1
 buehnenbande.ch, 0
 bueltge.de, 1
 buena.me, 1
 buergerdialog.net, 1
 buergerhaushalt.com, 1
@@ -6929,16 +6895,17 @@ byteshift.ca, 1
 bytesign.de, 1
 bytesizedalex.com, 1
 bytesofcode.de, 1
 bytesunlimited.com, 1
 bytesystems.com, 1
 bythisverse.com, 1
 byvshie.com, 1
 bywin9.com, 1
+bzhub.bid, 1
 bziaks.xyz, 1
 bzsparks.com, 1
 bztech.com.br, 1
 bztraveler.com, 1
 bztraveler.net, 1
 bzv-fr.eu, 1
 c-aeroconsult.com, 1
 c-path.org, 1
@@ -6978,17 +6945,16 @@ cabineritten.nl, 1
 cabinet-bedin.com, 1
 cablehighspeed.net, 1
 cablemod.com, 1
 cablesandkits.com, 1
 cabotfinancial.co.uk, 1
 cacao-chocolate.com, 1
 cacao.supply, 1
 cacaolalina.com, 1
-cacaumidade.com.br, 1
 caceis.bank, 1
 cachetagalong.com, 1
 cachethome.com, 1
 cachetur.no, 1
 cackette.com, 1
 cad-noerdlingen.de, 1
 cadams.io, 1
 cadetsge.ch, 1
@@ -7104,51 +7070,48 @@ cambridge-security.com, 1
 cambridgebouncers.co.uk, 1
 camcapital.com, 1
 camconn.cc, 1
 camda.online, 1
 camdesign.pl, 1
 camel2243.com, 1
 camelservers.com, 1
 cameo-membership.uk, 1
-cameraviva.com.br, 1
 camerweb.es, 1
 camilomodzz.net, 1
 camjobs.net, 1
 camolist.com, 1
 camomile.desi, 1
 camp-pleinsoleil.ch, 1
 camp.co.uk, 1
 campaign-ad.com, 1
 campaign.gov.uk, 1
 campaignagent.com.au, 1
 campaignwiki.org, 1
 campamentos.info, 1
 campbellapplianceheatingandair.com, 1
 campbrainybunch.com, 1
 campcambodia.org, 1
 campcanada.org, 1
-campeoesdofutebol.com.br, 1
 campeonatoalemao.com.br, 1
 camperdays.de, 1
 camperlist.com, 1
 campermanaustralia.com, 1
 campertrailerfinance.com.au, 1
 camperverzekerd.nl, 1
 campfiretails.org, 1
 camping-seilershof.de, 1
 campingcarlovers.com, 1
 campinghuntingshooting.com, 1
 campingskyhooks.com, 1
 campistry.net, 1
 campula.cz, 1
 campus-discounts.com, 1
 campus-finance.com, 1
 campusdrugprevention.gov, 1
-campusportalng.com, 1
 campuswire.com, 1
 campvana.com, 1
 campwabashi.org, 1
 camshowhub.com, 1
 camshowstorage.com, 1
 camsky.de, 0
 canada-tourisme.ch, 1
 canadabread.com, 0
@@ -7331,17 +7294,16 @@ carlosjeurissen.com, 1
 carlot-j.com, 1
 carlovanwyk.com, 1
 carnaticalifornia.com, 1
 carnet-du-voyageur.com, 1
 carnildo.com, 1
 caroes.be, 1
 carol-lambert.com, 1
 carolcappelletti.com, 1
-carolcestas.com, 1
 caroli.biz, 1
 caroli.com, 1
 caroli.info, 1
 caroli.name, 1
 caroli.net, 1
 carolina.cz, 1
 carolinaclimatecontrolsc.com, 1
 carolynjoyce.com.au, 1
@@ -7366,47 +7328,44 @@ cartadeviajes.com.ar, 1
 cartadeviajes.com.ve, 1
 cartadeviajes.de, 1
 cartadeviajes.ec, 1
 cartadeviajes.es, 1
 cartadeviajes.fr, 1
 cartadeviajes.mx, 1
 cartadeviajes.pe, 1
 cartadeviajes.uk, 1
-carteirasedistintivos.com.br, 1
 cartelcircuit.com, 1
 carterorland.com, 1
 carterstad.se, 1
 cartertonscouts.org.nz, 1
 cartesentreprises-unicef.fr, 1
 carthedral.com, 1
 cartierplan.ga, 1
 carto.la, 1
 cartongesso.roma.it, 1
 cartooncastles.ie, 1
 cartoonhd.cc, 1
 cartouche-deal.fr, 1
 cartouche24.eu, 1
 cartucce24.it, 1
+carun.us, 1
 carusorealestate.com, 1
 caryefurd.com, 1
 casa-due-pur.com, 1
 casa-due-pur.de, 1
 casa-due.com, 1
 casa-mea-inteligenta.ro, 1
 casa-su.casa, 1
 casabouquet.com, 1
 casacameo.com, 0
 casacochecurro.com, 1
 casadasportasejanelas.com, 1
-casadoarbitro.com.br, 1
-casadowifi.com.br, 1
 casalindamex.com, 1
 casamariposaspi.com, 1
-casapalla.com.br, 1
 casasuara.com, 1
 casasuleletrodomesticos.com.br, 1
 casbia.info, 1
 casbuijs.nl, 1
 casburggraaf.com, 1
 casc.cz, 1
 cascadesjobcorpscca.com, 1
 cascavelle.fr, 1
@@ -7432,31 +7391,29 @@ casinobonuscodes.online, 1
 casinocashflow.ru, 1
 casinolistings.com, 1
 casinoluck.com, 1
 casinomucho.com, 1
 casinoonlinesicuri.com, 1
 casinoreal.com, 1
 casio-caisses-enregistreuses.fr, 1
 casjay.cloud, 1
-casjay.com, 1
 casjay.info, 1
 casjay.us, 1
 casjaygames.com, 1
 caspar.ai, 1
 casperpanel.com, 1
 caspicards.com, 1
 cassimo.com, 1
 castbulletassoc.org, 0
 casteloinformatica.com.br, 1
 castible.de, 1
 castle-engine.io, 1
 castlecapers.com.au, 1
 castlecms.io, 1
-castlejackpot.com, 1
 castleking.net, 1
 castlekingdomstockport.co.uk, 1
 castlekingkent.co.uk, 1
 castleparty.co.uk, 1
 castles-in-the-sky.co.uk, 1
 castles4kidz.com, 1
 castles4rascalsiow.co.uk, 1
 castlesrus-kent.com, 1
@@ -7521,16 +7478,17 @@ cav.ac, 1
 cavac.at, 1
 cavalierkingcharlesspaniel.com.br, 1
 cave-reynard.ch, 1
 cavevinsdefrance.fr, 1
 cavzodiaco.com.br, 1
 caxalt.com, 1
 caylercapital.com, 1
 cazaviajes.es, 1
+cazes.info, 1
 cb-crochet.com, 1
 cbbank.com, 1
 cbc-hire.co.uk, 1
 cbcf.info, 1
 cbd.casa, 1
 cbd.supply, 1
 cbdev.de, 1
 cbdmarket.space, 1
@@ -7634,17 +7592,16 @@ cencalvia.org, 1
 censurfridns.dk, 1
 censurfridns.nu, 1
 censys.io, 1
 centaur.de, 1
 centennialradon.com, 1
 centerpereezd.ru, 0
 centerpoint.ovh, 1
 centillien.com, 0
-centio.bg, 1
 centos.pub, 1
 centos.tips, 1
 central4.me, 1
 centralbank.ae, 1
 centralebigmat.eu, 1
 centralegedimat.eu, 1
 centrallead.net, 1
 centralmarket.com, 1
@@ -7714,17 +7671,16 @@ cervejista.com, 1
 cesantias.co, 1
 cesboard.com, 1
 cesdb.com, 1
 cesipagano.com, 1
 ceskepivnesety.sk, 1
 ceskepivnisety.cz, 1
 ceso-saco.com, 1
 cesobaly.cz, 1
-cestasedelicias.com.br, 1
 cestlav.it, 1
 cestunmetier.ch, 1
 ceta.one, 1
 cetamol.com, 1
 ceu.edu, 0
 cevo.com.hr, 1
 ceyizlikelisleri.com, 1
 cf-ide.de, 1
@@ -7881,16 +7837,17 @@ chat2.cf, 1
 chat40.net, 1
 chatbelgie.eu, 1
 chatbot.one, 1
 chatbotclic.com, 1
 chatbotclick.com, 1
 chatbots.email, 1
 chatbots.systems, 1
 chatear.social, 1
+chateau-belvoir.com, 1
 chateau-de-lisle.fr, 1
 chateaudestrainchamps.com, 1
 chatfacile.org, 1
 chatitaly.org, 1
 chatme.im, 0
 chatnbook.com, 1
 chatnederland.eu, 1
 chatsworthelectrical.com, 1
@@ -8021,17 +7978,16 @@ chiaseeds24.com, 1
 chiboard.co, 1
 chibr.eu, 1
 chic-leather.com, 1
 chicagolug.org, 1
 chicagostudentactivists.org, 1
 chicisimo.com, 1
 chicolawfirm.com, 1
 chicorycom.net, 1
-chiemgauflirt.de, 1
 chif16.at, 1
 chikan-beacon.net, 1
 chikazawa.info, 1
 chikory.com, 1
 childcare.gov, 1
 childcounseling.org, 1
 childcustodylegalaid.org, 1
 childno.de, 1
@@ -8087,20 +8043,18 @@ chl.la, 1
 chloeallison.co.uk, 1
 chloehorler.com, 1
 chloescastles.co.uk, 1
 chlth.com, 1
 chmsoft.com.ua, 1
 chmsoft.ru, 1
 chmurakotori.ml, 1
 choc-o-lush.co.uk, 1
-chocodecor.com.br, 1
 chocolah.com.au, 0
 chocolat-suisse.ch, 1
-chocolate13tilias.com.br, 1
 chocolatesandhealth.com, 1
 chocolatier-tristan.ch, 1
 chocotough.nl, 0
 chocoweb.net, 1
 choe.fi, 1
 choisirmonerp.com, 1
 chokladfantasi.net, 1
 chollima.pro, 1
@@ -8119,16 +8073,18 @@ chorpinkpoemps.de, 1
 chosenplaintext.org, 1
 chourishi-shigoto.com, 1
 chovancova.sk, 1
 chowii.com, 1
 choyri.com, 1
 chr0me.sh, 1
 chris-edwards.net, 1
 chrisaitch.com, 1
+chrisb.me, 1
+chrisb.xyz, 1
 chrisbryant.me.uk, 1
 chrisburnell.com, 1
 chriscarey.com, 1
 chriscowley.me.uk, 1
 chrisdecairos.ca, 1
 chrisebert.net, 1
 chrisirwin.ca, 1
 chrisjean.com, 1
@@ -8186,16 +8142,17 @@ christophersole.com, 1
 christophertruncer.com, 1
 christophkreileder.com, 1
 christophsackl.de, 1
 christthekingparish.net, 1
 christtheredeemer.us, 1
 chrisupjohn.xyz, 1
 chriswald.com, 1
 chriswarrick.com, 1
+chriswbarry.com, 1
 chriswells.io, 1
 chromaryu.net, 0
 chromaxa.com, 1
 chromcraft-revington.com, 1
 chrome, 1
 chrome-devtools-frontend.appspot.com, 1
 chrome.com, 1
 chrome.google.com, 1
@@ -8260,17 +8217,16 @@ cine-music.de, 1
 cine.to, 1
 cinefilia.tk, 1
 cinefilzonen.se, 1
 cinemaclub.co, 1
 cinemarxism.com, 1
 cinemasetfree.com, 1
 cinemysticism.com, 1
 cineplex.my, 1
-ciner.is, 1
 cinnabon.com, 1
 cinq-elements.com, 1
 cinq-elements.fr, 1
 cinq-elements.net, 1
 cinsects.de, 1
 cintactimber.com, 1
 cinteo.com, 1
 cio-ciso-interchange.org, 1
@@ -8300,19 +8256,16 @@ circu.ml, 1
 circulatedigital.com, 1
 circule.cc, 1
 cirfi.com, 1
 ciri.com.co, 1
 cirope.com, 1
 cirrus0.de, 1
 cirugiasplasticas.com.mx, 1
 cirujanooral.com, 1
-cirurgicagervasio.com.br, 1
-cirurgicalucena.com.br, 1
-cirurgicasalutar.com.br, 1
 ciscodude.net, 0
 cisoaid.com, 1
 cisofy.com, 1
 cispeo.org, 1
 ciss.ltd, 1
 cisum-cycling.com, 1
 cisy.me, 1
 citationgurus.com, 1
@@ -8322,17 +8275,16 @@ citimarinestore.com, 1
 citizen-cam.de, 1
 citizensbankal.com, 1
 citizenscience.gov, 0
 citizensleague.org, 1
 citizenspact.eu, 1
 citizing.org, 1
 citrusui.me, 1
 cittadesign.com, 0
-citton.com.br, 1
 city-adm.lviv.ua, 1
 city-walks.info, 1
 citya.com, 1
 citybeat.de, 1
 citylights.eu, 1
 citymoobel.ee, 1
 cityofeastpointemi.gov, 1
 cityoftitans.com, 1
@@ -8448,17 +8400,16 @@ cles-asso.fr, 1
 cles.jp, 1
 clevelandokla.com, 1
 clevertarget.ru, 1
 clevisto.com, 1
 cleysense.com, 1
 clic-et-site.com, 1
 clic-music.com, 1
 clicandfioul.com, 1
-clicecompre.com.br, 1
 clicheshishalounge.co.uk, 1
 click-licht.de, 1
 clickclock.cc, 1
 clickenergy.com.au, 1
 clickphish.com, 1
 clicksaveandprint.com, 1
 clien.net, 1
 client.coach, 1
@@ -8577,17 +8528,16 @@ club-is.ru, 1
 club-premiere.com, 1
 club-reduc.com, 1
 club-slow.jp, 1
 club-yy.com, 1
 club103.ch, 1
 clubcorsavenezuela.com, 1
 clubdelzapato.com, 1
 clubdeslecteurs.net, 1
-clubedalutashop.com, 1
 clubefiel.com.br, 1
 clubempleos.com, 1
 clubeohara.com, 1
 clubfamily.de, 1
 clubgalaxy.futbol, 1
 clubiconkenosha.com, 1
 clubmate.rocks, 1
 clubmini.jp, 1
@@ -8622,16 +8572,17 @@ cmlancy.ch, 1
 cmlignon.ch, 1
 cmn-group.com, 1
 cmn-groupe.com, 1
 cmngroup.com, 1
 cmngroupe.com, 1
 cmplainpalais.ch, 1
 cmpr.es, 1
 cmrss.com, 1
+cms-weble.jp, 1
 cmskeyholding.co.uk, 1
 cmskeyholding.com, 1
 cmskh.co.uk, 1
 cmusical.es, 1
 cmweller.com, 1
 cmylife.nl, 1
 cn.search.yahoo.com, 0
 cn8522.com, 1
@@ -8640,17 +8591,16 @@ cna5.cc, 1
 cnam-idf.fr, 1
 cnam.net, 1
 cnaprograms.online, 1
 cnatraining.network, 1
 cnbs.ch, 1
 cnc-lehrgang.de, 1
 cncado.net, 1
 cncbazar365.com, 1
-cncmachinemetal.com, 1
 cncrans.ch, 1
 cnet-hosting.com, 1
 cnetw.xyz, 1
 cni-certing.it, 1
 cnlic.com, 1
 cnre.eu, 1
 cnvt.fr, 1
 cnwage.com, 1
@@ -8737,17 +8687,16 @@ codepref.com, 1
 codepult.com, 1
 codera.co.uk, 1
 codercross.com, 1
 codercy.com, 1
 codereview.appspot.com, 1
 codereview.chromium.org, 1
 coderhangout.com, 1
 coderme.com, 1
-codersbistro.com, 1
 codes.pk, 1
 codesplain.in, 1
 codesport.io, 1
 codespromo.be, 1
 codestep.io, 1
 codestudies.net, 1
 codesyncro.com, 1
 codetheworld.com, 1
@@ -8795,17 +8744,16 @@ coigach-assynt.org, 1
 coimmvest.com, 1
 coin-quest.net, 1
 coin.dance, 1
 coinapult.com, 1
 coinbase.com, 1
 coinbit.trade, 1
 coincealed.com, 1
 coinchat.im, 1
-coincoele.com.br, 1
 coincoin.eu.org, 1
 coincolors.co, 1
 coindatabase.net, 1
 coinessa.com, 1
 coinf.it, 1
 coinflux.com, 1
 coingate.com, 1
 coinjar-sandbox.com, 1
@@ -8918,17 +8866,16 @@ comestoarra.com, 1
 cometbot.cf, 1
 cometcache.com, 1
 cometonovascotia.ca, 1
 comevius.com, 1
 comevius.org, 1
 comevius.xyz, 1
 comff.net, 1
 comfintouch.com, 1
-comflores.com.br, 1
 comfortmastersinsulation.com, 1
 comfypc.com, 1
 comhack.com, 1
 comicspornos.com, 1
 comicspornoxxx.com, 1
 comicwiki.dk, 1
 comidasperuanas.net, 1
 comiq.io, 1
@@ -8996,17 +8943,16 @@ complexsystems.fail, 1
 compliance-management.ch, 1
 compliance-systeme.de, 1
 compliancedictionary.com, 1
 compliancerisksoftware.co.uk, 1
 complt.xyz, 1
 compostatebien.com.ar, 1
 compoundingrxusa.com, 1
 compraneta.com, 0
-compreautomacao.com.br, 1
 compree.com, 1
 comprefitasadere.com.br, 1
 comprehensiveihc.com, 1
 compromised.com, 1
 compros.me, 1
 compservice.in.ua, 1
 comptrollerofthecurrency.gov, 1
 comptu.com, 1
@@ -9026,34 +8972,32 @@ computerhilfe-feucht.de, 1
 computernetwerkwestland.nl, 1
 computerslotopschool.nl, 1
 computersystems.guru, 0
 comssa.org.au, 1
 comunidadmontepinar.es, 1
 comw.cc, 1
 conalcorp.com, 1
 conatus.ai, 1
-conaudisa.com, 0
 concept-web.ch, 1
 conceptatelier.de, 1
 conception.sk, 1
 concertengine.com, 1
 concerto.amsterdam, 1
 concertsenboite.fr, 1
 concertsto.com, 1
 conciliumnotaire.ca, 1
 conclave.global, 1
 concordsoftwareleasing.com, 1
 concretelevelingsystems.com, 1
 concreterepairatlanta.com, 1
 concursopublico.com.br, 1
 concursos.com.br, 1
 concursosabertos.com.br, 1
 concursuri.biz, 1
-condecom.com.br, 1
 condepenalba.com, 0
 condesaelectronics.com, 1
 condolencemessages.net, 1
 condominioweb.com, 1
 condosforcash.com, 1
 condroz-motors.be, 1
 conectadev.com, 1
 conectar.ru, 1
@@ -9065,17 +9009,16 @@ conejovalleylandscapelighting.com, 1
 conejovalleylighting.com, 1
 conejovalleyoutdoorlighting.com, 1
 conexiontransporte.com, 1
 confiancefoundation.org, 1
 confidential.network, 1
 config.schokokeks.org, 0
 confiwall.de, 1
 conflux.tw, 1
-conformax.com.br, 1
 conformist.jp, 1
 confucio.cl, 1
 confuddledpenguin.com, 1
 cong5.net, 1
 congineer.com, 1
 congobunkering.com, 1
 conju.cat, 1
 conjugacao.com.br, 1
@@ -9166,17 +9109,16 @@ continuum.memorial, 1
 contrabass.net, 1
 contractdigital.co.uk, 1
 contractormountain.com, 1
 contractwriters.com, 1
 contraspin.co.nz, 1
 contratatupoliza.com, 1
 contributor.google.com, 1
 controlarlaansiedad.com, 1
-controlautocom.com.br, 1
 controlbooth.com, 1
 controle.net, 1
 controleer-maar-een-ander.nl, 1
 controltickets.com.br, 1
 contxt-agentur.de, 1
 conv2pdf.com, 1
 convergence.fi, 1
 convergencela.com, 1
@@ -9322,17 +9264,16 @@ cosasque.com, 1
 cosciamoos.com, 1
 cosirex.com, 1
 coslinker.com, 1
 cosmechic.fr, 1
 cosmekaitori.jp, 1
 cosmeticappraisal.com, 1
 cosmeticasimple.com, 1
 cosmeticos-naturales.com, 1
-cosmeticosdelivery.com.br, 1
 cosmiatria.pe, 1
 cosmic-os.org, 1
 cosmicnavigator.com, 1
 cosmodacollection.com, 1
 cosmofunnel.com, 1
 cosmundi.de, 1
 cosni.co, 1
 cosplayer.com, 1
@@ -9389,17 +9330,16 @@ covery.ai, 1
 covoiturage.fr, 0
 covve.com, 1
 covybrat.cz, 1
 cowbird.org, 1
 cowboyim.com, 1
 coweo.cz, 1
 coxxs.me, 1
 coxxs.moe, 1
-cozitop.com.br, 1
 cozmaadrian.ro, 1
 cozo.me, 1
 cozyeggdesigns.com, 1
 cp-st-martin.be, 1
 cpahunt.com, 0
 cpaneltips.com, 1
 cpbanq.com, 1
 cpbapremiocaduceo.com.ar, 1
@@ -9535,17 +9475,16 @@ crescent.gr.jp, 1
 crestasantos.com, 1
 cretdupuy.com, 1
 creteangle.com, 1
 cretica.no, 1
 creusalp.ch, 1
 crew505.org, 1
 crgalvin.com, 1
 crgm.net, 1
-criadorespet.com.br, 1
 cribcore.com, 1
 crickey.eu, 1
 criena.com, 1
 criena.net, 1
 crimefreeliving.com, 1
 crimevictims.gov, 1
 criminal-attorney.ru, 1
 criminal.enterprises, 1
@@ -9763,23 +9702,22 @@ cubile.xyz, 1
 cublick.com, 1
 cubos.io, 0
 cubostecnologia.com, 0
 cubostecnologia.com.br, 0
 cubua.com, 1
 cuckoopalace.cn, 1
 cuddlecomfort.com, 1
 cuddlingyaks.com, 1
-cueca.com.br, 1
-cuecasonline.com.br, 1
 cuentasmutualamr.org.ar, 1
 cuetoems.com, 1
 cuibonobo.com, 1
 cuisinezest.com, 1
 cultiv.nl, 1
+cultivo.bio, 1
 cultofd50.org, 1
 cultofperf.org.uk, 1
 culturedcode.com, 1
 culturerain.com, 1
 cultureroll.com, 1
 culturesouthwest.org.uk, 1
 cumberlandrivertales.com, 1
 cumplegenial.com, 1
@@ -9904,17 +9842,16 @@ cybercareers.gov, 1
 cybercocoon.com, 1
 cybercrew.cc, 1
 cybercrime-forschung.de, 1
 cybercrime.gov, 1
 cybercymru.co.uk, 1
 cyberduck.io, 1
 cyberdyne-industries.net, 1
 cyberexplained.info, 1
-cyberfrancais.ro, 1
 cybergrx.com, 1
 cyberguerrilla.info, 1
 cyberguerrilla.org, 1
 cyberianhusky.com, 1
 cyberkov.com, 1
 cyberlightapp.com, 1
 cybermeldpunt.nl, 1
 cyberoptic.de, 1
@@ -9929,17 +9866,16 @@ cybersantri.com, 1
 cyberscan.io, 1
 cybersecurity.nz, 1
 cybersecurity.run, 1
 cybersecuritychallenge.be, 1
 cybersecurityketen.nl, 1
 cyberseguranca.com.br, 1
 cyberserver.org, 1
 cybersins.com, 1
-cybersmart.co.uk, 1
 cybersmartdefence.com, 1
 cyberspace.community, 1
 cyberspace.today, 1
 cyberspect.com, 1
 cyberspect.io, 1
 cyberstatus.de, 1
 cybertorsk.org, 1
 cybertu.be, 1
@@ -10151,17 +10087,16 @@ danielepestilli.com, 1
 danielgorr.de, 1
 danielgraziano.ca, 1
 danielheal.net, 1
 danielhinterlechner.eu, 1
 danielhochleitner.de, 1
 danieljamesscott.org, 1
 danieljireh.com, 1
 danielkoster.nl, 1
-daniellockyer.com, 1
 danielmarquard.com, 1
 danielmartin.de, 1
 danielmoch.com, 1
 danielmorell.com, 1
 danielmostertman.com, 1
 danielmostertman.nl, 1
 danielpeukert.cz, 1
 danielran.com, 1
@@ -10226,17 +10161,16 @@ daplie.com, 1
 dappworld.com, 1
 daracokorilo.com, 1
 daravk.ch, 1
 darbi.org, 1
 darbtech.net, 1
 darc-mak.de, 1
 darchoods.net, 0
 darcymarshall.com, 1
-daren.com.br, 1
 dareyou.be, 1
 dariaburger.de, 1
 darinkotter.com, 1
 darioackermann.ch, 1
 darioclip.com, 1
 darioturchetti.me, 1
 darisni.me, 1
 dark-infection.de, 1
@@ -10248,17 +10182,17 @@ darkdestiny.ch, 1
 darkengine.io, 1
 darkengine.net, 1
 darkerlystormy.com, 1
 darkerstormy.com, 1
 darkeststar.org, 1
 darkfire.ch, 1
 darkishgreen.com, 1
 darknessflickers.com, 1
-darknetlive.com, 1
+darknetlive.com, 0
 darknight.blog, 1
 darkrisks.com, 1
 darkroomsaredead.com, 1
 darkserver.fedoraproject.org, 1
 darkserver.stg.fedoraproject.org, 1
 darkshop.nl, 1
 darkside.re, 1
 darkspacelab.com, 1
@@ -10369,17 +10303,16 @@ davepage.me.uk, 1
 davepearce.com, 1
 daverandom.com, 1
 davescomputertips.com, 1
 davesharpe.com, 1
 davesinclair.com.au, 1
 davetempleton.com, 1
 davevelopment.net, 1
 davewardle.com, 1
-davewut.ca, 1
 david-corry.com, 1
 david-jeffery.co.uk, 1
 david-mallett.com, 1
 david-pearce.com, 1
 david-reess.de, 1
 david-schiffmann.de, 1
 david.kitchen, 1
 davidadrian.org, 1
@@ -10466,17 +10399,16 @@ dbtsai.com, 1
 dc-elektro.com, 1
 dc-elektro.de, 1
 dc-elektro.eu, 1
 dc-occasies.be, 1
 dc1.com.br, 1
 dc562.org, 1
 dc585.info, 1
 dcards.in.th, 1
-dcautomacao.com.br, 1
 dcbouncycastles.co.uk, 1
 dcc.cat, 1
 dcc.moe, 1
 dccommunity.de, 1
 dcepler.net, 1
 dchatelain.ch, 1
 dchest.org, 1
 dckd.nl, 1
@@ -10579,17 +10511,16 @@ decock-usedcars.be, 1
 decodeanddestroy.com, 1
 decoder.link, 1
 decompiled.de, 1
 decor-d.com, 1
 decoratingadvice.co.uk, 1
 decoratore.roma.it, 1
 decoratrix.com, 1
 decorauvent.ca, 1
-decorestilo.com.br, 1
 decorincasa.com.br, 1
 decormiernissanparts.com, 1
 decosoftware.com, 1
 decoyrouting.com, 1
 decrousaz-ceramique.ch, 1
 decs.es, 1
 decstasy.de, 1
 dede.ml, 1
@@ -10711,16 +10642,17 @@ deltava.org, 1
 demarle.ch, 1
 dementiapraecox.de, 1
 demeyere-usedcars.be, 1
 demfloro.ru, 1
 demijn.nl, 1
 demilletech.net, 1
 demmer.one, 1
 demo.sb, 1
+demo9.ovh, 1
 democracychronicles.com, 1
 democracyineurope.eu, 1
 democraziaineuropa.eu, 1
 demolandia.net, 1
 demoniak.ch, 1
 demonwav.com, 1
 demonwolfdev.com, 1
 demotivatorbi.ru, 1
@@ -10842,17 +10774,17 @@ designville.sk, 1
 desila.jp, 1
 deskdesign.nl, 1
 deskeen.fr, 1
 desktopfx.net, 0
 deskture.com, 1
 deskvip.com, 1
 desmaakvanplanten.be, 1
 desmo.gg, 1
-desormiers.com, 0
+desormiers.com, 1
 despachomartinyasociados.com, 1
 despertadoronline.com.es, 1
 desplats.com.ar, 1
 despora.de, 0
 despotika.de, 1
 dessinemoilademocratie.ch, 1
 destech.nl, 1
 desterman.ru, 1
@@ -11078,17 +11010,17 @@ die-besten-weisheiten.de, 1
 die-blahuts.de, 1
 die-borts.ch, 1
 die-gruenen-teufel.de, 1
 die-partei-reutlingen.de, 1
 die-pizzabaeckerei.de, 1
 die-seide.de, 1
 die-sinlosen.de, 1
 die-speisekammer-reutlingen.de, 1
-diedrich.co, 0
+diedrich.co, 1
 diedrich.me, 1
 dieecpd.org, 1
 diegelernten.de, 1
 diegerbers.de, 1
 diegobarrosmaia.com.br, 1
 diegogelin.com, 1
 diegorbaquero.com, 1
 diehl.io, 1
@@ -11202,21 +11134,19 @@ diju.ch, 1
 dildoexperten.se, 1
 diletec.com.br, 1
 dilichen.fr, 1
 diligo.ch, 1
 dillewijnzwapak.nl, 1
 dillonkorman.com, 1
 diluv.com, 1
 dimanss47.net, 1
-dimdom.com.br, 1
 dime-staging.com, 1
 dime.io, 1
 dimensionen.de, 1
-dimeponline.com.br, 1
 dimeshop.nl, 1
 dimez.ru, 1
 dimmersagourahills.com, 1
 dimmerscalabasas.com, 1
 dimmersdosvientos.com, 1
 dimmershiddenhills.com, 1
 dimmerslakesherwood.com, 1
 dimmersnewburypark.com, 1
@@ -11353,17 +11283,16 @@ dissertationhelp.com, 1
 dissidence.ovh, 1
 dissident.host, 1
 dist.torproject.org, 0
 disti.com, 1
 distiduffer.org, 1
 distillery.com, 1
 distinctivephotography.com.au, 1
 distinguishedprisoner.com, 1
-distribuidoracristal.com.br, 1
 distribuidorveterinario.es, 1
 distrilogservices.com, 1
 distro.re, 1
 ditch.ch, 1
 ditelbat.com, 1
 diti.me, 1
 ditisabc.nl, 1
 diva.nl, 1
@@ -11373,22 +11302,22 @@ divedowntown.com, 1
 divegearexpress.com, 1
 diveidc.com, 1
 divenwa.com, 1
 diveplan.org, 1
 divergenz.org, 1
 diversityflags.com, 1
 diversityflags.com.au, 1
 diversityflags.nz, 1
-divertiagua.com.br, 1
 divi-experte.de, 1
 divinasaiamodas.com.br, 1
 divinegames.studio, 1
 diving.photo, 1
 divingwithnic.com, 1
+divorciosmurcia.com, 1
 divvymonkey.com, 1
 diwei.vip, 1
 dixi.fi, 1
 dixibox.com, 1
 dixmag.com, 1
 diybook.at, 1
 diycc.org, 1
 diymediahome.org, 1
@@ -11474,17 +11403,16 @@ dnc.org.nz, 1
 dndtools.net, 1
 dne.lu, 1
 dnfc.rocks, 1
 dnlr.tech, 1
 dnmaze.com, 1
 dnmlab.it, 1
 dnplegal.com, 1
 dns-control.eu, 1
-dns-manager.info, 1
 dns-swiss.ch, 1
 dns.google.com, 1
 dns8.online, 1
 dnsbird.org, 1
 dnscrawler.com, 1
 dnscrypt.info, 1
 dnscrypt.nl, 1
 dnscurve.io, 1
@@ -11556,17 +11484,16 @@ dogfi.sh, 1
 dogft.com, 1
 doggedbyirs.com, 1
 doggroomingcourse.com, 1
 dogmap.jp, 1
 dogoo.com, 1
 dogpawstudio.com, 1
 dogprograms.net, 1
 dogrescuegreece.nl, 1
-dogworld.com.br, 1
 dohanews.co, 1
 doihavetoputonpants.com, 1
 dojifish.space, 1
 dojin.nagoya, 1
 dokan-e.com, 0
 dokelio-idf.fr, 1
 dokipy.no, 1
 dokspot.cf, 1
@@ -11577,16 +11504,17 @@ dokuraum.de, 1
 dolarcanadense.com.br, 1
 dolci-delizie.de, 1
 doli.se, 1
 dolice.net, 1
 dollemore.com, 1
 dolorism.com, 1
 dolphin-hosting.com, 1
 dolphin-it.de, 1
+dolt.xyz, 1
 dom-medicina.ru, 1
 doma.in, 1
 domadillo.com, 1
 domain-ermittlung.de, 1
 domain-swiss.ch, 1
 domain001.info, 1
 domainedemiolan.ch, 1
 domainexpress.de, 0
@@ -11616,22 +11544,20 @@ dominik-schlueter.de, 1
 dominikaner-vechta.de, 1
 dominikkulaga.pl, 1
 dominioanimal.com.br, 1
 dominionregistries.domains, 1
 dominique-haas.fr, 1
 dominoknihy.cz, 1
 dominomatrix.com, 1
 domix.fun, 1
-dommascate.com.br, 1
 domob.eu, 1
 domodeco.fr, 1
 domodedovo.travel, 1
 domprojects.com, 1
-domquixoteepi.com.br, 1
 domscripting.com, 1
 domster.com, 1
 domus-global.com, 1
 domus-global.cz, 1
 domyassignments.com, 1
 domycasestudy.com, 1
 domycoursework.com, 1
 domycreativewritings.com, 1
@@ -11714,17 +11640,16 @@ dorsetentertainments.co.uk, 1
 dorth.nl, 1
 dosdediez.com, 1
 dosenkiwi.at, 1
 dosipe.com, 1
 doska.by, 1
 doska.kz, 1
 doska.ru, 1
 dosomeworks.biz, 1
-dossplumbing.co.za, 1
 dostavkakurierom.ru, 1
 dostlar.fr, 1
 dosvientoselectric.com, 1
 dosvientoselectrical.com, 1
 dosvientoselectrician.com, 1
 dosvientosexteriorlighting.com, 1
 dosvientoslandscapelighting.com, 1
 dosvientoslighting.com, 1
@@ -11768,16 +11693,17 @@ dougferris.id.au, 1
 dougley.com, 1
 doujin-domain.cz, 1
 doujin.nagoya, 1
 doujinshi.info, 1
 dounats.com, 1
 douzer.de, 1
 dovenzorgmalawi.nl, 1
 dovro.de, 1
+dowell.media, 1
 dowellconsulting.com, 1
 dowhatmakegood.de, 1
 dowling.nz, 1
 downloadaja.com, 1
 downloadgamemods.com, 1
 downloadgram.com, 1
 downloads.zdnet.com, 1
 downloadsoftwaregratisan.com, 1
@@ -11885,16 +11811,17 @@ dreamersgiftshopec.com, 1
 dreamhack.com, 1
 dreamhostremixer.com, 1
 dreaming.solutions, 1
 dreamithost.com.au, 1
 dreamlandmagic.com, 1
 dreamlinehost.com, 0
 dreamlux.cz, 1
 dreamlux.sk, 1
+dreamof.net, 1
 dreamonkey.com, 1
 dreamrae.net, 1
 dreamtechie.com, 1
 dreax.win, 1
 drei01.com, 1
 drei01.de, 1
 dreid.org, 1
 dreischneidiger.de, 1
@@ -11929,17 +11856,16 @@ drinkcontrolapp.com, 1
 drinkplanet.eu, 1
 drino.org, 0
 drive.google.com, 1
 drive.xyz, 1
 driven2shine.eu, 1
 drivenes.net, 1
 driver.ru, 1
 driver61.com, 1
-drivercopilot.com, 1
 driverless.id, 1
 driverprofiler.co.uk, 1
 driverscollection.com, 1
 driving-lessons.co.uk, 1
 drivinghorror.com, 1
 drivingtestpro.com, 1
 drivya.com, 1
 drixn.cn, 1
@@ -12042,17 +11968,16 @@ dsrw.org, 1
 dssale.com, 1
 dstamou.de, 1
 dsteiner.at, 1
 dstvinstallrandburg.co.za, 1
 dt27.org, 1
 dtbouncycastles.co.uk, 1
 dtdsh.com, 1
 dte.co.uk, 1
-dtechstore.com.br, 1
 dtg-fonds.com, 1
 dtg-fonds.de, 1
 dtg-fonds.net, 1
 dtk-vom-chausseehaus.de, 1
 dtnx.net, 1
 dtp-mstdn.jp, 1
 dtuaarsfest.dk, 1
 dtx.sk, 1
@@ -12253,24 +12178,22 @@ dzndk.com, 1
 dzndk.net, 1
 dzndk.org, 1
 dznn.nl, 1
 dzomo.org, 1
 dzsibi.com, 1
 dzsula.hu, 1
 dzyabchenko.com, 1
 dzyszla.pl, 1
-e-apack.com.br, 1
 e-baraxolka.ru, 1
 e-bikesdirect.co.uk, 1
 e-biografias.net, 1
 e-borneoshop.com, 1
 e-briancon.com, 1
 e-colle.info, 1
-e-cottage.com.br, 1
 e-enterprise.gov, 1
 e-hon.link, 1
 e-id.ee, 1
 e-kontakti.fi, 1
 e-lambre.com, 1
 e-learningbs.com, 1
 e-lifetechnology.com, 1
 e-mak.eu, 1
@@ -12415,16 +12338,17 @@ ebizarts.com, 1
 eboek.info, 1
 ebonyporn.tv, 1
 ebonyriddle.com, 1
 ebooki.eu.org, 1
 ebooklaunchers.com, 1
 ebop.ch, 1
 eboutic.ch, 1
 eboyer.com, 1
+ebpglobal.com, 0
 ebrnd.de, 1
 ebrowz.com, 1
 ec-baran.de, 1
 ec-current.com, 1
 ec.mine.nu, 1
 eca.edu.au, 1
 ecacollege.nsw.edu.au, 1
 ecardoo.com, 1
@@ -12433,17 +12357,16 @@ ecardoo.net, 1
 ecardoo.org, 1
 ecchidreams.com, 1
 ecclesia-koeln.de, 1
 ecco-verde.com, 0
 eccoviasolutions.com, 1
 eccux.com, 1
 ecdn.cz, 1
 ecelembrou.ovh, 1
-ecfnorte.com.br, 1
 echatta.net, 1
 echatta.org, 1
 echidna-rocktools.eu, 1
 echo-security.co, 1
 echo.cc, 1
 echoanalytics.com, 1
 echodio.com, 1
 echofoxtrot.co, 1
@@ -12453,17 +12376,16 @@ echosim.io, 1
 echosixmonkey.com, 1
 echosystem.fr, 1
 echoteam.gq, 1
 echoteen.com, 1
 echoworld.ch, 1
 ecir.pro, 1
 ecir.ru, 1
 ecirtam.net, 1
-eckel.co, 1
 eclipse.ws, 1
 ecnetworker.com, 1
 eco-derattizzazione.it, 1
 eco-wiki.com, 1
 eco-work.it, 1
 ecobergerie.fr, 1
 ecobin.nl, 1
 ecobrain.be, 1
@@ -12481,17 +12403,16 @@ ecogen.net.au, 1
 ecoheatcool.co.uk, 1
 ecohostingservices.uk, 1
 ecolala.my, 1
 ecole-attalens.ch, 1
 ecole-iaf.fr, 1
 ecoledusabbat.org, 1
 ecolemathurincordier.com, 1
 ecombustibil.ro, 1
-ecommercestore.net.br, 1
 ecompen.co.za, 1
 ecomycie.com, 1
 econativa.pt, 1
 economias.pt, 1
 economic-sanctions.com, 1
 economicinclusion.gov, 1
 economiefidu.ch, 1
 economies.ch, 1
@@ -12566,17 +12487,16 @@ edsm.net, 1
 edstep.com, 1
 edtech-hub.com, 1
 edtechwebb.com, 1
 edu-kingdom.com, 1
 edu6.cloud, 1
 eduard-dopler.de, 1
 eduardnikolenko.com, 1
 eduardnikolenko.ru, 1
-edubras.com.br, 1
 educationevolving.org, 1
 educationfutures.com, 1
 educationunlimited.com, 1
 educator-one.com, 1
 educatoys.com.br, 1
 eductf.org, 1
 eduid.se, 0
 eduif.nl, 0
@@ -12692,17 +12612,16 @@ eichornenterprises.com, 1
 eickemeyer.nl, 1
 eickhof.co, 1
 eickhof.us, 1
 eickhofcolumbaria.com, 1
 eidolons.org, 1
 eifel.website, 1
 eigenbubi.de, 1
 eigenpul.se, 1
-eigenpulse.com, 1
 eighty-aid.com, 1
 eightyfour.ca, 1
 eigpropertyauctions.co.uk, 1
 eihaikyo.com, 1
 eilhan.com, 1
 eimacs.com, 1
 einaros.is, 1
 einfachbahn.de, 1
@@ -13089,35 +13008,30 @@ empese.com, 1
 empherino.net, 1
 empire24.co, 1
 empireauto-2000.com, 1
 emploi-collectivites.fr, 1
 employeeexpress.gov, 1
 employer.gov, 1
 employer.guru, 1
 employer411.com, 1
-emporiodascalcinhas.com.br, 1
-emporiodosperfumes.com.br, 1
-emporioonline.com.br, 1
-emporiopatanegra.com.br, 1
 emporioviverbem.com.br, 0
 empower.net, 1
 empowerdb.com, 1
 emprego.pt, 1
 empyrean-advisors.com, 1
 emrenovation.com, 1
 emresaglam.com, 1
 emtradingacademy.com, 1
 emultiagent.pl, 1
 emupedia.net, 1
 emvoice.net, 1
 emvoiceapp.com, 1
 emw3.com, 1
 emyr.net, 1
-emyself.org, 1
 en-booster.jp, 1
 en-crypt.me, 1
 en-maktoob.search.yahoo.com, 0
 en4rab.co.uk, 1
 en4u.org, 1
 enaah.de, 1
 enaim.de, 1
 enalean.com, 1
@@ -13201,17 +13115,16 @@ enigma.swiss, 1
 enijew.com, 1
 enitso.de, 1
 enixgaming.com, 1
 enjincoin.io, 1
 enjinwallet.io, 1
 enjinx.io, 1
 enjoy-drive.com, 1
 enjoyphoneblog.it, 1
-enlazaresbueno.cl, 1
 enlighten10x.ga, 1
 enlightenedhr.com, 1
 enlightenment.org, 1
 enlnf.link, 1
 enloestatebank.com, 1
 ennea-mediation.fr, 1
 enness.co.uk, 1
 ennori.jp, 1
@@ -13356,43 +13269,37 @@ eqorg.com, 1
 equalcloud.com, 1
 equallyy.com, 1
 equalparts.eu, 1
 equeim.ru, 1
 equidam.com, 1
 equinecoaching.ca, 1
 equinetherapy.ca, 1
 equinox.io, 1
-equipandoloja.net.br, 1
 equipedefrance.tv, 1
-equipeferramentas.com.br, 1
 equipsupply.com, 1
 equk.co.uk, 1
 er-mgmt.com, 1
 er-music.com, 1
 er.tl, 1
 er1s.xyz, 1
 erad.fr, 1
 erasmusplusrooms.com, 1
 erate.fi, 1
 erath.fr, 1
-erawanarifnugroho.com, 0
 erclab.kr, 1
 erdethamburgeronsdag.no, 1
-ereader.uno, 1
 erecciontotalal100.com, 1
 erectiepillenwinkel.nl, 1
 erethon.com, 1
 erf-neuilly.com, 1
 ergo-open.de, 1
 ergobyte.eu, 1
 ergobyte.gr, 1
 ergodark.com, 1
-ergovita.com.br, 1
-ergovitanet.com.br, 1
 eriador.io, 1
 ericabrahamsen.net, 1
 ericairwin.com, 1
 ericdiao.com, 1
 erichogue.ca, 1
 erichorstmanshof.nl, 1
 ericisaweso.me, 1
 ericjohnltd.com, 1
@@ -13430,17 +13337,17 @@ erotpo.cz, 0
 erp-band.ru, 1
 erp.band, 1
 erpax.com, 1
 erpband.ru, 1
 erpcargo.com, 0
 erperium.com, 1
 errietta.me, 1
 errlytics.com, 1
-error418.nl, 1
+error418.nl, 0
 ers35.com, 1
 ersa-shop.com, 1
 ershiwo.com, 1
 ersindemirtas.com, 1
 ersinerce.com, 1
 erspro.net, 1
 erstehilfeprodukte.at, 1
 eru.im, 0
@@ -13449,17 +13356,16 @@ erudicia.com, 1
 erudicia.de, 1
 erudicia.es, 1
 erudicia.fr, 1
 erudicia.it, 1
 erudicia.nl, 1
 erudicia.se, 1
 erudicia.uk, 1
 erudikum.cz, 1
-ervaarjapan.nl, 1
 erverydown.ml, 1
 erwanlepape.com, 1
 erwin.saarland, 1
 erwinpaal.nl, 1
 erwinschmaeh.ch, 1
 erwinwensveen.nl, 1
 erythroxylum-coca.com, 1
 es-geenen.de, 1
@@ -13682,20 +13588,18 @@ estaleiro.org, 1
 estan.cn, 1
 estate360.co.tz, 1
 estateczech-eu.ru, 1
 estcequejailaflemme.fr, 1
 estcequonmetenprodaujourdhui.info, 1
 esteam.se, 1
 estedafah.com, 1
 esterilizacion-perros.es, 1
-esteticanorte.com.br, 1
 estetista.net, 1
 esthesoleil.jp, 1
-estilopack-loja.com.br, 1
 estoic.net, 1
 estoniantrade.ee, 1
 estonoentraenelexamen.com, 1
 estoqueinformatica.com.br, 1
 estrietoit.com, 0
 estudiarparaser.com, 1
 estudiserradal.com, 1
 esurety.net, 1
@@ -13909,17 +13813,16 @@ everythingstech.com, 1
 everytrycounts.gov, 1
 everywhere.cloud, 1
 eveshaiwu.com, 1
 eveshamglass.co.uk, 1
 eveswell.com, 1
 evexia.xyz, 1
 evidence-based.review, 1
 evidencebased.net, 1
-evidenceusa.com.br, 1
 evidencija.ba, 1
 evidentiasoftware.com, 1
 evilarmy.com, 1
 evilbeasts.ru, 1
 evilbunnyfufu.com, 1
 evilcult.me, 1
 evileden.com, 1
 evilized.de, 1
@@ -14032,17 +13935,16 @@ expert-korovin.ru, 1
 expert.cz, 1
 experteasy.com.au, 1
 expertohomestaging.com, 1
 experts-en-gestion.fr, 1
 expertsverts.com, 1
 expertviolinteacher.com, 1
 expiscor.solutions, 1
 explodie.org, 1
-exploflex.com.br, 1
 exploit-db.com, 1
 exploit.party, 1
 exploit.ph, 1
 exploited.cz, 1
 exploitit.com.au, 1
 exploodo.rocks, 1
 exploravacations.in, 1
 exploremonero.com, 1
@@ -14098,17 +14000,16 @@ exteriorlightingoakpark.com, 1
 exteriorlightingsimivalley.com, 1
 exteriorlightingthousandoaks.com, 1
 exteriorlightingwestlakevillage.com, 1
 exteriorservices.io, 1
 extintormadrid.com, 1
 extradesktops.com, 0
 extranetpuc.com.br, 1
 extrapagetab.com, 1
-extratorrent.fyi, 1
 extratorrent.world, 1
 extreme-gaming.de, 1
 extreme-gaming.us, 1
 extreme-players.com, 1
 extreme-players.de, 1
 extreme.co.th, 1
 extrememanual.net, 1
 extremeservicesandrestoration.com, 1
@@ -14187,18 +14088,16 @@ fabrica360.com, 1
 fabriceleroux.com, 1
 fabriziocavaliere.it, 1
 fabriziorocca.com, 1
 fabriziorocca.it, 1
 fabrysociety.org, 1
 fabse.net, 1
 fabulouslyyouthfulskin.com, 1
 fabulouslyyouthfulskineyeserum.com, 1
-facanabota.com, 1
-facanabota.com.br, 1
 faccess.it, 1
 facciadastile.it, 1
 face-mania.com, 1
 facealacrise.fr, 1
 facebattle.com, 1
 facebook-atom.appspot.com, 1
 facebook.ax, 1
 facebook.com, 0
@@ -14210,17 +14109,16 @@ facepalmsecurity.com, 1
 facepunch.org, 1
 facerepo.com, 1
 facesnf.com, 1
 fach-journalist.de, 1
 fachschaftslisten.at, 1
 fachschaftslisten.org, 1
 facialexercising.com, 1
 facil.services, 0
-faciledireto.com.br, 1
 facilities.fr, 1
 facilitiessurvey.org, 1
 facilitrak.com, 1
 facility-service-muenchen.de, 1
 fackovcova.cz, 1
 fackovcova.eu, 1
 fackovcova.sk, 1
 fackovec.cz, 1
@@ -14267,17 +14165,16 @@ fairssl.dk, 1
 fairssl.se, 1
 fairviewmotel-simcoe.com, 1
 fairydust.space, 1
 faithgrowth.com, 1
 faithindemocracy.eu, 0
 faithleaks.org, 1
 faithmissionaries.com, 1
 faithwatch.org, 1
-faixaazul.com, 1
 fakeapple.nl, 1
 fakerli.com, 1
 fakti.bg, 1
 fakturi.com, 1
 fakturoid.cz, 1
 falaeapp.org, 1
 falaowang.com, 1
 falbros.com, 1
@@ -14371,21 +14268,21 @@ faradji.nu, 1
 faradome.ws, 1
 faraonplay5.com, 1
 faraonplay7.com, 1
 faraonplay8.com, 1
 faraslot8.com, 1
 faraslot8.net, 1
 farcecrew.de, 1
 faretravel.co.uk, 1
-farfallapets.com.br, 1
 farfetchos.com, 1
 fargtorget.se, 1
 farhadexchange.com, 1
 farhood.org, 1
+farid.is, 1
 farm24.co.uk, 1
 farmacia-discreto.com, 1
 farmacialaboratorio.it, 1
 farmer.dating, 1
 farmers.gov, 1
 farmkazuto.com, 1
 faroebusinessreport.com, 1
 faroes.net, 1
@@ -14426,36 +14323,35 @@ faspirits.com, 1
 fassaden-selleng.de, 1
 fassadenverkleidung24.de, 1
 fassi-sport.it, 1
 fastaim.de, 1
 fastbackmbg.be, 1
 fastbackmbm.be, 1
 fastblit.com, 1
 fastcash.com.br, 1
-fastcommerce.org, 1
 fastconfirm.com, 1
 fastcp.top, 1
 fastest-hosting.co.uk, 1
 fastforwardsociety.nl, 1
 fastforwardthemes.com, 1
 fastlike.co, 1
 fastmail.com, 0
 fastonline.ro, 1
 fastpresence.com, 1
 fastrevision.com, 1
 fastvistorias.com.br, 1
 fastwebsites.com.br, 1
 faszienrollen-info.de, 0
 fateandirony.com, 1
 fatecdevday.com.br, 1
 fatedata.com, 1
+fatherhood.gov, 1
 fathers4equalrights.org, 1
 fatidique.com, 1
-fatimamoldes.com.br, 1
 fatmixx.com, 1
 fator25.com.br, 1
 fatowltees.com, 1
 fatox.de, 1
 fattorino.it, 1
 faucetbox.com, 0
 faui2k17.de, 1
 faulty.equipment, 1
@@ -14486,17 +14382,16 @@ fcingolstadt.de, 1
 fcitasc.com, 1
 fcosinus.com, 1
 fcprovadia.com, 1
 fcsic.gov, 1
 fdevs.ch, 1
 fdicig.gov, 1
 fdicoig.gov, 1
 fdlibre.eu, 1
-fdm.ro, 1
 fdms.gov, 1
 fdn.one, 1
 fdos.me, 1
 fdp-brig-glis.ch, 1
 fdsys.gov, 0
 feac.us, 1
 feaden.me, 1
 fearby.com, 1
@@ -14611,17 +14506,16 @@ fergusoncastle.com, 1
 ferien-netzwerk.de, 1
 ferienchalet-wallis.ch, 1
 ferienhaeuser-krummin.de, 1
 ferienhaus-polchow-ruegen.de, 0
 ferienhausprovence.ch, 1
 ferienwohnungen-lastminute.de, 1
 feriespotter.dk, 1
 ferm-rotterdam.nl, 1
-fermabel.com.br, 1
 fermanacuratampaparts.com, 1
 fernandes.org, 1
 fernandob.com, 1
 fernandobarata.pt, 1
 fernandobarillas.com, 1
 fernandomiguel.net, 1
 feross.org, 1
 ferrariadvisor.it, 1
@@ -15255,16 +15149,17 @@ forefrontcloud.com, 1
 foregroundweb.com, 1
 forellenpark.com, 1
 forento.be, 1
 foresdon.jp, 1
 forestraven.net, 1
 foreverssl.com, 1
 foreversummertime.com, 1
 forewordreviews.com, 1
+forex-plus.com, 1
 forex.ee, 1
 forexchef.de, 1
 forexee.com, 1
 forexsignals7.com, 1
 forextickler.com, 1
 forextimes.ru, 0
 forfunssake.co.uk, 1
 forge-goerger.eu, 1
@@ -15689,16 +15584,17 @@ fsbturton.com, 1
 fsck.cz, 1
 fsck.jp, 1
 fsckd.com, 1
 fscott.de, 1
 fsdress.com, 1
 fsfi.is, 1
 fsfxpackages.com, 1
 fsj4u.ch, 1
+fsk.fo, 1
 fsky.info, 1
 fsm2016.org, 1
 fsps.ch, 1
 fsrs.gov, 1
 fsstyle.com, 1
 fstatic.io, 1
 fsvt.ch, 1
 ft.com, 0
@@ -15744,17 +15640,16 @@ fukuko.biz, 1
 fukuko.xyz, 1
 fukushimacoffee.com, 1
 fulfilmentcrowd.com, 1
 fulgenzis.com, 1
 fuliwang.info, 1
 fuliwang.us, 1
 full-race.com, 1
 full-stack.ninja, 1
-fullautomotivo.com.br, 1
 fullbundle.com, 1
 fullereno.com, 1
 fullerlife.org.uk, 1
 fullhost.com, 1
 fullhub.ru, 1
 fullmatch.net, 1
 fullstacknotes.com, 1
 fulltxt.ml, 1
@@ -15910,17 +15805,16 @@ fysiotherapieholtenbroek.nl, 1
 fysiotherapienieuwveen.nl, 1
 fysiotherapierossum.nl, 1
 fysiovdberg.nl, 1
 fysuite.com, 1
 fzbrweb.cz, 1
 fzhyzamt.com, 1
 fzx750.ru, 1
 g-m-w.eu, 1
-g-marketing.ro, 1
 g-p-design.com, 1
 g-rom.net, 1
 g01.in.ua, 1
 g0881.com, 1
 g0man.com, 1
 g1.ie, 1
 g10e.ch, 1
 g1jeu.com, 1
@@ -16000,17 +15894,16 @@ galinos.gr, 1
 galle.cz, 1
 gallerify.eu, 1
 galletasgabi.com.mx, 0
 galleyfoods.com, 1
 gallicrooster.com, 1
 gallifreyapp.co.uk, 1
 gallifreypermaculture.com.au, 1
 gallun-shop.com, 1
-galpaoap.com.br, 1
 gam3rs.de, 1
 gamajo.com, 1
 gamberorosso.menu, 1
 gambetti.fr, 1
 gambit.pro, 1
 gambitboard.com, 1
 gambitnash.co.uk, 1
 gambitnash.com, 1
@@ -16239,17 +16132,16 @@ geekariom.com, 1
 geekbundle.org, 0
 geekclubbooks.com, 1
 geeklair.net, 1
 geeklan.co.uk, 1
 geekles.net, 1
 geeknik.com, 1
 geekpad.com, 1
 geeks.berlin, 1
-geeks.one, 1
 geekshirts.cz, 1
 geektopia.es, 1
 geekwhack.org, 1
 geekwithabudget.com, 1
 geekwu.org, 1
 geekystudios.us, 1
 geekz.sk, 1
 geekzone.co.nz, 1
@@ -16274,19 +16166,17 @@ geigr.de, 1
 geiser-family.ch, 1
 geisser-elektronikdata.de, 1
 gelb-computer.de, 1
 geld-im-blick.de, 1
 geld24.nl, 1
 geldimblick.de, 1
 geldteveel.eu, 1
 geleenbeekdal.nl, 1
-geleia-real.com, 1
 gelis.ch, 1
-gelodosul.com.br, 1
 gelog-software.de, 0
 geloofindemocratie.nl, 0
 geluidsstudio.com, 1
 gem-indonesia.net, 0
 gem-info.fr, 1
 gemeentemolenwaard.nl, 1
 gemeinsam-ideen-verwirklichen.de, 1
 gemgroups.in, 1
@@ -16573,17 +16463,16 @@ giddyaunt.net, 1
 giduv.com, 1
 giebel.it, 1
 gierds.de, 1
 giethoorn.com, 1
 gietvloergarant.nl, 0
 giftcard.net, 1
 giftedconsortium.com, 1
 giftking.nl, 0
-giftmaniabrilhos.com.br, 1
 gifts.best, 1
 gifts365.co.uk, 1
 giftsn.com.sg, 0
 gifzilla.net, 0
 gig-raiffeisen.de, 1
 gig.ru, 0
 giga.nl, 1
 gigabitz.pw, 1
@@ -16598,17 +16487,16 @@ gigin.me, 1
 gigis-pizzeria.de, 1
 gigis.cloud, 1
 gigiscloud.servebeer.com, 1
 giglink.club, 1
 gigolodavid.be, 1
 gigseekr.com, 1
 gigtroll.eu, 1
 gijsbertus.com, 1
-gikovatelojavirtual.com.br, 1
 gilangcp.com, 1
 gileadpac.com, 1
 gilium.com, 1
 gillesdesnoyers.com, 1
 gillesmorelle.com, 1
 gillfamily.de, 1
 gillmanandsoame.co.uk, 1
 gillyscastles.co.uk, 1
@@ -16747,17 +16635,16 @@ globalhorses.de, 1
 globalipaction.ch, 1
 globalisierung-fakten.de, 1
 globalityinvestment.com, 1
 globalmoneyapp.com, 1
 globalnewsdaily.cf, 1
 globalnomadvintage.com, 1
 globalonetechnology.com, 1
 globalperspectivescanada.com, 1
-globalprojetores.com.br, 1
 globalresearchcouncil.org, 1
 globaltennis.ca, 1
 globalventil.com, 1
 globalvisions-events.ch, 1
 globalvisions-events.com, 1
 globcoin.io, 1
 globeinform.com, 1
 globelink-group.com, 1
@@ -17102,20 +16989,18 @@ granishe.com, 1
 graniteind.com, 1
 grannys-stats.com, 1
 grannyshouse.de, 1
 grantcooper.com, 1
 grantdb.ca, 1
 granth.io, 1
 grantmorrison.net, 1
 granular.ag, 1
-graonatural.com.br, 1
 grapee.jp, 1
 grapeintentions.com, 1
-graphcommons.com, 1
 graphene.software, 1
 graphic-shot.com, 1
 graphified.nl, 0
 graphire.io, 1
 graphite.org.uk, 1
 grapholio.net, 1
 grasmark.com, 1
 grassenberg.de, 1
@@ -17196,17 +17081,16 @@ greensquare.tk, 1
 greenteamtwente.nl, 1
 greenwithdecor.com, 1
 greer.ru, 1
 greg.red, 1
 gregbrimble.com, 1
 greger.me, 1
 greggsfoundation.org.uk, 1
 gregmartyn.com, 1
-gregmarziomedia.co.za, 1
 gregmarziomedia.com, 1
 gregmilton.com, 1
 gregmilton.org, 1
 gregmote.com, 1
 grego.pt, 1
 gregoirow.be, 1
 gregorians.org, 1
 gregorkofler.com, 1
@@ -17432,17 +17316,16 @@ gunceloyunhileleri.com, 1
 gunhunter.com, 1
 gunwatch.co.uk, 1
 gunworld.com.au, 1
 guochang.xyz, 1
 guoke.com, 1
 guoliang.me, 1
 guozeyu.com, 1
 gupfen.ch, 1
-guphi.net, 0
 gurkan.in, 1
 gurmel.ru, 1
 gurochan.ch, 1
 gurpusmaximus.com, 1
 guru-naradi.cz, 1
 gurucomi.com, 1
 gurueffect.com, 1
 gurugardener.co.nz, 1
@@ -17650,17 +17533,16 @@ halacs.hu, 1
 halbich.design, 1
 halcyonsbastion.com, 1
 haleo.net, 1
 half-logic.eu.org, 1
 half.host, 1
 halfco.de, 1
 halfhosting.de, 1
 halfwaythere.eu, 1
-halitopuroprodutos.com.br, 1
 halkirkbouncycastles.co.uk, 1
 halkyon.net, 1
 hallelujahsoftware.com, 1
 halletienne.fr, 1
 hallettxn.com, 1
 hallhuber.com, 1
 halliday.work, 1
 halligladen.de, 1
@@ -17697,17 +17579,16 @@ handbrake.fr, 1
 handcraft.eu.org, 1
 handgelenkbandage-test.de, 1
 handknit.com.np, 1
 handlecoin.com, 1
 handleidingkwijt.com, 1
 handmade-workshop.de, 1
 handmadehechoamano.com, 1
 handmadetutorials.ro, 1
-handycommerce.co, 1
 handyglas.com, 1
 handymanlondonplease.co.uk, 1
 handynummer.online, 1
 handysex.live, 1
 handyticket.de, 1
 hanfox.co.uk, 0
 hanfverband-erfurt.de, 1
 hang333.moe, 1
@@ -17785,17 +17666,17 @@ hardergayporn.com, 1
 hardertimes.com, 1
 hardesec.com, 1
 hardez.de, 1
 hardfalcon.net, 1
 hardforum.com, 1
 hardh.at, 1
 hardloopfysio.nl, 1
 hardrain980.com, 1
-hardtfrieden.de, 1
+hardtfrieden.de, 0
 hardtime.ru, 1
 hardwareschotte.de, 1
 haribilalic.com, 1
 harilova.fr, 1
 harion.fr, 1
 harisht.me, 0
 haritsa.co.id, 1
 harjitbhogal.com, 1
@@ -17825,16 +17706,17 @@ hartlep.email, 1
 hartlieb.me, 1
 hartzer.com, 1
 harukakikuchi.com, 1
 haruue.moe, 1
 harvarddharma.org, 1
 harvestapp.com, 1
 harvester.fr, 1
 harveyauzorst.com, 1
+harveymilton.com, 1
 has-no-email-set.de, 0
 has.work, 1
 hasabig.wang, 1
 hasalittle.wang, 1
 haschrebellen.de, 1
 hasdf.de, 1
 hasecuritysolutions.com, 1
 haselsteiner.me, 1
@@ -17849,22 +17731,23 @@ hashicorp.com, 1
 hashimah.ca, 1
 hashimoto-jimusho.com, 1
 hashinteractive.com, 1
 hashish.net, 1
 hashiura.jp, 1
 hashnode.com, 1
 hashplex.com, 1
 hashru.nl, 1
+hashworks.net, 1
 hasilocke.de, 1
 haskovec.com, 1
 hasselbach-dellwig.de, 1
 hatarisecurity.co.ke, 1
 hatethe.uk, 1
-hatisenang.com, 1
+hatisenang.com, 0
 hatpakha.com, 1
 hatul.info, 1
 haucke.xyz, 1
 hauntedfishtank.com, 0
 hauntedhouserecords.co.uk, 1
 haus-garten-test.de, 1
 haus-henne.de, 1
 haus-zeitlos.de, 1
@@ -17987,17 +17870,16 @@ hearmeraw.uk, 1
 heart.taxi, 1
 heartbeat24.de, 1
 heartgames.pl, 1
 heartlandbiomed.com, 1
 heartmdinstitute.com, 1
 heartsintrueharmony.com, 1
 heartsucker.com, 0
 hearttruth.gov, 1
-heartview.com.br, 1
 heartwoodart.com, 1
 hearty.blog, 1
 hearty.ga, 1
 hearty.gq, 1
 hearty.ink, 1
 hearty.me, 1
 hearty.ml, 1
 hearty.ooo, 1
@@ -18043,17 +17925,16 @@ heftkaufen.de, 1
 hegen.com.pl, 0
 hegen.cz, 0
 hegen.sk, 0
 hegenshop.de, 1
 heh.ee, 1
 heha.co, 0
 heiaheia.com, 1
 heid.ws, 1
-heidisheroes.org, 1
 heijdel.nl, 1
 heikorichter.name, 1
 heiland.io, 1
 heiliger-gral.info, 1
 heilpraxis-bgl.de, 1
 heimatverein-eitensheim.de, 1
 heimdallr.nl, 1
 heimonen.eu, 1
@@ -18107,17 +17988,16 @@ hellsh.com, 1
 helmut-a-binser.de, 1
 help.simpletax.ca, 1
 helpantiaging.com, 1
 helpconnect.com.au, 1
 helpekwendenihospital.com, 1
 helpgoabroad.com, 1
 helpmij.cf, 1
 helpscoutdocs.com, 1
-helpstarloja.com.br, 1
 helsingfors.guide, 1
 helsinki.dating, 1
 helvella.de, 1
 hematoonkologia.pl, 1
 hemdal.se, 1
 hemnet.se, 1
 hen.ne.ke, 1
 henchman.io, 1
@@ -18262,30 +18142,29 @@ hhmmmm.de, 1
 hhs.gov, 1
 hialatv.com, 1
 hibari.moe, 1
 hiccupsandjuice.co.uk, 1
 hickorywinecellar.com, 1
 hicl.org, 1
 hicoria.com, 1
 hidbo.de, 1
-hiddendepth.ie, 0
+hiddendepth.ie, 1
 hiddenhillselectric.com, 1
 hiddenhillselectrical.com, 1
 hiddenhillselectrician.com, 1
 hiddenhillsexteriorlighting.com, 1
 hiddenhillslandscapelighting.com, 1
 hiddenhillslighting.com, 1
 hiddenhillsoutdoorlighting.com, 1
 hiddenmalta.net, 1
 hideallip.com, 1
 hidedd.com, 1
 hideouswebsite.com, 1
 hideout.agency, 1
-hidroshop.com.br, 1
 hieu.com.au, 1
 hig.gov, 1
 higgsboson.tk, 1
 higgstools.org, 1
 higherpress.org, 1
 highland-webcams.com, 1
 highlandparkcog.org, 1
 highlatitudestravel.com, 1
@@ -18375,17 +18254,16 @@ history.google.com, 1
 history.pe, 1
 hitandhealth.nl, 1
 hitchunion.org, 1
 hiteco.com, 1
 hititgunesi-tr.com, 1
 hitmanstat.us, 1
 hitn.at, 1
 hitoapi.cc, 1
-hitocom.net.br, 1
 hitokoto-mania.com, 1
 hitokoto.cn, 1
 hitomecha.com, 1
 hitrek.ml, 1
 hitter-lauzon.com, 1
 hitter.family, 1
 hitterfamily.com, 1
 hiv-symptome.de, 1
@@ -18635,18 +18513,16 @@ horrormovies.gr, 1
 horrorserv.com, 1
 horsehunter.co.uk, 1
 horstmanshof.eu, 1
 horton-brasses.com, 1
 horvathd.eu, 1
 horvatnyelvkonyv.hu, 1
 hory.me, 1
 horza.org, 1
-hoshimaq.com.br, 1
-hoshimaquinas.com.br, 1
 hoshinplan.com, 1
 hoshisato.com, 1
 hosiet.me, 1
 hosmussynergie.nl, 0
 hospitalhomelottery.org, 1
 hostadvice.com, 1
 hostam.link, 1
 hostarea51.com, 1
@@ -18761,17 +18637,16 @@ hp-work.net, 1
 hp42.de, 1
 hpac-portal.com, 1
 hpbn.co, 1
 hpeditor.tk, 1
 hpepub.com, 1
 hpepub.org, 0
 hpisavageforum.com, 1
 hpkp-faq.de, 1
-hpnow.com.br, 1
 hps.hu, 1
 hqq.tv, 1
 hquest.pro.br, 1
 hqwebhosting.tk, 0
 hr-tech.shop, 1
 hr-tech.store, 1
 hr98.tk, 1
 hr98.xyz, 1
@@ -18787,17 +18662,16 @@ hrjfeedstock.com, 1
 hrjfeedstock.org, 1
 hrk.io, 1
 hrndz.io, 1
 hrobert.hu, 1
 hroling.nl, 1
 hroschyk.cz, 1
 hrstapps-dev.com, 1
 hrtech.shop, 1
-hru.gov, 1
 hryniewski.net, 1
 hryx.net, 1
 hs-arbeitsschutz.de, 1
 hs-group.net, 1
 hs-umformtechnik.de, 1
 hsappstatic.net, 1
 hscorp.de, 1
 hserver.top, 1
@@ -19043,17 +18917,16 @@ hyckenberg.com, 1
 hyderabadonlinegifts.com, 1
 hydra.zone, 1
 hydrante.ch, 1
 hydrasolutions.de, 1
 hydro17.com, 1
 hydroagro.pl, 1
 hydrocloud.net, 1
 hydrographicsocietybenelux.eu, 1
-hydronyx.me, 1
 hydroturbine.info, 1
 hydrozone.fr, 1
 hyec.jp, 1
 hygo.com, 1
 hyk.me, 1
 hylemorphica.org, 1
 hylians.com, 1
 hynek.me, 1
@@ -19313,17 +19186,16 @@ ie.search.yahoo.com, 0
 iea-annex61.org, 1
 iec.pe, 1
 ieedes.com, 1
 ieeedeis.org, 1
 ieeesb.nl, 1
 ieeesbe.nl, 1
 ieeespmb.org, 1
 ieji.de, 0
-iemas.azurewebsites.net, 1
 iemb.cf, 1
 iemb.tk, 1
 ienakanote.com, 0
 ies-italia.it, 1
 ieval.ro, 1
 iewar.com, 1
 if0.ru, 1
 ifamily.top, 0
@@ -19903,17 +19775,16 @@ ins1gn1a.com, 1
 insane.zone, 1
 insblauehinein.nl, 1
 inschrijfformulier.com, 1
 inscomers.net, 1
 inscripcionessena.com, 1
 insecure.org.je, 1
 insertcoins.net, 1
 insgesamt.net, 1
-inshapenutrition.com.br, 1
 inside19.com, 1
 insideaudit.com, 1
 insideofgaming.de, 1
 insidethefirewall.tk, 1
 insightera.co.th, 1
 insighti.com, 1
 insighti.eu, 1
 insighti.org, 1
@@ -19939,33 +19810,33 @@ instamojo.com, 1
 instant-hack.io, 1
 instant-thinking.de, 1
 instant.io, 1
 instantkhabar.com, 1
 instaquiz.ru, 1
 instasex.ch, 1
 instava.cz, 1
 instawi.com, 1
+instead.com.au, 1
 instela.com, 1
 instelikes.com.br, 1
 instics.com, 1
 instinctive.io, 1
 instinctiveads.com, 1
 institut-confucius-montpellier.org, 1
 institutmaupertuis.hopto.org, 1
 institutolancaster.com, 0
 institutulcultural.ro, 1
 instrumart.ru, 0
 insult.es, 1
 insurance, 1
 insurance321.com, 1
 insureon.com, 1
 insurgentsmustdie.com, 1
 int-ext-design.fr, 1
-int-ma.in, 1
 intae.it, 1
 intafe.co.jp, 1
 intal.info, 1
 intarweb.ca, 1
 intasky.cz, 1
 intasky.sk, 1
 integraelchen.de, 1
 integralblue.com, 1
@@ -20005,17 +19876,16 @@ interaktiva.fi, 1
 interasistmen.se, 1
 interchangedesign.com, 1
 interchanges.io, 1
 intercom.com, 1
 intercom.io, 1
 interessiert-uns.net, 1
 interfesse.net, 1
 interfloraservices.co.uk, 1
-interflores.com.br, 1
 intergenx.co.uk, 1
 intergenx.com, 1
 intergenx.org, 1
 intergenx.org.uk, 1
 intergozd.si, 1
 interiery-waters.cz, 1
 interimages.fr, 1
 interiorcheapo.com, 1
@@ -20058,17 +19928,16 @@ interserved.com, 0
 interspot.nl, 1
 intertime.services, 1
 interview-suite.com, 1
 interviewpipeline.co.uk, 1
 interways.de, 1
 intheater.de, 1
 inthepicture.com, 1
 inthouse.cloud, 1
-intimastoreatacado.com.br, 1
 intita.com, 1
 intl-webs.com, 1
 intmissioncenter.org, 1
 into.technology, 1
 intocities.de, 0
 inton.biz, 1
 intoparking.com, 0
 intpforum.com, 1
@@ -20197,16 +20066,17 @@ ipleak.net, 1
 ipledgeonline.org, 0
 iplog.info, 1
 ipmonitoring.hu, 1
 ipmotion.ca, 1
 ipnetworking.net, 1
 ipo-times.jp, 1
 ipokabu.net, 1
 ipomue.com, 0
+ipop.gr, 1
 iposm.net, 1
 ipresent.com, 1
 iprim.ru, 1
 iproducemusic.com, 1
 ipsec.pl, 1
 ipssl.li, 1
 ipstoragesolutions.com, 1
 ipstream.it, 1
@@ -20405,17 +20275,16 @@ isvsecwatch.org, 1
 isyu.xyz, 1
 isz.no, 1
 it-academy.sk, 1
 it-adminio.ru, 1
 it-enthusiasts.tech, 1
 it-faul.de, 1
 it-fernau.com, 1
 it-jobbank.dk, 1
-it-kron.de, 1
 it-maker.eu, 1
 it-rotter.de, 1
 it-schamans.de, 1
 it-seems-to.work, 1
 it-service24.at, 1
 it-service24.ch, 1
 it-service24.com, 1
 it-shamans.de, 1
@@ -20613,17 +20482,16 @@ jababu.cz, 1
 jabbari.io, 1
 jabbas.eu, 1
 jabber.at, 1
 jabberfr.org, 1
 jabbers.one, 1
 jabberzac.org, 1
 jaberg-rutschi.ch, 1
 jabergrutschi.ch, 1
-jability.ovh, 1
 jabjab.de, 1
 jaccblog.com, 1
 jacekowski.org, 1
 jacik.cz, 1
 jackdawphoto.co.uk, 1
 jackdelik.de, 1
 jackf.me, 1
 jackhoodtransportation.com, 1
@@ -20756,16 +20624,17 @@ jan-hill.com, 1
 jan-rieger.de, 1
 jan-roenspies.de, 1
 jan-von.de, 1
 janada.cz, 1
 janaundgeorgsagenja.eu, 1
 janbrodda.de, 1
 jandev.de, 1
 janduchene.ch, 1
+janebondsurety.com, 1
 janehamelgardendesign.co.uk, 1
 jangocloud.tk, 1
 janheidler.dynv6.net, 1
 janhuelsmann.com, 1
 jani.media, 1
 janiat.com, 1
 janik.xyz, 0
 janikrabe.com, 1
@@ -20923,17 +20792,16 @@ jeffersonregan.co.uk, 1
 jeffersonregan.com, 1
 jeffersonregan.net, 1
 jeffersonregan.org, 1
 jeffhaferman.com, 1
 jeffhuxley.com, 1
 jeffmcneill.com, 1
 jeffreyhaferman.com, 1
 jeffri.me, 1
-jeffsanders.com, 1
 jefftickle.com, 1
 jeffwebb.com, 1
 jefrydco.id, 1
 jej.cz, 1
 jej.sk, 1
 jekhar.com, 1
 jelena-adeli.com, 1
 jelewa.de, 1
@@ -21265,17 +21133,16 @@ johnmichel.org, 1
 johnmorganpartnership.co.uk, 1
 johnnybet.com, 1
 johnnybsecure.com, 1
 johnroach.io, 1
 johnroberts.me, 1
 johnrockefeller.net, 1
 johnsanchez.io, 1
 johnsegovia.com, 1
-johnsiu.com, 1
 johnsonho.net, 1
 johntomasowa.com, 1
 johnvanhese.nl, 1
 johnyytb.be, 1
 joi-dhl.ch, 1
 joinamericacorps.gov, 1
 jointotem.com, 1
 jojosplaycentreandcafeteria.co.uk, 1
@@ -21382,17 +21249,16 @@ joshharmon.me, 1
 joshlovephotography.co.uk, 1
 joshpanter.com, 1
 joshrickert.com, 1
 joshruppe.com, 1
 joshschmelzle.com, 1
 joshtriplett.org, 1
 joshua-kuepper.de, 1
 joshua.bio, 1
-joshuadmiller.info, 1
 joshuajohnson.ca, 1
 joshuarogers.net, 1
 josoansi.de, 1
 jouetspetitechanson.com, 1
 journeyfriday.rocks, 1
 journeytomastery.net, 1
 jovani.com, 0
 joviam.com, 1
@@ -21660,17 +21526,16 @@ kaamoscreations.com, 1
 kaangenc.me, 1
 kaany.io, 1
 kaasbesteld.nl, 1
 kaashosting.nl, 1
 kaatha-kamrater.se, 1
 kab-s.de, 1
 kabaca.design, 1
 kabarlinux.id, 1
-kabashop.com.br, 1
 kabeltv.co.nz, 1
 kabeuchi.com, 1
 kaboom.pw, 1
 kabu-abc.com, 1
 kabus.org, 1
 kachelfm.nl, 1
 kachlikova2.cz, 1
 kack.website, 1
@@ -21686,17 +21551,17 @@ kaibol.com, 1
 kaigojj.com, 1
 kaika-facilitymanagement.de, 1
 kaikei7.com, 1
 kaileymslusser.com, 1
 kainetsoft.com, 1
 kainz.be, 1
 kairion.de, 0
 kaisakura.net, 1
-kaisev.net, 1
+kaisev.net, 0
 kaitol.click, 1
 kaiusaltd.com, 1
 kaivac-emea.com, 1
 kaizenreporting.com, 1
 kaizeronion.com, 1
 kajak.land, 1
 kajlovo.cz, 1
 kaka.farm, 1
@@ -22093,17 +21958,16 @@ kevinpirnie.com, 1
 kevinrandles.com, 1
 kevinratcliff.com, 1
 kevyn.lu, 1
 kewego.co.uk, 1
 keybase.io, 1
 keybored.co, 1
 keybored.me, 1
 keycdn.com, 1
-keycenter.com.br, 1
 keycontainers.co.za, 1
 keyerror.com, 1
 keygen.sh, 1
 keyholdingservices.co.uk, 1
 keyhomechecker.com, 1
 keyihao.cn, 1
 keyinfo.io, 1
 keylaserinstitute.com, 1
@@ -22128,17 +21992,17 @@ kgnk.ru, 1
 khaledgarbaya.net, 0
 khanovaskola.cz, 1
 khas.co.uk, 1
 khasiatmanfaat.com, 1
 kheshtar.pl, 1
 khetzal.info, 1
 khipu.com, 1
 khlee.net, 1
-khmb.ru, 0
+khmb.ru, 1
 khosla.uk, 1
 khoury-dulla.ch, 1
 khs1994.com, 1
 khudothiswanpark.vn, 1
 kiadoapartman.hu, 1
 kiahoriane.com, 1
 kiaka.co, 1
 kiano.net, 1
@@ -22184,17 +22048,16 @@ kieran.ie, 1
 kieranjones.uk, 1
 kieranweightman.me, 1
 kiesuwkerstkaart.nl, 1
 kievradio.com, 1
 kiffmarks.com, 1
 kigmbh.com, 1
 kikbb.com, 1
 kiki-voice.jp, 1
-kikimilyatacado.com.br, 1
 kiku.pw, 1
 kikuzuki.org, 1
 kilerd.me, 1
 kilianvalkhof.com, 1
 killaraapartments.com.au, 1
 killdeer.com, 1
 killerit.in, 1
 killerrobots.com, 1
@@ -22333,16 +22196,17 @@ kivitelezesbiztositas.hu, 1
 kiwi.com, 1
 kiwi.digital, 1
 kiwi.global, 1
 kiwi.wiki, 1
 kiwico.com, 1
 kiwipayment.com, 1
 kiwipayments.com, 1
 kiwiplace.com, 1
+kix.moe, 1
 kiyotatsu.com, 1
 kj-prince.com, 1
 kj1396.net, 1
 kj1397.com, 1
 kjaer.io, 1
 kjarni.cc, 1
 kjarrval.is, 1
 kjchernov.info, 1
@@ -22492,16 +22356,17 @@ koe.hn, 1
 koebbes.de, 1
 koecollege.com, 1
 koehn.com, 1
 koelbli.ch, 1
 koelnmafia.de, 1
 koenen-bau.de, 1
 koenigsbrunner-tafel.de, 1
 koenleemans.nl, 1
+koenrouwhorst.nl, 0
 koerper-wie-seele.de, 0
 koerperkult.ch, 1
 koertner-muth.com, 1
 koertner-muth.de, 1
 koethen-markt.de, 1
 koetjesenkanker.nl, 1
 koez-mangal.ch, 1
 kofler.info, 1
@@ -22747,17 +22612,16 @@ kristikala.nl, 1
 kristinbailey.com, 0
 kristofba.ch, 1
 kristofdv.be, 1
 krizevci.info, 1
 krk-media.pl, 0
 krmeni.cz, 0
 krokedil.se, 1
 krokodent.de, 1
-kromamoveis.com.br, 1
 kromonos.net, 1
 kronaw.it, 1
 krony.de, 1
 kronych.cz, 1
 kroon.email, 1
 kropkait.pl, 1
 krouzkyliduska.cz, 1
 kroy.io, 1
@@ -22809,22 +22673,23 @@ kuaza.com, 1
 kub.hr, 1
 kubica.ch, 1
 kubierecki.pl, 1
 kubik-rubik.de, 0
 kubiwa.net, 1
 kubkprf.ru, 1
 kublis.ch, 1
 kubusadvocaten.nl, 1
+kuchenfeelisa.de, 1
 kuchentraum.eu, 1
 kucheryavenkovn.ru, 1
 kucnibudzet.com, 1
 kucukayvaz.com, 1
 kudo.co.id, 1
-kueche-co.de, 1
+kueche-co.de, 0
 kuechenprofi-group.de, 0
 kuehndel.org, 1
 kuehnel-bs.de, 1
 kuehnel-online.eu, 1
 kuemmerlin.eu, 1
 kuemmling.eu, 1
 kuhn-elektrotechnik.de, 1
 kuhne-electronic.de, 1
@@ -22878,17 +22743,16 @@ kusochi.eu, 1
 kutinsoft.com, 1
 kutny.cz, 1
 kutsankaplan.com, 1
 kuttler.eu, 1
 kutukupret.com, 1
 kutus.ee, 1
 kuwago.io, 1
 kuzbass-pwl.ru, 1
-kuzdrowiu24.pl, 1
 kvadratnimeter.si, 1
 kvalita-1a.cz, 1
 kvalitnitesneni.cz, 1
 kvantel.no, 1
 kvcc.com.au, 1
 kvetinymilt.cz, 1
 kvhile.com, 1
 kvilt.dk, 1
@@ -23066,17 +22930,16 @@ lakesherwoodelectric.com, 1
 lakesherwoodelectrical.com, 1
 lakesherwoodelectrician.com, 1
 lakesherwoodexteriorlighting.com, 1
 lakesherwoodlandscapelighting.com, 1
 lakesherwoodlighting.com, 1
 lakesherwoodoutdoorlighting.com, 1
 lakeshowlife.com, 1
 lakewoodcomputerservices.com, 1
-lakonia.com.br, 1
 lalalab.com, 1
 lalaya.fr, 1
 laled.ch, 1
 lalucioledigitale.com, 1
 lalunecreative.com, 1
 lalyre-corcelles.ch, 1
 lamaisondelatransformationculturelle.com, 1
 lamakat.de, 1
@@ -23442,26 +23305,23 @@ lebens-fluss.at, 1
 lebensraum-fitness-toenisvorst.de, 1
 lebensraum-im-garten.de, 1
 lebihan.pl, 1
 leblanc.io, 1
 lebosse.me, 1
 lebourgeo.is, 1
 lechaudrondupertuis.ch, 1
 lechiennoir.net, 1
-leclaire.com.br, 1
 lecoinchocolat.com, 1
 lectricecorrectrice.com, 1
 led.xyz, 1
-ledecologie.com.br, 1
 ledeguisement.com, 1
 lederer-it.com, 1
 ledlampor365.se, 1
 ledlight.com, 1
-ledscontato.com.br, 1
 ledzom.ru, 0
 lee-fuller.co.uk, 1
 leebiblestudycenter.co.uk, 1
 leebiblestudycenter.com, 1
 leebiblestudycentre.co.uk, 1
 leebiblestudycentre.com, 1
 leebiblestudycentre.net, 1
 leebiblestudycentre.org, 1
@@ -23486,20 +23346,21 @@ lefebvristes.com, 1
 lefebvristes.fr, 1
 leflibustier.ru, 1
 lefonddeloeil.com, 1
 leftclick.cloud, 1
 leftclick.eu, 1
 lega-dental.com, 1
 legacy.bank, 1
 legadental.com, 1
-legaillart.fr, 1
+legaillart.fr, 0
 legal.farm, 1
 legalcontrol.info, 1
 legaleus.co.uk, 1
+legalinmotion.es, 1
 legalrobot-uat.com, 1
 legalrobot.com, 1
 legaltip.eu, 1
 legatofmrc.fr, 1
 legendarycamera.com, 1
 legendesdechine.ch, 1
 legendofkrystal.com, 1
 legends-game.ru, 0
@@ -23706,17 +23567,16 @@ lfashion.eu, 1
 lfaz.org, 1
 lfgss.com, 1
 lfklzw.com, 1
 lfrconseil.com, 1
 lgbt.io, 1
 lgbt.ventures, 1
 lgbtventures.com, 1
 lghfinancialstrategy.ch, 1
-lgpecasoriginais.com.br, 1
 lgsg.us, 1
 lhajn.cz, 1
 lhakustik.se, 1
 lhalbert.xyz, 1
 lhasaapso.com.br, 1
 lhconsult.tk, 0
 lheinrich.org, 1
 lhost.su, 1
@@ -23815,28 +23675,27 @@ lifegrip.com.au, 1
 lifeinhex.com, 1
 lifeinsurancepro.org, 1
 lifekiss.ru, 1
 lifematenutrition.com, 1
 lifemstyle.com, 1
 lifenexto.com, 1
 lifeqa.net, 1
 lifequotes-uk.co.uk, 1
-lifesafety.com.br, 1
 lifestyle7788.com, 1
 lifestylefinancial.ca, 1
 lifestyler.me, 1
 lifi.digital, 1
 lifi.is, 1
 liftie.info, 1
 light-up.xyz, 1
 light.mail.ru, 1
 lightbox.co, 1
+lightdark.xyz, 1
 lightdream.tech, 1
-lighthouseinstruments.com, 1
 lighting-centres.co.uk, 1
 lightingagoura.com, 1
 lightingagourahills.com, 1
 lightingcalabasas.com, 1
 lightingconejovalley.com, 1
 lightingdosvientos.com, 1
 lightinghiddenhills.com, 1
 lightinglakesherwood.com, 1
@@ -23911,17 +23770,16 @@ limunana.com, 1
 lin.fi, 1
 linan.blog, 1
 lincdavis.com, 1
 lincnaarzorg.nl, 1
 lincolnfinewines.com, 1
 lincolnsfh.com, 1
 lindalap.fi, 1
 lindemann.space, 1
-linden.me, 1
 lindeskar.se, 1
 lindholmen.club, 1
 lindnerhof-taktik.de, 1
 lindo.ru, 1
 lindon.pw, 1
 lindsayanderson.com, 1
 lindsaygorski.com, 1
 lindskogen.se, 1
@@ -23930,17 +23788,16 @@ line.biz, 1
 line.co.nz, 1
 lineageos.org, 1
 linearaudio.net, 1
 linearaudio.nl, 1
 linearmap.com, 1
 linernotekids.com, 1
 linext.cn, 1
 linfamilygc.com, 1
-lingerie.com.br, 1
 lingeriesilhouette.com, 1
 lingotaxi.com, 1
 lingting.vip, 1
 linguamilla.com, 1
 linguatrip.com, 0
 lingvo-svoboda.ru, 1
 linherest.tk, 1
 link-sanitizer.com, 1
@@ -24122,18 +23979,16 @@ livi.co, 1
 living-space.co.nz, 1
 living24.de, 1
 livingforreal.com, 1
 livinglocalnashville.com, 1
 livingworduk.org, 1
 livnev.me, 1
 livnev.xyz, 1
 livolett.de, 1
-livrariacoad.com.br, 1
-livroseuniformes.com.br, 1
 lixtick.com, 1
 liyin.date, 1
 liyinjia.com, 1
 liz.ee, 1
 lizardsystems.com, 1
 lizhi.io, 1
 lizhi123.net, 1
 lizzaran.io, 1
@@ -24187,17 +24042,16 @@ lobosdomain.no-ip.info, 1
 lobsangstudio.com, 1
 lobstr.co, 1
 locais.org, 1
 local360.net, 1
 localbandz.com, 1
 localbitcoins.com, 1
 localblock.co.za, 1
 localbouncycastle.com, 1
-localdecor.com.br, 1
 localethereum.com, 1
 localhorst.duckdns.org, 1
 localhorst.xyz, 1
 localhost.ee, 1
 localprideart.com, 1
 localspot.pl, 1
 locapos.com, 1
 location-fichier-email.com, 1
@@ -24249,17 +24103,16 @@ locksmithseattleco.com, 1
 locksmithservice-houston.com, 1
 locksmithspring.com, 1
 locksmithspringtx.com, 1
 locksmithswestville.com, 1
 locksmiththewoodlands.com, 1
 locksport.org.nz, 1
 locomore.com, 1
 locomotionds.com, 1
-locomotive.net.br, 1
 locurimunca.co, 1
 lodash.com, 0
 loddeke.eu, 1
 lode.li, 1
 lodewijkict.nl, 1
 loenshotel.de, 1
 loew.de, 1
 loforo.com, 1
@@ -24303,42 +24156,24 @@ logopaediereinhard.de, 1
 logopedistalanni.it, 1
 logophiliapress.com, 1
 logopoeia.com, 1
 logostock.jp, 1
 logtalk.org, 1
 logtalk.pt, 1
 logue.be, 1
 logze.nl, 1
-lohanaflores.com.br, 1
 lohmeier.it, 1
 loichot.ch, 1
 loigiai.net, 1
 loihay.net, 1
-lojadamimo.com.br, 1
-lojadanidrea.com.br, 1
-lojadarenda.com.br, 1
-lojadewhisky.com.br, 1
-lojadoarcomprimido.com.br, 1
-lojadoprazer.com.br, 1
 lojadosomautomotivo.com.br, 1
-lojafazendoarte.com.br, 1
-lojafilipaper.com.br, 1
 lojahunamarcenaria.com.br, 1
 lojamagicalx.com, 1
-lojamascate.com.br, 1
-lojamoleco.com.br, 1
-lojaprimemed.com.br, 1
-lojaprojetoagua.com.br, 1
-lojasceletro.com.br, 1
-lojatema.com.br, 1
-lojaterrazul.com.br, 1
-lojavirtualfc.com.br, 1
 lojavirtualfct.com.br, 1
-lojavisamed.com.br, 1
 lojix.com, 1
 lojj.pt, 1
 lok.space, 1
 lokaal.org, 1
 loket.nl, 1
 lolcorp.pl, 1
 lolcow.farm, 1
 lolhax.org, 1
@@ -24863,17 +24698,16 @@ mafiasi.de, 1
 magasindejouets.com, 1
 magasinsalledebain.be, 1
 magasinsalledebain.fr, 1
 magasinsalledebains.be, 1
 magasinsalledebains.fr, 1
 magasinsenfrance.com, 1
 magazin3513.com, 1
 magazinedabeleza.net, 1
-magazinedotreino.com.br, 1
 magdic.eu, 1
 magebit.com, 1
 magenbrot.net, 0
 magenda.sk, 1
 magentaize.net, 1
 magentapinkinteriors.co.uk, 1
 magentoeesti.eu, 1
 magewell.nl, 1
@@ -24892,17 +24726,16 @@ magickmoments.co.uk, 1
 magiclen.org, 1
 magicspaceninjapirates.de, 1
 magictable.com, 1
 magicvodi.at, 1
 magieamour.com, 1
 magilio.com, 1
 magnacarebroker.com, 1
 magnacumlaude.co, 1
-magnatronic.com.br, 1
 magneticattraction.com.au, 1
 magnetpass.uk, 1
 magnets.jp, 1
 magnettracker.com, 1
 magnificentdata.com, 1
 magnoliadoulas.com, 1
 magnoliasib.ru, 0
 magnoliastrong.com, 1
@@ -24969,16 +24802,18 @@ majahoidja.ee, 1
 majaweb.cz, 1
 majemedia.com, 1
 majesnix.org, 1
 majid.info, 1
 majkassab.com, 1
 majkassab.net, 1
 majkassab.org, 1
 majkl.me, 1
+majkl.xyz, 1
+majkl578.cz, 1
 majkyto.cz, 1
 majolka.com, 1
 makaleci.com, 1
 makalu.me, 1
 make-your-own-song.com, 1
 makeaboldmove.com, 1
 makedin.net, 1
 makeit-so.de, 0
@@ -25027,17 +24862,16 @@ malkaso.com.ua, 1
 mall.cz, 1
 mall.hr, 1
 mall.hu, 1
 mall.pl, 1
 mall.sk, 1
 mallach.net, 1
 mallhonda.com, 1
 mallner.me, 1
-mallonline.com.br, 1
 malmoesport.se, 1
 malnex.de, 1
 malscan.com, 1
 malscan.org, 1
 malta-firma.com, 1
 malufs.com.br, 1
 malvy.kiev.ua, 1
 malware.watch, 1
@@ -25201,17 +25035,16 @@ marcelsiegert.com, 1
 marcelwaldvogel.ch, 1
 marcelwiedemeier.com, 0
 marcelwolf.coach, 1
 marcgoertz.de, 1
 marche-contre-monsanto.ch, 1
 marche-nordic-jorat.ch, 1
 marchukov.com, 1
 marchwj.pl, 1
-marciaimportados.com.br, 1
 marcianoandtopazio.com, 1
 marclay.co.uk, 1
 marco-goltz.de, 1
 marco-hegenberg.net, 1
 marco-kretz.de, 1
 marco-polo-reisen.com, 1
 marcocasoni.com, 1
 marcohager.de, 1
@@ -25441,17 +25274,16 @@ massive.tk, 1
 massoni.pl, 1
 massotherapeutique.com, 1
 masta.ch, 1
 mastah.fr, 1
 mastd.fr, 1
 mastd.me, 0
 mastd.onl, 1
 mastellone.us, 1
-mastepinnelaand.nl, 1
 master-net.org, 1
 mastercardpac.com, 1
 masterdemolitioninc.com, 1
 masterdigitale.com, 1
 masterhelenaroma.com, 1
 masterofallscience.com, 1
 masterofbytes.ch, 1
 masterpc.co.uk, 1
@@ -25479,17 +25311,16 @@ matatabimix.com, 1
 match.audio, 1
 matcha-iga.jp, 1
 matchatea24.com, 1
 matchboxdesigngroup.com, 1
 matchneedle.com, 1
 matdogs.com, 1
 matejgroma.com, 1
 matel.org, 1
-materiaischiquinho.com.br, 1
 material-ui.com, 1
 material-world-fuyouhin.com, 1
 materialism.com, 1
 materialyinzynierskie.pl, 1
 maternum.com, 1
 mateuszchyla.pl, 1
 mateuszpilszek.pl, 1
 math.hamburg, 1
@@ -25510,17 +25341,16 @@ mathijskingma.nl, 1
 mathis.com.tr, 1
 maths.network, 1
 mathsource.ga, 1
 mathspace.co, 1
 mathsweek.nz, 1
 mathsweek.org.nz, 1
 mathsweek.school.nz, 1
 mathys.io, 1
-matildajaneclothing.com, 1
 matjaz.it, 1
 matlabjo.ir, 1
 matlss.com, 1
 matok.me.uk, 1
 matome-surume.com, 1
 matomeathena.com, 1
 matoutepetiteboutique.com, 1
 matridiana.com, 1
@@ -25563,17 +25393,16 @@ matthias-muenzner.de, 1
 matthiasadler.info, 1
 matthiasbeck.com, 1
 matthiasheil.de, 1
 matthiasott.com, 1
 matthiasschwab.de, 1
 matthiasweiler.de, 0
 matthieuschlosser.fr, 1
 matthijssen.info, 1
-mattia98.org, 1
 mattiascibien.net, 1
 mattlaks.com, 1
 mattli.us, 1
 mattmccutchen.net, 1
 mattmcshane.com, 1
 mattonline.me, 1
 mattwservices.co.uk, 1
 matviet.vn, 1
@@ -25801,27 +25630,25 @@ mecanicadom.com, 1
 mecanicoautomotriz.org, 1
 mechanixdirect.co.uk, 0
 mechanus.io, 1
 mechmk1.me, 1
 mechok.ru, 1
 med-otzyv.ru, 1
 med360.at, 1
 medba.se, 1
-medcir.com.br, 1
 medcrowd.com, 1
 meddatix.com, 1
 meddelare.com, 1
 meddigital.com, 0
 mede-handover.azurewebsites.net, 1
 medeinos.lt, 1
 medexpress.co.uk, 1
 medhy.fr, 1
 medi-link.co.il, 1
-medi.com.br, 1
 media-courses.com, 0
 media-credit.eu, 1
 media-instance.ru, 1
 media-library.co.uk, 1
 media-pi.com, 1
 media-serwis.com, 1
 mediaarea.net, 1
 mediabackoffice.co.jp, 1
@@ -25999,16 +25826,17 @@ melissaadkins.com, 1
 melissaauclaire.com, 1
 melissameuwszen.nl, 1
 melitopol.co.ua, 1
 melnessgroup.com, 1
 melnikov.ch, 1
 melodic.com.au, 1
 melodicprogressivehouse.com, 1
 melodiouscode.co.uk, 1
+melodiouscode.com, 1
 melodiouscode.net, 1
 melodiouscode.uk, 1
 melodrom.de, 1
 melody-lyrics.com, 1
 melonstudios.net, 1
 melopie.com, 1
 melpomene.me, 1
 melted.me, 1
@@ -26074,17 +25902,16 @@ menzel-motors.com, 1
 menzietti.it, 1
 meo.de, 1
 mephedrone.org, 1
 mer.gd, 1
 meransuedtirol.com, 1
 meraseo.com, 1
 mercadobitcoin.com.br, 1
 mercadobitcoin.net, 1
-mercadoleal.com.br, 1
 mercadopago.com, 1
 mercanix.co.uk, 1
 mercari.com, 1
 mercedes-benz.io, 1
 mercedes-ig.de, 1
 mercedespartscenter.com, 1
 merchant-automotive.com, 1
 mercier-auto.com, 1
@@ -26095,17 +25922,16 @@ meremeti-online.gr, 1
 meremobil.dk, 1
 merenbach.com, 1
 merenita.com, 1
 merenita.eu, 1
 merenita.net, 1
 merenita.nl, 1
 meric-graphisme.info, 1
 meridianmetals.com, 1
-meridianstore.com.br, 1
 merimatka.fi, 1
 merkel.me, 1
 merlet.eu, 1
 merlinsoap.com, 1
 merloat.club, 1
 merloat.com, 1
 merojob.com, 1
 meronberry.jp, 1
@@ -26141,17 +25967,16 @@ meta-db.com, 1
 meta.sc, 1
 metachris.com, 1
 metacoda.com, 1
 metacode.biz, 1
 metadatawiki.com, 1
 metaether.net, 1
 metafurquest.net, 1
 metalu.ch, 1
-metanic.org, 1
 metanic.services, 1
 metanodo.com, 1
 metapeen.nl, 1
 metaregistrar.com, 1
 metasquare.com.au, 1
 metasquare.nyc, 1
 meteenonline.nl, 1
 meteo-parc.com, 1
@@ -26293,17 +26118,16 @@ michu.pl, 1
 mickelvaessen.com, 1
 mico.world, 1
 micomi.co, 1
 miconcinemas.com, 1
 micr.io, 1
 micr0lab.org, 1
 microblading.pe, 1
 microco.sm, 1
-microcomploja.com.br, 1
 microdesic.com, 1
 microdots.de, 1
 microlinks.org, 1
 microlog.org, 1
 micromata.de, 1
 microsoftaffiliates.azurewebsites.net, 1
 microvb.com, 1
 midair.io, 1
@@ -26405,17 +26229,16 @@ mil0.com, 1
 milania.de, 1
 milanpala.cz, 0
 milanstephan.de, 1
 milcahsmusings.com, 1
 mileme.com, 1
 milenaria.es, 1
 milesapart.dating, 1
 milftube.tv, 1
-milhoazul.com.br, 1
 milionshop.sk, 1
 militaryconsumer.gov, 1
 milkandcookies.ca, 1
 milkingit.co.uk, 1
 milktea.info, 1
 milldyke.com, 1
 milldyke.nl, 1
 millefleurs.eu, 1
@@ -26630,17 +26453,16 @@ miss-platinum.net, 1
 miss.com.tw, 1
 missdream.org, 1
 misseguf.dk, 1
 missevent.pl, 1
 missguidedus.com, 1
 mission-orange.de, 1
 missionsgemeinde.de, 1
 missip.nl, 1
-missjoias.com.br, 1
 misskey.jp, 1
 misskey.site, 1
 misskey.xyz, 1
 missoy.me, 1
 misssex.de, 1
 missualready.com, 1
 missycosmeticos.com.br, 1
 missyou.link, 1
@@ -26660,17 +26482,16 @@ mitaines.ch, 1
 mitarbeitermotivation-anleitungen.de, 1
 mitchellhandymanservices.co.uk, 1
 mitchelmore.ca, 1
 miticobikes.com, 1
 mitigationcommission.gov, 1
 mitior.net, 1
 mitnetz-gas.de, 1
 mitnetz-strom.de, 1
-mitrax.com.br, 1
 mitre10.com.au, 1
 mitrecaasd.org, 1
 mitremai.org, 1
 mitrostudios.com, 1
 mitsign.com, 1
 mitsu-szene.de, 1
 mitsukabose.com, 1
 mittagonggardencentre.com.au, 1
@@ -26841,17 +26662,16 @@ mobobe.com, 1
 mobsender.com, 1
 mobycoders.com, 1
 moc.ac, 1
 mocarps.hk, 1
 mochanstore.com, 1
 mochoko.com, 1
 mockerel.com, 1
 mococo.co.uk, 1
-modaexecutiva.com.br, 1
 modafinil.com, 1
 modafinil.wiki, 1
 modafo.com, 1
 modalogi.com, 1
 modalrakyat.com, 1
 modcasts.video, 1
 modded-minecraft-server-list.com, 1
 modding-forum.com, 1
@@ -26874,17 +26694,16 @@ moderatorenpool.org, 1
 modernapprenticeships.org, 1
 moderncoinmart.com, 1
 modernibytovytextil.cz, 1
 moderntld.net, 1
 modifiedmind.com, 1
 modistry.com, 1
 modistryusercontent.com, 1
 modmountain.com, 1
-modosaude.com.br, 1
 modul21.com, 1
 modul21.eu, 1
 module.market, 1
 modulex-gmbh.de, 1
 moe-max.jp, 1
 moe.pe, 1
 moechel.com, 1
 moefactory.com, 1
@@ -26950,16 +26769,17 @@ mona-antenna.com, 1
 mona-dress.com, 1
 monachatdeco.com, 1
 monaco-automaten.de, 1
 monad.io, 1
 monakasatmasr.com, 1
 monalisa.wtf, 1
 monalyse.com, 1
 monarchcleanersnc.com, 1
+monbudget.org, 1
 moncoach.ch, 1
 mondedesnovels.com, 1
 mondedie.fr, 1
 mondial-movers.nl, 1
 mondo-it.ch, 1
 moneni.com, 1
 moneoci.com.br, 1
 moneybird.com, 1
@@ -26985,16 +26805,17 @@ monitoring.kalisz.pl, 1
 monitzer.com, 1
 monix.io, 1
 monkay.de, 1
 monkeybusiness.agency, 1
 monkeydust.net, 1
 monkeyhill.us, 1
 monkeytek.ca, 1
 monkieteel.com, 1
+monkieteel.nl, 1
 monlabs.com, 1
 monloyer.quebec, 1
 monnyonle.hu, 1
 mono.cafe, 1
 mono0x.net, 1
 monobank.no, 1
 monochrometoys.com, 1
 monodukuri.com, 1
@@ -27039,16 +26860,17 @@ moodifiers.com, 1
 moodzshop.com, 1
 moojp.co.jp, 1
 moolah.rocks, 1
 moon.fish, 1
 moonagic.com, 1
 moonagic.io, 1
 moonbench.xyz, 1
 moonbot.io, 1
+moonchart.co.uk, 1
 moondrop.org, 1
 moonkin.eu, 1
 moonlightcapital.ml, 1
 moonmelo.com, 1
 moonraptor.co.uk, 1
 moonraptor.com, 1
 moonrhythm.info, 0
 moonshyne.org, 1
@@ -27144,17 +26966,16 @@ motekforcelink.nl, 1
 motezazer.fr, 1
 motherboard.services, 1
 mothereff.in, 0
 motifstudio.com.ua, 1
 motionless.nl, 1
 motiweb.fr, 1
 motocollection.pl, 1
 motohell.com, 1
-motojato.com.br, 1
 motomorgen.com, 1
 motonauticaibiza.com, 1
 motorbiketourhanoi.com, 1
 motoreflex.com, 1
 motorpointarenacardiff.co.uk, 1
 motorring.ru, 1
 motorsplus.com, 0
 motoryachtclub-radolfzell.de, 1
@@ -27172,17 +26993,16 @@ mountainactivitysection.org.uk, 1
 mountainchalet.blue, 1
 mountainroseherbs.com, 1
 mountainspringsrentals.ca, 1
 mountfarmer.de, 1
 mousemessages.com, 1
 moutiezhaller.com, 1
 move.mil, 1
 moveek.com, 1
-moveisfit.com.br, 1
 moveltix.net, 1
 movember.com, 0
 movepin.com, 1
 movewellnesslab.com, 1
 movie-cross.net, 1
 movie-infos.net, 1
 movie1000.com, 1
 movie4k.life, 1
@@ -27390,17 +27210,16 @@ muk-kobetsu.com, 1
 mulaccosmetics.com, 1
 mulaisehat.com, 1
 mulej.net, 1
 mulheres18.com, 1
 muling.lu, 1
 mullens-usedcars.be, 1
 multi-vpn.biz, 1
 multibit.org, 1
-multibomasm.com.br, 1
 multicomhost.com, 1
 multigamecard.com, 1
 multigeist.de, 1
 multikalender.de, 0
 multimail.work, 1
 multimatte.com, 1
 multimed.krakow.pl, 1
 multimedia-pool.com, 1
@@ -27416,30 +27235,26 @@ multitenantlaravel.com, 1
 multitheftauto.com, 1
 multivpn.cn.com, 1
 multivpn.com.de, 1
 multivpn.com.ua, 1
 multivpn.fr, 1
 multizone.games, 1
 multrier.fr, 1
 mum.ceo, 1
-muma.ml, 1
 mumakil.fi, 1
 mumbaionlinegifts.com, 1
 muminkoykiran.com, 1
 mumolabs.com, 1
 munch.me, 1
 munchcorp.com, 1
-mundoarabe.com.br, 1
 mundodasmensagens.com, 1
-mundokinderland.com.br, 1
 mundolarraz.es, 1
 mundomagicotv.com, 1
 mundschenk.at, 1
-mundtec.com.br, 1
 munduch.cz, 1
 munduch.eu, 1
 munirajiwa.com, 1
 munki.org, 1
 munkibuilds.org, 1
 munpanel.com, 1
 munwr.com, 1
 muqu.co, 1
@@ -27447,17 +27262,16 @@ mur-vegetal-interieur.fr, 1
 murakami-sah.com, 1
 murashun.jp, 1
 muratore-roma.it, 1
 murdercube.com, 1
 murfy.kiwi, 1
 murfy.nz, 1
 murgi.de, 1
 murmel.it, 0
-murof.com.br, 1
 murray.xyz, 1
 murraya.cn, 1
 murraycoin.org, 1
 murraycolin.org, 1
 mursu.directory, 1
 murz.tv, 1
 murzik.space, 1
 musaccostore.com, 1
@@ -27643,17 +27457,17 @@ mydomaindesk.com, 1
 mydreamlifelab.com, 1
 mydreamshaadi.in, 1
 mydrone.services, 1
 mydroneservices.ca, 1
 mydroneservices.com, 1
 myeberspaecher.com, 1
 myeffect.today, 1
 myeisenbahn.de, 1
-myeml.net, 1
+myeml.net, 0
 myepass.bg, 1
 myepass.de, 1
 myessaygeek.com, 1
 myetherwallet.com, 1
 myf.cloud, 1
 myfantasysportstalk.com, 1
 myfappening.org, 1
 myfdic.gov, 1
@@ -27662,17 +27476,16 @@ myfirenet.com, 1
 myfishpalace.at, 1
 myfloridadeferredcomp.com, 1
 myforfaitmobile.com, 1
 myfreemp3.click, 1
 myfrenchtattoo.fr, 1
 myfunworld.de, 1
 myg21.com, 1
 mygadgetguardian.lookout.com, 0
-mygalgame.com, 1
 mygallery.homelinux.net, 1
 mygaysitges.com, 1
 mygeneral.org, 1
 mygeotrip.com, 1
 mygigabitnation.com, 1
 mygignation.com, 1
 mygirlfriendshouse.com, 1
 mygoldennetwork.com, 1
@@ -27806,20 +27619,20 @@ myrepublic.tk, 1
 myrepublic.tv, 1
 myrepublic.tw, 1
 myrepublic.us.com, 1
 myrepublic.xyz, 1
 myrepublicau.com, 1
 myrepublicaus.com, 1
 myrepublicbroadband.com.au, 1
 myrepublicfibre.com.au, 1
-myrepublicgroup.com, 0
+myrepublicgroup.com, 1
 myrepublicinternet.com.au, 1
 myrepublicltd.com, 1
-myrepublicmy.com, 0
+myrepublicmy.com, 1
 myrepublicnz.com, 1
 myrepublicsg.com, 1
 myrepublictelecom.com, 1
 myrepubllc.net, 1
 myresearchapp.com, 1
 myrevery.com, 1
 myrewardspoints.com, 1
 myriadof.com, 1
@@ -27828,17 +27641,17 @@ myrig.io, 1
 myrig.net, 1
 myrotvorets.center, 1
 myrotvorets.news, 1
 myrp.co, 1
 myruststats.com, 1
 mysber.ru, 1
 myschoolphoto.org, 1
 myseatime.com, 1
-mysecretcase.com, 1
+mysecretcase.com, 0
 mysectools.org, 1
 myself5.de, 1
 myseo.ga, 1
 myserv.one, 1
 myseu.cn, 1
 mysexydate24.com, 1
 myshirtsize.com, 1
 mysignal.com, 1
@@ -28134,17 +27947,16 @@ nature-shots.net, 1
 natureflo.net, 1
 naturesbest.co.uk, 1
 naturesorganichaven.com, 1
 natureword.com, 1
 naturheilpraxis-orlowsky.de, 1
 naturheilpraxis-p-grote.de, 1
 naturline.com, 1
 naturtint.co.uk, 1
-natusvita.com.br, 1
 natuterra.com.br, 1
 naude.co, 1
 naughty.audio, 1
 nausicaahotel.it, 1
 nautiljon.com, 1
 nautsch.de, 1
 navarralanparty.org, 1
 navdeep.ca, 1
@@ -28185,17 +27997,16 @@ nba.vg, 1
 nba2.com, 1
 nba2k.blog, 1
 nba2k.cc, 1
 nba2k.cn, 1
 nba2k.co, 1
 nba2k.com.cn, 1
 nba2k.download, 1
 nba2k.live, 1
-nba2k.net, 1
 nba2k.online, 1
 nba2k.tw, 1
 nba2kcn.com, 1
 nba2kmods.com, 1
 nba2kmt.com, 1
 nba2kmy.team, 1
 nba2kol.com, 1
 nba2konline.com, 1
@@ -28381,17 +28192,16 @@ neons.org, 1
 neophilus.net, 1
 neos.co.jp, 1
 neosdesignstudio.co.uk, 1
 neostralis.com, 1
 neotist.com, 1
 neowa.tk, 1
 neowlan.net, 1
 neoxcrf.com, 1
-neoz.com.br, 1
 nepageeks.com, 1
 nepal-evolution.org, 1
 nephelion.org, 1
 nephos.xyz, 1
 nephy.jp, 1
 nepovolenainternetovahazardnihra.cz, 1
 nepremicninar.com, 1
 nepremicnine.click, 1
@@ -28454,19 +28264,17 @@ netfuture.ch, 1
 netfxharmonics.com, 1
 nethackwiki.com, 1
 nethask.ru, 1
 nethostingtalk.com, 1
 nethruster.com, 1
 nethunter.top, 1
 netica.fr, 0
 netki.com, 1
-netlentes.com.br, 1
 netlocal.ru, 1
-netmagicas.com.br, 1
 netmeister.org, 1
 netnik.de, 1
 netnodes.net, 1
 netraising.com, 0
 netrelay.email, 1
 netrewrite.com, 1
 netrider.net.au, 0
 netrogue.ninja, 1
@@ -28581,17 +28389,16 @@ newgrowbook.com, 1
 newguidance.ch, 1
 newind.info, 1
 newizv.ru, 1
 newjianzhi.com, 1
 newkaliningrad.ru, 1
 newknd.com, 1
 newlifeband.de, 1
 newmarketbouncycastlehire.co.uk, 1
-newmed.com.br, 1
 newmediaone.net, 1
 newmovements.net, 1
 newmusicjackson.org, 1
 newodesign.com, 1
 newpathintegratedtherapy.com, 1
 newposts.ru, 1
 newreleases.io, 1
 news47ell.com, 1
@@ -28825,17 +28632,16 @@ nikz.in, 1
 nil.gs, 1
 nil.mx, 1
 niles.xyz, 1
 nilrem.org, 1
 nimeshjm.com, 1
 nimidam.com, 1
 nina-laaf.de, 1
 ninaforever.com, 1
-ninarinaldi.com.br, 1
 ninaundandre.de, 1
 ninchat.com, 1
 ninebennink.com, 1
 ninepints.co, 1
 ninesix.cc, 1
 ninespec.com, 1
 ninetaillabs.com, 1
 ninetaillabs.xyz, 1
@@ -28903,17 +28709,16 @@ nllboard.co.uk, 1
 nlleisure.co.uk, 1
 nlm.gov, 1
 nlrb.gov, 1
 nlt.by, 0
 nmd.so, 1
 nmnd.de, 1
 nmontag.com, 1
 nn.cz, 1
-nn78.com, 1
 nna774.net, 1
 nnqc.nl, 1
 no-ip.cz, 1
 no-xice.com, 1
 no.search.yahoo.com, 0
 noagendahr.org, 1
 noahjacobson.com, 1
 noahmodas.com.br, 1
@@ -29132,16 +28937,17 @@ novecity.org, 1
 novecitymail.com, 1
 novelfeed.com, 1
 novelinglife.net, 1
 novelvyretraite.fr, 1
 novfishing.ru, 1
 novgorod-avia.ru, 1
 novilaw.com, 1
 novilidery.com, 1
+novinivo.com, 1
 novodiegomaia.com.br, 1
 novojet.cl, 1
 novoresume.com, 0
 novosibavia.ru, 1
 novurania.com, 1
 nowcost.com, 1
 nowhere.dk, 1
 nowitzki.me, 1
@@ -29256,31 +29062,29 @@ nuos.org, 1
 nuovaelle.it, 1
 nuquery.com, 1
 nur.berlin, 1
 nuriacamaras.com, 1
 nursejj.com, 1
 nurseone.ca, 1
 nurses.dating, 1
 nursingschool.network, 1
-nuryahan.com.br, 1
 nussadoclub.org, 1
 nutikell.com, 1
 nutleyeducationalfoundation.org, 1
 nutleyef.org, 1
 nutonic-sports.com, 1
 nutpanda.com, 1
 nutri-spec.me, 1
 nutricaovegana.com, 1
 nutriciametabolics-shop.de, 1
 nutrieduca.com, 1
 nutrifyyourself.com, 1
 nutripedia.gr, 1
 nutrishop.com, 1
-nutrivisa.com.br, 1
 nuvechtdal.nl, 1
 nuvini.com, 1
 nuxer.fr, 1
 nv.gw, 1
 nve-qatar.com, 1
 nvl-game.tokyo, 1
 nvq.nl, 1
 nvr.bz, 1
@@ -29348,17 +29152,16 @@ oakparkelectrical.com, 1
 oakparkexteriorlighting.com, 1
 oakparklandscapelighting.com, 1
 oakparklighting.com, 1
 oakparkoutdoorlighting.com, 1
 oaksbloom.com, 1
 oakslighting.co.uk, 1
 oanalista.com.br, 1
 oasis-conference.org.nz, 1
-oasisdabeleza.com.br, 1
 oasisim.net, 1
 oatmealdome.me, 1
 obamalibrary.gov, 1
 obamawhitehouse.gov, 1
 obdolbacca.ru, 1
 oberam.de, 1
 oberhof.co, 1
 oberhofdrinks.com, 1
@@ -29380,17 +29183,16 @@ observatory.se, 1
 obsessharness.com, 1
 obsidianirc.net, 1
 obsproject.com, 1
 obtima.org, 1
 obud.cz, 1
 obyvateleceska.cz, 1
 oc-minecraft.com, 1
 oc-sa.ch, 1
-ocad.com.au, 1
 ocapic.com, 1
 ocarupo.com, 1
 occ.gov, 1
 occasion-impro.com, 1
 occenterprises.org, 1
 occentus.net, 1
 occmon.net, 1
 occonnections.org, 1
@@ -29421,17 +29223,16 @@ ocrn.nl, 1
 ocsigroup.fr, 1
 octal.es, 1
 octanio.com, 1
 octarineparrot.com, 1
 octav.name, 0
 octo.im, 1
 octod.tk, 1
 octohedralpvp.tk, 1
-octohost.net, 1
 octolopagon.games, 1
 octopus-agents.com, 1
 octosniff.net, 1
 octosys.net, 1
 octosys.org, 1
 octosys.ru, 1
 octothorpe.club, 1
 octothorpe.ninja, 1
@@ -29521,17 +29322,17 @@ ohlmeier.org, 0
 ohmayonnaise.com, 1
 ohne-name.de, 1
 ohnemusik.com, 1
 ohnonotme.com, 1
 ohol.se, 1
 ohreally.de, 1
 ohsohairy.co.uk, 1
 ohyooo.com, 1
-oi-wiki.org, 1
+oi-wiki.org, 0
 oiaio.cn, 1
 oilfieldinjury.attorney, 1
 oilpaintingsonly.com, 1
 oinky.ddns.net, 1
 oirealtor.com, 1
 oisd.nl, 1
 oita-homes.com, 1
 ojaioliveoil.com, 1
@@ -29579,24 +29380,22 @@ oldking.net, 1
 oldnews.news, 1
 oldno07.com, 1
 oldprop.com, 1
 oldroutetwo.com, 1
 oldtimerreifen-moeller.de, 1
 olegon.ru, 1
 olegs.be, 1
 oleksii.name, 1
-oleodecopayba.com.br, 1
 oles-hundehaus.de, 1
 olfnewcastle.com, 1
 olgiati.org, 1
 olgui.net, 1
 olgun.eu, 1
 olifant.fr, 1
-olightstore.com, 1
 olightstore.ro, 1
 oliode.tk, 1
 oliveoil.bot, 1
 oliveoilschool.org, 1
 oliveoiltest.com, 1
 oliveoiltimes.com, 1
 oliveraiedelabastideblanche.fr, 1
 oliverclausen.com, 1
@@ -29750,17 +29549,16 @@ online-stopwatch.com, 1
 online.net.gr, 1
 online24.pt, 1
 onlinebiller.com, 1
 onlinebizdirect.com, 0
 onlinecasino.vlaanderen, 1
 onlinecasinobluebook.com, 1
 onlinecensorship.org, 1
 onlinecollegeessay.com, 1
-onlinecorners.com, 1
 onlinefashion.it, 1
 onlineinfographic.com, 1
 onlinekmc.com, 1
 onlinelegalmarketing.com, 1
 onlinelegalmedia.com, 1
 onlinelighting.com.au, 1
 onlinemarketingtraining.co.uk, 1
 onlinepokerspelen.be, 1
@@ -29836,17 +29634,16 @@ open-gaming.net, 1
 open-infrastructure.net, 1
 open-letters.de, 1
 open-mesh.org, 1
 open-sauce-recipes.co.uk, 1
 open-source.gr, 1
 open.gl, 1
 openacademies.com, 1
 openacte.ch, 1
-openas.org, 1
 openbankproject.com, 1
 openbayes.com, 1
 openbeecloud.com, 1
 openblox.org, 1
 openbsd.id, 1
 opencad.io, 1
 opencircuit.nl, 1
 openclima.com, 1
@@ -29909,17 +29706,16 @@ opin.me, 1
 opinionicentrifuga.it, 1
 opinionipannolini.it, 1
 opioids.co.uk, 1
 opioids.com, 1
 opioids.gov, 1
 opium.io, 1
 oplop.appspot.com, 1
 opoleo.com, 0
-oportho.com.br, 1
 opp.ag, 1
 oppaiti.me, 1
 oppejoud.ee, 1
 opportunis.me, 1
 opportunity.de, 1
 opposer.me, 1
 oppwa.com, 1
 opq.pw, 1
@@ -30092,17 +29888,16 @@ otakubox.de, 1
 otakurepublic.com, 1
 otakurumi.de, 1
 otakuyun.com, 1
 otchecker.com, 1
 otellio.com, 1
 otellio.de, 1
 otellio.it, 1
 otherkinforum.com, 1
-oticasaopaulo.com.br, 1
 oticasvisao.net.br, 1
 otinane.eu, 1
 otmns.net, 1
 otorrino.pt, 1
 otoy.com, 1
 otoya.space, 1
 otr.ie, 1
 otrm.de, 1
@@ -30171,17 +29966,16 @@ oversight.garden, 1
 oversight.gov, 1
 overstap.deals, 1
 overstappen.nl, 1
 overstemmen.nl, 1
 overstockpromote.com, 1
 overthecloud.it, 1
 overthinkingit.com, 1
 overtrolls.de, 1
-overture.london, 1
 overwall.org, 1
 overzicht.pro, 1
 overzicht.ws, 1
 ovirt.org, 1
 ovix.co, 1
 ovnrain.com, 1
 ovpn.to, 1
 ovvy.net, 0
@@ -30241,17 +30035,16 @@ paarberatung-hn.de, 1
 paardenhulp.nl, 1
 paas-inf.net, 1
 paass.net, 1
 paazmaya.fi, 1
 pabloartea.ga, 1
 pablofain.com, 1
 pabuzo.vn, 1
 pacatlantic.com, 1
-pacco.com.br, 1
 pace.car, 1
 paceda.nl, 1
 pacelink.de, 1
 pacifco.com, 1
 pacificpalisadeselectric.com, 1
 pacificpalisadeselectrical.com, 1
 pacificpalisadeselectrician.com, 1
 pacificpalisadeslandscapelighting.com, 1
@@ -30387,17 +30180,16 @@ panj.ws, 1
 panjee.fr, 1
 panlex.org, 1
 panmetro.com, 1
 panoma.de, 1
 panomizer.de, 1
 panopy.co, 1
 panopy.me, 1
 panoti.com, 0
-panoxadrez.com.br, 1
 panpa.ca, 1
 panpsychism.com, 1
 panpsychist.com, 1
 pantallasled.com.mx, 1
 pantallasled.mx, 1
 pantallasyescenarios.com, 1
 pantheoncrafters.com, 1
 panthur.com.au, 0
@@ -30433,17 +30225,16 @@ papierniczy.eu, 1
 papillon-events.be, 1
 papotage.net, 1
 paprikas.fr, 1
 paraborsa.net, 1
 parachute70.com, 1
 paradais-sphynx.com, 1
 paradependentesquimicos.com.br, 1
 paradiesgirls.ch, 1
-paradigi.com.br, 1
 paradise-engineer.com, 1
 paradise-engineering.com, 1
 paradise-engineers.com, 1
 paradiselost.com, 1
 paradoxdesigns.org, 1
 paragonie.com, 0
 paragonremodeling.com, 1
 paragreen.net, 1
@@ -30731,17 +30522,16 @@ payrollhive.com, 1
 paysera.com, 1
 payslipview.com, 1
 payssaintgilles.fr, 1
 paystack.com, 1
 paytm.in, 1
 paytonmoledor.com, 1
 payupay.ru, 1
 payzang.com, 1
-payzwin.com, 1
 pb-design.ch, 1
 pb.ax, 0
 pback.se, 1
 pbcknd.ml, 1
 pbosquet.com, 1
 pbourhis.me, 1
 pbqs.site, 1
 pbr.so, 1
@@ -30765,17 +30555,16 @@ pchelpforum.net, 1
 pci-dss.hu, 1
 pci-e.net, 1
 pciconcursos.com.br, 1
 pcidss.hu, 1
 pcipac.com, 1
 pclaeuft.de, 1
 pclob.gov, 1
 pcloud.com, 1
-pcmedia.co.nz, 1
 pcmkrembangan.or.id, 1
 pcmr.info, 1
 pcnotdienst-oldenburg-rastede.de, 1
 pcrypt.org, 1
 pcsetting.com, 1
 pctonic.net, 1
 pctrouble.net, 1
 pculiar.com, 1
@@ -30810,17 +30599,16 @@ peaudorange.net, 1
 pebbles.net.in, 1
 pecker-johnson.com, 1
 peda.net, 1
 peddy.dyndns.org, 1
 pedicurean.nl, 1
 pedicureduiven.nl, 1
 pedidamanosevilla.com, 1
 pedikura-vitu.cz, 1
-pedimoda.com.br, 1
 pedro.com.es, 1
 pedrosaurus.com, 1
 pedrosluiter.nl, 1
 pedroventura.com, 0
 peeekaaabooo.com, 1
 peekier.com, 1
 peen.ch, 1
 peep.gq, 1
@@ -30901,17 +30689,16 @@ pentest.nl, 1
 pentesterlab.com, 1
 penticton.photography, 1
 pentofun.ch, 1
 pentoo.ch, 1
 penz.media, 1
 peoplelikemeapp.com, 1
 peoplesdecade.org, 1
 peoplesguardian.org, 1
-pepemodelismo.com.br, 1
 peplog.nl, 1
 pepwaterproofing.com, 1
 pequenosfavoritos.com.br, 1
 per-olsson.se, 1
 pera.gs, 1
 perala.me, 1
 peraparker.cz, 1
 percolate.com, 1
@@ -30928,17 +30715,16 @@ perfectcloud.org, 1
 perfectionunite.com, 1
 perfectoparty.co.uk, 1
 perfectsnap.co.uk, 1
 perfektesgewicht.com, 1
 perfektesgewicht.de, 1
 performancehealth.com, 1
 performetric.net, 1
 perfumeaz.com, 1
-perfumes.com.br, 1
 periodismoactual.com, 1
 periscope.tv, 1
 perishablepress.com, 1
 perm-avia.ru, 1
 perm-jur.ch, 1
 perm-juridique.ch, 1
 perm4.com, 1
 permajackofstlouis.com, 1
@@ -30964,33 +30750,30 @@ personaltrainer-senti.de, 1
 personcar.com.br, 1
 personnedisparue.fr, 1
 perspectivum.com, 1
 perspektivwechsel-coaching.de, 1
 persson.im, 1
 persson.me, 1
 perthhillsarmadale.com.au, 1
 perthtrains.net, 1
-perucasestoril.com.br, 1
 pervacio.hu, 1
 perzeidi.hr, 1
 pescadorcomunicacao.com, 1
 pescadorcomunicacao.com.br, 1
-pescco.com.br, 1
 pestici.de, 1
 pestkill.info, 1
 pesto.video, 1
 pesyun.cn, 1
 pet-hotel-mura.net, 1
 petabits.de, 1
 petalkr.com, 1
 petangen.se, 1
 petbooking.it, 1
 petcarvers.com, 1
-petdesign.pet, 1
 peteboc.com, 1
 petech.ro, 1
 petelew.is, 1
 peter.org.ua, 1
 peterandjoelle.co.uk, 1
 peterboers.info, 1
 peterborgapps.com, 1
 peterbruceharvey.com, 1
@@ -31018,27 +30801,29 @@ petmall.bg, 1
 peto.nl, 1
 petofiprogram.hu, 1
 petplus.com, 1
 petpost.co.nz, 0
 petpower.eu, 1
 petr.as, 1
 petrachuk.ru, 1
 petrasestakova.cz, 1
+petravdbos.nl, 1
 petresort.pt, 1
 petroscand.eu, 1
 petrostathis.com, 1
 petrpikora.com, 1
 petrucciresidential.com, 1
 petruzz.net, 1
 petschnighof.at, 1
 pettitcoat.com, 1
 petwall.info, 1
 peuf.shop, 1
 pew.ninja, 1
+pewnews.org, 1
 pex.digital, 1
 peyote.com, 1
 peyote.org, 1
 pf.dk, 1
 pfa.or.jp, 1
 pfadfinder-aurich.de, 1
 pfadfinder-grossauheim.de, 1
 pfarchimedes-pensioen123.nl, 1
@@ -31070,19 +30855,19 @@ pgp.guru, 1
 pgp.network, 1
 pgpmail.cc, 1
 ph-blog.de, 1
 ph.search.yahoo.com, 0
 ph3r3tz.net, 1
 phantasie.cc, 1
 phantastikon.de, 1
 pharma-display.com, 1
-pharmaabsoluta.com.br, 1
 pharmaboard.de, 1
 pharmaboard.org, 1
+pharmacie-fr.org, 1
 pharmacieplusfm.ch, 1
 pharmafoto.ch, 1
 pharmaphoto.ch, 1
 pharmapolitics.com, 1
 pharmasana.co.uk, 1
 pharmasana.de, 1
 pharmica.co.uk, 1
 pharmica.uk, 1
@@ -31213,19 +30998,18 @@ pi-supply.com, 1
 pianetaottica.com, 1
 pianetaottica.eu, 1
 pianetaottica.info, 1
 pianetaottica.it, 1
 pianetatatuaggi.it, 1
 pianomover.co.uk, 1
 pianyigou.com, 1
 piasto.com.cy, 1
-piatabrasil.com.br, 1
 piboubes.me, 1
-pic.gov, 1
+pic.gov, 0
 pic.sr, 1
 pic2map.com, 1
 picallo.es, 1
 picchietti.io, 1
 piccirello.com, 1
 piccolo-parties.co.uk, 1
 pickabrain.fr, 1
 pickelhaubes.com, 1
@@ -31446,18 +31230,16 @@ pkirwan.com, 1
 pkisolutions.com, 1
 pko.ch, 1
 pkov.cz, 1
 pkphotobooths.co.uk, 1
 pksps.com, 1
 pl-cours.ch, 1
 pl.search.yahoo.com, 0
 plaasprodukte.com, 1
-placasonline.com.br, 1
-placassinal.com.br, 1
 placebet.pro, 1
 placedaffiliate.com, 1
 placedapps.com, 1
 placedsupport.com, 1
 placefade.com, 1
 placeitsf.com, 1
 placeralplato.com, 1
 placker.com, 1
@@ -31474,17 +31256,16 @@ planboardapp.com, 1
 planbox.info, 1
 planecon.nz, 1
 planeexplanation.com, 1
 planer.me, 1
 planespotterblog.de, 1
 planet-laas.de, 1
 planet-work.com, 1
 planetanim.fr, 1
-planetasuboficial.com.br, 1
 planetau2.com, 1
 planetbeauty.com, 1
 planetbreath.ch, 1
 planete-cocoon.com, 0
 planete-lira.fr, 1
 planete-secu.com, 1
 planeteroliste.com, 1
 planeteroliste.fr, 1
@@ -31500,17 +31281,16 @@ planitz.net, 1
 planktonforhealth.co.uk, 1
 planktonholland.nl, 1
 planlos.net, 1
 planmemberpartners.com, 1
 plannedlink.com, 1
 planningexcellence.com.au, 1
 planolowcarb.com, 1
 plant-gift.jp, 1
-plantarum.com.br, 1
 plantastique.ch, 1
 plantastique.com, 1
 planteforum.no, 1
 plantes.ch, 1
 plantezcheznous.com, 1
 plantrustler.com, 1
 planujemywesele.pl, 1
 planup.fr, 1
@@ -31846,17 +31626,16 @@ poppetsphere.de, 1
 population-ethics.com, 1
 popvitrin.com, 1
 poquvi.net, 1
 porchdaydreamer.com, 1
 porg.es, 1
 pork.org.uk, 1
 porkel.de, 1
 porn77.info, 1
-pornbase.info, 0
 pornbay.org, 1
 pornblog.org, 1
 porncandi.com, 1
 pornfacefinder.com, 0
 pornhubhd.biz, 1
 porniwi.com, 1
 pornloupe.com, 1
 porno-gif.ru, 1
@@ -31876,17 +31655,16 @@ port67.org, 1
 port80.hamburg, 1
 portablebuildingsales.co.uk, 1
 portablespeakersfinder.com, 1
 portailevangelique.ca, 1
 portal.tirol.gv.at, 1
 portalcarriers.com, 1
 portalcentric.net, 1
 portalisapres.cl, 1
-portalkla.com.br, 1
 portalmundo.xyz, 1
 portalzine.de, 1
 portamiinpista.it, 1
 porte.roma.it, 1
 portercup.com, 1
 porterranchelectrical.com, 1
 portofacil.com, 1
 portofala.pt, 1
@@ -31953,17 +31731,17 @@ potenzprobleme-info.net, 1
 pothe.com, 1
 pothe.de, 1
 potlytics.com, 1
 potolok.am, 1
 potomania.cz, 1
 potrillionaires.com, 1
 potterscraftcider.com, 1
 pottersheartministry.org, 1
-pottreid.com, 1
+pottreid.com, 0
 pottshome.co.uk, 1
 potworowski.de, 1
 potzwonen.nl, 1
 poudlard.fr, 1
 pouet.it, 1
 pouets.ovh, 1
 poundwholesale.co.uk, 1
 pour-la-culture-aulnay.fr, 1
@@ -31976,17 +31754,16 @@ pow.jp, 1
 powelljones.co.uk, 1
 power-coonies.de, 1
 power-fit.org, 1
 power-flowengineer.com, 1
 power-meter.cc, 1
 power-tools24.com, 1
 powerball.shop, 1
 powercloud.technology, 1
-powerdent.net.br, 1
 poweredbyiris.nl, 1
 poweredbypurdy.com, 1
 powerentertainment.tv, 1
 powerfortunes.com, 1
 powergridess.com, 0
 powermatic7.com, 1
 powermeter.at, 1
 powermint.de, 1
@@ -32024,16 +31801,17 @@ ppro.com, 1
 pptavmdata.org, 1
 ppy.la, 1
 ppy.sh, 1
 pr.search.yahoo.com, 0
 pr1sm.com, 1
 pr2studio.com, 1
 prac.to, 1
 pracowniatkanin.com, 1
+practicalprogrammer.tech, 1
 practiceflow.nl, 1
 practicepanther.com, 1
 practo.com, 1
 prado.it, 1
 praeparation-keppner.de, 1
 praerien-racing.com, 1
 prague-swim.cz, 1
 praguepsychology.com, 1
@@ -32044,17 +31822,16 @@ prakhar.uk, 1
 prakharprasad.com, 1
 praktijkdevecht.nl, 1
 praktijkpassepartout.nl, 1
 praxino.de, 1
 praxis-dingeldey.de, 1
 praxis-familienglueck.de, 1
 praxis-odermath.de, 1
 prayerrequest.com, 1
-prazeresdavida.com.br, 1
 prazynka.pl, 1
 prc-newmedia.com, 1
 prc.gov, 1
 precedecaritas.com.br, 1
 precept.uk.com, 1
 preciouslife.fr, 1
 preciscx.com, 1
 preciseassemblies.com, 1
@@ -32064,17 +31841,16 @@ precode.eu, 1
 predoiu.ro, 1
 prefix.eu, 1
 pregunteleakaren.gov, 1
 preigu.de, 1
 preis-alarm.info, 1
 preis-alarm.org, 1
 prekladysanca.cz, 1
 preloaded-hsts.badssl.com, 1
-prelogica.com.br, 1
 preludes.org, 1
 prelved.com, 1
 prelved.es, 1
 prelved.fi, 1
 prelved.fr, 1
 prelved.it, 1
 prelved.nl, 1
 prelved.pl, 1
@@ -32101,17 +31877,16 @@ preposted.com, 1
 preprodfan.gov, 1
 presbee.com, 1
 presbvm.org, 1
 prescotonline.co.uk, 1
 present-m.com, 1
 president.bg, 1
 prespanok.sk, 1
 pressakey.com, 1
-pressakey.de, 1
 presscenter.jp, 1
 pressertech.com, 1
 presses.ch, 1
 presskr.com, 1
 pressography.org, 1
 pressrush.com, 1
 pressup.it, 1
 pressureradio.com, 1
@@ -32144,18 +31919,18 @@ prijsvergelijken.ml, 1
 primaconsulting.net, 1
 primalbase.com, 1
 primalinea.pro, 1
 primates.com, 1
 primewho.org, 1
 primoloyalty.com, 1
 primordialsnooze.com, 1
 primorus.lt, 1
-primotilesandbathrooms.co.uk, 0
 princeagency.com, 1
+princesparktouch.com, 1
 princessbackpack.de, 1
 princessefoulard.com, 1
 principalsexam.com, 1
 principalship.net, 1
 principalstest.com, 1
 principalstest.ph, 1
 principalstest.review, 1
 principaltoolbox.com, 1
@@ -32203,16 +31978,17 @@ pritchett.xyz, 1
 priv.im, 1
 privacy-week-vienna.at, 1
 privacy-week.at, 1
 privacy.com, 1
 privacybadger.org, 1
 privacychick.com, 1
 privacychick.io, 1
 privacyforjournalists.org.au, 1
+privacyinternational.org, 1
 privacymanatee.com, 1
 privacyscore.org, 1
 privacyweek.at, 1
 privacyweek.de, 1
 privacyweek.eu, 1
 privacyweekvienna.at, 1
 privaday.de, 0
 privasphere.com, 1
@@ -32738,17 +32514,16 @@ qaconstrucciones.com, 1
 qadmium.com, 1
 qadmium.tk, 1
 qambarraza.com, 1
 qamrulhaque.com, 1
 qandavision.com, 0
 qapital.com, 1
 qaz.cloud, 1
 qbeing.info, 1
-qbiju.com.br, 1
 qbik.de, 1
 qbus.pl, 1
 qc.immo, 1
 qc.search.yahoo.com, 0
 qccareerschool.com, 1
 qcdesignschool.com, 1
 qceventplanning.com, 1
 qcloud.cz, 1
@@ -32766,17 +32541,16 @@ qetic.co.jp, 1
 qewc.com, 1
 qforum.org, 1
 qgblog.org, 0
 qgustavor.tk, 1
 qhse-professionals.nl, 1
 qianalysis.com, 1
 qianqiao.me, 1
 qiaohong.org, 1
-qicomidadeverdade.com.br, 1
 qifu.me, 1
 qifu.org.cn, 1
 qikan.net, 0
 qiliang.wang, 1
 qingcao.org, 1
 qingpat.com, 1
 qingpei.me, 1
 qionouu.cn, 1
@@ -32990,32 +32764,30 @@ rachelmoorelaw.com, 1
 rachelreagan.com, 1
 rachelsbouncycastles.co.uk, 1
 rachida-dati.eu, 1
 racius.com, 1
 rackblue.com, 1
 rackerlab.com, 0
 raclet.co.uk, 1
 raconconsulting.co.uk, 1
-racoo.net, 1
 racozo.com, 1
 racunovodstvo-prina.si, 1
 rad-route.de, 1
 radar.sx, 1
 radaravia.ru, 1
 radarnext.com, 1
 radartatska.se, 1
 radartek.com, 1
 radcube.hu, 1
 raddavarden.nu, 1
 radfieldhomecare.co.uk, 1
 radfieldhomecarefranchising.co.uk, 1
 radical.org, 1
 radicaloptimism.org, 1
-radicalsub.com.br, 1
 radins.com, 1
 radio-pulsar.eu, 1
 radio-utopie.de, 1
 radio1.ie, 1
 radioafibra.com.br, 1
 radiocomsaocarlos.com.br, 1
 radioilusion.es, 1
 radiom.fr, 1
@@ -33062,17 +32834,16 @@ railgun.com.cn, 1
 railjob.cn, 1
 railorama.nl, 1
 railpassie.nl, 1
 railtoo.com, 1
 railvideo.co.uk, 1
 railvideo.net, 1
 railvideo.nl, 1
 railwaytech.net, 1
-raimixmotoparts.com.br, 1
 rainbin.com, 1
 rainbowbay.org, 1
 rainbowinflatables.co.uk, 1
 rainbowstore.com.au, 1
 rainbowstore.com.ua, 1
 rainforest.engineering, 1
 rainpaper.com, 1
 rainstormsinjuly.co, 1
@@ -33190,16 +32961,17 @@ raven.dog, 1
 ravenger.net, 1
 ravengergaming.net, 1
 ravensbuch.de, 1
 ravenx.me, 1
 ravhaaglanden.org, 1
 ravindran.me, 1
 raviparekh.co.uk, 1
 ravis.org, 1
+ravkr.duckdns.org, 1
 ravse.dk, 1
 rawdutch.nl, 1
 rawinfosec.com, 1
 rawr.sexy, 1
 rawsec.net, 1
 raxion.cf, 1
 raxion.tk, 1
 ray-home.de, 1
@@ -33235,16 +33007,17 @@ rc-shop.ch, 1
 rc7.ch, 1
 rca.fr, 1
 rcd.cz, 1
 rcdocuments.com, 1
 rchrdsn.uk, 1
 rcifsgapinsurance.co.uk, 1
 rclsm.net, 1
 rcmlinx.com, 1
+rcmpsplib.com, 1
 rcmurphy.com, 1
 rcnitrotalk.com, 1
 rcoliveira.com, 1
 rcorporation.be, 1
 rcraigmurphy.com, 1
 rcraigmurphy.net, 1
 rcsolutions.nl, 1
 rct.sk, 1
@@ -33406,17 +33179,16 @@ reddingo.nl, 1
 reddingo.nz, 1
 reddingsbrigade-zwolle.nl, 1
 reddiseals.com, 1
 reddit2kindle.com, 1
 reddraggone9.com, 1
 rede-reim.de, 1
 rede-t.com, 1
 redelectrical.co.uk, 1
-redessantaluzia.com.br, 1
 redfox-infosec.de, 1
 redgatesoftware.co.uk, 1
 redgoose.ca, 1
 redhandedsecurity.com.au, 1
 redheeler.com.br, 1
 redicals.com, 1
 redigest.it, 1
 redir.me, 1
@@ -33444,26 +33216,26 @@ redstickfestival.org, 1
 redstoner.com, 1
 redteam-pentesting.de, 1
 redwaterhost.com, 1
 redweek.com, 1
 redwoodpaddle.es, 1
 redwoodpaddle.pt, 1
 redzurl.com, 0
 reedloden.com, 1
+reedyforkfarm.com, 1
 reegle.com, 1
 reepay.com, 1
 rees-carter.net, 1
 reesmichael1.com, 1
 reeson.at, 1
 reeson.de, 1
 reeson.info, 1
 reeson.org, 1
 reevaappliances.co.uk, 1
-reevoo.com, 1
 reevu.net, 1
 reezer.org, 1
 ref1oct.nl, 1
 referdell.com, 1
 refficience.com, 1
 refill-roboter.de, 1
 refinansiering.no, 1
 reflecton.io, 1
@@ -33527,21 +33299,21 @@ reha-honpo.jp, 1
 rehabili-shigoto.com, 1
 rehabilitation.network, 1
 rehabmail.com, 1
 rehabphilippines.com, 1
 rehabthailand.com, 1
 rehabthailand.org, 1
 reher.pro, 1
 rei.codes, 1
+rei.ki, 1
 reichardt-home.goip.de, 1
 reichel-steinmetz.de, 1
 reichelt-cloud.de, 1
 reichl-online.net, 1
-reidasbombas.com, 1
 reignsphere.net, 1
 reiki-coaching.nl, 0
 reiki-france.fr, 1
 reilly.io, 1
 reimaginebelonging.de, 1
 reimaginebelonging.org, 1
 reimann.me, 1
 reimers.de, 1
@@ -33605,17 +33377,16 @@ remedioscaserosparalacistitis.com, 1
 remedioskaseros.com, 0
 remejeanne.com, 1
 rememberthemilk.com, 0
 remi-saurel.com, 1
 remilner.co.uk, 1
 remini.cz, 1
 remirampin.com, 1
 remissan.com, 1
-remitatm.com, 0
 remonti.info, 1
 remote.so, 1
 remoteham.com, 1
 remoteutilities.com, 1
 removalcellulite.com, 1
 removedrepo.com, 1
 remrol.ru, 1
 remszeitung.de, 1
@@ -33927,32 +33698,31 @@ righteousendeavour.com, 1
 rightmovecanada.com, 1
 rightnetworks.com, 1
 rightstuff.link, 1
 righttobuy.gov.uk, 1
 rigolitch.fr, 1
 rigsalesaustralia.com, 1
 rijk-catering.nl, 0
 rijschoolgevonden.nl, 0
-rijsinkunst.nl, 1
+rijsinkunst.nl, 0
 rik.onl, 1
 riku.pw, 1
 rile5.com, 1
 rileyevans.co.uk, 1
 rimax.vn, 1
 rimcountrymuseum.org, 1
 rimediogiusto.com, 1
 rimeto.io, 1
 rimo.site, 1
 rimorrecherche.nl, 1
 rincon-nsn.gov, 1
 ring.com, 1
 ringingliberty.com, 1
 ringjewellery.co.uk, 1
-rinj.se, 1
 rinvex.com, 1
 rio-weimar.de, 1
 rioshop.com.br, 1
 rioxmarketing.com, 1
 rip-sport.cz, 1
 ripaton.fr, 1
 ripmixmake.org, 1
 ripple.com, 1
@@ -34116,17 +33886,16 @@ rocketgnomes.com, 1
 rocketr.net, 1
 rocketsandtutus.com, 1
 rockfax.com, 1
 rockhounds.co.za, 1
 rockinronniescastles.co.uk, 1
 rockitinflatables.co.uk, 1
 rockpesado.com.br, 1
 rockthebabybump.com, 1
-rockuse.com.br, 1
 rockymountainspice.com, 1
 rocssti.net, 1
 rodab.party, 1
 rodafe.sk, 1
 rodarion.pl, 1
 roddis.net, 1
 rodehutskors.net, 1
 rodeobull.biz, 1
@@ -34168,17 +33937,16 @@ roguefinancial.com, 1
 roguefortgame.com, 1
 roguenation.space, 1
 roguenetworks.me, 1
 roguesignal.net, 1
 roguetechhub.org, 1
 rohanbassett.com, 1
 rohedaten.de, 1
 rohitagr.com, 1
-rohlik.cz, 1
 rointe.online, 1
 roiscroll.com, 1
 roka9.de, 1
 rokki.ch, 1
 rokort.dk, 1
 roksolana.be, 1
 rokudenashi.de, 1
 roland.io, 1
@@ -34556,17 +34324,16 @@ ruobiyi.com, 1
 ruobr.ru, 1
 ruquay.com, 1
 ruralink.com.ar, 1
 ruralsuppliesdirect.co.uk, 1
 ruri.io, 0
 rus-trip.ru, 1
 rusempire.ru, 1
 rushball.net, 1
-rushiiworks.com, 1
 rushpoppershop.co.uk, 1
 rushter.com, 1
 rushyo.com, 1
 rusi-ns.ca, 1
 ruska-modra.cz, 1
 ruskamodra.cz, 1
 ruskod.net, 1
 rusl.net, 1
@@ -34678,18 +34445,16 @@ sa.net, 1
 saabpartsdistribution.com, 1
 saamhorigheidsfonds.nl, 0
 saastopankki.fi, 1
 saba-piserver.info, 1
 sabahattin-gucukoglu.com, 1
 sabe.cz, 1
 sabine-forschbach.de, 1
 sabineforschbach.de, 1
-sabrinajoias.com.br, 1
-sabrinajoiasprontaentrega.com.br, 1
 sabtunes.com, 1
 sacaentradas.com, 1
 saccani.net, 1
 sachk.com, 1
 sackers.com, 1
 sackmesser.ch, 1
 saclier.at, 1
 saco-ceso.com, 1
@@ -34781,17 +34546,16 @@ saipariwar.com, 1
 saiputra.com, 1
 saitrance.com, 1
 saitv.org, 1
 sajamstudija.info, 1
 sajdowski.de, 1
 sakaki.anime.my, 0
 sakostacloud.de, 1
 sakuracommunity.com, 1
-sakuraflores.com.br, 1
 sakuraplay.com, 1
 salamon-it.de, 0
 salde.net, 1
 sale.sh, 1
 sale4ru.ru, 1
 saleaks.org, 1
 salearnership.co.za, 1
 saleduck.at, 1
@@ -34851,17 +34615,16 @@ salzamt.tk, 1
 sam-football.fr, 1
 samanthasgeckos.com, 1
 samappleton.com, 1
 samara-avia.ru, 1
 samaritainsmeyrin.ch, 1
 samaritan.tech, 1
 samatva-yogalaya.com, 1
 samba.org, 1
-sambaa.com.br, 1
 sambaash.com, 1
 sambeso.net, 1
 samdev.io, 1
 samegoal.com, 1
 samegoal.org, 1
 samel.de, 1
 samenwerkingsportaal.nl, 1
 samenwerkingsportaal.tk, 1
@@ -34951,17 +34714,16 @@ sanitairwinkel.be, 1
 sanitairwinkel.com, 1
 sanitairwinkel.nl, 1
 sanitrak.cz, 1
 sanmuding.com, 1
 sanooktiew.com, 0
 sanpham-balea.org, 1
 sanskritiyoga.com, 1
 sansonehowell.com, 1
-santafemacas.com.br, 1
 santamonicapost123.org, 1
 santanderideas.com, 1
 santenatureetcie.com, 1
 santensautomatics.be, 1
 santevie.ch, 1
 santing.net, 1
 santmark.com, 1
 santmark.eu, 1
@@ -35037,17 +34799,16 @@ satimagingcorp.com, 1
 satinn.pl, 1
 sativatunja.com, 1
 satmd.de, 1
 satoshinumbers.com, 1
 sattamatkachart.in, 1
 sattamatkamobi.mobi, 1
 saturn.pl, 1
 satyanarayana.xyz, 1
-saudavel.com.vc, 1
 saudeealimentos.com, 1
 saudeintimadamulher.com.br, 1
 saudenoclique.com.br, 1
 sauenytt.no, 1
 sauer-systems.net, 1
 sauerbrey.eu, 1
 sauerland-schnittgruen.de, 1
 saulchristie.com, 1
@@ -35115,16 +34876,17 @@ sbsavings.bank, 1
 sbsbaits.com, 1
 sbsnursery.co.uk, 1
 sbsrv.ml, 1
 sbssoft.ru, 1
 sbytes.info, 1
 sc5.jp, 1
 scaarus.com, 1
 scaffalature.roma.it, 1
+scaffoldhirefourways.co.za, 1
 scalacollege.nl, 1
 scalaire.com, 1
 scalaire.fr, 1
 scalesbiolab.com, 1
 scaling.solutions, 1
 scallywagsbouncycastles.co.uk, 1
 scallywagskids.co.uk, 1
 scamblockplus.org, 1
@@ -35868,28 +35630,26 @@ sexaki.com, 1
 sexdocka.nu, 1
 sexgarage.de, 1
 sexmobil.de, 1
 sexocomgravidas.com, 1
 sexoyrelax.com, 1
 sexpay.net, 1
 sexservice.io, 1
 sexshopfacil.com.br, 1
-sexshopnet.com.br, 1
 sexshopsgay.com, 1
 sexwork.net, 1
 sexy-store.nl, 1
 sexymassageoil.com, 1
 seyfarth.de, 1
 seyr.it, 1
 seyr.me, 1
 sfa.sk, 1
 sfaparish.org, 1
 sfaturiit.ro, 1
-sfcomercio.com.br, 1
 sfdev.ovh, 1
 sfg-nordholz.de, 1
 sfile.eu, 1
 sfirat-haomer.com, 1
 sfleisure.com, 1
 sfo-fog.ch, 1
 sft-framework.org, 1
 sftool.gov, 1
@@ -36536,18 +36296,18 @@ sinonimos.com.br, 1
 sinonimosonline.com, 1
 sinonimosonline.com.br, 1
 sinoscandinavia.se, 1
 sinquin.eu, 1
 sinronet.com, 1
 sint-joris.nl, 1
 sintaxis.org, 1
 sinterama.biz, 1
-sinuelovirtual.com.br, 1
 sioeckes.hu, 1
+sipc.org, 1
 siqi.wang, 1
 siratalmustaqim.com, 1
 siraweb.org, 1
 sirbouncealotcastles.co.uk, 1
 sirbouncelot.co.uk, 1
 sirchuk.net, 1
 sircon.no, 1
 sirena.co.jp, 1
@@ -36598,18 +36358,16 @@ sjaakgilsingfashion.nl, 1
 sjatsh.com, 1
 sjd.is, 1
 sjdaws.com, 1
 sjis.me, 1
 sjleisure.co.uk, 1
 sjoorm.com, 1
 sjsmith.id.au, 1
 sjv4u.ch, 1
-sjzget.com, 1
-sjzybs.com, 1
 sk-net.cz, 1
 skala.io, 1
 skalarwelle.eu, 1
 skanvordoff.ru, 1
 skarox.com, 1
 skarox.ee, 1
 skarox.eu, 1
 skarox.net, 1
@@ -36617,16 +36375,17 @@ skarox.ru, 1
 skatclub-beratzhausen.de, 1
 skatesins.ch, 1
 skatingchina.com, 1
 skatn.de, 1
 skazka.ru, 1
 skedda.com, 1
 skedr.io, 0
 skeeley.com, 1
+skei.org, 1
 skepneklaw.com, 1
 skepticalsports.com, 1
 sketchmyroom.com, 1
 skhaz.io, 1
 skhire.co.uk, 1
 skhoop.cz, 1
 skia.org, 0
 skid.church, 1
@@ -36864,16 +36623,17 @@ smartlocksmith.com, 1
 smartlogreturns.com, 1
 smartlogstock.com, 1
 smartlogtower.com, 1
 smartmeal.ru, 1
 smartmessages.net, 1
 smartmomsmartideas.com, 1
 smartofficeusa.com, 1
 smartphonechecker.co.uk, 1
+smartpolicingplatform.com, 1
 smartrade.tech, 1
 smartrecruit.ro, 1
 smartservices.nl, 1
 smartshiftme.com, 1
 smartship.co.jp, 1
 smartsparrow.com, 1
 smartvideo.io, 1
 smartviewing.com, 1
@@ -36954,17 +36714,17 @@ snapappointments.com, 1
 snapappts.com, 1
 snapfinance.com, 1
 snapserv.ch, 1
 snapserv.net, 1
 snaptier.co, 1
 snaptools.io, 1
 snarf.in, 1
 snatch.com.ua, 1
-snazel.co.uk, 1
+snazel.co.uk, 0
 snazzie.nl, 1
 sncdn.com, 1
 sndbouncycastles.co.uk, 1
 sneaker.date, 1
 sneakpod.de, 1
 sneakynote.com, 1
 sneakypaw.com, 1
 sneberger.cz, 0
@@ -37066,16 +36826,17 @@ societyhilldance.com, 1
 socioambiental.org, 1
 sociobiology.com, 1
 sociopathy.org, 1
 socketize.com, 1
 sockeye.io, 1
 sockscap64.com, 1
 socoastal.com, 1
 sodadigital.com.au, 1
+sodafilm.de, 1
 sodexam.pro, 1
 sodi.nl, 1
 sodiao.cc, 1
 sodomojo.com, 1
 soe-server.com, 1
 sofa-rockers.org, 1
 sofabedshop.de, 1
 sofiavanmoorsel.com, 1
@@ -37096,17 +36857,16 @@ softtennis-zenei.com, 1
 softw.net, 1
 software.rocks, 1
 softwarebetrieb.de, 1
 softwaredesign.foundation, 0
 softwarevoortherapeuten.nl, 1
 softwaylancing.com, 1
 softwerk-edv.de, 1
 sogola.com, 1
-sogravatas.com.br, 1
 sogravatas.net.br, 1
 sogutma.com.tr, 1
 sohamroy.me, 1
 soia.ca, 1
 soinvett.com, 1
 sojingle.net, 1
 sokaissues.info, 1
 sokche.com, 1
@@ -37171,17 +36931,16 @@ solvemethod.com, 1
 solvingproblems.com.au, 1
 solvops.com, 1
 solymar.co, 1
 somaini.li, 1
 somali-derp.com, 1
 somaliagenda.com, 1
 somaliaonline.com, 1
 somanao.com, 1
-somcase.com.br, 1
 somecrazy.com, 1
 somepills.com, 1
 somersetscr.nhs.uk, 1
 somersetwellbeing.nhs.uk, 1
 somethingsimilar.com, 1
 sommefeldt.com, 1
 somosnoticia.com.br, 1
 sompani.com, 1
@@ -37207,32 +36966,29 @@ songzhuolun.com, 1
 sonia.com.au, 1
 soniafauville.com, 1
 sonic.sk, 0
 sonic.studio, 1
 sonicdoe.com, 1
 sonixonline.com, 1
 sonja-daniels.com, 1
 sonja-kowa.de, 1
-sonoecoracao.com.br, 1
 sonyunlock.nu, 1
 soodwatthanaphon.net, 1
 soohealthy.nl, 1
 soomee.be, 1
 soomee1.be, 1
 soontm.de, 1
 soopure.nl, 1
 soph.jp, 1
 soph.us, 1
 sopheos.com, 0
 sopher.io, 1
-sophiaandmatt.co.uk, 1
 sophiakligys.com, 1
 sophieandtrey.com, 1
-soprabalao.com.br, 1
 soquee.net, 1
 sor.so, 1
 soraharu.com, 1
 soraiaschneider.com.br, 1
 sorakumo.jp, 1
 sorcix.com, 1
 sorellecollection.com.au, 1
 sorenam.com, 1
@@ -37253,17 +37009,16 @@ sosecu.red, 1
 sosko.in.rs, 1
 sosoftplay.co.uk, 1
 sospromotions.com.au, 1
 sostacancun.com, 1
 sosteam.jp, 1
 sosteric.si, 1
 sotadb.info, 1
 sotar.us, 1
-sotavasara.net, 1
 sotoasobi.net, 1
 sotthewes.nl, 1
 sou-co.jp, 1
 soubriquet.org, 1
 soufastnet.com.br, 1
 souki.cz, 1
 soukodou.jp, 1
 soul-source.co.uk, 1
@@ -37329,16 +37084,17 @@ sp8ce.co, 1
 space-it.de, 1
 space-y.cf, 1
 spacedirectory.org, 1
 spacedots.net, 1
 spacehighway.ms, 1
 spacehost.de, 1
 spacelabs.io, 1
 spacepage.be, 1
+spacestation13.com, 1
 spaceweather.live, 1
 spaceweatherlive.com, 1
 spacinov.com, 1
 spacivox.com, 1
 spackova.cz, 1
 spaconnection.com, 1
 spahireleeds.co.uk, 1
 spaid.xyz, 0
@@ -37368,22 +37124,19 @@ sparta-en.org, 1
 sparta-solutions.de, 1
 spartaconsulting.fi, 1
 spartaermelo.nl, 1
 spartantheatre.org, 1
 spasicilia.it, 1
 spatzenwerkstatt.de, 1
 spawn.cz, 1
 spaysy.com, 1
-spaziobenedetti.com.br, 1
-spaziopervoi.com.br, 1
 spazturtle.co.uk, 1
 spazzacamino.roma.it, 1
 spd-pulheim-mitte.de, 1
-spdepartamentos.com.br, 1
 spdf.net, 1
 spdillini.com, 1
 speak-polish.com, 1
 spearfishingmx.com, 1
 speargames.net, 1
 specialtyalloys.ca, 1
 speciesism.com, 1
 spectrosoftware.de, 1
@@ -37401,17 +37154,16 @@ speedsportofhull.co.uk, 1
 speedtailors.com, 1
 speedtest-russia.com, 1
 speedychat.it, 1
 speeltoneel.nl, 1
 speerpunt.info, 1
 speets.ca, 1
 speich.net, 1
 spek.tech, 1
-speletrodomesticos.com.br, 1
 spellcheck24.net, 1
 spellcheckci.com, 1
 spellchecker.net, 1
 spendwise.com.au, 1
 spenglerei-shop.de, 1
 sperec.fr, 1
 sperohub.com, 1
 sperrstun.de, 1
@@ -37541,25 +37293,23 @@ sprueche-zum-valentinstag.de, 1
 sprueche-zur-geburt.info, 1
 sps-lehrgang.de, 1
 spslawoffice.com, 1
 spsnewengland.org, 1
 sptk.org, 1
 spuffin.com, 1
 spufpowered.com, 1
 spunkt.fr, 1
-spur.com.br, 1
 sputnik1net.org, 1
 spydar007.com, 1
 spydar007.net, 1
 spydersec.com, 1
 spykedigital.com, 1
 spyprofit.ru, 1
 spyroszarzonis.com, 1
-sqkaccountancy.co.uk, 1
 sql-und-xml.de, 1
 sqlapius.net, 1
 sqlfeatures.com, 1
 sqr-training.com, 1
 sqroot.eu, 1
 square-gaming.org, 1
 square-src.de, 0
 square.com, 0
@@ -37582,17 +37332,16 @@ src.fedoraproject.org, 1
 srchub.org, 1
 sreeharis.tk, 1
 srife.net, 1
 srigc.com, 1
 srihash.org, 1
 srinivasan.io, 1
 sritest.io, 1
 sro.center, 1
-srolim.com, 1
 srrdb.com, 1
 srroddy.com, 1
 srun.in, 1
 srv.so, 1
 srv.solutions, 1
 srvc.io, 1
 srvonfire.com, 1
 ss.com, 1
@@ -37666,16 +37415,17 @@ stackpath.com, 1
 stackptr.com, 1
 stacktile.io, 0
 stackunderflow.com, 1
 staddlestonesbowness.co.uk, 1
 stadionmanager.com, 1
 stadm.com, 1
 stadsbygd.info, 1
 stadt-apotheke-muensingen.de, 1
+stadtbuecherei-bad-wurzach.de, 1
 stadterneuerung-hwb.de, 1
 stadtgartenla.com, 1
 stadtpapa.de, 1
 stadtplan-ilmenau.de, 1
 staff.direct, 1
 staffordlabour.org.uk, 1
 stage-props-blank-guns.com, 0
 stage.wepay.com, 0
@@ -38046,17 +37796,16 @@ storm-family.com, 1
 stormi.io, 1
 stormwatcher.org, 1
 storvann.net, 1
 storvann.no, 1
 storycollective.film, 1
 storycollective.nl, 1
 storyland.ie, 1
 storysift.news, 1
-storytea.top, 1
 storytell.com, 1
 storytime.hu, 1
 stouter.nl, 1
 stoxford.com, 1
 straatderzotten.nl, 1
 strafensau.de, 1
 strahlende-augen.info, 1
 straightedgebarbers.ca, 1
@@ -38170,29 +37919,27 @@ studer.su, 1
 studiebegeleiding-haegeman.be, 1
 studiemeter.nl, 1
 studienportal.eu, 1
 studienservice.de, 1
 studiereader.nl, 1
 studio-architetto.com, 1
 studio-fotografico.ru, 1
 studio-webdigi.com, 1
-studiobergaminloja.com.br, 1
 studiodentisticosanmarco.it, 1
 studiodewit.nl, 1
 studiodoprazer.com.br, 1
 studiogavioli.com, 1
 studiograou.com, 1
 studiohelder.fr, 0
 studiokicca.com, 1
 studiolegalepaternostro.it, 1
 studiomarcella.com, 1
 studionowystyl.pl, 1
 studiopirrate.com, 1
-studiopop.com.br, 1
 studioproapp.com, 1
 studioriehl.com, 1
 studioscherp.nl, 1
 studiostawki.com, 1
 studiostudio.net, 1
 studiotheatrestains.fr, 1
 studiovaud.com, 1
 studipro-formation.fr, 1
@@ -38273,16 +38020,17 @@ suche.org, 1
 suchmaschinen-werkstatt.de, 1
 suckmyan.us, 0
 sucretown.net, 1
 sud66.com, 1
 sudaraka.org, 1
 sudmotor-occasions.be, 1
 sudo-i.net, 1
 sudo.im, 1
+sudo.li, 1
 sudo.org.au, 1
 sudo.ws, 1
 sudokian.io, 1
 sudoschool.com, 1
 sudosu.fr, 1
 suelyonjones.com, 1
 suempresa.cloud, 1
 suessdeko.de, 1
@@ -38320,17 +38068,16 @@ sumguy.com, 1
 summa-prefis.com, 1
 summa.eu, 0
 summer.ga, 1
 summercampthailand.com, 1
 summershomes.com, 1
 sumoatm.com, 0
 sumthing.com, 1
 sun-leo.co.jp, 1
-sun-wellness-online.com.vn, 1
 sunboxstore.jp, 1
 sunbritetv.com, 1
 sunchasercats.com, 1
 sundanceusa.com, 1
 sundayfundayjapan.com, 1
 sundayrest.com, 1
 sundragon.se, 1
 suneilpatel.com, 1
@@ -38410,17 +38157,16 @@ supplies24.es, 1
 supplynation.org.au, 1
 support.mayfirst.org, 0
 supportdesk.nu, 1
 supportericking.org, 1
 supportfan.gov, 1
 supportme123.com, 1
 suprem.biz, 1
 suprem.ch, 1
-supriville.com.br, 1
 sur-v.com, 1
 surao.cz, 1
 surasak.io, 1
 surasak.net, 1
 surasak.org, 1
 suraya.online, 1
 surdam.casa, 0
 sure-it.de, 1
@@ -38674,17 +38420,17 @@ sysctl.se, 1
 sysdb.io, 1
 sysdot.blog, 1
 sysert.tv, 0
 syslogic.io, 1
 sysmike.de, 1
 sysmike.net, 1
 systea.fr, 1
 systea.net, 1
-system-m.de, 1
+system-m.de, 0
 system.cf, 1
 system.is, 1
 system12.pl, 1
 system365.eu, 1
 systemadmin.uk, 1
 systematic-momo.com, 1
 systematic-momo.dk, 1
 systemchile.com, 1
@@ -38741,17 +38487,16 @@ t4cc0.re, 1
 t5118.com, 1
 t7e.de, 0
 ta-65.com, 1
 ta-sports.net, 1
 ta65.com, 1
 taabe.net, 1
 taartbesteld.nl, 1
 tabarnak.ga, 1
-tabernadovinho.com.br, 1
 tabhui.com, 1
 tabi-news.com, 1
 tabi-runrun.com, 1
 tabithawebb.co.uk, 1
 tabla-periodica.com, 1
 tabledusud.be, 1
 tabledusud.nl, 1
 tablescraps.com, 1
@@ -38913,29 +38658,29 @@ targetexecutivesearch.com, 1
 targimieszkaniowe.net, 1
 tariff.cc, 1
 tarik.io, 1
 tarmexico.com, 1
 tarots-et-oracles.com, 1
 tarsan.cz, 1
 tarsashaz-biztositas.hu, 1
 tartaneagle.org.uk, 1
-tartanhamedshop.com.br, 1
 taruntarun.net, 1
 tas2580.net, 0
 taskin.me, 1
 taskotron.fedoraproject.org, 1
 taskotron.stg.fedoraproject.org, 1
 tasks.org, 1
 taskstream.com, 1
 taskulu.com, 1
 taskulu.ir, 1
 taskutark.ee, 1
 tasogarenoinori.net, 1
 tass.nu, 1
+tastenewwines.com, 1
 tastic.com, 1
 tastycake.net, 0
 tastystakes.com, 1
 tat2grl85.com, 1
 tatara.ne.jp, 1
 tateesq.com, 1
 tatildukkani.com, 1
 tatiloley.com, 1
@@ -39001,34 +38746,32 @@ tcptun.com, 1
 tcpweb.net, 1
 tcspartner.net, 1
 tcvvip.com, 1
 tcwis.com, 1
 tdchrom.com, 1
 tdelmas.eu, 1
 tdelmas.ovh, 1
 tdfbfoundation.org, 1
-tdrcartuchos.com.br, 1
 tdrs.info, 1
 tdsb.cf, 1
 tdsbhack.tk, 1
 tdsf.io, 1
 tdsinflatables.co.uk, 1
 tdude.co, 1
 teabagdesign.co.uk, 1
 teachercreatedmaterials.com, 1
 teacherph.com, 1
 teacherph.net, 1
 teacherpowered.org, 1
 teachingcopyright.com, 1
 teachingcopyright.net, 1
 teachingcopyright.org, 1
 teachmeplease.com, 1
 teachmeplease.ru, 1
-teachpeople.org, 1
 teachwithouttears.com, 1
 teahut.net, 1
 team-azerty.com, 1
 team-bbd.com, 1
 team-pancake.eu, 1
 team.house, 1
 team3482.com, 1
 teambeam.at, 1
@@ -39144,17 +38887,16 @@ techwithcromulent.com, 1
 techwords.io, 1
 tecit.ch, 1
 teckids.org, 1
 tecma.com, 1
 tecmarkdig.com, 1
 tecne.ws, 1
 tecnicoelettrodomestici.roma.it, 1
 tecnoarea.com.ar, 1
-tecnobrasilloja.com.br, 1
 tecnodritte.it, 1
 tecnogazzetta.it, 1
 tecnologiasurbanas.com, 1
 tecnologino.com, 1
 tecon.co.at, 1
 tecyt.com, 1
 tedb.us, 1
 teddy.ch, 1
@@ -39292,16 +39034,17 @@ terabyteharddrive.net, 1
 terabyteit.co.uk, 1
 teracloud.at, 1
 teranacreative.com, 1
 teriiphotography.com, 1
 teriyakisecret.com, 1
 terlindung.com, 1
 termax.me, 1
 terminalvelocity.co.nz, 1
+termino.eu, 1
 terminsrakning.se, 1
 termitemounds.org, 1
 termitinitus.org, 1
 termografiranje.si, 1
 termux.com, 1
 terra-x.net, 1
 terra.fitness, 1
 terrab.de, 0
@@ -39462,17 +39205,16 @@ the3musketeers.biz, 1
 theactuary.ninja, 1
 theadelaideshow.com.au, 1
 theadultswiki.com, 1
 thealexandertechnique.co.uk, 1
 theankhlife.com, 1
 theanticellulitediet.com, 1
 theaps.net, 1
 theastrocoach.com, 1
-thebakers.com.br, 1
 thebakery2go.de, 1
 thebannerstore.com, 1
 thebarrens.nu, 1
 thebasebk.org, 1
 thebcm.co.uk, 1
 thebeginningviolinist.com, 1
 thebest.ch, 1
 thebestfun.co.uk, 1
@@ -39504,17 +39246,16 @@ thebusinessofgoodfilm.com, 1
 thecamels.org, 1
 thecameradivision.com, 1
 thecandidforum.com, 1
 thecarolingconnection.com, 1
 thecellulitediet.com, 1
 thecherryship.ch, 1
 thechunk.net, 1
 thecitywarehouse.clothing, 1
-theclimbingunit.com, 1
 thecloudshelter.com, 1
 thecoffeecamp.com, 1
 thecoffeesuperstore.com, 1
 thecolumnist.net, 1
 thecompany.pl, 1
 theconcordbridge.azurewebsites.net, 1
 thecondobuyers.com, 1
 thecookiejar.me, 1
@@ -39642,17 +39383,16 @@ themefoxx.com, 1
 themerchandiser.net, 1
 themesurgeons.net, 1
 themetacity.com, 1
 themigraineinstitute.com, 1
 themilanlife.com, 1
 themillerslive.com, 1
 themimitoof.fr, 1
 themist.cz, 1
-themobilestuffs.com, 1
 themoep.at, 1
 themoneyconverter.com, 1
 themonkeytrail.co.uk, 1
 themonthly.com.au, 1
 themostexpensiveworkofart.com, 1
 themusecollaborative.org, 1
 themusicinnoise.net, 1
 themusthaves.nl, 1
@@ -39664,18 +39404,16 @@ thenib.com, 1
 thenichecast.com, 1
 thenocman.com, 1
 thenovaclinic.com, 1
 thenowheremen.com, 1
 thenrdhrd.nl, 1
 theo.me, 1
 theobromos.fr, 1
 theocharis.org, 1
-theodorahome.co, 1
-theodorahome.com.br, 1
 theofleck.com, 1
 theojones.name, 1
 theokouzelis.com, 1
 theoldbrewhouse.info, 1
 theonethaimassage.de, 1
 theoriginalbit.com, 1
 theory-test-online.co.uk, 1
 theory.org, 1
@@ -39941,16 +39679,17 @@ threecrownsllp.com, 1
 threedpro.me, 1
 threefours.net, 1
 threelions.ch, 1
 threema.ch, 1
 threexxx.ch, 1
 threit.de, 1
 threv.net, 1
 thriftdiving.com, 1
+thrivesummit.com, 1
 thriveta.com, 1
 thriveweb.com.au, 1
 throttlerz.in, 1
 throughtheglass.photo, 1
 throwaway.link, 1
 throwpass.com, 1
 thues.eu, 1
 thuisverpleging-meerdael.be, 1
@@ -40048,16 +39787,17 @@ till.im, 1
 tillberg.us, 1
 tilleysbouncycastles.co.uk, 1
 tillseasyscore.com, 1
 tilosp.de, 1
 tilta.com, 1
 tiltedwindmillcrafts.com, 1
 timbarlotta.com, 1
 timberkel.com, 1
+timbers.space, 1
 timbishopartist.com, 1
 timbrust.de, 1
 timco.cloud, 1
 timdeneau.com, 1
 timdoug.com, 1
 time.gov, 1
 time.sh, 1
 time2060.ru, 1
@@ -40070,17 +39810,16 @@ timeless-photostudio.com, 1
 timer.fit, 1
 timersuite.com, 1
 timestamp.uk, 1
 timetab.org, 1
 timetech.io, 1
 timetotrade.com, 1
 timewasters.nl, 1
 timhieuthuoc.com, 1
-timing.com.br, 1
 timjk.de, 1
 timmersgems.com, 1
 timmy.im, 1
 timmy.ws, 1
 timmyrs.de, 1
 timnash.co.uk, 1
 timonengelke.de, 1
 timoso.de, 1
@@ -40180,17 +39919,16 @@ tkgpm.com, 1
 tkirch.de, 1
 tkjg.fi, 1
 tkn.me, 1
 tkn.tokyo, 1
 tkts.cl, 1
 tkusano.jp, 1
 tkw01536.de, 0
 tl.gg, 1
-tlach.cz, 1
 tlca.org, 1
 tlcnet.info, 1
 tlehseasyads.com, 1
 tleng.de, 1
 tlo.xyz, 1
 tloxygen.com, 1
 tls-proxy.de, 1
 tls.builders, 1
@@ -40304,17 +40042,16 @@ togech.jp, 1
 togetter.com, 1
 toheb.de, 0
 tohokinemakan.tk, 1
 tokage.me, 1
 tokaido-kun.jp, 1
 tokaido.com, 1
 tokainafb.net, 1
 tokainakurasi.net, 1
-tokbijouxs.com.br, 1
 tokenmarket.net, 1
 tokens.net, 1
 tokfun.com, 1
 tokic.hr, 1
 tokinoha.net, 1
 tokintu.com, 1
 tokio.fi, 1
 tokka.com, 1
@@ -40379,17 +40116,16 @@ tomkunze.de, 1
 tomkwok.com, 1
 tomli.blog, 1
 tomlowenthal.com, 1
 tomm.yt, 1
 tommic.eu, 1
 tomnatt.com, 1
 tomo.gr, 0
 tomosm.net, 1
-tomoyaf.com, 1
 tomravinmd.com, 1
 tomrei.com, 1
 tomrichards.net, 1
 toms.ovh, 1
 tomschlick.com, 1
 tomsdevsn.me, 1
 tomspdblog.com, 1
 tomssl.com, 1
@@ -40433,17 +40169,16 @@ tonnycat.com, 1
 tono.us, 1
 tonsit.com, 1
 tonsit.org, 1
 tontonnews.net, 1
 tonyarcieri.com, 1
 tonymanning.com, 0
 tonytan.cn, 1
 tonytan.io, 1
-tonytron.com.br, 1
 tonyw.xyz, 1
 tonywebster.com, 1
 too.gy, 1
 toobug.net, 1
 toolbox.ninja, 0
 toolkits.design, 1
 toolroomrecords.com, 1
 tools.pro, 1
@@ -40459,16 +40194,17 @@ toot.center, 1
 toothdoc.ca, 1
 tooti.biz, 1
 top-esb.com, 1
 top-obaly.cz, 1
 top-opakowania.pl, 1
 top-solar-info.de, 1
 top10mountainbikes.info, 1
 top5hosting.co.uk, 1
+top9.fr, 1
 topanlage.de, 1
 topaxi.ch, 1
 topaxi.codes, 1
 topbigdeals.com, 1
 topbounce.com, 1
 topbouncycastles.co.uk, 1
 topbrakes.com, 1
 topciderska-crkva.rs, 1
@@ -40537,30 +40273,27 @@ torrentz2.al, 1
 torresygutierrez.com, 1
 torretzalam.com, 1
 torservers.net, 1
 torsten-schmitz.net, 1
 torstensenf.de, 1
 torte.roma.it, 1
 tortocan.com, 1
 tortoises-turtles.com, 1
-tortugan.com.br, 1
 tosainu.com.br, 1
 tosamja.net, 1
 toscer.me, 0
-toschool.com.br, 1
 toshen.com, 1
 toshkov.com, 1
 toskana-appartement.de, 1
 tosostav.cz, 1
 tosteberg.se, 1
 tostu.de, 1
 totaku.ru, 1
 totalbeauty.co.uk, 1
-totalbike.com.br, 1
 totalcarcheck.co.uk, 1
 totalchecklist.com, 1
 totalforcegym.com, 1
 totalhomecareinc.com, 1
 totallylegitimatehosting.ru, 1
 totallynotaserver.com, 1
 totalpahire.com, 1
 totalparts.com.au, 1
@@ -40666,17 +40399,16 @@ traces.ml, 1
 tracfinancialservices.com, 1
 tracinsurance.com, 1
 track.plus, 1
 trackchair.com, 1
 trackdays4fun.com, 1
 trackdomains.com, 1
 trackersimulator.org, 1
 trackeye.dk, 1
-trackingstream.com, 1
 trackrecordpro.co.uk, 1
 tracksa.com.ar, 1
 trackyourlogs.com, 1
 tractorpumps.com, 1
 trad-n-vo.com, 1
 trade-arcade.com, 1
 trade.gov.uk, 1
 trade247.exchange, 1
@@ -41261,17 +40993,16 @@ tyil.work, 1
 tykoon.com, 1
 tyl.io, 1
 tyler.rs, 1
 tylerdavies.net, 1
 tylerfreedman.com, 1
 tylerharcourt.ca, 1
 tylerharcourt.com, 1
 tylerharcourt.net, 1
-tylerharcourt.org, 1
 tyleromeara.com, 1
 tylerschmidtke.com, 1
 typcn.com, 1
 type1joe.com, 1
 type1joe.net, 1
 type1joe.org, 1
 typeblog.net, 1
 typecodes.com, 1
@@ -41492,17 +41223,16 @@ umsapi.com, 1
 umsolugar.com.br, 1
 umwandeln-online.de, 1
 un-framed.co.za, 1
 un-zero-un.fr, 1
 un.fo, 1
 unapolegetic.co, 1
 unapp.me, 1
 unatco.noip.me, 1
-unausa.com.br, 1
 unbelievableplaces.de, 1
 unblock-zh.org, 1
 unblockall.xyz, 1
 unblocked.at, 1
 unblocked.bet, 1
 unblocked.bid, 1
 unblocked.cam, 1
 unblocked.gdn, 1
@@ -41514,17 +41244,16 @@ unblocked.one, 1
 unblocked.pl, 1
 unblocked.pro, 1
 unblocked.pub, 1
 unblocked.sh, 1
 unblocked.uno, 1
 unblocked.vc, 1
 unblocked.vet, 1
 unblocked.vip, 1
-unblockedbay.info, 1
 unblockweb.co, 1
 unboundmoney.com, 1
 unboxforteams.work, 1
 uncarved.com, 1
 unccelearn.org, 1
 uncensoreddns.dk, 1
 uncensoreddns.org, 1
 undecidable.de, 1
@@ -41581,17 +41310,16 @@ unicreditbank.hu, 1
 unicreditbank.rs, 1
 unicreditbank.ru, 0
 unidevgroup.ru, 1
 unieducar.org.br, 1
 uniekglas.nl, 1
 unifei.edu.br, 1
 unifiednetwork.me, 1
 uniform-agri.com, 1
-uniformebateriasheliar.com.br, 1
 unikoingold.com, 1
 unikrn.com, 1
 unila.edu.br, 1
 unimbalr.com, 1
 uninet.cf, 1
 uniojeda.ml, 1
 unionplat.ru, 1
 uniontestprep.com, 1
@@ -41642,17 +41370,16 @@ unlocken.nl, 1
 unlocktalent.gov, 1
 unlogis.ch, 1
 unmanaged.space, 1
 unmarkdocs.co, 1
 unmonito.red, 1
 unn-edu.info, 1
 uno-pizza.ru, 1
 uno.fi, 1
-unobrindes.com.br, 1
 unoccupyabq.org, 1
 unp.me, 1
 unpkg.com, 1
 unpossible.xyz, 1
 unpr.dk, 1
 unquote.li, 1
 unrealircd.org, 1
 unrelated.net.au, 1
@@ -41686,17 +41413,16 @@ upbad.com, 1
 upbeatrobot.eu, 1
 upd.jp, 1
 upgamerengine.com, 1
 upgamerengine.com.br, 1
 upgamerengine.net, 1
 upgauged.com, 1
 upholsterydesign.com.au, 1
 upitnik.rs, 1
-uplaqui.com.br, 1
 uplinklabs.net, 1
 upload.cat, 1
 upload.facebook.com, 0
 uploadbeta.com, 1
 uploadbro.com, 1
 uplr.it, 1
 upmchealthsecurity.us, 1
 upnext.io, 1
@@ -41705,17 +41431,16 @@ upperbeaconsfield.org.au, 1
 upperroommission.ca, 1
 upplevelse.com, 1
 upr-info.org, 1
 upr.com.ua, 1
 uprint.it, 1
 uprouteyou.com, 1
 upsettunnel.com, 1
 upsiteseo.com, 1
-uptechbrasil.com.br, 1
 uptimed.com, 1
 uptimenotguaranteed.com, 1
 uptodateinteriors.com, 1
 uptogood.org, 1
 uptoon.jp, 1
 uptownlocators.com, 1
 uptrends.com, 1
 uptrends.de, 1
@@ -42277,19 +42002,18 @@ vi.photo, 1
 via-shire-krug.ru, 1
 viacdn.org, 1
 viafinance.cz, 0
 viaggio-in-cina.it, 1
 viagraonlinebestellen.org, 1
 viagusto.pl, 1
 viajandoporelmundo.com.ar, 1
 viaje-a-china.com, 1
-vialibido.com.br, 1
-vialorran.com, 1
 viaprinto.de, 1
+viasinc.com, 0
 viato.fr, 1
 vibrant-america.com, 1
 vicenage.com, 1
 vicentee.com, 1
 vichiya.com, 1
 vician.cz, 0
 vicicode.com, 1
 viciousflora.com, 1
@@ -42390,24 +42114,21 @@ vikalbino.com.br, 1
 vikalpgupta.com, 1
 vikapaula.com, 1
 vikasbabyworld.de, 0
 vikashkumar.me, 1
 viking-style.ru, 1
 vikings.net, 1
 vikodek.com, 1
 viktorprevaric.eu, 1
-vilabiamodas.com.br, 1
 viladochurrasco.com.br, 1
 viljatori.fi, 1
 villa-anna-cilento.de, 1
 villa-gockel.de, 1
 villa-romantica-zillertal.at, 1
-villafiore.com.br, 1
-villageunique.com.br, 1
 villagockel.de, 1
 villainsclothing.com.au, 1
 villamariaamalfi.it, 1
 villasenor.online, 1
 villasfinistere.fr, 1
 villasforsale-bali.com, 1
 villasoasissanur.com, 1
 villehardouin.fr, 1
@@ -42429,17 +42150,16 @@ vincentpancol.com, 1
 vincible.space, 1
 vinciconps4.it, 1
 vincitraining.com, 1
 vineright.com, 1
 vinesauce.info, 1
 vinetalk.net, 1
 vinetech.co.nz, 1
 vinicius.sl, 1
-vinihk.com, 1
 vinilosdecorativos.net, 1
 vinner.com.au, 1
 vinnie.gq, 1
 vinolli.de, 1
 vinovum.net, 1
 vinsation.com, 1
 vinsetchampagne.fr, 1
 vintagebandfestival.org, 1
@@ -42493,17 +42213,16 @@ virtualvaults.com, 1
 virtubox.net, 1
 virvum.ch, 1
 visaexpert.co.za, 1
 visalist.io, 1
 visalogy.com, 1
 visaop.com, 1
 visapourailleurs.fr, 1
 visaya.com.co, 1
-viscoelastico.com.br, 1
 viscopic.com, 1
 viseum.co.uk, 1
 vishwashantiyoga.com, 1
 visibox.nl, 1
 visikom.de, 1
 visioflux-premium.com, 1
 visionarymedia.nl, 1
 visiondigitalsog.com, 1
@@ -42531,17 +42250,16 @@ vistodeturista.com.br, 1
 visual-cockpit.com, 1
 visualdrone.co, 1
 visualgrafix.com.mx, 1
 visualideas.org, 1
 visualizing.info, 1
 visualmasters.nl, 1
 visudira.com, 1
 vitahook.pw, 1
-vital-tel.co.uk, 1
 vitalamin.at, 1
 vitalamin.ch, 1
 vitalamin.com, 1
 vitalamin.de, 1
 vitalismaatjes.nl, 1
 vitalityscience.com, 1
 vitalthings.de, 1
 vitalthrills.com, 1
@@ -42563,16 +42281,17 @@ vitrado.de, 1
 vitsoft.by, 1
 vitzro.kr, 1
 vivaldi-fr.com, 1
 vivaldi.club, 1
 vivaldi.com, 1
 vivamusic.es, 1
 vivatv.com.tw, 1
 vivendi.de, 1
+vivianmaier.cn, 1
 vivid-academy.com, 1
 vividinflatables.co.uk, 1
 vividlumen.com, 1
 viviennevandenbos.nl, 1
 vivirenelmundo.com, 1
 vivo.sx, 1
 vivoitaliankitchen.com, 1
 vixrapedia.org, 1
@@ -42631,16 +42350,17 @@ vndb.org, 1
 vnfs-team.com, 1
 vnpem.org, 1
 vnvisa.center, 1
 vnvisa.ru, 1
 vocab.guru, 1
 vocalik.com, 1
 vocaloid.my, 1
 vocalsynth.space, 1
+vocalviews.com, 1
 vocus.aero, 1
 vocustest.aero, 1
 vodb.me, 1
 vodb.org, 1
 vodpay.com, 1
 vodpay.net, 1
 vodpay.org, 1
 voeux.io, 0
@@ -42757,17 +42477,16 @@ vreeman.com, 1
 vretmaskin.se, 1
 vriesdonkow.be, 1
 vrij-links.nl, 1
 vrijgezellen-feest.com, 1
 vrijgezellenfeestzwolle.com, 1
 vrjetpackgame.com, 1
 vrlaid.com, 0
 vroedvrouwella.be, 1
-vrsystem.com.br, 1
 vrtak-cz.net, 1
 vrtouring.org, 1
 vrzl.pro, 1
 vsamsonov.com, 1
 vscale.io, 1
 vsean.net, 1
 vserver-preis-vergleich.de, 1
 vsesrazu-raiffeisen.ru, 1
@@ -42781,16 +42500,17 @@ vtaxi.se, 1
 vtipe-vylez.cz, 1
 vtuber-schedule.info, 1
 vuakhuyenmai.vn, 1
 vubey.yt, 1
 vucdn.com, 1
 vuilelakens.be, 1
 vuljespaarpot.nl, 1
 vullriede-multimedia.de, 1
+vulndetect.com, 1
 vulndetect.org, 0
 vulnerabilities.io, 1
 vulnerability.ch, 1
 vulners.com, 1
 vulns.sexy, 1
 vulnscan.org, 1
 vulpine.club, 1
 vumetric.com, 1
@@ -43180,17 +42900,16 @@ webdollarvpn.io, 1
 webduck.nl, 0
 webeast.eu, 1
 webeau.com, 1
 webeditors.com, 1
 webergrillrestaurant.com, 1
 webev.ru, 1
 webexample.win, 1
 webexp.biz, 1
-webexpertsdirect.com.au, 1
 webfilings-eu-mirror.appspot.com, 1
 webfilings-eu.appspot.com, 1
 webfilings-mirror-hrd.appspot.com, 1
 webfilings.appspot.com, 1
 webfixers.nl, 1
 webfox.com.br, 1
 webgaff.com, 1
 webgap.io, 0
@@ -43322,17 +43041,17 @@ weekly-residence.com, 1
 weeklycenter.co.jp, 1
 weeknummers.be, 1
 weeknummers.nl, 1
 weekvandemediawijsheid.nl, 1
 weemake.fr, 1
 weemakers.fr, 1
 weepycat.com, 1
 weerda.fr, 1
-weerstationgiethoorn.nl, 0
+weerstationgiethoorn.nl, 1
 weerstatistieken.nl, 1
 wefinanceinc.com, 1
 wefitboilers.com, 1
 weforgood.org.tw, 1
 wegethitched.co.uk, 1
 weggeweest.nl, 1
 wegner.no, 1
 wegotcookies.com, 1
@@ -43495,17 +43214,16 @@ westmeadapartments.com.au, 1
 westmidlandsbouncycastlehire.co.uk, 1
 westmidlandsinflatables.co.uk, 1
 westsuburbanbank.com, 1
 westtulsa.com, 1
 westwood.no, 1
 wetofu.top, 1
 wetthost.com, 1
 wevenues.com, 1
-wevg.org, 1
 wewitro.de, 1
 wewitro.net, 1
 wexfordbouncycastles.ie, 1
 wexilapp.com, 1
 weyland-yutani.org, 1
 weynaphotography.com, 1
 wezartt.com, 1
 wf-bigsky-master.appspot.com, 1
@@ -43734,17 +43452,16 @@ wilkushka.com, 1
 wilkushka.net, 1
 willbarnesphotography.co.uk, 1
 willberg.bayern, 1
 willekeinden.nl, 1
 willems-kristiansen.dk, 1
 willfarrell.ca, 1
 willi-graf-gymnasium.de, 1
 willi-graf-os.de, 1
-william.gg, 1
 williamboulton.co.uk, 1
 williamboundsltd.com, 1
 williamfeely.info, 1
 williamjohngauthier.net, 1
 williamscomposer.com, 1
 williamsflintlocks.com, 1
 williamsonshore.com, 1
 williamsportmortgages.com, 1
@@ -44026,17 +43743,16 @@ workshopszwolle.nl, 1
 workshopzwolle.com, 1
 worksitevr.com, 1
 workwithgo.com, 1
 world-education-association.org, 1
 world-in-my-eyes.com, 1
 world-lolo.com, 1
 worldcareers.dk, 1
 worldchess.london, 1
-worldcigars.com.br, 1
 worldcrafts.org, 1
 worldcubeassociation.org, 1
 worldessays.com, 1
 worldeventscalendars.com, 1
 worldmeteo.info, 1
 worldnettps.com, 1
 worldofarganoil.com, 1
 worldofbelia.de, 1
@@ -44308,16 +44024,17 @@ www.techrepublic.com, 1
 www.theguardian.com, 1
 www.therapynotes.com, 1
 www.tinfoilsecurity.com, 0
 www.torproject.org, 0
 www.tumblr.com, 0
 www.twitter.com, 0
 www.united.com, 1
 www.usaa.com, 0
+www.viasinc.com, 0
 www.vino75.com, 0
 www.wepay.com, 0
 www.wordpress.com, 0
 www.zdnet.com, 1
 www68277.com, 1
 wwww.is, 1
 wwww.me.uk, 1
 wxcafe.net, 1
@@ -44337,17 +44054,16 @@ wynterhill.co.uk, 1
 wyo.cam, 1
 wypemagazine.se, 1
 wyrickstaxidermy.com, 1
 wyrihaximus.net, 1
 wyrimaps.net, 1
 wyssmuller.ch, 1
 wyu.cc, 1
 wyzwaniemilosci.com, 1
-wzfetish.com.br, 1
 wzfou.com, 1
 wzrd.in, 1
 wzyboy.org, 1
 x-lan.be, 1
 x-one.co.jp, 1
 x.io, 1
 x.st, 1
 x0r.be, 1
@@ -44460,30 +44176,29 @@ xice.cf, 1
 xichtsbuch.de, 1
 xichuangke.com, 0
 xicreative.net, 1
 xiecongan.org, 1
 xif.at, 1
 xight.org, 1
 xilef.org, 1
 xilegames.com, 1
+xiliant.com, 0
 xilkoi.net, 1
 xilou.org, 1
 ximbo.net, 1
 xin-in.com, 1
 xin-in.net, 1
 xing-in.net, 1
 xing.ml, 1
 xinj.com, 1
 xinnixdeuren-shop.be, 1
 xinuspeed.com, 1
 xinuspeedtest.com, 1
 xinuurl.com, 1
-xiongx.cn, 1
-xiqi.us, 1
 xirion.net, 1
 xj8876.com, 1
 xjd.vision, 1
 xjf6.com, 1
 xjjeeps.com, 1
 xjoi.net, 1
 xjoin.de, 1
 xjpvictor.info, 1
@@ -44494,17 +44209,16 @@ xkviz.net, 1
 xlaff.com, 1
 xlan.be, 1
 xlange.com, 1
 xluxes.jp, 1
 xmedius.ca, 1
 xmedius.com, 0
 xmedius.eu, 1
 xmenrevolution.com, 1
-xmerak.com, 1
 xmiui.com, 1
 xmlbeam.org, 1
 xmlogin288.com, 1
 xmpp.dk, 1
 xmppwocky.net, 1
 xmr.to, 1
 xmtpro.com, 1
 xmusic.live, 1
@@ -44794,17 +44508,16 @@ xyndrac.net, 1
 xyngular-health.com, 1
 xynta.ch, 1
 xywing.com, 1
 xyyp.mn, 1
 xyzulu.hosting, 1
 xza.fr, 1
 xzclip.cn, 1
 xzy.es, 1
-xzy.one, 1
 y11n.net, 1
 y3451.com, 1
 yaay.com.br, 1
 yabrt.cn, 1
 yabuisha.jp, 1
 yachigoya.com, 1
 yacineboumaza.fr, 1
 yacobo.com, 1
@@ -44918,17 +44631,16 @@ yelp.no, 1
 yelp.pl, 1
 yelp.pt, 1
 yelp.se, 1
 yemalu.com, 1
 yemekbaz.az, 1
 yemektarifleri.com, 1
 yenibilgi.net, 1
 yennhi.co, 1
-yenpape.com, 1
 yep-pro.ch, 1
 yepbitcoin.com, 1
 yephy.com, 1
 yesfone.com.br, 1
 yeshu.org, 1
 yesiammaisey.me, 1
 yeswecan.co.bw, 1
 yeswehack.com, 1
@@ -45012,16 +44724,17 @@ yoitsu.moe, 1
 yokohama-legaloffice.jp, 1
 yolo-csgo.com, 1
 yolo.jetzt, 1
 yolobert.de, 1
 yoloboatrentals.com, 1
 yolops.net, 1
 yombo.net, 1
 yomena.in, 1
+yon.co.il, 1
 yongbin.org, 1
 yoonas.com, 1
 yooooex.com, 1
 yoppoy.com, 1
 yopuedo.co, 1
 yoramvandevelde.net, 1
 yorcom.nl, 0
 yorcool.nl, 1
@@ -45034,17 +44747,16 @@ yosheenetwork.fr, 1
 yoshibaworks.com, 1
 yoshitsugu.net, 1
 yospos.org, 1
 yoticonnections.com, 1
 yotilab.com, 1
 yotilabs.com, 1
 yotta-zetta.com, 1
 yotubaiotona.net, 1
-you.com.br, 1
 you2you.fr, 1
 youareme.ca, 1
 youc.ir, 1
 youcancraft.de, 1
 youcanfuckoff.xyz, 1
 youcanmakeit.at, 1
 youcruit.com, 1
 youdowell.com, 1
@@ -45116,19 +44828,16 @@ yr166166.com, 1
 yrjanheikki.com, 1
 yryz.net, 1
 ys-shop.biz, 1
 ysicing.net, 1
 ysicorp.com, 1
 yspeo.biz, 1
 ysun.xyz, 1
 ysx.me.uk, 1
-ytb.zone, 1
-ytbmp3.com, 1
-ytbmp4.com, 1
 ytec.ca, 1
 ytpak.com, 1
 ytpak.pk, 1
 ytreza.fr, 1
 ytuquelees.net, 1
 ytx588.com, 1
 yu.vc, 1
 yuan.ga, 1
@@ -45224,17 +44933,16 @@ yurimoens.be, 1
 yurinet.org, 1
 yurisviridov.com, 1
 yusa.me, 1
 yushi.moe, 1
 yusu.org, 1
 yutakato.net, 1
 yutang.vn, 1
 yutangyun.com, 1
-yutaron.tokyo, 1
 yutuo.net, 1
 yuwei.org, 1
 yuweiyang.xyz, 1
 yux.fr, 1
 yuxuan.org, 1
 yuyo.com, 1
 yuyu.io, 1
 yuzei.tk, 1
@@ -45270,17 +44978,16 @@ z99944x.xyz, 1
 za.search.yahoo.com, 0
 zaagbaak.nl, 1
 zaalleatherwear.nl, 0
 zabbix.tips, 1
 zabszk.net, 1
 zabukovnik.net, 1
 zacadam.com, 1
 zacarias.com.ar, 1
-zacavi.com.br, 1
 zacchaeus.co.uk, 1
 zacco.site, 1
 zach.codes, 1
 zacharopoulos.eu, 1
 zacharopoulos.me, 0
 zacharopoulos.org, 0
 zacharydubois.me, 1
 zacharyschneider.com, 1
@@ -45309,17 +45016,16 @@ zakojifarm.jp, 1
 zakr.es, 1
 zakspartiesandevents.com, 1
 zalamea.ph, 1
 zalan.do, 1
 zaloghaz.ro, 1
 zalohovaniburian.cz, 1
 zalvus.com, 1
 zamalektoday.com, 1
-zamocosmeticos.com.br, 1
 zamow.co, 1
 zandcell.com, 1
 zander.dk, 1
 zanellidesigns.co.uk, 1
 zanthra.com, 1
 zanzabar.it, 1
 zaoext.com, 1
 zapier.com, 1
@@ -45405,16 +45111,17 @@ zenmate.com.tr, 1
 zennzimie.be, 1
 zennzimie.com, 1
 zenofa.co.id, 1
 zentask.io, 1
 zenti.cloud, 1
 zenvideocloud.com, 1
 zenvite.com, 1
 zenycosta.com, 1
+zeparadox.com, 1
 zephyrbk.com, 1
 zephyrbookkeeping.com, 1
 zephyretcoraline.com, 1
 zeplin.io, 1
 zer0-day.pw, 1
 zer0.de, 0
 zerg.uk, 1
 zero-sum.xyz, 1
@@ -45439,17 +45146,16 @@ zeryn.net, 1
 zespia.tw, 0
 zestylemon.co.uk, 1
 zetamode.com, 1
 zetorzeszow.pl, 0
 zettaplan.ru, 1
 zettlmeissl.de, 1
 zevelev.net, 1
 zewtie.com, 1
-zfast.com.br, 1
 zfg.li, 1
 zfly.me, 1
 zfo.gg, 1
 zfree.co.nz, 1
 zg-dyw.net, 1
 zgan.ga, 1
 zgrep.org, 1
 zh.search.yahoo.com, 0
@@ -45612,17 +45318,16 @@ zoomseoservices.com, 0
 zooom.azurewebsites.net, 1
 zooom2.azurewebsites.net, 1
 zooparadies.eu, 1
 zooplankton.no, 1
 zootime.net, 1
 zootime.org, 1
 zoowiki.us, 1
 zooxdata.com, 1
-zopy.com.br, 1
 zopyx.com, 1
 zor.com, 1
 zorasvobodova.cz, 1
 zorgclustertool.nl, 1
 zorig.ch, 1
 zorium.org, 1
 zorntt.fr, 1
 zorz.info, 1
@@ -45672,17 +45377,16 @@ zundapp529.nl, 1
 zundappachterhoek.nl, 1
 zuolan.me, 0
 zup.me, 1
 zupago.com, 1
 zupago.pe, 1
 zuppy.pm, 1
 zuralski.net, 1
 zurgl.com, 0
-zurickrelogios.com.br, 1
 zurret.de, 1
 zusjesvandenbos.nl, 1
 zuviel.space, 1
 zuzumba.es, 1
 zvps.uk, 1
 zvxr.net, 1
 zvz.im, 1
 zwalcz-cellulit.com, 1
--- a/servo/components/style/Cargo.toml
+++ b/servo/components/style/Cargo.toml
@@ -17,17 +17,17 @@ doctest = false
 
 [features]
 gecko = ["nsstring", "num_cpus",
          "style_traits/gecko", "fallible/known_system_malloc"]
 use_bindgen = ["bindgen", "regex", "toml"]
 servo = ["serde", "style_traits/servo", "servo_atoms", "servo_config", "html5ever",
          "cssparser/serde", "encoding_rs", "malloc_size_of/servo", "arrayvec/use_union",
          "servo_url", "string_cache", "servo_channel"]
-gecko_debug = ["nsstring/gecko_debug"]
+gecko_debug = []
 
 [dependencies]
 app_units = "0.7"
 arrayvec = "0.4.6"
 atomic_refcell = "0.1"
 bitflags = "1.0"
 byteorder = "1.0"
 cfg-if = "0.1.0"
--- a/servo/components/style/custom_properties.rs
+++ b/servo/components/style/custom_properties.rs
@@ -538,17 +538,16 @@ impl<'a> CustomPropertiesBuilder<'a> {
         }
 
         let map = self.custom_properties.as_mut().unwrap();
         match specified_value {
             DeclaredValue::Value(ref specified_value) => {
                 self.may_have_cycles |= !specified_value.references.is_empty();
                 map.insert(name.clone(), (*specified_value).clone());
             },
-            DeclaredValue::WithVariables(_) => unreachable!(),
             DeclaredValue::CSSWideKeyword(keyword) => match keyword {
                 CSSWideKeyword::Initial => {
                     map.remove(name);
                 },
                 // handled in value_may_affect_style
                 CSSWideKeyword::Unset | CSSWideKeyword::Inherit => unreachable!(),
             },
         }
new file mode 100644
--- /dev/null
+++ b/servo/components/style/properties/cascade.rs
@@ -0,0 +1,807 @@
+/* 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/. */
+
+//! The main cascading algorithm of the style system.
+
+use context::QuirksMode;
+use custom_properties::CustomPropertiesBuilder;
+use dom::TElement;
+use font_metrics::FontMetricsProvider;
+use logical_geometry::WritingMode;
+use media_queries::Device;
+use properties::{ComputedValues, StyleBuilder};
+use properties::{LonghandId, LonghandIdSet};
+use properties::{PropertyDeclaration, PropertyDeclarationId, DeclarationImportanceIterator};
+use properties::{CSSWideKeyword, WideKeywordDeclaration};
+use properties::CASCADE_PROPERTY;
+use rule_cache::{RuleCache, RuleCacheConditions};
+use rule_tree::{CascadeLevel, StrongRuleNode};
+use selector_parser::PseudoElement;
+use servo_arc::Arc;
+use shared_lock::StylesheetGuards;
+use smallbitvec::SmallBitVec;
+use std::borrow::Cow;
+use std::cell::RefCell;
+use style_adjuster::StyleAdjuster;
+use values::computed;
+
+/// We split the cascade in two phases: 'early' properties, and 'late'
+/// properties.
+///
+/// Early properties are the ones that don't have dependencies _and_ other
+/// properties depend on, for example, writing-mode related properties, color
+/// (for currentColor), or font-size (for em, etc).
+///
+/// Late properties are all the others.
+trait CascadePhase {
+    fn is_early() -> bool;
+}
+
+struct EarlyProperties;
+impl CascadePhase for EarlyProperties {
+    fn is_early() -> bool {
+        true
+    }
+}
+
+struct LateProperties;
+impl CascadePhase for LateProperties {
+    fn is_early() -> bool {
+        false
+    }
+}
+
+#[derive(Clone, Copy, Debug, Eq, PartialEq)]
+enum ApplyResetProperties {
+    No,
+    Yes,
+}
+
+/// Performs the CSS cascade, computing new styles for an element from its parent style.
+///
+/// The arguments are:
+///
+///   * `device`: Used to get the initial viewport and other external state.
+///
+///   * `rule_node`: The rule node in the tree that represent the CSS rules that
+///   matched.
+///
+///   * `parent_style`: The parent style, if applicable; if `None`, this is the root node.
+///
+/// Returns the computed values.
+///   * `flags`: Various flags.
+///
+pub fn cascade<E>(
+    device: &Device,
+    pseudo: Option<&PseudoElement>,
+    rule_node: &StrongRuleNode,
+    guards: &StylesheetGuards,
+    parent_style: Option<&ComputedValues>,
+    parent_style_ignoring_first_line: Option<&ComputedValues>,
+    layout_parent_style: Option<&ComputedValues>,
+    visited_rules: Option<&StrongRuleNode>,
+    font_metrics_provider: &FontMetricsProvider,
+    quirks_mode: QuirksMode,
+    rule_cache: Option<&RuleCache>,
+    rule_cache_conditions: &mut RuleCacheConditions,
+    element: Option<E>,
+) -> Arc<ComputedValues>
+where
+    E: TElement,
+{
+    cascade_rules(
+        device,
+        pseudo,
+        rule_node,
+        guards,
+        parent_style,
+        parent_style_ignoring_first_line,
+        layout_parent_style,
+        font_metrics_provider,
+        CascadeMode::Unvisited { visited_rules },
+        quirks_mode,
+        rule_cache,
+        rule_cache_conditions,
+        element,
+    )
+}
+
+fn cascade_rules<E>(
+    device: &Device,
+    pseudo: Option<&PseudoElement>,
+    rule_node: &StrongRuleNode,
+    guards: &StylesheetGuards,
+    parent_style: Option<&ComputedValues>,
+    parent_style_ignoring_first_line: Option<&ComputedValues>,
+    layout_parent_style: Option<&ComputedValues>,
+    font_metrics_provider: &FontMetricsProvider,
+    cascade_mode: CascadeMode,
+    quirks_mode: QuirksMode,
+    rule_cache: Option<&RuleCache>,
+    rule_cache_conditions: &mut RuleCacheConditions,
+    element: Option<E>,
+) -> Arc<ComputedValues>
+where
+    E: TElement,
+{
+    debug_assert_eq!(
+        parent_style.is_some(),
+        parent_style_ignoring_first_line.is_some()
+    );
+    let empty = SmallBitVec::new();
+    let restriction = pseudo.and_then(|p| p.property_restriction());
+    let iter_declarations = || {
+        rule_node.self_and_ancestors().flat_map(|node| {
+            let cascade_level = node.cascade_level();
+            let node_importance = node.importance();
+            let declarations = match node.style_source() {
+                Some(source) => source
+                    .read(cascade_level.guard(guards))
+                    .declaration_importance_iter(),
+                None => DeclarationImportanceIterator::new(&[], &empty),
+            };
+
+            declarations
+                // Yield declarations later in source order (with more precedence) first.
+                .rev()
+                .filter_map(move |(declaration, declaration_importance)| {
+                    if let Some(restriction) = restriction {
+                        // declaration.id() is either a longhand or a custom
+                        // property.  Custom properties are always allowed, but
+                        // longhands are only allowed if they have our
+                        // restriction flag set.
+                        if let PropertyDeclarationId::Longhand(id) = declaration.id() {
+                            if !id.flags().contains(restriction) {
+                                return None;
+                            }
+                        }
+                    }
+
+                    if declaration_importance == node_importance {
+                        Some((declaration, cascade_level))
+                    } else {
+                        None
+                    }
+                })
+        })
+    };
+
+    apply_declarations(
+        device,
+        pseudo,
+        rule_node,
+        guards,
+        iter_declarations,
+        parent_style,
+        parent_style_ignoring_first_line,
+        layout_parent_style,
+        font_metrics_provider,
+        cascade_mode,
+        quirks_mode,
+        rule_cache,
+        rule_cache_conditions,
+        element,
+    )
+}
+
+/// Whether we're cascading for visited or unvisited styles.
+#[derive(Clone, Copy)]
+pub enum CascadeMode<'a> {
+    /// We're cascading for unvisited styles.
+    Unvisited {
+        /// The visited rules that should match the visited style.
+        visited_rules: Option<&'a StrongRuleNode>,
+    },
+    /// We're cascading for visited styles.
+    Visited {
+        /// The writing mode of our unvisited style, needed to correctly resolve
+        /// logical properties..
+        writing_mode: WritingMode,
+    },
+}
+
+/// NOTE: This function expects the declaration with more priority to appear
+/// first.
+pub fn apply_declarations<'a, E, F, I>(
+    device: &Device,
+    pseudo: Option<&PseudoElement>,
+    rules: &StrongRuleNode,
+    guards: &StylesheetGuards,
+    iter_declarations: F,
+    parent_style: Option<&ComputedValues>,
+    parent_style_ignoring_first_line: Option<&ComputedValues>,
+    layout_parent_style: Option<&ComputedValues>,
+    font_metrics_provider: &FontMetricsProvider,
+    cascade_mode: CascadeMode,
+    quirks_mode: QuirksMode,
+    rule_cache: Option<&RuleCache>,
+    rule_cache_conditions: &mut RuleCacheConditions,
+    element: Option<E>,
+) -> Arc<ComputedValues>
+where
+    E: TElement,
+    F: Fn() -> I,
+    I: Iterator<Item = (&'a PropertyDeclaration, CascadeLevel)>,
+{
+    debug_assert!(layout_parent_style.is_none() || parent_style.is_some());
+    debug_assert_eq!(
+        parent_style.is_some(),
+        parent_style_ignoring_first_line.is_some()
+    );
+    #[cfg(feature = "gecko")]
+    debug_assert!(
+        parent_style.is_none() ||
+            ::std::ptr::eq(
+                parent_style.unwrap(),
+                parent_style_ignoring_first_line.unwrap()
+            ) ||
+            parent_style.unwrap().pseudo() == Some(PseudoElement::FirstLine)
+    );
+
+    let inherited_style = parent_style.unwrap_or(device.default_computed_values());
+
+    let custom_properties = {
+        let mut builder = CustomPropertiesBuilder::new(inherited_style.custom_properties());
+
+        for (declaration, _cascade_level) in iter_declarations() {
+            if let PropertyDeclaration::Custom(ref declaration) = *declaration {
+                builder.cascade(&declaration.name, declaration.value.borrow());
+            }
+        }
+
+        builder.build()
+    };
+
+    let mut context = computed::Context {
+        is_root_element: pseudo.is_none() && element.map_or(false, |e| e.is_root()),
+        // We'd really like to own the rules here to avoid refcount traffic, but
+        // animation's usage of `apply_declarations` make this tricky. See bug
+        // 1375525.
+        builder: StyleBuilder::new(
+            device,
+            parent_style,
+            parent_style_ignoring_first_line,
+            pseudo,
+            Some(rules.clone()),
+            custom_properties,
+        ),
+        cached_system_font: None,
+        in_media_query: false,
+        for_smil_animation: false,
+        for_non_inherited_property: None,
+        font_metrics_provider,
+        quirks_mode,
+        rule_cache_conditions: RefCell::new(rule_cache_conditions),
+    };
+
+    let using_cached_reset_properties = {
+        let mut cascade = Cascade::new(&mut context, cascade_mode);
+
+        cascade
+            .apply_properties::<EarlyProperties, I>(ApplyResetProperties::Yes, iter_declarations());
+
+        cascade.compute_visited_style_if_needed(
+            element,
+            parent_style,
+            parent_style_ignoring_first_line,
+            layout_parent_style,
+            guards,
+        );
+
+        let using_cached_reset_properties =
+            cascade.try_to_use_cached_reset_properties(rule_cache, guards);
+
+        let apply_reset = if using_cached_reset_properties {
+            ApplyResetProperties::No
+        } else {
+            ApplyResetProperties::Yes
+        };
+
+        cascade.apply_properties::<LateProperties, I>(apply_reset, iter_declarations());
+
+        using_cached_reset_properties
+    };
+
+    context.builder.clear_modified_reset();
+
+    if matches!(cascade_mode, CascadeMode::Unvisited { .. }) {
+        StyleAdjuster::new(&mut context.builder)
+            .adjust(layout_parent_style.unwrap_or(inherited_style), element);
+    }
+
+    if context.builder.modified_reset() || using_cached_reset_properties {
+        // If we adjusted any reset structs, we can't cache this ComputedValues.
+        //
+        // Also, if we re-used existing reset structs, don't bother caching it
+        // back again. (Aside from being wasted effort, it will be wrong, since
+        // context.rule_cache_conditions won't be set appropriately if we didn't
+        // compute those reset properties.)
+        context.rule_cache_conditions.borrow_mut().set_uncacheable();
+    }
+
+    context.builder.build()
+}
+
+fn should_ignore_declaration_when_ignoring_document_colors(
+    device: &Device,
+    longhand_id: LonghandId,
+    cascade_level: CascadeLevel,
+    pseudo: Option<&PseudoElement>,
+    declaration: &mut Cow<PropertyDeclaration>,
+) -> bool {
+    if !longhand_id.ignored_when_document_colors_disabled() {
+        return false;
+    }
+
+    let is_ua_or_user_rule = matches!(
+        cascade_level,
+        CascadeLevel::UANormal |
+            CascadeLevel::UserNormal |
+            CascadeLevel::UserImportant |
+            CascadeLevel::UAImportant
+    );
+
+    if is_ua_or_user_rule {
+        return false;
+    }
+
+    let is_style_attribute = matches!(
+        cascade_level,
+        CascadeLevel::StyleAttributeNormal | CascadeLevel::StyleAttributeImportant
+    );
+
+    // Don't override colors on pseudo-element's style attributes. The
+    // background-color on ::-moz-color-swatch is an example. Those are set
+    // as an author style (via the style attribute), but it's pretty
+    // important for it to show up for obvious reasons :)
+    if pseudo.is_some() && is_style_attribute {
+        return false;
+    }
+
+    // Treat background-color a bit differently.  If the specified color is
+    // anything other than a fully transparent color, convert it into the
+    // Device's default background color.
+    {
+        let background_color = match **declaration {
+            PropertyDeclaration::BackgroundColor(ref color) => color,
+            _ => return true,
+        };
+
+        if background_color.is_transparent() {
+            return false;
+        }
+    }
+
+    let color = device.default_background_color();
+    *declaration.to_mut() = PropertyDeclaration::BackgroundColor(color.into());
+
+    false
+}
+
+struct Cascade<'a, 'b: 'a> {
+    context: &'a mut computed::Context<'b>,
+    cascade_mode: CascadeMode<'a>,
+    seen: LonghandIdSet,
+    saved_font_size: Option<PropertyDeclaration>,
+    saved_font_family: Option<PropertyDeclaration>,
+}
+
+impl<'a, 'b: 'a> Cascade<'a, 'b> {
+    fn new(context: &'a mut computed::Context<'b>, cascade_mode: CascadeMode<'a>) -> Self {
+        Self {
+            context,
+            cascade_mode,
+            seen: LonghandIdSet::default(),
+            saved_font_size: None,
+            saved_font_family: None,
+        }
+    }
+
+    fn substitute_variables_if_needed<'decl>(
+        &mut self,
+        declaration: &'decl PropertyDeclaration,
+    ) -> Cow<'decl, PropertyDeclaration> {
+        let declaration = match *declaration {
+            PropertyDeclaration::WithVariables(ref declaration) => declaration,
+            ref d => return Cow::Borrowed(d),
+        };
+
+        if !declaration.id.inherited() {
+            self.context
+                .rule_cache_conditions
+                .borrow_mut()
+                .set_uncacheable();
+        }
+
+        Cow::Owned(declaration.value.substitute_variables(
+            declaration.id,
+            self.context.builder.custom_properties.as_ref(),
+            self.context.quirks_mode,
+        ))
+    }
+
+    fn apply_declaration<Phase: CascadePhase>(
+        &mut self,
+        longhand_id: LonghandId,
+        declaration: &PropertyDeclaration,
+    ) {
+        // FIXME(emilio): Find a cleaner abstraction for this.
+        //
+        // font-size and font-family are special because in Gecko they're
+        // they're dependent on other early props, like lang and
+        // -moz-min-font-size-ratio. This sucks a bit, we should ideally
+        // move the font-size computation code somewhere else...
+        if Phase::is_early() {
+            if longhand_id == LonghandId::FontSize {
+                self.saved_font_size = Some(declaration.clone());
+                return;
+            }
+            if longhand_id == LonghandId::FontFamily {
+                self.saved_font_family = Some(declaration.clone());
+                return;
+            }
+        }
+
+        self.apply_declaration_ignoring_phase(longhand_id, declaration);
+    }
+
+    #[inline(always)]
+    fn apply_declaration_ignoring_phase(
+        &mut self,
+        longhand_id: LonghandId,
+        declaration: &PropertyDeclaration,
+    ) {
+        // We could (and used to) use a pattern match here, but that bloats this
+        // function to over 100K of compiled code!
+        //
+        // To improve i-cache behavior, we outline the individual functions and
+        // use virtual dispatch instead.
+        let discriminant = longhand_id as usize;
+        (CASCADE_PROPERTY[discriminant])(declaration, &mut self.context);
+    }
+
+    fn apply_properties<'decls, Phase, I>(
+        &mut self,
+        apply_reset: ApplyResetProperties,
+        declarations: I,
+    ) where
+        Phase: CascadePhase,
+        I: Iterator<Item = (&'decls PropertyDeclaration, CascadeLevel)>,
+    {
+        let apply_reset = apply_reset == ApplyResetProperties::Yes;
+
+        debug_assert!(
+            !Phase::is_early() || apply_reset,
+            "Should always apply reset properties in the early phase, since we \
+             need to know font-size / writing-mode to decide whether to use the \
+             cached reset properties"
+        );
+
+        let ignore_colors = !self.context.builder.device.use_document_colors();
+
+        for (declaration, cascade_level) in declarations {
+            let declaration_id = declaration.id();
+            let longhand_id = match declaration_id {
+                PropertyDeclarationId::Longhand(id) => id,
+                PropertyDeclarationId::Custom(..) => continue,
+            };
+
+            let inherited = longhand_id.inherited();
+            if !apply_reset && !inherited {
+                continue;
+            }
+
+            if Phase::is_early() != longhand_id.is_early_property() {
+                continue;
+            }
+
+            debug_assert!(!Phase::is_early() || !longhand_id.is_logical());
+            let physical_longhand_id = if Phase::is_early() {
+                longhand_id
+            } else {
+                longhand_id.to_physical(self.context.builder.writing_mode)
+            };
+
+            if self.seen.contains(physical_longhand_id) {
+                continue;
+            }
+
+            // Only a few properties are allowed to depend on the visited state
+            // of links.  When cascading visited styles, we can save time by
+            // only processing these properties.
+            if matches!(self.cascade_mode, CascadeMode::Visited { .. }) &&
+                !physical_longhand_id.is_visited_dependent()
+            {
+                continue;
+            }
+
+            let mut declaration = self.substitute_variables_if_needed(declaration);
+
+            // When document colors are disabled, skip properties that are
+            // marked as ignored in that mode, unless they come from a UA or
+            // user style sheet.
+            if ignore_colors {
+                let should_ignore = should_ignore_declaration_when_ignoring_document_colors(
+                    self.context.builder.device,
+                    longhand_id,
+                    cascade_level,
+                    self.context.builder.pseudo,
+                    &mut declaration,
+                );
+                if should_ignore {
+                    continue;
+                }
+            }
+
+            self.seen.insert(physical_longhand_id);
+
+            // FIXME(emilio): We should avoid generating code for logical
+            // longhands and just use the physical ones, then rename
+            // physical_longhand_id to just longhand_id.
+            self.apply_declaration::<Phase>(longhand_id, &*declaration);
+        }
+
+        if Phase::is_early() {
+            self.fixup_font_and_apply_saved_font_properties();
+            self.compute_writing_mode();
+        } else {
+            self.finished_applying_properties();
+        }
+    }
+
+    fn compute_writing_mode(&mut self) {
+        let writing_mode = match self.cascade_mode {
+            CascadeMode::Unvisited { .. } => {
+                WritingMode::new(self.context.builder.get_inherited_box())
+            },
+            CascadeMode::Visited { writing_mode } => writing_mode,
+        };
+        self.context.builder.writing_mode = writing_mode;
+    }
+
+    fn compute_visited_style_if_needed<E>(
+        &mut self,
+        element: Option<E>,
+        parent_style: Option<&ComputedValues>,
+        parent_style_ignoring_first_line: Option<&ComputedValues>,
+        layout_parent_style: Option<&ComputedValues>,
+        guards: &StylesheetGuards,
+    ) where
+        E: TElement,
+    {
+        let visited_rules = match self.cascade_mode {
+            CascadeMode::Unvisited { visited_rules } => visited_rules,
+            CascadeMode::Visited { .. } => return,
+        };
+
+        let visited_rules = match visited_rules {
+            Some(rules) => rules,
+            None => return,
+        };
+
+        let is_link = self.context.builder.pseudo.is_none() && element.unwrap().is_link();
+
+        macro_rules! visited_parent {
+            ($parent:expr) => {
+                if is_link {
+                    $parent
+                } else {
+                    $parent.map(|p| p.visited_style().unwrap_or(p))
+                }
+            };
+        }
+
+        let writing_mode = self.context.builder.writing_mode;
+
+        // We could call apply_declarations directly, but that'd cause
+        // another instantiation of this function which is not great.
+        let style = cascade_rules(
+            self.context.builder.device,
+            self.context.builder.pseudo,
+            visited_rules,
+            guards,
+            visited_parent!(parent_style),
+            visited_parent!(parent_style_ignoring_first_line),
+            visited_parent!(layout_parent_style),
+            self.context.font_metrics_provider,
+            CascadeMode::Visited { writing_mode },
+            self.context.quirks_mode,
+            // The rule cache doesn't care about caching :visited
+            // styles, we cache the unvisited style instead. We still do
+            // need to set the caching dependencies properly if present
+            // though, so the cache conditions need to match.
+            /* rule_cache = */ None,
+            &mut *self.context.rule_cache_conditions.borrow_mut(),
+            element,
+        );
+        self.context.builder.visited_style = Some(style);
+    }
+
+    fn finished_applying_properties(&mut self) {
+        let builder = &mut self.context.builder;
+
+        #[cfg(feature = "gecko")]
+        {
+            if let Some(bg) = builder.get_background_if_mutated() {
+                bg.fill_arrays();
+            }
+
+            if let Some(svg) = builder.get_svg_if_mutated() {
+                svg.fill_arrays();
+            }
+        }
+
+        #[cfg(feature = "servo")]
+        {
+            // TODO(emilio): Use get_font_if_mutated instead.
+            if self.seen.contains(LonghandId::FontStyle) ||
+                self.seen.contains(LonghandId::FontWeight) ||
+                self.seen.contains(LonghandId::FontStretch) ||
+                self.seen.contains(LonghandId::FontFamily)
+            {
+                builder.mutate_font().compute_font_hash();
+            }
+        }
+    }
+
+    fn try_to_use_cached_reset_properties(
+        &mut self,
+        cache: Option<&'b RuleCache>,
+        guards: &StylesheetGuards,
+    ) -> bool {
+        let cache = match cache {
+            Some(cache) => cache,
+            None => return false,
+        };
+
+        let cached_style = match cache.find(guards, &self.context.builder) {
+            Some(style) => style,
+            None => return false,
+        };
+
+        self.context.builder.copy_reset_from(cached_style);
+        true
+    }
+
+    // FIXME(emilio): It'd be really nice to simplify all this, somehow. This is
+    // very annoying code in lots of ways, and there are various bits about it
+    // which I think are broken or could be improved, see the various FIXMEs
+    // below.
+    fn fixup_font_and_apply_saved_font_properties(&mut self) {
+        let font_family = self.saved_font_family.take();
+        let font_size = self.saved_font_size.take();
+        let mut _skip_font_family = false;
+
+        #[cfg(feature = "gecko")]
+        {
+            // <svg:text> is not affected by text zoom, and it uses a preshint
+            // to disable it. We fix up the struct when this happens by
+            // unzooming its contained font values, which will have been zoomed
+            // in the parent.
+            //
+            // FIXME(emilio): Could be cleaner if we just removed this property
+            // and made a style adjustment o something like that.
+            if self.seen.contains(LonghandId::XTextZoom) {
+                let builder = &mut self.context.builder;
+
+                let parent_zoom = builder.get_parent_font().gecko().mAllowZoom;
+                let zoom = builder.get_font().gecko().mAllowZoom;
+                if zoom != parent_zoom {
+                    debug_assert!(
+                        !zoom,
+                        "We only ever disable text zoom (in svg:text), never enable it"
+                    );
+                    let device = builder.device;
+                    builder.mutate_font().unzoom_fonts(device);
+                }
+            }
+
+            // Whenever a single generic value is specified, Gecko used to do a
+            // bunch of recalculation walking up the rule tree, including
+            // handling the font-size stuff.
+            //
+            // It basically repopulated the font struct with the default font
+            // for a given generic and language. We handle the font-size stuff
+            // separately, so this boils down to just copying over the
+            // font-family lists (no other aspect of the default font can be
+            // configured).
+            if self.seen.contains(LonghandId::XLang) || self.seen.contains(LonghandId::FontFamily) {
+                // If just the language changed, the inherited generic is all we
+                // need.
+                let mut generic = self.context.builder.get_parent_font().gecko().mGenericID;
+
+                // FIXME(emilio): Isn't this bogus for CSS wide keywords like
+                // reset or such?
+                if let Some(ref declaration) = font_family {
+                    if let PropertyDeclaration::FontFamily(ref fam) = *declaration {
+                        if let Some(id) = fam.single_generic() {
+                            generic = id;
+                            // In case of a specified font family with a single
+                            // generic, we will end up setting font family
+                            // below, but its value would get overwritten later
+                            // in the pipeline when cascading.
+                            //
+                            // We instead skip cascading font-family in that
+                            // case.
+                            //
+                            // In case of the language changing, we wish for a
+                            // specified font-family to override this, so we do
+                            // not skip cascading then.
+                            _skip_font_family = true;
+                        }
+                    }
+                }
+
+                // FIXME(emilio): Why both setting the generic and passing it
+                // down?
+                let pres_context = self.context.builder.device.pres_context();
+                let gecko_font = self.context.builder.mutate_font().gecko_mut();
+                gecko_font.mGenericID = generic;
+                unsafe {
+                    ::gecko_bindings::bindings::Gecko_nsStyleFont_PrefillDefaultForGeneric(
+                        gecko_font,
+                        pres_context,
+                        generic,
+                    );
+                }
+            }
+        }
+
+        // It is important that font-size is computed before the late
+        // properties (for em units), but after font-family (for the
+        // base-font-size dependence for default and keyword font-sizes).
+        //
+        // It's important that font-family comes after the other font properties
+        // to support system fonts.
+        //
+        // NOTE(emilio): I haven't verified that comment, but it was there.
+        // Verify, and if it's false make font-size the only weird property?
+        if !_skip_font_family {
+            if let Some(ref declaration) = font_family {
+                self.apply_declaration_ignoring_phase(LonghandId::FontFamily, declaration);
+                #[cfg(feature = "gecko")]
+                {
+                    let context = &mut self.context;
+                    let device = context.builder.device;
+                    if let PropertyDeclaration::FontFamily(ref val) = *declaration {
+                        if val.get_system().is_some() {
+                            let default = context
+                                .cached_system_font
+                                .as_ref()
+                                .unwrap()
+                                .default_font_type;
+                            context.builder.mutate_font().fixup_system(default);
+                        } else {
+                            context.builder.mutate_font().fixup_none_generic(device);
+                        }
+                    }
+                }
+            }
+        }
+
+        if let Some(declaration) = font_size {
+            self.apply_declaration_ignoring_phase(LonghandId::FontSize, &declaration);
+        } else {
+            #[cfg(feature = "gecko")]
+            {
+                if self.seen.contains(LonghandId::XLang) ||
+                    self.seen.contains(LonghandId::MozScriptLevel) ||
+                    self.seen.contains(LonghandId::MozMinFontSizeRatio) ||
+                    self.seen.contains(LonghandId::FontFamily)
+                {
+                    // font-size must be explicitly inherited to handle lang
+                    // changes and scriptlevel changes.
+                    //
+                    // FIXME(emilio): That looks a bit bogus...
+                    let inherit = PropertyDeclaration::CSSWideKeyword(WideKeywordDeclaration {
+                        id: LonghandId::FontSize,
+                        keyword: CSSWideKeyword::Inherit,
+                    });
+
+                    self.apply_declaration_ignoring_phase(LonghandId::FontSize, &inherit);
+                }
+            }
+        }
+    }
+}
--- a/servo/components/style/properties/helpers.mako.rs
+++ b/servo/components/style/properties/helpers.mako.rs
@@ -307,110 +307,103 @@
         #[allow(unused_imports)]
         use Atom;
         ${caller.body()}
         #[allow(unused_variables)]
         pub fn cascade_property(
             declaration: &PropertyDeclaration,
             context: &mut computed::Context,
         ) {
-            let value = match *declaration {
-                PropertyDeclaration::${property.camel_case}(ref value) => {
-                    DeclaredValue::Value(value)
-                },
-                PropertyDeclaration::CSSWideKeyword(ref declaration) => {
-                    debug_assert_eq!(declaration.id, LonghandId::${property.camel_case});
-                    DeclaredValue::CSSWideKeyword(declaration.keyword)
-                },
-                PropertyDeclaration::WithVariables(..) => {
-                    panic!("variables should already have been substituted")
-                }
-                _ => panic!("entered the wrong cascade_property() implementation"),
-            };
-
             context.for_non_inherited_property =
                 % if property.style_struct.inherited:
                     None;
                 % else:
                     Some(LonghandId::${property.camel_case});
                 % endif
 
-            match value {
-                DeclaredValue::Value(specified_value) => {
-                    % if property.ident in SYSTEM_FONT_LONGHANDS and product == "gecko":
-                        if let Some(sf) = specified_value.get_system() {
-                            longhands::system_font::resolve_system_font(sf, context);
-                        }
-                    % endif
-                    % if not property.style_struct.inherited and property.logical:
-                        context.rule_cache_conditions.borrow_mut()
-                            .set_writing_mode_dependency(context.builder.writing_mode);
-                    % endif
-                    % if property.is_vector:
-                        // In the case of a vector property we want to pass
-                        // down an iterator so that this can be computed
-                        // without allocation
-                        //
-                        // However, computing requires a context, but the
-                        // style struct being mutated is on the context. We
-                        // temporarily remove it, mutate it, and then put it
-                        // back. Vector longhands cannot touch their own
-                        // style struct whilst computing, else this will
-                        // panic.
-                        let mut s =
-                            context.builder.take_${data.current_style_struct.name_lower}();
-                        {
-                            let iter = specified_value.compute_iter(context);
-                            s.set_${property.ident}(iter);
-                        }
-                        context.builder.put_${data.current_style_struct.name_lower}(s);
-                    % else:
-                        % if property.boxed:
-                        let computed = (**specified_value).to_computed_value(context);
-                        % else:
-                        let computed = specified_value.to_computed_value(context);
+            let specified_value = match *declaration {
+                PropertyDeclaration::${property.camel_case}(ref value) => value,
+                PropertyDeclaration::CSSWideKeyword(ref declaration) => {
+                    debug_assert_eq!(declaration.id, LonghandId::${property.camel_case});
+                    match declaration.keyword {
+                        % if not data.current_style_struct.inherited:
+                        CSSWideKeyword::Unset |
+                        % endif
+                        CSSWideKeyword::Initial => {
+                            % if property.ident == "font_size":
+                                computed::FontSize::cascade_initial_font_size(context);
+                            % else:
+                                context.builder.reset_${property.ident}();
+                            % endif
+                        },
+                        % if data.current_style_struct.inherited:
+                        CSSWideKeyword::Unset |
                         % endif
-                        % if property.ident == "font_size":
-                             specified::FontSize::cascade_specified_font_size(
-                                 context,
-                                 &specified_value,
-                                 computed,
-                             );
-                        % else:
-                            context.builder.set_${property.ident}(computed)
-                        % endif
-                    % endif
+                        CSSWideKeyword::Inherit => {
+                            % if not property.style_struct.inherited:
+                                context.rule_cache_conditions.borrow_mut().set_uncacheable();
+                            % endif
+                            % if property.ident == "font_size":
+                                computed::FontSize::cascade_inherit_font_size(context);
+                            % else:
+                                context.builder.inherit_${property.ident}();
+                            % endif
+                        }
+                    }
+                    return;
+                }
+                PropertyDeclaration::WithVariables(..) => {
+                    panic!("variables should already have been substituted")
+                }
+                _ => panic!("entered the wrong cascade_property() implementation"),
+            };
+
+            % if property.ident in SYSTEM_FONT_LONGHANDS and product == "gecko":
+                if let Some(sf) = specified_value.get_system() {
+                    longhands::system_font::resolve_system_font(sf, context);
                 }
-                DeclaredValue::WithVariables(_) => unreachable!(),
-                DeclaredValue::CSSWideKeyword(keyword) => match keyword {
-                    % if not data.current_style_struct.inherited:
-                    CSSWideKeyword::Unset |
-                    % endif
-                    CSSWideKeyword::Initial => {
-                        % if property.ident == "font_size":
-                            computed::FontSize::cascade_initial_font_size(context);
-                        % else:
-                            context.builder.reset_${property.ident}();
-                        % endif
-                    },
-                    % if data.current_style_struct.inherited:
-                    CSSWideKeyword::Unset |
-                    % endif
-                    CSSWideKeyword::Inherit => {
-                        % if not property.style_struct.inherited:
-                            context.rule_cache_conditions.borrow_mut().set_uncacheable();
-                        % endif
-                        % if property.ident == "font_size":
-                            computed::FontSize::cascade_inherit_font_size(context);
-                        % else:
-                            context.builder.inherit_${property.ident}();
-                        % endif
-                    }
+            % endif
+
+            % if not property.style_struct.inherited and property.logical:
+                context.rule_cache_conditions.borrow_mut()
+                    .set_writing_mode_dependency(context.builder.writing_mode);
+            % endif
+
+            % if property.is_vector:
+                // In the case of a vector property we want to pass down an
+                // iterator so that this can be computed without allocation.
+                //
+                // However, computing requires a context, but the style struct
+                // being mutated is on the context. We temporarily remove it,
+                // mutate it, and then put it back. Vector longhands cannot
+                // touch their own style struct whilst computing, else this will
+                // panic.
+                let mut s =
+                    context.builder.take_${data.current_style_struct.name_lower}();
+                {
+                    let iter = specified_value.compute_iter(context);
+                    s.set_${property.ident}(iter);
                 }
-            }
+                context.builder.put_${data.current_style_struct.name_lower}(s);
+            % else:
+                % if property.boxed:
+                let computed = (**specified_value).to_computed_value(context);
+                % else:
+                let computed = specified_value.to_computed_value(context);
+                % endif
+                % if property.ident == "font_size":
+                    specified::FontSize::cascade_specified_font_size(
+                        context,
+                        &specified_value,
+                        computed,
+                    );
+                % else:
+                    context.builder.set_${property.ident}(computed)
+                % endif
+            % endif
         }
 
         pub fn parse_declared<'i, 't>(
             context: &ParserContext,
             input: &mut Parser<'i, 't>,
         ) -> Result<PropertyDeclaration, ParseError<'i>> {
             % if property.allow_quirks:
                 parse_quirky(context, input, specified::AllowQuirks::Yes)
--- a/servo/components/style/properties/properties.mako.rs
+++ b/servo/components/style/properties/properties.mako.rs
@@ -8,69 +8,63 @@
 // For example, Vec<&Foo> will be mangled as Vec&Foo>. To work around these issues, the code
 // can be escaped. In the above example, Vec<<&Foo> or Vec< &Foo> achieves the desired result of Vec<&Foo>.
 
 <%namespace name="helpers" file="/helpers.mako.rs" />
 
 #[cfg(feature = "servo")]
 use app_units::Au;
 use arrayvec::{ArrayVec, Drain as ArrayVecDrain};
-use dom::TElement;
-use custom_properties::CustomPropertiesBuilder;
 use servo_arc::{Arc, UniqueArc};
-use smallbitvec::SmallBitVec;
 use std::borrow::Cow;
 use std::{ops, ptr};
-use std::cell::RefCell;
 use std::fmt::{self, Write};
 use std::mem::{self, ManuallyDrop};
 
 use cssparser::{Parser, RGBA, TokenSerializationType};
 use cssparser::ParserInput;
 #[cfg(feature = "servo")] use euclid::SideOffsets2D;
 use context::QuirksMode;
-use font_metrics::FontMetricsProvider;
-#[cfg(feature = "gecko")] use gecko_bindings::bindings;
 #[cfg(feature = "gecko")] use gecko_bindings::structs::{self, nsCSSPropertyID};
 #[cfg(feature = "servo")] use logical_geometry::LogicalMargin;
 #[cfg(feature = "servo")] use computed_values;
 use logical_geometry::WritingMode;
 #[cfg(feature = "gecko")] use malloc_size_of::{MallocSizeOf, MallocSizeOfOps};
 use media_queries::Device;
 use parser::ParserContext;
 use properties::longhands::system_font::SystemFont;
-use rule_cache::{RuleCache, RuleCacheConditions};
 use selector_parser::PseudoElement;
 use selectors::parser::SelectorParseErrorKind;
 #[cfg(feature = "servo")] use servo_config::prefs::PREFS;
-use shared_lock::StylesheetGuards;
 use style_traits::{CssWriter, KeywordsCollectFn, ParseError, ParsingMode};
 use style_traits::{SpecifiedValueInfo, StyleParseErrorKind, ToCss};
 use stylesheets::{CssRuleType, Origin, UrlExtraData};
 use values::generics::text::LineHeight;
 use values::computed;
 use values::computed::NonNegativeLength;
 use values::serialize_atom_name;
-use rule_tree::{CascadeLevel, StrongRuleNode};
+use rule_tree::StrongRuleNode;
 use self::computed_value_flags::*;
 use str::{CssString, CssStringBorrow, CssStringWriter};
-use style_adjuster::StyleAdjuster;
 
 pub use self::declaration_block::*;
+pub use self::cascade::*;
 
 <%!
     from collections import defaultdict
     from data import Method, Keyword, to_rust_ident, to_camel_case, SYSTEM_FONT_LONGHANDS
     import os.path
 %>
 
 #[path="${repr(os.path.join(os.path.dirname(__file__), 'computed_value_flags.rs'))[1:-1]}"]
 pub mod computed_value_flags;
 #[path="${repr(os.path.join(os.path.dirname(__file__), 'declaration_block.rs'))[1:-1]}"]
 pub mod declaration_block;
+#[path="${repr(os.path.join(os.path.dirname(__file__), 'cascade.rs'))[1:-1]}"]
+pub mod cascade;
 
 /// Conversion with fewer impls than From/Into
 pub trait MaybeBoxed<Out> {
     /// Convert
     fn maybe_boxed(self) -> Out;
 }
 
 impl<T> MaybeBoxed<T> for T {
@@ -726,17 +720,17 @@ static ${name}: LonghandIdSet = Longhand
             if is_member(property):
                 storage[i / 32] |= 1 << (i % 32)
     %>
     storage: [${", ".join("0x%x" % word for word in storage)}]
 };
 </%def>
 
 /// A set of longhand properties
-#[derive(Clone, Debug, MallocSizeOf, PartialEq)]
+#[derive(Clone, Debug, Default, MallocSizeOf, PartialEq)]
 pub struct LonghandIdSet {
     storage: [u32; (${len(data.longhands)} - 1 + 32) / 32]
 }
 
 /// An iterator over a set of longhand ids.
 pub struct LonghandIdSetIterator<'a> {
     longhands: &'a LonghandIdSet,
     cur: usize,
@@ -964,16 +958,17 @@ impl fmt::Debug for LonghandId {
 impl LonghandId {
     /// Get the name of this longhand property.
     #[inline]
     pub fn name(&self) -> &'static str {
         NonCustomPropertyId::from(*self).name()
     }
 
     /// Returns whether the longhand property is inherited by default.
+    #[inline]
     pub fn inherited(&self) -> bool {
         ${static_longhand_id_set("INHERITED", lambda p: p.style_struct.inherited)}
         INHERITED.contains(*self)
     }
 
     fn shorthands(&self) -> NonCustomPropertyIterator<ShorthandId> {
         // first generate longhand to shorthands lookup map
         //
@@ -1155,50 +1150,24 @@ impl LonghandId {
             LonghandId::BorderBottomColor |
             LonghandId::BorderLeftColor |
             LonghandId::OutlineColor
         )
     }
 
     /// Returns true if the property is one that is ignored when document
     /// colors are disabled.
-    fn is_ignored_when_document_colors_disabled(
-        &self,
-        cascade_level: CascadeLevel,
-        pseudo: Option<<&PseudoElement>,
-    ) -> bool {
-        let is_ua_or_user_rule = matches!(
-            cascade_level,
-            CascadeLevel::UANormal |
-            CascadeLevel::UserNormal |
-            CascadeLevel::UserImportant |
-            CascadeLevel::UAImportant
-        );
-
-        if is_ua_or_user_rule {
-            return false;
-        }
-
-        let is_style_attribute = matches!(
-            cascade_level,
-            CascadeLevel::StyleAttributeNormal |
-            CascadeLevel::StyleAttributeImportant
-        );
-        // Don't override colors on pseudo-element's style attributes. The
-        // background-color on ::-moz-color-swatch is an example. Those are set
-        // as an author style (via the style attribute), but it's pretty
-        // important for it to show up for obvious reasons :)
-        if pseudo.is_some() && is_style_attribute {
-            return false;
-        }
-
-        matches!(*self,
-            ${" | ".join([("LonghandId::" + p.camel_case)
-                          for p in data.longhands if p.ignored_when_colors_disabled])}
-        )
+    #[inline]
+    fn ignored_when_document_colors_disabled(sel