Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE
authorCiure Andrei <aciure@mozilla.com>
Thu, 18 Oct 2018 19:40:31 +0300
changeset 500429 fc8ae615f7268108e364437b261bccc2ba65c1bb
parent 500428 9a6b1ba0f53b8a8ab5aaa895c2de6c596ef4364a (current diff)
parent 500412 733484af9034cb0372ed1fd745ec3d321d48e8b9 (diff)
child 500430 6669d853e36620b01b035409ddc14ce8281ac5ae
push id1864
push userffxbld-merge
push dateMon, 03 Dec 2018 15:51:40 +0000
treeherdermozilla-release@f040763d99ad [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 mozilla-inbound. a=merge CLOSED TREE
--- a/browser/base/content/browser-customization.js
+++ b/browser/base/content/browser-customization.js
@@ -61,8 +61,120 @@ var CustomizationHandler = {
     for (let childNode of menubar.children)
       childNode.setAttribute("disabled", false);
     let cmd = document.getElementById("cmd_CustomizeToolbars");
     cmd.removeAttribute("disabled");
 
     gBrowser.selectedBrowser.focus();
   },
 };
+
+var AutoHideMenubar = {
+  get _node() {
+    delete this._node;
+    return this._node = document.getElementById("toolbar-menubar");
+  },
+
+  _contextMenuListener: {
+    contextMenu: null,
+
+    get active() {
+      return !!this.contextMenu;
+    },
+
+    init(event) {
+      // Ignore mousedowns in <menupopup>s.
+      if (event.target.closest("menupopup")) {
+        return;
+      }
+
+      let contextMenuId = AutoHideMenubar._node.getAttribute("context");
+      this.contextMenu = document.getElementById(contextMenuId);
+      this.contextMenu.addEventListener("popupshown", this);
+      this.contextMenu.addEventListener("popuphiding", this);
+      AutoHideMenubar._node.addEventListener("mousemove", this);
+    },
+    handleEvent(event) {
+      switch (event.type) {
+        case "popupshown":
+          AutoHideMenubar._node.removeEventListener("mousemove", this);
+          break;
+        case "popuphiding":
+        case "mousemove":
+          AutoHideMenubar._setInactiveAsync();
+          AutoHideMenubar._node.removeEventListener("mousemove", this);
+          this.contextMenu.removeEventListener("popuphiding", this);
+          this.contextMenu.removeEventListener("popupshown", this);
+          this.contextMenu = null;
+          break;
+      }
+    },
+  },
+
+  init() {
+    this._node.addEventListener("toolbarvisibilitychange", this);
+    if (this._node.getAttribute("autohide") == "true") {
+      this._enable();
+    }
+  },
+
+  _updateState() {
+    if (this._node.getAttribute("autohide") == "true") {
+      this._enable();
+    } else {
+      this._disable();
+    }
+  },
+
+  _events: ["DOMMenuBarInactive", "DOMMenuBarActive", "popupshowing", "mousedown"],
+  _enable() {
+    this._node.setAttribute("inactive", "true");
+    for (let event of this._events) {
+      this._node.addEventListener(event, this);
+    }
+  },
+
+  _disable() {
+    this._setActive();
+    for (let event of this._events) {
+      this._node.removeEventListener(event, this);
+    }
+  },
+
+  handleEvent(event) {
+    switch (event.type) {
+      case "toolbarvisibilitychange":
+        this._updateState();
+        break;
+      case "popupshowing":
+        // fall through
+      case "DOMMenuBarActive":
+        this._setActive();
+        break;
+      case "mousedown":
+        if (event.button == 2) {
+          this._contextMenuListener.init(event);
+        }
+        break;
+      case "DOMMenuBarInactive":
+        if (!this._contextMenuListener.active)
+          this._setInactiveAsync();
+        break;
+    }
+  },
+
+  _setInactiveAsync() {
+    this._inactiveTimeout = setTimeout(() => {
+      if (this._node.getAttribute("autohide") == "true") {
+        this._inactiveTimeout = null;
+        this._node.setAttribute("inactive", "true");
+      }
+    }, 0);
+  },
+
+  _setActive() {
+    if (this._inactiveTimeout) {
+      clearTimeout(this._inactiveTimeout);
+      this._inactiveTimeout = null;
+    }
+    this._node.removeAttribute("inactive");
+  },
+};
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -71,20 +71,16 @@ toolbar[customizable="true"] {
 }
 
 %ifdef XP_MACOSX
 #toolbar-menubar {
   -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar-menubar-stub");
 }
 %endif
 
