Merge mozilla-central to autoland. a=merge on a CLOSED TREE
authorAndreea Pavel <apavel@mozilla.com>
Tue, 10 Apr 2018 00:57:43 +0300
changeset 779668 d42b6284aba7e1cb7e266f2799432c5f8b2375cb
parent 779667 90a305d9c6cf68962eaeb0d019b7f87be30d75fa (current diff)
parent 779502 83de58ddda2057f1cb949537f6b111e3b115ea3d (diff)
child 779669 3473058aec14ad217a2e52d53ab2ea13528aef6b
push id105836
push userbmo:ato@sny.no
push dateTue, 10 Apr 2018 12:07:22 +0000
reviewersmerge
milestone61.0a1
Merge mozilla-central to autoland. a=merge on a CLOSED TREE
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -1,10 +1,10 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<blocklist lastupdate="1522103097333" xmlns="http://www.mozilla.org/2006/addons-blocklist">
+<blocklist lastupdate="1523286321447" xmlns="http://www.mozilla.org/2006/addons-blocklist">
   <emItems>
     <emItem blockID="i334" id="{0F827075-B026-42F3-885D-98981EE7B1AE}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="i1211" id="flvto@hotger.com">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
@@ -2230,16 +2230,20 @@
     <emItem blockID="547037f2-97ae-435a-863c-efd7532668cd" id="{44685ba6-68b3-4895-879e-4efa29dfb578}">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="3"/>
     </emItem>
     <emItem blockID="baf7f735-d6b6-410a-8cc8-25c60f7c57e2" id="adbeaver@adbeaver.org">
       <prefs/>
       <versionRange minVersion="0" maxVersion="*" severity="1"/>
     </emItem>
+    <emItem blockID="36f97298-8bef-4372-a548-eb829413bee9" id="/(__TEMPLATE__APPLICATION__@ruta-mapa\.com)|(application-3@findizer\.fr)|(application2@allo-pages\.fr)|(application2@bilan-imc\.fr)|(application2@lettres\.net)|(application2@search-maps-finder\.com)|(application-imcpeso@imc-peso\.com)|(application-meuimc@meu-imc\.com)|(application-us2@factorlove)|(application-us@misterdirections)|(application-us@yummmi\.es)|(application@amiouze\.fr)|(application@astrolignes\.com)|(application@blotyn\.com)|(application@bmi-result\.com)|(application@bmi-tw\.com)|(application@calcolo-bmi\.com)|(application@cartes-itineraires\.com)|(application@convertisseur\.pro)|(application@de-findizer\.fr)|(application@de-super-rezepte\.com)|(application@dermabeauty\.fr)|(application@dev\.squel\.v2)|(application@eu-my-drivingdirections\.com)|(application@fr-allo-pages\.fr)|(application@fr-catizz\.com)|(application@fr-mr-traduction\.com)|(application@good-recettes\.com)|(application@horaires\.voyage)|(application@imc-calcular\.com)|(application@imc-peso\.com)|(application@it-mio-percorso\.com)|(application@iti-maps\.fr)|(application@itineraire\.info)|(application@lbc-search\.com)|(application@les-pages\.com)|(application@lovincalculator\.com)|(application@lovintest\.com)|(application@masowe\.com)|(application@matchs\.direct)|(application@mein-bmi\.com)|(application@mes-resultats\.com)|(application@mestaf\.com)|(application@meu-imc\.com)|(application@mon-calcul-imc\.fr)|(application@mon-juste-poids\.com)|(application@mon-trajet\.com)|(application@my-drivingdirections\.com)|(application@people-show\.com)|(application@plans-reduc\.fr)|(application@point-meteo\.fr)|(application@poulixo\.com)|(application@quipage\.fr)|(application@quizdeamor\.com)|(application@quizdoamor\.com)|(application@quotient-retraite\.fr)|(application@recettes\.net)|(application@routenplaner-karten\.com)|(application@ruta-mapa\.com)|(application@satellite\.dev\.squel\.v2)|(application@search-bilan-imc\.fr)|(application@search-maps-finder\.com)|(application@slimness\.fr)|(application@start-bmi\.com)|(application@tests-moi\.com)|(application@tousmesjeux\.fr)|(application@toutlannuaire\.fr)|(application@tuto-diy\.com)|(application@ubersetzung-app\.com)|(application@uk-cookyummy\.com)|(application@uk-howlogin\.me)|(application@uk-myloap\.com)|(application@voyagevoyage\.co)|(application@wikimot\.fr)|(application@www\.plans-reduc\.fr)|(application@yummmi\.es)|(application@yummmies\.be)|(application@yummmies\.ch)|(application@yummmies\.fr)|(application@yummmies\.lu)|(application@zikplay\.fr)|(applicationY@search-maps-finder\.com)|(cmesapps@findizer\.fr)|(findizer-shopping@jetpack)|(\{8aaebb36-1488-4022-b7ec-29b790d12c17\})/">
+      <prefs/>
+      <versionRange minVersion="0" maxVersion="*" severity="3"/>
+    </emItem>
   </emItems>
   <pluginItems>
     <pluginItem blockID="p332">
       <match exp="libflashplayer\.so" name="filename"/>
       <match exp="^Shockwave Flash 11.(0|1) r[0-9]{1,3}$" name="description"/>
       <infoURL>https://get.adobe.com/flashplayer/</infoURL>
       <versionRange severity="0" vulnerabilitystatus="1">
         <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
--- a/browser/components/nsBrowserContentHandler.js
+++ b/browser/components/nsBrowserContentHandler.js
@@ -353,17 +353,22 @@ nsBrowserContentHandler.prototype = {
           if (uri instanceof Ci.nsINestedURI) {
             uri = uri.QueryInterface(Ci.nsINestedURI).innerMostURI;
           }
           return localSchemes.has(uri.scheme);
         };
         if (isLocal(resolvedURI)) {
           // If the URI is local, we are sure it won't wrongly inherit chrome privs
           let features = "chrome,dialog=no,all" + this.getFeatures(cmdLine);
-          Services.ww.openWindow(null, resolvedURI.spec, "_blank", features, null);
+          // Provide 1 null argument, as openWindow has a different behavior
+          // when the arg count is 0.
+          let argArray = Cc["@mozilla.org/array;1"]
+                           .createInstance(Ci.nsIMutableArray);
+          argArray.appendElement(null);
+          Services.ww.openWindow(null, resolvedURI.spec, "_blank", features, argArray);
           cmdLine.preventDefault = true;
         } else {
           dump("*** Preventing load of web URI as chrome\n");
           dump("    If you're trying to load a webpage, do not pass --chrome.\n");
         }
       } catch (e) {
         Cu.reportError(e);
       }
--- a/build/autoconf/toolchain.m4
+++ b/build/autoconf/toolchain.m4
@@ -93,17 +93,17 @@ dnl Updates to the test below should be 
 dnl cross-compiling case.
 AC_LANG_CPLUSPLUS
 if test "$GNU_CXX"; then
     AC_CACHE_CHECK([whether 64-bits std::atomic requires -latomic],
         ac_cv_needs_atomic,
         dnl x86 with clang is a little peculiar.  std::atomic does not require
         dnl linking with libatomic, but using atomic intrinsics does, so we
         dnl force the setting on for such systems.
-        if test "$CC_TYPE" = "clang" -a "$CPU_ARCH" = "x86"; then
+        if test "$CC_TYPE" = "clang" -a "$CPU_ARCH" = "x86" -a "$OS_ARCH" = "Linux"; then
             ac_cv_needs_atomic=yes
         else
             AC_TRY_LINK(
                 [#include <cstdint>
                  #include <atomic>],
                 [ std::atomic<uint64_t> foo; foo = 1; ],
                 ac_cv_needs_atomic=no,
                 _SAVE_LIBS="$LIBS"
--- a/devtools/client/accessibility/accessibility-panel.js
+++ b/devtools/client/accessibility/accessibility-panel.js
@@ -136,16 +136,20 @@ AccessibilityPanel.prototype = {
     this.shouldRefresh = false;
     this.postContentMessage("initialize", this._front, this._walker, this._isOldVersion);
   },
 
   selectAccessible(accessibleFront) {
     this.postContentMessage("selectAccessible", this._walker, accessibleFront);
   },
 
+  selectAccessibleForNode(nodeFront) {
+    this.postContentMessage("selectNodeAccessible", this._walker, nodeFront);
+  },
+
   highlightAccessible(accessibleFront) {
     this.postContentMessage("highlightAccessible", this._walker, accessibleFront);
   },
 
   postContentMessage(type, ...args) {
     const event = new this.panelWin.MessageEvent("devtools/chrome/message", {
       bubbles: true,
       cancelable: true,
--- a/devtools/client/accessibility/test/browser.ini
+++ b/devtools/client/accessibility/test/browser.ini
@@ -2,13 +2,14 @@
 tags = devtools
 subsuite = devtools
 support-files =
   head.js
   !/devtools/client/shared/test/shared-head.js
   !/devtools/client/inspector/test/shared-head.js
   !/devtools/client/shared/test/shared-redux-head.js
 
+[browser_accessibility_context_menu_inspector.js]
 [browser_accessibility_mutations.js]
 [browser_accessibility_reload.js]
 [browser_accessibility_sidebar.js]
 [browser_accessibility_tree.js]
 [browser_accessibility_tree_nagivation.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/accessibility/test/browser_accessibility_context_menu_inspector.js
@@ -0,0 +1,43 @@
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+const TEST_URI = "<h1 id=\"h1\">header</h1><p id=\"p\">paragraph</p>";
+
+addA11YPanelTask("Test show accessibility properties context menu.", TEST_URI,
+  async function testShowAccessibilityPropertiesContextMenu({ panel, toolbox }) {
+    let inspector = await toolbox.selectTool("inspector");
+
+    ok(inspector.selection.isBodyNode(), "Default selection is a body node.");
+    let menuUpdated = inspector.once("node-menu-updated");
+    let allMenuItems = openContextMenuAndGetAllItems(inspector);
+    let showA11YPropertiesNode = allMenuItems.find(item =>
+      item.id === "node-menu-showaccessibilityproperties");
+    ok(showA11YPropertiesNode,
+      "the popup menu now has a show accessibility properties item");
+    await menuUpdated;
+    ok(showA11YPropertiesNode.disabled, "Body node does not have accessible");
+
+    await selectNode("#h1", inspector, "test");
+    menuUpdated = inspector.once("node-menu-updated");
+    allMenuItems = openContextMenuAndGetAllItems(inspector);
+    showA11YPropertiesNode = allMenuItems.find(item =>
+      item.id === "node-menu-showaccessibilityproperties");
+    ok(showA11YPropertiesNode,
+      "the popup menu now has a show accessibility properties item");
+    await menuUpdated;
+    ok(!showA11YPropertiesNode.disabled, "Body node has an accessible");
+
+    info("Triggering 'Show Accessibility Properties' and waiting for " +
+         "accessibility panel to open");
+    let panelSelected = toolbox.once("accessibility-selected");
+    let objectSelected = panel.once("new-accessible-front-selected");
+    showA11YPropertiesNode.click();
+    await panelSelected;
+    let selected = await objectSelected;
+
+    let expectedSelected = await panel.walker.getAccessibleFor(
+      inspector.selection.nodeFront);
+    is(selected, expectedSelected, "Accessible front selected correctly");
+  });
--- a/devtools/client/accessibility/test/head.js
+++ b/devtools/client/accessibility/test/head.js
@@ -94,29 +94,34 @@ async function addTestTab(url) {
   // accessibility panel test can be too fast.
   await win.gToolbox.loadTool("inspector");
 
   return {
     tab,
     browser: tab.linkedBrowser,
     panel,
     win,
+    toolbox: panel._toolbox,
     doc,
     store
   };
 }
 
 /**
  * Turn off accessibility features from within the panel. We call it before the
  * cleanup function to make sure that the panel is still present.
  */
-function disableAccessibilityInspector(env) {
-  let { doc, win } = env;
+async function disableAccessibilityInspector(env) {
+  let { doc, win, panel } = env;
+  // Disable accessibility service through the panel and wait for the shutdown
+  // event.
+  let shutdown = panel._front.once("shutdown");
   EventUtils.sendMouseEvent({ type: "click" },
     doc.getElementById("accessibility-disable-button"), win);
+  await shutdown;
 }
 
 /**
  * Open the Accessibility panel for the given tab.
  *
  * @param {nsIDOMElement} tab
  *        Optional tab element for which you want open the Accessibility panel.
  *        The default tab is taken from the global variable |tab|.
@@ -237,17 +242,17 @@ async function runA11yPanelTests(tests, 
 }
 
 /**
  * Build a valid URL from an HTML snippet.
  * @param  {String} uri HTML snippet
  * @return {String}     built URL
  */
 function buildURL(uri) {
-  return `data:text/html,${encodeURIComponent(uri)}`;
+  return `data:text/html;charset=UTF-8,${encodeURIComponent(uri)}`;
 }
 
 /**
  * Add a test task based on the test structure and a test URL.
  * @param  {JSON}   tests  test data that has the format of:
  *                    {
  *                      desc     {String}    description for better logging
  *                      action   {Function}  An optional action that needs to be
@@ -255,25 +260,32 @@ function buildURL(uri) {
  *                                           tree and the sidebar can be checked
  *                      expected {JSON}      An expected states for the tree and
  *                                           the sidebar
  *                    }
  * @param {String}  uri    test URL
  * @param {String}  msg    a message that is printed for the test
  */
 function addA11yPanelTestsTask(tests, uri, msg) {
-  tests.push({
-    desc: "Disable accessibility inspector.",
-    action: env => disableAccessibilityInspector(env),
-    expected: {}
-  });
-  add_task(async function a11yPanelTests() {
+  addA11YPanelTask(msg, uri, env => runA11yPanelTests(tests, env));
+}
+
+/**
+ * A wrapper function around add_task that sets up the test environment, runs
+ * the test and then disables accessibility tools.
+ * @param {String}   msg    a message that is printed for the test
+ * @param {String}   uri    test URL
+ * @param {Function} task   task function containing the tests.
+ */
+function addA11YPanelTask(msg, uri, task) {
+  add_task(async function a11YPanelTask() {
     info(msg);
     let env = await addTestTab(buildURL(uri));
-    await runA11yPanelTests(tests, env);
+    await task(env);
+    await disableAccessibilityInspector(env);
   });
 }
 
 /**
  * Reload panel target.
  * @param  {Object} target             Panel target.
  * @param  {String} waitForTargetEvent Event to wait for after reload.
  */
--- a/devtools/client/inspector/inspector.js
+++ b/devtools/client/inspector/inspector.js
@@ -1561,32 +1561,66 @@ Inspector.prototype = {
       click: () => this.useInConsole(),
     }));
     menu.append(new MenuItem({
       id: "node-menu-showdomproperties",
       label: INSPECTOR_L10N.getStr("inspectorShowDOMProperties.label"),
       click: () => this.showDOMProperties(),
     }));
 
+    this.buildA11YMenuItem(menu);
+
     let nodeLinkMenuItems = this._getNodeLinkMenuItems();
     if (nodeLinkMenuItems.filter(item => item.visible).length > 0) {
       menu.append(new MenuItem({
         id: "node-menu-link-separator",
         type: "separator",
       }));
     }
 
     for (let menuitem of nodeLinkMenuItems) {
       menu.append(menuitem);
     }
 
     menu.popup(screenX, screenY, this._toolbox);
     return menu;
   },
 
+  buildA11YMenuItem: function(menu) {
+    if (!this.selection.isElementNode() ||
+        !Services.prefs.getBoolPref("devtools.accessibility.enabled")) {
+      return;
+    }
+
+    const showA11YPropsItem = new MenuItem({
+      id: "node-menu-showaccessibilityproperties",
+      label: INSPECTOR_L10N.getStr("inspectorShowAccessibilityProperties.label"),
+      click: () => this.showAccessibilityProperties(),
+      disabled: true
+    });
+    this._updateA11YMenuItem(showA11YPropsItem);
+    menu.append(showA11YPropsItem);
+  },
+
+  _updateA11YMenuItem: async function(menuItem) {
+    const hasMethod = await this.target.actorHasMethod("domwalker",
+                                                       "hasAccessibilityProperties");
+    if (!hasMethod) {
+      return;
+    }
+
+    const hasA11YProps = await this.walker.hasAccessibilityProperties(
+      this.selection.nodeFront);
+    if (hasA11YProps) {
+      this._toolbox.doc.getElementById(menuItem.id).disabled = menuItem.disabled = false;
+    }
+
+    this.emit("node-menu-updated");
+  },
+
   _getCopySubmenu: function(markupContainer, isSelectionElement) {
     let copySubmenu = new Menu();
     copySubmenu.append(new MenuItem({
       id: "node-menu-copyinner",
       label: INSPECTOR_L10N.getStr("inspectorCopyInnerHTML.label"),
       accesskey: INSPECTOR_L10N.getStr("inspectorCopyInnerHTML.accesskey"),
       disabled: !isSelectionElement,
       click: () => this.copyInnerHTML(),
@@ -1949,16 +1983,28 @@ Inspector.prototype = {
       let jsterm = panel.hud.jsterm;
 
       jsterm.execute("inspect($0)");
       jsterm.focus();
     });
   },
 
   /**
+   * Show Accessibility properties for currently selected node
+   */
+  async showAccessibilityProperties() {
+    let a11yPanel = await this._toolbox.selectTool("accessibility");
+    // Select the accessible object in the panel and wait for the event that
+    // tells us it has been done.
+    let onSelected = a11yPanel.once("new-accessible-front-selected");
+    a11yPanel.selectAccessibleForNode(this.selection.nodeFront);
+    await onSelected;
+  },
+
+  /**
    * Use in Console.
    *
    * Takes the currently selected node in the inspector and assigns it to a
    * temp variable on the content window.  Also opens the split console and
    * autofills it with the temp variable.
    */
   useInConsole: function() {
     this._toolbox.openSplitConsole().then(() => {
--- a/devtools/client/inspector/test/head.js
+++ b/devtools/client/inspector/test/head.js
@@ -745,36 +745,16 @@ async function assertTooltipHiddenOnMous
   target.parentNode.dispatchEvent(mouseEvent);
 
   await tooltip.once("hidden");
 
   ok(!tooltip.isVisible(), "The tooltip is hidden on mouseout");
 }
 
 /**
- * Open the inspector menu and return all of it's items in a flat array
- * @param {InspectorPanel} inspector
- * @param {Object} options to pass into openMenu
- * @return An array of MenuItems
- */
-function openContextMenuAndGetAllItems(inspector, options) {
-  let menu = inspector._openMenu(options);
-
-  // Flatten all menu items into a single array to make searching through it easier
-  let allItems = [].concat.apply([], menu.items.map(function addItem(item) {
-    if (item.submenu) {
-      return addItem(item.submenu.items);
-    }
-    return item;
-  }));
-
-  return allItems;
-}
-
-/**
  * Get the rule editor from the rule-view given its index
  *
  * @param {CssRuleView} view
  *        The instance of the rule-view panel
  * @param {Number} childrenIndex
  *        The children index of the element to get
  * @param {Number} nodeIndex
  *        The child node index of the element to get
--- a/devtools/client/inspector/test/shared-head.js
+++ b/devtools/client/inspector/test/shared-head.js
@@ -568,26 +568,43 @@ var setSearchFilter = async function(vie
   for (let key of searchValue.split("")) {
     EventUtils.synthesizeKey(key, {}, view.styleWindow);
   }
 
   await view.inspector.once("ruleview-filtered");
 };
 
 /**
- * Open the style editor context menu and return all of it's items in a flat array
- * @param {CssRuleView} view
- *        The instance of the rule-view panel
- * @return An array of MenuItems
+ * Flatten all context menu items into a single array to make searching through
+ * it easier.
  */
-function openStyleContextMenuAndGetAllItems(view, target) {
-  let menu = view._contextmenu._openMenu({target: target});
-
-  // Flatten all menu items into a single array to make searching through it easier
-  let allItems = [].concat.apply([], menu.items.map(function addItem(item) {
+function buildContextMenuItems(menu) {
+  const allItems = [].concat.apply([], menu.items.map(function addItem(item) {
     if (item.submenu) {
       return addItem(item.submenu.items);
     }
     return item;
   }));
 
   return allItems;
 }
+
+/**
+ * Open the style editor context menu and return all of it's items in a flat array
+ * @param {CssRuleView} view
+ *        The instance of the rule-view panel
+ * @return An array of MenuItems
+ */
+function openStyleContextMenuAndGetAllItems(view, target) {
+  const menu = view._contextmenu._openMenu({target: target});
+  return buildContextMenuItems(menu);
+}
+
+/**
+ * Open the inspector menu and return all of it's items in a flat array
+ * @param {InspectorPanel} inspector
+ * @param {Object} options to pass into openMenu
+ * @return An array of MenuItems
+ */
+function openContextMenuAndGetAllItems(inspector, options) {
+  const menu = inspector._openMenu(options);
+  return buildContextMenuItems(menu);
+}
--- a/devtools/client/locales/en-US/inspector.properties
+++ b/devtools/client/locales/en-US/inspector.properties
@@ -296,16 +296,23 @@ inspectorSearchHTML.label3=Search HTML
 inspectorImageDataUri.label=Image Data-URL
 
 # LOCALIZATION NOTE (inspectorShowDOMProperties.label): This is the label
 # shown in the inspector contextual-menu for the item that lets users see
 # the DOM properties of the current node. When triggered, this item
 # opens the split Console and displays the properties in its side panel.
 inspectorShowDOMProperties.label=Show DOM Properties
 
+# LOCALIZATION NOTE (inspectorShowAccessibilityProperties.label): This is the
+# label shown in the inspector contextual-menu for the item that lets users see
+# the accessibility tree and accessibility properties of the current node.
+# When triggered, this item opens accessibility panel and selects an accessible
+# object for the given node.
+inspectorShowAccessibilityProperties.label=Show Accessibility Properties
+
 # LOCALIZATION NOTE (inspectorUseInConsole.label): This is the label
 # shown in the inspector contextual-menu for the item that outputs a
 # variable for the current node to the console. When triggered,
 # this item opens the split Console.
 inspectorUseInConsole.label=Use in Console
 
 # LOCALIZATION NOTE (inspectorExpandNode.label): This is the label
 # shown in the inspector contextual-menu for recursively expanding
--- a/devtools/server/actors/inspector/walker.js
+++ b/devtools/server/actors/inspector/walker.js
@@ -1,15 +1,15 @@
 /* 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 {Ci, Cu} = require("chrome");
+const {Cc, Ci, Cu} = require("chrome");
 
 const Services = require("Services");
 const protocol = require("devtools/shared/protocol");
 const {walkerSpec} = require("devtools/shared/specs/inspector");
 const {LongStringActor} = require("devtools/server/actors/string");
 const InspectorUtils = require("InspectorUtils");
 
 loader.lazyRequireGetter(this, "getFrameElement", "devtools/shared/layout/utils", true);
@@ -2009,11 +2009,26 @@ var WalkerActor = protocol.ActorClassWit
     let offsetParent = node.rawNode.offsetParent;
 
     if (!offsetParent) {
       return null;
     }
 
     return this._ref(offsetParent);
   },
+
+  /**
+   * Returns true if accessibility service is running and the node has a
+   * corresponding valid accessible object.
+   */
+  hasAccessibilityProperties: async function(node) {
+    if (isNodeDead(node) || !Services.appinfo.accessibilityEnabled) {
+      return false;
+    }
+
+    const accService = Cc["@mozilla.org/accessibilityService;1"].getService(
+      Ci.nsIAccessibilityService);
+    const acc = accService.getAccessibleFor(node.rawNode);
+    return acc && acc.indexInParent > -1;
+  },
 });
 
 exports.WalkerActor = WalkerActor;
--- a/devtools/server/actors/thread.js
+++ b/devtools/server/actors/thread.js
@@ -343,95 +343,97 @@ const ThreadActor = ActorClassWithSpec(t
    * @param Debugger.Frame frame
    *        The newest debuggee frame in the stack.
    * @param object reason
    *        An object with a 'type' property containing the reason for the pause.
    * @param function onPacket
    *        Hook to modify the packet before it is sent. Feel free to return a
    *        promise.
    */
-  _pauseAndRespond: function(frame, reason, onPacket = function(k) {
-    return k;
-  }) {
+  _pauseAndRespond: async function(frame, reason, onPacket = k => k) {
     try {
       let packet = this._paused(frame);
       if (!packet) {
         return undefined;
       }
       packet.why = reason;
 
       let generatedLocation = this.sources.getFrameLocation(frame);
-      this.sources.getOriginalLocation(generatedLocation)
-                  .then((originalLocation) => {
-                    if (!originalLocation.originalSourceActor) {
+      this.sources.getOriginalLocation(generatedLocation).then((originalLocation) => {
+        if (!originalLocation.originalSourceActor) {
           // The only time the source actor will be null is if there
           // was a sourcemap and it tried to look up the original
           // location but there was no original URL. This is a strange
           // scenario so we simply don't pause.
-                      DevToolsUtils.reportException(
+          DevToolsUtils.reportException(
             "ThreadActor",
             new Error("Attempted to pause in a script with a sourcemap but " +
                       "could not find original location.")
           );
-
-                      return undefined;
-                    }
+          return undefined;
+        }
 
-                    packet.frame.where = {
-                      source: originalLocation.originalSourceActor.form(),
-                      line: originalLocation.originalLine,
-                      column: originalLocation.originalColumn
-                    };
-                    Promise.resolve(onPacket(packet))
+        packet.frame.where = {
+          source: originalLocation.originalSourceActor.form(),
+          line: originalLocation.originalLine,
+          column: originalLocation.originalColumn
+        };
+
+        Promise.resolve(onPacket(packet))
           .catch(error => {
             reportError(error);
             return {
               error: "unknownError",
               message: error.message + "\n" + error.stack
             };
           })
           .then(pkt => {
             this.conn.send(pkt);
           });
 
-                    return undefined;
-                  });
+        return undefined;
+      });
 
       this._pushThreadPause();
     } catch (e) {
       reportError(e, "Got an exception during TA__pauseAndRespond: ");
     }
 
     // If the browser tab has been closed, terminate the debuggee script
     // instead of continuing. Executing JS after the content window is gone is
     // a bad idea.
     return this._tabClosed ? null : undefined;
   },
 
   _makeOnEnterFrame: function({ pauseAndRespond }) {
     return frame => {
       const generatedLocation = this.sources.getFrameLocation(frame);
       let { originalSourceActor } = this.unsafeSynchronize(
-        this.sources.getOriginalLocation(generatedLocation));
+        this.sources.getOriginalLocation(generatedLocation)
+      );
+
       let url = originalSourceActor.url;
 
-      return this.sources.isBlackBoxed(url)
-        ? undefined
-        : pauseAndRespond(frame);
+      if (this.sources.isBlackBoxed(url)) {
+        return undefined;
+      }
+
+      return pauseAndRespond(frame);
     };
   },
 
   _makeOnPop: function({ thread, pauseAndRespond, createValueGrip: createValueGripHook,
                           startLocation }) {
     const result = function(completion) {
       // onPop is called with 'this' set to the current frame.
-
       const generatedLocation = thread.sources.getFrameLocation(this);
       const { originalSourceActor } = thread.unsafeSynchronize(
-        thread.sources.getOriginalLocation(generatedLocation));
+        thread.sources.getOriginalLocation(generatedLocation)
+      );
+
       const url = originalSourceActor.url;
 
       if (thread.sources.isBlackBoxed(url)) {
         return undefined;
       }
 
       // Note that we're popping this frame; we need to watch for
       // subsequent step events on its caller.
@@ -460,22 +462,20 @@ const ThreadActor = ActorClassWithSpec(t
     // frame, if we did we'd also have to find the appropriate spot to
     // clear it.
     result.originalLocation = startLocation;
 
     return result;
   },
 
   _makeOnStep: function({ thread, pauseAndRespond, startFrame,
-                           startLocation, steppingType }) {
+                          startLocation, steppingType }) {
     // Breaking in place: we should always pause.
     if (steppingType === "break") {
-      return function() {
-        return pauseAndRespond(this);
-      };
+      return () => pauseAndRespond(this);
     }
 
     // Otherwise take what a "step" means into consideration.
     return function() {
       // onStep is called with 'this' set to the current frame.
 
       // Only allow stepping stops at entry points for the line, when
       // the stepping occurs in a single frame.  The "same frame"
@@ -484,18 +484,19 @@ const ThreadActor = ActorClassWithSpec(t
       // is a call "a(b())" and the user steps into b, then this
       // condition makes it possible to step out of b and into a.
       if (this === startFrame &&
           !this.script.getOffsetLocation(this.offset).isEntryPoint) {
         return undefined;
       }
 
       const generatedLocation = thread.sources.getFrameLocation(this);
-      const newLocation = thread.unsafeSynchronize(thread.sources.getOriginalLocation(
-        generatedLocation));
+      const newLocation = thread.unsafeSynchronize(
+        thread.sources.getOriginalLocation(generatedLocation)
+      );
 
       // Cases when we should pause because we have executed enough to consider
       // a "step" to have occured:
       //
       // 1.1. We change frames.
       // 1.2. We change URLs (can happen without changing frames thanks to
       //      source mapping).
       // 1.3. The source has pause points and we change locations.
@@ -554,21 +555,22 @@ const ThreadActor = ActorClassWithSpec(t
    * Define the JS hook functions for stepping.
    */
   _makeSteppingHooks: function(startLocation, steppingType) {
     // Bind these methods and state because some of the hooks are called
     // with 'this' set to the current frame. Rather than repeating the
     // binding in each _makeOnX method, just do it once here and pass it
     // in to each function.
     const steppingHookState = {
-      pauseAndRespond: (frame, onPacket = k=>k) => {
-        return this._pauseAndRespond(frame, { type: "resumeLimit" }, onPacket);
-      },
-      createValueGrip: v => createValueGrip(v, this._pausePool,
-        this.objectGrip),
+      pauseAndRespond: (frame, onPacket = k=>k) => this._pauseAndRespond(
+        frame,
+        { type: "resumeLimit" },
+        onPacket
+      ),
+      createValueGrip: v => createValueGrip(v, this._pausePool, this.objectGrip),
       thread: this,
       startFrame: this.youngestFrame,
       startLocation: startLocation,
       steppingType: steppingType
     };
 
     return {
       onEnterFrame: this._makeOnEnterFrame(steppingHookState),
@@ -581,51 +583,52 @@ const ThreadActor = ActorClassWithSpec(t
    * Handle attaching the various stepping hooks we need to attach when we
    * receive a resume request with a resumeLimit property.
    *
    * @param Object request
    *        The request packet received over the RDP.
    * @returns A promise that resolves to true once the hooks are attached, or is
    *          rejected with an error packet.
    */
-  _handleResumeLimit: function(request) {
+  _handleResumeLimit: async function(request) {
     let steppingType = request.resumeLimit.type;
     if (!["break", "step", "next", "finish"].includes(steppingType)) {
-      return Promise.reject({ error: "badParameterType",
-                              message: "Unknown resumeLimit type" });
+      return Promise.reject({
+        error: "badParameterType",
+        message: "Unknown resumeLimit type"
+      });
     }
 
     const generatedLocation = this.sources.getFrameLocation(this.youngestFrame);
-    return this.sources.getOriginalLocation(generatedLocation)
-      .then(originalLocation => {
-        const { onEnterFrame, onPop, onStep } = this._makeSteppingHooks(originalLocation,
-                                                                        steppingType);
+    const originalLocation = await this.sources.getOriginalLocation(generatedLocation);
+    const { onEnterFrame, onPop, onStep } = this._makeSteppingHooks(
+      originalLocation,
+      steppingType
+    );
 
-        // Make sure there is still a frame on the stack if we are to continue
-        // stepping.
-        let stepFrame = this._getNextStepFrame(this.youngestFrame);
-        if (stepFrame) {
-          switch (steppingType) {
-            case "step":
-              this.dbg.onEnterFrame = onEnterFrame;
-              // Fall through.
-            case "break":
-            case "next":
-              if (stepFrame.script) {
-                stepFrame.onStep = onStep;
-              }
-              stepFrame.onPop = onPop;
-              break;
-            case "finish":
-              stepFrame.onPop = onPop;
+    // Make sure there is still a frame on the stack if we are to continue stepping.
+    let stepFrame = this._getNextStepFrame(this.youngestFrame);
+    if (stepFrame) {
+      switch (steppingType) {
+        case "step":
+          this.dbg.onEnterFrame = onEnterFrame;
+          // Fall through.
+        case "break":
+        case "next":
+          if (stepFrame.script) {
+            stepFrame.onStep = onStep;
           }
-        }
+          stepFrame.onPop = onPop;
+          break;
+        case "finish":
+          stepFrame.onPop = onPop;
+      }
+    }
 
-        return true;
-      });
+    return true;
   },
 
   /**
    * Clear the onStep and onPop hooks from the given frame and all of the frames
    * below it.
    *
    * @param Debugger.Frame aFrame
    *        The frame we want to clear the stepping hooks from.
@@ -1340,24 +1343,33 @@ const ThreadActor = ActorClassWithSpec(t
    * Return a protocol completion value representing the given
    * Debugger-provided completion value.
    */
   createProtocolCompletionValue: function(completion) {
     let protoValue = {};
     if (completion == null) {
       protoValue.terminated = true;
     } else if ("return" in completion) {
-      protoValue.return = createValueGrip(completion.return,
-        this._pausePool, this.objectGrip);
+      protoValue.return = createValueGrip(
+        completion.return,
+        this._pausePool,
+        this.objectGrip
+      );
     } else if ("throw" in completion) {
-      protoValue.throw = createValueGrip(completion.throw,
-        this._pausePool, this.objectGrip);
+      protoValue.throw = createValueGrip(
+        completion.throw,
+        this._pausePool,
+        this.objectGrip
+      );
     } else {
-      protoValue.return = createValueGrip(completion.yield,
-        this._pausePool, this.objectGrip);
+      protoValue.return = createValueGrip(
+        completion.yield,
+        this._pausePool,
+        this.objectGrip
+      );
     }
     return protoValue;
   },
 
   /**
    * Create a grip for the given debuggee object.
    *
    * @param value Debugger.Object
--- a/devtools/shared/specs/inspector.js
+++ b/devtools/shared/specs/inspector.js
@@ -325,16 +325,24 @@ const walkerSpec = generateActorSpec({
     getOffsetParent: {
       request: {
         node: Arg(0, "nullable:domnode")
       },
       response: {
         node: RetVal("nullable:domnode")
       }
     },
+    hasAccessibilityProperties: {
+      request: {
+        node: Arg(0, "nullable:domnode")
+      },
+      response: {
+        value: RetVal("boolean")
+      }
+    }
   }
 });
 
 exports.walkerSpec = walkerSpec;
 
 const inspectorSpec = generateActorSpec({
   typeName: "inspector",
 
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -10135,25 +10135,25 @@ nsContentUtils::RegisterUnresolvedElemen
   registry->RegisterUnresolvedElement(aElement, aTypeName);
 }
 
 /* static */ void
 nsContentUtils::UnregisterUnresolvedElement(Element* aElement)
 {
   MOZ_ASSERT(aElement);
 
-  RefPtr<nsAtom> typeAtom =
+  nsAtom* typeAtom =
     aElement->GetCustomElementData()->GetCustomElementType();
   nsIDocument* doc = aElement->OwnerDoc();
   nsPIDOMWindowInner* window(doc->GetInnerWindow());
   if (!window) {
     return;
   }
 
-  RefPtr<CustomElementRegistry> registry(window->CustomElements());
+  CustomElementRegistry* registry = window->CustomElements();
   if (!registry) {
     return;
   }
 
   registry->UnregisterUnresolvedElement(aElement, typeAtom);
 }
 
 /* static */ void
--- a/dom/ipc/ContentChild.cpp
+++ b/dom/ipc/ContentChild.cpp
@@ -541,37 +541,30 @@ StaticAutoPtr<ContentChild::ShutdownCana
 ContentChild::ContentChild()
  : mID(uint64_t(-1))
 #if defined(XP_WIN) && defined(ACCESSIBILITY)
  , mMainChromeTid(0)
  , mMsaaID(0)
 #endif
  , mIsAlive(true)
  , mShuttingDown(false)
- , mShutdownTimeout(0)
 {
   // This process is a content process, so it's clearly running in
   // multiprocess mode!
   nsDebugImpl::SetMultiprocessMode("Child");
 
   // When ContentChild is created, the observer service does not even exist.
   // When ContentChild::RecvSetXPCOMProcessAttributes is called (the first
   // IPDL call made on this object), shutdown may have already happened. Thus
   // we create a canary here that relies upon getting cleared if shutdown
   // happens without requiring the observer service at this time.
   if (!sShutdownCanary) {
     sShutdownCanary = new ShutdownCanary();
     ClearOnShutdown(&sShutdownCanary, ShutdownPhase::Shutdown);
   }
-  // If a shutdown message is received from within a nested event loop, we set
-  // the timeout for the nested event loop to half the ForceKillTimer timeout
-  // (in ms) to leave enough time to send the FinishShutdown message to the
-  // parent.
-  mShutdownTimeout =
-    Preferences::GetInt("dom.ipc.tabs.shutdownTimeoutSecs", 5) * 1000 / 2;
 }
 
 #ifdef _MSC_VER
 #pragma warning(push)
 #pragma warning(disable:4722) /* Silence "destructor never returns" warning */
 #endif
 
 ContentChild::~ContentChild()
@@ -3015,42 +3008,38 @@ ContentChild::RecvShutdown()
 
   ShutdownInternal();
   return IPC_OK();
 }
 
 void
 ContentChild::ShutdownInternal()
 {
-  CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCShutdownState"),
-                                     NS_LITERAL_CSTRING("RecvShutdown"));
-
   // If we receive the shutdown message from within a nested event loop, we want
   // to wait for that event loop to finish. Otherwise we could prematurely
   // terminate an "unload" or "pagehide" event handler (which might be doing a
-  // sync XHR, for example). However, we need to strike a balance and shut down
-  // within a reasonable amount of time (mShutdownTimeout) or the ForceKillTimer
-  // in the parent will execute and kill us hard.
+  // sync XHR, for example).
+  CrashReporter::AnnotateCrashReport(NS_LITERAL_CSTRING("IPCShutdownState"),
+                                     NS_LITERAL_CSTRING("RecvShutdown"));
+
+  MOZ_ASSERT(NS_IsMainThread());
+  RefPtr<nsThread> mainThread = nsThreadManager::get().GetCurrentThread();
   // Note that we only have to check the recursion count for the current
   // cooperative thread. Since the Shutdown message is not labeled with a
   // SchedulerGroup, there can be no other cooperative threads doing work while
   // we're running.
-  MOZ_ASSERT(NS_IsMainThread());
-  RefPtr<nsThread> mainThread = nsThreadManager::get().GetCurrentThread();
-  if (mainThread && mainThread->RecursionDepth() > 1 && mShutdownTimeout > 0) {
+  if (mainThread && mainThread->RecursionDepth() > 1) {
     // We're in a nested event loop. Let's delay for an arbitrary period of
     // time (100ms) in the hopes that the event loop will have finished by
     // then.
-    int32_t delay = 100;
     MessageLoop::current()->PostDelayedTask(
       NewRunnableMethod(
         "dom::ContentChild::RecvShutdown", this,
         &ContentChild::ShutdownInternal),
-      delay);
-    mShutdownTimeout -= delay;
+      100);
     return;
   }
 
   mShuttingDown = true;
 
 #ifdef NIGHTLY_BUILD
   HangMonitor::UnregisterAnnotator(PendingInputEventHangAnnotator::sSingleton);
 #endif
--- a/dom/ipc/ContentChild.h
+++ b/dom/ipc/ContentChild.h
@@ -823,17 +823,16 @@ private:
   // Hashtable to keep track of the pending file creation.
   // These items are removed when RecvFileCreationResponse is received.
   nsRefPtrHashtable<nsIDHashKey, FileCreatorHelper> mFileCreationPending;
 
 
   nsClassHashtable<nsUint64HashKey, AnonymousTemporaryFileCallback> mPendingAnonymousTemporaryFiles;
 
   mozilla::Atomic<bool> mShuttingDown;
-  int32_t mShutdownTimeout;
 
 #ifdef NIGHTLY_BUILD
   // NOTE: This member is atomic because it can be accessed from off-main-thread.
   mozilla::Atomic<uint32_t> mPendingInputEvents;
 #endif
 
   DISALLOW_EVIL_CONSTRUCTORS(ContentChild);
 };
--- a/dom/serviceworkers/ServiceWorkerManager.cpp
+++ b/dom/serviceworkers/ServiceWorkerManager.cpp
@@ -82,16 +82,17 @@
 #include "ServiceWorkerRegistrar.h"
 #include "ServiceWorkerRegistration.h"
 #include "ServiceWorkerRegistrationListener.h"
 #include "ServiceWorkerScriptCache.h"
 #include "ServiceWorkerEvents.h"
 #include "ServiceWorkerUnregisterJob.h"
 #include "ServiceWorkerUpdateJob.h"
 #include "ServiceWorkerUpdaterChild.h"
+#include "ServiceWorkerUtils.h"
 
 #ifdef PostMessage
 #undef PostMessage
 #endif
 
 using namespace mozilla;
 using namespace mozilla::dom;
 using namespace mozilla::ipc;
@@ -191,37 +192,38 @@ PopulateRegistrationData(nsIPrincipal* a
 
   nsresult rv = PrincipalToPrincipalInfo(aPrincipal, &aData.principal());
   if (NS_WARN_IF(NS_FAILED(rv))) {
     return rv;
   }
 
   aData.scope() = aRegistration->Scope();
 
-  RefPtr<ServiceWorkerInfo> newest = aRegistration->Newest();
-  if (NS_WARN_IF(!newest)) {
+  // TODO: When bug 1426401 is implemented we will need to handle more
+  //       than just the active worker here.
+  RefPtr<ServiceWorkerInfo> active = aRegistration->GetActive();
+  MOZ_ASSERT(active);
+  if (NS_WARN_IF(!active)) {
     return NS_ERROR_FAILURE;
   }
 
-  if (aRegistration->GetActive()) {
-    aData.currentWorkerURL() = aRegistration->GetActive()->ScriptSpec();
-    aData.cacheName() = aRegistration->GetActive()->CacheName();
-    aData.currentWorkerHandlesFetch() = aRegistration->GetActive()->HandlesFetch();
-
-    aData.currentWorkerInstalledTime() =
-      aRegistration->GetActive()->GetInstalledTime();
-    aData.currentWorkerActivatedTime() =
-      aRegistration->GetActive()->GetActivatedTime();
-  }
+  aData.currentWorkerURL() = active->ScriptSpec();
+  aData.cacheName() = active->CacheName();
+  aData.currentWorkerHandlesFetch() = active->HandlesFetch();
+
+  aData.currentWorkerInstalledTime() = active->GetInstalledTime();
+  aData.currentWorkerActivatedTime() = active->GetActivatedTime();
 
   aData.updateViaCache() =
     static_cast<uint32_t>(aRegistration->GetUpdateViaCache());
 
   aData.lastUpdateTime() = aRegistration->GetLastUpdateTime();
 
+  MOZ_ASSERT(ServiceWorkerRegistrationDataIsValid(aData));
+
   return NS_OK;
 }
 
 class TeardownRunnable final : public Runnable
 {
 public:
   explicit TeardownRunnable(ServiceWorkerManagerChild* aActor)
     : Runnable("dom::ServiceWorkerManager::TeardownRunnable")
--- a/dom/serviceworkers/ServiceWorkerRegisterJob.cpp
+++ b/dom/serviceworkers/ServiceWorkerRegisterJob.cpp
@@ -35,23 +35,18 @@ ServiceWorkerRegisterJob::AsyncExecute()
 
   RefPtr<ServiceWorkerRegistrationInfo> registration =
     swm->GetRegistration(mPrincipal, mScope);
 
   if (registration) {
     bool sameUVC = GetUpdateViaCache() == registration->GetUpdateViaCache();
     registration->SetUpdateViaCache(GetUpdateViaCache());
 
-    // If we are resurrecting an uninstalling registration, then persist
-    // it to disk again.  We preemptively removed it earlier during
-    // unregister so that closing the window by shutting down the browser
-    // results in the registration being gone on restart.
     if (registration->IsPendingUninstall()) {
       registration->ClearPendingUninstall();
-      swm->StoreRegistration(mPrincipal, registration);
       // Its possible that a ready promise is created between when the
       // uninstalling flag is set and when we resurrect the registration
       // here.  In that case we might need to fire the ready promise
       // now.
       swm->CheckPendingReadyPromises();
     }
     RefPtr<ServiceWorkerInfo> newest = registration->Newest();
     if (newest && mScriptSpec.Equals(newest->ScriptSpec()) && sameUVC) {
--- a/dom/serviceworkers/ServiceWorkerRegistrar.cpp
+++ b/dom/serviceworkers/ServiceWorkerRegistrar.cpp
@@ -684,16 +684,22 @@ ServiceWorkerRegistrar::ReadData()
       return NS_ERROR_FAILURE;
     }
   }
 
   stream->Close();
 
   // Copy data over to mData.
   for (uint32_t i = 0; i < tmpData.Length(); ++i) {
+    // Older versions could sometimes write out empty, useless entries.
+    // Prune those here.
+    if (!ServiceWorkerRegistrationDataIsValid(tmpData[i])) {
+      continue;
+    }
+
     bool match = false;
     if (dedupe) {
       MOZ_ASSERT(overwrite);
       // If this is an old profile, then we might need to deduplicate.  In
       // theory this can be removed in the future (Bug 1248449)
       for (uint32_t j = 0; j < mData.Length(); ++j) {
         // Use same comparison as RegisterServiceWorker. Scope contains
         // basic origin information.  Combine with any principal attributes.
@@ -774,16 +780,17 @@ ServiceWorkerRegistrar::RegisterServiceW
     if (Equivalent(aData, mData[i])) {
       mData[i] = aData;
       found = true;
       break;
     }
   }
 
   if (!found) {
+    MOZ_ASSERT(ServiceWorkerRegistrationDataIsValid(aData));
     mData.AppendElement(aData);
   }
 }
 
 class ServiceWorkerRegistrarSaveDataRunnable final : public Runnable
 {
 public:
   ServiceWorkerRegistrarSaveDataRunnable()
@@ -951,16 +958,22 @@ ServiceWorkerRegistrar::WriteData()
     return rv;
   }
 
   if (count != buffer.Length()) {
     return NS_ERROR_UNEXPECTED;
   }
 
   for (uint32_t i = 0, len = data.Length(); i < len; ++i) {
+    // We have an assertion further up the stack, but as a last
+    // resort avoid writing out broken entries here.
+    if (!ServiceWorkerRegistrationDataIsValid(data[i])) {
+      continue;
+    }
+
     const mozilla::ipc::PrincipalInfo& info = data[i].principal();
 
     MOZ_ASSERT(info.type() == mozilla::ipc::PrincipalInfo::TContentPrincipalInfo);
 
     const mozilla::ipc::ContentPrincipalInfo& cInfo =
       info.get_ContentPrincipalInfo();
 
     nsAutoCString suffix;
--- a/dom/serviceworkers/ServiceWorkerRegistrationInfo.cpp
+++ b/dom/serviceworkers/ServiceWorkerRegistrationInfo.cpp
@@ -136,16 +136,26 @@ void
 ServiceWorkerRegistrationInfo::SetPendingUninstall()
 {
   mPendingUninstall = true;
 }
 
 void
 ServiceWorkerRegistrationInfo::ClearPendingUninstall()
 {
+  // If we are resurrecting an uninstalling registration, then persist
+  // it to disk again.  We preemptively removed it earlier during
+  // unregister so that closing the window by shutting down the browser
+  // results in the registration being gone on restart.
+  if (mPendingUninstall && mActiveWorker) {
+    RefPtr<ServiceWorkerManager> swm = ServiceWorkerManager::GetInstance();
+    if (swm) {
+      swm->StoreRegistration(mPrincipal, this);
+    }
+  }
   mPendingUninstall = false;
 }
 
 NS_IMPL_ISUPPORTS(ServiceWorkerRegistrationInfo, nsIServiceWorkerRegistrationInfo)
 
 NS_IMETHODIMP
 ServiceWorkerRegistrationInfo::GetPrincipal(nsIPrincipal** aPrincipal)
 {
@@ -602,22 +612,18 @@ ServiceWorkerRegistrationInfo::Transitio
 
   UpdateRegistrationState();
 
   mWaitingWorker->UpdateState(ServiceWorkerState::Installed);
   mWaitingWorker->UpdateInstalledTime();
 
   NotifyChromeRegistrationListeners();
 
-  RefPtr<ServiceWorkerManager> swm = ServiceWorkerManager::GetInstance();
-  if (!swm) {
-    // browser shutdown began
-    return;
-  }
-  swm->StoreRegistration(mPrincipal, this);
+  // TODO: When bug 1426401 is implemented we will need to call
+  //       StoreRegistration() here to persist the waiting worker.
 }
 
 void
 ServiceWorkerRegistrationInfo::SetActive(ServiceWorkerInfo* aServiceWorker)
 {
   MOZ_ASSERT(NS_IsMainThread());
   MOZ_ASSERT(aServiceWorker);
 
--- a/dom/serviceworkers/ServiceWorkerUtils.cpp
+++ b/dom/serviceworkers/ServiceWorkerUtils.cpp
@@ -27,10 +27,18 @@ ServiceWorkerParentInterceptEnabled()
                                  "dom.serviceWorkers.parent_intercept",
                                  false);
     sInit = true;
   }
 
   return sEnabled;
 }
 
+bool
+ServiceWorkerRegistrationDataIsValid(const ServiceWorkerRegistrationData& aData)
+{
+  return !aData.scope().IsEmpty() &&
+         !aData.currentWorkerURL().IsEmpty() &&
+         !aData.cacheName().IsEmpty();
+}
+
 } // namespace dom
 } // namespace mozilla
--- a/dom/serviceworkers/ServiceWorkerUtils.h
+++ b/dom/serviceworkers/ServiceWorkerUtils.h
@@ -7,20 +7,24 @@
 #define _mozilla_dom_ServiceWorkerUtils_h
 
 #include "mozilla/MozPromise.h"
 #include "mozilla/dom/ServiceWorkerRegistrationDescriptor.h"
 
 namespace mozilla {
 namespace dom {
 
+class ServiceWorkerRegistrationData;
 class ServiceWorkerRegistrationDescriptor;
 
 typedef MozPromise<ServiceWorkerRegistrationDescriptor, nsresult, false>
         ServiceWorkerRegistrationPromise;
 
 bool
 ServiceWorkerParentInterceptEnabled();
 
+bool
+ServiceWorkerRegistrationDataIsValid(const ServiceWorkerRegistrationData& aData);
+
 } // namespace dom
 } // namespace mozilla
 
 #endif // _mozilla_dom_ServiceWorkerUtils_h
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/ion/bug1450796.js
@@ -0,0 +1,7 @@
+function f() {
+    var t = new Float32Array(1);
+    t[t.length] = 1;
+    return t[t.length];
+}
+for (var i = 0; i < 5; i++)
+    assertEq(f(), undefined);
--- a/js/src/jit/CodeGenerator.cpp
+++ b/js/src/jit/CodeGenerator.cpp
@@ -10232,24 +10232,21 @@ CodeGenerator::link(JSContext* cx, Compi
 
     if (!linkSharedStubs(cx))
         return false;
 
     // Check to make sure we didn't have a mid-build invalidation. If so, we
     // will trickle to jit::Compile() and return Method_Skipped.
     uint32_t warmUpCount = script->getWarmUpCount();
 
-    JitRuntime* jrt = cx->runtime()->jitRuntime();
-    IonCompilationId compilationId = jrt->nextCompilationId();
-#ifdef DEBUG
-    jrt->currentCompilationId().emplace(compilationId);
-    auto resetCurrentId = mozilla::MakeScopeExit([jrt] {
-        jrt->currentCompilationId().reset();
+    IonCompilationId compilationId = cx->runtime()->jitRuntime()->nextCompilationId();
+    cx->zone()->types.currentCompilationIdRef().emplace(compilationId);
+    auto resetCurrentId = mozilla::MakeScopeExit([cx] {
+        cx->zone()->types.currentCompilationIdRef().reset();
     });
-#endif
 
     // Record constraints. If an error occured, returns false and potentially
     // prevent future compilations. Otherwise, if an invalidation occured, then
     // skip the current compilation.
     bool isValid = false;
     if (!FinishCompilation(cx, script, constraints, compilationId, &isValid))
         return false;
     if (!isValid)
--- a/js/src/jit/Ion.cpp
+++ b/js/src/jit/Ion.cpp
@@ -2865,17 +2865,17 @@ jit::Invalidate(TypeZone& types, FreeOp*
 
     // Add an invalidation reference to all invalidated IonScripts to indicate
     // to the traversal which frames have been invalidated.
     size_t numInvalidations = 0;
     for (const RecompileInfo& info : invalid) {
         if (cancelOffThread)
             CancelOffThreadIonCompile(info.script());
 
-        IonScript* ionScript = info.maybeIonScriptToInvalidate();
+        IonScript* ionScript = info.maybeIonScriptToInvalidate(types);
         if (!ionScript)
             continue;
 
         JitSpew(JitSpew_IonInvalidate, " Invalidate %s:%zu, IonScript %p",
                 info.script()->filename(), info.script()->lineno(), ionScript);
 
         // Keep the ion script alive during the invalidation and flag this
         // ionScript as being invalidated.  This increment is removed by the
@@ -2892,17 +2892,17 @@ jit::Invalidate(TypeZone& types, FreeOp*
     JSContext* cx = TlsContext.get();
     for (JitActivationIterator iter(cx); !iter.done(); ++iter)
         InvalidateActivation(fop, iter, false);
 
     // Drop the references added above. If a script was never active, its
     // IonScript will be immediately destroyed. Otherwise, it will be held live
     // until its last invalidated frame is destroyed.
     for (const RecompileInfo& info : invalid) {
-        IonScript* ionScript = info.maybeIonScriptToInvalidate();
+        IonScript* ionScript = info.maybeIonScriptToInvalidate(types);
         if (!ionScript)
             continue;
 
         if (ionScript->invalidationCount() == 1) {
             // decrementInvalidationCount will destroy the IonScript so null out
             // script->ion now. We don't want to do this unconditionally because
             // maybeIonScriptToInvalidate depends on script->ion (we would leak
             // the IonScript if |invalid| contains duplicates).
@@ -2914,17 +2914,17 @@ jit::Invalidate(TypeZone& types, FreeOp*
     }
 
     // Make sure we didn't leak references by invalidating the same IonScript
     // multiple times in the above loop.
     MOZ_ASSERT(!numInvalidations);
 
     // Finally, null out script->ion for IonScripts that are still on the stack.
     for (const RecompileInfo& info : invalid) {
-        if (info.maybeIonScriptToInvalidate())
+        if (info.maybeIonScriptToInvalidate(types))
             ClearIonScriptAfterInvalidation(cx, info.script(), resetUses);
     }
 }
 
 void
 jit::Invalidate(JSContext* cx, const RecompileInfoVector& invalid, bool resetUses,
                 bool cancelOffThread)
 {
--- a/js/src/jit/JitCompartment.h
+++ b/js/src/jit/JitCompartment.h
@@ -60,19 +60,16 @@ class JitRuntime
 {
   private:
     friend class JitCompartment;
 
     // Executable allocator for all code except wasm code.
     ActiveThreadData<ExecutableAllocator> execAlloc_;
 
     ActiveThreadData<uint64_t> nextCompilationId_;
-#ifdef DEBUG
-    ActiveThreadData<mozilla::Maybe<IonCompilationId>> currentCompilationId_;
-#endif
 
     // Shared exception-handler tail.
     ExclusiveAccessLockWriteOnceData<uint32_t> exceptionTailOffset_;
 
     // Shared post-bailout-handler tail.
     ExclusiveAccessLockWriteOnceData<uint32_t> bailoutTailOffset_;
 
     // Shared profiler exit frame tail.
@@ -185,21 +182,16 @@ class JitRuntime
 
     ExecutableAllocator& execAlloc() {
         return execAlloc_.ref();
     }
 
     IonCompilationId nextCompilationId() {
         return IonCompilationId(nextCompilationId_++);
     }
-#ifdef DEBUG
-    mozilla::Maybe<IonCompilationId>& currentCompilationId() {
-        return currentCompilationId_.ref();
-    }
-#endif
 
     TrampolinePtr getVMWrapper(const VMFunction& f) const;
     JitCode* debugTrapHandler(JSContext* cx);
     JitCode* getBaselineDebugModeOSRHandler(JSContext* cx);
     void* getBaselineDebugModeOSRHandlerAddress(JSContext* cx, bool popFrameReg);
 
     TrampolinePtr getGenericBailoutHandler() const {
         return trampolineCode(bailoutHandlerOffset_);
--- a/js/src/jit/arm/CodeGenerator-arm.cpp
+++ b/js/src/jit/arm/CodeGenerator-arm.cpp
@@ -1425,16 +1425,18 @@ CodeGenerator::visitBoxFloatingPoint(LBo
 
 void
 CodeGenerator::visitUnbox(LUnbox* unbox)
 {
     // Note that for unbox, the type and payload indexes are switched on the
     // inputs.
     MUnbox* mir = unbox->mir();
     Register type = ToRegister(unbox->type());
+    Register payload = ToRegister(unbox->payload());
+    Register output = ToRegister(unbox->output());
 
     mozilla::Maybe<ScratchRegisterScope> scratch;
     scratch.emplace(masm);
 
     JSValueTag tag = MIRTypeToTag(mir->type());
     if (mir->fallible()) {
         masm.ma_cmp(type, Imm32(tag), *scratch);
         bailoutIf(Assembler::NotEqual, unbox->snapshot());
@@ -1443,16 +1445,21 @@ CodeGenerator::visitUnbox(LUnbox* unbox)
         Label ok;
         masm.ma_cmp(type, Imm32(tag), *scratch);
         masm.ma_b(&ok, Assembler::Equal);
         scratch.reset();
         masm.assumeUnreachable("Infallible unbox type mismatch");
         masm.bind(&ok);
 #endif
     }
+
+    // Note: If spectreValueMasking is disabled, then this instruction will
+    // default to a no-op as long as the lowering allocate the same register for
+    // the output and the payload.
+    masm.unboxNonDouble(ValueOperand(type, payload), output, ValueTypeFromMIRType(mir->type()));
 }
 
 void
 CodeGenerator::visitDouble(LDouble* ins)
 {
     const LDefinition* out = ins->getDef(0);
     masm.loadConstantDouble(ins->getDouble(), ToFloatRegister(out));
 }
--- a/js/src/jit/arm/MacroAssembler-arm-inl.h
+++ b/js/src/jit/arm/MacroAssembler-arm-inl.h
@@ -2171,17 +2171,16 @@ MacroAssembler::spectreZeroRegister(Cond
 {
     ma_mov(Imm32(0), dest, cond);
 }
 
 void
 MacroAssembler::spectreBoundsCheck32(Register index, Register length, Register maybeScratch,
                                      Label* failure)
 {
-    MOZ_ASSERT(index != length);
     MOZ_ASSERT(length != maybeScratch);
     MOZ_ASSERT(index != maybeScratch);
 
     branch32(Assembler::BelowOrEqual, length, index, failure);
 
     if (JitOptions.spectreIndexMasking)
         ma_mov(Imm32(0), index, Assembler::BelowOrEqual);
 }
--- a/js/src/jit/arm/MacroAssembler-arm.cpp
+++ b/js/src/jit/arm/MacroAssembler-arm.cpp
@@ -2995,36 +2995,72 @@ MacroAssemblerARMCompat::testGCThing(Con
     ScratchRegisterScope scratch(asMasm());
     extractTag(address, scratch);
     ma_cmp(scratch, ImmTag(JSVAL_LOWER_INCL_TAG_OF_GCTHING_SET));
     return cond == Equal ? AboveOrEqual : Below;
 }
 
 // Unboxing code.
 void
-MacroAssemblerARMCompat::unboxNonDouble(const ValueOperand& operand, Register dest, JSValueType)
-{
-    if (operand.payloadReg() != dest)
-        ma_mov(operand.payloadReg(), dest);
-}
-
-void
-MacroAssemblerARMCompat::unboxNonDouble(const Address& src, Register dest, JSValueType)
+MacroAssemblerARMCompat::unboxNonDouble(const ValueOperand& operand, Register dest, JSValueType type)
+{
+    auto movPayloadToDest = [&]() {
+        if (operand.payloadReg() != dest)
+            ma_mov(operand.payloadReg(), dest, LeaveCC);
+    };
+    if (!JitOptions.spectreValueMasking) {
+        movPayloadToDest();
+        return;
+    }
+
+    // Spectre mitigation: We zero the payload if the tag does not match the
+    // expected type and if this is a pointer type.
+    if (type == JSVAL_TYPE_INT32 || type == JSVAL_TYPE_BOOLEAN) {
+        movPayloadToDest();
+        return;
+    }
+
+    // We zero the destination register and move the payload into it if
+    // the tag corresponds to the given type.
+    ma_cmp(operand.typeReg(), ImmType(type));
+    movPayloadToDest();
+    ma_mov(Imm32(0), dest, NotEqual);
+}
+
+void
+MacroAssemblerARMCompat::unboxNonDouble(const Address& src, Register dest, JSValueType type)
 {
     ScratchRegisterScope scratch(asMasm());
-    ma_ldr(ToPayload(src), dest, scratch);
-}
-
-void
-MacroAssemblerARMCompat::unboxNonDouble(const BaseIndex& src, Register dest, JSValueType)
-{
-    ScratchRegisterScope scratch(asMasm());
+    if (!JitOptions.spectreValueMasking) {
+        ma_ldr(ToPayload(src), dest, scratch);
+        return;
+    }
+
+    // Spectre mitigation: We zero the payload if the tag does not match the
+    // expected type and if this is a pointer type.
+    if (type == JSVAL_TYPE_INT32 || type == JSVAL_TYPE_BOOLEAN) {
+        ma_ldr(ToPayload(src), dest, scratch);
+        return;
+    }
+
+    // We zero the destination register and move the payload into it if
+    // the tag corresponds to the given type.
+    ma_ldr(ToType(src), scratch, scratch);
+    ma_cmp(scratch, ImmType(type));
+    ma_ldr(ToPayload(src), dest, scratch, Offset, Equal);
+    ma_mov(Imm32(0), dest, NotEqual);
+}
+
+void
+MacroAssemblerARMCompat::unboxNonDouble(const BaseIndex& src, Register dest, JSValueType type)
+{
     SecondScratchRegisterScope scratch2(asMasm());
-    ma_alu(src.base, lsl(src.index, src.scale), scratch, OpAdd);
-    ma_ldr(Address(scratch, src.offset), dest, scratch2);
+    ma_alu(src.base, lsl(src.index, src.scale), scratch2, OpAdd);
+    Address value(scratch2, src.offset);
+    unboxNonDouble(value, dest, type);
 }
 
 void
 MacroAssemblerARMCompat::unboxDouble(const ValueOperand& operand, FloatRegister dest)
 {
     MOZ_ASSERT(dest.isDouble());
     as_vxfer(operand.payloadReg(), operand.typeReg(), VFPRegister(dest), CoreToFloat);
 }
@@ -3043,18 +3079,18 @@ MacroAssemblerARMCompat::unboxValue(cons
     if (dest.isFloat()) {
         Label notInt32, end;
         asMasm().branchTestInt32(Assembler::NotEqual, src, &notInt32);
         convertInt32ToDouble(src.payloadReg(), dest.fpu());
         ma_b(&end);
         bind(&notInt32);
         unboxDouble(src, dest.fpu());
         bind(&end);
-    } else if (src.payloadReg() != dest.gpr()) {
-        as_mov(dest.gpr(), O2Reg(src.payloadReg()));
+    } else {
+        unboxNonDouble(src, dest.gpr(), type);
     }
 }
 
 void
 MacroAssemblerARMCompat::unboxPrivate(const ValueOperand& src, Register dest)
 {
     ma_mov(src.payloadReg(), dest);
 }
--- a/js/src/jit/arm/MacroAssembler-arm.h
+++ b/js/src/jit/arm/MacroAssembler-arm.h
@@ -824,22 +824,25 @@ class MacroAssemblerARMCompat : public M
     void boxDouble(FloatRegister src, const ValueOperand& dest, FloatRegister);
     void boxNonDouble(JSValueType type, Register src, const ValueOperand& dest);
 
     // Extended unboxing API. If the payload is already in a register, returns
     // that register. Otherwise, provides a move to the given scratch register,
     // and returns that.
     Register extractObject(const Address& address, Register scratch);
     Register extractObject(const ValueOperand& value, Register scratch) {
+        unboxNonDouble(value, value.payloadReg(), JSVAL_TYPE_OBJECT);
         return value.payloadReg();
     }
     Register extractString(const ValueOperand& value, Register scratch) {
+        unboxNonDouble(value, value.payloadReg(), JSVAL_TYPE_STRING);
         return value.payloadReg();
     }
     Register extractSymbol(const ValueOperand& value, Register scratch) {
+        unboxNonDouble(value, value.payloadReg(), JSVAL_TYPE_SYMBOL);
         return value.payloadReg();
     }
     Register extractInt32(const ValueOperand& value, Register scratch) {
         return value.payloadReg();
     }
     Register extractBoolean(const ValueOperand& value, Register scratch) {
         return value.payloadReg();
     }
--- a/js/src/jit/arm64/MacroAssembler-arm64-inl.h
+++ b/js/src/jit/arm64/MacroAssembler-arm64-inl.h
@@ -1850,17 +1850,16 @@ MacroAssembler::spectreZeroRegister(Cond
     Csel(ARMRegister(dest, 64), ARMRegister(dest, 64), vixl::xzr,
          Assembler::InvertCondition(cond));
 }
 
 void
 MacroAssembler::spectreBoundsCheck32(Register index, Register length, Register maybeScratch,
                                      Label* failure)
 {
-    MOZ_ASSERT(index != length);
     MOZ_ASSERT(length != maybeScratch);
     MOZ_ASSERT(index != maybeScratch);
 
     branch32(Assembler::BelowOrEqual, length, index, failure);
 
     if (JitOptions.spectreIndexMasking)
         Csel(ARMRegister(index, 32), ARMRegister(index, 32), vixl::wzr, Assembler::Above);
 }
--- a/js/src/jit/x64/MacroAssembler-x64-inl.h
+++ b/js/src/jit/x64/MacroAssembler-x64-inl.h
@@ -851,17 +851,16 @@ MacroAssembler::spectreMovePtr(Condition
 {
     cmovCCq(cond, Operand(src), dest);
 }
 
 void
 MacroAssembler::spectreBoundsCheck32(Register index, Register length, Register maybeScratch,
                                      Label* failure)
 {
-    MOZ_ASSERT(index != length);
     MOZ_ASSERT(length != maybeScratch);
     MOZ_ASSERT(index != maybeScratch);
 
     ScratchRegisterScope scratch(*this);
     MOZ_ASSERT(index != scratch);
     MOZ_ASSERT(length != scratch);
 
     if (JitOptions.spectreIndexMasking)
--- a/js/src/jit/x86/MacroAssembler-x86-inl.h
+++ b/js/src/jit/x86/MacroAssembler-x86-inl.h
@@ -1076,17 +1076,16 @@ MacroAssembler::spectreBoundsCheck32(Reg
         }
     }
 }
 
 void
 MacroAssembler::spectreBoundsCheck32(Register index, Register length, Register maybeScratch,
                                      Label* failure)
 {
-    MOZ_ASSERT(index != length);
     MOZ_ASSERT(length != maybeScratch);
     MOZ_ASSERT(index != maybeScratch);
 
     spectreBoundsCheck32(index, Operand(length), maybeScratch, failure);
 }
 
 void
 MacroAssembler::spectreBoundsCheck32(Register index, const Address& length, Register maybeScratch,
--- a/js/src/vm/TypeInference-inl.h
+++ b/js/src/vm/TypeInference-inl.h
@@ -31,34 +31,44 @@
 
 namespace js {
 
 /////////////////////////////////////////////////////////////////////
 // RecompileInfo
 /////////////////////////////////////////////////////////////////////
 
 jit::IonScript*
-RecompileInfo::maybeIonScriptToInvalidate() const
+RecompileInfo::maybeIonScriptToInvalidate(const TypeZone& zone) const
 {
+    MOZ_ASSERT(script_->zone() == zone.zone());
+
     // Make sure this is not called under CodeGenerator::link (before the
     // IonScript is created).
-    MOZ_ASSERT(!TlsContext.get()->runtime()->jitRuntime()->currentCompilationId().isSome());
+    MOZ_ASSERT_IF(zone.currentCompilationId(), zone.currentCompilationId().ref() != id_);
 
     if (!script_->hasIonScript() || script_->ionScript()->compilationId() != id_)
         return nullptr;
 
     return script_->ionScript();
 }
 
 inline bool
-RecompileInfo::shouldSweep()
+RecompileInfo::shouldSweep(const TypeZone& zone)
 {
     if (IsAboutToBeFinalizedUnbarriered(&script_))
         return true;
-    return maybeIonScriptToInvalidate() == nullptr;
+
+    MOZ_ASSERT(script_->zone() == zone.zone());
+
+    // Don't sweep if we're called under CodeGenerator::link, before the
+    // IonScript is created.
+    if (zone.currentCompilationId() && zone.currentCompilationId().ref() == id_)
+        return false;
+
+    return maybeIonScriptToInvalidate(zone) == nullptr;
 }
 
 /////////////////////////////////////////////////////////////////////
 // Types
 /////////////////////////////////////////////////////////////////////
 
 /* static */ inline TypeSet::ObjectKey*
 TypeSet::ObjectKey::get(JSObject* obj)
--- a/js/src/vm/TypeInference.cpp
+++ b/js/src/vm/TypeInference.cpp
@@ -1208,17 +1208,17 @@ class TypeCompilerConstraint : public Ty
         // Note: Once the object has unknown properties, no more notifications
         // will be sent on changes to its state, so always invalidate any
         // associated compilations.
         if (group->unknownProperties() || data.invalidateOnNewObjectState(group))
             cx->zone()->types.addPendingRecompile(cx, compilation);
     }
 
     bool sweep(TypeZone& zone, TypeConstraint** res) override {
-        if (data.shouldSweep() || compilation.shouldSweep())
+        if (data.shouldSweep() || compilation.shouldSweep(zone))
             return false;
         *res = zone.typeLifoAlloc().new_<TypeCompilerConstraint<T> >(compilation, data);
         return true;
     }
 
     JSCompartment* maybeCompartment() override {
         return data.maybeCompartment();
     }
@@ -1417,17 +1417,17 @@ class TypeConstraintFreezeStack : public
 };
 
 } /* anonymous namespace */
 
 bool
 js::FinishCompilation(JSContext* cx, HandleScript script, CompilerConstraintList* constraints,
                       IonCompilationId compilationId, bool* isValidOut)
 {
-    MOZ_ASSERT(*cx->runtime()->jitRuntime()->currentCompilationId() == compilationId);
+    MOZ_ASSERT(*cx->zone()->types.currentCompilationId() == compilationId);
 
     if (constraints->failed())
         return false;
 
     RecompileInfo recompileInfo(script, compilationId);
 
     bool succeeded = true;
 
@@ -4410,17 +4410,17 @@ JSScript::maybeSweepTypes(AutoClearTypeI
 
     TypeZone& types = zone()->types;
 
     // Sweep the inlinedCompilations Vector.
     {
         RecompileInfoVector& inlinedCompilations = types_->inlinedCompilations();
         size_t dest = 0;
         for (size_t i = 0; i < inlinedCompilations.length(); i++) {
-            if (inlinedCompilations[i].shouldSweep())
+            if (inlinedCompilations[i].shouldSweep(types))
                 continue;
             inlinedCompilations[dest] = inlinedCompilations[i];
             dest++;
         }
         inlinedCompilations.shrinkTo(dest);
     }
 
     // Destroy all type information attached to the script if desired. We can
@@ -4480,16 +4480,17 @@ Zone::addSizeOfIncludingThis(mozilla::Ma
     *shapeTables += baseShapes().sizeOfExcludingThis(mallocSizeOf)
                   + initialShapes().sizeOfExcludingThis(mallocSizeOf);
     *atomsMarkBitmaps += markedAtoms().sizeOfExcludingThis(mallocSizeOf);
 }
 
 TypeZone::TypeZone(Zone* zone)
   : zone_(zone),
     typeLifoAlloc_(zone->group(), (size_t) TYPE_LIFO_ALLOC_PRIMARY_CHUNK_SIZE),
+    currentCompilationId_(zone->group()),
     generation(zone->group(), 0),
     sweepTypeLifoAlloc(zone->group(), (size_t) TYPE_LIFO_ALLOC_PRIMARY_CHUNK_SIZE),
     sweepReleaseTypes(zone->group(), false),
     sweepingTypes(zone->group(), false),
     keepTypeScripts(zone->group(), false),
     activeAnalysis(zone->group(), nullptr)
 {
 }
--- a/js/src/vm/TypeInference.h
+++ b/js/src/vm/TypeInference.h
@@ -1101,27 +1101,31 @@ inline bool isInlinableCall(jsbytecode* 
 
 bool
 ClassCanHaveExtraProperties(const Class* clasp);
 
 // Each IonScript has a unique compilation id. This is used to sweep/ignore
 // constraints for IonScripts that have been invalidated/destroyed.
 class IonCompilationId
 {
-    uint64_t id_;
+    // Use two 32-bit integers instead of uint64_t to avoid 8-byte alignment on
+    // some 32-bit platforms.
+    uint32_t idLo_;
+    uint32_t idHi_;
 
   public:
     explicit IonCompilationId(uint64_t id)
-      : id_(id)
+      : idLo_(id & UINT32_MAX),
+        idHi_(id >> 32)
     {}
     bool operator==(const IonCompilationId& other) const {
-        return id_ == other.id_;
+        return idLo_ == other.idLo_ && idHi_ == other.idHi_;
     }
     bool operator!=(const IonCompilationId& other) const {
-        return id_ != other.id_;
+        return !operator==(other);
     }
 };
 
 class RecompileInfo
 {
     JSScript* script_;
     IonCompilationId id_;
 
@@ -1130,19 +1134,19 @@ class RecompileInfo
       : script_(script),
         id_(id)
     {}
 
     JSScript* script() const {
         return script_;
     }
 
-    inline jit::IonScript* maybeIonScriptToInvalidate() const;
+    inline jit::IonScript* maybeIonScriptToInvalidate(const TypeZone& zone) const;
 
-    inline bool shouldSweep();
+    inline bool shouldSweep(const TypeZone& zone);
 
     bool operator==(const RecompileInfo& other) const {
         return script_== other.script_ && id_ == other.id_;
     }
 };
 
 // The RecompileInfoVector has a MinInlineCapacity of one so that invalidating a
 // single IonScript doesn't require an allocation.
@@ -1331,16 +1335,19 @@ struct AutoEnterAnalysis;
 class TypeZone
 {
     JS::Zone* const zone_;
 
     /* Pool for type information in this zone. */
     static const size_t TYPE_LIFO_ALLOC_PRIMARY_CHUNK_SIZE = 8 * 1024;
     ZoneGroupData<LifoAlloc> typeLifoAlloc_;
 
+    // Under CodeGenerator::link, the id of the current compilation.
+    ZoneGroupData<mozilla::Maybe<IonCompilationId>> currentCompilationId_;
+
     TypeZone(const TypeZone&) = delete;
     void operator=(const TypeZone&) = delete;
 
   public:
     // Current generation for sweeping.
     ZoneGroupOrGCTaskOrIonCompileData<uint32_t> generation;
 
     // During incremental sweeping, allocator holding the old type information
@@ -1379,16 +1386,23 @@ class TypeZone
     void addPendingRecompile(JSContext* cx, JSScript* script);
 
     void processPendingRecompiles(FreeOp* fop, RecompileInfoVector& recompiles);
 
     void setSweepingTypes(bool sweeping) {
         MOZ_RELEASE_ASSERT(sweepingTypes != sweeping);
         sweepingTypes = sweeping;
     }
+
+    mozilla::Maybe<IonCompilationId> currentCompilationId() const {
+        return currentCompilationId_.ref();
+    }
+    mozilla::Maybe<IonCompilationId>& currentCompilationIdRef() {
+        return currentCompilationId_.ref();
+    }
 };
 
 enum SpewChannel {
     ISpewOps,      /* ops: New constraints and types. */
     ISpewResult,   /* result: Final type sets. */
     SPEW_COUNT
 };
 
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java
@@ -35,16 +35,17 @@ import org.mozilla.gecko.util.EventCallb
 import org.mozilla.gecko.util.FileUtils;
 import org.mozilla.gecko.util.GeckoBundle;
 import org.mozilla.gecko.util.HardwareUtils;
 import org.mozilla.gecko.util.PrefUtils;
 import org.mozilla.gecko.util.ThreadUtils;
 import org.mozilla.gecko.util.ViewUtil;
 import org.mozilla.gecko.widget.ActionModePresenter;
 import org.mozilla.gecko.widget.AnchoredPopup;
+import org.mozilla.geckoview.GeckoRuntime;
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.GeckoView;
 
 import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.annotation.TargetApi;
 import android.app.Activity;
@@ -1074,27 +1075,27 @@ public abstract class GeckoApp extends G
 
         // Set up Gecko layout.
         mRootLayout = (RelativeLayout) findViewById(R.id.root_layout);
         mGeckoLayout = (RelativeLayout) findViewById(R.id.gecko_layout);
         mMainLayout = (RelativeLayout) findViewById(R.id.main_layout);
         mLayerView = (GeckoView) findViewById(R.id.layer_view);
 
         final GeckoSession session = new GeckoSession();
+        session.getSettings().setString(GeckoSessionSettings.CHROME_URI,
+                                        "chrome://browser/content/browser.xul");
+        session.setContentDelegate(this);
+
         // If the view already has a session, we need to ensure it is closed.
         if (mLayerView.getSession() != null) {
             mLayerView.getSession().close();
         }
-        mLayerView.setSession(session);
+        mLayerView.setSession(session, GeckoRuntime.getDefault(this));
         mLayerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
 
-        session.getSettings().setString(GeckoSessionSettings.CHROME_URI,
-                                        "chrome://browser/content/browser.xul");
-        session.setContentDelegate(this);
-
         GeckoAccessibility.setDelegate(mLayerView);
 
         getAppEventDispatcher().registerGeckoThreadListener(this,
             "Locale:Set",
             "PrivateBrowsing:Data",
             null);
 
         getAppEventDispatcher().registerUiThreadListener(this,
--- a/mobile/android/base/java/org/mozilla/gecko/RemotePresentationService.java
+++ b/mobile/android/base/java/org/mozilla/gecko/RemotePresentationService.java
@@ -2,16 +2,17 @@
  * vim: ts=4 sw=4 expandtab:
  * 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/. */
 
 package org.mozilla.gecko;
 
 import org.mozilla.gecko.ScreenManagerHelper;
+import org.mozilla.geckoview.GeckoRuntime;
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.GeckoView;
 
 import com.google.android.gms.cast.CastMediaControlIntent;
 import com.google.android.gms.cast.CastPresentation;
 import com.google.android.gms.cast.CastRemoteDisplayLocalService;
 import com.google.android.gms.common.ConnectionResult;
@@ -119,25 +120,24 @@ class VirtualPresentation extends CastPr
         super.onCreate(savedInstanceState);
 
         /*
          * NOTICE: The context get from getContext() is different to the context
          * of the application. Presentaion has its own context to get correct
          * resources.
          */
 
-        // Create new GeckoView
-        view = new GeckoView(getContext());
-
         final GeckoSession session = new GeckoSession();
         session.getSettings().setString(GeckoSessionSettings.CHROME_URI,
                                         PRESENTATION_VIEW_URI + "#" + deviceId);
         session.getSettings().setInt(GeckoSessionSettings.SCREEN_ID, screenId);
 
-        view.setSession(session);
+        // Create new GeckoView
+        view = new GeckoView(getContext());
+        view.setSession(session, GeckoRuntime.getDefault(getContext()));
         view.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
                                               LayoutParams.MATCH_PARENT));
 
         // Create new layout to put the GeckoView
         layout = new RelativeLayout(getContext());
         layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
                                                 LayoutParams.MATCH_PARENT));
         layout.addView(view);
--- a/mobile/android/base/java/org/mozilla/gecko/customtabs/CustomTabsActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/customtabs/CustomTabsActivity.java
@@ -53,16 +53,17 @@ import org.mozilla.gecko.text.TextSelect
 import org.mozilla.gecko.util.ActivityUtils;
 import org.mozilla.gecko.util.ColorUtil;
 import org.mozilla.gecko.util.GeckoBundle;
 import org.mozilla.gecko.util.IntentUtils;
 import org.mozilla.gecko.util.PackageUtil;
 import org.mozilla.gecko.webapps.WebApps;
 import org.mozilla.gecko.widget.ActionModePresenter;
 import org.mozilla.gecko.widget.GeckoPopupMenu;
+import org.mozilla.geckoview.GeckoRuntime;
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.GeckoView;
 
 import java.util.List;
 
 public class CustomTabsActivity extends AppCompatActivity
                                 implements ActionModePresenter,
@@ -120,39 +121,38 @@ public class CustomTabsActivity extends 
         actionBarPresenter.displayUrlOnly(intent.getDataString());
         actionBarPresenter.setBackgroundColor(IntentUtil.getToolbarColor(intent), getWindow());
         actionBarPresenter.setTextLongClickListener(new UrlCopyListener());
 
         mGeckoView = (GeckoView) findViewById(R.id.gecko_view);
 
         GeckoAccessibility.setDelegate(mGeckoView);
 
-        mGeckoSession = new GeckoSession();
-        mGeckoView.setSession(mGeckoSession);
-
+        final GeckoSessionSettings settings = new GeckoSessionSettings();
+        settings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, false);
+        settings.setBoolean(
+            GeckoSessionSettings.USE_REMOTE_DEBUGGER,
+            GeckoSharedPrefs.forApp(this).getBoolean(
+                GeckoPreferences.PREFS_DEVTOOLS_REMOTE_USB_ENABLED, false));
+        mGeckoSession = new GeckoSession(settings);
         mGeckoSession.setNavigationDelegate(this);
         mGeckoSession.setProgressDelegate(this);
         mGeckoSession.setContentDelegate(this);
 
+        mGeckoView.setSession(mGeckoSession, GeckoRuntime.getDefault(this));
+
         mPromptService = new PromptService(this, mGeckoView.getEventDispatcher());
         mDoorHangerPopup = new DoorHangerPopup(this, mGeckoView.getEventDispatcher());
 
         mFormAssistPopup = (FormAssistPopup) findViewById(R.id.form_assist_popup);
         mFormAssistPopup.create(mGeckoView);
 
         mTextSelection = TextSelection.Factory.create(mGeckoView, this);
         mTextSelection.create();
 
-        final GeckoSessionSettings settings = mGeckoView.getSettings();
-        settings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, false);
-        settings.setBoolean(
-            GeckoSessionSettings.USE_REMOTE_DEBUGGER,
-            GeckoSharedPrefs.forApp(this).getBoolean(
-                GeckoPreferences.PREFS_DEVTOOLS_REMOTE_USB_ENABLED, false));
-
         if (intent != null && !TextUtils.isEmpty(intent.getDataString())) {
             mGeckoSession.loadUri(intent.getDataString());
         } else {
             Log.w(LOGTAG, "No intend found for custom tab");
             finish();
         }
 
         sendTelemetry();
--- a/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/webapps/WebAppActivity.java
@@ -33,16 +33,17 @@ import org.mozilla.gecko.preferences.Gec
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.customtabs.CustomTabsActivity;
 import org.mozilla.gecko.permissions.Permissions;
 import org.mozilla.gecko.prompts.PromptService;
 import org.mozilla.gecko.text.TextSelection;
 import org.mozilla.gecko.util.ActivityUtils;
 import org.mozilla.gecko.util.ColorUtil;
 import org.mozilla.gecko.widget.ActionModePresenter;
+import org.mozilla.geckoview.GeckoRuntime;
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.GeckoView;
 
 public class WebAppActivity extends AppCompatActivity
                             implements ActionModePresenter,
                                        GeckoSession.ContentDelegate,
                                        GeckoSession.NavigationDelegate {
@@ -86,18 +87,24 @@ public class WebAppActivity extends AppC
             Intent lastLaunchIntent = savedInstanceState.getParcelable(SAVED_INTENT);
             setIntent(lastLaunchIntent);
         }
 
         super.onCreate(savedInstanceState);
         setContentView(R.layout.webapp_activity);
         mGeckoView = (GeckoView) findViewById(R.id.pwa_gecko_view);
 
-        mGeckoSession = new GeckoSession();
-        mGeckoView.setSession(mGeckoSession);
+        final GeckoSessionSettings settings = new GeckoSessionSettings();
+        settings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, false);
+        settings.setBoolean(
+            GeckoSessionSettings.USE_REMOTE_DEBUGGER,
+            GeckoSharedPrefs.forApp(this).getBoolean(
+                GeckoPreferences.PREFS_DEVTOOLS_REMOTE_USB_ENABLED, false));
+        mGeckoSession = new GeckoSession(settings);
+        mGeckoView.setSession(mGeckoSession, GeckoRuntime.getDefault(this));
 
         mGeckoSession.setNavigationDelegate(this);
         mGeckoSession.setContentDelegate(this);
         mGeckoSession.setProgressDelegate(new GeckoSession.ProgressDelegate() {
             @Override
             public void onPageStart(GeckoSession session, String url) {
 
             }
@@ -142,23 +149,16 @@ public class WebAppActivity extends AppC
         mDoorHangerPopup = new DoorHangerPopup(this, mGeckoView.getEventDispatcher());
 
         mFormAssistPopup = (FormAssistPopup) findViewById(R.id.pwa_form_assist_popup);
         mFormAssistPopup.create(mGeckoView);
 
         mTextSelection = TextSelection.Factory.create(mGeckoView, this);
         mTextSelection.create();
 
-        final GeckoSessionSettings settings = mGeckoView.getSettings();
-        settings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS, false);
-        settings.setBoolean(
-            GeckoSessionSettings.USE_REMOTE_DEBUGGER,
-            GeckoSharedPrefs.forApp(this).getBoolean(
-                GeckoPreferences.PREFS_DEVTOOLS_REMOTE_USB_ENABLED, false));
-
         try {
             mManifest = WebAppManifest.fromFile(getIntent().getStringExtra(MANIFEST_URL),
                                                 getIntent().getStringExtra(MANIFEST_PATH));
         } catch (Exception e) {
             Log.w(LOGTAG, "Cannot retrieve manifest, launching in Firefox:" + e);
             fallbackToFennec(null);
             return;
         }
@@ -315,17 +315,17 @@ public class WebAppActivity extends AppC
                 mode = GeckoSessionSettings.DISPLAY_MODE_MINIMAL_UI;
                 break;
             case "browser":
             default:
                 mode = GeckoSessionSettings.DISPLAY_MODE_BROWSER;
                 break;
         }
 
-        mGeckoView.getSettings().setInt(GeckoSessionSettings.DISPLAY_MODE, mode);
+        mGeckoSession.getSettings().setInt(GeckoSessionSettings.DISPLAY_MODE, mode);
     }
 
     @Override // GeckoSession.NavigationDelegate
     public void onLocationChange(GeckoSession session, String url) {
     }
 
     @Override // GeckoSession.NavigationDelegate
     public void onCanGoBack(GeckoSession session, boolean canGoBack) {
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/GeckoSessionTestRuleTest.kt
@@ -730,17 +730,18 @@ class GeckoSessionTestRuleTest : BaseSes
             }
         })
 
         sessionRule.session.loadTestPath(HELLO_HTML_PATH)
         sessionRule.waitForPageStop()
     }
 
     @Test fun wrapSession() {
-        val session = sessionRule.wrapSession(GeckoSession(sessionRule.session.settings))
+        val session = sessionRule.wrapSession(
+          GeckoSession(sessionRule.session.settings))
         sessionRule.openSession(session)
         session.reload()
         session.waitForPageStop()
     }
 
     @Test fun createOpenSession() {
         val newSession = sessionRule.createOpenSession()
         assertThat("Can create session", newSession, notNullValue())
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationDelegateTest.kt
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/NavigationDelegateTest.kt
@@ -351,17 +351,17 @@ class NavigationDelegateTest : BaseSessi
     @Test(expected = IllegalArgumentException::class)
     fun onNewSession_doesNotAllowOpened() {
         sessionRule.session.loadTestPath(NEW_SESSION_HTML_PATH)
         sessionRule.waitForPageStop()
 
         sessionRule.delegateDuringNextWait(object : Callbacks.NavigationDelegate {
             @AssertCalled(count = 1)
             override fun onNewSession(session: GeckoSession, uri: String, response: GeckoSession.Response<GeckoSession>) {
-                var newSession = GeckoSession(session.settings)
+                val newSession = sessionRule.createClosedSession(session.settings)
                 newSession.open()
                 response.respond(newSession)
             }
         })
 
         sessionRule.session.synthesizeTap(5, 5)
         sessionRule.waitUntilCalled(GeckoSession.NavigationDelegate::class, "onNewSession")
     }
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ProgressDelegateTest.kt
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/ProgressDelegateTest.kt
@@ -55,17 +55,18 @@ class ProgressDelegateTest : BaseSession
 
     fun loadExpectNetError(testUri: String) {
         sessionRule.session.loadUri(testUri);
         sessionRule.waitForPageStop()
 
         sessionRule.forCallbacksDuringWait(object : Callbacks.ProgressDelegate, Callbacks.NavigationDelegate {
             @AssertCalled(count = 2)
             override fun onLoadRequest(session: GeckoSession, uri: String,
-                                       where: Int, response: GeckoSession.Response<Boolean>) {
+                                       where: Int,
+                                       response: GeckoSession.Response<Boolean>) {
                 if (sessionRule.currentCall.counter == 1) {
                     assertThat("URI should be " + testUri, uri, equalTo(testUri));
                 } else {
                     assertThat("URI should be about:neterror", uri, startsWith("about:neterror"));
                 }
                 response.respond(false)
             }
 
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/SessionLifecycleTest.kt
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/SessionLifecycleTest.kt
@@ -14,24 +14,16 @@ import android.support.test.runner.Andro
 import org.hamcrest.Matchers.*
 import org.junit.Test
 import org.junit.runner.RunWith
 
 @RunWith(AndroidJUnit4::class)
 @MediumTest
 class SessionLifecycleTest : BaseSessionTest() {
 
-    @Test fun open_allowNullContext() {
-        sessionRule.session.close()
-
-        sessionRule.session.open(null)
-        sessionRule.session.reload()
-        sessionRule.session.waitForPageStop()
-    }
-
     @Test fun open_interleaved() {
         val session1 = sessionRule.createOpenSession()
         val session2 = sessionRule.createOpenSession()
         session1.close()
         val session3 = sessionRule.createOpenSession()
         session2.close()
         session3.close()
 
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/TestRunnerActivity.java
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/TestRunnerActivity.java
@@ -3,25 +3,29 @@
  * 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/. */
 
 package org.mozilla.geckoview.test;
 
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.GeckoView;
+import org.mozilla.geckoview.GeckoRuntime;
+import org.mozilla.geckoview.GeckoRuntimeSettings;
 
 import android.app.Activity;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
 
 public class TestRunnerActivity extends Activity {
     private static final String LOGTAG = "TestRunnerActivity";
 
+    static GeckoRuntime sRuntime;
+
     GeckoSession mSession;
     GeckoView mView;
 
     private GeckoSession.NavigationDelegate mNavigationDelegate = new GeckoSession.NavigationDelegate() {
         @Override
         public void onLocationChange(GeckoSession session, String url) {
             getActionBar().setSubtitle(url);
         }
@@ -32,18 +36,18 @@ public class TestRunnerActivity extends 
         }
 
         @Override
         public void onCanGoForward(GeckoSession session, boolean canGoForward) {
 
         }
 
         @Override
-        public void onLoadRequest(GeckoSession session, String uri,
-                                  int target, GeckoSession.Response<Boolean> response) {
+        public void onLoadRequest(GeckoSession session, String uri, int target,
+                                  GeckoSession.Response<Boolean> response) {
             // Allow Gecko to load all URIs
             response.respond(false);
         }
 
         @Override
         public void onNewSession(GeckoSession session, String uri, GeckoSession.Response<GeckoSession> response) {
             response.respond(createSession(session.getSettings()));
         }
@@ -98,23 +102,26 @@ public class TestRunnerActivity extends 
         return session;
     }
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
         final Intent intent = getIntent();
-        GeckoSession.preload(this, new String[] { "-purgecaches" },
-                             intent.getExtras(), false /* no multiprocess, see below */);
 
-        // We can't use e10s because we get deadlocked when quickly creating and
-        // destroying sessions. Bug 1348361.
+        if (sRuntime == null) {
+            final GeckoRuntimeSettings geckoSettings = new GeckoRuntimeSettings();
+            geckoSettings.setArguments(new String[] { "-purgecaches" });
+            geckoSettings.setExtras(intent.getExtras());
+            sRuntime = GeckoRuntime.create(this, geckoSettings);
+        }
+
         mSession = createSession();
-        mSession.open(this);
+        mSession.open(sRuntime);
 
         // If we were passed a URI in the Intent, open it
         final Uri uri = intent.getData();
         if (uri != null) {
             mSession.loadUri(uri);
         }
 
         mView = new GeckoView(this);
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/rule/GeckoSessionTestRule.java
@@ -1,14 +1,16 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 package org.mozilla.geckoview.test.rule;
 
 import org.mozilla.gecko.gfx.GeckoDisplay;
+import org.mozilla.geckoview.GeckoRuntime;
+import org.mozilla.geckoview.GeckoRuntimeSettings;
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.test.util.Callbacks;
 
 import static org.hamcrest.Matchers.*;
 import static org.junit.Assert.fail;
 
 import org.hamcrest.Matcher;
@@ -501,16 +503,17 @@ public class GeckoSessionTestRule extend
             addCallbackClasses(list, ifce);
         }
 
         final HashSet<Class<?>> set = new HashSet<>(list);
         return set.toArray(new Class<?>[set.size()]);
     }
 
     private static final List<Class<?>> CALLBACK_CLASSES = Arrays.asList(getCallbackClasses());
+    private static GeckoRuntime sRuntime;
 
     public final Environment env = new Environment();
 
     protected final Instrumentation mInstrumentation =
             InstrumentationRegistry.getInstrumentation();
     protected final GeckoSessionSettings mDefaultSettings;
     protected final Set<GeckoSession> mSubSessions = new HashSet<>();
 
@@ -606,16 +609,25 @@ public class GeckoSessionTestRule extend
      * Get the session set up for the current test.
      *
      * @return GeckoSession object.
      */
     public @NonNull GeckoSession getSession() {
         return mMainSession;
     }
 
+    /**
+     * Get the runtime set up for the current test.
+     *
+     * @return GeckoRuntime object.
+     */
+    public @NonNull GeckoRuntime getRuntime() {
+        return sRuntime;
+    }
+
     protected static Method getCallbackSetter(final @NonNull Class<?> cls)
             throws NoSuchMethodException {
         return GeckoSession.class.getMethod("set" + cls.getSimpleName(), cls);
     }
 
     protected static Method getCallbackGetter(final @NonNull Class<?> cls)
             throws NoSuchMethodException {
         return GeckoSession.class.getMethod("get" + cls.getSimpleName());
@@ -709,17 +721,24 @@ public class GeckoSessionTestRule extend
                 }
             }
         };
 
         final Class<?>[] classes = CALLBACK_CLASSES.toArray(new Class<?>[CALLBACK_CLASSES.size()]);
         mCallbackProxy = Proxy.newProxyInstance(GeckoSession.class.getClassLoader(),
                                                 classes, recorder);
 
-        GeckoSession.preload(InstrumentationRegistry.getTargetContext(), new String[] { "-purgecaches" }, null, false);
+        if (sRuntime == null) {
+            final GeckoRuntimeSettings geckoSettings = new GeckoRuntimeSettings();
+            geckoSettings.setArguments(new String[] { "-purgecaches" });
+            sRuntime = GeckoRuntime.create(
+                InstrumentationRegistry.getTargetContext(),
+                geckoSettings);
+        }
+
         mMainSession = new GeckoSession(settings);
         prepareSession(mMainSession);
 
         if (mDisplaySize != null) {
             mDisplayTexture = new SurfaceTexture(0);
             mDisplaySurface = new Surface(mDisplayTexture);
             mDisplay = mMainSession.acquireDisplay();
             mDisplay.surfaceChanged(mDisplaySurface, mDisplaySize.x, mDisplaySize.y);
@@ -748,17 +767,17 @@ public class GeckoSessionTestRule extend
         final boolean e10s = session.getSettings().getBoolean(
                 GeckoSessionSettings.USE_MULTIPROCESS);
 
         if (e10s) {
             // Give any pending calls a chance to catch up.
             loopUntilIdle(/* timeout */ 0);
         }
 
-        session.open(mInstrumentation.getTargetContext());
+        session.open(sRuntime);
 
         if (!e10s) {
             return;
         }
 
         // Under e10s, we receive an initial about:blank load; don't expose that to the test.
         // The about:blank load is bounded by onLocationChange and onPageStop calls,
         // so find the first about:blank onLocationChange, then the next onPageStop,
--- a/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Callbacks.kt
+++ b/mobile/android/geckoview/src/androidTest/java/org/mozilla/geckoview/test/util/Callbacks.kt
@@ -39,17 +39,18 @@ class Callbacks private constructor() {
         }
 
         override fun onCanGoBack(session: GeckoSession, canGoBack: Boolean) {
         }
 
         override fun onCanGoForward(session: GeckoSession, canGoForward: Boolean) {
         }
 
-        override fun onLoadRequest(session: GeckoSession, uri: String, where: Int, response: GeckoSession.Response<Boolean>) {
+        override fun onLoadRequest(session: GeckoSession, uri: String, where: Int,
+                                   response: GeckoSession.Response<Boolean>) {
             response.respond(false)
         }
 
         override fun onNewSession(session: GeckoSession, uri: String, response: GeckoSession.Response<GeckoSession>) {
             response.respond(null)
         }
     }
 
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java
@@ -0,0 +1,178 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * vim: ts=4 sw=4 expandtab:
+ * 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/. */
+
+package org.mozilla.geckoview;
+
+import java.util.ArrayList;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.content.Context;
+import android.support.annotation.IntDef;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+import android.util.Log;
+
+import org.mozilla.gecko.annotation.WrapForJNI;
+import org.mozilla.gecko.EventDispatcher;
+import org.mozilla.gecko.GeckoAppShell;
+import org.mozilla.gecko.GeckoThread;
+import org.mozilla.gecko.util.BundleEventListener;
+import org.mozilla.gecko.util.EventCallback;
+import org.mozilla.gecko.util.GeckoBundle;
+import org.mozilla.gecko.util.ThreadUtils;
+
+public final class GeckoRuntime implements Parcelable {
+    private static final String LOGTAG = "GeckoRuntime";
+    private static final boolean DEBUG = false;
+
+    private static GeckoRuntime sDefaultRuntime;
+
+    /**
+     * Get the default runtime for the given context.
+     * This will create and initialize the runtime with the default settings.
+     *
+     * Note: Only use this for session-less apps.
+     *       For regular apps, use create() and createSession() instead.
+     *
+     * @return The (static) default runtime for the context.
+     */
+    public static synchronized @NonNull GeckoRuntime getDefault(
+            final @NonNull Context context) {
+        Log.d(LOGTAG, "getDefault");
+        if (sDefaultRuntime == null) {
+            sDefaultRuntime = new GeckoRuntime();
+            sDefaultRuntime.attachTo(context);
+            sDefaultRuntime.init(new GeckoRuntimeSettings());
+        }
+
+        return sDefaultRuntime;
+    }
+
+    private GeckoRuntimeSettings mSettings;
+
+    /**
+     * Attach the runtime to the given context.
+     *
+     * @param context The new context to attach to.
+     */
+    public void attachTo(final @NonNull Context context) {
+        if (DEBUG) {
+            Log.d(LOGTAG, "attachTo " + context.getApplicationContext());
+        }
+        final Context appContext = context.getApplicationContext();
+        if (!appContext.equals(GeckoAppShell.getApplicationContext())) {
+            GeckoAppShell.setApplicationContext(appContext);
+        }
+    }
+
+    /* package */ boolean init(final @NonNull GeckoRuntimeSettings settings) {
+        if (DEBUG) {
+            Log.d(LOGTAG, "init");
+        }
+        final int flags = settings.getUseContentProcessHint()
+                          ? GeckoThread.FLAG_PRELOAD_CHILD
+                          : 0;
+        if (GeckoThread.initMainProcess(/* profile */ null,
+                                        settings.getArguments(),
+                                        settings.getExtras(),
+                                        flags)) {
+            if (!GeckoThread.launch()) {
+                Log.d(LOGTAG, "init failed (GeckoThread already launched)");
+                return false;
+            }
+            mSettings = settings;
+            return true;
+        }
+        Log.d(LOGTAG, "init failed (could not initiate GeckoThread)");
+        return false;
+    }
+
+    /**
+     * Create a new runtime with default settings and attach it to the given
+     * context.
+     *
+     * Create will throw if there is already an active Gecko instance running,
+     * to prevent that, bind the runtime to the process lifetime instead of the
+     * activity lifetime.
+     *
+     * @param context The context of the runtime.
+     * @return An initialized runtime.
+     */
+    public static @NonNull GeckoRuntime create(final @NonNull Context context) {
+        return create(context, new GeckoRuntimeSettings());
+    }
+
+    /**
+     * Create a new runtime with the given settings and attach it to the given
+     * context.
+     *
+     * Create will throw if there is already an active Gecko instance running,
+     * to prevent that, bind the runtime to the process lifetime instead of the
+     * activity lifetime.
+     *
+     * @param context The context of the runtime.
+     * @param settings The settings for the runtime.
+     * @return An initialized runtime.
+     */
+    public static @NonNull GeckoRuntime create(
+        final @NonNull Context context,
+        final @NonNull GeckoRuntimeSettings settings) {
+        if (DEBUG) {
+            Log.d(LOGTAG, "create " + context);
+        }
+
+        final GeckoRuntime runtime = new GeckoRuntime();
+        runtime.attachTo(context);
+
+        if (!runtime.init(settings)) {
+            throw new IllegalStateException("Failed to initialize GeckoRuntime");
+        }
+
+        return runtime;
+    }
+
+    /**
+     * Shutdown the runtime. This will invalidate all attached sessions.
+     */
+    public void shutdown() {
+        if (DEBUG) {
+            Log.d(LOGTAG, "shutdown");
+        }
+
+        GeckoThread.forceQuit();
+    }
+
+    @Override // Parcelable
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override // Parcelable
+    public void writeToParcel(Parcel out, int flags) {
+        out.writeParcelable(mSettings, flags);
+    }
+
+    // AIDL code may call readFromParcel even though it's not part of Parcelable.
+    public void readFromParcel(final Parcel source) {
+        mSettings = source.readParcelable(getClass().getClassLoader());
+    }
+
+    public static final Parcelable.Creator<GeckoRuntime> CREATOR
+        = new Parcelable.Creator<GeckoRuntime>() {
+        @Override
+        public GeckoRuntime createFromParcel(final Parcel in) {
+            final GeckoRuntime runtime = new GeckoRuntime();
+            runtime.readFromParcel(in);
+            return runtime;
+        }
+
+        @Override
+        public GeckoRuntime[] newArray(final int size) {
+            return new GeckoRuntime[size];
+        }
+    };
+}
new file mode 100644
--- /dev/null
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntimeSettings.java
@@ -0,0 +1,125 @@
+/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
+ * vim: ts=4 sw=4 expandtab:
+ * 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/. */
+
+package org.mozilla.geckoview;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+
+public final class GeckoRuntimeSettings implements Parcelable {
+    private boolean mUseContentProcess;
+    private String[] mArgs;
+    private Bundle mExtras;
+
+    /**
+     * Initialize default settings.
+     */
+    public  GeckoRuntimeSettings() {
+        this(null);
+    }
+
+    /* package */ GeckoRuntimeSettings(final @Nullable GeckoRuntimeSettings settings) {
+        if (settings != null) {
+            mUseContentProcess = settings.mUseContentProcess;
+            mArgs = settings.mArgs.clone();
+            mExtras = new Bundle(settings.mExtras);
+        } else {
+            mArgs = new String[0];
+            mExtras = new Bundle();
+        }
+    }
+
+    /**
+     * Get the content process hint flag.
+     *
+     * @return The content process hint flag.
+     */
+    public boolean getUseContentProcessHint() {
+        return mUseContentProcess;
+    }
+
+    /**
+     * Get the custom Gecko process arguments.
+     *
+     * @return The Gecko process arguments.
+     */
+    public String[] getArguments() {
+        return mArgs;
+    }
+
+    /**
+     * Get the custom Gecko intent extras.
+     *
+     * @return The Gecko intent extras.
+     */
+    public Bundle getExtras() {
+        return mExtras;
+    }
+
+    /**
+     * Set the content process hint flag.
+     *
+     * @param use If true, this will reload the content process for future use.
+     */
+    public void setUseContentProcessHint(boolean use) {
+        mUseContentProcess = use;
+    }
+
+    /**
+     * Set the custom Gecko process arguments.
+     *
+     * @param args The Gecko process arguments.
+     */
+    public void setArguments(final @NonNull String[] args) {
+        mArgs = args;
+    }
+
+    /**
+     * Set the custom Gecko intent extras.
+     *
+     * @param extras The Gecko intent extras.
+     */
+    public void setExtras(final @NonNull Bundle extras) {
+        mExtras = extras;
+    }
+
+    @Override // Parcelable
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override // Parcelable
+    public void writeToParcel(Parcel out, int flags) {
+        out.writeByte((byte) (mUseContentProcess ? 1 : 0));
+        out.writeStringArray(mArgs);
+        mExtras.writeToParcel(out, flags);
+    }
+
+    // AIDL code may call readFromParcel even though it's not part of Parcelable.
+    public void readFromParcel(final Parcel source) {
+        mUseContentProcess = source.readByte() == 1;
+        mArgs = source.createStringArray();
+        mExtras.readFromParcel(source);
+    }
+
+    public static final Parcelable.Creator<GeckoRuntimeSettings> CREATOR
+        = new Parcelable.Creator<GeckoRuntimeSettings>() {
+        @Override
+        public GeckoRuntimeSettings createFromParcel(final Parcel in) {
+            final GeckoRuntimeSettings settings = new GeckoRuntimeSettings();
+            settings.readFromParcel(in);
+            return settings;
+        }
+
+        @Override
+        public GeckoRuntimeSettings[] newArray(final int size) {
+            return new GeckoRuntimeSettings[size];
+        }
+    };
+}
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoSession.java
@@ -195,18 +195,22 @@ public class GeckoSession extends LayerS
                                     callback.sendSuccess(null);
                                     return;
                                 }
 
                                 if (session.isOpen()) {
                                     throw new IllegalArgumentException("Must use an unopened GeckoSession instance");
                                 }
 
-                                session.open(null);
-                                callback.sendSuccess(session.getId());
+                                if (GeckoSession.this.mWindow == null) {
+                                    callback.sendError("Session is not attached to a window");
+                                } else {
+                                    session.open(GeckoSession.this.mWindow.runtime);
+                                    callback.sendSuccess(session.getId());
+                                }
                             }
                         });
                 }
             }
         };
 
     private final GeckoSessionHandler<ProgressDelegate> mProgressHandler =
         new GeckoSessionHandler<ProgressDelegate>(
@@ -462,20 +466,23 @@ public class GeckoSession extends LayerS
         mPermissionHandler.setDelegate(delegate, this);
     }
 
     private PromptDelegate mPromptDelegate;
 
     private final Listener mListener = new Listener();
 
     /* package */ static final class Window extends JNIObject implements IInterface {
+        public final GeckoRuntime runtime;
         private NativeQueue mNativeQueue;
         private Binder mBinder;
 
-        public Window(final NativeQueue nativeQueue) {
+        public Window(final @NonNull GeckoRuntime runtime,
+                      final @NonNull NativeQueue nativeQueue) {
+            this.runtime = runtime;
             mNativeQueue = nativeQueue;
         }
 
         @Override // IInterface
         public Binder asBinder() {
             if (mBinder == null) {
                 mBinder = new Binder();
                 mBinder.attachInterface(this, Window.class.getName());
@@ -613,26 +620,34 @@ public class GeckoSession extends LayerS
 
     protected Window mWindow;
     private GeckoSessionSettings mSettings;
 
     public GeckoSession() {
         this(null);
     }
 
-    public GeckoSession(final GeckoSessionSettings settings) {
+    public GeckoSession(final @Nullable GeckoSessionSettings settings) {
         mSettings = new GeckoSessionSettings(settings, this);
         mListener.registerListeners();
 
         if (BuildConfig.DEBUG && handlersCount != mSessionHandlers.length) {
             throw new AssertionError("Add new handler to handlers list");
         }
     }
 
-    private void transferFrom(final Window window, final GeckoSessionSettings settings,
+    /* package */ @Nullable GeckoRuntime getRuntime() {
+        if (mWindow == null) {
+            return null;
+        }
+        return mWindow.runtime;
+    }
+
+    private void transferFrom(final Window window,
+                              final GeckoSessionSettings settings,
                               final String id) {
         if (isOpen()) {
             throw new IllegalStateException("Session is open");
         }
 
         if (window != null) {
             onWindowChanged(WINDOW_TRANSFER_IN, /* inProgress */ true);
         }
@@ -696,53 +711,16 @@ public class GeckoSession extends LayerS
         }
 
         @Override
         public GeckoSession[] newArray(final int size) {
             return new GeckoSession[size];
         }
     };
 
-    /**
-     * Preload GeckoSession by starting Gecko in the background, if Gecko is not already running.
-     *
-     * @param context Activity or Application Context for starting GeckoSession.
-     */
-    public static void preload(final @NonNull Context context) {
-        preload(context, /* geckoArgs */ null,
-                /* extras */ null, /* multiprocess */ false);
-    }
-
-    /**
-     * Preload GeckoSession by starting Gecko with the specified arguments in the background,
-     * if Gecko is not already running.
-     *
-     * @param context Activity or Application Context for starting GeckoSession.
-     * @param geckoArgs Arguments to be passed to Gecko, if Gecko is not already running.
-     * @param multiprocess True if child process in multiprocess mode should be preloaded.
-     */
-    public static void preload(final @NonNull Context context,
-                               final @Nullable String[] geckoArgs,
-                               final @Nullable Bundle extras,
-                               final boolean multiprocess) {
-        final Context appContext = context.getApplicationContext();
-        if (!appContext.equals(GeckoAppShell.getApplicationContext())) {
-            GeckoAppShell.setApplicationContext(appContext);
-        }
-
-        if (GeckoThread.isLaunched()) {
-            return;
-        }
-
-        final int flags = multiprocess ? GeckoThread.FLAG_PRELOAD_CHILD : 0;
-        if (GeckoThread.initMainProcess(/* profile */ null, geckoArgs, extras, flags)) {
-            GeckoThread.launch();
-        }
-    }
-
     public boolean isOpen() {
         return mWindow != null;
     }
 
     /* package */ boolean isReady() {
         return mNativeQueue.isReady();
     }
 
@@ -752,40 +730,34 @@ public class GeckoSession extends LayerS
      * The session is in a 'closed' state when first created. Opening it creates
      * the underlying Gecko objects necessary to load a page, etc. Most GeckoSession
      * methods only take affect on an open session, and are queued until the session
      * is opened here. Opening a session is an asynchronous operation. You can check
      * the current state via isOpen().
      *
      * Call this when you are ready to use a GeckoSession instance.
      *
-     * @param appContext An application context
+     * @param runtime The Gecko runtime to attach this session to.
      */
-    public void open(final @Nullable Context appContext) {
+    public void open(final @NonNull GeckoRuntime runtime) {
         ThreadUtils.assertOnUiThread();
 
         if (isOpen()) {
             throw new IllegalStateException("Session is open");
         }
 
-        if (appContext != null) {
-            final boolean multiprocess =
-                    mSettings.getBoolean(GeckoSessionSettings.USE_MULTIPROCESS);
-            preload(appContext, /* geckoArgs */ null, /* extras */ null, multiprocess);
-        }
-
-        openWindow();
+        openWindow(runtime);
     }
 
-    private void openWindow() {
+    private void openWindow(final @NonNull GeckoRuntime runtime) {
         final String chromeUri = mSettings.getString(GeckoSessionSettings.CHROME_URI);
         final int screenId = mSettings.getInt(GeckoSessionSettings.SCREEN_ID);
         final boolean isPrivate = mSettings.getBoolean(GeckoSessionSettings.USE_PRIVATE_MODE);
 
-        mWindow = new Window(mNativeQueue);
+        mWindow = new Window(runtime, mNativeQueue);
 
         onWindowChanged(WINDOW_OPEN, /* inProgress */ true);
 
         if (GeckoThread.isStateAtLeast(GeckoThread.State.PROFILE_READY)) {
             Window.open(mWindow, mNativeQueue, mCompositor, mEventDispatcher,
                         mSettings.asBundle(), mId, chromeUri, screenId, isPrivate);
         } else {
             GeckoThread.queueNativeCallUntil(
--- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoView.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoView.java
@@ -19,16 +19,18 @@ import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Rect;
 import android.graphics.Region;
 import android.os.Build;
 import android.os.Handler;
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.support.annotation.Nullable;
+import android.support.annotation.NonNull;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
 import android.util.TypedValue;
 import android.view.InputDevice;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
@@ -42,16 +44,17 @@ import android.widget.FrameLayout;
 public class GeckoView extends FrameLayout {
     private static final String LOGTAG = "GeckoView";
     private static final boolean DEBUG = false;
 
     private static AccessibilityManager sAccessibilityManager;
 
     protected final Display mDisplay = new Display();
     protected GeckoSession mSession;
+    protected GeckoRuntime mRuntime;
     private boolean mStateSaved;
 
     protected SurfaceView mSurfaceView;
 
     private boolean mIsResettingFocus;
 
     private GeckoSession.SelectionActionDelegate mSelectionActionDelegate;
 
@@ -212,25 +215,55 @@ public class GeckoView extends FrameLayo
         mSession.getCompositorController().setFirstPaintCallback(null);
         if (session.getSelectionActionDelegate() == mSelectionActionDelegate) {
             mSession.setSelectionActionDelegate(null);
         }
         mSession = null;
         return session;
     }
 
-    public void setSession(final GeckoSession session) {
+    /**
+     * Attach a session to this view. The session should be opened before
+     * attaching.
+     *
+     * @param session The session to be attached.
+     */
+    public void setSession(@NonNull final GeckoSession session) {
+        if (!session.isOpen()) {
+            throw new IllegalArgumentException("Session must be open before attaching");
+        }
+
+        setSession(session, session.getRuntime());
+    }
+
+    /**
+     * Attach a session to this view. The session should be opened before
+     * attaching or a runtime needs to be provided for automatic opening.
+     *
+     * @param session The session to be attached.
+     * @param runtime The runtime to be used for opening the session.
+     */
+    public void setSession(@NonNull final GeckoSession session,
+                           @Nullable final GeckoRuntime runtime) {
         if (mSession != null && mSession.isOpen()) {
             throw new IllegalStateException("Current session is open");
         }
 
         releaseSession();
+
         mSession = session;
-        if (mSession == null) {
-          return;
+        mRuntime = runtime;
+
+        if (session.isOpen()) {
+            if (runtime != null && runtime != session.getRuntime()) {
+                throw new IllegalArgumentException("Session was opened with non-matching runtime");
+            }
+            mRuntime = session.getRuntime();
+        } else if (runtime == null) {
+            throw new IllegalArgumentException("Session must be open before attaching");
         }
 
         mDisplay.acquire(session.acquireDisplay());
 
         final Context context = getContext();
         session.getOverscrollEdgeEffect().setTheme(context);
         session.getOverscrollEdgeEffect().setInvalidationCallback(new Runnable() {
             @Override
@@ -267,36 +300,32 @@ public class GeckoView extends FrameLayo
     public GeckoSession getSession() {
         return mSession;
     }
 
     public EventDispatcher getEventDispatcher() {
         return mSession.getEventDispatcher();
     }
 
-    public GeckoSessionSettings getSettings() {
-        return mSession.getSettings();
-    }
-
     public PanZoomController getPanZoomController() {
         return mSession.getPanZoomController();
     }
 
     public DynamicToolbarAnimator getDynamicToolbarAnimator() {
         return mSession.getDynamicToolbarAnimator();
     }
 
     @Override
     public void onAttachedToWindow() {
         if (mSession == null) {
-            setSession(new GeckoSession());
+            setSession(new GeckoSession(), GeckoRuntime.getDefault(getContext()));
         }
 
         if (!mSession.isOpen()) {
-            mSession.open(getContext().getApplicationContext());
+            mSession.open(mRuntime);
         }
 
         mSession.getTextInput().setView(this);
 
         super.onAttachedToWindow();
     }
 
     @Override
@@ -341,20 +370,21 @@ public class GeckoView extends FrameLayo
         if (!(state instanceof SavedState)) {
             super.onRestoreInstanceState(state);
             return;
         }
 
         final SavedState ss = (SavedState) state;
         super.onRestoreInstanceState(ss.getSuperState());
 
-        if (mSession == null) {
-            setSession(ss.session);
+        if (mSession == null && ss.session != null) {
+            setSession(ss.session, ss.session.getRuntime());
         } else if (ss.session != null) {
             mSession.transferFrom(ss.session);
+            mRuntime = ss.session.getRuntime();
         }
     }
 
     @Override
     public void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) {
         super.onFocusChanged(gainFocus, direction, previouslyFocusedRect);
 
         if (!gainFocus || mIsResettingFocus) {
--- a/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/GeckoViewActivity.java
+++ b/mobile/android/geckoview_example/src/main/java/org/mozilla/geckoview_example/GeckoViewActivity.java
@@ -12,80 +12,87 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.SystemClock;
 import android.util.Log;
 import android.view.WindowManager;
 
 import java.util.Locale;
 
-import org.mozilla.gecko.GeckoThread;
 import org.mozilla.geckoview.GeckoSession;
 import org.mozilla.geckoview.GeckoSessionSettings;
 import org.mozilla.geckoview.GeckoSession.Response;
 import org.mozilla.geckoview.GeckoSession.TrackingProtectionDelegate;
 import org.mozilla.geckoview.GeckoView;
+import org.mozilla.geckoview.GeckoRuntime;
+import org.mozilla.geckoview.GeckoRuntimeSettings;
 
 public class GeckoViewActivity extends Activity {
     private static final String LOGTAG = "GeckoViewActivity";
     private static final String DEFAULT_URL = "https://mozilla.org";
     private static final String USE_MULTIPROCESS_EXTRA = "use_multiprocess";
     private static final String USE_REMOTE_DEBUGGER_EXTRA = "use_remote_debugger";
     private static final String ACTION_SHUTDOWN =
         "org.mozilla.geckoview_example.SHUTDOWN";
     private boolean mKillProcessOnDestroy;
 
     /* package */ static final int REQUEST_FILE_PICKER = 1;
     private static final int REQUEST_PERMISSIONS = 2;
 
+    private static GeckoRuntime sGeckoRuntime;
     private GeckoSession mGeckoSession;
     private GeckoView mGeckoView;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         Log.i(LOGTAG, "zerdatime " + SystemClock.elapsedRealtime() +
               " - application start");
 
-        final String[] geckoArgs;
+        setContentView(R.layout.geckoview_activity);
+        mGeckoView = (GeckoView) findViewById(R.id.gecko_view);
+
+        final boolean useMultiprocess =
+            getIntent().getBooleanExtra(USE_MULTIPROCESS_EXTRA, true);
+
+        if (sGeckoRuntime == null) {
+            final GeckoRuntimeSettings geckoSettings = new GeckoRuntimeSettings();
 
-        if (BuildConfig.DEBUG) {
-            // In debug builds, we want to load JavaScript resources fresh with each build.
-            geckoArgs = new String[] { "-purgecaches" };
-        } else {
-            geckoArgs = null;
+            if (BuildConfig.DEBUG) {
+                // In debug builds, we want to load JavaScript resources fresh with
+                // each build.
+                geckoSettings.setArguments(new String[] { "-purgecaches" });
+            }
+
+            geckoSettings.setUseContentProcessHint(useMultiprocess);
+            geckoSettings.setExtras(getIntent().getExtras());
+            sGeckoRuntime = GeckoRuntime.create(this, geckoSettings);
         }
 
-        final boolean useMultiprocess = getIntent().getBooleanExtra(USE_MULTIPROCESS_EXTRA,
-                                                                    true);
-        GeckoSession.preload(this, geckoArgs, getIntent().getExtras(), useMultiprocess);
+        final GeckoSessionSettings sessionSettings = new GeckoSessionSettings();
+        sessionSettings.setBoolean(GeckoSessionSettings.USE_MULTIPROCESS,
+                                   useMultiprocess);
+        mGeckoSession = new GeckoSession(sessionSettings);
 
-        setContentView(R.layout.geckoview_activity);
-
-        mGeckoView = (GeckoView) findViewById(R.id.gecko_view);
-        mGeckoSession = new GeckoSession();
-        mGeckoView.setSession(mGeckoSession);
+        mGeckoView.setSession(mGeckoSession, sGeckoRuntime);
 
         mGeckoSession.setContentDelegate(new MyGeckoViewContent());
         final MyTrackingProtection tp = new MyTrackingProtection();
         mGeckoSession.setTrackingProtectionDelegate(tp);
         mGeckoSession.setProgressDelegate(new MyGeckoViewProgress(tp));
         mGeckoSession.setNavigationDelegate(new Navigation());
 
         final BasicGeckoViewPrompt prompt = new BasicGeckoViewPrompt(this);
         prompt.filePickerRequestCode = REQUEST_FILE_PICKER;
         mGeckoSession.setPromptDelegate(prompt);
 
         final MyGeckoViewPermission permission = new MyGeckoViewPermission();
         permission.androidPermissionRequestCode = REQUEST_PERMISSIONS;
         mGeckoSession.setPermissionDelegate(permission);
 
-        mGeckoSession.getSettings().setBoolean(GeckoSessionSettings.USE_MULTIPROCESS,
-                                               useMultiprocess);
-
         mGeckoSession.enableTrackingProtection(
               TrackingProtectionDelegate.CATEGORY_AD |
               TrackingProtectionDelegate.CATEGORY_ANALYTIC |
               TrackingProtectionDelegate.CATEGORY_SOCIAL
         );
 
         loadSettings(getIntent());
         loadFromIntent(getIntent());
@@ -101,17 +108,19 @@ public class GeckoViewActivity extends A
     }
 
     @Override
     protected void onNewIntent(final Intent intent) {
         super.onNewIntent(intent);
 
         if (ACTION_SHUTDOWN.equals(intent.getAction())) {
             mKillProcessOnDestroy = true;
-            GeckoThread.forceQuit();
+            if (sGeckoRuntime != null) {
+                sGeckoRuntime.shutdown();
+            }
             finish();
             return;
         }
 
         setIntent(intent);
 
         loadSettings(intent);
         if (intent.getData() != null) {
@@ -120,17 +129,17 @@ public class GeckoViewActivity extends A
     }
 
     private void loadFromIntent(final Intent intent) {
         final Uri uri = intent.getData();
         mGeckoSession.loadUri(uri != null ? uri.toString() : DEFAULT_URL);
     }
 
     private void loadSettings(final Intent intent) {
-        final GeckoSessionSettings settings = mGeckoView.getSettings();
+        final GeckoSessionSettings settings = mGeckoSession.getSettings();
         settings.setBoolean(
             GeckoSessionSettings.USE_REMOTE_DEBUGGER,
             intent.getBooleanExtra(USE_REMOTE_DEBUGGER_EXTRA, false));
 
         Log.i(LOGTAG, "Load with settings " + settings);
     }
 
     @Override
--- a/mozglue/misc/TimeStamp.h
+++ b/mozglue/misc/TimeStamp.h
@@ -586,17 +586,16 @@ public:
   // two TimeStamps, or scaling TimeStamps, is nonsense and must never
   // be allowed.
 
   static MFBT_API void Startup();
   static MFBT_API void Shutdown();
 
 private:
   friend struct IPC::ParamTraits<mozilla::TimeStamp>;
-  friend void StartupTimelineRecordExternal(int, uint64_t);
 
   MOZ_IMPLICIT TimeStamp(TimeStampValue aValue) : mValue(aValue) {}
 
   static MFBT_API TimeStamp Now(bool aHighResolution);
 
   /**
    * Computes the uptime of the current process in microseconds. The result
    * is platform-dependent and needs to be checked against existing timestamps
--- a/mozglue/misc/TimeStamp_windows.h
+++ b/mozglue/misc/TimeStamp_windows.h
@@ -12,17 +12,16 @@
 namespace mozilla {
 
 class TimeStamp;
 
 class TimeStampValue
 {
   friend struct IPC::ParamTraits<mozilla::TimeStampValue>;
   friend class TimeStamp;
-  friend void StartupTimelineRecordExternal(int, uint64_t);
 
   // Both QPC and GTC are kept in [mt] units.
   uint64_t mGTC;
   uint64_t mQPC;
   bool mHasQPC;
   bool mIsNull;
 
   MFBT_API TimeStampValue(uint64_t aGTC, uint64_t aQPC, bool aHasQPC);
--- a/security/manager/ssl/StaticHPKPins.h
+++ b/security/manager/ssl/StaticHPKPins.h
@@ -1158,9 +1158,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 = 485;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1531686800288000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1531773471822000);
--- a/security/manager/ssl/nsSTSPreloadList.errors
+++ b/security/manager/ssl/nsSTSPreloadList.errors
@@ -17,47 +17,45 @@ 1001.best: could not connect to host
 100onrainkajino.com: could not connect to host
 135vv.com: could not connect to host
 13826145000.com: could not connect to host
 16164f.com: could not connect to host
 166166.com: could not connect to host
 1888zr.com: could not connect to host
 1912x.com: could not connect to host
 1921958389.rsc.cdn77.org: could not connect to host
-1day1ac.red: could not connect to host
 1er-secours.ch: could not connect to host
 1gsoft.com: could not connect to host
 1nian.vip: could not connect to host
 1q365a.com: could not connect to host
 2.wtf: could not connect to host
 249cq.com: could not connect to host
 256k.me: could not connect to host
 2b3b.com: could not connect to host
 2bitout.com: could not connect to host
 2fl.me: could not connect to host
 330.net: could not connect to host
 360ds.co.in: could not connect to host
 379700.com: could not connect to host
+3839.ca: could not connect to host
 38888msc.com: could not connect to host
 38blog.com: could not connect to host
 3dm.audio: could not connect to host
 3vlnaeet.cz: could not connect to host
 404.guide: could not connect to host
 41844.de: could not connect to host
 42t.ru: could not connect to host
 439191.com: could not connect to host
 440hz-radio.de: could not connect to host
 47tech.com: could not connect to host
 4baby.com.br: could not connect to host
 4d2.xyz: could not connect to host
-4host.ch: could not connect to host
 4loc.us: could not connect to host
 4web-hosting.com: could not connect to host
 5000yz.com: could not connect to host
-517vpn.cn: could not connect to host
 52kb.net: could not connect to host
 52kb1.com: could not connect to host
 52neptune.com: could not connect to host
 56877.com: could not connect to host
 5w5.la: could not connect to host
 6542277.com: could not connect to host
 6548855.com: could not connect to host
 6548877.com: could not connect to host
@@ -73,17 +71,16 @@ 8887999.com: could not connect to host
 88laohu.cc: could not connect to host
 88laohu.com: could not connect to host
 8ackprotect.com: could not connect to host
 8ballbombom.uk: could not connect to host
 8t88.biz: could not connect to host
 91-freedom.com: could not connect to host
 99buffets.com: could not connect to host
 9ss6.com: could not connect to host
-9yw.me: could not connect to host
 a-intel.com: could not connect to host
 a-ix.net: could not connect to host
 aariefhaafiz.com: could not connect to host
 aaron.xin: could not connect to host
 abi-fvs.de: could not connect to host
 abigailstark.com: could not connect to host
 abloop.com: could not connect to host
 abolition.co: could not connect to host
@@ -125,18 +122,16 @@ agent-grow.com: could not connect to hos
 agingstop.net: could not connect to host
 agoravm.tk: could not connect to host
 agowa.eu: could not connect to host
 agowa338.de: could not connect to host
 agrilinks.org: could not connect to host
 ahelos.tk: could not connect to host
 ahkubiak.ovh: could not connect to host
 ahlz.sk: could not connect to host
-aid-web.ch: could not connect to host
-aijsk.com: could not connect to host
 aikenorganics.com: could not connect to host
 aim-consultants.com: could not connect to host
 aimrom.org: could not connect to host
 ajetaci.cz: could not connect to host
 akiba-server.info: could not connect to host
 akita-stream.com: could not connect to host
 akoch.net: could not connect to host
 akoww.de: could not connect to host
@@ -144,17 +139,16 @@ akritikos.info: could not connect to hos
 akul.co.in: could not connect to host
 al-f.net: could not connect to host
 alasta.info: could not connect to host
 alauda-home.de: could not connect to host
 albertify.xyz: could not connect to host
 alcatraz.online: could not connect to host
 aldred.cloud: could not connect to host
 aleax.me: could not connect to host
-alela.fr: could not connect to host
 alexandernorth.ch: could not connect to host
 alexey-shamara.ru: could not connect to host
 alexhaydock.co.uk: could not connect to host
 alexismeza.dk: could not connect to host
 alexmol.tk: could not connect to host
 algarmatic-automatismos.pt: could not connect to host
 alibababee.com: could not connect to host
 alignrs.com: could not connect to host
@@ -163,26 +157,24 @@ alldm.ru: could not connect to host
 alloutatl.com: could not connect to host
 allscammers.exposed: could not connect to host
 allthingsfpl.com: could not connect to host
 alocato.com: could not connect to host
 alphabrock.cn: could not connect to host
 alphahunks.com: could not connect to host
 altahrim.net: could not connect to host
 altered.network: could not connect to host
-altoneum.com: could not connect to host
-alwaysonssl.com: could not connect to host
+alternativet.party: could not connect to host
 amdouglas.uk: could not connect to host
 ameho.me: could not connect to host
 americandistribuidora.com: could not connect to host
 americkykongres.cz: could not connect to host
 amilum.org: could not connect to host
 amua.fr: could not connect to host
 amunoz.org: could not connect to host
-anadoluefessk.org: could not connect to host
 analyzemyfriends.com: could not connect to host
 anassiriphotography.com: could not connect to host
 anastasia-shamara.ru: could not connect to host
 ancientcraft.eu: could not connect to host
 andreas-kluge.eu: could not connect to host
 andreaskluge.eu: could not connect to host
 andrei-coman.com: could not connect to host
 andrewdaws.co: could not connect to host
@@ -215,17 +207,16 @@ aquireceitas.com: could not connect to h
 arawaza.biz: could not connect to host
 arckr.com: could not connect to host
 area3.org: could not connect to host
 arenlor.com: could not connect to host
 arenlor.info: could not connect to host
 arenns.com: could not connect to host
 arent.kz: could not connect to host
 arenzanaphotography.com: could not connect to host
-argh.io: could not connect to host
 arksan.com.tr: could not connect to host
 armazemdaminiatura.com.br: could not connect to host
 armenians.online: could not connect to host
 arnesolutions.com: could not connect to host
 arresttracker.com: could not connect to host
 arrivedconsulting.com: could not connect to host
 arsenal.ru: could not connect to host
 arsk1.com: could not connect to host
@@ -274,35 +265,33 @@ avonlearningcampus.com: could not connec
 avso.pw: could not connect to host
 avxo.pw: could not connect to host
 awan.tech: could not connect to host
 awei.pub: could not connect to host
 awf0.xyz: could not connect to host
 awxg.eu.org: could not connect to host
 axel-fischer.science: could not connect to host
 axxial.tk: could not connect to host
-ayrohq.com: could not connect to host
 b9winner.com: could not connect to host
 babelfisch.eu: could not connect to host
 babystep.tv: could not connect to host
 bacimg.com: could not connect to host
 badbee.cc: could not connect to host
 bairdzhang.com: could not connect to host
-bakabt.info: could not connect to host
 balonmano.co: could not connect to host
 bandally.net: could not connect to host
 bandarifamily.com: could not connect to host
-bankcircle.co.in: could not connect to host
 bannisbierblog.de: could not connect to host
 bardiharborow.tk: could not connect to host
 bargainmovingcompany.com: could not connect to host
 barracuda.blog: could not connect to host
 basculasconfiables.com: could not connect to host
 bashc.at: could not connect to host
 batfoundry.com: could not connect to host
+baychimo.com: could not connect to host
 bbb1991.me: could not connect to host
 bbdos.ru: could not connect to host
 bbwteens.org: could not connect to host
 bcradio.org: could not connect to host
 bdikaros-network.net: could not connect to host
 bdsmxxxpics.com: could not connect to host
 beamitapp.com: could not connect to host
 beasel.biz: could not connect to host
@@ -389,17 +378,16 @@ blueblou.com: could not connect to host
 blumen-garage.de: could not connect to host
 blunderify.se: could not connect to host
 bm-i.ch: could not connect to host
 bodybuilding.events: could not connect to host
 boilesen.com: could not connect to host
 bolivarfm.com.ve: could not connect to host
 bomberus.de: could not connect to host
 bombsquad.studio: could not connect to host
-bonita.com.br: could not connect to host
 bonobo.cz: could not connect to host
 bookreport.ga: could not connect to host
 booter.es: could not connect to host
 boozinyan.com: could not connect to host
 bopera.co.uk: could not connect to host
 borchers-media.de: could not connect to host
 borisbesemer.com: could not connect to host
 boxdevigneron.fr: could not connect to host
@@ -425,37 +413,35 @@ bsktweetup.info: could not connect to ho
 bslim-e-boutique.com: could not connect to host
 bsquared.org: could not connect to host
 bsuess.de: could not connect to host
 btcp.space: could not connect to host
 buenotour.ru: could not connect to host
 buffalodrinkinggame.beer: could not connect to host
 bugsmashed.com: could not connect to host
 bugtrack.co.uk: could not connect to host
-builditsolutions.net: could not connect to host
 buka.jp: could not connect to host
-bull.id.au: could not connect to host
 bulletbabu.com: could not connect to host
 bunadarbankinn.is: could not connect to host
 bupu.ml: could not connect to host
+burr.is: could not connect to host
 businessamongus.com: could not connect to host
 businessetmarketing.com: could not connect to host
 businessfurs.info: could not connect to host
 businesshub.cz: could not connect to host
 businessmodeler.se: could not connect to host
 buyharpoon.com: could not connect to host
 buyingsellingflorida.com: could not connect to host
 buyshoe.org: could not connect to host
 buywood.shop: could not connect to host
 bvexplained.co.uk: could not connect to host
 bxdev.me: could not connect to host
 by1898.com: could not connect to host
 byji.com: could not connect to host
 bypass.kr: could not connect to host
-byronprivaterehab.com.au: could not connect to host
 byteshift.ca: could not connect to host
 bytesunlimited.com: could not connect to host
 byvshie.com: could not connect to host
 c2o2.xyz: could not connect to host
 cafechesscourt.com: could not connect to host
 cafesg.net: could not connect to host
 caipai.fm: could not connect to host
 cairnterrier.com.br: could not connect to host
@@ -504,22 +490,22 @@ championnat-romand-cuisiniers-amateurs.c
 channellife.asia: could not connect to host
 chaouby.com: could not connect to host
 charge.co: could not connect to host
 charmyadesara.com: could not connect to host
 chatnbook.com: could not connect to host
 chatsworthelectrical.com: could not connect to host
 cheah.xyz: could not connect to host
 cheesefusion.com: could not connect to host
+chellame.fr: could not connect to host
 chez-janine.de: could not connect to host
 chicorycom.net: could not connect to host
 chikory.com: could not connect to host
 china-line.org: could not connect to host
 chinternet.xyz: could not connect to host
-chksite.com: could not connect to host
 chloe.re: could not connect to host
 chocolat-suisse.ch: could not connect to host
 chorkley.me: could not connect to host
 chrisebert.net: could not connect to host
 christianhoffmann.info: could not connect to host
 christianpusch.de: could not connect to host
 christiansayswords.com: could not connect to host
 christophersole.com: could not connect to host
@@ -542,16 +528,17 @@ clic-music.com: could not connect to hos
 clickclock.cc: could not connect to host
 clickomobile.com: could not connect to host
 clintonbloodworth.com: could not connect to host
 clochix.net: could not connect to host
 closingholding.com: could not connect to host
 cloudberlin.goip.de: could not connect to host
 cloudbleed.info: could not connect to host
 cloudimproved.com: could not connect to host
+cloudimprovedtest.com: could not connect to host
 cloudwarez.xyz: could not connect to host
 clownish.co.il: could not connect to host
 clubmate.rocks: could not connect to host
 clycat.ru: could not connect to host
 cmcc.network: could not connect to host
 cmpr.es: could not connect to host
 cmrss.com: could not connect to host
 cms-weble.jp: could not connect to host
@@ -575,17 +562,16 @@ codewiz.xyz: could not connect to host
 cogumelosmagicos.org: could not connect to host
 colarelli.ch: could not connect to host
 colleencornez.com: could not connect to host
 collins.kg: could not connect to host
 colo-tech.com: could not connect to host
 colorectalcompounding.com: could not connect to host
 com-in.de: could not connect to host
 com.cc: could not connect to host
-comalia.com: could not connect to host
 comiq.io: could not connect to host
 compeuphoria.com: could not connect to host
 complex-organization.com: could not connect to host
 complt.xyz: could not connect to host
 comprehensiveihc.com: could not connect to host
 conception.sk: could not connect to host
 conejovalleyelectrical.com: could not connect to host
 conkret.in: could not connect to host
@@ -604,16 +590,17 @@ cotta.dk: could not connect to host
 coumoul.fr: could not connect to host
 cpaneltips.com: could not connect to host
 crackpfer.de: could not connect to host
 crackslut.eu: could not connect to host
 craftination.net: could not connect to host
 craftydev.design: could not connect to host
 crashsec.com: could not connect to host
 creativecommonscatpictures.com: could not connect to host
+creato.top: could not connect to host
 credential.eu: could not connect to host
 creditreporttips.net: could not connect to host
 crip-usk.ba: could not connect to host
 cristianhares.com: could not connect to host
 criticalaim.com: could not connect to host
 crow.tw: could not connect to host
 crox.co: could not connect to host
 cryptoisnotacrime.org: could not connect to host
@@ -661,17 +648,16 @@ darrenellis.xyz: could not connect to ho
 darrienworth.com: could not connect to host
 daryl.moe: could not connect to host
 dashboard.yt: could not connect to host
 data-detox.com: could not connect to host
 datamatic.ru: could not connect to host
 datastream.re: could not connect to host
 datengrab.ws: could not connect to host
 dateno1.com: could not connect to host
-datenschutzhelden.org: could not connect to host
 datorb.com: could not connect to host
 daverandom.com: could not connect to host
 davidgreig.uk: could not connect to host
 davidscherzer.at: could not connect to host
 davidstuff.net: could not connect to host
 davros.eu: could not connect to host
 davros.ru: could not connect to host
 dawnson.is: could not connect to host
@@ -762,17 +748,16 @@ dojin.nagoya: could not connect to host
 dolarcanadense.com.br: could not connect to host
 dolphin-hosting.com: could not connect to host
 domengrad.ru: could not connect to host
 domfee.com: could not connect to host
 dongkexue.com: could not connect to host
 donotspellitgav.in: could not connect to host
 doopdidoop.com: could not connect to host
 dostavkakurierom.ru: could not connect to host
-dougferris.id.au: could not connect to host
 doujin.nagoya: could not connect to host
 doyoulyft.com: could not connect to host
 doze-cloud.tech: could not connect to host
 dperson.net: could not connect to host
 draghive.net: could not connect to host
 dragonwork.me: could not connect to host
 drakfot.se: could not connect to host
 dreamaholic.club: could not connect to host
@@ -795,36 +780,38 @@ dujsq.top: could not connect to host
 duo.money: could not connect to host
 durangoenergyllc.com: could not connect to host
 dwnld.me: could not connect to host
 dynamic-networks.be: could not connect to host
 e-mak.eu: could not connect to host
 e-wishlist.net: could not connect to host
 eagle-yard.de: could not connect to host
 eagleridgecampground.com: could not connect to host
+eapestudioweb.com: could not connect to host
 earth-people.org: could not connect to host
 eatfitoutlet.com.br: could not connect to host
-ebonyriddle.com: could not connect to host
 ebrowz.com: could not connect to host
 eccux.com: could not connect to host
 ectora.com: could not connect to host
 edgecustomersportal.com: could not connect to host
 educatoys.com.br: could not connect to host
 eductf.org: could not connect to host
 eduif.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
 eeb98.com: could not connect to host
 eeetrust.org: could not connect to host
 eenekorea.com: could not connect to host
 eez.ee: could not connect to host
 effectiveosgi.com: could not connect to host
+ehertz.uk: could not connect to host
 ehrlichesbier.de: could not connect to host
 ehuber.info: could not connect to host
 einhorn.space: could not connect to host
 einsatzstiefel.info: could not connect to host
 einsteinathome.org: could not connect to host
+ejgconsultancy.co.uk: could not connect to host
 ekobudisantoso.net: could not connect to host
 ekong366.com: could not connect to host
 electricalcontrolpanels.co.uk: could not connect to host
 electricianumhlangarocks.co.za: could not connect to host
 electronicafacil.net: could not connect to host
 elenorsmadness.org: could not connect to host
 eletesstilus.hu: could not connect to host
 elevateandprosper.com: could not connect to host
@@ -838,17 +825,16 @@ emaily.eu: could not connect to host
 emavok.eu: could not connect to host
 embellir-aroma.com: could not connect to host
 embellir-kyujin.com: could not connect to host
 embracethedarkness.co.uk: could not connect to host
 eminhuseynov.com: could not connect to host
 emmehair.com: could not connect to host
 emperor.blog: could not connect to host
 empire24.co: could not connect to host
-endofnet.org: could not connect to host
 endohaus.us: could not connect to host
 endspamwith.us: could not connect to host
 enoou.com: could not connect to host
 enpalmademallorca.info: could not connect to host
 enskat.de: could not connect to host
 enskatson-sippe.de: could not connect to host
 entaurus.com: could not connect to host
 envelope.co.nz: could not connect to host
@@ -857,36 +843,38 @@ er-music.com: could not connect to host
 erad.fr: could not connect to host
 erclab.kr: could not connect to host
 erethon.com: could not connect to host
 ericloud.tk: could not connect to host
 ericwie.se: could not connect to host
 erigrid.eu: could not connect to host
 erspro.net: could not connect to host
 es888999.com: could not connect to host
+esaborit.ddns.net: could not connect to host
 esoterik.link: could not connect to host
 essentialoilsimports.com: could not connect to host
 esseriumani.com: could not connect to host
 essplusmed.org: could not connect to host
 etenendrinken.nu: could not connect to host
 ethanfaust.com: could not connect to host
-etincelle.ml: could not connect to host
 etzi.myds.me: could not connect to host
 euexia.fr: could not connect to host
 eung.ga: could not connect to host
 euph.eu: could not connect to host
 eurostrategy.vn.ua: could not connect to host
 evankurniawan.com: could not connect to host
 evasioncreole.com: could not connect to host
 eventaro.com: could not connect to host
 eventmake.es: could not connect to host
 everyarti.st: could not connect to host
+everybodyhertz.co.uk: could not connect to host
 everygayporn.com: could not connect to host
 eveshaiwu.com: could not connect to host
 eworksmedia.com: could not connect to host
+exceed.global: could not connect to host
 exceptionalservices.us: could not connect to host
 exo.do: could not connect to host
 exteriorservices.io: could not connect to host
 extratorrent.fyi: could not connect to host
 extratorrent.red: could not connect to host
 extratorrent.world: could not connect to host
 eytosh.net: could not connect to host
 f1bigpicture.com: could not connect to host
@@ -895,17 +883,16 @@ faber.org.ru: could not connect to host
 fabian-kluge.de: could not connect to host
 fabienbaker.com: could not connect to host
 fabulouslyyouthfulskin.com: could not connect to host
 fabulouslyyouthfulskineyeserum.com: could not connect to host
 facebook.ax: could not connect to host
 facesnf.com: could not connect to host
 facilitrak.com: could not connect to host
 factureenlinea.com: could not connect to host
-faeriecakes.be: could not connect to host
 fafatiger.com: could not connect to host
 faithwatch.org: could not connect to host
 fakti.bg: could not connect to host
 falkus.net: could not connect to host
 fallenangeldrinks.eu: could not connect to host
 famer.me: could not connect to host
 fameuxhosting.co.uk: could not connect to host
 familie-leu.ch: could not connect to host
@@ -919,16 +906,17 @@ feac.us: could not connect to host
 fed51.com: could not connect to host
 fedn.it: could not connect to host
 feedstringer.com: could not connect to host
 feirlane.org: could not connect to host
 feisbed.com: could not connect to host
 feist.io: could not connect to host
 felger-times.fr: could not connect to host
 fengyadi.com: could not connect to host
+fensterbau-mutscheller.de: could not connect to host
 feras-alhajjaji.com: could not connect to host
 fetclips.se: could not connect to host
 feudaltactics.com: could not connect to host
 fhsseniormens.club: could not connect to host
 ficklenote.net: could not connect to host
 fierman.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
 fierman.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
 fierman.us: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
@@ -947,28 +935,28 @@ fix-the-timeline.com: could not connect 
 fix-the-timeline.org: could not connect to host
 fixmyglitch.com: could not connect to host
 fixthetimeline.com: could not connect to host
 fixthetimeline.org: could not connect to host
 flam.io: could not connect to host
 flamingcow.tv: could not connect to host
 flemingtonaudiparts.com: could not connect to host
 flexinvesting.fi: could not connect to host
+floriantanner.ch: could not connect to host
 floth.at: could not connect to host
 flugplatz-edvc.de: could not connect to host
 flyingdoggy.net: could not connect to host
 fmovies.life: could not connect to host
 focalforest.com: could not connect to host
 fognini-depablo.eu: could not connect to host
 foodserve.in: could not connect to host
 forcamp.ga: could not connect to host
 foreverssl.com: could not connect to host
 forsyththeatre.com: could not connect to host
 fortuna-loessnitz.de: could not connect to host
-forum-bonn.de: could not connect to host
 fossewayflowers.co.uk: could not connect to host
 fossewayflowers.com: could not connect to host
 foudufafa.de: could not connect to host
 foxyslut.com: could not connect to host
 fragnic.com: could not connect to host
 frank.fyi: could not connect to host
 franklinhua.com: could not connect to host
 franzt.ovh: could not connect to host
@@ -981,26 +969,26 @@ freedomvote.nl: could not connect to hos
 freejidi.com: could not connect to host
 freelansir.com: could not connect to host
 freesitemapgenerator.com: could not connect to host
 freesounding.ru: could not connect to host
 freshcode.nl: could not connect to host
 frickelboxx.de: could not connect to host
 frickenate.com: could not connect to host
 friedhelm-wolf.de: could not connect to host
+friller.com.au: could not connect to host
 frodriguez.xyz: could not connect to host
 frolov.net: could not connect to host
 fromix.de: could not connect to host
 fromlemaytoz.com: could not connect to host
 frosty-gaming.xyz: could not connect to host
 frp-roleplay.de: could not connect to host
 fsfi.is: could not connect to host
 ftgho.com: could not connect to host
 fuchsy.com: could not connect to host
-fuckav.ru: could not connect to host
 fuckcf.cf: could not connect to host
 fugle.de: could not connect to host
 fuitedeau.ch: could not connect to host
 fukuko.biz: could not connect to host
 fukuko.xyz: could not connect to host
 fun9.cc: could not connect to host
 fun99.cc: could not connect to host
 funksteckdosen24.de: could not connect to host
@@ -1025,17 +1013,16 @@ gametium.es: could not connect to host
 gamhealth.net: could not connect to host
 garage-door.pro: could not connect to host
 gasbarkenora.com: could not connect to host
 gashalot.com: could not connect to host
 gasnews.net: could not connect to host
 gautham.pro: could not connect to host
 gay-jays.com: could not connect to host
 gaygeeks.de: could not connect to host
-gaysexpositions.guide: could not connect to host
 gc.net: could not connect to host
 gdevpenze.ru: could not connect to host
 gdhzcgs.com: could not connect to host
 gdz-otvety.com: could not connect to host
 ge1.me: could not connect to host
 gear-acquisition-syndrome.community: could not connect to host
 geeks.berlin: could not connect to host
 gehrke.nrw: could not connect to host
@@ -1062,31 +1049,28 @@ getgeek.pl: could not connect to host
 getyou.onl: could not connect to host
 getyourphix.tk: could not connect to host
 gevaulug.fr: could not connect to host
 gfoss.gr: could not connect to host
 gglks.com: could not connect to host
 ggss.cf: could not connect to host
 gh16.com.ar: could not connect to host
 gifzilla.net: could not connect to host
-gigime.com: could not connect to host
 gina-architektur.design: could not connect to host
 girlsnet.work: could not connect to host
 git.co: could not connect to host
-gitstuff.tk: could not connect to host
 gix.net.pl: could not connect to host
 glenavy.tk: could not connect to host
 globalelite.black: could not connect to host
 globalnewsdaily.cf: could not connect to host
 globaltennis.ca: could not connect to host
 globalvisions-events.ch: could not connect to host
 glutenfreelife.co.nz: could not connect to host
 gmanukyan.com: could not connect to host
 gnom.me: could not connect to host
-gnosticjade.net: could not connect to host
 goanalyse.co.uk: could not connect to host
 godrealms.com: could not connect to host
 goiaspropaganda.com.br: could not connect to host
 goldfelt.com: could not connect to host
 gongjuhao.com: could not connect to host
 goodyearsotn.co.uk: could not connect to host
 google.ax: could not connect to host
 goranrango.ch: could not connect to host
@@ -1118,17 +1102,16 @@ guildgearscore.cf: could not connect to 
 guinea-pig.co: could not connect to host
 gunhunter.com: could not connect to host
 gus.moe: could not connect to host
 gvchannel.xyz: could not connect to host
 gwrtech.com: could not connect to host
 gxgx.org: could not connect to host
 gzitech.net: could not connect to host
 gzpblog.com: could not connect to host
-h001.ru: could not connect to host
 h2cdn.cloud: could not connect to host
 h3artbl33d.nl: could not connect to host
 habeo.si: could not connect to host
 hack.cz: could not connect to host
 hackbubble.me: could not connect to host
 hacker.deals: could not connect to host
 hackmeplz.com: could not connect to host
 hakugin.me: could not connect to host
@@ -1186,24 +1169,26 @@ hfu.io: could not connect to host
 hg881.com: could not connect to host
 hialatv.com: could not connect to host
 hideout.agency: could not connect to host
 hill.selfip.net: could not connect to host
 hingle.me: could not connect to host
 hintermeier-rae.at: could not connect to host
 hiphop.ren: could not connect to host
 hirte-digital.de: could not connect to host
+hisnet.de: could not connect to host
 history.pe: could not connect to host
 hjes.com.ve: could not connect to host
 hoffens.se: could not connect to host
 hohm.in: could not connect to host
 holidayincotswolds.co.uk: could not connect to host
 holowaty.me: could not connect to host
 homa.website: could not connect to host
 home-cloud.online: could not connect to host
+homecoming.city: could not connect to host
 homesfordinner.ca: could not connect to host
 homoglyph.net: could not connect to host
 honeytracks.com: could not connect to host
 hoodoo.io: could not connect to host
 hoodoo.tech: could not connect to host
 hopglass.eu: could not connect to host
 hopglass.net: could not connect to host
 horvathd.eu: could not connect to host
@@ -1224,27 +1209,25 @@ hudingyuan.cn: could not connect to host
 huirongis.me: could not connect to host
 huiser.nl: could not connect to host
 hukaloh.com: could not connect to host
 hukkatavara.com: could not connect to host
 hunger.im: could not connect to host
 huongquynh.com: could not connect to host
 huwjones.me: could not connect to host
 huzurmetal.net: could not connect to host
-hvdbox.de: could not connect to host
 hydrante.ch: could not connect to host
 hyper-matrix.org: could not connect to host
 hypotheques24.ch: could not connect to host
 hyvive.com: could not connect to host
 hzh.pub: could not connect to host
 i-stats.net: could not connect to host
 i4m1k0su.com: could not connect to host
 i95.me: could not connect to host
 iadttaveras.com: could not connect to host
-iain.tech: could not connect to host
 iamsoareyou.se: could not connect to host
 ianmoriarty.com.au: could not connect to host
 ibox.ovh: could not connect to host
 ibron.co: could not connect to host
 ibsafrica.co.za: could not connect to host
 ibsglobal.co.za: could not connect to host
 icebound.win: could not connect to host
 iceloch.com: could not connect to host
@@ -1258,25 +1241,23 @@ idiopolis.org: could not connect to host
 idol-bikes.ru: could not connect to host
 idsafe.co.za: could not connect to host
 idtechnowizard.com: could not connect to host
 iemb.cf: could not connect to host
 ifan.ch: could not connect to host
 ifcfg.me: could not connect to host
 ifxnet.com: could not connect to host
 igamingforums.com: could not connect to host
-igd.chat: could not connect to host
 ihatethissh.it: could not connect to host
 iideaz.org: could not connect to host
 ikenmeyer.com: could not connect to host
 ikenmeyer.eu: could not connect to host
 ikzoekeengoedkopeauto.nl: could not connect to host
 ileat.com: could not connect to host
 ilya.pp.ua: could not connect to host
-ima-tourcoing.fr: could not connect to host
 imaginarymakings.me: could not connect to host
 img.ovh: could not connect to host
 imgencrypt.com: could not connect to host
 imgul.net: could not connect to host
 imlinan.cn: could not connect to host
 imlinan.info: could not connect to host
 imlinan.net: could not connect to host
 immersionwealth.com: could not connect to host
@@ -1320,18 +1301,19 @@ iodu.re: could not connect to host
 ionc.ca: could not connect to host
 ioover.net: could not connect to host
 ip.or.at: could not connect to host
 ipcfg.me: could not connect to host
 iphonechina.net: could not connect to host
 iplog.info: could not connect to host
 ipnetworking.net: could not connect to host
 irinkeby.nu: could not connect to host
+iris-insa.com: could not connect to host
 isisfighters.info: could not connect to host
-isntall.us: could not connect to host
+islief.com: could not connect to host
 isoroc-nidzica.pl: could not connect to host
 isscouncil.com: could not connect to host
 isslshop.com: could not connect to host
 isthefieldcontrolsystemdown.com: could not connect to host
 istherrienstillcoach.com: could not connect to host
 it-adminio.ru: could not connect to host
 itad.top: could not connect to host
 itnews-bg.com: could not connect to host
@@ -1354,17 +1336,16 @@ jaksel.id: could not connect to host
 jamesevans.is: could not connect to host
 jamesheald.com: could not connect to host
 janheidler.dynv6.net: could not connect to host
 janssen.fm: could not connect to host
 japan4you.org: could not connect to host
 jaredfraser.com: could not connect to host
 jasonwindholz.com: could not connect to host
 javascriptlab.fr: could not connect to host
-jawn.ca: could not connect to host
 jazzinutrecht.info: could not connect to host
 jbbd.fr: could not connect to host
 jccars-occasions.be: could not connect to host
 jccrew.org: could not connect to host
 jean-remy.ch: could not connect to host
 jecho.cn: could not connect to host
 jeffersonregan.org: could not connect to host
 jeffhuxley.com: could not connect to host
@@ -1386,17 +1367,16 @@ jonfor.net: could not connect to host
 jooto.com: could not connect to host
 jpod.cc: could not connect to host
 jsjyhzy.cc: could not connect to host
 juliaoantiguidades.com.br: could not connect to host
 juliawebber.co.za: could not connect to host
 juliohernandezgt.com: could not connect to host
 jumbopan.com: could not connect to host
 jumbopan.net: could not connect to host
-jurisprudent.by: could not connect to host
 jurko.cz: could not connect to host
 jurriaan.ninja: could not connect to host
 just-pools.co.za: could not connect to host
 justinharrison.ca: could not connect to host
 justzz.xyz: could not connect to host
 juventusmania1897.com: could not connect to host
 jwolt-lx.com: could not connect to host
 kaika-facilitymanagement.de: could not connect to host
@@ -1410,22 +1390,24 @@ kancolle.me: could not connect to host
 kanganer.com: could not connect to host
 kangzaber.com: could not connect to host
 kanzakiranko.jp: could not connect to host
 kapo.info: could not connect to host
 kapseli.net: could not connect to host
 kartacha.com: could not connect to host
 karuneshjohri.com: could not connect to host
 kat.al: could not connect to host
+kati0.com: could not connect to host
 katyusha.net: could not connect to host
 kawaiiku.com: could not connect to host
 kawaiiku.de: could not connect to host
 kaydan.io: could not connect to host
 kayipmurekkep.com: could not connect to host
 kearney.io: could not connect to host
+keithws.net: could not connect to host
 kellyandantony.com: could not connect to host
 kelm.me: could not connect to host
 kennynet.co.uk: could not connect to host
 kenyons.info: could not connect to host
 kermadec.com: could not connect to host
 keshausconsulting.com: could not connect to host
 kevindekoninck.com: could not connect to host
 kevinfoley.cc: could not connect to host
@@ -1434,16 +1416,18 @@ kevinpirnie.com: could not connect to ho
 keyserver.sexy: could not connect to host
 keystoneok.com: could not connect to host
 kgb.us: could not connect to host
 kiapps.ovh: could not connect to host
 kidbacker.com: could not connect to host
 kieranweightman.me: could not connect to host
 kievradio.com: could not connect to host
 kikuzuki.org: could not connect to host
+killerrobots.com: could not connect to host
+kinderjugendfreizeitverein.de: could not connect to host
 kinepolis-studio.ga: could not connect to host
 kineto.space: could not connect to host
 kingbird.me: could not connect to host
 kingclass.cn: could not connect to host
 kingpincages.com: could not connect to host
 kingtecservices.com: could not connect to host
 kinomoto.me: could not connect to host
 kinomoto.ovh: could not connect to host
@@ -1469,18 +1453,16 @@ koppelvlak.net: could not connect to hos
 korni22.org: could not connect to host
 kotitesti.fi: could not connect to host
 kotorimusic.ga: could not connect to host
 kozmik.co: could not connect to host
 kpvpn.com: could not connect to host
 krampus-fischamend.at: could not connect to host
 kriegskindernothilfe.de: could not connect to host
 kriptosec.com: could not connect to host
-kroon.email: could not connect to host
-kruin.net: could not connect to host
 ktube.yt: could not connect to host
 kubusadvocaten.nl: could not connect to host
 kuko-crews.org: could not connect to host
 kuwago.io: could not connect to host
 kwikmed.eu: could not connect to host
 kwipi.com: could not connect to host
 kyberna.xyz: could not connect to host
 kyle.place: could not connect to host
@@ -1497,54 +1479,50 @@ lacasa.fr: could not connect to host
 lacasabelucci.com: could not connect to host
 lacasseroy.com: could not connect to host
 ladylikeit.com: could not connect to host
 laforetenchantee.ch: could not connect to host
 lafr4nc3.xyz: could not connect to host
 lakehavasucityhomebuyerscredit.com: could not connect to host
 lakehavasuhomebuyercredit.com: could not connect to host
 lakehavasuhouserentals.com: could not connect to host
-lakehavasuhouses.com: could not connect to host
 landell.ml: could not connect to host
 langendorf-ernaehrung-training.de: could not connect to host
 lannainnovation.com: could not connect to host
 lanonfire.com: could not connect to host
 laozhu.me: could not connect to host
 larondinedisinfestazione.com: could not connect to host
 latamarissiere.eu: could not connect to host
 lateliercantaldeco.fr: could not connect to host
 lathamlabs.com: could not connect to host
 lathamlabs.net: could not connect to host
 lathamlabs.org: could not connect to host
-laubacher.io: could not connect to host
 lazerus.net: could not connect to host
 lazulu.com: could not connect to host
 lbarrios.es: could not connect to host
 lbrlh.tk: could not connect to host
 lbrli.tk: could not connect to host
 lbrls.tk: could not connect to host
 lclarkpdx.com: could not connect to host
 lcti.biz: could not connect to host
-ldc.com.br: could not connect to host
 leadbox.cz: could not connect to host
 leaderoftheresistance.com: could not connect to host
 leaderoftheresistance.net: could not connect to host
 leaks.directory: could not connect to host
 leanclub.org: could not connect to host
 leandre.cn: could not connect to host
 lebal.se: could not connect to host
 leebiblestudycentre.net: could not connect to host
 leebiblestudycentre.org: could not connect to host
 leefindlow.com: could not connect to host
 leelou.wedding: could not connect to host
 leerkotte.eu: could not connect to host
 legal.farm: could not connect to host
 legaltip.eu: could not connect to host
 leonardcamacho.me: could not connect to host
-leonhooijer.nl: could not connect to host
 lerlivros.online: could not connect to host
 lescomptoirsdepierrot.com: could not connect to host
 lesdouceursdeliyana.com: could not connect to host
 lesh.eu: could not connect to host
 lesjardinsdemathieu.net: could not connect to host
 letsgetintouch.com: could not connect to host
 lettland-firma.com: could not connect to host
 leveredge.net: could not connect to host
@@ -1584,22 +1562,24 @@ lmrcouncil.gov: could not connect to hos
 loanstreet.be: could not connect to host
 lobosdomain.ddns.net: could not connect to host
 lobosdomain.no-ip.info: could not connect to host
 locker3.com: could not connect to host
 logcat.info: could not connect to host
 logic8.ml: could not connect to host
 logimagine.com: could not connect to host
 lojavirtualfct.com.br: could not connect to host
+loli.world: could not connect to host
 lolicon.info: could not connect to host
 lookasik.eu: could not connect to host
 loopower.com: could not connect to host
 loperetti.ch: could not connect to host
 loqyu.co: could not connect to host
 losebellyfat.pro: could not connect to host
+lotuscloud.de: could not connect to host
 love4taylor.eu.org: could not connect to host
 loveandloyalty.se: could not connect to host
 lowt.us: could not connect to host
 loyaltech.ch: could not connect to host
 lstma.com: could not connect to host
 lszj.com: could not connect to host
 ltransferts.com: could not connect to host
 lubot.net: could not connect to host
@@ -1615,23 +1595,20 @@ luminancy.com: could not connect to host
 luom.net: could not connect to host
 lzqii.cn: could not connect to host
 m-generator.com: could not connect to host
 m-kleinert.de: could not connect to host
 m4570.xyz: could not connect to host
 m4g.ru: could not connect to host
 maartenterpstra.xyz: could not connect to host
 maaya.jp: could not connect to host
-macandtonic.com: could not connect to host
 madeintucson.org: could not connect to host
 mader.jp: could not connect to host
 madnetwork.org: could not connect to host
 maelstrom.ninja: could not connect to host
-mafia.network: could not connect to host
-magicball.co: could not connect to host
 magnacumlaude.co: could not connect to host
 maik-mahlow.de: could not connect to host
 mail4geek.com: could not connect to host
 mailon.ga: could not connect to host
 makeit-so.de: could not connect to host
 makeuplove.nl: could not connect to host
 makeurbiz.com: could not connect to host
 malamutedoalasca.com.br: could not connect to host
@@ -1654,22 +1631,24 @@ markllego.com: could not connect to host
 marko-fenster24.de: could not connect to host
 markrego.com: could not connect to host
 martin-mattel.com: could not connect to host
 martins.im: could not connect to host
 marxist.party: could not connect to host
 masto.io: could not connect to host
 mastodon.expert: could not connect to host
 mastodon.my: could not connect to host
+mastodon.org.uk: could not connect to host
 mat99.dk: could not connect to host
 matarrosabierzo.com: could not connect to host
 mathijskingma.nl: could not connect to host
 matlabjo.ir: could not connect to host
 matrix.ac: could not connect to host
 mattia98.org: could not connect to host
+maxibanki.ovh: could not connect to host
 maxpl0it.com: could not connect to host
 maxtruxa.com: could not connect to host
 maybeul.com: could not connect to host
 maynardnetworks.com: could not connect to host
 mazternet.ru: could not connect to host
 mazurlabs.tk: could not connect to host
 mb-is.info: could not connect to host
 mbdrogenbos-usedcars.be: could not connect to host
@@ -1681,17 +1660,16 @@ mcideas.tk: could not connect to host
 mcjackk77.com: could not connect to host
 mckinley1.com: could not connect to host
 mcsa-usa.org: could not connect to host
 mcsnovatamabayan.com: could not connect to host
 me-dc.com: could not connect to host
 meathealth.com: could not connect to host
 mecanicadom.com: could not connect to host
 mediadandy.com: could not connect to host
-mediadex.be: could not connect to host
 medicinskavranje.edu.rs: could not connect to host
 mediter-simplement.com: could not connect to host
 mediweed.tk: could not connect to host
 medy-me.com: could not connect to host
 megadrol.com: could not connect to host
 meizufans.eu: could not connect to host
 melenchatsmelenchiens.fr: could not connect to host
 melhorproduto.com.br: could not connect to host
@@ -1744,16 +1722,17 @@ mkfs.fr: could not connect to host
 mkp-deutschland.de: could not connect to host
 mkplay.io: could not connect to host
 mkw.st: could not connect to host
 mmilog.hu: could not connect to host
 mmstick.tk: could not connect to host
 mnec.io: could not connect to host
 mneeb.de: could not connect to host
 mobile.eti.br: could not connect to host
+mobilemalin.com: could not connect to host
 mobileritelushi.com: could not connect to host
 mobilux.lv: could not connect to host
 mobmp4.co: could not connect to host
 mobmp4.com: could not connect to host
 mobmp4.info: could not connect to host
 mochoko.com: could not connect to host
 modded-minecraft-server-list.com: could not connect to host
 modernibytovytextil.cz: could not connect to host
@@ -1789,18 +1768,20 @@ mozzilla.cz: could not connect to host
 mpserver12.org: could not connect to host
 mrafrohead.com: could not connect to host
 mrizzio.com: could not connect to host
 mrliu.me: could not connect to host
 mrnh.tk: could not connect to host
 mruganiepodspacja.pl: could not connect to host
 msgallery.tk: could not connect to host
 msz-fotografie.de: could not connect to host
+mtd.ovh: could not connect to host
 mtirc.co: could not connect to host
 mtn.cc: could not connect to host
+muchohentai.com: could not connect to host
 muga.space: could not connect to host
 muj-svet.cz: could not connect to host
 multivpn.cn.com: could not connect to host
 multivpn.com.ua: could not connect to host
 multivpn.fr: could not connect to host
 munduch.cz: could not connect to host
 murraycoin.org: could not connect to host
 murraycolin.org: could not connect to host
@@ -1871,25 +1852,24 @@ next-taxi.ru: could not connect to host
 nexusbyte.de: could not connect to host
 nexusconnectinternational.eu: could not connect to host
 nexuscorporation.in: could not connect to host
 nfluence.org: could not connect to host
 ngiemboon.net: could not connect to host
 nginxyii.tk: could not connect to host
 ngocuong.net: could not connect to host
 nienfun.com: could not connect to host
-nikklassen.ca: could not connect to host
 nikksno.io: could not connect to host
 nikobradshaw.com: could not connect to host
 nikolasbradshaw.com: could not connect to host
 nimidam.com: could not connect to host
-ninreiei.jp: could not connect to host
 niouininon.eu: could not connect to host
 nirada.info: could not connect to host
 nishikino-maki.com: could not connect to host
+nishisbma.com: could not connect to host
 nkadvertising.online: could not connect to host
 nkp-media.de: could not connect to host
 nodelab-it.de: could not connect to host
 nodeselect.com: could not connect to host
 noelblog.ga: could not connect to host
 noisebridge.social: could not connect to host
 nolimits.net.nz: could not connect to host
 nonemu.ninja: could not connect to host
@@ -1900,31 +1880,35 @@ note7forever.com: could not connect to h
 notesforpebble.com: could not connect to host
 notevencode.com: could not connect to host
 novascan.net: could not connect to host
 novfishing.ru: could not connect to host
 nowremindme.com: could not connect to host
 nsbfalconacademy.org: could not connect to host
 nsdev.cn: could not connect to host
 nsmail.cn: could not connect to host
+nu-pogodi.net: could not connect to host
 nudel.ninja: could not connect to host
 nyanpasu.tv: could not connect to host
 oaksbloom.com: could not connect to host
 oasis-conference.org.nz: could not connect to host
 obdolbacca.ru: could not connect to host
 oberam.de: could not connect to host
 oberhof.co: could not connect to host
 observatory.se: could not connect to host
 ocapic.com: could not connect to host
 ocsr.nl: could not connect to host
 octo.im: could not connect to host
 oducs.org: could not connect to host
 off-the-clock.us: could not connect to host
 offgames.pro: could not connect to host
 office-ruru.com: could not connect to host
+ohlmeier.com: could not connect to host
+ohlmeier.net: could not connect to host
+ohlmeier.org: could not connect to host
 ohnemusik.com: could not connect to host
 oinky.ddns.net: could not connect to host
 oklahomamoversassociation.org: could not connect to host
 oklahomanotepro.com: could not connect to host
 oldandyounglesbians.us: could not connect to host
 oldtimer-trifft-flugplatz.de: could not connect to host
 oliverfaircliff.com: could not connect to host
 oliverspringer.eu: could not connect to host
@@ -1934,17 +1918,16 @@ onionsburg.com: could not connect to hos
 onsennuie.fr: could not connect to host
 onsite4u.de: could not connect to host
 onstud.com: could not connect to host
 onwie.com: could not connect to host
 onwie.fr: could not connect to host
 ooeste.com: could not connect to host
 openclub24.ru: could not connect to host
 openconnect.com.au: could not connect to host
-openvz.org: could not connect to host
 opinion8td.com: could not connect to host
 orangekey.tk: could not connect to host
 oranges.tokyo: could not connect to host
 oricejoc.com: could not connect to host
 oscarmashauri.com: could not connect to host
 oscillation-services.fr: could not connect to host
 oscsdp.cz: could not connect to host
 oshinagaki.jp: could not connect to host
@@ -1963,16 +1946,17 @@ pacoda.de: could not connect to host
 pactf-flag-4boxdpa21ogonzkcrs9p.com: could not connect to host
 paichai.space: could not connect to host
 painosso.org: could not connect to host
 paio2-rec.com: could not connect to host
 paio2.com: could not connect to host
 palationtrade.com: could not connect to host
 panascais.io: could not connect to host
 pandapsy.com: could not connect to host
+parakranov.ru: could not connect to host
 pardnoy.com: could not connect to host
 parkingpoint.co.uk: could not connect to host
 pasteros.io: could not connect to host
 pastie.se: could not connect to host
 patrickbusch.net: could not connect to host
 patrickneuro.de: could not connect to host
 paulshir.com: could not connect to host
 paulshir.is: could not connect to host
@@ -1981,17 +1965,16 @@ pavelstriz.cz: could not connect to host
 pay.ubuntu.com: could not connect to host
 paymon.tj: could not connect to host
 paypod.org: could not connect to host
 pbraunschdash.com: could not connect to host
 pbscreens.com: could not connect to host
 pbytes.com: could not connect to host
 pcvirusclear.com: could not connect to host
 pear2pear.de: could not connect to host
-pedrosaurus.com: could not connect to host
 peerless.ae: could not connect to host
 peirong.me: could not connect to host
 pemagrid.org: could not connect to host
 pengisatelier.net: could not connect to host
 persjrp.ca: could not connect to host
 persoform.ch: could not connect to host
 pesto.video: could not connect to host
 petlife.od.ua: could not connect to host
@@ -2031,17 +2014,16 @@ please-deny.me: could not connect to hos
 pleaseuseansnisupportedbrowser.ml: could not connect to host
 plussizereviews.com: could not connect to host
 pmbremer.de: could not connect to host
 pmklaassen.com: could not connect to host
 pogs.us: could not connect to host
 pointworksacademy.com: could not connect to host
 polit-it.pro: could not connect to host
 polit.im: could not connect to host
-poneytelecom.org: could not connect to host
 pookl.com: could not connect to host
 poolinstallers.co.za: could not connect to host
 popkins.cf: could not connect to host
 popkins.ga: could not connect to host
 popkins.gq: could not connect to host
 popkins.tk: could not connect to host
 pornblog.org: could not connect to host
 porschen.fr: could not connect to host
@@ -2059,17 +2041,16 @@ povesham.tk: could not connect to host
 powerentertainment.tv: could not connect to host
 powershellmagic.com: could not connect to host
 poy-tech.com: could not connect to host
 ppoozl.com: could not connect to host
 precedecaritas.com.br: could not connect to host
 prekladysanca.cz: could not connect to host
 prestigerepairs.com.au: could not connect to host
 prettytunesapp.com: could not connect to host
-priceholic.com: could not connect to host
 prifo.se: could not connect to host
 princessbackpack.de: could not connect to host
 printsos.com: could not connect to host
 prism-communication.com: could not connect to host
 privacyforjournalists.org.au: could not connect to host
 privacymanatee.com: could not connect to host
 privcloud.org: could not connect to host
 privilegevisa.fr: could not connect to host
@@ -2111,16 +2092,17 @@ pugilares.com.pl: could not connect to h
 puhe.se: could not connect to host
 puikheid.nl: could not connect to host
 punkdns.top: could not connect to host
 purrfectcams.com: could not connect to host
 purrfectmembersclub.com: could not connect to host
 pwdgen.net: could not connect to host
 pwntr.com: could not connect to host
 pyjiaoyi.cf: could not connect to host
+pysays.net: could not connect to host
 pythia.nz: could not connect to host
 pyzlnar.com: could not connect to host
 qforum.org: could not connect to host
 qikan.net: could not connect to host
 qnatek.org: could not connect to host
 qoqo.us: could not connect to host
 qqj.net: could not connect to host
 qqvips.com: could not connect to host
@@ -2130,18 +2112,18 @@ quikpay.com.au: could not connect to hos
 r-cut.fr: could not connect to host
 r0t.co: could not connect to host
 racasdecachorro.org: could not connect to host
 rackblue.com: could not connect to host
 radaravia.ru: could not connect to host
 radiocomsaocarlos.com.br: could not connect to host
 radiopolarniki.spb.ru: could not connect to host
 radtke.bayern: could not connect to host
-rahamasin.eu: could not connect to host
 rainbin.com: could not connect to host
+ramov.com: could not connect to host
 ranos.org: could not connect to host
 rapidemobile.com: could not connect to host
 rapidflow.io: could not connect to host
 raven.dog: could not connect to host
 ravengergaming.net: could not connect to host
 ravse.dk: could not connect to host
 raycarruthersphotography.co.uk: could not connect to host
 rb-china.net: could not connect to host
@@ -2151,33 +2133,33 @@ rcx.io: could not connect to host
 rdfz.tech: could not connect to host
 re-wilding.com: could not connect to host
 reaiaer.com: could not connect to host
 real-bits.com: could not connect to host
 real-compare.com: could not connect to host
 realcli.com: could not connect to host
 realnewhomes.com: could not connect to host
 realwoo.com: could not connect to host
-rechtenliteratuurleiden.nl: could not connect to host
 recon-networks.com: could not connect to host
 reeson.at: could not connect to host
 reeson.de: could not connect to host
 reeson.info: could not connect to host
 reeson.org: could not connect to host
 reevu.net: could not connect to host
 reflecton.io: could not connect to host
 refreshingserum.com: could not connect to host
 regalpaintingfdl.com: could not connect to host
 regendevices.eu: could not connect to host
 regio-salland.nl: could not connect to host
 regsec.com: could not connect to host
 reignsphere.net: could not connect to host
 reismil.ch: could not connect to host
 relatic.net: could not connect to host
 relsak.cz: could not connect to host
+rentbrowser.com: could not connect to host
 report-incident.de: could not connect to host
 reposaarenkuva.fi: could not connect to host
 reputationweaver.com: could not connect to host
 reqognize.com: could not connect to host
 research.md: could not connect to host
 resoundpro.ca: could not connect to host
 restaurantesimonetti.com.br: could not connect to host
 restioson.me: could not connect to host
@@ -2192,28 +2174,25 @@ rga.sh: could not connect to host
 ribopierre.fr: could not connect to host
 riceglue.com: could not connect to host
 richardb.me: could not connect to host
 richardcrosby.co.uk: could not connect to host
 richeza.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
 rickmartensen.nl: could not connect to host
 ridingoklahoma.com: could not connect to host
 righteousendeavour.com: could not connect to host
-ritzlux.com.tw: could not connect to host
 riversideauto.net: could not connect to host
 riverstyxgame.com: could not connect to host
 rob.uk.com: could not connect to host
-robbertt.com: could not connect to host
 robertabittle.com: could not connect to host
 robi-net.it: could not connect to host
 robinvdmarkt.nl: could not connect to host
 robomonkey.org: could not connect to host
 robust.ga: could not connect to host
 rodehutskors.net: could not connect to host
-rofrank.space: could not connect to host
 rolandszabo.com: could not connect to host
 romanticschemermovie.com: could not connect to host
 romanticvillas.com.au: could not connect to host
 rondreis-planner.nl: could not connect to host
 ronghexx.com: could not connect to host
 rool.me: could not connect to host
 roolevoi.ru: could not connect to host
 room2d.com: could not connect to host
@@ -2222,18 +2201,18 @@ rospa100.com: could not connect to host
 rotterdamjazz.info: could not connect to host
 royzez.com: could not connect to host
 rozalisbengal.ro: could not connect to host
 rozalynne-dawn.ga: could not connect to host
 rpasafrica.com: could not connect to host
 rro.rs: could not connect to host
 rs-devdemo.host: could not connect to host
 rsldb.com: could not connect to host
-rsm-intern.de: could not connect to host
 rtc.fun: could not connect to host
+ruanmi.de: could not connect to host
 rubbix.net: could not connect to host
 rubendv.be: could not connect to host
 ruflay.ru: could not connect to host
 ruhr3.de: could not connect to host
 rukhaiyar.com: could not connect to host
 run-forrest.run: could not connect to host
 runcarina.com: could not connect to host
 rundumcolumn.xyz: could not connect to host
@@ -2242,16 +2221,17 @@ ruurdboomsma.nl: could not connect to ho
 rzegroup.com: could not connect to host
 s0923.com: could not connect to host
 s16e.no: could not connect to host
 s3n.se: could not connect to host
 s44.eu: could not connect to host
 sadiejanehair.com: could not connect to host
 safedevice.net: could not connect to host
 saferedirectlink.com: could not connect to host
+safeui.com: could not connect to host
 sagemontchurch.org: could not connect to host
 saintw.com: could not connect to host
 salaervergleich.com: could not connect to host
 sallysubs.com: could not connect to host
 salverainha.org: could not connect to host
 salzamt.tk: could not connect to host
 samaritan.tech: could not connect to host
 sammyjohnson.com: could not connect to host
@@ -2265,33 +2245,33 @@ sarindia.com: could not connect to host
 sarindia.de: could not connect to host
 sarkisozleri.us: could not connect to host
 sarndipity.com: could not connect to host
 sativatunja.com: could not connect to host
 savecashindia.com: could not connect to host
 savethedogfishfoundation.org: could not connect to host
 savingbytes.com: could not connect to host
 saxol-group.com: could not connect to host
-sb.im: could not connect to host
 sbm.cloud: could not connect to host
 scalaire.fr: could not connect to host
 schaafenstrasse.koeln: could not connect to host
 schmidttulskie.de: could not connect to host
 schnapke.name: could not connect to host
 schul-bar.de: could not connect to host
 scib.tk: could not connect to host
 sciencemonster.co.uk: could not connect to host
 scintillating.stream: could not connect to host
 scitopia.me: could not connect to host
 scm-2017.org: could not connect to host
 scottainslie.me.uk: could not connect to host
 scriptgates.ru: could not connect to host
 scripthost.org: could not connect to host
 scriptjunkie.us: could not connect to host
 scruffymen.com: could not connect to host
+scrumbleship.com: could not connect to host
 sctm.at: could not connect to host
 seanationals.org: could not connect to host
 seankilgarriff.com: could not connect to host
 searx.pw: could not connect to host
 sebi.cf: could not connect to host
 secitem.de: could not connect to host
 sectest.ml: could not connect to host
 secure-automotive-cloud.com: could not connect to host
@@ -2317,16 +2297,17 @@ seomen.biz: could not connect to host
 seoscribe.net: could not connect to host
 servecrypt.com: could not connect to host
 servecrypt.ru: could not connect to host
 server.pk: could not connect to host
 serverlauget.no: could not connect to host
 servfefe.com: could not connect to host
 seryovpn.com: could not connect to host
 sesha.co.za: could not connect to host
+sessionslogning.dk: could not connect to host
 sexshopfacil.com.br: could not connect to host
 sgtsnookums.net: could not connect to host
 sh4y.com: could not connect to host
 shadiku.com: could not connect to host
 shadowplus.net: could not connect to host
 shadowrocket.net: could not connect to host
 shadowsocks.software: could not connect to host
 shaitan.eu: could not connect to host
@@ -2337,17 +2318,17 @@ sharpe-practice.co.uk: could not connect
 sharvey.ca: could not connect to host
 shavingks.com: could not connect to host
 shentengtu.idv.tw: could not connect to host
 sheying.tm: could not connect to host
 shh.sh: could not connect to host
 shibainu.com.br: could not connect to host
 shinko-osaka.jp: could not connect to host
 shirakaba-cc.com: could not connect to host
-shirtsdelivered.com: could not connect to host
+shiroki-k.net: could not connect to host
 shockercityservices.com: could not connect to host
 shootpooloklahoma.com: could not connect to host
 shred.ch: could not connect to host
 shredoptics.ch: could not connect to host
 shtorku.com: could not connect to host
 shurita.org: could not connect to host
 shuzicai.cn: could not connect to host
 shymeck.pw: could not connect to host
@@ -2384,17 +2365,16 @@ slaps.be: could not connect to host
 slash64.co.uk: could not connect to host
 slash64.uk: could not connect to host
 slatemc.fun: could not connect to host
 sliceone.com: could not connect to host
 slytech.ch: could not connect to host
 smallchat.nl: could not connect to host
 smallplanet.ch: could not connect to host
 smartbiz.vn: could not connect to host
-smdavis.us: could not connect to host
 sml.lc: could not connect to host
 smuhelper.cn: could not connect to host
 sneed.company: could not connect to host
 snowdy.eu: could not connect to host
 soboleva-pr.com.ua: could not connect to host
 soci.ml: could not connect to host
 socialworkout.com: could not connect to host
 socialworkout.net: could not connect to host
@@ -2448,17 +2428,16 @@ statgram.me: could not connect to host
 static-assets.io: could not connect to host
 static.hosting: could not connect to host
 staticisnoise.com: could not connect to host
 statusbot.io: could not connect to host
 staxflax.tk: could not connect to host
 steelrhino.co: could not connect to host
 steffi-in-australien.com: could not connect to host
 stevengoodpaster.com: could not connect to host
-stevenz.science: could not connect to host
 stickswag.cf: could not connect to host
 stiger.me: could not connect to host
 stilettomoda.com.br: could not connect to host
 stnl.de: could not connect to host
 stoianlawfirm.com: could not connect to host
 stonefusion.org.uk: could not connect to host
 stonemanbrasil.com.br: could not connect to host
 stopakwardhandshakes.org: could not connect to host
@@ -2575,16 +2554,17 @@ thelostyankee.com: could not connect to 
 thenrdhrd.nl: could not connect to host
 theoverfly.co: could not connect to host
 theposhfudgecompany.co.uk: could not connect to host
 theprincegame.com: could not connect to host
 theprivacysolution.com: could not connect to host
 thequillmagazine.org: could not connect to host
 thermique.ch: could not connect to host
 thesehighsandlows.com: could not connect to host
+thesled.net: could not connect to host
 thevacweb.com: could not connect to host
 thevoid.one: could not connect to host
 thezero.org: could not connect to host
 thinkcash.nl: could not connect to host
 thismumdoesntknowbest.com: could not connect to host
 threatcentral.io: could not connect to host
 thunderfield-boat.co.uk: could not connect to host
 tianxicaipiao.com: could not connect to host
@@ -2678,16 +2658,17 @@ tysye.ca: could not connect to host
 tzwe.com: could not connect to host
 ubalert.com: could not connect to host
 ubicv.com: could not connect to host
 ueba1085.jp: could not connect to host
 uesociedadlimitada.com: could not connect to host
 ueu.me: could not connect to host
 ugcdn.com: could not connect to host
 ulalau.com: could not connect to host
+umsapi.com: could not connect to host
 unefuite.ch: could not connect to host
 unhu.fr: could not connect to host
 uni2share.com: could not connect to host
 unicorn.li: could not connect to host
 upani.net: could not connect to host
 uploadbro.com: could not connect to host
 upmchealthsecurity.us: could not connect to host
 upr.com.ua: could not connect to host
@@ -2711,16 +2692,17 @@ vanderstraeten.dynv6.net: could not conn
 vanessabalibridal.com: could not connect to host
 vapemania.eu: could not connect to host
 varela-electricite.fr: could not connect to host
 variablyconstant.com: could not connect to host
 vayaport.com: could not connect to host
 vbazile.com: could not connect to host
 vconcept.ch: could not connect to host
 vconcept.me: could not connect to host
+vdrpro.com: could not connect to host
 vectro.me: could not connect to host
 vekenz.com: could not connect to host
 velasense.com: could not connect to host
 velen.io: could not connect to host
 venicecomputerrepair.com: could not connect to host
 venicefloridawebsitedesign.com: could not connect to host
 venturavwparts.com: could not connect to host
 verdeandco.co.uk: could not connect to host
@@ -2732,23 +2714,22 @@ videorullen.se: could not connect to hos
 vikasbabyworld.de: could not connect to host
 viladochurrasco.com.br: could not connect to host
 vilaydin.com: could not connect to host
 villainsclothing.com.au: could not connect to host
 villasenor.online: could not connect to host
 vimeosucks.nyc: could not connect to host
 vinesauce.info: could not connect to host
 vinetalk.net: could not connect to host
-vinogradovka.com: could not connect to host
 vipnettikasinoklubi.com: could not connect to host
+virvum.ch: could not connect to host
 visiongamestudios.com: could not connect to host
 visionthroughknowledge.com: could not connect to host
 visiontree-beta.eu: could not connect to host
 visiontree.eu: could not connect to host
-visistruct.com: could not connect to host
 vitalamin.at: could not connect to host
 vitalamin.ch: could not connect to host
 vitapingu.de: could not connect to host
 vkino.com: could not connect to host
 vldkn.net: could not connect to host
 vleij.family: could not connect to host
 vlogge.com: could not connect to host
 vlvvl.com: could not connect to host
@@ -2870,17 +2851,16 @@ wuchipc.com: could not connect to host
 wumbo.kiwi: could not connect to host
 wvw698.com: could not connect to host
 wwjd.dynu.net: could not connect to host
 www-68277.com: could not connect to host
 www-8887999.com: could not connect to host
 www.history.pe: could not connect to host
 www.simbolo.co.uk: could not connect to host
 wyzwaniemilosci.com: could not connect to host
-xatr0z.org: could not connect to host
 xbc.nz: could not connect to host
 xeonlab.com: could not connect to host
 xeonlab.de: could not connect to host
 xia100.xyz: could not connect to host
 xiamenshipbuilding.com: could not connect to host
 xianguocy.com: could not connect to host
 xiazhanjian.com: could not connect to host
 xing.ml: could not connect to host
@@ -2941,35 +2921,35 @@ yobbelwobbel.de: could not connect to ho
 yobst.tk: could not connect to host
 yoga.is-an-engineer.com: could not connect to host
 yolo-csgo.com: could not connect to host
 yoticonnections.com: could not connect to host
 yotilabs.com: could not connect to host
 yourself.today: could not connect to host
 yourznc.com: could not connect to host
 yousite.by: could not connect to host
-yoyoost.duckdns.org: could not connect to host
 ythyth.com: could not connect to host
 yude.ml: could not connect to host
 yugege.cf: could not connect to host
 yum.beer: could not connect to host
 yum0.cn: could not connect to host
+yuna.love: could not connect to host
 yurinet.org: could not connect to host
 yux.fr: could not connect to host
 z-coder.com: could not connect to host
 z0rro.net: could not connect to host
 zachbolinger.com: could not connect to host
 zaem.tv: could not connect to host
+zalan.do: could not connect to host
 zalohovaniburian.cz: could not connect to host
 zaoext.com: could not connect to host
 zbchen.com: could not connect to host
 zbp.at: could not connect to host
 zby.io: could not connect to host
 zehdenick-bleibt-bunt.de: could not connect to host
-zeitzer-turngala.de: could not connect to host
 zeloz.xyz: could not connect to host
 zenghx.tk: could not connect to host
 zero-sum.xyz: could not connect to host
 zero-x-baadf00d.com: could not connect to host
 zerocool.io: could not connect to host
 zerosource.net: could not connect to host
 zhangfangzhou.com: could not connect to host
 zhangsir.net: could not connect to host
@@ -3137,17 +3117,17 @@ 555fl.com: max-age too low: 129600
 56ct.com: could not connect to host
 57aromas.com: did not receive HSTS header
 5piecesofadvice.com: could not connect to host
 605508.cc: could not connect to host
 605508.com: could not connect to host
 60ych.net: did not receive HSTS header
 6120.eu: did not receive HSTS header
 64616e.xyz: could not connect to host
-660011.com: could not connect to host
+660011.com: max-age too low: 0
 69square.com: could not connect to host
 721av.com: max-age too low: 2592000
 7777av.co: could not connect to host
 7f-wgg.cf: could not connect to host
 7kovrikov.ru: did not receive HSTS header
 7thheavenrestaurant.com: could not connect to host
 8.net.co: could not connect to host
 808.lv: did not receive HSTS header
@@ -3165,17 +3145,17 @@ 90smthng.com: could not connect to host
 9118b.com: could not connect to host
 911911.pw: could not connect to host
 915ers.com: did not receive HSTS header
 922.be: could not connect to host
 92bmh.com: did not receive HSTS header
 94cs.cn: did not receive HSTS header
 960news.ca: could not connect to host
 9651678.ru: could not connect to host
-99511.fi: could not connect to host
+99511.fi: did not receive HSTS header
 9iwan.net: did not receive HSTS header
 9jadirect.com: could not connect to host
 9point6.com: could not connect to host
 9tolife.be: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
 a-plus.space: could not connect to host
 a-rickroll-n.pw: could not connect to host
 a-theme.com: could not connect to host
 a1-autopartsglasgow.com: did not receive HSTS header
@@ -3211,17 +3191,16 @@ absinthium.ch: could not connect to host
 abt.de: did not receive HSTS header
 abtom.de: did not receive HSTS header
 abury.fr: did not receive HSTS header
 abury.me: did not receive HSTS header
 ac.milan.it: did not receive HSTS header
 acabadosboston.com: could not connect to host
 academialowcost.com.br: did not receive HSTS header
 academicenterprise.org: could not connect to host
-academy4.net: did not receive HSTS header
 acadianapatios.com: did not receive HSTS header
 acai51.net: could not connect to host
 acbc.ie: max-age too low: 0
 accelerole.com: did not receive HSTS header
 accelight.co.jp: did not receive HSTS header
 accelight.jp: did not receive HSTS header
 access-sofia.org: did not receive HSTS header
 accommodation-berry.com.au: max-age too low: 300
@@ -3371,16 +3350,17 @@ alertaenlinea.gov: did not receive HSTS 
 alessandroz.pro: could not connect to host
 alethearose.com: did not receive HSTS header
 alexandre.sh: did not receive HSTS header
 alexbaker.org: did not receive HSTS header
 alexdodge.ca: did not receive HSTS header
 alexfisherhealth.com.au: did not receive HSTS header
 alexkidd.de: did not receive HSTS header
 alexperry.io: did not receive HSTS header
+alexyang.me: did not receive HSTS header
 alfa24.pro: could not connect to host
 alfredxing.com: did not receive HSTS header
 alistairpialek.com: max-age too low: 86400
 alittlebitcheeky.com: did not receive HSTS header
 aljmz.com: could not connect to host
 alkami.com: max-age too low: 0
 alkamitech.com: max-age too low: 0
 all-subtitles.com: could not connect to host
@@ -3430,17 +3410,16 @@ amavis.org: did not receive HSTS header
 amazing-gaming.fr: could not connect to host
 amazingbouncycastles.co.uk: did not receive HSTS header
 amazingfloridagulfhomes.com: did not receive HSTS header
 amcvega.com: did not receive HSTS header
 amerhd.com: could not connect to host
 american-truck-simulator.de: could not connect to host
 american-truck-simulator.net: could not connect to host
 americanbio.com: did not receive HSTS header
-americanoutlawjeepparts.com: did not receive HSTS header
 americansforcommunitydevelopment.org: did not receive HSTS header
 americansportsinstitute.org: did not receive HSTS header
 americanworkwear.nl: did not receive HSTS header
 amicsdelbus.com: did not receive HSTS header
 amigogeek.net: could not connect to host
 amilx.com: could not connect to host
 amilx.org: could not connect to host
 amimoto-ami.com: max-age too low: 3153600
@@ -3456,17 +3435,17 @@ amri.nl: did not receive HSTS header
 anabol.nl: could not connect to host
 anacruz.es: did not receive HSTS header
 anadoluefessporkulubu.org: could not connect to host
 anagra.ms: could not connect to host
 analytic-s.ml: could not connect to host
 analyticsinmotion.net: could not connect to host
 anchorinmarinainc.com: did not receive HSTS header
 ancientkarma.com: could not connect to host
-andere-gedanken.net: max-age too low: 10
+andere-gedanken.net: could not connect to host
 anderslind.dk: could not connect to host
 andre-ballensiefen.de: did not receive HSTS header
 andreagobetti.com: did not receive HSTS header
 andreasanti.net: did not receive HSTS header
 andreasbreitenlohner.de: max-age too low: 600000
 andreasfritz-fotografie.de: could not connect to host
 andreastoneman.com: could not connect to host
 andreigec.net: did not receive HSTS header
@@ -3485,17 +3464,17 @@ androoz.se: could not connect to host
 andyclark.io: could not connect to host
 andycraftz.eu: did not receive HSTS header
 andymartin.cc: could not connect to host
 andyuk.org: could not connect to host
 anfsanchezo.co: could not connect to host
 anfsanchezo.me: could not connect to host
 angeloroberto.ch: did not receive HSTS header
 anghami.com: did not receive HSTS header
-anglesya.win: could not connect to host
+anglesya.win: did not receive HSTS header
 anglictinatabor.cz: could not connect to host
 angryroute.com: could not connect to host
 animal-nature-human.com: did not receive HSTS header
 animalnet.de: max-age too low: 7776000
 anime1video.tk: could not connect to host
 animeday.ml: could not connect to host
 animesfusion.com.br: could not connect to host
 animurecs.com: could not connect to host
@@ -3586,17 +3565,17 @@ aquilalab.com: could not connect to host
 arabdigitalexpression.org: did not receive HSTS header
 aradulconteaza.ro: could not connect to host
 aran.me.uk: could not connect to host
 arboineuropa.nl: did not receive HSTS header
 arbu.eu: max-age too low: 2419200
 arcbit.io: did not receive HSTS header
 archii.ca: did not receive HSTS header
 architecte-interieur.be: did not receive HSTS header
-ardao.me: did not receive HSTS header
+ardao.me: could not connect to host
 ardorlabs.se: could not connect to host
 arewedubstepyet.com: did not receive HSTS header
 areyouever.me: could not connect to host
 argama-nature.com: did not receive HSTS header
 argennon.xyz: could not connect to host
 arguggi.co.uk: could not connect to host
 ariacreations.net: did not receive HSTS header
 arislight.com: did not receive HSTS header
@@ -3628,17 +3607,17 @@ artartefatos.com.br: could not connect t
 artegusto.ru: did not receive HSTS header
 artemicroway.com.br: could not connect to host
 artesupra.com: did not receive HSTS header
 arthan.me: could not connect to host
 artifex21.com: could not connect to host
 artifex21.fr: could not connect to host
 artiming.com: could not connect to host
 artisavotins.com: could not connect to host
-artisphere.ch: did not receive HSTS header
+artisphere.ch: could not connect to host
 artistnetwork.nl: did not receive HSTS header
 artsinthevalley.net.au: did not receive HSTS header
 artyland.ru: did not receive HSTS header
 arvamus.eu: could not connect to host
 arzaroth.com: did not receive HSTS header
 as.se: could not connect to host
 as9178.net: could not connect to host
 asahikoji.net: could not connect to host
@@ -3800,16 +3779,17 @@ baito-j.jp: did not receive HSTS header
 bakaweb.fr: could not connect to host
 bakhansen.com: did not receive HSTS header
 bakingstone.com: could not connect to host
 bakkerdesignandbuild.com: did not receive HSTS header
 balatoni-nyar.hu: did not receive HSTS header
 balcan-underground.net: could not connect to host
 baldwinkoo.com: could not connect to host
 baleares.party: could not connect to host
+balidesignshop.com.br: did not receive HSTS header
 balihai.com: did not receive HSTS header
 balloonphp.com: could not connect to host
 ballparkbuns.com: max-age too low: 86400
 balnearionaturaspa.com: did not receive HSTS header
 bambooforest.nl: could not connect to host
 bambumania.com.br: could not connect to host
 bananabandy.com: could not connect to host
 banbanchs.com: could not connect to host
@@ -4121,16 +4101,17 @@ bogosity.se: could not connect to host
 bohaishibei.com: did not receive HSTS header
 bohan.life: could not connect to host
 boiadeirodeberna.com: could not connect to host
 bokeyy.com: could not connect to host
 boltdata.io: could not connect to host
 bolwerk.com.br: did not receive HSTS header
 bonapp.restaurant: could not connect to host
 boneko.de: could not connect to host
+bonibuty.com: max-age too low: 2592000
 bonigo.de: did not receive HSTS header
 bonitabrazilian.co.nz: did not receive HSTS header
 bonnin.fr: did not receive HSTS header
 bonop.com: did not receive HSTS header
 bonta.one: did not receive HSTS header
 bonus-flexi.com: did not receive HSTS header
 book-of-ra.de: did not receive HSTS header
 bookcelerator.com: did not receive HSTS header
@@ -4251,17 +4232,17 @@ built.by: did not receive HSTS header
 bukatv.cz: could not connect to host
 bulgarien.guide: could not connect to host
 bulkbuy.tech: could not connect to host
 bullbits.com: max-age too low: 0
 bulletpoint.cz: could not connect to host
 bullterrier.me: could not connect to host
 bulmafox.com: could not connect to host
 bumshow.ru: could not connect to host
-bunaken.asia: did not receive HSTS header
+bunaken.asia: could not connect to host
 bunbomenu.de: could not connect to host
 bunsenlabs.org: max-age too low: 2592000
 buonventosbt.eu: did not receive HSTS header
 bureaubolster.nl: did not receive HSTS header
 bureaugravity.com: did not receive HSTS header
 burian-server.cz: could not connect to host
 burlesquemakeup.com: did not receive HSTS header
 burningcrash.de: max-age too low: 600000
@@ -4287,17 +4268,17 @@ buybaby.eu: could not connect to host
 buyfox.de: did not receive HSTS header
 buynowdepot.com: did not receive HSTS header
 buzzconcert.com: did not receive HSTS header
 buzztelco.com.au: did not receive HSTS header
 bw81.xyz: could not connect to host
 bwear4all.de: could not connect to host
 bx-web.com: did not receive HSTS header
 by4cqb.cn: could not connect to host
-by77.com: did not receive HSTS header
+by77.com: could not connect to host
 by777.com: did not receive HSTS header
 bynumlaw.net: did not receive HSTS header
 bypassed.bid: could not connect to host
 bypassed.cc: could not connect to host
 bypassed.club: could not connect to host
 bypassed.date: could not connect to host
 bypassed.download: could not connect to host
 bypassed.faith: could not connect to host
@@ -4405,16 +4386,17 @@ casc.cz: did not receive HSTS header
 casedi.org: max-age too low: 0
 casefall.com: could not connect to host
 cash-pos.com: could not connect to host
 cashless.fr: did not receive HSTS header
 cashmyphone.ch: could not connect to host
 casinolegal.pt: did not receive HSTS header
 casinostest.com: could not connect to host
 casioshop.eu: did not receive HSTS header
+casjay.cloud: did not receive HSTS header
 casjay.us: could not connect to host
 casovi.cf: could not connect to host
 castagnonavocats.com: did not receive HSTS header
 cata.ga: could not connect to host
 catalin.pw: could not connect to host
 catarsisvr.com: could not connect to host
 catchers.cc: did not receive HSTS header
 catinmay.com: did not receive HSTS header
@@ -4439,17 +4421,16 @@ cdreporting.co.uk: did not receive HSTS 
 cdt.org: did not receive HSTS header
 ce-agentur.de: did not receive HSTS header
 cecilwalker.com.au: did not receive HSTS header
 celeirorural.com.br: did not receive HSTS header
 celina-reads.de: could not connect to host
 cellsites.nz: could not connect to host
 centennialrewards.com: did not receive HSTS header
 centerforpolicy.org: did not receive HSTS header
-centralcountiesservices.org: did not receive HSTS header
 centralpoint.be: did not receive HSTS header
 centralpoint.nl: did not receive HSTS header
 centralvacsunlimited.net: did not receive HSTS header
 centralync.com: could not connect to host
 centrepoint-community.com: could not connect to host
 centrolavoro.org: did not receive HSTS header
 centsforchange.net: could not connect to host
 ceresia.ch: could not connect to host
@@ -4486,17 +4467,17 @@ chaoswebs.net: did not receive HSTS head
 charityclear.com: did not receive HSTS header
 charitystreet.co.uk: could not connect to host
 charlestonsecuritysystems.net: did not receive HSTS header
 charliemcneive.com: could not connect to host
 charlimarie.com: did not receive HSTS header
 charlipopkids.com.au: could not connect to host
 charnleyhouse.co.uk: did not receive HSTS header
 charp.eu: could not connect to host
-chartstoffarm.de: max-age too low: 10
+chartstoffarm.de: could not connect to host
 chaska.co.za: did not receive HSTS header
 chat-porc.eu: did not receive HSTS header
 chatbot.me: did not receive HSTS header
 chateauconstellation.ch: did not receive HSTS header
 chatup.cf: could not connect to host
 chaulootz.com: did not receive HSTS header
 chcemvediet.sk: max-age too low: 1555200
 cheapdns.org: could not connect to host
@@ -4644,17 +4625,17 @@ clywedogmaths.co.uk: could not connect t
 cmc-versand.de: did not receive HSTS header
 cmci.dk: did not receive HSTS header
 cmsbattle.com: could not connect to host
 cmscafe.ru: did not receive HSTS header
 cmso-cal.com: could not connect to host
 cncn.us: could not connect to host
 cnrd.me: did not receive HSTS header
 co-driversphoto.se: could not connect to host
-coach-sportif.paris: did not receive HSTS header
+coach-sportif.paris: could not connect to host
 coachingconsultancy.com: did not receive HSTS header
 cobrax.net: could not connect to host
 coccolebenessere.it: did not receive HSTS header
 cocker.cc: max-age too low: 7776000
 cocktailfuture.fr: could not connect to host
 cocolovesdaddy.com: could not connect to host
 codabix.com: did not receive HSTS header
 codabix.de: could not connect to host
@@ -4710,17 +4691,16 @@ comico.info: did not receive HSTS header
 comicrelief.com: did not receive HSTS header
 comicspines.com: could not connect to host
 comitesaustria.at: could not connect to host
 comiteshopping.com: could not connect to host
 commencepayments.com: did not receive HSTS header
 commerciallocker.com: did not receive HSTS header
 commercialplanet.eu: could not connect to host
 commune-preuilly.fr: did not receive HSTS header
-community-cupboard.org: did not receive HSTS header
 comocurarlashemorroides.org: could not connect to host
 comocurarlashemorroidesya.com: did not receive HSTS header
 comotalk.com: could not connect to host
 compalytics.com: could not connect to host
 comparamejor.com: did not receive HSTS header
 compareandrecycle.co.uk: did not receive HSTS header
 comparejewelleryprices.co.uk: could not connect to host
 comparetravelinsurance.com.au: did not receive HSTS header
@@ -4764,17 +4744,16 @@ controleer-maar-een-ander.nl: did not re
 convergemagazine.com: did not receive HSTS header
 convert.zone: did not receive HSTS header
 cooink.net: could not connect to host
 coolaj86.com: did not receive HSTS header
 coolbutbroken.com: did not receive HSTS header
 coolchevy.org.ua: did not receive HSTS header
 coole-meister.de: could not connect to host
 coolkidsbouncycastles.co.uk: did not receive HSTS header
-coolvox.com: did not receive HSTS header
 coonelnel.net: did not receive HSTS header
 cooxa.com: did not receive HSTS header
 copshop.com.br: could not connect to host
 cor-ser.es: could not connect to host
 coralproject.net: did not receive HSTS header
 coralrosado.com.br: did not receive HSTS header
 coramcdaniel.com: did not receive HSTS header
 corderoscleaning.com: did not receive HSTS header
@@ -4793,16 +4772,17 @@ corozanu.ro: did not receive HSTS header
 corpoatletico.com.br: could not connect to host
 corporateencryption.com: could not connect to host
 corporatesubscriptions.com.au: did not receive HSTS header
 correctpaardbatterijnietje.nl: did not receive HSTS header
 corruption-mc.net: could not connect to host
 corruption-rsps.net: could not connect to host
 corruption-server.net: could not connect to host
 cosmoluziluminacion.com: did not receive HSTS header
+costa-rica-reisen.de: did not receive HSTS header
 costow.club: could not connect to host
 coughlan.de: did not receive HSTS header
 count.sh: could not connect to host
 couponcodeq.com: could not connect to host
 couponcodesme.com: did not receive HSTS header
 couragewhispers.ca: could not connect to host
 coursdeprogrammation.com: could not connect to host
 course.pp.ua: did not receive HSTS header
@@ -4917,19 +4897,19 @@ customd.com: did not receive HSTS header
 cutelariafiveladeouro.com.br: did not receive HSTS header
 cutorrent.com: could not connect to host
 cuvva.insure: did not receive HSTS header
 cvjm-memmingen.de: did not receive HSTS header
 cvtparking.co.uk: did not receive HSTS header
 cwage.com: could not connect to host
 cwrcoding.com: did not receive HSTS header
 cyanogenmod.xxx: could not connect to host
-cyber-perikarp.eu: did not receive HSTS header
+cyber-perikarp.eu: could not connect to host
 cybercecurity.com: did not receive HSTS header
-cyberdos.de: could not connect to host
+cyberdos.de: did not receive HSTS header
 cyberlab.kiev.ua: did not receive HSTS header
 cyberlab.team: did not receive HSTS header
 cyberprey.com: did not receive HSTS header
 cyberpunk.ca: could not connect to host
 cybersafesolutions.com: did not receive HSTS header
 cybershambles.com: could not connect to host
 cyclingjunkies.com: could not connect to host
 cydia-search.io: could not connect to host
@@ -4990,17 +4970,16 @@ darkhole.cn: did not receive HSTS header
 darkkeepers.dk: max-age too low: 172800
 darknebula.space: could not connect to host
 darknode.in: did not receive HSTS header
 darkpony.ru: could not connect to host
 darksideof.it: could not connect to host
 darkspacelab.com: did not receive HSTS header
 darkstance.org: could not connect to host
 darktree.in: could not connect to host
-darlastudio66.com: did not receive HSTS header
 das-tyrol.at: did not receive HSTS header
 dash-board.jp: did not receive HSTS header
 dash.rocks: did not receive HSTS header
 dashburst.com: did not receive HSTS header
 dashnimorad.com: did not receive HSTS header
 data-abundance.com: could not connect to host
 data.haus: could not connect to host
 data.qld.gov.au: did not receive HSTS header
@@ -5286,17 +5265,16 @@ dorkfarm.com: did not receive HSTS heade
 dormebebe.com.br: could not connect to host
 dosenbierrepublik.com: did not receive HSTS header
 dot42.no: could not connect to host
 dotadata.me: could not connect to host
 dotbrick.co.th: did not receive HSTS header
 dotspaperie.com: could not connect to host
 doublethink.online: could not connect to host
 doubleyummy.uk: did not receive HSTS header
-douglasstafford.com: did not receive HSTS header
 dovecotadmin.org: could not connect to host
 doveholesband.co.uk: did not receive HSTS header
 dovetailnow.com: could not connect to host
 dowc.org: did not receive HSTS header
 download.jitsi.org: did not receive HSTS header
 downsouthweddings.com.au: could not connect to host
 doxcelerate.com: max-age too low: 69
 dps.srl: did not receive HSTS header
@@ -5364,20 +5342,19 @@ dudesunderwear.com.br: could not connect
 duelysthub.com: could not connect to host
 dukec.me: did not receive HSTS header
 dukefox.com: did not receive HSTS header
 duks.com.br: did not receive HSTS header
 dullsir.com: could not connect to host
 dunashoes.com: could not connect to host
 dune.io: could not connect to host
 dunea.nl: did not receive HSTS header
-duole30.com: did not receive HSTS header
+duole30.com: could not connect to host
 duongpho.com: did not receive HSTS header
 duskopy.top: could not connect to host
-dutchessuganda.com: did not receive HSTS header
 dutchrank.com: did not receive HSTS header
 dutyfreeonboard.com: did not receive HSTS header
 duuu.ch: could not connect to host
 duyao.de: max-age too low: 86400
 dv189.com: did not receive HSTS header
 dycem-ns.com: did not receive HSTS header
 dycontrol.de: could not connect to host
 dylanscott.com.au: did not receive HSTS header
@@ -5423,30 +5400,27 @@ ebp2p.com: did not receive HSTS header
 ebpglobal.com: did not receive HSTS header
 ebraph.com: could not connect to host
 ecake.in: did not receive HSTS header
 ecc-kaufbeuren.de: could not connect to host
 ecchidreams.com: did not receive HSTS header
 ecfs.link: could not connect to host
 ecg.fr: could not connect to host
 echipstore.com: did not receive HSTS header
-echoteam.gq: did not receive HSTS header
 eckro.com: did not receive HSTS header
-ecoheatcool.co.uk: did not receive HSTS header
 ecole-en-danger.fr: could not connect to host
 ecole-maternelle-saint-joseph.be: could not connect to host
 ecolesrec.ch: did not receive HSTS header
 ecology-21.ru: did not receive HSTS header
 ecomlane.com: could not connect to host
 ecomparemo.com: did not receive HSTS header
 economy.st: could not connect to host
 ecorus.eu: did not receive HSTS header
 ecotruck-pooling.com: did not receive HSTS header
 ecrimex.net: did not receive HSTS header
-ecupcafe.com: did not receive HSTS header
 ed-matters.org: did not receive HSTS header
 edati.lv: could not connect to host
 edcphenix.tk: could not connect to host
 eddmixpanel.com: could not connect to host
 eddyn.net: did not receive HSTS header
 edelblack.ch: could not connect to host
 edelsteincosmetic.com: did not receive HSTS header
 eden-mobility.co.uk: did not receive HSTS header
@@ -5608,23 +5582,47 @@ enumify.com: could not connect to host
 enviapresentes.com.br: could not connect to host
 envygeeks.com: could not connect to host
 eol34.com: could not connect to host
 eoldb.org: could not connect to host
 epanurse.com: could not connect to host
 ephry.com: could not connect to host
 epicmc.games: could not connect to host
 epitesz.co: did not receive HSTS header
+epos-distributor.co.uk: did not receive HSTS header
+eposbirmingham.co.uk: did not receive HSTS header
+eposbrighton.co.uk: did not receive HSTS header
+eposbristol.co.uk: did not receive HSTS header
+eposcardiff.co.uk: did not receive HSTS header
+eposcloud.net: did not receive HSTS header
+eposkent.co.uk: did not receive HSTS header
+eposleeds.co.uk: did not receive HSTS header
+eposleicester.co.uk: did not receive HSTS header
+eposliverpool.co.uk: did not receive HSTS header
+eposlondon.co.uk: did not receive HSTS header
+eposmidlands.co.uk: did not receive HSTS header
+eposnewport.co.uk: did not receive HSTS header
+eposnottingham.co.uk: did not receive HSTS header
+eposreading.co.uk: did not receive HSTS header
+eposreview.co.uk: did not receive HSTS header
+epossheffield.co.uk: did not receive HSTS header
+epossurrey.co.uk: did not receive HSTS header
+epossussex.co.uk: did not receive HSTS header
+eposswansea.co.uk: did not receive HSTS header
+epossystems.co.uk: did not receive HSTS header
+eposwales.co.uk: did not receive HSTS header
+eposyork.co.uk: did not receive HSTS header
 epoxate.com: could not connect to host
 eq8.net.au: could not connect to host
 eqib.nl: did not receive HSTS header
 eqim.me: could not connect to host
 equate.net.au: did not receive HSTS header
 equatetechnologies.com.au: did not receive HSTS header
 equilibre-yoga-jennifer-will.com: could not connect to host
+equippers.de: did not receive HSTS header
 equitee.co: did not receive HSTS header
 equityflows.com: did not receive HSTS header
 erawanarifnugroho.com: did not receive HSTS header
 eressea.xyz: could not connect to host
 ergorium.com: max-age too low: 0
 ergorium.eu: max-age too low: 0
 ericbond.net: could not connect to host
 erichalv.com: could not connect to host
@@ -5664,17 +5662,16 @@ espacemontmorency.com: did not receive H
 especificosba.com.mx: could not connect to host
 espo.com.ua: did not receive HSTS header
 espra.com: could not connect to host
 esquonic.com: could not connect to host
 essenzialeenxovais.com.br: could not connect to host
 essexghosthunters.co.uk: did not receive HSTS header
 estaciona.guru: could not connect to host
 estebanborges.com: did not receive HSTS header
-estespr.com: did not receive HSTS header
 estilosapeca.com: could not connect to host
 estland.guide: could not connect to host
 et-buchholz.de: could not connect to host
 et180.com: could not connect to host
 etangs-magazine.com: could not connect to host
 etaoinwu.tk: could not connect to host
 etdonline.co.uk: did not receive HSTS header
 eteapparel.com: did not receive HSTS header
@@ -5745,18 +5742,17 @@ expowerhps.com: did not receive HSTS hea
 expressfinance.co.za: did not receive HSTS header
 extramoney.cash: did not receive HSTS header
 extrathemeshowcase.net: could not connect to host
 extratorrentlive.xyz: could not connect to host
 extratorrents.tech: could not connect to host
 extreemhost.nl: did not receive HSTS header
 extremenetworking.net: could not connect to host
 exy.pw: could not connect to host
-eyasc.nl: could not connect to host
-eye-carat.com: did not receive HSTS header
+eye-carat.com: could not connect to host
 eyedarts.com: did not receive HSTS header
 eyeglassuniverse.com: did not receive HSTS header
 eyes-of-universe.eu: did not receive HSTS header
 eyesoccer-didikh.rhcloud.com: could not connect to host
 eyesonly.cc: did not receive HSTS header
 ez.fi: could not connect to host
 ezimoeko.net: could not connect to host
 ezmod.org: could not connect to host
@@ -5812,16 +5808,17 @@ farmacia.pt: did not receive HSTS header
 farmaciaformula.com.br: could not connect to host
 farmaciamedicom.com.br: could not connect to host
 farwat.ru: did not receive HSTS header
 fashion.net: did not receive HSTS header
 fashioncare.cz: did not receive HSTS header
 fashionholic.my: did not receive HSTS header
 fashionoutfits24.com: did not receive HSTS header
 fasset.jp: could not connect to host
+fastbackmbm.be: did not receive HSTS header
 fastcomcorp.com: did not receive HSTS header
 fastcomcorp.net: did not receive HSTS header
 fastlike.co: could not connect to host
 fastograph.com: could not connect to host
 fastopen.ml: could not connect to host
 fastworx.com: did not receive HSTS header
 fatdoge.cn: did not receive HSTS header
 fatgeekflix.net: could not connect to host
@@ -5950,34 +5947,34 @@ flajshans.cz: did not receive HSTS heade
 flamewall.net: could not connect to host
 flamingkeys.com.au: could not connect to host
 flareon.net: could not connect to host
 flatbellyreview.com: max-age too low: 2592000
 flawcheck.com: could not connect to host
 flc111.com: did not receive HSTS header
 flc999.com: max-age too low: 129600
 fleursdesoleil.fr: did not receive HSTS header
-flextribly.xyz: did not receive HSTS header
 fliexer.com: could not connect to host
 flipbell.com: did not receive HSTS header
 flipkey.com: did not receive HSTS header
 flirchi.com: could not connect to host
 flirtycourts.com: did not receive HSTS header
 flixtor.net: could not connect to host
 floless.co.uk: did not receive HSTS header
 floorball-haunwoehr.de: did not receive HSTS header
 flopy.club: could not connect to host
 florafiora.com.br: did not receive HSTS header
-florian-lillpopp.de: max-age too low: 10
-florianlillpopp.de: max-age too low: 10
+florian-lillpopp.de: could not connect to host
+florianlillpopp.de: could not connect to host
 floridaderi.ru: did not receive HSTS header
 floridaescapes.co.uk: did not receive HSTS header
 floro.me: did not receive HSTS header
 flouartistique.ch: could not connect to host
 flow.pe: could not connect to host
+flowerandplant.org: did not receive HSTS header
 flowersandclouds.com: could not connect to host
 floweslawncare.com: could not connect to host
 flowlo.me: could not connect to host
 flugstadplasticsurgery.com: did not receive HSTS header
 fluidojobs.com: could not connect to host
 flukethoughts.com: did not receive HSTS header
 flurrybridge.com: did not receive HSTS header
 flushstudios.com: did not receive HSTS header
@@ -6019,16 +6016,18 @@ forewordreviews.com: did not receive HST
 forex-dan.com: did not receive HSTS header
 forgix.com: could not connect to host
 forlagetmarx.dk: did not receive HSTS header
 formazioneopen.it: could not connect to host
 formersessalaries.com: did not receive HSTS header
 formula.cf: could not connect to host
 forplanetsake.com: could not connect to host
 forty2.eu: did not receive HSTS header
+forum-kinozal-tv.appspot.com: did not receive HSTS header
+forum-kinozal.appspot.com: did not receive HSTS header
 forus.be: could not connect to host
 foryoucosmeticos.com.br: could not connect to host
 fossewaygardencentre.co.uk: did not receive HSTS header
 fotiu.com: could not connect to host
 fotoallerlei.com: did not receive HSTS header
 fotocerita.net: could not connect to host
 fotogiraffe.ru: did not receive HSTS header
 fotografosexpertos.com: did not receive HSTS header
@@ -6175,16 +6174,17 @@ gamepader.com: could not connect to host
 gameparade.de: could not connect to host
 gameparagon.info: could not connect to host
 gamepiece.com: max-age too low: 300
 gamers-life.fr: could not connect to host
 gamerslair.org: did not receive HSTS header
 gamerz-point.de: could not connect to host
 gamesdepartment.co.uk: could not connect to host
 gameserver-sponsor.de: did not receive HSTS header
+gameserver-sponsor.me: did not receive HSTS header
 gamesurferapp.com: could not connect to host
 gamingmedia.eu: did not receive HSTS header
 gamoice.com: did not receive HSTS header
 gampenhof.de: did not receive HSTS header
 garageon.net: did not receive HSTS header
 garciamartin.me: could not connect to host
 garcinia--cambogia.com: could not connect to host
 garciniacambogiareviewed.co: did not receive HSTS header
@@ -6278,17 +6278,16 @@ ghid-pitesti.ro: did not receive HSTS he
 ghkim.net: could not connect to host
 ghostblog.info: did not receive HSTS header
 giakki.eu: could not connect to host
 giant-powerfit.co.uk: did not receive HSTS header
 gibraltar-firma.com: did not receive HSTS header
 gidea.nu: could not connect to host
 gietvloergarant.nl: did not receive HSTS header
 giftgofers.com: max-age too low: 2592000
-giftservices.nl: could not connect to host
 gigacloud.org: did not receive HSTS header
 gigin.me: did not receive HSTS header
 gilcloud.com: could not connect to host
 gilgaz.com: did not receive HSTS header
 gillet-cros.fr: could not connect to host
 gilly.berlin: did not receive HSTS header
 gilroywestwood.org: did not receive HSTS header
 gincher.net: did not receive HSTS header
@@ -6321,16 +6320,17 @@ globalmusic.ga: could not connect to hos
 globalsites.nl: did not receive HSTS header
 glotter.com: did not receive HSTS header
 gloucesterphotographer.com: did not receive HSTS header
 glubbforum.de: did not receive HSTS header
 glws.org: did not receive HSTS header
 gm-assicurazioni.it: did not receive HSTS header
 gmat.ovh: could not connect to host
 gmoes.at: could not connect to host
+gnosticjade.net: did not receive HSTS header
 go.ax: did not receive HSTS header
 go2sh.de: did not receive HSTS header
 go4it.solutions: did not receive HSTS header
 goabonga.com: could not connect to host
 goalsetup.com: did not receive HSTS header
 goaltree.ch: did not receive HSTS header
 goarmy.eu: could not connect to host
 goat.chat: did not receive HSTS header
@@ -6384,17 +6384,17 @@ gouv.ovh: did not receive HSTS header
 gov.ax: could not connect to host
 goverage.org: could not connect to host
 govillemo.ca: did not receive HSTS header
 gozel.com.tr: did not receive HSTS header
 gparent.org: did not receive HSTS header
 gpo.gov: did not receive HSTS header
 gpstuner.com: did not receive HSTS header
 graavaapi.elasticbeanstalk.com: could not connect to host
-gracebaking.com: could not connect to host
+gracebaking.com: max-age too low: 86400
 gracechurchpc.net: max-age too low: 2592000
 gracesofgrief.com: could not connect to host
 grachtenpandverkopen.nl: could not connect to host
 grafitec.ru: did not receive HSTS header
 grana.com: did not receive HSTS header
 grandlinecsk.ru: did not receive HSTS header
 grandmascookieblog.com: did not receive HSTS header
 grantedby.me: max-age too low: 0
@@ -6422,16 +6422,17 @@ gregorytlee.me: could not connect to hos
 grekland.guide: could not connect to host
 gremots.com: could not connect to host
 greplin.com: could not connect to host
 gresb.com: did not receive HSTS header
 gretchelizartistry.com: did not receive HSTS header
 grettogeek.com: did not receive HSTS header
 grevesgarten.de: could not connect to host
 greyline.se: could not connect to host
+greysky.me: did not receive HSTS header
 grian-bam.at: did not receive HSTS header
 gribani.com: could not connect to host
 grid2osm.org: could not connect to host
 gridle.io: did not receive HSTS header
 grigalanzsoftware.com: could not connect to host
 grillinfools.com: did not receive HSTS header
 gripopgriep.net: could not connect to host
 groenewoud.run: could not connect to host
@@ -6526,16 +6527,17 @@ hainoni.com: did not receive HSTS header
 hairlossstop.net: did not receive HSTS header
 haitschi.com: could not connect to host
 haitschi.de: did not receive HSTS header
 haitschi.net: could not connect to host
 haitschi.org: could not connect to host
 haktec.de: did not receive HSTS header
 haku.moe: could not connect to host
 hakugin.org: could not connect to host
+hallettxn.com: did not receive HSTS header
 halo.red: could not connect to host
 halyul.cc: did not receive HSTS header
 halyul.com: did not receive HSTS header
 haman.nl: could not connect to host
 hancc.net: could not connect to host
 handenafvanhetmedischdossier.nl: could not connect to host
 handicapindeles.nl: did not receive HSTS header
 handiworker.com: could not connect to host
@@ -6661,16 +6663,17 @@ heribe-maruo.com: did not receive HSTS h
 heritagedentistry.ca: did not receive HSTS header
 heroin.org.uk: did not receive HSTS header
 herrenfahrt.com: did not receive HSTS header
 heutger.net: did not receive HSTS header
 hex2013.com: did not receive HSTS header
 hexhu.com: could not connect to host
 heyguevara.com: did not receive HSTS header
 heywoodtown.co.uk: did not receive HSTS header
+hfbg.nl: did not receive HSTS header
 hfcbank.com.gh: did not receive HSTS header
 hibilog.com: could not connect to host
 hicn.gq: could not connect to host
 hiddendepth.ie: max-age too low: 0
 hiddenmail.xyz: could not connect to host
 hiddenprocess.com: did not receive HSTS header
 hiddenrefuge.eu.org: could not connect to host
 hideftv.deals: could not connect to host
@@ -6719,32 +6722,30 @@ hodne.io: could not connect to host
 hoekwoningverkopen.nl: could not connect to host
 hoerbuecher-und-hoerspiele.de: could not connect to host
 hofiprojekt.cz: did not receive HSTS header
 hogar123.es: could not connect to host
 hoiku-map.tokyo: could not connect to host
 hoiku-navi.com: did not receive HSTS header
 holgerlehner.com: could not connect to host
 holifestival-freyung.de: could not connect to host
-hollandguns.com: did not receive HSTS header
 holymoly.lu: could not connect to host
 homads.com: did not receive HSTS header
 home-coaching.be: did not receive HSTS header
 homeandyarddetailing.com: could not connect to host
 homeclouding.de: could not connect to host
 homedna.com: did not receive HSTS header
 homeexx.com: did not receive HSTS header
 homeownersassociationmanagementla.com: could not connect to host
 homeremodelingcontractorsca.com: did not receive HSTS header
 homesandal.com: did not receive HSTS header
 homeseller.co.uk: could not connect to host
 hometownmall.com: max-age too low: 0
 homeyantra.com: did not receive HSTS header
 homezhi.com.tw: did not receive HSTS header
-homyremedies.com: did not receive HSTS header
 hongyd.online: could not connect to host
 hongzhaxiaofendui.com: could not connect to host
 honoo.com: could not connect to host
 hookandloom.com: did not receive HSTS header
 hoopsacademyusa.com: could not connect to host
 hoorr.com: did not receive HSTS header
 hoovism.com: did not receive HSTS header
 hopewellproperties.co.uk: did not receive HSTS header
@@ -6810,17 +6811,16 @@ humeurs.net: could not connect to host
 humortuga.pt: could not connect to host
 hump.dk: could not connect to host
 humpi.at: could not connect to host
 humpteedumptee.in: did not receive HSTS header
 huodongweb.com: could not connect to host
 hup.blue: did not receive HSTS header
 huskybutt.dog: could not connect to host
 huskyduvercors.com: did not receive HSTS header
-huutonauru.net: did not receive HSTS header
 huzu.com: did not receive HSTS header
 hwcine.com: did not receive HSTS header
 hwpkasse.de: max-age too low: 2592000
 hyakumachi.com: did not receive HSTS header
 hyatt.com: did not receive HSTS header
 hydra.ws: could not connect to host
 hydrodipcenter.nl: did not receive HSTS header
 hydronium.cf: could not connect to host
@@ -6887,16 +6887,17 @@ ierna.com: did not receive HSTS header
 ies-italia.it: did not receive HSTS header
 ies.id.lv: could not connect to host
 ievgenialehner.com: did not receive HSTS header
 ifad.org: did not receive HSTS header
 ifastuniversity.com: did not receive HSTS header
 ifleurs.com: could not connect to host
 ifx.ee: could not connect to host
 ifxor.com: did not receive HSTS header
+igd.chat: did not receive HSTS header
 igforums.com: could not connect to host
 igi.codes: did not receive HSTS header
 igiftcards.nl: did not receive HSTS header
 ignatisd.gr: did not receive HSTS header
 igule.net: could not connect to host
 ihotel.io: did not receive HSTS header
 ihrlotto.de: could not connect to host
 ihrnationalrat.ch: could not connect to host
@@ -6935,17 +6936,17 @@ imjiangtao.com: did not receive HSTS hea
 immanuel60.hu: did not receive HSTS header
 immoprotect.ca: did not receive HSTS header
 immortals-co.com: did not receive HSTS header
 immoverkauf24.at: did not receive HSTS header
 immoverkauf24.de: did not receive HSTS header
 immunicity.cc: max-age too low: 0
 immunicity.date: did not receive HSTS header
 immunicity.eu: did not receive HSTS header
-immunicity.host: could not connect to host
+immunicity.host: max-age too low: 0
 immunicity.info: could not connect to host
 immunicity.online: could not connect to host
 immunicity.press: could not connect to host
 immunicity.rocks: could not connect to host
 immunicity.st: did not receive HSTS header
 immunicity.today: could not connect to host
 immunicity.top: could not connect to host
 immunicity.win: max-age too low: 0
@@ -6962,17 +6963,16 @@ imy.life: could not connect to host
 imydl.com: did not receive HSTS header
 inb4.us: could not connect to host
 inbox.li: did not receive HSTS header
 incendiary-arts.com: could not connect to host
 inche-ali.com: did not receive HSTS header
 inchomatic.com: did not receive HSTS header
 inderagamono.net: could not connect to host
 indiecert.net: could not connect to host
-indieethos.com: did not receive HSTS header
 indiemods.com: could not connect to host
 indien.guide: could not connect to host
 indilens.com: did not receive HSTS header
 indochina.io: could not connect to host
 indoorskiassen.nl: did not receive HSTS header
 indredouglas.me: could not connect to host
 industrybazar.com: max-age too low: 2592000
 ineed.com.mt: could not connect to host
@@ -6980,16 +6980,17 @@ infcof.com: did not receive HSTS header
 infilock.com: could not connect to host
 infinitude.me.uk: could not connect to host
 infinitude.xyz: could not connect to host
 infinitudecloud.com: could not connect to host
 infinitusgaming.eu: could not connect to host
 infinity-freedom.com: could not connect to host
 infinity-freedom.de: could not connect to host
 infinity-lifestyle.de: could not connect to host
+infinityepos.co.uk: did not receive HSTS header
 inflation.ml: could not connect to host
 info-sys.tk: could not connect to host
 infoduv.fr: did not receive HSTS header
 inforichjapan.com: did not receive HSTS header
 informaticapremium.com: did not receive HSTS header
 infosec.rip: could not connect to host
 infosoph.org: could not connect to host
 infotics.es: did not receive HSTS header
@@ -7060,17 +7061,17 @@ intranetsec.fr: could not connect to hos
 introvertedtravel.space: did not receive HSTS header
 intrp.net: did not receive HSTS header
 intxt.net: did not receive HSTS header
 investnext.com: max-age too low: 43200
 invictusmc.uk: could not connect to host
 invinsec.cloud: did not receive HSTS header
 invite24.pro: could not connect to host
 iodice.org: did not receive HSTS header
-ioiart.eu: did not receive HSTS header
+ioiart.eu: could not connect to host
 iolife.dk: could not connect to host
 ionas-law.ro: did not receive HSTS header
 iop.intuit.com: max-age too low: 86400
 iora.fr: could not connect to host
 iosmods.com: did not receive HSTS header
 iostips.ru: could not connect to host
 ip-life.net: did not receive HSTS header
 ip6.im: did not receive HSTS header
@@ -7117,18 +7118,17 @@ ischool.co.jp: did not receive HSTS head
 isdf.me: could not connect to host
 isef-eg.com: did not receive HSTS header
 iseulde.com: did not receive HSTS header
 ishadowsocks.ltd: could not connect to host
 ishillaryclintoninprisonyet.com: could not connect to host
 isitamor.pm: could not connect to host
 iskai.net: did not receive HSTS header
 iskaz.rs: did not receive HSTS header
-islandpumpandtank.com: did not receive HSTS header
-islandzero.net: did not receive HSTS header
+islandzero.net: could not connect to host
 ismetroonfiretoday.com: could not connect to host
 isoface33.fr: did not receive HSTS header
 isogen5.com: could not connect to host
 isogram.nl: did not receive HSTS header
 issala.org: did not receive HSTS header
 istanbul.systems: did not receive HSTS header
 istanbultravelguide.info: could not connect to host
 istaspirtslietas.lv: did not receive HSTS header
@@ -7175,17 +7175,16 @@ izolight.ch: could not connect to host
 izoox.com: did not receive HSTS header
 izzzorgconcerten.nl: could not connect to host
 j-eck.nl: did not receive HSTS header
 j-lsolutions.com: could not connect to host
 j-rickroll-a.pw: could not connect to host
 ja-publications.com: did not receive HSTS header
 ja.md: did not receive HSTS header
 jaan.su: could not connect to host
-jaccblog.com: could not connect to host
 jackalworks.com: could not connect to host
 jackdoan.com: could not connect to host
 jackfahnestock.com: could not connect to host
 jacobparry.ca: did not receive HSTS header
 jacobsenarquitetura.com: max-age too low: 5184000
 jagido.de: did not receive HSTS header
 jahliveradio.com: could not connect to host
 jaksi.io: did not receive HSTS header
@@ -7408,16 +7407,17 @@ junaos.com: did not receive HSTS header
 junaos.xyz: did not receive HSTS header
 jundimax.com.br: could not connect to host
 junge-selbsthilfe.info: could not connect to host
 junglegoat.xyz: did not receive HSTS header
 junjung.me: could not connect to host
 junqtion.com: could not connect to host
 junqueiropolis.com: did not receive HSTS header
 jupp0r.de: did not receive HSTS header
+jurisprudent.by: did not receive HSTS header
 juristas.com.br: did not receive HSTS header
 jurke.com: did not receive HSTS header
 justiceforfathers.com: could not connect to host
 justinlemay.com: could not connect to host
 justlikethat.hosting: did not receive HSTS header
 justmy.website: did not receive HSTS header
 justnaw.co.uk: could not connect to host
 justudin.com: did not receive HSTS header
@@ -7506,17 +7506,16 @@ keepassa.co: did not receive HSTS header
 keepclean.me: could not connect to host
 keepcoalintheground.org: could not connect to host
 keepflow.io: did not receive HSTS header
 kefaloniatoday.com: did not receive HSTS header
 keihin-chaplin.jp: did not receive HSTS header
 kela.jp: did not receive HSTS header
 ken-electric.com.br: could not connect to host
 kenkoelectric.com: did not receive HSTS header
-kenoschwalb.com: did not receive HSTS header
 kentacademiestrust.org.uk: did not receive HSTS header
 kepler-seminar.de: did not receive HSTS header
 kerangalam.com: did not receive HSTS header
 kerksanders.nl: did not receive HSTS header
 kermadec.blog: could not connect to host
 kermadec.net: could not connect to host
 kernl.us: did not receive HSTS header
 keskeces.com: did not receive HSTS header
@@ -7526,17 +7525,17 @@ keymaster.lookout.com: did not receive H
 kfbrussels.be: could not connect to host
 kg-rating.com: could not connect to host
 kgxtech.com: max-age too low: 2592000
 khaganat.net: did not receive HSTS header
 ki-on.net: did not receive HSTS header
 kialo.com: did not receive HSTS header
 kickass-proxies.org: could not connect to host
 kickass.al: could not connect to host
-kickasstorrents.gq: did not receive HSTS header
+kickasstorrents.gq: could not connect to host
 kickerplaza.nl: did not receive HSTS header
 kickstart.com.pk: did not receive HSTS header
 kid-dachau.de: did not receive HSTS header
 kidkat.cn: could not connect to host
 kiel-media.de: did not receive HSTS header
 kill-paff.com: did not receive HSTS header
 kimana.pe: could not connect to host
 kimberg.co.uk: did not receive HSTS header
@@ -7884,17 +7883,17 @@ lifeventure.co.uk: did not receive HSTS 
 lightarmory.com: could not connect to host
 lightning-ashe.com: did not receive HSTS header
 lightnovelsekai.com: could not connect to host
 lightpaste.com: could not connect to host
 lightworkerandempathsupport.com: max-age too low: 300
 lightworx.io: did not receive HSTS header
 lila.pink: did not receive HSTS header
 lilapmedia.com: could not connect to host
-lillpopp.eu: did not receive HSTS header
+lillpopp.eu: could not connect to host
 lilpwny.com: could not connect to host
 lilycms.com: could not connect to host
 lim-light.com: did not receive HSTS header
 limalama.eu: max-age too low: 1
 limeyeti.com: could not connect to host
 limiteddata.co.uk: did not receive HSTS header
 limodo-shop.de: did not receive HSTS header
 limpens.net: did not receive HSTS header
@@ -7920,17 +7919,17 @@ linuxeyecandy.com: could not connect to 
 linuxfixed.it: could not connect to host
 linuxforyou.com: could not connect to host
 linuxgeek.ro: could not connect to host
 linuxmint.cz: could not connect to host
 linuxmonitoring.net: did not receive HSTS header
 liquid.solutions: did not receive HSTS header
 liquorsanthe.in: could not connect to host
 lisaco.de: could not connect to host
-lisbongold.com: could not connect to host
+lisbongold.com: did not receive HSTS header
 lisgade.dk: could not connect to host
 listafirmelor.com: could not connect to host
 listage.ovh: did not receive HSTS header
 litespeed.io: could not connect to host
 little.pw: did not receive HSTS header
 littlefreelibrary.org: did not receive HSTS header
 littlelife.co.uk: did not receive HSTS header
 liujunyang.com: did not receive HSTS header
@@ -8076,16 +8075,17 @@ m.nu: did not receive HSTS header
 m0wef.uk: could not connect to host
 m2tc.fr: could not connect to host
 m3-gmbh.de: did not receive HSTS header
 m82labs.com: did not receive HSTS header
 ma-musique.fr: did not receive HSTS header
 maarten.nyc: could not connect to host
 maartenprovo.be: did not receive HSTS header
 mac-torrents.me: did not receive HSTS header
+macandtonic.com: did not receive HSTS header
 macbolo.com: could not connect to host
 macchaberrycream.com: could not connect to host
 macchedil.com: did not receive HSTS header
 macdj.tk: could not connect to host
 macedopesca.com.br: did not receive HSTS header
 macgeneral.de: did not receive HSTS header
 mach1club.com: did not receive HSTS header
 macleodnc.com: did not receive HSTS header
@@ -8261,25 +8261,25 @@ matt.tf: did not receive HSTS header
 mattandreko.com: did not receive HSTS header
 mattberryman.com: max-age too low: 43200
 matterconcern.com: could not connect to host
 matthewprenger.com: could not connect to host
 matthewtester.com: did not receive HSTS header
 matthiassteen.be: max-age too low: 0
 mattressinsider.com: max-age too low: 3153600
 mattsvensson.com: max-age too low: 0
+mattwb65.com: did not receive HSTS header
 matty.digital: did not receive HSTS header
 maultrom.ml: could not connect to host
 maupiknik.com: did not receive HSTS header
 maur.cz: did not receive HSTS header
 maurus-automation.de: did not receive HSTS header
 mausi.co: did not receive HSTS header
 mavisang.cf: could not connect to host
 mawe.red: could not connect to host
-maxbeenen.de: did not receive HSTS header
 maxima.at: did not receive HSTS header
 maximov.space: could not connect to host
 maxmachine.ind.br: could not connect to host
 maxserver.com: did not receive HSTS header
 maya.mg: could not connect to host
 mazyun.com: max-age too low: 3600
 mazz-tech.com: could not connect to host
 mbconsultancy.nu: did not receive HSTS header
@@ -8306,17 +8306,16 @@ mecenat-cassous.com: did not receive HST
 mechmk1.me: did not receive HSTS header
 medallia.io: could not connect to host
 media-access.online: did not receive HSTS header
 mediacru.sh: could not connect to host
 mediafinancelab.org: did not receive HSTS header
 mediamag.am: max-age too low: 0
 mediawikicn.org: could not connect to host
 medienservice-fritz.de: did not receive HSTS header
-medifab.online: did not receive HSTS header
 medirich.co: could not connect to host
 meditek-dv.ru: could not connect to host
 mediterenopmaandag.nl: did not receive HSTS header
 medm-test.com: could not connect to host
 medzinenews.com: did not receive HSTS header
 meedoenzaanstad.nl: did not receive HSTS header
 meetfinch.com: could not connect to host
 meetingmanage.nl: did not receive HSTS header
@@ -8328,16 +8327,17 @@ meghudson.com: could not connect to host
 meifrench.com: could not connect to host
 meiju.video: max-age too low: 0
 mein-gesundheitsmanager.com: max-age too low: 0
 meincloudspeicher.de: could not connect to host
 meinebo.it: could not connect to host
 meiqia.cn: did not receive HSTS header
 meiqia.com: did not receive HSTS header
 mekatrotekno.com: did not receive HSTS header
+melakaltenegger.at: did not receive HSTS header
 melangebrasil.com: could not connect to host
 melaniebilodeau.com: did not receive HSTS header
 melcher.it: did not receive HSTS header
 melf.nl: did not receive HSTS header
 melhoresdominios.net: could not connect to host
 melted.pw: could not connect to host
 melvinlow.com: did not receive HSTS header
 memberpress.com: did not receive HSTS header
@@ -8462,32 +8462,32 @@ minecraft-forums.ga: could not connect t
 minecraft-forums.gq: could not connect to host
 minecraftforum.ch: could not connect to host
 minecraftforums.cf: could not connect to host
 minecraftforums.gq: could not connect to host
 minecraftforums.ml: could not connect to host
 minecraftserverz.com: could not connect to host
 minecraftvoter.com: could not connect to host
 mineover.es: could not connect to host
-mingming.info: did not receive HSTS header
 mingo.nl: max-age too low: 2592000
 minh.at: did not receive HSTS header
 mini-piraten.de: did not receive HSTS header
 minikneet.nl: could not connect to host
 minimoo.se: could not connect to host
 minis-hip.de: max-age too low: 172800
 minkondom.nu: could not connect to host
 minnesotadata.com: could not connect to host
 minora.io: could not connect to host
 minoris.se: could not connect to host
 mipiaci.co.nz: did not receive HSTS header
 mipiaci.com.au: did not receive HSTS header
 miragrow.com: could not connect to host
 mirindadomo.ru: did not receive HSTS header
 mironized.com: did not receive HSTS header
+mirrorsedgearchive.ga: did not receive HSTS header
 mirrorx.com: did not receive HSTS header
 miruc.co: did not receive HSTS header
 misericordiasegrate.org: did not receive HSTS header
 misgluteosperfectos.com: did not receive HSTS header
 misiondelosangeles-mailing.com: did not receive HSTS header
 missrain.tw: could not connect to host
 mist.ink: could not connect to host
 mister.hosting: did not receive HSTS header
@@ -8634,17 +8634,16 @@ mpkossen.com: could not connect to host
 mqas.net: did not receive HSTS header
 mr-hosting.com: could not connect to host
 mrawe.com: could not connect to host
 mrdani.net: could not connect to host
 mrdleisure.co.uk: did not receive HSTS header
 mredsanders.net: did not receive HSTS header
 mrettich.org: did not receive HSTS header
 mrhee.com: did not receive HSTS header
-mrleonardo.com: did not receive HSTS header
 mrning.com: did not receive HSTS header
 mrnonz.com: max-age too low: 0
 mrparker.pw: did not receive HSTS header
 mrpopat.in: did not receive HSTS header
 mrs-shop.com: could not connect to host
 mrsbairds.com: max-age too low: 86400
 msc-seereisen.net: could not connect to host
 mstd.tokyo: did not receive HSTS header
@@ -8806,17 +8805,16 @@ natuurbehangnederland.nl: could not conn
 nauck.org: did not receive HSTS header
 naudles.me: could not connect to host
 nav.jobs: could not connect to host
 naval.tf: could not connect to host
 navjobs.com: did not receive HSTS header
 nbb.io: could not connect to host
 nbg-ha.de: could not connect to host
 ncc60205.info: could not connect to host
-nchristo.com: did not receive HSTS header
 ncpc.gov: could not connect to host
 ncpw.gov: did not receive HSTS header
 nct.org.uk: did not receive HSTS header
 nctx.co.uk: did not receive HSTS header
 ndtmarket.place: could not connect to host
 ne1home.dyndns.org: did not receive HSTS header
 near.st: did not receive HSTS header
 nearbiwa.com: did not receive HSTS header
@@ -8849,17 +8847,16 @@ netbox.cc: could not connect to host
 netbrief.ml: could not connect to host
 netfs.pl: did not receive HSTS header
 netherwind.eu: did not receive HSTS header
 netlilo.com: could not connect to host
 netloanusa.com: could not connect to host
 netmagik.com: did not receive HSTS header
 netprofile.com.au: did not receive HSTS header
 netresourcedesign.com: could not connect to host
-netsafeid.biz: did not receive HSTS header
 netsparkercloud.com: did not receive HSTS header
 nettefoundation.com: could not connect to host
 netweaver.uk: did not receive HSTS header
 networx-online.de: could not connect to host
 netzbit.de: could not connect to host
 netzpolitik.org: max-age too low: 2592000
 netztest.at: did not receive HSTS header
 netzvieh.de: did not receive HSTS header
@@ -8869,16 +8866,17 @@ neuralgic.net: could not connect to host
 neuro-plus-100.com: could not connect to host
 neuronfactor.com: max-age too low: 1000
 neutralvehicle.com: did not receive HSTS header
 never-afk.de: did not receive HSTS header
 neveta.com: could not connect to host
 newedivideo.it: could not connect to host
 newgenerationplus.org: could not connect to host
 newhdmovies.io: could not connect to host
+newline.online: did not receive HSTS header
 newlooknow.com: did not receive HSTS header
 newmelalife.com: did not receive HSTS header
 newparadigmventures.net: did not receive HSTS header
 newportpropertygroup.com: could not connect to host
 news4c.com: did not receive HSTS header
 newsquantified.com: max-age too low: 0
 newstarnootropics.com: could not connect to host
 newtonwarp.com: could not connect to host
@@ -9411,17 +9409,16 @@ peerherrmann.de: could not connect to ho
 peissen.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116"  data: no]
 pekkapikkarainen.fi: did not receive HSTS header
 pekkarik.ru: could not connect to host
 peliculasaudiolatinoonline.com: could not connect to host
 peliseries24.com: did not receive HSTS header
 pemberton.at: did not receive HSTS header
 penablog.com: did not receive HSTS header
 pencillab.cn: did not receive HSTS header
-pengui.uk: did not receive HSTS header
 penguinclientsystem.com: did not receive HSTS header
 pennylane.me.uk: did not receive HSTS header
 pensanisso.com: max-age too low: 2592000
 pentagram.me: max-age too low: 2592000
 pentano.net: could not connect to host
 people-mozilla.org: could not connect to host
 peperiot.com: did not receive HSTS header
 pepper.dog: did not receive HSTS header
@@ -9448,17 +9445,16 @@ personalizedtouch.co: could not connect 
 perthdevicelab.com: did not receive HSTS header
 pestalozzishop.com.br: could not connect to host
 pet-nsk.ru: could not connect to host
 petbooking.it: did not receive HSTS header
 petchart.net: could not connect to host
 peterkshultz.com: did not receive HSTS header
 peternagy.ie: did not receive HSTS header
 petersmark.com: did not receive HSTS header
-pethelpers.org: did not receive HSTS header
 pethub.com: did not receive HSTS header
 petit.site: could not connect to host
 petplum.com: could not connect to host
 petravdbos.nl: did not receive HSTS header
 petrkrapek.cz: did not receive HSTS header
 petrolplus.ru: max-age too low: 7776000
 petrovsky.pro: could not connect to host
 petsittersservices.com: could not connect to host
@@ -9569,16 +9565,17 @@ plfgr.eu.org: could not connect to host
 plhdb.org: could not connect to host
 plirt.ru: could not connect to host
 plixer.com: did not receive HSTS header
 plogable.co: could not connect to host
 plombirator.kz: did not receive HSTS header
 plothost.com: did not receive HSTS header
 ploup.net: could not connect to host
 pluff.nl: did not receive HSTS header
+plural.cafe: did not receive HSTS header
 plus-digital.net: did not receive HSTS header
 plus-u.com.au: did not receive HSTS header
 plustech.id: did not receive HSTS header
 plut.org: did not receive HSTS header
 plymouthsoftplay.co.uk: could not connect to host
 pm13-media.cz: could not connect to host
 pmac.pt: could not connect to host
 pmemanager.fr: did not receive HSTS header
@@ -9622,27 +9619,28 @@ poon.tech: could not connect to host
 popi.se: did not receive HSTS header
 popkins.ml: could not connect to host
 popupsoftplay.com: did not receive HSTS header
 poris.web.id: could not connect to host
 pornstars.me: did not receive HSTS header
 portalm.tk: could not connect to host
 portalplatform.net: could not connect to host
 portaluniversalista.org: could not connect to host
+portefeuillesignalen.nl: did not receive HSTS header
+posbank.co.uk: did not receive HSTS header
 poshpak.com: max-age too low: 86400
 postback.io: did not receive HSTS header
-postcodegarant.nl: did not receive HSTS header
+postcodegarant.nl: could not connect to host
 postcodewise.co.uk: could not connect to host
 postscheduler.org: could not connect to host
 posylka.de: did not receive HSTS header
 potatoheads.net: could not connect to host
 potpourrifestival.de: did not receive HSTS header
 potsky.com: did not receive HSTS header
 pourmesloisirs.com: could not connect to host
-pourout.org: did not receive HSTS header
 poussinooz.fr: could not connect to host
 povitria.net: could not connect to host
 power-l.ch: did not receive HSTS header
 power-of-interest.com: did not receive HSTS header
 power99press.com: did not receive HSTS header
 powerb.ch: did not receive HSTS header
 poweroff.win: could not connect to host
 powerplannerapp.com: could not connect to host
@@ -9674,17 +9672,17 @@ preparedcapital.com: max-age too low: 30
 preppertactics.com: did not receive HSTS header
 presidentials2016.com: could not connect to host
 press-anime-nenkan.com: did not receive HSTS header
 pressenews.net: did not receive HSTS header
 pressfreedomfoundation.org: did not receive HSTS header
 pretrialservices.gov: did not receive HSTS header
 prettygrouse.com: did not receive HSTS header
 prettyphotoart.de: did not receive HSTS header
-pretzlaff.info: could not connect to host
+pretzlaff.info: did not receive HSTS header
 preworkout.me: could not connect to host
 prgslab.net: could not connect to host
 pridoc.se: did not receive HSTS header
 prilock.com: did not receive HSTS header
 primecaplending.com: could not connect to host
 primotiles.co.uk: did not receive HSTS header
 prinbanat.ngo: did not receive HSTS header
 princesparktouch.com: did not receive HSTS header
@@ -9835,17 +9833,16 @@ quakerlens.com: did not receive HSTS hea
 quality1.com.br: did not receive HSTS header
 qualityology.com: did not receive HSTS header
 quanglepro.com: could not connect to host
 quantacloud.ch: could not connect to host
 quantenteranik.eu: could not connect to host
 quantum-cloud.xyz: could not connect to host
 quantum-ethics.com: could not connect to host
 quantumcourse.org: did not receive HSTS header
-quarryhillrentals.com: did not receive HSTS header
 quebecmailbox.com: could not connect to host
 queenbrownie.com.br: could not connect to host
 quelmandataire.fr: did not receive HSTS header
 queroreceitasoberana.com.br: max-age too low: 0
 queryplayground.com: could not connect to host
 questsandrewards.com: could not connect to host
 quickandroid.tools: could not connect to host
 quickpayservice.com: could not connect to host
@@ -9959,17 +9956,16 @@ rede.ca: did not receive HSTS header
 redhorsemountainranch.com: did not receive HSTS header
 redicabo.de: could not connect to host
 redirectman.com: did not receive HSTS header
 redlatam.org: could not connect to host
 redmbk.com: did not receive HSTS header
 redner.cc: did not receive HSTS header
 rednertv.de: did not receive HSTS header
 redoakmedia.net: did not receive HSTS header
-redperegrine.com: did not receive HSTS header
 redports.org: could not connect to host
 redra.ws: did not receive HSTS header
 reducerin.ro: did not receive HSTS header
 redy.host: did not receive HSTS header
 reed-sensor.com: did not receive HSTS header
 referenten.org: did not receive HSTS header
 refitplanner.com: did not receive HSTS header
 reg.ru: did not receive HSTS header
@@ -10011,17 +10007,16 @@ renkhosting.com: could not connect to ho
 renlong.org: did not receive HSTS header
 renrenss.com: could not connect to host
 renscreations.com: did not receive HSTS header
 rentacarcluj.xyz: could not connect to host
 rentbrowsertrain.me: could not connect to host
 rentcarassist.com: could not connect to host
 renteater.com: could not connect to host
 rentex.com: did not receive HSTS header
-renyiyou.com: could not connect to host
 repex.co.il: did not receive HSTS header
 replacemychina.com: could not connect to host
 report-to.com: did not receive HSTS header
 report-to.io: did not receive HSTS header
 report-uri.io: did not receive HSTS header
 report-url.com: did not receive HSTS header
 report-url.io: did not receive HSTS header
 reported.ly: did not receive HSTS header
@@ -10092,35 +10087,36 @@ rizon.me: max-age too low: 0
 rj.gg: could not connect to host
 rk6.cz: could not connect to host
 rkkhok.hu: did not receive HSTS header
 rkmantpur.org: did not receive HSTS header
 rmaqequipamentos.com.br: could not connect to host
 rme.li: did not receive HSTS header
 roadfeast.com: could not connect to host
 roan24.pl: did not receive HSTS header
+robertoentringer.com: did not receive HSTS header
 robigalia.org: did not receive HSTS header
 robteix.com: did not receive HSTS header
 robtex.com: did not receive HSTS header
 robtex.net: did not receive HSTS header
 robtex.org: did not receive HSTS header
 rochman.id: could not connect to host
 rocketnet.ml: could not connect to host
 rockeyscrivo.com: did not receive HSTS header
 rocksberg.net: could not connect to host
 rockz.io: did not receive HSTS header
+roddis.net: did not receive HSTS header
 rodney.id.au: did not receive HSTS header
 rodneybrooksjr.com: did not receive HSTS header
 rodosto.com: did not receive HSTS header
 roelf.org: did not receive HSTS header
 roeper.party: could not connect to host
 roesemann.email: could not connect to host
 roguelikecenter.fr: max-age too low: 0
 rohlik.cz: did not receive HSTS header
-roketix.co.uk: could not connect to host
 rolandkolodziej.com: max-age too low: 86400
 rolandslate.com: did not receive HSTS header
 rolemaster.net: could not connect to host
 rolroer.co.za: could not connect to host
 romaimperator.com: did not receive HSTS header
 romainmuller.xyz: did not receive HSTS header
 romans-place.me.uk: could not connect to host
 romeoferraris.com: did not receive HSTS header
@@ -10132,16 +10128,17 @@ ronwo.de: max-age too low: 1
 roo.ie: could not connect to host
 rootforum.org: did not receive HSTS header
 rootservice.org: did not receive HSTS header
 rootwpn.com: could not connect to host
 rop.io: could not connect to host
 roquecenter.org: did not receive HSTS header
 rorymcdaniel.com: did not receive HSTS header
 roseitsolutions.uk: did not receive HSTS header
+rossclark.com: did not receive HSTS header
 rossen.be: did not receive HSTS header
 rossiworld.com: did not receive HSTS header
 rotex1840.de: did not receive HSTS header
 rotter-dam.nl: did not receive HSTS header
 rough.nu: could not connect to host
 roundtheme.com: did not receive HSTS header
 rous.se: could not connect to host
 rouvray.org: could not connect to host
@@ -10218,16 +10215,17 @@ saigonstar.de: could not connect to host
 sail-nyc.com: did not receive HSTS header
 saint-astier-triathlon.com: did not receive HSTS header
 saintjohnlutheran.church: did not receive HSTS header
 sairai.bid: could not connect to host
 sakaserver.com: did not receive HSTS header
 sakib.ninja: did not receive HSTS header
 sakurabuff.com: could not connect to host
 saleslift.pl: did not receive HSTS header
+salmonrecovery.gov: did not receive HSTS header
 salserocafe.com: did not receive HSTS header
 salserototal.com: could not connect to host
 saltedskies.com: could not connect to host
 saltra.online: could not connect to host
 salvagedfurnitureparlour.com: could not connect to host
 samaritansnet.org: did not receive HSTS header
 sametovymesic.cz: could not connect to host
 saml2.com: could not connect to host
@@ -10244,17 +10242,16 @@ sanik.my: did not receive HSTS header
 sanissimo.com.mx: max-age too low: 86400
 sansage.com.br: could not connect to host
 sansdev.com: could not connect to host
 sansemea.com: did not receive HSTS header
 santi.eu: did not receive HSTS header
 santorinibbs.com: did not receive HSTS header
 santouri.be: could not connect to host
 saotn.org: did not receive HSTS header
-sapk.fr: did not receive HSTS header
 sarah-beckett-harpist.com: did not receive HSTS header
 sarahsweetlife.com: could not connect to host
 sarahsweger.com: could not connect to host
 sarakas.com: could not connect to host
 saraleebread.com: max-age too low: 86400
 sarangsemutbandung.com: could not connect to host
 sarisonproductions.com: did not receive HSTS header
 sarkarischeme.in: could not connect to host
@@ -10407,17 +10404,16 @@ sehenderson.com: did not receive HSTS he
 seiler-bad.de: did not receive HSTS header
 seizoushokoyuubangou.com: did not receive HSTS header
 sektor.team: could not connect to host
 selecadm.name: could not connect to host
 selectary.com: could not connect to host
 selectcertifiedautos.com: did not receive HSTS header
 selectel.com: did not receive HSTS header
 selectruckscalltrackingreports.com: could not connect to host
-seleondar.ru: did not receive HSTS header
 selfdefenserx.com: did not receive HSTS header
 selfie-france.fr: could not connect to host
 selldorado.com: could not connect to host
 sellercritic.com: did not receive HSTS header
 sello.com: did not receive HSTS header
 sellocdn.com: could not connect to host
 sellservs.co.za: could not connect to host
 semaf.at: max-age too low: 86400
@@ -10429,17 +10425,16 @@ semps-servers.de: could not connect to h
 sendash.com: could not connect to host
 sendmeback.de: did not receive HSTS header
 senedirect.com: could not connect to host
 sens2lavie.com: max-age too low: 0
 senseofnumber.co.uk: did not receive HSTS header
 sensiblemn.org: could not connect to host
 sensibus.com: did not receive HSTS header
 seobot.com.au: could not connect to host
-seoinc.com: did not receive HSTS header
 seomobo.com: could not connect to host
 seosanantonioinc.com: did not receive HSTS header
 seowarp.net: did not receive HSTS header
 sep23.ru: did not receive HSTS header
 sepie.gob.es: did not receive HSTS header
 seq.tf: did not receive HSTS header
 serathius.ovh: could not connect to host
 serbien.guide: could not connect to host
@@ -10453,16 +10448,17 @@ servergno.me: did not receive HSTS heade
 servermonkey.nl: could not connect to host
 servicevie.com: did not receive HSTS header
 servu.de: did not receive HSTS header
 seryo.moe: could not connect to host
 seryo.net: could not connect to host
 setphaserstostun.org: could not connect to host
 setuid.de: could not connect to host
 setuid.io: did not receive HSTS header
+sewoo.co.uk: did not receive HSTS header
 seyahatsagliksigortalari.com: could not connect to host
 seydaozcan.com: did not receive HSTS header
 sfashion.si: did not receive HSTS header
 sfhobbies.com.br: could not connect to host
 sfsltd.com: did not receive HSTS header
 sgcaccounts.co.uk: did not receive HSTS header
 sgovaard.nl: did not receive HSTS header
 sh11.pp.ua: did not receive HSTS header
@@ -10484,32 +10480,30 @@ shadowsoks.com: could not connect to hos
 shadowsu.info: did not receive HSTS header
 shadowsu.top: did not receive HSTS header
 shagi29.ru: did not receive HSTS header
 shahbeat.com: did not receive HSTS header
 shakebox.de: could not connect to host
 shanesage.com: could not connect to host
 shapesedinburgh.co.uk: did not receive HSTS header
 shardsoft.com: could not connect to host
-shareeri.com: did not receive HSTS header
 shareimg.xyz: could not connect to host
 sharejoy.cn: did not receive HSTS header
 sharekey.com: did not receive HSTS header
 shareoine.com: did not receive HSTS header
 sharepass.pw: could not connect to host
 sharepic.xyz: could not connect to host
 sharesplitter.com: could not connect to host
 sharezen.de: could not connect to host
 sharingcode.com: did not receive HSTS header
 shatorin.com: did not receive HSTS header
 shauncrowley.co.uk: could not connect to host
 shaunwheelhou.se: could not connect to host
 shawnbsmith.me: did not receive HSTS header
 shawnh.net: could not connect to host
-shawnstarrcustomhomes.com: did not receive HSTS header
 shellsec.pw: did not receive HSTS header
 shep.co.il: did not receive HSTS header
 sheratan.web.id: did not receive HSTS header
 shereallyheals.com: did not receive HSTS header
 shermantank.biz: did not receive HSTS header
 shervik.ga: could not connect to host
 shevronpatriot.ru: did not receive HSTS header
 shg-pornographieabhaengigkeit.de: did not receive HSTS header
@@ -10568,17 +10562,16 @@ silent.live: could not connect to host
 silentcircle.com: did not receive HSTS header
 silentcircle.org: could not connect to host
 silentlink.io: could not connect to host
 silentmode.com: max-age too low: 7889238
 silicagelpackets.ca: did not receive HSTS header
 silver-drachenkrieger.de: did not receive HSTS header
 silverhome.ninja: could not connect to host
 silverpvp.com: could not connect to host
-silviamacallister.com: did not receive HSTS header
 simbast.com: could not connect to host
 simbihaiti.com: max-age too low: 7889238
 simbol.id: did not receive HSTS header
 simccorp.com: did not receive HSTS header
 simeon.us: max-age too low: 2592000
 simfri.com: could not connect to host
 simnovo.net: did not receive HSTS header
 simobilklub.si: could not connect to host
@@ -10662,25 +10655,25 @@ slauber.de: did not receive HSTS header
 sleeklounge.com: did not receive HSTS header
 sleep10.com: could not connect to host
 sleepstar.com.mt: did not receive HSTS header
 slicketl.com: did not receive HSTS header
 slightfuture.click: could not connect to host
 slightfuture.com: did not receive HSTS header
 slix.io: could not connect to host
 slope.haus: could not connect to host
-slovakiana.sk: did not receive HSTS header
 slovoice.org: could not connect to host
 slowsociety.org: could not connect to host
 sluplift.com: did not receive HSTS header
 slycurity.de: did not receive HSTS header
 smablo.com: did not receive HSTS header
 smallcdn.rocks: could not connect to host
 smalldogbreeds.net: did not receive HSTS header
 smallshopit.com: did not receive HSTS header
+smaltimentorifiuti.veneto.it: did not receive HSTS header
 smart-mirror.de: did not receive HSTS header
 smart-ov.nl: could not connect to host
 smartbuyelectric.com: could not connect to host
 smartcoin.com.br: could not connect to host
 smartfon4you.ru: max-age too low: 0
 smarthomedna.com: did not receive HSTS header
 smartit.pro: did not receive HSTS header
 smartofficesandsmarthomes.com: did not receive HSTS header
@@ -10696,20 +10689,19 @@ smith.is: did not receive HSTS header
 smittix.co.uk: did not receive HSTS header
 smkn1lengkong.sch.id: did not receive HSTS header
 smksi2.com: could not connect to host
 smksultanismail2.com: could not connect to host
 smkw.com: did not receive HSTS header
 smol.cat: did not receive HSTS header
 smove.sg: did not receive HSTS header
 smplix.com: could not connect to host
-smspodmena.ru: did not receive HSTS header
+smspodmena.ru: could not connect to host
 smtp.bz: did not receive HSTS header
 smusg.com: could not connect to host
-snafarms.com: did not receive HSTS header
 snailing.org: could not connect to host
 snakehosting.dk: did not receive HSTS header
 snapworks.net: did not receive HSTS header
 snekchat.moe: could not connect to host
 snelwerk.be: could not connect to host
 sng.my: could not connect to host
 snip.host: could not connect to host
 snippet.host: could not connect to host
@@ -10762,16 +10754,17 @@ soporte.cc: could not connect to host
 sorensen-online.com: could not connect to host
 sosaka.ml: could not connect to host
 sosiolog.com: could not connect to host
 sotor.de: did not receive HSTS header
 soucorneteiro.com.br: could not connect to host
 soulfulglamour.uk: could not connect to host
 soundforsound.co.uk: did not receive HSTS header
 sourcelair.com: did not receive HSTS header
+sourcitec.com: did not receive HSTS header
 southcoastswords.com: did not receive HSTS header
 southernjamusa.com: did not receive HSTS header
 southgale.condos: could not connect to host
 southside-crew.club: could not connect to host
 southworcestershiregpservices.co.uk: could not connect to host
 souvik.me: did not receive HSTS header
 souyar.de: could not connect to host
 souyar.net: could not connect to host
@@ -10816,16 +10809,17 @@ spineandscoliosis.com: did not receive H
 spirit-dev.net: max-age too low: 0
 spiritfanfics.com: did not receive HSTS header
 spisoggrin.dk: did not receive HSTS header
 spitefultowel.com: did not receive HSTS header
 spititout.it: could not connect to host
 spokonline.com: could not connect to host
 spon.cz: did not receive HSTS header
 sponsortobias.com: could not connect to host
+sport-socken.net: did not receive HSTS header
 sportchirp-internal.azurewebsites.net: did not receive HSTS header
 sporthit.ru: did not receive HSTS header
 sportifik.com: did not receive HSTS header
 sportingoods.com.br: could not connect to host
 sportscollection.com.br: could not connect to host
 sportwette.eu: could not connect to host
 spot-events.com: could not connect to host
 spotifyripper.tk: could not connect to host
@@ -10900,16 +10894,17 @@ steph-autoecole.ch: did not receive HSTS
 stephanierxo.com: did not receive HSTS header
 stephanos.me: could not connect to host
 stephenandburns.com: did not receive HSTS header
 stevechekblain.win: could not connect to host
 stevenroddis.com: did not receive HSTS header
 stevensheffey.me: did not receive HSTS header
 stevensononthe.net: did not receive HSTS header
 stevenz.net: did not receive HSTS header
+stevenz.science: did not receive HSTS header
 stevenz.xyz: did not receive HSTS header
 stewartremodelingadvantage.com: could not connect to host
 sticklerjs.org: could not connect to host
 stig.io: did not receive HSTS header
 stigroom.com: could not connect to host
 stillblackhat.id: could not connect to host
 stinkytrashhound.com: could not connect to host
 stirlingpoon.net: could not connect to host
@@ -10921,18 +10916,18 @@ stl.news: did not receive HSTS header
 stmbgr.com: could not connect to host
 stn.me.uk: did not receive HSTS header
 stockseyeserum.com: could not connect to host
 stocktrade.de: could not connect to host
 stoffe-monster.de: did not receive HSTS header
 stoick.me: could not connect to host
 stole-my.bike: could not connect to host
 stole-my.tv: could not connect to host
-stomadental.com: did not receive HSTS header
 stonecutterscommunity.com: could not connect to host
+stopbreakupnow.org: did not receive HSTS header
 stopwoodfin.org: could not connect to host
 storbritannien.guide: could not connect to host
 store-host.com: did not receive HSTS header
 storecove.com: did not receive HSTS header
 storeden.com: did not receive HSTS header
 storefrontify.com: could not connect to host
 storiesofhealth.org: did not receive HSTS header
 stormhub.org: could not connect to host
@@ -10986,16 +10981,17 @@ sugarsweetorsour.com: did not receive HS
 suian.or.jp: max-age too low: 86400
 suite73.org: could not connect to host
 summitbankofkc.com: did not receive HSTS header
 summitmasters.net: did not receive HSTS header
 sumoatm.com: did not receive HSTS header
 sumoscout.de: could not connect to host
 suncountrymarine.com: did not receive HSTS header
 sundaycooks.com: max-age too low: 2592000
+sunflyer.cn: did not receive HSTS header
 sunlandsg.vn: did not receive HSTS header
 sunnyfruit.ru: could not connect to host
 sunriseafricarelief.com: did not receive HSTS header
 sunshinepress.org: could not connect to host
 sunyanzi.tk: could not connect to host
 suos.io: could not connect to host
 supcro.com: could not connect to host
 super-garciniaslim.com: could not connect to host
@@ -11127,16 +11123,17 @@ tatilbus.com: did not receive HSTS heade
 tatilmix.com: did not receive HSTS header
 tatt.io: could not connect to host
 tattvaayoga.com: did not receive HSTS header
 tauchkater.de: could not connect to host
 tavoittaja.fi: did not receive HSTS header
 tavopica.lt: did not receive HSTS header
 taxaudit.com: did not receive HSTS header
 taxbench.com: could not connect to host
+taxi-24std.de: did not receive HSTS header
 taxsnaps.co.nz: did not receive HSTS header
 tazj.in: did not receive HSTS header
 tazz.in: could not connect to host
 tc-bonito.de: did not receive HSTS header
 tcao.info: could not connect to host
 tcby45.xyz: could not connect to host
 tcdw.net: did not receive HSTS header
 tcl.ath.cx: did not receive HSTS header
@@ -11158,17 +11155,16 @@ teamblueridge.org: could not connect to 
 teamhood.io: did not receive HSTS header
 teampoint.cz: could not connect to host
 teamsocial.co: did not receive HSTS header
 teamup.rocks: did not receive HSTS header
 teamzeus.cz: could not connect to host
 tearoy.faith: did not receive HSTS header
 tech-blog.fr: did not receive HSTS header
 tech-finder.fr: could not connect to host
-tech-zealots.com: did not receive HSTS header
 tech55i.com: could not connect to host
 techandtux.de: could not connect to host
 techassist.io: did not receive HSTS header
 techcavern.ml: did not receive HSTS header
 techelements.co: did not receive HSTS header
 techfactslive.com: did not receive HSTS header
 techhipster.net: could not connect to host
 techhub.ml: could not connect to host
@@ -11187,19 +11183,18 @@ techproud.com: did not receive HSTS head
 techreview.link: could not connect to host
 techtoy.store: did not receive HSTS header
 techtraveller.com.au: did not receive HSTS header
 techview.link: max-age too low: 1209600
 tecnimotos.com: did not receive HSTS header
 tecnogaming.com: did not receive HSTS header
 tecture.de: did not receive HSTS header
 tedovo.com: did not receive HSTS header
-tedsdivingsystem.com: did not receive HSTS header
+tedsdivingsystem.com: could not connect to host
 tedxkmitl.com: could not connect to host
-teeplelaw.com: did not receive HSTS header
 tefl.io: did not receive HSTS header
 tegelsensanitaironline.nl: could not connect to host
 tehotuotanto.net: did not receive HSTS header
 tekiro.com: did not receive HSTS header
 teknologi.or.id: max-age too low: 36000
 teknotes.co.uk: could not connect to host
 tekshrek.com: did not receive HSTS header
 tel-dithmarschen.de: did not receive HSTS header
@@ -11272,24 +11267,23 @@ theamp.com: did not receive HSTS header
 theater.cf: could not connect to host
 theavenuegallery.com: did not receive HSTS header
 thebakingclass.com: max-age too low: 60
 thebasementguys.com: could not connect to host
 thebeautifulmusic.net: did not receive HSTS header
 thebeginningisnye.com: could not connect to host
 theberkshirescompany.com: could not connect to host
 thebigfail.net: could not connect to host
-thebreakhotel.com: did not receive HSTS header
 thebrightons.co.uk: did not receive HSTS header
 thebrightons.uk: could not connect to host
 thebrotherswarde.com: could not connect to host
 thecapitalbank.com: did not receive HSTS header
 thecharlestonwaldorf.com: did not receive HSTS header
 theclementinebutchers.com: could not connect to host
-thecloudrevolution.net: could not connect to host
+thecloudrevolution.net: did not receive HSTS header
 theclubjersey.com: did not receive HSTS header
 thecodeninja.net: did not receive HSTS header
 thecoffeehouse.xyz: could not connect to host
 thedrinks.co: did not receive HSTS header
 thedrop.pw: did not receive HSTS header
 thedystance.com: could not connect to host
 theelitebuzz.com: could not connect to host
 theendofzion.com: did not receive HSTS header
@@ -11303,17 +11297,17 @@ thefrozenfire.com: did not receive HSTS 
 thefutureharrills.com: could not connect to host
 thegamerscamp.com: max-age too low: 0
 thegemriverside.com.vn: did not receive HSTS header
 thego2swatking.com: could not connect to host
 thegoldregister.co.uk: could not connect to host
 thegreenpark.co.uk: did not receive HSTS header
 thegreenvpn.com: did not receive HSTS header
 thehiddenbay.eu: could not connect to host
-thehiddenbay.me: max-age too low: 0
+thehiddenbay.me: could not connect to host
 thehiddenbay.net: max-age too low: 0
 thehighersideclothing.com: did not receive HSTS header
 thehistory.me: could not connect to host
 thehonorguard.org: did not receive HSTS header
 thehoopsarchive.com: could not connect to host
 thehotfix.net: could not connect to host
 theimagesalon.com: max-age too low: 43200
 theinvisibletrailer.com: could not connect to host
@@ -11327,17 +11321,16 @@ themarble.co: could not connect to host
 themathbehindthe.science: could not connect to host
 themathematician.uk: could not connect to host
 themicrocapital.com: could not connect to host
 themoderate.xyz: could not connect to host
 thenarcissisticlife.com: did not receive HSTS header
 thenextstep.events: could not connect to host
 thenorthschool.org.uk: did not receive HSTS header
 theodorejones.info: could not connect to host
-theofleck.com: did not receive HSTS header
 thepartywarehouse.co.uk: did not receive HSTS header
 thepcweb.tk: could not connect to host
 thepiratebay.al: could not connect to host
 thepiratebay.poker: could not connect to host
 thepiratebay.tech: could not connect to host
 therise.ca: max-age too low: 300
 therockawaysny.com: did not receive HSTS header
 thesearchnerds.co.uk: did not receive HSTS header
@@ -11468,17 +11461,16 @@ tobias-bielefeld.de: did not receive HST
 tobiasmathes.com: could not connect to host
 tobiasmathes.name: could not connect to host
 tobiasofficial.at: could not connect to host
 tobiassachs.cf: could not connect to host
 tobiassachs.tk: could not connect to host
 todesschaf.org: could not connect to host
 todo.is: could not connect to host
 todobazar.es: could not connect to host
-todoscomciro.com: did not receive HSTS header
 tofu.im: could not connect to host
 togelonlinecommunity.com: did not receive HSTS header
 toka.sg: did not receive HSTS header
 tokenloan.com: could not connect to host
 tokobungaasryflorist.com: did not receive HSTS header
 tokobungadipadangflorist.com: did not receive HSTS header
 tokoone.com: could not connect to host
 tokotamz.net: could not connect to host
@@ -11508,16 +11500,17 @@ topdeskdev.net: could not connect to hos
 topdogsinflatables.co.uk: did not receive HSTS header
 topmarine.se: did not receive HSTS header
 topnewstoday.org: could not connect to host
 topnovini.com: did not receive HSTS header
 toppik.com.br: could not connect to host
 topshelfguild.com: could not connect to host
 toptenthebest.com: did not receive HSTS header
 toptranslation.com: did not receive HSTS header
+topwindowcleaners.co.uk: did not receive HSTS header
 topyx.com: did not receive HSTS header
 torahanytime.com: did not receive HSTS header
 torchl.it: could not connect to host
 torlock.download: could not connect to host
 torproject.org.uk: could not connect to host
 torrentdownloads.bid: could not connect to host
 torrenttop100.net: did not receive HSTS header
 torrentz.website: could not connect to host
@@ -11532,16 +11525,17 @@ totalsystemcare.com: did not receive HST
 totalworkout.fitness: did not receive HSTS header
 totem-eshop.cz: could not connect to host
 totoro.pub: did not receive HSTS header
 totot.net: did not receive HSTS header
 toucedo.de: could not connect to host
 touchbasemail.com: did not receive HSTS header
 touchpointidg.us: could not connect to host
 touchscreen-handy.de: did not receive HSTS header
+touchscreentills.com: did not receive HSTS header
 touchstonefms.co.uk: did not receive HSTS header
 touchtable.nl: did not receive HSTS header
 tourpeer.com: did not receive HSTS header
 toxme.se: did not receive HSTS header
 toyotamotala.se: could not connect to host
 tpbcdn.com: could not connect to host
 tpe-edu.com: could not connect to host
 tpms4u.at: did not receive HSTS header
@@ -11679,40 +11673,40 @@ twinkseason.co.uk: could not connect to 
 twinkseason.net: could not connect to host
 twinkseason.org: could not connect to host
 twinkseason.xyz: could not connect to host
 twist.party: could not connect to host
 twogo.com: did not receive HSTS header
 twolinepassbrewing.com: could not connect to host
 twolivelife.com: could not connect to host
 tx041cap.org: did not receive HSTS header
-txbi.de: did not receive HSTS header
+txbi.de: could not connect to host
 txclimbers.com: could not connect to host
 txcp01.com: did not receive HSTS header
 txcp02.com: did not receive HSTS header
 txf.pw: could not connect to host
 tylian.net: max-age too low: 0
 typeofweb.com: did not receive HSTS header
 typingrevolution.com: did not receive HSTS header
 tyreis.com: did not receive HSTS header
 tyrelius.com: did not receive HSTS header
 tyroproducts.eu: did not receive HSTS header
 tyroremotes.no: did not receive HSTS header
 tyskland.guide: could not connect to host
 tzappa.net: could not connect to host
 u-blox.com: max-age too low: 0
+u-master.net: did not receive HSTS header
 uadp.pw: could not connect to host
 uatgootax.ru: did not receive HSTS header
 uber.com.au: did not receive HSTS header
 ubercalculator.com: did not receive HSTS header
 uberfunction.com: did not receive HSTS header
 ubicloud.de: could not connect to host
 ublox.com: did not receive HSTS header
 ubuntuhot.com: could not connect to host
-ucfirst.nl: did not receive HSTS header
 uefeng.com: did not receive HSTS header
 uega.net: did not receive HSTS header
 ufgaming.com: did not receive HSTS header
 ufotable.uk: could not connect to host
 ugisgutless.com: could not connect to host
 ugo.ninja: could not connect to host
 ugosadventures.com: could not connect to host
 uhm.io: did not receive HSTS header
@@ -11803,16 +11797,17 @@ upldr.pw: could not connect to host
 uporoops.com: could not connect to host
 uprotect.it: could not connect to host
 upstats.eu: could not connect to host
 uptic.net: did not receive HSTS header
 ur-lauber.de: did not receive HSTS header
 urandom.eu.org: did not receive HSTS header
 urban-garden.lt: could not connect to host
 urban-garden.lv: could not connect to host
+urbanstylestaging.com: did not receive HSTS header
 urbpic.com: could not connect to host
 urlchomp.com: did not receive HSTS header
 urology.wiki: did not receive HSTS header
 urphp.com: could not connect to host
 us-immigration.com: did not receive HSTS header
 usaab.org: did not receive HSTS header
 usafuelservice.com: did not receive HSTS header
 usbirthcertificate.com: could not connect to host
@@ -11942,17 +11937,17 @@ vicianovi.cz: could not connect to host
 victorenxovais.com.br: could not connect to host
 victoriapemberton.com: did not receive HSTS header
 vid.me: did not receive HSTS header
 vidbuchanan.co.uk: did not receive HSTS header
 viddiaz.com: did not receive HSTS header
 videnskabsklubben.dk: did not receive HSTS header
 videomuz.com: could not connect to host
 videotogel.net: could not connect to host
-videoueberwachung-set.de: could not connect to host
+videoueberwachung-set.de: did not receive HSTS header
 vider.ga: could not connect to host
 vidid.net: could not connect to host
 vidiproject.com: did not receive HSTS header
 vidister.de: did not receive HSTS header
 vidz.ga: could not connect to host
 vietnamchevrolet.net: did not receive HSTS header
 vietnamphotographytours.com: could not connect to host
 viewsea.com: max-age too low: 0
@@ -12001,21 +11996,20 @@ vissersgrootboek.nl: did not receive HST
 vistarait.com: could not connect to host
 visualvotes.co.uk: could not connect to host
 vitagenda.nl: could not connect to host
 vitalita.cz: did not receive HSTS header
 vitalorange.com: max-age too low: 7889238
 vitta.me: did not receive HSTS header
 viva-french.com: did not receive HSTS header
 vivasports.com.br: could not connect to host
-vivianmaier.cn: did not receive HSTS header
 vivocloud.com: could not connect to host
 vivremoinscher.fr: did not receive HSTS header
 vizeat.com: did not receive HSTS header
-vladimiroff.org: could not connect to host
+vladimiroff.org: did not receive HSTS header
 vliegensvlug.services: max-age too low: 2592000
 vm0.eu: could not connect to host
 vmrdev.com: could not connect to host
 voceinveste.com: did not receive HSTS header
 voicesuk.co.uk: did not receive HSTS header
 voidserv.net: could not connect to host
 volbyzive.cz: did not receive HSTS header
 volcrado.com: did not receive HSTS header
@@ -12208,16 +12202,17 @@ wewillgo.org: did not receive HSTS heade
 wewlad.me: did not receive HSTS header
 wftda.com: did not receive HSTS header
 whatnext.limited: could not connect to host
 whats.io: could not connect to host
 whatsstalk.me: could not connect to host
 whatsyouroffer.co.uk: did not receive HSTS header
 wheresben.today: could not connect to host
 whisker.network: could not connect to host
+whistler-transfers.com: did not receive HSTS header
 whitehat.id: could not connect to host
 whiterabbit.org: did not receive HSTS header
 whiterabbitcakery.com: could not connect to host
 whiteroom.agency: did not receive HSTS header
 whitestagforge.com: could not connect to host
 whoclicks.net: could not connect to host
 whoisapi.online: could not connect to host
 wholebites.com: max-age too low: 7889238
@@ -12300,16 +12295,17 @@ woodmafia.com.au: could not connect to h
 woodworkertip.com: did not receive HSTS header
 woording.com: could not connect to host
 wootton95.com: could not connect to host
 wooviet.com: could not connect to host
 wordbits.net: did not receive HSTS header
 work-and-jockel.de: did not receive HSTS header
 workfone.io: could not connect to host
 workpermit.com.vn: could not connect to host
+worldchess.london: did not receive HSTS header
 worldlist.org: could not connect to host
 worldpovertysolutions.org: did not receive HSTS header
 worldsbeststory.com: did not receive HSTS header
 worldwhisperer.net: could not connect to host
 worshapp.com: could not connect to host
 wow-travel.eu: could not connect to host
 wowapi.org: could not connect to host
 wowinvasion.com: did not receive HSTS header
@@ -12354,17 +12350,17 @@ www-1117.com: could not connect to host
 www-39988.com: did not receive HSTS header
 www-507.net: could not connect to host
 www-746.com: could not connect to host
 www-771122.com: did not receive HSTS header
 www-8003.com: did not receive HSTS header
 www-88599.com: did not receive HSTS header
 www-9995.com: did not receive HSTS header
 www-djbet.com: did not receive HSTS header
-www-jinshavip.com: could not connect to host
+www-jinshavip.com: did not receive HSTS header
 www.cueup.com: could not connect to host
 www.cyveillance.com: did not receive HSTS header
 www.developer.mydigipass.com: could not connect to host
 www.elanex.biz: did not receive HSTS header
 www.gamesdepartment.co.uk: could not connect to host
 www.gpo.gov: did not receive HSTS header
 www.greplin.com: could not connect to host
 www.jitsi.org: did not receive HSTS header
@@ -12419,16 +12415,17 @@ xiaolvmu.me: could not connect to host
 xiaoxiao.im: could not connect to host
 xiliant.com: did not receive HSTS header
 ximage.me: did not receive HSTS header
 ximens.me: could not connect to host
 xinbiji.cn: could not connect to host
 xinghuokeji.xin: could not connect to host
 xisa.it: could not connect to host
 xivpn.com: could not connect to host
+xiyu.it: did not receive HSTS header
 xlboo.com: did not receive HSTS header
 xlfblog.com: did not receive HSTS header
 xlinar.com: did not receive HSTS header
 xmr.my: could not connect to host
 xmv.cz: could not connect to host
 xn--3lqp21gwna.xn--fiqs8s: could not connect to host
 xn--3lqp21gwna.xn--fiqz9s: could not connect to host
 xn--3lqt7ir4md4tzwa.cn: did not receive HSTS header
@@ -12506,23 +12503,22 @@ yamamo10.com: could not connect to host
 yameveo.com: did not receive HSTS header
 yanwh.xyz: did not receive HSTS header
 yaporn.tv: did not receive HSTS header
 yard-fu.com: could not connect to host
 yardbird.us: could not connect to host
 yarnhookup.com: did not receive HSTS header
 yasinaydin.net: did not receive HSTS header
 yasutomonodokoiko.com: did not receive HSTS header
-ycaaz.com: did not receive HSTS header
 ycc.wtf: could not connect to host
 ycm2.wtf: could not connect to host
 ydy.jp: could not connect to host
 yecl.net: did not receive HSTS header
 yello.website: could not connect to host
-yenibilgi.net: could not connect to host
+yenibilgi.net: did not receive HSTS header
 yenniferallulli.com: could not connect to host
 yenniferallulli.de: could not connect to host
 yenniferallulli.es: did not receive HSTS header
 yenniferallulli.moda: could not connect to host
 yenniferallulli.nl: could not connect to host
 yesdevnull.net: did not receive HSTS header
 yestees.com: did not receive HSTS header
 yetcore.io: could not connect to host
@@ -12599,18 +12595,17 @@ zaidanlebensmittelhandel.de: did not rec
 zakoncontrol.com: did not receive HSTS header
 zamorano.edu: could not connect to host
 zamos.ru: max-age too low: 0
 zaneweb.org: could not connect to host
 zao.fi: could not connect to host
 zaoshanghao-dajia.rhcloud.com: could not connect to host
 zap.yt: did not receive HSTS header
 zarooba.com: could not connect to host
-zary.me: did not receive HSTS header
-zavca.com: did not receive HSTS header
+zavca.com: could not connect to host
 zbasenem.pl: did not receive HSTS header
 zbigniewgalucki.eu: did not receive HSTS header
 zdravotnickasluzba.eu: could not connect to host
 zdrowiepaleo.pl: did not receive HSTS header
 zdx.ch: max-age too low: 0
 zebrababy.cn: could not connect to host
 zebry.nl: did not receive HSTS header
 zecrypto.com: could not connect to host
@@ -12637,17 +12632,16 @@ zeroml.ml: could not connect to host
 zerudi.com: did not receive HSTS header
 zeto365.pl: did not receive HSTS header
 zett4.me: max-age too low: 172800
 zeug.co: did not receive HSTS header
 zeytin.pro: could not connect to host
 zh1.li: could not connect to host
 zhang.wtf: could not connect to host
 zhangruilin.com: did not receive HSTS header
-zhangsidan.com: could not connect to host
 zhangzifan.com: did not receive HSTS header
 zhaojin97.cn: could not connect to host
 zhendingresources.com: could not connect to host
 zhh.in: could not connect to host
 zhihua-lai.com: did not receive HSTS header
 zhiin.net: did not receive HSTS header
 zhome.info: could not connect to host
 zhuji.com.cn: could not connect to host
@@ -12671,17 +12665,17 @@ zkillboard.com: did not receive HSTS hea
 zking.ga: could not connect to host
 zlcp.com: could not connect to host
 zmsastro.co.za: did not receive HSTS header
 zmy.im: did not receive HSTS header
 znacite.com: did not receive HSTS header
 zocken.com: did not receive HSTS header
 zoe.vc: could not connect to host
 zohar.link: could not connect to host
-zollihood.ch: did not receive HSTS header
+zollihood.ch: could not connect to host
 zolotoy-standart.com.ua: did not receive HSTS header
 zomiac.pp.ua: could not connect to host
 zonadebolsa.es: did not receive HSTS header
 zoneminder.com: did not receive HSTS header
 zoners.si: did not receive HSTS header
 zonky.io: could not connect to host
 zoo24.de: did not receive HSTS header
 zoofaeth.de: did not receive HSTS header
--- 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(1534105987786000);
+const PRTime gPreloadListExpirationTime = INT64_C(1534192657699000);
 %%
 0-1.party, 1
 0.me.uk, 1
 0005pay.com, 1
 00100010.net, 1
 0010100.net, 1
 00120012.net, 1
 00130013.net, 1
@@ -1245,16 +1245,17 @@ abvlbasketviganello.ch, 1
 abyssgaming.eu, 1
 abyssproject.net, 1
 ac-admin.pl, 1
 ac-epmservices.com, 1
 ac-town.com, 1
 ac0g.dyndns.org, 1
 academicexperts.us, 1
 academie-de-police.ch, 1
+academy4.net, 1
 academytv.com.au, 1
 acaeum.com, 1
 acampar.com.br, 1
 acaonegocios.com.br, 1
 acara-yoga.de, 1
 acat.io, 1
 acbrussels-used.be, 1
 accbay.com, 1
@@ -1953,17 +1954,16 @@ alexsergeyev.com, 1
 alexsexton.com, 1
 alexsinnott.me, 1
 alextaffe.com, 1
 alextjam.es, 1
 alextsang.net, 1
 alexvdveen.nl, 1
 alexvetter.de, 1
 alexwardweb.com, 1
-alexyang.me, 1
 alfa-tech.su, 1
 alfaperfumes.com.br, 1
 alfaponny.se, 1
 alfirous.com, 1
 algarmatic-automatismos.pt, 1
 algebraaec.com, 1
 alghanimcatering.com, 1
 algoentremanos.com, 1
@@ -2236,16 +2236,17 @@ ameho.me, 0
 amelandadventure.nl, 1
 amello.de, 1
 america.gov, 1
 americafamilylawcenter.org, 1
 american.dating, 1
 americandistribuidora.com, 1
 americanfoundationbr.com, 1
 americanmediainstitute.com, 1
+americanoutlawjeepparts.com, 1
 americasbasementcontractor.com, 1
 americkykongres.cz, 1
 amerigroup.com, 1
 ameriikanpoijat.org, 1
 amerimarkdirect.com, 1
 amerimex.cc, 1
 amesgen.de, 1
 amesvacuumrepair.com, 1
@@ -3759,17 +3760,16 @@ balancenaturalhealthclinic.ca, 1
 balboa.io, 1
 balcaonet.com.br, 1
 balconnr.com, 1
 balconsverdun.com, 1
 baldur.cc, 1
 balenciaspa.com, 1
 balia.de, 1
 balicekzdravi.cz, 1
-balidesignshop.com.br, 1
 balikonos.cz, 1
 balinese.dating, 1
 balist.es, 1
 baliyano.com, 1
 balkonien.org, 1
 ball.holdings, 1
 ballarin.cc, 1
 ballbusting-cbt.com, 1
@@ -5124,17 +5124,16 @@ bondagefetishstore.com, 1
 bondarenko.dn.ua, 1
 bondingwithbaby.ca, 1
 bondoer.fr, 1
 bondpro.gov, 1
 bondskampeerder.nl, 1
 bondtofte.dk, 1
 bonesserver.com, 1
 bonfi.net, 1
-bonibuty.com, 1
 bonifacius.be, 1
 bonita.com.br, 1
 bonnant-associes.ch, 1
 bonnant-partners.ch, 1
 bonnebouffe.fr, 1
 bonnieradvocaten.nl, 1
 bonnsustainabilityportal.de, 1
 bonnyprints.at, 1
@@ -6340,17 +6339,16 @@ cashsector.ga, 1
 casino-cash-flow.su, 1
 casino-cashflow.ru, 1
 casino-trio.com, 1
 casinobonuscodes.online, 1
 casinocashflow.ru, 1
 casinolistings.com, 1
 casinoonlinesicuri.com, 1
 casinoreal.com, 1
-casjay.cloud, 1
 casjay.com, 1
 casjay.info, 1
 casjaygames.com, 1
 caspar.ai, 1
 casperpanel.com, 1
 caspicards.com, 1
 cassimo.com, 1
 castible.de, 1
@@ -6515,16 +6513,17 @@ centennialradon.com, 1
 centerpereezd.ru, 0
 centerpoint.ovh, 1
 centillien.com, 0
 centio.bg, 1
 centos.pub, 1
 centos.tips, 1
 central4.me, 1
 centralbank.ae, 1
+centralcountiesservices.org, 1
 centralebigmat.eu, 1
 centralegedimat.eu, 1
 centralfor.me, 1
 centrallead.net, 1
 centralstatecu.org, 1
 centralvoice.org, 1
 centrationgame.com, 1
 centredaccueil.fr, 1
@@ -7668,16 +7667,17 @@ commania.co.kr, 1
 commco.nl, 1
 commechezvous.ch, 1
 commercial-academy.fr, 1
 commitsandrebases.com, 1
 common.io, 1
 commoncode.com.au, 1
 commoncode.io, 1
 commoncore4kids.com, 1
+community-cupboard.org, 1
 communityblog.fedoraproject.org, 1
 communitycodeofconduct.com, 1
 communityflow.info, 1
 communote.net, 1
 comodesinflamarlashemorroides.org, 1
 comodo.nl, 1
 comodormirmasrapido.com, 1
 comodosslstore.com, 1
@@ -7891,16 +7891,17 @@ cooldan.com, 1
 coole-fete.de, 1
 coolerssr.space, 1
 coolgifs.de, 1
 cooljs.me, 1
 coolpickz.com, 1
 coolprylar.se, 1
 coolrc.me, 1
 coolviewthermostat.com, 1
+coolvox.com, 1
 coopens.com, 1
 coor.fun, 1
 coore.jp, 1
 coorpacademy.com, 1
 copdfoundation.org, 1
 copperhead.co, 1
 copperheados.com, 1
 coptic-treasures.com, 1
@@ -7983,17 +7984,16 @@ cosmeticosnet.com.br, 1
 cosmiatria.pe, 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
 costablancavoorjou.com, 1
 costcofinance.com, 1
 costinstefan.eu, 1
 costreportdata.com, 0
 costulessdirect.com, 1
 coteries.com, 1
 cotonea.de, 1
 cotonmusic.ch, 1
@@ -8782,16 +8782,17 @@ darknetlive.com, 1
 darknight.blog, 1
 darkserver.fedoraproject.org, 1
 darkserver.stg.fedoraproject.org, 1
 darkshop.nl, 1
 darkside.re, 1
 darktime.ru, 1
 darkwater.info, 1
 darkx.me, 1
+darlastudio66.com, 1
 darlo.co.uk, 0
 darom.jp, 1
 darookee.net, 1
 daropia.org, 1
 darrenellis.xyz, 1
 darrenm.net, 1
 darrienworth.com, 1
 darshnam.com, 1
@@ -10076,16 +10077,17 @@ dotsiam.com, 1
 douai.me, 1
 doubleaste.com, 1
 doubleavineyards.com, 1
 doublefun.net, 1
 doublestat.me, 1
 doubleup.com.au, 1
 doucheba.gs, 0
 dougferris.id.au, 1
+douglasstafford.com, 1
 doujin-domain.cz, 1
 doujin.nagoya, 1
 doujinshi.info, 1
 dounats.com, 1
 douzer.de, 1
 dovenzorgmalawi.nl, 1
 dovro.de, 1
 downloadaja.com, 1
@@ -10398,16 +10400,17 @@ dusmomente.com, 1
 dusnan.com, 1
 dustplanet.de, 1
 dustri.org, 1
 dustycloth.com, 1
 dustygroove.com, 1
 dustyspokesbnb.ca, 1
 dutch.desi, 1
 dutch1.nl, 1
+dutchessuganda.com, 1
 dutchrank.nl, 1
 dutchwanderers.nl, 1
 dutchweballiance.nl, 1
 dvbris.co.uk, 1
 dvbris.com, 1
 dvdland.com.au, 1
 dvhosting.be, 1
 dvnatura.ch, 1
@@ -10631,32 +10634,34 @@ echoactive.com, 1
 echoanalytics.com, 1
 echodio.com, 1
 echofoxtrot.co, 1
 echomanchester.net, 1
 echopaper.com, 1
 echosim.io, 1
 echosixmonkey.com, 1
 echosystem.fr, 1
+echoteam.gq, 1
 echoteen.com, 1
 echoworld.ch, 1
 ecirtam.net, 1
 eckel.co, 1
 eclipse.ws, 1
 ecnetworker.com, 1
 eco-derattizzazione.it, 1
 eco-work.it, 1
 ecoccinelles.ch, 1
 ecoccinelles.com, 1
 ecococon.fr, 1
 ecocreativity.org, 1
 ecodedi.com, 1
 ecodigital.social, 1
 ecogen.com.au, 1
 ecogen.net.au, 1
+ecoheatcool.co.uk, 1
 ecohostingservices.uk, 1
 ecolala.my, 1
 ecole-attalens.ch, 1
 ecole-iaf.fr, 1
 ecoledusabbat.org, 1
 ecolemathurincordier.com, 1
 ecolife-vrn.ru, 1
 ecompen.co.za, 1
@@ -10675,16 +10680,17 @@ ecosoftconsult.com, 1
 ecosound.ch, 1
 ecosystem.atlassian.net, 1
 ecoterramedia.com, 1
 ecotur.org, 1
 ecovision.com.br, 1
 ecpannualmeeting.com, 1
 ecrandouble.ch, 1
 ectora.com, 1
+ecupcafe.com, 0
 ed.gs, 1
 ed4becky.net, 1
 edakoe.ru, 1
 edanni.io, 1
 edd-miles.com, 1
 eddesign.ch, 1
 eddmil.es, 1
 eddokloosterman.com, 1
@@ -11333,40 +11339,17 @@ epistas.com, 1
 epistas.de, 1
 epiteugma.com, 1
 epizentrum.work, 1
 epizentrum.works, 1
 epmcentroitalia.it, 1
 epo32.ru, 1
 epoch.com, 1
 epolitiker.com, 1
-epos-distributor.co.uk, 1
-eposbirmingham.co.uk, 1
-eposbrighton.co.uk, 1
-eposbristol.co.uk, 1
-eposcardiff.co.uk, 1
-eposcloud.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
-eposreview.co.uk, 1
-epossheffield.co.uk, 1
-epossurrey.co.uk, 1
-epossussex.co.uk, 1
-eposswansea.co.uk, 1
-epossystems.co.uk, 1
 epostplus.li, 1
-eposwales.co.uk, 1
-eposyork.co.uk, 1
 eppelblei.lu, 1
 eppelduerferjugend.lu, 1
 eppelpress.lu, 1
 epreskripce.cz, 1
 eprofitacademy.com, 1
 epsilon.dk, 1
 epsorting.cz, 1
 epublibre.org, 1
@@ -11378,17 +11361,16 @@ equalcloud.com, 1
 equalparts.eu, 1
 equidam.com, 1
 equinecoaching.ca, 1
 equinetherapy.ca, 1
 equinox.io, 1
 equipandoloja.net.br, 1
 equipedefrance.tv, 1
 equipeferramentas.com.br, 1
-equippers.de, 1
 equipsupply.com, 1
 er-music.com, 1
 er.tl, 1
 erad.fr, 1
 erasmusplusrooms.com, 1
 erath.fr, 1
 erclab.kr, 1
 erdethamburgeronsdag.no, 1
@@ -11682,16 +11664,17 @@ estafallando.es, 1
 estafallando.mx, 1
 estaleiro.org, 1
 estan.cn, 1
 estateczech-eu.ru, 1
 estcequejailaflemme.fr, 1
 estcequonmetenprodaujourdhui.info, 1
 esteam.se, 1
 estedafah.com, 1
+estespr.com, 1
 esteticanorte.com.br, 1
 estetista.net, 1
 estilopack-loja.com.br, 1
 estoic.net, 1
 estoniantrade.ee, 1
 estonoentraenelexamen.com, 1
 estoqueinformatica.com.br, 1
 estrietoit.com, 0
@@ -12042,16 +12025,17 @@ extratorrent.world, 1
 extreme-gaming.de, 1
 extreme-gaming.us, 1
 extreme-players.com, 1
 extreme-players.de, 1
 extreme.co.th, 1
 extrememanual.net, 1
 exvs.org, 1
 exyplis.com, 1
+eyasc.nl, 1
 eydesignguidelines.com, 1
 eyecandy.gr, 1
 eyeglasses.com, 0
 eyelashconcept.com, 1
 eyeonid.com, 1
 eyep.me, 1
 eyes-berg.ch, 1
 eyes-berg.com, 1
@@ -12302,17 +12286,16 @@ fashionunited.se, 1
 fashionweekweb.com, 1
 faspirits.co.uk, 1
 faspirits.com, 1
 fassaden-selleng.de, 1
 fassadenverkleidung24.de, 1
 fassi-sport.it, 1
 fastaim.de, 1
 fastbackmbg.be, 1
-fastbackmbm.be, 1
 fastcash.com.br, 1
 fastcommerce.org, 1
 fastconfirm.com, 1
 fastforwardthemes.com, 1
 fastmail.com, 0
 fastonline.ro, 1
 fastpresence.com, 1
 fastrevision.com, 1
@@ -12779,16 +12762,17 @@ fleurenplume.fr, 1
 fleurette.me, 1
 flexapplications.se, 1
 flexdrukker.nl, 1
 fleximus.org, 0
 flexinvesting.fi, 1
 flexport.com, 1
 flexstart.me, 1
 flextrack.dk, 1
+flextribly.xyz, 1
 fliacuello.com.ar, 1
 flightdeckfriend.com, 1
 flightmedx.com, 1
 flightschoolbooking.com, 1
 flightschoolcandidates.gov, 1
 flightzero.cf, 1
 fliino.com, 1
 fliino.eu, 1
@@ -12838,17 +12822,16 @@ florisvdk.net, 1
 floriswesterman.nl, 1
 flosch.at, 0
 floseed.fr, 1
 floskelwolke.de, 1
 floth.at, 1
 flow.su, 1
 flowcom.de, 1
 flowcount.xyz, 1
-flowerandplant.org, 1
 flowersbylegacy.com, 1
 flowinvoice.com, 1
 flowreader.com, 1
 flox.io, 1
 floydm.com, 1
 flra.gov, 1
 flucky.xyz, 0
 flucto.com, 1
@@ -13038,18 +13021,16 @@ fortricks.in, 1
 fortuna-loessnitz.de, 1
 fortuna-s.com, 1
 fortworth.ch, 1
 forty-two.nl, 1
 forty8creates.com, 1
 fortytwo.cloud, 1
 forum-bonn.de, 1
 forum-heg.ch, 1
-forum-kinozal-tv.appspot.com, 1
-forum-kinozal.appspot.com, 1
 forum.linode.com, 0
 forum3.ru, 1
 forumvoordemocratie.nl, 1
 forvisualdesign.com, 1
 forward-fly-fishing.ch, 1
 foryouandyourcustomers.com, 1
 foryourhealthybody.com, 1
 foscamcanada.com, 1
@@ -13676,17 +13657,16 @@ gameofpwnz.com, 1
 gamepad.com.br, 1
 gamercredo.com, 1
 gamereader.de, 1
 gamerezo.com, 1
 gamerpoets.com, 1
 gamerz-stream.com, 1
 gamerzdot.com, 1
 games4theworld.org, 1
-gameserver-sponsor.me, 1
 gameshowchallenge.ie, 1
 gamesplanet.com, 1
 gamesputnik.ru, 1
 gamestats.gg, 1
 gameswitchers.uk, 1
 gametium.com, 1
 gametium.es, 1
 gamhealth.net, 1
@@ -14121,16 +14101,17 @@ giduv.com, 1
 giebel.it, 1
 giegler.software, 1
 gierds.de, 1
 giethoorn.com, 1
 giftedconsortium.com, 1
 giftking.nl, 0
 giftmaniabrilhos.com.br, 1
 gifts365.co.uk, 1
+giftservices.nl, 1
 giftsn.com.sg, 0
 gifzilla.net, 0
 gig-raiffeisen.de, 1
 gig.ru, 0
 giga.nl, 1
 gigabitz.pw, 1
 gigacog.com, 1
 gigantism.com, 1
@@ -14211,17 +14192,17 @@ gixtools.uk, 1
 gizmo.ovh, 1
 gj-bochum.de, 1
 gjcampbell.co.uk, 1
 gjengset.com, 1
 gjspunk.de, 0
 gjung.com, 0
 gkimanyar.org, 1
 gkralik.eu, 1
-gkvsc.de, 1
+gkvsc.de, 0
 gl.search.yahoo.com, 0
 glabiatoren-kst.de, 1
 glaciernursery.com, 1
 gladwellentertainments.co.uk, 1
 glahcks.com, 1
 glamguru.co.il, 1
 glamguru.world, 1
 glamour4you.de, 1
@@ -14319,17 +14300,16 @@ gmx.fr, 1
 gmx.net, 1
 gn00.com, 1
 gnax.jp, 1
 gnetion.com, 1
 gnetwork.eu, 1
 gnhub.org, 1
 gnilebein.de, 1
 gnom.me, 1
-gnosticjade.net, 1
 gnucashtoqif.us, 1
 gnunet.org, 1
 gnwp.eu, 1
 gnylf.com, 1
 go-embedded.de, 1
 go-zh.org, 1
 go.xero.com, 0
 goa8.xyz, 1
@@ -14662,17 +14642,16 @@ grepular.com, 1
 gresak.io, 1
 greuel.online, 1
 greve.xyz, 1
 grexx.co.uk, 1
 grexx.de, 1
 grey.house, 1
 greybit.net, 1
 greyhash.se, 1
-greysky.me, 1
 greyskymedia.com, 1
 greysolutions.it, 1
 greywizard.com, 1
 grh.am, 1
 griechische-pfoetchen.de, 1
 grieg-gaarden.no, 1
 grieg.com, 1
 grieg.net, 1
@@ -15022,17 +15001,16 @@ haleo.net, 1
 half-logic.eu.org, 1
 halfco.de, 1
 halfwaythere.eu, 1
 halitopuroprodutos.com.br, 1
 halkirkbouncycastles.co.uk, 1
 halkyon.net, 1
 hallelujahsoftware.com, 1
 halletienne.fr, 1
-hallettxn.com, 1
 hallhuber.com, 1
 halliday.work, 1
 halligladen.de, 1
 hallmarkestates.ca, 1
 hallucinogen.com, 1
 hallucinogens.org, 1
 halo.fr, 1
 halongbaybackpackertour.com, 1
@@ -15538,17 +15516,16 @@ hexobind.com, 1
 hexony.com, 1
 hexr.org, 1
 hexxagon.com, 1
 heycms.com, 0
 heyfringe.com, 1
 heyjournal.com, 1
 hf-tekst.nl, 1
 hf51.nl, 1
-hfbg.nl, 1
 hfi.me, 0
 hfu.io, 1
 hg.python.org, 1
 hg0088.vip, 1
 hg525.com, 1
 hg718.com, 1
 hg71801.com, 1
 hg71802.com, 1
@@ -15791,16 +15768,17 @@ hokioisecurity.com, 1
 holad.de, 1
 holboxwhalesharktours.com, 1
 holebedeljek.hu, 1
 holidayincotswolds.co.uk, 1
 holidaysportugal.eu, 1
 holisticacupuncture.com.au, 1
 holistichealer.in, 1
 holisticon.de, 1
+hollandguns.com, 1
 hollermann.eu, 1
 hollo.me, 1
 hollowpoint.xyz, 1
 hollowrap.com, 1
 hollyforrest.ca, 1
 hollyforrestphotography.ca, 1
 holmesian.org, 1
 holmq.dk, 1
@@ -15853,16 +15831,17 @@ homeserver-kp.de, 1
 homesfordinner.ca, 1
 homesteadfarm.org, 1
 homewatt.co.uk, 1
 homeyou.com, 1
 hommeatoutfaire.be, 1
 homoglyph.net, 1
 homophoni.com, 1
 hompus.nl, 0
+homyremedies.com, 1
 honda-centrum.cz, 1
 hondart.cz, 1
 hondenoppasfraneker.nl, 1
 honey.is, 1
 honeybadger.io, 0
 honeybeard.co.uk, 1
 honeycome.net, 1
 honeycreeper.com, 1
@@ -16197,16 +16176,17 @@ husic.net, 0
 husky.xyz, 1
 huskyinc.us, 1
 hussam.eu.org, 1
 hustle.com, 1
 hustle.life, 1
 hustlehope.com, 1
 hustunique.com, 1
 huto.ml, 1
+huutonauru.net, 1
 huwcbjones.co.uk, 1
 huwcbjones.uk, 1
 huwjones.me, 1
 huxley.net, 1
 huzurmetal.net, 1
 hvdbox.de, 1
 hverdagogkink.no, 1
 hvh.no, 1
@@ -16491,17 +16471,16 @@ ifsclist.com, 1
 ifsr.de, 1
 iftrue.de, 1
 ifxnet.com, 1
 ifyou.live, 1
 ig.com, 1
 iga-semi.jp, 1
 igamingforums.com, 1
 igcc.jp, 1
-igd.chat, 1
 igglabs.com, 1
 iggprivate.com, 1
 iggsoft.com, 1
 iggsoftware.com, 1
 igiftcards.de, 1
 igimusic.com, 1
 igk.nz, 1
 igm-be.ch, 1
@@ -16753,16 +16732,17 @@ index-games.com, 1
 index-mp3.com, 1
 indiaflowermall.com, 1
 indian-elephant.com, 1
 indianaantlersupply.com, 1
 indianaberry.com, 1
 indianaffairs.gov, 0
 indiawise.co.uk, 1
 indicateurs-flash.fr, 1
+indieethos.com, 1
 indiegame.space, 1
 indievelopment.nl, 1
 indigoinflatables.com, 1
 indigosakura.com, 1
 indiraactive.com, 1
 inditip.com, 1
 indogerman.de, 1
 indogermanstartup.com, 1
@@ -16799,17 +16779,16 @@ infinite.hosting, 1
 infinitegroup.info, 1
 infinitiofallentownparts.com, 1
 infinitiofaugustaparts.com, 1
 infinitioflynnwoodparts.com, 1
 infinitiofmarinparts.com, 1
 infinity.to, 1
 infinitybas.com, 1
 infinityengine.org, 1
-infinityepos.co.uk, 1
 infirmiere-canadienne.com, 1
 infirmieredevie.ch, 1
 inflatablehire-scotland.co.uk, 1
 inflatablesny.com, 1
 inflatadays.co.uk, 1
 inflatamania.com, 1
 inflexsys.com, 1
 influencerchampions.com, 1
@@ -17297,16 +17276,17 @@ isitnuclearwaryet.com, 1
 isitup.org, 1
 iskaron.de, 1
 iskkk.com, 1
 iskogen.nu, 1
 islam.si, 1
 islandhosting.com, 1
 islandinthenet.com, 1
 islandoilsupply.com, 1
+islandpumpandtank.com, 1
 islazia.fr, 1
 isletech.net, 1
 isliada.org, 1
 islief.com, 1
 ismat.com, 1
 ismena.bg, 1
 ismywebsitepenalized.com, 1
 isn.cz, 1
@@ -17551,16 +17531,17 @@ jabbari.io, 1
 jabbas.eu, 1
 jabber.at, 1
 jabberfr.org, 1
 jabberzac.org, 1
 jaberg-rutschi.ch, 1
 jabergrutschi.ch, 1
 jability.ovh, 1
 jabjab.de, 1
+jaccblog.com, 1
 jacekowski.org, 1
 jackdawphoto.co.uk, 1
 jackdelik.de, 1
 jackf.me, 1
 jackingramnissanparts.com, 1
 jackops.com, 1
 jackpothappy.com, 1
 jackrusselterrier.com.br, 1
@@ -18359,17 +18340,16 @@ juni.io, 1
 juniperroots.ca, 1
 juniwalk.cz, 1
 junkdrome.org, 1
 jurassicbarkharrogate.co.uk, 1
 jurassicgolf.nl, 1
 juridiqueo.com, 1
 juridoc.com.br, 1
 jurijbuga.de, 1
-jurisprudent.by, 1
 juristeo.com, 1
 jurko.cz, 1
 jurriaan.ninja, 1
 just-a-clanpage.de, 1
 just-pools.co.za, 1
 just2trade.com, 1
 justanothercompany.name, 1
 justbelieverecovery.com, 1
@@ -18771,16 +18751,17 @@ kenners.org, 1
 kennethaasan.no, 1
 kennethferguson.com, 1
 kennethlim.me, 1
 kenneths.org, 1
 kenny-peck.com, 1
 kennynet.co.uk, 1
 keno.im, 1
 kenokallinger.at, 1
+kenoschwalb.com, 1
 kenrogers.co, 0
 kens.pics, 1
 kensbouncycastles.co.uk, 1
 kentec.net, 1
 kenterlis.gr, 1
 kenvix.com, 0
 kenx5.eu.org, 1
 kenyons.info, 1
@@ -19412,17 +19393,17 @@ kromamoveis.com.br, 1
 kromonos.net, 1
 kronaw.it, 1
 krony.de, 1
 kroon.email, 1
 kropkait.pl, 1
 krouzkyliduska.cz, 1
 krsn.de, 1
 krugermillions.org, 1
-krugoval.hr, 1
+krugoval.hr, 0
 kruin.net, 1
 kruisselbrink.com, 1
 kruk.co, 1
 krumberconsulting.com, 1
 krupa.net.pl, 0
 krutka.cz, 1
 kruu.de, 1
 kruzhki-s-kartinkami.ru, 1
@@ -21119,17 +21100,16 @@ maartenterpstra.xyz, 1
 maartenvandekamp.nl, 1
 maaya.jp, 1
 maayogashram.com, 1
 mabankonline.com, 1
 mabulledu.net, 1
 mac-i-tea.ch, 1
 mac-world.pl, 1
 mac1.net, 1
-macandtonic.com, 1
 macaque.io, 0
 macaw.nl, 1
 macaws.org, 1
 maceinturecuir.com, 1
 maces-net.de, 1
 mach-politik.ch, 1
 macha.cloud, 1
 machbach.com, 1
@@ -21770,17 +21750,16 @@ matthieuschlosser.fr, 1
 matthijssen.info, 1
 mattia98.org, 1
 mattiascibien.net, 1
 mattisam.com, 1
 mattli.us, 1
 mattmccutchen.net, 1
 mattmcshane.com, 1
 mattonline.me, 1
-mattwb65.com, 1
 mattwservices.co.uk, 1
 matviet.vn, 1
 matze.co, 1
 matze.org, 0
 mauerwerkstag.info, 1
 mauldincookfence.com, 1
 mauran.me, 1
 maurice-walker.com, 1
@@ -21791,16 +21770,17 @@ maury-moteurs.com, 1
 mavenclinic.com, 1
 mavensecurity.com, 1
 maveris.com, 1
 mawidabp.com, 1
 mawidaca.com, 1
 max-moeglich.de, 1
 max-went.pl, 1
 max.gov, 1
+maxbeenen.de, 1
 maxbruckner.de, 1
 maxbruckner.org, 1
 maxbytes.nl, 0
 maxchan.info, 1
 maxdev72.freeboxos.fr, 1
 maxfox.me, 1
 maxhamon.ovh, 1
 maxhoechtl.at, 1
@@ -22011,16 +21991,17 @@ medicare-providers.net, 1
 medicarecoveragefinder.com, 1
 medicareinfo.org, 1
 medicinesfast.com, 0
 medicinia.com.br, 1
 medicinskavranje.edu.rs, 1
 medicocompetente.it, 1
 medicoresponde.com.br, 1
 medienweite.de, 1
+medifab.online, 1
 medifi.com, 1
 medigap-quote.net, 1
 medinside.ch, 1
 medinside.li, 1
 medinsider.ch, 1
 medinsider.li, 1
 medireport.fr, 1
 mediter-simplement.com, 1
@@ -22110,17 +22091,16 @@ meine-reise-gut-versichert.de, 1
 meinezwangsversteigerung.de, 1
 meinstartinsleben.com, 1
 meinstartinsleben.de, 1
 meinv.asia, 1
 meisterritter.de, 1
 meizufans.eu, 1
 meklon.net, 1
 mekongeye.com, 1
-melakaltenegger.at, 1
 melaniebernhardt.com, 1
 melaniegruber.de, 1
 melbourne.dating, 1
 melbourneapartments.website, 1
 melchizedek-forum.de, 1
 meldcode-assistent.nl, 1
 melearning.university, 0
 meledia.com, 0
@@ -22542,16 +22522,17 @@ minepay.net, 1
 minepic.org, 1
 minepod.fr, 1
 minerstat.com, 1
 minerva2015.it, 1
 minesouls.fr, 1
 minetude.com, 1
 minez-nightswatch.com, 0
 minf3-games.de, 1
+mingming.info, 1
 mingram.net, 1
 mingwah.ch, 1
 mingy.ddns.net, 1
 mingyueli.com, 1
 minhanossasenhora.com.br, 1
 mini2.fi, 1
 minigames.com, 1
 minigolf-reisinger.com, 1
@@ -22599,17 +22580,16 @@ mirch.com, 1
 mirco-grams.de, 1
 mireiaseuba.com, 1
 mireillewendling.com.br, 1
 mireservaonline.es, 1
 mirkofranz.de, 1
 mirodasilva.be, 1
 mironet.cz, 1
 mirrorsedgearchive.de, 1
-mirrorsedgearchive.ga, 1
 mirshak.com, 1
 mirtes.cz, 1
 mirtouf.fr, 1
 mirucon.com, 1
 misakiya.co.jp, 1
 misclick.nl, 1
 misconfigured.io, 1
 miscreant.me, 1
@@ -23143,16 +23123,17 @@ mrevolution.eu, 1
 mrhc.ru, 1
 mrinalpurohit.in, 1
 mrizzio.com, 1
 mrjooz.com, 1
 mrkapowski.com, 1
 mrketolocksmith.com, 1
 mrknee.gr, 1
 mrksk.com, 1
+mrleonardo.com, 1
 mrliu.me, 1
 mrmoregame.de, 1
 mrnh.de, 1
 mrnh.tk, 1
 mrpropop.com, 1
 mrs-labo.jp, 1
 mrserge.lv, 1
 mrsk.me, 1
@@ -23922,16 +23903,17 @@ ncaq.net, 1
 ncc-efm.com, 1
 ncc-efm.org, 1
 ncc-qualityandsafety.org, 1
 nccemail.net, 1
 ncconsumer.org, 1
 ncdesigns-studio.com, 1
 ncea.net.au, 1
 nchangfong.com, 1
+nchristo.com, 1
 nclvle.co.uk, 1
 ncrmnt.org, 1
 ncsccs.com, 1
 ncstep.org, 1
 ndarville.com, 1
 ndbt.com, 1
 ndcpolipak.com, 1
 ndeoffshore.com, 1
@@ -24116,16 +24098,17 @@ netlocal.ru, 1
 netmagicas.com.br, 1
 netmeister.org, 1
 netnik.de, 1
 netnodes.net, 1
 netraising.com, 1
 netrelay.email, 1
 netrider.net.au, 0
 netronix.be, 1
+netsafeid.biz, 1
 netscaler.expert, 1
 netsight.org, 1
 netsigna.de, 1
 netsite.dk, 1
 netsoins.org, 1
 netsparker.com, 1
 netsparker.com.tr, 1
 netspeedia.net, 1
@@ -24207,17 +24190,16 @@ newfacialbeautycream.com, 1
 newfiepedia.ca, 1
 newgrowbook.com, 1
 newguidance.ch, 1
 newind.info, 1
 newizv.ru, 1
 newjianzhi.com, 1
 newkaliningrad.ru, 1
 newknd.com, 1
-newline.online, 1
 newmarketbouncycastlehire.co.uk, 1
 newmed.com.br, 1
 newmediaone.net, 1
 newmovements.net, 1
 newodesign.com, 1
 newpathintegratedtherapy.com, 1
 news47ell.com, 1
 newsa2.com, 1
@@ -26141,16 +26123,17 @@ pelotonimports.com, 1
 pemagrid.org, 1
 penaugustin.com, 1
 pencepay.com, 1
 pendriveapps.com, 1
 penetrationstest.se, 1
 penfold.fr, 1
 pengi.me, 1
 pengisatelier.net, 1
+pengui.uk, 1
 penguinprotocols.com, 1
 pengumuman.id, 1
 penispumpen.se, 1
 pennergold.net, 1
 pennyapp.io, 1
 pennyparkerpaper.com, 1
 penrithapartments.com.au, 1
 pens.com, 1
@@ -26249,16 +26232,17 @@ peterbruceharvey.com, 1
 peterdavehello.org, 1
 peterfiorella.com, 1
 peterfolta.net, 1
 peterhuetz.at, 1
 peterhuetz.com, 1
 peterjohnson.io, 1
 peterlew.is, 1
 petersontoscano.com, 1
+pethelpers.org, 1
 petit-archer.com, 1
 petite-maison.ch, 1
 petitsfrenchies.com, 1
 petja.me, 0
 petko.me, 1
 petlife.od.ua, 1
 petlife.vet, 1
 petmall.bg, 1
@@ -26767,17 +26751,16 @@ pluginsloaded.com, 1
 plumber-in-sandton.co.za, 1
 plumbingbenoni.co.za, 1
 plumbingcentral.com.au, 1
 plumbingglenvista.co.za, 1
 plumlocosoft.com, 1
 plumnet.ch, 1
 plumpie.net, 0
 plur.com.au, 1
-plural.cafe, 1
 plus-5.com, 1
 plus.google.com, 1
 plus.sandbox.google.com, 1
 plus1s.tk, 1
 pluscbdoil.com, 1
 plushev.com, 1
 pluslink.co.jp, 1
 plussizereviews.com, 1
@@ -27001,33 +26984,31 @@ portal.tirol.gv.at, 1
 portalcarriers.com, 1
 portalcentric.net, 1
 portalhubnuti.cz, 1
 portalisapres.cl, 1
 portalkla.com.br, 1
 portalmundo.xyz, 1
 portalzine.de, 1
 porte.roma.it, 1
-portefeuillesignalen.nl, 1
 portercup.com, 1
 porterranchelectrical.com, 1
 portofacil.com, 1
 portofala.pt, 1
 portofrotterdam.com, 0
 portosonline.pl, 1
 portraitsystem.biz, 1
 portsdebalears.gob.es, 1
 portsmouthbouncycastles.co.uk, 1
 portsmoutheic.com, 1
 portugalsko.net, 1
 portvaletickets.com, 1
 porybox.com, 1
 porzgmbh.de, 1
 posaunenchor-senden.de, 1
-posbank.co.uk, 1
 poseidonwaterproofing.com, 1
 poshcastles.co.uk, 1
 poshlashes.se, 1
 poshsecurity.com, 1
 posijson.stream, 1
 positionus.io, 1
 positive.com.cy, 1
 positivenames.net, 1
@@ -27076,16 +27057,17 @@ potrillionaires.com, 1
 potterscraftcider.com, 1
 pottersheartministry.org, 1
 pottshome.co.uk, 1
 potworowski.de, 1
 pouet.it, 1
 pouets.ovh, 1
 poupatempo.org, 1
 pourlesenfants.info, 1
+pourout.org, 1
 povareschka.ru, 1
 povesham.tk, 1
 powaclub.com, 1
 powdersnow.top, 1
 power-coonies.de, 1
 power-fit.org, 1
 power-flowengineer.com, 1
 power-meter.cc, 1
@@ -27795,16 +27777,17 @@ quantum-mechanics.com, 1
 quantum2.xyz, 1
 quantumfurball.net, 1
 quantumpair.net, 1
 quantumwebs.co, 1
 quanwuji.com, 1
 quanyin.eu.org, 1
 quareal.ru, 1
 quarkdose.de, 1
+quarryhillrentals.com, 1
 quarterfull.com, 1
 quartix.com, 1
 quartzclinical.com, 1
 quasarelectronics.co.uk, 1
 quasseldroid.info, 1
 quatrefoiscent.fr, 1
 quay.net, 1
 qubes-os.org, 1
@@ -28209,17 +28192,17 @@ recapp.ch, 1
 receitas-de-bolos.pt, 1
 receitasdebacalhau.pt, 1
 receptionsbook.com, 1
 recepty.eu, 0
 recetasfacilesdehacer.com, 1
 rechenknaecht.de, 1
 rechenwerk.net, 1
 recht-freundlich.de, 1
-rechtenliteratuurleiden.nl, 1
+rechtenliteratuurleiden.nl, 0
 rechtsanwaeltin-vollmer.de, 1
 rechtsanwalt-koeppen-feucht.de, 1
 rechtschreibpruefung24.de, 1
 recipex.ru, 1
 recipeyak.com, 1
 reckontalk.com, 1
 reclamebureau-ultrax.nl, 1
 reclametoolz.nl, 1
@@ -28289,16 +28272,17 @@ redit.com, 1
 redivis.com, 1
 redizoo.com, 1
 redletter.link, 1
 redlink.de, 1
 redneck-gaming.de, 1
 redneragenturen.org, 1
 rednoseday.com, 1
 rednsx.org, 1
+redperegrine.com, 1
 redporno.cz, 1
 redprice.by, 1
 redshield.co, 1
 redshiftcybersecurity.co.za, 1
 redshiftlabs.com.au, 1
 redshoeswalking.net, 1
 redsicom.com, 1
 redstickfestival.org, 1
@@ -28464,16 +28448,17 @@ rens.nu, 1
 rent-a-c.io, 1
 rent-a-coder.de, 1
 rentacaramerica.com, 1
 rentasweb.gob.ar, 1
 rentbrowser.com, 1
 rentinsingapore.com.sg, 1
 rentourhomeinprovence.com, 1
 renuo.ch, 1
+renyiyou.com, 1
 reorz.com, 1
 reox.at, 0
 repaik.com, 1
 repair.by, 1
 repaper.org, 1
 repaxan.com, 1
 replaceits.me, 1
 replicagunsswords.com, 0
@@ -28797,30 +28782,29 @@ ro.search.yahoo.com, 0
 roaddoc.de, 1
 roadguard.nl, 1
 roadtopgm.com, 1
 roams.es, 1
 roave.com, 1
 rob.uk.com, 1
 rob006.net, 1
 robandjanine.com, 1
-robbertt.com, 1
+robbertt.com, 0
 robdavidson.network, 1
 robert-flynn.de, 1
 robertabittle.com, 1
 robertattfield.com, 1
 robertg.me, 1
 robertglastra.com, 1
 roberthurlbut.com, 1
 robertkrueger.de, 1
 robertlysik.com, 1
 robertnemec.com, 1
 roberto-webhosting.nl, 1
 robertocasares.no-ip.biz, 1
-robertoentringer.com, 1
 robertof.ovh, 1
 robertreiser.photography, 1
 robertrijnders.nl, 1
 robertsmits.be, 1
 robhorstmanshof.nl, 1
 robi-net.it, 1
 robicue.com, 1
 robin-novotny.com, 1
@@ -28868,17 +28852,16 @@ rockinronniescastles.co.uk, 1
 rockitinflatables.co.uk, 1
 rockpesado.com.br, 1
 rockthebabybump.com, 1
 rockuse.com.br, 1
 rockymountainspice.com, 1
 rocssti.net, 1
 rodafe.sk, 1
 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
 rodolfo.gs, 1
@@ -28917,16 +28900,17 @@ roguefortgame.com, 1
 roguesignal.net, 1
 roguetechhub.org, 1
 rohanbassett.com, 1
 rohedaten.de, 1
 rohitagr.com, 1
 rointe.online, 1
 roiscroll.com, 1
 roka9.de, 1
+roketix.co.uk, 1
 rokki.ch, 1
 rokort.dk, 1
 roksolana.be, 1
 rokudenashi.de, 1
 roland.io, 1
 rolandinsh.com, 1
 rolandreed.cn, 1
 rolandszabo.com, 1
@@ -29016,17 +29000,16 @@ roseofyorkbooking.com, 1
 roseparkhouse.com, 1
 rosesciences.com, 1
 rosetiger.life, 1
 rosevillefacialplasticsurgery.com, 1
 rosewoodranch.com, 1
 rosi-royal.com, 1
 roslynpad.net, 1
 rospa100.com, 1
-rossclark.com, 1
 rosset.me, 1
 rosset.net, 1
 rosslug.org.uk, 1
 rostov-avia.ru, 1
 rot47.net, 1
 rotek.at, 1
 roten.email, 1
 rothkranz.net, 1
@@ -29402,17 +29385,16 @@ salishseawhalewatching.ca, 1
 salixcode.com, 1
 salland1.nl, 1
 salle-quali.fr, 1
 sallydowns.name, 1
 sallysubs.com, 1
 salmo23.com.br, 1
 salmododia.net, 1
 salmonella.co.uk, 1
-salmonrecovery.gov, 1
 salmonvision.com.tw, 0
 salmos91.com, 1
 salmotierra-salvatierra.com, 1
 salon-claudia.ch, 1
 salon-minipli.de, 1
 salon.io, 0
 salon1.ee, 1
 salonestella.it, 1
@@ -29539,16 +29521,17 @@ saorsat.com, 1
 saorsat.ie, 1
 saorview.com, 1
 saorviewconnect.ie, 1
 saorviewconnected.ie, 1
 sapac.es, 1
 sapereaude.com.pl, 1
 sapien-ci.com, 1
 sapience.com, 1
+sapk.fr, 1
 saposute-s.jp, 1
 sapphireblue.me, 1
 sapphirepearl.com.sg, 1
 sapporobeer.com, 1
 sapprendre.ch, 1
 saprima.de, 1
 sapuncheta.com, 1
 saq.com, 1
@@ -30120,16 +30103,17 @@ sekisonn.com, 1
 selbys.net.au, 1
 selco-himejiminami.com, 1
 selcusters.nl, 1
 selected-properties.com, 1
 selectel.ru, 1
 selectorders.com, 1
 selegiline.com, 1
 selent.me, 1
+seleondar.ru, 1
 self-evident.org, 1
 self-signed.com, 1
 self-xss.info, 1
 self.nu, 1
 selfassess.govt.nz, 1
 selfdestruct.net, 1
 selfhosters.com, 1
 selfici.com, 1
@@ -30199,16 +30183,17 @@ seo.london, 1
 seo.tl, 1
 seoagentur2go.de, 1
 seoarchive.org, 1
 seobutler.com, 1
 seocomposer.com, 1
 seoexperte.berlin, 1
 seogeek.nl, 1
 seohochschule.de, 1
+seoinc.com, 1
 seoium.com, 1
 seokay.com, 1
 seolib.org, 1
 seomarketingdeals.com, 1
 seomen.biz, 1
 seon.me, 1
 seoprovider.nl, 1
 seoquake.com, 1
@@ -30320,17 +30305,16 @@ sevenicealimentos.com.br, 1
 sevenmatches.com, 1
 severine-trousselard.com, 1
 severntrentinsuranceportal.com, 1
 sevinci.ch, 1
 sevsey.ru, 1
 sevsopr.ru, 1
 sewafineseam.com, 1
 sewinginsight.com, 1
-sewoo.co.uk, 1
 sex-education.com, 1
 sexaki.com, 1
 sexdocka.nu, 1
 sexgarage.de, 1
 sexmobil.de, 1
 sexocomgravidas.com, 1
 sexpay.net, 1
 sexplicit.co.uk, 1
@@ -30427,16 +30411,17 @@ shansing.cn, 1
 shansing.com, 1
 shansing.net, 1
 shansing.space, 1
 shanxiapark.com, 1
 shaobin.wang, 1
 sharanyamunsi.net, 1
 sharealo.org, 1
 sharedhost.de, 1
+shareeri.com, 1
 sharelovenotsecrets.com, 1
 sharemessage.net, 1
 shareoffice.ch, 1
 sharepointdrive.com, 1
 sharescope.co.uk, 0
 shareselecttools.com, 1
 sharevari.com, 1
 shareworx.net, 1
@@ -30457,16 +30442,17 @@ shaunandamyswedding.com, 1
 shaunc.com, 1
 shaundanielz.com, 1
 shaunharker.com, 1
 shav.it, 1
 shavegazette.com, 1
 shavingks.com, 1
 shawcentral.ca, 0
 shawnhogan.com, 1
+shawnstarrcustomhomes.com, 1
 shawnwilkerson.com, 1
 shawnwilson.info, 1
 shazbots.org, 1
 shazzlemd.com, 1
 shazzlepro.com, 1
 sheaf.site, 1
 shearcomfort.com, 1
 sheehyinfinitioftysonsparts.com, 1
@@ -30785,16 +30771,17 @@ silvergoldbull.tt, 1
 silvergoldbull.tw, 1
 silvergoldbull.uy, 1
 silvergoldbull.uz, 1
 silvergoldbull.ws, 1
 silverlinkz.net, 1
 silverseen.com, 1
 silverstartup.sk, 1
 silverwind.io, 1
+silviamacallister.com, 1
 silvine.xyz, 1
 silvistefi.com, 1
 silvobeat.blog, 1
 silvobeat.com, 1
 sim-karten.net, 1
 sim-minaoshi.jp, 1
 sim-sim.appspot.com, 1
 sim4seed.org, 1
@@ -31117,16 +31104,17 @@ sloancom.com, 1
 slonep.net, 1
 slopeedge.com, 1
 slotboss.co.uk, 1
 slotcar.com, 0
 slotfara.com, 1
 slotfara.net, 1
 sloths.org, 1
 slotlist.info, 1
+slovakiana.sk, 1
 slovenskycestovatel.sk, 1
 slow.zone, 1
 slowb.ro, 1
 slowfood.es, 1
 slowgames.xyz, 1
 slpower.com, 1
 slrd-isperih.com, 1
 slse.ca, 1
@@ -31149,17 +31137,16 @@ smalle-voet.de, 1
 smallhadroncollider.com, 1
 smallpath.me, 1
 smallplanet.ch, 1
 smalltalkconsulting.com, 1
 smaltimento-rifiuti.org, 1
 smaltimento.caserta.it, 1
 smaltimento.napoli.it, 1
 smaltimentoamianto.latina.it, 1
-smaltimentorifiuti.veneto.it, 1
 smares.de, 1
 smart-cp.jp, 1
 smart-informatics.com, 1
 smart-shapes.co.uk, 1
 smart-wohnen.net, 1
 smart.gov, 1
 smartairkey.com, 1
 smartandcom.ch, 1
@@ -31242,16 +31229,17 @@ smskeywords.co.uk, 1
 smskmail.com, 1
 smsprivacy.org, 1
 smuhelper.cn, 1
 smuncensored.com, 1
 smutba.se, 1
 smutek.net, 1
 smx.net.br, 1
 snackbesteld.nl, 1
+snafarms.com, 1
 snafu.cz, 1
 snakafya.com, 1
 snake.dog, 1
 snap.com, 1
 snapappointments.com, 1
 snapappts.com, 1
 snapchat.com, 1
 snapfinance.com, 1
@@ -31551,17 +31539,16 @@ soundhunter.xyz, 0
 soundsecurity.io, 1
 souqtajmeel.com, 1
 sour.is, 1
 souravsaha.com, 1
 sourcebox.be, 1
 sourcecode.love, 1
 sourcely.net, 1
 sourceway.de, 1
-sourcitec.com, 1
 souris.ch, 1
 sous-surveillance.net, 1
 southafrican.dating, 1
 southambouncycastle.co.uk, 1
 southamerican.dating, 1
 southbankregister.com.au, 1
 southcoastkitesurf.co.uk, 1
 southernmost.us, 1
@@ -31725,17 +31712,16 @@ spookbook.net, 1
 spookquest.com, 1
 spookyinternet.com, 1
 spoopy.link, 1
 sporcard.com, 1
 spornkuller.de, 1
 sport-in-sundern.de, 1
 sport-potreby.cz, 1
 sport-potreby.sk, 1
-sport-socken.net, 1
 sport247.bet, 1
 sporter.com, 1
 sportflash.info, 1
 sportnesia.com, 1
 sportovnidum.cz, 1
 sportparks.com, 1
 sportparks.org, 1
 sportressofblogitude.com, 1
@@ -32122,17 +32108,16 @@ stevenbolgartersnakes.com, 1
 stevengoodpaster.com, 1
 stevenhumphrey.uk, 1
 stevenkwan.me, 1
 stevens.se, 1
 stevenski.com, 0
 steventress.com, 1
 steventruesdell.com, 1
 stevenwooding.com, 1
-stevenz.science, 1
 stevesdrivingschooltyneside.com, 1
 stewartswines.com, 1
 stewonet.nl, 1
 steyaert.be, 0
 stforex.com, 1
 stfw.info, 1
 stichtingliab.nl, 1
 stichtingscholierenvervoerzeeland.nl, 1
@@ -32185,27 +32170,27 @@ stocktrader.com, 1
 stodieck.com, 1
 stoebermehl.at, 1
 stoffelen.nl, 1
 stoffelnet.de, 1
 stoianlawfirm.com, 1
 stolina.de, 0
 stolkpotplanten.nl, 1
 stolkschepen.nl, 1
+stomadental.com, 1
 stomt.com, 1
 stonedworms.de, 1
 stonefusion.org.uk, 1
 stonehammerhead.org, 1
 stonemain.eu, 1
 stonemanbrasil.com.br, 1
 stonewuu.com, 1
 stony.com, 1
 stonystratford.org, 1
 stopakwardhandshakes.org, 1
-stopbreakupnow.org, 1
 stopbullying.gov, 1
 stopfraud.gov, 1
 stopthethyroidmadness.com, 1
 stordbatlag.no, 1
 store10.de, 0
 storedsafe.com, 1
 storgom.ua, 0
 storillo.com, 1
@@ -32450,17 +32435,16 @@ sun-wellness-online.com.vn, 1
 sunboxstore.jp, 1
 sunbritetv.com, 1
 sunchasercats.com, 1
 sundanceusa.com, 1
 sundayfundayjapan.com, 1
 suneilpatel.com, 1
 sunfeathers.net, 1
 sunfireshop.com.br, 1
-sunflyer.cn, 0
 sunfox.cz, 1
 sunfulong.blog, 1
 sunfulong.me, 1
 sunjaydhama.com, 1
 sunn.ie, 1
 sunsetwx.com, 1
 sunshinesf.org, 1
 sunsmartresorts.com, 1
@@ -32957,17 +32941,16 @@ tatildukkani.com, 1
 tatiloley.com, 1
 tatort-fanpage.de, 1
 tatsidou.gr, 1
 tattoo.dating, 1
 taunhanh.us, 1
 tavolaquadrada.com.br, 1
 tavsys.net, 1
 taxaroo.com, 1
-taxi-24std.de, 1
 taxi-chamonix.fr, 1
 taxi-collectif.ch, 1
 taxi-puck.pl, 1
 taxicollectif.ch, 1
 taxiindenbosch.nl, 1
 taxis-collectifs.ch, 1
 taxisafmatosinhos.pt, 1
 taxiscollectifs.ch, 1
@@ -33071,16 +33054,17 @@ tecart-system.de, 1
 tecartcrm.de, 1
 tech-blogger.net, 1
 tech-clips.com, 1
 tech-director.ru, 1
 tech-essential.com, 1
 tech-rat.com, 1
 tech-seminar.jp, 1
 tech-value.eu, 1
+tech-zealots.com, 1
 techace.jp, 1
 techademy.nl, 1
 techarea.fr, 1
 techask.it, 1
 techbelife.com, 1
 techbrown.com, 1
 techcentric.com, 0
 techcracky.com, 1
@@ -33156,16 +33140,17 @@ tee-idf.net, 1
 teebeedee.org, 1
 teedb.de, 1
 teehaus-shila.de, 1
 teemo.gg, 1
 teemperor.de, 1
 teemulintula.fi, 1
 teencounseling.com, 1
 teenerotic.net, 1
+teeplelaw.com, 1
 teesypeesy.com, 1
 teeworlds-friends.de, 1
 tefek.cz, 1
 tege-elektronik.hu, 1
 tehcrayz.com, 1
 tehplace.club, 1
 tehrabbitt.com, 0
 tehranperfume.com, 1
@@ -33424,16 +33409,17 @@ thebikeinsurer.co.uk, 1
 thebimhub.com, 1
 thebit.link, 1
 theblackknightsings.com, 1
 theblondeabroad.com, 1
 thebodyprinciple.com, 1
 thebouncedepartment.co.uk, 1
 thebouncyman.co.uk, 1
 theboxofcarlos.com, 1
+thebreakhotel.com, 1
 thebreakroom.org, 1
 thebte.com, 1
 thebuffalotavern.com, 1
 thecandidforum.com, 1
 thecarolingconnection.com, 1
 thecellulitediet.com, 1
 thecherryship.ch, 1
 thechunk.net, 1
@@ -33569,16 +33555,17 @@ thenexwork.com, 1
 thenib.com, 1
 thenichecast.com, 1
 thenocman.com, 1
 thenrdhrd.nl, 1
 theobromos.fr, 1
 theocharis.org, 1
 theodorahome.co, 1
 theodorahome.com.br, 1
+theofleck.com, 1
 theojones.name, 1
 theokonst.tk, 1
 theokouzelis.com, 1
 theoldbrewhouse.info, 1
 theoriginalbit.com, 1
 theory-test-online.co.uk, 1
 theory.org, 1
 theoscure.eu, 1
@@ -34095,16 +34082,17 @@ todacarreira.com, 1
 todaciencia.com, 1
 todamateria.com.br, 1
 todapolitica.com, 1
 todaymeow.com, 1
 todocracy.com, 1
 todoescine.com, 1
 todoist.com, 1
 todon.fr, 1
+todoscomciro.com, 1
 todosrv.com, 1
 toeglhofer.at, 1
 toeightycountries.com, 1
 toekomstperspectief.be, 1
 toerclub-ing-arnhem.nl, 1
 toetsplatform.be, 1
 tofa-koeln.de, 1
 tofe.io, 1
@@ -34285,17 +34273,16 @@ toponlinecasinosites.co.uk, 1
 topprice.ua, 1
 topshelfcommercial.com, 1
 topspeedgolf.com, 0
 toptec.net.br, 1
 toptexture.com, 1
 toptheto.com, 1
 topvertimai.lt, 1
 topwin.la, 1
-topwindowcleaners.co.uk, 1
 topworktops.co.uk, 1
 tor2web.org, 1
 toracon.org, 1
 torbay.ga, 1
 torbe.es, 1
 torchantifa.org, 1
 toretame.jp, 1
 toretfaction.net, 1
@@ -34346,17 +34333,16 @@ totch.de, 1
 totem-international.com, 1
 totobetty.com, 1
 totodil.es, 1
 totolabs.com, 1
 touch-up-net.com, 1
 touch.facebook.com, 0
 touch.mail.ru, 1
 touchoflife.in, 1
-touchscreentills.com, 1
 touchweb.fr, 1
 touchwoodtrees.com.au, 1
 tougetu.com, 1
 touha.me, 0
 touhou.ac.cn, 1
 touhou.cc, 1
 touhou.fm, 1
 touhouwiki.net, 1
@@ -34944,17 +34930,16 @@ tyroremotes.es, 1
 tyroremotes.eu, 1
 tyroremotes.fr, 1
 tyroremotes.nl, 1
 tysox.de, 1
 tysye.ca, 1
 tyuo-keibi.co.jp, 1
 tzifas.com, 1
 tzwe.com, 1
-u-master.net, 1
 u-metals.com, 1
 u-tokyo.club, 1
 u.nu, 1
 u03.fr, 1
 u1100.com, 1
 u1144.com, 1
 u175.com, 1
 u2fanlife.com, 1
@@ -34987,16 +34972,17 @@ ubis.company, 1
 ubis.group, 1
 ublaboo.org, 1
 uborcare.com, 1
 ubtce.com, 1
 uc.ac.id, 1
 ucac.nz, 0
 ucangiller.com, 1
 ucch.be, 1
+ucfirst.nl, 1
 uchargeapp.com, 1
 uclanmasterplan.co.uk, 1
 uclip.club, 1
 ucppe.org, 0
 ucrdatatool.gov, 1
 uctarna.online, 1
 udbhav.me, 1
 uddi.ng, 1
@@ -35280,17 +35266,16 @@ urban.melbourne, 1
 urbanesecurity.com, 1
 urbanfi.sh, 1
 urbanguerillas.de, 1
 urbanietz-immobilien.de, 1
 urbanmelbourne.info, 1
 urbanmic.com, 1
 urbannewsservice.com, 1
 urbansparrow.in, 1
-urbanstylestaging.com, 1
 urbanwildlifealliance.org, 0
 urbexdk.nl, 1
 urcentral.com, 1
 urcentral.net, 1
 urcentral.org, 1
 ureka.org, 1
 urgences-valais.ch, 1
 uripura.de, 1
@@ -35949,16 +35934,17 @@ vitrado.de, 1
 vitsoft.by, 1
 vivaldi-fr.com, 1
 vivaldi.club, 1
 vivaldi.com, 1
 vivamusic.es, 1
 vivanosports.com.br, 1
 vivatv.com.tw, 1
 vivendi.de, 1
+vivianmaier.cn, 1
 vivid-academy.com, 1
 vividinflatables.co.uk, 1
 vividlumen.com, 1
 viviennevandenbos.nl, 1
 vivirenelmundo.com, 1
 vivo.sx, 1
 vivoseg.com, 1
 vizards.cc, 1
@@ -36785,17 +36771,16 @@ whisky-circle.info, 1
 whiskyglazen.nl, 1
 whiskynerd.ca, 1
 whisp.ly, 0
 whispeer.de, 1
 whisperinghoperanch.org, 1
 whisperlab.org, 1
 whistleb.com, 1
 whistleblower.gov, 1
-whistler-transfers.com, 1
 whitby-brewery.com, 1
 whitealps.at, 1
 whitealps.be, 1
 whitealps.ch, 1
 whitealps.de, 1
 whitealps.fr, 1
 whitealps.net, 1
 whitebear.cloud, 1
@@ -37165,17 +37150,16 @@ workray.com, 1
 works-ginan.jp, 1
 workshopszwolle.nl, 1
 workshopzwolle.com, 1
 worksofwyoming.org, 1
 workwithgo.com, 1
 world-education-association.org, 1
 world-in-my-eyes.com, 1
 worldcareers.dk, 1
-worldchess.london, 1
 worldcigars.com.br, 1
 worldcrafts.org, 1
 worldcubeassociation.org, 1
 worldessays.com, 1
 worldeventscalendars.com, 1
 worldfree4.org, 1
 worldnettps.com, 1
 worldofbelia.de, 1
@@ -37545,17 +37529,16 @@ xilkoi.net, 1
 ximbo.net, 1
 xin-in.com, 1
 xin-in.net, 1
 xing-in.net, 1
 xing.ml, 1
 xingiahanvisa.net, 1
 xiqi.us, 1
 xirion.net, 1
-xiyu.it, 0
 xiyu.moe, 1
 xj8876.com, 1
 xjd.vision, 1
 xjjeeps.com, 1
 xjoi.net, 1
 xjoin.de, 1
 xjpvictor.info, 1
 xkblog.xyz, 1
@@ -37871,16 +37854,17 @@ yawnbox.com, 1
 yaxim.org, 1
 yazaral.com, 1
 ybin.me, 1
 ybresson.com, 1
 ybscareers.co.uk, 1
 ybsul.com, 1
 ybti.net, 1
 ybzhao.com, 1
+ycaaz.com, 1
 ych.art, 1
 ycherbonnel.fr, 1
 ychon.com, 1
 ychong.com, 1
 yclan.net, 1
 yd.io, 1
 yeapdata.com, 1
 yeesker.com, 1
@@ -38169,17 +38153,17 @@ yukonconnector.com, 1
 yukonlip.com, 1
 yukontec.com, 1
 yum.beer, 1
 yum0.cn, 1
 yumeconcert.com, 1
 yumli.net, 1
 yummylooks.com, 1
 yuna.love, 1
-yuna.tg, 1
+yuna.tg, 0
 yunity.org, 1
 yunjishou.pro, 1
 yunzhu.li, 1
 yuqi.me, 1
 yuricarlenzoli.it, 1
 yurikirin.me, 1
 yurimoens.be, 1
 yurinet.org, 1
@@ -38265,16 +38249,17 @@ zapatoshechoamano.pe, 1
 zapier.com, 1
 zappbuildapps.com, 0
 zarabiaj.com, 1
 zaratan.fr, 1
 zargaripour.com, 1
 zargescases.co.uk, 1
 zarmarket.org, 1
 zarpo.com.br, 1
+zary.me, 1
 zatsepin.by, 1
 zaufanatrzeciastrona.pl, 1
 zavec.com.ec, 1
 zavetaji.lv, 1
 zawo-electric.de, 1
 zbchen.com, 1
 zberger.com, 1
 zbetcheck.in, 1
@@ -38369,16 +38354,17 @@ zgan.ga, 1
 zgrep.org, 1
 zh.search.yahoo.com, 0
 zhang-hao.com, 1
 zhang.nz, 1
 zhangfangzhou.com, 1
 zhangge.net, 1
 zhanghao.me, 1
 zhangheda.cf, 1
+zhangsidan.com, 0
 zhangsir.net, 1
 zhangyuhao.com, 1
 zhaochen.xyz, 1
 zhaofeng.li, 1
 zhaoxixiangban.cc, 1
 zhcexo.com, 1
 zhen-chen.com, 1
 zhengjie.com, 1
--- a/security/sandbox/win/SandboxInitialization.cpp
+++ b/security/sandbox/win/SandboxInitialization.cpp
@@ -2,35 +2,127 @@
 /* vim: set ts=2 et sw=2 tw=80: */
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "SandboxInitialization.h"
 
 #include "base/memory/ref_counted.h"
+#include "nsWindowsDllInterceptor.h"
 #include "sandbox/win/src/sandbox_factory.h"
 #include "mozilla/sandboxing/permissionsService.h"
 
 namespace mozilla {
 namespace sandboxing {
 
+typedef BOOL(WINAPI* CloseHandle_func) (HANDLE hObject);
+static CloseHandle_func stub_CloseHandle = nullptr;
+
+typedef BOOL(WINAPI* DuplicateHandle_func)(HANDLE hSourceProcessHandle,
+                                           HANDLE hSourceHandle,
+                                           HANDLE hTargetProcessHandle,
+                                           LPHANDLE lpTargetHandle,
+                                           DWORD dwDesiredAccess,
+                                           BOOL bInheritHandle,
+                                           DWORD dwOptions);
+static DuplicateHandle_func stub_DuplicateHandle = nullptr;
+
+static BOOL WINAPI
+patched_CloseHandle(HANDLE hObject)
+{
+  // Check all handles being closed against the sandbox's tracked handles.
+  base::win::OnHandleBeingClosed(hObject);
+  return stub_CloseHandle(hObject);
+}
+
+static BOOL WINAPI
+patched_DuplicateHandle(HANDLE hSourceProcessHandle,
+                        HANDLE hSourceHandle,
+                        HANDLE hTargetProcessHandle,
+                        LPHANDLE lpTargetHandle,
+                        DWORD dwDesiredAccess,
+                        BOOL bInheritHandle,
+                        DWORD dwOptions)
+{
+  // If closing a source handle from our process check it against the sandbox's
+  // tracked handles.
+  if ((dwOptions & DUPLICATE_CLOSE_SOURCE) &&
+    (GetProcessId(hSourceProcessHandle) == ::GetCurrentProcessId())) {
+    base::win::OnHandleBeingClosed(hSourceHandle);
+  }
+
+  return stub_DuplicateHandle(hSourceProcessHandle, hSourceHandle,
+                              hTargetProcessHandle, lpTargetHandle,
+                              dwDesiredAccess, bInheritHandle, dwOptions);
+}
+
+static WindowsDllInterceptor Kernel32Intercept;
+
+static bool
+EnableHandleCloseMonitoring()
+{
+  Kernel32Intercept.Init("kernel32.dll");
+  bool hooked =
+    Kernel32Intercept.AddHook("CloseHandle",
+                              reinterpret_cast<intptr_t>(patched_CloseHandle),
+                              (void**)&stub_CloseHandle);
+  if (!hooked) {
+    return false;
+  }
+
+  hooked =
+    Kernel32Intercept.AddHook("DuplicateHandle",
+                              reinterpret_cast<intptr_t>(patched_DuplicateHandle),
+                              (void**)&stub_DuplicateHandle);
+  if (!hooked) {
+    return false;
+  }
+
+  return true;
+}
+
+static bool
+ShouldDisableHandleVerifier()
+{
+#if defined(_X86_) && (defined(NIGHTLY_BUILD) || defined(DEBUG))
+  // Chromium only has the verifier enabled for 32-bit and our close monitoring
+  // hooks cause debug assertions for 64-bit anyway.
+  // For x86 keep the verifier enabled by default only for Nightly or debug.
+  return false;
+#else
+  return !getenv("MOZ_ENABLE_HANDLE_VERIFIER");
+#endif
+}
+
+static void
+InitializeHandleVerifier()
+{
+  // Disable the handle verifier if we don't want it or can't enable the close
+  // monitoring hooks.
+  if (ShouldDisableHandleVerifier() || !EnableHandleCloseMonitoring()) {
+    base::win::DisableHandleVerifier();
+  }
+}
+
 static sandbox::TargetServices*
 InitializeTargetServices()
 {
   sandbox::TargetServices* targetServices =
     sandbox::SandboxFactory::GetTargetServices();
   if (!targetServices) {
     return nullptr;
   }
 
   if (targetServices->Init() != sandbox::SBOX_ALL_OK) {
     return nullptr;
   }
 
+  InitializeHandleVerifier();
+
   return targetServices;
 }
 
 sandbox::TargetServices*
 GetInitializedTargetServices()
 {
   static sandbox::TargetServices* sInitializedTargetServices =
     InitializeTargetServices();
@@ -61,16 +153,18 @@ InitializeBrokerServices()
   // Precreate the desktop and window station used by the renderers.
   // IMPORTANT: This piece of code needs to run as early as possible in the
   // process because it will initialize the sandbox broker, which requires
   // the process to swap its window station. During this time all the UI
   // will be broken. This has to run before threads and windows are created.
   scoped_refptr<sandbox::TargetPolicy> policy = brokerServices->CreatePolicy();
   sandbox::ResultCode result = policy->CreateAlternateDesktop(true);
 
+  InitializeHandleVerifier();
+
   return brokerServices;
 }
 
 sandbox::BrokerServices*
 GetInitializedBrokerServices()
 {
   static sandbox::BrokerServices* sInitializedBrokerServices =
     InitializeBrokerServices();
--- a/toolkit/xre/test/win/TestDllInterceptor.cpp
+++ b/toolkit/xre/test/win/TestDllInterceptor.cpp
@@ -431,16 +431,30 @@ bool TestTlsAlloc(void* aFunc)
 
 bool TestTlsFree(void* aFunc)
 {
   auto patchedTlsFree =
     reinterpret_cast<decltype(&TlsFree)>(aFunc);
   return sTlsIndex != 0 && patchedTlsFree(sTlsIndex);
 }
 
+bool TestCloseHandle(void* aFunc)
+{
+  auto patchedCloseHandle =
+    reinterpret_cast<decltype(&CloseHandle)>(aFunc);
+  return patchedCloseHandle(0) == FALSE;
+}
+
+bool TestDuplicateHandle(void* aFunc)
+{
+  auto patchedDuplicateHandle =
+    reinterpret_cast<decltype(&DuplicateHandle)>(aFunc);
+  return patchedDuplicateHandle(0, 0, 0, 0, 0, 0, 0) == FALSE;
+}
+
 bool TestPrintDlgW(void* aFunc)
 {
   auto patchedPrintDlgW =
     reinterpret_cast<decltype(&PrintDlgW)>(aFunc);
   patchedPrintDlgW(0);
   return true;
 }
 
@@ -689,16 +703,18 @@ int main()
 #endif
       MaybeTestHook(ShouldTestTipTsf(), TestProcessCaretEvents, "tiptsf.dll", "ProcessCaretEvents") &&
 #ifdef _M_IX86
       TestHook(TestSendMessageTimeoutW, "user32.dll", "SendMessageTimeoutW") &&
 #endif
       TestHook(TestSetCursorPos, "user32.dll", "SetCursorPos") &&
       TestHook(TestTlsAlloc, "kernel32.dll", "TlsAlloc") &&
       TestHook(TestTlsFree, "kernel32.dll", "TlsFree") &&
+      TestHook(TestCloseHandle, "kernel32.dll", "CloseHandle") &&
+      TestHook(TestDuplicateHandle, "kernel32.dll", "DuplicateHandle") &&
 
       TestHook(TestInternetOpenA, "wininet.dll", "InternetOpenA") &&
       TestHook(TestInternetCloseHandle, "wininet.dll", "InternetCloseHandle") &&
       TestHook(TestInternetConnectA, "wininet.dll", "InternetConnectA") &&
       TestHook(TestInternetQueryDataAvailable, "wininet.dll", "InternetQueryDataAvailable") &&
       TestHook(TestInternetReadFile, "wininet.dll", "InternetReadFile") &&
       TestHook(TestInternetWriteFile, "wininet.dll", "InternetWriteFile") &&
       TestHook(TestInternetSetOptionA, "wininet.dll", "InternetSetOptionA") &&