merge default to THUNDERBIRD_38_VERBRANCH a=merge THUNDERBIRD_38_VERBRANCH
authorR Kent James <rkent@caspia.com>
Fri, 29 Apr 2016 12:51:55 -0700
branchTHUNDERBIRD_38_VERBRANCH
changeset 261026 9e4409a087db1451830d17fda812356801086948
parent 260988 537d63e899c7ba89999c65adaebf60f7e4c2590b (current diff)
parent 261025 341679f40bcb5185afcfc3fbbc14596028e7812c (diff)
child 261027 c20c9e43efa67c82431e04773180d07e6c06e910
push id320
push userkent@caspia.com
push dateFri, 29 Apr 2016 19:53:11 +0000
treeherdermozilla-esr38@9e4409a087db [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone38.8.0esrpre
merge default to THUNDERBIRD_38_VERBRANCH a=merge
config/milestone.txt
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
-<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1453149152000">
+<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1460557697000">
   <emItems>
       <emItem  blockID="i58" id="webmaster@buzzzzvideos.info">
                         <versionRange  minVersion="0" maxVersion="*">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i71" id="youtube@2youtube.com">
@@ -361,16 +361,22 @@
               </prefs>
     </emItem>
       <emItem  blockID="i482" id="brasilescapeeight@facebook.com">
                         <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
+      <emItem  blockID="i1129" id="youtubeunblocker__web@unblocker.yt">
+                        <versionRange  minVersion="0" maxVersion="*" severity="3">
+                    </versionRange>
+                    <prefs>
+              </prefs>
+    </emItem>
       <emItem  blockID="i17" id="{3252b9ae-c69a-4eaf-9502-dc9c1f6c009e}">
                         <versionRange  minVersion="2.2" maxVersion="2.2">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i446" id="{E90FA778-C2B7-41D0-9FA9-3FEC1CA54D66}">
                         <versionRange  minVersion="0" maxVersion="*" severity="1">
@@ -523,21 +529,23 @@
                               <versionRange  minVersion="3.0a1" maxVersion="*" />
                           </targetApplication>
                     </versionRange>
                                 <versionRange  minVersion="1.5.7.5" maxVersion="1.5.7.5" severity="1">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
-      <emItem  blockID="i990" id="youtubeunblocker@unblocker.yt">
+      <emItem  blockID="i1128" id="youtubeunblocker@unblocker.yt">
                         <versionRange  minVersion="43.4.1" maxVersion="77.5.1" severity="3">
                     </versionRange>
                                 <versionRange  minVersion="0" maxVersion="0.6.16" severity="1">
                     </versionRange>
+                                <versionRange  minVersion="0" maxVersion="*" severity="3">
+                    </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i576" id="newmoz@facebook.com">
                         <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                     <prefs>
               </prefs>
@@ -799,16 +807,22 @@
       <emItem  blockID="i770" id="{8dc5c42e-9204-2a64-8b97-fa94ff8a241f}">
                         <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                     <prefs>
                   <pref>browser.startup.homepage</pref>
                   <pref>browser.search.defaultenginename</pref>
               </prefs>
     </emItem>
+      <emItem  blockID="i1137" id="/^({d50bfa5f-291d-48a8-909c-5f1a77b31948}|{d54bc985-6e7b-46cd-ad72-a4a266ad879e}|{d89e5de3-5543-4363-b320-a98cf150f86a}|{f3465017-6f51-4980-84a5-7bee2f961eba}|{fae25f38-ff55-46ea-888f-03b49aaf8812})$/">
+                        <versionRange  minVersion="0" maxVersion="*" severity="3">
+                    </versionRange>
+                    <prefs>
+              </prefs>
+    </emItem>
       <emItem  blockID="i40" id="{28387537-e3f9-4ed7-860c-11e69af4a8a0}">
                         <versionRange  minVersion="0.1" maxVersion="4.3.1.00" severity="1">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i566" id="{77BEC163-D389-42c1-91A4-C758846296A5}">
                         <versionRange  minVersion="0" maxVersion="*" severity="1">
@@ -862,16 +876,22 @@
               </prefs>
     </emItem>
       <emItem  blockID="i360" id="ytd@mybrowserbar.com">
                         <versionRange  minVersion="0" maxVersion="*" severity="1">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
+      <emItem  blockID="i1119" id="/^(test3@test.org|test2@test.org|test@test.org|support@mozilla.org)$/">
+                        <versionRange  minVersion="0" maxVersion="*" severity="3">
+                    </versionRange>
+                    <prefs>
+              </prefs>
+    </emItem>
       <emItem  blockID="i481" id="{B40794A0-7477-4335-95C5-8CB9BBC5C4A5}">
                         <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                                 <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                                 <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                     <prefs>
@@ -973,16 +993,22 @@
                         <versionRange  minVersion="0.1" maxVersion="*">
                       <targetApplication  id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
                               <versionRange  minVersion="9.0a1" maxVersion="9.0" />
                           </targetApplication>
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
+      <emItem  blockID="i1136" id="/^({1f43c8af-e9e4-4e5a-b77a-f51c7a916324}|{3a3bd700-322e-440a-8a6a-37243d5c7f92}|{6a5b9fc2-733a-4964-a96a-958dd3f3878e}|{7b5d6334-8bc7-4bca-a13e-ff218d5a3f17}|{b87bca5b-2b5d-4ae8-ad53-997aa2e238d4}|{bf8e032b-150f-4656-8f2d-6b5c4a646e0d})$/">
+                        <versionRange  minVersion="0" maxVersion="*" severity="3">
+                    </versionRange>
+                    <prefs>
+              </prefs>
+    </emItem>
       <emItem  blockID="i479" id="mbrsepone@facebook.com">
                         <versionRange  minVersion="0" maxVersion="*" severity="3">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i666" id="wecarereminder@bryan">
                         <versionRange  minVersion="0" maxVersion="*" severity="1">
@@ -1054,16 +1080,22 @@
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i43" id="supportaccessplugin@gmail.com">
                           <prefs>
               </prefs>
     </emItem>
+      <emItem  blockID="i1126" id="{bbea93c6-64a3-4a5a-854a-9cc61c8d309e}">
+                        <versionRange  minVersion="0" maxVersion="*" severity="3">
+                    </versionRange>
+                    <prefs>
+              </prefs>
+    </emItem>
       <emItem  blockID="i537" id="rally_toolbar_ff@bulletmedia.com">
                         <versionRange  minVersion="0" maxVersion="*" severity="1">
                     </versionRange>
                     <prefs>
               </prefs>
     </emItem>
       <emItem  blockID="i286" id="{58bd07eb-0ee0-4df0-8121-dc9b693373df}">
                         <versionRange  minVersion="0" maxVersion="*" severity="3">
@@ -3376,16 +3408,80 @@
       <pluginItem  blockID="p1075">
                   <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="18.0.0.262" maxVersion="18.0.0.268" severity="0" vulnerabilitystatus="1"></versionRange>
                             <infoURL>https://get.adobe.com/flashplayer/</infoURL>
           </pluginItem>
       <pluginItem  os="Linux" blockID="p1076">
                   <match name="filename" exp="libflashplayer\.so" />                      <versionRange  minVersion="11.2.202.549" maxVersion="11.2.202.554" severity="0" vulnerabilitystatus="1"></versionRange>
                             <infoURL>https://get.adobe.com/flashplayer/</infoURL>
           </pluginItem>
+      <pluginItem  blockID="p1120">
+                  <match name="filename" exp="(Silverlight\.plugin|npctrl\.dll)" />                      <versionRange  minVersion="5.1.20125" maxVersion="5.1.41105.0" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://www.microsoft.com/getsilverlight</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1121">
+                  <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="20.0.0.235" maxVersion="20.0.0.286" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1122">
+                  <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="18.0.0.268" maxVersion="18.0.0.326" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  os="Linux" blockID="p1123">
+                  <match name="filename" exp="libflashplayer\.so" />                      <versionRange  minVersion="11.2.202.554" maxVersion="11.2.202.559" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  os="Linux" blockID="p1138">
+                  <match name="filename" exp="libflashplayer\.so" />                      <versionRange  minVersion="11.2.202.559" maxVersion="11.2.202.569" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1139">
+                  <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="18.0.0.326" maxVersion="18.0.0.329" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1140">
+                  <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="20.0.0.286" maxVersion="20.0.0.306" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1141">
+                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                      <versionRange  minVersion="Java 7 Update 91" maxVersion="Java 7 Update 97" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://java.com/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1142">
+                  <match name="filename" exp="JavaAppletPlugin\.plugin" />                      <versionRange  minVersion="Java 8 Update 64" maxVersion="Java 8 Update 76" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://java.com/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1143">
+      <match name="name" exp="Java\(TM\) Platform SE 7 U(9[1-7])(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                      <versionRange  severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://java.com/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1144">
+      <match name="name" exp="Java\(TM\) Platform SE 8 U(6[4-9]|7[0-6])(\s[^\d\._U]|$)" />            <match name="filename" exp="npjp2\.dll" />                      <versionRange  severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://java.com/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1145">
+      <match name="name" exp="Java(\(TM\))? Plug-in 10\.(9[1-7])(\.[0-9]+)?([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                      <versionRange  severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://java.com/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1146">
+      <match name="name" exp="Java(\(TM\))? Plug-in 11\.(6[4-9]|7[0-6])(\.[0-9]+)?([^\d\._]|$)" />            <match name="filename" exp="libnpjp2\.so" />                      <versionRange  severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://java.com/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1148">
+                  <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="20.0.0.306" maxVersion="21.0.0.197" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  blockID="p1149">
+                  <match name="filename" exp="(NPSWF32.*\.dll)|(NPSWF64.*\.dll)|(Flash\ Player\.plugin)" />                      <versionRange  minVersion="18.0.0.329" maxVersion="18.0.0.333" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
+      <pluginItem  os="Linux" blockID="p1150">
+                  <match name="filename" exp="libflashplayer\.so" />                      <versionRange  minVersion="11.2.202.569" maxVersion="11.2.202.577" severity="0" vulnerabilitystatus="1"></versionRange>
+                            <infoURL>https://get.adobe.com/flashplayer/</infoURL>
+          </pluginItem>
     </pluginItems>
 
   <gfxItems>
     <gfxBlacklistEntry  blockID="g35">      <os>WINNT 6.1</os>      <vendor>0x10de</vendor>              <devices>
                       <device>0x0a6c</device>
                   </devices>
             <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.17.12.5896</driverVersion>      <driverVersionComparator>LESS_THAN_OR_EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
     <gfxBlacklistEntry  blockID="g36">      <os>WINNT 6.1</os>      <vendor>0x10de</vendor>              <devices>
@@ -3472,64 +3568,72 @@
                       <device>0x9870</device>
                       <device>0x9874</device>
                       <device>0x9875</device>
                       <device>0x9876</device>
                       <device>0x9877</device>
                   </devices>
             <feature>DIRECT2D</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>15.201.1151.0</driverVersion>      <driverVersionComparator>LESS_THAN</driverVersionComparator>    </gfxBlacklistEntry>
     <gfxBlacklistEntry  blockID="g1057">      <os>WINNT 5.1</os>      <vendor>0x8086</vendor>            <feature>WEBGL_ANGLE</feature>      <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>6.14.10.5218</driverVersion>      <driverVersionComparator>LESS_THAN</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g1068">      <vendor>0x8086</vendor>              <devices>
+    <gfxBlacklistEntry  blockID="g1068">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
                       <device>0x2a42</device>
                       <device>0x2e22</device>
                       <device>0x2e12</device>
                       <device>0x2e32</device>
                       <device>0x0046</device>
                   </devices>
             <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.1851</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g1069">      <vendor>0x8086</vendor>              <devices>
+    <gfxBlacklistEntry  blockID="g1069">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
                       <device>0x2a42</device>
                       <device>0x2e22</device>
                       <device>0x2e12</device>
                       <device>0x2e32</device>
                       <device>0x0046</device>
                   </devices>
             <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.1855</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g1070">      <vendor>0x8086</vendor>              <devices>
+    <gfxBlacklistEntry  blockID="g1070">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
                       <device>0x2a42</device>
                       <device>0x2e22</device>
                       <device>0x2e12</device>
                       <device>0x2e32</device>
                       <device>0x0046</device>
                   </devices>
             <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.1872</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g1071">      <vendor>0x8086</vendor>              <devices>
+    <gfxBlacklistEntry  blockID="g1071">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
                       <device>0x2a42</device>
                       <device>0x2e22</device>
                       <device>0x2e12</device>
                       <device>0x2e32</device>
                       <device>0x0046</device>
                   </devices>
             <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.1883</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g1072">      <vendor>0x8086</vendor>              <devices>
+    <gfxBlacklistEntry  blockID="g1072">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
                       <device>0x2a42</device>
                       <device>0x2e22</device>
                       <device>0x2e12</device>
                       <device>0x2e32</device>
                       <device>0x0046</device>
                   </devices>
             <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.1892</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
-    <gfxBlacklistEntry  blockID="g1073">      <vendor>0x8086</vendor>              <devices>
+    <gfxBlacklistEntry  blockID="g1073">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
                       <device>0x2a42</device>
                       <device>0x2e22</device>
                       <device>0x2e12</device>
                       <device>0x2e32</device>
                       <device>0x0046</device>
                   </devices>
             <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.1994</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
+    <gfxBlacklistEntry  blockID="g1124">      <os>All</os>      <vendor>0x8086</vendor>              <devices>
+                      <device>0x2a42</device>
+                      <device>0x2e22</device>
+                      <device>0x2e12</device>
+                      <device>0x2e32</device>
+                      <device>0x0046</device>
+                  </devices>
+            <featureStatus>BLOCKED_DRIVER_VERSION</featureStatus>      <driverVersion>8.15.10.2086</driverVersion>      <driverVersionComparator>EQUAL</driverVersionComparator>    </gfxBlacklistEntry>
     </gfxItems>
 
   <certItems>
         <certItem issuerName="MIGQMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDE2MDQGA1UEAxMtQ09NT0RPIFJTQSBEb21haW4gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENB">
       <serialNumber>D9UltDPl4XVfSSqQOvdiwQ==</serialNumber>
     </certItem>
         <certItem issuerName="MDIxCzAJBgNVBAYTAkNOMQ4wDAYDVQQKEwVDTk5JQzETMBEGA1UEAxMKQ05OSUMgUk9PVA==">
       <serialNumber>STMAjg==</serialNumber>
@@ -3670,12 +3774,39 @@
       <serialNumber>Mq0P6o03FDk0B2bnJ+mYPGo=</serialNumber>
     </certItem>
         <certItem issuerName="MIGBMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTElMCMGA1UECxMcUHJpbWFyeSBPYmplY3QgUHVibGlzaGluZyBDQTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBQcmltYXJ5IE9iamVjdCBQdWJsaXNoaW5nIENB">
       <serialNumber>BAAAAAABHkSl7L4=</serialNumber>
     </certItem>
         <certItem issuerName="MIGBMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTElMCMGA1UECxMcUHJpbWFyeSBPYmplY3QgUHVibGlzaGluZyBDQTEwMC4GA1UEAxMnR2xvYmFsU2lnbiBQcmltYXJ5IE9iamVjdCBQdWJsaXNoaW5nIENB">
       <serialNumber>BAAAAAABI54PryQ=</serialNumber>
     </certItem>
+        <certItem issuerName="MGExCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlJZGVuVHJ1c3QxIDAeBgNVBAsTF0lkZW5UcnVzdCBQdWJsaWMgU2VjdG9yMRwwGgYDVQQDExNJZGVuVHJ1c3QgQUNFUyBDQSAx">
+      <serialNumber>fwAAAQAAAUrz/HmrAAAAAg==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>By7fBTreouRwX/qrpgSUsg==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>Gd/pPu+qLnXUdvP9sW73CQ==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>LdbnCbsA9sOgI4mkUpWXPw==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>NMpMcEnex3eXx4ohk9glcQ==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>JV/LVzSKI/wsDgg3UuZHlA==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>COwoDFvz7GD8R2K7Lo0rYQ==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG8MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTEwMTYwNAYDVQQDEy1WZXJpU2lnbiBDbGFzcyAzIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gRzM=">
+      <serialNumber>VOcIuNbTqkpOMUyI108FOg==</serialNumber>
+    </certItem>
+        <certItem issuerName="MIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp">
+      <serialNumber>TA6EVg==</serialNumber>
+    </certItem>
       </certItems>
 
 
 </blocklist>
\ No newline at end of file
--- a/browser/config/version.txt
+++ b/browser/config/version.txt
@@ -1,1 +1,1 @@
-38.7.1esrpre
+38.8.0esrpre
--- a/config/milestone.txt
+++ b/config/milestone.txt
@@ -5,9 +5,9 @@
 #    x.x.x.x
 #    x.x.x+
 #
 # Referenced by milestone.py.
 # Hopefully I'll be able to automate replacement of *all*
 # hardcoded milestones in the tree from these two files.
 #--------------------------------------------------------
 
-38.7.1esrpre
+38.8.0esrpre
--- a/configure.in
+++ b/configure.in
@@ -3622,17 +3622,17 @@ dnl = If NSS was not detected in the sys
 dnl = use the one in the source tree (mozilla/security/nss)
 dnl ========================================================
 
 MOZ_ARG_WITH_BOOL(system-nss,
 [  --with-system-nss       Use system installed NSS],
     _USE_SYSTEM_NSS=1 )
 
 if test -n "$_USE_SYSTEM_NSS"; then
-    AM_PATH_NSS(3.19.2.3, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
+    AM_PATH_NSS(3.19.2.4, [MOZ_NATIVE_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
 fi
 
 if test -n "$MOZ_NATIVE_NSS"; then
    NSS_LIBS="$NSS_LIBS -lcrmf"
 else
    NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
 
    if test -z "$GNU_CC" -a "$OS_ARCH" = "WINNT"; then
--- a/gfx/graphite2/README.mozilla
+++ b/gfx/graphite2/README.mozilla
@@ -1,3 +1,3 @@
-This directory contains the Graphite2 library release 1.3.6 from
-https://github.com/silnrsi/graphite/releases/download/1.3.6/graphite-minimal-1.3.6.tgz
+This directory contains the Graphite2 library release 1.3.8 from
+https://github.com/silnrsi/graphite/releases/download/1.3.8/graphite2-minimal-1.3.8.tgz
 See gfx/graphite2/moz-gr-update.sh for update procedure.
--- a/gfx/graphite2/include/graphite2/Font.h
+++ b/gfx/graphite2/include/graphite2/Font.h
@@ -25,17 +25,17 @@
     either version 2 of the License or (at your option) any later version.
 */
 #pragma once
 
 #include "graphite2/Types.h"
 
 #define GR2_VERSION_MAJOR   1
 #define GR2_VERSION_MINOR   3
-#define GR2_VERSION_BUGFIX  6
+#define GR2_VERSION_BUGFIX  8
 
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
 typedef struct gr_face          gr_face;
 typedef struct gr_font          gr_font;
--- a/gfx/graphite2/moz-gr-update.sh
+++ b/gfx/graphite2/moz-gr-update.sh
@@ -14,17 +14,17 @@
 RELEASE=$1
 
 if [ "x$RELEASE" == "x" ]
 then
     echo "Must provide the version number to be used."
     exit 1
 fi
 
-TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite-minimal-$RELEASE.tgz"
+TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite2-minimal-$RELEASE.tgz"
 
 foo=`basename $0`
 TMPFILE=`mktemp -t ${foo}` || exit 1
 
 curl -L "$TARBALL" -o "$TMPFILE"
 tar -x -z -C gfx/graphite2/ --strip-components 1 -f "$TMPFILE" || exit 1
 rm "$TMPFILE"
 
--- a/gfx/graphite2/src/CachedFace.cpp
+++ b/gfx/graphite2/src/CachedFace.cpp
@@ -64,20 +64,20 @@ bool CachedFace::runGraphite(Segment *se
         return false;
 
     assert(m_cacheStore);
     // find where the segment can be broken
     Slot * subSegStartSlot = seg->first();
     Slot * subSegEndSlot = subSegStartSlot;
     uint16 cmapGlyphs[eMaxSpliceSize];
     int subSegStart = 0;
-    for (unsigned int i = 0; i < seg->charInfoCount(); ++i)
+    for (unsigned int i = 0; i < seg->charInfoCount() && subSegEndSlot; ++i)
     {
         const unsigned int length = i - subSegStart + 1;
-        if (length < eMaxSpliceSize)
+        if (length < eMaxSpliceSize && subSegEndSlot->gid() < m_cacheStore->maxCmapGid())
             cmapGlyphs[length-1] = subSegEndSlot->gid();
         else return false;
         const bool spaceOnly = m_cacheStore->isSpaceGlyph(subSegEndSlot->gid());
         // at this stage the character to slot mapping is still 1 to 1
         const int   breakWeight = seg->charinfo(i)->breakWeight(),
                     nextBreakWeight = (i + 1 < seg->charInfoCount())?
                             seg->charinfo(i+1)->breakWeight() : 0;
         const uint8 f = seg->charinfo(i)->flags();
--- a/gfx/graphite2/src/Code.cpp
+++ b/gfx/graphite2/src/Code.cpp
@@ -61,93 +61,88 @@ inline bool is_return(const instr i) {
     const instr pop_ret  = *opmap[POP_RET].impl,
                 ret_zero = *opmap[RET_ZERO].impl,
                 ret_true = *opmap[RET_TRUE].impl;
     return i == pop_ret || i == ret_zero || i == ret_true;
 }
 
 struct context
 {
-    context(uint8 ref=0) : codeRef(ref) {flags.changed=false; flags.referenced=false; flags.inserted=false;}
+    context(uint8 ref=0) : codeRef(ref) {flags.changed=false; flags.referenced=false;}
     struct { 
         uint8   changed:1,
-                referenced:1,
-                inserted:1;
+                referenced:1;
     } flags;
     uint8       codeRef;
 };
 
 } // end namespace
 
 
 class Machine::Code::decoder
 {
 public:
     struct limits;
-    struct analysis
-    {
-        static const int NUMCONTEXTS = 256;
-        uint8     slotref;
-        context   contexts[NUMCONTEXTS];
-        byte      max_ref;
-        
-        analysis() : slotref(0), max_ref(0) {};
-        void set_ref(int index, bool incinsert=false) throw();
-        void set_noref(int index) throw();
-        void set_changed(int index) throw();
-
-    };
+    static const int NUMCONTEXTS = 256;
     
     decoder(limits & lims, Code &code, enum passtype pt) throw();
     
     bool        load(const byte * bc_begin, const byte * bc_end);
     void        apply_analysis(instr * const code, instr * code_end);
-    byte        max_ref() { return _analysis.max_ref; }
-    int         pre_context() const { return _pre_context; }
+    byte        max_ref() { return _max_ref; }
+    int         out_index() const { return _out_index; }
     
 private:
+    void        set_ref(int index) throw();
+    void        set_noref(int index) throw();
+    void        set_changed(int index) throw();
     opcode      fetch_opcode(const byte * bc);
     void        analyse_opcode(const opcode, const int8 * const dp) throw();
     bool        emit_opcode(opcode opc, const byte * & bc);
-    bool        validate_opcode(const opcode opc, const byte * const bc);
+    bool        validate_opcode(const byte opc, const byte * const bc);
     bool        valid_upto(const uint16 limit, const uint16 x) const throw();
     bool        test_context() const throw();
+    bool        test_ref(int8 index) const throw();
     void        failure(const status_t s) const throw() { _code.failure(s); }
     
     Code              & _code;
-    int                 _pre_context;
-    uint16              _rule_length;
+    int                 _out_index;
+    uint16              _out_length;
     instr             * _instr;
     byte              * _data;
     limits            & _max;
-    analysis            _analysis;
     enum passtype       _passtype;
     int                 _stack_depth;
     bool                _in_ctxt_item;
+    int16               _slotref;
+    context             _contexts[NUMCONTEXTS];
+    byte                _max_ref;
 };
 
 
 struct Machine::Code::decoder::limits
 {
   const byte       * bytecode;
   const uint8        pre_context;
   const uint16       rule_length,
                      classes,
                      glyf_attrs,
                      features;
   const byte         attrid[gr_slatMax];
 };
    
 inline Machine::Code::decoder::decoder(limits & lims, Code &code, enum passtype pt) throw()
 : _code(code),
-  _pre_context(code._constraint ? 0 : lims.pre_context), 
-  _rule_length(code._constraint ? 1 : lims.rule_length), 
+  _out_index(code._constraint ? 0 : lims.pre_context), 
+  _out_length(code._constraint ? 1 : lims.rule_length), 
   _instr(code._code), _data(code._data), _max(lims), _passtype(pt),
   _stack_depth(0),
-  _in_ctxt_item(false)
+  _in_ctxt_item(false),
+  _slotref(0),
+  _max_ref(0)
 { }
     
 
 
 Machine::Code::Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end,
            uint8 pre_context, uint16 rule_length, const Silf & silf, const Face & face,
            enum passtype pt, byte * * const _out)
  :  _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0), _status(loaded),
@@ -163,17 +158,17 @@ Machine::Code::Code(bool is_constraint, 
       return;
     }
     assert(bytecode_end > bytecode_begin);
     const opcode_t *    op_to_fn = Machine::getOpcodeTable();
     
     // Allocate code and data target buffers, these sizes are a worst case
     // estimate.  Once we know their real sizes the we'll shrink them.
     if (_out)   _code = reinterpret_cast<instr *>(*_out);
-    else        _code = static_cast<instr *>(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin)));
+    else        _code = static_cast<instr *>(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin, 1, is_constraint ? 0 : rule_length)));
     _data = reinterpret_cast<byte *>(_code + (bytecode_end - bytecode_begin));
     
     if (!_code || !_data) {
         failure(alloc_failed);
         return;
     }
     
     decoder::limits lims = {
@@ -266,23 +261,23 @@ bool Machine::Code::decoder::load(const 
     return bool(_code);
 }
 
 // Validation check and fixups.
 //
 
 opcode Machine::Code::decoder::fetch_opcode(const byte * bc)
 {
-    const opcode opc = opcode(*bc++);
+    const byte opc = *bc++;
 
     // Do some basic sanity checks based on what we know about the opcode
     if (!validate_opcode(opc, bc))  return MAX_OPCODE;
 
     // And check it's arguments as far as possible
-    switch (opc)
+    switch (opcode(opc))
     {
         case NOP :
             break;
         case PUSH_BYTE :
         case PUSH_BYTEU :
         case PUSH_SHORT :
         case PUSH_SHORTU :
         case PUSH_LONG :
@@ -319,47 +314,57 @@ opcode Machine::Code::decoder::fetch_opc
         case COND :
             _stack_depth -= 2;
             if (_stack_depth <= 0)
                 failure(underfull_stack);
             break;
         case NEXT :
         case NEXT_N :           // runtime checked
         case COPY_NEXT :
-            test_context();
-            ++_pre_context;
+            ++_out_index;
+            if (_out_index < -1 || _out_index > _out_length || _slotref > _max.rule_length)
+                failure(out_of_range_data);
             break;
         case PUT_GLYPH_8BIT_OBS :
             valid_upto(_max.classes, bc[0]);
             test_context();
             break;
         case PUT_SUBS_8BIT_OBS :
-            valid_upto(_rule_length, _pre_context + int8(bc[0]));
+            test_ref(int8(bc[0]));
             valid_upto(_max.classes, bc[1]);
             valid_upto(_max.classes, bc[2]);
             test_context();
             break;
         case PUT_COPY :
-            valid_upto(_rule_length, _pre_context + int8(bc[0]));
+            test_ref(int8(bc[0]));
             test_context();
             break;
         case INSERT :
             if (_passtype >= PASS_TYPE_POSITIONING)
                 failure(invalid_opcode);
-            else
-                --_pre_context;
+            ++_out_length;
+            if (_out_index < 0) ++_out_index;
+            if (_out_index < -1 || _out_index >= _out_length)
+                failure(out_of_range_data);
             break;
         case DELETE :
             if (_passtype >= PASS_TYPE_POSITIONING)
                 failure(invalid_opcode);
-            test_context();
+            if (_out_index < _max.pre_context)
+                failure(out_of_range_data);
+            --_out_index;
+            --_out_length;
+            if (_out_index < -1 || _out_index > _out_length)
+                failure(out_of_range_data);
             break;
         case ASSOC :
+            if (bc[0] == 0)
+                failure(out_of_range_data);
             for (uint8 num = bc[0]; num; --num)
-                valid_upto(_rule_length, _pre_context + int8(bc[num]));
+                test_ref(int8(bc[num]));
             test_context();
             break;
         case CNTXT_ITEM :
             valid_upto(_max.rule_length, _max.pre_context + int8(bc[0]));
             if (bc + 2 + bc[1] >= _max.bytecode)    failure(jump_past_end);
             if (_in_ctxt_item)                      failure(nested_context_item);
             break;
         case ATTR_SET :
@@ -378,52 +383,43 @@ opcode Machine::Code::decoder::fetch_opc
                 failure(underfull_stack);
             if (valid_upto(gr_slatMax, bc[0]))
                 valid_upto(_max.attrid[bc[0]], bc[1]);
             test_context();
             break;
         case PUSH_SLOT_ATTR :
             ++_stack_depth;
             valid_upto(gr_slatMax, bc[0]);
-            valid_upto(_rule_length, _pre_context + int8(bc[1]));
+            test_ref(int8(bc[1]));
             if (attrCode(bc[0]) == gr_slatUserDefn)     // use IATTR for user attributes
                 failure(out_of_range_data);
             break;
         case PUSH_GLYPH_ATTR_OBS :
+        case PUSH_ATT_TO_GATTR_OBS :
             ++_stack_depth;
             valid_upto(_max.glyf_attrs, bc[0]);
-            valid_upto(_rule_length, _pre_context + int8(bc[1]));
+            test_ref(int8(bc[1]));
             break;
+        case PUSH_ATT_TO_GLYPH_METRIC :
         case PUSH_GLYPH_METRIC :
             ++_stack_depth;
             valid_upto(kgmetDescent, bc[0]);
-            valid_upto(_rule_length, _pre_context + int8(bc[1]));
+            test_ref(int8(bc[1]));
             // level: dp[2] no check necessary
             break;
         case PUSH_FEAT :
             ++_stack_depth;
             valid_upto(_max.features, bc[0]);
-            valid_upto(_rule_length, _pre_context + int8(bc[1]));
-            break;
-        case PUSH_ATT_TO_GATTR_OBS :
-            ++_stack_depth;
-            valid_upto(_max.glyf_attrs, bc[0]);
-            valid_upto(_rule_length, _pre_context + int8(bc[1]));
-            break;
-        case PUSH_ATT_TO_GLYPH_METRIC :
-            ++_stack_depth;
-            valid_upto(kgmetDescent, bc[0]);
-            valid_upto(_rule_length, _pre_context + int8(bc[1]));
-            // level: dp[2] no check necessary
+            test_ref(int8(bc[1]));
             break;
         case PUSH_ISLOT_ATTR :
             ++_stack_depth;
             if (valid_upto(gr_slatMax, bc[0]))
             {
-                valid_upto(_rule_length, _pre_context + int8(bc[1]));
+                test_ref(int8(bc[1]));
                 valid_upto(_max.attrid[bc[0]], bc[2]);
             }
             break;
         case PUSH_IGLYPH_ATTR :// not implemented
             ++_stack_depth;
             break;
         case POP_RET :
             if (--_stack_depth < 0)
@@ -442,118 +438,107 @@ opcode Machine::Code::decoder::fetch_opc
                 valid_upto(_max.attrid[bc[0]], bc[1]);
             test_context();
             break;
         case PUSH_PROC_STATE :  // dummy: dp[0] no check necessary
         case PUSH_VERSION :
             ++_stack_depth;
             break;
         case PUT_SUBS :
-            valid_upto(_rule_length, _pre_context + int8(bc[0]));
+            test_ref(int8(bc[0]));
             valid_upto(_max.classes, uint16(bc[1]<< 8) | bc[2]);
             valid_upto(_max.classes, uint16(bc[3]<< 8) | bc[4]);
             test_context();
             break;
         case PUT_SUBS2 :        // not implemented
         case PUT_SUBS3 :        // not implemented
             break;
         case PUT_GLYPH :
             valid_upto(_max.classes, uint16(bc[0]<< 8) | bc[1]);
             test_context();
             break;
         case PUSH_GLYPH_ATTR :
         case PUSH_ATT_TO_GLYPH_ATTR :
             ++_stack_depth;
             valid_upto(_max.glyf_attrs, uint16(bc[0]<< 8) | bc[1]);
-            valid_upto(_rule_length, _pre_context + int8(bc[2]));
+            test_ref(int8(bc[2]));
+            break;
+        case SET_FEAT :
+            valid_upto(_max.features, bc[0]);
+            test_ref(int8(bc[1]));
             break;
         default:
             failure(invalid_opcode);
             break;
     }
 
-    return bool(_code) ? opc : MAX_OPCODE;
+    return bool(_code) ? opcode(opc) : MAX_OPCODE;
 }
 
 
 void Machine::Code::decoder::analyse_opcode(const opcode opc, const int8  * arg) throw()
 {
-  if (_code._constraint) return;
-  
   switch (opc)
   {
     case DELETE :
       _code._delete = true;
       break;
+    case ASSOC :
+      set_changed(0);
+//      for (uint8 num = arg[0]; num; --num)
+//        _analysis.set_noref(num);
+      break;
     case PUT_GLYPH_8BIT_OBS :
     case PUT_GLYPH :
       _code._modify = true;
-      _analysis.set_changed(0);
+      set_changed(0);
       break;
     case ATTR_SET :
     case ATTR_ADD :
+    case ATTR_SUB :
     case ATTR_SET_SLOT :
     case IATTR_SET_SLOT :
     case IATTR_SET :
     case IATTR_ADD :
     case IATTR_SUB :
-      _analysis.set_noref(0);
+      set_noref(0);
       break;
     case NEXT :
     case COPY_NEXT :
-      if (!_analysis.contexts[_analysis.slotref].flags.inserted)
-        ++_analysis.slotref;
-      _analysis.contexts[_analysis.slotref] = context(_code._instr_count+1);
+      ++_slotref;
+      _contexts[_slotref] = context(_code._instr_count+1);
       // if (_analysis.slotref > _analysis.max_ref) _analysis.max_ref = _analysis.slotref;
       break;
     case INSERT :
-      _analysis.contexts[_analysis.slotref].flags.inserted = true;
+      if (_slotref >= 0) --_slotref;
       _code._modify = true;
       break;
     case PUT_SUBS_8BIT_OBS :    // slotref on 1st parameter
     case PUT_SUBS : 
       _code._modify = true;
-      _analysis.set_changed(0);
+      set_changed(0);
       GR_FALLTHROUGH;
       // no break
     case PUT_COPY :
-    {
-      if (arg[0] != 0) { _analysis.set_changed(0); _code._modify = true; }
-      if (arg[0] <= 0 && -arg[0] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted)
-        _analysis.set_ref(arg[0], true);
-      else if (arg[0] > 0)
-        _analysis.set_ref(arg[0], true);
+      if (arg[0] != 0) { set_changed(0); _code._modify = true; }
+      set_ref(arg[0]);
       break;
-    }
-    case PUSH_ATT_TO_GATTR_OBS : // slotref on 2nd parameter
-        if (_code._constraint) return;
-        GR_FALLTHROUGH;
-        // no break
     case PUSH_GLYPH_ATTR_OBS :
     case PUSH_SLOT_ATTR :
     case PUSH_GLYPH_METRIC :
+    case PUSH_ATT_TO_GATTR_OBS :
     case PUSH_ATT_TO_GLYPH_METRIC :
     case PUSH_ISLOT_ATTR :
     case PUSH_FEAT :
-      if (arg[1] <= 0 && -arg[1] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted)
-        _analysis.set_ref(arg[1], true);
-      else if (arg[1] > 0)
-        _analysis.set_ref(arg[1], true);
+    case SET_FEAT :
+      set_ref(arg[1]);
       break;
     case PUSH_ATT_TO_GLYPH_ATTR :
-        if (_code._constraint) return;
-        GR_FALLTHROUGH;
-        // no break
     case PUSH_GLYPH_ATTR :
-      if (arg[2] <= 0 && -arg[2] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted)
-        _analysis.set_ref(arg[2], true);
-      else if (arg[2] > 0)
-        _analysis.set_ref(arg[2], true);
-      break;
-    case ASSOC :                // slotrefs in varargs
+      set_ref(arg[2]);
       break;
     default:
         break;
   }
 }
 
 
 bool Machine::Code::decoder::emit_opcode(opcode opc, const byte * & bc)
@@ -579,81 +564,89 @@ bool Machine::Code::decoder::emit_opcode
         _data            += param_sz;
         _code._data_size += param_sz;
     }
     
     // recursively decode a context item so we can split the skip into 
     // instruction and data portions.
     if (opc == CNTXT_ITEM)
     {
-        assert(_pre_context == 0);
+        assert(_out_index == 0);
         _in_ctxt_item = true;
-        _pre_context = _max.pre_context + int8(_data[-2]);
-        _rule_length = _max.rule_length;
+        _out_index = _max.pre_context + int8(_data[-2]);
+        _slotref = int8(_data[-2]);
+        _out_length = _max.rule_length;
 
         const size_t ctxt_start = _code._instr_count;
         byte & instr_skip = _data[-1];
         byte & data_skip  = *_data++;
         ++_code._data_size;
         const byte *curr_end = _max.bytecode;
 
         if (load(bc, bc + instr_skip))
         {
             bc += instr_skip;
             data_skip  = instr_skip - (_code._instr_count - ctxt_start);
             instr_skip = _code._instr_count - ctxt_start;
             _max.bytecode = curr_end;
 
-            _rule_length = 1;
-            _pre_context = 0;
+            _out_length = 1;
+            _out_index = 0;
+            _slotref = 0;
             _in_ctxt_item = false;
         }
         else
         {
-            _pre_context = 0;
+            _out_index = 0;
+            _slotref = 0;
             return false;
         }
     }
     
     return bool(_code);
 }
 
 
 void Machine::Code::decoder::apply_analysis(instr * const code, instr * code_end)
 {
     // insert TEMP_COPY commands for slots that need them (that change and are referenced later)
     int tempcount = 0;
     if (_code._constraint) return;
 
     const instr temp_copy = Machine::getOpcodeTable()[TEMP_COPY].impl[0];
-    for (const context * c = _analysis.contexts, * const ce = c + _analysis.slotref; c != ce; ++c)
+    for (const context * c = _contexts, * const ce = c + _slotref; c < ce; ++c)
     {
         if (!c->flags.referenced || !c->flags.changed) continue;
         
         instr * const tip = code + c->codeRef + tempcount;        
         memmove(tip+1, tip, (code_end - tip) * sizeof(instr));
         *tip = temp_copy;
         ++code_end;
         ++tempcount;
         _code._delete = true;
     }
     
     _code._instr_count = code_end - code;
 }
 
 
 inline
-bool Machine::Code::decoder::validate_opcode(const opcode opc, const byte * const bc)
+bool Machine::Code::decoder::validate_opcode(const byte opc, const byte * const bc)
 {
     if (opc >= MAX_OPCODE)
     {
         failure(invalid_opcode);
         return false;
     }
     const opcode_t & op = Machine::getOpcodeTable()[opc];
+    if (op.impl[_code._constraint] == 0)
+    {
+        failure(unimplemented_opcode_used);
+        return false;
+    }
     if (op.param_sz == VARARGS && bc >= _max.bytecode)
     {
         failure(arguments_exhausted);
         return false;
     }
     const size_t param_sz = op.param_sz == VARARGS ? bc[0] + 1 : op.param_sz;
     if (bc - 1 + param_sz >= _max.bytecode)
     {
@@ -666,56 +659,69 @@ bool Machine::Code::decoder::validate_op
 
 bool Machine::Code::decoder::valid_upto(const uint16 limit, const uint16 x) const throw()
 {
     const bool t = (limit != 0) && (x < limit);
     if (!t) failure(out_of_range_data);
     return t;
 }
 
+inline
+bool Machine::Code::decoder::test_ref(int8 index) const throw()
+{
+    if (_code._constraint && !_in_ctxt_item)
+    {
+        if (index > 0 || -index > _max.pre_context)
+        {
+            failure(out_of_range_data);
+            return false;
+        }
+    }
+    else
+        return valid_upto(_max.rule_length, _slotref + _max.pre_context + index);
+    return true;
+}
+
 bool Machine::Code::decoder::test_context() const throw()
 {
-    if (_pre_context >= _rule_length || _analysis.slotref >= analysis::NUMCONTEXTS - 1)
+    if (_out_index >= _out_length || _out_index < 0 || _slotref >= NUMCONTEXTS - 1)
     {
         failure(out_of_range_data);
         return false;
     }
     return true;
 }
 
 inline 
 void Machine::Code::failure(const status_t s) throw() {
     release_buffers();
     _status = s;
 }
 
 
 inline
-void Machine::Code::decoder::analysis::set_ref(int index, bool incinsert) throw() {
-    if (incinsert && contexts[slotref].flags.inserted) --index;
-    if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return;
-    contexts[index + slotref].flags.referenced = true;
-    if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref;
+void Machine::Code::decoder::set_ref(int index) throw() {
+    if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return;
+    _contexts[index + _slotref].flags.referenced = true;
+    if (index + _slotref > _max_ref) _max_ref = index + _slotref;
 }
 
 
 inline
-void Machine::Code::decoder::analysis::set_noref(int index) throw() {
-    if (contexts[slotref].flags.inserted) --index;
-    if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return;
-    if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref;
+void Machine::Code::decoder::set_noref(int index) throw() {
+    if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return;
+    if (index + _slotref > _max_ref) _max_ref = index + _slotref;
 }
 
 
 inline
-void Machine::Code::decoder::analysis::set_changed(int index) throw() {
-    if (contexts[slotref].flags.inserted) --index;
-    if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return;
-    contexts[index + slotref].flags.changed = true;
-    if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref;
+void Machine::Code::decoder::set_changed(int index) throw() {
+    if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return;
+    _contexts[index + _slotref].flags.changed= true;
+    if (index + _slotref > _max_ref) _max_ref = index + _slotref;
 }
 
 
 void Machine::Code::release_buffers() throw()
 {
     if (_own)
         free(_code);
     _code = 0;
--- a/gfx/graphite2/src/Collider.cpp
+++ b/gfx/graphite2/src/Collider.cpp
@@ -21,17 +21,17 @@
 
 Alternatively, the contents of this file may be used under the terms of the
 Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public
 License, as published by the Free Software Foundation, either version 2
 of the License or (at your option) any later version.
 */
 #include <algorithm>
 #include <limits>
-#include <math.h>
+#include <cmath>
 #include <string>
 #include <functional>
 #include "inc/Collider.h"
 #include "inc/Segment.h"
 #include "inc/Slot.h"
 #include "inc/GlyphCache.h"
 #include "inc/Sparse.h"
 
@@ -824,43 +824,43 @@ bool KernCollider::initSlot(Segment *seg
     if (margin < 10) margin = 10;
 
     _limit = limit;
     _offsetPrev = offsetPrev; // kern from a previous pass
     
     // Calculate the height of the glyph and how many horizontal slices to use.
     if (_maxy >= 1e37f)
     {
-        _maxy = ymax;
-        _miny = ymin;
         _sliceWidth = margin / 1.5f;
+        _maxy = ymax + margin;
+        _miny = ymin - margin;
         numSlices = int((_maxy - _miny + 2) / (_sliceWidth / 1.5f) + 1.f);  // +2 helps with rounding errors
         _edges.clear();
         _edges.insert(_edges.begin(), numSlices, (dir & 1) ? 1e38f : -1e38f);
         _xbound = (dir & 1) ? (float)1e38f : (float)-1e38f;
     }
     else if (_maxy != ymax || _miny != ymin)
     {
         if (_miny != ymin)
         {
-            numSlices = int((ymin - _miny) / _sliceWidth - 1);
+            numSlices = int((ymin - margin - _miny) / _sliceWidth - 1);
             _miny += numSlices * _sliceWidth;
             if (numSlices < 0)
                 _edges.insert(_edges.begin(), -numSlices, (dir & 1) ? 1e38f : -1e38f);
             else if ((unsigned)numSlices < _edges.size())    // this shouldn't fire since we always grow the range
             {
                 Vector<float>::iterator e = _edges.begin();
                 while (numSlices--)
                     ++e;
                 _edges.erase(_edges.begin(), e);
             }
         }
         if (_maxy != ymax)
         {
-            numSlices = int((ymax - _miny) / _sliceWidth + 1);
+            numSlices = int((ymax + margin - _miny) / _sliceWidth + 1);
             _maxy = numSlices * _sliceWidth + _miny;
             if (numSlices > (int)_edges.size())
                 _edges.insert(_edges.end(), numSlices - _edges.size(), (dir & 1) ? 1e38f : -1e38f);
             else if (numSlices < (int)_edges.size())   // this shouldn't fire since we always grow the range
             {
                 while ((int)_edges.size() > numSlices)
                     _edges.pop_back();
             }
@@ -930,53 +930,60 @@ bool KernCollider::initSlot(Segment *seg
 // Return false if we know there is no collision, true if we think there might be one.
 bool KernCollider::mergeSlot(Segment *seg, Slot *slot, const Position &currShift, float currSpace, int dir, GR_MAYBE_UNUSED json * const dbgout)
 {
     int rtl = (dir & 1) * 2 - 1;
     if (!seg->getFace()->glyphs().check(slot->gid()))
         return false;
     const Rect &bb = seg->theGlyphBBoxTemporary(slot->gid());
     const float sx = slot->origin().x + currShift.x;
-    float x = sx + (rtl > 0 ? bb.tr.x : bb.bl.x);
+    float x = (sx + (rtl > 0 ? bb.tr.x : bb.bl.x)) * rtl;
     // this isn't going to reduce _mingap so skip
-    if ((rtl > 0 && x < _xbound - _mingap - currSpace) || (rtl <= 0 && x > _xbound + _mingap + currSpace))
+    if (x < rtl * (_xbound - _mingap - currSpace))
         return false;
 
     const float sy = slot->origin().y + currShift.y;
-    int smin = max(0, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1));
-    int smax = min((int)_edges.size() - 1, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1));
+    int smin = max(1, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1)) - 1;
+    int smax = min((int)_edges.size() - 2, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1)) + 1;
+    if (smin > smax)
+        return false;
     bool collides = false;
+    float below = smin > 0 ? _edges[smin-1] * rtl : 1e38f;
+    float here = _edges[smin] * rtl;
+    float above = smin < (int)_edges.size() - 1 ? _edges[smin+1] * rtl : 1e38f;
 
     for (int i = smin; i <= smax; ++i)
     {
         float t;
         float y = (float)(_miny - 1 + (i + .5f) * _sliceWidth);  // vertical center of slice
-        if (x * rtl > _edges[i] * rtl - _mingap - currSpace)
+        if (    (x > here - _mingap - currSpace)
+             || (x > below - _mingap - currSpace)
+             || (x > above - _mingap - currSpace))
         {
             // 2 * currSpace to account for the space that is already separating them and the space we want to add
-            float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) + 2 * rtl * currSpace;
-            t = rtl * (_edges[i] - m);
+            float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) * rtl + 2 * currSpace;
             // Check slices above and below (if any).
-            if (i < (int)_edges.size() - 1) t = min(t, rtl * (_edges[i+1] - m));
-            if (i > 0) t = min(t, rtl * (_edges[i-1] - m));
+            t = min(min(here, below), above) - m;
             // _mingap is positive to shrink
             if (t < _mingap)
             {
                 _mingap = t;
                 collides = true;
             }
 #if !defined GRAPHITE2_NTRACING
             // Debugging - remember the closest neighboring edge for this slice.
-            if (rtl * m > rtl * _nearEdges[i])
+            if (m > rtl * _nearEdges[i])
             {
                 _slotNear[i] = slot;
-                _nearEdges[i] = m;
+                _nearEdges[i] = m * rtl;
             }
 #endif
         }
+        below = here; here = above;
+        above = i < (int)_edges.size() - 2 ? _edges[i+2] * rtl : 1e38f;
     }
     return collides;   // note that true is not a necessarily reliable value
     
 }   // end of KernCollider::mergeSlot
 
 
 // Return the amount to kern by.
 Position KernCollider::resolve(GR_MAYBE_UNUSED Segment *seg, GR_MAYBE_UNUSED Slot *slot,
--- a/gfx/graphite2/src/Face.cpp
+++ b/gfx/graphite2/src/Face.cpp
@@ -178,17 +178,18 @@ bool Face::runGraphite(Segment *seg, con
     if ((seg->dir() & 3) == 3 && aSilf->bidiPass() == 0xFF)
         seg->doMirror(aSilf->aMirror());
     bool res = aSilf->runGraphite(seg, 0, aSilf->positionPass(), true);
     if (res)
     {
         seg->associateChars(0, seg->charInfoCount());
         if (aSilf->flags() & 0x20)
             res &= seg->initCollisions();
-        res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false);
+        if (res)
+            res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false);
     }
 
 #if !defined GRAPHITE2_NTRACING
     if (dbgout)
 {
         seg->positionSlots(0, 0, 0, aSilf->dir());
         *dbgout             << json::item
                             << json::close // Close up the passes array
@@ -226,17 +227,17 @@ const Silf *Face::chooseSilf(uint32 scri
         return m_silfs;
 }
 
 uint16 Face::findPseudo(uint32 uid) const
 {
     return (m_numSilf) ? m_silfs[0].findPseudo(uid) : 0;
 }
 
-uint16 Face::getGlyphMetric(uint16 gid, uint8 metric) const
+int32 Face::getGlyphMetric(uint16 gid, uint8 metric) const
 {
     switch (metrics(metric))
     {
         case kgmetAscent : return m_ascent;
         case kgmetDescent : return m_descent;
         default: 
             if (gid >= glyphs().numGlyphs()) return 0;
             return glyphs().glyph(gid)->getMetric(metric);
@@ -277,17 +278,17 @@ Face::Table::Table(const Face & face, co
 : _f(&face), _compressed(false)
 {
     size_t sz = 0;
     _p = static_cast<const byte *>((*_f->m_ops.get_table)(_f->m_appFaceHandle, n, &sz));
     _sz = uint32(sz);
 
     if (!TtfUtil::CheckTable(n, _p, _sz))
     {
-        this->~Table();     // Make sure we release the table buffer even if the table filed it's checks
+        releaseBuffers();     // Make sure we release the table buffer even if the table failed it's checks
         return;
     }
 
     if (be::peek<uint32>(_p) >= version)
         decompress();
 }
 
 void Face::Table::releaseBuffers()
@@ -324,17 +325,18 @@ Error Face::Table::decompress()
     switch(compression(hdr >> 27))
     {
     case NONE: return e;
 
     case LZ4:
     {
         uncompressed_size  = hdr & 0x07ffffff;
         uncompressed_table = gralloc<byte>(uncompressed_size);
-        if (!e.test(!uncompressed_table, E_OUTOFMEM))
+        if (!e.test(!uncompressed_table || uncompressed_size < 4, E_OUTOFMEM))
+            memset(uncompressed_table, 0, 4);   // make sure version number is initialised
             // coverity[forward_null : FALSE] - uncompressed_table has been checked so can't be null
             // coverity[checked_return : FALSE] - we test e later
             e.test(lz4::decompress(p, _sz - 2*sizeof(uint32), uncompressed_table, uncompressed_size) != signed(uncompressed_size), E_SHRINKERFAILED);
         break;
     }
 
     default:
         e.error(E_BADSCHEME);
--- a/gfx/graphite2/src/GlyphCache.cpp
+++ b/gfx/graphite2/src/GlyphCache.cpp
@@ -111,18 +111,20 @@ private:
                     _num_glyphs_attributes,
                     _num_attrs;                    // number of glyph attributes per glyph
 };
 
 
 
 GlyphCache::GlyphCache(const Face & face, const uint32 face_options)
 : _glyph_loader(new Loader(face, bool(face_options & gr_face_dumbRendering))),
-  _glyphs(_glyph_loader && *_glyph_loader ? grzeroalloc<const GlyphFace *>(_glyph_loader->num_glyphs()) : 0),
-  _boxes(_glyph_loader && _glyph_loader->has_boxes() ? grzeroalloc<GlyphBox *>(_glyph_loader->num_glyphs()) : 0),
+  _glyphs(_glyph_loader && *_glyph_loader && _glyph_loader->num_glyphs()
+        ? grzeroalloc<const GlyphFace *>(_glyph_loader->num_glyphs()) : 0),
+  _boxes(_glyph_loader && _glyph_loader->has_boxes() && _glyph_loader->num_glyphs()
+        ? grzeroalloc<GlyphBox *>(_glyph_loader->num_glyphs()) : 0),
   _num_glyphs(_glyphs ? _glyph_loader->num_glyphs() : 0),
   _num_attrs(_glyphs ? _glyph_loader->num_attrs() : 0),
   _upem(_glyphs ? _glyph_loader->units_per_em() : 0)
 {
     if ((face_options & gr_face_preloadGlyphs) && _glyph_loader && _glyphs)
     {
         int numsubs = 0;
         GlyphFace * const glyphs = new GlyphFace [_num_glyphs];
@@ -139,17 +141,17 @@ GlyphCache::GlyphCache(const Face & face
         for (uint16 gid = 1; loaded && gid != _num_glyphs; ++gid)
             _glyphs[gid] = loaded = _glyph_loader->read_glyph(gid, glyphs[gid], &numsubs);
 
         if (!loaded)
         {
             _glyphs[0] = 0;
             delete [] glyphs;
         }
-        else if (numsubs > 0)
+        else if (numsubs > 0 && _boxes)
         {
             GlyphBox * boxes = (GlyphBox *)gralloc<char>(_num_glyphs * sizeof(GlyphBox) + numsubs * 8 * sizeof(float));
             GlyphBox * currbox = boxes;
 
             for (uint16 gid = 0; currbox && gid != _num_glyphs; ++gid)
             {
                 _boxes[gid] = currbox;
                 currbox = _glyph_loader->read_box(gid, currbox, *_glyphs[gid]);
@@ -204,16 +206,18 @@ GlyphCache::~GlyphCache()
             free(_boxes[0]);
         free(_boxes);
     }
     delete _glyph_loader;
 }
 
 const GlyphFace *GlyphCache::glyph(unsigned short glyphid) const      //result may be changed by subsequent call with a different glyphid
 { 
+    if (glyphid >= numGlyphs())
+        return _glyphs[0];
     const GlyphFace * & p = _glyphs[glyphid];
     if (p == 0 && _glyph_loader)
     {
         int numsubs = 0;
         GlyphFace * g = new GlyphFace();
         if (g)  p = _glyph_loader->read_glyph(glyphid, *g, &numsubs);
         if (!p)
         {
@@ -280,26 +284,27 @@ GlyphCache::Loader::Loader(const Face & 
         _long_fmt              = flags & 1;
         int tmpnumgattrs       = (m_pGloc.size()
                                    - (p - m_pGloc)
                                    - sizeof(uint16)*(flags & 0x2 ? _num_attrs : 0))
                                        / (_long_fmt ? sizeof(uint32) : sizeof(uint16)) - 1;
 
         if (version >= 0x00020000 || tmpnumgattrs < 0 || tmpnumgattrs > 65535
             || _num_attrs == 0 || _num_attrs > 0x3000  // is this hard limit appropriate?
-            || _num_glyphs_graphics > tmpnumgattrs)
+            || _num_glyphs_graphics > tmpnumgattrs
+            || m_pGlat.size() < 4)
         {
             _head = Face::Table();
             return;
         }
 
         _num_glyphs_attributes = static_cast<unsigned short>(tmpnumgattrs);
         p = m_pGlat;
         version = be::read<uint32>(p);
-        if (version >= 0x00040000)       // reject Glat tables that are too new
+        if (version >= 0x00040000 || (version >= 0x00030000 && m_pGlat.size() < 8))       // reject Glat tables that are too new
         {
             _head = Face::Table();
             return;
         }
         else if (version >= 0x00030000)
         {
             unsigned int glatflags = be::read<uint32>(p);
             _has_boxes = glatflags & 1;
@@ -381,22 +386,24 @@ const GlyphFace * GlyphCache::Loader::re
         }
         else
         {
             be::skip<uint16>(gloc, glyphid);
             glocs = be::read<uint16>(gloc);
             gloce = be::peek<uint16>(gloc);
         }
 
-        if (glocs >= m_pGlat.size() || gloce > m_pGlat.size())
+        if (glocs >= m_pGlat.size() - 1 || gloce > m_pGlat.size())
             return 0;
 
         const uint32 glat_version = be::peek<uint32>(m_pGlat);
-        if (glat_version == 0x00030000)
+        if (glat_version >= 0x00030000)
         {
+            if (glocs >= gloce)
+                return 0;
             const byte * p = m_pGlat + glocs;
             uint16 bmap = be::read<uint16>(p);
             int num = bit_set_count((uint32)bmap);
             if (numsubs) *numsubs += num;
             glocs += 6 + 8 * num;
             if (glocs > gloce)
                 return 0;
         }
@@ -449,29 +456,31 @@ GlyphBox * GlyphCache::Loader::read_box(
     }
     else
     {
         be::skip<uint16>(gloc, gid);
         glocs = be::read<uint16>(gloc);
         gloce = be::peek<uint16>(gloc);
     }
 
-    if (glocs >= m_pGlat.size() || gloce > m_pGlat.size())
+    if (gloce > m_pGlat.size() || glocs + 6 >= gloce)
         return 0;
 
     const byte * p = m_pGlat + glocs;
     uint16 bmap = be::read<uint16>(p);
     int num = bit_set_count((uint32)bmap);
 
     Rect bbox = glyph.theBBox();
     Rect diamax(Position(bbox.bl.x + bbox.bl.y, bbox.bl.x - bbox.tr.y),
                 Position(bbox.tr.x + bbox.tr.y, bbox.tr.x - bbox.bl.y));
     Rect diabound = readbox(diamax, p[0], p[2], p[1], p[3]);
     ::new (curr) GlyphBox(num, bmap, &diabound);
     be::skip<uint8>(p, 4);
+    if (glocs + 6 + num * 8 >= gloce)
+        return 0;
 
     for (int i = 0; i < num * 2; ++i)
     {
         Rect box = readbox((i & 1) ? diamax : bbox, p[0], p[2], p[1], p[3]);
         curr->addSubBox(i >> 1, i & 1, &box);
         be::skip<uint8>(p, 4);
     } 
     return (GlyphBox *)((char *)(curr) + sizeof(GlyphBox) + 2 * num * sizeof(Rect));
--- a/gfx/graphite2/src/GlyphFace.cpp
+++ b/gfx/graphite2/src/GlyphFace.cpp
@@ -24,25 +24,25 @@ Mozilla Public License (http://mozilla.o
 License, as published by the Free Software Foundation, either version 2
 of the License or (at your option) any later version.
 */
 #include "inc/GlyphFace.h"
 
 
 using namespace graphite2;
 
-uint16 GlyphFace::getMetric(uint8 metric) const
+int32 GlyphFace::getMetric(uint8 metric) const
 {
     switch (metrics(metric))
     {
-        case kgmetLsb       : return static_cast<uint16>(m_bbox.bl.x);
-        case kgmetRsb       : return static_cast<uint16>(m_advance.x - m_bbox.tr.x);
-        case kgmetBbTop     : return static_cast<uint16>(m_bbox.tr.y);
-        case kgmetBbBottom  : return static_cast<uint16>(m_bbox.bl.y);
-        case kgmetBbLeft    : return static_cast<uint16>(m_bbox.bl.x);
-        case kgmetBbRight   : return static_cast<uint16>(m_bbox.tr.x);
-        case kgmetBbHeight  : return static_cast<uint16>(m_bbox.tr.y - m_bbox.bl.y);
-        case kgmetBbWidth   : return static_cast<uint16>(m_bbox.tr.x - m_bbox.bl.x);
-        case kgmetAdvWidth  : return static_cast<uint16>(m_advance.x);
-        case kgmetAdvHeight : return static_cast<uint16>(m_advance.y);
+        case kgmetLsb       : return m_bbox.bl.x;
+        case kgmetRsb       : return m_advance.x - m_bbox.tr.x;
+        case kgmetBbTop     : return m_bbox.tr.y;
+        case kgmetBbBottom  : return m_bbox.bl.y;
+        case kgmetBbLeft    : return m_bbox.bl.x;
+        case kgmetBbRight   : return m_bbox.tr.x;
+        case kgmetBbHeight  : return m_bbox.tr.y - m_bbox.bl.y;
+        case kgmetBbWidth   : return m_bbox.tr.x - m_bbox.bl.x;
+        case kgmetAdvWidth  : return m_advance.x;
+        case kgmetAdvHeight : return m_advance.y;
         default : return 0;
     }
 }
--- a/gfx/graphite2/src/Justifier.cpp
+++ b/gfx/graphite2/src/Justifier.cpp
@@ -95,62 +95,63 @@ float Segment::justify(Slot *pSlot, cons
 
     end = pLast->nextSibling();
     pFirst = pFirst->nextSibling();
 
     int icount = 0;
     int numLevels = silf()->numJustLevels();
     if (!numLevels)
     {
-        for (s = pSlot; s != end; s = s->next())
+        for (s = pSlot; s && s != end; s = s->nextSibling())
         {
             CharInfo *c = charinfo(s->before());
             if (isWhitespace(c->unicodeChar()))
             {
                 s->setJustify(this, 0, 3, 1);
                 s->setJustify(this, 0, 2, 1);
                 s->setJustify(this, 0, 0, -1);
                 ++icount;
             }
         }
         if (!icount)
         {
-            for (s = pSlot; s != end; s = s->nextSibling())
+            for (s = pSlot; s && s != end; s = s->nextSibling())
             {
                 s->setJustify(this, 0, 3, 1);
                 s->setJustify(this, 0, 2, 1);
                 s->setJustify(this, 0, 0, -1);
             }
         }
         ++numLevels;
     }
 
     Vector<JustifyTotal> stats(numLevels);
-    for (s = pFirst; s != end; s = s->nextSibling())
+    for (s = pFirst; s && s != end; s = s->nextSibling())
     {
         float w = s->origin().x / scale + s->advance() - base;
         if (w > currWidth) currWidth = w;
         for (int j = 0; j < numLevels; ++j)
             stats[j].accumulate(s, this, j);
         s->just(0);
     }
 
     for (int i = (width < 0.0f) ? -1 : numLevels - 1; i >= 0; --i)
     {
         float diff;
         float error = 0.;
         float diffpw;
         int tWeight = stats[i].weight();
+        if (tWeight == 0) continue;
 
         do {
             error = 0.;
             diff = width - currWidth;
             diffpw = diff / tWeight;
             tWeight = 0;
-            for (s = pFirst; s != end; s = s->nextSibling()) // don't include final glyph
+            for (s = pFirst; s && s != end; s = s->nextSibling()) // don't include final glyph
             {
                 int w = s->getJustify(this, i, 3);
                 float pref = diffpw * w + error;
                 int step = s->getJustify(this, i, 2);
                 if (!step) step = 1;        // handle lazy font developers
                 if (pref > 0)
                 {
                     float max = uint16(s->getJustify(this, i, 0));
--- a/gfx/graphite2/src/NameTable.cpp
+++ b/gfx/graphite2/src/NameTable.cpp
@@ -42,25 +42,26 @@ NameTable::NameTable(const void* data, s
     memcpy(pdata, data, length);
     m_table = reinterpret_cast<const TtfUtil::Sfnt::FontNames*>(pdata);
 
     if ((length > sizeof(TtfUtil::Sfnt::FontNames)) &&
         (length > sizeof(TtfUtil::Sfnt::FontNames) +
          sizeof(TtfUtil::Sfnt::NameRecord) * ( be::swap<uint16>(m_table->count) - 1)))
     {
         uint16 offset = be::swap<uint16>(m_table->string_offset);
-        m_nameData = reinterpret_cast<const uint8*>(pdata) + offset;
-        setPlatformEncoding(platformId, encodingID);
-        m_nameDataLength = length - offset;
+        if (offset < length)
+        {
+            m_nameData = reinterpret_cast<const uint8*>(pdata) + offset;
+            setPlatformEncoding(platformId, encodingID);
+            m_nameDataLength = length - offset;
+            return;
+        }
     }
-    else
-    {
-        free(const_cast<TtfUtil::Sfnt::FontNames*>(m_table));
-        m_table = NULL;
-    }
+    free(const_cast<TtfUtil::Sfnt::FontNames*>(m_table));
+    m_table = NULL;
 }
 
 uint16 NameTable::setPlatformEncoding(uint16 platformId, uint16 encodingID)
 {
     if (!m_nameData) return 0;
     uint16 i = 0;
     uint16 count = be::swap<uint16>(m_table->count);
     for (; i < count; i++)
@@ -139,28 +140,36 @@ void* NameTable::getName(uint16& languag
     uint16 offset = be::swap<uint16>(nameRecord.offset);
     if(offset + utf16Length > m_nameDataLength)
     {
         languageId = 0;
         length = 0;
         return NULL;
     }
     utf16Length >>= 1; // in utf16 units
-    utf16::codeunit_t * utf16Name = gralloc<utf16::codeunit_t>(utf16Length);
+    utf16::codeunit_t * utf16Name = gralloc<utf16::codeunit_t>(utf16Length + 1);
     if (!utf16Name)
     {
         languageId = 0;
         length = 0;
         return NULL;
     }
     const uint8* pName = m_nameData + offset;
     for (size_t i = 0; i < utf16Length; i++)
     {
         utf16Name[i] = be::read<uint16>(pName);
     }
+    utf16Name[utf16Length] = 0;
+    if (!utf16::validate(utf16Name, utf16Name + utf16Length))
+    {
+        free(utf16Name);
+        languageId = 0;
+        length = 0;
+        return NULL;
+    }
     switch (enc)
     {
     case gr_utf8:
     {
         utf8::codeunit_t* uniBuffer = gralloc<utf8::codeunit_t>(3 * utf16Length + 1);
         if (!uniBuffer)
         {
             free(utf16Name);
--- a/gfx/graphite2/src/Pass.cpp
+++ b/gfx/graphite2/src/Pass.cpp
@@ -96,17 +96,17 @@ bool Pass::readPass(const byte * const p
     const byte * p              = pass_start,
                * const pass_end = p + pass_length;
     size_t numRanges;
 
     if (e.test(pass_length < 40, E_BADPASSLENGTH)) return face.error(e); 
     // Read in basic values
     const byte flags = be::read<byte>(p);
     if (e.test((flags & 0x1f) && 
-            (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes()),
+            (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes() || !(m_silf->flags() & 0x20)),
             E_BADCOLLISIONPASS))
         return face.error(e);
     m_numCollRuns = flags & 0x7;
     m_kernColls   = (flags >> 3) & 0x3;
     m_isReverseDir = (flags >> 5) & 0x1;
     m_iMaxLoop = be::read<byte>(p);
     if (m_iMaxLoop < 1) m_iMaxLoop = 1;
     be::skip<byte>(p,2); // skip maxContext & maxBackup
@@ -226,17 +226,21 @@ bool Pass::readRules(const byte * rule_m
     // Load rules.
     const byte * ac_begin = 0, * rc_begin = 0,
                * ac_end = ac_data + be::peek<uint16>(o_action),
                * rc_end = rc_data + be::peek<uint16>(o_constraint);
 
     // Allocate pools
     m_rules = new Rule [m_numRules];
     m_codes = new Code [m_numRules*2];
-    const size_t prog_pool_sz = vm::Machine::Code::estimateCodeDataOut(ac_end - ac_data + rc_end - rc_data);
+    int totalSlots = 0;
+    const uint16 *tsort = sort_key;
+    for (int i = 0; i < m_numRules; ++i)
+        totalSlots += be::peek<uint16>(--tsort);
+    const size_t prog_pool_sz = vm::Machine::Code::estimateCodeDataOut(ac_end - ac_data + rc_end - rc_data, 2 * m_numRules, totalSlots);
     m_progs = gralloc<byte>(prog_pool_sz);
     byte * prog_pool_free = m_progs,
          * prog_pool_end  = m_progs + prog_pool_sz;
     if (e.test(!(m_rules && m_codes && m_progs), E_OUTOFMEM)) return face.error(e);
 
     Rule * r = m_rules + m_numRules - 1;
     for (size_t n = m_numRules; r >= m_rules; --n, --r, ac_end = ac_begin, rc_end = rc_begin)
     {
@@ -249,17 +253,17 @@ bool Pass::readRules(const byte * rule_m
         if (r->sort > 63 || r->preContext >= r->sort || r->preContext > m_maxPreCtxt || r->preContext < m_minPreCtxt)
             return false;
         ac_begin      = ac_data + be::peek<uint16>(--o_action);
         --o_constraint;
         rc_begin      = be::peek<uint16>(o_constraint) ? rc_data + be::peek<uint16>(o_constraint) : rc_end;
 
         if (ac_begin > ac_end || ac_begin > ac_data_end || ac_end > ac_data_end
                 || rc_begin > rc_end || rc_begin > rc_data_end || rc_end > rc_data_end
-                || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin) > size_t(prog_pool_end - prog_pool_free))
+                || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin, 2, r->sort) > size_t(prog_pool_end - prog_pool_free))
             return false;
         r->action     = new (m_codes+n*2-2) vm::Machine::Code(false, ac_begin, ac_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free);
         r->constraint = new (m_codes+n*2-1) vm::Machine::Code(true,  rc_begin, rc_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free);
 
         if (e.test(!r->action || !r->constraint, E_OUTOFMEM)
                 || e.test(r->action->status() != Code::loaded, r->action->status() + E_CODEFAILURE)
                 || e.test(r->constraint->status() != Code::loaded, r->constraint->status() + E_CODEFAILURE)
                 || e.test(!r->constraint->immutable(), E_MUTABLECCODE))
@@ -330,17 +334,17 @@ bool Pass::readStates(const byte * start
 
     // load state transition table.
     for (uint16 * t = m_transitions,
                 * const t_end = t + m_numTransition*m_numColumns; t != t_end; ++t)
     {
         *t = be::read<uint16>(states);
         if (e.test(*t >= m_numStates, E_BADSTATE))
         {
-            face.error_context((face.error_context() & 0xFFFF00) + EC_ATRANS + (((t - m_transitions) / m_numColumns) << 24));
+            face.error_context((face.error_context() & 0xFFFF00) + EC_ATRANS + (((t - m_transitions) / m_numColumns) << 8));
             return face.error(e);
         }
     }
 
     State * s = m_states,
           * const success_begin = m_states + m_numStates - m_numSuccess;
     const RuleEntry * rule_map_end = m_ruleMap + be::peek<uint16>(o_rule_map + m_numSuccess*sizeof(uint16));
     for (size_t n = m_numStates; n; --n, ++s)
@@ -351,17 +355,18 @@ bool Pass::readStates(const byte * start
         if (e.test(begin >= rule_map_end || end > rule_map_end || begin > end, E_BADRULEMAPPING))
         {
             face.error_context((face.error_context() & 0xFFFF00) + EC_ARULEMAP + (n << 24));
             return face.error(e);
         }
         s->rules = begin;
         s->rules_end = (end - begin <= FiniteStateMachine::MAX_RULES)? end :
             begin + FiniteStateMachine::MAX_RULES;
-        qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry);
+        if (begin)      // keep UBSan happy can't call qsort with null begin
+            qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry);
     }
 
     return true;
 }
 
 bool Pass::readRanges(const byte * ranges, size_t num_ranges, Error &e)
 {
     m_cols = gralloc<uint16>(m_numGlyphs);
@@ -449,19 +454,19 @@ bool Pass::runFSM(FiniteStateMachine& fs
     if (fsm.slots.context() < m_minPreCtxt)
         return false;
 
     uint16 state = m_startStates[m_maxPreCtxt - fsm.slots.context()];
     uint8  free_slots = SlotMap::MAX_SLOTS;
     do
     {
         fsm.slots.pushSlot(slot);
-        if (--free_slots == 0
-         || slot->gid() >= m_numGlyphs
+        if (slot->gid() >= m_numGlyphs
          || m_cols[slot->gid()] == 0xffffU
+         || --free_slots == 0
          || state >= m_numTransition)
             return free_slots != 0;
 
         const uint16 * transitions = m_transitions + state*m_numColumns;
         state = transitions[m_cols[slot->gid()]];
         if (state >= m_successStart)
             fsm.rules.accumulate_rules(m_states[state]);
 
@@ -627,37 +632,40 @@ bool Pass::testPassConstraint(Machine & 
 }
 
 
 bool Pass::testConstraint(const Rule & r, Machine & m) const
 {
     const uint16 curr_context = m.slotMap().context();
     if (unsigned(r.sort - r.preContext) > m.slotMap().size() - curr_context
         || curr_context - r.preContext < 0) return false;
+
+    vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext;
+    if (map[r.sort - 1] == 0)
+        return false;
+
     if (!*r.constraint) return true;
     assert(r.constraint->constraint());
-
-    vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext;
     for (int n = r.sort; n && map; --n, ++map)
     {
         if (!*map) continue;
         const int32 ret = r.constraint->run(m, map);
         if (!ret || m.status() != Machine::finished)
             return false;
     }
 
     return true;
 }
 
 
 void SlotMap::collectGarbage(Slot * &aSlot)
 {
     for(Slot **s = begin(), *const *const se = end() - 1; s != se; ++s) {
         Slot *& slot = *s;
-        if(slot->isDeleted() || slot->isCopied())
+        if(slot && (slot->isDeleted() || slot->isCopied()))
         {
             if (slot == aSlot)
                 aSlot = slot->prev() ? slot->prev() : slot->next();
             segment.freeSlot(slot);
         }
     }
 }
 
@@ -848,17 +856,16 @@ bool Pass::collisionShift(Segment *seg, 
             }
         }
     }
     return true;
 }
 
 bool Pass::collisionKern(Segment *seg, int dir, json * const dbgout) const
 {
-    KernCollider kerncoll(dbgout);
     Slot *start = seg->first();
     float ymin = 1e38f;
     float ymax = -1e38f;
     const GlyphCache &gc = seg->getFace()->glyphs();
 
     // phase 3 : handle kerning of clusters
 #if !defined GRAPHITE2_NTRACING
     if (dbgout)
@@ -871,17 +878,17 @@ bool Pass::collisionKern(Segment *seg, i
             return false;
         const SlotCollision * c = seg->collisionInfo(s);
         const Rect &bbox = seg->theGlyphBBoxTemporary(s->gid());
         float y = s->origin().y + c->shift().y;
         ymax = max(y + bbox.tr.y, ymax);
         ymin = min(y + bbox.bl.y, ymin);
         if (start && (c->flags() & (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX))
                         == (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX))
-            resolveKern(seg, s, start, kerncoll, dir, ymin, ymax, dbgout);
+            resolveKern(seg, s, start, dir, ymin, ymax, dbgout);
         if (c->flags() & SlotCollision::COLL_END)
             start = NULL;
         if (c->flags() & SlotCollision::COLL_START)
             start = s;
     }
 
 #if !defined GRAPHITE2_NTRACING
     if (dbgout)
@@ -1010,17 +1017,17 @@ bool Pass::resolveCollisions(Segment *se
     if (isCol)
     { cFix->setFlags(cFix->flags() | SlotCollision::COLL_ISCOL | SlotCollision::COLL_KNOWN); }
     else
     { cFix->setFlags((cFix->flags() & ~SlotCollision::COLL_ISCOL) | SlotCollision::COLL_KNOWN); }
     hasCol |= isCol;
     return true;
 }
 
-float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, KernCollider &coll, int dir,
+float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, int dir,
     float &ymin, float &ymax, json *const dbgout) const
 {
     Slot *nbor; // neighboring slot
     float currSpace = 0.;
     bool collides = false;
     unsigned int space_count = 0;
     Slot *base = slotFix;
     while (base->attachedTo())
@@ -1030,16 +1037,17 @@ float Pass::resolveKern(Segment *seg, Sl
 
     if (base != slotFix)
     {
         cFix->setFlags(cFix->flags() | SlotCollision::COLL_KERN | SlotCollision::COLL_FIX);
         return 0;
     }
     bool seenEnd = (cFix->flags() & SlotCollision::COLL_END) != 0;
     bool isInit = false;
+    KernCollider coll(dbgout);
 
     for (nbor = slotFix->next(); nbor; nbor = nbor->next())
     {
         if (nbor->isChildOf(base))
             continue;
         if (!gc.check(nbor->gid()))
             return 0.;
         const Rect &bb = seg->theGlyphBBoxTemporary(nbor->gid());
--- a/gfx/graphite2/src/Segment.cpp
+++ b/gfx/graphite2/src/Segment.cpp
@@ -419,16 +419,19 @@ Position Segment::positionSlots(const Fo
         reverseSlots();
         temp = iStart;
         iStart = iEnd;
         iEnd = temp;
     }
     if (!iStart)    iStart = m_first;
     if (!iEnd)      iEnd   = m_last;
 
+    if (!iStart || !iEnd)   // only true for empty segments
+        return currpos;
+
     if (isRtl)
     {
         for (Slot * s = iEnd, * const end = iStart->prev(); s && s != end; s = s->prev())
         {
             if (s->isBase())
                 currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x, isRtl, isFinal);
         }
     }
@@ -526,11 +529,14 @@ void Segment::doMirror(uint16 aMirror)
 }
 
 bool Segment::initCollisions()
 {
     m_collisions = grzeroalloc<SlotCollision>(slotCount());
     if (!m_collisions) return false;
 
     for (Slot *p = m_first; p; p = p->next())
-        ::new (collisionInfo(p)) SlotCollision(this, p);
+        if (p->index() < slotCount())
+            ::new (collisionInfo(p)) SlotCollision(this, p);
+        else
+            return false;
     return true;
 }
--- a/gfx/graphite2/src/Silf.cpp
+++ b/gfx/graphite2/src/Silf.cpp
@@ -350,20 +350,20 @@ uint16 Silf::getClassGlyph(uint16 cid, u
     }
     return 0;
 }
 
 
 bool Silf::runGraphite(Segment *seg, uint8 firstPass, uint8 lastPass, int dobidi) const
 {
     assert(seg != 0);
-    SlotMap            map(*seg, m_dir);
+    unsigned int       maxSize = seg->slotCount() * MAX_SEG_GROWTH_FACTOR;
+    SlotMap            map(*seg, m_dir, maxSize);
     FiniteStateMachine fsm(map, seg->getFace()->logger());
     vm::Machine        m(map);
-    unsigned int       initSize = seg->slotCount();
     uint8              lbidi = m_bPass;
 #if !defined GRAPHITE2_NTRACING
     json * const dbgout = seg->getFace()->logger();
 #endif
 
     if (lastPass == 0)
     {
         if (firstPass == lastPass && lbidi == 0xFF)
@@ -419,13 +419,13 @@ bool Silf::runGraphite(Segment *seg, uin
 
         // test whether to reorder, prepare for positioning
         bool reverse = (lbidi == 0xFF) && (seg->currdir() != ((m_dir & 1) ^ m_passes[i].reverseDir()));
         if ((i >= 32 || (seg->passBits() & (1 << i)) == 0 || m_passes[i].collisionLoops())
                 && !m_passes[i].runGraphite(m, fsm, reverse))
             return false;
         // only subsitution passes can change segment length, cached subsegments are short for their text
         if (m.status() != vm::Machine::finished
-            || (seg->slotCount() && seg->slotCount() * MAX_SEG_GROWTH_FACTOR < initSize))
+            || (seg->slotCount() && seg->slotCount() > maxSize))
             return false;
     }
     return true;
 }
--- a/gfx/graphite2/src/Slot.cpp
+++ b/gfx/graphite2/src/Slot.cpp
@@ -80,20 +80,20 @@ void Slot::set(const Slot & orig, int ch
 
 void Slot::update(int /*numGrSlots*/, int numCharInfo, Position &relpos)
 {
     m_before += numCharInfo;
     m_after += numCharInfo;
     m_position = m_position + relpos;
 }
 
-Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal)
+Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal, int depth)
 {
     SlotCollision *coll = NULL;
-    if (attrLevel && m_attLevel > attrLevel) return Position(0, 0);
+    if (depth > 100 || (attrLevel && m_attLevel > attrLevel)) return Position(0, 0);
     float scale = font ? font->scale() : 1.0f;
     Position shift(m_shift.x * (rtl * -2 + 1) + m_just, m_shift.y);
     float tAdvance = m_advance.x + m_just;
     if (isFinal && (coll = seg->collisionInfo(this)))
     {
         const Position &collshift = coll->offset();
         if (!(coll->flags() & SlotCollision::COLL_KERN) || rtl)
             shift = shift + collshift;
@@ -128,23 +128,23 @@ Position Slot::finalise(const Segment *s
     if (glyphFace)
     {
         Rect ourBbox = glyphFace->theBBox() * scale + m_position;
         bbox = bbox.widen(ourBbox);
     }
 
     if (m_child && m_child != this && m_child->attachedTo() == this)
     {
-        Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal);
+        Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal, depth + 1);
         if ((!m_parent || m_advance.x >= 0.5f) && tRes.x > res.x) res = tRes;
     }
 
     if (m_parent && m_sibling && m_sibling != this && m_sibling->attachedTo() == m_parent)
     {
-        Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal);
+        Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal, depth + 1);
         if (tRes.x > res.x) res = tRes;
     }
     
     if (!m_parent && clusterMin < base.x)
     {
         Position adj = Position(m_position.x - clusterMin, 0.);
         res += adj;
         m_position += adj;
@@ -160,35 +160,35 @@ int32 Slot::clusterMetric(const Segment 
         return 0;
     Rect bbox = seg->theGlyphBBoxTemporary(glyph());
     float clusterMin = 0.;
     Position res = finalise(seg, NULL, base, bbox, attrLevel, clusterMin, rtl, false);
 
     switch (metrics(metric))
     {
     case kgmetLsb :
-        return static_cast<uint32>(bbox.bl.x);
+        return bbox.bl.x;
     case kgmetRsb :
-        return static_cast<uint32>(res.x - bbox.tr.x);
+        return res.x - bbox.tr.x;
     case kgmetBbTop :
-        return static_cast<uint32>(bbox.tr.y);
+        return bbox.tr.y;
     case kgmetBbBottom :
-        return static_cast<uint32>(bbox.bl.y);
+        return bbox.bl.y;
     case kgmetBbLeft :
-        return static_cast<uint32>(bbox.bl.x);
+        return bbox.bl.x;
     case kgmetBbRight :
-        return static_cast<uint32>(bbox.tr.x);
+        return bbox.tr.x;
     case kgmetBbWidth :
-        return static_cast<uint32>(bbox.tr.x - bbox.bl.x);
+        return bbox.tr.x - bbox.bl.x;
     case kgmetBbHeight :
-        return static_cast<uint32>(bbox.tr.y - bbox.bl.y);
+        return bbox.tr.y - bbox.bl.y;
     case kgmetAdvWidth :
-        return static_cast<uint32>(res.x);
+        return res.x;
     case kgmetAdvHeight :
-        return static_cast<uint32>(res.y);
+        return res.y;
     default :
         return 0;
     }
 }
 
 #define SLOTGETCOLATTR(x) { SlotCollision *c = seg->collisionInfo(this); return c ? int(c-> x) : 0; }
 
 int Slot::getAttr(const Segment *seg, attrCode ind, uint8 subindex) const
@@ -290,19 +290,32 @@ void Slot::setAttr(Segment *seg, attrCod
     case gr_slatAdvX :  m_advance.x = value; break;
     case gr_slatAdvY :  m_advance.y = value; break;
     case gr_slatAttTo :
     {
         const uint16 idx = uint16(value);
         if (idx < map.size() && map[idx])
         {
             Slot *other = map[idx];
-            if (other == this || other == m_parent) break;
-            if (m_parent) m_parent->removeChild(this);
-            if (!other->isChildOf(this) && other->child(this))
+            if (other == this || other == m_parent || other->isCopied()) break;
+            if (m_parent) { m_parent->removeChild(this); attachTo(NULL); }
+            Slot *pOther = other;
+            int count = 0;
+            bool foundOther = false;
+            while (pOther)
+            {
+                ++count;
+                if (pOther == this) foundOther = true;
+                pOther = pOther->attachedTo();
+            }
+            for (pOther = m_child; pOther; pOther = pOther->m_child)
+                ++count;
+            for (pOther = m_sibling; pOther; pOther = pOther->m_sibling)
+                ++count;
+            if (count < 100 && !foundOther && other->child(this))
             {
                 attachTo(other);
                 if ((map.dir() != 0) ^ (idx > subindex))
                     m_with = Position(advance(), 0);
                 else        // normal match to previous root
                     m_attach = Position(other->advance(), 0);
             }
         }
@@ -416,41 +429,34 @@ bool Slot::sibling(Slot *ap)
         m_sibling = ap;
     else
         return m_sibling->sibling(ap);
     return true;
 }
 
 bool Slot::removeChild(Slot *ap)
 {
-    if (this == ap || !m_child) return false;
+    if (this == ap || !m_child || !ap) return false;
     else if (ap == m_child)
     {
         Slot *nSibling = m_child->nextSibling();
-        m_child->removeSibling(nSibling);
+        m_child->nextSibling(NULL);
         m_child = nSibling;
         return true;
     }
-    else
-        return m_child->removeSibling(ap);
-    return true;
-}
-
-bool Slot::removeSibling(Slot *ap)
-{
-    if (this == ap || !m_sibling) return false;
-    else if (ap == m_sibling)
+    for (Slot *p = m_child; p; p = p->m_sibling)
     {
-        m_sibling = m_sibling->nextSibling();
-        if (m_sibling) ap->removeSibling(m_sibling);
-        return true;
+        if (p->m_sibling && p->m_sibling == ap)
+        {
+            p->m_sibling = p->m_sibling->m_sibling;
+            ap->nextSibling(NULL);
+            return true;
+        }
     }
-    else
-        return m_sibling->removeSibling(ap);
-    return true;
+    return false;
 }
 
 void Slot::setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph)
 {
     m_glyphid = glyphid;
     m_bidiCls = -1;
     if (!theGlyph)
     {
@@ -475,21 +481,23 @@ void Slot::setGlyph(Segment *seg, uint16
     if (seg->silf()->aPassBits())
     {
         seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()]);
         if (seg->silf()->numPasses() > 16)
             seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()+1] << 16);
     }
 }
 
-void Slot::floodShift(Position adj)
+void Slot::floodShift(Position adj, int depth)
 {
+    if (depth > 100)
+        return;
     m_position += adj;
-    if (m_child) m_child->floodShift(adj);
-    if (m_sibling) m_sibling->floodShift(adj);
+    if (m_child) m_child->floodShift(adj, depth + 1);
+    if (m_sibling) m_sibling->floodShift(adj, depth + 1);
 }
 
 void SlotJustify::LoadSlot(const Slot *s, const Segment *seg)
 {
     for (int i = seg->silf()->numJustLevels() - 1; i >= 0; --i)
     {
         Justinfo *justs = seg->silf()->justAttrs() + i;
         int16 *v = values + i * NUMJUSTPARAMS;
@@ -514,15 +522,14 @@ Slot * Slot::nextInCluster(const Slot *s
             return base->nextSibling();
         s = base;
     }
     return NULL;
 }
 
 bool Slot::isChildOf(const Slot *base) const
 {
-    if (m_parent == base)
-        return true;
-    else if (!m_parent)
-        return false;
-    else
-        return m_parent->isChildOf(base);
+    for (Slot *p = m_parent; p; p = p->m_parent)
+        if (p == base)
+            return true;
+    return false;
 }
+
--- a/gfx/graphite2/src/TtfUtil.cpp
+++ b/gfx/graphite2/src/TtfUtil.cpp
@@ -891,25 +891,27 @@ const void * FindCmapSubtable(const void
 ----------------------------------------------------------------------------------------------*/
 bool CheckCmapSubtable4(const void * pCmapSubtable4, const void * pCmapEnd /*, unsigned int maxgid*/)
 {
     size_t table_len = (const byte *)pCmapEnd - (const byte *)pCmapSubtable4;
     if (!pCmapSubtable4) return false;
     const Sfnt::CmapSubTable * pTable = reinterpret_cast<const Sfnt::CmapSubTable *>(pCmapSubtable4);
     // Bob H say some freeware TT fonts have version 1 (eg, CALIGULA.TTF) 
     // so don't check subtable version. 21 Mar 2002 spec changes version to language.
-    if (be::swap(pTable->format) != 4) return false;
+    if (table_len < sizeof(*pTable) || be::swap(pTable->format) != 4) return false;
     const Sfnt::CmapSubTableFormat4 * pTable4 = reinterpret_cast<const Sfnt::CmapSubTableFormat4 *>(pCmapSubtable4);
+    if (table_len < sizeof(*pTable4))
+        return false;
     uint16 length = be::swap(pTable4->length);
     if (length > table_len)
         return false;
     if (length < sizeof(Sfnt::CmapSubTableFormat4))
         return false;
     uint16 nRanges = be::swap(pTable4->seg_count_x2) >> 1;
-    if (length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16))
+    if (!nRanges || length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16))
         return false;
     // check last range is properly terminated
     uint16 chEnd = be::peek<uint16>(pTable4->end_code + nRanges - 1);
     if (chEnd != 0xFFFF)
         return false;
 #if 0
     int lastend = -1;
     for (int i = 0; i < nRanges; ++i)
@@ -999,17 +1001,17 @@ gid16 CmapSubtable4Lookup(const void * p
         uint16 idRangeOffset = be::peek<uint16>(pMid += nSeg);
 
         if (idRangeOffset == 0)
             return (uint16)(idDelta + nUnicodeId); // must use modulus 2^16
 
         // Look up value in glyphIdArray
         const ptrdiff_t offset = (nUnicodeId - chStart) + (idRangeOffset >> 1) +
                 (pMid - reinterpret_cast<const uint16 *>(pTable));
-        if (offset * 2 >= be::swap<uint16>(pTable->length))
+        if (offset * 2 + 1 >= be::swap<uint16>(pTable->length))
             return 0;
         gid16 nGlyphId = be::peek<uint16>(reinterpret_cast<const uint16 *>(pTable)+offset);
         // If this value is 0, return 0. Else add the idDelta
         return nGlyphId ? nGlyphId + idDelta : 0;
     }
 
     return 0;
 }
@@ -1081,19 +1083,21 @@ unsigned int CmapSubtable4NextCodepoint(
 /*----------------------------------------------------------------------------------------------
     Check the Microsoft UCS-4 subtable for expected values.
 ----------------------------------------------------------------------------------------------*/
 bool CheckCmapSubtable12(const void *pCmapSubtable12, const void *pCmapEnd /*, unsigned int maxgid*/)
 {
     size_t table_len = (const byte *)pCmapEnd - (const byte *)pCmapSubtable12;
     if (!pCmapSubtable12)  return false;
     const Sfnt::CmapSubTable * pTable = reinterpret_cast<const Sfnt::CmapSubTable *>(pCmapSubtable12);
-    if (be::swap(pTable->format) != 12)
+    if (table_len < sizeof(*pTable) || be::swap(pTable->format) != 12)
         return false;
     const Sfnt::CmapSubTableFormat12 * pTable12 = reinterpret_cast<const Sfnt::CmapSubTableFormat12 *>(pCmapSubtable12);
+    if (table_len < sizeof(*pTable12))
+        return false;
     uint32 length = be::swap(pTable12->length);
     if (length > table_len)
         return false;
     if (length < sizeof(Sfnt::CmapSubTableFormat12))
         return false;
     uint32 num_groups = be::swap(pTable12->num_groups);
     if (num_groups > 0x10000000 || length != (sizeof(Sfnt::CmapSubTableFormat12) + (num_groups - 1) * sizeof(uint32) * 3))
         return false;
--- a/gfx/graphite2/src/inc/Code.h
+++ b/gfx/graphite2/src/inc/Code.h
@@ -81,17 +81,17 @@ private:
                 _modify,
                 _delete;
     mutable bool _own;
 
     void release_buffers() throw ();
     void failure(const status_t) throw();
 
 public:
-    static size_t estimateCodeDataOut(size_t num_bytecodes);
+    static size_t estimateCodeDataOut(size_t num_bytecodes, int nRules, int nSlots);
 
     Code() throw();
     Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end,
          uint8 pre_context, uint16 rule_length, const Silf &, const Face &,
          enum passtype pt, byte * * const _out = 0);
     Code(const Machine::Code &) throw();
     ~Code() throw();
     
@@ -107,19 +107,21 @@ public:
     void          externalProgramMoved(ptrdiff_t) throw();
 
     int32 run(Machine &m, slotref * & map) const;
     
     CLASS_NEW_DELETE;
 };
 
 inline
-size_t  Machine::Code::estimateCodeDataOut(size_t n_bc)
+size_t  Machine::Code::estimateCodeDataOut(size_t n_bc, int nRules, int nSlots)
 {
-    return (n_bc + 1) * (sizeof(instr)+sizeof(byte));
+    // max is: all codes are instructions + 1 for each rule + max tempcopies
+    // allocate space for separate maximal code and data then merge them later
+    return (n_bc + nRules + nSlots) * sizeof(instr) + n_bc * sizeof(byte);
 }
 
 
 inline Machine::Code::Code() throw()
 : _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0),
   _status(loaded), _constraint(false), _modify(false), _delete(false),
   _own(false)
 {
--- a/gfx/graphite2/src/inc/Face.h
+++ b/gfx/graphite2/src/inc/Face.h
@@ -82,17 +82,17 @@ public:
     uint16              languageForLocale(const char * locale) const;
 
     // Features
     uint16              numFeatures() const;
     const FeatureRef  * featureById(uint32 id) const;
     const FeatureRef  * feature(uint16 index) const;
 
     // Glyph related
-    uint16 getGlyphMetric(uint16 gid, uint8 metric) const;
+    int32  getGlyphMetric(uint16 gid, uint8 metric) const;
     uint16 findPseudo(uint32 uid) const;
 
     // Errors
     unsigned int        error() const { return m_error; }
     bool                error(Error e) { m_error = e.error(); return false; }
     unsigned int        error_context() const { return m_error; }
     void                error_context(unsigned int errcntxt) { m_errcntxt = errcntxt; }
 
--- a/gfx/graphite2/src/inc/GlyphFace.h
+++ b/gfx/graphite2/src/inc/GlyphFace.h
@@ -46,17 +46,17 @@ class GlyphFace
 public:
     GlyphFace();
     template<typename I>
     GlyphFace(const Rect & bbox, const Position & adv, I first, const I last);
 
     const Position    & theAdvance() const;
     const Rect        & theBBox() const { return m_bbox; }
     const sparse      & attrs() const { return m_attrs; }
-    uint16              getMetric(uint8 metric) const;
+    int32               getMetric(uint8 metric) const;
 
     CLASS_NEW_DELETE;
 private:
     Rect     m_bbox;        // bounding box metrics in design units
     Position m_advance;     // Advance width and height in design units
     sparse   m_attrs;
 };
 
--- a/gfx/graphite2/src/inc/Machine.h
+++ b/gfx/graphite2/src/inc/Machine.h
@@ -179,17 +179,17 @@ inline SlotMap& Machine::slotMap() const
     return _map;
 }
 
 inline Machine::status_t Machine::status() const throw()
 {
     return _status;
 }
 
-inline void Machine::check_final_stack(const int32 * const sp)
+inline void Machine::check_final_stack(const stack_t * const sp)
 {
     stack_t const * const base  = _stack + STACK_GUARD,
                   * const limit = base + STACK_MAX;
     if      (sp <  base)    _status = stack_underflow;       // This should be impossible now.
     else if (sp >= limit)   _status = stack_overflow;        // So should this.
     else if (sp != base)    _status = stack_not_empty;
 }
 
--- a/gfx/graphite2/src/inc/Pass.h
+++ b/gfx/graphite2/src/inc/Pass.h
@@ -76,17 +76,17 @@ private:
     void    dumpRuleEventConsidered(const FiniteStateMachine & fsm, const RuleEntry & re) const;
     void    dumpRuleEventOutput(const FiniteStateMachine & fsm, vm::Machine & m, const Rule & r, Slot * os) const;
     void    adjustSlot(int delta, Slot * & slot_out, SlotMap &) const;
     bool    collisionShift(Segment *seg, int dir, json * const dbgout) const;
     bool    collisionKern(Segment *seg, int dir, json * const dbgout) const;
     bool    collisionFinish(Segment *seg, GR_MAYBE_UNUSED json * const dbgout) const;
     bool    resolveCollisions(Segment *seg, Slot *slot, Slot *start, ShiftCollider &coll, bool isRev,
                      int dir, bool &moved, bool &hasCol, json * const dbgout) const;
-    float   resolveKern(Segment *seg, Slot *slot, Slot *start, KernCollider &coll, int dir,
+    float   resolveKern(Segment *seg, Slot *slot, Slot *start, int dir,
                      float &ymin, float &ymax, json *const dbgout) const;
 
     const Silf        * m_silf;
     uint16            * m_cols;
     Rule              * m_rules; // rules
     RuleEntry         * m_ruleMap;
     uint16            * m_startStates; // prectxt length
     uint16            * m_transitions;
--- a/gfx/graphite2/src/inc/Rule.h
+++ b/gfx/graphite2/src/inc/Rule.h
@@ -97,17 +97,17 @@ bool State::empty() const
     return rules_end == rules;
 }
 
 
 class SlotMap
 {
 public:
   enum {MAX_SLOTS=64};
-  SlotMap(Segment & seg, uint8 direction);
+  SlotMap(Segment & seg, uint8 direction, int maxSize);
   
   Slot       * * begin();
   Slot       * * end();
   size_t         size() const;
   unsigned short context() const;
   void           reset(Slot &, unsigned short);
   
   Slot * const & operator[](int n) const;
@@ -116,23 +116,25 @@ public:
   void           collectGarbage(Slot *& aSlot);
 
   Slot         * highwater() { return m_highwater; }
   void           highwater(Slot *s) { m_highwater = s; m_highpassed = false; }
   bool           highpassed() const { return m_highpassed; }
   void           highpassed(bool v) { m_highpassed = v; }
 
   uint8          dir() const { return m_dir; }
+  int            decMax() { return --m_maxSize; }
 
   Segment &    segment;
 private:
   Slot         * m_slot_map[MAX_SLOTS+1];
   unsigned short m_size;
   unsigned short m_precontext;
   Slot         * m_highwater;
+  int            m_maxSize;
   uint8          m_dir;
   bool           m_highpassed;
 };
 
 
 class FiniteStateMachine
 {
 public:
@@ -237,18 +239,19 @@ void FiniteStateMachine::Rules::accumula
       return;
     }
   }
   while (rre != rrend && out != lrend) { *out++ = *rre++; }
   m_end = out;
 }
 
 inline
-SlotMap::SlotMap(Segment & seg, uint8 direction)
-: segment(seg), m_size(0), m_precontext(0), m_highwater(0), m_dir(direction), m_highpassed(false)
+SlotMap::SlotMap(Segment & seg, uint8 direction, int maxSize)
+: segment(seg), m_size(0), m_precontext(0), m_highwater(0),
+    m_maxSize(maxSize), m_dir(direction), m_highpassed(false)
 {
     m_slot_map[0] = 0;
 }
 
 inline
 Slot * * SlotMap::begin()
 {
   return &m_slot_map[1]; // allow map to go 1 before slot_map when inserting
--- a/gfx/graphite2/src/inc/Segment.h
+++ b/gfx/graphite2/src/inc/Segment.h
@@ -35,17 +35,17 @@ of the License or (at your option) any l
 #include "inc/FeatureVal.h"
 #include "inc/GlyphCache.h"
 #include "inc/GlyphFace.h"
 #include "inc/Slot.h"
 #include "inc/Position.h"
 #include "inc/List.h"
 #include "inc/Collider.h"
 
-#define MAX_SEG_GROWTH_FACTOR  256
+#define MAX_SEG_GROWTH_FACTOR  64
 
 namespace graphite2 {
 
 typedef Vector<Features>        FeatureList;
 typedef Vector<Slot *>          SlotRope;
 typedef Vector<int16 *>         AttributeRope;
 typedef Vector<SlotJustify *>   JustifyRope;
 
@@ -154,17 +154,17 @@ public:
     int8 getSlotBidiClass(Slot *s) const;
     void doMirror(uint16 aMirror);
     Slot *addLineEnd(Slot *nSlot);
     void delLineEnd(Slot *s);
     bool hasJustification() const { return m_justifies.size() != 0; }
     void reverseSlots();
 
     bool isWhitespace(const int cid) const;
-    bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS); }
+    bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS) && m_collisions; }
     SlotCollision *collisionInfo(const Slot *s) const { return m_collisions ? m_collisions + s->index() : 0; }
     CLASS_NEW_DELETE
 
 public:       //only used by: GrSegment* makeAndInitialize(const GrFont *font, const GrFace *face, uint32 script, const FeaturesHandle& pFeats/*must not be IsNull*/, encform enc, const void* pStart, size_t nChars, int dir);
     bool read_text(const Face *face, const Features* pFeats/*must not be NULL*/, gr_encform enc, const void*pStart, size_t nChars);
     void finalise(const Font *font, bool reverse=false);
     float justify(Slot *pSlot, const Font *font, float width, enum justFlags flags, Slot *pFirst, Slot *pLast);
     bool initCollisions();
--- a/gfx/graphite2/src/inc/Slot.h
+++ b/gfx/graphite2/src/inc/Slot.h
@@ -92,17 +92,17 @@ public:
     void adjKern(const Position &pos) { m_shift = m_shift + pos; m_advance = m_advance + pos; }
     void origin(const Position &pos) { m_position = pos + m_shift; }
     void originate(int ind) { m_original = ind; }
     int original() const { return m_original; }
     void before(int ind) { m_before = ind; }
     void after(int ind) { m_after = ind; }
     bool isBase() const { return (!m_parent); }
     void update(int numSlots, int numCharInfo, Position &relpos);
-    Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal);
+    Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal, int depth = 0);
     bool isDeleted() const { return (m_flags & DELETED) ? true : false; }
     void markDeleted(bool state) { if (state) m_flags |= DELETED; else m_flags &= ~DELETED; }
     bool isCopied() const { return (m_flags & COPIED) ? true : false; }
     void markCopied(bool state) { if (state) m_flags |= COPIED; else m_flags &= ~COPIED; }
     bool isPositioned() const { return (m_flags & POSITIONED) ? true : false; }
     void markPositioned(bool state) { if (state) m_flags |= POSITIONED; else m_flags &= ~POSITIONED; }
     bool isInsertBefore() const { return !(m_flags & INSERTED); }
     uint8 getBidiLevel() const { return m_bidiLevel; }
@@ -123,20 +123,19 @@ public:
     Position attachOffset() const { return m_attach - m_with; }
     Slot* firstChild() const { return m_child; }
     void firstChild(Slot *ap) { m_child = ap; }
     bool child(Slot *ap);
     Slot* nextSibling() const { return m_sibling; }
     void nextSibling(Slot *ap) { m_sibling = ap; }
     bool sibling(Slot *ap);
     bool removeChild(Slot *ap);
-    bool removeSibling(Slot *ap);
     int32 clusterMetric(const Segment* seg, uint8 metric, uint8 attrLevel, bool rtl);
     void positionShift(Position a) { m_position += a; }
-    void floodShift(Position adj);
+    void floodShift(Position adj, int depth = 0);
     float just() const { return m_just; }
     void just(float j) { m_just = j; }
     Slot *nextInCluster(const Slot *s) const;
     bool isChildOf(const Slot *base) const;
 
     CLASS_NEW_DELETE
 
 private:
--- a/gfx/graphite2/src/inc/UtfCodec.h
+++ b/gfx/graphite2/src/inc/UtfCodec.h
@@ -35,16 +35,17 @@ typedef uint32  uchar_t;
 
 template <int N>
 struct _utf_codec
 {
     typedef uchar_t codeunit_t;
 
     static void     put(codeunit_t * cp, const uchar_t , int8 & len) throw();
     static uchar_t  get(const codeunit_t * cp, int8 & len) throw();
+    static bool     validate(const codeunit_t * s, const codeunit_t * e) throw();
 };
 
 
 template <>
 struct _utf_codec<32>
 {
 private:
     static const uchar_t    limit = 0x110000;
@@ -58,16 +59,22 @@ public:
     }
 
     inline
     static uchar_t get(const codeunit_t * cp, int8 & l) throw()
     {
         if (cp[0] < limit)  { l = 1;  return cp[0]; }
         else                { l = -1; return 0xFFFD; }
     }
+
+    inline
+    static bool validate(codeunit_t * s, codeunit_t * e) throw()
+    {
+        return e > s;
+    }
 };
 
 
 template <>
 struct _utf_codec<16>
 {
 private:
     static const int32  lead_offset      = 0xD800 - (0x10000 >> 10);
@@ -88,22 +95,31 @@ public:
     }
 
     inline
     static uchar_t get(const codeunit_t * cp, int8 & l) throw()
     {
         const uint32    uh = cp[0];
         l = 1;
 
-        if (0xD800 > uh || uh > 0xDFFF) { return uh; }
+        if (uh < 0xD800|| uh > 0xDFFF) { return uh; }
         const uint32 ul = cp[1];
-        if (uh > 0xDBFF || 0xDC00 > ul || ul > 0xDFFF) { l = -1; return 0xFFFD; }
+        if (uh > 0xDBFF || ul < 0xDC00 || ul > 0xDFFF) { l = -1; return 0xFFFD; }
         ++l;
         return (uh<<10) + ul + surrogate_offset;
     }
+
+    inline
+    static bool validate(codeunit_t * s, codeunit_t * e) throw()
+    {
+        const ptrdiff_t n = e-s;
+        if (n <= 0) return n == 0;
+        const uint32 u = *(s+(n-1)); // Get the last codepoint
+        return (u < 0xD800 || u > 0xDBFF);
+    }
 };
 
 
 template <>
 struct _utf_codec<8>
 {
 private:
     static const int8 sz_lut[16];
@@ -143,16 +159,34 @@ public:
 
         if (l != seq_sz || toolong)
         {
             l = -l;
             return 0xFFFD;
         }
         return u;
     }
+
+    inline
+    static bool validate(codeunit_t * s, codeunit_t * e) throw()
+    {
+        const ptrdiff_t n = e-s;
+        if (n <= 0) return n == 0;
+        s += (n-1);
+        if (*s < 0x80) return true;
+        if (*s >= 0xC0) return false;
+        if (n == 1) return true;
+        if (*--s < 0x80) return true;
+        if (*s >= 0xe0) return false;
+        if (n == 2 || *s >= 0xC0) return true;
+        if (*--s < 0x80) return true;
+        if (*s >= 0xF0) return false;
+        return true;
+    }
+
 };
 
 
 template <typename C>
 class _utf_iterator
 {
     typedef _utf_codec<sizeof(C)*8> codec;
 
@@ -195,16 +229,21 @@ public:
 
 template <typename C>
 struct utf
 {
     typedef typename _utf_codec<sizeof(C)*8>::codeunit_t codeunit_t;
 
     typedef _utf_iterator<C>        iterator;
     typedef _utf_iterator<const C>  const_iterator;
+
+    inline
+    static bool validate(codeunit_t * s, codeunit_t * e) throw() {
+        return _utf_codec<sizeof(C)*8>::validate(s,e);
+    }
 };
 
 
 typedef utf<uint32> utf32;
 typedef utf<uint16> utf16;
 typedef utf<uint8>  utf8;
 
 } // namespace graphite2
--- a/gfx/graphite2/src/inc/opcode_table.h
+++ b/gfx/graphite2/src/inc/opcode_table.h
@@ -113,13 +113,13 @@ static const opcode_t opcode_table[] =
     {{NILOP,NILOP},                                 0, "PUT_SUBS3"},
     {{do_(put_glyph), NILOP},                       2, "PUT_GLYPH"},                // output_class output_class
     {{do2(push_glyph_attr)},                        3, "PUSH_GLYPH_ATTR"},          // gattrnum gattrnum slot
     {{do2(push_att_to_glyph_attr)},                 3, "PUSH_ATT_TO_GLYPH_ATTR"},   // gattrnum gattrnum slot
     {{do2(bor)},                                    0, "BITOR"},
     {{do2(band)},                                   0, "BITAND"},
     {{do2(bnot)},                                   0, "BITNOT"},   // 0x40
     {{do2(setbits)},                                4, "BITSET"},
-    {{do2(set_feat)},                               2, "SET_FEAT"},
+    {{do_(set_feat), NILOP},                        2, "SET_FEAT"},                 // featidx slot
     // private opcodes for internal use only, comes after all other on disk opcodes.
     {{do_(temp_copy), NILOP},                       0, "TEMP_COPY"}
 };
 
--- a/gfx/graphite2/src/inc/opcodes.h
+++ b/gfx/graphite2/src/inc/opcodes.h
@@ -62,17 +62,18 @@ of the License or (at your option) any l
 //        ip        = The current instruction pointer
 //        endPos    = Position of advance of last cluster
 //        dir       = writing system directionality of the font
      
 
 // #define NOT_IMPLEMENTED     assert(false)
 #define NOT_IMPLEMENTED
 
-#define binop(op)           const int32 a = pop(); *sp = int32(*sp) op a
+#define binop(op)           const uint32 a = pop(); *sp = uint32(*sp) op a
+#define sbinop(op)          const int32 a = pop(); *sp = int32(*sp) op a
 #define use_params(n)       dp += n
 
 #define declare_params(n)   const byte * param = dp; \
                             use_params(n);
 
 #define push(n)             { *++sp = n; }
 #define pop()               (*sp--)
 #define slotat(x)           (map[(x)])
@@ -125,17 +126,17 @@ STARTOP(sub)
 ENDOP
 
 STARTOP(mul)
     binop(*);
 ENDOP
 
 STARTOP(div_)
     if (*sp == 0) DIE;
-    binop(/);
+    sbinop(/);
 ENDOP
 
 STARTOP(min_)
     const int32 a = pop(), b = *sp;
     if (a < b) *sp = a;
 ENDOP
 
 STARTOP(max_)
@@ -176,29 +177,29 @@ STARTOP(equal)
     binop(==);
 ENDOP
 
 STARTOP(not_eq_)
     binop(!=);
 ENDOP
 
 STARTOP(less)
-    binop(<);
+    sbinop(<);
 ENDOP
 
 STARTOP(gtr)
-    binop(>);
+    sbinop(>);
 ENDOP
 
 STARTOP(less_eq)
-    binop(<=);
+    sbinop(<=);
 ENDOP
 
 STARTOP(gtr_eq)
-    binop(>=);
+    sbinop(>=);
 ENDOP
 
 STARTOP(next)
     if (map - &smap[0] >= int(smap.size())) DIE
     if (is)
     {
         if (is == smap.highwater())
             smap.highpassed(true);
@@ -237,17 +238,17 @@ STARTOP(put_subs_8bit_obs)
         index = seg.findClassIndex(input_class, slot->gid());
         is->setGlyph(&seg, seg.getClassGlyph(output_class, index));
     }
 ENDOP
 
 STARTOP(put_copy)
     declare_params(1);
     const int  slot_ref = int8(*param);
-    if (is)
+    if (is && !is->isDeleted())
     {
         slotref ref = slotat(slot_ref);
         if (ref && ref != is)
         {
             int16 *tempUserAttrs = is->userAttrs();
             if (is->attachedTo() || is->firstChild()) DIE
             Slot *prev = is->prev();
             Slot *next = is->next();
@@ -262,16 +263,17 @@ STARTOP(put_copy)
                 is->attachedTo()->child(is);
         }
         is->markCopied(false);
         is->markDeleted(false);
     }
 ENDOP
 
 STARTOP(insert)
+    if (smap.decMax() <= 0) DIE;
     Slot *newSlot = seg.newSlot();
     if (!newSlot) DIE;
     Slot *iss = is;
     while (iss && iss->isDeleted()) iss = iss->next();
     if (!iss)
     {
         if (seg.last())
         {
@@ -550,31 +552,31 @@ ENDOP
 
 STARTOP(iattr_add)
     declare_params(2);
     const attrCode      slat = attrCode(uint8(param[0]));
     const size_t        idx  = uint8(param[1]);
     const          int  val  = int(pop());
     if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0)
     {
-        seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir);
+        seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir());
         flags |= POSITIONED;
     }
     int res = is->getAttr(&seg, slat, idx);
     is->setAttr(&seg, slat, idx, val + res, smap);
 ENDOP
 
 STARTOP(iattr_sub)
     declare_params(2);
     const attrCode      slat = attrCode(uint8(param[0]));
     const size_t        idx  = uint8(param[1]);
     const          int  val  = int(pop());
     if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0)
     {
-        seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir);
+        seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir());
         flags |= POSITIONED;
     }
     int res = is->getAttr(&seg, slat, idx);
     is->setAttr(&seg, slat, idx, res - val, smap);
 ENDOP
 
 STARTOP(push_proc_state)
     use_params(1);
--- a/js/public/HashTable.h
+++ b/js/public/HashTable.h
@@ -8,16 +8,17 @@
 #define js_HashTable_h
 
 #include "mozilla/Alignment.h"
 #include "mozilla/Assertions.h"
 #include "mozilla/Attributes.h"
 #include "mozilla/Casting.h"
 #include "mozilla/MemoryReporting.h"
 #include "mozilla/Move.h"
+#include "mozilla/Opaque.h"
 #include "mozilla/PodOperations.h"
 #include "mozilla/ReentrancyGuard.h"
 #include "mozilla/TemplateLib.h"
 #include "mozilla/TypeTraits.h"
 
 #include "js/Utility.h"
 
 namespace js {
@@ -27,16 +28,18 @@ template <class> struct DefaultHasher;
 template <class, class> class HashMapEntry;
 namespace detail {
     template <class T> class HashTableEntry;
     template <class T, class HashPolicy, class AllocPolicy> class HashTable;
 }
 
 /*****************************************************************************/
 
+using Generation = mozilla::Opaque<uint64_t>;
+
 // A JS-friendly, STL-like container providing a hash-based map from keys to
 // values. In particular, HashMap calls constructors and destructors of all
 // objects added so non-PODs may be used safely.
 //
 // Key/Value requirements:
 //  - movable, destructible, assignable
 // HashPolicy requirements:
 //  - see Hash Policy section below
@@ -200,17 +203,19 @@ class HashMap
         return impl.sizeOfExcludingThis(mallocSizeOf);
     }
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
         return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf);
     }
 
     // If |generation()| is the same before and after a HashMap operation,
     // pointers into the table remain valid.
-    uint32_t generation() const                       { return impl.generation(); }
+    Generation generation() const {
+        return impl.generation();
+    }
 
     /************************************************** Shorthand operations */
 
     bool has(const Lookup& l) const {
         return impl.lookup(l).found();
     }
 
     // Overwrite existing value with v. Return false on oom.
@@ -431,17 +436,19 @@ class HashSet
         return impl.sizeOfExcludingThis(mallocSizeOf);
     }
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
         return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf);
     }
 
     // If |generation()| is the same before and after a HashSet operation,
     // pointers into the table remain valid.
-    uint32_t generation() const                       { return impl.generation(); }
+    Generation generation() const {
+        return impl.generation();
+    }
 
     /************************************************** Shorthand operations */
 
     bool has(const Lookup& l) const {
         return impl.lookup(l).found();
     }
 
     // Add |u| if it is not present already. Return false on oom.
@@ -766,17 +773,17 @@ class HashTable : private AllocPolicy
     // table operations unless |generation()| is tested.
     class Ptr
     {
         friend class HashTable;
 
         Entry* entry_;
 #ifdef JS_DEBUG
         const HashTable* table_;
-        uint32_t generation;
+        Generation generation;
 #endif
 
       protected:
         Ptr(Entry& entry, const HashTable& tableArg)
           : entry_(&entry)
 #ifdef JS_DEBUG
           , table_(&tableArg)
           , generation(tableArg.generation())
@@ -873,17 +880,17 @@ class HashTable : private AllocPolicy
             while (cur < end && !cur->isLive())
                 ++cur;
         }
 
         Entry* cur, *end;
 #ifdef JS_DEBUG
         const HashTable* table_;
         uint64_t mutationCount;
-        uint32_t generation;
+        Generation generation;
         bool validEntry;
 #endif
 
       public:
         Range()
           : cur(nullptr)
           , end(nullptr)
 #ifdef JS_DEBUG
@@ -1012,18 +1019,18 @@ class HashTable : private AllocPolicy
     // HashTable is not copyable or assignable
     HashTable(const HashTable&) = delete;
     void operator=(const HashTable&) = delete;
 
   private:
     static const size_t CAP_BITS = 24;
 
   public:
-    Entry*      table;                 // entry storage
-    uint32_t    gen;                    // entry storage generation number
+    uint64_t    gen;                    // entry storage generation number
+    Entry*      table;                  // entry storage
     uint32_t    entryCount;             // number of entries in table
     uint32_t    removedCount:CAP_BITS;  // removed entry sentinels in table
     uint32_t    hashShift:8;            // multiplicative hash shift
 
 #ifdef JS_DEBUG
     uint64_t     mutationCount;
     mutable bool mEntered;
     mutable struct Stats
@@ -1097,18 +1104,18 @@ class HashTable : private AllocPolicy
         for (Entry* e = oldTable, *end = e + capacity; e < end; ++e)
             e->destroyIfLive();
         alloc.free_(oldTable);
     }
 
   public:
     explicit HashTable(AllocPolicy ap)
       : AllocPolicy(ap)
+      , gen(0)
       , table(nullptr)
-      , gen(0)
       , entryCount(0)
       , removedCount(0)
       , hashShift(sHashBits)
 #ifdef JS_DEBUG
       , mutationCount(0)
       , mEntered(false)
 #endif
     {}
@@ -1524,20 +1531,20 @@ class HashTable : private AllocPolicy
     }
 
     uint32_t capacity() const
     {
         MOZ_ASSERT(table);
         return JS_BIT(sHashBits - hashShift);
     }
 
-    uint32_t generation() const
+    Generation generation() const
     {
         MOZ_ASSERT(table);
-        return gen;
+        return Generation(gen);
     }
 
     size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const
     {
         return mallocSizeOf(table);
     }
 
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/gc/bug-1241731.js
@@ -0,0 +1,4 @@
+if (!('oomTest' in this))
+    quit();
+
+oomTest(() => serialize(0, [{}]));
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/parser/bug-1254164.js
@@ -0,0 +1,6 @@
+// |jit-test| slow;
+
+var s = '';
+for (var i = 0; i < 70000; i++)
+    s += 'function x' + i + '() { x' + i + '(); }\n';
+eval("(function() { " + s + " })();");
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -270,20 +270,16 @@ class AutoHashMapRooter : protected Auto
 
     size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
         return map.sizeOfExcludingThis(mallocSizeOf);
     }
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
         return map.sizeOfIncludingThis(mallocSizeOf);
     }
 
-    uint32_t generation() const {
-        return map.generation();
-    }
-
     /************************************************** Shorthand operations */
 
     bool has(const Lookup& l) const {
         return map.has(l);
     }
 
     template<typename KeyInput, typename ValueInput>
     bool put(const KeyInput& k, const ValueInput& v) {
@@ -385,20 +381,16 @@ class AutoHashSetRooter : protected Auto
 
     size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
         return set.sizeOfExcludingThis(mallocSizeOf);
     }
     size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
         return set.sizeOfIncludingThis(mallocSizeOf);
     }
 
-    uint32_t generation() const {
-        return set.generation();
-    }
-
     /************************************************** Shorthand operations */
 
     bool has(const Lookup& l) const {
         return set.has(l);
     }
 
     bool put(const T& t) {
         return set.put(t);
--- a/js/src/jscntxt.h
+++ b/js/src/jscntxt.h
@@ -30,21 +30,21 @@ class DebugModeOSRVolatileJitFrameIterat
 }
 
 typedef HashSet<JSObject*> ObjectSet;
 typedef HashSet<Shape*> ShapeSet;
 
 /* Detects cycles when traversing an object graph. */
 class AutoCycleDetector
 {
+    Generation hashsetGenerationAtInit;
     JSContext* cx;
     RootedObject obj;
+    ObjectSet::AddPtr hashsetAddPointer;
     bool cyclic;
-    uint32_t hashsetGenerationAtInit;
-    ObjectSet::AddPtr hashsetAddPointer;
     MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
 
   public:
     AutoCycleDetector(JSContext* cx, HandleObject objArg
                       MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
       : cx(cx), obj(cx, objArg), cyclic(true)
     {
         MOZ_GUARD_OBJECT_NOTIFIER_INIT;
--- a/js/src/jsobj.cpp
+++ b/js/src/jsobj.cpp
@@ -1574,18 +1574,19 @@ CreateThisForFunctionWithGroup(JSContext
         // Not enough objects with this group have been created yet, so make a
         // plain object and register it with the group. Use the maximum number
         // of fixed slots, as is also required by the TypeNewScript.
         gc::AllocKind allocKind = GuessObjectGCKind(NativeObject::MAX_FIXED_SLOTS);
         PlainObject* res = NewObjectWithGroup<PlainObject>(cx, group, parent, allocKind, newKind);
         if (!res)
             return nullptr;
 
-        if (newKind != SingletonObject)
-            newScript->registerNewObject(res);
+        // Make sure group->newScript is still there.
+        if (newKind != SingletonObject && group->newScript())
+            group->newScript()->registerNewObject(res);
 
         return res;
     }
 
     gc::AllocKind allocKind = NewObjectGCKind(&PlainObject::class_);
 
     if (newKind == SingletonObject) {
         Rooted<TaggedProto> protoRoot(cx, group->proto());
--- a/js/src/jsscript.cpp
+++ b/js/src/jsscript.cpp
@@ -111,17 +111,20 @@ Bindings::initWithTemporaryStorage(Exclu
     // JITs when interpreting/compiling aliasedvar ops.)
 
     // Since unaliased variables are, by definition, only accessed by local
     // operations and never through the scope chain, only give shapes to
     // aliased variables. While the debugger may observe any scope object at
     // any time, such accesses are mediated by DebugScopeProxy (see
     // DebugScopeProxy::handleUnaliasedAccess).
     uint32_t nslots = CallObject::RESERVED_SLOTS;
-    uint32_t aliasedBodyLevelLexicalBegin = UINT16_MAX;
+
+    // Unless there are aliased body-level lexical bindings at all, set the
+    // begin index to an impossible slot number.
+    uint32_t aliasedBodyLevelLexicalBegin = LOCALNO_LIMIT;
     for (BindingIter bi(self); bi; bi++) {
         if (bi->aliased()) {
             // Per ES6, lexical bindings cannot be accessed until
             // initialized. Remember the first aliased slot that is a
             // body-level lexical, so that they may be initialized to sentinel
             // magic values.
             if (numBodyLevelLexicals > 0 &&
                 nslots < aliasedBodyLevelLexicalBegin &&
--- a/js/src/jsscript.h
+++ b/js/src/jsscript.h
@@ -201,18 +201,18 @@ class Bindings
     friend class BindingIter;
     friend class AliasedFormalIter;
 
     RelocatablePtrShape callObjShape_;
     uintptr_t bindingArrayAndFlag_;
     uint16_t numArgs_;
     uint16_t numBlockScoped_;
     uint16_t numBodyLevelLexicals_;
-    uint16_t aliasedBodyLevelLexicalBegin_;
     uint16_t numUnaliasedBodyLevelLexicals_;
+    uint32_t aliasedBodyLevelLexicalBegin_;
     uint32_t numVars_;
     uint32_t numUnaliasedVars_;
 
 #if JS_BITS_PER_WORD == 32
     // Bindings is allocated inline inside JSScript, which needs to be
     // gc::Cell aligned.
     uint32_t padding_;
 #endif
--- a/js/src/jswatchpoint.cpp
+++ b/js/src/jswatchpoint.cpp
@@ -22,25 +22,25 @@ DefaultHasher<WatchKey>::hash(const Look
 {
     return DefaultHasher<JSObject*>::hash(key.object.get()) ^ HashId(key.id.get());
 }
 
 namespace {
 
 class AutoEntryHolder {
     typedef WatchpointMap::Map Map;
+    Generation gen;
     Map& map;
     Map::Ptr p;
-    uint32_t gen;
     RootedObject obj;
     RootedId id;
 
   public:
     AutoEntryHolder(JSContext* cx, Map& map, Map::Ptr p)
-      : map(map), p(p), gen(map.generation()), obj(cx, p->key().object), id(cx, p->key().id)
+      : gen(map.generation()), map(map), p(p), obj(cx, p->key().object), id(cx, p->key().id)
     {
         MOZ_ASSERT(!p->value().held);
         p->value().held = true;
     }
 
     ~AutoEntryHolder() {
         if (gen != map.generation())
             p = map.lookup(WatchKey(obj, id));
--- a/js/src/shell/jsheaptools.cpp
+++ b/js/src/shell/jsheaptools.cpp
@@ -267,17 +267,17 @@ HeapReverser::traverseEdge(void* cell, J
     Map::AddPtr a = map.lookupForAdd(cell);
     if (!a) {
         /*
          * We've never visited this cell before. Add it to the map (thus
          * marking it as visited), and put it on the work stack, to be
          * visited from the main loop.
          */
         Node n(kind);
-        uint32_t generation = map.generation();
+        Generation generation = map.generation();
         if (!map.add(a, cell, Move(n)) ||
             !work.append(Child(cell, kind)))
             return false;
         /* If the map has been resized, re-check the pointer. */
         if (map.generation() != generation)
             a = map.lookupForAdd(cell);
     }
 
--- a/js/src/vm/Shape.cpp
+++ b/js/src/vm/Shape.cpp
@@ -382,18 +382,20 @@ NativeObject::getChildPropertyOnDictiona
 
     if (obj->inDictionaryMode()) {
         MOZ_ASSERT(parent == obj->lastProperty());
         RootedGeneric<StackShape*> childRoot(cx, &child);
         shape = childRoot->isAccessorShape() ? NewGCAccessorShape(cx) : NewGCShape(cx);
         if (!shape)
             return nullptr;
         if (childRoot->hasSlot() && childRoot->slot() >= obj->lastProperty()->base()->slotSpan()) {
-            if (!obj->setSlotSpan(cx, childRoot->slot() + 1))
+            if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) {
+                new (shape) Shape(obj->lastProperty()->base()->unowned(), 0);
                 return nullptr;
+            }
         }
         shape->initDictionaryShape(*childRoot, obj->numFixedSlots(), &obj->shape_);
     }
 
     return shape;
 }
 
 /* static */ Shape*
--- a/js/src/vm/StructuredClone.cpp
+++ b/js/src/vm/StructuredClone.cpp
@@ -379,39 +379,50 @@ ReadStructuredClone(JSContext* cx, uint6
 
 // If the given buffer contains Transferables, free them. Note that custom
 // Transferables will use the JSStructuredCloneCallbacks::freeTransfer() to
 // delete their transferables.
 static void
 Discard(uint64_t* buffer, size_t nbytes, const JSStructuredCloneCallbacks* cb, void* cbClosure)
 {
     MOZ_ASSERT(nbytes % sizeof(uint64_t) == 0);
-    if (nbytes < sizeof(uint64_t))
+    uint64_t* end = buffer + nbytes / sizeof(uint64_t);
+    uint64_t* point = buffer;
+    if (point == end)
         return; // Empty buffer
 
-    uint64_t* point = buffer;
     uint32_t tag, data;
     SCInput::getPair(point++, &tag, &data);
     if (tag != SCTAG_TRANSFER_MAP_HEADER)
         return;
 
     if (TransferableMapHeader(data) == SCTAG_TM_TRANSFERRED)
         return;
 
     // freeTransfer should not GC
     JS::AutoSuppressGCAnalysis nogc;
 
+    if (point == end)
+        return;
+
     uint64_t numTransferables = LittleEndian::readUint64(point++);
     while (numTransferables--) {
+        if (point == end)
+            return;
+
         uint32_t ownership;
         SCInput::getPair(point++, &tag, &ownership);
         MOZ_ASSERT(tag >= SCTAG_TRANSFER_MAP_PENDING_ENTRY);
+        if (point == end)
+            return;
 
         void* content;
         SCInput::getPtr(point++, &content);
+        if (point == end)
+            return;
 
         uint64_t extraData = LittleEndian::readUint64(point++);
 
         if (ownership < JS::SCTAG_TMO_FIRST_OWNED)
             continue;
 
         if (ownership == JS::SCTAG_TMO_ALLOC_DATA) {
             js_free(content);
--- a/media/libjpeg/jstdhuff.c
+++ b/media/libjpeg/jstdhuff.c
@@ -36,16 +36,17 @@ add_huff_table (j_common_ptr cinfo,
    */
   nsymbols = 0;
   for (len = 1; len <= 16; len++)
     nsymbols += bits[len];
   if (nsymbols < 1 || nsymbols > 256)
     ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
 
   MEMCOPY((*htblptr)->huffval, val, nsymbols * sizeof(UINT8));
+  MEMZERO(&((*htblptr)->huffval[nsymbols]), (256 - nsymbols) * sizeof(UINT8));
 
   /* Initialize sent_table FALSE so table will be written to JPEG file. */
   (*htblptr)->sent_table = FALSE;
 }
 
 
 LOCAL(void)
 std_huff_tables (j_common_ptr cinfo)
--- a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
+++ b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
@@ -612,18 +612,18 @@ status_t
 SampleTable::parseSampleCencInfo() {
     if ((!mCencDefaultSize && !mCencInfoCount) || mCencOffsets.isEmpty()) {
         // We don't have all the cenc information we need yet. Quietly fail and
         // hope we get the data we need later in the track header.
         ALOGV("Got half of cenc saio/saiz pair. Deferring parse until we get the other half.");
         return OK;
     }
 
-    if (!mCencSizes.isEmpty() && mCencOffsets.size() > 1 &&
-        mCencSizes.size() != mCencOffsets.size()) {
+    if ((mCencOffsets.size() > 1 && mCencOffsets.size() < mCencInfoCount) ||
+        (!mCencDefaultSize && mCencSizes.size() < mCencInfoCount)) {
         return ERROR_MALFORMED;
     }
 
     if (mCencInfoCount > kMAX_ALLOCATION / sizeof(SampleCencInfo)) {
         // Avoid future OOM.
         return ERROR_MALFORMED;
     }
 
--- a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
+++ b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
@@ -567,16 +567,19 @@ AudioDeviceWindowsCore::AudioDeviceWindo
 // ----------------------------------------------------------------------------
 
 AudioDeviceWindowsCore::~AudioDeviceWindowsCore()
 {
     WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed", __FUNCTION__);
 
     Terminate();
 
+    // Recording thread should be shut down before this!
+    assert(_hRecThread == NULL);
+
     // The IMMDeviceEnumerator is created during construction. Must release
     // it here and not in Terminate() since we don't recreate it in Init().
     SAFE_RELEASE(_ptrEnumerator);
 
     _ptrAudioBuffer = NULL;
 
     if (NULL != _hRenderSamplesReadyEvent)
     {
new file mode 100644
--- /dev/null
+++ b/mfbt/Opaque.h
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* An opaque integral type supporting only comparison operators. */
+
+#ifndef mozilla_Opaque_h
+#define mozilla_Opaque_h
+
+#include "mozilla/TypeTraits.h"
+
+namespace mozilla {
+
+/**
+ * Opaque<T> is a replacement for integral T in cases where only comparisons
+ * must be supported, and it's desirable to prevent accidental dependency on
+ * exact values.
+ */
+template<typename T>
+class Opaque final
+{
+  static_assert(mozilla::IsIntegral<T>::value,
+                "mozilla::Opaque only supports integral types");
+
+  T mValue;
+
+public:
+  Opaque() {}
+  explicit Opaque(T aValue) : mValue(aValue) {}
+
+  bool operator==(const Opaque& aOther) const {
+    return mValue == aOther.mValue;
+  }
+
+  bool operator!=(const Opaque& aOther) const {
+    return !(*this == aOther);
+  }
+};
+
+} // namespace mozilla
+
+#endif /* mozilla_Opaque_h */
--- a/mfbt/moz.build
+++ b/mfbt/moz.build
@@ -48,16 +48,17 @@ EXPORTS.mozilla = [
     'MathAlgorithms.h',
     'Maybe.h',
     'MaybeOneOf.h',
     'MemoryChecking.h',
     'MemoryReporting.h',
     'Move.h',
     'NullPtr.h',
     'NumericLimits.h',
+    'Opaque.h',
     'Pair.h',
     'PodOperations.h',
     'Poison.h',
     'Range.h',
     'RangedPtr.h',
     'RefCountType.h',
     'ReentrancyGuard.h',
     'RefPtr.h',
--- a/security/manager/boot/src/StaticHPKPins.h
+++ b/security/manager/boot/src/StaticHPKPins.h
@@ -805,16 +805,17 @@ static const TransportSecurityPreload kP
   { "aus4.mozilla.org", true, true, true, 3, &kPinset_mozilla },
   { "az.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "be.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "bi.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "blog.torproject.org", true, false, false, -1, &kPinset_tor },
   { "blogger.com", true, false, false, -1, &kPinset_google_root_pems },
   { "blogspot.com", true, false, false, -1, &kPinset_google_root_pems },
   { "br.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
+  { "bugs.chromium.org", true, false, false, -1, &kPinset_google_root_pems },
   { "build.chromium.org", true, false, false, -1, &kPinset_google_root_pems },
   { "business.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "business.twitter.com", true, false, false, -1, &kPinset_twitterCom },
   { "ca.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "cd.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "cdn.mozilla.net", true, false, true, -1, &kPinset_mozilla },
   { "cdn.mozilla.org", true, false, true, -1, &kPinset_mozilla },
   { "cg.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
@@ -840,16 +841,17 @@ static const TransportSecurityPreload kP
   { "cr.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "ct.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "de.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "dev.twitter.com", true, false, false, -1, &kPinset_twitterCom },
   { "developers.facebook.com", true, false, false, -1, &kPinset_facebook },
   { "dist.torproject.org", true, false, false, -1, &kPinset_tor },
   { "dk.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "dl.google.com", true, false, false, -1, &kPinset_google_root_pems },
+  { "dns.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "do.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "docs.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "domains.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "doubleclick.net", true, false, false, -1, &kPinset_google_root_pems },
   { "drive.google.com", true, false, false, -1, &kPinset_google_root_pems },
   { "dropbox.com", true, false, false, -1, &kPinset_dropbox },
   { "dropboxstatic.com", false, true, false, -1, &kPinset_dropbox },
   { "dropboxusercontent.com", false, true, false, -1, &kPinset_dropbox },
@@ -1236,13 +1238,13 @@ static const TransportSecurityPreload kP
   { "youtu.be", true, false, false, -1, &kPinset_google_root_pems },
   { "youtube-nocookie.com", true, false, false, -1, &kPinset_google_root_pems },
   { "youtube.com", true, false, false, -1, &kPinset_google_root_pems },
   { "ytimg.com", true, false, false, -1, &kPinset_google_root_pems },
   { "za.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
   { "zh.search.yahoo.com", false, true, false, -1, &kPinset_yahoo },
 };
 
-// Pinning Preload List Length = 452;
+// Pinning Preload List Length = 454;
 
 static const int32_t kUnknownId = -1;
 
-static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1462016822237000);
+static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1469273938349000);
--- a/security/manager/boot/src/nsSTSPreloadList.errors
+++ b/security/manager/boot/src/nsSTSPreloadList.errors
@@ -1,1046 +1,1836 @@
-0x0a.net: could not connect to host
+020wifi.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+0p.no: did not receive HSTS header
+0x1337.eu: could not connect to host
+0x90.fi: could not connect to host
+1001.best: could not connect to host
+10seos.com: did not receive HSTS header
+123plons.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+1464424382.rsc.cdn77.org: could not connect to host
+1a-jva.de: could not connect to host
 1password.com: did not receive HSTS header
 206rc.net: max-age too low: 2592000
+2nerds1bit.com: could not connect to host
+2or3.tk: could not connect to host
 300651.ru: did not receive HSTS header
-302.nyc: did not receive HSTS header
+302.nyc: could not connect to host
+314chan.org: could not connect to host
+365.or.jp: could not connect to host
 3chit.cf: could not connect to host
+420dongstorm.com: could not connect to host
+47ronin.com: did not receive HSTS header
+4d2.xyz: could not connect to host
 4sqsu.eu: could not connect to host
+50millionablaze.org: did not receive HSTS header
 56ct.com: did not receive HSTS header
+808.lv: could not connect to host
+911911.pw: could not connect to host
+abecodes.net: could not connect to host
 abioniere.de: could not connect to host
+acr.im: could not connect to host
+activeweb.top: did not receive HSTS header
 activiti.alfresco.com: did not receive HSTS header
+acuve.jp: could not connect to host
 ad-notam.com: did not receive HSTS header
 ad-notam.de: did not receive HSTS header
 ad-notam.fr: did not receive HSTS header
 ad-notam.it: did not receive HSTS header
 ad-notam.us: did not receive HSTS header
 ada.is: max-age too low: 2592000
-adelevie.com: could not connect to host
+addvocate.com: could not connect to host
 adhs-chaoten.net: did not receive HSTS header
 admin.google.com: did not receive HSTS header (error ignored - included regardless)
 adsfund.org: could not connect to host
-adviespuntklokkenluiders.nl: did not receive HSTS header
+advancedstudio.ro: could not connect to host
+aemoria.com: did not receive HSTS header
 aes256.ru: could not connect to host
+aether.pw: could not connect to host
 aevpn.net: could not connect to host
+aficionados.com.br: did not receive HSTS header
 afp548.tk: could not connect to host
-agilebits.net: did not receive HSTS header
+agbremen.de: did not receive HSTS header
 agrimap.com: did not receive HSTS header
-agrios.de: did not receive HSTS header
-aiflab.com: did not receive HSTS header
+agrios.de: could not connect to host
+ahxxm.com: could not connect to host
+aiflab.com: could not connect to host
 airbnb.com: did not receive HSTS header
 aiticon.de: did not receive HSTS header
-akaoma.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+aiwdirect.com: did not receive HSTS header
 akclinics.org: did not receive HSTS header
 akselimedia.fi: did not receive HSTS header
+akutun.cl: did not receive HSTS header
 al-shami.net: did not receive HSTS header
+alanrickmanflipstable.com: could not connect to host
 alarmsystemreviews.com: did not receive HSTS header
+alcazaar.com: could not connect to host
 alecvannoten.be: did not receive HSTS header
-allinonecyprus.com: did not receive HSTS header
+alenan.org: could not connect to host
+alessandro.pw: did not receive HSTS header
+alethearose.com: did not receive HSTS header
+alfredxing.com: did not receive HSTS header
+all-subtitles.com: could not connect to host
 alpha.irccloud.com: could not connect to host
 alphabit-secure.com: could not connect to host
 altmv.com: max-age too low: 7776000
+amaforums.org: could not connect to host
 amigogeek.net: did not receive HSTS header
+amilx.com: did not receive HSTS header
+amri.nl: did not receive HSTS header
+amunoz.org: did not receive HSTS header
+anarchistischegroepnijmegen.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+ancientkarma.com: could not connect to host
+andere-gedanken.net: max-age too low: 10
 andreasbreitenlohner.de: did not receive HSTS header
 andreasolsson.se: could not connect to host
+androoz.se: did not receive HSTS header
 andymartin.cc: could not connect to host
-anfsanchezo.me: could not connect to host
-animurecs.com: did not receive HSTS header
+animurecs.com: could not connect to host
 ankakaak.com: could not connect to host
-anshuman-chatterjee.com: did not receive HSTS header
+annabellaw.com: max-age too low: 0
+anomaly.ws: could not connect to host
+anshuman-chatterjee.com: could not connect to host
+ant.land: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+antimine.kr: could not connect to host
+antoniorequena.com.ve: max-age too low: 0
+antscript.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+any.pm: did not receive HSTS header
 anycoin.me: could not connect to host
 apachelounge.com: did not receive HSTS header
 api.mega.co.nz: could not connect to host
 api.recurly.com: did not receive HSTS header
-apibot.de: did not receive HSTS header
-apiomat.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+apibot.de: could not connect to host
+apiomat.com: max-age too low: 0
 apis.google.com: did not receive HSTS header (error ignored - included regardless)
 app.manilla.com: could not connect to host
 appengine.google.com: did not receive HSTS header (error ignored - included regardless)
+applez.xyz: could not connect to host
+approlys.fr: did not receive HSTS header
 apps-for-fishing.com: could not connect to host
 appseccalifornia.org: did not receive HSTS header
-arabdigitalexpression.org: max-age too low: 1
+arabdigitalexpression.org: did not receive HSTS header
+aradulconteaza.ro: could not connect to host
+aran.me.uk: did not receive HSTS header
+arbu.eu: could not connect to host
+armory.supplies: could not connect to host
+armytricka.cz: did not receive HSTS header
 arrakis.se: could not connect to host
-arrayify.com: max-age too low: 0
+arrayify.com: could not connect to host
+art2web.net: could not connect to host
+arturkohut.com: could not connect to host
+asasuou.pw: could not connect to host
+asc16.com: could not connect to host
+aserver.co: could not connect to host
 asset-alive.com: did not receive HSTS header
 asset-alive.net: did not receive HSTS header
 atavio.at: could not connect to host
 atavio.ch: could not connect to host
-atavio.de: did not receive HSTS header
+attimidesigns.com: did not receive HSTS header
 au.search.yahoo.com: max-age too low: 172800
-aurainfosec.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-auraredeye.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-auraredshield.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+aurainfosec.com: could not connect to host
+auraredeye.com: could not connect to host
+auraredshield.com: could not connect to host
+ausnah.me: could not connect to host
+aussiecable.org: did not receive HSTS header
 auszeit.bio: did not receive HSTS header
 auth.mail.ru: did not receive HSTS header
 authentication.io: could not connect to host
 auto4trade.nl: could not connect to host
+auverbox.ovh: did not receive HSTS header
 av.de: did not receive HSTS header
+avalon-island.ru: could not connect to host
+avarty.com: could not connect to host
+avec-ou-sans-ordonnance.fr: did not receive HSTS header
+awg-mode.de: did not receive HSTS header
 axado.com.br: max-age too low: 0
+axeny.com: did not receive HSTS header
 az.search.yahoo.com: did not receive HSTS header
 azprep.us: could not connect to host
+azuxul.fr: did not receive HSTS header
+b3orion.com: max-age too low: 0
+babystep.tv: did not receive HSTS header
+back-bone.nl: did not receive HSTS header
+badkamergigant.com: could not connect to host
+baff.lu: did not receive HSTS header
 bagelsbakery.com: could not connect to host
+baiduaccount.com: could not connect to host
 balcan-underground.net: could not connect to host
 baldwinkoo.com: could not connect to host
+barely.sexy: did not receive HSTS header
+baumstark.ca: did not receive HSTS header
+bazarstupava.sk: did not receive HSTS header
 bccx.com: could not connect to host
 bcm.com.au: max-age too low: 0
+bcnx.de: did not receive HSTS header
 be.search.yahoo.com: did not receive HSTS header
+beach-inspector.com: did not receive HSTS header
+beachi.es: could not connect to host
 beastowner.com: did not receive HSTS header
-beautykat.ru: did not receive HSTS header
+bebesurdoue.com: could not connect to host
 bedeta.de: could not connect to host
-beholdthehurricane.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+bedrijvenadministratie.nl: did not receive HSTS header
+beholdthehurricane.com: could not connect to host
+beier.io: could not connect to host
 belairsewvac.com: did not receive HSTS header
+belics.com: did not receive HSTS header
+ben.ninja: could not connect to host
+benk.press: could not connect to host
 benny003.de: did not receive HSTS header
 betnet.fr: could not connect to host
+bets.de: did not receive HSTS header
 bevapehappy.com: did not receive HSTS header
+beyondpricing.com: did not receive HSTS header
+bezorg.ninja: could not connect to host
+bfear.com: could not connect to host
+bgmn.net: could not connect to host
 bi.search.yahoo.com: did not receive HSTS header
 bidon.ca: did not receive HSTS header
 bigdinosaur.org: did not receive HSTS header
 bigshinylock.minazo.net: could not connect to host
+bildiri.ci: could not connect to host
 billninja.com: did not receive HSTS header
+bionicspirit.com: could not connect to host
+bismarck.moe: did not receive HSTS header
+bitchan.it: could not connect to host
+bitcoinworld.me: could not connect to host
 bitfactory.ws: could not connect to host
 bitfarm-archiv.com: did not receive HSTS header
 bitfarm-archiv.de: did not receive HSTS header
-bitvigor.com: did not receive HSTS header
+bithosting.io: did not receive HSTS header
+bitvigor.com: could not connect to host
 bizon.sk: did not receive HSTS header
 blacklane.com: did not receive HSTS header
+blackphoenix.de: could not connect to host
+blha303.com.au: could not connect to host
+blog.gparent.org: did not receive HSTS header
 blog.lookout.com: did not receive HSTS header
 blubbablasen.de: could not connect to host
-bluetenmeer.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-bmoattachments.org: could not connect to host
-bochs.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+blucas.org: did not receive HSTS header
+bluetenmeer.com: did not receive HSTS header
+blutroyal.de: could not connect to host
+bngsecure.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+bochs.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 bodo-wolff.de: did not receive HSTS header
 bogosity.se: could not connect to host
-bonigo.de: did not receive HSTS header
+bonigo.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 bonitabrazilian.co.nz: did not receive HSTS header
 bookingapp.nl: did not receive HSTS header
-borchers-media.de: did not receive HSTS header
+boomerang.com: could not connect to host
+boomersurf.com: could not connect to host
+boringsecurity.net: could not connect to host
+boris.one: could not connect to host
+bowling.com: did not receive HSTS header
 bowlroll.net: max-age too low: 0
+br3in.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 braineet.com: did not receive HSTS header
 brainfork.ml: could not connect to host
 braintreepayments.com: did not receive HSTS header
 brainvation.de: did not receive HSTS header
+brakemanpro.com: did not receive HSTS header
+brakstad.org: did not receive HSTS header
 bran.cc: could not connect to host
 branchtrack.com: did not receive HSTS header
+brandon.so: could not connect to host
 brks.xyz: could not connect to host
 browserid.org: did not receive HSTS header
 brrr.fr: could not connect to host
+bsdtips.com: could not connect to host
+bulletpoint.cz: did not receive HSTS header
+buri.be: could not connect to host
 business.lookout.com: could not connect to host
 business.medbank.com.mt: did not receive HSTS header
+bustimes.org: could not connect to host
 buttercoin.com: did not receive HSTS header
+buybaby.eu: did not receive HSTS header
+buzzconcert.com: could not connect to host
+bvalle.com: could not connect to host
 bysymphony.com: max-age too low: 0
-c16t.uk: could not connect to host
-cabarave.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-caesreon.com: did not receive HSTS header
+bytepark.de: did not receive HSTS header
+bytesystems.com: could not connect to host
+c3b.info: could not connect to host
 cafe-scientifique.org.ec: could not connect to host
 cake.care: could not connect to host
 calgaryconstructionjobs.com: did not receive HSTS header
 calibreapp.com: did not receive HSTS header
-calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+canadiangamblingchoice.com: did not receive HSTS header
+captchatheprize.com: could not connect to host
 car-navi.ph: did not receive HSTS header
-carbonmade.com: max-age too low: 5184000
+carboneselectricosnettosl.info: max-age too low: 0
+cardoni.net: did not receive HSTS header
 carlolly.co.uk: could not connect to host
+carlosalves.info: could not connect to host
+carthage.edu: did not receive HSTS header
+casinostest.com: did not receive HSTS header
 catnapstudios.com: could not connect to host
+cavedroid.xyz: could not connect to host
 cctech.ph: did not receive HSTS header
 cd.search.yahoo.com: did not receive HSTS header
 cdnb.co: could not connect to host
+cdndepo.com: did not receive HSTS header
+cdreporting.co.uk: did not receive HSTS header
 cecipu.gob.cl: could not connect to host
 celltek-server.de: did not receive HSTS header
 centralvacsunlimited.net: did not receive HSTS header
+centralync.com: did not receive HSTS header
 cert.se: max-age too low: 2628001
 cesal.net: could not connect to host
-cesidianroot.eu: did not receive HSTS header
+cfetengineering.com: could not connect to host
 cg.search.yahoo.com: did not receive HSTS header
 chainmonitor.com: could not connect to host
+championsofregnum.com: did not receive HSTS header
 changelab.cc: max-age too low: 0
-chartstoffarm.de: could not connect to host
+chargejuice.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+charnleyhouse.co.uk: max-age too low: 604800
+chartstoffarm.de: max-age too low: 10
 chatbot.me: could not connect to host
+chebedara.com: could not connect to host
 checkout.google.com: did not receive HSTS header (error ignored - included regardless)
 cheesetart.my: could not connect to host
-chijiokeindustries.co.uk: could not connect to host
+chejianer.cn: did not receive HSTS header
+chijiokeindustries.co.uk: did not receive HSTS header
+chiru.no: did not receive HSTS header
 chm.vn: did not receive HSTS header
-chocolah.com.au: did not receive HSTS header
-chontalpa.pw: did not receive HSTS header
+chontalpa.pw: could not connect to host
+christianbargon.de: max-age too low: 0
 chrisupjohn.com: could not connect to host
 chrome-devtools-frontend.appspot.com: did not receive HSTS header (error ignored - included regardless)
 chrome.google.com: did not receive HSTS header (error ignored - included regardless)
 chroniclesofgeorge.com: did not receive HSTS header
-cidr.ml: did not receive HSTS header
-citiagent.cz: did not receive HSTS header
+chuckame.fr: did not receive HSTS header
+cidr.ml: could not connect to host
+cip.md: did not receive HSTS header
+cirfi.com: could not connect to host
+citiagent.cz: could not connect to host
+cityoflaurel.org: did not receive HSTS header
+classicspublishing.com: could not connect to host
+cleaningsquad.ca: max-age too low: 0
+clerkendweller.uk: could not connect to host
+clickandgo.com: did not receive HSTS header
 climaprecio.es: did not receive HSTS header
 clintonbloodworth.com: could not connect to host
 clintonbloodworth.io: could not connect to host
 cloudcert.org: did not receive HSTS header
-cloudcy.net: did not receive HSTS header
-clouddesktop.co.nz: could not connect to host
+cloudcy.net: could not connect to host
+clouddesktop.co.nz: did not receive HSTS header
 cloudflare.com: did not receive HSTS header
 cloudimag.es: could not connect to host
-cloudstoragemaus.com: could not connect to host
 cloudwalk.io: did not receive HSTS header
+clywedogmaths.co.uk: could not connect to host
+cmc-versand.de: did not receive HSTS header
 cmci.dk: did not receive HSTS header
 cn.search.yahoo.com: did not receive HSTS header
+codabix.net: could not connect to host
 code.google.com: did not receive HSTS header (error ignored - included regardless)
-codepref.com: could not connect to host
 coding.net: did not receive HSTS header
 coffeeetc.co.uk: could not connect to host
 coffeestrategies.com: did not receive HSTS header
 coindam.com: could not connect to host
+collies.eu: did not receive HSTS header
 colognegaming.net: could not connect to host
-comdurav.com: did not receive HSTS header
+coloradocomputernetworking.net: could not connect to host
 concord-group.co.jp: did not receive HSTS header
 conformal.com: could not connect to host
 console.python.org: did not receive HSTS header
 cordial-restaurant.com: did not receive HSTS header
 core.mx: could not connect to host
+core4system.de: did not receive HSTS header
+corepartners.com.ua: did not receive HSTS header
+cormilu.com.br: 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
+count.sh: could not connect to host
 coursella.com: did not receive HSTS header
 cr.search.yahoo.com: did not receive HSTS header
 crate.io: did not receive HSTS header
 crowdcurity.com: did not receive HSTS header
 crowdjuris.com: could not connect to host
+cruzr.xyz: could not connect to host
+cryptearth.de: could not connect to host
 crypto.is: max-age too low: 7776000
+cryptobin.org: could not connect to host
+cryptolab.tk: could not connect to host
+cryptoparty.at: could not connect to host
 crysadm.com: max-age too low: 1
 csawctf.poly.edu: could not connect to host
+csfs.org.uk: could not connect to host
 csgodicegame.com: did not receive HSTS header
 csgokings.eu: could not connect to host
-csohack.tk: did not receive HSTS header
+csohack.tk: could not connect to host
 ct.search.yahoo.com: did not receive HSTS header
+cubeserver.eu: could not connect to host
+cubewano.com: could not connect to host
 cujanovic.com: did not receive HSTS header
-curlybracket.co.uk: could not connect to host
-cvsoftub.com: could not connect to host
+cupidmentor.com: did not receive HSTS header
+cutorrent.com: could not connect to host
 cyanogenmod.xxx: could not connect to host
 cybershambles.com: could not connect to host
+cycleluxembourg.lu: did not receive HSTS header
 cydia-search.io: could not connect to host
 cyphertite.com: could not connect to host
+dah5.com: did not receive HSTS header
 daknob.net: did not receive HSTS header
+dakrib.net: could not connect to host
+dalfiume.it: could not connect to host
+dancerdates.net: could not connect to host
 daniel-steuer.de: did not receive HSTS header
-darlo.co.uk: could not connect to host
+danieldk.eu: did not receive HSTS header
+danijobs.com: did not receive HSTS header
+danpiel.net: could not connect to host
+danrl.de: did not receive HSTS header
+daolerp.xyz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+dario.im: could not connect to host
+dark-x.cf: could not connect to host
+darkhole.cn: did not receive HSTS header
+dashboard.yt: did not receive HSTS header
+dashnimorad.com: could not connect to host
 data-abundance.com: could not connect to host
+datarank.com: max-age too low: 0
+dataretention.solutions: could not connect to host
 datenkeks.de: did not receive HSTS header
-datsound.ru: did not receive HSTS header
+datenreiter.cf: did not receive HSTS header
+datenreiter.gq: did not receive HSTS header
+datenreiter.ml: did not receive HSTS header
+datenreiter.tk: did not receive HSTS header
+datewon.net: did not receive HSTS header
+davidhunter.scot: did not receive HSTS header
+davidmcevoy.org.uk: could not connect to host
 daylightcompany.com: did not receive HSTS header
+dbx.ovh: could not connect to host
+dccode.gov: could not connect to host
+deaktualisierung.org: did not receive HSTS header
+debank.tv: did not receive HSTS header
 debtkit.co.uk: did not receive HSTS header
 decibelios.li: did not receive HSTS header
-demo.swedbank.se: could not connect to host
+dedicatutiempo.es: could not connect to host
+deight.co: could not connect to host
+dekasan.ru: could not connect to host
+demotops.com: did not receive HSTS header
 dentaldomain.org: did not receive HSTS header
 dentaldomain.ph: did not receive HSTS header
 depixion.agency: did not receive HSTS header
+dequehablamos.es: could not connect to host
 derevtsov.com: did not receive HSTS header
-dergeilstestammderwelt.de: did not receive HSTS header
+designthinking.or.jp: did not receive HSTS header
+destinationbijoux.fr: could not connect to host
+detector.exposed: could not connect to host
+devcu.com: could not connect to host
 devh.de: did not receive HSTS header
-deviltraxxx.de: could not connect to host
 diablotine.rocks: could not connect to host
-diasp.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-diedrich.co: did not receive HSTS header
+diasp.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+dicionariofinanceiro.com: did not receive HSTS header
+diedrich.co: max-age too low: 2592000
 digitaldaddy.net: could not connect to host
+digitalriver.tk: could not connect to host
 digitalskillswap.com: could not connect to host
 dinamoelektrik.com: max-age too low: 0
+dipconsultants.com: could not connect to host
 discovery.lookout.com: did not receive HSTS header
+dislocated.de: did not receive HSTS header
+dizihocasi.com: did not receive HSTS header
+dj4et.de: could not connect to host
+djlive.pl: did not receive HSTS header
 dl.google.com: did not receive HSTS header (error ignored - included regardless)
-dmwall.cn: did not receive HSTS header
+dmwall.cn: could not connect to host
+dns.google.com: did not receive HSTS header (error ignored - included regardless)
 do.search.yahoo.com: did not receive HSTS header
 dobet.in: could not connect to host
 docs.google.com: did not receive HSTS header (error ignored - included regardless)
 dohosting.ru: could not connect to host
+doktorsitesi.com: did not receive HSTS header
 domaris.de: did not receive HSTS header
-dorianmuthig.com: could not connect to host
+donzelot.co.uk: max-age too low: 3600
+doridian.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+doridian.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+doridian.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 doridian.org: could not connect to host
+dot.ro: could not connect to host
 dotadata.me: could not connect to host
 download.jitsi.org: did not receive HSTS header
-doyoucheck.com: did not receive HSTS header
 dragons-of-highlands.cz: could not connect to host
-drbethanybarnes.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+drbethanybarnes.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 dreadbyte.com: could not connect to host
 drive.google.com: did not receive HSTS header (error ignored - included regardless)
+drobniuch.pl: did not receive HSTS header
 dropcam.com: did not receive HSTS header
 drtroyhendrickson.com: could not connect to host
+dylanscott.com.au: did not receive HSTS header
 dymersion.com: did not receive HSTS header
 dynamize.solutions: did not receive HSTS header
+dzimejl.sk: could not connect to host
 dzlibs.io: could not connect to host
-e-aut.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+e-aut.net: could not connect to host
 e-deca2.org: did not receive HSTS header
+earlybirdsnacks.com: did not receive HSTS header
+easez.net: did not receive HSTS header
+easyhaul.com: did not receive HSTS header
 ebaymotorssucks.com: max-age too low: 0
+ebecs.com: did not receive HSTS header
 ecake.in: could not connect to host
 ecdn.cz: could not connect to host
+ecfs.link: could not connect to host
 ecg.fr: could not connect to host
+echopaper.com: could not connect to host
+echosystem.fr: could not connect to host
 edelsteincosmetic.com: did not receive HSTS header
+edge-cloud.net: did not receive HSTS header
 edmodo.com: did not receive HSTS header
+eduvance.in: did not receive HSTS header
 egit.co: could not connect to host
+eicfood.com: could not connect to host
+eidolonhost.com: did not receive HSTS header
 electromc.com: could not connect to host
+electronic-ignition-system.com: could not connect to host
+elemenx.com: could not connect to host
+elenoon.ir: max-age too low: 600
 elimdengelen.com: did not receive HSTS header
-elitefishtank.com: could not connect to host
 elnutricionista.es: did not receive HSTS header
 elpo.xyz: could not connect to host
 elsitar.com: did not receive HSTS header
 email.lookout.com: could not connect to host
-emilstahl.dk: did not receive HSTS header
-en-maktoob.search.yahoo.com: did not receive HSTS header
+emeldi-commerce.com: max-age too low: 0
+eminovic.me: could not connect to host
+emnitech.com: could not connect to host
 encrypted.google.com: did not receive HSTS header (error ignored - included regardless)
+end.io: could not connect to host
+endzeit-architekten.com: did not receive HSTS header
+enigmail.net: did not receive HSTS header
+enteente.space: did not receive HSTS header
 enterdev.co: did not receive HSTS header
+entropia.de: did not receive HSTS header
 eol34.com: did not receive HSTS header
+epicwalnutcreek.com: did not receive HSTS header
 epoxate.com: did not receive HSTS header
+eq8.net.au: max-age too low: 3600
+equate.net.au: max-age too low: 3600
+equatetechnologies.com.au: max-age too low: 3600
+eressea.xyz: could not connect to host
+ergorium.com: could not connect to host
+ergorium.eu: could not connect to host
 eromixx.com: did not receive HSTS header
+erotalia.es: could not connect to host
 eroticen.com: did not receive HSTS header
 erotische-aanbiedingen.nl: did not receive HSTS header
+errolz.com: could not connect to host
 errors.zenpayroll.com: could not connect to host
 esec.rs: did not receive HSTS header
 espra.com: could not connect to host
+essexcosmeticdentists.co.uk: did not receive HSTS header
+estan.cn: did not receive HSTS header
+ethicalexploiting.com: could not connect to host
 etsysecure.com: could not connect to host
-exon.io: did not receive HSTS header
+etula.ga: could not connect to host
+etula.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+euanbaines.com: could not connect to host
+eucl3d.com: did not receive HSTS header
+eurostrategy.vn.ua: could not connect to host
+everwaking.com: could not connect to host
+ewe2.ninja: could not connect to host
 expoundite.net: did not receive HSTS header
-expxkcd.com: could not connect to host
-extreemhost.nl: did not receive HSTS header
+expressfinance.co.za: did not receive HSTS header
+extreemhost.nl: could not connect to host
 ezimoeko.net: could not connect to host
 ezmod.org: could not connect to host
 eztv.ch: did not receive HSTS header
+f00.ca: did not receive HSTS header
 fabianfischer.de: did not receive HSTS header
 factorygw.com: did not receive HSTS header
 faesser.com: did not receive HSTS header
-fant.dk: did not receive HSTS header
-fatzebra.com.au: did not receive HSTS header
-felisslovakia.sk: did not receive HSTS header
+fahrenwalde.de: did not receive HSTS header
+fail4free.de: did not receive HSTS header
+faizan.xyz: did not receive HSTS header
+fakeletters.org: did not receive HSTS header
+familie-sander.rocks: could not connect to host
+fanyl.cn: did not receive HSTS header
+fasdoutreach.ca: could not connect to host
+fashioncare.cz: did not receive HSTS header
+fatgeekflix.net: could not connect to host
+fayolle.info: could not connect to host
+fbox.li: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+fdj.im: could not connect to host
+feard.space: could not connect to host
+felisslovakia.sk: could not connect to host
 feminists.co: could not connect to host
 festember.com: did not receive HSTS header
+fhdhelp.de: could not connect to host
+fhdhilft.de: could not connect to host
 fiftyshadesofluca.ml: could not connect to host
 fig.co: did not receive HSTS header
 fightr.co: could not connect to host
+finalgear.com: did not receive HSTS header
 findmybottleshop.com.au: did not receive HSTS header
 findtutorsnearme.com: did not receive HSTS header
 firebaseio-demo.com: could not connect to host
 firebaseio.com: could not connect to host
 firefall.rocks: did not receive HSTS header
 firemail.io: could not connect to host
 fischer-its.com: max-age too low: 2592000
+fish2.me: did not receive HSTS header
 fixingdns.com: did not receive HSTS header
 fj.search.yahoo.com: did not receive HSTS header
+flags.ninja: could not connect to host
+flamingkeys.com.au: could not connect to host
+flanco.ro: max-age too low: 0
 fliexer.com: did not receive HSTS header
+florian-lillpopp.de: max-age too low: 10
+floriankeller.de: did not receive HSTS header
+florianlillpopp.de: max-age too low: 10
 floweslawncare.com: did not receive HSTS header
+flushstudios.com: did not receive HSTS header
+flyaces.com: did not receive HSTS header
 fm83.nl: did not receive HSTS header
 fonetiq.io: could not connect to host
 food4health.guide: could not connect to host
 footballmapped.com: could not connect to host
 foreignexchangeresource.com: did not receive HSTS header
+formini.dz: did not receive HSTS header
 fotiu.com: could not connect to host
+fotm.net: did not receive HSTS header
+foxdev.io: did not receive HSTS header
+foxelbox.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+francevpn.xyz: could not connect to host
+freekdevries.nl: could not connect to host
+freeutopia.org: did not receive HSTS header
+freezion.com: could not connect to host
+freshdns.nl: could not connect to host
+fretscha.com: could not connect to host
+frogatto.com: did not receive HSTS header
+fruchthof24.de: did not receive HSTS header
 frusky.net: did not receive HSTS header
 funchestra.at: did not receive HSTS header
+funkyweddingideas.com.au: did not receive HSTS header
+futuretechnologi.es: could not connect to host
+fx-rk.com: did not receive HSTS header
+fzn.io: could not connect to host
 g2g.com: did not receive HSTS header
-g4w.co: could not connect to host
-g4w.co: could not connect to host (error ignored - included regardless)
-gamenected.com: could not connect to host
+g4w.co: did not receive HSTS header (error ignored - included regardless)
+gameink.net: did not receive HSTS header
 gamenected.de: could not connect to host
 gamesdepartment.co.uk: did not receive HSTS header
+gameserver-sponsor.de: did not receive HSTS header
+gamesurferapp.com: could not connect to host
 gaptek.id: did not receive HSTS header
-geekandi.com: max-age too low: 7776000
+gatapro.net: could not connect to host
 geekcast.co.uk: did not receive HSTS header
+genuu.com: could not connect to host
+genyaa.com: did not receive HSTS header
 getable.com: did not receive HSTS header
 getlantern.org: did not receive HSTS header
+getmassage.com.ng: did not receive HSTS header
+getwashdaddy.com: did not receive HSTS header
+gfhgiro.nl: max-age too low: 3600
+gflclan.ru: did not receive HSTS header
 gfwsb.ml: could not connect to host
 gigacloud.org: could not connect to host
 gilly.berlin: did not receive HSTS header
+gipsamsfashion.com: did not receive HSTS header
 gizzo.sk: could not connect to host
 gl.search.yahoo.com: did not receive HSTS header
 glass.google.com: did not receive HSTS header (error ignored - included regardless)
 globalittech.com: could not connect to host
-glws.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+glws.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 gm.search.yahoo.com: did not receive HSTS header
 gmail.com: did not receive HSTS header (error ignored - included regardless)
-gmantra.org: did not receive HSTS header
+gmantra.org: could not connect to host
+gmoes.at: did not receive HSTS header
+go.ax: did not receive HSTS header
 goabonga.com: could not connect to host
+goge.site: could not connect to host
+goggs.eu: could not connect to host
 goldendata.io: could not connect to host
-golfscape.com: max-age too low: 0
+golocal-media.de: did not receive HSTS header
 goodwin43.ru: did not receive HSTS header
 google: could not connect to host
 google: could not connect to host (error ignored - included regardless)
 googlemail.com: did not receive HSTS header (error ignored - included regardless)
 googleplex.com: could not connect to host
 googleplex.com: could not connect to host (error ignored - included regardless)
 gorilla-gym.site: did not receive HSTS header
 goto.google.com: did not receive HSTS header (error ignored - included regardless)
 gotowned.org: could not connect to host
-gotspot.com: could not connect to host
 gparent.org: did not receive HSTS header
 gpsfix.cz: could not connect to host
+gpsvideocanada.com: could not connect to host
 grandmascookieblog.com: did not receive HSTS header
 gravitation.pro: did not receive HSTS header
 gravity-net.de: could not connect to host
-greensolid.biz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+graycell.net: did not receive HSTS header
 greenvines.com.tw: did not receive HSTS header
 greplin.com: could not connect to host
+groth.im: did not receive HSTS header
+groth.xyz: did not receive HSTS header
 groups.google.com: did not receive HSTS header (error ignored - included regardless)
+gsm-map.com: did not receive HSTS header
 gtanda.tk: could not connect to host
 gtraxapp.com: could not connect to host
+guava.studio: could not connect to host
+guilde-vindicta.fr: did not receive HSTS header
 gunnarhafdal.com: did not receive HSTS header
 gurusupe.com: could not connect to host
 gvt2.com: could not connect to host
 gvt2.com: could not connect to host (error ignored - included regardless)
 gvt3.com: could not connect to host
 gvt3.com: could not connect to host (error ignored - included regardless)
 gwijaya.com: did not receive HSTS header
 gyboche.com: could not connect to host
 gyboche.science: could not connect to host
+gypthecat.com: max-age too low: 604800
+gz-benz.com: could not connect to host
+gz-bmw.com: could not connect to host
 h2check.org: could not connect to host
-hack.li: could not connect to host
-hao2taiwan.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+hahayidu.org: could not connect to host
+hancc.net: did not receive HSTS header
+hao2taiwan.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 happyfabric.me: did not receive HSTS header
+has.vision: could not connect to host
 hasilocke.de: did not receive HSTS header
+hasinase.de: could not connect to host
 haste.ch: could not connect to host
 hatoko.net: could not connect to host
-haveeruexaminer.com: could not connect to host
+haurumcraft.net: could not connect to host
+haveforeningen-enghaven.dk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+havellab.de: could not connect to host
 heart.ge: max-age too low: 0
+heartlandrentals.com: did not receive HSTS header
 heftkaufen.de: did not receive HSTS header
+hellenicaward.com: did not receive HSTS header
 helpadmin.net: could not connect to host
-helpium.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+helpium.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+hemdal.se: could not connect to host
 henriknoerr.com: could not connect to host
-herzbotschaft.de: did not receive HSTS header
-hexony.com: did not receive HSTS header
 hicn.gq: could not connect to host
+hiddenmail.xyz: could not connect to host
+hikariempire.com: could not connect to host
+hilti.at: did not receive HSTS header
+hilti.ca: did not receive HSTS header
+hilti.cl: did not receive HSTS header
+hilti.co.jp: did not receive HSTS header
+hilti.co.kr: did not receive HSTS header
+hilti.co.uk: did not receive HSTS header
+hilti.com: did not receive HSTS header
+hilti.com.ar: did not receive HSTS header
+hilti.com.au: did not receive HSTS header
+hilti.com.br: did not receive HSTS header
+hilti.com.hk: did not receive HSTS header
+hilti.com.sg: did not receive HSTS header
+hilti.de: did not receive HSTS header
+hilti.es: did not receive HSTS header
+hilti.fi: did not receive HSTS header
+hilti.fr: did not receive HSTS header
+hilti.ie: did not receive HSTS header
+hilti.it: did not receive HSTS header
+hilti.lu: did not receive HSTS header
+hilti.pt: did not receive HSTS header
+hilti.ru: did not receive HSTS header
+hilti.sk: did not receive HSTS header
+hiphop.ren: could not connect to host
+hiphopconvention.nl: could not connect to host
+hitoy.org: did not receive HSTS header
 hledejlevne.cz: did not receive HSTS header
 hn.search.yahoo.com: did not receive HSTS header
 hoerbuecher-und-hoerspiele.de: did not receive HSTS header
+hogar123.es: could not connect to host
+holymoly.lu: did not receive HSTS header
 homa.website: could not connect to host
-honeytracks.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+honeytracks.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+honoo.com: could not connect to host
 hookandloom.com: did not receive HSTS header
 horosho.in: could not connect to host
 horseboners.xxx: did not receive HSTS header
 hostedtalkgadget.google.com: did not receive HSTS header (error ignored - included regardless)
-hostingactive.it: did not receive HSTS header
+hotchillibox.com: max-age too low: 0
+hovie.at: max-age too low: 3600
 howrandom.org: could not connect to host
 hsts.date: could not connect to host
 hstspreload.appspot.com: did not receive HSTS header
+httpswatch.com: could not connect to host
 hu.search.yahoo.com: did not receive HSTS header
+hydra.ws: could not connect to host
+i95.me: did not receive HSTS header
+iamveto.com: could not connect to host
 iban.is: could not connect to host
-icq-project.net: could not connect to host
+icebat.dyndns.org: could not connect to host
+icewoman.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+icreative.nl: did not receive HSTS header
 icusignature.com: did not receive HSTS header
 id-co.in: could not connect to host
-id-conf.com: did not receive HSTS header
-idealsvdr.com: did not receive HSTS header
+ideal-envelopes.co.uk: did not receive HSTS header
 identitylabs.uk: did not receive HSTS header
+idiopolis.org: could not connect to host
 ie.search.yahoo.com: did not receive HSTS header
+ifleurs.com: could not connect to host
+ihuanmeng.com: max-age too low: 3600
+ilikerainbows.co: could not connect to host
 ilikerainbows.co.uk: could not connect to host
 illjinx.info: did not receive HSTS header
 ilmconpm.de: did not receive HSTS header
+ilona.graphics: max-age too low: 3600
+imim.pw: did not receive HSTS header
+imjiangtao.com: did not receive HSTS header
 imouto.my: max-age too low: 5184000
+imusic.dk: did not receive HSTS header
 inb4.us: could not connect to host
+inchomatic.com: did not receive HSTS header
 inertianetworks.com: did not receive HSTS header
-infogrfx.com: did not receive HSTS header
+infinitusgaming.eu: could not connect to host
+inflation.ml: could not connect to host
+infocommsociety.com: did not receive HSTS header
+inkstory.gr: did not receive HSTS header
 inksupply.com: did not receive HSTS header
 inleaked.com: could not connect to host
-inmyarea.com: did not receive HSTS header
 innophate-security.nl: could not connect to host
-insighti.org: did not receive HSTS header
+insite-feedback.com: did not receive HSTS header
+insouciant.org: did not receive HSTS header
+inspiroinc.com: could not connect to host
 instacart.com: did not receive HSTS header
 intercom.io: did not receive HSTS header
-interserved.com: did not receive HSTS header
+interference.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+interserved.com: could not connect to host
+intimtoy.com.ua: could not connect to host
 inverselink-user-content.com: could not connect to host
 inverselink.com: could not connect to host
+inwesttitle.com: max-age too low: 0
 iop.intuit.com: max-age too low: 86400
 iostips.ru: could not connect to host
-ip6.li: did not receive HSTS header
 ipmimagazine.com: did not receive HSTS header
 ipomue.com: could not connect to host
+iprim.ru: max-age too low: 0
+iranianlawschool.com: could not connect to host
 iraqidinar.org: did not receive HSTS header
 irccloud.com: did not receive HSTS header
-isimonbrown.co.uk: could not connect to host
 iskaz.rs: did not receive HSTS header
-isogram.nl: did not receive HSTS header
+isogram.nl: could not connect to host
+ispire.me: did not receive HSTS header
+itsamurai.ru: max-age too low: 2592000
+itsecurityassurance.pw: did not receive HSTS header
 itshost.ru: could not connect to host
-ivk.website: could not connect to host
 izdiwho.com: could not connect to host
 j0s.at: did not receive HSTS header
+ja-publications.com: did not receive HSTS header
+jaitnetworking.com: did not receive HSTS header
+jakenbake.com: could not connect to host
 jamesdoylephoto.com: did not receive HSTS header
 janus-engineering.de: did not receive HSTS header
+jaqen.ch: could not connect to host
+jarsater.com: could not connect to host
+javalestari.com: did not receive HSTS header
 jayblock.com: did not receive HSTS header
-jetaprices.com: max-age too low: 0
-jhburton.co.uk: did not receive HSTS header
+jeff393.com: could not connect to host
+jetaprices.com: could not connect to host
+jeugdkans.nl: could not connect to host
+jf.duckdns.org: could not connect to host
+jh-media.eu: could not connect to host
+jimas.eu: did not receive HSTS header
 jimmycai.org: max-age too low: 10368000
 jkb.pics: could not connect to host
 jkbuster.com: could not connect to host
 jmdekker.it: could not connect to host
 johners.me: could not connect to host
 jonas-keidel.de: did not receive HSTS header
+jonasgroth.se: did not receive HSTS header
 jonathan.ir: could not connect to host
-jonathancarter.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-jonathandowning.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-joshstroup.me: max-age too low: 0
+jonathancarter.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+jonathandowning.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+joostbovee.nl: did not receive HSTS header
+joshstroup.me: could not connect to host
+josip.at: could not connect to host
 jottit.com: could not connect to host
 jrvar.com: did not receive HSTS header
-juergenhecht.de: did not receive HSTS header
+jsanders.us: did not receive HSTS header
+juergenhecht.de: could not connect to host
+juliamweber.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 julian-kipka.de: did not receive HSTS header
+junge-selbsthilfe.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+juniwalk.cz: could not connect to host
+junqtion.com: could not connect to host
 justlikethat.hosting: did not receive HSTS header
+justudin.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 jwilsson.me: could not connect to host
 k-dev.de: could not connect to host
-kamikano.com: did not receive HSTS header
+kalami.nl: could not connect to host
+kamikano.com: could not connect to host
 kamisama.xyz: could not connect to host
-kasko.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+kaplatz.is: could not connect to host
+kaputt.com: could not connect to host
+kasko.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+kausch.at: could not connect to host
+kawaiiku.com: could not connect to host
+kawaiiku.de: could not connect to host
+kdata.it: could not connect to host
 kdm-online.de: did not receive HSTS header
 keeley.gq: could not connect to host
 keeley.ml: could not connect to host
 keeleysam.me: could not connect to host
 keepclean.me: could not connect to host
+kerksanders.nl: did not receive HSTS header
+kermadec.net: could not connect to host
+kernl.us: did not receive HSTS header
+kerrfrequencycombs.org: did not receive HSTS header
+kevinbusse.de: could not connect to host
 keymaster.lookout.com: did not receive HSTS header
+kgxtech.com: max-age too low: 2592000
 kickass.al: could not connect to host
-kinderwagen-test24.de: did not receive HSTS header
 kingmanhall.org: could not connect to host
-kinnon.enterprises: did not receive HSTS header
+kinnon.enterprises: could not connect to host
+kinogb.net: max-age too low: 0
 kirkforcongress.com: could not connect to host
 kirkforsenate.com: did not receive HSTS header
-kirkpatrickdavis.com: max-age too low: 3153600
+kirkpatrickdavis.com: could not connect to host
+kissart.net: could not connect to host
+kitchenpunx.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 kitsta.com: could not connect to host
 kiwiirc.com: max-age too low: 5256000
+kizil.net: could not connect to host
+kjellvn.net: did not receive HSTS header
 klaxn.com: could not connect to host
 klaxn.org: could not connect to host
+kleinblogje.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+kmartin.io: did not receive HSTS header
 kodokushi.fr: could not connect to host
-komandakovalchuk.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-koop-bremen.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+komandakovalchuk.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+koop-bremen.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 koordinate.net: did not receive HSTS header
 korni22.org: did not receive HSTS header
-kpvpn.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+kpvpn.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 kr.search.yahoo.com: did not receive HSTS header
-krouzkyliduska.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-kryptera.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-kryx.de: did not receive HSTS header
-ks-watch.de: did not receive HSTS header
+kraiwan.com: could not connect to host
+kreavis.com: could not connect to host
+krouzkyliduska.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+krupa.net.pl: did not receive HSTS header
+kryptera.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+kurehun.org: could not connect to host
 kweddingplanning.com: did not receive HSTS header
+kynaston.org.uk: could not connect to host
 kz.search.yahoo.com: did not receive HSTS header
+labaia.info: could not connect to host
 labina.com.tr: did not receive HSTS header
+laboiteapc.fr: did not receive HSTS header
+labordata.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+labrador-retrievers.com.au: did not receive HSTS header
+labradorpuppiesforsalebyregisteredlabradorbreeders.com: did not receive HSTS header
 lachlankidson.net: did not receive HSTS header
 laf.in.net: did not receive HSTS header
 lagoza.name: could not connect to host
 landscape.canonical.com: max-age too low: 2592000
+langhun.me: could not connect to host
+laobox.fr: did not receive HSTS header
 latus.xyz: could not connect to host
-lavval.com: could not connect to host
-ldc.com.br: did not receive HSTS header
+ldarby.me.uk: could not connect to host
+ldc.com.br: max-age too low: 7776000
+leandre.cn: max-age too low: 7776000
+learnfrenchfluently.com: did not receive HSTS header
+learningorder.com: could not connect to host
 ledgerscope.net: max-age too low: 86400
 leifdreizler.com: could not connect to host
+leiyun.me: could not connect to host
 lelongbank.com: did not receive HSTS header
 lentri.com: did not receive HSTS header
-leon-jaekel.com: did not receive HSTS header
+leob.in: max-age too low: 7776000
+leon-jaekel.com: could not connect to host
+leopotamgroup.com: did not receive HSTS header
+leovanna.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 les-corsaires.net: could not connect to host
+lesharris.com: could not connect to host
 letras.mus.br: did not receive HSTS header
+lfullerdesign.com: did not receive HSTS header
+lgts.se: could not connect to host
 li.search.yahoo.com: did not receive HSTS header
+libertyrp.org: could not connect to host
 library.linode.com: did not receive HSTS header
+libscode.com: did not receive HSTS header
 lifeguard.aecom.com: max-age too low: 86400
-liftcannabis.ca: did not receive HSTS header
+likeaross.com: could not connect to host
+lillpopp.eu: max-age too low: 10
 limalama.eu: max-age too low: 1
+lindberg.io: did not receive HSTS header
 linguaquote.com: did not receive HSTS header
+linmi.cc: did not receive HSTS header
+liquorsanthe.in: could not connect to host
 livedemo.io: could not connect to host
 livej.am: could not connect to host
-loftboard.eu: did not receive HSTS header
+lnx.li: did not receive HSTS header
+loacg.com: did not receive HSTS header
+loadingdeck.com: did not receive HSTS header
+loafbox.com: could not connect to host
+loenshotel.de: did not receive HSTS header
 login.corp.google.com: max-age too low: 7776000 (error ignored - included regardless)
-lognot.net: could not connect to host
-logotype.se: did not receive HSTS header
+lookzook.com: did not receive HSTS header
+lothai.re: could not connect to host
 lottosonline.com: did not receive HSTS header
-loucanfixit.com: did not receive HSTS header
 lovelycorral.com: did not receive HSTS header
+loveto.at: could not connect to host
+lrhstsa.com: could not connect to host
 lsky.cn: did not receive HSTS header
 lt.search.yahoo.com: did not receive HSTS header
 lu.search.yahoo.com: did not receive HSTS header
+lubot.net: did not receive HSTS header
 lukonet.com: did not receive HSTS header
+lumi.do: did not receive HSTS header
+lusis.fr: did not receive HSTS header
+lusis.net: did not receive HSTS header
 luxus-russen.de: did not receive HSTS header
 lv.search.yahoo.com: did not receive HSTS header
 m.gparent.org: could not connect to host
 m3-gmbh.de: did not receive HSTS header
-maderwin.com: could not connect to host
+macchaberrycream.com: could not connect to host
+maddin.ga: did not receive HSTS header
+maderwin.com: did not receive HSTS header
+magenx.com: did not receive HSTS header
+mahamed91.pw: could not connect to host
 mail-settings.google.com: did not receive HSTS header (error ignored - included regardless)
 mail.google.com: did not receive HSTS header (error ignored - included regardless)
+mailgarant.nl: could not connect to host
 makerstuff.net: did not receive HSTS header
+malerversand.de: did not receive HSTS header
 malwre.io: could not connect to host
-mamaison.io: did not receive HSTS header
-marie.club: could not connect to host
+marchagen.nl: did not receive HSTS header
+marcofinke.de: could not connect to host
 market.android.com: did not receive HSTS header (error ignored - included regardless)
+markusweimar.de: did not receive HSTS header
+marleyresort.com: did not receive HSTS header
 marshut.net: could not connect to host
 martijnvhoof.nl: could not connect to host
 masa.li: could not connect to host
-mb-is.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-mbdb.jp: did not receive HSTS header
+matthewprenger.com: did not receive HSTS header
+matty.digital: max-age too low: 3600
+matze.co: could not connect to host
+maultrom.ml: could not connect to host
+mazz-tech.com: could not connect to host
+mb-is.info: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+mblankhorst.nl: could not connect to host
+mbsec.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 mcc.re: could not connect to host
+mcdonalds.ru: did not receive HSTS header
+mcpart.land: did not receive HSTS header
 mdfnet.se: did not receive HSTS header
-mebio.us: did not receive HSTS header
+mdscomp.net: did not receive HSTS header
+mea.in.ua: could not connect to host
 medallia.io: could not connect to host
 mediacru.sh: could not connect to host
+mediawikicn.org: could not connect to host
 medwayindia.com: did not receive HSTS header
-meetings2.com: could not connect to host
-megaplan.cz: did not receive HSTS header
+meetings2.com: did not receive HSTS header
 megashur.se: did not receive HSTS header
 megaxchange.com: did not receive HSTS header
+meincenter-meinemeinung.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 meinebo.it: could not connect to host
 members.mayfirst.org: did not receive HSTS header
-meta-db.com: could not connect to host
-miconcinemas.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+metebalci.com: could not connect to host
+michaelfitzpatrickruth.com: did not receive HSTS header
+michal-kral.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+michalkral.tk: could not connect to host
+micro-dv.ru: did not receive HSTS header
+micro-rain-systems.com: did not receive HSTS header
+microme.ga: could not connect to host
 micropple.net: could not connect to host
 mijn-email.org: could not connect to host
 miku.hatsune.my: max-age too low: 5184000
+milonga.tips: did not receive HSTS header
 mindoktor.se: did not receive HSTS header
 minecraftvoter.com: could not connect to host
 minikneet.nl: could not connect to host
 minnesotadata.com: could not connect to host
-minora.io: could not connect to host
 mirindadomo.ru: did not receive HSTS header
+mironized.com: did not receive HSTS header
 mirrorx.com: did not receive HSTS header
+misskey.xyz: could not connect to host
 mitchellrenouf.ca: could not connect to host
 mittenhacks.com: could not connect to host
+mizd.at: could not connect to host
+mizi.name: did not receive HSTS header
 mnemotiv.com: could not connect to host
 mobilethreat.net: could not connect to host
 mobilethreatnetwork.net: could not connect to host
+mobocasino.com: did not receive HSTS header
 modemagazines.co.uk: did not receive HSTS header
-mondwandler.de: did not receive HSTS header
+moelord.org: did not receive HSTS header
 monitman.com: could not connect to host
-monitman.solutions: could not connect to host
 moparisthebest.biz: could not connect to host
 moparisthebest.info: could not connect to host
+moreapp.co.uk: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 moriz.net: could not connect to host
-movlib.org: could not connect to host
+morpork.xyz: could not connect to host
+mortgagecentersmo.com: did not receive HSTS header
+morz.org: could not connect to host
+moula.com.au: did not receive HSTS header
 mp3juices.is: could not connect to host
-mpintaamalabanna.it: could not connect to host
 mqas.net: could not connect to host
+mrpopat.in: did not receive HSTS header
 msc-seereisen.net: did not receive HSTS header
+mt.me.uk: could not connect to host
 mt.search.yahoo.com: did not receive HSTS header
+mtcgf.com: did not receive HSTS header
+mtg-esport.de: could not connect to host
 mu.search.yahoo.com: did not receive HSTS header
+multibit.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 munzee.com: did not receive HSTS header
-mustika.cf: max-age too low: 0
+murrayrun.com: could not connect to host
+mustika.cf: could not connect to host
 mutamatic.com: could not connect to host
-mutantmonkey.info: could not connect to host
 mw.search.yahoo.com: did not receive HSTS header
 my.alfresco.com: did not receive HSTS header
+mycoted.com: did not receive HSTS header
 mydigipass.com: did not receive HSTS header
-myfrm.org: did not receive HSTS header
+mygate.at: could not connect to host
+mygov.scot: did not receive HSTS header
 mykolab.com: did not receive HSTS header
 mykreuzfahrt.de: did not receive HSTS header
 myni.io: could not connect to host
-nan.zone: could not connect to host
+myplaceonline.com: did not receive HSTS header
+mystudy.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+myvirtualserver.com: max-age too low: 0
+n0psled.nl: could not connect to host
+n2x.in: could not connect to host
+naiharngym.com: did not receive HSTS header
+najedlo.sk: did not receive HSTS header
+nanogi.ga: could not connect to host
+nauck.org: did not receive HSTS header
+naval.tf: could not connect to host
 nbb.io: did not receive HSTS header
+nbg-ha.de: could not connect to host
+nct.org.uk: did not receive HSTS header
 nctx.co.uk: did not receive HSTS header
+necormansir.com: did not receive HSTS header
 neftaly.com: did not receive HSTS header
+neko-system.com: did not receive HSTS header
 nemovement.org: did not receive HSTS header
 neonisi.com: could not connect to host
-nerven.se: did not receive HSTS header
+neosolution.ca: could not connect to host
+nerven.se: could not connect to host
 netbox.cc: could not connect to host
-netrelay.email: could not connect to host
 netwarc.nl: could not connect to host
 netzbit.de: could not connect to host
 netzpolitik.org: did not receive HSTS header
 netztest.at: did not receive HSTS header
+neuralgic.net: could not connect to host
+neveta.com: did not receive HSTS header
+newcitygas.ca: max-age too low: 0
 newkaliningrad.ru: max-age too low: 604800
 nexth.de: could not connect to host
 nexth.net: could not connect to host
 nexth.us: could not connect to host
+nextproject.us: could not connect to host
 ng-security.com: could not connect to host
+ngine.ch: did not receive HSTS header
 nginxnudes.com: could not connect to host
 ni.search.yahoo.com: did not receive HSTS header
-nicestresser.fr: did not receive HSTS header
+nicestresser.fr: could not connect to host
+nicolaeiotcu.ro: could not connect to host
 nicolaelmer.ch: could not connect to host
-nieselregen.com: did not receive HSTS header
+niconiconi.xyz: did not receive HSTS header
 niho.jp: max-age too low: 0
+nlegall.fr: did not receive HSTS header
 nmctest.net: could not connect to host
 nodebrewery.com: could not connect to host
-nodetemple.com: did not receive HSTS header
+nodetemple.com: could not connect to host
+nodi.at: could not connect to host
 noexpect.org: could not connect to host
+nolberg.net: could not connect to host
 nope.website: could not connect to host
-noworrywp.com: did not receive HSTS header
+nopex.no: could not connect to host
+norb.at: could not connect to host
+novatrucking.de: did not receive HSTS header
+nowak.ninja: did not receive HSTS header
+noworrywp.com: could not connect to host
 np.search.yahoo.com: did not receive HSTS header
 nu3.at: did not receive HSTS header
 nu3.ch: did not receive HSTS header
 nu3.co.uk: did not receive HSTS header
 nu3.com: did not receive HSTS header
 nu3.de: did not receive HSTS header
 nu3.dk: did not receive HSTS header
+nu3.fi: did not receive HSTS header
 nu3.fr: did not receive HSTS header
 nu3.no: did not receive HSTS header
 nu3.se: did not receive HSTS header
+null-sec.ru: could not connect to host
 nullpoint.at: did not receive HSTS header
 numericacu.com: did not receive HSTS header
 nutsandboltsmedia.com: did not receive HSTS header
 nystart.no: did not receive HSTS header
 nz.search.yahoo.com: max-age too low: 172800
 nzb.cat: did not receive HSTS header
-okmx.de: max-age too low: 778000
+oceandns.eu: could not connect to host
+oceandns.net: could not connect to host
+oceandns.nl: could not connect to host
+odin.xxx: did not receive HSTS header
+oishioffice.com: did not receive HSTS header
+oliverdunk.com: did not receive HSTS header
+olymp-arts.world: did not receive HSTS header
 omniti.com: max-age too low: 1
+oneb4nk.com: could not connect to host
+onefour.co: could not connect to host
+onepluscamps.com: did not receive HSTS header
 onet.space: could not connect to host
+onewpst.com: could not connect to host
+online-casino.eu: did not receive HSTS header
+onlinekasino.de: did not receive HSTS header
+onlinepollsph.com: could not connect to host
+onlinewetten.de: could not connect to host
+ononpay.com: did not receive HSTS header
+ookjesprookje.nl: could not connect to host
 ooonja.de: could not connect to host
 open-to-repair.fr: did not receive HSTS header
 opendesk.cc: did not receive HSTS header
+openprovider.nl: max-age too low: 0
 openshift.redhat.com: did not receive HSTS header
+opensrd.com: could not connect to host
 optenhoefel.de: could not connect to host
-orhideous.name: could not connect to host
-osterkraenzchen.de: max-age too low: 778000
-otakuworld.de: did not receive HSTS header
+orhideous.name: did not receive HSTS header
+oshell.me: did not receive HSTS header
+ossan-kobe-gourmet.com: did not receive HSTS header
+ossbinaries.com: could not connect to host
+otakuworld.de: could not connect to host
+othercode.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+othermedia.cc: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+otherstuff.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 ottospora.nl: could not connect to host
+otya.me: did not receive HSTS header
 ourbank.com: max-age too low: 604800
 ouvirmusica.com.br: did not receive HSTS header
-override.io: did not receive HSTS header
+ovenapp.io: did not receive HSTS header
+overthinkingit.com: max-age too low: 3600
 ownmovies.fr: could not connect to host
 p.linode.com: could not connect to host
-p8r.de: could not connect to host
+p1984.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+p8r.de: did not receive HSTS header
 pa.search.yahoo.com: did not receive HSTS header
-parent5446.us: could not connect to host
-partirkyoto.jp: max-age too low: 0
+paisaone.com: max-age too low: 7776000
+panni.me: did not receive HSTS header
+pantsu.cat: could not connect to host
+papeda.net: did not receive HSTS header
+papercard.co.uk: did not receive HSTS header
+papierniak.net: could not connect to host
+partijtjevoordevrijheid.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+partyhaus.ovh: could not connect to host
 partyvan.it: could not connect to host
+partyvan.moe: could not connect to host
 partyvan.nl: could not connect to host
 partyvan.se: could not connect to host
 passwordbox.com: did not receive HSTS header
 passwords.google.com: did not receive HSTS header (error ignored - included regardless)
+paste.fedoraproject.org: did not receive HSTS header
 paste.linode.com: could not connect to host
 pastebin.linode.com: could not connect to host
+patentfamily.de: did not receive HSTS header
+patt.us: could not connect to host
 patterson.mp: did not receive HSTS header
 pauladamsmith.com: did not receive HSTS header
+pay.gigahost.dk: did not receive HSTS header
+payfreez.com: max-age too low: 86400
 pbprint.ru: max-age too low: 0
-peissen.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+pc-nf.de: did not receive HSTS header
+peissen.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+penablog.com: did not receive HSTS header
 perfectionis.me: could not connect to host
+performaterm.ro: could not connect to host
+perlwork.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 personaldatabasen.no: could not connect to host
-petersmark.com: did not receive HSTS header
+persson.im: did not receive HSTS header
 petrolplus.ru: did not receive HSTS header
-pfd-nz.com: did not receive HSTS header
-phil.tw: could not connect to host
 phongmay24h.com: could not connect to host
 phurl.de: could not connect to host
 pic.gov: did not receive HSTS header
 picksin.club: could not connect to host
-pieterhordijk.com: did not receive HSTS header
+picscare.co.uk: did not receive HSTS header
 pinesandneedles.com: did not receive HSTS header
+pinoyonlinetv.com: did not receive HSTS header
+pippen.io: could not connect to host
+piratedb.com: did not receive HSTS header
+piratedot.com: did not receive HSTS header
 piratenlogin.de: could not connect to host
 pirati.cz: max-age too low: 604800
 pisidia.de: did not receive HSTS header
 pixel.google.com: did not receive HSTS header (error ignored - included regardless)
 pixelcode.com.au: did not receive HSTS header
 pixi.me: could not connect to host
+pj83.duckdns.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 pk.search.yahoo.com: did not receive HSTS header
 platform.lookout.com: could not connect to host
 play.google.com: did not receive HSTS header (error ignored - included regardless)
+playnation.io: did not receive HSTS header
 plothost.com: did not receive HSTS header
+ploup.net: could not connect to host
+pmnts.io: could not connect to host
 poiema.com.sg: did not receive HSTS header
-pointiswunderland.de: did not receive HSTS header
 pol.in.th: could not connect to host
+polimat.org: could not connect to host
+politic.org.ua: could not connect to host
+politically-incorrect.xyz: could not connect to host
 polypho.nyc: could not connect to host
-popcorntime.ws: did not receive HSTS header
-powercloud.technology: did not receive HSTS header
+poolsandstuff.com: did not receive HSTS header
+poon.io: did not receive HSTS header
+posterspy.com: did not receive HSTS header
+postscheduler.org: could not connect to host
+powerxequality.com: could not connect to host
 pr.search.yahoo.com: did not receive HSTS header
+prediksisydney.com: could not connect to host
 prefontaine.name: could not connect to host
 preissler.co.uk: could not connect to host
 prelist.org: did not receive HSTS header
 pressfreedomfoundation.org: did not receive HSTS header
+privacyrup.net: could not connect to host
 prodpad.com: did not receive HSTS header
 production.vn: did not receive HSTS header
 profi-durchgangsmelder.de: did not receive HSTS header
 promecon-gmbh.de: did not receive HSTS header
+promhadan.com: could not connect to host
 prontolight.com: did not receive HSTS header
 proximato.com: could not connect to host
+proxybay.club: could not connect to host
 proxybay.info: did not receive HSTS header
+pubkey.is: could not connect to host
+puikheid.nl: could not connect to host
+puiterwijk.org: could not connect to host
 pult.co: could not connect to host
 punchr-kamikazee.rhcloud.com: did not receive HSTS header
-pushapp.org: could not connect to host
+puppydns.com: could not connect to host
+purewebmasters.com: could not connect to host
+purplemoon.mobi: did not receive HSTS header
+purplestar.mobi: did not receive HSTS header
+pushapp.org: did not receive HSTS header
 py.search.yahoo.com: did not receive HSTS header
 pyplo.org: did not receive HSTS header
+pypt.lt: did not receive HSTS header
+q2.si: could not connect to host
 qingxuan.info: did not receive HSTS header
+qinxi1992.com: did not receive HSTS header
+qiwi.be: did not receive HSTS header
+qrara.net: did not receive HSTS header
 quantumcourse.org: did not receive HSTS header
 quotehex.com: did not receive HSTS header
-raiseyourflag.com: did not receive HSTS header
+quranserver.net: could not connect to host
+qvi.st: did not receive HSTS header
+r15.me: could not connect to host
+rainbowbarracuda.com: could not connect to host
+rambitteh.ru: could not connect to host
+rannseier.org: did not receive HSTS header
 rapidresearch.me: could not connect to host
 rasing.me: could not connect to host
-ravchat.com: did not receive HSTS header
+ratuseks.com: did not receive HSTS header
 rawstorieslondon.com: could not connect to host
 raydobe.me: could not connect to host
+rbhighinc.org: could not connect to host
+rc4.io: could not connect to host
+realmofespionage.com: could not connect to host
 recommended.reviews: could not connect to host
-reddiseals.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+reddiseals.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+redicabo.de: could not connect to host
 redlatam.org: did not receive HSTS header
+regaloaks.com: did not receive HSTS header
+regalpalms.com: did not receive HSTS header
+regenbogenwald.de: did not receive HSTS header
 regenerescence.com: did not receive HSTS header
+reic.me: could not connect to host
 relisten.nl: did not receive HSTS header
+remodela.com.ve: could not connect to host
 renem.net: max-age too low: 0
+rent-a-coder.de: did not receive HSTS header
+renteater.com: could not connect to host
+reprolife.co.uk: max-age too low: 0
 reserve-online.net: did not receive HSTS header
+respice.xyz: could not connect to host
+retrotracks.net: did not receive HSTS header
 reviews.anime.my: max-age too low: 5184000
 rewardstock.com: max-age too low: 0
-rid-wan.com: did not receive HSTS header
+riaucybersolution.net: did not receive HSTS header
+ricki-z.com: could not connect to host
+rideworks.com: did not receive HSTS header
+righttoknow.ie: did not receive HSTS header
+rijndael.xyz: could not connect to host
 rika.me: could not connect to host
-rippleunion.com: did not receive HSTS header
+rippleunion.com: could not connect to host
 rj.gg: could not connect to host
+rkmantpur.org: did not receive HSTS header
 rme.li: did not receive HSTS header
 roan24.pl: did not receive HSTS header
-roddis.net: did not receive HSTS header
-romainmuller.xyz: did not receive HSTS header
+robertglastra.com: could not connect to host
+romaimperator.com: could not connect to host
 romans-place.me.uk: did not receive HSTS header
 ronvandordt.info: did not receive HSTS header
 ronwo.de: max-age too low: 1
+rootwpn.com: could not connect to host
+rout0r.org: did not receive HSTS header
 rr.in.th: could not connect to host
+rsf.io: could not connect to host
+rsync.eu: did not receive HSTS header
+rubbereggs.ca: could not connect to host
+rubecodeberg.com: could not connect to host
+rubenschulz.nl: did not receive HSTS header
+ruborr.se: did not receive HSTS header
+rubyshop.nl: max-age too low: 604800
 rudloff.pro: did not receive HSTS header
 rugirlfriend.com: did not receive HSTS header
-rusl.me: did not receive HSTS header
+runementors.com: could not connect to host
+ruqu.nl: could not connect to host
+rushball.net: could not connect to host
+rusl.me: could not connect to host
+russmarshall.com: could not connect to host
+ruxit.com: did not receive HSTS header
 rw.search.yahoo.com: did not receive HSTS header
+rxprep.com: did not receive HSTS header
+rxv.cc: could not connect to host
+saamhorigheidsfonds.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 sah3.net: could not connect to host
 sakaki.anime.my: max-age too low: 5184000
+sakaserver.com: did not receive HSTS header
 salserocafe.com: did not receive HSTS header
 salserototal.com: did not receive HSTS header
+salud.top: did not receive HSTS header
+sampoznay.ru: max-age too low: 1000
+sandviks.com: did not receive HSTS header
+sapience.com: max-age too low: 6307200
 saturngames.co.uk: could not connect to host
-savetheinternet.eu: did not receive HSTS header
-schallert.com: did not receive HSTS header
+saunasandstuff.ca: did not receive HSTS header
+saunasandstuff.com: did not receive HSTS header
+saveyour.biz: could not connect to host
+sawamura-rental.com: did not receive HSTS header
+schelberts.de: did not receive HSTS header
 schnell-gold.com: could not connect to host
-schoop.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-schorel.ovh: could not connect to host
+schoop.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 schreiber-netzwerk.eu: did not receive HSTS header
 scienceathome.org: did not receive HSTS header
 scooshonline.co.uk: did not receive HSTS header
+scotbirchfield.com: did not receive HSTS header
 scrambl.is: could not connect to host
 scrambler.in: could not connect to host
 scribe.systems: could not connect to host
 script.google.com: did not receive HSTS header (error ignored - included regardless)
 sdsl-speedtest.de: could not connect to host
-search-one.de: did not receive HSTS header
-sec.gd: could not connect to host
+secandtech.com: could not connect to host
 secure-games.us: could not connect to host
+securesuisse.ch: did not receive HSTS header
 security.google.com: did not receive HSTS header (error ignored - included regardless)
-securitystreak.com: did not receive HSTS header
+securityinet.biz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+securityinet.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+securityinet.org.il: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+sedoexpert.nl: could not connect to host
+sedoexperts.nl: could not connect to host
+sehenderson.com: did not receive HSTS header
+selecadm.name: could not connect to host
 sello.com: did not receive HSTS header
+semen3325.xyz: could not connect to host
 semenkovich.com: did not receive HSTS header
-seomobo.com: did not receive HSTS header
+semps-servers.de: could not connect to host
+seomobo.com: could not connect to host
 seowarp.net: max-age too low: 1576800
+seq.tf: could not connect to host
 serverdensity.io: did not receive HSTS header
-servergno.me: did not receive HSTS header
-shamka.ru: could not connect to host
-shanewadleigh.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+seryo.moe: could not connect to host
+shadoom.com: did not receive HSTS header
+shamka.ru: max-age too low: 1
+shanesage.com: did not receive HSTS header
+shareimg.xyz: did not receive HSTS header
 shellsec.pw: did not receive HSTS header
+shibe.club: could not connect to host
 shiinko.com: could not connect to host
-shoprose.ru: did not receive HSTS header
+shinju.moe: could not connect to host
+shocksrv.com: did not receive HSTS header
+shopontarget.com: did not receive HSTS header
+shoprose.ru: could not connect to host
 shops.neonisi.com: could not connect to host
-shukatsu-note.com: did not receive HSTS header
+shukatsu-note.com: could not connect to host
 siammedia.co: did not receive HSTS header
 sifls.com: could not connect to host
 silentcircle.org: could not connect to host
-silkebaekken.no: could not connect to host
+silentlink.io: could not connect to host
+silver-drachenkrieger.de: did not receive HSTS header
+simbast.com: could not connect to host
 simon.butcher.name: max-age too low: 2629743
+simplefraud.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 simplelearner.com: could not connect to host
 siriad.com: did not receive HSTS header
-sistemy48.ru: did not receive HSTS header
 sites.google.com: did not receive HSTS header (error ignored - included regardless)
-skogsbruket.fi: could not connect to host
-skogskultur.fi: could not connect to host
-slamix.nl: did not receive HSTS header
+sitsy.ru: did not receive HSTS header
+sixt.ch: max-age too low: 0
+sixt.co.uk: max-age too low: 0
+sixt.com: max-age too low: 0
+sixt.com.br: max-age too low: 0
+sixt.de: max-age too low: 0
+skhosting.eu: did not receive HSTS header
+slashem.me: did not receive HSTS header
+slattery.co: could not connect to host
 slicketl.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
-smartcoin.com.br: did not receive HSTS header
-smartlend.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+sluitkampzeist.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+smartcoin.com.br: could not connect to host
+smartlend.se: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+smartofficesandsmarthomes.com: did not receive HSTS header
+smet.us: could not connect to host
 smkn1lengkong.sch.id: did not receive HSTS header
 smksi2.com: could not connect to host
+smusg.com: did not receive HSTS header
 snailing.org: could not connect to host
+snapworks.net: did not receive HSTS header
 sneberger.cz: could not connect to host
+sobotkama.eu: did not receive HSTS header
 soccergif.com: did not receive HSTS header
 soci.ml: could not connect to host
+socialsecurity.gov: did not receive HSTS header
+socialspirit.com.br: did not receive HSTS header
 sockeye.cc: could not connect to host
 socomponents.co.uk: did not receive HSTS header
-sol.io: could not connect to host
-southernutahinfluencers.com: max-age too low: 0
+sofabedshop.de: did not receive HSTS header
+sogravatas.net.br: did not receive HSTS header
+solsystems.ru: could not connect to host
+someshit.xyz: could not connect to host
+sonic.sk: did not receive HSTS header
+soulema.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+sourcelair.com: did not receive HSTS header
 souyar.de: could not connect to host
 souyar.net: could not connect to host
 souyar.us: could not connect to host
-spartantheatre.org: did not receive HSTS header
+sown.dyndns.org: could not connect to host
+spark.team: did not receive HSTS header
+sparklingsparklers.com: did not receive HSTS header
+spartantheatre.org: max-age too low: 172800
 spdysync.com: did not receive HSTS header
+speed-mailer.com: could not connect to host
+speedtest-russia.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 spencerbaer.com: did not receive HSTS header
+spongepowered.org: did not receive HSTS header
 spreadsheets.google.com: did not receive HSTS header (error ignored - included regardless)
-spyroszarzonis.com: did not receive HSTS header
+squatldf.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 sqzryang.com: max-age too low: 604800
+ssa.gov: did not receive HSTS header
 ssl.google-analytics.com: did not receive HSTS header (error ignored - included regardless)
 ssl.panoramio.com: did not receive HSTS header
+stassi.ch: did not receive HSTS header
 staticanime.net: did not receive HSTS header
 stillyarts.com: did not receive HSTS header
+stirlingpoon.com: did not receive HSTS header
 stocktrade.de: could not connect to host
+storeden.com: did not receive HSTS header
 streamingmagazin.de: could not connect to host
+stroeercrm.de: could not connect to host
+strom.family: could not connect to host
 strongest-privacy.com: could not connect to host
 student-scientist.org: did not receive HSTS header
 studentresearcher.org: did not receive HSTS header
+studentskydenik.cz: could not connect to host
+studenttravel.cz: did not receive HSTS header
 studydrive.net: did not receive HSTS header
+stupus.com: could not connect to host
+subbing.work: could not connect to host
 subrosa.io: could not connect to host
 suche.org: could not connect to host
+sudo.li: did not receive HSTS header
 suite73.org: could not connect to host
+suncountrymarine.com: did not receive HSTS header
 sunshinepress.org: could not connect to host
+superiorfloridavacation.com: did not receive HSTS header
+suprlink.net: could not connect to host
+supweb.ovh: could not connect to host
 surfeasy.com: did not receive HSTS header
 suzukikenichi.com: did not receive HSTS header
 sv.search.yahoo.com: did not receive HSTS header
-svager.cz: could not connect to host
+svenluijten.com: did not receive HSTS header
+swmd5c.org: did not receive HSTS header
+sxbk.pw: could not connect to host
 syncer.jp: did not receive HSTS header
 synchtu.be: did not receive HSTS header
+szaszm.tk: could not connect to host
 t.facebook.com: did not receive HSTS header
 tablet.facebook.com: did not receive HSTS header
 tafoma.com: did not receive HSTS header
 tageau.com: did not receive HSTS header
 taglondon.org: did not receive HSTS header
-talk.google.com: could not connect to host
-talk.google.com: could not connect to host (error ignored - included regardless)
+takuto.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+talk.google.com: did not receive HSTS header (error ignored - included regardless)
+talktome.com: max-age too low: 0
 tallshoe.com: could not connect to host
 tandarts-haarlem.nl: did not receive HSTS header
 tanzhijun.com: did not receive HSTS header
 tapka.cz: did not receive HSTS header
-tbarter.com: did not receive HSTS header
+taskulu.ir: could not connect to host
 tcao.info: could not connect to host
 tcl.ath.cx: did not receive HSTS header
-techelements.co: did not receive HSTS header
+team3482.com: did not receive HSTS header
+techandtux.de: could not connect to host
 techhub.ml: could not connect to host
-techloaner.com: could not connect to host
+techtalks.no: could not connect to host
+tedovo.com: did not receive HSTS header
 tegelsensanitaironline.nl: did not receive HSTS header
-tektoria.de: could not connect to host
+tekshrek.com: max-age too low: 0
+tektoria.de: did not receive HSTS header
 temehu.com: did not receive HSTS header
 terrax.berlin: could not connect to host
 terrax.info: could not connect to host
+testbawks.com: could not connect to host
+testnode.xyz: could not connect to host
 textracer.dk: could not connect to host
+thai.land: could not connect to host
 the-sky-of-valkyries.com: could not connect to host
 theater.cf: could not connect to host
 thebrotherswarde.com: could not connect to host
 thecoffeehouse.xyz: could not connect to host
+theflyingbear.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+thegraciousgourmet.com: could not connect to host
 thehiddenbay.net: could not connect to host
 thehistory.me: did not receive HSTS header
+themerchandiser.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+themillerslive.com: could not connect to host
 thepartywarehouse.co.uk: did not receive HSTS header
+thepiratebay.al: could not connect to host
 therapyportal.com: did not receive HSTS header
+thevintagenews.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+theweilai.com: could not connect to host
+theyosh.nl: could not connect to host
+thezonders.com: did not receive HSTS header
+thijsalders.nl: did not receive HSTS header
 thinkindifferent.net: could not connect to host
-thomasgriffin.io: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+thirty5.net: did not receive HSTS header
+thomaskliszowski.fr: could not connect to host
 thorncreek.net: did not receive HSTS header
 thumbtack.com: did not receive HSTS header
 thundr.eu: could not connect to host
+tibbitshall.ca: did not receive HSTS header
+tickopa.co.uk: could not connect to host
+tiensnet.com: did not receive HSTS header
+time-river.xyz: could not connect to host
+timestamp.io: did not receive HSTS header
 timotrans.de: did not receive HSTS header
 timotrans.eu: did not receive HSTS header
+tinastahlschmidt.de: could not connect to host
 tinyvpn.net: could not connect to host
+tipsyk.ru: could not connect to host
 tirex.media: did not receive HSTS header
+titouan.co: did not receive HSTS header
+tittelbach.at: could not connect to host
 titties.ml: could not connect to host
-tlo.network: did not receive HSTS header
-tm-solutions.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+tkarstens.de: could not connect to host
+tls.li: could not connect to host
+tm-solutions.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+tmprod.com: did not receive HSTS header
+tobiasofficial.at: could not connect to host
+todobazar.es: could not connect to host
+tokotimbangandigitalmurah.web.id: did not receive HSTS header
 tollmanz.com: did not receive HSTS header
-tomfisher.eu: could not connect to host
-tomrichards.net: did not receive HSTS header
-tonburi.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+tonburi.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 topbargains.com.au: did not receive HSTS header
 topodin.com: did not receive HSTS header
 topshelfguild.com: could not connect to host
+tosecure.link: could not connect to host
 totem-eshop.cz: could not connect to host
+toucedo.de: could not connect to host
+tourpeer.com: did not receive HSTS header
+toxme.se: could not connect to host
+tpbcdn.com: did not receive HSTS header
 tppleague.me: could not connect to host
-track.plus: did not receive HSTS header
+track.plus: could not connect to host
+tracktivity.com.au: did not receive HSTS header
 tradingcentre.com.au: did not receive HSTS header
+traffixdevices.com: did not receive HSTS header
 translate.googleapis.com: did not receive HSTS header (error ignored - included regardless)
 translatoruk.co.uk: did not receive HSTS header
 trendberry.ru: did not receive HSTS header
 trinitycore.org: max-age too low: 2592000
+trollscave.xyz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 truweight.in: max-age too low: 0
+trw-reseller.com: could not connect to host
 trybind.com: could not connect to host
+ts2.se: did not receive HSTS header
+tsgoc.com: did not receive HSTS header
+tsrstore.gq: could not connect to host
+tssouthernpower.com: did not receive HSTS header
 tuturulianda.com: could not connect to host
-tuzaijidi.com: could not connect to host
 tv.search.yahoo.com: could not connect to host
 tvtubeflix.com: did not receive HSTS header
 twist.party: could not connect to host
+twogo.com: did not receive HSTS header
+tylian.net: did not receive HSTS header
+tyroproducts.eu: did not receive HSTS header
 ua.search.yahoo.com: did not receive HSTS header
 uberfunction.com: did not receive HSTS header
+ubuntuhot.com: did not receive HSTS header
 uega.net: did not receive HSTS header
 ukas.com: did not receive HSTS header
+ukrgadget.com: could not connect to host
+ultros.io: did not receive HSTS header
+umidev.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+umie.cc: did not receive HSTS header
 unapp.me: could not connect to host
-unbanthe.net: did not receive HSTS header
+unbanthe.net: could not connect to host
+undernet.uy: could not connect to host
+uni-games.com: could not connect to host
 univz.com: could not connect to host
-unun.fi: could not connect to host
 uonstaffhub.com: could not connect to host
+uow.ninja: could not connect to host
 upay.ru: did not receive HSTS header
+uplinklabs.net: did not receive HSTS header
 uprotect.it: could not connect to host
 upstats.eu: could not connect to host
+urphp.com: could not connect to host
+uscitizenship.info: did not receive HSTS header
+userify.com: max-age too low: 0
 ustr.gov: max-age too low: 86400
-utleieplassen.no: could not connect to host
+utumno.ch: could not connect to host
 uy.search.yahoo.com: did not receive HSTS header
 uz.search.yahoo.com: did not receive HSTS header
 vaddder.com: could not connect to host
+valethound.com: did not receive HSTS header
 valis.sx: could not connect to host
 vallis.net: could not connect to host
-vbhelp.org: could not connect to host
+valmagus.com: could not connect to host
+vande-walle.eu: could not connect to host
+vanderkley.it: could not connect to host
+vanitas.xyz: could not connect to host
+vasanth.org: did not receive HSTS header
+vbh2o.com: did not receive HSTS header
 vbulletin-russia.com: could not connect to host
 vbulletinrussia.com: could not connect to host
+vechkasov.ru: could not connect to host
+vemokin.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+vennet.fr: could not connect to host
 vermontcareergateway.org: did not receive HSTS header
 vhost.co.id: could not connect to host
 videnskabsklubben.dk: did not receive HSTS header
+videomuz.com: did not receive HSTS header
+vidz.ga: did not receive HSTS header
 viennan.net: could not connect to host
+vinilosdecorativos.net: could not connect to host
+visiontree-beta.eu: could not connect to host
+vissanum.com: did not receive HSTS header
+viva-french.com: did not receive HSTS header
+vizeat.com: did not receive HSTS header
+vm0.eu: could not connect to host
 vmrdev.com: could not connect to host
+voicesuk.co.uk: did not receive HSTS header
+volcrado.com: could not connect to host
 voliere-info.nl: did not receive HSTS header
 vortexhobbies.com: did not receive HSTS header
-votocek.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-votockova.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-vox.vg: did not receive HSTS header
+votocek.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+votockova.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+vox.vg: max-age too low: 0
+vpn-byen.dk: max-age too low: 2592000
+vvl.me: did not receive HSTS header
 vyncke.org: max-age too low: 2678400
 vzk.io: could not connect to host
+vztekloun.cz: could not connect to host
 wallingford.cc: could not connect to host
-walnutgaming.co.uk: could not connect to host
 wanban.io: could not connect to host
 wapjt.cn: could not connect to host
-waze.com: max-age too low: 0
+watsonhall.uk: could not connect to host
+wealthfactory.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 webassadors.com: could not connect to host
-webeau.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+weberjulia.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+webm.to: could not connect to host
 webmail.mayfirst.org: did not receive HSTS header
-webmaniabr.com: did not receive HSTS header
+webmail.xalqbank.az: max-age too low: 0
 webswitch.io: could not connect to host
+weddingenvelopes.co.uk: did not receive HSTS header
+welpy.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 werdeeintimo.de: did not receive HSTS header
+werkplaatsoost.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+werkruimtebottendaal.nl: did not receive HSTS header
 wesecom.com: did not receive HSTS header
+westerhoud.nl: did not receive HSTS header
+wettbuero.de: did not receive HSTS header
+wetten.eu: did not receive HSTS header
+wettertoertchen.com: did not receive HSTS header
 wevahoo.com: could not connect to host
-wf-training-master.appspot.com: could not connect to host
-wf-training-master.appspot.com: could not connect to host (error ignored - included regardless)
 when-release.com: did not receive HSTS header
+whitelabelcashback.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 whitestagforge.com: did not receive HSTS header
+whoclicks.net: did not receive HSTS header
+whoisapi.online: could not connect to host
+whysuck.com: could not connect to host
 whyworldhot.com: did not receive HSTS header
-widememory.com: could not connect to host
-wikidsystems.com: did not receive HSTS header
-winclient.cn: did not receive HSTS header
-winpack.cf: could not connect to host
-winpack.eu.org: could not connect to host
+wiire.me: could not connect to host
+wilf1rst.com: could not connect to host
+winclient.cn: could not connect to host
+winshiplending.com: did not receive HSTS header
+winterschoen.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+wiseloan.com: did not receive HSTS header
+wit.ai: did not receive HSTS header
 withgoogle.com: did not receive HSTS header (error ignored - included regardless)
 withustrading.com: could not connect to host
 withyoutube.com: did not receive HSTS header (error ignored - included regardless)
 wiz.biz: could not connect to host
 wohnungsbau-ludwigsburg.de: did not receive HSTS header
 woima.fi: max-age too low: 604800
+wolfesden.com: could not connect to host
+womosale.de: could not connect to host
 wover.me: did not receive HSTS header
+wphostingspot.com: did not receive HSTS header
+wpmetadatastandardsproject.org: did not receive HSTS header
 writeapp.me: did not receive HSTS header
 wsscompany.com.ve: did not receive HSTS header
-ww2onlineshop.com: did not receive HSTS header
-www.apollo-auto.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-www.calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+www.apollo-auto.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
+www.braintreepayments.com: did not receive HSTS header
+www.calyxinstitute.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 www.cueup.com: could not connect to host
 www.developer.mydigipass.com: could not connect to host
 www.elanex.biz: did not receive HSTS header
 www.gmail.com: did not receive HSTS header (error ignored - included regardless)
 www.googlemail.com: did not receive HSTS header (error ignored - included regardless)
 www.greplin.com: could not connect to host
 www.jitsi.org: did not receive HSTS header
 www.ledgerscope.net: max-age too low: 86400
 www.logentries.com: did not receive HSTS header
 www.moneybookers.com: did not receive HSTS header
 www.neonisi.com: could not connect to host
 www.paycheckrecords.com: max-age too low: 86400
 www.rme.li: did not receive HSTS header
-www.roddis.net: did not receive HSTS header
 www.sandbox.mydigipass.com: could not connect to host
 www.surfeasy.com: did not receive HSTS header
+www.zenpayroll.com: did not receive HSTS header
+www3.info: did not receive HSTS header
+wxukang.cn: did not receive HSTS header
+x2w.io: could not connect to host
 xa.search.yahoo.com: did not receive HSTS header
 xavierbarroso.com: did not receive HSTS header
 xcoop.me: could not connect to host
 xellos.ga: could not connect to host
 xellos.ml: could not connect to host
 xenesisziarovky.sk: could not connect to host
+xerhost.de: did not receive HSTS header
 xiaody.me: could not connect to host
-xiaoxiao.im: could not connect to host
-xplore-dna.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
+xiaoxiao.im: did not receive HSTS header
+ximage.me: did not receive HSTS header
+xiyu.moe: did not receive HSTS header
+xn--3lqp21gwna.xn--fiqs8s: could not connect to host
+xn--79q87uvkclvgd56ahq5a.net: did not receive HSTS header
+xn--maraa-rta.org: could not connect to host
+xng.io: did not receive HSTS header
+xplore-dna.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 xtream-hosting.com: could not connect to host
 xtream-hosting.de: could not connect to host
 xtream-hosting.eu: could not connect to host
 xtreamhosting.eu: could not connect to host
-xtremegaming.it: did not receive HSTS header
+xuri.me: max-age too low: 2592000
 y-o-w.com: did not receive HSTS header
-yaporn.tv: max-age too low: 0
+y-s.pw: did not receive HSTS header
+yasinaydin.net: did not receive HSTS header
+yellowcar.website: could not connect to host
+yenniferallulli.de: could not connect to host
 yenniferallulli.es: could not connect to host
 yenniferallulli.moda: could not connect to host
+yenniferallulli.nl: could not connect to host
 yetii.net: did not receive HSTS header
 yingyj.com: did not receive HSTS header
+yjsoft.me: did not receive HSTS header
 yokeepo.com: max-age too low: 0
 yoloboatrentals.com: did not receive HSTS header
-yoloprod.fr: could not connect to host
 yoloseo.com: could not connect to host
 yu.gg: did not receive HSTS header
+yunzhu.org: could not connect to host
+z4k.de: could not connect to host
 za.search.yahoo.com: did not receive HSTS header
 zachborboa.com: did not receive HSTS header
 zarooba.com: did not receive HSTS header
+zebrababy.cn: did not receive HSTS header
 zeitpunkt-kulturmagazin.de: did not receive HSTS header
-zenpayroll.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-zentraler-kreditausschuss.de: did not receive HSTS header
+zelfstandigemakelaars.net: did not receive HSTS header
+zenpayroll.com: did not receive HSTS header
+zentralwolke.de: did not receive HSTS header
 zh.search.yahoo.com: did not receive HSTS header
+zhaojin97.cn: did not receive HSTS header
+zhendingresources.com: max-age too low: 0
+ziin.de: max-age too low: 0
 zirtue.io: could not connect to host
-zixiao.wang: could not connect to host
 zking.ga: could not connect to host
+zocken.com: could not connect to host
+zomerschoen.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
 zoo24.de: did not receive HSTS header
-zqhong.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 134"  data: no]
-zzsec.org: did not receive HSTS header
+zqhong.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: /builds/slave/m-esr38-l64-periodicupdate-000/getHSTSPreloadList.js :: processStsHeader :: line 137"  data: no]
--- a/security/manager/boot/src/nsSTSPreloadList.inc
+++ b/security/manager/boot/src/nsSTSPreloadList.inc
@@ -3,474 +3,1050 @@
  * 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(1464436017741000);
+const PRTime gPreloadListExpirationTime = INT64_C(1471693133499000);
 
 class nsSTSPreload
 {
   public:
     const char *mHost;
     const bool mIncludeSubdomains;
 };
 
 static const nsSTSPreload kSTSPreloadList[] = {
   { "0.me.uk", true },
   { "007sascha.de", true },
+  { "050media.nl", true },
+  { "0513c.com", true },
   { "0au.de", true },
-  { "0p.no", true },
+  { "0knowledge.de", true },
   { "0paste.com", true },
+  { "0x.cx", true },
+  { "0x.sk", true },
   { "0x0a.net", true },
   { "0x1337.eu", true },
+  { "0x44.net", true },
+  { "0x52.net", true },
+  { "0x90.fi", true },
   { "0x90.io", true },
+  { "0xa.in", true },
+  { "0xee.eu", true },
+  { "0xf00.ch", true },
   { "0xfc.de", true },
   { "1000minds.com", true },
+  { "1001.best", true },
+  { "1011100.com", true },
   { "1017scribes.com", true },
+  { "1018hosting.nl", true },
+  { "1022996493.rsc.cdn77.org", true },
+  { "123test.fr", true },
+  { "126ium.moe", true },
+  { "12vpn.org", true },
+  { "12vpnchina.com", true },
+  { "1464424382.rsc.cdn77.org", true },
+  { "14it.de", true },
+  { "1750studios.com", true },
   { "17hats.com", true },
   { "188trafalgar.ca", true },
   { "18f.gov", true },
   { "18f.gsa.gov", true },
+  { "1972969867.rsc.cdn77.org", true },
   { "1a-diamantscheiben.de", true },
   { "1a-jva.de", true },
   { "1a-vermessung.at", true },
   { "1a-werkstattgeraete.de", true },
   { "1co-jp.net", true },
+  { "1cover.com", true },
+  { "1cover.com.au", true },
+  { "1hourproofreading.com", true },
   { "1km.ro", true },
+  { "1q365a.com", true },
+  { "1st-community.de", true },
+  { "1stcapital.com.sg", true },
+  { "1whw.co.uk", true },
+  { "1xcess.com", true },
   { "2048game.co.uk", true },
+  { "21.co.uk", true },
+  { "247healthshop.com", true },
+  { "24ip.com", true },
+  { "24ip.de", true },
+  { "24ip.fr", true },
   { "2600hq.com", true },
+  { "28spots.net", true },
   { "2bis10.de", true },
+  { "2brokegirls.org", true },
+  { "2carpros.com", true },
+  { "2e-systems.com", true },
+  { "2gen.com", true },
+  { "2kgwf.fi", true },
+  { "2nains.ch", true },
   { "2nerds1bit.com", true },
+  { "2or3.tk", true },
+  { "2programmers.net", true },
+  { "300m.com", true },
   { "301.website", true },
   { "314chan.org", true },
+  { "321live.nl", true },
   { "33-km.ru", true },
+  { "33drugstore.com", true },
   { "3473-wiki.de", true },
+  { "35792.de", true },
+  { "360ds.co.in", true },
   { "360gradus.com", true },
+  { "365beautyworld.com", true },
+  { "365healthworld.com", true },
   { "368mibn.com", true },
   { "3chit.cf", true },
   { "3do3dont.com", true },
+  { "3r.org.uk", true },
+  { "3s-hosting.de", true },
   { "403.ch", true },
+  { "404.sh", true },
   { "42ms.org", true },
-  { "47ronin.com", false },
+  { "4455software.com", true },
+  { "4500.co.il", true },
+  { "4679.space", false },
+  { "4d2.xyz", true },
+  { "4elements.com", false },
   { "4eyes.ch", true },
-  { "4g-server.eu", true },
+  { "4g-server.eu", false },
   { "4mm.org", true },
+  { "4ourty2.org", true },
+  { "4project.co.il", true },
   { "4sqsu.eu", true },
+  { "4w-performers.link", false },
+  { "4winds.pt", true },
+  { "50plusnet.nl", true },
+  { "57aromas.com", true },
   { "5apps.com", true },
+  { "60ych.net", true },
+  { "6120.eu", true },
+  { "646.io", true },
+  { "6660111.ru", true },
   { "692b8c32.de", true },
   { "6969.us", true },
+  { "69square.com", true },
   { "7183.org", true },
   { "777coin.com", true },
+  { "7kovrikov.ru", true },
+  { "7sons.de", true },
+  { "7thheavenrestaurant.com", true },
   { "888sport.dk", true },
+  { "888sport.it", true },
   { "8ack.de", true },
+  { "8t8.eu", true },
+  { "8thportsmouth.org.uk", true },
+  { "911911.pw", true },
+  { "91tianmi.com", true },
+  { "92url.com", true },
+  { "960news.ca", true },
+  { "99511.fi", true },
   { "9point6.com", true },
   { "a-plus.space", true },
+  { "a2nutrition.com.au", true },
+  { "aa-tour.ru", true },
   { "aaeblog.com", true },
+  { "aaeblog.org", true },
+  { "aanmpc.com", true },
+  { "aapp.space", true },
+  { "aaron-gustafson.com", true },
+  { "aaronkimmig.de", true },
+  { "aaronsilber.me", true },
+  { "aatf.us", true },
+  { "abacustech.co.jp", true },
+  { "abareplace.com", true },
+  { "abc.li", true },
+  { "abcheck.se", true },
+  { "abearofsoap.com", true },
   { "abecodes.net", false },
   { "abeestrada.com", true },
+  { "aberdeenjudo.co.uk", true },
   { "abiapp.net", true },
+  { "abilitylist.org", true },
+  { "abilitynet.org.uk", true },
+  { "abilymp06.net", true },
   { "abioniere.de", true },
   { "abiturma.de", true },
-  { "abmahnhelfer.de", true },
+  { "abmahnhelfer.de", false },
+  { "abmgood.com", true },
+  { "abou.to", true },
+  { "aboutmyip.info", true },
+  { "aboutmyproperty.ca", true },
   { "abrilect.com", true },
+  { "abthorpe.org", true },
+  { "abury.fr", true },
   { "abury.me", true },
+  { "ac-town.com", true },
+  { "acabadosboston.com", true },
+  { "accelerole.com", true },
   { "access-sofia.org", true },
   { "accountradar.com", true },
   { "accounts.firefox.com", true },
   { "accounts.google.com", true },
+  { "accuenergy.com", true },
+  { "acheconcursos.com.br", true },
   { "achenar.net", true },
+  { "acheritage.co.uk", true },
+  { "achromatisch.de", true },
+  { "acisonline.net", true },
   { "aclu.org", false },
+  { "acnpacific.com", true },
   { "acorns.com", true },
   { "acr.im", true },
+  { "acritelli.com", true },
+  { "acrylicwifi.com", true },
+  { "activateplay.com", true },
+  { "active.hu", true },
+  { "actserv.co.ke", true },
   { "acuica.co.uk", false },
   { "acus.gov", true },
   { "ad-notam.pt", true },
   { "adam-kostecki.de", true },
   { "adambyers.com", true },
+  { "adamkaminski.com", true },
   { "adamkostecki.de", true },
   { "adamradocz.com", true },
+  { "adamricheimer.com", true },
   { "adams.dk", true },
+  { "adams.net", true },
   { "adamstas.com", true },
+  { "adastra.re", true },
+  { "adayinthelifeof.nl", true },
   { "adblock.ovh", true },
   { "adblockextreme.com", true },
+  { "adblockextreme.org", true },
+  { "adboos.com", true },
+  { "addaxpetroleum.com", true },
+  { "adderall.space", true },
+  { "addstar.jp", true },
   { "adduono.com", true },
   { "addvocate.com", true },
+  { "adelaides.com", true },
+  { "adelevie.com", true },
   { "adevel.eu", true },
+  { "adigitali.biz", true },
   { "adimaja.com", true },
+  { "adiponectinsupplement.info", true },
+  { "adiponectinsupplement.net", true },
   { "adjagu.org", true },
   { "adlershop.ch", true },
+  { "adme.co.il", true },
   { "admin.fedoraproject.org", true },
   { "admin.google.com", true },
   { "admin.stg.fedoraproject.org", true },
+  { "admitcard.co.in", true },
   { "admsel.ec", true },
+  { "adoal.net", true },
+  { "adopteunsiteflash.com", true },
   { "adorai.tk", true },
+  { "adquisitio.co.uk", true },
+  { "adquisitio.de", true },
+  { "adquisitio.es", true },
+  { "adquisitio.fr", true },
+  { "adquisitio.in", true },
+  { "adquisitio.it", true },
+  { "adrenaline-gaming.ru", false },
   { "adrl.ca", true },
   { "adsfund.org", true },
+  { "aduvi.de", true },
   { "advanced-online.eu", true },
+  { "advancedseotool.it", true },
   { "advancis.net", true },
+  { "advelty.cz", true },
+  { "adventistdeploy.org", true },
+  { "adventureforest.de", true },
+  { "adviespuntklokkenluiders.nl", true },
+  { "adzuna.ca", true },
+  { "adzuna.co.uk", true },
+  { "adzuna.co.za", true },
+  { "adzuna.com.au", true },
+  { "adzuna.com.br", true },
+  { "adzuna.de", true },
+  { "adzuna.fr", true },
+  { "adzuna.in", true },
+  { "adzuna.nl", true },
+  { "adzuna.pl", true },
+  { "adzuna.ru", true },
+  { "aeon.co", true },
   { "aerolog.co", true },
   { "aes256.ru", true },
   { "aevpn.net", true },
   { "aeyoun.com", true },
+  { "afb24.de", true },
+  { "affiliateroyale.com", true },
   { "affinitysync.com", true },
+  { "aficotroceni.ro", true },
   { "afp548.com", true },
+  { "africatravel.de", true },
   { "afrodigital.uk", true },
+  { "afuh.de", true },
+  { "afvallendoeje.nu", true },
+  { "agalaxyfarfaraway.co.uk", true },
   { "ageg.ca", true },
+  { "agenda-loto.net", true },
+  { "agevio.com", true },
+  { "agilebits.net", false },
   { "agonswim.com", true },
+  { "agowa338.de", true },
+  { "agro-id.gov.ua", true },
+  { "agroline.by", true },
+  { "agwa.name", true },
+  { "ahabingo.com", true },
+  { "ahd.com", true },
+  { "ahmad.works", false },
   { "ahmerjamilkhan.org", true },
   { "ahoyconference.com", true },
   { "ahwatukeefoothillsmontessori.com", true },
   { "ahxxm.com", true },
+  { "aia.de", true },
   { "aids.gov", true },
   { "aie.de", true },
+  { "aiesecarad.ro", true },
+  { "aikido-linz.at", true },
+  { "aikido-wels.at", true },
   { "aircomms.com", true },
   { "airlea.com", true },
+  { "airlinecheckins.com", true },
+  { "airsoft.ch", true },
   { "aishnair.com", true },
+  { "aisle3.space", true },
   { "aiticon.com", true },
+  { "aivd.lol", true },
   { "ajouin.com", true },
   { "akachanikuji.com", true },
+  { "akaoma.com", false },
+  { "akelius.de", true },
+  { "akerek.hu", true },
   { "akhilindurti.com", true },
+  { "akhras.at", true },
   { "akombakom.net", true },
   { "akostecki.de", true },
+  { "akoww.de", true },
+  { "akropolis-ravensburg.de", true },
   { "akselinurmio.fi", true },
+  { "akstudentsfirst.org", true },
   { "aktiv-naturheilmittel.at", true },
   { "aktiv-naturheilmittel.ch", true },
   { "aktiv-naturheilmittel.de", true },
   { "aladdin.ie", true },
   { "aladdinschools.appspot.com", true },
   { "alainwolf.ch", true },
   { "alainwolf.net", true },
   { "alair.cn", true },
   { "alaninkenya.org", true },
+  { "alanlee.net", true },
   { "alanrickmanflipstable.com", true },
   { "alaricfavier.eu", true },
+  { "alariel.de", true },
+  { "alasta.info", true },
+  { "alastyr.com", true },
+  { "albertopimienta.com", true },
+  { "albion2.org", true },
   { "alcazaar.com", true },
+  { "aldes.co.za", true },
+  { "aleax.me", true },
+  { "alecpap.com", true },
+  { "alela.fr", true },
   { "alenan.org", true },
-  { "alethearose.com", true },
+  { "alertwire.com", true },
   { "alex-ross.co.uk", true },
+  { "alexandra-schulze.de", true },
+  { "alexandre.sh", true },
   { "alexbaker.org", true },
   { "alexgaynor.net", true },
+  { "alexhaydock.co.uk", true },
+  { "alexhd.de", true },
+  { "alexisabarca.com", true },
+  { "alexismeza.com", true },
+  { "alexmerkel.com", true },
+  { "alexmerkel.me", true },
+  { "alexmerkel.xyz", true },
+  { "alexn.org", true },
+  { "alexsergeyev.com", true },
   { "alexsexton.com", true },
   { "alexvetter.de", true },
   { "alexwardweb.com", true },
   { "alexyang.me", true },
-  { "alfredxing.com", true },
+  { "alienstat.com", true },
+  { "alittlebitcheeky.com", false },
   { "alkami.com", true },
   { "alkamitech.com", true },
+  { "all.tf", false },
+  { "all4os.com", true },
+  { "allbenjoy.de", true },
   { "allcarepharmacy.com", true },
+  { "allforyou.at", true },
+  { "alliedfrozenstorage.com", true },
+  { "allinnote.com", true },
+  { "allinonecyprus.com", true },
+  { "allmbw.com", true },
+  { "allstarswithus.com", true },
   { "alltheducks.com", true },
+  { "allthethings.co.nz", true },
+  { "allthingssquared.com", true },
   { "allthingswild.co.uk", true },
+  { "almeria-si.fr", true },
+  { "almeria.fr", true },
+  { "alnitech.com", true },
   { "alocato.com", true },
   { "alpca.org", true },
+  { "alpha-force.net", true },
+  { "alphabuild.io", true },
+  { "alphalabs.xyz", true },
   { "alphassl.de", true },
+  { "alphatrash.de", true },
+  { "alt-three.com", true },
   { "alt.org", true },
   { "altedirect.com", true },
+  { "alterbaum.net", true },
   { "altesses.eu", true },
   { "altestore.com", true },
+  { "altfire.ca", true },
   { "altonblom.com", true },
+  { "altopia.com", true },
   { "alza.cz", true },
   { "alza.de", true },
   { "alza.sk", true },
   { "alzashop.com", true },
+  { "am3.se", true },
+  { "ama.ne.jp", true },
   { "amaforums.org", true },
+  { "amateri.com", true },
+  { "amavis.org", true },
+  { "amazing-gaming.fr", true },
+  { "ambiente.one", true },
+  { "ambiq.nl", true },
+  { "amcvega.com", true },
   { "amdouglas.com", true },
   { "amdouglas.uk", true },
+  { "amees.me", true },
+  { "american-truck-simulator.de", true },
+  { "american-truck-simulator.net", true },
   { "americanbio.com", true },
+  { "americanworkwear.nl", true },
+  { "americkykongres.cz", true },
+  { "amerigroup.com", true },
   { "amerimarkdirect.com", true },
+  { "amilx.org", true },
   { "amisharingstuff.com", true },
   { "amishsecurity.com", true },
+  { "amitube.com", true },
+  { "amnesy.fr", true },
   { "amoory.com", false },
-  { "amunoz.org", true },
+  { "amv-crm.ru", true },
   { "anadoluefessk.org", true },
   { "anadoluefessporkulubu.org", true },
+  { "anagra.ms", true },
   { "anakros.me", true },
-  { "andere-gedanken.net", true },
+  { "analytic-s.ml", true },
+  { "ananke.io", true },
+  { "anassiriphotography.com", false },
+  { "anastasiafond.com", true },
+  { "and-stuff.nl", true },
+  { "and.com", true },
   { "anderslind.dk", true },
+  { "andisadhdspot.com", true },
+  { "andreaboero.it", true },
   { "andreas-kluge.eu", true },
   { "andreasfeusi.ch", true },
   { "andreaskluge.eu", true },
   { "andreasolsson.se", true },
+  { "andreastoneman.com", true },
   { "andreigec.net", true },
+  { "andrepicard.de", true },
   { "andrewbroekman.com", true },
+  { "andrewhowden.com", true },
   { "andrewimeson.com", true },
+  { "andrewmichaud.beer", true },
+  { "andrewmichaud.com", true },
+  { "andrewmichaud.me", true },
   { "andrewsun.com", true },
+  { "andrewtebert.com", true },
+  { "andrewthelott.net", true },
+  { "andrewvoce.com", true },
+  { "andrewx.net", true },
   { "andreypopp.com", true },
+  { "andsat.org", true },
   { "andymartin.cc", true },
+  { "andyuk.org", true },
   { "anedot.com", true },
   { "anedot.xyz", true },
   { "anetaben.nl", true },
   { "anfsanchezo.me", true },
+  { "anghami.com", true },
+  { "anglictinatabor.cz", true },
+  { "angrapa.ru", true },
   { "angristan.fr", true },
   { "angularjs.org", true },
+  { "animalnet.de", false },
   { "anime.my", false },
+  { "animesfusion.com.br", true },
   { "animesharp.com", true },
   { "aniplus.cf", true },
   { "aniplus.gq", true },
+  { "aniplus.ml", true },
+  { "anitaalbersen.nl", true },
   { "anitube-nocookie.ch", true },
   { "anitube.ch", true },
   { "ankakaak.com", true },
   { "ankarakart.com.tr", true },
   { "ankaraprofesyonelnakliyat.com", true },
   { "ankaraprofesyonelnakliyat.com.tr", true },
   { "ankaraprofesyonelwebtasarim.com", true },
   { "ankarauzmanlarnakliyat.com", true },
-  { "annabellaw.com", true },
   { "annahmeschluss.de", true },
+  { "annarokina.com", true },
+  { "annetta.com", true },
   { "annevankesteren.com", true },
   { "annevankesteren.nl", true },
   { "annevankesteren.org", true },
+  { "annuaire-photographe.fr", true },
+  { "anonboards.com", true },
+  { "anoncom.net", true },
+  { "anonukradio.org", true },
   { "anonym-surfen.de", true },
+  { "anook.com", true },
   { "another.ch", true },
   { "ansdell.net", true },
+  { "anshuman-chatterjee.com", true },
+  { "anthenor.co.uk", true },
   { "antipolygraph.org", true },
+  { "antocom.com", true },
+  { "antoine-roux.fr", true },
+  { "antoinedeschenes.com", true },
   { "antoniomarques.eu", true },
+  { "anyprime.net", true },
+  { "anyways.at", true },
   { "anzeiger.ag", true },
+  { "ao-dev.com", true },
+  { "ao2.it", true },
   { "aojf.fr", true },
+  { "aopedeure.nl", true },
   { "aosus.org", true },
   { "apachehaus.de", false },
   { "apadvantage.com", true },
+  { "apeasternpower.com", true },
+  { "aperturesciencelabs.de", true },
+  { "apervita.net", true },
+  { "apexitsolutions.ca", true },
+  { "api-geek.com", true },
   { "api.cloudflare.com", false },
-  { "api.intercom.io", false },
+  { "api.intercom.io", true },
   { "api.lookout.com", false },
   { "api.simple.com", false },
   { "api.xero.com", false },
   { "apis.google.com", true },
+  { "apmg-certified.com", true },
+  { "apmg-cyber.com", true },
   { "apn-einstellungen.de", true },
   { "apnakliyat.com", true },
+  { "apolloyl.com", true },
   { "aponow.de", true },
+  { "aposke.com", true },
+  { "app-arena.com", true },
   { "app.lookout.com", false },
   { "app.manilla.com", true },
   { "app.recurly.com", true },
   { "app.simpletax.ca", false },
   { "app.yinxiang.com", false },
+  { "appart.ninja", true },
   { "appartementhaus-badria.de", true },
+  { "appdrinks.com", true },
   { "appengine.google.com", true },
   { "appharbor.com", true },
   { "apple-watch-zubehoer.de", true },
+  { "appleoosa.com", true },
+  { "applez.xyz", true },
+  { "applic8.com", true },
   { "appmobile.io", true },
-  { "approlys.fr", true },
+  { "appointed.at", true },
+  { "appraisal-comps.com", true },
+  { "appreciationkards.com", true },
+  { "approbo.com", true },
   { "apps-for-fishing.com", true },
   { "apps.facebook.com", false },
   { "apps.fedoraproject.org", true },
   { "apps.stg.fedoraproject.org", true },
+  { "appsdash.io", true },
   { "appson.co.uk", true },
   { "appuro.com", true },
+  { "aprovpn.com", true },
+  { "aprsdroid.org", true },
   { "aprz.de", true },
   { "apstudynotes.org", true },
+  { "aquapoint.kiev.ua", true },
   { "aquilaguild.com", true },
+  { "aradulconteaza.ro", true },
+  { "aramido.de", true },
   { "aranycsillag.net", true },
+  { "arbeitskreis-asyl-eningen.de", true },
+  { "arbitrarion.com", true },
   { "arbitrary.ch", true },
+  { "arboworks.com", true },
   { "archlinux.de", true },
   { "areafiftylan.nl", true },
   { "areatrend.com", true },
   { "arendburgers.nl", true },
+  { "argh.io", true },
   { "arguggi.co.uk", true },
+  { "arima.co.ke", true },
+  { "aristocrates.co", true },
   { "arivo.com.br", false },
   { "arjandejong.eu", true },
   { "arlen.io", true },
+  { "arlen.se", true },
+  { "armingrodon.de", true },
+  { "armor.com", true },
   { "armory.consulting", true },
   { "armory.supplies", false },
-  { "armytricka.cz", true },
   { "arnaudfeld.de", true },
+  { "arnesolutions.com", true },
   { "arnor.org", true },
   { "aroonchande.com", true },
+  { "arpa.ph", true },
+  { "arrmaforum.com", true },
+  { "arrowgrove.com", true },
+  { "ars.toscana.it", true },
+  { "art2web.net", true },
   { "artegusto.ru", true },
   { "arteseideias.com.pt", true },
+  { "artetrama.com", true },
+  { "articaexports.com", true },
+  { "artifex21.com", true },
+  { "artifex21.fr", true },
+  { "artisanhd.com", true },
+  { "artistnetwork.nl", true },
+  { "artmoney.com", true },
   { "artofwhere.com", true },
+  { "artspac.es", true },
+  { "arturkohut.com", true },
   { "arty.name", true },
+  { "arubasunsetbeach.com", true },
+  { "arvamus.eu", true },
+  { "arvid.io", true },
+  { "arw.me", true },
   { "aryasenna.net", true },
+  { "arzaroth.com", true },
+  { "as.se", true },
+  { "as200753.com", true },
+  { "as200753.net", true },
+  { "as9178.net", true },
   { "asandu.eu", true },
+  { "asasuou.pw", true },
+  { "ascamso.com", true },
+  { "ascii.moe", true },
+  { "asdpress.cn", true },
+  { "aserver.co", true },
   { "ask.fedoraproject.org", true },
   { "ask.stg.fedoraproject.org", true },
   { "askfit.cz", true },
+  { "askmagicconch.com", true },
   { "askwhy.cz", true },
   { "askwhy.eu", true },
   { "asm-x.com", true },
+  { "asmui.ml", true },
   { "aspargesgaarden.no", true },
   { "aspires.co.jp", true },
   { "ass.org.au", true },
   { "assdecoeur.org", true },
+  { "assekuranzjobs.de", true },
   { "astengox.com", true },
+  { "astromelody.com", true },
   { "asun.co", true },
+  { "asurepay.cc", true },
   { "at.search.yahoo.com", false },
   { "atavio.at", true },
   { "atavio.ch", true },
+  { "atavio.de", true },
+  { "atbeckett.com", true },
   { "atc.io", true },
+  { "atchleyjazz.com", true },
+  { "atchleyjazz.org", true },
+  { "atchleylab.org", true },
+  { "ateli.com", true },
+  { "atg.soy", true },
   { "atgseed.co.uk", true },
   { "atgseed.uk", true },
+  { "ath0.org", true },
   { "athenelive.com", true },
+  { "athensbusinessresources.us", true },
   { "atishchenko.com", true },
   { "atisoft.com.tr", true },
   { "atisoft.net", true },
   { "atisoft.net.tr", true },
   { "atisoft.web.tr", true },
   { "atlantichomes.com.au", true },
   { "atlantischild.hu", true },
   { "atlassian.net", true },
+  { "atletika.hu", true },
   { "atlex.nl", true },
   { "atolm.net", true },
   { "atop.io", true },
   { "atte.fi", true },
+  { "attorney.org.il", true },
+  { "aucubin.moe", false },
+  { "audiovisualdevices.com.au", true },
+  { "audisto.com", true },
   { "auditmatrix.com", true },
   { "auf-feindgebiet.de", true },
+  { "augias.org", true },
+  { "augiero.it", true },
   { "augustian-life.cz", true },
   { "augustiner-kantorei-erfurt.de", true },
   { "augustiner-kantorei.de", true },
+  { "aujapan.ru", true },
   { "aulo.in", false },
   { "aunali1.com", true },
   { "aurainfosec.com", true },
   { "aurainfosec.com.au", true },
   { "auraredeye.com", true },
   { "auraredshield.com", true },
-  { "aussiecable.org", true },
+  { "ausnah.me", true },
+  { "ausschreibungen-suedtirol.it", true },
+  { "aussiehq.com.au", true },
+  { "auth.adult", true },
   { "authentication.io", true },
   { "authint.com", true },
+  { "authoritynutrition.com", true },
+  { "auto-anleitung.de", true },
+  { "auto-serwis.zgorzelec.pl", true },
   { "autokovrik-diskont.ru", true },
   { "autoledky.sk", true },
+  { "automacity.com", true },
+  { "autotsum.com", true },
+  { "autumnwindsagility.com", true },
   { "avacariu.me", true },
   { "avalon-island.ru", true },
   { "avantmfg.com", true },
   { "avarty.com", true },
   { "avastantivirus.ro", true },
-  { "avec-ou-sans-ordonnance.fr", true },
+  { "avenueeyecare.com", true },
+  { "avg.club", true },
   { "aviacao.pt", true },
+  { "avinet.com", false },
+  { "avmemo.com", true },
+  { "avmoo.com", true },
+  { "avsox.com", true },
+  { "avtovokzaly.ru", true },
+  { "awanderlustadventure.com", true },
+  { "awxg.com", true },
   { "axka.com", false },
+  { "axrec.de", true },
   { "aylak.com", true },
+  { "ayurveda101.com", true },
   { "azabani.com", true },
+  { "azimut.fr", true },
   { "azirevpn.com", true },
+  { "aztrix.me", true },
+  { "azzag.co.uk", true },
+  { "azzorti.com", true },
   { "b-root-force.de", true },
   { "b2and.com", false },
-  { "b3orion.com", true },
+  { "b303.me", true },
+  { "baalsworld.de", true },
+  { "babacasino.net", true },
+  { "babak.de", true },
   { "babarkata.com", true },
+  { "babelfisch.eu", true },
+  { "baby-click.de", true },
+  { "babybee.ie", true },
   { "babyfotograf-schweiz.ch", true },
+  { "babyhouse.xyz", true },
+  { "babysaying.me", true },
   { "bacchanallia.com", true },
+  { "backeby.eu", true },
+  { "backmountaingas.com", true },
+  { "backscattering.de", true },
   { "backschues.net", true },
+  { "bacula.jp", true },
+  { "bad.horse", true },
   { "badcronjob.com", true },
   { "badges.fedoraproject.org", true },
   { "badges.stg.fedoraproject.org", true },
+  { "badhusky.com", true },
   { "badkamergigant.com", true },
   { "badlink.org", true },
   { "baer.im", true },
-  { "baff.lu", true },
+  { "baer.one", true },
   { "bagelsbakery.com", true },
+  { "bah.im", true },
+  { "baiker.info", true },
+  { "baiyangliu.com", true },
   { "bajic.ch", true },
+  { "bakabt.info", true },
+  { "bakaweb.fr", true },
+  { "bakkerdesignandbuild.com", true },
   { "balboa.io", true },
   { "balcan-underground.net", true },
   { "balikonos.cz", true },
+  { "baliyano.com", true },
   { "balkonien.org", true },
   { "ball.holdings", true },
-  { "bam.com.au", true },
+  { "ballotapi.com", true },
   { "bananabandy.com", true },
+  { "bananium.fr", true },
   { "bandrcrafts.com", true },
   { "bank.simple.com", false },
+  { "bankcardoffer.com", true },
+  { "bankersonline.com", true },
   { "bankin.com", true },
+  { "bankofdenton.com", true },
+  { "banqingdiao.com", true },
   { "baofengtech.com", true },
+  { "barbaros.info", true },
+  { "barbu.family", true },
   { "barcodeberlin.com", true },
+  { "barcoderealty.com", true },
   { "bardiharborow.com", true },
+  { "barisi.me", true },
+  { "barqo.co", true },
+  { "barrelhead.org", true },
+  { "barrut.me", true },
   { "barslecht.com", true },
   { "barslecht.nl", true },
+  { "bartel.ws", true },
+  { "bartlamboo.nl", true },
   { "baruch.me", true },
+  { "bashc.at", true },
+  { "bashcode.ninja", true },
+  { "basicsolutionsus.com", true },
+  { "basnieuwenhuizen.nl", true },
   { "basnoslovno.com.ua", true },
   { "basnoslovno.ru", true },
   { "bassh.net", true },
   { "bastianstalder.ch", true },
   { "baud.ninja", true },
   { "bautied.de", true },
+  { "bayden.com", true },
   { "bayrisch-fuer-anfaenger.de", true },
+  { "bazdell.com", true },
+  { "bbdos.ru", true },
+  { "bblovess.cn", true },
   { "bbnx.net", true },
+  { "bbuio.com", true },
+  { "bc-bd.org", true },
+  { "bcbsmagentprofile.com", true },
   { "bccx.com", true },
+  { "bcdonadio.com", true },
+  { "bcheng.cf", true },
+  { "bckp.de", true },
+  { "bcmlu.org", true },
   { "bcrook.com", false },
   { "bcsytv.com", true },
   { "bcvps.com", true },
-  { "beach-inspector.com", true },
+  { "bcweightlifting.ca", true },
+  { "bdikaros-network.net", true },
   { "beachi.es", true },
   { "beaglewatch.com", true },
   { "beamitapp.com", true },
+  { "beanjuice.me", true },
   { "beans-one.com", false },
+  { "beardydave.com", true },
   { "beastowner.li", true },
+  { "beautykat.ru", true },
+  { "beavers.io", true },
+  { "bebef.de", true },
   { "bebesurdoue.com", true },
+  { "bedabox.com", true },
   { "bedeta.de", true },
   { "bedreid.dk", true },
   { "beeksnetwork.nl", true },
+  { "beepan.com", true },
   { "beercandle.com", true },
+  { "beeznest.com", true },
+  { "beframed.ch", true },
+  { "befundonline.de", true },
+  { "behere.be", true },
   { "beholdthehurricane.com", true },
   { "beier.io", true },
+  { "beikeil.de", true },
+  { "beinad.com", true },
+  { "beinad.ru", true },
+  { "belcompany.nl", true },
+  { "believablebook.com", false },
+  { "belliash.eu.org", true },
+  { "belly-button-piercings.com", true },
+  { "bely-mishka.by", true },
+  { "bemyvictim.com", true },
   { "ben-energy.com", false },
   { "ben.ninja", true },
   { "benchling.com", true },
   { "bendechrai.com", true },
+  { "bendemaree.com", true },
+  { "bendingtheending.com", true },
   { "beneathvt.com", true },
   { "beneffy.com", true },
+  { "benhartmann.de", true },
   { "benjamin.pe", true },
+  { "benjaminblack.net", true },
   { "benjamins.com", true },
+  { "benk.press", true },
+  { "benmatthews.com.au", true },
+  { "benni1.eu", true },
+  { "benno.frl", true },
+  { "benschnarr.com", true },
   { "bentertain.de", true },
   { "bentley.link", true },
   { "bentrask.com", true },
+  { "benzkosmetik.de", true },
   { "beranovi.com", true },
   { "bergstoneware.com", false },
+  { "berlinleaks.com", true },
   { "bermeitinger.eu", true },
+  { "bermytraq.bm", true },
+  { "berr.yt", true },
   { "berra.se", true },
   { "berst.cz", true },
   { "berthabailey.com", true },
+  { "beryl.net", true },
+  { "bespokestraps.com", true },
   { "best-wedding-quotes.com", true },
+  { "bestbrakes.com", true },
+  { "bestessayhelp.com", true },
   { "besthost.cz", true },
+  { "bestlashesandbrows.com", true },
+  { "bestorangeseo.com", true },
+  { "betaclean.fr", true },
+  { "betafive.net", true },
   { "betaworx.de", true },
   { "betaworx.eu", true },
-  { "bets.de", true },
+  { "betcafearena.ro", true },
+  { "betonmoney.com", true },
+  { "betpamm.com", true },
+  { "betplanning.it", true },
   { "bettercrypto.org", true },
   { "betterhelp.com", true },
   { "bettrlifeapp.com", true },
   { "bettween.com", true },
+  { "betulashop.ch", true },
+  { "betz.ro", true },
+  { "bevinco2020.com", true },
+  { "bevinsco.org", true },
+  { "bexit-hosting.nl", true },
+  { "bexit-security.eu", true },
+  { "bexit-security.nl", true },
   { "bexit.nl", true },
+  { "bexithosting.nl", true },
+  { "bf.am", true },
+  { "bfear.com", true },
   { "bfelob.gov", true },
+  { "bfi.wien", true },
   { "bfw-online.de", true },
+  { "bgcparkstad.nl", true },
+  { "bgdaddy.com", true },
   { "bgmn.net", true },
   { "bgneuesheim.de", true },
   { "bhatia.at", true },
+  { "bhtelecom.ba", true },
+  { "bhuntr.com", true },
   { "biasmath.es", true },
   { "biathloncup.ru", true },
+  { "bible-maroc.com", true },
+  { "bible.ru", true },
+  { "bibleonline.ru", true },
+  { "biblerhymes.com", true },
+  { "biblionaut.net", true },
   { "biddl.com", true },
+  { "bieberium.de", true },
+  { "bielsa.me", true },
+  { "bienenblog.cc", true },
   { "bienici.com", true },
+  { "bierbaumer.net", true },
+  { "biergaizi.info", true },
   { "big-andy.co.uk", true },
+  { "big-black.de", true },
   { "bigbluedoor.net", true },
   { "bigbrownpromotions.com.au", true },
   { "bigclassaction.com", true },
+  { "biguixhe.net", true },
   { "bike-shack.com", true },
+  { "bikermusic.net", true },
+  { "bikiniseli.com", true },
   { "bildermachr.de", true },
+  { "bildiri.ci", true },
+  { "bildschirmflackern.de", true },
+  { "billaud.eu.org", true },
+  { "billiger-mietwagen.de", true },
   { "billigssl.dk", true },
+  { "billin.net", true },
+  { "billogram.com", true },
+  { "billpro.com", true },
+  { "billpro.com.au", true },
+  { "bilrom.com", true },
+  { "bimbo.com", true },
+  { "bimbobakeriesusa.com", true },
+  { "binaryabstraction.com", true },
   { "binaryevolved.com", true },
+  { "bingofriends.com", true },
+  { "bingostars.com", true },
+  { "biodieseldata.com", true },
+  { "bioemsan.cz", true },
+  { "biofam.ru", true },
+  { "biolindo.com", true },
   { "bionicspirit.com", true },
   { "biosignalanalytics.com", true },
+  { "biosphere.cc", true },
   { "biou.me", true },
+  { "bip.gov.sa", true },
+  { "birdfeeder.online", true },
+  { "birkman.com", true },
+  { "birminghamsunset.com", true },
   { "bit-sentinel.com", true },
   { "bit.voyage", true },
+  { "bit8.com", true },
+  { "bitbeans.de", true },
+  { "bitbr.net", true },
   { "bitbucket.org", false },
   { "bitchan.it", true },
+  { "bitcoin-india.org", true },
+  { "bitcoin.asia", true },
+  { "bitcoin.ch", true },
+  { "bitcoin.co.nz", true },
   { "bitcoin.de", true },
+  { "bitcoin.im", true },
+  { "bitcoin.info", true },
+  { "bitcoin.us", true },
+  { "bitcoinbitcoin.com", true },
   { "bitcoinhk.org", true },
+  { "bitcoinprivacy.net", true },
   { "bitcoinworld.me", true },
   { "bitcoinx.ro", true },
+  { "bitf.ly", true },
   { "bitfactory.ws", true },
+  { "bitfehler.net", true },
+  { "bitfinder.nl", true },
+  { "bitfuse.net", true },
   { "bitgo.com", true },
+  { "bitheus.com", true },
   { "bitlish.com", true },
   { "bitmex.com", true },
   { "bitminter.com", true },
+  { "bitmoe.com", true },
   { "bitmon.net", true },
   { "bitnet.io", true },
   { "bitok.com", true },
   { "bitpod.de", true },
+  { "bitref.com", true },
+  { "bitsafe.systems", true },
+  { "bitshaker.net", true },
+  { "bitskins.co", true },
+  { "bittersweetcandybowl.com", true },
+  { "bivsi.com", true },
   { "bizcms.com", true },
   { "bjornhelmersson.se", true },
   { "bjornjohansen.no", true },
   { "bl4ckb0x.com", true },
   { "bl4ckb0x.de", true },
+  { "bl4ckb0x.eu", true },
   { "bl4ckb0x.info", true },
   { "bl4ckb0x.net", true },
   { "bl4ckb0x.org", true },
   { "blablacar.co.uk", true },
   { "blablacar.com", true },
   { "blablacar.com.tr", true },
   { "blablacar.com.ua", true },
   { "blablacar.de", true },
@@ -482,2107 +1058,4514 @@ static const nsSTSPreload kSTSPreloadLis
   { "blablacar.it", true },
   { "blablacar.mx", true },
   { "blablacar.nl", true },
   { "blablacar.pl", true },
   { "blablacar.pt", true },
   { "blablacar.ro", true },
   { "blablacar.rs", true },
   { "blablacar.ru", true },
+  { "black-armada.com", true },
+  { "black-armada.com.pl", true },
+  { "black-armada.pl", true },
   { "blackberrycentral.com", true },
   { "blackburn.link", true },
+  { "blackdesertsp.com", true },
   { "blackdragoninc.org", true },
+  { "blackhelicopters.net", true },
   { "blackpayment.ru", true },
   { "blaise.io", true },
+  { "blastersklan.com", true },
+  { "blaudev.es", true },
   { "blauwwit.be", true },
   { "blazor.nl", true },
   { "blechschmidt.saarland", true },
   { "blendle.com", true },
   { "blendle.nl", true },
   { "blessnet.jp", true },
+  { "blha303.com.au", true },
+  { "blindsexdate.nl", true },
+  { "blinkenlight.co.uk", true },
+  { "blinkenlight.com.au", true },
   { "blmiller.com", true },
   { "blockchain.info", true },
   { "blocksatz-medien.de", true },
   { "bloemendal.me", true },
   { "blog.cyveillance.com", true },
   { "blog.gov.uk", true },
-  { "blog.gparent.org", true },
   { "blog.linode.com", false },
   { "blog.torproject.org", false },
+  { "blogarts.net", true },
   { "blognone.com", true },
+  { "blogreen.org", true },
   { "blubbablasen.de", true },
+  { "blubberladen.de", true },
+  { "blue-labs.org", true },
+  { "blue-leaf81.net", true },
+  { "blue42.net", true },
+  { "bluechilli.com", true },
+  { "blueflare.org", true },
+  { "blueliv.com", true },
   { "bluemosh.com", true },
+  { "blueperil.de", true },
+  { "bluepoint.foundation", true },
+  { "bluepoint.institute", true },
+  { "bluescloud.xyz", true },
   { "blumenfeldart.com", true },
+  { "blumiges-fischbachtal.de", true },
+  { "blupig.net", true },
+  { "blurringexistence.net", true },
+  { "bluserv.net", true },
+  { "blusmurf.net", true },
+  { "blutroyal.de", true },
   { "bm-trading.nl", true },
+  { "bmoattachments.org", true },
+  { "bmone.net", true },
+  { "bnhlibrary.com", true },
+  { "bobiji.com", true },
   { "bockenauer.at", true },
+  { "bodhi.fedoraproject.org", true },
   { "bodyblog.nl", true },
+  { "boeddhashop.nl", true },
+  { "boensou.com", true },
+  { "boernecancerfonden.dk", true },
   { "bohramt.de", true },
+  { "boilesen.com", true },
   { "boiseonlinemall.com", true },
+  { "bokeyy.com", true },
   { "bonapp.restaurant", true },
+  { "bondskampeerder.nl", true },
+  { "bonfi.net", true },
   { "bonifacius.be", true },
   { "bonobo.cz", true },
+  { "bookmein.in", true },
+  { "bookofraonlinecasinos.com", true },
+  { "bootjp.me", true },
+  { "borchers-media.de", true },
   { "boringsecurity.net", true },
+  { "boringsmith.com", true },
   { "boris.one", false },
+  { "borisbesemer.com", true },
   { "borrelioz.com", true },
   { "borysek.net", true },
+  { "botox.bz", true },
   { "bougeret.fr", true },
-  { "bouncyball.eu", true },
+  { "bouncourseplanner.net", true },
+  { "bouncyball.eu", false },
   { "bouncyballs.org", true },
-  { "bowling.com", true },
+  { "bourse-aux-jouets.org", true },
+  { "bourse-puericulture.org", true },
+  { "bouwbedrijfpurmerend.nl", true },
   { "bownty.dk", true },
   { "boxcryptor.com", true },
   { "boxintense.com", true },
   { "boypoint.de", true },
+  { "bpadvisors.eu", true },
   { "bpastudies.org", true },
   { "bqtoolbox.com", true },
   { "br.search.yahoo.com", false },
+  { "bradbrockmeyer.com", true },
   { "bradkovach.com", true },
   { "brage.info", true },
   { "brainfork.ml", true },
   { "brainster.co", false },
   { "braintreegateway.com", true },
-  { "brakemanpro.com", true },
-  { "brakstad.org", true },
+  { "bramvanaken.be", true },
   { "bran.cc", true },
+  { "bran.land", true },
+  { "branchzero.com", true },
   { "brandbuilderwebsites.com", true },
+  { "brandnewdays.nl", true },
   { "brandon.so", true },
+  { "brandred.net", true },
   { "brasalcosmetics.com", true },
   { "bratteng.me", true },
+  { "bratteng.xyz", true },
+  { "brd.ro", true },
+  { "breechdepot.com", true },
   { "breeswish.org", true },
+  { "bregnedalsystems.dk", true },
+  { "breitbild-beamer.de", true },
+  { "brejoc.com", true },
+  { "brewtrackr.com", true },
   { "brianmwaters.net", true },
-  { "brightstarkids.co.uk", true },
-  { "brightstarkids.com.au", true },
-  { "brightstarkids.net", true },
-  { "brightstarkids.sg", true },
+  { "brianpcurran.com", true },
+  { "brickoo.com", true },
+  { "brideandgroomdirect.ie", true },
+  { "bridholm.se", true },
+  { "brightonbank.com", true },
+  { "brightstarkids.co.uk", false },
+  { "brightstarkids.com.au", false },
+  { "brightstarkids.net", false },
+  { "brightstarkids.sg", false },
+  { "brilliantdecisionmaking.com", true },
+  { "britishscienceweek.org", true },
+  { "britzer-toner.de", true },
   { "brks.xyz", true },
   { "broadsheet.com.au", true },
   { "broersma.com", true },
   { "broeselei.at", true },
+  { "broken-oak.com", true },
+  { "bronevichok.ru", false },
+  { "brossman.it", true },
   { "brossmanit.com", true },
   { "brownfieldstsc.org", true },
   { "brrr.fr", true },
+  { "brunix.net", true },
+  { "brunn.email", true },
+  { "brunoramos.com", true },
+  { "brunoramos.org", true },
   { "brunosouza.org", true },
   { "bryanquigley.com", true },
   { "bryn.xyz", true },
+  { "bsalyzer.com", true },
   { "bsidessf.com", true },
-  { "bsklabels.com", true },
+  { "bsklabels.com", false },
+  { "bsquared.org", true },
+  { "bta.lv", false },
+  { "btcdlc.com", true },
   { "btsoft.eu", true },
+  { "bubblegumblog.com", true },
+  { "buchheld.at", true },
+  { "buck.com", true },
   { "buddhistische-weisheiten.org", true },
   { "budgetalk.com", true },
+  { "budgetthostels.nl", true },
+  { "budskap.eu", true },
+  { "buettgens.net", true },
+  { "buffalodrinkinggame.beer", true },
   { "bugcrowd.com", true },
   { "bugginslab.co.uk", true },
+  { "bugs.chromium.org", true },
+  { "bugtrack.io", true },
   { "bugzil.la", true },
   { "bugzilla.mozilla.org", true },
   { "buiko.com", true },
   { "build.chromium.org", false },
+  { "buildbox.io", true },
   { "buildkite.com", true },
+  { "built.by", true },
+  { "bukkenfan.jp", true },
   { "bulktrade.de", true },
+  { "bullbits.com", true },
   { "bulldog-hosting.de", true },
   { "bulmafox.com", true },
+  { "bumarkamoda.com", true },
   { "bunbun.be", true },
+  { "bund-von-theramore.de", true },
   { "bundaberg.com", true },
+  { "bunsenlabs.org", true },
+  { "bureaubolster.nl", true },
   { "burningcrash.de", true },
   { "burningflipside.com", true },
   { "burnworks.com", true },
   { "burtrum.me", true },
   { "burtrum.org", true },
+  { "burzmali.com", true },
+  { "busindre.com", true },
   { "business.facebook.com", false },
   { "business.lookout.com", false },
+  { "businessesdirectory.eu", true },
+  { "businessfurs.info", true },
   { "businesshosting.nl", true },
+  { "busold.ws", true },
   { "bustimes.org", true },
+  { "butchersworkshop.com", true },
+  { "buyfox.de", true },
+  { "buyinginvestmentproperty.com", true },
   { "buzzconcert.com", true },
   { "buzzconf.io", true },
   { "bvalle.com", true },
   { "bwcscorecard.org", true },
+  { "bwear4all.de", true },
+  { "by4cqb.cn", true },
   { "bygningsregistrering.dk", true },
+  { "bypro.xyz", true },
   { "byronwade.com", true },
   { "byrtz.de", true },
+  { "byte.wtf", true },
   { "bytejail.com", true },
-  { "bytepark.de", false },
+  { "byteshark.org", true },
+  { "bytesofcode.de", true },
+  { "bytesund.biz", true },
+  { "bytesystems.com", true },
+  { "byteturtle.eu", true },
+  { "bziaks.xyz", true },
+  { "bztech.com.br", true },
   { "bzv-fr.eu", true },
+  { "c.cc", true },
   { "c16t.uk", true },
+  { "c1yd3i.me", true },
+  { "c3b.info", false },
+  { "c3w.at", true },
   { "ca.gparent.org", true },
   { "ca.search.yahoo.com", false },
+  { "cabarave.com", true },
+  { "cabsites.com", true },
+  { "cabusar.fr", true },
+  { "cacaolalina.com", true },
+  { "cachethq.io", true },
   { "cackette.com", true },
+  { "cadao.me", true },
   { "cadoth.net", true },
+  { "caesarkabalan.com", true },
+  { "caesreon.com", true },
   { "cafe-scientifique.org.ec", true },
   { "caffeinatedcode.com", true },
   { "cais.de", true },
+  { "caizx.com", true },
   { "caja-pdf.es", true },
+  { "cajapopcorn.com", true },
+  { "cajunuk.co.uk", true },
   { "calaborlawnews.com", true },
   { "calculator-imt.com", true },
-  { "call.me", true },
+  { "calebmorris.com", true },
+  { "calgoty.com", true },
+  { "calibso.net", true },
+  { "calix.com", true },
+  { "call.me", false },
   { "callsigns.ca", true },
+  { "calltrackingreports.com", true },
   { "calomel.org", true },
   { "calories.org", true },
   { "calvin.me", true },
   { "calvinallen.net", true },
+  { "camaya.net", true },
+  { "cambridgeanalytica.org", true },
+  { "camconn.cc", true },
   { "camolist.com", true },
+  { "campaign-ad.com", true },
+  { "campbellsoftware.co.uk", true },
+  { "campbrainybunch.com", true },
+  { "camperdays.de", true },
+  { "campermanaustralia.com", true },
   { "camperverzekerd.nl", true },
+  { "campfourpaws.com", true },
   { "campus-finance.com", true },
   { "canadalife.de", true },
   { "canadasmotorcycle.ca", true },
+  { "canarymod.net", true },
+  { "candicontrols.com", true },
+  { "cando.eu", true },
+  { "candratech.com", true },
   { "canhazip.com", true },
   { "cannyfoxx.me", true },
   { "canyonshoa.com", true },
+  { "canyoupwn.me", true },
   { "cao.gov", true },
   { "cao.la", true },
+  { "caphane.com", true },
+  { "capitalquadatv.org.nz", true },
   { "capitaltg.com", true },
+  { "capogna.com", true },
+  { "capper.de", true },
   { "capriccio.to", true },
-  { "carboneselectricosnettosl.info", true },
+  { "captchatheprize.com", true },
+  { "captivatedbytabrett.com", true },
+  { "capturapp.com", true },
+  { "capturethepen.co.uk", true },
+  { "caputo.com", true },
+  { "carano-service.de", true },
+  { "caraudio69.cz", true },
+  { "carbonmade.com", false },
   { "carck.co.uk", true },
-  { "cardoni.net", true },
+  { "cardloan-manual.net", true },
   { "cardrecovery.fr", true },
+  { "cardstream.com", true },
+  { "careerstuds.com", true },
   { "caremad.io", true },
+  { "carey.li", true },
   { "carezone.com", false },
   { "cargobay.net", true },
+  { "carigami.fr", true },
+  { "carlandfaith.com", true },
+  { "carlgo11.com", true },
   { "carlosalves.info", true },
+  { "carnaticalifornia.com", true },
+  { "carnildo.com", true },
   { "carsforbackpackers.com", true },
+  { "carsten.pw", true },
+  { "carstenfeuls.de", true },
   { "cartouche24.eu", true },
   { "cartucce24.it", true },
   { "casa-su.casa", true },
+  { "casedi.org", true },
   { "cashlink.io", true },
+  { "casinolistings.com", true },
+  { "casinoreal.com", true },
   { "casperpanel.com", true },
+  { "castlejackpot.com", true },
+  { "cat-box.de", true },
+  { "catalyst-ecommerce.com", true },
+  { "catgirl.pics", true },
+  { "catinmay.com", true },
   { "cativa.net", true },
   { "catnapstudios.com", true },
-  { "catnet.dk", true },
+  { "catnet.dk", false },
+  { "catsmagic.pp.ua", true },
   { "cattivo.nl", true },
   { "cavac.at", true },
   { "caveclan.org", true },
+  { "cavedroid.xyz", true },
   { "cbhq.net", true },
   { "ccayearbook.com", true },
   { "ccblog.de", true },
+  { "ccja.ro", false },
   { "ccsys.com", true },
   { "cdlcenter.com", true },
   { "cdnb.co", true },
+  { "cdnjs.com", true },
   { "cdt.org", true },
+  { "ced-services.nl", true },
+  { "ceilingpac.org", true },
+  { "cejhon.cz", true },
+  { "celec.gob.ec", true },
+  { "celti.ie.eu.org", true },
+  { "celti.name", true },
   { "cementscience.com", true },
-  { "centralync.com", true },
+  { "centennialrewards.com", true },
+  { "centerpereezd.ru", false },
+  { "centillien.com", true },
+  { "centralpoint.be", true },
+  { "centralpoint.nl", true },
+  { "centralstatecu.org", true },
+  { "centrepoint-community.com", false },
   { "centricweb.com", true },
+  { "centrobill.com", true },
   { "ceopedia.org", true },
+  { "cerastar.com", true },
+  { "cerebelo.info", true },
+  { "cerfrance.fr", true },
+  { "ceritamalam.net", true },
   { "certcenter.com", true },
   { "certcenter.de", true },
   { "certible.com", true },
   { "certifi.io", true },
   { "certly.io", true },
+  { "certnazionale.it", true },
+  { "cervejista.com", true },
   { "cesal.net", true },
+  { "cesidianroot.eu", true },
   { "cesobaly.cz", true },
+  { "ceu.edu", true },
   { "cevrimici.com", true },
   { "cfa.gov", true },
   { "cfcnexus.org", true },
+  { "cfcproperties.com", true },
   { "cfetengineering.com", true },
+  { "cfh.com", true },
   { "cfo.gov", true },
+  { "cfoitplaybook.com", true },
+  { "cg-systems.hu", true },
+  { "cgan.pw", true },
+  { "cgbilling.com", true },
+  { "cgtx.us", true },
   { "ch.search.yahoo.com", false },
+  { "chabaudparfum.com", true },
   { "chahub.com", true },
   { "chainmonitor.com", true },
   { "chaletmanager.com", true },
+  { "chamilo.org", true },
   { "changetip.com", true },
+  { "chaos-inc.de", true },
+  { "chaos.fail", true },
   { "chaoschemnitz.de", true },
   { "chaosdorf.de", true },
+  { "chaoswebs.net", true },
   { "charge.co", true },
+  { "charityclear.com", true },
+  { "charlierogers.com", true },
   { "charmander.me", true },
-  { "chartstoffarm.de", false },
+  { "charmyadesara.com", true },
+  { "chartpen.com", true },
   { "chatbot.me", true },
+  { "chatear.social", true },
+  { "chateau-belvoir.com", true },
+  { "chatme.im", false },
+  { "chatup.cf", true },
+  { "chaulootz.com", true },
+  { "chaz6.com", true },
+  { "chazay.net", true },
   { "chcemvediet.sk", true },
   { "chch.it", true },
   { "cheapgeekts.com", false },
+  { "chebedara.com", true },
   { "check.torproject.org", false },
   { "checkout.google.com", true },
   { "checktype.com", true },
+  { "checkyourmath.com", true },
   { "cheerflow.com", true },
   { "cheesetart.my", false },
+  { "cheetah85.de", true },
+  { "chenapartment.com", true },
+  { "chepaofen.com", true },
+  { "cherrywoodtech.com", true },
+  { "chestnut.cf", true },
   { "chfr.search.yahoo.com", false },
+  { "chiaramail.com", true },
   { "chic-leather.com", true },
+  { "chihiro.xyz", true },
+  { "chikan-beacon.net", true },
+  { "childcaresolutionscny.org", true },
+  { "chilihosting.eu", true },
   { "chimeratool.com", true },
+  { "china-line.org", true },
+  { "chinternet.xyz", true },
+  { "chiphell.com", true },
   { "chippy.ch", false },
   { "chiralsoftware.com", true },
-  { "chiru.no", true },
+  { "chireiden.net", true },
+  { "chirgui.eu", true },
   { "chit.search.yahoo.com", false },
   { "chloe.re", true },
+  { "chocolah.com.au", false },
+  { "chocotough.nl", false },
   { "choosemypc.net", true },
+  { "chorpinkpoemps.de", true },
+  { "chotu.net", true },
+  { "chris-edwards.net", true },
+  { "chris-web.info", false },
+  { "chrisandsarahinasia.com", true },
   { "chrisbrown.id.au", true },
+  { "chrisfaber.com", true },
+  { "chrisfinazzo.com", true },
+  { "chrishamper.com", true },
   { "chrisirwin.ca", true },
   { "chrisjean.com", true },
+  { "chriskyrouac.com", true },
   { "chrismckee.co.uk", true },
+  { "christadelphiananswers.org", true },
   { "christiaanconover.com", true },
+  { "christiaandruif.nl", true },
   { "christianbro.gq", true },
+  { "christianhoffmann.info", true },
+  { "christianliebel.com", true },
+  { "christiesantiques.com", true },
+  { "christophheich.me", true },
   { "chrisupjohn.com", true },
   { "chriswarrick.com", true },
   { "chriswells.io", true },
   { "chrome-devtools-frontend.appspot.com", true },
   { "chrome.com", false },
   { "chrome.google.com", true },
   { "chromebooksforwork.com", true },
   { "chromiumcodereview.appspot.com", false },
   { "chrst.ph", true },
+  { "chua.cf", true },
   { "chulado.com", true },
   { "chun.pro", true },
   { "ciat.no", true },
   { "cidbot.com", true },
+  { "cienbeaute-lidl.fr", true },
   { "cig-dem.com", true },
+  { "cigarblogs.net", true },
+  { "cigarterminal.com", true },
+  { "cimalando.eu", true },
   { "cimballa.com", true },
   { "cinefilzonen.se", true },
+  { "cintdirect.com", true },
   { "cio.gov", true },
-  { "cip.md", false },
+  { "cipherboy.com", true },
   { "cipherli.st", true },
   { "cirfi.com", true },
   { "cirope.com", true },
+  { "cirrus0.de", true },
   { "ciscodude.net", true },
+  { "ciscohomeanalytics.com", true },
+  { "ciscommerce.net", true },
+  { "citizensbankal.com", true },
+  { "cittadesign.com", true },
+  { "citya.com", true },
+  { "ciubotaru.tk", true },
   { "ckleemann.de", true },
   { "cklie.de", true },
   { "ckliemann.com", true },
   { "ckliemann.net", true },
   { "cktennis.com", true },
   { "cl.search.yahoo.com", false },
   { "claimconnect.us", true },
   { "clan-ww.com", true },
+  { "clanthor.com", true },
   { "clapping-rhymes.com", true },
   { "claralabs.com", true },
+  { "clarkeaward.com", true },
   { "classdojo.com", true },
+  { "classicday.nl", true },
+  { "classicshop.ua", true },
   { "classicspublishing.com", true },
+  { "clawe.de", true },
+  { "clcleaningco.com", true },
+  { "cldly.com", true },
+  { "clearc.tk", false },
+  { "clearkonjac.com", true },
+  { "clearsettle-admin.com", true },
   { "clearviewwealthprojector.com.au", true },
   { "clerkendweller.uk", true },
   { "clevertarget.ru", true },
   { "clevisto.com", true },
-  { "clickandgo.com", true },
   { "clickclickphish.com", true },
+  { "clickenergy.com.au", true },
+  { "clickforclever.com", true },
+  { "clickphish.com", true },
+  { "clientsecure.me", true },
   { "climateinteractive.org", true },
+  { "climatestew.com", true },
   { "clintwilson.technology", true },
   { "clipped4u.com", true },
   { "clmde.de", true },
+  { "clochix.net", true },
+  { "clockcaster.com", true },
+  { "clockworksms.com", true },
+  { "close.com", true },
   { "cloud-project.com", true },
   { "cloud.google.com", true },
   { "cloud.wtf", true },
-  { "clouddesktop.co.nz", true },
+  { "cloudapi.vc", true },
+  { "cloudbolin.es", true },
+  { "cloudey.net", true },
   { "cloudflareonazure.com", true },
   { "cloudily.com", true },
   { "cloudimag.es", true },
   { "cloudmigrator365.com", true },
   { "cloudns.com.au", true },
   { "cloudpagesforwork.com", true },
   { "cloudpebble.net", true },
   { "cloudsecurityalliance.org", true },
   { "cloudspace-analytics.com", true },
   { "cloudstoragemaus.com", true },
   { "cloudstorm.me", true },
+  { "cloudstrike.co", true },
   { "cloudup.com", true },
+  { "cloverleaf.net", true },
+  { "clownish.co.il", true },
+  { "cloxy.com", true },
+  { "clsimplex.com", true },
   { "clu-in.org", true },
+  { "clubmate.rocks", true },
   { "clubmini.jp", true },
+  { "clvrwebdesign.com", true },
   { "clycat.ru", true },
-  { "cmc-versand.de", true },
+  { "clywedogmaths.co.uk", true },
+  { "cmacacias.ch", true },
+  { "cmahy.be", true },
   { "cmdline.org", true },
+  { "cmlachapelle.ch", true },
+  { "cmlancy.ch", true },
+  { "cmplainpalais.ch", true },
+  { "cmsbattle.com", true },
+  { "cmscafe.ru", true },
+  { "cnam.net", true },
+  { "cni-certing.it", true },
   { "cnlic.com", true },
   { "co.search.yahoo.com", false },
   { "co50.com", true },
+  { "coachingconsultancy.com", true },
+  { "coam.co", true },
   { "cobalt.io", false },
+  { "cocaine.ninja", true },
+  { "cocker.cc", false },
   { "cocoaheads.at", true },
+  { "cocolovesdaddy.com", true },
   { "codabix.com", true },
   { "codabix.de", true },
   { "codabix.net", true },
   { "code-poets.co.uk", true },
   { "code.facebook.com", false },
+  { "code.fm", true },
   { "code.google.com", true },
+  { "code67.com", true },
+  { "codeferm.com", true },
+  { "codeforce.io", true },
+  { "codefoundry.it", true },
+  { "codelayer.ca", true },
+  { "codeplay.org", true },
   { "codepoints.net", true },
   { "codepref.com", true },
   { "codepult.com", true },
   { "codepx.com", true },
   { "codereview.appspot.com", false },
   { "codereview.chromium.org", false },
+  { "coderhangout.com", true },
+  { "codesport.io", true },
   { "codeux.com", true },
+  { "codewild.de", true },
+  { "codewiththepros.org", true },
+  { "codeyellow.nl", true },
   { "codingforspeed.com", true },
+  { "codyevanscomputer.com", true },
+  { "coffee-mamenoki.jp", true },
+  { "cogent.cc", true },
   { "cogumelosmagicos.org", true },
+  { "coi-verify.com", true },
   { "coiffeurschnittstelle.ch", true },
   { "coinapult.com", true },
   { "coinbase.com", true },
   { "coindam.com", false },
+  { "coinessa.com", true },
+  { "coinjar-sandbox.com", true },
   { "cojo.eu", true },
+  { "coldawn.com", true },
+  { "coldfff.com", true },
   { "coldhak.ca", true },
+  { "colisfrais.com", true },
   { "collabornation.net", true },
-  { "collinmbarrett.com", true },
+  { "collada.org", true },
+  { "collectiblebeans.com", true },
+  { "collegepulse.org", true },
+  { "collinmbarrett.com", false },
+  { "collinsartworks.com", true },
   { "colognegaming.net", true },
   { "coloradocomputernetworking.net", true },
+  { "coloradolottery.com", true },
+  { "colorbrush.ru", true },
+  { "coloringnotebook.com", true },
   { "colorlib.com", true },
+  { "com.cc", true },
   { "comarkinstruments.net", true },
+  { "combatshield.cz", true },
+  { "comdurav.com", true },
+  { "comercialtrading.eu", true },
+  { "comfortticket.de", true },
+  { "comhack.com", true },
+  { "comicspines.com", true },
   { "comitesaustria.at", true },
   { "comiteshopping.com", true },
   { "commencepayments.com", true },
+  { "commerciallocker.com", true },
+  { "commoncore4kids.com", true },
+  { "communityblog.fedoraproject.org", true },
+  { "comodo.nl", true },
+  { "compalytics.com", true },
+  { "comparamejor.com", true },
+  { "compareandrecycle.co.uk", true },
+  { "compareandrecycle.com", true },
+  { "compareinsurance.com.au", true },
   { "comparejewelleryprices.co.uk", true },
+  { "comparetravelinsurance.com.au", true },
+  { "compeuphoria.com", true },
+  { "compiledworks.com", true },
   { "completionist.audio", true },
+  { "completionist.me", true },
+  { "compliance-systeme.de", true },
+  { "complymd.com", true },
   { "compucorner.com.mx", true },
   { "compucorner.mx", true },
+  { "compuscan.co.za", true },
+  { "computeremergency.com.au", false },
   { "comssa.org.au", true },
   { "concentrade.de", true },
+  { "condepenalba.com", true },
   { "config.schokokeks.org", false },
+  { "confirm365.com", true },
   { "conformal.com", true },
   { "connect.ua", false },
+  { "connected-verhuurservice.nl", true },
+  { "connectfss.com", true },
+  { "connectingconcepts.com", true },
   { "connext.de", true },
+  { "connyduck.at", true },
   { "conrad-kostecki.de", true },
   { "consciousandglamorous.com", true },
+  { "consciousbrand.co", true },
+  { "consciousbrand.org.au", true },
+  { "consciousbranding.org.au", true },
+  { "consciousbrands.net.au", true },
   { "console.support", true },
   { "consonare.de", true },
+  { "constructdigital.net", true },
   { "constructionjobs.com", true },
   { "consul.io", true },
+  { "consumer.gov", true },
   { "consumersentinel.gov", true },
+  { "contactbig.com", true },
+  { "containerstatistics.com", true },
+  { "contarkos.xyz", true },
+  { "content-api-dev.azurewebsites.net", true },
+  { "continuumgaming.com", false },
   { "contributor.google.com", true },
   { "controlcenter.gigahost.dk", true },
   { "conversiones.com", true },
   { "convert.zone", true },
   { "converter.ml", true },
+  { "convocatoriafundacionpepsicomexico.org", false },
+  { "cookinglife.nl", false },
+  { "cookmedical.com", false },
+  { "cool110.tk", true },
   { "coolaj86.com", true },
+  { "coolchevy.org.ua", true },
   { "coopens.com", true },
   { "coore.jp", true },
+  { "cooxa.com", true },
   { "copperhead.co", true },
   { "cor-ser.es", true },
   { "coralproject.net", true },
+  { "cordlessdog.com", true },
   { "core.mx", true },
   { "coreless-stretchfilm.com", true },
-  { "cormilu.com.br", true },
+  { "cornercircle.co.uk", true },
+  { "coronelpicanha.com.br", true },
+  { "corpfin.net", true },
+  { "correctpaardbatterijnietje.nl", true },
   { "corruption-mc.net", true },
   { "corruption-rsps.net", true },
   { "corruption-server.net", true },
   { "cortexitrecruitment.com", true },
+  { "coryadum.com", true },
   { "costablancavoorjou.com", true },
+  { "costreportdata.com", true },
   { "cotonea.de", true },
+  { "coughlan.de", true },
   { "count.sh", true },
   { "countermail.com", true },
+  { "countybankdel.com", true },
   { "couragewhispers.ca", true },
+  { "coursdeprogrammation.com", true },
+  { "coursera.org", true },
   { "courtlistener.com", true },
+  { "covenantbank.net", true },
   { "covenantoftheriver.org", true },
+  { "coverduck.ru", true },
   { "covoiturage.fr", false },
+  { "covybrat.cz", true },
   { "cowboyim.com", true },
+  { "coweo.cz", true },
+  { "cozmaadrian.ro", true },
+  { "cpuvinf.eu.org", true },
   { "cpvmatch.eu", true },
   { "cqchome.com", true },
   { "cracker.in.th", true },
-  { "crackingking.com", true },
+  { "cracking.org", true },
+  { "crackingking.com", false },
   { "cradlepointecm.com", true },
   { "craftbeerbarn.co.uk", true },
+  { "craftinginredlipstick.com", true },
+  { "cranesafe.com", true },
+  { "cravelyrics.com", true },
+  { "crazycen.com", true },
+  { "crazydomains.ae", true },
+  { "crazydomains.co.nz", true },
+  { "crazydomains.co.uk", true },
   { "crazydomains.com.au", true },
+  { "crazydomains.in", true },
+  { "crazyhotseeds.com", true },
   { "crbug.com", false },
+  { "creativeplayuk.com", true },
   { "creditkarma.com", true },
+  { "creditproautos.com", true },
+  { "creep.im", true },
+  { "crefelder.com", true },
+  { "crendontech.com", true },
   { "crepererum.net", true },
+  { "crestasantos.com", true },
   { "crestoncottage.com", true },
+  { "criena.net", false },
+  { "crimson.no", true },
+  { "critical.today", true },
+  { "criticalaim.com", true },
   { "crizk.com", true },
   { "crl-autos.com", true },
   { "crm.onlime.ch", false },
   { "crosscom.ch", true },
   { "crossfitblackwater.com", true },
+  { "crosssec.com", true },
   { "crow.tw", true },
+  { "crowd.supply", true },
   { "crowdjuris.com", true },
+  { "crowdsupply.com", true },
   { "crudysql.com", true },
+  { "crufad.org", true },
+  { "crushroom.com", true },
   { "crute.me", true },
+  { "cruzr.xyz", true },
+  { "crypt.guru", true },
+  { "crypticshell.co.uk", true },
   { "cryptify.eu", true },
   { "crypto.cat", false },
   { "crypto.graphics", true },
-  { "cryptobells.com", true },
+  { "cryptobells.com", false },
+  { "cryptobin.co", true },
   { "cryptobin.org", true },
+  { "cryptocon.org", true },
   { "cryptography.io", true },
+  { "cryptoisnotacrime.org", true },
+  { "cryptojar.io", true },
+  { "cryptolab.pro", true },
+  { "cryptonit.net", true },
+  { "cryptonym.com", true },
   { "cryptoparty.at", true },
   { "cryptoparty.dk", true },
   { "cryptopartyatx.org", true },
   { "cryptopartyutah.org", true },
   { "cryptopush.com", true },
   { "cryptoseb.pw", true },
   { "crystalchandelierservices.com", true },
+  { "crystalclassics.co.uk", true },
   { "csacongress.org", true },
+  { "csapak.com", true },
+  { "csbs.fr", true },
+  { "cselzer.com", true },
+  { "csfm.com", true },
   { "csfs.org.uk", true },
   { "csgokings.eu", true },
+  { "csokolade.hu", true },
   { "cspbuilder.info", true },
   { "cspvalidator.org", true },
+  { "cssu.in", true },
   { "csuw.net", true },
+  { "csvape.com", true },
+  { "ct-status.org", true },
+  { "cthomas.work", true },
   { "cthulhuden.com", true },
   { "ctns.de", true },
   { "ctoforhire.com.au", true },
+  { "ctpe.net", true },
   { "cube.de", true },
   { "cubewano.com", true },
+  { "cubua.com", true },
+  { "cuibonobo.com", true },
+  { "cuisinezest.com", true },
   { "culinae.nl", true },
+  { "cultiv.nl", false },
   { "cupcake.io", true },
   { "cupcake.is", true },
+  { "curacao-license.com", true },
   { "curiosity-driven.org", true },
   { "curlybracket.co.uk", true },
+  { "curlyroots.com", true },
   { "curroapp.com", true },
   { "curtacircuitos.com.br", false },
+  { "curveweb.co.uk", true },
+  { "custe.rs", true },
   { "custodyxchange.com", true },
+  { "customd.com", true },
+  { "cutorrent.com", true },
   { "cuvva.co", true },
   { "cvjm-memmingen.de", true },
   { "cvmu.jp", true },
+  { "cvr.dk", true },
   { "cvsoftub.com", true },
   { "cvursache.com", true },
   { "cwagner.me", true },
   { "cyanogenmod.xxx", true },
+  { "cyberfrancais.ro", true },
+  { "cyberguerrilla.info", true },
+  { "cyberguerrilla.org", true },
+  { "cyberhouse.at", true },
+  { "cyberianhusky.com", true },
   { "cyberkov.com", true },
+  { "cyberoptic.de", true },
   { "cyberpunk.ca", true },
+  { "cybersecuritychallenge.be", true },
   { "cybershambles.com", true },
+  { "cyberwire.nl", true },
+  { "cybozu.cn", true },
   { "cybozu.com", true },
   { "cybozulive.com", true },
-  { "cycleluxembourg.lu", true },
+  { "cyclebeads.com", true },
   { "cydia-search.io", true },
+  { "cyfly.org", true },
+  { "cygnius.net", true },
+  { "cymtech.net", true },
   { "cyon.ch", true },
+  { "cyph.audio", true },
   { "cyph.com", true },
   { "cyph.im", true },
   { "cyph.video", true },
   { "cyphertite.com", true },
   { "cyprus-company-service.com", true },
   { "cysec.biz", true },
   { "czakey.net", true },
   { "czbix.com", true },
+  { "czechamlp.com", true },
   { "czk.mk", true },
+  { "czlx.co", true },
+  { "d-20.fr", true },
+  { "d-designerin.de", true },
+  { "d-training.de", true },
   { "d3xt3r01.tk", true },
   { "d42.no", true },
+  { "daallexx.eu", true },
+  { "dachb0den.net", true },
   { "dadons-laserdiscs.com", true },
+  { "dadtheimpaler.com", true },
+  { "daduke.org", true },
   { "daemon.xin", true },
+  { "dag-konsult.com", true },
   { "dailyenglishchallenge.com", true },
+  { "dailystormerpodcasts.com", true },
   { "daimadi.com", true },
+  { "dairyshrine.org", true },
+  { "dakrib.net", true },
   { "dale-electric.com", true },
+  { "dalfiume.it", true },
+  { "dalingk.co", true },
+  { "dallmeier.net", true },
+  { "damianuv-blog.cz", true },
+  { "dammekens.be", true },
+  { "damngoodpepper.com", true },
+  { "danaketh.com", true },
+  { "dancerdates.net", true },
   { "daniel-ruf.de", true },
   { "danielalvarez.net", true },
+  { "danielcowie.me", true },
+  { "danieltollot.de", true },
+  { "danielverlaan.nl", true },
+  { "danielworthy.com", true },
+  { "danilapisarev.com", true },
+  { "danjesensky.com", true },
   { "dank.ninja", true },
+  { "dankim.de", true },
+  { "dannycrichton.com", true },
   { "dannyrohde.de", true },
   { "danonsecurity.com", true },
   { "danpiel.net", true },
+  { "danscomp.com", true },
+  { "danseressen.nl", true },
   { "danskoferie.dk", true },
   { "danw.io", true },
   { "daphne.informatik.uni-freiburg.de", true },
   { "daplie.com", true },
   { "darchoods.net", false },
+  { "dargasia.is", true },
   { "dario.im", true },
   { "darioturchetti.me", true },
   { "dark-x.cf", true },
   { "darkag.ovh", true },
   { "darkdestiny.ch", true },
   { "darkengine.io", true },
+  { "darkkeepers.dk", true },
   { "darknebula.space", false },
   { "darknode.in", true },
   { "darkpony.ru", true },
   { "darkserver.fedoraproject.org", true },
   { "darkserver.stg.fedoraproject.org", true },
+  { "darkshop.nl", true },
+  { "darkside.re", true },
+  { "darksideof.it", true },
+  { "darkspacelab.com", true },
+  { "darkwater.info", true },
   { "darlo.co.uk", true },
   { "darom.jp", true },
+  { "darrenm.net", true },
+  { "darwinkel.net", false },
   { "dash-board.jp", false },
+  { "dash.rocks", true },
+  { "dashnimorad.com", true },
   { "data-abundance.com", true },
+  { "data.haus", true },
   { "data.qld.gov.au", false },
+  { "data102.com", true },
+  { "databutlr.net", true },
+  { "datacalle.com", true },
+  { "datacandy.com", true },
+  { "datajapan.co.jp", true },
   { "datapun.ch", true },
   { "dataretention.solutions", true },
+  { "datascience.cafe", true },
   { "datasharesystem.com", true },
   { "datasnitch.co.uk", true },
   { "datatekniikka.com", false },
   { "datatekniikka.fi", false },
   { "dateno1.com", false },
   { "datorb.com", false },
+  { "datortipsen.se", true },
+  { "datsound.ru", true },
   { "daveoc64.co.uk", true },
+  { "davevelopment.net", true },
+  { "david-corry.com", true },
   { "david-schiffmann.de", true },
   { "david.kitchen", true },
+  { "davidandersson.se", true },
+  { "davidgouveia.net", true },
   { "davidgow.net", true },
   { "davidgrudl.com", true },
   { "davidlyness.com", true },
   { "davidmcevoy.org.uk", true },
+  { "davidmessenger.co.uk", true },
   { "davidnoren.com", true },
+  { "davidreinhardt.de", true },
+  { "davidscherzer.at", true },
   { "davisroi.com", true },
   { "daylightpirates.org", true },
   { "dbgamestudio.com", true },
   { "dbmteam.com", true },
+  { "dbx.ovh", true },
+  { "dc585.info", true },
   { "dccode.gov", true },
+  { "dccoffeeproducts.com", true },
+  { "dckd.nl", true },
+  { "dcmt.co", true },
+  { "dcpower.eu", true },
+  { "dcurt.is", true },
+  { "dd.art.pl", true },
   { "ddatsh.com", true },
-  { "dden.ca", true },
+  { "dden.ca", false },
+  { "ddhosted.com", true },
+  { "ddos-mitigation.co.uk", true },
+  { "ddos-mitigation.info", true },
   { "de-medici.nl", true },
   { "de-spil.be", true },
   { "de.search.yahoo.com", false },
   { "deadbeef.ninja", true },
   { "dealbanana.com", true },
   { "dealbanana.it", true },
   { "dealcruiser.nl", true },
   { "dealpass.no", true },
+  { "deanmorgan.org", true },
+  { "deathy.ro", true },
   { "decafu.co", true },
+  { "deco.me", true },
   { "decoder.link", true },
   { "decomplify.com", true },
+  { "decor-d.com", true },
+  { "decoratrix.com", true },
+  { "decoyrouting.com", true },
+  { "dedelta.net", true },
   { "dedeo.tk", true },
+  { "dedicatutiempo.es", true },
   { "dedimax.de", true },
+  { "dedmorozrzn.ru", true },
+  { "deduijventil.nl", true },
   { "dee.pe", true },
+  { "deepbluecrafting.co.uk", true },
   { "deepcovelabs.net", true },
+  { "deeprecce.com", true },
   { "deepserve.info", true },
+  { "deer.team", true },
+  { "deetzen.de", true },
   { "defcon.org", true },
+  { "degeberg.com", true },
+  { "degeberg.dk", true },
+  { "degroetenvanrosaline.nl", true },
+  { "deight.co", true },
+  { "deinballon.de", true },
   { "dekasan.ru", true },
   { "delfic.org", true },
   { "deliciisanatoase.ro", true },
   { "deliverance.co.uk", false },
+  { "delta-data.ch", true },
+  { "deltanet-production.de", true },
+  { "delvj.org", true },
+  { "dementiapraecox.de", true },
+  { "demo.swedbank.se", true },
   { "democracy.io", true },
   { "democracychronicles.com", true },
+  { "demomanca.com", false },
   { "demuzere.be", true },
   { "demuzere.com", true },
   { "demuzere.eu", true },
   { "demuzere.net", true },
   { "denh.am", true },
+  { "denimio.com", true },
+  { "denisjean.fr", true },
   { "dennisdoes.net", true },
+  { "denniskoot.nl", true },
+  { "dennogumi.org", true },
+  { "dentallaborgeraeteservice.de", true },
+  { "dentistglasgow.com", true },
+  { "dentystabirmingham.co.uk", true },
+  { "denverprophit.us", true },
   { "depechemode-live.com", true },
   { "dequehablamos.es", true },
+  { "derbyshire-language-scheme.co.uk", true },
+  { "derchris.me", true },
   { "dereferenced.net", true },
+  { "deregowski.net", true },
+  { "dergeilstestammderwelt.de", true },
   { "derhil.de", true },
   { "derp.army", true },
   { "derreichesack.com", true },
+  { "dersoundhunter.de", true },
+  { "derwolfe.net", true },
+  { "desiccantpackets.com", true },
+  { "designgears.com", true },
   { "desmaakvanplanten.be", true },
   { "destinationbijoux.fr", true },
   { "detectify.com", false },
   { "detector.exposed", true },
+  { "detest.org", true },
+  { "detoxsinutritie.ro", true },
   { "detteflies.com", true },
+  { "detutorial.com", true },
+  { "deuxsolutions.com", true },
+  { "devb.nl", true },
+  { "devcu.com", true },
   { "devdoodle.net", true },
   { "developer.mydigipass.com", false },
   { "developers.facebook.com", false },
+  { "developfx.com", true },
+  { "developmentaid.org", true },
   { "devh.net", true },
+  { "devilshakerz.com", true },
   { "deviltracks.net", true },
   { "deviltraxxx.de", true },
+  { "devincrow.me", true },
   { "devinfo.net", false },
   { "devklog.net", true },
   { "devlux.ch", true },
+  { "devmsg.com", true },
   { "devnsec.com", true },
+  { "devnull.team", true },
   { "devolution.ws", true },
   { "devopps.me", true },
+  { "devopsconnected.com", true },
+  { "devstaff.gr", true },
+  { "devuan.org", true },
+  { "dewalch.net", true },
+  { "dfekt.no", true },
+  { "dfranke.com", true },
   { "dgeex.eu", true },
   { "dhautefeuille.eu", true },
   { "dhauwer.nl", true },
+  { "dhuy.net", true },
   { "diamante.ro", true },
+  { "diarbag.us", true },
+  { "diasdasemana.com", true },
   { "dibiphp.com", true },
   { "dicgaming.net", true },
+  { "dick.red", true },
   { "didacte.com", true },
+  { "diddens.de", true },
   { "die-besten-weisheiten.de", true },
   { "die-blahuts.de", true },
   { "die-partei-reutlingen.de", true },
   { "diegelernten.de", true },
+  { "diegerbers.de", true },
+  { "dienstplan.cc", true },
   { "dienstplan.one", true },
+  { "dierenkruiden.nl", false },
+  { "dieti.net", true },
   { "dietrich.cx", true },
+  { "dighans.com", true },
+  { "digidroom.be", true },
+  { "digital-coach.it", true },
+  { "digital-eastside.de", true },
   { "digital1st.co.uk", true },
+  { "digitalehandtekeningen.nl", true },
+  { "digitallocker.com", true },
+  { "digitalnonplus.com", true },
+  { "digitalquery.com", true },
   { "digitalskillswap.com", true },
   { "digitkon.com", true },
+  { "digminecraft.com", true },
+  { "dijkmanmuziek.nl", false },
   { "dillonkorman.com", true },
   { "dime-staging.com", true },
   { "dime.io", true },
+  { "dinge.xyz", true },
   { "dinkum.online", true },
   { "dinube.com", true },
+  { "diodeled.com", true },
+  { "dipl.io", true },
+  { "directebanking.com", true },
+  { "directme.ga", true },
   { "dirkwolf.de", true },
+  { "discipul.nl", true },
   { "discofitta.com", true },
+  { "disconformity.net", true },
   { "discoveringdocker.com", true },
   { "dise-online.de", true },
+  { "disinclined.org", true },
   { "disking.co.uk", true },
-  { "dislocated.de", true },
   { "disorderboutique.com", true },
+  { "disposable.link", true },
   { "disruptivelabs.net", true },
   { "disruptivelabs.org", true },
+  { "dissectcyber.com", true },
   { "dissimulo.me", true },
   { "dist.torproject.org", false },
+  { "distinctivephotography.com.au", true },
+  { "dittvertshus.no", true },
+  { "divegearexpress.com", true },
   { "diversityflags.com", true },
   { "divingwithnic.com", true },
+  { "dixiediner.com", true },
   { "dixmag.com", true },
+  { "diybook.at", true },
+  { "diycc.org", true },
+  { "dizorg.net", true },
+  { "djxmmx.net", true },
+  { "djz4music.com", true },
   { "dk.search.yahoo.com", false },
+  { "dkds.us", true },
   { "dl.google.com", true },
   { "dlc.viasinc.com", true },
+  { "dlemper.de", true },
   { "dlscomputers.com.au", true },
   { "dm.lookout.com", false },
   { "dm.mylookout.com", false },
+  { "dmeevalumate.com", true },
+  { "dmi.es", true },
   { "dmlogic.com", true },
   { "dmxledlights.com", true },
+  { "dn42.eu", true },
   { "dn42.us", true },
+  { "dna.li", true },
+  { "dnc.org.nz", true },
+  { "dndtools.net", true },
   { "dnmlab.it", true },
+  { "dns.google.com", true },
   { "dnscrypt.org", true },
+  { "dnscurve.io", true },
+  { "dnshallinta.fi", true },
+  { "dnslog.com", true },
   { "dnsman.se", true },
   { "dobet.in", true },
   { "doc.python.org", true },
   { "docemeldoces.com", true },
+  { "docid.io", true },
   { "docket.news", true },
   { "docloh.de", true },
   { "docs.google.com", true },
   { "docs.python.org", true },
+  { "doctor-locks.co.uk", true },
+  { "doctorfox.co.uk", true },
   { "doctorwho.cz", true },
   { "docucopies.com", true },
+  { "docufiel.com", true },
+  { "doesmycodehavebugs.today", true },
+  { "doeswindowssuckforeveryoneorjustme.com", true },
   { "dogan.ch", false },
+  { "dogbox.se", true },
+  { "dogespeed.ga", true },
+  { "dogfi.sh", true },
   { "dogoodbehappyllc.com", true },
-  { "doktorsitesi.com", false },
+  { "doku-gilde.de", true },
+  { "dokuboard.com", true },
+  { "dolarcanadense.com.br", true },
   { "dolphin-cloud.com", true },
   { "dolphin-hosting.com", true },
   { "dolphin-it.de", true },
   { "dolphincorp.co.uk", true },
+  { "dolphinswithlasers.com", true },
+  { "domadillo.com", true },
   { "domainexpress.de", true },
   { "domainkauf.de", true },
   { "domains.google.com", true },
   { "domainstaff.com", true },
   { "domfee.com", true },
+  { "domhaase.me", true },
+  { "dominikkulaga.pl", true },
   { "domodedovo.travel", true },
   { "donateaday.net", true },
-  { "donmez.uk", true },
-  { "donmez.ws", true },
+  { "donmez.uk", false },
+  { "donmez.ws", false },
   { "donner-reuschel.de", true },
+  { "donnons.org", true },
   { "donotcall.gov", true },
+  { "donotspellitgav.in", true },
+  { "dontcageus.org", true },
+  { "donthedragonwilson.com", true },
+  { "doodledraw.ninja", true },
+  { "doordecor.bg", true },
   { "dopost.it", true },
   { "dorianharmans.nl", true },
   { "dorianmuthig.com", true },
   { "doridian.com", true },
   { "doridian.de", true },
   { "doridian.net", true },
   { "doridian.org", true },
   { "dot.ro", true },
+  { "dotbigbang.com", true },
+  { "dotbox.org", true },
   { "dotsiam.com", true },
+  { "doublefun.net", true },
+  { "dougferris.id.au", true },
+  { "dovecotadmin.org", true },
   { "dovetailnow.com", true },
+  { "downloadsoftwaregratisan.com", true },
+  { "downsouthweddings.com.au", true },
+  { "doyoucheck.com", false },
+  { "dpd.com.pl", true },
   { "dpsg-roden.de", true },
+  { "dr2dr.ca", true },
   { "dragon-chem.eu", true },
   { "dragonisles.net", true },
   { "dragons-of-highlands.cz", true },
+  { "dragonschool.org", true },
+  { "drahcro.uk", true },
+  { "drainagebuizen.nl", true },
+  { "drakefortreasurer.sexy", true },
+  { "drakeluce.com", true },
+  { "dramaticpeople.com", true },
+  { "dranderle.com", true },
+  { "dranek.com", true },
+  { "draw.uy", true },
+  { "drawesome.uy", true },
+  { "drawingcode.net", true },
+  { "drdevil.ru", true },
   { "dreadbyte.com", true },
+  { "dreamcreator108.com", true },
   { "dreamsforabetterworld.com.au", true },
+  { "dreamtechie.com", true },
   { "dreid.org", true },
+  { "dreizwosechs.de", true },
+  { "dreweryinc.com", true },
+  { "drhopeson.com", true },
+  { "driesjtuver.nl", true },
+  { "driftdude.nl", true },
+  { "drino.org", false },
   { "drive.google.com", true },
+  { "drivenes.net", true },
   { "driving-lessons.co.uk", true },
-  { "droidwiki.de", true },
+  { "drkmtrx.xyz", true },
+  { "droidboss.com", true },
+  { "droidwiki.de", false },
   { "dronepit.dk", true },
   { "dropbox.com", true },
   { "dropboxer.net", true },
+  { "drpetervoigt.de", true },
+  { "drrr.chat", true },
   { "drtroyhendrickson.com", true },
+  { "drugagodba.si", true },
   { "drumbandesperanto.nl", true },
+  { "drumbe.at", true },
   { "drupal.org", true },
+  { "drycreekphoto.com", true },
+  { "dsbrowser.com", true },
   { "dsebastien.net", true },
+  { "dshiv.io", true },
+  { "dsol.hu", true },
   { "dubrovskiy.net", true },
   { "dubrovskiy.pro", true },
   { "duckduckstart.com", true },
   { "ducohosting.com", true },
+  { "duesee.org", true },
+  { "duijf.info", true },
+  { "duijfathome.nl", true },
   { "dukun.de", true },
+  { "dumino.bg", true },
+  { "duncancmt.com", true },
+  { "dunea.nl", true },
+  { "duo.money", true },
+  { "durangoenergyllc.com", true },
+  { "duria.de", true },
+  { "durys.be", true },
+  { "dutch1.nl", true },
   { "dutchrank.com", true },
   { "dutchrank.nl", true },
+  { "dutchwanderers.nl", true },
+  { "dutchweballiance.nl", true },
+  { "dutyfreeonboard.com", true },
+  { "duuu.ch", true },
+  { "dvbris.co.uk", true },
+  { "dvbris.com", true },
+  { "dvorupotocnych.sk", true },
+  { "dvwc.org", true },
+  { "dworzak.ch", true },
+  { "dxa.io", true },
+  { "dycontrol.de", true },
   { "dyeager.org", true },
-  { "dylanscott.com.au", true },
   { "dynaloop.net", true },
+  { "dynamicnet.net", true },
   { "dynamicsnetwork.net", true },
   { "dyrenesverden.no", true },
   { "dziekonski.com", true },
   { "dzimejl.sk", true },
   { "dzlibs.io", true },
+  { "dzyabchenko.com", true },
   { "e-kontakti.fi", true },
+  { "e-mak.eu", true },
+  { "e-teacher.pl", true },
   { "e-typ.eu", true },
   { "e.mail.ru", true },
+  { "e3amn2l.com", true },
+  { "e3kids.com", true },
+  { "eagleridgecampground.com", true },
   { "eagletechz.com.br", true },
   { "eagleyecs.com", true },
+  { "earga.sm", true },
   { "earmarks.gov", true },
   { "easy-rpg.org", true },
-  { "easyhaul.com", true },
+  { "easyconstat.com", true },
+  { "easycosmetic.ch", true },
   { "easykonto.de", true },
+  { "easyplane.it", true },
   { "easysimplecrm.com", false },
+  { "eatery.co.il", true },
+  { "eatlowcarb.de", true },
   { "eatsleeprepeat.net", true },
+  { "eatvisor.co.uk", true },
+  { "eauclairecommerce.com", true },
+  { "eb7.jp", true },
+  { "ebankcbt.com", true },
   { "ebanking.indovinabank.com.vn", true },
+  { "ebcs-solutions.com", true },
+  { "ebermannstadt.de", true },
+  { "ebp2p.com", true },
+  { "ebpglobal.com", true },
   { "ecake.in", true },
+  { "ecchidreams.com", true },
+  { "ecco-verde.com", true },
   { "ecdn.cz", true },
   { "ecfs.link", true },
   { "ecg.fr", false },
   { "echomanchester.net", true },
+  { "echosixmonkey.com", true },
   { "eckel.co", true },
+  { "eckro.com", true },
   { "ecnetworker.com", true },
-  { "ecobee.com", true },
+  { "ecogen.com.au", true },
+  { "ecogen.net.au", true },
   { "econsumer.gov", true },
+  { "ecorus.eu", true },
   { "ecosystem.atlassian.net", true },
   { "ecrimex.net", true },
   { "ectora.com", true },
+  { "ecupcafe.com", false },
   { "ed.gs", true },
   { "edakoe.ru", true },
+  { "edati.lv", true },
+  { "edcphenix.tk", true },
   { "eddmixpanel.com", true },
-  { "edge-cloud.net", true },
+  { "edelblack.ch", true },
+  { "edesseglabor.hu", true },
   { "edgereinvent.com", true },
+  { "edicct.com", true },
   { "ediscomp.sk", true },
   { "edissecurity.sk", true },
   { "edit.yahoo.com", false },
   { "edix.ru", true },
+  { "edk.com.tr", true },
+  { "edmundcelis.com", true },
   { "edoss.co.za", true },
+  { "edp-collaborative.com", true },
   { "edpubs.gov", true },
+  { "educationunlimited.com", true },
+  { "educator-one.com", true },
   { "eduid.se", true },
+  { "eduif.nl", true },
   { "eduroam.no", true },
-  { "eduvance.in", true },
+  { "edxg.de", true },
   { "edyou.eu", true },
   { "eelsden.net", true },
+  { "eelzak.nl", true },
   { "eeqj.com", true },
+  { "eery.de", true },
   { "ef.gy", true },
   { "eff.org", true },
   { "efficienthealth.com", true },
   { "egfl.org.uk", true },
   { "egit.co", true },
+  { "ego-world.org", true },
   { "ego4u.com", true },
   { "ego4u.de", true },
+  { "egretail.no", true },
   { "ehipaa.com", true },
   { "ehipaadev.com", true },
+  { "ehrlichesbier.de", true },
+  { "ehuber.info", true },
+  { "eicfood.com", true },
+  { "eichornenterprises.com", true },
+  { "eickemeyer.nl", true },
+  { "eimacs.com", true },
+  { "einaros.is", true },
+  { "einheizpreis.de", true },
+  { "einsatzstellenverwaltung.de", true },
+  { "eirastudios.co.uk", false },
+  { "ejeff.org", true },
+  { "ekbanden.nl", false },
+  { "ekokontakt.cz", true },
+  { "ekostecki.de", true },
   { "eksisozluk.com", true },
+  { "ekzarta.ru", true },
+  { "el-soul.com", true },
+  { "elanguest.pl", true },
+  { "elanguest.ro", true },
+  { "elanguest.ru", true },
+  { "elars.de", true },
   { "elbetech.net", true },
+  { "elearningpilot.com", true },
+  { "electricant.com", true },
+  { "electricant.nl", true },
+  { "electricianforum.co.uk", true },
   { "electromc.com", true },
   { "electronic-ignition-system.com", true },
   { "electronicfasteners.com", true },
   { "eleicoes2016.com.br", true },
+  { "elektropost.org", true },
+  { "element-43.com", true },
   { "elemental.software", true },
   { "elementalrobotics.com", true },
+  { "elemenx.com", true },
   { "elenag.ga", true },
   { "elephpant.cz", true },
+  { "elglobo.com.mx", true },
+  { "elgosblanc.com", true },
   { "eligible.com", true },
-  { "elisa.ee", true },
+  { "eligibleapi.com", true },
+  { "eligrey.com", true },
+  { "elisa.ee", false },
+  { "elisabeth-kostecki.de", true },
+  { "elisabethkostecki.de", true },
+  { "elite12.de", true },
+  { "elitefishtank.com", false },
   { "elitegameservers.net", true },
   { "elitehosting.de", true },
+  { "ella-kwikmed.com", true },
   { "ellegaard.dk", true },
   { "elliquiy.com", true },
+  { "elliriehl.at", true },
   { "ellsinger.me", true },
   { "elmermx.ch", true },
+  { "elnan.do", true },
+  { "eloge.se", true },
   { "elpo.net", true },
+  { "elsamakhin.com", true },
+  { "elternforum-birmensdorf.ch", true },
+  { "eluhome.de", true },
   { "elvidence.com.au", true },
+  { "em-biotek.cz", true },
+  { "emailfuermich.de", true },
   { "emailhunter.co", true },
   { "emailprivacytester.com", true },
+  { "emaily.eu", true },
   { "emanuelduss.ch", true },
   { "embracethedarkness.co.uk", true },
+  { "emielraaijmakers.nl", true },
+  { "emilong.com", true },
+  { "emilyhorsman.com", true },
+  { "emilyshepherd.me", true },
   { "emirabiz.com", false },
+  { "emjainteractive.com", true },
+  { "empleostampico.com", false },
   { "empowerdb.com", true },
+  { "emprego.pt", true },
   { "emptypath.com", true },
+  { "emrenovation.com", true },
+  { "en-maktoob.search.yahoo.com", false },
+  { "enaim.de", true },
+  { "encfs.win", true },
   { "encircleapp.com", true },
+  { "encnet.de", true },
+  { "encredible.de", true },
+  { "encredible.org", true },
   { "encryptallthethings.net", true },
   { "encrypted.google.com", true },
+  { "encryptio.com", true },
+  { "end.pp.ua", true },
+  { "endlessdark.net", true },
   { "endlesshorizon.net", true },
   { "endlesstone.com", true },
   { "endofnet.org", true },
-  { "endzeit-architekten.com", true },
+  { "enecoshop.nl", true },
+  { "enefan.jp", true },
+  { "energiekeurplus.nl", true },
   { "energy-drink-magazin.de", true },
   { "engelundlicht.ch", true },
   { "englerts.de", true },
   { "englishbulgaria.net", true },
   { "englishclub.com", true },
-  { "enigmail.net", true },
+  { "englishforums.com", true },
   { "enjen.net", true },
+  { "enjoy-nepal.de", true },
+  { "enlightenedhr.com", true },
+  { "enloestatebank.com", true },
   { "enorekcah.com", true },
   { "enquos.com", true },
+  { "enscosupply.com", true },
   { "enskat.de", true },
   { "enskatson-sippe.de", true },
+  { "ensured.com", true },
+  { "ensured.nl", true },
+  { "enteente.club", true },
   { "enteente.com", true },
-  { "entersynapse.com", true },
+  { "enteente.xyz", true },
+  { "enterprisey.enterprises", true },
+  { "entersynapse.com", false },
   { "entrepreneur.or.id", true },
-  { "entropia.de", false },
+  { "envelope.co.nz", true },
+  { "enveloppenopmaat.nl", true },
+  { "enviam.de", true },
   { "envygeeks.com", true },
   { "envygeeks.io", true },
+  { "eoldb.org", true },
+  { "eopugetsound.org", true },
+  { "epanurse.com", true },
   { "epay.bg", true },
+  { "epaygateway.net", true },
+  { "epicsecure.de", true },
+  { "epicsoft.de", true },
+  { "epostplus.li", true },
+  { "epublibre.org", true },
   { "eqorg.com", true },
+  { "equilibre-yoga-jennifer-will.com", true },
+  { "equipsupply.com", true },
+  { "erawanarifnugroho.com", true },
+  { "erepublik-deutschland.de", true },
+  { "ericdiao.com", true },
+  { "ericwie.se", true },
+  { "ericyl.com", true },
+  { "erigrid.eu", true },
   { "eriix.org", true },
   { "erisrenee.com", true },
   { "ernesto.at", true },
+  { "erp-band.ru", true },
+  { "erp.band", true },
+  { "erpband.ru", true },
+  { "erpcargo.com", true },
+  { "errlytics.com", true },
+  { "errolz.com", true },
   { "errors.zenpayroll.com", false },
+  { "ersindemirtas.com", true },
   { "eru.me", true },
+  { "erudikum.cz", true },
+  { "erwinwensveen.nl", true },
   { "es.search.yahoo.com", false },
   { "escalate.eu", true },
+  { "escapees.com", true },
   { "esclear.de", true },
+  { "escritoriodearte.com", true },
   { "esg-abi2001.de", true },
+  { "esigmbh.de", true },
+  { "esko.bar", true },
+  { "eskriett.com", true },
+  { "esn-ypci.com", true },
   { "esoa.net", true },
+  { "esocweb.com", true },
   { "espanol.search.yahoo.com", false },
   { "espci.fr", true },
   { "espgg.org", true },
   { "espra.com", true },
   { "esquonic.com", true },
+  { "essentialoilsimports.com", true },
+  { "esseriumani.com", true },
+  { "essexghosthunters.co.uk", true },
   { "essoduke.org", true },
+  { "estaleiro.org", true },
+  { "esteam.se", true },
+  { "estebanborges.com", true },
+  { "estilos.com.pe", true },
   { "etaes.eu", true },
+  { "etdonline.co.uk", true },
+  { "eteesheet.com", true },
+  { "etelej.com", true },
+  { "eternitylove.us", true },
+  { "eth0.nl", true },
+  { "etha.nz", true },
   { "ethack.org", true },
+  { "ethanfaust.com", true },
   { "ethercalc.com", true },
   { "ethercalc.org", true },
   { "etherpad.fr", true },
   { "ethicaldata.co.uk", true },
   { "ethicalexploiting.com", true },
+  { "ethicall.org.uk", true },
   { "ethitter.com", true },
-  { "eucl3d.com", true },
+  { "ethlan.fr", true },
+  { "ethosinfo.com", true },
+  { "etkaddict.com", true },
+  { "etrker.com", true },
+  { "ets2mp.de", true },
+  { "etula.ga", true },
+  { "etyd.org", true },
+  { "euanbaines.com", true },
   { "eugenekay.com", true },
+  { "eulenleben.de", true },
+  { "eulerpi.io", true },
+  { "euph.eu", true },
+  { "euro.ro", true },
   { "europop.com", true },
+  { "euroshop.or.at", true },
   { "eurostrategy.vn.ua", true },
   { "eurotramp.com", true },
   { "ev-zertifikate.de", true },
   { "eva.cz", true },
   { "evalesc.com", true },
+  { "evantage.org", true },
+  { "evantageglobal.com", true },
   { "evasovova.cz", true },
   { "evdenevenakliyatankara.pw", true },
+  { "evegalaxy.net", true },
+  { "eventaro.com", true },
   { "everhome.de", true },
+  { "everling.lu", true },
+  { "everwaking.com", true },
+  { "everylab.org", true },
+  { "everymove.org", true },
+  { "everythingkitchens.com", false },
   { "eveseat.net", true },
   { "eveshamglass.co.uk", true },
+  { "evi.be", true },
+  { "evilized.de", true },
+  { "evin.ml", true },
+  { "evites.me", true },
   { "evomon.com", true },
+  { "evossd.tk", true },
+  { "evowl.com", false },
   { "evrial.com", true },
   { "evstatus.com", true },
   { "ewe2.ninja", true },
+  { "ewie.name", true },
   { "exceltobarcode.com", true },
   { "excessamerica.com", true },
+  { "exchangeworks.co", true },
   { "exekutori.com", true },
+  { "exemples-de-stands.com", true },
+  { "exeria.de", true },
   { "exfiles.cz", true },
   { "exiahost.com", true },
+  { "exno.co", true },
+  { "exon.io", true },
+  { "exoscale.ch", true },
+  { "exoticads.com", true },
   { "expatads.com", true },
   { "experienceoz.com.au", true },
+  { "expertmile.com", true },
   { "explodie.org", true },
+  { "expo-asia.ru", true },
   { "expo-designers.com", true },
   { "express-vpn.com", true },
-  { "expressfinance.co.za", true },
+  { "expressemotion.net", true },
   { "expresshosting.org", true },
   { "expressvpn.com", true },
   { "expxkcd.com", true },
   { "extendwings.com", true },
+  { "extracobanks.com", true },
+  { "extranetpuc.com.br", true },
+  { "extremenetworking.net", true },
+  { "exy.pw", true },
+  { "exyplis.com", true },
   { "eyasc.nl", true },
   { "eydesignguidelines.com", true },
+  { "eyeglassuniverse.com", true },
+  { "eyeonid.com", true },
+  { "eytosh.net", true },
   { "eyyit.com", true },
+  { "ez.fi", true },
+  { "ezrefurb.co.uk", true },
+  { "f-be.com", true },
   { "f-droid.org", true },
   { "f-thie.de", true },
   { "f2f.cash", true },
   { "fa-works.com", true },
+  { "faber.org.ru", true },
   { "fabhub.io", true },
   { "fabianasantiago.com", true },
+  { "fabienbaker.com", true },
+  { "fableforge.nl", true },
   { "fabse.net", true },
   { "facebook.com", false },
   { "factor.cc", false },
+  { "factorable.net", true },
+  { "factuursturen.be", true },
+  { "factuursturen.nl", true },
+  { "factys.do", true },
+  { "factys.es", true },
+  { "fadilus.com", true },
+  { "faeriecakes.be", true },
   { "fahrenwal.de", true },
-  { "fahrenwalde.de", true },
+  { "failproof.be", true },
   { "fairbill.com", true },
+  { "faircom.co.za", true },
+  { "fairlyoddtreasures.com", true },
   { "faizan.net", true },
-  { "faizan.xyz", true },
+  { "faktura.pl", true },
+  { "fakturi.com", true },
   { "fakturoid.cz", true },
   { "falconvintners.com", true },
+  { "falkena.net", true },
   { "falkp.no", true },
   { "fallenangeldrinks.co.uk", true },
   { "fallenangeldrinks.com", true },
   { "fallenangeldrinks.eu", true },
   { "fallenangelspirits.co.uk", true },
   { "fallenangelspirits.com", true },
   { "fallenangelspirits.uk", true },
   { "fallenspirits.co.uk", true },
+  { "falsum.net", true },
+  { "familie-kupschke.de", true },
+  { "familie-monka.de", true },
+  { "familie-sander.rocks", true },
+  { "familiegrottendieck.de", true },
   { "familieholme.de", true },
+  { "familjenfrodlund.se", true },
   { "fandomservices.com", true },
   { "fangs.ink", true },
+  { "fanjoe.be", true },
+  { "fant.dk", true },
+  { "fanvoice.com", true },
+  { "fanyue123.tk", true },
   { "faq.lookout.com", false },
+  { "fargtorget.se", true },
+  { "farhood.org", true },
+  { "farmacialaboratorio.it", true },
   { "fasdoutreach.ca", true },
+  { "fashion.net", true },
   { "faspirits.co.uk", true },
   { "faspirits.com", true },
   { "fassadenverkleidung24.de", true },
+  { "fasset.jp", true },
   { "fastaim.de", true },
   { "fastcomcorp.com", true },
   { "fastcomcorp.net", true },
   { "fastmail.com", false },
+  { "fastopen.ml", true },
+  { "fatgeekflix.net", true },
   { "fatherhood.gov", true },
   { "fatlossguide.xyz", true },
+  { "fatox.de", true },
+  { "fatwin.pw", true },
+  { "fatzebra.com.au", false },
   { "faucetbox.com", true },
+  { "fawkex.me", true },
+  { "fawong.com", true },
   { "fayolle.info", true },
   { "fbox.li", true },
   { "fca-tools.com", true },
+  { "fcburk.de", true },
+  { "fdj.im", true },
   { "fdsys.gov", false },
+  { "fdt.name", true },
   { "fearsomegaming.com", true },
+  { "fecik.sk", true },
   { "federalregister.gov", true },
   { "federicomigliavacca.it", true },
   { "fedorahosted.org", true },
   { "fedorapeople.org", true },
   { "fedrtc.org", true },
+  { "fedux.com.ar", true },
   { "feedbin.com", false },
+  { "feedhq.org", true },
   { "feedthebot.com", true },
+  { "feel.aero", true },
   { "feen.us", true },
   { "feezmodo.com", true },
+  { "feirlane.org", false },
+  { "feliwyn.fr", true },
   { "felixrr.pro", true },
   { "feminists.co", true },
+  { "fenno.net", true },
+  { "fenteo.com", true },
+  { "feragon.net", true },
   { "ferienhaus-polchow-ruegen.de", false },
+  { "fernandes.org", true },
+  { "ferrugem.org", true },
+  { "festrip.com", true },
   { "fetch.co.uk", true },
+  { "feuerwehr-oberkotzau.de", true },
   { "fewo-thueringer-wald.de", true },
+  { "fexco.com", true },
+  { "fexmen.com", true },
   { "ff-bad-hoehenstadt.de", true },
   { "ffbans.org", true },
+  { "ffmradio.de", true },
   { "fhcdn.xyz", true },
   { "fi.google.com", true },
   { "fi.search.yahoo.com", false },
+  { "ficus.io", true },
+  { "fid.to", true },
   { "fidanza.eu", true },
   { "fidelapp.com", true },
+  { "fierlafijn.net", true },
+  { "fierman.eu", true },
+  { "fierman.net", true },
+  { "fierman.us", true },
   { "fiftyshadesofluca.ml", true },
   { "fightr.co", true },
+  { "figuurzagers.nl", true },
   { "fiilr.com", true },
   { "fiken.no", true },
+  { "fiksel.info", true },
+  { "fikt.space", true },
   { "file-pdf.it", true },
   { "filedir.com", false },
+  { "filemeal.com", true },
+  { "filhodohomem.com", true },
   { "filip-prochazka.com", true },
   { "filippo.io", true },
+  { "fillmysuitca.se", true },
   { "filoo.de", true },
+  { "financieringsportaal.nl", true },
+  { "finanzkontor.net", true },
+  { "finditez.com", true },
+  { "findyour.diet", true },
+  { "finenet.com.tw", true },
+  { "finfev.de", true },
+  { "fingent.com", true },
+  { "finisron.in", true },
   { "finkelstein.fr", true },
   { "finn.io", true },
+  { "fionamcbride.com", true },
   { "firebaseio-demo.com", true },
   { "firebaseio.com", true },
+  { "firebird.io", true },
   { "firebirdrangecookers.com", true },
+  { "firecore.com", false },
   { "firefart.at", false },
+  { "firehost.com", true },
   { "firemail.io", true },
+  { "fireorbit.de", true },
   { "firevap.org", true },
+  { "firexarxa.de", true },
   { "firma-offshore.com", true },
   { "firmapi.com", true },
   { "firstchoicecandy.com", true },
+  { "firstderm.com", true },
   { "firstlook.org", true },
+  { "firstmall.de", true },
+  { "fischers.cc", true },
   { "fish-hook.ru", true },
+  { "fit4medien.de", true },
+  { "fitbylo.com", true },
+  { "fitiapp.com", true },
   { "fitkram.cz", true },
+  { "fitnesswerk.de", true },
+  { "fitzsim.org", true },
+  { "fivestarsitters.com", true },
+  { "fixatom.com", true },
+  { "fixhotsauce.com", true },
+  { "fixmycomputerdude.com", true },
+  { "fizz.buzz", true },
   { "fj.simple.com", false },
+  { "flaemig42.de", true },
   { "flagspot.net", true },
   { "flajshans.cz", true },
   { "flamer-scene.com", false },
   { "flamewall.net", false },
   { "flamingcow.tv", true },
   { "flamingkeys.com", true },
+  { "flamme-von-anor.de", true },
+  { "flareon.net", true },
   { "flat.io", true },
+  { "flawcheck.com", true },
   { "flawlesscowboy.xyz", true },
+  { "flazznetworks.com", false },
+  { "fless.co.uk", true },
+  { "fletchto99.com", true },
   { "fleximus.org", false },
+  { "flexinvesting.fi", true },
+  { "flexport.com", true },
   { "flipagram.com", false },
+  { "flipneus.net", true },
   { "flirchi.com", false },
+  { "flocktofedora.org", true },
+  { "floless.co.uk", true },
   { "floobits.com", true },
   { "floorball-haunwoehr.de", true },
   { "floort.net", true },
-  { "florian-lillpopp.de", true },
+  { "florence.uk.net", true },
+  { "florent-tatard.fr", true },
   { "florian-schlachter.de", true },
-  { "florianlillpopp.de", true },
+  { "florian-thie.de", true },
   { "florianmitrea.uk", true },
   { "floridaescapes.co.uk", true },
+  { "floridafieros.org", true },
   { "florismouwen.com", true },
   { "floskelwolke.de", true },
+  { "flouartistique.ch", true },
   { "flow.su", true },
   { "flowersandclouds.com", true },
   { "flowlo.me", true },
   { "flra.gov", true },
   { "flukethoughts.com", true },
-  { "flushstudios.com", true },
-  { "fluxent.de", true },
+  { "fluxent.de", false },
   { "fluxfingers.net", true },
+  { "fly.moe", true },
   { "flynn.io", true },
   { "fmarchal.fr", true },
+  { "fnb-griffinonline.com", true },
+  { "fndout.com", true },
   { "fniephaus.com", true },
+  { "fnordserver.eu", true },
   { "focusmark.jp", true },
+  { "fokkusu.fi", true },
+  { "folv.es", true },
+  { "fondanastasia.ru", true },
+  { "font-converter.net", true },
   { "food4health.guide", true },
+  { "foodacademy.capetown", true },
+  { "foodiebox.no", true },
+  { "foodievenues.com", true },
   { "foodwise.marketing", true },
   { "footballmapped.com", true },
+  { "foraje-profesionale.ro", true },
   { "foray-jero.me", true },
+  { "forbook.net", true },
   { "fordbydesign.com", true },
   { "forewordreviews.com", true },
+  { "forex-dan.com", true },
+  { "forextimes.ru", true },
   { "forgix.com", true },
+  { "formationseeker.com", true },
   { "formationsfactory.co.uk", false },
+  { "formazioneopen.it", true },
+  { "formula.cf", true },
   { "foro.io", false },
   { "forodeespanol.com", true },
+  { "fortesanshop.it", true },
+  { "fortnine.ca", true },
   { "fortress.sk", true },
+  { "fortworth.ch", true },
   { "forum.linode.com", false },
   { "forum.quantifiedself.com", false },
+  { "fossewaygardencentre.co.uk", true },
+  { "fotocerita.net", true },
   { "fotofaerie.net", true },
+  { "fotopasja.info", true },
   { "fotostudio-schweiz.ch", true },
-  { "foxdev.io", false },
+  { "fotowettbewerb.co", true },
+  { "fotowolfy.com", true },
+  { "foxbnc.co.uk", true },
+  { "foxdev.co", true },
   { "foxelbox.com", true },
+  { "foxley-farm.co.uk", true },
+  { "foxley-seeds.co.uk", true },
+  { "foxleyseeds.co.uk", true },
+  { "foxtrot.pw", true },
+  { "fpy.cz", true },
   { "fr.search.yahoo.com", false },
   { "fr33d0m.link", true },
+  { "frack.nl", true },
+  { "fragnic.com", true },
+  { "fraho.eu", true },
   { "fralef.me", false },
+  { "francescopalazzo.com", true },
+  { "francevpn.xyz", true },
+  { "franckgirard.net", true },
+  { "frangor.info", true },
+  { "frank.fyi", true },
+  { "frankhaala.com", true },
   { "frankierprofi.de", true },
+  { "fransallen.com", true },
+  { "franta.biz", true },
+  { "franta.email", true },
   { "franzt.ovh", true },
+  { "frasys.cloud", true },
+  { "frasys.io", true },
+  { "frasys.net", true },
   { "fraye.net", true },
   { "frederik-braun.com", true },
   { "fredvoyage.fr", true },
   { "free.com.tw", true },
+  { "freeboson.org", true },
   { "freedom.press", false },
+  { "freeform4u.de", true },
+  { "freekdevries.nl", true },
   { "freelance.boutique", true },
+  { "freelance.nl", true },
+  { "freematthale.net", true },
+  { "freemedforms.com", true },
   { "freenetproject.org", true },
   { "freeshell.de", true },
+  { "freesitemapgenerator.com", true },
+  { "freesoftwaredriver.com", true },
   { "freesounding.com", true },
   { "freesounding.ru", true },
   { "freethought.org.au", true },
-  { "freeutopia.org", true },
+  { "freetsa.org", true },
   { "freeweibo.com", true },
   { "freifunk-essen.de", true },
   { "freifunk-luenen.de", true },
   { "freiwurst.net", true },
+  { "freqlabs.com", true },
   { "fresh-hotel.org", true },
+  { "freshfind.xyz", true },
   { "fretscha.com", true },
+  { "frezbo.com", true },
+  { "frickelboxx.de", true },
+  { "fridolinka.cz", true },
   { "friendica.ch", true },
   { "frillip.com", true },
+  { "frippz.se", true },
+  { "fritzrepair.com", true },
+  { "frizo.com", true },
+  { "frly.de", true },
+  { "frob.nl", true },
   { "froggstack.de", true },
+  { "fromlemaytoz.com", true },
+  { "fromscratch.rocks", true },
   { "fronteers.nl", true },
+  { "frontisme.nl", true },
+  { "frontmin.com", true },
+  { "froot.se", true },
+  { "froxlor.support", true },
   { "frtr.gov", true },
-  { "fruchthof24.de", true },
+  { "frugro.be", true },
   { "fruitusers.com", true },
   { "frusky.de", true },
   { "fsapubs.gov", true },
+  { "fsbpaintrock.com", true },
+  { "fsbturton.com", true },
   { "fsfi.is", true },
+  { "fsm2016.org", true },
+  { "ftc.gov", true },
   { "ftccomplaintassistant.gov", true },
   { "fteproxy.org", true },
+  { "fugle.de", true },
   { "fuglede.dk", true },
   { "fukushima-web.com", true },
+  { "fumo.se", true },
+  { "functions-online.com", true },
+  { "fundacionhijosdelsol.org", true },
+  { "fundays.nl", true },
+  { "funderburg.me", true },
   { "fundingempire.com", true },
+  { "funi4u.com", true },
+  { "funnyang.com", true },
+  { "funrun.com", true },
+  { "furgo.love", true },
   { "furkancaliskan.com", true },
+  { "furry.be", true },
   { "furry.dk", true },
+  { "futbol11.com", true },
   { "futos.de", true },
   { "fuzzing-project.org", true },
   { "fx5.de", true },
+  { "fxp.co.il", true },
+  { "fyfywka.com", true },
+  { "fyn.nl", true },
+  { "fysiohaenraets.nl", true },
   { "fzn.io", true },
   { "g-m-w.eu", true },
+  { "g-marketing.ro", true },
+  { "g-o.pl", true },
+  { "g2a.co", true },
   { "g4w.co", true },
+  { "g5led.nl", true },
+  { "gabber.scot", true },
+  { "gafachi.com", true },
+  { "gagniard.org", true },
+  { "gagor.pl", true },
+  { "gaichon.com", true },
+  { "gaiserik.com", true },
+  { "gakkainavi-epsilon.jp", true },
+  { "gakkainavi-epsilon.net", true },
+  { "gakkainavi.jp", true },
+  { "gakkainavi.net", true },
+  { "gakkainavi4.com", true },
+  { "gakkainavi4.jp", true },
+  { "gakkainavi4.net", true },
+  { "galactic-crew.org", true },
   { "gallery44.org", true },
+  { "gam3rs.de", true },
+  { "gamajo.com", true },
   { "gambit.pro", true },
   { "gambitnash.co.uk", true },
   { "gambitnash.com", true },
   { "gambitprint.com", true },
+  { "game-files.net", true },
+  { "game7.de", true },
+  { "gamecave.de", true },
+  { "gamecollector.be", true },
+  { "gamedevelopers.pl", true },
+  { "gamegix.com", true },
   { "gamenected.com", true },
   { "gamenected.de", true },
+  { "gamepader.com", true },
   { "gamercredo.com", true },
   { "gamercredo.net", true },
   { "gamers-life.fr", true },
-  { "gameserver-sponsor.de", true },
+  { "gamesurferapp.com", true },
+  { "gamingmedia.eu", true },
+  { "gamingreinvented.com", true },
   { "gamingzoneservers.com", true },
+  { "gamishou.fr", true },
+  { "gamoloco.com", true },
+  { "gampenhof.de", true },
+  { "gancedo.com.es", true },
+  { "ganhonet.com.br", true },
+  { "gar-nich.net", true },
+  { "garagegoossens.be", true },
+  { "garantieabschluss.de", false },
   { "garbage-juice.com", true },
+  { "garedtech.com", true },
   { "garron.net", true },
+  { "garyjones.co.uk", true },
+  { "gasbarkenora.com", true },
+  { "gateworld.fr", true },
+  { "gatilagata.com.br", true },
+  { "gaussorgues.me", true },
   { "gautvedt.no", true },
   { "gavick.com", true },
   { "gaytorrent.ru", true },
   { "gc-mc.de", true },
   { "gc.net", true },
   { "gcs-ventures.com", true },
+  { "gcsepod.com", true },
+  { "ge1.me", true },
   { "ge3k.net", true },
   { "geblitzt.de", true },
+  { "gechr.io", true },
+  { "gee.is", true },
   { "geek-hub.de", true },
+  { "geekandi.com", true },
+  { "geekwu.org", true },
   { "geeky.software", true },
+  { "geeq.ch", true },
   { "gehaowu.com", true },
+  { "geli-graphics.com", true },
+  { "gelog-software.de", true },
+  { "gemeentemolenwaard.nl", true },
   { "gemeinfreie-lieder.de", true },
+  { "gendrin.com", true },
+  { "genehome.com.au", true },
+  { "generali-worldwide.com", true },
+  { "generationnext.pl", true },
+  { "generic.cx", true },
+  { "genossen.ru", true },
   { "genshiken-itb.org", true },
   { "genshiken.org", true },
   { "genslerwisp.com", true },
+  { "genuu.com", true },
   { "genuxation.com", true },
   { "genuxtsg.com", true },
   { "genxbeats.com", true },
   { "genxnotes.com", true },
-  { "genyaa.com", true },
+  { "genyhitch.com", true },
   { "geoip.fedoraproject.org", true },
   { "geoip.stg.fedoraproject.org", true },
+  { "geolad.com", true },
+  { "georgemaschke.com", true },
+  { "georgemaschke.net", true },
+  { "georgesonarthurs.com.au", true },
+  { "georgmayer.eu", true },
+  { "geoscan.aero", true },
+  { "geraintwhite.co.uk", true },
   { "gerardozamudio.mx", true },
   { "gerencianet.com.br", false },
+  { "gereon.ch", true },
+  { "germandarknes.net", true },
   { "gernert-server.de", true },
   { "geschwinder.net", true },
+  { "gesiwista.net", true },
+  { "get-asterisk.ru", true },
+  { "get-erp.ru", true },
   { "get.zenpayroll.com", false },
   { "getbambu.com", false },
   { "getbox.me", true },
   { "getbutterfly.com", true },
+  { "getcarefirst.com", true },
+  { "getcarina.com", true },
   { "getcloak.com", false },
   { "getcolor.com", true },
   { "getdash.io", true },
   { "getdigitized.net", true },
+  { "geterp.ru", true },
   { "getfedora.org", true },
   { "getfittedstore.com", true },
+  { "gethttpsforfree.com", true },
+  { "getinternet.de", true },
+  { "getkai.co.nz", true },
+  { "getlifti.com", true },
+  { "getlolaccount.com", true },
   { "getmango.com", true },
   { "getnikola.com", true },
-  { "getsello.com", true },
+  { "getremembrall.com", true },
+  { "getsello.com", false },
+  { "getsensibill.com", true },
+  { "getsetupfile.com", true },
   { "getspire.com", true },
   { "getsport.mobi", true },
+  { "getts.ro", true },
   { "getvdownloader.com", true },
+  { "gfm.tech", true },
   { "gfournier.ca", true },
   { "ggp2.com", true },
+  { "ggx.us", true },
   { "gha.st", true },
+  { "ghcif.de", true },
   { "gheorghesarcov.ga", true },
+  { "gheorghesarcov.tk", true },
   { "ghostblog.info", true },
   { "giacomopelagatti.it", true },
+  { "giftgofers.com", true },
   { "giftservices.nl", true },
+  { "giftsn.com.sg", true },
+  { "gifzilla.net", false },
+  { "gig.ru", false },
   { "gigacloud.org", true },
+  { "gigacog.com", true },
+  { "gigawa.lt", true },
+  { "gijsbertus.com", true },
+  { "gilcloud.com", true },
+  { "gingali.de", true },
   { "gintenreiter-photography.com", true },
-  { "gipsamsfashion.com", true },
+  { "gipsic.com", true },
+  { "gistfy.com", true },
+  { "git.co", true },
   { "github.com", true },
   { "github.party", false },
   { "giveattheoffice.org", true },
-  { "givingnexus.org", true },
+  { "givemyanswer.com", true },
+  { "givingnexus.org", false },
+  { "gix.net.pl", true },
+  { "gixtools.co.uk", true },
+  { "gixtools.com", true },
+  { "gixtools.net", true },
+  { "gixtools.uk", true },
   { "gizzo.sk", true },
+  { "gjcampbell.co.uk", true },
+  { "gjspunk.de", true },
+  { "gjung.com", true },
   { "glasgestaltung.biz", true },
   { "glass.google.com", true },
+  { "glasschmuck-millefiori.de", true },
+  { "glentakahashi.com", true },
   { "glidingshop.cz", true },
+  { "glidingshop.de", true },
+  { "glidingshop.eu", true },
+  { "glitchsys.com", true },
+  { "glittersjabloon.nl", true },
   { "globalcomix.com", true },
   { "globalexpert.co.nz", true },
+  { "globalgivingtime.com", true },
   { "globalinstitutefortraining.org.au", true },
   { "globalittech.com", false },
+  { "globalmusic.ga", true },
   { "globalperspectivescanada.com", true },
+  { "globalsites.nl", true },
   { "globuli-info.de", true },
+  { "gloomyvancouver.com", true },
   { "glossopnorthendafc.co.uk", true },
+  { "glubbforum.de", true },
   { "gm-assicurazioni.it", true },
   { "gmail.com", false },
   { "gmcd.co", true },
   { "gmdu.net", true },
   { "gmta.nl", true },
+  { "gmw-hannover.de", true },
   { "gmw-ingenieurbuero.de", true },
   { "gnetwork.eu", true },
   { "go-zh.org", true },
   { "go.xero.com", false },
+  { "go2sh.de", true },
   { "goabonga.com", true },
+  { "goalsetup.com", true },
   { "goaltree.ch", true },
   { "goat.xyz", true },
+  { "goben.ch", true },
   { "gocardless.com", true },
+  { "godesigner.ru", true },
+  { "goerner.me", true },
+  { "goerres2014.de", true },
+  { "gofigure.fr", false },
+  { "gogenenglish.com", true },
+  { "gogetssl.com", true },
   { "goggs.eu", true },
+  { "gogold-g.com", true },
+  { "gohon.org", true },
   { "gokmenguresci.com", true },
   { "goldendata.io", true },
   { "goldenhillsoftware.com", true },
+  { "goldmark.com.au", true },
+  { "goldpreisfinder.at", true },
+  { "goldpros.com", true },
+  { "goldsecurity.com", true },
+  { "golf18network.com", true },
+  { "golfscape.com", true },
+  { "gonzalosanchez.mx", true },
+  { "gooby.co", true },
+  { "goodmengroup.de", true },
   { "google", true },
   { "googlemail.com", false },
   { "googleplex.com", true },
   { "gopay.cz", true },
+  { "gordonobrecht.com", true },
+  { "gorschenin.com", true },
+  { "gosccs.com", true },
+  { "gosharewood.com", true },
   { "goshop.cz", true },
+  { "gospelvestcination.de", true },
   { "gosuland.org", true },
   { "gotech.com.eg", true },
+  { "gotgenes.com", true },
   { "gothamlimo.com", true },
   { "goto.google.com", true },
   { "gotocloud.ru", true },
+  { "gotomi.info", true },
   { "gotowned.org", true },
   { "gotspot.com", true },
+  { "governorhub.com", true },
+  { "govillemo.ca", true },
   { "govtrack.us", true },
-  { "gowe.wang", true },
+  { "gowe.wang", false },
+  { "gozel.com.tr", true },
   { "gpfclan.de", true },
   { "gplintegratedit.com", true },
   { "gpo.gov", false },
+  { "gprs.uk.com", true },
+  { "gps.com.br", true },
   { "gpsfix.cz", true },
+  { "gpstuner.com", true },
   { "gpsvideocanada.com", true },
   { "gr.search.yahoo.com", false },
   { "gra2.com", true },
+  { "graavaapi.elasticbeanstalk.com", true },
   { "grace-wan.com", true },
   { "gracedays.org", true },
-  { "gracesofgrief.com", true },
+  { "gracesofgrief.com", false },
+  { "graciousmay.com", true },
+  { "grademypc.com", true },
+  { "gradienthosting.co.uk", true },
   { "grafitec.ru", true },
+  { "grafmurr.de", true },
   { "graingert.co.uk", true },
   { "grandcapital.id", true },
   { "grandcapital.ru", true },
   { "grandlinecsk.ru", true },
   { "grandmasfridge.org", true },
   { "grannyshouse.de", true },
   { "grantedby.me", true },
   { "granth.io", true },
   { "granular.ag", true },
   { "graph.no", true },
   { "graphire.io", true },
+  { "gravitechthai.com", true },
+  { "gravito.nl", true },
   { "gravity-net.de", true },
   { "graymalk.in", true },
   { "grazetech.com", true },
   { "grc.com", false },
   { "grcnode.co.uk", true },
   { "greatfire.org", true },
+  { "greatnet.de", true },
+  { "greedbutt.com", true },
   { "greenpeace-magazin.de", true },
+  { "greenpeace.berlin", true },
   { "greenroach.ru", true },
   { "greensolid.biz", true },
   { "greenteamtwente.nl", true },
   { "gregmilton.com", true },
   { "gregmilton.org", true },
   { "gregorytlee.me", true },
   { "grepular.com", true },
+  { "gresak.io", true },
+  { "gresb.com", true },
+  { "gretchelizartistry.com", true },
+  { "greysolutions.it", true },
   { "grh.am", true },
+  { "gribani.com", true },
+  { "grieg-gaarden.no", true },
+  { "grieg.no", true },
+  { "griegfoundation.no", true },
+  { "grieglogistics.no", true },
+  { "griegshipbrokers.com", true },
+  { "griegshipbrokers.no", true },
+  { "griesser2.de", true },
   { "grigalanzsoftware.com", true },
   { "grimm-gastrobedarf.de", true },
+  { "grimneko.de", true },
+  { "gripopgriep.net", true },
+  { "gritte.ch", true },
+  { "grizzlys.com", true },
   { "grocock.me.uk", true },
   { "groetzner.net", true },
+  { "grog.pw", true },
+  { "groovinads.com", true },
+  { "groovydisk.com", true },
+  { "gropp.org", true },
+  { "groseb.net", true },
   { "grossmann.gr", true },
   { "groszek.pl", true },
   { "groups.google.com", true },
   { "grsecurity.net", true },
+  { "grunex.com", true },
+  { "grytics.com", true },
   { "gs-net.at", true },
-  { "gsm-map.com", true },
+  { "gtamodshop.org", true },
   { "gtanda.tk", true },
+  { "gtldna.com", true },
+  { "gtlfsonlinepay.com", true },
   { "gtmasterclub.it", false },
   { "gtmetrix.com", true },
   { "gtraxapp.com", true },
+  { "gts-schulsoftware.de", true },
   { "gudini.net", true },
+  { "guerrilla.technology", true },
+  { "guevener.de", true },
+  { "guffr.it", true },
+  { "gugaltika-ipb.org", true },
   { "gugga.dk", false },
   { "guguke.net", true },
   { "guidetoiceland.is", false },
-  { "guilde-vindicta.fr", true },
+  { "guillaumeperrin.io", true },
   { "guineapigmustach.es", true },
+  { "gulenbase.no", true },
+  { "gunnaro.com", true },
+  { "guntbert.net", true },
+  { "gunwatch.co.uk", true },
+  { "guoqiang.info", true },
   { "guphi.net", true },
+  { "gurkan.in", true },
   { "gurochan.ch", true },
   { "gurom.lv", true },
   { "guru-naradi.cz", true },
   { "gurusupe.com", true },
+  { "gussi.is", true },
   { "guthabenkarten-billiger.de", true },
+  { "guts.me", true },
+  { "guvernalternativa.ro", true },
   { "gvt2.com", true },
   { "gvt3.com", true },
   { "gw2treasures.com", true },
+  { "gwtest.us", true },
   { "gyboche.com", true },
   { "gyboche.science", true },
+  { "gypsycatdreams.com", true },
+  { "gyz.io", true },
+  { "gz-architekten.de", true },
+  { "gz-benz.com", true },
+  { "gz-bmw.com", true },
+  { "h-jo.net", true },
   { "h2check.org", true },
+  { "haarkliniek.com", true },
+  { "habanaavenue.com", true },
   { "habarisoft.com", true },
-  { "hablemosdetecnologia.com.ve", true },
+  { "hablemosdetecnologia.com.ve", false },
   { "hachre.de", false },
   { "hack.cz", true },
   { "hack.li", true },
   { "hackcraft.net", true },
+  { "hackenkunjeleren.nl", true },
   { "hackenturet.dk", true },
   { "hacker.one", true },
+  { "hackerforever.com", true },
+  { "hackernet.se", true },
   { "hackerone-user-content.com", true },
   { "hackerone.com", true },
+  { "hackerpoints.com", true },
+  { "hackest.org", true },
+  { "hackit.im", true },
+  { "hackmd.io", true },
   { "hackthissite.org", true },
+  { "hadleighswimmingclub.co.uk", true },
+  { "hadzic.co", true },
+  { "haeckl.eu", true },
   { "hafniatimes.com", true },
+  { "hahayidu.org", true },
   { "haircrazy.com", true },
+  { "haitschi.com", true },
+  { "haitschi.de", true },
+  { "haitschi.net", true },
+  { "haitschi.org", true },
   { "hakase.kr", true },
+  { "haktec.de", true },
+  { "haku.moe", false },
+  { "hallmarkestates.ca", true },
+  { "halo.fr", true },
+  { "hamali.bg", true },
+  { "haman.nl", true },
   { "hana.ondemand.com", true },
+  { "handiworker.com", true },
   { "handmadetutorials.ro", true },
   { "hangouts.google.com", true },
   { "hannover-banditen.de", true },
+  { "hansen.hn", true },
   { "hansvaneijsden.com", true },
+  { "hansvaneijsden.nl", true },
+  { "hanu.la", true },
+  { "haomwei.com", true },
   { "haozi.me", true },
+  { "happyandrelaxeddogs.eu", true },
+  { "happycoder.net", true },
   { "happygadget.me", true },
   { "happylifestyle.com", true },
   { "happyteamlabs.com", true },
+  { "happytiger.eu", true },
+  { "happyukgo.com", true },
+  { "harabuhouse.com", true },
   { "harbor-light.net", true },
+  { "hardeman.nu", true },
+  { "hardertimes.com", true },
   { "hardfalcon.net", true },
   { "hardh.at", true },
+  { "hardline.xyz", true },
+  { "harmoney.co.nz", true },
   { "harmoney.com", true },
+  { "harmoney.com.au", true },
+  { "harmonycosmetic.com", true },
   { "harringtonca.com", true },
+  { "harrisonsand.com", false },
+  { "harrisonsdirect.co.uk", true },
   { "harristony.com", true },
+  { "hartie95.de", true },
   { "harvestapp.com", true },
   { "harvester.fr", false },
+  { "harvestrenewal.org", true },
+  { "harz.cloud", true },
   { "haselsteiner.me", true },
   { "hash-list.com", true },
   { "hashiconf.com", true },
   { "hashicorp.com", true },
+  { "hashimah.ca", true },
+  { "hashnode.com", true },
   { "hashplex.com", true },
+  { "hashru.nl", true },
+  { "hashworks.net", true },
+  { "haskovec.com", true },
   { "haste.ch", true },
   { "hastherebeenamassshooting.today", true },
+  { "hatoko.net", true },
   { "haucke.xyz", true },
   { "haufschild.de", true },
+  { "hauntedfishtank.com", true },
   { "hausverbrauch.de", true },
   { "haveeruexaminer.com", true },
   { "haveibeenpwned.com", true },
+  { "havellab.de", true },
   { "havelland-obstler.de", true },
   { "hawkeyeinsight.com", true },
+  { "hawksguild.com", true },
+  { "haxo.nl", false },
+  { "hazcod.com", true },
   { "hboeck.de", true },
+  { "hbpowell.com", true },
+  { "hcie.pl", true },
+  { "hd-gaming.com", true },
   { "hd-offensive.at", true },
   { "hda.me", true },
   { "hdc.cz", true },
+  { "hdeaves.uk", true },
+  { "hdfgroup.org", true },
+  { "hdhoang.space", true },
   { "hdm.io", true },
   { "hds-lan.de", true },
   { "hduin.xyz", true },
+  { "hdwallpapers.net", true },
+  { "head.org", true },
   { "healthcare.gov", false },
   { "healtheffectsofasbestos.com", true },
+  { "healthfoam.com", true },
   { "healthiercompany.com", true },
-  { "heartlandrentals.com", true },
+  { "heartmdinstitute.com", true },
   { "heartsucker.com", true },
+  { "heathmanners.com", true },
+  { "heavensinferno.net", true },
   { "heavystresser.com", true },
+  { "hebikhiv.nl", true },
+  { "hec.global", true },
+  { "hedgeschool.ie", true },
+  { "hegen.com.pl", true },
   { "heh.ee", true },
   { "heha.co", false },
   { "heid.ws", true },
   { "heijblok.com", true },
+  { "heinpost.nl", true },
+  { "hejahanif.se", true },
   { "hejsupport.se", true },
+  { "hele.cz", true },
   { "helgakristoffer.com", true },
   { "helgakristoffer.wedding", true },
   { "helichat.de", true },
   { "helix.am", true },
+  { "hellersgas.com", true },
   { "helloacm.com", true },
   { "helloanselm.com", true },
+  { "hellotandem.com", true },
+  { "helloworldhost.com", true },
+  { "hellscanyonraft.com", true },
   { "help.simpletax.ca", false },
   { "helpadmin.net", true },
   { "helpconnect.com.au", true },
   { "helpium.de", true },
+  { "helpmebuild.com", true },
   { "hemlockhillscabinrentals.com", true },
   { "hencagon.com", true },
+  { "hennadesigns.org", true },
+  { "hennymerkel.com", true },
+  { "henok.eu", true },
   { "henriknoerr.com", true },
   { "henriksen.is", true },
   { "henrock.net", true },
+  { "henryphan.com", true },
+  { "hentschke-bau.de", true },
+  { "hentschke-invest.de", true },
   { "heppler.net", true },
+  { "herbandpat.org", true },
   { "herbert.io", true },
+  { "herbertmouwen.nl", true },
+  { "hermes-net.de", true },
   { "herocentral.de", true },
   { "herpaderp.net", true },
+  { "herr-webdesign.de", true },
+  { "herrenfahrt.com", true },
+  { "herrsmith.com", true },
+  { "herzbotschaft.de", true },
   { "hetmer.com", true },
   { "heute-kaufen.de", true },
   { "heutger.net", true },
   { "hex2013.com", true },
+  { "hexicurity.com", true },
   { "hexo.io", true },
+  { "hexony.com", true },
+  { "heycms.com", true },
+  { "heyfringe.com", true },
   { "heyguevara.com", true },
   { "hg.python.org", true },
+  { "hhhdb.com", true },
+  { "hhmmmm.de", true },
+  { "hibilog.com", true },
+  { "hicl.org", true },
   { "hicn.gq", true },
   { "hicoria.com", true },
+  { "hiddendepth.ie", true },
   { "hiddenmail.xyz", true },
+  { "higgstools.org", true },
+  { "highseer.com", true },
+  { "highvelocitydesign.com", true },
+  { "higp.de", true },
+  { "hiisukun.com", true },
+  { "hikariempire.com", true },
   { "hilahdih.cz", true },
+  { "hilti.ee", false },
+  { "hilti.kz", false },
+  { "hilti.lv", false },
   { "hiphop.ren", true },
+  { "hiphopconvention.nl", true },
+  { "hippies.com.br", true },
+  { "hipstercat.fr", true },
+  { "hirake55.com", true },
   { "hisbrucker.net", true },
   { "history.google.com", false },
+  { "hittipps.com", true },
   { "hiv.gov", true },
+  { "hjw-kunstwerk.de", true },
   { "hk.search.yahoo.com", false },
   { "hlavacek.us", true },
   { "hledejpravnika.cz", true },
-  { "hmm.nyc", true },
+  { "hmm.nyc", false },
+  { "hmsseahawk.com", true },
   { "hobby-gamerz-community.de", true },
   { "hobbyspeed.com", true },
   { "hochhaus.us", true },
+  { "hochzeit-dana-laurens.de", true },
+  { "hodne.io", true },
+  { "hoffmeister.biz", true },
   { "hohm.in", true },
   { "holifestival-freyung.de", true },
   { "holisticon.de", true },
   { "hollowrap.com", true },
-  { "holymoly.lu", true },
+  { "holmesian.org", true },
+  { "holofono.com", true },
   { "homads.com", false },
   { "homecareassociatespa.com", true },
-  { "hompus.nl", true },
+  { "homedna.com", true },
+  { "homehunting.pt", true },
+  { "homeprivate.de", true },
+  { "homeseller.co.uk", true },
+  { "homeseller.com", true },
+  { "homewatt.co.uk", true },
+  { "homeyou.com", true },
+  { "hompus.nl", false },
+  { "honda-centrum.cz", true },
+  { "hondart.cz", true },
   { "honeybadger.io", false },
+  { "honeybeard.co.uk", true },
+  { "honeycome.net", true },
+  { "honoo.com", true },
   { "hoodoo.io", true },
   { "hoodoo.tech", true },
+  { "hooray.beer", true },
+  { "hopesb.org", true },
   { "hopewellproperties.co.uk", true },
+  { "hopps.me", true },
+  { "horvathd.eu", true },
+  { "hory.me", true },
   { "horza.org", true },
-  { "hoshinplan.com", false },
+  { "hoshinplan.com", true },
   { "hoshisato.com", true },
+  { "hosiet.me", true },
+  { "hosmussynergie.nl", true },
+  { "hostam.link", true },
   { "hostanalyticsconsulting.com", true },
+  { "hosteasy.nl", true },
+  { "hosted-service.com", true },
+  { "hostedbgp.net", true },
   { "hostedtalkgadget.google.com", true },
-  { "hostgarou.com", true },
+  { "hostelite.com", true },
+  { "hostgarou.com", false },
+  { "hostinaus.com.au", true },
+  { "hostingactive.it", true },
+  { "hostingfj.com", true },
   { "hostinghelp.guru", true },
   { "hostinginnederland.nl", true },
   { "hostix.de", true },
+  { "hostmijnpagina.nl", true },
   { "hotchillibox.co.za", true },
-  { "hotchillibox.com", true },
+  { "hotchoc.io", true },
+  { "hotel-pension-sonnalp.eu", true },
+  { "hotelmap.com", true },
   { "hoton.in", true },
+  { "hotting.nl", true },
+  { "houser.lu", true },
+  { "housingstudents.org.uk", true },
+  { "howbehealthy.com", true },
   { "howrandom.org", true },
   { "howsmyssl.com", true },
   { "howsmytls.com", true },
-  { "hozana.si", true },
+  { "hozana.si", false },
   { "hpac-portal.com", true },
+  { "hpisavageforum.com", true },
   { "hpkp-faq.de", true },
+  { "hqhost.net", true },
+  { "hr-intranet.com", true },
   { "hrackydomino.cz", true },
   { "hranicka.cz", true },
   { "hrbatypes.cz", true },
+  { "hrobert.hu", true },
   { "hroschyk.cz", true },
   { "hs-group.net", true },
+  { "hscorp.de", true },
+  { "hsir.me", true },
   { "hsmr.cc", true },
   { "hsr.gov", true },
   { "hsts.date", true },
   { "hstsfail.appspot.com", true },
   { "htaccessbook.com", true },
   { "html5.org", true },
+  { "htmlacademy.ru", true },
+  { "http418.xyz", false },
+  { "httpsecurityreport.com", true },
   { "httpswatch.com", true },
+  { "huarongdao.com", true },
   { "huaxueba.com", true },
+  { "huersch.com", true },
   { "huffduffer.com", true },
+  { "hugocollignon.fr", true },
+  { "hugosleep.com.au", true },
+  { "huiser.nl", true },
   { "humankode.com", true },
   { "humblefinances.com", true },
+  { "humeurs.net", true },
+  { "humpteedumptee.in", true },
   { "hund.io", true },
+  { "huntshomeinspections.com", true },
+  { "hup.blue", true },
+  { "hupp.se", true },
+  { "hurd.is", true },
+  { "huren.nl", true },
   { "hurricanelabs.com", true },
+  { "husakbau.at", true },
   { "hushfile.it", true },
+  { "husky.xyz", true },
+  { "huskybutt.dog", true },
+  { "huskyinc.us", true },
+  { "hx53.de", true },
+  { "hxying.com", true },
+  { "hydrocloud.net", true },
+  { "hydrozone.fr", true },
+  { "hyk.me", true },
   { "hymerscollege.co.uk", true },
   { "hyper-text.org", true },
-  { "i10z.com", true },
+  { "i--b.com", true },
+  { "i-partners.sk", true },
+  { "i10z.com", false },
   { "i5y.co.uk", true },
-  { "i95.me", true },
+  { "iactu.info", true },
   { "iainsimms.me", true },
   { "iamcarrico.com", true },
   { "iamokay.nl", true },
   { "ian.sh", true },
+  { "ianix.com", true },
+  { "iapws.com", true },
+  { "ib-wedler.de", true },
+  { "iba.community", true },
   { "iban.is", true },
+  { "ibarf.nl", true },
+  { "ibnuwebhost.com", true },
+  { "ibron.co", true },
+  { "icarlos.net", true },
+  { "icebat.dyndns.org", true },
+  { "iceloch.com", true },
   { "ichronos.net", true },
+  { "icpc2016.in.th", true },
   { "icq-project.net", true },
+  { "ict-concept.nl", true },
+  { "ictinforensics.org", true },
+  { "ictual.com", true },
   { "id-co.in", true },
+  { "id-conf.com", false },
   { "id.atlassian.com", true },
   { "id.fedoraproject.org", false },
   { "id.mayfirst.org", false },
   { "id.search.yahoo.com", false },
+  { "id0-rsa.pub", true },
+  { "idacmedia.com", true },
   { "idaspis.com", true },
   { "ideadozz.hu", true },
+  { "ideasmeetingpoint.com", true },
   { "ideation-inc.co.jp", true },
   { "ideaweb.de", true },
+  { "idedr.com", true },
+  { "idensys.nl", true },
+  { "identitytheft.gov", true },
+  { "idexxpublicationportal.com", true },
+  { "idgard.de", true },
+  { "idgsupply.com", true },
+  { "idlekernel.com", true },
   { "idndx.com", true },
+  { "idoc24.com", true },
+  { "idolf.dk", true },
+  { "idontplaydarts.com", true },
   { "idvl.de", true },
-  { "iec.pe", true },
+  { "iec.pe", false },
+  { "ieeespmb.org", true },
+  { "ies-italia.it", true },
+  { "ies.id.lv", true },
   { "ieval.ro", true },
+  { "ifasec.de", false },
   { "ifcfg.me", true },
+  { "ifconfig.co", true },
+  { "iflare.de", true },
   { "ifleurs.com", true },
   { "ifoss.me", true },
+  { "ifxor.com", true },
+  { "igforums.com", true },
   { "iggprivate.com", true },
   { "iggsoft.com", true },
   { "iggsoftware.com", true },
+  { "igiftcards.nl", true },
+  { "igk.de", true },
+  { "igotoffer.com", true },
+  { "igrivi.com", true },
   { "ihrlotto.de", true },
+  { "ihrnationalrat.ch", true },
   { "ihsbsd.me", true },
+  { "iirii.com", true },
   { "iispeed.com", true },
   { "ijohan.nl", true },
   { "ijsclubtilburg.nl", true },
+  { "ikeyless.com", true },
   { "ikk.me", true },
   { "ikkatsu-satei.jp", true },
+  { "iklive.org", true },
+  { "ikon.name", true },
   { "ikvts.de", true },
+  { "ikwilguidobellen.nl", true },
   { "ilbuongiorno.it", true },
+  { "ile-kalorii.pl", true },
   { "ilhadocaranguejo.com.br", true },
   { "ilikerainbows.co", true },
   { "ilikerainbows.co.uk", false },
   { "illorenese.fr", true },
+  { "ilrg.com", true },
+  { "iluvscotland.co.uk", true },
   { "im-c-shop.com", true },
+  { "im2net.com", true },
+  { "imagefu.com", true },
   { "imagescostumes.com", true },
   { "imaginary.ca", true },
   { "imagr.io", true },
+  { "imanolbarba.net", true },
   { "imbrian.org", true },
+  { "imedikament.de", true },
+  { "imeds.pl", true },
   { "imgg.es", true },
   { "imirhil.fr", true },
+  { "imjad.cn", true },
   { "imlonghao.com", true },
+  { "immaterium.de", true },
+  { "immigrationdirect.com.au", true },
+  { "immobilier-nice.fr", true },
+  { "immoprotect.ca", true },
+  { "immortals-co.com", true },
   { "immoverkauf24.at", true },
   { "immoverkauf24.de", true },
+  { "immunicity.eu", true },
   { "immunicity.info", true },
+  { "imolug.org", true },
   { "imoni-blog.net", true },
+  { "imperialwebsolutions.com", true },
   { "impex.com.bd", true },
   { "imququ.com", true },
   { "imreh.net", true },
   { "imrejonk.nl", true },
+  { "imu.li", true },
+  { "in-depthoutdoors.com", true },
+  { "in-flames.com", true },
   { "in.search.yahoo.com", false },
   { "in.xero.com", false },
   { "inb4.us", true },
   { "inbitcoin.it", true },
   { "inbounder.io", true },
+  { "inbox-group.com", true },
   { "inbox.google.com", true },
+  { "inbox.li", true },
   { "inboxen.org", true },
+  { "incendiary-arts.com", true },
+  { "inche-ali.com", true },
   { "incparadise.net", true },
-  { "indiecert.net", true },
+  { "indiecert.net", false },
+  { "indievelopment.nl", true },
+  { "indoorskiassen.nl", true },
   { "indovinabank.com.vn", true },
+  { "indredouglas.me", true },
+  { "indusfastremit-ca.com", true },
+  { "indusfastremit-us.com", true },
+  { "indusfastremit.com", true },
   { "indust.me", false },
+  { "industreiler.com", true },
   { "indybay.org", true },
+  { "infcof.com", true },
   { "infilock.com", true },
   { "infinitusgaming.eu", true },
   { "influxus.com", false },
-  { "infocommsociety.com", false },
+  { "infogrfx.com", true },
+  { "informatiebeveiliging.nl", true },
+  { "informatik.zone", true },
   { "informnapalm.org", true },
+  { "infosec.ch", true },
+  { "infosenior.ch", true },
+  { "infotics.es", true },
+  { "infra-con.dk", true },
   { "iniiter.com", true },
-  { "initq.net", true },
+  { "inios.fr", true },
+  { "initq.net", false },
   { "initrd.net", true },
+  { "injigo.com", true },
+  { "inkable.com.au", true },
   { "inkbunny.net", true },
   { "inksay.com", true },
   { "inleaked.com", true },
+  { "inmyarea.com", true },
   { "innophate-security.com", true },
   { "innophate-security.nl", true },
+  { "innovaptor.at", true },
+  { "innovaptor.com", true },
+  { "insane.zone", true },
   { "insideaudit.com", true },
-  { "insouciant.org", true },
+  { "insightera.co.th", true },
+  { "insighti.com", true },
+  { "insighti.eu", true },
+  { "insighti.org", true },
+  { "insighti.sk", true },
+  { "inspire-av.com", true },
   { "inspiroinc.com", true },
+  { "inspy.me", true },