-#toolbar-menubar[autohide="true"] {
-  -moz-binding: url("chrome://browser/content/customizableui/toolbar.xml#toolbar-menubar-autohide");
-}
-
 panelmultiview {
   -moz-box-align: start;
 }
 
 panelmultiview[transitioning] {
   pointer-events: none;
 }
 
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -102,17 +102,17 @@ XPCOMUtils.defineLazyScriptGetter(this, 
 XPCOMUtils.defineLazyScriptGetter(this, "gTabsPanel",
                                   "chrome://browser/content/browser-allTabsMenu.js");
 XPCOMUtils.defineLazyScriptGetter(this, ["LightWeightThemeWebInstaller",
                                          "gExtensionsNotifications",
                                          "gXPInstallObserver"],
                                   "chrome://browser/content/browser-addons.js");
 XPCOMUtils.defineLazyScriptGetter(this, "ctrlTab",
                                   "chrome://browser/content/browser-ctrlTab.js");
-XPCOMUtils.defineLazyScriptGetter(this, "CustomizationHandler",
+XPCOMUtils.defineLazyScriptGetter(this, ["CustomizationHandler", "AutoHideMenubar"],
                                   "chrome://browser/content/browser-customization.js");
 XPCOMUtils.defineLazyScriptGetter(this, ["PointerLock", "FullScreen"],
                                   "chrome://browser/content/browser-fullScreenAndPointerLock.js");
 XPCOMUtils.defineLazyScriptGetter(this, ["gGestureSupport", "gHistorySwipeAnimation"],
                                   "chrome://browser/content/browser-gestureSupport.js");
 XPCOMUtils.defineLazyScriptGetter(this, "gSafeBrowsing",
                                   "chrome://browser/content/browser-safebrowsing.js");
 XPCOMUtils.defineLazyScriptGetter(this, "gSync",
@@ -1237,16 +1237,19 @@ var gBrowserInit = {
       document.documentElement.setAttribute("width", width);
       document.documentElement.setAttribute("height", height);
 
       if (width < TARGET_WIDTH && height < TARGET_HEIGHT) {
         document.documentElement.setAttribute("sizemode", "maximized");
       }
     }
 
+    // Run menubar initialization first, to avoid TabsInTitlebar code picking
+    // up mutations from it and causing a reflow.
+    AutoHideMenubar.init();
     // Update the chromemargin attribute so the window can be sized correctly.
     window.TabBarVisibility.update();
     TabsInTitlebar.init();
 
     new LightweightThemeConsumer(document);
     CompactTheme.init();
 
     if (AppConstants.platform == "win") {
--- a/browser/components/customizableui/content/toolbar.xml
+++ b/browser/components/customizableui/content/toolbar.xml
@@ -156,118 +156,20 @@
       <method name="insertItem">
         <body><![CDATA[
           return null;
         ]]></body>
       </method>
     </implementation>
   </binding>
 
-  <!-- The toolbar-menubar-autohide and toolbar-drag bindings are almost
-       verbatim copies of their toolkit counterparts - they just inherit from
-       the customizableui's toolbar binding instead of toolkit's. We're currently
-       OK with the maintainance burden of having two copies of a binding, since
-       the long term goal is to move the customization framework into toolkit. -->
-
-  <binding id="toolbar-menubar-autohide"
-           extends="chrome://browser/content/customizableui/toolbar.xml#toolbar">
-    <implementation>
-      <constructor>
-        this._setInactive();
-      </constructor>
-      <destructor>
-        this._setActive();
-      </destructor>
-
-      <field name="_inactiveTimeout">null</field>
-
-      <field name="_contextMenuListener"><![CDATA[({
-        toolbar: this,
-        contextMenu: null,
-
-        get active() {
-          return !!this.contextMenu;
-        },
-
-        init(event) {
-          let node = event.target;
-          while (node != this.toolbar) {
-            if (node.localName == "menupopup")
-              return;
-            node = node.parentNode;
-          }
-
-          let contextMenuId = this.toolbar.getAttribute("context");
-          if (!contextMenuId)
-            return;
-
-          this.contextMenu = document.getElementById(contextMenuId);
-          if (!this.contextMenu)
-            return;
-
-          this.contextMenu.addEventListener("popupshown", this);
-          this.contextMenu.addEventListener("popuphiding", this);
-          this.toolbar.addEventListener("mousemove", this);
-        },
-        handleEvent(event) {
-          switch (event.type) {
-            case "popupshown":
-              this.toolbar.removeEventListener("mousemove", this);
-              break;
-            case "popuphiding":
-            case "mousemove":
-              this.toolbar._setInactiveAsync();
-              this.toolbar.removeEventListener("mousemove", this);
-              this.contextMenu.removeEventListener("popuphiding", this);
-              this.contextMenu.removeEventListener("popupshown", this);
-              this.contextMenu = null;
-              break;
-          }
-        },
-      })]]></field>
-
-      <method name="_setInactive">
-        <body><![CDATA[
-          this.setAttribute("inactive", "true");
-        ]]></body>
-      </method>
-
-      <method name="_setInactiveAsync">
-        <body><![CDATA[
-          this._inactiveTimeout = setTimeout(function(self) {
-            if (self.getAttribute("autohide") == "true") {
-              self._inactiveTimeout = null;
-              self._setInactive();
-            }
-          }, 0, this);
-        ]]></body>
-      </method>
-
-      <method name="_setActive">
-        <body><![CDATA[
-          if (this._inactiveTimeout) {
-            clearTimeout(this._inactiveTimeout);
-            this._inactiveTimeout = null;
-          }
-          this.removeAttribute("inactive");
-        ]]></body>
-      </method>
-    </implementation>
-
-    <handlers>
-      <handler event="DOMMenuBarActive"     action="this._setActive();"/>
-      <handler event="popupshowing"         action="this._setActive();"/>
-      <handler event="mousedown" button="2" action="this._contextMenuListener.init(event);"/>
-      <handler event="DOMMenuBarInactive"><![CDATA[
-        if (!this._contextMenuListener.active)
-          this._setInactiveAsync();
-      ]]></handler>
-    </handlers>
-  </binding>
-
+  <!-- The toolbar-drag binding is almost a verbatim copy of its toolkit counterpart,
+       but it inherits from the customizableui's toolbar binding instead of toolkit's.
+       This functionality will move into CustomizableUI proper as part of our move
+       away from XBL. -->
   <binding id="toolbar-drag"
            extends="chrome://browser/content/customizableui/toolbar.xml#toolbar">
     <implementation>
       <field name="_dragBindingAlive">true</field>
       <constructor><![CDATA[
         if (!this._draggableStarted) {
           this._draggableStarted = true;
           try {
--- a/devtools/client/framework/moz.build
+++ b/devtools/client/framework/moz.build
@@ -1,15 +1,18 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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_CHROME_MANIFESTS += ['test/browser.ini']
+BROWSER_CHROME_MANIFESTS += [
+    'test/browser.ini',
+    'test/metrics/browser_metrics_inspector.ini'
+]
 XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
 
 DIRS += [
     'components',
 ]
 
 DevToolsModules(
     'attach-thread.js',
--- a/devtools/client/framework/test/browser_toolbox_window_reload_target.js
+++ b/devtools/client/framework/test/browser_toolbox_window_reload_target.js
@@ -1,98 +1,103 @@
 /* -*- 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/ */
 
+// Test that pressing various page reload keyboard shortcuts always works when devtools
+// has focus, no matter if it's undocked or docked, and whatever the tool selected (this
+// is to avoid tools from overriding the page reload shortcuts).
+// This test also serves as a safety net checking that tools just don't explode when the
+// page is reloaded.
+// It is therefore quite long to run.
+
 requestLongerTimeout(10);
 
 const TEST_URL = "data:text/html;charset=utf-8," +
                  "<html><head><title>Test reload</title></head>" +
                  "<body><h1>Testing reload from devtools</h1></body></html>";
 
-var {Toolbox} = require("devtools/client/framework/toolbox");
-
-const {LocalizationHelper} = require("devtools/shared/l10n");
+const { Toolbox } = require("devtools/client/framework/toolbox");
+const { LocalizationHelper } = require("devtools/shared/l10n");
 const L10N = new LocalizationHelper("devtools/client/locales/toolbox.properties");
 
-var target, toolbox, description, reloadsSent, toolIDs;
+// Track how many page reloads we've sent to the page.
+var reloadsSent = 0;
 
-function test() {
-  addTab(TEST_URL).then(async () => {
-    target = await TargetFactory.forTab(gBrowser.selectedTab);
+add_task(async function() {
+  await addTab(TEST_URL);
+  const target = await TargetFactory.forTab(gBrowser.selectedTab);
+  // Load the frame-script-utils into the child.
+  loadFrameScriptUtils();
 
-    toolIDs = gDevTools.getToolDefinitionArray()
-                .filter(def => def.isTargetSupported(target))
-                .map(def => def.id);
-    gDevTools.showToolbox(target, toolIDs[0], Toolbox.HostType.BOTTOM)
-             .then(startReloadTest);
-  });
-}
+  info("Getting the entire list of tools supported in this tab");
+  const toolIDs = gDevTools.getToolDefinitionArray()
+                           .filter(def => def.isTargetSupported(target))
+                           .map(def => def.id);
 
-function startReloadTest(aToolbox) {
-  loadFrameScriptUtils(); // causes frame-script-utils to be loaded into the child.
-  toolbox = aToolbox;
+  info("Display the toolbox, docked at the bottom, with the first tool selected");
+  const toolbox = await gDevTools.showToolbox(target, toolIDs[0],
+    Toolbox.HostType.BOTTOM);
 
-  reloadsSent = 0;
-  let reloads = 0;
-  const reloadCounter = (msg) => {
-    reloads++;
-    info("Detected reload #" + reloads);
-    is(reloads, reloadsSent, "Reloaded from devtools window once and only for " + description + "");
+  info("Listen to page reloads to check that they are indeed sent by the toolbox");
+  let reloadDetected = 0;
+  const reloadCounter = msg => {
+    reloadDetected++;
+    info("Detected reload #" + reloadDetected);
+    is(reloadDetected, reloadsSent, "Detected the right number of reloads in the page");
   };
   gBrowser.selectedBrowser.messageManager.addMessageListener("devtools:test:load", reloadCounter);
 
-  testAllTheTools("docked", () => {
-    const origHostType = toolbox.hostType;
-    toolbox.switchHost(Toolbox.HostType.WINDOW).then(() => {
-      toolbox.win.focus();
-      testAllTheTools("undocked", () => {
-        toolbox.switchHost(origHostType).then(() => {
-          gBrowser.selectedBrowser.messageManager.removeMessageListener("devtools:test:load", reloadCounter);
-          // If we finish too early, the inspector breaks promises:
-          toolbox.getPanel("inspector").once("new-root", finishUp);
-        });
-      });
-    });
-  }, toolIDs.length - 1 /* only test 1 tool in docked mode, to cut down test time */);
+  info("Start testing with the toolbox docked");
+  // Note that we actually only test 1 tool in docked mode, to cut down on test time.
+  await testOneTool(toolbox, toolIDs[toolIDs.length - 1]);
+
+  info("Switch to undocked mode");
+  await toolbox.switchHost(Toolbox.HostType.WINDOW);
+  toolbox.win.focus();
+
+  info("Now test with the toolbox undocked");
+  for (const toolID of toolIDs) {
+    await testOneTool(toolbox, toolID);
+  }
+
+  info("Switch back to docked mode");
+  await toolbox.switchHost(Toolbox.HostType.BOTTOM);
+
+  gBrowser.selectedBrowser.messageManager.removeMessageListener("devtools:test:load", reloadCounter);
+
+  await toolbox.destroy();
+  gBrowser.removeCurrentTab();
+});
+
+async function testOneTool(toolbox, toolID) {
+  info(`Select tool ${toolID}`);
+  await toolbox.selectTool(toolID);
+
+  await testReload("toolbox.reload.key", toolbox, toolID);
+  await testReload("toolbox.reload2.key", toolbox, toolID);
+  await testReload("toolbox.forceReload.key", toolbox, toolID);
+  await testReload("toolbox.forceReload2.key", toolbox, toolID);
 }
 
-function testAllTheTools(docked, callback, toolNum = 0) {
-  if (toolNum >= toolIDs.length) {
-    return callback();
-  }
-  toolbox.selectTool(toolIDs[toolNum]).then(() => {
-    testReload("toolbox.reload.key", docked, toolIDs[toolNum], () => {
-      testReload("toolbox.reload2.key", docked, toolIDs[toolNum], () => {
-        testReload("toolbox.forceReload.key", docked, toolIDs[toolNum], () => {
-          testReload("toolbox.forceReload2.key", docked, toolIDs[toolNum], () => {
-            testAllTheTools(docked, callback, toolNum + 1);
-          });
-        });
-      });
-    });
+function testReload(shortcut, toolbox, toolID) {
+  info(`Reload with ${shortcut}`);
+
+  const mm = gBrowser.selectedBrowser.messageManager;
+
+  return new Promise(resolve => {
+    // The inspector needs some special care.
+    const toolUpdated = toolID === "inspector"
+      ? toolbox.getPanel("inspector").once("new-root")
+      : Promise.resolve();
+
+    const complete = () => {
+      mm.removeMessageListener("devtools:test:load", complete);
+      toolUpdated.then(resolve);
+    };
+    mm.addMessageListener("devtools:test:load", complete);
+
+    toolbox.win.focus();
+    synthesizeKeyShortcut(L10N.getStr(shortcut), toolbox.win);
+    reloadsSent++;
   });
 }
-
-function testReload(shortcut, docked, toolID, callback) {
-  const complete = () => {
-    gBrowser.selectedBrowser.messageManager.removeMessageListener("devtools:test:load", complete);
-    return callback();
-  };
-  gBrowser.selectedBrowser.messageManager.addMessageListener("devtools:test:load", complete);
-
-  description = docked + " devtools with tool " + toolID + ", shortcut #" + shortcut;
-  info("Testing reload in " + description);
-  toolbox.win.focus();
-  synthesizeKeyShortcut(L10N.getStr(shortcut), toolbox.win);
-  reloadsSent++;
-}
-
-function finishUp() {
-  toolbox.destroy().then(() => {
-    gBrowser.removeCurrentTab();
-
-    target = toolbox = description = reloadsSent = toolIDs = null;
-
-    finish();
-  });
-}
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/metrics/browser_metrics_inspector.ini
@@ -0,0 +1,12 @@
+[DEFAULT]
+tags = devtools
+subsuite = devtools
+support-files =
+  head.js
+  !/devtools/client/shared/test/shared-head.js
+  !/devtools/client/shared/test/telemetry-test-helpers.js
+
+# Each metrics tests is loaded in a separate .ini file. This way the test is executed
+# individually, without any other test being executed before or after.
+[browser_metrics_inspector.js]
+skip-if = os != 'linux' || debug || asan # Results should be platform agnostic - only run on linux64-opt
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/metrics/browser_metrics_inspector.js
@@ -0,0 +1,80 @@
+/* -*- 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";
+
+/* import-globals-from ../../../shared/test/shared-head.js */
+
+/**
+ * This test records the number of modules loaded by DevTools, as well as the total count
+ * of characters in those modules, when opening the inspector. These metrics are retrieved
+ * by perfherder via logs.
+ */
+
+const TEST_URL = "data:text/html;charset=UTF-8,<div>Inspector modules load test</div>";
+
+add_task(async function() {
+  await openNewTabAndToolbox(TEST_URL, "inspector");
+
+  const allModules = getFilteredModules("");
+  const inspectorModules = getFilteredModules("devtools/client/inspector");
+
+  const allModulesCount = allModules.length;
+  const inspectorModulesCount = inspectorModules.length;
+
+  const allModulesChars = countCharsInModules(allModules);
+  const inspectorModulesChars = countCharsInModules(inspectorModules);
+
+  const PERFHERDER_DATA = {
+    framework: {
+      name: "devtools"
+    },
+    suites: [{
+      name: "inspector-metrics",
+      value: allModulesChars,
+      subtests: [
+        {
+          name: "inspector-modules",
+          value: inspectorModulesCount
+        },
+        {
+          name: "inspector-chars",
+          value: inspectorModulesChars
+        },
+        {
+          name: "all-modules",
+          value: allModulesCount
+        },
+        {
+          name: "all-chars",
+          value: allModulesChars
+        },
+      ],
+    }]
+  };
+  info("PERFHERDER_DATA: " + JSON.stringify(PERFHERDER_DATA));
+
+  // Simply check that we found valid values.
+  ok(allModulesCount > inspectorModulesCount &&
+     inspectorModulesCount > 0, "Successfully recorded module count for Inspector");
+  ok(allModulesChars > inspectorModulesChars &&
+     inspectorModulesChars > 0, "Successfully recorded char count for Inspector");
+});
+
+function getFilteredModules(filter) {
+  const modules = Object.keys(loader.provider.loader.modules);
+  return modules.filter(url => url.includes(filter));
+}
+
+function countCharsInModules(modules) {
+  return modules.reduce((sum, uri) => {
+    try {
+      return sum + require("raw!" + uri).length;
+    } catch (e) {
+      // Ignore failures
+      return sum;
+    }
+  }, 0);
+}
new file mode 100644
--- /dev/null
+++ b/devtools/client/framework/test/metrics/head.js
@@ -0,0 +1,11 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/* import-globals-from ../../../shared/test/shared-head.js */
+/* import-globals-from ../../../shared/test/telemetry-test-helpers.js */
+
+// shared-head.js handles imports, constants, and utility functions
+Services.scriptloader.loadSubScript("chrome://mochitests/content/browser/devtools/client/shared/test/shared-head.js", this);
+
+// So that PERFHERDER data can be extracted from the logs.
+SimpleTest.requestCompleteLog();
--- a/devtools/client/inspector/animation/animation.js
+++ b/devtools/client/inspector/animation/animation.js
@@ -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/. */
 
 "use strict";
 
-const { AnimationsFront } = require("devtools/shared/fronts/animation");
 const { createElement, createFactory } = require("devtools/client/shared/vendor/react");
 const { Provider } = require("devtools/client/shared/vendor/react-redux");
 
 const EventEmitter = require("devtools/shared/event-emitter");
 
 const App = createFactory(require("./components/App"));
 const CurrentTimeTimer = require("./current-time-timer");
 
@@ -97,17 +96,17 @@ class AnimationInspector {
       setSelectedNode,
       simulateAnimation,
       simulateAnimationForKeyframesProgressBar,
       toggleElementPicker,
     } = this;
 
     const target = this.inspector.target;
     const direction = this.win.document.dir;
-    this.animationsFront = new AnimationsFront(target.client, target.form);
+    this.animationsFront = target.getFront("animations");
     this.animationsFront.setWalkerActor(this.inspector.walker);
 
     this.animationsCurrentTimeListeners = [];
     this.isCurrentTimeSet = false;
 
     const provider = createElement(Provider,
       {
         id: "animationinspector",
@@ -321,17 +320,22 @@ class AnimationInspector {
         animation.off("changed", this.onAnimationStateChanged);
       }
     }
 
     // Update existing other animations as well since the currentTime would be proceeded
     // sice the scrubber position is related the currentTime.
     // Also, don't update the state of removed animations since React components
     // may refer to the same instance still.
-    animations = await this.updateAnimations(animations);
+    try {
+      animations = await this.updateAnimations(animations);
+    } catch (_) {
+      console.error(`Updating Animations failed`);
+      return;
+    }
 
     this.updateState(animations.concat(addedAnimations));
   }
 
   onElementPickerStarted() {
     this.inspector.store.dispatch(updateElementPickerEnabled(true));
   }
 
--- a/devtools/client/inspector/animation/test/browser_animation_logic_mutations_fast.js
+++ b/devtools/client/inspector/animation/test/browser_animation_logic_mutations_fast.js
@@ -5,18 +5,28 @@
 
 // Test whether the animation inspector will not crash when remove/add animations faster.
 
 add_task(async function() {
   const tab = await addTab(URL_ROOT + "doc_mutations_fast.html");
   const { inspector } = await openAnimationInspector();
 
   info("Check state of the animation inspector after fast mutations");
+  const animationsFinished = waitForAnimations(inspector);
   await startFastMutations(tab);
   ok(inspector.panelWin.document.getElementById("animation-container"),
     "Animation inspector should be live");
+  await animationsFinished;
 });
 
 async function startFastMutations(tab) {
   await ContentTask.spawn(tab.linkedBrowser, {}, async function() {
     await content.wrappedJSObject.startFastMutations();
   });
 }
+
+function waitForAnimations(inspector) {
+  // wait at least once
+  let count = 1;
+  // queue any further waits
+  inspector.animationinspector.animationsFront.on("mutations", () => count++);
+  return waitForDispatch(inspector, "UPDATE_ANIMATIONS", () => count);
+}
--- a/devtools/client/inspector/animation/test/head.js
+++ b/devtools/client/inspector/animation/test/head.js
@@ -549,16 +549,61 @@ const setStyles = async function(animati
 const waitForRendering = async function(animationInspector) {
   await Promise.all([
     waitForAllAnimationTargets(animationInspector),
     waitForAllSummaryGraph(animationInspector),
     waitForAnimationDetail(animationInspector),
   ]);
 };
 
+// Wait until an action of `type` is dispatched. If it's part of an
+// async operation, wait until the `status` field is "done" or "error"
+function _afterDispatchDone(store, type) {
+  return new Promise(resolve => {
+    store.dispatch({
+      // Normally we would use `services.WAIT_UNTIL`, but use the
+      // internal name here so tests aren't forced to always pass it
+      // in
+      type: "@@service/waitUntil",
+      predicate: action => {
+        if (action.type === type) {
+          return true;
+        }
+        return false;
+      },
+      run: (dispatch, getState, action) => {
+        resolve(action);
+      }
+    });
+  });
+}
+
+/**
+ * Wait for a specific action type to be dispatch.
+ * If an async action, will wait for it to be done.
+ * This is a custom waitForDispatch, and rather than having a number to wait on
+ * the function has a callback, that returns a number. This allows us to wait for
+ * an unknown number of dispatches.
+ *
+ * @memberof mochitest/waits
+ * @param {Object} inspector
+ * @param {String} type
+ * @param {Function} repeat
+ * @return {Promise}
+ * @static
+ */
+async function waitForDispatch(inspector, type, repeat) {
+  let count = 0;
+
+  while (count < repeat()) {
+    await _afterDispatchDone(inspector.store, type);
+    count++;
+  }
+}
+
 /**
  * Wait for rendering of animation keyframes.
  *
  * @param {AnimationInspector} inspector
  */
 
 const waitForAnimationDetail = async function(animationInspector) {
   if (animationInspector.state.selectedAnimation &&
--- a/devtools/client/inspector/rules/rules.js
+++ b/devtools/client/inspector/rules/rules.js
@@ -92,31 +92,29 @@ const INSET_POINT_TYPES = ["top", "right
  * @param {Inspector} inspector
  *        Inspector toolbox panel
  * @param {Document} document
  *        The document that will contain the rule view.
  * @param {Object} store
  *        The CSS rule view can use this object to store metadata
  *        that might outlast the rule view, particularly the current
  *        set of disabled properties.
- * @param {PageStyleFront} pageStyle
- *        The PageStyleFront for communicating with the remote server.
  */
-function CssRuleView(inspector, document, store, pageStyle) {
+function CssRuleView(inspector, document, store) {
   EventEmitter.decorate(this);
 
   this.inspector = inspector;
   this.cssProperties = inspector.cssProperties;
   this.styleDocument = document;
   this.styleWindow = this.styleDocument.defaultView;
   this.store = store || {};
   // References to rules marked by various editors where they intend to write changes.
   // @see selectRule(), unselectRule()
   this.selectedRules = new Map();
-  this.pageStyle = pageStyle;
+  this.pageStyle = inspector.pageStyle;
 
   // Allow tests to override debouncing behavior, as this can cause intermittents.
   this.debounce = debounce;
 
   this._outputParser = new OutputParser(document, this.cssProperties);
 
   this._onAddRule = this._onAddRule.bind(this);
   this._onContextMenu = this._onContextMenu.bind(this);
--- a/devtools/client/preferences/devtools-client.js
+++ b/devtools/client/preferences/devtools-client.js
@@ -353,13 +353,9 @@ pref("devtools.aboutdebugging.collapsibi
 // about:debugging: only show system add-ons in local builds by default.
 #ifdef MOZILLA_OFFICIAL
   pref("devtools.aboutdebugging.showSystemAddons", false);
 #else
   pref("devtools.aboutdebugging.showSystemAddons", true);
 #endif
 
 // Map top-level await expressions in the console
-#if defined(NIGHTLY_BUILD)
 pref("devtools.debugger.features.map-await-expression", true);
-#else
-pref("devtools.debugger.features.map-await-expression", false);
-#endif
--- a/devtools/client/webconsole/components/JSTerm.js
+++ b/devtools/client/webconsole/components/JSTerm.js
@@ -545,16 +545,17 @@ class JSTerm extends Component {
     const inspectorSelection = this.hud.owner.getInspectorSelection();
     if (inspectorSelection && inspectorSelection.nodeFront) {
       selectedNodeActor = inspectorSelection.nodeFront.actorID;
     }
 
     const { ConsoleCommand } = require("devtools/client/webconsole/types");
     const cmdMessage = new ConsoleCommand({
       messageText: executeString,
+      timeStamp: Date.now(),
     });
     this.hud.proxy.dispatchMessageAdd(cmdMessage);
 
     let mappedExpressionRes = null;
     try {
       mappedExpressionRes = await this.hud.owner.getMappedExpression(executeString);
     } catch (e) {
       console.warn("Error when calling getMappedExpression", e);
--- a/devtools/client/webconsole/components/message-types/ConsoleCommand.js
+++ b/devtools/client/webconsole/components/message-types/ConsoleCommand.js
@@ -30,26 +30,28 @@ function ConsoleCommand(props) {
   } = props;
 
   const {
     indent,
     source,
     type,
     level,
     messageText,
+    timeStamp,
   } = message;
 
   // This uses a Custom Element to syntax highlight when possible. If it's not
   // (no CodeMirror editor), then it will just render text.
   const messageBody = createElement("syntax-highlighted", null, messageText);
   return Message({
     source,
     type,
     level,
     topLevelClasses: [],
     messageBody,
     serviceContainer,
     indent,
+    timeStamp,
     timestampsVisible,
   });
 }
 
 module.exports = ConsoleCommand;
--- a/devtools/client/webconsole/test/mochitest/browser_jsterm_await.js
+++ b/devtools/client/webconsole/test/mochitest/browser_jsterm_await.js
@@ -34,16 +34,27 @@ async function performTests() {
   );
 
   // Check that the resulting promise of the async iife is not displayed.
   let messages = hud.ui.outputNode.querySelectorAll(".message .message-body");
   let messagesText = Array.from(messages).map(n => n.textContent).join(" - ");
   is(messagesText, `${simpleAwait} - Array [ "await1" ]`,
     "The output contains the the expected messages");
 
+  // Check that the timestamp of the result is accurate
+  const {
+    visibleMessages,
+    messagesById
+  } = hud.ui.consoleOutput.getStore().getState().messages;
+  const [commandId, resultId] = visibleMessages;
+  const delta = messagesById.get(resultId).timeStamp -
+    messagesById.get(commandId).timeStamp;
+  ok(delta >= 500,
+    `The result has a timestamp at least 500ms (${delta}ms) older than the command`);
+
   info("Check that assigning the result of a top-level await expression works");
   await executeAndWaitForResultMessage(
     `x = await new Promise(r => setTimeout(() => r("await2"), 500))`,
     `await2`,
   );
 
   let message = await executeAndWaitForResultMessage(
     `"-" + x + "-"`,
--- a/devtools/client/webconsole/types.js
+++ b/devtools/client/webconsole/types.js
@@ -17,16 +17,17 @@ exports.ConsoleCommand = function(props)
     allowRepeating: false,
     messageText: null,
     source: MESSAGE_SOURCE.JAVASCRIPT,
     type: MESSAGE_TYPE.COMMAND,
     level: MESSAGE_LEVEL.LOG,
     groupId: null,
     indent: 0,
     private: false,
+    timeStamp: null,
   }, props);
 };
 
 exports.ConsoleMessage = function(props) {
   return Object.assign({
     id: null,
     allowRepeating: true,
     source: null,
--- a/devtools/server/actors/webconsole.js
+++ b/devtools/server/actors/webconsole.js
@@ -971,21 +971,24 @@ WebConsoleActor.prototype =
    *         `resultID` field, and potentially a promise in the `helperResult` or in the
    *         `awaitResult` field.
    *
    * @return object
    *         The response packet to send to with the unique id in the
    *         `resultID` field, with a sanitized helperResult field.
    */
   _waitForResultAndSend: async function(response) {
+    let updateTimestamp = false;
+
     // Wait for asynchronous command completion before sending back the response
     if (
       response.helperResult && typeof response.helperResult.then == "function"
     ) {
       response.helperResult = await response.helperResult;
+      updateTimestamp = true;
     } else if (response.awaitResult && typeof response.awaitResult.then === "function") {
       let result;
       try {
         result = await response.awaitResult;
       } catch (e) {
         // The promise was rejected. We let the engine handle this as it will report a
         // `uncaught exception` error.
         response.topLevelAwaitRejected = true;
@@ -995,16 +998,24 @@ WebConsoleActor.prototype =
         // `createValueGrip` expect a debuggee value, while here we have the raw object.
         // We need to call `makeDebuggeeValue` on it to make it work.
         const dbgResult = this.makeDebuggeeValue(result);
         response.result = this.createValueGrip(dbgResult);
       }
 
       // Remove the promise from the response object.
       delete response.awaitResult;
+
+      updateTimestamp = true;
+    }
+
+    if (updateTimestamp) {
+      // We need to compute the timestamp again as the one in the response was set before
+      // doing the evaluation, which is now innacurate since we waited for a bit.
+      response.timestamp = Date.now();
     }
 
     // Finally, send an unsolicited evaluationResult packet with
     // the normal return value
     this.conn.sendActorEvent(this.actorID, "evaluationResult", response);
   },
 
   /**
--- a/layout/ipc/RenderFrameParent.cpp
+++ b/layout/ipc/RenderFrameParent.cpp
@@ -434,10 +434,12 @@ nsDisplayRemote::GetRemoteLayersId() con
 {
   MOZ_ASSERT(GetRenderFrameParent());
   return GetRenderFrameParent()->GetLayersId();
 }
 
 mozilla::layout::RenderFrameParent*
 nsDisplayRemote::GetRenderFrameParent() const
 {
-  return static_cast<nsSubDocumentFrame*>(Frame())->GetRenderFrameParent();
+  return mFrame
+    ? static_cast<nsSubDocumentFrame*>(mFrame)->GetRenderFrameParent()
+    : nullptr;
 }
--- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp
@@ -3903,17 +3903,18 @@ nsStyleDisplay::CalcDifference(const nsS
        mAnimationTimingFunctionCount != aNewData.mAnimationTimingFunctionCount ||
        mAnimationDurationCount != aNewData.mAnimationDurationCount ||
        mAnimationDelayCount != aNewData.mAnimationDelayCount ||
        mAnimationNameCount != aNewData.mAnimationNameCount ||
        mAnimationDirectionCount != aNewData.mAnimationDirectionCount ||
        mAnimationFillModeCount != aNewData.mAnimationFillModeCount ||
        mAnimationPlayStateCount != aNewData.mAnimationPlayStateCount ||
        mAnimationIterationCountCount != aNewData.mAnimationIterationCountCount ||
-       mScrollSnapCoordinate != aNewData.mScrollSnapCoordinate)) {
+       mScrollSnapCoordinate != aNewData.mScrollSnapCoordinate ||
+       mWillChange != aNewData.mWillChange)) {
     hint |= nsChangeHint_NeutralChange;
   }
 
   return hint;
 }
 
 void
 nsStyleDisplay::GenerateCombinedIndividualTransform()
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1166,9 +1166,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 = 488;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1548072779456000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1548331423288000);
--- 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(1550491974445000);
+const PRTime gPreloadListExpirationTime = INT64_C(1550750617822000);
 %%
 0-1.party, 1
 00100010.net, 1
 0010100.net, 1
 00120012.net, 1
 00130013.net, 1
 00140014.net, 1
 00150015.net, 1
@@ -70,17 +70,16 @@ 050.ca, 1
 050media.nl, 1
 0511315.net, 1
 0513c.com, 1
 0573wk.com, 1
 06091994.xyz, 1
 066318.com, 1
 06se.com, 1
 070709.net, 1
-07733.win, 1
 0788yh.com, 1
 0792112.com, 1
 0809yh.com, 1
 081752.com, 1
 081763.com, 1
 081769.com, 1
 081783.com, 1
 081925.com, 1
@@ -198,17 +197,16 @@ 110110110.net, 1
 112112112.net, 1
 112app.nl, 1
 112hz.com, 1
 113113113.net, 1
 114514ss.com, 1
 118118118.net, 1
 11dzon.com, 1
 11loc.de, 1
-11scc.com, 1
 11thstreetcoffee.com, 1
 11urss.com, 1
 1212873467.rsc.cdn77.org, 1
 1218641649.rsc.cdn77.org, 1
 123.gg, 1
 1231212.com, 1
 123123q.com, 1
 123123qq.com, 1
@@ -312,17 +310,16 @@ 1921958389.rsc.cdn77.org, 1
 192433.com, 1
 1972969867.rsc.cdn77.org, 1
 1981612088.rsc.cdn77.org, 1
 19hundert84.de, 1
 1a-diamantscheiben.de, 1
 1a-vermessung.at, 1
 1a-werkstattgeraete.de, 1
 1ab-machinery.com, 1
-1aim.com, 1
 1b1.pl, 1
 1c-power.ru, 1
 1cover.co.nz, 1
 1cover.com.au, 1
 1day1ac.red, 1
 1e9.nl, 1
 1er-secours.ch, 1
 1f123.net, 1
@@ -381,17 +378,16 @@ 20at.com, 1
 20denier.com, 1
 20zq.com, 1
 215dy.net, 1
 21sthammersmith.org.uk, 1
 21stnc.com, 1
 21x9.org, 1
 2222yh.com, 1
 22digital.agency, 1
-22scc.com, 1
 230beats.com, 1
 2333.press, 1
 23333.link, 1
 2333666.xyz, 1
 2333blog.com, 1
 233abc.com, 1
 233blog.com, 1
 233boy.com, 1
@@ -470,16 +466,17 @@ 2krueger.de, 1
 2li.ch, 1
 2manydots.nl, 1
 2mb.solutions, 1
 2mir.com, 1
 2nains.ch, 1
 2nerds1bit.com, 1
 2nics.net, 1
 2pay.fr, 1
+2programmers.net, 1
 2rsc.com, 1
 2rsc.net, 1
 2stv.net, 1
 2ulcceria.nl, 1
 2wheel.com, 1
 2y.fi, 1
 3-dot-careapp1-146314.appspot.com, 1
 300m.com, 0
@@ -525,17 +522,16 @@ 330.net, 1
 3333yh.com, 1
 33445.com, 1
 33445111.com, 1
 33445222.com, 1
 33445333.com, 1
 33445444.com, 1
 33836.com, 1
 338da.com, 1
-33scc.com, 1
 340422.com, 1
 340622.com, 1
 340922.com, 1
 341422.com, 1
 341433.com, 1
 341533.com, 1
 341633.com, 1
 341733.com, 1
@@ -698,17 +694,16 @@ 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
@@ -840,17 +835,16 @@ 545922.com, 1
 546802.com, 1
 54below.com, 1
 5518k3.com, 1
 5533445.com, 1
 5555yh.com, 1
 555xl.com, 1
 55639.com, 1
 55797.com, 1
-55scc.com, 1
 56877.com, 1
 576422.com, 1
 579422.com, 1
 57he.com, 1
 57wilkie.net, 1
 583422.com, 1
 585422.com, 1
 586422.com, 1
@@ -875,17 +869,16 @@ 5dwin.net, 1
 5ece.de, 1
 5francs.com, 1
 5gb.space, 1
 5h0r7.com, 1
 5kraceforals.com, 1
 5percentperweek.com, 1
 5starbouncycastlehire.co.uk, 1
 5thchichesterscouts.org.uk, 1
-5w5.la, 1
 5y.fi, 1
 602422.com, 1
 604122.com, 1
 604322.com, 1
 604522.com, 1
 604622.com, 1
 605422.com, 1
 606422.com, 1
@@ -999,17 +992,16 @@ 698da.com, 1
 6997896.com, 1
 69butterfly.com, 1
 69fps.gg, 1
 69mentor.com, 1
 69wasted.net, 1
 6lo.zgora.pl, 1
 6pm.com, 1
 6t-montjoye.org, 1
-6w6.la, 1
 700.az, 1
 704233.com, 1
 7045.com, 1
 704533.com, 1
 7045h.com, 1
 704633.com, 1
 712433.com, 1
 713433.com, 1
@@ -1164,17 +1156,16 @@ 8889809.com, 1
 8889819.com, 1
 8889870.com, 1
 8889881.com, 1
 8889890.com, 1
 8889893.com, 1
 8889903.com, 1
 8889910.com, 1
 888bwf.com, 1
-888msc.vip, 1
 88bwf.com, 1
 88d.com, 1
 88laohu.cc, 1
 88laohu.com, 1
 8901178.com, 1
 8901178.net, 1
 8910899.com, 1
 8910899.net, 1
@@ -1491,28 +1482,28 @@ abvent.net, 1
 abvlbasketviganello.ch, 1
 abyssproject.net, 1
 ac-admin.pl, 1
 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
 academkin.com, 1
 academytv.com.au, 1
 acadianapatios.com, 1
 acaeum.com, 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
 accelaway.com, 1
 accelerate.network, 1
 acceleratenetworks.com, 1
 accelerateyourworld.org, 1
 accelsnow.com, 1
 accentthailand.com, 1
 accesloges.com, 1
@@ -1850,17 +1841,16 @@ advertis.biz, 1
 advertisemant.com, 1
 advicepro.org.uk, 1
 advocate-europe.eu, 1
 advocaten-avocats.be, 1
 advocatenalkmaar.org, 1
 advocator.ca, 1
 advocoeurdehaan.nl, 1
 advogatech.com.br, 1
-advokat-romanov.com, 1
 advtran.com, 1
 adware.pl, 1
 adwokatkosterka.pl, 1
 adwokatzdunek.pl, 1
 adws.io, 1
 adxperience.com, 1
 adzie.xyz, 1
 adzuna.at, 1
@@ -1977,16 +1967,17 @@ afrodigital.uk, 1
 afs-asso.org, 1
 aftab-alam.de, 1
 after.digital, 1
 afterhate.fr, 1
 afterskool.eu, 1
 afterstack.net, 1
 afuh.de, 1
 afva.net, 1
+afzco.asia, 1
 ag-websolutions.de, 1
 ag8-game.com, 1
 agalliasis.ch, 1
 agamsecurity.ch, 1
 agatajanik.de, 1
 agate.pw, 1
 agdalieso.com.ba, 1
 age.hk, 1
@@ -2022,16 +2013,17 @@ agilecraft.com, 1
 agileecommerce.com.br, 1
 agileui.com, 1
 agiley.se, 1
 agilizing.us, 1
 agilob.net, 1
 aging.gov, 1
 agingstats.gov, 1
 agingstop.net, 1
+aginion.net, 1
 agiserv.fr, 1
 agliamici.it, 1
 agnesk.blog, 1
 agoodmind.com, 1
 agoravm.tk, 1
 agoravox.fr, 1
 agoravox.it, 1
 agoravox.tv, 1
@@ -2074,16 +2066,17 @@ agscinemas.com, 1
 agscinemasapp.com, 1
 agung-furniture.com, 1
 agwa.name, 1
 agy.cl, 1
 ahcpr.gov, 0
 ahd.com, 0
 ahelos.tk, 1
 aheng.me, 1
+ahero4all.org, 1
 ahkubiak.ovh, 1
 ahlaejaba.com, 1
 ahlz.sk, 1
 ahmad.works, 1
 ahmadly.com, 1
 ahmedabadflowermall.com, 1
 ahmedcharles.com, 1
 ahmerjamilkhan.org, 1
@@ -2222,17 +2215,16 @@ airbnb.se, 1
 airbnb.tools, 1
 airbnbchina.cn, 1
 airbnbopen.com, 1
 airborne-inflatables.co.uk, 1
 airbossofamerica.com, 1
 airclass.com, 1
 aircomms.com, 1
 airconsalberton.co.za, 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
@@ -2288,17 +2280,16 @@ ajeventhire.co.uk, 1
 ajiaojr.info, 1
 ajiaojr.io, 1
 ajiaojr.me, 1
 ajiaojr.net, 1
 ajiboye.com, 1
 ajnasz.hu, 1
 ajsb85.com, 1
 ak-varazdin.hr, 1
-ak-webit.de, 1
 aka.ms, 1
 akachanikuji.com, 1
 akademeia.moe, 1
 akademie-frankfurt.de, 1
 akalashnikov.ru, 1
 akamon.ac.jp, 1
 akaoma.com, 1
 akasha.world, 1
@@ -2590,17 +2581,16 @@ allinone-ranking150.com, 1
 allis.studio, 1
 allius.de, 1
 alljamin.com, 1
 allladyboys.com, 1
 allmebel.ru, 1
 allmend-ru.de, 1
 allns.fr, 1
 allo-credit.ch, 1
-allo-symo.fr, 1
 allofthestops.com, 1
 allontanamentovolatili.it, 1
 allontanamentovolatili.milano.it, 1
 alloutatl.com, 1
 alloverthehill.com, 1
 alloydevil.nl, 1
 allplayer.tk, 1
 allpointsblog.com, 1
@@ -2709,17 +2699,16 @@ altered.network, 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
-altiacaselight.com, 1
 altitudemoversdenver.com, 1
 altkremsmuensterer.at, 1
 altmaestrat.es, 1
 altoa.cz, 1
 altonblom.com, 1
 altoneum.com, 1
 altopartners.com, 1
 altopia.com, 1
@@ -3207,16 +3196,17 @@ antennista.pavia.it, 1
 antennista.roma.it, 1
 antennista.tv, 1
 antennisti.milano.it, 1
 antennisti.roma.it, 1
 anteprima.info, 1
 anthedesign.fr, 1
 anthisis.tv, 1
 anthony-rouanet.com, 1
+anthony.codes, 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
@@ -3372,17 +3362,16 @@ app.simpletax.ca, 1
 app.yinxiang.com, 0
 app2get.de, 1
 appapi.link, 1
 apparelfashionwiki.com, 1
 appartement-andrea.at, 1
 appartement-evolene.net, 1
 appartementhaus-badria.de, 1
 appartementmarsum.nl, 1
-appcoins.io, 1
 appdrinks.com, 1
 appearance-plm.de, 1
 appel-aide.ch, 1
 appelboomdefilm.nl, 1
 appengine.google.com, 1
 apperio.com, 1
 appformacpc.com, 1
 appgeek.com.br, 1
@@ -3423,26 +3412,26 @@ appscloudplus.com, 1
 appseccalifornia.org, 0
 appshuttle.com, 1
 appt.ch, 1
 apptomics.com, 1
 apptoutou.com, 1
 appuals.com, 1
 appui-de-fenetre.fr, 1
 appveyor.com, 1
-appxcrypto.com, 1
 appzoojoo.be, 1
 apratimsaha.com, 1
 aprefix.com, 1
 apretatuercas.es, 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
 aptitudetests.org, 1
 aptive.co.uk, 1
 apu-board.de, 1
 apv-ollon.ch, 1
 aqdun.com, 1
 aqilacademy.com.au, 1
@@ -3566,17 +3555,16 @@ arima.co.ke, 1
 arimarie.com, 1
 arinde.ee, 1
 arinflatablefun.co.uk, 1
 arise19.com, 1
 arisevendor.net, 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
 arjunasdaughter.pub, 1
 arjweb.co.uk, 1
 arkacrao.org, 1
 arkadiyt.com, 1
@@ -4081,17 +4069,16 @@ aurorarecordings.com, 1
 aurosa.cz, 1
 auroware.com, 1
 auroz.tech, 1
 auroz.video, 1
 aus-ryugaku.info, 1
 ausec.ch, 1
 ausmwoid.de, 1
 auspicacious.org, 1
-ausschreibungen-suedtirol.it, 1
 aussiefunadvisor.com, 1
 aussiegreenmarks.com.au, 1
 aussieservicedown.com, 1
 aussiestoresonline.com, 1
 austenplumbing.com, 1
 austin-pearce.com, 1
 austin-security-cameras.com, 1
 austincardiac.com, 1
@@ -4274,17 +4261,16 @@ awaro.net, 1
 awbouncycastlehire.com, 1
 awccanadianpharmacy.com, 1
 awecademy.org, 1
 awei.pub, 1
 awen.me, 1
 awesomebouncycastles.co.uk, 1
 awesomesit.es, 1
 awf0.xyz, 1
-awin.la, 1
 awk.tw, 1
 awksolutions.com, 1
 awningsaboveus.com, 1
 awningsatlantaga.com, 1
 awomaninherprime.com, 1
 awsmdev.de, 1
 awsome-books.co.uk, 1
 awxg.com, 1
@@ -4342,17 +4328,16 @@ azimut.fr, 1
 azino777.ru, 1
 azizfirat.com, 1
 azizvicdan.com, 1
 azlk-team.ru, 1
 azort.com, 1
 azrazalea.net, 1
 azso.pro, 1
 azsupport.com, 1
-aztraslochi.it, 1
 aztrix.me, 1
 azu-l.com, 1
 azu-l.jp, 1
 azuki.cloud, 1
 azurecrimson.com, 1
 azuriasky.com, 1
 azuriasky.net, 1
 azuxul.fr, 1
@@ -5057,17 +5042,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
 beforeyoueatoc.com, 1
 beframed.ch, 1
 befundonline.de, 1
 begabungsfoerderung.info, 1
 begbie.com, 1
 beginatzero.com, 1
 beginner.nl, 1
 beginwp.top, 1
@@ -5125,16 +5109,17 @@ belmontgoessolar.org, 1
 belouga.org, 1
 belpbleibtbelp.ch, 1
 belt.black, 1
 belua.com, 1
 belvoirbouncycastles.co.uk, 1
 belwederczykow.eu, 1
 bely-mishka.by, 1
 belyvly.com, 1
+bemcorp.de, 1
 bemindly.com, 1
 bemsoft.pl, 1
 ben-energy.com, 0
 ben-stock.de, 1
 ben.ninja, 1
 ben2.co.il, 1
 benabrams.it, 1
 benary.org, 1
@@ -5254,16 +5239,17 @@ berndklaus.at, 1
 bernhard-seidenspinner.de, 1
 bernhardkau.de, 1
 bernhardluginbuehl.ch, 1
 bernhardluginbuehl.com, 1
 bernieware.de, 1
 berodes.be, 1
 berr.yt, 1
 berra.se, 1
+berruezoabogados.com, 1
 berrus.com, 1
 berry.cat, 1
 berrypay.com, 1
 bersierservices.ch, 1
 bersotavocats.fr, 1
 berst.cz, 1
 berthabailey.com, 1
 berthelier.me, 1
@@ -5467,16 +5453,17 @@ bfi.wien, 0
 bflix.tv, 1
 bforb.sk, 1
 bfpg.org, 1
 bfrailwayclub.cf, 1
 bft-media.com, 1
 bftbradio.com, 1
 bfw-online.de, 1
 bg-sexologia.com, 1
+bgbhsf.top, 1
 bgenlisted.com, 1
 bgeo.io, 1
 bgfashion.net, 1
 bgfoto.info, 1
 bghost.xyz, 1
 bgkoleda.bg, 1
 bglsingles.de, 1
 bgp.space, 1
@@ -5790,20 +5777,16 @@ bitfehler.net, 1
 bitfence.io, 1
 bitfinder.nl, 1
 bitfuse.net, 1
 bitgo.com, 1
 bitgrapes.com, 1
 bithap.com, 1
 bithir.co.uk, 1
 bititrain.com, 1
-bitk.co, 1
-bitk.co.uk, 1
-bitk.eu, 1
-bitk.uk, 1
 bitlish.com, 1
 bitlo.com, 1
 bitlo.com.tr, 1
 bitlo.io, 1
 bitlo.org, 1
 bitmain.com.ua, 1
 bitmaincare.com.ua, 1
 bitmaincare.ru, 1
@@ -6067,16 +6050,17 @@ bloginbeeld.nl, 1
 bloglines.co.za, 1
 bloglogistics.com, 1
 blogom.at, 1
 blogpentrusuflet.ro, 1
 blogreen.org, 1
 blogsdna.com, 1
 blogthedayaway.com, 1
 blogtroterzy.pl, 1
+blok56.nl, 1
 blokmy.com, 1
 blood4pets.tk, 1
 bloodsports.org, 1
 bloom-avenue.com, 1
 bltc.co.uk, 1
 bltc.com, 1
 bltc.net, 1
 bltc.org, 1
@@ -6122,16 +6106,17 @@ bluesunhotels.com, 1
 bluetexservice.com, 1
 bluewavewebdesign.com, 1
 bluex.im, 1
 bluex.info, 1
 bluex.net, 1
 bluex.org, 1
 blueyed.eu, 1
 blui.ml, 1
+bluiandaj.ml, 1
 bluimedia.com, 1
 blumen-garage.de, 1
 blumenfeldart.com, 1
 blumiges-fischbachtal.de, 0
 blundell.wedding, 1
 bluntandsnakes.com, 1
 blupig.net, 1
 bluproducts.com.es, 1
@@ -6215,16 +6200,17 @@ boeddhashop.nl, 1
 boekenlegger.nl, 1
 boem.gov, 1
 boernecancerfonden.dk, 1
 bogdancornianu.com, 1
 bogdanepureanu.ro, 1
 bogner.sh, 1
 bogobeats.com, 1
 bogosity.se, 1
+bohan.co, 1
 bohramt.de, 1
 bohyn.cz, 1
 boimmobilier.ch, 1
 boincstats.com, 1
 boiseonlinemall.com, 1
 boisewaldorf.org, 1
 bokadoktorn-test.net, 1
 boke112.com, 1
@@ -6284,17 +6270,17 @@ bonnyprints.fr, 1
 bonobo.cz, 1
 bonprix.co.uk, 1
 bonqoeur.ca, 1
 bonrecipe.com, 1
 bonsaimedia.nl, 1
 bonsi.net, 1
 bonux.co, 1
 boobox.xyz, 1
-boodaah.com, 1
+boodaah.com, 0
 boodmo.com, 1
 boof.com, 0
 boogaerdtmakelaars.nl, 1
 boogiebouncecastles.co.uk, 1
 book-in-hotel.com, 1
 booker.ly, 1
 bookingapp.be, 1
 bookingapp.nl, 1
@@ -6786,17 +6772,17 @@ broeselei.at, 1
 brokenhands.io, 1
 brokenjoysticks.net, 1
 brokervalues.com, 1
 brompton-cocktail.com, 1
 bronevichok.ru, 1
 bronwynlewis.com, 1
 broodbesteld.nl, 1
 brooke-fan.com, 1
-brookehatton.com, 1
+brookehatton.com, 0
 brookframework.org, 1
 brooklynrealestateblog.com, 1
 brookworth.com, 1
 brossman.it, 1
 brossmanit.com, 1
 brother-printsmart.nl, 1
 brouillard.ch, 1
 brouwerijdeblauweijsbeer.nl, 1
@@ -6852,17 +6838,16 @@ bsd.com.ro, 1
 bsdes.net, 1
 bsdfreak.dk, 1
 bsdlab.com, 1
 bsdracing.ca, 1
 bsdug.org, 1
 bsdunix.xyz, 1
 bsee.gov, 1
 bserved.de, 1
-bsg-aok-muenchen.de, 1
 bsg.ro, 1
 bsgamanet.ro, 1
 bsidesf.com, 1
 bsidesf.org, 1
 bsidessf.com, 1
 bsimerch.com, 1
 bsktweetup.info, 1
 bslim-e-boutique.com, 1
@@ -7118,17 +7103,17 @@ bwcscorecard.org, 1
 bwe-seminare.de, 1
 bwf11.com, 1
 bwf55.com, 1
 bwf6.com, 1
 bwf66.com, 1
 bwf77.com, 1
 bwf99.com, 1
 bwfc.nl, 1
-bwh1.net, 1
+bwh1.net, 0
 bwilkinson.co.uk, 1
 bwl-earth.club, 1
 bws16.de, 1
 bwwb.nu, 1
 bx-n.de, 1
 bxdev.me, 1
 bxp40.at, 1
 by.cx, 1
@@ -7149,17 +7134,16 @@ bymike.co, 1
 bynder.com, 1
 bynet.cz, 1
 bynumlaw.net, 1
 bypass.kr, 1
 bypass.sh, 1
 byrko.cz, 1
 byrko.sk, 1
 byronkg.us, 1
-byronprivaterehab.com.au, 1
 byrtz.de, 1
 bysb.net, 0
 byte-time.com, 1
 byte128.com, 1
 bytearts.net, 0
 bytebucket.org, 1
 bytecode.no, 1
 bytejail.com, 1
@@ -7348,16 +7332,17 @@ calyxinstitute.org, 0
 camaradivisas.com, 1
 camaras.uno, 1
 camarilloelectric.com, 1
 camarilloelectrical.com, 1
 camarilloexteriorlighting.com, 1
 camarillolandscapelighting.com, 1
 camarillolighting.com, 1
 camarillooutdoorlighting.com, 1
+camashop.de, 1
 camastowncar.com, 1
 cambier.org, 1
 cambiowatch.ch, 1
 cambodian.dating, 1
 cambridge-security.com, 1
 cambridgebouncers.co.uk, 1
 cambridgesecuritygroup.org, 1
 camcapital.com, 1
@@ -7452,17 +7437,16 @@ cant.at, 1
 cantatio.ch, 1
 canterberry.cc, 1
 canterbury.ws, 1
 canterburybouncycastlehire.co.uk, 1
 cantrack.com, 1
 canva-dev.com, 1
 canva.com, 1
 canx.org, 1
-canyons.media, 1
 canyoupwn.me, 1
 cao.gov, 1
 cao.la, 1
 caodecristachines.com.br, 1
 caodesantohumberto.com.br, 1
 caoshan60.com, 1
 capachitos.cl, 1
 capacityproject.org, 1
@@ -7547,17 +7531,16 @@ care4all.com, 1
 careeapp.com, 1
 careeroptionscoach.com, 1
 careerpower.co.in, 1
 careers.plus, 1
 carefour.nl, 1
 caremad.io, 1
 carepassport.com, 1
 caretta.co.uk, 1
-carey.li, 0
 careyshop.cn, 1
 carezone.com, 0
 carfinancehelp.com, 1
 carfraemill.co.uk, 1
 cargobay.net, 1
 cargomaps.com, 1
 cargorestraintsystems.com.au, 1
 carhunters.cz, 1
@@ -7575,17 +7558,16 @@ carlife-at.jp, 1
 carlili.fr, 1
 carlingfordapartments.com.au, 1
 carlmjohnson.net, 1
 carlo.mx, 0
 carlobiagi.de, 1
 carlocksmith--dallas.com, 1
 carlocksmithbaltimore.com, 1
 carlocksmithellicottcity.com, 1
-carlocksmithfallbrook.com, 1
 carlocksmithlewisville.com, 1
 carlocksmithmesquite.com, 1
 carlocksmithtucson.com, 1
 carlosfelic.io, 1
 carloshmm.com, 1
 carloshmm.stream, 1
 carlosjeurissen.com, 1
 carlot-j.com, 1
@@ -8038,16 +8020,17 @@ chabert-provence.fr, 1
 chabik.com, 1
 chad.ch, 1
 chadstoneapartments.com.au, 1
 chadtaljaardt.com, 1
 chaffeyconstruction.com, 1
 chaifeng.com, 1
 chainedunion.info, 1
 chaip.org, 1
+chaisystems.net, 1
 chaletdemontagne.org, 1
 chaletmanager.com, 1
 chaletpierrot.ch, 1
 chaleur.com, 1
 chalker.io, 1
 chalkfestival.org, 0
 challengeblog.org, 1
 challengeskins.com, 1
@@ -8369,16 +8352,17 @@ chiru.no, 1
 chisago-isantidfl.com, 1
 chit.search.yahoo.com, 0
 chksite.com, 1
 chl.la, 1
 chloeallison.co.uk, 1
 chloehorler.com, 1
 chloescastles.co.uk, 1
 chlth.com, 1
+chmielarz.it, 1
 chmsoft.com.ua, 1
 chmsoft.ru, 1
 chmurakotori.ml, 1
 choc-o-lush.co.uk, 1
 chocolah.com.au, 0
 chocolat-suisse.ch, 1
 chocolatesandhealth.com, 1
 chocolatier-tristan.ch, 1
@@ -8601,17 +8585,16 @@ cisofy.com, 1
 cispeo.org, 1
 ciss.ltd, 1
 cisum-cycling.com, 1
 cisy.me, 1
 citationgurus.com, 1
 citcuit.in, 1
 cities.cl, 1
 citimarinestore.com, 1
-citizen-cam.de, 1
 citizensbankal.com, 1
 citizenscience.gov, 0
 citizenslasvegas.com, 1
 citizensleague.org, 1
 citizenspact.eu, 1
 citizing.org, 1
 citrusui.me, 1
 cittadesign.com, 0
@@ -8852,31 +8835,33 @@ cloudup.com, 1
 cloudwarez.xyz, 1
 clouz.de, 1
 cloveros.ga, 1
 clownindeklas.nl, 1
 clownish.co.il, 1
 cloxy.com, 1
 clr3.com, 1
 clsfoundationrepairandwaterproofing.com, 1
+clsimage.com, 1
 clsoft.ch, 1
 clu-in.org, 1
 club-adulti.ro, 1
 club-climate.com, 1
 club-creole.com, 1
 club-duomo.com, 1
 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
+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
 clubnoetig-ink2g.de, 1
@@ -8929,17 +8914,17 @@ cn8522.com, 1
 cna-aiic.ca, 1
 cna5.cc, 1
 cnam-idf.fr, 1
 cnaprograms.online, 1
 cnatraining.network, 1
 cnbs.ch, 1
 cnc-lehrgang.de, 1
 cncado.net, 1
-cncbazar365.com, 0
+cncbazar365.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
@@ -8989,16 +8974,18 @@ coconutoil24.com, 1
 cocoscastles.co.uk, 1
 cocquyt-usedcars.be, 1
 cocubes.com, 1
 cocyou.ooo, 1
 coda.io, 1
 coda.moe, 1
 coda.today, 1
 coda.world, 1
+codabix.com, 1
+codabix.de, 1
 code-poets.co.uk, 1
 code-well.com, 1
 code.facebook.com, 0
 code.fm, 1
 code.google.com, 1
 code.taxi, 1
 code67.com, 1
 codeandpeace.com, 1
@@ -9079,17 +9066,16 @@ coffeetocode.me, 1
 cogala.eu, 1
 cogent.cc, 1
 cogilog.com, 1
 cogitoltd.com, 1
 cognicom-gaming.com, 1
 cognitip.com, 1
 cognitivecomputingconsortium.com, 1
 cognitohq.com, 1
-cognixia.com, 1
 cogsquad.house, 1
 cogumelosmagicos.org, 1
 coi-verify.com, 1
 coiffeurschnittstelle.ch, 1
 coigach-assynt.org, 1
 coimmvest.com, 1
 coin-quest.net, 1
 coin.dance, 1
@@ -9339,16 +9325,17 @@ 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
+concretehermit.com, 0
 concretelevelingsystems.com, 1
 concreterepairatlanta.com, 1
 concursopublico.com.br, 1
 concursos.com.br, 1
 concursosabertos.com.br, 1
 concursuri.biz, 1
 condepenalba.com, 0
 condesaelectronics.com, 1
@@ -9618,17 +9605,16 @@ corsihaccpsicurezzalavoro.it, 1
 cortexitrecruitment.com, 1
 cortexx.nl, 1
 cortis-consulting.ch, 1
 cortisolsupplement.com, 1
 corvax.kiev.ua, 1
 corvus.eu.org, 1
 coryadum.com, 1
 corytyburski.com, 1
-corzntin.fr, 0
 cosasque.com, 1
 cosciamoos.com, 1
 cosirex.com, 1
 coslinker.com, 1
 cosmechic.fr, 1
 cosmekaitori.jp, 1
 cosmeticappraisal.com, 1
 cosmeticasimple.com, 1
@@ -9637,17 +9623,16 @@ 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
 cospol.ch, 1
-costa-rica-reisen.ch, 1
 costa-rica-reisen.de, 1
 costablanca.villas, 1
 costablancavoorjou.com, 1
 costcofinance.com, 1
 costellofc.co.uk, 1
 costinstefan.eu, 1
 costreportdata.com, 0
 costulessdirect.com, 1
@@ -9753,17 +9738,16 @@ craftyguy.net, 1
 craftyphotons.net, 1
 crag.com.tw, 1
 craigary.net, 1
 craigbates.co.uk, 1
 craigfrancis.co.uk, 1
 craigrouse.com, 1
 craigwfox.com, 1
 cralarm.de, 1
-crandall.io, 1
 cranems.com.ua, 1
 cranforddental.com, 1
 crapouill.es, 1
 crawcial.de, 1
 crawford.cloud, 1
 crawfordcountytcc.org, 1
 crawler.ninja, 1
 crawleybouncycastles.co.uk, 1
@@ -9821,16 +9805,17 @@ creato.top, 1
 creators-design.com, 1
 creators.co, 1
 creators.direct, 1
 creatujoya.com, 1
 credential.eu, 1
 credex.bg, 1
 credigo.se, 1
 crediteo.pl, 1
+creditkarma.com, 1
 creditos-rapidos.com, 1
 creditproautos.com, 0
 creditscoretalk.com, 1
 creditta.com, 1
 credittoken.io, 1
 creeks-coworking.com, 1
 creep.im, 1
 creepycraft.nl, 1
@@ -9879,17 +9864,16 @@ cristianhares.com, 1
 critcola.com, 1
 critical.today, 0
 criticalaim.com, 1
 criticalsurveys.co.uk, 1
 crizin.io, 1
 crl-autos.com, 1
 crm.onlime.ch, 0
 crm114d.com, 1
-croceverdevb.it, 1
 crochetnerd.com, 1
 croeder.net, 1
 croisedanslemetro.com, 1
 croixblanche-haguenau.fr, 1
 cromefire.myds.me, 1
 cromosomax.com, 1
 cronberg.ch, 1
 croncron.io, 1
@@ -9951,18 +9935,18 @@ crypalert.com, 1
 crypt.is-by.us, 1
 cryptagio.com, 1
 cryptearth.de, 1
 crypted.chat, 1
 crypteianetworks.com, 1
 crypticshell.co.uk, 1
 crypto-armory.com, 1
 crypto.cat, 0
+crypto.graphics, 1
 crypto.is, 0
-crypto.tube, 1
 cryptobin.co, 1
 cryptocaseproject.com, 1
 cryptocon.org, 1
 cryptoegg.ca, 1
 cryptofan.org, 1
 cryptofrog.co, 1
 cryptography.ch, 1
 cryptography.io, 1
@@ -10249,17 +10233,17 @@ cyberpioneer.net, 0
 cyberpubonline.com, 1
 cyberregister.nl, 1
 cyberregister.org, 1
 cybersafesolutions.com, 1
 cybersantri.com, 1
 cyberscan.io, 1
 cybersecurity.nz, 1
 cybersecurity.run, 1
-cybersecuritychallenge.be, 1
+cybersecuritychallenge.be, 0
 cybersecurityketen.nl, 1
 cyberseguranca.com.br, 1
 cyberserver.org, 1
 cybersins.com, 1
 cybersmartdefence.com, 1
 cyberspace.community, 1
 cyberspace.today, 1
 cyberspect.com, 1
@@ -10335,16 +10319,17 @@ d-msg.com, 1
 d-parts.de, 1
 d-parts24.de, 1
 d-quantum.com, 1
 d-toys.com.ua, 1
 d-training.de, 1
 d.nf, 1
 d.nr, 1
 d00d.de, 1
+d0g.cc, 1
 d0m41n.name, 1
 d0xq.com, 1
 d0xq.net, 1
 d2ph.com, 1
 d2s.uk, 1
 d3lab.net, 1
 d3x.pw, 1
 d3xt3r01.tk, 1
@@ -10525,17 +10510,16 @@ danminkevitch.com, 1
 danna-salary.com, 1
 danny-tittel.de, 1
 danny.fm, 1
 dannycairns.com, 1
 dannyrohde.de, 1
 dannystevens.co.uk, 1
 danonsecurity.com, 1
 danotage.tv, 1
-danova.de, 1
 danoz.net, 1
 danpiel.net, 1
 dansa.com.co, 1
 dansage.co, 1
 danscomp.com, 1
 dansdiscounttools.com, 1
 danselibre.net, 1
 danselibre.org, 1
@@ -10658,16 +10642,17 @@ dataguidance.com, 1
 dataharvest.at, 1
 datahoarder.xyz, 1
 datahove.no, 0
 datakick.org, 1
 datalife.gr, 1
 datalysis.ch, 1
 datamatic.ru, 1
 dataprotectionadvisors.com, 1
+datapun.ch, 1
 datapure.net, 1
 datascience.cafe, 1
 datascience.ch, 1
 datascomemorativas.com.br, 1
 datasharesystem.com, 1
 dataskydd.net, 1
 dataspace.pl, 1
 datastream.re, 0
@@ -11177,17 +11162,16 @@ dersoundhunter.de, 1
 derstulle.de, 1
 des-hommes-et-des-clous.com, 1
 desagaz.com, 1
 desarrollowp.com, 1
 descartes-finance.com, 1
 desec.io, 1
 desertsounds.org, 1
 desgenst.ch, 1
-design-fu.com, 0
 design-in-bad.eu, 1
 design-tooning.de, 1
 designanyware.com.br, 1
 designdevs.eu, 1
 designed-cybersecurity.com, 1
 designedbygeniuses.com, 1
 designedcybersecurity.com, 1
 designer-drug.com, 1
@@ -11277,16 +11261,17 @@ devcast.io, 0
 devcf.com, 1
 devct.cz, 0
 devcu.com, 1
 devcu.net, 1
 devdesco.com, 1
 devdoodle.net, 1
 devel.cz, 1
 develerik.com, 0
+develop.cool, 1
 developer.android.com, 1
 developer.mydigipass.com, 0
 developerdan.com, 1
 developerfair.com, 1
 developermail.io, 0
 developers.facebook.com, 0
 developersclub.website, 1
 developfx.com, 1
@@ -11467,17 +11452,16 @@ diegorbaquero.com, 1
 diehl.io, 1
 diekperaiwseis.gr, 1
 diem-project.org, 1
 diemattels.at, 1
 diemogebhardt.com, 1
 dienchaninstitute.com, 1
 dienstplan.cc, 1
 dienstplan.one, 1
-dierabenmutti.de, 1
 dierenartsdeconinck.be, 1
 dieselanimals.lt, 1
 dieselgalleri.com, 1
 dieser.me, 1
 diesteppenreiter.de, 1
 dietaanticelulitica.com, 1
 dietaanticelulitis.com, 1
 dietacelulitis.com, 1
@@ -11760,16 +11744,17 @@ divergenz.org, 1
 diversityflags.com, 1
 diversityflags.com.au, 1
 diversityflags.nz, 1
 divi-experte.de, 1
 divinasaiamodas.com.br, 1
 divinegames.studio, 1
 diving.photo, 1
 divingwithnic.com, 1
+divorciosmurcia.com, 1
 diwei.vip, 1
 dixi.fi, 1
 dixibox.com, 1
 dixmag.com, 1
 diybook.at, 1
 diycc.org, 1
 diygod.me, 1
 diymediahome.org, 1
@@ -11868,16 +11853,17 @@ dns.google.com, 1
 dns8.online, 1
 dnsbird.org, 1
 dnscrawler.com, 1
 dnscrypt.info, 1
 dnscrypt.nl, 1
 dnscurve.io, 1
 dnshallinta.fi, 1
 dnsinfo.ml, 1
+dnsipv6.srv.br, 1
 dnslog.com, 1
 dnsman.se, 1
 dnspod.ml, 1
 dnsql.io, 1
 dnstwister.report, 1
 dnzz123.com, 1
 do-it.cz, 1
 do-prod.com, 1
@@ -12041,17 +12027,16 @@ domyzitrka.cz, 1
 donabeneko.jp, 1
 donaldm.co.uk, 1
 donateaday.net, 1
 donfelino.tk, 0
 dongjingre.net, 1
 dongxuwang.com, 1
 donkennedyandsons.com, 1
 donkeytrekkingkefalonia.com, 1
-donlydental.ca, 1
 donmaldeamores.com, 1
 donnacha.blog, 1
 donnachie.net, 1
 donner-reuschel.de, 1
 donnons.org, 0
 donnoval.ru, 0
 donotcall.gov, 1
 donotlink.it, 1
@@ -12573,17 +12558,16 @@ dusnan.com, 1
 dustplanet.de, 1
 dustri.org, 1
 dustycloth.com, 1
 dustygroove.com, 1
 dustyspokesbnb.ca, 1
 dutch.desi, 1
 dutch1.nl, 1
 dutchdare.nl, 1
-dutchessuganda.com, 1
 dutchforkrunners.com, 1
 dutchrank.nl, 1
 dutchwanderers.nl, 1
 dutchweballiance.nl, 1
 duval.paris, 1
 dv189.com, 1
 dvbris.co.uk, 1
 dvbris.com, 1
@@ -12793,17 +12777,16 @@ easymun.com, 1
 easyocm.hu, 1
 easyoutdoor.nl, 1
 easypay.bg, 1
 easyproperty.com, 1
 easypv.ch, 1
 easyqr.codes, 1
 easyreal.ru, 1
 easyroad.fr, 1
-easyschools.org, 1
 easyslide.be, 1
 easyssl.com.cn, 1
 easystore.co, 1
 easytechguides.com, 1
 easytechsecurity.com, 1
 easyweenies.com, 1
 eat-mine.ml, 1
 eat-sleep-code.com, 1
@@ -13123,16 +13106,17 @@ ehuber.info, 1
 eichel.eu, 1
 eichornenterprises.com, 1
 eickemeyer.nl, 1
 eickhof.co, 1
 eickhof.us, 1
 eickhofcolumbaria.com, 1
 eidolons.org, 1
 eifel.website, 1
+eifelindex.de, 1
 eigenbubi.de, 1
 eigenpul.se, 1
 eigenpulse.com, 1
 eighty-aid.com, 1
 eightyfour.ca, 1
 eigpropertyauctions.co.uk, 1
 eihaikyo.com, 1
 eika.as, 1
@@ -13585,16 +13569,17 @@ endangeredwatch.com, 1
 ende-x.com, 1
 endeal.nl, 1
 ender.co.at, 1
 enderbycamping.com, 1
 enderszone.com, 1
 endingthedocumentgame.gov, 1
 endlessdiy.ca, 1
 endlessvideo.com, 1
+endofinternet.goip.de, 1
 endofnet.org, 1
 endoftenancycleaninglondon.co.uk, 1
 endoftennancycleaning.co.uk, 1
 endohaus.us, 1
 endpointsystems.com, 1
 endspamwith.us, 1
 enduranceday.be, 1
 endzeit-architekten.com, 0
@@ -13684,17 +13669,17 @@ ent-london.com, 1
 entabe.jp, 1
 entactogen.com, 1
 entactogens.com, 1
 entaurus.com, 1
 enteente.com, 1
 entercenter.ru, 1
 enterprisey.enterprises, 1
 entersoftsecurity.com, 1
-entersynapse.com, 1
+entersynapse.com, 0
 entheogens.com, 1
 enthusiaformazione.com, 1
 entradaweb.cl, 1
 entrainr.com, 1
 entrecieletpierres.com, 1
 entreprise-toiture-clement.fr, 1
 entropia.de, 0
 entrusted.io, 1
@@ -13774,17 +13759,16 @@ eposcardiff.co.uk, 1
 eposcloud.net, 1
 eposig.net, 1
 eposkent.co.uk, 1
 eposleeds.co.uk, 1
 eposleicester.co.uk, 1
 eposliverpool.co.uk, 1
 eposlondon.co.uk, 1
 eposmidlands.co.uk, 1
-eposnewport.co.uk, 1
 eposnottingham.co.uk, 1
 eposreading.co.uk, 1
 epossheffield.co.uk, 1
 epossussex.co.uk, 1
 eposswansea.co.uk, 1
 epossystems.co.uk, 1
 epostplus.li, 1
 eposwales.co.uk, 1
@@ -13855,17 +13839,16 @@ erikserver2.tk, 1
 erikseth.de, 1
 erikwalther.eu, 1
 erinaceinae.com, 1
 eriner.me, 1
 erinn.io, 1
 erisrenee.com, 1
 erixschueler.de, 1
 erkaelderbarenaaben.dk, 1
-ernaehrungsberatung-rapperswil.ch, 1
 ernest.ly, 1
 eroimatome.com, 1
 eroma.com.au, 1
 eromon.net, 1
 eron.info, 1
 eroticforce.com, 1
 erotpo.cz, 0
 erp-band.ru, 1
@@ -13894,17 +13877,16 @@ erudicia.it, 1
 erudicia.nl, 1
 erudicia.se, 1
 erudicia.uk, 1
 erudikum.cz, 1
 erwanlepape.com, 1
 erwin.saarland, 1
 erwinpaal.nl, 1
 erwinschmaeh.ch, 1
-erwinvanlonden.net, 1
 erwinwensveen.nl, 1
 erythroxylum-coca.com, 1
 es-geenen.de, 1
 es.search.yahoo.com, 0
 es888.net, 1
 es8888.net, 1
 es888999.com, 1
 es999.net, 1
@@ -14289,17 +14271,16 @@ euteamo.cn, 1
 eutotal.com, 1
 eutram.com, 1
 euvo.tk, 0
 euwid.de, 1
 ev-zertifikate.de, 1
 eva-select.com, 1
 eva.cz, 1
 evaartinger.de, 1
-evades.io, 1
 evafojtova.cz, 1
 evailoil.ee, 1
 evailoil.eu, 1
 evalesc.com, 1
 evamachkova.cz, 1
 evamathil.de, 1
 evamira.com, 1
 evanfiddes.com, 1
@@ -14486,17 +14467,16 @@ expeditiegrensland.nl, 1
 experienceoutdoors.org.uk, 1
 experienceoz.com.au, 1
 experise.fr, 1
 expert-korovin.ru, 1
 expert.cz, 1
 experteasy.com.au, 1
 expertofficefitouts.com.au, 1
 expertohomestaging.com, 1
-experts-en-gestion.fr, 1
 expertsverts.com, 1
 expertvagabond.com, 1
 expertviolinteacher.com, 1
 expiscor.solutions, 1
 explodie.org, 1
 exploit-db.com, 1
 exploit.cz, 1
 exploit.party, 1
@@ -14612,17 +14592,17 @@ f-thie.de, 1
 f-u-c-k.wien, 1
 f00.fr, 1
 f0x.es, 1
 f13cybertech.cz, 1
 f1bigpicture.com, 1
 f1classement.com, 1
 f1fever.co.uk, 1
 f1fever.net, 1
-f2e.io, 1
+f1minute.com, 1
 f2h.io, 1
 f3nws.com, 1
 f42.net, 1
 f43.me, 1
 f5movies.top, 1
 f5nu.com, 1
 f5w.de, 1
 f8842.com, 1
@@ -14685,16 +14665,17 @@ facility-service-muenchen.de, 1
 fackovcova.cz, 1
 fackovcova.eu, 1
 fackovcova.sk, 1
 fackovec.cz, 1
 fackovec.eu, 1
 fackovec.sk, 1
 factbytefactbox.com, 1
 factcool.com, 1
+factor.cc, 0
 factorypartsdirect.com, 1
 factureenlinea.com, 1
 factuur.pro, 1
 factuursturen.be, 1
 factuursturen.nl, 1
 factys.do, 1
 factys.es, 1
 facua.org, 1
@@ -14905,30 +14886,29 @@ 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
 fateitalia.it, 1
 fathers4equalrights.org, 1
 fatidique.com, 1
 fatmixx.com, 1
 fator25.com.br, 1
 fatowltees.com, 1
 fatox.de, 1
 faucetbox.com, 0
-faui2k17.de, 1
+faui2k17.de, 0
 faultlines.org, 1
 faulty.equipment, 1
 fauvettes.be, 1
 favirei.com, 1
 fawong.com, 1
 faxite.com, 1
 faxreader.net, 1
 faxvorlagen-druckvorlagen.de, 1
@@ -15023,16 +15003,17 @@ feezmodo.com, 0
 fefelovalex.ru, 1
 fegame.eu, 1
 fegame.mobi, 1
 fegame.net, 1
 fegame.nl, 1
 fegli.gov, 1
 fehngarten.de, 1
 fehnladen.de, 1
+feigling.net, 0
 feildel.fr, 1
 feilen.de, 1
 feirlane.org, 0
 feisbed.com, 1
 feisim.com, 1
 feisim.org, 1
 feist.io, 1
 feistyduck.com, 1
@@ -15262,17 +15243,16 @@ financepark.ch, 1
 financniexperti.sk, 1
 finansa.no, 1
 finanstilsynet.dk, 1
 finch.am, 1
 finchi.de, 1
 finchnest.co.uk, 1
 find-job-in.com, 1
 find-mba.com, 1
-find-your-happy-place.de, 1
 findapinball.com, 1
 findcarspecs.com, 1
 findhoustonseniorcare.com, 1
 findingkorea.com, 1
 finditez.com, 1
 findmybottleshop.com.au, 1
 findmynudes.com, 1
 findoon.de, 1
@@ -15530,16 +15510,17 @@ flixhaven.net, 1
 flixports.com, 1
 flmortgagebank.com, 1
 floatationlocations.com, 1
 floaternet.com, 1
 flockbox.club, 1
 flocktofedora.org, 1
 floersheimer-openair.de, 1
 floffi.media, 1
+floj.tech, 1
 flokinet.is, 1
 floless.co.uk, 1
 flomeyer.de, 1
 floobits.com, 1
 floogulinc.com, 1
 floorballpoint.cz, 1
 flooringnightmares.com, 1
 flooringsourcetx.com, 1
@@ -15743,17 +15724,16 @@ foregroundweb.com, 1
 foreign-language-colleges.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
@@ -16029,17 +16009,16 @@ freelo.cz, 1
 freelysurf.cf, 1
 freemanning.de, 1
 freemans.com, 1
 freemedforms.com, 1
 freemomhugs.org, 1
 freemyipod.org, 1
 freend.me, 0
 freenetproject.org, 1
-freeonplate.com, 1
 freepnglogos.com, 1
 freepoints.us, 1
 freepublicprofile.com, 1
 freerealincest.com, 1
 freergform.org, 1
 freeshell.de, 1
 freeshkre.li, 1
 freesitemapgenerator.com, 1
@@ -16503,17 +16482,16 @@ gala.kiev.ua, 0
 galabau-maurmann.de, 1
 galacg.me, 1
 galactic-crew.org, 1
 galak.ch, 1
 galanight.cz, 1
 galecia.com, 1
 galeria42.com, 1
 galeriart.xyz, 1
-galerieautodirect.com, 1
 galeries.photo, 1
 galgoafegao.com.br, 1
 galgoingles.com.br, 1
 galgopersa.com.br, 1
 galilahiskye.com, 1
 galileanhome.org, 1
 galilel.cloud, 1
 galinas-blog.de, 1
@@ -16799,17 +16777,16 @@ 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
 gelog-software.de, 0
 geloofindemocratie.nl, 0
 geluidsstudio.com, 1
 gem-info.fr, 1
 gemeentemolenwaard.nl, 1
 gemeinsam-ideen-verwirklichen.de, 1
 gemgroups.in, 1
@@ -17048,17 +17025,16 @@ gflame.de, 1
 gflclan.ru, 1
 gfms.ru, 1
 gfnetfun.cf, 1
 gforce.ninja, 1
 gfoss.eu, 1
 gfoss.gr, 1
 gfournier.ca, 1
 gfw.moe, 1
-gfwno.win, 0
 gfxbench.com, 1
 ggdcpt.com, 1
 gginin.today, 1
 ggl-luzern.ch, 1
 gglks.com, 1
 ggma.co.uk, 1
 ggmmontascale.it, 1
 ggobbo.com, 1
@@ -17255,17 +17231,16 @@ glencarbide.com, 1
 glencoveny.gov, 1
 glendarraghbouncycastles.co.uk, 1
 glenhuntlyapartments.com.au, 1
 glenshere.com, 1
 glevolution.com, 1
 glidingshop.cz, 1
 glidingshop.de, 1
 glidingshop.eu, 1
-glittersjabloon.nl, 1
 glitzerstuecke.de, 1
 glloq.org, 1
 glnpo.gov, 1
 glob-coin.com, 1
 global-adult-webcams.com, 1
 global-lights.ma, 1
 global-office.com, 1
 global-village.koeln, 1
@@ -17618,17 +17593,16 @@ grailify.com, 1
 graingert.co.uk, 1
 graliv.net, 0
 gram.tips, 1
 gramati.com.br, 1
 grammysgrid.com, 1
 grancellconsulting.com, 1
 grandcafecineac.nl, 1
 grandcafetwist.nl, 1
-grandcapital.cn, 1
 grandcapital.id, 1
 grandcapital.net, 1
 grandcapital.ru, 1
 grandcastles.co.uk, 1
 grandchene.ch, 1
 grande.coffee, 1
 grandefratellonews.com, 1
 grandeto.com, 1
@@ -17643,16 +17617,17 @@ grannys-stats.com, 1
 grannyshouse.de, 1
 grantcooper.com, 1
 grantdb.ca, 1
 granth.io, 1
 grantmorrison.net, 1
 granular.ag, 1
 grapee.jp, 1
 grapeintentions.com, 1
+graphcommons.com, 1
 graphene.software, 1
 graphic-schools.com, 1
 graphic-shot.com, 1
 graphire.io, 1
 graphite.org.uk, 1
 grapholio.net, 1
 grasmark.com, 1
 grassenberg.de, 1
@@ -17664,16 +17639,17 @@ gratisgamecards.nl, 1
 gratisonlinesex.com, 1
 gratisrollenspieltag.de, 1
 gratiswifivoorjegasten.nl, 1
 gratitudeabundancepassion.com, 1
 grattan.co.uk, 1
 graumeier.de, 1
 gravilink.com, 1
 gravitascreative.net, 1
+gravitation.pro, 0
 gravitechthai.com, 1
 gravity-dev.de, 0
 gravity-inc.net, 1
 gravityformspdfextended.com, 1
 gravitypdf.com, 1
 grawe-blog.at, 1
 grayclub.co.il, 1
 grayhatter.com, 1
@@ -17682,16 +17658,17 @@ grayowlworks.com, 1
 grayscale.co, 1
 grayson.sh, 1
 graysonsmith.co.uk, 1
 grazieitalian.com, 1
 grc.com, 0
 great.nagoya, 1
 greatagain.gov, 1
 greatestwebsiteonearth.com, 1
+greatfire.kr, 1
 greatfire.org, 1
 greatislandarts.ca, 1
 greatlakeside.de, 1
 greatlengthshairextensionssalon.com, 1
 greatlifeinsurancegroup.com, 1
 greatskillchecks.com, 1
 greboid.co.uk, 1
 greboid.com, 1
@@ -17819,16 +17796,17 @@ groklearning.com, 1
 grolimur.ch, 1
 gronau-it-cloud-computing.de, 1
 grondius.com, 1
 groomershop.ru, 1
 grootinadvies.nl, 1
 groovydisk.com, 1
 groovygoldfish.org, 1
 gropp.org, 1
+groseb.net, 0
 gross.business, 1
 grossberger-ge.org, 1
 grossell.ru, 1
 grossmisconduct.news, 1
 groszek.pl, 1
 groth.im, 1
 groth.xyz, 1
 grothoff.org, 1
@@ -18452,16 +18430,17 @@ hayden.one, 0
 haydenjames.io, 1
 haydentomas.com, 1
 hayfordoleary.com, 1
 haynes-davis.com, 1
 hayvid.com, 0
 haz.cat, 1
 haze-productions.com, 1
 haze.productions, 1
+hazeltime.se, 1
 hazeover.com, 1
 hazloconlapix.com, 1
 hazukilab.com, 1
 hb8522.com, 1
 hbbet.com, 1
 hbcu-colleges.com, 1
 hbdesign.work, 1
 hbkonsult.com, 1
@@ -18787,17 +18766,19 @@ hexagon-e.com, 1
 hexapt.com, 1
 hexclock.io, 1
 hexcode.in, 1
 hexed.it, 1
 hexiaohu.cn, 1
 hexicurity.com, 1
 hexid.me, 1
 hexieshe.com, 1
+hexo.io, 0
 hexobind.com, 1
+hexony.com, 1
 hexr.org, 1
 hexstream.net, 1
 hexstream.xyz, 1
 hexstreamsoft.com, 1
 hexxagon.com, 1
 heycms.com, 0
 heyfringe.com, 1
 heyjournal.com, 1
@@ -18843,16 +18824,17 @@ hidedd.com, 1
 hideouswebsite.com, 1
 hideout.agency, 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
 highlegshop.com, 1
 highlevelwoodlands.com, 1
 highlightsfootball.com, 1
 highlnk.com, 1
 highspeed-arnsberg.de, 1
 highspeedinternet.my, 1
 highspeedinternetservices.ca, 1
@@ -18958,17 +18940,16 @@ hivatalinfo.hu, 1
 hiverlune.net, 0
 hiwiki.tk, 1
 hiyacar.co.uk, 1
 hiyobi.me, 1
 hiyuki2578.net, 1
 hizzacked.xxx, 1
 hj-mosaiques.be, 1
 hj.rs, 1
-hj2999.com, 1
 hj3455.com, 1
 hjartasmarta.se, 1
 hjes.com.ve, 1
 hjkbm.cn, 1
 hjort.land, 1
 hjortland.org, 1
 hjphoto.co.uk, 1
 hjtky.cn, 1
@@ -19071,17 +19052,16 @@ hollyforrest.ca, 1
 hollyforrestphotography.ca, 1
 holmesian.org, 1
 holmq.dk, 1
 holo.ovh, 1
 holodeck.us, 1
 holofono.com, 1
 holowaty.me, 1
 holoxplor.space, 1
-holstphoto.com, 1
 holvonix.com, 1
 holycrossphl.org, 1
 holydragoon.jp, 1
 holygrail.games, 1
 holyhiphopdatabase.com, 1
 holymartyrschurch.org, 1
 holytransaction.com, 1
 holywhite.com, 1
@@ -19322,17 +19302,16 @@ howmanymilesfrom.com, 1
 howsecureismypassword.net, 1
 howsmyssl.com, 1
 howsmytls.com, 1
 howsyourhealth.org, 1
 howtocommunicate.com.au, 1
 howtogeek.com, 1
 howtogeekpro.com, 1
 howtogosolar.org, 1
-howtoinstall.co, 1
 howtolaser.com, 1
 howtoteachviolin.com, 1
 howtotech.de, 1
 hozana.si, 0
 hozinga.de, 1
 hp-work.net, 1
 hp42.de, 1
 hpac-portal.com, 1
@@ -19758,17 +19737,16 @@ ibpsrecruitment.co.in, 1
 ibrainmedicine.org, 1
 ibrom.eu, 1
 ibron.co, 0
 ibsafrica.co.za, 1
 ibsglobal.co.za, 1
 ibstyle.tk, 1
 ibuki.run, 1
 ibwc.gov, 1
-ibykos.com, 1
 ic-lighting.com.au, 1
 ic-spares.com, 1
 ic3.gov, 1
 icafecash.com, 1
 icake.life, 1
 icanhasht.ml, 1
 icarlos.net, 1
 icasture.top, 1
@@ -19778,16 +19756,17 @@ ice.xyz, 1
 icebat.dyndns.org, 1
 iceberg.academy, 1
 icebook.co.uk, 1
 icebound.win, 1
 icecars.net, 1
 icedream.tech, 1
 iceloch.com, 1
 icetiger.eu, 1
+icewoman.net, 1
 ich-hab-die-schnauze-voll-von-der-suche-nach-ner-kurzen-domain.de, 1
 ich-tanke.de, 1
 ichasco.com, 1
 ichbinein.org, 1
 ichbinkeinreh.de, 1
 ichmachdas.net, 1
 ickerseashop.com, 1
 iclart.com, 1
@@ -19949,17 +19928,16 @@ iftarsaati.org, 1
 iftrue.de, 1
 ifttl.com, 0
 ifxd.bid, 1
 ifxnet.com, 1
 ifyou.live, 1
 ig.com, 1
 iga-semi.jp, 1
 igamingforums.com, 1
-igaryhe.io, 1
 igcc.jp, 1
 igeh-immo.at, 1
 igglabs.com, 1
 iggprivate.com, 1
 iggsoft.com, 1
 iggsoftware.com, 1
 igiftcards.de, 1
 igimusic.com, 1
@@ -20362,16 +20340,17 @@ inflatamania.com, 1
 inflationstation.net, 1
 inflexsys.com, 1
 influencerchampions.com, 1
 influo.com, 1
 influxus.com, 0
 infmed.com, 1
 info-bay.com, 1
 info-beamer.com, 1
+info-d-74.com, 1
 info-screen-usercontent.me, 1
 info-screen.me, 1
 info-screw.com, 1
 infobae.com, 1
 infocity-tech.fr, 1
 infocommsociety.com, 1
 infocon.org, 1
 infocusvr.net, 1
@@ -20479,17 +20458,16 @@ ink.horse, 1
 inkable.com.au, 1
 inkbunny.net, 0
 inkeliz.com, 1
 inkhor.se, 1
 inkontriamoci.com, 1
 inksay.com, 1
 inkspire.co.uk, 1
 inkthemes.com, 1
-inkurz.de, 1
 inlabo.de, 1
 inline-sport.cz, 1
 inlink.ee, 1
 inmaps.xyz, 1
 inmatefinancial.com, 1
 inmateintake.com, 1
 inmobillium.fr, 1
 inmoodforsex.com, 1
@@ -20531,16 +20509,17 @@ insblauehinein.nl, 1
 inschrijfformulier.com, 1
 inscomers.net, 1
 inscripcionessena.com, 1
 insecure.org.je, 1
 insertcoins.net, 1
 insgesamt.net, 1
 inside19.com, 1
 insideaudit.com, 1
+insidebedroom.com, 1
 insideofgaming.de, 1
 insidethefirewall.tk, 1
 insightera.co.th, 1
 insighti.com, 1
 insighti.eu, 1
 insighti.org, 1
 insighti.sk, 1
 insignificant.space, 1
@@ -20702,17 +20681,16 @@ inton.biz, 1
 intoparking.com, 0
 intpforum.com, 1
 intracom.com, 1
 intradayseasonals.com, 1
 intranetsec-regionra.fr, 1
 intraobes.com, 1
 intrasoft.com.au, 1
 intraxia.com, 1
-intreaba.xyz, 1
 introverted.ninja, 1
 intune.life, 1
 intux.be, 0
 intvonline.com, 1
 intxt.net, 1
 inumcoeli.com.br, 1
 inup.jp, 1
 inusasha.de, 1
@@ -21047,16 +21025,17 @@ isvsecwatch.org, 1
 isyu.xyz, 1
 isz.no, 1
 iszy.me, 1
 it-academy.sk, 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
@@ -21090,17 +21069,16 @@ itdashboard.gov, 1
 itds-consulting.com, 1
 itds-consulting.cz, 1
 itds-consulting.eu, 1
 itecor.net, 1
 iteecafe.hu, 1
 iteha.de, 1
 iteke.ml, 1
 iteke.tk, 1
-iteli.eu, 1
 iterader.com, 1
 iterasoft.de, 1
 iterror.co, 1
 itesign.de, 1
 itfh.eu, 1
 itfix.cz, 1
 itforge.nl, 1
 itgirls.rs, 1
@@ -21340,16 +21318,17 @@ jakincode.army, 1
 jakob-server.tk, 1
 jakobejitblokaci.cz, 1
 jakobkrigovsky.com, 1
 jakobssystems.net, 1
 jakpremyslet.cz, 1
 jaksch.biz, 1
 jaksel.id, 1
 jakub-boucek.cz, 1
+jakubarbet.eu, 1
 jakubboucek.cz, 1
 jakubklimek.com, 1
 jakubtopic.cz, 1
 jakubvrba.cz, 1
 jala.co.jp, 1
 jaleo.cn, 1
 jalogisch.de, 1
 jamaat.hk, 1
@@ -21437,17 +21416,16 @@ janokacer.sk, 1
 janschaumann.de, 1
 janssen.fm, 1
 janssenwigman.nl, 1
 janterpstra.eu, 1
 jantinaboelens.nl, 1
 janvari.com, 1
 janvaribalint.com, 1
 jaot.info, 1
-japan4you.org, 1
 japanbaths.com, 1
 japanesemotorsports.net, 1
 japangids.nl, 1
 japaniac.de, 0
 japansm.com, 1
 japanwatches.xyz, 1
 japanwide.net, 1
 jape.today, 1
@@ -21479,17 +21457,16 @@ jasonian-photo.com, 0
 jasonmili.online, 1
 jasonrobinson.me, 1
 jasonsansone.com, 1
 jasonwindholz.com, 1
 jasper.link, 1
 jasperhammink.com, 1
 jasperhuttenmedia.com, 1
 jasperpatterson.me, 1
-jastrow.me, 1
 jaszbereny-vechta.eu, 1
 jateng.press, 1
 javalestari.com, 1
 javamilk.com, 1
 javascriptlab.fr, 1
 javfree.me, 1
 javierburgos.net, 1
 javierlorente.es, 1
@@ -21574,30 +21551,30 @@ jedayoshi.tk, 1
 jedepannetonordi.fr, 1
 jedidiah.eu, 0
 jedipedia.net, 1
 jediweb.com.au, 1
 jedmud.com, 1
 jedwarddurrett.com, 1
 jeec.ist, 1
 jeepeg.com, 1
-jeepmafia.com, 1
 jeff.forsale, 1
 jeffanderson.me, 1
 jeffcasavant.com, 0
 jeffcloninger.net, 1
 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
 jekkt.com, 0
 jelena-adeli.com, 1
@@ -22145,16 +22122,17 @@ juanmaguitar.com, 1
 juanxt.ddns.net, 1
 jubileum.online, 1
 jucca-nautica.si, 1
 juch.cc, 1
 juchheim-methode.de, 1
 juchit.at, 1
 jucktehkeinen.de, 1
 judc-ge.ch, 1
+judge2020.com, 1
 judge2020.me, 1
 judoprodeti.cz, 1
 judosaintdenis.fr, 1
 judytka.cz, 1
 juef.space, 1
 juegosycodigos.es, 1
 juegosycodigos.mx, 1
 juelda.com, 1
@@ -22414,17 +22392,16 @@ kaloix.de, 1
 kalolina.com, 1
 kalombo.ru, 1
 kalsbouncies.com, 1
 kaltenbrunner.it, 1
 kalterersee.ch, 1
 kalwestelectric.com, 1
 kam-serwis.pl, 1
 kamalame.co, 1
-kamatajisyaku.tokyo.jp, 1
 kamikaichimaru.com, 0
 kamikatse.net, 1
 kaminbau-laub.de, 1
 kamitech.ch, 1
 kamixa.se, 1
 kamppailusali.fi, 1
 kamranmirhazar.com, 1
 kamui.co.uk, 1
@@ -23039,17 +23016,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
+kix.moe, 0
 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
@@ -23072,17 +23049,17 @@ kkzxak47.com, 1
 kl-diaetist.dk, 1
 klaim.us, 1
 klamathrestoration.gov, 1
 klanggut.at, 1
 klares-licht.de, 1
 klarika.com, 1
 klarmobil-empfehlen.de, 1
 klasfauseweh.de, 1
-klausbrinch.dk, 1
+klausbrinch.dk, 0
 klausen.dk, 1
 klaver.it, 1
 klaw.xyz, 1
 klaxon.me, 1
 klcreations.co.uk, 1
 kle.cz, 1
 kleaning.by, 1
 klebeband.eu, 1
@@ -23303,16 +23280,17 @@ konosuke.jp, 1
 konplott.shop, 1
 konpyuta.nl, 1
 konsertoversikt.no, 1
 konst.se, 1
 kontaxis.org, 1
 kontorhaus-schlachte.de, 1
 konventa.net, 1
 konventseliten.se, 1
+konyalian.com, 1
 konzertheld.de, 1
 koodaklife.com, 1
 koodimasin.ee, 1
 koodimasin.eu, 1
 kooer.org, 1
 kooli.ee, 1
 koolikatsed.ee, 1
 koolitee.ee, 1
@@ -23570,16 +23548,17 @@ kuma.es, 1
 kumachan.biz, 1
 kumalog.com, 1
 kumasanda.jp, 1
 kumilasvegas.com, 1
 kundo.se, 1
 kungerkueken.de, 1
 kunra.de, 1
 kunstdrucke-textildruck.de, 1
+kunstfehler.at, 1
 kunstschule-krabax.de, 1
 kunstundunrat.de, 1
 kuoruan.com, 1
 kupferstichshop.com, 1
 kupid.com, 1
 kupimlot.ru, 1
 kupinska.pl, 1
 kuponrazzi.com, 1
@@ -23724,17 +23703,16 @@ lachlan.com, 1
 lachosetypo.com, 1
 lacicloud.net, 1
 lacigf.org, 1
 laclaque.ch, 1
 lacledelareussite.com, 1
 lacledeslan.com, 0
 lacledor.ch, 1
 laclefdor.ch, 1
-lacliniquefinanciere.com, 1
 lacoast.gov, 1
 lacocinadelila.com, 1
 lacoquette.gr, 1
 lacyc3.eu, 1
 ladadate.com, 1
 ladbroke.net, 1
 ladenzeile.at, 1
 ladenzeile.de, 1
@@ -24054,16 +24032,17 @@ lavitaura.com, 1
 lavitrine-une-collection.be, 1
 lavoieducoeur.be, 1
 lavoiepharmd.com, 1
 lavolte.net, 1
 lavval.com, 0
 law-colleges.com, 1
 law-peters.de, 1
 law.co.il, 1
+lawformt.com, 1
 lawn-seeds.com, 1
 lawnuk.com, 1
 lawrence-institute.com, 1
 lawrenceberg.nl, 1
 lawrencemurgatroyd.com, 1
 lawrencewhiteside.com, 1
 lawyerkf.com, 1
 laylo.io, 0
@@ -24307,17 +24286,16 @@ lenr-forum.com, 1
 lensdoctor.com, 1
 lenspirations.com, 1
 lensual.space, 1
 lenuagebauche.org, 1
 lenyip.com, 1
 lenyip.me, 1
 lenyip.works, 1
 leoandpeto.com, 1
-leochedibracchio.com, 1
 leodaniels.com, 1
 leodraxler.at, 1
 leola.cz, 1
 leola.sk, 1
 leolana.com, 1
 leominstercu.com, 0
 leon-tech.com, 1
 leon.net, 1
@@ -24892,16 +24870,17 @@ livingforreal.com, 1
 livinginhimalone.com, 1
 livinglocalnashville.com, 1
 livingworduk.org, 1
 livnev.me, 1
 livnev.xyz, 1
 livolett.de, 1
 livres-et-stickers.com, 1
 lixtick.com, 1
+liyang.pro, 0
 liyin.date, 1
 liyinjia.com, 1
 liyunbin.com, 1
 liz.ee, 1
 lizardsystems.com, 1
 lizhi.io, 1
 lizhi123.net, 1
 lizmooredestinationweddings.com, 1
@@ -25081,16 +25060,17 @@ logue.be, 1
 logze.nl, 1
 lohmeier.it, 1
 loichot.ch, 1
 loigiai.net, 1
 loihay.net, 1
 lojadosomautomotivo.com.br, 1
 lojahunamarcenaria.com.br, 1
 lojamagicalx.com, 1
+lojavirtualfct.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
@@ -25416,16 +25396,17 @@ lunar6.ch, 1
 lunarlog.com, 1
 lunarshark.com, 1
 lunartail.nl, 1
 lunasqu.ee, 1
 lunastrail.com, 1
 lunchbunch.me, 1
 lune-indigo.ch, 1
 lungdoc.us, 0
+lungta.pro, 1
 lunidea.ch, 1
 lunidea.com, 1
 lunight.ml, 1
 lunis.net, 1
 lunix.io, 1
 lunorian.is, 1
 luoe.me, 1
 luoh.cc, 1
@@ -25641,16 +25622,17 @@ mafiaforum.de, 1
 mafiapenguin.club, 1
 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
 magdic.eu, 1
 magebit.com, 1
 magenbrot.net, 0
 magenda.sk, 1
 magentaize.net, 1
 magentapinkinteriors.co.uk, 1
 magentoeesti.eu, 1
@@ -25715,17 +25697,16 @@ mail4you.in, 1
 mailbox.mg, 1
 mailbox.org, 1
 mailer-dot.de, 1
 mailfence.com, 1
 mailflank.com, 1
 mailinabox.email, 1
 mailjet.tech, 1
 maillady-susume.com, 1
-maillink.store, 1
 mailmag.net, 0
 mailon.ga, 1
 mailpenny.com, 1
 mailto.space, 1
 mailum.org, 0
 main-unit.com, 1
 mainechiro.com, 1
 mainframeserver.space, 1
@@ -25842,17 +25823,16 @@ mamanecesitaungintonic.com, 1
 mamastore.eu, 1
 mambas.cn, 1
 mamiecouscous.com, 1
 mammals.net, 1
 mammaw.com, 1
 mammeitalianeavienna.com, 1
 mammooc.org, 1
 mamochka.org.ua, 1
-mamospienas.lt, 1
 mamot.fr, 0
 mamout.xyz, 1
 mamuko.nl, 1
 man3s.jp, 0
 mana.ee, 1
 manach.net, 1
 manage.cm, 1
 manage4all.de, 1
@@ -26066,16 +26046,17 @@ mariushubatschek.de, 1
 mariviolin.com, 1
 marix.ro, 1
 marjeta-gurtner.ch, 1
 marjoleindens.be, 1
 marjoriecarvalho.com.br, 1
 mark-armstrong-gaming.com, 1
 mark-dietzer.de, 1
 mark-semmler.de, 1
+mark1998.com, 1
 markaconnor.com, 1
 markandrosalind.co.uk, 1
 markantoffice.com, 1
 markbiesheuvel.nl, 1
 markdain.net, 1
 markdescande.com, 1
 markel.com.es, 1
 markepps.com, 1
@@ -26581,17 +26562,16 @@ md5file.com, 1
 md5hashing.net, 1
 mdazo.net, 1
 mdbouncycastlehirelondon.co.uk, 1
 mdek.at, 1
 mdewendt.de, 1
 mdf-bis.com, 1
 mdg-online.de, 1
 mdiv.pl, 1
-mdkr.nl, 1
 mdlayher.com, 1
 mdma.net, 1
 mdmed.clinic, 1
 mdoering.de, 1
 mdosch.de, 1
 mdpraha.cz, 1
 mdrthmcs.io, 1
 mds-paris.com, 1
@@ -26600,16 +26580,17 @@ mdwftw.com, 1
 mdx.no, 1
 mdxdave.de, 1
 mdxn.org, 1
 mdzservers.com, 1
 me-center.com, 1
 me-groups.com, 1
 me.net.nz, 1
 meadowfen.farm, 1
+meadowfenfarm.com, 1
 meadowviewfarms.org, 1
 mealgoo.com, 1
 meamod.com, 0
 meany.xyz, 1
 meap.xyz, 1
 measureyourpenis.today, 1
 meat.org.uk, 1
 meathealth.com, 1
@@ -26668,16 +26649,17 @@ mediarocks.de, 1
 mediaselection.eu, 1
 mediationculturelleclp.ch, 1
 mediatorzy.waw.pl, 1
 mediaukkies.nl, 1
 mediavault.tech, 1
 mediawijsheid.nl, 1
 mediawijzer.net, 1
 mediawiki.org, 1
+mediawin.pl, 1
 medic-world.com, 1
 medical-assistant-colleges.com, 1
 medicalabroad.org, 1
 medicalcountermeasures.gov, 1
 medicare-providers.net, 1
 medicarecoveragefinder.com, 1
 medicareinfo.org, 1
 medicinesfast.com, 0
@@ -26955,17 +26937,16 @@ mes10doigts.ovh, 1
 mesappros.com, 1
 mescaline.com, 1
 mescaline.org, 1
 mesh.gov, 1
 meshok.info, 1
 meshok.ru, 0
 mesicka.com, 1
 meskdeals.com, 1
-messagescelestes-archives.ca, 1
 messagevortex.com, 1
 messagevortex.net, 1
 messdorferfeld.de, 1
 messenger.co.tz, 1
 messenger.com, 0
 messengerwebbrands.com, 1
 messer24.ch, 1
 messymom.com, 1
@@ -27260,17 +27241,16 @@ mileme.com, 1
 milenaria.es, 1
 milesapart.dating, 1
 milftube.tv, 1
 milionshop.sk, 1
 militaryconsumer.gov, 1
 milkandcookies.ca, 1
 milkingit.co.uk, 1
 milkingit.net, 1
-milktea.info, 1
 milldyke.com, 1
 milldyke.nl, 1
 millefleurs.eu, 1
 millennium-thisiswhoweare.net, 1
 millenniumweb.com, 0
 millersminibarns.com, 1
 millettable.com, 1
 millhousenchurch.com, 1
@@ -27539,16 +27519,17 @@ miukimodafeminina.com, 1
 mivestuariolaboral.com, 1
 mivzak.im, 1
 mivzakim.biz, 1
 mivzakim.info, 1
 mivzakim.mobi, 1
 mivzakim.net, 1
 mivzakim.org, 1
 mivzakim.tv, 1
+mivzaklive.co.il, 1
 miweb.cr, 0
 mixinglight.com, 1
 mixnshake.com, 1
 mixposure.com, 1
 mixtafrica.com, 1
 mixtape.moe, 1
 mixx.com.hk, 1
 miya.io, 1
@@ -27833,17 +27814,16 @@ moneycredit.eu, 1
 moneyfactory.gov, 1
 moneygo.se, 1
 moneyhouse.de, 1
 moneypark.ch, 1
 moneytoday.se, 1
 mongla168.net, 1
 mongla88.net, 1
 mongolieenfrance.fr, 1
-monicabeckstrom.no, 1
 monique.io, 1
 moniquedekermadec.com, 1
 moniquemunhoz.com.br, 1
 monitman.com, 1
 monitman.solutions, 1
 monitorchain.com, 1
 monitori.ng, 1
 monitoring.kalisz.pl, 1
@@ -28084,17 +28064,16 @@ mozektevidi.net, 1
 mozgb.ru, 1
 mozilla.cz, 1
 mozzez.de, 1
 mozzilla.cz, 1
 mp3gratuiti.com, 1
 mpa-pro.fr, 1
 mpc-hc.org, 1
 mpcompliance.com, 1
-mpe.org, 1
 mpetroff.net, 1
 mpg-universal.com, 1
 mpg.ovh, 1
 mpgaming.pro, 1
 mphoto.at, 1
 mpintaamalabanna.it, 1
 mpkrachtig.nl, 1
 mplanetphl.fr, 1
@@ -28201,16 +28180,18 @@ msz-fotografie.de, 1
 mszavodumiru.cz, 1
 mt.search.yahoo.com, 0
 mt2414.com, 1
 mta.org.ua, 1
 mtane0412.com, 1
 mtasa.com, 1
 mtasa.hu, 1
 mtb.wtf, 1
+mtcgf.com, 1
+mtcq.jp, 1
 mtd.org, 1
 mtd.ovh, 1
 mtfgnettoyage.fr, 1
 mtg-tutor.de, 1
 mtgeni.us, 1
 mtgenius.com, 1
 mtgsuomi.fi, 1
 mthode.org, 1
@@ -28628,17 +28609,16 @@ myowndisk.com, 1
 myowndisk.net, 1
 myownwebinar.com, 1
 mypaperdone.com, 1
 mypaperwriter.com, 1
 mypartybynoelia.es, 1
 mypayoffloan.com, 1
 mypcqq.cc, 1
 myperfecthome.ca, 1
-myperfumecollection.com, 1
 myperks.in, 1
 myphotoshopbrushes.com, 1
 mypillcard.com, 1
 mypizza-bremen.de, 1
 myplaceonline.com, 1
 mypnu.net, 1
 mypress.mx, 1
 myprintcard.de, 1
@@ -28980,17 +28960,16 @@ natatorium.org, 1
 natchmatch.com, 1
 nate.sh, 1
 natecraun.net, 1
 natgeofreshwater.com, 1
 nathaliebaron.ch, 1
 nathaliebaroncoaching.ch, 1
 nathaliedijkxhoorn.com, 1
 nathaliedijkxhoorn.nl, 1
-nathan.io, 1
 nathanaeldawe.com, 1
 nathankonopinski.com, 1
 nathanmfarrugia.com, 1
 nathansmetana.com, 1
 nathumarket.com.br, 1
 nationalbank.gov, 1
 nationalbanknet.gov, 1
 nationalcentereg.org, 1
@@ -29022,31 +29001,29 @@ naturaum.de, 1
 nature-et-bio.fr, 1
 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
 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
 navenlle.com, 1
 navienna.com, 1
 navient.com, 1
 naviteq.eu, 1
-navitime.me, 1
 navstevnik.sk, 1
 navycs.com, 1
 nawir.de, 1
 nawroth.info, 1
 nayahe.ru, 1
 nayami64.xyz, 1
 nayanaas.com, 1
 nazevfirmy.cz, 1
@@ -29198,17 +29175,16 @@ nedraconsult.ru, 1
 nedys.top, 1
 neecist.org, 1
 needemand.com, 1
 needle.net.nz, 1
 needle.nz, 1
 needstyle.ru, 1
 neeerd.org, 1
 neel.ch, 1
-neels.ch, 1
 neemzy.org, 1
 neer.io, 1
 neet-investor.biz, 1
 nefertitis.cz, 1
 neffat.si, 1
 neflabs.com, 1
 nefro-cme.de, 1
 neftis.es, 1
@@ -29253,17 +29229,17 @@ nellacms.org, 1
 nellafw.org, 1
 nellen.it, 1
 nemcd.com, 1
 nemecl.eu, 1
 nemez.net, 1
 nemo.run, 1
 nemopan.com, 1
 nemopret.dk, 1
-nemplex.win, 1
+nemplex.win, 0
 nems.no, 1
 nemumu.com, 1
 nemunai.re, 1
 nenkin-kikin.jp, 1
 neo2shyalien.eu, 0
 neobits.nl, 1
 neocities.org, 1
 neoclick.io, 1
@@ -29347,17 +29323,16 @@ netducks.com, 1
 netducks.space, 1
 netera.se, 1
 neteraser.de, 1
 netexem.com, 1
 netfabb.com, 1
 netflixlife.com, 1
 netfog.de, 1
 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
 netlocal.ru, 1
@@ -29430,16 +29405,17 @@ neurogroove.info, 1
 neurolab.no, 1
 neuronasdigitales.com, 1
 neuropharmacology.com, 1
 neurostimtms.com, 1
 neurotransmitter.net, 1
 neurozentrum-zentralschweiz.ch, 1
 neutralox.com, 0
 neuwal.com, 1
+neva.li, 1
 nevadafiber.net, 1
 never.pet, 1
 nevergreen.io, 1
 nevermore.fi, 1
 neverwetturkey.com, 1
 nevntech.com, 1
 nevolution.me, 1
 nevoxo.com, 1
@@ -29522,16 +29498,17 @@ nextads.ch, 1
 nextbranders.com, 1
 nextcairn.com, 1
 nextcasino.com, 1
 nextcloud.co.za, 1
 nextcloud.com, 1
 nextcloud.li, 1
 nextcloud.nerdpol.ovh, 1
 nextclouddarwinkel.nl, 1
+nextend.org, 1
 nextevolution.co.uk, 1
 nextgen.sk, 1
 nextgencel.com, 1
 nextgenthemes.com, 1
 nextgreatmess.com, 1
 nexthop.co.jp, 1
 nexthop.jp, 1
 nextiot.de, 1
@@ -30564,16 +30541,17 @@ olmsted.io, 1
 olygazoo.com, 1
 olymp-arts.world, 1
 olympeakgaming.tv, 1
 olympiads.ca, 1
 olympic-research.com, 1
 om1.com, 1
 omanko.porn, 1
 omar.yt, 1
+omarh.net, 1
 omdesign.cz, 1
 omegahosting.net, 1
 omegathermoproducts.nl, 1
 omeopatiadinamica.it, 1
 omertabeyond.com, 1
 omertabeyond.net, 1
 ometepeislandinfo.com, 1
 omf.link, 1
@@ -30970,42 +30948,41 @@ orkiv.com, 1
 orlandoprojects.com, 1
 orleika.io, 1
 orlives.de, 0
 ormer.nl, 1
 orocojuco.com, 1
 orovillelaw.com, 1
 orro.ro, 1
 orrs.de, 1
-ortho-graz.at, 1
 orthodontiste-geneve-docteur-rioux.com, 1
 orthograph.ch, 1
 orthotictransfers.com, 1
 ortlepp.eu, 1
 orui.com.br, 1
 orum.in, 1
 orwell1984.today, 1
 oryva.com, 1
+orz.uno, 1
 os-chrome.ru, 1
 os-s.net, 1
 os-t.de, 1
 os24.cz, 1
 osacrypt.studio, 1
 osaka-onakura.com, 1
 osakeannit.fi, 1
 osao.org, 1
 osbi.pl, 1
 osborn.io, 1
 osborneinn.com, 1
 osburn.com, 1
 oscamp.eu, 1
 oscarvk.ch, 1
 oscillation-services.fr, 1
 oscloud.com, 1
-oscsdp.cz, 0
 osdls.gov, 1
 osepideasthatwork.org, 1
 osereso.tn, 1
 oses.mobi, 1
 oshanko.de, 0
 oshayr.com, 1
 oshell.me, 1
 oshershalom.com, 1
@@ -31305,17 +31282,16 @@ palariviera.com, 1
 palary.work, 1
 palatin.at, 1
 palationtrade.com, 1
 palava.tv, 1
 palavatv.com, 1
 palawan.jp, 0
 palazzo.link, 1
 palazzo.work, 1
-paleolowcarb.de, 1
 paleosquawk.com, 1
 paleotraining.com, 1
 palestra.roma.it, 1
 palladium46.com, 1
 pallas.in, 1
 palletflow.com, 1
 palli.ch, 1
 palmavile.us, 1
@@ -31544,16 +31520,17 @@ passport.yandex.ua, 1
 passports.govt.nz, 1
 passrhce.com, 1
 passrhcsa.com, 1
 passthepopcorn.me, 1
 passumpsicbank.com, 1
 passvanille-reservation.fr, 1
 passvau.lt, 1
 passwd.one, 1
+passwd.org, 1
 password-checker.de, 1
 password.codes, 1
 password.consulting, 1
 password.work, 1
 passwordhashing.com, 1
 passwordkeeperbooks.com, 1
 passwords.google.com, 1
 passwordscon.com, 1
@@ -31783,16 +31760,17 @@ pebbleparents.com, 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
@@ -31829,17 +31807,16 @@ peg.nu, 1
 pegas-studio.net, 1
 pehapkari.cz, 1
 peifi.de, 0
 peippo.at, 1
 peirong.me, 1
 peka.pw, 1
 pekkapleppanen.fi, 1
 pekoe.se, 1
-pelanucto.cz, 1
 pelican.ie, 1
 pelletizermill.com, 1
 pelletsprice.com, 1
 pelopogrund.com, 1
 pelopoplot.com, 1
 pelotonimports.com, 1
 pemagrid.org, 1
 pems.gov.au, 1
@@ -31939,16 +31916,17 @@ 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
 pestici.de, 1
 pestkill.info, 1
 pesto.video, 1
 pesyun.cn, 1
@@ -32048,17 +32026,17 @@ 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
 pharmaboard.de, 1
 pharmaboard.org, 1
-pharmacie-fr.org, 0
+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
@@ -32496,17 +32474,16 @@ plantezcheznous.com, 1
 plantrustler.com, 1
 planujemywesele.pl, 1
 planup.fr, 1
 planview.com, 1
 plaque-funeraire.fr, 1
 plassmann.ws, 1
 plasticsurgeryartist.com, 1
 plasticsurgerynola.com, 1
-plasticsurgeryservices.com, 1
 plastiflex.it, 1
 plastovelehatko.cz, 1
 platformadmin.com, 1
 platinumexpress.com.ar, 1
 platomania.nl, 1
 platschi.net, 1
 platten-nach-mass.de, 1
 platterlauncher.com, 1
@@ -32599,16 +32576,17 @@ plus-5.com, 1
 plus.google.com, 1
 plus.sandbox.google.com, 1
 plus1s.site, 1
 plus1s.tk, 1
 pluscbdoil.com, 1
 pluslink.co.jp, 1
 plussizereviews.com, 1
 plusstreamfeed.appspot.com, 1
+plustech.id, 1
 pluta.net, 1
 plutiedev.com, 1
 pluto.life, 1
 plutokorea.com, 1
 plutopia.ch, 1
 plymouthbouncycastles.co.uk, 1
 plzdontpwn.me, 1
 plzenskybarcamp.cz, 1
@@ -33419,17 +33397,16 @@ promozione.info, 1
 pronto-intervento.net, 1
 prontointerventoimmediato.it, 1
 prontossl.com, 1
 proobec.cz, 1
 proofwiki.org, 1
 proos.nl, 1
 proovn.com, 1
 propagandablog.de, 1
-propagandism.org, 1
 propagationtools.com, 1
 propepper.net, 1
 properchels.com, 1
 propermatches.com, 1
 propershave.com, 1
 properticons.com, 1
 property-catalogue.eu, 1
 propertygroup.pl, 1
@@ -34232,16 +34209,17 @@ rattenkot.io, 1
 raucris.ro, 1
 raulrivero.es, 1
 rault.io, 1
 raum4224.de, 1
 raumzeitlabor.de, 0
 rauros.net, 1
 rautelow.de, 1
 rautermods.net, 1
+ravchat.com, 1
 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
@@ -34439,17 +34417,16 @@ rectecforum.com, 1
 rectoraudiparts.com, 1
 recuerdafilms.com, 1
 recuperodatiraidfastec.it, 1
 recurly.com, 1
 red-t-shirt.ru, 1
 red-trigger.net, 1
 red2fred2.com, 1
 redable.hosting, 1
-redable.nl, 1
 redactieco.nl, 1
 redb.cz, 1
 redballoonsecurity.com, 1
 redburn.com, 1
 redcatrampageforum.com, 1
 redchat.cz, 1
 redcoded.com, 1
 redcone.net, 1
@@ -34718,17 +34695,17 @@ renezuo.com, 1
 renkenlaw.com, 1
 renlen.nl, 1
 rennfire.org, 1
 renov8sa.co.za, 1
 renovum.es, 1
 renrenche.com, 0
 rens.nu, 1
 renscreations.com, 1
-rent-a-c.io, 1
+rent-a-c.io, 0
 rent-a-coder.de, 1
 rentacaramerica.com, 1
 rentasweb.gob.ar, 1
 rentbrowser.com, 1
 renthelper.us, 1
 rentinsingapore.com.sg, 1
 rentourhomeinprovence.com, 1
 renuo.ch, 1
@@ -35212,17 +35189,16 @@ rodarion.pl, 1
 roddis.net, 1
 rodehutskors.net, 1
 rodeobull.biz, 1
 rodeohire.com, 1
 rodeosales.co.uk, 1
 rodevlaggen.nl, 1
 rodichi.net, 1
 rodinnebyvanie.eu, 1
-rodneybrooksjr.com, 0
 rodolfo.gs, 1
 rodomonte.org, 1
 rodrigocarvalho.blog.br, 1
 rody-design.com, 1
 roeckx.be, 1
 roeitijd.nl, 0
 roeleveld.nl, 1
 roelhollander.eu, 1
@@ -35782,16 +35758,17 @@ saastopankki.fi, 1
 saba-piserver.info, 1
 sabahattin-gucukoglu.com, 1
 sabe.cz, 1
 sabine-forschbach.de, 1
 sabineforschbach.de, 1
 sabtunes.com, 1
 sacaentradas.com, 1
 saccani.net, 1
+sacharidovejednotky.eu, 1
 sachk.com, 1
 sackers.com, 1
 sackmesser.ch, 1
 saclier.at, 1
 saco-ceso.com, 1
 sacprincesse.com, 1
 sacred-knights.net, 1
 sacrome.com, 1
@@ -35799,17 +35776,16 @@ sadbox.es, 1
 sadbox.org, 1
 sadbox.xyz, 1
 sadeghian.us, 1
 sadev.co.za, 1
 sadhawkict.org, 1
 sadiejanehair.com, 1
 sadmansh.com, 1
 sadou.kyoto.jp, 1
-sadsu.com, 1
 saenforcement.agency, 1
 saengsook.com, 1
 saengsuk.com, 1
 safar.sk, 1
 safaritenten.nl, 1
 safcstore.com, 1
 safe.moe, 1
 safe.space, 1
@@ -36150,16 +36126,17 @@ satai.dk, 1
 satal.in, 1
 satellites.hopto.me, 1
 saterdalen.net, 1
 satimagingcorp.com, 1
 satinn.pl, 1
 sativatunja.com, 1
 satmd.de, 1
 satoshinumbers.com, 1
+satragreen.com, 1
 sattamatkachart.in, 1
 sattamatkamobi.mobi, 1
 saturn.pl, 1
 saturngames.co.uk, 1
 satyanarayana.xyz, 1
 saudeealimentos.com, 1
 saudeintimadamulher.com.br, 1
 saudenoclique.com.br, 1
@@ -36411,17 +36388,16 @@ schwarz-gelbe-fuechse.de, 1
 schwarzegar.de, 1
 schwarzer.it, 1
 schwarzes-muenchen.de, 1
 schwarzhenri.ch, 1
 schwarztrade.cz, 1
 schwarzwald-flirt.de, 1
 schwarzwaldcon.de, 1
 schwedenhaus.ag, 1
-schwerkraftlabor.de, 1
 schwinabart.com, 1
 schwinger.me, 1
 schwinnbike.ru, 1
 schwuppengrillen.de, 1
 sci-internet.tk, 1
 scib.tk, 1
 scicomm.xyz, 1
 science-network.ch, 1
@@ -36839,16 +36815,17 @@ senego.com, 1
 senekalstorageman.co.za, 1
 sengokulife.com, 1
 seniorem.eu, 1
 seniors.singles, 1
 senmendai-reform.com, 1
 sennase.net, 1
 senobio.com, 1
 senorcontento.com, 1
+sens2lavie.com, 1
 sensebridge.com, 1
 sensebridge.net, 1
 sensepixel.com, 1
 senshudo.tv, 1
 sensoft-int.com, 1
 sensoft-int.net, 1
 sensualism.com, 1
 sentandsecure.com, 1
@@ -37027,16 +37004,17 @@ sexocomgravidas.com, 1
 sexoyrelax.com, 1
 sexpay.net, 1
 sexservice.io, 1
 sexshopfacil.com.br, 1
 sexshopsgay.com, 1
 sexwork.net, 1
 sexy-store.nl, 1
 sexymassageoil.com, 1
+seydaozcan.com, 1
 seyfarth.de, 1
 seyr.it, 1
 seyr.me, 1
 sfa.sk, 1
 sfaparish.org, 1
 sfaturiit.ro, 1
 sfdev.ovh, 1
 sfg-net.com, 1
@@ -37136,16 +37114,17 @@ shansing.net, 1
 shansing.space, 1
 shanxiapark.com, 1
 shaobin.wang, 1
 sharanyamunsi.net, 1
 share.works, 1
 sharealo.org, 1
 sharedhost.de, 1
 shareeri.com, 1
+sharejoy.cn, 0
 sharekey.com, 0
 sharelovenotsecrets.com, 1
 sharemessage.net, 1
 shareoffice.ch, 1
 sharepointdrive.com, 1
 sharescope.co.uk, 0
 shareselecttools.com, 1
 sharevari.com, 1
@@ -37489,16 +37468,17 @@ silentundo.org, 1
 silerfamily.net, 1
 silica-project.com, 1
 silica-project.jp, 1
 silicon-north.com, 1
 silicon-vision.com, 1
 siliconchip.me, 1
 silkebaekken.no, 1
 silkebeckmann.de, 1
+silkon.net, 1
 sillisalaatti.fi, 1
 sillysnapz.co.uk, 1
 silo.org.br, 1
 siloportem.net, 1
 silqueskineyeserum.com, 1
 silsha.me, 1
 silv.me, 1
 silvacor-ziegel.de, 1
@@ -37888,17 +37868,17 @@ skylgenet.nl, 1
 skylightcreative.com.au, 1
 skylinertech.com, 1
 skylineservers.com, 1
 skylocker.net, 1
 skyloisirs.ch, 1
 skyminds.net, 1
 skyn3t.in, 1
 skynet233.ch, 1
-skynethk.com, 1
+skynethk.com, 0
 skynetnetwork.eu.org, 1
 skynetz.tk, 1
 skype.com, 1
 skyquid.co.uk, 1
 skyris.co, 1
 skys-entertainment.com, 1
 skyscapecanopies.com, 1
 skysuite.nl, 1
@@ -38045,17 +38025,16 @@ smartlogreturns.com, 1
 smartlogstock.com, 1
 smartlogtower.com, 1
 smartmessages.net, 1
 smartmompicks.com, 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
 smartthursday.hu, 1
 smartvideo.io, 1
 smartviewing.com, 1
@@ -38144,16 +38123,17 @@ snaptier.co, 1
 snaptools.io, 1
 snarf.in, 1
 snargol.com, 1
 snatch.com.ua, 1
 snazel.co.uk, 0
 snazzie.nl, 1
 sncdn.com, 1
 sndbouncycastles.co.uk, 1
+sneak.berlin, 1
 sneaker.date, 1
 sneakpod.de, 1
 sneakynote.com, 1
 sneakypaw.com, 1
 sneberger.cz, 0
 sneed.company, 1
 sneed.it, 1
 sneedit.com, 1
@@ -38452,16 +38432,17 @@ sosko.in.rs, 1
 sosoftplay.co.uk, 1
 sospromotions.com.au, 1
 sostacancun.com, 1
 sosteam.jp, 1
 sosteric.si, 1
 sotadb.info, 1
 sotai.tk, 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
@@ -38909,16 +38890,17 @@ stairfallgames.com, 1
 stairlin.com, 1
 stakestrategy.com, 1
 staklim-malang.info, 1
 stako.jp, 1
 staktrace.com, 1
 stalder.work, 1
 staljedevledder.nl, 1
 stalker-shop.com, 1
+stalkerteam.pl, 1
 stalkr.net, 1
 stalkthe.net, 1
 stameystreet.com, 1
 stamkassa.nl, 1
 stammtisch.domains, 1
 stamonicatourandtravel.com, 1
 stamparmakarije.me, 1
 stampederadon.com, 1
@@ -39260,17 +39242,16 @@ stoneagehealth.com.au, 1
 stonedworms.de, 1
 stonefusion.org.uk, 1
 stonehammerhead.org, 1
 stonemain.eu, 1
 stonemanbrasil.com.br, 1
 stony.com, 1
 stonystratford.org, 1
 stopakwardhandshakes.org, 1
-stopbreakupnow.org, 1
 stopbullying.gov, 1
 stopfraud.gov, 0
 stopthethyroidmadness.com, 1
 storageideas.uk, 1
 stordbatlag.no, 1
 store10.de, 0
 storedsafe.com, 1
 storeit.co.uk, 1
@@ -39378,17 +39359,16 @@ structure.systems, 1
 strugee.net, 1
 strutta.me, 1
 strydom.me.uk, 1
 stsolarenerji.com, 1
 stt.wiki, 1
 stuartbell.co.uk, 1
 stuarteggerton.com, 1
 stuartmorris.id.au, 1
-stuartmorris.me, 1
 stuartmorris.name, 1
 stuartmorris.tel, 1
 stuarts.xyz, 0
 stubbings.eu, 1
 stuco.co, 1
 stucorweb.com, 1
 stucydee.nl, 1
 studenckiemetody.pl, 1
@@ -39678,17 +39658,16 @@ surgicalassociateswny.com, 1
 suroil.com, 1
 surpreem.com, 1
 surreyheathyc.org.uk, 1
 suruifu.com, 1
 suruifu.tk, 1
 survature.com, 1
 surveillance104.com, 1
 surveyhealthcare.com, 1
-surveyinstrumentsales.com, 1
 surveymill.co.uk, 1
 survivalistplanet.com, 1
 survivalmonkey.com, 1
 susanbpilates.co, 1
 susanbpilates.com, 1
 susann-kerk.de, 1
 susanna-komischke.de, 1
 susanvelez.com, 1
@@ -39832,16 +39811,17 @@ switcheo.rocks, 1
 switzerland-family-office.com, 1
 swivells.com, 1
 swn-nec.de, 1
 swordfeng.xyz, 1
 swordfighting.net, 1
 swqa.hu, 1
 swuosa.org, 0
 swvaux.com, 1
+swxtd.com, 1
 swyn.net, 1
 sx3.no, 1
 sx8.ovh, 1
 sxistolithos.gr, 1
 sy-anduril.de, 1
 sy24.ru, 1
 syajvo.if.ua, 1
 syamutodon.xyz, 1
@@ -40199,17 +40179,17 @@ tatara.ne.jp, 1
 tateesq.com, 1
 tatildukkani.com, 1
 tatiloley.com, 1
 tatort-fanpage.de, 1
 tatsidou.gr, 1
 tattoo.dating, 1
 tattvaayoga.com, 1
 tatuantes.com, 1
-taunhanh.us, 0
+taunhanh.us, 1
 tavolaquadrada.com.br, 1
 tavsys.net, 1
 tax-guard.com, 1
 taxaroo.com, 1
 taxi-24std.de, 0
 taxi-chamonix.fr, 1
 taxi-collectif.ch, 1
 taxi-jihlava.cz, 1
@@ -40495,16 +40475,17 @@ tellusaboutus.com, 1
 telly.site, 1
 tellygames.com, 1
 tellyourtale.com, 1
 teloo.pl, 1
 telos-analytics.com, 1
 teltru.com, 1
 telugu4u.net, 1
 tem.li, 1
+temasa.net, 1
 tematicas.org, 1
 temdu.com, 1
 temizmama.com, 1
 temnacepel.cz, 1
 temp.pm, 1
 tempa.com.ua, 1
 tempdomain.ml, 1
 tempflix.com, 1
@@ -40643,17 +40624,16 @@ textburst.com, 1
 texter-linz.at, 1
 texter.at, 1
 texterseo.at, 1
 texterseo.de, 1
 textinmate.com, 1
 textpedia.org, 1
 textualapp.com, 0
 texture.net.au, 1
-texus.me, 1
 texy.info, 1
 teysens.com, 1
 teyssedre.ca, 1
 tezcam.tk, 1
 tf-network.de, 1
 tf2b.com, 1
 tf2calculator.com, 1
 tf7879.com, 1
@@ -40919,17 +40899,16 @@ themoneyconverter.com, 1
 themonkeytrail.co.uk, 1
 themonthly.com.au, 1
 themostexpensiveworkofart.com, 1
 themusecollaborative.org, 1
 themusicinnoise.net, 1
 themusthaves.nl, 1
 thenanfang.com, 1
 thenarcissisticlife.com, 1
-theneatgadgets.com, 1
 thenexwork.com, 1
 thenib.com, 1
 thenichecast.com, 1
 thenocman.com, 1
 thenovaclinic.com, 1
 thenowheremen.com, 1
 thenrdhrd.nl, 1
 theo.me, 1
@@ -41093,16 +41072,17 @@ thewindow.com, 1
 thewinstonatlyndhurst.com, 1
 thewoodkid.com.au, 1
 thewoolroom.com.au, 1
 theworkingeye.nl, 1
 theworldexchange.com, 1
 theworldexchange.net, 1
 theworldexchange.org, 1
 theworldsend.eu, 1
+thewp.pro, 1
 thexfactorgames.com, 1
 thexme.de, 1
 theyachtteam.com, 1
 theyakshack.co.uk, 1
 theyarnhookup.com, 0
 theyear199x.org, 1
 theyearinpictures.co.uk, 1
 theyosh.nl, 1
@@ -41300,17 +41280,17 @@ ties.com, 1
 tiew.pl, 1
 tifan.net, 1
 tiffnix.com, 1
 tigerchef.com, 1
 tigerdile.com, 1
 tigernode.com, 1
 tigernode.net, 1
 tiggeriffic.com, 1
-tiggi.pw, 1
+tiggi.pw, 0
 tigit.co.nz, 1
 tiglitub.com, 1
 tiihosen.fi, 1
 tiim.technology, 1
 tijden.nu, 1
 tijo.ch, 1
 tik.edu.ee, 1
 tik.help, 1
@@ -41466,16 +41446,17 @@ 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
@@ -42196,17 +42177,16 @@ tribut.de, 1
 tributh.cf, 1
 tributh.ga, 1
 tributh.gq, 1
 tributh.ml, 1
 tributh.net, 1
 tributh.tk, 1
 tricefy4.com, 1
 trickedguys.com, 0
-tricks.clothing, 1
 triddi.com, 1
 trident-online.de, 1
 tridentflood.com, 1
 trietment.com, 1
 trigardon-rg.de, 1
 trigular.de, 1
 trik.es, 0
 trillian.im, 1
@@ -42353,17 +42333,16 @@ tstrubberstamp.com, 0
 tsugi.fr, 1
 tsukhani.com, 1
 tsuki.moe, 1
 tsukuba.style, 1
 tsumegumi.com, 1
 tsumi.it, 1
 tsumi.moe, 1
 tsundere.moe, 1
-tsung.co, 1
 tsura.org, 1
 tsurai.work, 1
 tsurezurematome.ga, 1
 tsutsumi-kogyo.jp, 1
 tsuyuzakihiroyuki.com, 1
 tsv-1894.de, 1
 tt.dog, 1
 ttb.gov, 1
@@ -42459,17 +42438,16 @@ turnonsocial.com, 1
 turpinpesage.fr, 1
 tursiae.org, 1
 turtle.ai, 0
 turtleduckstudios.com, 1
 turtlepwr.com, 1
 turtles.ga, 1
 turunculevye.com, 1
 tuscanyleather.it, 1
-tusi.co, 0
 tusksol.com, 1
 tutanota.com, 1
 tuto-craft.com, 1
 tutoragency.org, 1
 tutorat-tect.org, 1
 tutoref.com, 1
 tutorialinux.com, 1
 tutorio.ga, 1
@@ -42849,17 +42827,16 @@ undeductive.media, 1
 undef.in, 1
 underbridgeleisure.co.uk, 1
 undercovercondoms.co.uk, 1
 undercovercondoms.com, 1
 underfloorheating-uk.co.uk, 1
 underlined.fr, 1
 undernet.uy, 0
 underskatten.tk, 1
-underwearoffer.com, 1
 undo.co.il, 1
 undone.me, 1
 unearaigneeauplafond.fr, 1
 unece-deta.eu, 1
 unedouleur.com, 1
 unefleur.be, 1
 unefuite.ch, 1
 unerosesurlalune.fr, 1
@@ -43514,17 +43491,17 @@ verein-kiekin.de, 1
 verein-zur-pflege-der-geselligkeit.de, 1
 vereinlandwege.de, 1
 vereinscheck.de, 1
 verfassungsklage.at, 1
 verge.capital, 1
 vergeaccessories.com, 1
 vergelijksimonly.nl, 1
 vergessen.cn, 1
-verhovs.ky, 1
+verhovs.ky, 0
 verifalia.com, 1
 verifiedjoseph.com, 1
 verifiny.com, 1
 verifyos.com, 1
 verifyyourip.com, 1
 veriny.tf, 1
 veriomed.com, 1
 verios.com.br, 1
@@ -43616,16 +43593,17 @@ viajandoporelmundo.com.ar, 1
 viaje-a-china.com, 1
 viaprinto.de, 1
 viasinc.com, 0
 vibrant-america.com, 1
 vicenage.com, 1
 vicentee.com, 1
 vichiya.com, 1
 vician.cz, 1
+vicianovi.cz, 1
 vicicode.com, 1
 viciousflora.com, 1
 viciousviscosity.xyz, 1
 vicjuwelen-annelore.be, 1
 viclab.se, 1
 victora.com, 1
 victorcanera.com, 1
 victordiaz.me, 1
@@ -43780,17 +43758,16 @@ vinsetchampagne.fr, 1
 vintagebandfestival.org, 1
 vintagecaskandbarrel.com, 1
 vintagejeeps.net, 1
 vintagemakeupguide.com, 1
 vintageportgifts.co.uk, 1
 vintagesouthernpicks.com, 1
 vintagetrailerbuyers.com, 1
 vintazh.net, 1
-vinticom.ch, 1
 vintock.com, 1
 vinyculture.com, 1
 vinzite.com, 1
 violet-letter.delivery, 1
 violetraven.co.uk, 1
 violin4fun.nl, 1
 vionicbeach.com, 1
 vionicshoes.com, 1
@@ -43808,17 +43785,17 @@ viptamin.eu, 1
 viptamol.com, 1
 viqo.pl, 1
 vir-tec.eu, 1
 vir2.me, 1
 viral32111.com, 1
 viralboombox.xyz, 1
 viralpop.it, 1
 viralsv.com, 1
-virgopolymer.com, 0
+virgopolymer.com, 1
 virial.de, 1
 viridis-milites.cz, 1
 virtit.fr, 1
 virtual.hk, 1
 virtualcloud.ddns.net, 1
 virtualcommodities.org, 1
 virtualdesignmedia.com, 0
 virtuality4d.com, 1
@@ -44035,16 +44012,17 @@ vomitb.in, 1
 von-lien-aluprofile.de, 1
 von-lien-dachrinnen.de, 1
 von-lien-lichtplatten.de, 1
 von-lien-profilbleche.de, 1
 vonauw.com, 1
 vonborstelboerner.de, 1
 vonniehudson.com, 1
 vonski.pl, 1
+vonterra.us, 1
 voodoochile.at, 1
 vop.li, 1
 vorderklier.de, 1
 vorlage-musterbriefe.de, 1
 vorlage-mustervertrag.de, 1
 vorlagen-geburtstagsgruesse.de, 1
 vorlicek.de, 1
 vorlif.org, 1
@@ -44072,16 +44050,17 @@ votewa.gov, 1
 votocek.cz, 1
 votockova.cz, 1
 votoot.com, 1
 votre-site-internet.ch, 1
 votresiteweb.ch, 1
 vouchinsurance.sg, 1
 vovladikavkaze.ru, 1
 vow.vn, 1
+vowsy.club, 1
 voxfilmeonline.net, 1
 voxml.com, 1
 voxographe.com, 0
 voya.ga, 1
 voyage-martinique.fr, 1
 voyageforum.com, 1
 voyagesaufildespages.be, 1
 voyageschine.com, 1
@@ -44215,17 +44194,16 @@ wabifoggynuts.com, 1
 wachter.biz, 1
 wacky-science.com, 1
 wacky.one, 1
 wadidi.com, 1
 wadsworth.gallery, 1
 wadvisor.com, 1
 waelisch.de, 1
 waelti.xxx, 1
-waf.ninja, 1
 waf.sexy, 1
 wafa4hw.com, 1
 wafelland.be, 1
 waffle.at, 0
 wafni.com, 1
 wafuton.com, 1
 wagyu-bader.de, 1
 wahhoi.net, 1
@@ -44459,17 +44437,16 @@ we.serveftp.net, 1
 weacceptbitcoin.gr, 1
 wealthfactory.com, 0
 wealthprojector.com, 1
 wealthprojector.com.au, 1
 wealthreport.com.au, 1
 wearandcare.net, 1
 weare1inspirit.com, 1
 wearebfi.co.uk, 1
-wearedisneyland.com, 1
 wearegenki.com, 1
 wearehackerone.com, 1
 weareincognito.org, 1
 wearepapermill.co, 1
 wearesouthafricans.com, 1
 wearewithyou.org, 1
 wearvr.com, 1
 weaspireusa.com, 1
@@ -44860,17 +44837,16 @@ westmeadapartments.com.au, 1
 westmidlandsbouncycastlehire.co.uk, 1
 westmidlandsinflatables.co.uk, 1
 westsuburbanbank.com, 1
 westtulsa.com, 1
 westwood.no, 1
 wesupportthebadge.org, 1
 wetofu.top, 1
 wetrepublic.com, 1
-wette.de, 1
 wetthost.com, 1
 wevenues.com, 1
 wewitro.de, 1
 wewitro.net, 1
 wexfordbouncycastles.ie, 1
 wexilapp.com, 1
 weyland-yutani.org, 1
 weynaphotography.com, 1
@@ -45829,17 +45805,16 @@ xerkus.pro, 1
 xerownia.eu, 1
 xeryus.nl, 1
 xetown.com, 1
 xfce.space, 1
 xfcy.me, 1
 xfd3.de, 1
 xferion.com, 1
 xfix.pw, 1
-xfrag-networks.com, 1
 xgame.com.tr, 1
 xgclan.com, 1
 xgn.es, 1
 xgzepto.cn, 1
 xhadius.de, 1
 xhily.com, 1
 xhmikosr.io, 1
 xho.me, 1
@@ -45885,16 +45860,17 @@ 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
 xirion.net, 1
 xj8876.com, 1
 xjd.vision, 1
 xjf6.com, 1
 xjjeeps.com, 1
 xjoin.de, 1
 xjpvictor.info, 1
 xkblog.xyz, 1
@@ -46706,17 +46682,16 @@ z-vector.com, 1
 z.ai, 1
 z0rro.net, 1
 z1h.de, 1
 z33.co, 0
 z4k.de, 1
 z99944x.xyz, 1
 za.search.yahoo.com, 0
 zaagbaak.nl, 1
-zaalleatherwear.nl, 0
 zabavno.mk, 1
 zabbix.tips, 1
 zabszk.net, 1
 zabukovnik.net, 1
 zacadam.com, 1
 zacarias.com.ar, 1
 zacchaeus.co.uk, 1
 zacco.site, 1
@@ -46810,17 +46785,16 @@ zeal-interior.com, 1
 zealworks.jp, 1
 zeb.fun, 1
 zebbra.ro, 1
 zebedeescastles.co.uk, 1
 zebulon.fr, 1
 zeds-official.com, 1
 zeebrieshoekvanholland.nl, 1
 zeel.com, 1
-zeelynk.com, 1
 zeestraten.nl, 1
 zeetoppers.nl, 1
 zeeuw.nl, 1
 zeguigui.com, 1
 zehdenick-bleibt-bunt.de, 1
 zeibekiko-souvlaki.gr, 1
 zeilenmethans.nl, 1
 zeilles.nu, 1
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-will-change/will-change-inherit-dynamic.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test: will-change: style changes are properly propagated to children if needed</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1499991">
+<link rel="help" href="https://drafts.csswg.org/css-will-change/#will-change">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="outer">
+  <div id="inner" style="will-change: inherit"></div>
+</div>
+<script>
+  test(function() {
+    assert_equals(getComputedStyle(outer).willChange, "auto");
+    assert_equals(getComputedStyle(inner).willChange, "auto");
+    outer.style.willChange = "color";
+    assert_equals(getComputedStyle(outer).willChange, "color");
+    assert_equals(getComputedStyle(inner).willChange, "color");
+  }, "will-change change is properly propagated to children if needed");
+</script>
--- a/toolkit/components/telemetry/core/Telemetry.cpp
+++ b/toolkit/components/telemetry/core/Telemetry.cpp
@@ -613,16 +613,60 @@ TelemetryImpl::AddSQLInfo(JSContext *cx,
 
 NS_IMETHODIMP
 TelemetryImpl::SetHistogramRecordingEnabled(const nsACString &id, bool aEnabled)
 {
   return TelemetryHistogram::SetHistogramRecordingEnabled(id, aEnabled);
 }
 
 NS_IMETHODIMP
+TelemetryImpl::GetSnapshotForHistograms(const nsACString& aStoreName,
+                                        bool aClearStore, JSContext* aCx,
+                                        JS::MutableHandleValue aResult)
+{
+  unsigned int dataset = mCanRecordExtended ?
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTIN :
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTOUT;
+  return TelemetryHistogram::CreateHistogramSnapshots(aCx, aResult, dataset, aClearStore);
+}
+
+NS_IMETHODIMP
+TelemetryImpl::GetSnapshotForKeyedHistograms(const nsACString& aStoreName,
+                                             bool aClearStore, JSContext* aCx,
+                                             JS::MutableHandleValue aResult)
+{
+  unsigned int dataset = mCanRecordExtended ?
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTIN :
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTOUT;
+  return TelemetryHistogram::GetKeyedHistogramSnapshots(aCx, aResult, dataset, aClearStore);
+}
+
+NS_IMETHODIMP
+TelemetryImpl::GetSnapshotForScalars(const nsACString& aStoreName,
+                                     bool aClearStore, JSContext* aCx,
+                                     JS::MutableHandleValue aResult)
+{
+  unsigned int dataset = mCanRecordExtended ?
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTIN :
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTOUT;
+  return TelemetryScalar::CreateSnapshots(dataset, aClearStore, aCx, 1, aResult);
+}
+
+NS_IMETHODIMP
+TelemetryImpl::GetSnapshotForKeyedScalars(const nsACString& aStoreName,
+                                          bool aClearStore, JSContext* aCx,
+                                          JS::MutableHandleValue aResult)
+{
+  unsigned int dataset = mCanRecordExtended ?
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTIN :
+    nsITelemetry::DATASET_RELEASE_CHANNEL_OPTOUT;
+  return TelemetryScalar::CreateKeyedSnapshots(dataset, aClearStore, aCx, 1, aResult);
+}
+
+NS_IMETHODIMP
 TelemetryImpl::SnapshotHistograms(unsigned int aDataset,
                                   bool aClearHistograms, JSContext* aCx,
                                   JS::MutableHandleValue aResult)
 {
   return TelemetryHistogram::CreateHistogramSnapshots(aCx, aResult, aDataset,
                                                       aClearHistograms);
 }
 
--- a/toolkit/components/telemetry/core/nsITelemetry.idl
+++ b/toolkit/components/telemetry/core/nsITelemetry.idl
@@ -47,16 +47,70 @@ interface nsITelemetry : nsISupports
    * DATASET_RELEASE_CHANNEL_OPTIN - the extended dataset that is opt-in on release,
    *                                 opt-out on pre-release channels.
    */
   const unsigned long DATASET_RELEASE_CHANNEL_OPTOUT = 0;
   const unsigned long DATASET_RELEASE_CHANNEL_OPTIN = 1;
 
 
   /**
+   * Serializes the histograms from the given store to a JSON-style object.
+   * The returned structure looks like:
+   *   { "process": { "name1": histogramData1, "name2": histogramData2 }, ... }
+   *
+   * Where histogramDataN has the following properties:
+   *   min - minimum bucket size
+   *   max - maximum bucket size
+   *   histogram_type - HISTOGRAM_EXPONENTIAL, HISTOGRAM_LINEAR, HISTOGRAM_BOOLEAN,
+   *                    HISTOGRAM_FLAG, HISTOGRAM_COUNT, or HISTOGRAM_CATEGORICAL
+   *   counts - array representing contents of the buckets in the histogram
+   *   ranges - array with calculated bucket sizes
+   *   sum - sum of the bucket contents
+   * TODO(bug 1468761): Return packed histograms.
+   *
+   * @param aStoreName The name of the store to snapshot. Ignored at the moment.
+   * @param aClearStore Whether to clear out the histograms in the named store after snapshotting.
+   */
+  [implicit_jscontext]
+  jsval getSnapshotForHistograms(in ACString aStoreName, in boolean aClearStore);
+
+  /**
+   * Serializes the keyed histograms from the given store to a JSON-style object.
+   * The returned structure looks like:
+   *   { "process": { "name1": { "key_1": histogramData1, "key_2": histogramData2 }, ...}, ... }
+   *
+   * @param aStoreName The name of the store to snapshot. Ignored at the moment.
+   * @param aClearStore Whether to clear out the keyed histograms in the named store after snapshotting.
+   */
+  [implicit_jscontext]
+  jsval getSnapshotForKeyedHistograms(in ACString aStoreName, in boolean aClearStore);
+
+  /**
+   * Serializes the scalars from the given store to a JSON-style object.
+   * The returned structure looks like:
+   *   { "process": { "category1.probe": 1,"category1.other_probe": false, ... }, ... }.
+   *
+   * @param aStoreName The name of the store to snapshot. Ignored at the moment.
+   * @param aClearStore Whether to clear out the scalars in the named store after snapshotting.
+   */
+  [implicit_jscontext]
+  jsval getSnapshotForScalars(in ACString aStoreName, in boolean aClearStore);
+
+  /**
+   * Serializes the keyed scalars from the given store to a JSON-style object.
+   * The returned structure looks like:
+   *   { "process": { "category1.probe": { "key_1": 2, "key_2": 1, ... }, ... }, ... }
+   *
+   * @param aStoreName The name of the store to snapshot. Ignored at the moment.
+   * @param aClearStore Whether to clear out the keyed scalars in the named store after snapshotting.
+   */
+  [implicit_jscontext]
+  jsval getSnapshotForKeyedScalars(in ACString aStoreName, in boolean aClearStore);
+
+  /**
    * Serializes the histograms from the given dataset to a JSON-style object.
    * The returned structure looks like:
    *   { process1: {name1: {histogramData1}, name2:{histogramData2}...}}
    *
    * Where histogramDataN has the following properties:
    *   min - minimum bucket size
    *   max - maximum bucket size
    *   histogram_type - HISTOGRAM_EXPONENTIAL, HISTOGRAM_LINEAR, HISTOGRAM_BOOLEAN,
--- a/toolkit/components/viewconfig/content/config.xul
+++ b/toolkit/components/viewconfig/content/config.xul
@@ -65,17 +65,17 @@
         </hbox>
       </vbox>
     </vbox>
     <spacer flex="2"/>
   </vbox>
   <vbox flex="1">
     <hbox id="filterRow" align="center">
       <label data-l10n-id="config-search-prefs" control="textbox"/>
-      <textbox id="textbox" flex="1" type="search" class="compact"
+      <textbox id="textbox" flex="1" type="search"
                aria-controls="configTree"
                oncommand="FilterPrefs();"/>
     </hbox>
 
     <tree id="configTree" flex="1" seltype="single"
           onselect="updateCommands('select');"
           enableColumnDrag="true" context="configContext">
       <treecols>
--- a/toolkit/themes/osx/global/textbox.css
+++ b/toolkit/themes/osx/global/textbox.css
@@ -69,24 +69,15 @@ textbox[type="search"] {
 }
 
 .textbox-search-clear {
   list-style-image: url(chrome://global/skin/icons/searchfield-cancel.svg);
   -moz-image-region: rect(0, 14px, 14px, 0);
   margin-bottom: 1px;
 }
 
-textbox[type="search"].compact {
-  padding: 0;
-  font-size: 11px;
-}
-
-textbox[type="search"].compact > moz-input-box > .textbox-search-icons > .textbox-search-clear {
-  width: 11px;
-}
-
 .textbox-search-clear:not([disabled]) {
   cursor: default;
 }
  
 .textbox-search-icons:not([selectedIndex="1"]) {
   visibility: hidden;
 }
--- a/widget/gtk/nsClipboard.cpp
+++ b/widget/gtk/nsClipboard.cpp
@@ -29,22 +29,26 @@
 
 #include "imgIContainer.h"
 
 #include <gtk/gtk.h>
 #include <gtk/gtkx.h>
 
 #include "mozilla/Encoding.h"
 
-
 using namespace mozilla;
 
 // Idle timeout for receiving selection and property notify events (microsec)
 const int kClipboardTimeout = 500000;
 
+// We add this prefix to HTML markup, so that GetHTMLCharset can correctly
+// detect the HTML as UTF-8 encoded.
+static const char kHTMLMarkupPrefix[] =
+    R"(<meta http-equiv="content-type" content="text/html; charset=utf-8">)";
+
 // Callback when someone asks us for the data
 void
 clipboard_get_cb(GtkClipboard *aGtkClipboard,
                  GtkSelectionData *aSelectionData,
                  guint info,
                  gpointer user_data);
 
 // Callback when someone asks us to clear a clipboard
@@ -522,16 +526,41 @@ nsClipboard::SelectionGetEvent(GtkClipbo
         if (!pixbuf)
             return;
 
         gtk_selection_data_set_pixbuf(aSelectionData, pixbuf);
         g_object_unref(pixbuf);
         return;
     }
 
+    if (selectionTarget == gdk_atom_intern(kHTMLMime, FALSE)) {
+        rv = trans->GetTransferData(kHTMLMime, getter_AddRefs(item), &len);
+        if (!item || NS_FAILED(rv)) {
+            return;
+        }
+
+        nsCOMPtr<nsISupportsString> wideString;
+        wideString = do_QueryInterface(item);
+        if (!wideString) {
+            return;
+        }
+
+        nsAutoString ucs2string;
+        wideString->GetData(ucs2string);
+
+        nsAutoCString html;
+        // Add the prefix so the encoding is correctly detected.
+        html.AppendLiteral(kHTMLMarkupPrefix);
+        AppendUTF16toUTF8(ucs2string, html);
+
+        gtk_selection_data_set(aSelectionData, selectionTarget, 8,
+                               (const guchar*)html.get(), html.Length());
+        return;
+    }
+
     // Try to match up the selection data target to something our
     // transferable provides.
     gchar *target_name = gdk_atom_name(selectionTarget);
     if (!target_name)
         return;
 
     rv = trans->GetTransferData(target_name, getter_AddRefs(item), &len);
     // nothing found?
@@ -540,41 +569,20 @@ nsClipboard::SelectionGetEvent(GtkClipbo
         return;
     }
 
     void *primitive_data = nullptr;
     nsPrimitiveHelpers::CreateDataFromPrimitive(nsDependentCString(target_name),
                                                 item, &primitive_data, len);
 
     if (primitive_data) {
-        // Check to see if the selection data is text/html
-        if (selectionTarget == gdk_atom_intern (kHTMLMime, FALSE)) {
-            /*
-             * "text/html" can be encoded UCS2. It is recommended that
-             * documents transmitted as UCS2 always begin with a ZERO-WIDTH
-             * NON-BREAKING SPACE character (hexadecimal FEFF, also called
-             * Byte Order Mark (BOM)). Adding BOM can help other app to
-             * detect mozilla use UCS2 encoding when copy-paste.
-             */
-            guchar *buffer = (guchar *)
-                    g_malloc((len * sizeof(guchar)) + sizeof(char16_t));
-            if (!buffer)
-                return;
-            char16_t prefix = 0xFEFF;
-            memcpy(buffer, &prefix, sizeof(prefix));
-            memcpy(buffer + sizeof(prefix), primitive_data, len);
-            g_free((guchar *)primitive_data);
-            primitive_data = (guchar *)buffer;
-            len += sizeof(prefix);
-        }
-
         gtk_selection_data_set(aSelectionData, selectionTarget,
                                8, /* 8 bits in a unit */
                                (const guchar *)primitive_data, len);
-        g_free(primitive_data);
+        free(primitive_data);
     }
 
     g_free(target_name);
 
 }
 
 void
 nsClipboard::SelectionClearEvent(GtkClipboard *aGtkClipboard)
@@ -651,43 +659,50 @@ void ConvertHTMLtoUCS2(const char* data,
         auto encoding = Encoding::ForLabelNoReplacement(charset);
         if (!encoding) {
 #ifdef DEBUG_CLIPBOARD
             g_print("        get unicode decoder error\n");
 #endif
             outUnicodeLen = 0;
             return;
         }
+
+        auto dataSpan = MakeSpan(data, dataLength);
+        // Remove kHTMLMarkupPrefix again, it won't necessarily cause any
+        // issues, but might confuse other users.
+        const size_t prefixLen = ArrayLength(kHTMLMarkupPrefix) - 1;
+        if (dataSpan.Length() >= prefixLen &&
+            Substring(data, prefixLen).EqualsLiteral(kHTMLMarkupPrefix)) {
+          dataSpan = dataSpan.From(prefixLen);
+        }
+
         auto decoder = encoding->NewDecoder();
-        CheckedInt<size_t> needed = decoder->MaxUTF16BufferLength(dataLength);
+        CheckedInt<size_t> needed =
+            decoder->MaxUTF16BufferLength(dataSpan.Length());
         if (!needed.isValid() || needed.value() > INT32_MAX) {
           outUnicodeLen = 0;
           return;
         }
 
         outUnicodeLen = 0;
         if (needed.value()) {
           *unicodeData = reinterpret_cast<char16_t*>(
             moz_xmalloc((needed.value() + 1) * sizeof(char16_t)));
           uint32_t result;
           size_t read;
           size_t written;
           bool hadErrors;
           Tie(result, read, written, hadErrors) =
-            decoder->DecodeToUTF16(AsBytes(MakeSpan(data, dataLength)),
+            decoder->DecodeToUTF16(AsBytes(dataSpan),
                                    MakeSpan(*unicodeData, needed.value()),
                                    true);
           MOZ_ASSERT(result == kInputEmpty);
-          MOZ_ASSERT(read == size_t(dataLength));
+          MOZ_ASSERT(read == size_t(dataSpan.Length()));
           MOZ_ASSERT(written <= needed.value());
           Unused << hadErrors;
-#ifdef DEBUG_CLIPBOARD
-          if (read != dataLength)
-            printf("didn't consume all the bytes\n");
-#endif
           outUnicodeLen = written;
           // null terminate.
           (*unicodeData)[outUnicodeLen] = '\0';
         } // if valid length
     }
 }
 
 /*
@@ -701,17 +716,17 @@ void GetHTMLCharset(const char* data, in
 {
     // if detect "FFFE" or "FEFF", assume UTF-16
     char16_t* beginChar =  (char16_t*)data;
     if ((beginChar[0] == 0xFFFE) || (beginChar[0] == 0xFEFF)) {
         str.AssignLiteral("UTF-16");
         return;
     }
     // no "FFFE" and "FEFF", assume ASCII first to find "charset" info
-    const nsDependentCString htmlStr(data, dataLength);
+    const nsDependentCSubstring htmlStr(data, dataLength);
     nsACString::const_iterator start, end;
     htmlStr.BeginReading(start);
     htmlStr.EndReading(end);
     nsACString::const_iterator valueStart(start), valueEnd(start);
 
     if (CaseInsensitiveFindInReadable(
         NS_LITERAL_CSTRING("CONTENT=\"text/html;"),
         start, end)) {