Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE
authorCiure Andrei <aciure@mozilla.com>
Thu, 18 Oct 2018 19:40:31 +0300
changeset 490255 fc8ae615f7268108e364437b261bccc2ba65c1bb
parent 490253 9a6b1ba0f53b8a8ab5aaa895c2de6c596ef4364a (current diff)
parent 490254 733484af9034cb0372ed1fd745ec3d321d48e8b9 (diff)
child 490256 6669d853e36620b01b035409ddc14ce8281ac5ae
push id247
push userfmarier@mozilla.com
push dateSat, 27 Oct 2018 01:06:44 +0000
reviewersmerge
milestone64.0a1
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)) {