summaryrefslogtreecommitdiff
path: root/chromium/net/http
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-23 17:21:03 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-01-23 16:25:15 +0000
commitc551f43206405019121bd2b2c93714319a0a3300 (patch)
tree1f48c30631c421fd4bbb3c36da20183c8a2ed7d7 /chromium/net/http
parent7961cea6d1041e3e454dae6a1da660b453efd238 (diff)
downloadqtwebengine-chromium-c551f43206405019121bd2b2c93714319a0a3300.tar.gz
BASELINE: Update Chromium to 79.0.3945.139
Change-Id: I336b7182fab9bca80b709682489c07db112eaca5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/net/http')
-rw-r--r--chromium/net/http/alternative_service.cc6
-rw-r--r--chromium/net/http/alternative_service.h9
-rw-r--r--chromium/net/http/bidirectional_stream_unittest.cc6
-rw-r--r--chromium/net/http/broken_alternative_services.cc138
-rw-r--r--chromium/net/http/broken_alternative_services.h99
-rw-r--r--chromium/net/http/broken_alternative_services_unittest.cc377
-rw-r--r--chromium/net/http/http_auth_gssapi_posix.cc2
-rw-r--r--chromium/net/http/http_auth_handler_factory.cc6
-rw-r--r--chromium/net/http/http_auth_handler_negotiate.cc18
-rw-r--r--chromium/net/http/http_auth_handler_negotiate.h3
-rw-r--r--chromium/net/http/http_auth_handler_negotiate_unittest.cc18
-rw-r--r--chromium/net/http/http_auth_handler_ntlm.h14
-rw-r--r--chromium/net/http/http_auth_handler_ntlm_win.cc26
-rw-r--r--chromium/net/http/http_auth_sspi_win.cc94
-rw-r--r--chromium/net/http/http_auth_sspi_win.h73
-rw-r--r--chromium/net/http/http_auth_sspi_win_unittest.cc48
-rw-r--r--chromium/net/http/http_basic_state.cc9
-rw-r--r--chromium/net/http/http_basic_state.h9
-rw-r--r--chromium/net/http/http_basic_state_unittest.cc22
-rw-r--r--chromium/net/http/http_basic_stream.cc10
-rw-r--r--chromium/net/http/http_basic_stream.h3
-rw-r--r--chromium/net/http/http_cache.cc1
-rw-r--r--chromium/net/http/http_cache.h4
-rw-r--r--chromium/net/http/http_cache_lookup_manager.cc5
-rw-r--r--chromium/net/http/http_cache_lookup_manager_unittest.cc23
-rw-r--r--chromium/net/http/http_cache_transaction.cc78
-rw-r--r--chromium/net/http/http_cache_transaction.h10
-rw-r--r--chromium/net/http/http_cache_unittest.cc173
-rw-r--r--chromium/net/http/http_cache_writers_unittest.cc2
-rw-r--r--chromium/net/http/http_chunked_decoder_fuzzer.dict34
-rw-r--r--chromium/net/http/http_content_disposition_fuzzer.cc18
-rw-r--r--chromium/net/http/http_content_disposition_unittest.cc11
-rw-r--r--chromium/net/http/http_network_session.cc9
-rw-r--r--chromium/net/http/http_network_session.h4
-rw-r--r--chromium/net/http/http_network_transaction.cc10
-rw-r--r--chromium/net/http/http_network_transaction.h5
-rw-r--r--chromium/net/http/http_network_transaction_unittest.cc122
-rw-r--r--chromium/net/http/http_proxy_connect_job.cc4
-rw-r--r--chromium/net/http/http_proxy_connect_job_unittest.cc112
-rw-r--r--chromium/net/http/http_request_headers.cc2
-rw-r--r--chromium/net/http/http_request_info.cc1
-rw-r--r--chromium/net/http/http_request_info.h3
-rw-r--r--chromium/net/http/http_response_headers.cc5
-rw-r--r--chromium/net/http/http_response_info.cc6
-rw-r--r--chromium/net/http/http_response_info.h2
-rw-r--r--chromium/net/http/http_server_properties.cc837
-rw-r--r--chromium/net/http/http_server_properties.h213
-rw-r--r--chromium/net/http/http_server_properties_manager.cc245
-rw-r--r--chromium/net/http/http_server_properties_manager.h32
-rw-r--r--chromium/net/http/http_server_properties_manager_unittest.cc947
-rw-r--r--chromium/net/http/http_server_properties_unittest.cc1426
-rw-r--r--chromium/net/http/http_stream_factory.cc86
-rw-r--r--chromium/net/http/http_stream_factory.h33
-rw-r--r--chromium/net/http/http_stream_factory_job.cc60
-rw-r--r--chromium/net/http/http_stream_factory_job.h7
-rw-r--r--chromium/net/http/http_stream_factory_job_controller.cc23
-rw-r--r--chromium/net/http/http_stream_factory_job_controller.h2
-rw-r--r--chromium/net/http/http_stream_factory_job_controller_unittest.cc204
-rw-r--r--chromium/net/http/http_stream_factory_unittest.cc427
-rw-r--r--chromium/net/http/http_stream_parser.cc6
-rw-r--r--chromium/net/http/http_stream_parser.h11
-rw-r--r--chromium/net/http/http_stream_parser_unittest.cc45
-rw-r--r--chromium/net/http/http_util.cc47
-rw-r--r--chromium/net/http/http_util.h4
-rw-r--r--chromium/net/http/http_util_unittest.cc135
-rw-r--r--chromium/net/http/mock_sspi_library_win.cc26
-rw-r--r--chromium/net/http/mock_sspi_library_win.h39
-rw-r--r--chromium/net/http/transport_security_state_static.json5131
-rw-r--r--chromium/net/http/transport_security_state_static.pins43
-rw-r--r--chromium/net/http/webfonts_histogram.cc65
-rw-r--r--chromium/net/http/webfonts_histogram.h25
-rw-r--r--chromium/net/http/webfonts_histogram_unittest.cc138
72 files changed, 8624 insertions, 3267 deletions
diff --git a/chromium/net/http/alternative_service.cc b/chromium/net/http/alternative_service.cc
index c35a3968c2d..da7bf9dda06 100644
--- a/chromium/net/http/alternative_service.cc
+++ b/chromium/net/http/alternative_service.cc
@@ -176,8 +176,7 @@ AlternativeServiceInfoVector ProcessAlternativeServices(
alternative_service_vector,
bool is_http2_enabled,
bool is_quic_enabled,
- const quic::ParsedQuicVersionVector& supported_quic_versions,
- bool support_ietf_format_quic_altsvc) {
+ const quic::ParsedQuicVersionVector& supported_quic_versions) {
// Convert spdy::SpdyAltSvcWireFormat::AlternativeService entries
// to net::AlternativeServiceInfo.
AlternativeServiceInfoVector alternative_service_info_vector;
@@ -195,8 +194,7 @@ AlternativeServiceInfoVector ProcessAlternativeServices(
continue;
if (!alternative_service_entry.version.empty()) {
advertised_versions = FilterSupportedAltSvcVersions(
- alternative_service_entry, supported_quic_versions,
- support_ietf_format_quic_altsvc);
+ alternative_service_entry, supported_quic_versions);
if (advertised_versions.empty())
continue;
}
diff --git a/chromium/net/http/alternative_service.h b/chromium/net/http/alternative_service.h
index 5e2374c0c00..908781b36a7 100644
--- a/chromium/net/http/alternative_service.h
+++ b/chromium/net/http/alternative_service.h
@@ -113,12 +113,6 @@ NET_EXPORT_PRIVATE std::ostream& operator<<(
std::ostream& os,
const AlternativeService& alternative_service);
-struct AlternativeServiceHash {
- size_t operator()(const net::AlternativeService& entry) const {
- return entry.protocol ^ std::hash<std::string>()(entry.host) ^ entry.port;
- }
-};
-
class NET_EXPORT_PRIVATE AlternativeServiceInfo {
public:
static AlternativeServiceInfo CreateHttp2AlternativeServiceInfo(
@@ -219,8 +213,7 @@ NET_EXPORT_PRIVATE AlternativeServiceInfoVector ProcessAlternativeServices(
alternative_service_vector,
bool is_http2_enabled,
bool is_quic_enabled,
- const quic::ParsedQuicVersionVector& supported_quic_versions,
- bool support_ietf_format_quic_altsvc);
+ const quic::ParsedQuicVersionVector& supported_quic_versions);
} // namespace net
diff --git a/chromium/net/http/bidirectional_stream_unittest.cc b/chromium/net/http/bidirectional_stream_unittest.cc
index 34136bc6bd3..0e8e18c3c6f 100644
--- a/chromium/net/http/bidirectional_stream_unittest.cc
+++ b/chromium/net/http/bidirectional_stream_unittest.cc
@@ -433,7 +433,8 @@ class BidirectionalStreamTest : public TestWithTaskEnvironment {
http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
SpdySessionKey key(host_port_pair_, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, socket_tag);
+ SpdySessionKey::IsProxySession::kFalse, socket_tag,
+ NetworkIsolationKey(), false /* disable_secure_dns */);
session_ = CreateSpdySession(http_session_.get(), key, net_log_.bound());
}
@@ -627,7 +628,8 @@ TEST_F(BidirectionalStreamTest, ClientAuthRequestIgnored) {
http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
SpdySessionKey key(host_port_pair_, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
std::unique_ptr<BidirectionalStreamRequestInfo> request_info(
new BidirectionalStreamRequestInfo);
request_info->method = "GET";
diff --git a/chromium/net/http/broken_alternative_services.cc b/chromium/net/http/broken_alternative_services.cc
index bacfc3d8851..05258d6ab92 100644
--- a/chromium/net/http/broken_alternative_services.cc
+++ b/chromium/net/http/broken_alternative_services.cc
@@ -31,6 +31,23 @@ base::TimeDelta ComputeBrokenAlternativeServiceExpirationDelay(
} // namespace
+BrokenAlternativeService::BrokenAlternativeService(
+ const AlternativeService& alternative_service,
+ const NetworkIsolationKey& network_isolation_key,
+ bool use_network_isolation_key)
+ : alternative_service(alternative_service),
+ network_isolation_key(use_network_isolation_key ? network_isolation_key
+ : NetworkIsolationKey()) {
+}
+
+BrokenAlternativeService::~BrokenAlternativeService() = default;
+
+bool BrokenAlternativeService::operator<(
+ const BrokenAlternativeService& other) const {
+ return std::tie(alternative_service, network_isolation_key) <
+ std::tie(other.alternative_service, other.network_isolation_key);
+}
+
BrokenAlternativeServices::BrokenAlternativeServices(
int max_recently_broken_alternative_service_entries,
Delegate* delegate,
@@ -53,34 +70,39 @@ void BrokenAlternativeServices::Clear() {
}
void BrokenAlternativeServices::MarkBrokenUntilDefaultNetworkChanges(
- const AlternativeService& alternative_service) {
- DCHECK(!alternative_service.host.empty());
- DCHECK_NE(kProtoUnknown, alternative_service.protocol);
+ const BrokenAlternativeService& broken_alternative_service) {
+ DCHECK(!broken_alternative_service.alternative_service.host.empty());
+ DCHECK_NE(kProtoUnknown,
+ broken_alternative_service.alternative_service.protocol);
// The brokenness will expire on the default network change or based on
// timer.
- broken_alternative_services_on_default_network_.insert(alternative_service);
- MarkBrokenImpl(alternative_service);
+ broken_alternative_services_on_default_network_.insert(
+ broken_alternative_service);
+ MarkBrokenImpl(broken_alternative_service);
}
void BrokenAlternativeServices::MarkBroken(
- const AlternativeService& alternative_service) {
+ const BrokenAlternativeService& broken_alternative_service) {
// The brokenness expires based only on the timer, not on the default network
// change.
- broken_alternative_services_on_default_network_.erase(alternative_service);
- MarkBrokenImpl(alternative_service);
+ broken_alternative_services_on_default_network_.erase(
+ broken_alternative_service);
+ MarkBrokenImpl(broken_alternative_service);
}
void BrokenAlternativeServices::MarkBrokenImpl(
- const AlternativeService& alternative_service) {
+ const BrokenAlternativeService& broken_alternative_service) {
// Empty host means use host of origin, callers are supposed to substitute.
- DCHECK(!alternative_service.host.empty());
- DCHECK_NE(kProtoUnknown, alternative_service.protocol);
+ DCHECK(!broken_alternative_service.alternative_service.host.empty());
+ DCHECK_NE(kProtoUnknown,
+ broken_alternative_service.alternative_service.protocol);
- auto it = recently_broken_alternative_services_.Get(alternative_service);
+ auto it =
+ recently_broken_alternative_services_.Get(broken_alternative_service);
int broken_count = 0;
if (it == recently_broken_alternative_services_.end()) {
- recently_broken_alternative_services_.Put(alternative_service, 1);
+ recently_broken_alternative_services_.Put(broken_alternative_service, 1);
} else {
broken_count = it->second++;
}
@@ -89,41 +111,45 @@ void BrokenAlternativeServices::MarkBrokenImpl(
ComputeBrokenAlternativeServiceExpirationDelay(broken_count);
// Return if alternative service is already in expiration queue.
BrokenAlternativeServiceList::iterator list_it;
- if (!AddToBrokenListAndMap(alternative_service, expiration, &list_it)) {
+ if (!AddToBrokenListAndMap(broken_alternative_service, expiration,
+ &list_it)) {
return;
}
- // If this is now the first entry in the list (i.e. |alternative_service| is
- // the next alt svc to expire), schedule an expiration task for it.
+ // If this is now the first entry in the list (i.e.
+ // |broken_alternative_service| is the next alt svc to expire), schedule
+ // an expiration task for it.
if (list_it == broken_alternative_service_list_.begin()) {
ScheduleBrokenAlternateProtocolMappingsExpiration();
}
}
void BrokenAlternativeServices::MarkRecentlyBroken(
- const AlternativeService& alternative_service) {
- DCHECK_NE(kProtoUnknown, alternative_service.protocol);
- if (recently_broken_alternative_services_.Get(alternative_service) ==
+ const BrokenAlternativeService& broken_alternative_service) {
+ DCHECK_NE(kProtoUnknown,
+ broken_alternative_service.alternative_service.protocol);
+ if (recently_broken_alternative_services_.Get(broken_alternative_service) ==
recently_broken_alternative_services_.end()) {
- recently_broken_alternative_services_.Put(alternative_service, 1);
+ recently_broken_alternative_services_.Put(broken_alternative_service, 1);
}
}
bool BrokenAlternativeServices::IsBroken(
- const AlternativeService& alternative_service) const {
+ const BrokenAlternativeService& broken_alternative_service) const {
// Empty host means use host of origin, callers are supposed to substitute.
- DCHECK(!alternative_service.host.empty());
- return broken_alternative_service_map_.find(alternative_service) !=
+ DCHECK(!broken_alternative_service.alternative_service.host.empty());
+ return broken_alternative_service_map_.find(broken_alternative_service) !=
broken_alternative_service_map_.end();
}
bool BrokenAlternativeServices::IsBroken(
- const AlternativeService& alternative_service,
+ const BrokenAlternativeService& broken_alternative_service,
base::TimeTicks* brokenness_expiration) const {
DCHECK(brokenness_expiration != nullptr);
// Empty host means use host of origin, callers are supposed to substitute.
- DCHECK(!alternative_service.host.empty());
- auto map_it = broken_alternative_service_map_.find(alternative_service);
+ DCHECK(!broken_alternative_service.alternative_service.host.empty());
+ auto map_it =
+ broken_alternative_service_map_.find(broken_alternative_service);
if (map_it == broken_alternative_service_map_.end()) {
return false;
}
@@ -133,33 +159,38 @@ bool BrokenAlternativeServices::IsBroken(
}
bool BrokenAlternativeServices::WasRecentlyBroken(
- const AlternativeService& alternative_service) {
- DCHECK(!alternative_service.host.empty());
- return recently_broken_alternative_services_.Get(alternative_service) !=
+ const BrokenAlternativeService& broken_alternative_service) {
+ DCHECK(!broken_alternative_service.alternative_service.host.empty());
+ return recently_broken_alternative_services_.Get(
+ broken_alternative_service) !=
recently_broken_alternative_services_.end() ||
- broken_alternative_service_map_.find(alternative_service) !=
+ broken_alternative_service_map_.find(broken_alternative_service) !=
broken_alternative_service_map_.end();
}
void BrokenAlternativeServices::Confirm(
- const AlternativeService& alternative_service) {
- DCHECK_NE(kProtoUnknown, alternative_service.protocol);
+ const BrokenAlternativeService& broken_alternative_service) {
+ DCHECK_NE(kProtoUnknown,
+ broken_alternative_service.alternative_service.protocol);
- // Remove |alternative_service| from |broken_alternative_service_list_|,
- // |broken_alternative_service_map_| and
+ // Remove |broken_alternative_service| from
+ // |broken_alternative_service_list_|, |broken_alternative_service_map_| and
// |broken_alternative_services_on_default_network_|.
- auto map_it = broken_alternative_service_map_.find(alternative_service);
+ auto map_it =
+ broken_alternative_service_map_.find(broken_alternative_service);
if (map_it != broken_alternative_service_map_.end()) {
broken_alternative_service_list_.erase(map_it->second);
broken_alternative_service_map_.erase(map_it);
}
- auto it = recently_broken_alternative_services_.Get(alternative_service);
+ auto it =
+ recently_broken_alternative_services_.Get(broken_alternative_service);
if (it != recently_broken_alternative_services_.end()) {
recently_broken_alternative_services_.Erase(it);
}
- broken_alternative_services_on_default_network_.erase(alternative_service);
+ broken_alternative_services_on_default_network_.erase(
+ broken_alternative_service);
}
bool BrokenAlternativeServices::OnDefaultNetworkChanged() {
@@ -212,8 +243,9 @@ void BrokenAlternativeServices::SetBrokenAndRecentlyBrokenAlternativeServices(
// |recently_broken_alternative_services_| if one doesn't exist.
auto list_it = broken_alternative_service_list_.begin();
for (size_t i = 0; i < num_broken_alt_svcs_added; ++i) {
- const AlternativeService& alternative_service = list_it->first;
- auto map_it = broken_alternative_service_map_.find(alternative_service);
+ const BrokenAlternativeService& broken_alternative_service = list_it->first;
+ auto map_it =
+ broken_alternative_service_map_.find(broken_alternative_service);
if (map_it != broken_alternative_service_map_.end()) {
// Implies this entry already exists somewhere else in
// |broken_alternative_service_list_|. Remove the existing entry from
@@ -225,12 +257,13 @@ void BrokenAlternativeServices::SetBrokenAndRecentlyBrokenAlternativeServices(
map_it->second = list_it;
} else {
broken_alternative_service_map_.insert(
- std::make_pair(alternative_service, list_it));
+ std::make_pair(broken_alternative_service, list_it));
}
- if (recently_broken_alternative_services_.Peek(alternative_service) ==
+ if (recently_broken_alternative_services_.Peek(
+ broken_alternative_service) ==
recently_broken_alternative_services_.end()) {
- recently_broken_alternative_services_.Put(alternative_service, 1);
+ recently_broken_alternative_services_.Put(broken_alternative_service, 1);
}
++list_it;
@@ -240,10 +273,9 @@ void BrokenAlternativeServices::SetBrokenAndRecentlyBrokenAlternativeServices(
// does not invalidate list iterators, so |broken_alternative_service_map_|
// does not need to be updated.
broken_alternative_service_list_.sort(
- [](const std::pair<AlternativeService, base::TimeTicks>& lhs,
- const std::pair<AlternativeService, base::TimeTicks>& rhs) -> bool {
- return lhs.second < rhs.second;
- });
+ [](const std::pair<BrokenAlternativeService, base::TimeTicks>& lhs,
+ const std::pair<BrokenAlternativeService, base::TimeTicks>& rhs)
+ -> bool { return lhs.second < rhs.second; });
base::TimeTicks new_next_expiration =
broken_alternative_service_list_.empty()
@@ -265,12 +297,13 @@ BrokenAlternativeServices::recently_broken_alternative_services() const {
}
bool BrokenAlternativeServices::AddToBrokenListAndMap(
- const AlternativeService& alternative_service,
+ const BrokenAlternativeService& broken_alternative_service,
base::TimeTicks expiration,
BrokenAlternativeServiceList::iterator* it) {
DCHECK(it);
- auto map_it = broken_alternative_service_map_.find(alternative_service);
+ auto map_it =
+ broken_alternative_service_map_.find(broken_alternative_service);
if (map_it != broken_alternative_service_map_.end())
return false;
@@ -285,11 +318,11 @@ bool BrokenAlternativeServices::AddToBrokenListAndMap(
}
}
- // Insert |alternative_service| into the list and the map
+ // Insert |broken_alternative_service| into the list and the map.
list_it = broken_alternative_service_list_.insert(
- list_it, std::make_pair(alternative_service, expiration));
+ list_it, std::make_pair(broken_alternative_service, expiration));
broken_alternative_service_map_.insert(
- std::make_pair(alternative_service, list_it));
+ std::make_pair(broken_alternative_service, list_it));
*it = list_it;
return true;
@@ -304,7 +337,8 @@ void BrokenAlternativeServices::ExpireBrokenAlternateProtocolMappings() {
break;
}
- delegate_->OnExpireBrokenAlternativeService(it->first);
+ delegate_->OnExpireBrokenAlternativeService(
+ it->first.alternative_service, it->first.network_isolation_key);
broken_alternative_service_map_.erase(it->first);
broken_alternative_service_list_.erase(it);
diff --git a/chromium/net/http/broken_alternative_services.h b/chromium/net/http/broken_alternative_services.h
index 776c0f2bed5..b41ac58755c 100644
--- a/chromium/net/http/broken_alternative_services.h
+++ b/chromium/net/http/broken_alternative_services.h
@@ -7,12 +7,12 @@
#include <list>
#include <set>
-#include <unordered_map>
#include "base/containers/mru_cache.h"
#include "base/memory/weak_ptr.h"
#include "base/time/time.h"
#include "base/timer/timer.h"
+#include "net/base/network_isolation_key.h"
#include "net/http/alternative_service.h"
namespace base {
@@ -21,17 +21,37 @@ class TickClock;
namespace net {
+// Contains information about a broken alternative service, and the context in
+// which it's known to be broken.
+struct NET_EXPORT_PRIVATE BrokenAlternativeService {
+ // If |use_network_isolation_key| is false, |network_isolation_key| is
+ // ignored, and an empty NetworkIsolationKey is used instead.
+ BrokenAlternativeService(const AlternativeService& alternative_service,
+ const NetworkIsolationKey& network_isolation_key,
+ bool use_network_isolation_key);
+
+ ~BrokenAlternativeService();
+
+ bool operator<(const BrokenAlternativeService& other) const;
+
+ AlternativeService alternative_service;
+
+ // The context in which the alternative service is known to be broken in. Used
+ // to avoid cross-NetworkIsolationKey communication.
+ NetworkIsolationKey network_isolation_key;
+};
+
// Stores broken alternative services and when their brokenness expires.
-typedef std::list<std::pair<AlternativeService, base::TimeTicks>>
+typedef std::list<std::pair<BrokenAlternativeService, base::TimeTicks>>
BrokenAlternativeServiceList;
// Stores how many times an alternative service has been marked broken.
class RecentlyBrokenAlternativeServices
- : public base::MRUCache<AlternativeService, int> {
+ : public base::MRUCache<BrokenAlternativeService, int> {
public:
RecentlyBrokenAlternativeServices(
int max_recently_broken_alternative_service_entries)
- : base::MRUCache<AlternativeService, int>(
+ : base::MRUCache<BrokenAlternativeService, int>(
max_recently_broken_alternative_service_entries) {}
};
@@ -51,7 +71,8 @@ class NET_EXPORT_PRIVATE BrokenAlternativeServices {
public:
// Called when a broken alternative service's expiration time is reached.
virtual void OnExpireBrokenAlternativeService(
- const AlternativeService& expired_alternative_service) = 0;
+ const AlternativeService& expired_alternative_service,
+ const NetworkIsolationKey& network_isolation_key) = 0;
virtual ~Delegate() {}
};
@@ -73,41 +94,46 @@ class NET_EXPORT_PRIVATE BrokenAlternativeServices {
// as not broken nor recently-broken).
void Clear();
- // Marks |alternative_service| as broken until an expiration delay (determined
- // by how many consecutive times it's been marked broken before). After the
- // delay, it will be in the recently broken state. However, when the default
- // network changes, the service will immediately be in the working state.
+ // Marks |broken_alternative_service| as broken until an expiration delay
+ // (determined by how many consecutive times it's been marked broken before).
+ // After the delay, it will be in the recently broken state. However, when the
+ // default network changes, the service will immediately be in the working
+ // state.
void MarkBrokenUntilDefaultNetworkChanges(
- const AlternativeService& alternative_service);
+ const BrokenAlternativeService& broken_alternative_service);
- // Marks |alternative_service| as broken until an expiration delay (determined
- // by how many consecutive times it's been marked broken before). After the
- // delay, it will be in the recently broken state. When the default network
- // changes, the brokenness state of this service remains unchanged.
- void MarkBroken(const AlternativeService& alternative_service);
+ // Marks |broken_alternative_service| as broken until an expiration delay
+ // (determined by how many consecutive times it's been marked broken before).
+ // After the delay, it will be in the recently broken state. When the default
+ // network changes, the brokenness state of this service remains unchanged.
+ void MarkBroken(const BrokenAlternativeService& broken_alternative_service);
- // Marks |alternative_service| as recently broken. Being recently broken will
- // cause WasAlternativeServiceRecentlyBroken(alternative_service) to return
- // true until Confirm(alternative_service) is called.
- void MarkRecentlyBroken(const AlternativeService& alternative_service);
+ // Marks |broken_alternative_service| as recently broken. Being recently
+ // broken will cause WasAlternativeServiceRecentlyBroken(alternative_service,
+ // network_isolation_key) to return true until Confirm(alternative_service,
+ // network_isolation_key) is called.
+ void MarkRecentlyBroken(
+ const BrokenAlternativeService& broken_alternative_service);
// Returns true if the alternative service is considered broken.
- bool IsBroken(const AlternativeService& alternative_service) const;
+ bool IsBroken(
+ const BrokenAlternativeService& broken_alternative_service) const;
// If the alternative service is considered broken, returns true and sets
// |brokenness_expiration| to the expiration time for that service.
// Returns false otherwise.
- bool IsBroken(const AlternativeService& alternative_service,
+ bool IsBroken(const BrokenAlternativeService& broken_alternative_service,
base::TimeTicks* brokenness_expiration) const;
// Returns true if MarkRecentlyBroken(alternative_service)
// or MarkBroken(alternative_service) has been called and
// Confirm(alternative_service) has not been called
// afterwards (even if brokenness of |alternative_service| has expired).
- bool WasRecentlyBroken(const AlternativeService& alternative_service);
+ bool WasRecentlyBroken(
+ const BrokenAlternativeService& broken_alternative_service);
// Changes the alternative service to be considered as working.
- void Confirm(const AlternativeService& alternative_service);
+ void Confirm(const BrokenAlternativeService& broken_alternative_service);
// Clears all alternative services which were marked as broken until the
// default network changed, those services will now be considered working.
@@ -144,23 +170,25 @@ class NET_EXPORT_PRIVATE BrokenAlternativeServices {
}
};
- typedef std::unordered_map<AlternativeService,
- BrokenAlternativeServiceList::iterator,
- AlternativeServiceHash>
+ typedef std::map<BrokenAlternativeService,
+ BrokenAlternativeServiceList::iterator>
BrokenMap;
- // Helper method that marks |alternative_service| as broken until an
- // expiration delay (determined by how many consecutive times it's been marked
- // broken before). After the delay, it will be in the recently broken state.
- void MarkBrokenImpl(const AlternativeService& alternative_service);
+ // Helper method that marks |broken_alternative_service| as broken until
+ // an expiration delay (determined by how many consecutive times it's been
+ // marked broken before). After the delay, it will be in the recently broken
+ // state.
+ void MarkBrokenImpl(
+ const BrokenAlternativeService& broken_alternative_service);
- // Inserts |alternative_service| and its |expiration| time into
+ // Inserts |broken_alternative_service| and its |expiration| time into
// |broken_alternative_service_list_| and |broken_alternative_service_map_|.
// |it| is the position in |broken_alternative_service_list_| where it was
// inserted.
- bool AddToBrokenListAndMap(const AlternativeService& alternative_service,
- base::TimeTicks expiration,
- BrokenAlternativeServiceList::iterator* it);
+ bool AddToBrokenListAndMap(
+ const BrokenAlternativeService& broken_alternative_service,
+ base::TimeTicks expiration,
+ BrokenAlternativeServiceList::iterator* it);
void ExpireBrokenAlternateProtocolMappings();
void ScheduleBrokenAlternateProtocolMappingsExpiration();
@@ -175,7 +203,8 @@ class NET_EXPORT_PRIVATE BrokenAlternativeServices {
BrokenMap broken_alternative_service_map_;
// A set of broken alternative services on the current default
// network. This will be cleared every time the default network changes.
- std::set<AlternativeService> broken_alternative_services_on_default_network_;
+ std::set<BrokenAlternativeService>
+ broken_alternative_services_on_default_network_;
// Maps broken alternative services to how many times they've been marked
// broken.
diff --git a/chromium/net/http/broken_alternative_services_unittest.cc b/chromium/net/http/broken_alternative_services_unittest.cc
index bff1d195e53..7ef8ba7ff99 100644
--- a/chromium/net/http/broken_alternative_services_unittest.cc
+++ b/chromium/net/http/broken_alternative_services_unittest.cc
@@ -9,7 +9,10 @@
#include "base/test/test_mock_time_task_runner.h"
#include "base/time/tick_clock.h"
+#include "net/base/network_isolation_key.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "url/gurl.h"
+#include "url/origin.h"
namespace net {
@@ -26,12 +29,20 @@ class BrokenAlternativeServicesTest
: test_task_runner_(new base::TestMockTimeTaskRunner()),
test_task_runner_context_(test_task_runner_),
broken_services_clock_(test_task_runner_->GetMockTickClock()),
- broken_services_(50, this, broken_services_clock_) {}
+ broken_services_(50, this, broken_services_clock_) {
+ auto origin1 = url::Origin::Create(GURL("http://foo.test"));
+ auto origin2 = url::Origin::Create(GURL("http://bar.test"));
+ network_isolation_key1_ = NetworkIsolationKey(origin1, origin1);
+ network_isolation_key2_ = NetworkIsolationKey(origin2, origin2);
+ }
// BrokenAlternativeServices::Delegate implementation
void OnExpireBrokenAlternativeService(
- const AlternativeService& expired_alternative_service) override {
- expired_alt_svcs_.push_back(expired_alternative_service);
+ const AlternativeService& expired_alternative_service,
+ const NetworkIsolationKey& network_isolation_key) override {
+ expired_alt_svcs_.push_back(BrokenAlternativeService(
+ expired_alternative_service, network_isolation_key,
+ true /* use_network_isolation_key */));
}
// All tests will run inside the scope of |test_task_runner_context_|, which
@@ -43,93 +54,183 @@ class BrokenAlternativeServicesTest
const base::TickClock* broken_services_clock_;
BrokenAlternativeServices broken_services_;
- std::vector<AlternativeService> expired_alt_svcs_;
+ std::vector<BrokenAlternativeService> expired_alt_svcs_;
+
+ NetworkIsolationKey network_isolation_key1_;
+ NetworkIsolationKey network_isolation_key2_;
};
TEST_F(BrokenAlternativeServicesTest, MarkBroken) {
- const AlternativeService alternative_service1(kProtoHTTP2, "foo", 443);
- const AlternativeService alternative_service2(kProtoHTTP2, "foo", 1234);
+ const BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoHTTP2, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ const BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoHTTP2, "foo", 1234), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ const BrokenAlternativeService alternative_service3(
+ AlternativeService(kProtoHTTP2, "foo", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
broken_services_.MarkBroken(alternative_service1);
EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
broken_services_.MarkBroken(alternative_service2);
EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
+
+ broken_services_.MarkBroken(alternative_service3);
+
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
broken_services_.Confirm(alternative_service1);
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
broken_services_.Confirm(alternative_service2);
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
+
+ broken_services_.Confirm(alternative_service3);
+
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
EXPECT_EQ(0u, expired_alt_svcs_.size());
}
TEST_F(BrokenAlternativeServicesTest, MarkBrokenUntilDefaultNetworkChanges) {
- const AlternativeService alternative_service1(kProtoHTTP2, "foo", 443);
- const AlternativeService alternative_service2(kProtoHTTP2, "foo", 1234);
+ const BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoHTTP2, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ const BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoHTTP2, "foo", 1234), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ const BrokenAlternativeService alternative_service3(
+ AlternativeService(kProtoHTTP2, "foo", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service3));
broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service1);
EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service3));
broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service2);
EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service3));
+
+ broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service3);
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service3));
broken_services_.Confirm(alternative_service1);
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service3));
broken_services_.Confirm(alternative_service2);
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service3));
+
+ broken_services_.Confirm(alternative_service3);
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service3));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service3));
EXPECT_EQ(0u, expired_alt_svcs_.size());
}
TEST_F(BrokenAlternativeServicesTest, MarkRecentlyBroken) {
- const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
+ const BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoHTTP2, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ const BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoHTTP2, "foo", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
- EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
- EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
- broken_services_.MarkRecentlyBroken(alternative_service);
- EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
- EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
+ broken_services_.MarkRecentlyBroken(alternative_service1);
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
- broken_services_.Confirm(alternative_service);
- EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
- EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service));
+ broken_services_.MarkRecentlyBroken(alternative_service2);
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service2));
+
+ broken_services_.Confirm(alternative_service1);
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service2));
+
+ broken_services_.Confirm(alternative_service2);
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service2));
}
TEST_F(BrokenAlternativeServicesTest, OnDefaultNetworkChanged) {
- AlternativeService alternative_service1(kProtoQUIC, "foo", 443);
- AlternativeService alternative_service2(kProtoQUIC, "bar", 443);
- AlternativeService alternative_service3(kProtoQUIC, "baz", 443);
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "bar", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service3(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
+
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.WasRecentlyBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
@@ -204,7 +305,9 @@ TEST_F(BrokenAlternativeServicesTest, OnDefaultNetworkChanged) {
TEST_F(BrokenAlternativeServicesTest,
ExpireBrokenAlternativeServiceOnDefaultNetwork) {
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service);
@@ -230,12 +333,17 @@ TEST_F(BrokenAlternativeServicesTest,
EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
EXPECT_FALSE(test_task_runner_->HasPendingTask());
EXPECT_EQ(1u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service, expired_alt_svcs_[0]);
+ EXPECT_EQ(alternative_service.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
}
TEST_F(BrokenAlternativeServicesTest, ExpireBrokenAlternateProtocolMappings) {
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
broken_services_.MarkBroken(alternative_service);
@@ -261,13 +369,18 @@ TEST_F(BrokenAlternativeServicesTest, ExpireBrokenAlternateProtocolMappings) {
EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
EXPECT_FALSE(test_task_runner_->HasPendingTask());
EXPECT_EQ(1u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service, expired_alt_svcs_[0]);
+ EXPECT_EQ(alternative_service.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
EXPECT_TRUE(broken_services_.WasRecentlyBroken(alternative_service));
}
TEST_F(BrokenAlternativeServicesTest, IsBroken) {
// Tests the IsBroken() methods.
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
base::TimeTicks brokenness_expiration;
EXPECT_FALSE(broken_services_.IsBroken(alternative_service));
@@ -311,7 +424,9 @@ TEST_F(BrokenAlternativeServicesTest, IsBroken) {
// - (signal received that default network changes);
// - brokenness expires after two intervals.
TEST_F(BrokenAlternativeServicesTest, BrokenAfterBrokenOnDefaultNetwork) {
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
// Mark the alternative service broken on the default network.
broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service);
@@ -360,7 +475,9 @@ TEST_F(BrokenAlternativeServicesTest, BrokenAfterBrokenOnDefaultNetwork) {
// - broknenss expires after two intervals;
// - (signal received that default network changes);
TEST_F(BrokenAlternativeServicesTest, BrokenOnDefaultNetworkAfterBroken) {
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
// Mark the alternative service broken.
broken_services_.MarkBroken(alternative_service);
@@ -402,7 +519,9 @@ TEST_F(BrokenAlternativeServicesTest, BrokenOnDefaultNetworkAfterBroken) {
// network changes, the exponential backoff is cleared.
TEST_F(BrokenAlternativeServicesTest,
BrokenUntilDefaultNetworkChangeWithExponentialBackoff) {
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
// Mark the alternative service broken on the default network.
broken_services_.MarkBrokenUntilDefaultNetworkChanges(alternative_service);
@@ -462,7 +581,9 @@ TEST_F(BrokenAlternativeServicesTest, ExponentialBackoff) {
// expiration delay will have been reached and exponential backoff will no
// longer apply.
- AlternativeService alternative_service(kProtoQUIC, "foo", 443);
+ BrokenAlternativeService alternative_service(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
broken_services_.MarkBroken(alternative_service);
test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
@@ -553,8 +674,116 @@ TEST_F(BrokenAlternativeServicesTest, RemoveExpiredBrokenAltSvc) {
// sure that even though A was marked broken before B, B's brokenness should
// expire before A.
- AlternativeService alternative_service1(kProtoQUIC, "foo", 443);
- AlternativeService alternative_service2(kProtoQUIC, "bar", 443);
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "bar", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
+
+ // Repeately mark |alternative_service1| broken and let brokenness expire.
+ // Do this a few times.
+
+ broken_services_.MarkBroken(alternative_service1);
+ EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
+ EXPECT_EQ(1u, expired_alt_svcs_.size());
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_.back().alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_.back().network_isolation_key);
+
+ broken_services_.MarkBroken(alternative_service1);
+ EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10));
+ EXPECT_EQ(2u, expired_alt_svcs_.size());
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_.back().alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_.back().network_isolation_key);
+
+ broken_services_.MarkBroken(alternative_service1);
+ EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20));
+ EXPECT_EQ(3u, expired_alt_svcs_.size());
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_.back().alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_.back().network_isolation_key);
+
+ expired_alt_svcs_.clear();
+
+ // Mark |alternative_service1| broken (will be given longer expiration delay),
+ // then mark |alternative_service2| broken (will be given shorter expiration
+ // delay).
+ broken_services_.MarkBroken(alternative_service1);
+ broken_services_.MarkBroken(alternative_service2);
+
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
+
+ // Advance time until one time quantum before |alternative_service2|'s
+ // brokenness expires.
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5) -
+ base::TimeDelta::FromSeconds(1));
+
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_EQ(0u, expired_alt_svcs_.size());
+
+ // Advance time by one time quantum. |alternative_service2| should no longer
+ // be broken.
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_EQ(1u, expired_alt_svcs_.size());
+ EXPECT_EQ(alternative_service2.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
+
+ // Advance time until one time quantum before |alternative_service1|'s
+ // brokenness expires
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(40) -
+ base::TimeDelta::FromMinutes(5) -
+ base::TimeDelta::FromSeconds(1));
+
+ EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_EQ(1u, expired_alt_svcs_.size());
+ EXPECT_EQ(alternative_service2.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
+
+ // Advance time by one time quantum. |alternative_service1| should no longer
+ // be broken.
+ test_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(1));
+
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
+ EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
+ EXPECT_EQ(2u, expired_alt_svcs_.size());
+ EXPECT_EQ(alternative_service2.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_[1].alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_[1].network_isolation_key);
+}
+
+// Same as above, but checks a single alternative service with two different
+// NetworkIsolationKeys.
+TEST_F(BrokenAlternativeServicesTest,
+ RemoveExpiredBrokenAltSvcWithNetworkIsolationKey) {
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "foo", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
// Repeately mark |alternative_service1| broken and let brokenness expire.
// Do this a few times.
@@ -563,19 +792,28 @@ TEST_F(BrokenAlternativeServicesTest, RemoveExpiredBrokenAltSvc) {
EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(5));
EXPECT_EQ(1u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service1, expired_alt_svcs_.back());
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_.back().alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_.back().network_isolation_key);
broken_services_.MarkBroken(alternative_service1);
EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(10));
EXPECT_EQ(2u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service1, expired_alt_svcs_.back());
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_.back().alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_.back().network_isolation_key);
broken_services_.MarkBroken(alternative_service1);
EXPECT_EQ(1u, test_task_runner_->GetPendingTaskCount());
test_task_runner_->FastForwardBy(base::TimeDelta::FromMinutes(20));
EXPECT_EQ(3u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service1, expired_alt_svcs_.back());
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_.back().alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_.back().network_isolation_key);
expired_alt_svcs_.clear();
@@ -604,7 +842,10 @@ TEST_F(BrokenAlternativeServicesTest, RemoveExpiredBrokenAltSvc) {
EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
EXPECT_EQ(1u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service2, expired_alt_svcs_[0]);
+ EXPECT_EQ(alternative_service2.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
// Advance time until one time quantum before |alternative_service1|'s
// brokenness expires
@@ -615,7 +856,10 @@ TEST_F(BrokenAlternativeServicesTest, RemoveExpiredBrokenAltSvc) {
EXPECT_TRUE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
EXPECT_EQ(1u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service2, expired_alt_svcs_[0]);
+ EXPECT_EQ(alternative_service2.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
// Advance time by one time quantum. |alternative_service1| should no longer
// be broken.
@@ -624,13 +868,23 @@ TEST_F(BrokenAlternativeServicesTest, RemoveExpiredBrokenAltSvc) {
EXPECT_FALSE(broken_services_.IsBroken(alternative_service1));
EXPECT_FALSE(broken_services_.IsBroken(alternative_service2));
EXPECT_EQ(2u, expired_alt_svcs_.size());
- EXPECT_EQ(alternative_service2, expired_alt_svcs_[0]);
- EXPECT_EQ(alternative_service1, expired_alt_svcs_[1]);
+ EXPECT_EQ(alternative_service2.alternative_service,
+ expired_alt_svcs_[0].alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ expired_alt_svcs_[0].network_isolation_key);
+ EXPECT_EQ(alternative_service1.alternative_service,
+ expired_alt_svcs_[1].alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ expired_alt_svcs_[1].network_isolation_key);
}
TEST_F(BrokenAlternativeServicesTest, SetBrokenAlternativeServices) {
- AlternativeService alternative_service1(kProtoQUIC, "foo1", 443);
- AlternativeService alternative_service2(kProtoQUIC, "foo2", 443);
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo1", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "foo2", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
base::TimeDelta delay1 = base::TimeDelta::FromMinutes(1);
@@ -687,9 +941,15 @@ TEST_F(BrokenAlternativeServicesTest, SetBrokenAlternativeServices) {
TEST_F(BrokenAlternativeServicesTest,
SetBrokenAlternativeServicesWithExisting) {
- AlternativeService alternative_service1(kProtoQUIC, "foo1", 443);
- AlternativeService alternative_service2(kProtoQUIC, "foo2", 443);
- AlternativeService alternative_service3(kProtoQUIC, "foo3", 443);
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo1", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "foo2", 443), network_isolation_key1_,
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service3(
+ AlternativeService(kProtoQUIC, "foo3", 443), network_isolation_key2_,
+ true /* use_network_isolation_key */);
std::unique_ptr<BrokenAlternativeServiceList> broken_list =
std::make_unique<BrokenAlternativeServiceList>();
@@ -763,19 +1023,32 @@ TEST_F(BrokenAlternativeServicesTest,
// recency list; in this case, only |alternative_service3| is added as
// recently broken.
auto it = broken_services_.recently_broken_alternative_services().begin();
- EXPECT_EQ(alternative_service2, it->first);
+ EXPECT_EQ(alternative_service2.alternative_service,
+ it->first.alternative_service);
+ EXPECT_EQ(alternative_service2.network_isolation_key,
+ it->first.network_isolation_key);
++it;
- EXPECT_EQ(alternative_service1, it->first);
+ EXPECT_EQ(alternative_service1.alternative_service,
+ it->first.alternative_service);
+ EXPECT_EQ(alternative_service1.network_isolation_key,
+ it->first.network_isolation_key);
++it;
- EXPECT_EQ(alternative_service3, it->first);
+ EXPECT_EQ(alternative_service3.alternative_service,
+ it->first.alternative_service);
+ EXPECT_EQ(alternative_service3.network_isolation_key,
+ it->first.network_isolation_key);
}
TEST_F(BrokenAlternativeServicesTest, ScheduleExpireTaskAfterExpire) {
// This test will check that when a broken alt svc expires, an expiration task
// is scheduled for the next broken alt svc in the expiration queue.
- AlternativeService alternative_service1(kProtoQUIC, "foo", 443);
- AlternativeService alternative_service2(kProtoQUIC, "bar", 443);
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "bar", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
// Mark |alternative_service1| broken and let brokenness expire. This will
// increase its expiration delay the next time it's marked broken.
@@ -799,8 +1072,12 @@ TEST_F(BrokenAlternativeServicesTest, ScheduleExpireTaskAfterExpire) {
}
TEST_F(BrokenAlternativeServicesTest, Clear) {
- AlternativeService alternative_service1(kProtoQUIC, "foo", 443);
- AlternativeService alternative_service2(kProtoQUIC, "bar", 443);
+ BrokenAlternativeService alternative_service1(
+ AlternativeService(kProtoQUIC, "foo", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
+ BrokenAlternativeService alternative_service2(
+ AlternativeService(kProtoQUIC, "bar", 443), NetworkIsolationKey(),
+ true /* use_network_isolation_key */);
broken_services_.MarkBroken(alternative_service1);
broken_services_.MarkRecentlyBroken(alternative_service2);
diff --git a/chromium/net/http/http_auth_gssapi_posix.cc b/chromium/net/http/http_auth_gssapi_posix.cc
index ad7ecad9ac2..e12a7839888 100644
--- a/chromium/net/http/http_auth_gssapi_posix.cc
+++ b/chromium/net/http/http_auth_gssapi_posix.cc
@@ -168,7 +168,7 @@ base::Value GetGssStatusCodeValue(GSSAPILibrary* gssapi_lib,
if (!base::IsStringUTF8(message_string))
continue;
- messages.GetList().emplace_back(message_string);
+ messages.Append(message_string);
} while (message_context != 0 && ++iterations < kMaxDisplayIterations);
if (messages.GetList().size() > 0)
diff --git a/chromium/net/http/http_auth_handler_factory.cc b/chromium/net/http/http_auth_handler_factory.cc
index 9961e04454c..34a9cb5e02a 100644
--- a/chromium/net/http/http_auth_handler_factory.cc
+++ b/chromium/net/http/http_auth_handler_factory.cc
@@ -159,7 +159,8 @@ HttpAuthHandlerRegistryFactory::Create(
HttpAuthHandlerNTLM::Factory* ntlm_factory =
new HttpAuthHandlerNTLM::Factory();
#if defined(OS_WIN)
- ntlm_factory->set_sspi_library(new SSPILibraryDefault());
+ ntlm_factory->set_sspi_library(
+ std::make_unique<SSPILibraryDefault>(NTLMSP_NAME));
#endif // defined(OS_WIN)
registry_factory->RegisterSchemeFactory(kNtlmAuthScheme, ntlm_factory);
}
@@ -169,7 +170,8 @@ HttpAuthHandlerRegistryFactory::Create(
HttpAuthHandlerNegotiate::Factory* negotiate_factory =
new HttpAuthHandlerNegotiate::Factory(negotiate_auth_system_factory);
#if defined(OS_WIN)
- negotiate_factory->set_library(std::make_unique<SSPILibraryDefault>());
+ negotiate_factory->set_library(
+ std::make_unique<SSPILibraryDefault>(NEGOSSP_NAME));
#elif BUILDFLAG(USE_EXTERNAL_GSSAPI)
negotiate_factory->set_library(
std::make_unique<GSSAPISharedLibrary>(gssapi_library_name));
diff --git a/chromium/net/http/http_auth_handler_negotiate.cc b/chromium/net/http/http_auth_handler_negotiate.cc
index c9980c1e619..0fea59a8ad0 100644
--- a/chromium/net/http/http_auth_handler_negotiate.cc
+++ b/chromium/net/http/http_auth_handler_negotiate.cc
@@ -51,9 +51,6 @@ std::unique_ptr<HttpNegotiateAuthSystem> CreateAuthSystem(
#if !defined(OS_ANDROID)
HttpAuthHandlerNegotiate::AuthLibrary* auth_library,
#endif
-#if defined(OS_WIN)
- ULONG max_token_length,
-#endif
const HttpAuthPreferences* prefs,
HttpAuthHandlerFactory::NegotiateAuthSystemFactory
negotiate_auth_system_factory) {
@@ -62,8 +59,7 @@ std::unique_ptr<HttpNegotiateAuthSystem> CreateAuthSystem(
#if defined(OS_ANDROID)
return std::make_unique<net::android::HttpAuthNegotiateAndroid>(prefs);
#elif defined(OS_WIN)
- return std::make_unique<HttpAuthSSPI>(auth_library, "Negotiate", NEGOSSP_NAME,
- max_token_length);
+ return std::make_unique<HttpAuthSSPI>(auth_library, "Negotiate");
#elif defined(OS_POSIX)
return std::make_unique<HttpAuthGSSAPI>(auth_library, "Negotiate",
CHROME_GSS_SPNEGO_MECH_OID_DESC);
@@ -98,19 +94,11 @@ int HttpAuthHandlerNegotiate::Factory::CreateAuthHandler(
#if defined(OS_WIN)
if (is_unsupported_ || reason == CREATE_PREEMPTIVE)
return ERR_UNSUPPORTED_AUTH_SCHEME;
- if (max_token_length_ == 0) {
- int rv = DetermineMaxTokenLength(auth_library_.get(), NEGOSSP_NAME,
- &max_token_length_);
- if (rv == ERR_UNSUPPORTED_AUTH_SCHEME)
- is_unsupported_ = true;
- if (rv != OK)
- return rv;
- }
// TODO(cbentzel): Move towards model of parsing in the factory
// method and only constructing when valid.
std::unique_ptr<HttpAuthHandler> tmp_handler(new HttpAuthHandlerNegotiate(
- CreateAuthSystem(auth_library_.get(), max_token_length_,
- http_auth_preferences(), negotiate_auth_system_factory_),
+ CreateAuthSystem(auth_library_.get(), http_auth_preferences(),
+ negotiate_auth_system_factory_),
http_auth_preferences(), host_resolver));
#elif defined(OS_ANDROID)
if (is_unsupported_ || !http_auth_preferences() ||
diff --git a/chromium/net/http/http_auth_handler_negotiate.h b/chromium/net/http/http_auth_handler_negotiate.h
index 4f5c8275ddb..4cf1df9fcc3 100644
--- a/chromium/net/http/http_auth_handler_negotiate.h
+++ b/chromium/net/http/http_auth_handler_negotiate.h
@@ -72,9 +72,6 @@ class NET_EXPORT_PRIVATE HttpAuthHandlerNegotiate : public HttpAuthHandler {
private:
NegotiateAuthSystemFactory negotiate_auth_system_factory_;
-#if defined(OS_WIN)
- ULONG max_token_length_ = 0;
-#endif
bool is_unsupported_ = false;
#if !defined(OS_ANDROID)
std::unique_ptr<AuthLibrary> auth_library_;
diff --git a/chromium/net/http/http_auth_handler_negotiate_unittest.cc b/chromium/net/http/http_auth_handler_negotiate_unittest.cc
index 52011cd0ec0..c0536be6553 100644
--- a/chromium/net/http/http_auth_handler_negotiate_unittest.cc
+++ b/chromium/net/http/http_auth_handler_negotiate_unittest.cc
@@ -4,6 +4,7 @@
#include "net/http/http_auth_handler_negotiate.h"
+#include <memory>
#include <string>
#include "base/bind.h"
@@ -51,7 +52,11 @@ class HttpAuthHandlerNegotiateTest : public PlatformTest,
public WithTaskEnvironment {
public:
void SetUp() override {
+#if defined(OS_WIN)
+ auth_library_ = new MockAuthLibrary(const_cast<wchar_t*>(NEGOSSP_NAME));
+#else
auth_library_ = new MockAuthLibrary();
+#endif
resolver_.reset(new MockHostResolver());
resolver_->rules_map()[HostResolverSource::ANY]->AddIPLiteralRule(
"alias", "10.0.0.2", "canonical.example.com");
@@ -78,8 +83,8 @@ class HttpAuthHandlerNegotiateTest : public PlatformTest,
security_package_.reset(new SecPkgInfoW);
memset(security_package_.get(), 0x0, sizeof(SecPkgInfoW));
security_package_->cbMaxToken = 1337;
- mock_library->ExpectQuerySecurityPackageInfo(
- L"Negotiate", SEC_E_OK, security_package_.get());
+ mock_library->ExpectQuerySecurityPackageInfo(SEC_E_OK,
+ security_package_.get());
#else
// Copied from an actual transaction!
static const char kAuthResponse[] =
@@ -455,10 +460,11 @@ TEST_F(HttpAuthHandlerNegotiateTest, OverrideAuthSystem) {
return std::make_unique<TestAuthSystem>();
}));
negotiate_factory->set_http_auth_preferences(http_auth_preferences());
-#if !defined(OS_ANDROID)
- auto auth_library = std::make_unique<MockAuthLibrary>();
- SetupMocks(auth_library.get());
- negotiate_factory->set_library(std::move(auth_library));
+#if defined(OS_WIN)
+ negotiate_factory->set_library(
+ std::make_unique<MockAuthLibrary>(NEGOSSP_NAME));
+#elif !defined(OS_ANDROID)
+ negotiate_factory->set_library(std::make_unique<MockAuthLibrary>());
#endif
GURL gurl("http://www.example.com");
diff --git a/chromium/net/http/http_auth_handler_ntlm.h b/chromium/net/http/http_auth_handler_ntlm.h
index 8403ee0572c..b4870715971 100644
--- a/chromium/net/http/http_auth_handler_ntlm.h
+++ b/chromium/net/http/http_auth_handler_ntlm.h
@@ -32,6 +32,7 @@
#include <vector>
#include "base/containers/span.h"
+#include "base/macros.h"
#include "base/strings/string16.h"
#include "net/base/completion_once_callback.h"
#include "net/base/net_export.h"
@@ -76,17 +77,17 @@ class NET_EXPORT_PRIVATE HttpAuthHandlerNTLM : public HttpAuthHandler {
// this are unit tests which pass in a mocked-out version of the SSPI
// library. After the call |sspi_library| will be owned by this Factory and
// will be destroyed when the Factory is destroyed.
- void set_sspi_library(SSPILibrary* sspi_library) {
- sspi_library_.reset(sspi_library);
+ void set_sspi_library(std::unique_ptr<SSPILibrary> sspi_library) {
+ sspi_library_ = std::move(sspi_library);
}
#endif // defined(NTLM_SSPI)
private:
#if defined(NTLM_SSPI)
- ULONG max_token_length_;
- bool is_unsupported_;
std::unique_ptr<SSPILibrary> sspi_library_;
#endif // defined(NTLM_SSPI)
+
+ DISALLOW_COPY_AND_ASSIGN(Factory);
};
#if defined(NTLM_PORTABLE)
@@ -123,6 +124,8 @@ class NET_EXPORT_PRIVATE HttpAuthHandlerNTLM : public HttpAuthHandler {
GetMSTimeProc old_ms_time_proc_;
GenerateRandomProc old_random_proc_;
HostNameProc old_host_name_proc_;
+
+ DISALLOW_COPY_AND_ASSIGN(ScopedProcSetter);
};
#endif
@@ -132,7 +135,6 @@ class NET_EXPORT_PRIVATE HttpAuthHandlerNTLM : public HttpAuthHandler {
#endif
#if defined(NTLM_SSPI)
HttpAuthHandlerNTLM(SSPILibrary* sspi_library,
- ULONG max_token_length,
const HttpAuthPreferences* http_auth_preferences);
#endif
@@ -199,6 +201,8 @@ class NET_EXPORT_PRIVATE HttpAuthHandlerNTLM : public HttpAuthHandler {
#if defined(NTLM_SSPI)
const HttpAuthPreferences* http_auth_preferences_;
#endif
+
+ DISALLOW_COPY_AND_ASSIGN(HttpAuthHandlerNTLM);
};
} // namespace net
diff --git a/chromium/net/http/http_auth_handler_ntlm_win.cc b/chromium/net/http/http_auth_handler_ntlm_win.cc
index a92b013bdb7..9c4c8ff4ebe 100644
--- a/chromium/net/http/http_auth_handler_ntlm_win.cc
+++ b/chromium/net/http/http_auth_handler_ntlm_win.cc
@@ -19,9 +19,8 @@ namespace net {
HttpAuthHandlerNTLM::HttpAuthHandlerNTLM(
SSPILibrary* sspi_library,
- ULONG max_token_length,
const HttpAuthPreferences* http_auth_preferences)
- : auth_sspi_(sspi_library, "NTLM", NTLMSP_NAME, max_token_length),
+ : auth_sspi_(sspi_library, "NTLM"),
http_auth_preferences_(http_auth_preferences) {}
HttpAuthHandlerNTLM::~HttpAuthHandlerNTLM() {
@@ -40,13 +39,8 @@ bool HttpAuthHandlerNTLM::AllowsDefaultCredentials() {
return http_auth_preferences_->CanUseDefaultCredentials(origin_);
}
-HttpAuthHandlerNTLM::Factory::Factory()
- : max_token_length_(0),
- is_unsupported_(false) {
-}
-
-HttpAuthHandlerNTLM::Factory::~Factory() {
-}
+HttpAuthHandlerNTLM::Factory::Factory() {}
+HttpAuthHandlerNTLM::Factory::~Factory() {}
int HttpAuthHandlerNTLM::Factory::CreateAuthHandler(
HttpAuthChallengeTokenizer* challenge,
@@ -58,20 +52,12 @@ int HttpAuthHandlerNTLM::Factory::CreateAuthHandler(
const NetLogWithSource& net_log,
HostResolver* host_resolver,
std::unique_ptr<HttpAuthHandler>* handler) {
- if (is_unsupported_ || reason == CREATE_PREEMPTIVE)
+ if (reason == CREATE_PREEMPTIVE)
return ERR_UNSUPPORTED_AUTH_SCHEME;
- if (max_token_length_ == 0) {
- int rv = DetermineMaxTokenLength(sspi_library_.get(), NTLMSP_NAME,
- &max_token_length_);
- if (rv == ERR_UNSUPPORTED_AUTH_SCHEME)
- is_unsupported_ = true;
- if (rv != OK)
- return rv;
- }
// TODO(cbentzel): Move towards model of parsing in the factory
// method and only constructing when valid.
- std::unique_ptr<HttpAuthHandler> tmp_handler(new HttpAuthHandlerNTLM(
- sspi_library_.get(), max_token_length_, http_auth_preferences()));
+ std::unique_ptr<HttpAuthHandler> tmp_handler(
+ new HttpAuthHandlerNTLM(sspi_library_.get(), http_auth_preferences()));
if (!tmp_handler->InitFromChallenge(challenge, target, ssl_info, origin,
net_log))
return ERR_INVALID_RESPONSE;
diff --git a/chromium/net/http/http_auth_sspi_win.cc b/chromium/net/http/http_auth_sspi_win.cc
index 754d4d954bd..5ecaa96c99c 100644
--- a/chromium/net/http/http_auth_sspi_win.cc
+++ b/chromium/net/http/http_auth_sspi_win.cc
@@ -23,7 +23,6 @@
#include "net/log/net_log_with_source.h"
namespace net {
-
using DelegationType = HttpAuth::DelegationType;
namespace {
@@ -109,8 +108,7 @@ base::Value InitializeSecurityContextParams(SSPILibrary* library,
return params;
}
-Error MapAcquireCredentialsStatusToError(SECURITY_STATUS status,
- const SEC_WCHAR* package) {
+Error MapAcquireCredentialsStatusToError(SECURITY_STATUS status) {
switch (status) {
case SEC_E_OK:
return OK;
@@ -131,7 +129,6 @@ Error MapAcquireCredentialsStatusToError(SECURITY_STATUS status,
}
Error AcquireExplicitCredentials(SSPILibrary* library,
- const SEC_WCHAR* package,
const base::string16& domain,
const base::string16& user,
const base::string16& password,
@@ -156,7 +153,6 @@ Error AcquireExplicitCredentials(SSPILibrary* library,
// Pass the username/password to get the credentials handle.
SECURITY_STATUS status = library->AcquireCredentialsHandle(
nullptr, // pszPrincipal
- const_cast<SEC_WCHAR*>(package), // pszPackage
SECPKG_CRED_OUTBOUND, // fCredentialUse
nullptr, // pvLogonID
&identity, // pAuthData
@@ -165,7 +161,7 @@ Error AcquireExplicitCredentials(SSPILibrary* library,
cred, // phCredential
&expiry); // ptsExpiry
- auto result = MapAcquireCredentialsStatusToError(status, package);
+ auto result = MapAcquireCredentialsStatusToError(status);
net_log.EndEvent(NetLogEventType::AUTH_LIBRARY_ACQUIRE_CREDS, [&] {
return AcquireCredentialsHandleParams(&domain, &user, result, status);
});
@@ -173,7 +169,6 @@ Error AcquireExplicitCredentials(SSPILibrary* library,
}
Error AcquireDefaultCredentials(SSPILibrary* library,
- const SEC_WCHAR* package,
const NetLogWithSource& net_log,
CredHandle* cred) {
TimeStamp expiry;
@@ -185,7 +180,6 @@ Error AcquireDefaultCredentials(SSPILibrary* library,
// for a single sign-on.
SECURITY_STATUS status = library->AcquireCredentialsHandle(
nullptr, // pszPrincipal
- const_cast<SEC_WCHAR*>(package), // pszPackage
SECPKG_CRED_OUTBOUND, // fCredentialUse
nullptr, // pvLogonID
nullptr, // pAuthData
@@ -194,7 +188,7 @@ Error AcquireDefaultCredentials(SSPILibrary* library,
cred, // phCredential
&expiry); // ptsExpiry
- auto result = MapAcquireCredentialsStatusToError(status, package);
+ auto result = MapAcquireCredentialsStatusToError(status);
net_log.EndEvent(NetLogEventType::AUTH_LIBRARY_ACQUIRE_CREDS, [&] {
return AcquireCredentialsHandleParams(nullptr, nullptr, result, status);
});
@@ -267,9 +261,36 @@ Error MapFreeContextBufferStatusToError(SECURITY_STATUS status) {
} // anonymous namespace
+Error SSPILibrary::DetermineMaxTokenLength(ULONG* max_token_length) {
+ if (!is_supported_)
+ return ERR_UNSUPPORTED_AUTH_SCHEME;
+
+ if (max_token_length_ != 0) {
+ *max_token_length = max_token_length_;
+ return OK;
+ }
+
+ DCHECK(max_token_length);
+ PSecPkgInfo pkg_info = nullptr;
+ is_supported_ = false;
+
+ SECURITY_STATUS status = QuerySecurityPackageInfo(&pkg_info);
+ Error rv = MapQuerySecurityPackageInfoStatusToError(status);
+ if (rv != OK)
+ return rv;
+ int token_length = pkg_info->cbMaxToken;
+
+ status = FreeContextBuffer(pkg_info);
+ rv = MapFreeContextBufferStatusToError(status);
+ if (rv != OK)
+ return rv;
+ *max_token_length = max_token_length_ = token_length;
+ is_supported_ = true;
+ return OK;
+}
+
SECURITY_STATUS SSPILibraryDefault::AcquireCredentialsHandle(
LPWSTR pszPrincipal,
- LPWSTR pszPackage,
unsigned long fCredentialUse,
void* pvLogonId,
void* pvAuthData,
@@ -277,9 +298,10 @@ SECURITY_STATUS SSPILibraryDefault::AcquireCredentialsHandle(
void* pvGetKeyArgument,
PCredHandle phCredential,
PTimeStamp ptsExpiry) {
- return ::AcquireCredentialsHandleW(pszPrincipal, pszPackage, fCredentialUse,
- pvLogonId, pvAuthData, pGetKeyFn,
- pvGetKeyArgument, phCredential, ptsExpiry);
+ return ::AcquireCredentialsHandleW(
+ pszPrincipal, const_cast<LPWSTR>(package_name_.c_str()), fCredentialUse,
+ pvLogonId, pvAuthData, pGetKeyFn, pvGetKeyArgument, phCredential,
+ ptsExpiry);
}
SECURITY_STATUS SSPILibraryDefault::InitializeSecurityContext(
@@ -314,9 +336,9 @@ SECURITY_STATUS SSPILibraryDefault::QueryContextAttributesEx(
}
SECURITY_STATUS SSPILibraryDefault::QuerySecurityPackageInfo(
- LPWSTR pszPackageName,
PSecPkgInfoW* pkgInfo) {
- return ::QuerySecurityPackageInfoW(pszPackageName, pkgInfo);
+ return ::QuerySecurityPackageInfoW(const_cast<LPWSTR>(package_name_.c_str()),
+ pkgInfo);
}
SECURITY_STATUS SSPILibraryDefault::FreeCredentialsHandle(
@@ -333,14 +355,9 @@ SECURITY_STATUS SSPILibraryDefault::FreeContextBuffer(PVOID pvContextBuffer) {
return ::FreeContextBuffer(pvContextBuffer);
}
-HttpAuthSSPI::HttpAuthSSPI(SSPILibrary* library,
- const std::string& scheme,
- const SEC_WCHAR* security_package,
- ULONG max_token_length)
+HttpAuthSSPI::HttpAuthSSPI(SSPILibrary* library, const std::string& scheme)
: library_(library),
scheme_(scheme),
- security_package_(security_package),
- max_token_length_(max_token_length),
delegation_type_(DelegationType::kNone) {
DCHECK(library_);
SecInvalidateHandle(&cred_);
@@ -432,13 +449,12 @@ int HttpAuthSSPI::OnFirstRound(const AuthCredentials* credentials,
base::string16 domain;
base::string16 user;
SplitDomainAndUser(credentials->username(), &domain, &user);
- rv = AcquireExplicitCredentials(library_, security_package_, domain, user,
+ rv = AcquireExplicitCredentials(library_, domain, user,
credentials->password(), net_log, &cred_);
if (rv != OK)
return rv;
} else {
- rv =
- AcquireDefaultCredentials(library_, security_package_, net_log, &cred_);
+ rv = AcquireDefaultCredentials(library_, net_log, &cred_);
if (rv != OK)
return rv;
}
@@ -453,6 +469,12 @@ int HttpAuthSSPI::GetNextSecurityToken(const std::string& spn,
const NetLogWithSource& net_log,
void** out_token,
int* out_token_len) {
+ ULONG max_token_length = 0;
+ // Microsoft SDKs have a loose relationship with const.
+ Error rv = library_->DetermineMaxTokenLength(&max_token_length);
+ if (rv != OK)
+ return rv;
+
CtxtHandle* ctxt_ptr = nullptr;
SecBufferDesc in_buffer_desc, out_buffer_desc;
SecBufferDesc* in_buffer_desc_ptr = nullptr;
@@ -508,7 +530,7 @@ int HttpAuthSSPI::GetNextSecurityToken(const std::string& spn,
out_buffer_desc.cBuffers = 1;
out_buffer_desc.pBuffers = &out_buffer;
out_buffer.BufferType = SECBUFFER_TOKEN;
- out_buffer.cbBuffer = max_token_length_;
+ out_buffer.cbBuffer = max_token_length;
out_buffer.pvBuffer = malloc(out_buffer.cbBuffer);
if (!out_buffer.pvBuffer)
return ERR_OUT_OF_MEMORY;
@@ -538,7 +560,7 @@ int HttpAuthSSPI::GetNextSecurityToken(const std::string& spn,
&out_buffer_desc, // pOutput
&context_attributes, // pfContextAttr
nullptr); // ptsExpiry
- Error rv = MapInitializeSecurityContextStatusToError(status);
+ rv = MapInitializeSecurityContextStatusToError(status);
net_log.EndEvent(NetLogEventType::AUTH_LIBRARY_INIT_SEC_CTX, [&] {
return InitializeSecurityContextParams(library_, &ctxt_, rv, status,
context_attributes);
@@ -574,24 +596,4 @@ void SplitDomainAndUser(const base::string16& combined,
}
}
-int DetermineMaxTokenLength(SSPILibrary* library,
- const std::wstring& package,
- ULONG* max_token_length) {
- DCHECK(library);
- DCHECK(max_token_length);
- PSecPkgInfo pkg_info = nullptr;
- SECURITY_STATUS status = library->QuerySecurityPackageInfo(
- const_cast<wchar_t *>(package.c_str()), &pkg_info);
- int rv = MapQuerySecurityPackageInfoStatusToError(status);
- if (rv != OK)
- return rv;
- int token_length = pkg_info->cbMaxToken;
- status = library->FreeContextBuffer(pkg_info);
- rv = MapFreeContextBufferStatusToError(status);
- if (rv != OK)
- return rv;
- *max_token_length = token_length;
- return OK;
-}
-
} // namespace net
diff --git a/chromium/net/http/http_auth_sspi_win.h b/chromium/net/http/http_auth_sspi_win.h
index 798673e7f54..8fa3fddb380 100644
--- a/chromium/net/http/http_auth_sspi_win.h
+++ b/chromium/net/http/http_auth_sspi_win.h
@@ -18,6 +18,7 @@
#include "base/strings/string16.h"
#include "net/base/completion_once_callback.h"
+#include "net/base/net_errors.h"
#include "net/base/net_export.h"
#include "net/http/http_auth.h"
#include "net/http/http_negotiate_auth_system.h"
@@ -29,15 +30,33 @@ class HttpAuthChallengeTokenizer;
// SSPILibrary is introduced so unit tests can mock the calls to Windows' SSPI
// implementation. The default implementation simply passes the arguments on to
// the SSPI implementation provided by Secur32.dll.
-// NOTE(cbentzel): I considered replacing the Secur32.dll with a mock DLL, but
-// decided that it wasn't worth the effort as this is unlikely to be performance
-// sensitive code.
-class SSPILibrary {
+//
+// A single SSPILibrary can only be used with a single security package. Hence
+// the package is bound at construction time. Overridable SSPI methods exclude
+// the security package parameter since it is implicit.
+class NET_EXPORT_PRIVATE SSPILibrary {
public:
+ explicit SSPILibrary(const wchar_t* package) : package_name_(package) {}
virtual ~SSPILibrary() {}
+ // Determines the maximum token length in bytes for a particular SSPI package.
+ //
+ // |library| and |max_token_length| must be non-nullptr pointers to valid
+ // objects.
+ //
+ // If the return value is OK, |*max_token_length| contains the maximum token
+ // length in bytes.
+ //
+ // If the return value is ERR_UNSUPPORTED_AUTH_SCHEME, |package| is not an
+ // known SSPI authentication scheme on this system. |*max_token_length| is not
+ // changed.
+ //
+ // If the return value is ERR_UNEXPECTED, there was an unanticipated problem
+ // in the underlying SSPI call. The details are logged, and
+ // |*max_token_length| is not changed.
+ Error DetermineMaxTokenLength(ULONG* max_token_length);
+
virtual SECURITY_STATUS AcquireCredentialsHandle(LPWSTR pszPrincipal,
- LPWSTR pszPackage,
unsigned long fCredentialUse,
void* pvLogonId,
void* pvAuthData,
@@ -64,23 +83,30 @@ class SSPILibrary {
PVOID pBuffer,
ULONG cbBuffer) = 0;
- virtual SECURITY_STATUS QuerySecurityPackageInfo(LPWSTR pszPackageName,
- PSecPkgInfoW *pkgInfo) = 0;
+ virtual SECURITY_STATUS QuerySecurityPackageInfo(PSecPkgInfoW* pkgInfo) = 0;
virtual SECURITY_STATUS FreeCredentialsHandle(PCredHandle phCredential) = 0;
virtual SECURITY_STATUS DeleteSecurityContext(PCtxtHandle phContext) = 0;
virtual SECURITY_STATUS FreeContextBuffer(PVOID pvContextBuffer) = 0;
+
+ protected:
+ // Security package used with DetermineMaxTokenLength(),
+ // QuerySecurityPackageInfo(), AcquireCredentialsHandle(). All of these must
+ // be consistent.
+ const std::wstring package_name_;
+ ULONG max_token_length_ = 0;
+
+ bool is_supported_ = true;
};
class SSPILibraryDefault : public SSPILibrary {
public:
- SSPILibraryDefault() {}
+ explicit SSPILibraryDefault(const wchar_t* package) : SSPILibrary(package) {}
~SSPILibraryDefault() override {}
SECURITY_STATUS AcquireCredentialsHandle(LPWSTR pszPrincipal,
- LPWSTR pszPackage,
unsigned long fCredentialUse,
void* pvLogonId,
void* pvAuthData,
@@ -107,8 +133,7 @@ class SSPILibraryDefault : public SSPILibrary {
PVOID pBuffer,
ULONG cbBuffer) override;
- SECURITY_STATUS QuerySecurityPackageInfo(LPWSTR pszPackageName,
- PSecPkgInfoW* pkgInfo) override;
+ SECURITY_STATUS QuerySecurityPackageInfo(PSecPkgInfoW* pkgInfo) override;
SECURITY_STATUS FreeCredentialsHandle(PCredHandle phCredential) override;
@@ -119,10 +144,7 @@ class SSPILibraryDefault : public SSPILibrary {
class NET_EXPORT_PRIVATE HttpAuthSSPI : public HttpNegotiateAuthSystem {
public:
- HttpAuthSSPI(SSPILibrary* sspi_library,
- const std::string& scheme,
- const SEC_WCHAR* security_package,
- ULONG max_token_length);
+ HttpAuthSSPI(SSPILibrary* sspi_library, const std::string& scheme);
~HttpAuthSSPI() override;
// HttpNegotiateAuthSystem implementation:
@@ -155,9 +177,7 @@ class NET_EXPORT_PRIVATE HttpAuthSSPI : public HttpNegotiateAuthSystem {
SSPILibrary* library_;
std::string scheme_;
- const SEC_WCHAR* security_package_;
std::string decoded_server_auth_token_;
- ULONG max_token_length_;
CredHandle cred_;
CtxtHandle ctxt_;
HttpAuth::DelegationType delegation_type_;
@@ -173,25 +193,6 @@ NET_EXPORT_PRIVATE void SplitDomainAndUser(const base::string16& combined,
base::string16* domain,
base::string16* user);
-// Determines the maximum token length in bytes for a particular SSPI package.
-//
-// |library| and |max_token_length| must be non-nullptr pointers to valid
-// objects.
-//
-// If the return value is OK, |*max_token_length| contains the maximum token
-// length in bytes.
-//
-// If the return value is ERR_UNSUPPORTED_AUTH_SCHEME, |package| is not an
-// known SSPI authentication scheme on this system. |*max_token_length| is not
-// changed.
-//
-// If the return value is ERR_UNEXPECTED, there was an unanticipated problem
-// in the underlying SSPI call. The details are logged, and |*max_token_length|
-// is not changed.
-NET_EXPORT_PRIVATE int DetermineMaxTokenLength(SSPILibrary* library,
- const std::wstring& package,
- ULONG* max_token_length);
-
} // namespace net
#endif // NET_HTTP_HTTP_AUTH_SSPI_WIN_H_
diff --git a/chromium/net/http/http_auth_sspi_win_unittest.cc b/chromium/net/http/http_auth_sspi_win_unittest.cc
index 3856bb85bbc..c3b3ec960b4 100644
--- a/chromium/net/http/http_auth_sspi_win_unittest.cc
+++ b/chromium/net/http/http_auth_sspi_win_unittest.cc
@@ -59,20 +59,19 @@ TEST(HttpAuthSSPITest, DetermineMaxTokenLength_Normal) {
memset(&package_info, 0x0, sizeof(package_info));
package_info.cbMaxToken = 1337;
- MockSSPILibrary mock_library;
- mock_library.ExpectQuerySecurityPackageInfo(L"NTLM", SEC_E_OK, &package_info);
+ MockSSPILibrary mock_library{L"NTLM"};
+ mock_library.ExpectQuerySecurityPackageInfo(SEC_E_OK, &package_info);
ULONG max_token_length = kMaxTokenLength;
- int rv = DetermineMaxTokenLength(&mock_library, L"NTLM", &max_token_length);
+ int rv = mock_library.DetermineMaxTokenLength(&max_token_length);
EXPECT_THAT(rv, IsOk());
EXPECT_EQ(1337u, max_token_length);
}
TEST(HttpAuthSSPITest, DetermineMaxTokenLength_InvalidPackage) {
- MockSSPILibrary mock_library;
- mock_library.ExpectQuerySecurityPackageInfo(L"Foo", SEC_E_SECPKG_NOT_FOUND,
- nullptr);
+ MockSSPILibrary mock_library{L"Foo"};
+ mock_library.ExpectQuerySecurityPackageInfo(SEC_E_SECPKG_NOT_FOUND, nullptr);
ULONG max_token_length = kMaxTokenLength;
- int rv = DetermineMaxTokenLength(&mock_library, L"Foo", &max_token_length);
+ int rv = mock_library.DetermineMaxTokenLength(&max_token_length);
EXPECT_THAT(rv, IsError(ERR_UNSUPPORTED_AUTH_SCHEME));
// |DetermineMaxTokenLength()| interface states that |max_token_length| should
// not change on failure.
@@ -81,9 +80,8 @@ TEST(HttpAuthSSPITest, DetermineMaxTokenLength_InvalidPackage) {
TEST(HttpAuthSSPITest, ParseChallenge_FirstRound) {
// The first round should just consist of an unadorned "Negotiate" header.
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
- NEGOSSP_NAME, kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string challenge_text = "Negotiate";
HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
challenge_text.end());
@@ -94,9 +92,8 @@ TEST(HttpAuthSSPITest, ParseChallenge_FirstRound) {
TEST(HttpAuthSSPITest, ParseChallenge_TwoRounds) {
// The first round should just have "Negotiate", and the second round should
// have a valid base64 token associated with it.
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
- NEGOSSP_NAME, kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string first_challenge_text = "Negotiate";
HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
first_challenge_text.end());
@@ -120,9 +117,8 @@ TEST(HttpAuthSSPITest, ParseChallenge_TwoRounds) {
TEST(HttpAuthSSPITest, ParseChallenge_UnexpectedTokenFirstRound) {
// If the first round challenge has an additional authentication token, it
// should be treated as an invalid challenge from the server.
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
- NEGOSSP_NAME, kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string challenge_text = "Negotiate Zm9vYmFy";
HttpAuthChallengeTokenizer challenge(challenge_text.begin(),
challenge_text.end());
@@ -133,9 +129,8 @@ TEST(HttpAuthSSPITest, ParseChallenge_UnexpectedTokenFirstRound) {
TEST(HttpAuthSSPITest, ParseChallenge_MissingTokenSecondRound) {
// If a later-round challenge is simply "Negotiate", it should be treated as
// an authentication challenge rejection from the server or proxy.
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
- NEGOSSP_NAME, kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string first_challenge_text = "Negotiate";
HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
first_challenge_text.end());
@@ -157,9 +152,8 @@ TEST(HttpAuthSSPITest, ParseChallenge_MissingTokenSecondRound) {
TEST(HttpAuthSSPITest, ParseChallenge_NonBase64EncodedToken) {
// If a later-round challenge has an invalid base64 encoded token, it should
// be treated as an invalid challenge.
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate",
- NEGOSSP_NAME, kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string first_challenge_text = "Negotiate";
HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
first_challenge_text.end());
@@ -180,9 +174,8 @@ TEST(HttpAuthSSPITest, ParseChallenge_NonBase64EncodedToken) {
// Runs through a full handshake against the MockSSPILibrary.
TEST(HttpAuthSSPITest, GenerateAuthToken_FullHandshake_AmbientCreds) {
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate", NEGOSSP_NAME,
- kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string first_challenge_text = "Negotiate";
HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
first_challenge_text.end());
@@ -222,9 +215,8 @@ TEST(HttpAuthSSPITest, GenerateAuthToken_FullHandshake_AmbientCreds) {
// Test NetLogs produced while going through a full Negotiate handshake.
TEST(HttpAuthSSPITest, GenerateAuthToken_FullHandshake_AmbientCreds_Logging) {
BoundTestNetLog net_log;
- MockSSPILibrary mock_library;
- HttpAuthSSPI auth_sspi(&mock_library, "Negotiate", NEGOSSP_NAME,
- kMaxTokenLength);
+ MockSSPILibrary mock_library{NEGOSSP_NAME};
+ HttpAuthSSPI auth_sspi(&mock_library, "Negotiate");
std::string first_challenge_text = "Negotiate";
HttpAuthChallengeTokenizer first_challenge(first_challenge_text.begin(),
first_challenge_text.end());
diff --git a/chromium/net/http/http_basic_state.cc b/chromium/net/http/http_basic_state.cc
index a9efbe1a25e..a0c19a51d02 100644
--- a/chromium/net/http/http_basic_state.cc
+++ b/chromium/net/http/http_basic_state.cc
@@ -19,13 +19,10 @@
namespace net {
HttpBasicState::HttpBasicState(std::unique_ptr<ClientSocketHandle> connection,
- bool using_proxy,
- bool http_09_on_non_default_ports_enabled)
+ bool using_proxy)
: read_buf_(base::MakeRefCounted<GrowableIOBuffer>()),
connection_(std::move(connection)),
- using_proxy_(using_proxy),
- http_09_on_non_default_ports_enabled_(
- http_09_on_non_default_ports_enabled) {
+ using_proxy_(using_proxy) {
CHECK(connection_) << "ClientSocketHandle passed to HttpBasicState must "
"not be NULL. See crbug.com/790776";
}
@@ -42,8 +39,6 @@ void HttpBasicState::Initialize(const HttpRequestInfo* request_info,
parser_ = std::make_unique<HttpStreamParser>(
connection_->socket(), connection_->is_reused(), request_info,
read_buf_.get(), net_log);
- parser_->set_http_09_on_non_default_ports_enabled(
- http_09_on_non_default_ports_enabled_);
}
std::unique_ptr<ClientSocketHandle> HttpBasicState::ReleaseConnection() {
diff --git a/chromium/net/http/http_basic_state.h b/chromium/net/http/http_basic_state.h
index d811f9fa0a6..a99c0354aa3 100644
--- a/chromium/net/http/http_basic_state.h
+++ b/chromium/net/http/http_basic_state.h
@@ -29,8 +29,7 @@ class NetLogWithSource;
class NET_EXPORT_PRIVATE HttpBasicState {
public:
HttpBasicState(std::unique_ptr<ClientSocketHandle> connection,
- bool using_proxy,
- bool http_09_on_non_default_ports_enabled);
+ bool using_proxy);
~HttpBasicState();
// Initialize() must be called before using any of the other methods.
@@ -42,10 +41,6 @@ class NET_EXPORT_PRIVATE HttpBasicState {
bool using_proxy() const { return using_proxy_; }
- bool http_09_on_non_default_ports_enabled() const {
- return http_09_on_non_default_ports_enabled_;
- }
-
// Deletes |parser_| and sets it to NULL.
void DeleteParser();
@@ -80,8 +75,6 @@ class NET_EXPORT_PRIVATE HttpBasicState {
const bool using_proxy_;
- const bool http_09_on_non_default_ports_enabled_;
-
GURL url_;
std::string request_method_;
diff --git a/chromium/net/http/http_basic_state_unittest.cc b/chromium/net/http/http_basic_state_unittest.cc
index a811646762f..662aef260a7 100644
--- a/chromium/net/http/http_basic_state_unittest.cc
+++ b/chromium/net/http/http_basic_state_unittest.cc
@@ -18,25 +18,21 @@ namespace {
TEST(HttpBasicStateTest, ConstructsProperly) {
ClientSocketHandle* const handle = new ClientSocketHandle;
// Ownership of |handle| is passed to |state|.
- const HttpBasicState state(base::WrapUnique(handle), true /* using_proxy */,
- false /* http_09_on_non_default_ports_enabled */);
+ const HttpBasicState state(base::WrapUnique(handle), true /* using_proxy */);
EXPECT_EQ(handle, state.connection());
EXPECT_TRUE(state.using_proxy());
- EXPECT_FALSE(state.http_09_on_non_default_ports_enabled());
}
TEST(HttpBasicStateTest, ConstructsProperlyWithDifferentOptions) {
const HttpBasicState state(std::make_unique<ClientSocketHandle>(),
- false /* using_proxy */,
- true /* http_09_on_non_default_ports_enabled */);
+ false /* using_proxy */);
EXPECT_FALSE(state.using_proxy());
- EXPECT_TRUE(state.http_09_on_non_default_ports_enabled());
}
TEST(HttpBasicStateTest, ReleaseConnectionWorks) {
ClientSocketHandle* const handle = new ClientSocketHandle;
// Ownership of |handle| is passed to |state|.
- HttpBasicState state(base::WrapUnique(handle), false, false);
+ HttpBasicState state(base::WrapUnique(handle), false);
const std::unique_ptr<ClientSocketHandle> released_connection(
state.ReleaseConnection());
EXPECT_EQ(NULL, state.connection());
@@ -44,14 +40,14 @@ TEST(HttpBasicStateTest, ReleaseConnectionWorks) {
}
TEST(HttpBasicStateTest, InitializeWorks) {
- HttpBasicState state(std::make_unique<ClientSocketHandle>(), false, false);
+ HttpBasicState state(std::make_unique<ClientSocketHandle>(), false);
const HttpRequestInfo request_info;
state.Initialize(&request_info, LOW, NetLogWithSource());
EXPECT_TRUE(state.parser());
}
TEST(HttpBasicStateTest, TrafficAnnotationStored) {
- HttpBasicState state(std::make_unique<ClientSocketHandle>(), false, false);
+ HttpBasicState state(std::make_unique<ClientSocketHandle>(), false);
HttpRequestInfo request_info;
request_info.traffic_annotation =
MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
@@ -61,7 +57,7 @@ TEST(HttpBasicStateTest, TrafficAnnotationStored) {
}
TEST(HttpBasicStateTest, DeleteParser) {
- HttpBasicState state(std::make_unique<ClientSocketHandle>(), false, false);
+ HttpBasicState state(std::make_unique<ClientSocketHandle>(), false);
const HttpRequestInfo request_info;
state.Initialize(&request_info, LOW, NetLogWithSource());
EXPECT_TRUE(state.parser());
@@ -71,8 +67,7 @@ TEST(HttpBasicStateTest, DeleteParser) {
TEST(HttpBasicStateTest, GenerateRequestLineNoProxy) {
const bool use_proxy = false;
- HttpBasicState state(std::make_unique<ClientSocketHandle>(), use_proxy,
- false);
+ HttpBasicState state(std::make_unique<ClientSocketHandle>(), use_proxy);
HttpRequestInfo request_info;
request_info.url = GURL("http://www.example.com/path?foo=bar#hoge");
request_info.method = "PUT";
@@ -82,8 +77,7 @@ TEST(HttpBasicStateTest, GenerateRequestLineNoProxy) {
TEST(HttpBasicStateTest, GenerateRequestLineWithProxy) {
const bool use_proxy = true;
- HttpBasicState state(std::make_unique<ClientSocketHandle>(), use_proxy,
- false);
+ HttpBasicState state(std::make_unique<ClientSocketHandle>(), use_proxy);
HttpRequestInfo request_info;
request_info.url = GURL("http://www.example.com/path?foo=bar#hoge");
request_info.method = "PUT";
diff --git a/chromium/net/http/http_basic_stream.cc b/chromium/net/http/http_basic_stream.cc
index e516919802a..d7cb43ea4f2 100644
--- a/chromium/net/http/http_basic_stream.cc
+++ b/chromium/net/http/http_basic_stream.cc
@@ -17,11 +17,8 @@
namespace net {
HttpBasicStream::HttpBasicStream(std::unique_ptr<ClientSocketHandle> connection,
- bool using_proxy,
- bool http_09_on_non_default_ports_enabled)
- : state_(std::move(connection),
- using_proxy,
- http_09_on_non_default_ports_enabled) {}
+ bool using_proxy)
+ : state_(std::move(connection), using_proxy) {}
HttpBasicStream::~HttpBasicStream() = default;
@@ -89,8 +86,7 @@ HttpStream* HttpBasicStream::RenewStreamForAuth() {
// be extra-sure it doesn't touch the connection again, delete it here rather
// than leaving it until the destructor is called.
state_.DeleteParser();
- return new HttpBasicStream(state_.ReleaseConnection(), state_.using_proxy(),
- state_.http_09_on_non_default_ports_enabled());
+ return new HttpBasicStream(state_.ReleaseConnection(), state_.using_proxy());
}
bool HttpBasicStream::IsResponseBodyComplete() const {
diff --git a/chromium/net/http/http_basic_stream.h b/chromium/net/http/http_basic_stream.h
index accecba89ce..744b2f7a5b9 100644
--- a/chromium/net/http/http_basic_stream.h
+++ b/chromium/net/http/http_basic_stream.h
@@ -35,8 +35,7 @@ class NET_EXPORT_PRIVATE HttpBasicStream : public HttpStream {
// Constructs a new HttpBasicStream. InitializeStream must be called to
// initialize it correctly.
HttpBasicStream(std::unique_ptr<ClientSocketHandle> connection,
- bool using_proxy,
- bool http_09_on_non_default_ports_enabled);
+ bool using_proxy);
~HttpBasicStream() override;
// HttpStream methods:
diff --git a/chromium/net/http/http_cache.cc b/chromium/net/http/http_cache.cc
index b46df639e30..e5fb2f88a1e 100644
--- a/chromium/net/http/http_cache.cc
+++ b/chromium/net/http/http_cache.cc
@@ -530,6 +530,7 @@ std::string HttpCache::GenerateCacheKey(const HttpRequestInfo* request) {
// double-keyed (and makes it an invalid url so that it doesn't get
// confused with a single-keyed entry). Separate the origin and url
// with invalid whitespace character |kDoubleKeySeparator|.
+ DCHECK(request->network_isolation_key.IsFullyPopulated());
isolation_key = base::StrCat({kDoubleKeyPrefix,
request->network_isolation_key.ToString(),
kDoubleKeySeparator});
diff --git a/chromium/net/http/http_cache.h b/chromium/net/http/http_cache.h
index f85bd499d4c..c08c41050d3 100644
--- a/chromium/net/http/http_cache.h
+++ b/chromium/net/http/http_cache.h
@@ -312,6 +312,10 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory {
friend class MockHttpCache;
friend class HttpCacheIOCallbackTest;
+ FRIEND_TEST_ALL_PREFIXES(HttpCacheTest, SplitCacheWithFrameOrigin);
+ FRIEND_TEST_ALL_PREFIXES(HttpCacheTest, NonSplitCache);
+ FRIEND_TEST_ALL_PREFIXES(HttpCacheTest, SplitCache);
+
using TransactionList = std::list<Transaction*>;
using TransactionSet = std::unordered_set<Transaction*>;
typedef std::list<std::unique_ptr<WorkItem>> WorkItemList;
diff --git a/chromium/net/http/http_cache_lookup_manager.cc b/chromium/net/http/http_cache_lookup_manager.cc
index 1d59385cbc5..d2d43f89470 100644
--- a/chromium/net/http/http_cache_lookup_manager.cc
+++ b/chromium/net/http/http_cache_lookup_manager.cc
@@ -80,8 +80,9 @@ void HttpCacheLookupManager::OnPush(
// LookupTransaction.
int rv = lookup->StartLookup(
- http_cache_, base::Bind(&HttpCacheLookupManager::OnLookupComplete,
- weak_factory_.GetWeakPtr(), pushed_url),
+ http_cache_,
+ base::BindOnce(&HttpCacheLookupManager::OnLookupComplete,
+ weak_factory_.GetWeakPtr(), pushed_url),
session_net_log);
if (rv == ERR_IO_PENDING) {
diff --git a/chromium/net/http/http_cache_lookup_manager_unittest.cc b/chromium/net/http/http_cache_lookup_manager_unittest.cc
index 35f1dbbcb65..a7a3bd44dad 100644
--- a/chromium/net/http/http_cache_lookup_manager_unittest.cc
+++ b/chromium/net/http/http_cache_lookup_manager_unittest.cc
@@ -5,8 +5,10 @@
#include <memory>
#include <string>
+#include "base/feature_list.h"
#include "base/run_loop.h"
#include "base/test/task_environment.h"
+#include "net/base/features.h"
#include "net/base/net_errors.h"
#include "net/base/test_completion_callback.h"
#include "net/http/http_cache_lookup_manager.h"
@@ -135,6 +137,13 @@ TEST(HttpCacheLookupManagerTest, ServerPushDoNotCreateCacheEntry) {
}
TEST(HttpCacheLookupManagerTest, ServerPushHitCache) {
+ // Skip test if split cache is enabled, as it breaks push.
+ // crbug.com/1009619
+ if (base::FeatureList::IsEnabled(
+ net::features::kSplitCacheByNetworkIsolationKey)) {
+ return;
+ }
+
base::test::TaskEnvironment task_environment;
MockHttpCache mock_cache;
HttpCacheLookupManager push_delegate(mock_cache.http_cache());
@@ -173,6 +182,13 @@ TEST(HttpCacheLookupManagerTest, ServerPushHitCache) {
// pending lookup transaction for the same URL, the new server push will not
// send a new lookup transaction and should not be canceled.
TEST(HttpCacheLookupManagerTest, ServerPushPendingLookup) {
+ // Skip test if split cache is enabled, as it breaks push.
+ // crbug.com/1009619
+ if (base::FeatureList::IsEnabled(
+ net::features::kSplitCacheByNetworkIsolationKey)) {
+ return;
+ }
+
base::test::TaskEnvironment task_environment;
MockHttpCache mock_cache;
HttpCacheLookupManager push_delegate(mock_cache.http_cache());
@@ -218,6 +234,13 @@ TEST(HttpCacheLookupManagerTest, ServerPushPendingLookup) {
// Test the server push lookup is based on the full url.
TEST(HttpCacheLookupManagerTest, ServerPushLookupOnUrl) {
+ // Skip test if split cache is enabled, as it breaks push.
+ // crbug.com/1009619
+ if (base::FeatureList::IsEnabled(
+ net::features::kSplitCacheByNetworkIsolationKey)) {
+ return;
+ }
+
base::test::TaskEnvironment task_environment;
MockHttpCache mock_cache;
HttpCacheLookupManager push_delegate(mock_cache.http_cache());
diff --git a/chromium/net/http/http_cache_transaction.cc b/chromium/net/http/http_cache_transaction.cc
index b1249dfda91..b7a72ba1c10 100644
--- a/chromium/net/http/http_cache_transaction.cc
+++ b/chromium/net/http/http_cache_transaction.cc
@@ -47,6 +47,7 @@
#include "net/http/http_network_session.h"
#include "net/http/http_request_info.h"
#include "net/http/http_util.h"
+#include "net/http/webfonts_histogram.h"
#include "net/log/net_log_event_type.h"
#include "net/ssl/ssl_cert_request_info.h"
#include "net/ssl/ssl_config_service.h"
@@ -1006,10 +1007,6 @@ int HttpCache::Transaction::DoGetBackendComplete(int result) {
// function can be invoked multiple times for a transaction.
mode_ = NONE;
- // Keep track of the fraction of requests that we can double-key.
- UMA_HISTOGRAM_BOOLEAN("HttpCache.NetworkIsolationKeyPresent",
- request_->network_isolation_key.IsFullyPopulated());
-
if (!ShouldPassThrough()) {
cache_key_ = cache_->GenerateCacheKey(request_);
@@ -1433,8 +1430,15 @@ int HttpCache::Transaction::DoDoneHeadersAddToEntryComplete(int result) {
DCHECK(response_.headers);
cache_pending_ = false;
- entry_ = new_entry_;
done_headers_create_new_entry_ = false;
+
+ // Speculative fix for rare crash. crbug.com/959194
+ if (result == ERR_CACHE_RACE) {
+ TransitionToState(STATE_HEADERS_PHASE_CANNOT_PROCEED);
+ return OK;
+ }
+
+ entry_ = new_entry_;
DCHECK_NE(response_.headers->response_code(), 304);
DCHECK(cache_->CanTransactionWriteResponseHeaders(
entry_, this, partial_ != nullptr, false));
@@ -1813,9 +1817,14 @@ int HttpCache::Transaction::DoSuccessfulSendRequest() {
DoneWithEntry(true);
}
- // Invalidate any cached GET with a successful POST.
+ // Invalidate any cached GET with a successful POST. If the network isolation
+ // key isn't populated with the split cache active, there will be nothing to
+ // invalidate in the cache.
if (!(effective_load_flags_ & LOAD_DISABLE_CACHE) && method_ == "POST" &&
- NonErrorResponse(new_response_->headers->response_code())) {
+ NonErrorResponse(new_response_->headers->response_code()) &&
+ (!base::FeatureList::IsEnabled(
+ net::features::kSplitCacheByNetworkIsolationKey) ||
+ request_->network_isolation_key.IsFullyPopulated())) {
cache_->DoomMainEntryForUrl(request_->url, request_->network_isolation_key);
}
@@ -2081,6 +2090,7 @@ int HttpCache::Transaction::DoHeadersPhaseCannotProceed(int result) {
SetRequest(net_log_);
entry_ = nullptr;
+ new_entry_ = nullptr;
// Bypass the cache for timeout scenario.
if (result == ERR_CACHE_LOCK_TIMEOUT)
@@ -2407,41 +2417,45 @@ void HttpCache::Transaction::SetRequest(const NetLogWithSource& net_log) {
}
bool HttpCache::Transaction::ShouldPassThrough() {
+ bool cacheable = true;
+
// We may have a null disk_cache if there is an error we cannot recover from,
// like not enough disk space, or sharing violations.
- if (!cache_->disk_cache_.get())
- return true;
-
- if (effective_load_flags_ & LOAD_DISABLE_CACHE)
- return true;
-
+ if (!cache_->disk_cache_.get()) {
+ cacheable = false;
+ } else if (effective_load_flags_ & LOAD_DISABLE_CACHE) {
+ cacheable = false;
+ }
// Prevent resources whose origin is opaque from being cached. Blink's memory
// cache should take care of reusing resources within the current page load,
// but otherwise a resource with an opaque top-frame origin won’t be used
// again. Also, if the request does not have a top frame origin, bypass the
// cache otherwise resources from different pages could share a cached entry
// in such cases.
- if (base::FeatureList::IsEnabled(
- features::kSplitCacheByNetworkIsolationKey) &&
- request_->network_isolation_key.IsTransient()) {
- return true;
- }
-
- if (method_ == "GET" || method_ == "HEAD")
- return false;
-
- if (method_ == "POST" && request_->upload_data_stream &&
- request_->upload_data_stream->identifier()) {
- return false;
+ else if (base::FeatureList::IsEnabled(
+ features::kSplitCacheByNetworkIsolationKey) &&
+ request_->network_isolation_key.IsTransient()) {
+ cacheable = false;
+ } else if (method_ == "GET" || method_ == "HEAD") {
+ } else if (method_ == "POST" && request_->upload_data_stream &&
+ request_->upload_data_stream->identifier()) {
+ } else if (method_ == "PUT" && request_->upload_data_stream) {
+ } else if (method_ == "DELETE") {
+ } else {
+ cacheable = false;
}
- if (method_ == "PUT" && request_->upload_data_stream)
- return false;
+ NetworkIsolationKeyPresent nik_present_enum =
+ request_->network_isolation_key.IsFullyPopulated()
+ ? NetworkIsolationKeyPresent::kPresent
+ : cacheable
+ ? NetworkIsolationKeyPresent::kNotPresentCacheableRequest
+ : NetworkIsolationKeyPresent::kNotPresentNonCacheableRequest;
- if (method_ == "DELETE")
- return false;
+ UMA_HISTOGRAM_ENUMERATION("HttpCache.NetworkIsolationKeyPresent2",
+ nik_present_enum);
- return true;
+ return !cacheable;
}
int HttpCache::Transaction::BeginCacheRead() {
@@ -3369,6 +3383,10 @@ void HttpCache::Transaction::RecordHistograms() {
DCHECK(!recorded_histograms_);
recorded_histograms_ = true;
+ web_fonts_histogram::MaybeRecordCacheStatus(
+ cache_entry_status_,
+ HttpCache::GetResourceURLFromHttpCacheKey(cache_key_));
+
UMA_HISTOGRAM_ENUMERATION("HttpCache.ParallelWritingPattern",
parallel_writing_pattern_, PARALLEL_WRITING_MAX);
diff --git a/chromium/net/http/http_cache_transaction.h b/chromium/net/http/http_cache_transaction.h
index f5f1b159035..27baa2394f1 100644
--- a/chromium/net/http/http_cache_transaction.h
+++ b/chromium/net/http/http_cache_transaction.h
@@ -75,6 +75,16 @@ class NET_EXPORT_PRIVATE HttpCache::Transaction : public HttpTransaction {
UPDATE = READ_META | WRITE, // READ_WRITE & ~READ_DATA
};
+ // This enum backs a histogram. Please keep enums.xml up to date with any
+ // changes, and new entries should be appended at the end. Never re-arrange /
+ // re-use values.
+ enum class NetworkIsolationKeyPresent {
+ kNotPresentCacheableRequest = 0,
+ kNotPresentNonCacheableRequest = 1,
+ kPresent = 2,
+ kMaxValue = kPresent,
+ };
+
Transaction(RequestPriority priority,
HttpCache* cache);
~Transaction() override;
diff --git a/chromium/net/http/http_cache_unittest.cc b/chromium/net/http/http_cache_unittest.cc
index 35a0b28a5fe..3838a85a5b2 100644
--- a/chromium/net/http/http_cache_unittest.cc
+++ b/chromium/net/http/http_cache_unittest.cc
@@ -13,6 +13,7 @@
#include "base/bind.h"
#include "base/bind_helpers.h"
+#include "base/files/scoped_temp_dir.h"
#include "base/format_macros.h"
#include "base/macros.h"
#include "base/memory/ptr_util.h"
@@ -390,11 +391,13 @@ class RangeTransactionServer {
not_modified_ = false;
modified_ = false;
bad_200_ = false;
+ length_ = 80;
}
~RangeTransactionServer() {
not_modified_ = false;
modified_ = false;
bad_200_ = false;
+ length_ = 80;
}
// Returns only 416 or 304 when set.
@@ -406,6 +409,9 @@ class RangeTransactionServer {
// Returns 200 instead of 206 (a malformed response overall).
void set_bad_200(bool value) { bad_200_ = value; }
+ // Sets how long the resource is. (Default is 80)
+ void set_length(int64_t length) { length_ = length; }
+
// Other than regular range related behavior (and the flags mentioned above),
// the server reacts to requests headers like so:
// X-Require-Mock-Auth -> return 401.
@@ -422,11 +428,13 @@ class RangeTransactionServer {
static bool not_modified_;
static bool modified_;
static bool bad_200_;
+ static int64_t length_;
DISALLOW_COPY_AND_ASSIGN(RangeTransactionServer);
};
bool RangeTransactionServer::not_modified_ = false;
bool RangeTransactionServer::modified_ = false;
bool RangeTransactionServer::bad_200_ = false;
+int64_t RangeTransactionServer::length_ = 80;
// A dummy extra header that must be preserved on a given request.
@@ -492,20 +500,21 @@ void RangeTransactionServer::RangeHandler(const HttpRequestInfo* request,
byte_range.set_last_byte_position(49);
}
- if (byte_range.first_byte_position() > 79) {
+ if (byte_range.first_byte_position() >= length_) {
response_status->assign("HTTP/1.1 416 Requested Range Not Satisfiable");
response_data->clear();
return;
}
- EXPECT_TRUE(byte_range.ComputeBounds(80));
- int start = static_cast<int>(byte_range.first_byte_position());
- int end = static_cast<int>(byte_range.last_byte_position());
+ EXPECT_TRUE(byte_range.ComputeBounds(length_));
+ int64_t start = byte_range.first_byte_position();
+ int64_t end = byte_range.last_byte_position();
- EXPECT_LT(end, 80);
+ EXPECT_LT(end, length_);
- std::string content_range = base::StringPrintf(
- "Content-Range: bytes %d-%d/80\n", start, end);
+ std::string content_range = base::StringPrintf("Content-Range: bytes %" PRId64
+ "-%" PRId64 "/%" PRId64 "\n",
+ start, end, length_);
response_headers->append(content_range);
if (!request->extra_headers.HasHeader("If-None-Match") || modified_) {
@@ -515,18 +524,18 @@ void RangeTransactionServer::RangeHandler(const HttpRequestInfo* request,
data = "r";
} else {
EXPECT_EQ(9, (end - start) % 10);
- for (int block_start = start; block_start < end; block_start += 10) {
- base::StringAppendF(&data, "rg: %02d-%02d ",
- block_start, block_start + 9);
+ for (int64_t block_start = start; block_start < end; block_start += 10) {
+ base::StringAppendF(&data, "rg: %02" PRId64 "-%02" PRId64 " ",
+ block_start % 100, (block_start + 9) % 100);
}
}
*response_data = data;
if (end - start != 9) {
// We also have to fix content-length.
- int len = end - start + 1;
- std::string content_length = base::StringPrintf("Content-Length: %d\n",
- len);
+ int64_t len = end - start + 1;
+ std::string content_length =
+ base::StringPrintf("Content-Length: %" PRId64 "\n", len);
response_headers->replace(response_headers->find("Content-Length:"),
content_length.size(), content_length);
}
@@ -786,6 +795,54 @@ TEST_F(HttpCacheTest, SimpleGET) {
TestLoadTimingNetworkRequest(load_timing_info);
}
+class HttpCacheTest_SplitCacheFeature
+ : public HttpCacheTest,
+ public ::testing::WithParamInterface<bool> {
+ public:
+ void SetUp() override {
+ feature_list_.InitWithFeatureState(
+ net::features::kSplitCacheByNetworkIsolationKey, GetParam());
+ HttpCacheTest::SetUp();
+ }
+
+ private:
+ base::test::ScopedFeatureList feature_list_;
+};
+
+TEST_P(HttpCacheTest_SplitCacheFeature, SimpleGETVerifyGoogleFontMetrics) {
+ base::HistogramTester histograms;
+ const std::string histogram_name = "WebFont.HttpCacheStatus_roboto";
+
+ url::Origin origin_a = url::Origin::Create(GURL("http://www.a.com"));
+
+ MockHttpCache cache;
+
+ MockTransaction transaction(kSimpleGET_Transaction);
+ transaction.url = "http://themes.googleusercontent.com/static/fonts/roboto";
+ AddMockTransaction(&transaction);
+ MockHttpRequest request(transaction);
+ request.network_isolation_key = NetworkIsolationKey(origin_a, origin_a);
+
+ // Attempt to populate the cache.
+ RunTransactionTestWithRequest(cache.http_cache(), transaction, request,
+ nullptr);
+
+ histograms.ExpectUniqueSample(
+ histogram_name, static_cast<int>(CacheEntryStatus::ENTRY_NOT_IN_CACHE),
+ 1);
+
+ RunTransactionTestWithRequest(cache.http_cache(), transaction, request,
+ nullptr);
+
+ histograms.ExpectBucketCount(
+ histogram_name, static_cast<int>(CacheEntryStatus::ENTRY_USED), 1);
+}
+
+INSTANTIATE_TEST_SUITE_P(
+ /* no prefix */,
+ HttpCacheTest_SplitCacheFeature,
+ testing::Bool());
+
TEST_F(HttpCacheTest, SimpleGETNoDiskCache) {
MockHttpCache cache;
@@ -2831,6 +2888,71 @@ TEST_F(HttpCacheTest, SimpleGET_ParallelValidationNoMatch) {
EXPECT_EQ(5, cache.disk_cache()->create_count());
}
+TEST_F(HttpCacheTest, RangeGET_Enormous) {
+ // Test for how blockfile's limit on range namespace interacts with
+ // HttpCache::Transaction.
+ // See https://crbug.com/770694
+ base::ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+
+ auto backend_factory = std::make_unique<HttpCache::DefaultBackend>(
+ DISK_CACHE, CACHE_BACKEND_BLOCKFILE, temp_dir.GetPath(), 1024 * 1024);
+ MockHttpCache cache(std::move(backend_factory));
+
+ RangeTransactionServer handler;
+ handler.set_length(2305843009213693962);
+
+ // Prime with a range it can store.
+ {
+ ScopedMockTransaction transaction(kRangeGET_TransactionOK);
+ transaction.request_headers = "Range: bytes = 0-9\r\n" EXTRA_HEADER;
+ transaction.data = "rg: 00-09 ";
+ MockHttpRequest request(transaction);
+
+ HttpResponseInfo response;
+ RunTransactionTestWithRequest(cache.http_cache(), transaction, request,
+ &response);
+ ASSERT_TRUE(response.headers != nullptr);
+ EXPECT_EQ(206, response.headers->response_code());
+ EXPECT_EQ(1, cache.network_layer()->transaction_count());
+ }
+
+ // Try with a range it can't. Should still work.
+ {
+ ScopedMockTransaction transaction(kRangeGET_TransactionOK);
+ transaction.request_headers =
+ "Range: bytes = "
+ "2305843009213693952-2305843009213693961\r\n" EXTRA_HEADER;
+ transaction.data = "rg: 52-61 ";
+ MockHttpRequest request(transaction);
+
+ HttpResponseInfo response;
+ RunTransactionTestWithRequest(cache.http_cache(), transaction, request,
+ &response);
+ ASSERT_TRUE(response.headers != nullptr);
+ EXPECT_EQ(206, response.headers->response_code());
+ EXPECT_EQ(2, cache.network_layer()->transaction_count());
+ }
+
+ // Can't actually cache it due to backend limitations. If the network
+ // transaction count is 2, this test isn't covering what it needs to.
+ {
+ ScopedMockTransaction transaction(kRangeGET_TransactionOK);
+ transaction.request_headers =
+ "Range: bytes = "
+ "2305843009213693952-2305843009213693961\r\n" EXTRA_HEADER;
+ transaction.data = "rg: 52-61 ";
+ MockHttpRequest request(transaction);
+
+ HttpResponseInfo response;
+ RunTransactionTestWithRequest(cache.http_cache(), transaction, request,
+ &response);
+ ASSERT_TRUE(response.headers != nullptr);
+ EXPECT_EQ(206, response.headers->response_code());
+ EXPECT_EQ(3, cache.network_layer()->transaction_count());
+ }
+}
+
// Parallel validation results in 200 for 1 transaction and validation matches
// for subsequent transactions.
TEST_F(HttpCacheTest, SimpleGET_ParallelValidationNoMatch1) {
@@ -9815,8 +9937,10 @@ TEST_F(HttpCacheTest, SplitCacheWithFrameOrigin) {
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
trans_info, &response);
EXPECT_FALSE(response.was_cached);
- histograms.ExpectBucketCount("HttpCache.NetworkIsolationKeyPresent", true, 1);
- histograms.ExpectTotalCount("HttpCache.NetworkIsolationKeyPresent", 1);
+ histograms.ExpectBucketCount(
+ "HttpCache.NetworkIsolationKeyPresent2",
+ HttpCache::Transaction::NetworkIsolationKeyPresent::kPresent, 1);
+ histograms.ExpectTotalCount("HttpCache.NetworkIsolationKeyPresent2", 1);
// The second request should be cached.
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
@@ -9995,8 +10119,11 @@ TEST_F(HttpCacheTest, SplitCache) {
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
trans_info, &response);
EXPECT_FALSE(response.was_cached);
- histograms.ExpectUniqueSample("HttpCache.NetworkIsolationKeyPresent", false,
- 1);
+ histograms.ExpectUniqueSample(
+ "HttpCache.NetworkIsolationKeyPresent2",
+ HttpCache::Transaction::NetworkIsolationKeyPresent::
+ kNotPresentNonCacheableRequest,
+ 1);
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
trans_info, &response);
@@ -10008,8 +10135,10 @@ TEST_F(HttpCacheTest, SplitCache) {
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
trans_info, &response);
EXPECT_FALSE(response.was_cached);
- histograms.ExpectBucketCount("HttpCache.NetworkIsolationKeyPresent", true, 1);
- histograms.ExpectTotalCount("HttpCache.NetworkIsolationKeyPresent", 3);
+ histograms.ExpectBucketCount(
+ "HttpCache.NetworkIsolationKeyPresent2",
+ HttpCache::Transaction::NetworkIsolationKeyPresent::kPresent, 1);
+ histograms.ExpectTotalCount("HttpCache.NetworkIsolationKeyPresent2", 3);
// The second request should be cached.
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
@@ -10092,8 +10221,10 @@ TEST_F(HttpCacheTest, NonSplitCache) {
RunTransactionTestWithRequest(cache.http_cache(), kSimpleGET_Transaction,
trans_info, &response);
EXPECT_TRUE(response.was_cached);
- histograms.ExpectBucketCount("HttpCache.NetworkIsolationKeyPresent", true, 1);
- histograms.ExpectTotalCount("HttpCache.NetworkIsolationKeyPresent", 3);
+ histograms.ExpectBucketCount(
+ "HttpCache.NetworkIsolationKeyPresent2",
+ HttpCache::Transaction::NetworkIsolationKeyPresent::kPresent, 1);
+ histograms.ExpectTotalCount("HttpCache.NetworkIsolationKeyPresent2", 3);
}
TEST_F(HttpCacheTest, SkipVaryCheck) {
diff --git a/chromium/net/http/http_cache_writers_unittest.cc b/chromium/net/http/http_cache_writers_unittest.cc
index ffe9ff845b7..af3a7e59c91 100644
--- a/chromium/net/http/http_cache_writers_unittest.cc
+++ b/chromium/net/http/http_cache_writers_unittest.cc
@@ -369,7 +369,7 @@ class WritersTest : public TestWithTaskEnvironment {
// Start reading a few more bytes and return.
buf = base::MakeRefCounted<IOBuffer>(5);
- rv = writers_->Read(buf.get(), 5, base::BindRepeating([](int rv) {}),
+ rv = writers_->Read(buf.get(), 5, base::BindOnce([](int rv) {}),
transaction);
EXPECT_EQ(ERR_IO_PENDING, rv);
}
diff --git a/chromium/net/http/http_chunked_decoder_fuzzer.dict b/chromium/net/http/http_chunked_decoder_fuzzer.dict
deleted file mode 100644
index f8552c9cff6..00000000000
--- a/chromium/net/http/http_chunked_decoder_fuzzer.dict
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2016 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"0"
-"1"
-"2"
-"3"
-"4"
-"5"
-"6"
-"7"
-"8"
-"9"
-"\x0a"
-"\x0d"
-"0x"
-"a"
-"b"
-"c"
-"d"
-"e"
-"f"
-"A"
-"B"
-"C"
-"D"
-"E"
-"F"
-"+"
-"-"
-"="
-":"
-";"
diff --git a/chromium/net/http/http_content_disposition_fuzzer.cc b/chromium/net/http/http_content_disposition_fuzzer.cc
new file mode 100644
index 00000000000..d6769e3bcb7
--- /dev/null
+++ b/chromium/net/http/http_content_disposition_fuzzer.cc
@@ -0,0 +1,18 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <cstddef>
+#include <cstdint>
+
+#include <fuzzer/FuzzedDataProvider.h>
+
+#include "net/http/http_content_disposition.h"
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ FuzzedDataProvider input{data, size};
+ auto charset = input.ConsumeRandomLengthString(100u);
+ auto header = input.ConsumeRemainingBytesAsString();
+ net::HttpContentDisposition content_disposition{header, charset};
+ return 0;
+}
diff --git a/chromium/net/http/http_content_disposition_unittest.cc b/chromium/net/http/http_content_disposition_unittest.cc
index 36e39940e61..fd31df37744 100644
--- a/chromium/net/http/http_content_disposition_unittest.cc
+++ b/chromium/net/http/http_content_disposition_unittest.cc
@@ -499,4 +499,15 @@ TEST(HttpContentDispositionTest, ParseResult) {
}
}
+TEST(HttpContentDispositionTest, ContainsNul) {
+ const char kHeader[] = "filename=ab\0c";
+ const char kExpectedFilename[] = "ab\0c";
+ // Note: both header and expected_filename include the trailing NUL.
+ std::string header{kHeader, sizeof(kHeader)};
+ std::string expected_filename{kExpectedFilename, sizeof(kExpectedFilename)};
+
+ HttpContentDisposition content_disposition(header, "utf-8");
+ EXPECT_EQ(expected_filename, content_disposition.filename());
+}
+
} // namespace net
diff --git a/chromium/net/http/http_network_session.cc b/chromium/net/http/http_network_session.cc
index 35549024a49..6fca8117d5a 100644
--- a/chromium/net/http/http_network_session.cc
+++ b/chromium/net/http/http_network_session.cc
@@ -87,8 +87,9 @@ HttpNetworkSession::Params::Params()
enable_websocket_over_http2(false),
enable_quic(false),
enable_quic_proxies_for_https_urls(false),
- http_09_on_non_default_ports_enabled(false),
- disable_idle_sockets_close_on_memory_pressure(false) {
+ disable_idle_sockets_close_on_memory_pressure(false),
+ allow_default_credentials(HttpAuthPreferences::DefaultCredentials::
+ DISALLOW_DEFAULT_CREDENTIALS) {
enable_early_data =
base::FeatureList::IsEnabled(features::kEnableTLS13EarlyData);
}
@@ -175,7 +176,6 @@ HttpNetworkSession::HttpNetworkSession(const Params& params,
params.enable_spdy_ping_based_connection_checking,
params.enable_http2,
params.enable_quic,
- params.quic_params.support_ietf_format_quic_altsvc,
params.spdy_session_max_recv_window_size,
params.spdy_session_max_queued_capped_frames,
AddDefaultHttp2Settings(params.http2_settings),
@@ -279,9 +279,6 @@ std::unique_ptr<base::Value> HttpNetworkSession::QuicInfoToValue() const {
params_.quic_params.idle_connection_timeout.InSeconds());
dict->SetInteger("reduced_ping_timeout_seconds",
params_.quic_params.reduced_ping_timeout.InSeconds());
- dict->SetBoolean(
- "mark_quic_broken_when_network_blackholes",
- params_.quic_params.mark_quic_broken_when_network_blackholes);
dict->SetBoolean("retry_without_alt_svc_on_quic_errors",
params_.quic_params.retry_without_alt_svc_on_quic_errors);
dict->SetBoolean("race_cert_verification",
diff --git a/chromium/net/http/http_network_session.h b/chromium/net/http/http_network_session.h
index d6ad5607abe..f6a0a95b013 100644
--- a/chromium/net/http/http_network_session.h
+++ b/chromium/net/http/http_network_session.h
@@ -144,10 +144,6 @@ class NET_EXPORT HttpNetworkSession {
// If non-empty, QUIC will only be spoken to hosts in this list.
base::flat_set<std::string> quic_host_allowlist;
- // Enable HTTP/0.9 for HTTP/HTTPS on ports other than the default one for
- // each protocol.
- bool http_09_on_non_default_ports_enabled;
-
// If true, idle sockets won't be closed when memory pressure happens.
bool disable_idle_sockets_close_on_memory_pressure;
diff --git a/chromium/net/http/http_network_transaction.cc b/chromium/net/http/http_network_transaction.cc
index 149fdf61c68..66c41641e4c 100644
--- a/chromium/net/http/http_network_transaction.cc
+++ b/chromium/net/http/http_network_transaction.cc
@@ -172,6 +172,7 @@ int HttpNetworkTransaction::Start(const HttpRequestInfo* request_info,
net_log_ = net_log;
request_ = request_info;
url_ = request_->url;
+ network_isolation_key_ = request_->network_isolation_key;
#if BUILDFLAG(ENABLE_REPORTING)
// Store values for later use in NEL report generation.
request_method_ = request_->method;
@@ -325,8 +326,7 @@ void HttpNetworkTransaction::PrepareForAuthRestart(HttpAuth::Target target) {
if (target == HttpAuth::AUTH_SERVER &&
auth_controllers_[target]->NeedsHTTP11()) {
session_->http_server_properties()->SetHTTP11Required(
- HttpServerProperties::GetNormalizedSchemeHostPort(request_->url),
- request_->network_isolation_key);
+ url::SchemeHostPort(request_->url), network_isolation_key_);
}
bool keep_alive = false;
@@ -1163,7 +1163,7 @@ int HttpNetworkTransaction::DoReadHeadersComplete(int result) {
if (response_.ssl_info.is_valid() &&
!IsCertStatusError(response_.ssl_info.cert_status)) {
session_->http_stream_factory()->ProcessAlternativeServices(
- session_, request_->network_isolation_key, response_.headers.get(),
+ session_, network_isolation_key_, response_.headers.get(),
url::SchemeHostPort(request_->url));
}
}
@@ -1256,7 +1256,7 @@ int HttpNetworkTransaction::DoReadBodyComplete(int result) {
HistogramBrokenAlternateProtocolLocation(
BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_NETWORK_TRANSACTION);
session_->http_server_properties()->MarkAlternativeServiceBroken(
- retried_alternative_service_);
+ retried_alternative_service_, network_isolation_key_);
}
#if BUILDFLAG(ENABLE_REPORTING)
@@ -1577,7 +1577,7 @@ int HttpNetworkTransaction::HandleIOError(int error) {
if (HasExceededMaxRetries())
break;
if (session_->http_server_properties()->IsAlternativeServiceBroken(
- retried_alternative_service_)) {
+ retried_alternative_service_, network_isolation_key_)) {
// If the alternative service was marked as broken while the request
// was in flight, retry the request which will not use the broken
// alternative service.
diff --git a/chromium/net/http/http_network_transaction.h b/chromium/net/http/http_network_transaction.h
index 3fb09d25cf2..c7dbfaa21c7 100644
--- a/chromium/net/http/http_network_transaction.h
+++ b/chromium/net/http/http_network_transaction.h
@@ -20,6 +20,7 @@
#include "net/base/completion_repeating_callback.h"
#include "net/base/net_error_details.h"
#include "net/base/net_export.h"
+#include "net/base/network_isolation_key.h"
#include "net/base/request_priority.h"
#include "net/http/http_auth.h"
#include "net/http/http_request_headers.h"
@@ -323,6 +324,10 @@ class NET_EXPORT_PRIVATE HttpNetworkTransaction
RequestPriority priority_;
HttpResponseInfo response_;
+ // Copied from |request_|, as it's needed after the response body has been
+ // read.
+ NetworkIsolationKey network_isolation_key_;
+
// |proxy_info_| is the ProxyInfo used by the HttpStreamRequest.
ProxyInfo proxy_info_;
diff --git a/chromium/net/http/http_network_transaction_unittest.cc b/chromium/net/http/http_network_transaction_unittest.cc
index 34169b51d1b..5fcb4c03c5d 100644
--- a/chromium/net/http/http_network_transaction_unittest.cc
+++ b/chromium/net/http/http_network_transaction_unittest.cc
@@ -405,7 +405,7 @@ class HttpNetworkTransactionTest : public PlatformTest,
base::RunLoop().RunUntilIdle();
// Set an initial delay to ensure that the first call to TimeTicks::Now()
// before incrementing the counter does not return a null value.
- FastForwardBy(TimeDelta::FromSeconds(1));
+ FastForwardBy(base::TimeDelta::FromSeconds(1));
}
void TearDown() override {
@@ -871,39 +871,6 @@ TEST_F(HttpNetworkTransactionTest, SimpleGETNoReadDestroyRequestInfo) {
trans.reset();
}
-// Response with no status line, and a weird port. Option to allow weird ports
-// enabled.
-TEST_F(HttpNetworkTransactionTest, SimpleGETNoHeadersWeirdPortAllowed) {
- MockRead data_reads[] = {
- MockRead("hello world"), MockRead(SYNCHRONOUS, OK),
- };
-
- StaticSocketDataProvider data(data_reads, base::span<MockWrite>());
- session_deps_.socket_factory->AddSocketDataProvider(&data);
- session_deps_.http_09_on_non_default_ports_enabled = true;
- std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
-
- HttpRequestInfo request;
- auto trans =
- std::make_unique<HttpNetworkTransaction>(DEFAULT_PRIORITY, session.get());
-
- request.method = "GET";
- request.url = GURL("http://www.example.com:2000/");
- request.traffic_annotation =
- net::MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
-
- TestCompletionCallback callback;
- int rv = trans->Start(&request, callback.callback(), NetLogWithSource());
- EXPECT_THAT(callback.GetResult(rv), IsOk());
-
- const HttpResponseInfo* info = trans->GetResponseInfo();
- ASSERT_TRUE(info->headers);
- EXPECT_EQ("HTTP/0.9 200 OK", info->headers->GetStatusLine());
-
- // Don't bother to read the body - that's verified elsewhere, important thing
- // is that the option to allow HTTP/0.9 on non-default ports is respected.
-}
-
// Allow up to 4 bytes of junk to precede status line.
TEST_F(HttpNetworkTransactionTest, StatusLineJunk3Bytes) {
MockRead data_reads[] = {
@@ -5521,7 +5488,8 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyGetWithSessionRace) {
session_deps_.host_resolver->set_ondemand_mode(false);
SpdySessionKey key(HostPortPair("proxy", 70), ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kTrue, SocketTag());
+ SpdySessionKey::IsProxySession::kTrue, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
base::WeakPtr<SpdySession> spdy_session =
CreateSpdySession(session.get(), key, log.bound());
@@ -11367,7 +11335,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForDirectConnections) {
"http://www.example.org/direct",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 80),
ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
false,
},
{
@@ -11375,7 +11345,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForDirectConnections) {
"http://[2001:1418:13:1::25]/direct",
ClientSocketPool::GroupId(HostPortPair("2001:1418:13:1::25", 80),
ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
false,
},
@@ -11385,7 +11357,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForDirectConnections) {
"https://www.example.org/direct_ssl",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
{
@@ -11393,7 +11367,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForDirectConnections) {
"https://[2001:1418:13:1::25]/direct",
ClientSocketPool::GroupId(HostPortPair("2001:1418:13:1::25", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
{
@@ -11401,7 +11377,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForDirectConnections) {
"https://host.with.alternate/direct",
ClientSocketPool::GroupId(HostPortPair("host.with.alternate", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
};
@@ -11436,7 +11414,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForHTTPProxyConnections) {
"http://www.example.org/http_proxy_normal",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 80),
ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
false,
},
@@ -11446,7 +11426,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForHTTPProxyConnections) {
"https://www.example.org/http_connect_ssl",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
@@ -11455,7 +11437,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForHTTPProxyConnections) {
"https://host.with.alternate/direct",
ClientSocketPool::GroupId(HostPortPair("host.with.alternate", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
};
@@ -11492,7 +11476,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForSOCKSConnections) {
"http://www.example.org/socks4_direct",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 80),
ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
false,
},
{
@@ -11500,7 +11486,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForSOCKSConnections) {
"http://www.example.org/socks5_direct",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 80),
ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
false,
},
@@ -11510,7 +11498,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForSOCKSConnections) {
"https://www.example.org/socks4_ssl",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
{
@@ -11518,7 +11508,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForSOCKSConnections) {
"https://www.example.org/socks5_ssl",
ClientSocketPool::GroupId(HostPortPair("www.example.org", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
@@ -11527,7 +11519,9 @@ TEST_F(HttpNetworkTransactionTest, GroupIdForSOCKSConnections) {
"https://host.with.alternate/direct",
ClientSocketPool::GroupId(HostPortPair("host.with.alternate", 443),
ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED),
+ PrivacyMode::PRIVACY_MODE_DISABLED,
+ NetworkIsolationKey(),
+ false /* disable_secure_dns */),
true,
},
};
@@ -12637,7 +12631,8 @@ TEST_F(HttpNetworkTransactionTest, IdentifyQuicBroken) {
server, NetworkIsolationKey(), alternative_service, expiration,
HttpNetworkSession::Params().quic_params.supported_versions);
// Mark the QUIC alternative service as broken.
- http_server_properties->MarkAlternativeServiceBroken(alternative_service);
+ http_server_properties->MarkAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey());
HttpRequestInfo request;
HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
@@ -12711,7 +12706,8 @@ TEST_F(HttpNetworkTransactionTest, IdentifyQuicNotBroken) {
server, NetworkIsolationKey(), alternative_service_info_vector);
// Mark one of the QUIC alternative service as broken.
- http_server_properties->MarkAlternativeServiceBroken(alternative_service1);
+ http_server_properties->MarkAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey());
EXPECT_EQ(2u, http_server_properties
->GetAlternativeServiceInfos(server, NetworkIsolationKey())
.size());
@@ -12791,8 +12787,8 @@ TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocolAndFallback) {
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service,
alternative_service_info_vector[0].alternative_service());
- EXPECT_TRUE(
- http_server_properties->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_TRUE(http_server_properties->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
}
// Ensure that we are not allowed to redirect traffic via an alternate protocol
@@ -13643,7 +13639,8 @@ TEST_F(HttpNetworkTransactionTest,
HostPortPair host_port_pair("www.example.org", 443);
SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
base::WeakPtr<SpdySession> spdy_session =
CreateSpdySession(session.get(), key, NetLogWithSource());
@@ -14704,7 +14701,8 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) {
const ClientSocketPool::GroupId kSocketGroup(
HostPortPair("www.example.com", 80), ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED);
+ PrivacyMode::PRIVACY_MODE_DISABLED, NetworkIsolationKey(),
+ false /* disable_secure_dns */);
// First round of authentication.
auth_handler->SetGenerateExpectation(false, OK);
@@ -15314,7 +15312,8 @@ TEST_F(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) {
HostPortPair host_port_pair("www.example.org", 443);
SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
base::WeakPtr<SpdySession> spdy_session =
CreateSpdySession(session.get(), key, NetLogWithSource());
@@ -16526,8 +16525,8 @@ TEST_F(HttpNetworkTransactionTest, FailedAlternativeServiceIsNotUserVisible) {
// Alternative should be marked as broken, because HTTP/1.1 is not sufficient
// for alternative service.
- EXPECT_TRUE(
- http_server_properties->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_TRUE(http_server_properties->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
// Since |alternative_service| is broken, a second transaction to server
// should not start an alternate Job. It should pool to existing connection
@@ -17071,7 +17070,8 @@ TEST_F(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
HostPortPair host_port_pair_a("www.a.com", 443);
SpdySessionKey spdy_session_key_a(
host_port_pair_a, ProxyServer::Direct(), PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
EXPECT_FALSE(
HasSpdySession(session->spdy_session_pool(), spdy_session_key_a));
@@ -17106,7 +17106,8 @@ TEST_F(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
HostPortPair host_port_pair_b("www.b.com", 443);
SpdySessionKey spdy_session_key_b(
host_port_pair_b, ProxyServer::Direct(), PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
EXPECT_FALSE(
HasSpdySession(session->spdy_session_pool(), spdy_session_key_b));
HttpRequestInfo request2;
@@ -17138,7 +17139,8 @@ TEST_F(HttpNetworkTransactionTest, CloseIdleSpdySessionToOpenNewOne) {
HostPortPair host_port_pair_a1("www.a.com", 80);
SpdySessionKey spdy_session_key_a1(
host_port_pair_a1, ProxyServer::Direct(), PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
EXPECT_FALSE(
HasSpdySession(session->spdy_session_pool(), spdy_session_key_a1));
HttpRequestInfo request3;
diff --git a/chromium/net/http/http_proxy_connect_job.cc b/chromium/net/http/http_proxy_connect_job.cc
index 6ee20a1dbe8..2349095ec5d 100644
--- a/chromium/net/http/http_proxy_connect_job.cc
+++ b/chromium/net/http/http_proxy_connect_job.cc
@@ -664,6 +664,7 @@ int HttpProxyConnectJob::DoQuicProxyCreateSession() {
return quic_stream_request_->Request(
proxy_server, quic_version, ssl_params->privacy_mode(),
kH2QuicTunnelPriority, socket_tag(), params_->network_isolation_key(),
+ ssl_params->GetDirectConnectionParams()->disable_secure_dns(),
ssl_params->ssl_config().GetCertVerifyFlags(),
GURL("https://" + proxy_server.ToString()), net_log(),
&quic_net_error_details_,
@@ -821,7 +822,8 @@ SpdySessionKey HttpProxyConnectJob::CreateSpdySessionKey() const {
params_->ssl_params()->GetDirectConnectionParams()->destination(),
ProxyServer::Direct(), PRIVACY_MODE_DISABLED,
SpdySessionKey::IsProxySession::kTrue, socket_tag(),
- params_->network_isolation_key());
+ params_->network_isolation_key(),
+ params_->ssl_params()->GetDirectConnectionParams()->disable_secure_dns());
}
} // namespace net
diff --git a/chromium/net/http/http_proxy_connect_job_unittest.cc b/chromium/net/http/http_proxy_connect_job_unittest.cc
index 3f569c6e27f..a130dac17a5 100644
--- a/chromium/net/http/http_proxy_connect_job_unittest.cc
+++ b/chromium/net/http/http_proxy_connect_job_unittest.cc
@@ -104,28 +104,34 @@ class HttpProxyConnectJobTest : public ::testing::TestWithParam<HttpProxyType>,
HttpProxyConnectJob::UpdateFieldTrialParametersForTesting();
}
- scoped_refptr<TransportSocketParams> CreateHttpProxyParams() const {
+ scoped_refptr<TransportSocketParams> CreateHttpProxyParams(
+ bool disable_secure_dns) const {
if (GetParam() != HTTP)
return nullptr;
return base::MakeRefCounted<TransportSocketParams>(
- HostPortPair(kHttpProxyHost, 80), OnHostResolutionCallback());
+ HostPortPair(kHttpProxyHost, 80), disable_secure_dns,
+ OnHostResolutionCallback());
}
- scoped_refptr<SSLSocketParams> CreateHttpsProxyParams() const {
+ scoped_refptr<SSLSocketParams> CreateHttpsProxyParams(
+ bool disable_secure_dns) const {
if (GetParam() == HTTP)
return nullptr;
return base::MakeRefCounted<SSLSocketParams>(
base::MakeRefCounted<TransportSocketParams>(
- HostPortPair(kHttpsProxyHost, 443), OnHostResolutionCallback()),
+ HostPortPair(kHttpsProxyHost, 443), disable_secure_dns,
+ OnHostResolutionCallback()),
nullptr, nullptr, HostPortPair(kHttpsProxyHost, 443), SSLConfig(),
PRIVACY_MODE_DISABLED, NetworkIsolationKey());
}
// Returns a correctly constructed HttpProxyParams for the HTTP or HTTPS
// proxy.
- scoped_refptr<HttpProxySocketParams> CreateParams(bool tunnel) {
+ scoped_refptr<HttpProxySocketParams> CreateParams(bool tunnel,
+ bool disable_secure_dns) {
return base::MakeRefCounted<HttpProxySocketParams>(
- CreateHttpProxyParams(), CreateHttpsProxyParams(), false /* is_quic */,
+ CreateHttpProxyParams(disable_secure_dns),
+ CreateHttpsProxyParams(disable_secure_dns), false /* is_quic */,
HostPortPair(kEndpointHost, tunnel ? 443 : 80),
/*is_trusted_proxy=*/false, tunnel, TRAFFIC_ANNOTATION_FOR_TESTS,
NetworkIsolationKey());
@@ -133,16 +139,19 @@ class HttpProxyConnectJobTest : public ::testing::TestWithParam<HttpProxyType>,
std::unique_ptr<HttpProxyConnectJob> CreateConnectJobForHttpRequest(
ConnectJob::Delegate* delegate,
- RequestPriority priority = DEFAULT_PRIORITY) {
- return CreateConnectJob(CreateParams(false /* tunnel */), delegate,
- priority);
+ RequestPriority priority = DEFAULT_PRIORITY,
+ bool disable_secure_dns = false) {
+ return CreateConnectJob(
+ CreateParams(false /* tunnel */, disable_secure_dns), delegate,
+ priority);
}
std::unique_ptr<HttpProxyConnectJob> CreateConnectJobForTunnel(
ConnectJob::Delegate* delegate,
- RequestPriority priority = DEFAULT_PRIORITY) {
- return CreateConnectJob(CreateParams(true /* tunnel */), delegate,
- priority);
+ RequestPriority priority = DEFAULT_PRIORITY,
+ bool disable_secure_dns = false) {
+ return CreateConnectJob(CreateParams(true /* tunnel */, disable_secure_dns),
+ delegate, priority);
}
std::unique_ptr<HttpProxyConnectJob> CreateConnectJob(
@@ -220,7 +229,8 @@ class HttpProxyConnectJobTest : public ::testing::TestWithParam<HttpProxyType>,
// since tunnels need an extra round trip.
base::TimeDelta alternate_connection_timeout =
HttpProxyConnectJob::AlternateNestedConnectionTimeout(
- *CreateParams(true /* tunnel */), network_quality_estimator_.get());
+ *CreateParams(true /* tunnel */, false /* disable_secure_dns */),
+ network_quality_estimator_.get());
// If there's an alternate connection timeout, and it's less than the
// standard TCP+SSL timeout (Which is also applied by the nested connect
@@ -833,6 +843,80 @@ TEST_P(HttpProxyConnectJobTest, RequestPriority) {
}
}
+TEST_P(HttpProxyConnectJobTest, DisableSecureDns) {
+ for (bool disable_secure_dns : {false, true}) {
+ TestConnectJobDelegate test_delegate;
+ std::unique_ptr<ConnectJob> connect_job = CreateConnectJobForHttpRequest(
+ &test_delegate, DEFAULT_PRIORITY, disable_secure_dns);
+
+ EXPECT_THAT(connect_job->Connect(), test::IsError(ERR_IO_PENDING));
+ EXPECT_EQ(disable_secure_dns,
+ session_deps_.host_resolver->last_secure_dns_mode_override()
+ .has_value());
+ if (disable_secure_dns) {
+ EXPECT_EQ(
+ net::DnsConfig::SecureDnsMode::OFF,
+ session_deps_.host_resolver->last_secure_dns_mode_override().value());
+ }
+ }
+}
+
+TEST_P(HttpProxyConnectJobTest, SpdySessionKeyDisableSecureDns) {
+ if (GetParam() != SPDY)
+ return;
+
+ SSLSocketDataProvider ssl_data(ASYNC, OK);
+ InitializeSpdySsl(&ssl_data);
+ session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_data);
+
+ // SPDY proxy CONNECT request / response, with a pause during the read.
+ spdy::SpdySerializedFrame req(spdy_util_.ConstructSpdyConnect(
+ nullptr, 0, 1, HttpProxyConnectJob::kH2QuicTunnelPriority,
+ HostPortPair(kEndpointHost, 443)));
+ MockWrite spdy_writes[] = {CreateMockWrite(req, 0)};
+ spdy::SpdySerializedFrame resp(
+ spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
+ MockRead spdy_reads[] = {CreateMockRead(resp, 1), MockRead(ASYNC, 0, 2)};
+ SequencedSocketData spdy_data(spdy_reads, spdy_writes);
+ spdy_data.set_connect_data(MockConnect(ASYNC, OK));
+ SequencedSocketData* sequenced_data = &spdy_data;
+ session_deps_.socket_factory->AddSocketDataProvider(sequenced_data);
+
+ TestConnectJobDelegate test_delegate;
+ auto ssl_params = base::MakeRefCounted<SSLSocketParams>(
+ base::MakeRefCounted<TransportSocketParams>(
+ HostPortPair(kHttpsProxyHost, 443), true /* disable_secure_dns */,
+ OnHostResolutionCallback()),
+ nullptr, nullptr, HostPortPair(kHttpsProxyHost, 443), SSLConfig(),
+ PRIVACY_MODE_DISABLED, NetworkIsolationKey());
+ auto http_proxy_params = base::MakeRefCounted<HttpProxySocketParams>(
+ nullptr /* tcp_params */, std::move(ssl_params), false /* is_quic */,
+ HostPortPair(kEndpointHost, 443), /*is_trusted_proxy=*/false,
+ /*tunnel=*/true, TRAFFIC_ANNOTATION_FOR_TESTS, NetworkIsolationKey());
+
+ std::unique_ptr<ConnectJob> connect_job = CreateConnectJob(
+ std::move(http_proxy_params), &test_delegate, DEFAULT_PRIORITY);
+
+ EXPECT_THAT(connect_job->Connect(), test::IsError(ERR_IO_PENDING));
+ EXPECT_THAT(test_delegate.WaitForResult(), test::IsOk());
+ EXPECT_TRUE(
+ common_connect_job_params_->spdy_session_pool->FindAvailableSession(
+ SpdySessionKey(HostPortPair(kHttpsProxyHost, 443),
+ ProxyServer::Direct(), PRIVACY_MODE_DISABLED,
+ SpdySessionKey::IsProxySession::kTrue, SocketTag(),
+ NetworkIsolationKey(), true /* disable_secure_dns */),
+ /* enable_ip_based_pooling = */ false,
+ /* is_websocket = */ false, NetLogWithSource()));
+ EXPECT_FALSE(
+ common_connect_job_params_->spdy_session_pool->FindAvailableSession(
+ SpdySessionKey(HostPortPair(kHttpsProxyHost, 443),
+ ProxyServer::Direct(), PRIVACY_MODE_DISABLED,
+ SpdySessionKey::IsProxySession::kTrue, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */),
+ /* enable_ip_based_pooling = */ false,
+ /* is_websocket = */ false, NetLogWithSource()));
+}
+
// Make sure that HttpProxyConnectJob does not pass on its priority to its
// SPDY session's socket request on Init, or on SetPriority.
TEST_P(HttpProxyConnectJobTest, SetSpdySessionSocketRequestPriority) {
@@ -1516,7 +1600,7 @@ TEST_P(HttpProxyConnectJobTest, ConnectionTimeoutNoNQE) {
// since tunnels need an extra round trip.
base::TimeDelta alternate_connection_timeout =
HttpProxyConnectJob::AlternateNestedConnectionTimeout(
- *CreateParams(true /* tunnel */),
+ *CreateParams(true /* tunnel */, false /* disable_secure_dns */),
nullptr /* network_quality_estimator */);
#if defined(OS_ANDROID) || defined(OS_IOS)
diff --git a/chromium/net/http/http_request_headers.cc b/chromium/net/http/http_request_headers.cc
index b8db53837a4..11af6fed583 100644
--- a/chromium/net/http/http_request_headers.cc
+++ b/chromium/net/http/http_request_headers.cc
@@ -193,7 +193,7 @@ base::Value HttpRequestHeaders::NetLogParams(
for (auto it = headers_.begin(); it != headers_.end(); ++it) {
std::string log_value =
ElideHeaderValueForNetLog(capture_mode, it->key, it->value);
- headers->GetList().push_back(
+ headers->Append(
NetLogStringValue(base::StrCat({it->key, ": ", log_value})));
}
dict.Set("headers", std::move(headers));
diff --git a/chromium/net/http/http_request_info.cc b/chromium/net/http/http_request_info.cc
index f764880033a..1410e3b1a7a 100644
--- a/chromium/net/http/http_request_info.cc
+++ b/chromium/net/http/http_request_info.cc
@@ -10,6 +10,7 @@ HttpRequestInfo::HttpRequestInfo()
: upload_data_stream(nullptr),
load_flags(0),
privacy_mode(PRIVACY_MODE_DISABLED),
+ disable_secure_dns(false),
reporting_upload_depth(0) {}
HttpRequestInfo::HttpRequestInfo(const HttpRequestInfo& other) = default;
diff --git a/chromium/net/http/http_request_info.h b/chromium/net/http/http_request_info.h
index 2e0cfa4dc19..3c57bc6fe34 100644
--- a/chromium/net/http/http_request_info.h
+++ b/chromium/net/http/http_request_info.h
@@ -48,6 +48,9 @@ struct NET_EXPORT HttpRequestInfo {
// tracked by the server (e.g. without channel id).
PrivacyMode privacy_mode;
+ // Whether secure DNS should be disabled for the request.
+ bool disable_secure_dns;
+
// Tag applied to all sockets used to service request.
SocketTag socket_tag;
diff --git a/chromium/net/http/http_response_headers.cc b/chromium/net/http/http_response_headers.cc
index 087922755a2..a3d39a0f98d 100644
--- a/chromium/net/http/http_response_headers.cc
+++ b/chromium/net/http/http_response_headers.cc
@@ -1334,15 +1334,14 @@ base::Value HttpResponseHeaders::NetLogParams(
NetLogCaptureMode capture_mode) const {
base::DictionaryValue dict;
base::ListValue headers;
- headers.GetList().push_back(NetLogStringValue(GetStatusLine()));
+ headers.Append(NetLogStringValue(GetStatusLine()));
size_t iterator = 0;
std::string name;
std::string value;
while (EnumerateHeaderLines(&iterator, &name, &value)) {
std::string log_value =
ElideHeaderValueForNetLog(capture_mode, name, value);
- headers.GetList().push_back(
- NetLogStringValue(base::StrCat({name, ": ", log_value})));
+ headers.Append(NetLogStringValue(base::StrCat({name, ": ", log_value})));
}
dict.SetKey("headers", std::move(headers));
return std::move(dict);
diff --git a/chromium/net/http/http_response_info.cc b/chromium/net/http/http_response_info.cc
index d03f76da339..1d2af6ceaa0 100644
--- a/chromium/net/http/http_response_info.cc
+++ b/chromium/net/http/http_response_info.cc
@@ -429,6 +429,8 @@ bool HttpResponseInfo::DidUseQuic() const {
case CONNECTION_INFO_QUIC_46:
case CONNECTION_INFO_QUIC_47:
case CONNECTION_INFO_QUIC_48:
+ case CONNECTION_INFO_QUIC_49:
+ case CONNECTION_INFO_QUIC_50:
case CONNECTION_INFO_QUIC_99:
case CONNECTION_INFO_QUIC_999:
return true;
@@ -497,6 +499,10 @@ std::string HttpResponseInfo::ConnectionInfoToString(
return "http/2+quic/47";
case CONNECTION_INFO_QUIC_48:
return "http/2+quic/48";
+ case CONNECTION_INFO_QUIC_49:
+ return "http/2+quic/49";
+ case CONNECTION_INFO_QUIC_50:
+ return "http/2+quic/50";
case CONNECTION_INFO_QUIC_99:
return "http/2+quic/99";
case CONNECTION_INFO_HTTP0_9:
diff --git a/chromium/net/http/http_response_info.h b/chromium/net/http/http_response_info.h
index ff80d89295c..ae75b00e683 100644
--- a/chromium/net/http/http_response_info.h
+++ b/chromium/net/http/http_response_info.h
@@ -64,6 +64,8 @@ class NET_EXPORT HttpResponseInfo {
CONNECTION_INFO_QUIC_47 = 26,
CONNECTION_INFO_QUIC_999 = 27,
CONNECTION_INFO_QUIC_48 = 28,
+ CONNECTION_INFO_QUIC_49 = 29,
+ CONNECTION_INFO_QUIC_50 = 30,
NUM_OF_CONNECTION_INFOS,
};
diff --git a/chromium/net/http/http_server_properties.cc b/chromium/net/http/http_server_properties.cc
index e83e286e6fa..c777169d91e 100644
--- a/chromium/net/http/http_server_properties.cc
+++ b/chromium/net/http/http_server_properties.cc
@@ -32,6 +32,19 @@ namespace {
// period will be a no-op.
constexpr base::TimeDelta kUpdatePrefsDelay = base::TimeDelta::FromSeconds(60);
+url::SchemeHostPort NormalizeSchemeHostPort(
+ const url::SchemeHostPort& scheme_host_port) {
+ if (scheme_host_port.scheme() == url::kWssScheme) {
+ return url::SchemeHostPort(url::kHttpsScheme, scheme_host_port.host(),
+ scheme_host_port.port());
+ }
+ if (scheme_host_port.scheme() == url::kWsScheme) {
+ return url::SchemeHostPort(url::kHttpScheme, scheme_host_port.host(),
+ scheme_host_port.port());
+ }
+ return scheme_host_port;
+}
+
} // namespace
HttpServerProperties::PrefDelegate::~PrefDelegate() = default;
@@ -56,13 +69,15 @@ bool HttpServerProperties::ServerInfo::operator==(
}
HttpServerProperties::ServerInfoMapKey::ServerInfoMapKey(
- const url::SchemeHostPort& server,
+ url::SchemeHostPort server,
const NetworkIsolationKey& network_isolation_key,
bool use_network_isolation_key)
- : server(server),
+ : server(std::move(server)),
network_isolation_key(use_network_isolation_key ? network_isolation_key
: NetworkIsolationKey()) {
- // TODO(mmenke): DCHECK that |server|'s scheme is not ws/wss.
+ // Scheme should have been normalized before this method was called.
+ DCHECK_NE(this->server.scheme(), url::kWsScheme);
+ DCHECK_NE(this->server.scheme(), url::kWssScheme);
}
HttpServerProperties::ServerInfoMapKey::~ServerInfoMapKey() = default;
@@ -73,6 +88,30 @@ bool HttpServerProperties::ServerInfoMapKey::operator<(
std::tie(other.server, other.network_isolation_key);
}
+HttpServerProperties::QuicServerInfoMapKey::QuicServerInfoMapKey(
+ const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key,
+ bool use_network_isolation_key)
+ : server_id(server_id),
+ network_isolation_key(use_network_isolation_key ? network_isolation_key
+ : NetworkIsolationKey()) {
+}
+
+HttpServerProperties::QuicServerInfoMapKey::~QuicServerInfoMapKey() = default;
+
+bool HttpServerProperties::QuicServerInfoMapKey::operator<(
+ const QuicServerInfoMapKey& other) const {
+ return std::tie(server_id, network_isolation_key) <
+ std::tie(other.server_id, other.network_isolation_key);
+}
+
+// Used in tests.
+bool HttpServerProperties::QuicServerInfoMapKey::operator==(
+ const QuicServerInfoMapKey& other) const {
+ return std::tie(server_id, network_isolation_key) ==
+ std::tie(other.server_id, other.network_isolation_key);
+}
+
HttpServerProperties::ServerInfoMap::ServerInfoMap()
: base::MRUCache<ServerInfoMapKey, ServerInfo>(kMaxServerInfoEntries) {}
@@ -136,26 +175,12 @@ HttpServerProperties::~HttpServerProperties() {
}
}
-url::SchemeHostPort HttpServerProperties::GetNormalizedSchemeHostPort(
- const GURL& url) {
- if (url.is_valid()) {
- if (url.SchemeIs(url::kHttpsScheme) || url.SchemeIs(url::kWssScheme)) {
- return url::SchemeHostPort(url::kHttpsScheme, url.host_piece(),
- url.EffectiveIntPort());
- } else if (url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kWsScheme)) {
- return url::SchemeHostPort(url::kHttpScheme, url.host_piece(),
- url.EffectiveIntPort());
- }
- }
- return url::SchemeHostPort(url);
-}
-
void HttpServerProperties::Clear(base::OnceClosure callback) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
server_info_map_.Clear();
broken_alternative_services_.Clear();
canonical_alt_svc_map_.clear();
- last_quic_address_ = IPAddress();
+ last_local_address_when_quic_worked_ = IPAddress();
quic_server_info_map_.Clear();
canonical_server_info_map_.clear();
@@ -200,13 +225,8 @@ bool HttpServerProperties::GetSupportsSpdy(
const url::SchemeHostPort& server,
const net::NetworkIsolationKey& network_isolation_key) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- if (server.host().empty())
- return false;
-
- auto server_info =
- server_info_map_.Get(CreateServerInfoKey(server, network_isolation_key));
- return server_info != server_info_map_.end() &&
- server_info->second.supports_spdy.value_or(false);
+ return GetSupportsSpdyInternal(NormalizeSchemeHostPort(server),
+ network_isolation_key);
}
void HttpServerProperties::SetSupportsSpdy(
@@ -214,156 +234,41 @@ void HttpServerProperties::SetSupportsSpdy(
const net::NetworkIsolationKey& network_isolation_key,
bool supports_spdy) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- if (server.host().empty())
- return;
-
- auto server_info = server_info_map_.GetOrPut(
- CreateServerInfoKey(server, network_isolation_key));
- // If value is already the same as |supports_spdy|, or value is unset and
- // |supports_spdy| is false, don't queue a write.
- bool queue_write =
- server_info->second.supports_spdy.value_or(false) != supports_spdy;
- server_info->second.supports_spdy = supports_spdy;
-
- if (queue_write)
- MaybeQueueWriteProperties();
+ SetSupportsSpdyInternal(NormalizeSchemeHostPort(server),
+ network_isolation_key, supports_spdy);
}
bool HttpServerProperties::RequiresHTTP11(
const url::SchemeHostPort& server,
const net::NetworkIsolationKey& network_isolation_key) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- DCHECK(server.scheme() != "ws");
- DCHECK(server.scheme() != "wss");
- if (server.host().empty())
- return false;
-
- auto spdy_info =
- server_info_map_.Get(CreateServerInfoKey(server, network_isolation_key));
- return spdy_info != server_info_map_.end() &&
- spdy_info->second.requires_http11.value_or(false);
+ return RequiresHTTP11Internal(NormalizeSchemeHostPort(server),
+ network_isolation_key);
}
void HttpServerProperties::SetHTTP11Required(
const url::SchemeHostPort& server,
const net::NetworkIsolationKey& network_isolation_key) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
- DCHECK(server.scheme() != "ws");
- DCHECK(server.scheme() != "wss");
- if (server.host().empty())
- return;
-
- server_info_map_.GetOrPut(CreateServerInfoKey(server, network_isolation_key))
- ->second.requires_http11 = true;
- // No need to call MaybeQueueWriteProperties(), as this information is not
- // persisted to preferences.
+ SetHTTP11RequiredInternal(NormalizeSchemeHostPort(server),
+ network_isolation_key);
}
void HttpServerProperties::MaybeForceHTTP11(
const url::SchemeHostPort& server,
const net::NetworkIsolationKey& network_isolation_key,
SSLConfig* ssl_config) {
- DCHECK(server.scheme() != "ws");
- DCHECK(server.scheme() != "wss");
- if (RequiresHTTP11(server, network_isolation_key)) {
- ssl_config->alpn_protos.clear();
- ssl_config->alpn_protos.push_back(kProtoHTTP11);
- }
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ MaybeForceHTTP11Internal(NormalizeSchemeHostPort(server),
+ network_isolation_key, ssl_config);
}
AlternativeServiceInfoVector HttpServerProperties::GetAlternativeServiceInfos(
const url::SchemeHostPort& origin,
const net::NetworkIsolationKey& network_isolation_key) {
- // Copy valid alternative service infos into
- // |valid_alternative_service_infos|.
- AlternativeServiceInfoVector valid_alternative_service_infos;
- const base::Time now = clock_->Now();
- auto map_it =
- server_info_map_.Get(CreateServerInfoKey(origin, network_isolation_key));
- if (map_it != server_info_map_.end() &&
- map_it->second.alternative_services.has_value()) {
- AlternativeServiceInfoVector* service_info =
- &map_it->second.alternative_services.value();
- HostPortPair host_port_pair(origin.host(), origin.port());
- for (auto it = service_info->begin(); it != service_info->end();) {
- if (it->expiration() < now) {
- it = service_info->erase(it);
- continue;
- }
- AlternativeService alternative_service(it->alternative_service());
- if (alternative_service.host.empty()) {
- alternative_service.host = origin.host();
- }
- // If the alternative service is equivalent to the origin (same host, same
- // port, and both TCP), skip it.
- if (host_port_pair.Equals(alternative_service.host_port_pair()) &&
- alternative_service.protocol == kProtoHTTP2) {
- ++it;
- continue;
- }
- if (alternative_service.protocol == kProtoQUIC) {
- valid_alternative_service_infos.push_back(
- AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
- alternative_service, it->expiration(),
- it->advertised_versions()));
- } else {
- valid_alternative_service_infos.push_back(
- AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
- alternative_service, it->expiration()));
- }
- ++it;
- }
- if (service_info->empty()) {
- map_it->second.alternative_services.reset();
- server_info_map_.EraseIfEmpty(map_it);
- }
- return valid_alternative_service_infos;
- }
-
- auto canonical = GetCanonicalAltSvcHost(origin, network_isolation_key);
- if (canonical == canonical_alt_svc_map_.end()) {
- return AlternativeServiceInfoVector();
- }
- map_it = server_info_map_.Get(
- CreateServerInfoKey(canonical->second, network_isolation_key));
- if (map_it == server_info_map_.end() ||
- !map_it->second.alternative_services.has_value()) {
- return AlternativeServiceInfoVector();
- }
- AlternativeServiceInfoVector* service_info =
- &map_it->second.alternative_services.value();
- for (auto it = service_info->begin(); it != service_info->end();) {
- if (it->expiration() < now) {
- it = service_info->erase(it);
- continue;
- }
- AlternativeService alternative_service(it->alternative_service());
- if (alternative_service.host.empty()) {
- alternative_service.host = canonical->second.host();
- if (IsAlternativeServiceBroken(alternative_service)) {
- ++it;
- continue;
- }
- alternative_service.host = origin.host();
- } else if (IsAlternativeServiceBroken(alternative_service)) {
- ++it;
- continue;
- }
- if (alternative_service.protocol == kProtoQUIC) {
- valid_alternative_service_infos.push_back(
- AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
- alternative_service, it->expiration(),
- it->advertised_versions()));
- } else {
- valid_alternative_service_infos.push_back(
- AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
- alternative_service, it->expiration()));
- }
- ++it;
- }
- if (service_info->empty())
- server_info_map_.EraseIfEmpty(map_it);
- return valid_alternative_service_infos;
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ return GetAlternativeServiceInfosInternal(NormalizeSchemeHostPort(origin),
+ network_isolation_key);
}
void HttpServerProperties::SetHttp2AlternativeService(
@@ -400,127 +305,62 @@ void HttpServerProperties::SetAlternativeServices(
const url::SchemeHostPort& origin,
const net::NetworkIsolationKey& network_isolation_key,
const AlternativeServiceInfoVector& alternative_service_info_vector) {
- if (alternative_service_info_vector.empty()) {
- RemoveAltSvcCanonicalHost(origin, network_isolation_key);
- // Don't bother moving to front when erasing information.
- auto it = server_info_map_.Peek(
- CreateServerInfoKey(origin, network_isolation_key));
-
- if (it == server_info_map_.end() ||
- !it->second.alternative_services.has_value()) {
- return;
- }
-
- it->second.alternative_services.reset();
- server_info_map_.EraseIfEmpty(it);
- MaybeQueueWriteProperties();
- return;
- }
-
- auto it = server_info_map_.GetOrPut(
- CreateServerInfoKey(origin, network_isolation_key));
- bool need_update_pref = true;
- if (it->second.alternative_services.has_value()) {
- DCHECK(!it->second.empty());
- if (it->second.alternative_services->size() ==
- alternative_service_info_vector.size()) {
- const base::Time now = clock_->Now();
- need_update_pref = false;
- auto new_it = alternative_service_info_vector.begin();
- for (const auto& old : *it->second.alternative_services) {
- // Persist to disk immediately if new entry has different scheme, host,
- // or port.
- if (old.alternative_service() != new_it->alternative_service()) {
- need_update_pref = true;
- break;
- }
- // Also persist to disk if new expiration it more that twice as far or
- // less than half as far in the future.
- base::Time old_time = old.expiration();
- base::Time new_time = new_it->expiration();
- if (new_time - now > 2 * (old_time - now) ||
- 2 * (new_time - now) < (old_time - now)) {
- need_update_pref = true;
- break;
- }
- // Also persist to disk if new entry has a different list of advertised
- // versions.
- if (old.advertised_versions() != new_it->advertised_versions()) {
- need_update_pref = true;
- break;
- }
- ++new_it;
- }
- }
- }
-
- const bool previously_no_alternative_services =
- (GetIteratorWithAlternativeServiceInfo(origin, network_isolation_key) ==
- server_info_map_.end());
-
- it->second.alternative_services = alternative_service_info_vector;
-
- if (previously_no_alternative_services &&
- !GetAlternativeServiceInfos(origin, network_isolation_key).empty()) {
- // TODO(rch): Consider the case where multiple requests are started
- // before the first completes. In this case, only one of the jobs
- // would reach this code, whereas all of them should should have.
- HistogramAlternateProtocolUsage(ALTERNATE_PROTOCOL_USAGE_MAPPING_MISSING,
- false);
- }
-
- // If this host ends with a canonical suffix, then set it as the
- // canonical host.
- const char* kCanonicalScheme = "https";
- if (origin.scheme() == kCanonicalScheme) {
- const std::string* canonical_suffix = GetCanonicalSuffix(origin.host());
- if (canonical_suffix != nullptr) {
- url::SchemeHostPort canonical_server(kCanonicalScheme, *canonical_suffix,
- origin.port());
- canonical_alt_svc_map_[CreateServerInfoKey(
- canonical_server, network_isolation_key)] = origin;
- }
- }
-
- if (need_update_pref)
- MaybeQueueWriteProperties();
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ SetAlternativeServicesInternal(NormalizeSchemeHostPort(origin),
+ network_isolation_key,
+ alternative_service_info_vector);
}
void HttpServerProperties::MarkAlternativeServiceBroken(
- const AlternativeService& alternative_service) {
- broken_alternative_services_.MarkBroken(alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ broken_alternative_services_.MarkBroken(BrokenAlternativeService(
+ alternative_service, network_isolation_key, use_network_isolation_key_));
MaybeQueueWriteProperties();
}
void HttpServerProperties::
MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- const AlternativeService& alternative_service) {
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) {
broken_alternative_services_.MarkBrokenUntilDefaultNetworkChanges(
- alternative_service);
+ BrokenAlternativeService(alternative_service, network_isolation_key,
+ use_network_isolation_key_));
MaybeQueueWriteProperties();
}
void HttpServerProperties::MarkAlternativeServiceRecentlyBroken(
- const AlternativeService& alternative_service) {
- broken_alternative_services_.MarkRecentlyBroken(alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ broken_alternative_services_.MarkRecentlyBroken(BrokenAlternativeService(
+ alternative_service, network_isolation_key, use_network_isolation_key_));
MaybeQueueWriteProperties();
}
bool HttpServerProperties::IsAlternativeServiceBroken(
- const AlternativeService& alternative_service) const {
- return broken_alternative_services_.IsBroken(alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) const {
+ return broken_alternative_services_.IsBroken(BrokenAlternativeService(
+ alternative_service, network_isolation_key, use_network_isolation_key_));
}
bool HttpServerProperties::WasAlternativeServiceRecentlyBroken(
- const AlternativeService& alternative_service) {
- return broken_alternative_services_.WasRecentlyBroken(alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ return broken_alternative_services_.WasRecentlyBroken(
+ BrokenAlternativeService(alternative_service, network_isolation_key,
+ use_network_isolation_key_));
}
void HttpServerProperties::ConfirmAlternativeService(
- const AlternativeService& alternative_service) {
- bool old_value = IsAlternativeServiceBroken(alternative_service);
- broken_alternative_services_.Confirm(alternative_service);
- bool new_value = IsAlternativeServiceBroken(alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ bool old_value =
+ IsAlternativeServiceBroken(alternative_service, network_isolation_key);
+ broken_alternative_services_.Confirm(BrokenAlternativeService(
+ alternative_service, network_isolation_key, use_network_isolation_key_));
+ bool new_value =
+ IsAlternativeServiceBroken(alternative_service, network_isolation_key);
// For persisting, we only care about the value returned by
// IsAlternativeServiceBroken. If that value changes, then call persist.
@@ -555,8 +395,11 @@ HttpServerProperties::GetAlternativeServiceInfoAsValue() const {
alternative_service.host = key.server.host();
}
base::TimeTicks brokenness_expiration_ticks;
- if (broken_alternative_services_.IsBroken(alternative_service,
- &brokenness_expiration_ticks)) {
+ if (broken_alternative_services_.IsBroken(
+ BrokenAlternativeService(alternative_service,
+ server_info.first.network_isolation_key,
+ use_network_isolation_key_),
+ &brokenness_expiration_ticks)) {
// Convert |brokenness_expiration| from TimeTicks to Time
base::Time brokenness_expiration =
now + (brokenness_expiration_ticks - now_ticks);
@@ -586,24 +429,33 @@ HttpServerProperties::GetAlternativeServiceInfoAsValue() const {
return std::move(dict_list);
}
-bool HttpServerProperties::GetSupportsQuic(IPAddress* last_address) const {
- if (last_quic_address_.empty())
- return false;
+bool HttpServerProperties::WasLastLocalAddressWhenQuicWorked(
+ const IPAddress& local_address) const {
+ return !last_local_address_when_quic_worked_.empty() &&
+ last_local_address_when_quic_worked_ == local_address;
+}
- *last_address = last_quic_address_;
- return true;
+bool HttpServerProperties::HasLastLocalAddressWhenQuicWorked() const {
+ return !last_local_address_when_quic_worked_.empty();
}
-void HttpServerProperties::SetSupportsQuic(bool used_quic,
- const IPAddress& address) {
- IPAddress new_quic_address;
- if (used_quic)
- new_quic_address = address;
+void HttpServerProperties::SetLastLocalAddressWhenQuicWorked(
+ IPAddress last_local_address_when_quic_worked) {
+ DCHECK(!last_local_address_when_quic_worked.empty());
+ if (last_local_address_when_quic_worked_ ==
+ last_local_address_when_quic_worked) {
+ return;
+ }
+
+ last_local_address_when_quic_worked_ = last_local_address_when_quic_worked;
+ MaybeQueueWriteProperties();
+}
- if (new_quic_address == last_quic_address_)
+void HttpServerProperties::ClearLastLocalAddressWhenQuicWorked() {
+ if (last_local_address_when_quic_worked_.empty())
return;
- last_quic_address_ = new_quic_address;
+ last_local_address_when_quic_worked_ = IPAddress();
MaybeQueueWriteProperties();
}
@@ -611,87 +463,71 @@ void HttpServerProperties::SetServerNetworkStats(
const url::SchemeHostPort& server,
const NetworkIsolationKey& network_isolation_key,
ServerNetworkStats stats) {
- auto server_info = server_info_map_.GetOrPut(
- CreateServerInfoKey(server, network_isolation_key));
- bool changed = !server_info->second.server_network_stats.has_value() ||
- server_info->second.server_network_stats.value() != stats;
-
- if (changed) {
- server_info->second.server_network_stats = stats;
- MaybeQueueWriteProperties();
- }
+ SetServerNetworkStatsInternal(NormalizeSchemeHostPort(server),
+ network_isolation_key, std::move(stats));
}
void HttpServerProperties::ClearServerNetworkStats(
const url::SchemeHostPort& server,
const NetworkIsolationKey& network_isolation_key) {
- auto server_info =
- server_info_map_.Peek(CreateServerInfoKey(server, network_isolation_key));
- // If stats are empty, nothing to do.
- if (server_info == server_info_map_.end() ||
- !server_info->second.server_network_stats.has_value()) {
- return;
- }
-
- // Otherwise, clear and delete if needed. No need to bring to front of MRU
- // cache when clearing data.
- server_info->second.server_network_stats.reset();
- if (server_info->second.empty())
- server_info_map_.EraseIfEmpty(server_info);
- MaybeQueueWriteProperties();
+ ClearServerNetworkStatsInternal(NormalizeSchemeHostPort(server),
+ network_isolation_key);
}
const ServerNetworkStats* HttpServerProperties::GetServerNetworkStats(
const url::SchemeHostPort& server,
const NetworkIsolationKey& network_isolation_key) {
- auto server_info =
- server_info_map_.Get(CreateServerInfoKey(server, network_isolation_key));
- if (server_info == server_info_map_.end() ||
- !server_info->second.server_network_stats.has_value()) {
- return nullptr;
- }
- return &server_info->second.server_network_stats.value();
+ return GetServerNetworkStatsInternal(NormalizeSchemeHostPort(server),
+ network_isolation_key);
}
void HttpServerProperties::SetQuicServerInfo(
const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key,
const std::string& server_info) {
- auto it = quic_server_info_map_.Peek(server_id);
+ QuicServerInfoMapKey key =
+ CreateQuicServerInfoKey(server_id, network_isolation_key);
+ auto it = quic_server_info_map_.Peek(key);
bool changed =
(it == quic_server_info_map_.end() || it->second != server_info);
- quic_server_info_map_.Put(server_id, server_info);
- UpdateCanonicalServerInfoMap(server_id);
+ quic_server_info_map_.Put(key, server_info);
+ UpdateCanonicalServerInfoMap(key);
if (changed)
MaybeQueueWriteProperties();
}
const std::string* HttpServerProperties::GetQuicServerInfo(
- const quic::QuicServerId& server_id) {
- auto it = quic_server_info_map_.Get(server_id);
+ const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key) {
+ QuicServerInfoMapKey key =
+ CreateQuicServerInfoKey(server_id, network_isolation_key);
+ auto it = quic_server_info_map_.Get(key);
if (it != quic_server_info_map_.end()) {
// Since |canonical_server_info_map_| should always map to the most
// recent host, update it with the one that became MRU in
// |quic_server_info_map_|.
- UpdateCanonicalServerInfoMap(server_id);
+ UpdateCanonicalServerInfoMap(key);
return &it->second;
}
// If the exact match for |server_id| wasn't found, check
// |canonical_server_info_map_| whether there is server info for a host with
// the same canonical host suffix.
- auto canonical_itr = GetCanonicalServerInfoHost(server_id);
+ auto canonical_itr = GetCanonicalServerInfoHost(key);
if (canonical_itr == canonical_server_info_map_.end())
return nullptr;
// When search in |quic_server_info_map_|, do not change the MRU order.
- it = quic_server_info_map_.Peek(canonical_itr->second);
+ it = quic_server_info_map_.Peek(
+ CreateQuicServerInfoKey(canonical_itr->second, network_isolation_key));
if (it != quic_server_info_map_.end())
return &it->second;
return nullptr;
}
-const QuicServerInfoMap& HttpServerProperties::quic_server_info_map() const {
+const HttpServerProperties::QuicServerInfoMap&
+HttpServerProperties::quic_server_info_map() const {
return quic_server_info_map_;
}
@@ -716,7 +552,7 @@ void HttpServerProperties::SetMaxServerConfigsStoredInProperties(
QuicServerInfoMap temp_map(max_server_configs_stored_in_properties_);
// Update the |canonical_server_info_map_| as well, so it stays in sync with
// |quic_server_info_map_|.
- canonical_server_info_map_ = CanonicalServerInfoMap();
+ canonical_server_info_map_ = QuicCanonicalMap();
for (auto it = quic_server_info_map_.rbegin();
it != quic_server_info_map_.rend(); ++it) {
temp_map.Put(it->first, it->second);
@@ -735,12 +571,14 @@ bool HttpServerProperties::IsInitialized() const {
}
void HttpServerProperties::OnExpireBrokenAlternativeService(
- const AlternativeService& expired_alternative_service) {
+ const AlternativeService& expired_alternative_service,
+ const NetworkIsolationKey& network_isolation_key) {
// Remove every occurrence of |expired_alternative_service| from
// |alternative_service_map_|.
for (auto map_it = server_info_map_.begin();
map_it != server_info_map_.end();) {
- if (!map_it->second.alternative_services.has_value()) {
+ if (!map_it->second.alternative_services.has_value() ||
+ map_it->first.network_isolation_key != network_isolation_key) {
++map_it;
continue;
}
@@ -763,8 +601,7 @@ void HttpServerProperties::OnExpireBrokenAlternativeService(
// from both |canonical_alt_svc_map_| and
// |alternative_service_map_|.
if (service_info->empty()) {
- // TODO(mmenke): Take a NetworkIsolationKey as input and use it here.
- RemoveAltSvcCanonicalHost(map_it->first.server, NetworkIsolationKey());
+ RemoveAltSvcCanonicalHost(map_it->first.server, network_isolation_key);
map_it->second.alternative_services.reset();
map_it = server_info_map_.EraseIfEmpty(map_it);
continue;
@@ -777,6 +614,345 @@ base::TimeDelta HttpServerProperties::GetUpdatePrefsDelayForTesting() {
return kUpdatePrefsDelay;
}
+bool HttpServerProperties::GetSupportsSpdyInternal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+ if (server.host().empty())
+ return false;
+
+ auto server_info = server_info_map_.Get(
+ CreateServerInfoKey(std::move(server), network_isolation_key));
+ return server_info != server_info_map_.end() &&
+ server_info->second.supports_spdy.value_or(false);
+}
+
+void HttpServerProperties::SetSupportsSpdyInternal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key,
+ bool supports_spdy) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+ if (server.host().empty())
+ return;
+
+ auto server_info = server_info_map_.GetOrPut(
+ CreateServerInfoKey(std::move(server), network_isolation_key));
+ // If value is already the same as |supports_spdy|, or value is unset and
+ // |supports_spdy| is false, don't queue a write.
+ bool queue_write =
+ server_info->second.supports_spdy.value_or(false) != supports_spdy;
+ server_info->second.supports_spdy = supports_spdy;
+
+ if (queue_write)
+ MaybeQueueWriteProperties();
+}
+
+bool HttpServerProperties::RequiresHTTP11Internal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+ if (server.host().empty())
+ return false;
+
+ auto spdy_info = server_info_map_.Get(
+ CreateServerInfoKey(std::move(server), network_isolation_key));
+ return spdy_info != server_info_map_.end() &&
+ spdy_info->second.requires_http11.value_or(false);
+}
+
+void HttpServerProperties::SetHTTP11RequiredInternal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+ if (server.host().empty())
+ return;
+
+ server_info_map_
+ .GetOrPut(CreateServerInfoKey(std::move(server), network_isolation_key))
+ ->second.requires_http11 = true;
+ // No need to call MaybeQueueWriteProperties(), as this information is not
+ // persisted to preferences.
+}
+
+void HttpServerProperties::MaybeForceHTTP11Internal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key,
+ SSLConfig* ssl_config) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+ if (RequiresHTTP11(std::move(server), network_isolation_key)) {
+ ssl_config->alpn_protos.clear();
+ ssl_config->alpn_protos.push_back(kProtoHTTP11);
+ }
+}
+
+AlternativeServiceInfoVector
+HttpServerProperties::GetAlternativeServiceInfosInternal(
+ const url::SchemeHostPort& origin,
+ const net::NetworkIsolationKey& network_isolation_key) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(origin.scheme(), url::kWsScheme);
+ DCHECK_NE(origin.scheme(), url::kWssScheme);
+
+ // Copy valid alternative service infos into
+ // |valid_alternative_service_infos|.
+ AlternativeServiceInfoVector valid_alternative_service_infos;
+ const base::Time now = clock_->Now();
+ auto map_it =
+ server_info_map_.Get(CreateServerInfoKey(origin, network_isolation_key));
+ if (map_it != server_info_map_.end() &&
+ map_it->second.alternative_services.has_value()) {
+ AlternativeServiceInfoVector* service_info =
+ &map_it->second.alternative_services.value();
+ HostPortPair host_port_pair(origin.host(), origin.port());
+ for (auto it = service_info->begin(); it != service_info->end();) {
+ if (it->expiration() < now) {
+ it = service_info->erase(it);
+ continue;
+ }
+ AlternativeService alternative_service(it->alternative_service());
+ if (alternative_service.host.empty()) {
+ alternative_service.host = origin.host();
+ }
+ // If the alternative service is equivalent to the origin (same host, same
+ // port, and both TCP), skip it.
+ if (host_port_pair.Equals(alternative_service.host_port_pair()) &&
+ alternative_service.protocol == kProtoHTTP2) {
+ ++it;
+ continue;
+ }
+ if (alternative_service.protocol == kProtoQUIC) {
+ valid_alternative_service_infos.push_back(
+ AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
+ alternative_service, it->expiration(),
+ it->advertised_versions()));
+ } else {
+ valid_alternative_service_infos.push_back(
+ AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
+ alternative_service, it->expiration()));
+ }
+ ++it;
+ }
+ if (service_info->empty()) {
+ map_it->second.alternative_services.reset();
+ server_info_map_.EraseIfEmpty(map_it);
+ }
+ return valid_alternative_service_infos;
+ }
+
+ auto canonical = GetCanonicalAltSvcHost(origin, network_isolation_key);
+ if (canonical == canonical_alt_svc_map_.end()) {
+ return AlternativeServiceInfoVector();
+ }
+ map_it = server_info_map_.Get(
+ CreateServerInfoKey(canonical->second, network_isolation_key));
+ if (map_it == server_info_map_.end() ||
+ !map_it->second.alternative_services.has_value()) {
+ return AlternativeServiceInfoVector();
+ }
+ AlternativeServiceInfoVector* service_info =
+ &map_it->second.alternative_services.value();
+ for (auto it = service_info->begin(); it != service_info->end();) {
+ if (it->expiration() < now) {
+ it = service_info->erase(it);
+ continue;
+ }
+ AlternativeService alternative_service(it->alternative_service());
+ if (alternative_service.host.empty()) {
+ alternative_service.host = canonical->second.host();
+ if (IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key)) {
+ ++it;
+ continue;
+ }
+ alternative_service.host = origin.host();
+ } else if (IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key)) {
+ ++it;
+ continue;
+ }
+ if (alternative_service.protocol == kProtoQUIC) {
+ valid_alternative_service_infos.push_back(
+ AlternativeServiceInfo::CreateQuicAlternativeServiceInfo(
+ alternative_service, it->expiration(),
+ it->advertised_versions()));
+ } else {
+ valid_alternative_service_infos.push_back(
+ AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
+ alternative_service, it->expiration()));
+ }
+ ++it;
+ }
+ if (service_info->empty())
+ server_info_map_.EraseIfEmpty(map_it);
+ return valid_alternative_service_infos;
+}
+
+void HttpServerProperties::SetAlternativeServicesInternal(
+ const url::SchemeHostPort& origin,
+ const net::NetworkIsolationKey& network_isolation_key,
+ const AlternativeServiceInfoVector& alternative_service_info_vector) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(origin.scheme(), url::kWsScheme);
+ DCHECK_NE(origin.scheme(), url::kWssScheme);
+
+ if (alternative_service_info_vector.empty()) {
+ RemoveAltSvcCanonicalHost(origin, network_isolation_key);
+ // Don't bother moving to front when erasing information.
+ auto it = server_info_map_.Peek(
+ CreateServerInfoKey(origin, network_isolation_key));
+
+ if (it == server_info_map_.end() ||
+ !it->second.alternative_services.has_value()) {
+ return;
+ }
+
+ it->second.alternative_services.reset();
+ server_info_map_.EraseIfEmpty(it);
+ MaybeQueueWriteProperties();
+ return;
+ }
+
+ auto it = server_info_map_.GetOrPut(
+ CreateServerInfoKey(origin, network_isolation_key));
+ bool need_update_pref = true;
+ if (it->second.alternative_services.has_value()) {
+ DCHECK(!it->second.empty());
+ if (it->second.alternative_services->size() ==
+ alternative_service_info_vector.size()) {
+ const base::Time now = clock_->Now();
+ need_update_pref = false;
+ auto new_it = alternative_service_info_vector.begin();
+ for (const auto& old : *it->second.alternative_services) {
+ // Persist to disk immediately if new entry has different scheme, host,
+ // or port.
+ if (old.alternative_service() != new_it->alternative_service()) {
+ need_update_pref = true;
+ break;
+ }
+ // Also persist to disk if new expiration it more that twice as far or
+ // less than half as far in the future.
+ base::Time old_time = old.expiration();
+ base::Time new_time = new_it->expiration();
+ if (new_time - now > 2 * (old_time - now) ||
+ 2 * (new_time - now) < (old_time - now)) {
+ need_update_pref = true;
+ break;
+ }
+ // Also persist to disk if new entry has a different list of advertised
+ // versions.
+ if (old.advertised_versions() != new_it->advertised_versions()) {
+ need_update_pref = true;
+ break;
+ }
+ ++new_it;
+ }
+ }
+ }
+
+ const bool previously_no_alternative_services =
+ (GetIteratorWithAlternativeServiceInfo(origin, network_isolation_key) ==
+ server_info_map_.end());
+
+ it->second.alternative_services = alternative_service_info_vector;
+
+ if (previously_no_alternative_services &&
+ !GetAlternativeServiceInfos(origin, network_isolation_key).empty()) {
+ // TODO(rch): Consider the case where multiple requests are started
+ // before the first completes. In this case, only one of the jobs
+ // would reach this code, whereas all of them should should have.
+ HistogramAlternateProtocolUsage(ALTERNATE_PROTOCOL_USAGE_MAPPING_MISSING,
+ false);
+ }
+
+ // If this host ends with a canonical suffix, then set it as the
+ // canonical host.
+ const char* kCanonicalScheme = "https";
+ if (origin.scheme() == kCanonicalScheme) {
+ const std::string* canonical_suffix = GetCanonicalSuffix(origin.host());
+ if (canonical_suffix != nullptr) {
+ url::SchemeHostPort canonical_server(kCanonicalScheme, *canonical_suffix,
+ origin.port());
+ canonical_alt_svc_map_[CreateServerInfoKey(
+ canonical_server, network_isolation_key)] = origin;
+ }
+ }
+
+ if (need_update_pref)
+ MaybeQueueWriteProperties();
+}
+
+void HttpServerProperties::SetServerNetworkStatsInternal(
+ url::SchemeHostPort server,
+ const NetworkIsolationKey& network_isolation_key,
+ ServerNetworkStats stats) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+
+ auto server_info = server_info_map_.GetOrPut(
+ CreateServerInfoKey(std::move(server), network_isolation_key));
+ bool changed = !server_info->second.server_network_stats.has_value() ||
+ server_info->second.server_network_stats.value() != stats;
+
+ if (changed) {
+ server_info->second.server_network_stats = stats;
+ MaybeQueueWriteProperties();
+ }
+}
+
+void HttpServerProperties::ClearServerNetworkStatsInternal(
+ url::SchemeHostPort server,
+ const NetworkIsolationKey& network_isolation_key) {
+ auto server_info = server_info_map_.Peek(
+ CreateServerInfoKey(std::move(server), network_isolation_key));
+ // If stats are empty, nothing to do.
+ if (server_info == server_info_map_.end() ||
+ !server_info->second.server_network_stats.has_value()) {
+ return;
+ }
+
+ // Otherwise, clear and delete if needed. No need to bring to front of MRU
+ // cache when clearing data.
+ server_info->second.server_network_stats.reset();
+ if (server_info->second.empty())
+ server_info_map_.EraseIfEmpty(server_info);
+ MaybeQueueWriteProperties();
+}
+
+const ServerNetworkStats* HttpServerProperties::GetServerNetworkStatsInternal(
+ url::SchemeHostPort server,
+ const NetworkIsolationKey& network_isolation_key) {
+ DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+ DCHECK_NE(server.scheme(), url::kWsScheme);
+ DCHECK_NE(server.scheme(), url::kWssScheme);
+
+ auto server_info = server_info_map_.Get(
+ CreateServerInfoKey(std::move(server), network_isolation_key));
+ if (server_info == server_info_map_.end() ||
+ !server_info->second.server_network_stats.has_value()) {
+ return nullptr;
+ }
+ return &server_info->second.server_network_stats.value();
+}
+
+HttpServerProperties::QuicServerInfoMapKey
+HttpServerProperties::CreateQuicServerInfoKey(
+ const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key) const {
+ return QuicServerInfoMapKey(server_id, network_isolation_key,
+ use_network_isolation_key_);
+}
+
HttpServerProperties::ServerInfoMapKey
HttpServerProperties::CreateServerInfoKey(
const url::SchemeHostPort& server,
@@ -812,7 +988,8 @@ HttpServerProperties::GetIteratorWithAlternativeServiceInfo(
if (alternative_service.host.empty()) {
alternative_service.host = canonical_server.host();
}
- if (!IsAlternativeServiceBroken(alternative_service)) {
+ if (!IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key)) {
return it;
}
}
@@ -821,7 +998,7 @@ HttpServerProperties::GetIteratorWithAlternativeServiceInfo(
return server_info_map_.end();
}
-HttpServerProperties::CanonicalAltSvcMap::const_iterator
+HttpServerProperties::CanonicalMap::const_iterator
HttpServerProperties::GetCanonicalAltSvcHost(
const url::SchemeHostPort& server,
const net::NetworkIsolationKey& network_isolation_key) const {
@@ -839,15 +1016,19 @@ HttpServerProperties::GetCanonicalAltSvcHost(
CreateServerInfoKey(canonical_server, network_isolation_key));
}
-HttpServerProperties::CanonicalServerInfoMap::const_iterator
+HttpServerProperties::QuicCanonicalMap::const_iterator
HttpServerProperties::GetCanonicalServerInfoHost(
- const quic::QuicServerId& server) const {
- const std::string* canonical_suffix = GetCanonicalSuffix(server.host());
+ const QuicServerInfoMapKey& key) const {
+ const std::string* canonical_suffix =
+ GetCanonicalSuffix(key.server_id.host());
if (canonical_suffix == nullptr)
return canonical_server_info_map_.end();
- HostPortPair canonical_pair(*canonical_suffix, server.port());
- return canonical_server_info_map_.find(canonical_pair);
+ quic::QuicServerId canonical_server_id(*canonical_suffix,
+ key.server_id.privacy_mode_enabled(),
+ key.server_id.port());
+ return canonical_server_info_map_.find(
+ CreateQuicServerInfoKey(canonical_server_id, key.network_isolation_key));
}
void HttpServerProperties::RemoveAltSvcCanonicalHost(
@@ -861,12 +1042,15 @@ void HttpServerProperties::RemoveAltSvcCanonicalHost(
}
void HttpServerProperties::UpdateCanonicalServerInfoMap(
- const quic::QuicServerId& server) {
- const std::string* suffix = GetCanonicalSuffix(server.host());
- if (suffix) {
- HostPortPair canonical_pair(*suffix, server.port());
- canonical_server_info_map_[canonical_pair] = server;
- }
+ const QuicServerInfoMapKey& key) {
+ const std::string* suffix = GetCanonicalSuffix(key.server_id.host());
+ if (!suffix)
+ return;
+ quic::QuicServerId canonical_server(
+ *suffix, key.server_id.privacy_mode_enabled(), key.server_id.port());
+
+ canonical_server_info_map_[CreateQuicServerInfoKey(
+ canonical_server, key.network_isolation_key)] = key.server_id;
}
const std::string* HttpServerProperties::GetCanonicalSuffix(
@@ -884,7 +1068,7 @@ const std::string* HttpServerProperties::GetCanonicalSuffix(
void HttpServerProperties::OnPrefsLoaded(
std::unique_ptr<ServerInfoMap> server_info_map,
- const IPAddress& last_quic_address,
+ const IPAddress& last_local_address_when_quic_worked,
std::unique_ptr<QuicServerInfoMap> quic_server_info_map,
std::unique_ptr<BrokenAlternativeServiceList>
broken_alternative_service_list,
@@ -898,7 +1082,7 @@ void HttpServerProperties::OnPrefsLoaded(
// service fields).
if (server_info_map) {
OnServerInfoLoaded(std::move(server_info_map));
- OnSupportsQuicLoaded(last_quic_address);
+ OnLastLocalAddressWhenQuicWorkedLoaded(last_local_address_when_quic_worked);
OnQuicServerInfoMapLoaded(std::move(quic_server_info_map));
if (recently_broken_alternative_services) {
DCHECK(broken_alternative_service_list);
@@ -989,8 +1173,9 @@ void HttpServerProperties::OnServerInfoLoaded(
}
}
-void HttpServerProperties::OnSupportsQuicLoaded(const IPAddress& last_address) {
- last_quic_address_ = last_address;
+void HttpServerProperties::OnLastLocalAddressWhenQuicWorkedLoaded(
+ const IPAddress& last_local_address_when_quic_worked) {
+ last_local_address_when_quic_worked_ = last_local_address_when_quic_worked;
}
void HttpServerProperties::OnQuicServerInfoMapLoaded(
@@ -1060,7 +1245,7 @@ void HttpServerProperties::WriteProperties(base::OnceClosure callback) const {
server_info_map_,
base::BindRepeating(&HttpServerProperties::GetCanonicalSuffix,
base::Unretained(this)),
- last_quic_address_, quic_server_info_map_,
+ last_local_address_when_quic_worked_, quic_server_info_map_,
broken_alternative_services_.broken_alternative_service_list(),
broken_alternative_services_.recently_broken_alternative_services(),
std::move(callback));
diff --git a/chromium/net/http/http_server_properties.h b/chromium/net/http/http_server_properties.h
index 8ef3bd6426b..dda83011e07 100644
--- a/chromium/net/http/http_server_properties.h
+++ b/chromium/net/http/http_server_properties.h
@@ -46,7 +46,6 @@ class Value;
namespace net {
-class HostPortPair;
class HttpServerPropertiesManager;
class IPAddress;
class NetLog;
@@ -90,10 +89,6 @@ const int kMaxRecentlyBrokenAlternativeServiceEntries = 200;
// Store at most 5 MRU QUIC servers by default. This is mainly used by cronet.
const int kDefaultMaxQuicServerEntries = 5;
-// Max number of quic servers to store is not hardcoded and can be set.
-// Because of this, QuicServerInfoMap will not be a subclass of MRUCache.
-typedef base::MRUCache<quic::QuicServerId, std::string> QuicServerInfoMap;
-
// The interface for setting/retrieving the HTTP server properties.
// Currently, this class manages servers':
// * HTTP/2 support;
@@ -169,15 +164,21 @@ class NET_EXPORT HttpServerProperties
struct NET_EXPORT ServerInfoMapKey {
// If |use_network_isolation_key| is false, an empty NetworkIsolationKey is
- // used instead of |network_isolation_key|.
- ServerInfoMapKey(const url::SchemeHostPort& server,
+ // used instead of |network_isolation_key|. Note that |server| can be passed
+ // in via std::move(), since most callsites can pass a recently created
+ // SchemeHostPort.
+ ServerInfoMapKey(url::SchemeHostPort server,
const NetworkIsolationKey& network_isolation_key,
bool use_network_isolation_key);
~ServerInfoMapKey();
bool operator<(const ServerInfoMapKey& other) const;
+ // IMPORTANT: The constructor normalizes the scheme so that "ws" is replaced
+ // by "http" and "wss" by "https", so this should never be compared directly
+ // with values passed into to HttpServerProperties methods.
url::SchemeHostPort server;
+
NetworkIsolationKey network_isolation_key;
};
@@ -200,6 +201,31 @@ class NET_EXPORT HttpServerProperties
DISALLOW_COPY_AND_ASSIGN(ServerInfoMap);
};
+ struct NET_EXPORT QuicServerInfoMapKey {
+ // If |use_network_isolation_key| is false, an empty NetworkIsolationKey is
+ // used instead of |network_isolation_key|.
+ QuicServerInfoMapKey(const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key,
+ bool use_network_isolation_key);
+ ~QuicServerInfoMapKey();
+
+ bool operator<(const QuicServerInfoMapKey& other) const;
+
+ // Used in tests.
+ bool operator==(const QuicServerInfoMapKey& other) const;
+
+ quic::QuicServerId server_id;
+ NetworkIsolationKey network_isolation_key;
+ };
+
+ // Max number of quic servers to store is not hardcoded and can be set.
+ // Because of this, QuicServerInfoMap will not be a subclass of MRUCache.
+ // Separate from ServerInfoMap because the key includes privacy mode (Since
+ // this is analogous to the SSL session cache, which has separate caches for
+ // privacy mode), and each entry can be quite large, so it has its own size
+ // limit, which is much smaller than the ServerInfoMap's limit.
+ typedef base::MRUCache<QuicServerInfoMapKey, std::string> QuicServerInfoMap;
+
// If a |pref_delegate| is specified, it will be used to read/write the
// properties to a pref file. Writes are rate limited to improve performance.
//
@@ -216,10 +242,6 @@ class NET_EXPORT HttpServerProperties
~HttpServerProperties() override;
- // Returns the SchemeHostPort for |url|, with the exception that it replaces
- // "wss" with "https" and "ws" with "http", so they're grouped together.
- static url::SchemeHostPort GetNormalizedSchemeHostPort(const GURL& url);
-
// Deletes all data. If |callback| is non-null, flushes data to disk
// and invokes the callback asynchronously once changes have been written to
// disk.
@@ -297,34 +319,42 @@ class NET_EXPORT HttpServerProperties
const net::NetworkIsolationKey& network_isolation_key,
const AlternativeServiceInfoVector& alternative_service_info_vector);
- // Marks |alternative_service| as broken.
- // |alternative_service.host| must not be empty.
+ // Marks |alternative_service| as broken in the context of
+ // |network_isolation_key|. |alternative_service.host| must not be empty.
void MarkAlternativeServiceBroken(
- const AlternativeService& alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key);
- // Marks |alternative_service| as broken until the default network changes.
+ // Marks |alternative_service| as broken in the context of
+ // |network_isolation_key| until the default network changes.
// |alternative_service.host| must not be empty.
void MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- const AlternativeService& alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key);
- // Marks |alternative_service| as recently broken.
- // |alternative_service.host| must not be empty.
+ // Marks |alternative_service| as recently broken in the context of
+ // |network_isolation_key|. |alternative_service.host| must not be empty.
void MarkAlternativeServiceRecentlyBroken(
- const AlternativeService& alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key);
- // Returns true iff |alternative_service| is currently broken.
- // |alternative_service.host| must not be empty.
+ // Returns true iff |alternative_service| is currently broken in the context
+ // of |network_isolation_key|. |alternative_service.host| must not be empty.
bool IsAlternativeServiceBroken(
- const AlternativeService& alternative_service) const;
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key) const;
- // Returns true iff |alternative_service| was recently broken.
- // |alternative_service.host| must not be empty.
+ // Returns true iff |alternative_service| was recently broken in the context
+ // of |network_isolation_key|. |alternative_service.host| must not be empty.
bool WasAlternativeServiceRecentlyBroken(
- const AlternativeService& alternative_service);
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key);
- // Confirms that |alternative_service| is working.
- // |alternative_service.host| must not be empty.
- void ConfirmAlternativeService(const AlternativeService& alternative_service);
+ // Confirms that |alternative_service| is working in the context of
+ // |network_isolation_key|. |alternative_service.host| must not be empty.
+ void ConfirmAlternativeService(
+ const AlternativeService& alternative_service,
+ const net::NetworkIsolationKey& network_isolation_key);
// Called when the default network changes.
// Clears all the alternative services that were marked broken until the
@@ -335,9 +365,14 @@ class NET_EXPORT HttpServerProperties
// Empty alternative service hostnames will be printed as such.
std::unique_ptr<base::Value> GetAlternativeServiceInfoAsValue() const;
- bool GetSupportsQuic(IPAddress* last_address) const;
-
- void SetSupportsQuic(bool used_quic, const IPAddress& last_address);
+ // Tracks the last local address when QUIC was known to work. The address
+ // cannot be set to an empty address - use
+ // ClearLastLocalAddressWhenQuicWorked() if it needs to be cleared.
+ bool WasLastLocalAddressWhenQuicWorked(const IPAddress& local_address) const;
+ bool HasLastLocalAddressWhenQuicWorked() const;
+ void SetLastLocalAddressWhenQuicWorked(
+ IPAddress last_local_address_when_quic_worked);
+ void ClearLastLocalAddressWhenQuicWorked();
// Sets |stats| for |server|.
void SetServerNetworkStats(const url::SchemeHostPort& server,
@@ -354,12 +389,17 @@ class NET_EXPORT HttpServerProperties
const url::SchemeHostPort& server,
const NetworkIsolationKey& network_isolation_key);
- // Save QuicServerInfo (in std::string form) for the given |server_id|.
+ // Save QuicServerInfo (in std::string form) for the given |server_id|, in the
+ // context of |network_isolation_key|.
void SetQuicServerInfo(const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key,
const std::string& server_info);
- // Get QuicServerInfo (in std::string form) for the given |server_id|.
- const std::string* GetQuicServerInfo(const quic::QuicServerId& server_id);
+ // Get QuicServerInfo (in std::string form) for the given |server_id|, in the
+ // context of |network_isolation_key|.
+ const std::string* GetQuicServerInfo(
+ const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key);
// Returns all persistent QuicServerInfo objects.
const QuicServerInfoMap& quic_server_info_map() const;
@@ -376,7 +416,8 @@ class NET_EXPORT HttpServerProperties
// BrokenAlternativeServices::Delegate method.
void OnExpireBrokenAlternativeService(
- const AlternativeService& expired_alternative_service) override;
+ const AlternativeService& expired_alternative_service,
+ const NetworkIsolationKey& network_isolation_key) override;
static base::TimeDelta GetUpdatePrefsDelayForTesting();
@@ -387,8 +428,9 @@ class NET_EXPORT HttpServerProperties
std::unique_ptr<ServerInfoMap> server_info_map) {
OnServerInfoLoaded(std::move(server_info_map));
}
- void OnSupportsQuicLoadedForTesting(const IPAddress& last_address) {
- OnSupportsQuicLoaded(last_address);
+ void OnLastLocalAddressWhenQuicWorkedForTesting(
+ const IPAddress& last_local_address_when_quic_worked) {
+ OnLastLocalAddressWhenQuicWorkedLoaded(last_local_address_when_quic_worked);
}
void OnQuicServerInfoMapLoadedForTesting(
std::unique_ptr<QuicServerInfoMap> quic_server_info_map) {
@@ -423,17 +465,61 @@ class NET_EXPORT HttpServerProperties
// friendness is no longer required.
friend class HttpServerPropertiesPeer;
- typedef base::flat_map<ServerInfoMapKey, url::SchemeHostPort>
- CanonicalAltSvcMap;
- typedef base::flat_map<HostPortPair, quic::QuicServerId>
- CanonicalServerInfoMap;
+ typedef base::flat_map<ServerInfoMapKey, url::SchemeHostPort> CanonicalMap;
+ typedef base::flat_map<QuicServerInfoMapKey, quic::QuicServerId>
+ QuicCanonicalMap;
typedef std::vector<std::string> CanonicalSuffixList;
- // Helper function to use the passed in parameters and
- // |use_network_isolation_key_| to create a ServerInfoMapKey.
+ // Internal implementations of public methods. SchemeHostPort argument must be
+ // normalized before calling (ws/wss replaced with http/https). Use wrapped
+ // functions instead of putting the normalization in the public functions to
+ // reduce chance of regression - normalization in ServerInfoMapKey's
+ // constructor would leave |server.scheme| as wrong if not access through the
+ // key, and explicit normalization to create |normalized_server| means the one
+ // with the incorrect scheme would still be available.
+ bool GetSupportsSpdyInternal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key);
+ void SetSupportsSpdyInternal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key,
+ bool supports_spdy);
+ bool RequiresHTTP11Internal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key);
+ void SetHTTP11RequiredInternal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key);
+ void MaybeForceHTTP11Internal(
+ url::SchemeHostPort server,
+ const net::NetworkIsolationKey& network_isolation_key,
+ SSLConfig* ssl_config);
+ AlternativeServiceInfoVector GetAlternativeServiceInfosInternal(
+ const url::SchemeHostPort& origin,
+ const net::NetworkIsolationKey& network_isolation_key);
+ void SetAlternativeServicesInternal(
+ const url::SchemeHostPort& origin,
+ const net::NetworkIsolationKey& network_isolation_key,
+ const AlternativeServiceInfoVector& alternative_service_info_vector);
+ void SetServerNetworkStatsInternal(
+ url::SchemeHostPort server,
+ const NetworkIsolationKey& network_isolation_key,
+ ServerNetworkStats stats);
+ void ClearServerNetworkStatsInternal(
+ url::SchemeHostPort server,
+ const NetworkIsolationKey& network_isolation_key);
+ const ServerNetworkStats* GetServerNetworkStatsInternal(
+ url::SchemeHostPort server,
+ const NetworkIsolationKey& network_isolation_key);
+
+ // Helper functions to use the passed in parameters and
+ // |use_network_isolation_key_| to create a [Quic]ServerInfoMapKey.
ServerInfoMapKey CreateServerInfoKey(
const url::SchemeHostPort& server,
const NetworkIsolationKey& network_isolation_key) const;
+ QuicServerInfoMapKey CreateQuicServerInfoKey(
+ const quic::QuicServerId& server_id,
+ const NetworkIsolationKey& network_isolation_key) const;
// Return the iterator for |server| in the context of |network_isolation_key|,
// or for its canonical host, or end. Skips over ServerInfos without
@@ -444,15 +530,15 @@ class NET_EXPORT HttpServerProperties
// Return the canonical host for |server| in the context of
// |network_isolation_key|, or end if none exists.
- CanonicalAltSvcMap::const_iterator GetCanonicalAltSvcHost(
+ CanonicalMap::const_iterator GetCanonicalAltSvcHost(
const url::SchemeHostPort& server,
const net::NetworkIsolationKey& network_isolation_key) const;
// Return the canonical host with the same canonical suffix as |server|.
// The returned canonical host can be used to search for server info in
// |quic_server_info_map_|. Return 'end' the host doesn't exist.
- CanonicalServerInfoMap::const_iterator GetCanonicalServerInfoHost(
- const quic::QuicServerId& server) const;
+ QuicCanonicalMap::const_iterator GetCanonicalServerInfoHost(
+ const QuicServerInfoMapKey& key) const;
// Remove the canonical alt-svc host for |server| with
// |network_isolation_key|.
@@ -461,29 +547,29 @@ class NET_EXPORT HttpServerProperties
const NetworkIsolationKey& network_isolation_key);
// Update |canonical_server_info_map_| with the new canonical host.
- // The |server| should have the corresponding server info associated with it
+ // The |key| should have the corresponding server info associated with it
// in |quic_server_info_map_|. If |canonical_server_info_map_| doesn't
- // have an entry associated with |server|, the method will add one.
- void UpdateCanonicalServerInfoMap(const quic::QuicServerId& server);
+ // have an entry associated with |key|, the method will add one.
+ void UpdateCanonicalServerInfoMap(const QuicServerInfoMapKey& key);
// Returns the canonical host suffix for |host|, or nullptr if none
// exists.
const std::string* GetCanonicalSuffix(const std::string& host) const;
- void OnPrefsLoaded(
- std::unique_ptr<ServerInfoMap> server_info_map,
- const IPAddress& last_quic_address,
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map,
- std::unique_ptr<BrokenAlternativeServiceList>
- broken_alternative_service_list,
- std::unique_ptr<RecentlyBrokenAlternativeServices>
- recently_broken_alternative_services);
+ void OnPrefsLoaded(std::unique_ptr<ServerInfoMap> server_info_map,
+ const IPAddress& last_local_address_when_quic_worked,
+ std::unique_ptr<QuicServerInfoMap> quic_server_info_map,
+ std::unique_ptr<BrokenAlternativeServiceList>
+ broken_alternative_service_list,
+ std::unique_ptr<RecentlyBrokenAlternativeServices>
+ recently_broken_alternative_services);
// These methods are called by OnPrefsLoaded to handle merging properties
// loaded from prefs with what has been learned while waiting for prefs to
// load.
void OnServerInfoLoaded(std::unique_ptr<ServerInfoMap> server_info_map);
- void OnSupportsQuicLoaded(const IPAddress& last_address);
+ void OnLastLocalAddressWhenQuicWorkedLoaded(
+ const IPAddress& last_local_address_when_quic_worked);
void OnQuicServerInfoMapLoaded(
std::unique_ptr<QuicServerInfoMap> quic_server_info_map);
void OnBrokenAndRecentlyBrokenAlternativeServicesLoaded(
@@ -524,11 +610,12 @@ class NET_EXPORT HttpServerProperties
BrokenAlternativeServices broken_alternative_services_;
- IPAddress last_quic_address_;
+ IPAddress last_local_address_when_quic_worked_;
// Contains a map of servers which could share the same alternate protocol.
- // Map from a Canonical scheme/host/port (host is some postfix of host names)
- // to an actual origin, which has a plausible alternate protocol mapping.
- CanonicalAltSvcMap canonical_alt_svc_map_;
+ // Map from a Canonical scheme/host/port/NIK (host is some postfix of host
+ // names) to an actual origin, which has a plausible alternate protocol
+ // mapping.
+ CanonicalMap canonical_alt_svc_map_;
// Contains list of suffixes (for example ".c.youtube.com",
// ".googlevideo.com", ".googleusercontent.com") of canonical hostnames.
@@ -543,7 +630,7 @@ class NET_EXPORT HttpServerProperties
// map exists solely to improve the search performance. It only contains
// derived data that can be recalculated by traversing
// |quic_server_info_map_|.
- CanonicalServerInfoMap canonical_server_info_map_;
+ QuicCanonicalMap canonical_server_info_map_;
size_t max_server_configs_stored_in_properties_;
diff --git a/chromium/net/http/http_server_properties_manager.cc b/chromium/net/http/http_server_properties_manager.cc
index 33c8e5aebd2..37f54cdf803 100644
--- a/chromium/net/http/http_server_properties_manager.cc
+++ b/chromium/net/http/http_server_properties_manager.cc
@@ -38,6 +38,7 @@ const int kVersionNumber = 5;
const int kMaxBrokenAlternativeServicesToPersist = 200;
const char kServerKey[] = "server";
+const char kQuicServerIdKey[] = "server_id";
const char kNetworkIsolationKey[] = "isolation";
const char kVersionKey[] = "version";
const char kServersKey[] = "servers";
@@ -113,6 +114,23 @@ void AddAlternativeServiceFieldsToDictionaryValue(
NextProtoToString(alternative_service.protocol));
}
+// Fails in the case of NetworkIsolationKeys that can't be persisted to disk,
+// like unique origins.
+bool TryAddBrokenAlternativeServiceFieldsToDictionaryValue(
+ const BrokenAlternativeService& broken_alt_service,
+ base::DictionaryValue* dict) {
+ base::Value network_isolation_key_value;
+ if (!broken_alt_service.network_isolation_key.ToValue(
+ &network_isolation_key_value)) {
+ return false;
+ }
+
+ dict->SetKey(kNetworkIsolationKey, std::move(network_isolation_key_value));
+ AddAlternativeServiceFieldsToDictionaryValue(
+ broken_alt_service.alternative_service, dict);
+ return true;
+}
+
quic::QuicServerId QuicServerIdFromString(const std::string& str) {
GURL url(str);
if (!url.is_valid()) {
@@ -131,6 +149,36 @@ std::string QuicServerIdToString(const quic::QuicServerId& server_id) {
(server_id.privacy_mode_enabled() ? "/private" : "");
}
+// Takes in a base::Value representing a dictionary, and whether
+// NetworkIsolationKeys are enabled for HttpServerProperties, and extracts the
+// NetworkIsolationKey stored with the |kNetworkIsolationKey| in the dictionary,
+// and writes it to |out_network_isolation_key|. Returns false if unable to load
+// a NetworkIsolationKey, or the NetworkIsolationKey is non-empty, but
+// |use_network_isolation_key| is false.
+bool GetNetworkIsolationKeyFromDict(
+ const base::Value& dict,
+ bool use_network_isolation_key,
+ NetworkIsolationKey* out_network_isolation_key) {
+ DCHECK(dict.is_dict());
+
+ const base::Value* network_isolation_key_value =
+ dict.FindKey(kNetworkIsolationKey);
+ NetworkIsolationKey network_isolation_key;
+ if (!network_isolation_key_value ||
+ !NetworkIsolationKey::FromValue(*network_isolation_key_value,
+ &network_isolation_key)) {
+ return false;
+ }
+
+ // Fail if NetworkIsolationKeys are disabled, but the entry has a non-empty
+ // NetworkIsolationKey.
+ if (!use_network_isolation_key && !network_isolation_key.IsEmpty())
+ return false;
+
+ *out_network_isolation_key = std::move(network_isolation_key);
+ return true;
+}
+
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -167,8 +215,9 @@ HttpServerPropertiesManager::~HttpServerPropertiesManager() {
void HttpServerPropertiesManager::ReadPrefs(
std::unique_ptr<HttpServerProperties::ServerInfoMap>* server_info_map,
- IPAddress* last_quic_address,
- std::unique_ptr<QuicServerInfoMap>* quic_server_info_map,
+ IPAddress* last_local_address_when_quic_worked,
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>*
+ quic_server_info_map,
std::unique_ptr<BrokenAlternativeServiceList>*
broken_alternative_service_list,
std::unique_ptr<RecentlyBrokenAlternativeServices>*
@@ -214,11 +263,13 @@ void HttpServerPropertiesManager::ReadPrefs(
return;
}
- ReadSupportsQuic(*http_server_properties_dict, last_quic_address);
+ ReadLastLocalAddressWhenQuicWorked(*http_server_properties_dict,
+ last_local_address_when_quic_worked);
*server_info_map = std::make_unique<HttpServerProperties::ServerInfoMap>();
- *quic_server_info_map = std::make_unique<QuicServerInfoMap>(
- max_server_configs_stored_in_properties_);
+ *quic_server_info_map =
+ std::make_unique<HttpServerProperties::QuicServerInfoMap>(
+ max_server_configs_stored_in_properties_);
bool use_network_isolation_key = base::FeatureList::IsEnabled(
features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
@@ -238,6 +289,7 @@ void HttpServerPropertiesManager::ReadPrefs(
}
AddToQuicServerInfoMap(*http_server_properties_dict,
+ use_network_isolation_key,
quic_server_info_map->get());
// Read list containing broken and recently-broken alternative services, if
@@ -261,7 +313,8 @@ void HttpServerPropertiesManager::ReadPrefs(
continue;
}
AddToBrokenAlternativeServices(
- *entry_dict, broken_alternative_service_list->get(),
+ *entry_dict, use_network_isolation_key,
+ broken_alternative_service_list->get(),
recently_broken_alternative_services->get());
}
}
@@ -287,6 +340,7 @@ void HttpServerPropertiesManager::ReadPrefs(
void HttpServerPropertiesManager::AddToBrokenAlternativeServices(
const base::DictionaryValue& broken_alt_svc_entry_dict,
+ bool use_network_isolation_key,
BrokenAlternativeServiceList* broken_alternative_service_list,
RecentlyBrokenAlternativeServices* recently_broken_alternative_services) {
AlternativeService alt_service;
@@ -296,6 +350,13 @@ void HttpServerPropertiesManager::AddToBrokenAlternativeServices(
return;
}
+ NetworkIsolationKey network_isolation_key;
+ if (!GetNetworkIsolationKeyFromDict(broken_alt_svc_entry_dict,
+ use_network_isolation_key,
+ &network_isolation_key)) {
+ return;
+ }
+
// Each entry must contain either broken-count and/or broken-until fields.
bool contains_broken_count_or_broken_until = false;
@@ -313,7 +374,10 @@ void HttpServerPropertiesManager::AddToBrokenAlternativeServices(
DVLOG(1) << "Broken alternative service has negative broken-count.";
return;
}
- recently_broken_alternative_services->Put(alt_service, broken_count);
+ recently_broken_alternative_services->Put(
+ BrokenAlternativeService(alt_service, network_isolation_key,
+ use_network_isolation_key),
+ broken_count);
contains_broken_count_or_broken_until = true;
}
@@ -335,8 +399,10 @@ void HttpServerPropertiesManager::AddToBrokenAlternativeServices(
base::TimeTicks expiration_time_ticks =
clock_->NowTicks() +
(base::Time::FromTimeT(expiration_time_t) - base::Time::Now());
- broken_alternative_service_list->push_back(
- std::make_pair(alt_service, expiration_time_ticks));
+ broken_alternative_service_list->push_back(std::make_pair(
+ BrokenAlternativeService(alt_service, network_isolation_key,
+ use_network_isolation_key),
+ expiration_time_ticks));
contains_broken_count_or_broken_until = true;
}
@@ -352,22 +418,15 @@ void HttpServerPropertiesManager::AddServerData(
bool use_network_isolation_key) {
// Get server's scheme/host/pair.
const std::string* server_str = server_dict.FindStringKey(kServerKey);
- const base::Value* network_isolation_key_value =
- server_dict.FindKey(kNetworkIsolationKey);
NetworkIsolationKey network_isolation_key;
// Can't load entry if server name missing, or if the network isolation key is
// missing or invalid.
- if (!server_str || !network_isolation_key_value ||
- !NetworkIsolationKey::FromValue(*network_isolation_key_value,
+ if (!server_str ||
+ !GetNetworkIsolationKeyFromDict(server_dict, use_network_isolation_key,
&network_isolation_key)) {
return;
}
- // If the entry includes a non-empty NetworkIsolationKey, but using a network
- // isolation key is currently disabled, throw away the entry.
- if (!network_isolation_key.IsEmpty() && !use_network_isolation_key)
- return;
-
url::SchemeHostPort spdy_server((GURL(*server_str)));
if (spdy_server.host().empty()) {
DVLOG(1) << "Malformed http_server_properties for server: " << server_str;
@@ -382,10 +441,10 @@ void HttpServerPropertiesManager::AddServerData(
ParseNetworkStats(spdy_server, server_dict, &server_info);
if (!server_info.empty()) {
- server_info_map->Put(
- HttpServerProperties::ServerInfoMapKey(
- spdy_server, network_isolation_key, use_network_isolation_key),
- std::move(server_info));
+ server_info_map->Put(HttpServerProperties::ServerInfoMapKey(
+ std::move(spdy_server), network_isolation_key,
+ use_network_isolation_key),
+ std::move(server_info));
}
}
@@ -536,9 +595,9 @@ bool HttpServerPropertiesManager::ParseAlternativeServiceInfo(
return true;
}
-void HttpServerPropertiesManager::ReadSupportsQuic(
+void HttpServerPropertiesManager::ReadLastLocalAddressWhenQuicWorked(
const base::DictionaryValue& http_server_properties_dict,
- IPAddress* last_quic_address) {
+ IPAddress* last_local_address_when_quic_worked) {
const base::DictionaryValue* supports_quic_dict = nullptr;
if (!http_server_properties_dict.GetDictionaryWithoutPathExpansion(
kSupportsQuicKey, &supports_quic_dict)) {
@@ -556,7 +615,7 @@ void HttpServerPropertiesManager::ReadSupportsQuic(
std::string address;
if (!supports_quic_dict->GetStringWithoutPathExpansion(kAddressKey,
&address) ||
- !last_quic_address->AssignFromIPLiteral(address)) {
+ !last_local_address_when_quic_worked->AssignFromIPLiteral(address)) {
DVLOG(1) << "Malformed SupportsQuic";
}
}
@@ -587,50 +646,60 @@ void HttpServerPropertiesManager::ParseNetworkStats(
void HttpServerPropertiesManager::AddToQuicServerInfoMap(
const base::DictionaryValue& http_server_properties_dict,
- QuicServerInfoMap* quic_server_info_map) {
- const base::DictionaryValue* quic_servers_dict = nullptr;
- if (!http_server_properties_dict.GetDictionaryWithoutPathExpansion(
- kQuicServers, &quic_servers_dict)) {
+ bool use_network_isolation_key,
+ HttpServerProperties::QuicServerInfoMap* quic_server_info_map) {
+ const base::Value* quic_server_info_list =
+ http_server_properties_dict.FindListKey(kQuicServers);
+ if (!quic_server_info_list) {
DVLOG(1) << "Malformed http_server_properties for quic_servers.";
return;
}
- for (base::DictionaryValue::Iterator it(*quic_servers_dict); !it.IsAtEnd();
- it.Advance()) {
- // Get quic_server_id.
- const std::string& quic_server_id_str = it.key();
+ for (const auto& quic_server_info_value : quic_server_info_list->GetList()) {
+ if (!quic_server_info_value.is_dict())
+ continue;
+
+ const std::string* quic_server_id_str =
+ quic_server_info_value.FindStringKey(kQuicServerIdKey);
+ if (!quic_server_id_str || quic_server_id_str->empty())
+ continue;
quic::QuicServerId quic_server_id =
- QuicServerIdFromString(quic_server_id_str);
+ QuicServerIdFromString(*quic_server_id_str);
if (quic_server_id.host().empty()) {
DVLOG(1) << "Malformed http_server_properties for quic server: "
<< quic_server_id_str;
continue;
}
- const base::DictionaryValue* quic_server_pref_dict = nullptr;
- if (!it.value().GetAsDictionary(&quic_server_pref_dict)) {
+ NetworkIsolationKey network_isolation_key;
+ if (!GetNetworkIsolationKeyFromDict(quic_server_info_value,
+ use_network_isolation_key,
+ &network_isolation_key)) {
DVLOG(1) << "Malformed http_server_properties quic server dict: "
- << quic_server_id_str;
+ << *quic_server_id_str;
continue;
}
- std::string quic_server_info;
- if (!quic_server_pref_dict->GetStringWithoutPathExpansion(
- kServerInfoKey, &quic_server_info)) {
+ const std::string* quic_server_info =
+ quic_server_info_value.FindStringKey(kServerInfoKey);
+ if (!quic_server_info) {
DVLOG(1) << "Malformed http_server_properties quic server info: "
- << quic_server_id_str;
+ << *quic_server_id_str;
continue;
}
- quic_server_info_map->Put(quic_server_id, quic_server_info);
+ quic_server_info_map->Put(
+ HttpServerProperties::QuicServerInfoMapKey(
+ quic_server_id, network_isolation_key, use_network_isolation_key),
+ *quic_server_info);
}
}
void HttpServerPropertiesManager::WriteToPrefs(
const HttpServerProperties::ServerInfoMap& server_info_map,
const GetCannonicalSuffix& get_canonical_suffix,
- const IPAddress& last_quic_address,
- const QuicServerInfoMap& quic_server_info_map,
+ const IPAddress& last_local_address_when_quic_worked,
+ const HttpServerProperties::QuicServerInfoMap& quic_server_info_map,
const BrokenAlternativeServiceList& broken_alternative_service_list,
const RecentlyBrokenAlternativeServices&
recently_broken_alternative_services,
@@ -686,14 +755,14 @@ void HttpServerPropertiesManager::WriteToPrefs(
server_dict.SetStringKey(kServerKey, key.server.Serialize());
server_dict.SetKey(kNetworkIsolationKey,
std::move(network_isolation_key_value));
- servers_list.GetList().emplace_back(std::move(server_dict));
+ servers_list.Append(std::move(server_dict));
}
http_server_properties_dict.SetKey(kServersKey, std::move(servers_list));
http_server_properties_dict.SetInteger(kVersionKey, kVersionNumber);
- if (last_quic_address.IsValid())
- SaveSupportsQuicToPrefs(last_quic_address, &http_server_properties_dict);
+ SaveLastLocalAddressWhenQuicWorkedToPrefs(last_local_address_when_quic_worked,
+ &http_server_properties_dict);
SaveQuicServerInfoMapToServerPrefs(quic_server_info_map,
&http_server_properties_dict);
@@ -746,15 +815,16 @@ void HttpServerPropertiesManager::SaveAlternativeServiceToServerPrefs(
kAlternativeServiceKey, std::move(alternative_service_list));
}
-void HttpServerPropertiesManager::SaveSupportsQuicToPrefs(
- const IPAddress& last_quic_address,
+void HttpServerPropertiesManager::SaveLastLocalAddressWhenQuicWorkedToPrefs(
+ const IPAddress& last_local_address_when_quic_worked,
base::DictionaryValue* http_server_properties_dict) {
- if (!last_quic_address.IsValid())
+ if (!last_local_address_when_quic_worked.IsValid())
return;
auto supports_quic_dict = std::make_unique<base::DictionaryValue>();
supports_quic_dict->SetBoolean(kUsedQuicKey, true);
- supports_quic_dict->SetString(kAddressKey, last_quic_address.ToString());
+ supports_quic_dict->SetString(kAddressKey,
+ last_local_address_when_quic_worked.ToString());
http_server_properties_dict->SetWithoutPathExpansion(
kSupportsQuicKey, std::move(supports_quic_dict));
}
@@ -773,21 +843,31 @@ void HttpServerPropertiesManager::SaveNetworkStatsToServerPrefs(
}
void HttpServerPropertiesManager::SaveQuicServerInfoMapToServerPrefs(
- const QuicServerInfoMap& quic_server_info_map,
+ const HttpServerProperties::QuicServerInfoMap& quic_server_info_map,
base::DictionaryValue* http_server_properties_dict) {
if (quic_server_info_map.empty())
return;
- auto quic_servers_dict = std::make_unique<base::DictionaryValue>();
+ base::Value quic_servers_list(base::Value::Type::LIST);
for (auto it = quic_server_info_map.rbegin();
it != quic_server_info_map.rend(); ++it) {
- const quic::QuicServerId& server_id = it->first;
- auto quic_server_pref_dict = std::make_unique<base::DictionaryValue>();
- quic_server_pref_dict->SetKey(kServerInfoKey, base::Value(it->second));
- quic_servers_dict->SetWithoutPathExpansion(
- QuicServerIdToString(server_id), std::move(quic_server_pref_dict));
+ const HttpServerProperties::QuicServerInfoMapKey& key = it->first;
+
+ base::Value network_isolation_key_value;
+ // Don't save entries with ephemeral NIKs.
+ if (!key.network_isolation_key.ToValue(&network_isolation_key_value))
+ continue;
+
+ base::Value quic_server_pref_dict(base::Value::Type::DICTIONARY);
+ quic_server_pref_dict.SetStringKey(kQuicServerIdKey,
+ QuicServerIdToString(key.server_id));
+ quic_server_pref_dict.SetKey(kNetworkIsolationKey,
+ std::move(network_isolation_key_value));
+ quic_server_pref_dict.SetStringKey(kServerInfoKey, it->second);
+
+ quic_servers_list.GetList().emplace_back(std::move(quic_server_pref_dict));
}
- http_server_properties_dict->SetWithoutPathExpansion(
- kQuicServers, std::move(quic_servers_dict));
+ http_server_properties_dict->SetKey(kQuicServers,
+ std::move(quic_servers_list));
}
void HttpServerPropertiesManager::SaveBrokenAlternativeServicesToPrefs(
@@ -797,8 +877,9 @@ void HttpServerPropertiesManager::SaveBrokenAlternativeServicesToPrefs(
recently_broken_alternative_services,
base::DictionaryValue* http_server_properties_dict) {
if (broken_alternative_service_list.empty() &&
- recently_broken_alternative_services.empty())
+ recently_broken_alternative_services.empty()) {
return;
+ }
// JSON list will be in MRU order according to
// |recently_broken_alternative_services|.
@@ -807,19 +888,22 @@ void HttpServerPropertiesManager::SaveBrokenAlternativeServicesToPrefs(
// Maps recently-broken alternative services to the index where it's stored
// in |json_list|.
- std::unordered_map<AlternativeService, size_t, AlternativeServiceHash>
- json_list_index_map;
+ std::map<BrokenAlternativeService, size_t> json_list_index_map;
if (!recently_broken_alternative_services.empty()) {
for (auto it = recently_broken_alternative_services.rbegin();
it != recently_broken_alternative_services.rend(); ++it) {
- const AlternativeService& alt_service = it->first;
+ const BrokenAlternativeService& broken_alt_service = it->first;
int broken_count = it->second;
+
base::DictionaryValue entry_dict;
- AddAlternativeServiceFieldsToDictionaryValue(alt_service, &entry_dict);
+ if (!TryAddBrokenAlternativeServiceFieldsToDictionaryValue(
+ broken_alt_service, &entry_dict)) {
+ continue;
+ }
entry_dict.SetKey(kBrokenCountKey, base::Value(broken_count));
- json_list_index_map[alt_service] = json_list->GetList().size();
- json_list->GetList().push_back(std::move(entry_dict));
+ json_list_index_map[broken_alt_service] = json_list->GetList().size();
+ json_list->Append(std::move(entry_dict));
}
}
@@ -831,7 +915,7 @@ void HttpServerPropertiesManager::SaveBrokenAlternativeServicesToPrefs(
it != broken_alternative_service_list.end() &&
count < max_broken_alternative_services;
++it, ++count) {
- const AlternativeService& alt_service = it->first;
+ const BrokenAlternativeService& broken_alt_service = it->first;
base::TimeTicks expiration_time_ticks = it->second;
// Convert expiration from TimeTicks to Time to time_t
time_t expiration_time_t =
@@ -839,7 +923,7 @@ void HttpServerPropertiesManager::SaveBrokenAlternativeServicesToPrefs(
.ToTimeT();
int64_t expiration_int64 = static_cast<int64_t>(expiration_time_t);
- auto index_map_it = json_list_index_map.find(alt_service);
+ auto index_map_it = json_list_index_map.find(broken_alt_service);
if (index_map_it != json_list_index_map.end()) {
size_t json_list_index = index_map_it->second;
base::DictionaryValue* entry_dict = nullptr;
@@ -850,15 +934,22 @@ void HttpServerPropertiesManager::SaveBrokenAlternativeServicesToPrefs(
base::Value(base::NumberToString(expiration_int64)));
} else {
base::DictionaryValue entry_dict;
- AddAlternativeServiceFieldsToDictionaryValue(alt_service, &entry_dict);
+ if (!TryAddBrokenAlternativeServiceFieldsToDictionaryValue(
+ broken_alt_service, &entry_dict)) {
+ continue;
+ }
entry_dict.SetKey(kBrokenUntilKey,
base::Value(base::NumberToString(expiration_int64)));
- json_list->GetList().push_back(std::move(entry_dict));
+ json_list->Append(std::move(entry_dict));
}
}
}
- DCHECK(!json_list->empty());
+ // This can happen if all the entries are for NetworkIsolationKeys for opaque
+ // origins, which isn't exactly common, but can theoretically happen.
+ if (json_list->empty())
+ return;
+
http_server_properties_dict->SetWithoutPathExpansion(
kBrokenAlternativeServicesKey, std::move(json_list));
}
@@ -871,18 +962,18 @@ void HttpServerPropertiesManager::OnHttpServerPropertiesLoaded() {
return;
std::unique_ptr<HttpServerProperties::ServerInfoMap> server_info_map;
- IPAddress last_quic_address;
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map;
+ IPAddress last_local_address_when_quic_worked;
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap> quic_server_info_map;
std::unique_ptr<BrokenAlternativeServiceList> broken_alternative_service_list;
std::unique_ptr<RecentlyBrokenAlternativeServices>
recently_broken_alternative_services;
- ReadPrefs(&server_info_map, &last_quic_address, &quic_server_info_map,
- &broken_alternative_service_list,
+ ReadPrefs(&server_info_map, &last_local_address_when_quic_worked,
+ &quic_server_info_map, &broken_alternative_service_list,
&recently_broken_alternative_services);
std::move(on_prefs_loaded_callback_)
- .Run(std::move(server_info_map), last_quic_address,
+ .Run(std::move(server_info_map), last_local_address_when_quic_worked,
std::move(quic_server_info_map),
std::move(broken_alternative_service_list),
std::move(recently_broken_alternative_services));
diff --git a/chromium/net/http/http_server_properties_manager.h b/chromium/net/http/http_server_properties_manager.h
index 73a3123658d..d80595179f3 100644
--- a/chromium/net/http/http_server_properties_manager.h
+++ b/chromium/net/http/http_server_properties_manager.h
@@ -42,8 +42,9 @@ class NET_EXPORT_PRIVATE HttpServerPropertiesManager {
// |recently_broken_alternative_services|, which may be null.
using OnPrefsLoadedCallback = base::OnceCallback<void(
std::unique_ptr<HttpServerProperties::ServerInfoMap> server_info_map,
- const IPAddress& last_quic_address,
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map,
+ const IPAddress& last_local_address_when_quic_worked,
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>
+ quic_server_info_map,
std::unique_ptr<BrokenAlternativeServiceList>
broken_alternative_service_list,
std::unique_ptr<RecentlyBrokenAlternativeServices>
@@ -81,8 +82,9 @@ class NET_EXPORT_PRIVATE HttpServerPropertiesManager {
// simpler API.
void ReadPrefs(
std::unique_ptr<HttpServerProperties::ServerInfoMap>* server_info_map,
- IPAddress* last_quic_address,
- std::unique_ptr<QuicServerInfoMap>* quic_server_info_map,
+ IPAddress* last_local_address_when_quic_worked,
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>*
+ quic_server_info_map,
std::unique_ptr<BrokenAlternativeServiceList>*
broken_alternative_service_list,
std::unique_ptr<RecentlyBrokenAlternativeServices>*
@@ -106,8 +108,8 @@ class NET_EXPORT_PRIVATE HttpServerPropertiesManager {
void WriteToPrefs(
const HttpServerProperties::ServerInfoMap& server_info_map,
const GetCannonicalSuffix& get_canonical_suffix,
- const IPAddress& last_quic_address,
- const QuicServerInfoMap& quic_server_info_map,
+ const IPAddress& last_local_address_when_quic_worked,
+ const HttpServerProperties::QuicServerInfoMap& quic_server_info_map,
const BrokenAlternativeServiceList& broken_alternative_service_list,
const RecentlyBrokenAlternativeServices&
recently_broken_alternative_services,
@@ -157,29 +159,33 @@ class NET_EXPORT_PRIVATE HttpServerPropertiesManager {
const base::DictionaryValue& server_dict,
HttpServerProperties::ServerInfo* server_info);
- void ReadSupportsQuic(const base::DictionaryValue& server_dict,
- IPAddress* last_quic_address);
+ void ReadLastLocalAddressWhenQuicWorked(
+ const base::DictionaryValue& server_dict,
+ IPAddress* last_local_address_when_quic_worked);
void ParseNetworkStats(const url::SchemeHostPort& server,
const base::DictionaryValue& server_dict,
HttpServerProperties::ServerInfo* server_info);
- void AddToQuicServerInfoMap(const base::DictionaryValue& server_dict,
- QuicServerInfoMap* quic_server_info_map);
+ void AddToQuicServerInfoMap(
+ const base::DictionaryValue& server_dict,
+ bool use_network_isolation_key,
+ HttpServerProperties::QuicServerInfoMap* quic_server_info_map);
void AddToBrokenAlternativeServices(
const base::DictionaryValue& broken_alt_svc_entry_dict,
+ bool use_network_isolation_key,
BrokenAlternativeServiceList* broken_alternative_service_list,
RecentlyBrokenAlternativeServices* recently_broken_alternative_services);
void SaveAlternativeServiceToServerPrefs(
const AlternativeServiceInfoVector& alternative_service_info_vector,
base::DictionaryValue* server_pref_dict);
- void SaveSupportsQuicToPrefs(
- const IPAddress& last_quic_address,
+ void SaveLastLocalAddressWhenQuicWorkedToPrefs(
+ const IPAddress& last_local_address_when_quic_worked,
base::DictionaryValue* http_server_properties_dict);
void SaveNetworkStatsToServerPrefs(
const ServerNetworkStats& server_network_stats,
base::DictionaryValue* server_pref_dict);
void SaveQuicServerInfoMapToServerPrefs(
- const QuicServerInfoMap& quic_server_info_map,
+ const HttpServerProperties::QuicServerInfoMap& quic_server_info_map,
base::DictionaryValue* http_server_properties_dict);
void SaveBrokenAlternativeServicesToPrefs(
const BrokenAlternativeServiceList& broken_alternative_service_list,
diff --git a/chromium/net/http/http_server_properties_manager_unittest.cc b/chromium/net/http/http_server_properties_manager_unittest.cc
index 26dc69ca443..d08043adb3f 100644
--- a/chromium/net/http/http_server_properties_manager_unittest.cc
+++ b/chromium/net/http/http_server_properties_manager_unittest.cc
@@ -157,7 +157,8 @@ base::Value ServerInfoMapToValue(
[](std::unique_ptr<HttpServerProperties::ServerInfoMap>
server_info_map,
const IPAddress& last_quic_address,
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map,
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>
+ quic_server_info_map,
std::unique_ptr<BrokenAlternativeServiceList>
broken_alternative_service_list,
std::unique_ptr<RecentlyBrokenAlternativeServices>
@@ -168,7 +169,8 @@ base::Value ServerInfoMapToValue(
base::DefaultTickClock::GetInstance());
manager.WriteToPrefs(
server_info_map, HttpServerPropertiesManager::GetCannonicalSuffix(),
- IPAddress() /* last_quic_address */, QuicServerInfoMap(10),
+ IPAddress() /* last_quic_address */,
+ HttpServerProperties::QuicServerInfoMap(10),
BrokenAlternativeServiceList(), RecentlyBrokenAlternativeServices(10),
base::OnceClosure());
@@ -194,7 +196,8 @@ std::unique_ptr<HttpServerProperties::ServerInfoMap> ValueToServerInfoMap(
[&](std::unique_ptr<HttpServerProperties::ServerInfoMap>
server_info_map,
const IPAddress& last_quic_address,
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map,
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>
+ quic_server_info_map,
std::unique_ptr<BrokenAlternativeServiceList>
broken_alternative_service_list,
std::unique_ptr<RecentlyBrokenAlternativeServices>
@@ -563,28 +566,30 @@ TEST_F(HttpServerPropertiesManagerTest, ConfirmAlternativeService) {
http_server_props_->SetHttp2AlternativeService(
spdy_server_mail, NetworkIsolationKey(), alternative_service,
one_day_from_now_);
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(1u, GetPendingMainThreadTaskCount());
- http_server_props_->MarkAlternativeServiceBroken(alternative_service);
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ http_server_props_->MarkAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey());
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
// In addition to the pref update task, there's now a task to mark the
// alternative service as no longer broken.
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
- http_server_props_->ConfirmAlternativeService(alternative_service);
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ http_server_props_->ConfirmAlternativeService(alternative_service,
+ NetworkIsolationKey());
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
@@ -593,10 +598,10 @@ TEST_F(HttpServerPropertiesManagerTest, ConfirmAlternativeService) {
FastForwardUntilNoTasksRemain();
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
}
// Check the case that prefs are loaded only after setting alternative service
@@ -712,29 +717,30 @@ TEST_F(HttpServerPropertiesManagerTest,
http_server_props_->SetHttp2AlternativeService(
spdy_server_mail, NetworkIsolationKey(), alternative_service,
one_day_from_now_);
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(1u, GetPendingMainThreadTaskCount());
http_server_props_->MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service);
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ alternative_service, NetworkIsolationKey());
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
// In addition to the pref update task, there's now a task to mark the
// alternative service as no longer broken.
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
- http_server_props_->ConfirmAlternativeService(alternative_service);
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ http_server_props_->ConfirmAlternativeService(alternative_service,
+ NetworkIsolationKey());
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
@@ -743,10 +749,10 @@ TEST_F(HttpServerPropertiesManagerTest,
FastForwardUntilNoTasksRemain();
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
}
TEST_F(HttpServerPropertiesManagerTest,
@@ -763,29 +769,29 @@ TEST_F(HttpServerPropertiesManagerTest,
http_server_props_->SetHttp2AlternativeService(
spdy_server_mail, NetworkIsolationKey(), alternative_service,
one_day_from_now_);
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(1u, GetPendingMainThreadTaskCount());
http_server_props_->MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service);
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ alternative_service, NetworkIsolationKey());
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
// In addition to the pref update task, there's now a task to mark the
// alternative service as no longer broken.
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
http_server_props_->OnDefaultNetworkChanged();
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
@@ -794,10 +800,10 @@ TEST_F(HttpServerPropertiesManagerTest,
FastForwardUntilNoTasksRemain();
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
}
TEST_F(HttpServerPropertiesManagerTest, OnDefaultNetworkChangedWithBrokenOnly) {
@@ -813,28 +819,29 @@ TEST_F(HttpServerPropertiesManagerTest, OnDefaultNetworkChangedWithBrokenOnly) {
http_server_props_->SetHttp2AlternativeService(
spdy_server_mail, NetworkIsolationKey(), alternative_service,
one_day_from_now_);
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(1u, GetPendingMainThreadTaskCount());
- http_server_props_->MarkAlternativeServiceBroken(alternative_service);
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ http_server_props_->MarkAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey());
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
// In addition to the pref update task, there's now a task to mark the
// alternative service as no longer broken.
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
http_server_props_->OnDefaultNetworkChanged();
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
EXPECT_EQ(2u, GetPendingMainThreadTaskCount());
@@ -843,22 +850,22 @@ TEST_F(HttpServerPropertiesManagerTest, OnDefaultNetworkChangedWithBrokenOnly) {
FastForwardUntilNoTasksRemain();
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(alternative_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- alternative_service));
+ alternative_service, NetworkIsolationKey()));
}
-TEST_F(HttpServerPropertiesManagerTest, SupportsQuic) {
+TEST_F(HttpServerPropertiesManagerTest, LastLocalAddressWhenQuicWorked) {
InitializePrefs();
- IPAddress address;
- EXPECT_FALSE(http_server_props_->GetSupportsQuic(&address));
-
IPAddress actual_address(127, 0, 0, 1);
- http_server_props_->SetSupportsQuic(true, actual_address);
+ EXPECT_FALSE(http_server_props_->HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(
+ http_server_props_->WasLastLocalAddressWhenQuicWorked(actual_address));
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
// Another task should not be scheduled.
- http_server_props_->SetSupportsQuic(true, actual_address);
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
// Run the task.
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
@@ -866,11 +873,11 @@ TEST_F(HttpServerPropertiesManagerTest, SupportsQuic) {
FastForwardUntilNoTasksRemain();
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
- EXPECT_TRUE(http_server_props_->GetSupportsQuic(&address));
- EXPECT_EQ(actual_address, address);
+ EXPECT_TRUE(
+ http_server_props_->WasLastLocalAddressWhenQuicWorked(actual_address));
// Another task should not be scheduled.
- http_server_props_->SetSupportsQuic(true, actual_address);
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
EXPECT_EQ(0u, GetPendingMainThreadTaskCount());
}
@@ -923,12 +930,14 @@ TEST_F(HttpServerPropertiesManagerTest, QuicServerInfo) {
InitializePrefs();
quic::QuicServerId mail_quic_server_id("mail.google.com", 80, false);
- EXPECT_EQ(nullptr,
- http_server_props_->GetQuicServerInfo(mail_quic_server_id));
+ EXPECT_EQ(nullptr, http_server_props_->GetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey()));
std::string quic_server_info1("quic_server_info1");
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
// Another task should not be scheduled.
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
// Run the task.
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
@@ -936,11 +945,12 @@ TEST_F(HttpServerPropertiesManagerTest, QuicServerInfo) {
FastForwardUntilNoTasksRemain();
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
- EXPECT_EQ(quic_server_info1,
- *http_server_props_->GetQuicServerInfo(mail_quic_server_id));
+ EXPECT_EQ(quic_server_info1, *http_server_props_->GetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey()));
// Another task should not be scheduled.
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
EXPECT_EQ(0u, GetPendingMainThreadTaskCount());
}
@@ -967,15 +977,17 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
http_server_props_->SetAlternativeServices(spdy_server, NetworkIsolationKey(),
alt_svc_info_vector);
- http_server_props_->MarkAlternativeServiceBroken(broken_alternative_service);
+ http_server_props_->MarkAlternativeServiceBroken(broken_alternative_service,
+ NetworkIsolationKey());
http_server_props_->SetSupportsSpdy(spdy_server, NetworkIsolationKey(), true);
- http_server_props_->SetSupportsQuic(true, actual_address);
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
ServerNetworkStats stats;
stats.srtt = base::TimeDelta::FromMicroseconds(10);
http_server_props_->SetServerNetworkStats(spdy_server, NetworkIsolationKey(),
stats);
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
// Advance time by just enough so that the prefs update task is executed but
// not the task to expire the brokenness of |broken_alternative_service|.
@@ -984,18 +996,17 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
EXPECT_EQ(1, pref_delegate_->GetAndClearNumPrefUpdates());
EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
- broken_alternative_service));
+ broken_alternative_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->SupportsRequestPriority(
spdy_server, NetworkIsolationKey()));
EXPECT_TRUE(HasAlternativeService(spdy_server, NetworkIsolationKey()));
- IPAddress address;
- EXPECT_TRUE(http_server_props_->GetSupportsQuic(&address));
- EXPECT_EQ(actual_address, address);
+ EXPECT_TRUE(
+ http_server_props_->WasLastLocalAddressWhenQuicWorked(actual_address));
const ServerNetworkStats* stats1 = http_server_props_->GetServerNetworkStats(
spdy_server, NetworkIsolationKey());
EXPECT_EQ(10, stats1->srtt.ToInternalValue());
- EXPECT_EQ(quic_server_info1,
- *http_server_props_->GetQuicServerInfo(mail_quic_server_id));
+ EXPECT_EQ(quic_server_info1, *http_server_props_->GetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey()));
// Clear http server data, which should instantly update prefs.
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
@@ -1012,21 +1023,21 @@ TEST_F(HttpServerPropertiesManagerTest, Clear) {
EXPECT_TRUE(callback_invoked_);
EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
- broken_alternative_service));
+ broken_alternative_service, NetworkIsolationKey()));
EXPECT_FALSE(http_server_props_->SupportsRequestPriority(
spdy_server, NetworkIsolationKey()));
EXPECT_FALSE(HasAlternativeService(spdy_server, NetworkIsolationKey()));
- EXPECT_FALSE(http_server_props_->GetSupportsQuic(&address));
+ EXPECT_FALSE(http_server_props_->HasLastLocalAddressWhenQuicWorked());
const ServerNetworkStats* stats2 = http_server_props_->GetServerNetworkStats(
spdy_server, NetworkIsolationKey());
EXPECT_EQ(nullptr, stats2);
- EXPECT_EQ(nullptr,
- http_server_props_->GetQuicServerInfo(mail_quic_server_id));
+ EXPECT_EQ(nullptr, http_server_props_->GetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey()));
}
// https://crbug.com/444956: Add 200 alternative_service servers followed by
// supports_quic and verify we have read supports_quic from prefs.
-TEST_F(HttpServerPropertiesManagerTest, BadSupportsQuic) {
+TEST_F(HttpServerPropertiesManagerTest, BadLastLocalAddressWhenQuicWorked) {
std::unique_ptr<base::ListValue> servers_list =
std::make_unique<base::ListValue>();
@@ -1037,21 +1048,20 @@ TEST_F(HttpServerPropertiesManagerTest, BadSupportsQuic) {
alternative_service_dict.SetStringKey("protocol_str", "quic");
alternative_service_dict.SetIntKey("port", i);
base::Value alternative_service_list(base::Value::Type::LIST);
- alternative_service_list.GetList().emplace_back(
- std::move(alternative_service_dict));
+ alternative_service_list.Append(std::move(alternative_service_dict));
server_dict.SetKey("alternative_service",
std::move(alternative_service_list));
server_dict.SetStringKey("server",
StringPrintf("https://www.google.com:%d", i));
server_dict.SetKey("isolation", base::Value(base::Value::Type::LIST));
- servers_list->GetList().emplace_back(std::move(server_dict));
+ servers_list->Append(std::move(server_dict));
}
// Set the server preference for http://mail.google.com server.
base::Value server_dict2(base::Value::Type::DICTIONARY);
server_dict2.SetStringKey("server", "https://mail.google.com");
server_dict2.SetKey("isolation", base::Value(base::Value::Type::LIST));
- servers_list->GetList().emplace_back(std::move(server_dict2));
+ servers_list->Append(std::move(server_dict2));
base::DictionaryValue http_server_properties_dict = DictWithVersion();
http_server_properties_dict.SetWithoutPathExpansion("servers",
@@ -1082,10 +1092,9 @@ TEST_F(HttpServerPropertiesManagerTest, BadSupportsQuic) {
EXPECT_EQ(i, alternative_service_info_vector[0].alternative_service().port);
}
- // Verify SupportsQuic.
- IPAddress address;
- ASSERT_TRUE(http_server_props_->GetSupportsQuic(&address));
- EXPECT_EQ("127.0.0.1", address.ToString());
+ // Verify WasLastLocalAddressWhenQuicWorked.
+ ASSERT_TRUE(http_server_props_->WasLastLocalAddressWhenQuicWorked(
+ IPAddress::IPv4Localhost()));
}
TEST_F(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) {
@@ -1120,9 +1129,10 @@ TEST_F(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) {
server_mail, NetworkIsolationKey(), mail_alternative_service,
expiration3);
- http_server_props_->MarkAlternativeServiceBroken(www_alternative_service2);
+ http_server_props_->MarkAlternativeServiceBroken(www_alternative_service2,
+ NetworkIsolationKey());
http_server_props_->MarkAlternativeServiceRecentlyBroken(
- mail_alternative_service);
+ mail_alternative_service, NetworkIsolationKey());
// #3: Set SPDY server map
http_server_props_->SetSupportsSpdy(server_www, NetworkIsolationKey(), false);
@@ -1140,11 +1150,12 @@ TEST_F(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) {
// #5: Set quic_server_info string.
quic::QuicServerId mail_quic_server_id("mail.google.com", 80, false);
std::string quic_server_info1("quic_server_info1");
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
// #6: Set SupportsQuic.
IPAddress actual_address(127, 0, 0, 1);
- http_server_props_->SetSupportsQuic(true, actual_address);
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
base::Time time_before_prefs_update = base::Time::Now();
@@ -1209,13 +1220,14 @@ TEST_F(HttpServerPropertiesManagerTest, UpdatePrefsWithCache) {
const char expected_json[] =
"{"
"\"broken_alternative_services\":"
- "[{\"broken_count\":1,\"host\":\"www.google.com\",\"port\":1234,"
- "\"protocol_str\":\"h2\"},"
- "{\"broken_count\":1,\"host\":\"foo.google.com\",\"port\":444,"
- "\"protocol_str\":\"h2\"}],"
+ "[{\"broken_count\":1,\"host\":\"www.google.com\",\"isolation\":[],"
+ "\"port\":1234,\"protocol_str\":\"h2\"},"
+ "{\"broken_count\":1,\"host\":\"foo.google.com\",\"isolation\":[],"
+ "\"port\":444,\"protocol_str\":\"h2\"}],"
"\"quic_servers\":"
- "{\"https://mail.google.com:80\":"
- "{\"server_info\":\"quic_server_info1\"}},"
+ "[{\"isolation\":[],"
+ "\"server_id\":\"https://mail.google.com:80\","
+ "\"server_info\":\"quic_server_info1\"}],"
"\"servers\":["
"{\"alternative_service\":[{\"advertised_versions\":[],"
"\"expiration\":\"13756212000000000\",\"port\":443,"
@@ -1328,7 +1340,8 @@ TEST_F(HttpServerPropertiesManagerTest, DoNotPersistExpiredAlternativeService) {
AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
broken_alternative_service, time_one_day_later));
// #1: MarkAlternativeServiceBroken().
- http_server_props_->MarkAlternativeServiceBroken(broken_alternative_service);
+ http_server_props_->MarkAlternativeServiceBroken(broken_alternative_service,
+ NetworkIsolationKey());
const AlternativeService expired_alternative_service(
kProtoHTTP2, "expired.example.com", 443);
@@ -1502,11 +1515,12 @@ TEST_F(HttpServerPropertiesManagerTest, PersistAdvertisedVersionsToPref) {
// #4: Set quic_server_info string.
quic::QuicServerId mail_quic_server_id("mail.google.com", 80, false);
std::string quic_server_info1("quic_server_info1");
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
// #5: Set SupportsQuic.
IPAddress actual_address(127, 0, 0, 1);
- http_server_props_->SetSupportsQuic(true, actual_address);
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
// Update Prefs.
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
@@ -1516,8 +1530,11 @@ TEST_F(HttpServerPropertiesManagerTest, PersistAdvertisedVersionsToPref) {
// Verify preferences with correct advertised version field.
const char expected_json[] =
- "{\"quic_servers\":{\"https://mail.google.com:80\":{"
- "\"server_info\":\"quic_server_info1\"}},\"servers\":["
+ "{\"quic_servers\":["
+ "{\"isolation\":[],"
+ "\"server_id\":\"https://mail.google.com:80\","
+ "\"server_info\":\"quic_server_info1\"}],"
+ "\"servers\":["
"{\"alternative_service\":[{"
"\"advertised_versions\":[39,46],\"expiration\":\"13756212000000000\","
"\"port\":443,\"protocol_str\":\"quic\"},{\"advertised_versions\":[],"
@@ -1621,11 +1638,12 @@ TEST_F(HttpServerPropertiesManagerTest,
// Set quic_server_info string.
quic::QuicServerId mail_quic_server_id("mail.google.com", 80, false);
std::string quic_server_info1("quic_server_info1");
- http_server_props_->SetQuicServerInfo(mail_quic_server_id, quic_server_info1);
+ http_server_props_->SetQuicServerInfo(
+ mail_quic_server_id, NetworkIsolationKey(), quic_server_info1);
// Set SupportsQuic.
IPAddress actual_address(127, 0, 0, 1);
- http_server_props_->SetSupportsQuic(true, actual_address);
+ http_server_props_->SetLastLocalAddressWhenQuicWorked(actual_address);
// Update Prefs.
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
@@ -1635,8 +1653,11 @@ TEST_F(HttpServerPropertiesManagerTest,
// Verify preferences with correct advertised version field.
const char expected_json[] =
- "{\"quic_servers\":{\"https://mail.google.com:80\":"
- "{\"server_info\":\"quic_server_info1\"}},\"servers\":["
+ "{\"quic_servers\":"
+ "[{\"isolation\":[],"
+ "\"server_id\":\"https://mail.google.com:80\","
+ "\"server_info\":\"quic_server_info1\"}],"
+ "\"servers\":["
"{\"alternative_service\":[{\"advertised_versions\":[46],"
"\"expiration\":\"13756212000000000\",\"port\":443,"
"\"protocol_str\":\"quic\"}],"
@@ -1675,8 +1696,11 @@ TEST_F(HttpServerPropertiesManagerTest,
// Verify preferences updated with new advertised versions.
const char expected_json_updated[] =
- "{\"quic_servers\":{\"https://mail.google.com:80\":"
- "{\"server_info\":\"quic_server_info1\"}},\"servers\":["
+ "{\"quic_servers\":"
+ "[{\"isolation\":[],"
+ "\"server_id\":\"https://mail.google.com:80\","
+ "\"server_info\":\"quic_server_info1\"}],"
+ "\"servers\":["
"{\"alternative_service\":[{\"advertised_versions\":[39,46],"
"\"expiration\":\"13756212000000000\",\"port\":443,"
"\"protocol_str\":\"quic\"}],"
@@ -1713,10 +1737,12 @@ TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
AlternativeService cached_recently_broken_service(kProtoQUIC,
"cached_rbroken", 443);
- http_server_props_->MarkAlternativeServiceBroken(cached_broken_service);
- http_server_props_->MarkAlternativeServiceBroken(cached_broken_service2);
+ http_server_props_->MarkAlternativeServiceBroken(cached_broken_service,
+ NetworkIsolationKey());
+ http_server_props_->MarkAlternativeServiceBroken(cached_broken_service2,
+ NetworkIsolationKey());
http_server_props_->MarkAlternativeServiceRecentlyBroken(
- cached_recently_broken_service);
+ cached_recently_broken_service, NetworkIsolationKey());
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
// There should be a task to remove remove alt services from the cache of
@@ -1737,17 +1763,21 @@ TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
"{\"broken_until\":\"" +
expiration_str +
"\","
- "\"host\":\"www.google.com\",\"port\":1234,\"protocol_str\":\"h2\"},"
+ "\"host\":\"www.google.com\",\"isolation\":[],"
+ "\"port\":1234,\"protocol_str\":\"h2\"},"
"{\"broken_count\":2,\"broken_until\":\"" +
expiration_str +
"\","
- "\"host\":\"cached_broken\",\"port\":443,\"protocol_str\":\"quic\"},"
+ "\"host\":\"cached_broken\",\"isolation\":[],"
+ "\"port\":443,\"protocol_str\":\"quic\"},"
"{\"broken_count\":3,"
- "\"host\":\"cached_rbroken\",\"port\":443,\"protocol_str\":\"quic\"}],"
- "\"quic_servers\":{"
- "\"https://mail.google.com:80\":{"
+ "\"host\":\"cached_rbroken\",\"isolation\":[],"
+ "\"port\":443,\"protocol_str\":\"quic\"}],"
+ "\"quic_servers\":["
+ "{\"isolation\":[],"
+ "\"server_id\":\"https://mail.google.com:80\","
"\"server_info\":\"quic_server_info1\"}"
- "},"
+ "],"
"\"servers\":["
"{\"server\":\"https://www.google.com:80\","
"\"isolation\":[],"
@@ -1840,12 +1870,12 @@ TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
// Verify broken alternative services.
//
AlternativeService prefs_broken_service(kProtoHTTP2, "www.google.com", 1234);
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service));
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service2));
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(prefs_broken_service));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service, NetworkIsolationKey()));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service2, NetworkIsolationKey()));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ prefs_broken_service, NetworkIsolationKey()));
// Verify brokenness expiration times.
// |cached_broken_service|'s expiration time should've been overwritten by the
@@ -1855,19 +1885,19 @@ TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
// now which comes from the prefs.
FastForwardBy(base::TimeDelta::FromMinutes(5) -
HttpServerProperties::GetUpdatePrefsDelayForTesting());
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service2));
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(prefs_broken_service));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service, NetworkIsolationKey()));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service2, NetworkIsolationKey()));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ prefs_broken_service, NetworkIsolationKey()));
FastForwardBy(base::TimeDelta::FromDays(1));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service2));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(prefs_broken_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service, NetworkIsolationKey()));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service2, NetworkIsolationKey()));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ prefs_broken_service, NetworkIsolationKey()));
// Now that |prefs_broken_service|'s brokenness has expired, it should've
// been removed from the alternative services info vectors of all servers.
@@ -1890,61 +1920,64 @@ TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
// broken.
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- prefs_broken_service));
+ prefs_broken_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- cached_recently_broken_service));
+ cached_recently_broken_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- cached_broken_service));
+ cached_broken_service, NetworkIsolationKey()));
EXPECT_TRUE(http_server_props_->WasAlternativeServiceRecentlyBroken(
- cached_broken_service2));
+ cached_broken_service2, NetworkIsolationKey()));
// Make sure |prefs_broken_service| has the right expiration delay when marked
// broken. Since |prefs_broken_service| had no broken_count specified in the
// prefs, a broken_count value of 1 should have been assumed by
// |http_server_props_|.
- http_server_props_->MarkAlternativeServiceBroken(prefs_broken_service);
+ http_server_props_->MarkAlternativeServiceBroken(prefs_broken_service,
+ NetworkIsolationKey());
EXPECT_EQ(0, pref_delegate_->GetAndClearNumPrefUpdates());
EXPECT_NE(0u, GetPendingMainThreadTaskCount());
FastForwardBy(base::TimeDelta::FromMinutes(10) -
base::TimeDelta::FromInternalValue(1));
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(prefs_broken_service));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ prefs_broken_service, NetworkIsolationKey()));
FastForwardBy(base::TimeDelta::FromInternalValue(1));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(prefs_broken_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ prefs_broken_service, NetworkIsolationKey()));
// Make sure |cached_recently_broken_service| has the right expiration delay
// when marked broken.
http_server_props_->MarkAlternativeServiceBroken(
- cached_recently_broken_service);
+ cached_recently_broken_service, NetworkIsolationKey());
EXPECT_NE(0u, GetPendingMainThreadTaskCount());
FastForwardBy(base::TimeDelta::FromMinutes(40) -
base::TimeDelta::FromInternalValue(1));
EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
- cached_recently_broken_service));
+ cached_recently_broken_service, NetworkIsolationKey()));
FastForwardBy(base::TimeDelta::FromInternalValue(1));
EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
- cached_recently_broken_service));
+ cached_recently_broken_service, NetworkIsolationKey()));
// Make sure |cached_broken_service| has the right expiration delay when
// marked broken.
- http_server_props_->MarkAlternativeServiceBroken(cached_broken_service);
+ http_server_props_->MarkAlternativeServiceBroken(cached_broken_service,
+ NetworkIsolationKey());
EXPECT_NE(0u, GetPendingMainThreadTaskCount());
FastForwardBy(base::TimeDelta::FromMinutes(20) -
base::TimeDelta::FromInternalValue(1));
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service, NetworkIsolationKey()));
FastForwardBy(base::TimeDelta::FromInternalValue(1));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service, NetworkIsolationKey()));
// Make sure |cached_broken_service2| has the right expiration delay when
// marked broken.
- http_server_props_->MarkAlternativeServiceBroken(cached_broken_service2);
+ http_server_props_->MarkAlternativeServiceBroken(cached_broken_service2,
+ NetworkIsolationKey());
EXPECT_NE(0u, GetPendingMainThreadTaskCount());
FastForwardBy(base::TimeDelta::FromMinutes(10) -
base::TimeDelta::FromInternalValue(1));
- EXPECT_TRUE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service2));
+ EXPECT_TRUE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service2, NetworkIsolationKey()));
FastForwardBy(base::TimeDelta::FromInternalValue(1));
- EXPECT_FALSE(
- http_server_props_->IsAlternativeServiceBroken(cached_broken_service2));
+ EXPECT_FALSE(http_server_props_->IsAlternativeServiceBroken(
+ cached_broken_service2, NetworkIsolationKey()));
//
// Verify ServerNetworkStats.
@@ -1960,14 +1993,15 @@ TEST_F(HttpServerPropertiesManagerTest, UpdateCacheWithPrefs) {
// Verify QUIC server info.
//
const std::string* quic_server_info = http_server_props_->GetQuicServerInfo(
- quic::QuicServerId("mail.google.com", 80, false));
+ quic::QuicServerId("mail.google.com", 80, false), NetworkIsolationKey());
EXPECT_EQ("quic_server_info1", *quic_server_info);
//
// Verify supports QUIC.
//
IPAddress actual_address(127, 0, 0, 1);
- EXPECT_TRUE(http_server_props_->GetSupportsQuic(&actual_address));
+ EXPECT_TRUE(
+ http_server_props_->WasLastLocalAddressWhenQuicWorked(actual_address));
EXPECT_EQ(4, pref_delegate_->GetAndClearNumPrefUpdates());
}
@@ -2389,4 +2423,583 @@ TEST_F(HttpServerPropertiesManagerTest,
.size());
}
+// Tests a full round trip with a NetworkIsolationKey, using the
+// HttpServerProperties interface and setting alternative services as broken.
+TEST_F(HttpServerPropertiesManagerTest,
+ NetworkIsolationKeyBrokenAltServiceRoundTrip) {
+ const url::Origin kOrigin1 = url::Origin::Create(GURL("https://foo1.test/"));
+ const url::Origin kOrigin2 = url::Origin::Create(GURL("https://foo2.test/"));
+
+ const AlternativeService kAlternativeService1(kProtoHTTP2,
+ "alt.service1.test", 443);
+ const AlternativeService kAlternativeService2(kProtoHTTP2,
+ "alt.service2.test", 443);
+
+ for (auto save_network_isolation_key_mode : kNetworkIsolationKeyModes) {
+ SCOPED_TRACE(static_cast<int>(save_network_isolation_key_mode));
+
+ // Save prefs using |save_network_isolation_key_mode|.
+ std::unique_ptr<base::DictionaryValue> saved_value;
+ {
+ // Configure the the feature.
+ std::unique_ptr<base::test::ScopedFeatureList> feature_list =
+ SetNetworkIsolationKeyMode(save_network_isolation_key_mode);
+
+ // The NetworkIsolationKey constructor checks the field trial state, so
+ // need to create the keys only after setting up the field trials.
+ const NetworkIsolationKey kNetworkIsolationKey1(kOrigin1, kOrigin1);
+ const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+
+ // Create and initialize an HttpServerProperties, must be done after
+ // setting the feature.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(base::DictionaryValue());
+
+ // Set kAlternativeService1 as broken in the context of
+ // kNetworkIsolationKey1, and kAlternativeService2 as broken in the
+ // context of the empty NetworkIsolationKey2, and recently broken in the
+ // context of the empty NetworkIsolationKey.
+ properties->MarkAlternativeServiceBroken(kAlternativeService1,
+ kNetworkIsolationKey1);
+ properties->MarkAlternativeServiceRecentlyBroken(kAlternativeService2,
+ NetworkIsolationKey());
+ properties->MarkAlternativeServiceBroken(kAlternativeService2,
+ kNetworkIsolationKey2);
+
+ // Verify values were set.
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, kNetworkIsolationKey1));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, kNetworkIsolationKey1));
+ // When NetworkIsolationKeys are disabled, kAlternativeService2 is marked
+ // as broken regardless of the values passed to NetworkIsolationKey's
+ // constructor.
+ EXPECT_EQ(
+ save_network_isolation_key_mode == NetworkIsolationKeyMode::kDisabled,
+ properties->IsAlternativeServiceBroken(kAlternativeService2,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, kNetworkIsolationKey2));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, kNetworkIsolationKey2));
+
+ // If NetworkIsolationKeys are enabled, there should be no
+ // cross-contamination of the NetworkIsolationKeys.
+ if (save_network_isolation_key_mode !=
+ NetworkIsolationKeyMode::kDisabled) {
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, kNetworkIsolationKey2));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, kNetworkIsolationKey2));
+ }
+
+ // Wait until the data's been written to prefs, and then create a copy of
+ // the prefs data.
+ FastForwardBy(HttpServerProperties::GetUpdatePrefsDelayForTesting());
+ saved_value =
+ unowned_pref_delegate->GetServerProperties()->CreateDeepCopy();
+ }
+
+ // Now try and load the data in each of the feature modes.
+ for (auto load_network_isolation_key_mode : kNetworkIsolationKeyModes) {
+ SCOPED_TRACE(static_cast<int>(load_network_isolation_key_mode));
+
+ std::unique_ptr<base::test::ScopedFeatureList> feature_list =
+ SetNetworkIsolationKeyMode(load_network_isolation_key_mode);
+
+ // The NetworkIsolationKey constructor checks the field trial state, so
+ // need to create the keys only after setting up the field trials.
+ const NetworkIsolationKey kNetworkIsolationKey1(kOrigin1, kOrigin1);
+ const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+
+ // Create a new HttpServerProperties, loading the data from before.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(*saved_value);
+
+ if (save_network_isolation_key_mode ==
+ NetworkIsolationKeyMode::kDisabled) {
+ // If NetworkIsolationKey was disabled when saving, it was saved with an
+ // empty NetworkIsolationKey, which should always be loaded
+ // successfully. This is needed to continue to support consumers that
+ // don't use NetworkIsolationKeys.
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ } else if (save_network_isolation_key_mode ==
+ load_network_isolation_key_mode) {
+ // If the save and load modes are the same, the load should succeed, and
+ // the network isolation keys should match.
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, kNetworkIsolationKey1));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, kNetworkIsolationKey1));
+ // When NetworkIsolationKeys are disabled, kAlternativeService2 is
+ // marked as broken regardless of the values passed to
+ // NetworkIsolationKey's constructor.
+ EXPECT_EQ(save_network_isolation_key_mode ==
+ NetworkIsolationKeyMode::kDisabled,
+ properties->IsAlternativeServiceBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, kNetworkIsolationKey2));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, kNetworkIsolationKey2));
+
+ // If NetworkIsolationKeys are enabled, there should be no
+ // cross-contamination of the NetworkIsolationKeys.
+ if (save_network_isolation_key_mode !=
+ NetworkIsolationKeyMode::kDisabled) {
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, kNetworkIsolationKey2));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, kNetworkIsolationKey2));
+ }
+ } else {
+ // Otherwise, only the values set with an empty NetworkIsolationKey
+ // should have been loaded successfully.
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, kNetworkIsolationKey2));
+ // If the load mode is NetworkIsolationKeyMode::kDisabled,
+ // kNetworkIsolationKey2 is NetworkIsolationKey().
+ EXPECT_EQ(load_network_isolation_key_mode ==
+ NetworkIsolationKeyMode::kDisabled,
+ properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, kNetworkIsolationKey2));
+
+ // There should be no cross-contamination of NetworkIsolationKeys, if
+ // NetworkIsolationKeys are enabled.
+ if (load_network_isolation_key_mode !=
+ NetworkIsolationKeyMode::kDisabled) {
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService2, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService2, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties->IsAlternativeServiceBroken(
+ kAlternativeService1, kNetworkIsolationKey2));
+ EXPECT_FALSE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService1, kNetworkIsolationKey2));
+ }
+ }
+ }
+ }
+}
+
+// Make sure broken alt services with opaque origins aren't saved.
+TEST_F(HttpServerPropertiesManagerTest,
+ NetworkIsolationKeyBrokenAltServiceOpaqueOrigin) {
+ const url::Origin kOpaqueOrigin =
+ url::Origin::Create(GURL("data:text/plain,Hello World"));
+ const NetworkIsolationKey kNetworkIsolationKey(kOpaqueOrigin, kOpaqueOrigin);
+ const AlternativeService kAlternativeService(kProtoHTTP2, "alt.service1.test",
+ 443);
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+
+ // Create and initialize an HttpServerProperties, must be done after
+ // setting the feature.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(base::DictionaryValue());
+
+ properties->MarkAlternativeServiceBroken(kAlternativeService,
+ kNetworkIsolationKey);
+
+ // Verify values were set.
+ EXPECT_TRUE(properties->IsAlternativeServiceBroken(kAlternativeService,
+ kNetworkIsolationKey));
+ EXPECT_TRUE(properties->WasAlternativeServiceRecentlyBroken(
+ kAlternativeService, kNetworkIsolationKey));
+
+ // Wait until the data's been written to prefs, and then create a copy of
+ // the prefs data.
+ FastForwardBy(HttpServerProperties::GetUpdatePrefsDelayForTesting());
+
+ // No information should have been saved to prefs.
+ std::string preferences_json;
+ base::JSONWriter::Write(*unowned_pref_delegate->GetServerProperties(),
+ &preferences_json);
+ EXPECT_EQ("{\"servers\":[],\"version\":5}", preferences_json);
+}
+
+// Tests a full round trip with a NetworkIsolationKey, using the
+// HttpServerProperties interface and setting QuicServerInfo.
+TEST_F(HttpServerPropertiesManagerTest,
+ NetworkIsolationKeyQuicServerInfoRoundTrip) {
+ const url::Origin kOrigin1 = url::Origin::Create(GURL("https://foo1.test/"));
+ const url::Origin kOrigin2 = url::Origin::Create(GURL("https://foo2.test/"));
+
+ const quic::QuicServerId kServer1("foo", 443,
+ false /* privacy_mode_enabled */);
+ const quic::QuicServerId kServer2("foo", 443,
+ true /* privacy_mode_enabled */);
+
+ const char kQuicServerInfo1[] = "info1";
+ const char kQuicServerInfo2[] = "info2";
+ const char kQuicServerInfo3[] = "info3";
+
+ for (auto save_network_isolation_key_mode : kNetworkIsolationKeyModes) {
+ SCOPED_TRACE(static_cast<int>(save_network_isolation_key_mode));
+
+ // Save prefs using |save_network_isolation_key_mode|.
+ std::unique_ptr<base::DictionaryValue> saved_value;
+ {
+ // Configure the the feature.
+ std::unique_ptr<base::test::ScopedFeatureList> feature_list =
+ SetNetworkIsolationKeyMode(save_network_isolation_key_mode);
+
+ // The NetworkIsolationKey constructor checks the field trial state, so
+ // need to create the keys only after setting up the field trials.
+ const NetworkIsolationKey kNetworkIsolationKey1(kOrigin1, kOrigin1);
+ const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+
+ // Create and initialize an HttpServerProperties, must be done after
+ // setting the feature.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(base::DictionaryValue());
+
+ // Set kServer1 to kQuicServerInfo1 in the context of
+ // kNetworkIsolationKey1, Set kServer2 to kQuicServerInfo2 in the context
+ // of kNetworkIsolationKey2, and kServer1 to kQuicServerInfo3 in the
+ // context of NetworkIsolationKey().
+ properties->SetQuicServerInfo(kServer1, kNetworkIsolationKey1,
+ kQuicServerInfo1);
+ properties->SetQuicServerInfo(kServer2, kNetworkIsolationKey2,
+ kQuicServerInfo2);
+ properties->SetQuicServerInfo(kServer1, NetworkIsolationKey(),
+ kQuicServerInfo3);
+
+ // Verify values were set.
+ if (save_network_isolation_key_mode !=
+ NetworkIsolationKeyMode::kDisabled) {
+ EXPECT_EQ(kQuicServerInfo1, *properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey2));
+ EXPECT_EQ(kQuicServerInfo3, *properties->GetQuicServerInfo(
+ kServer1, NetworkIsolationKey()));
+
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2, *properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey2));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, NetworkIsolationKey()));
+ } else {
+ EXPECT_EQ(kQuicServerInfo3, *properties->GetQuicServerInfo(
+ kServer1, NetworkIsolationKey()));
+ EXPECT_EQ(kQuicServerInfo2, *properties->GetQuicServerInfo(
+ kServer2, NetworkIsolationKey()));
+ }
+
+ // Wait until the data's been written to prefs, and then create a copy of
+ // the prefs data.
+ FastForwardBy(HttpServerProperties::GetUpdatePrefsDelayForTesting());
+ saved_value =
+ unowned_pref_delegate->GetServerProperties()->CreateDeepCopy();
+ }
+
+ // Now try and load the data in each of the feature modes.
+ for (auto load_network_isolation_key_mode : kNetworkIsolationKeyModes) {
+ SCOPED_TRACE(static_cast<int>(load_network_isolation_key_mode));
+
+ std::unique_ptr<base::test::ScopedFeatureList> feature_list =
+ SetNetworkIsolationKeyMode(load_network_isolation_key_mode);
+
+ // The NetworkIsolationKey constructor checks the field trial state, so
+ // need to create the keys only after setting up the field trials.
+ const NetworkIsolationKey kNetworkIsolationKey1(kOrigin1, kOrigin1);
+ const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+
+ // Create a new HttpServerProperties, loading the data from before.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(*saved_value);
+
+ if (save_network_isolation_key_mode ==
+ NetworkIsolationKeyMode::kDisabled) {
+ // If NetworkIsolationKey was disabled when saving, entries were saved
+ // with an empty NetworkIsolationKey, which should always be loaded
+ // successfully. This is needed to continue to support consumers that
+ // don't use NetworkIsolationKeys.
+ EXPECT_EQ(kQuicServerInfo3, *properties->GetQuicServerInfo(
+ kServer1, NetworkIsolationKey()));
+ EXPECT_EQ(kQuicServerInfo2, *properties->GetQuicServerInfo(
+ kServer2, NetworkIsolationKey()));
+ if (load_network_isolation_key_mode !=
+ NetworkIsolationKeyMode::kDisabled) {
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey2));
+
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey2));
+ }
+ } else if (save_network_isolation_key_mode ==
+ load_network_isolation_key_mode) {
+ // If the save and load modes are the same, the load should succeed, and
+ // the network isolation keys should match.
+ EXPECT_EQ(kQuicServerInfo1, *properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey2));
+ EXPECT_EQ(kQuicServerInfo3, *properties->GetQuicServerInfo(
+ kServer1, NetworkIsolationKey()));
+
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2, *properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey2));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, NetworkIsolationKey()));
+ } else {
+ // Otherwise, only the value set with an empty NetworkIsolationKey
+ // should have been loaded successfully.
+ EXPECT_EQ(kQuicServerInfo3, *properties->GetQuicServerInfo(
+ kServer1, NetworkIsolationKey()));
+
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, kNetworkIsolationKey2));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer2, NetworkIsolationKey()));
+
+ // There should be no cross-contamination of NetworkIsolationKeys, if
+ // NetworkIsolationKeys are enabled.
+ if (load_network_isolation_key_mode !=
+ NetworkIsolationKeyMode::kDisabled) {
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(nullptr, properties->GetQuicServerInfo(
+ kServer1, kNetworkIsolationKey2));
+ }
+ }
+ }
+ }
+}
+
+// Tests a full round trip to prefs and back in the canonical suffix for
+// QuicServerInfo case. Enable NetworkIsolationKeys, as they have some
+// interactions with the canonical suffix logic.
+TEST_F(HttpServerPropertiesManagerTest,
+ NetworkIsolationKeyQuicServerInfoCanonicalSuffixRoundTrip) {
+ const url::Origin kOrigin1 = url::Origin::Create(GURL("https://foo.test/"));
+ const url::Origin kOrigin2 = url::Origin::Create(GURL("https://bar.test/"));
+ const NetworkIsolationKey kNetworkIsolationKey1(kOrigin1, kOrigin1);
+ const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
+
+ // Three servers with the same canonical suffix (".c.youtube.com").
+ const quic::QuicServerId kServer1("foo.c.youtube.com", 443,
+ false /* privacy_mode_enabled */);
+ const quic::QuicServerId kServer2("bar.c.youtube.com", 443,
+ false /* privacy_mode_enabled */);
+ const quic::QuicServerId kServer3("baz.c.youtube.com", 443,
+ false /* privacy_mode_enabled */);
+
+ const char kQuicServerInfo1[] = "info1";
+ const char kQuicServerInfo2[] = "info2";
+ const char kQuicServerInfo3[] = "info3";
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+
+ // Create and initialize an HttpServerProperties with no state.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(base::DictionaryValue());
+
+ // Set kQuicServerInfo1 for kServer1 using kNetworkIsolationKey1. That
+ // information should be retrieved when fetching information for any server
+ // with the same canonical suffix, when using kNetworkIsolationKey1.
+ properties->SetQuicServerInfo(kServer1, kNetworkIsolationKey1,
+ kQuicServerInfo1);
+ EXPECT_EQ(kQuicServerInfo1,
+ *properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo1,
+ *properties->GetQuicServerInfo(kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo1,
+ *properties->GetQuicServerInfo(kServer3, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey2));
+
+ // Set kQuicServerInfo2 for kServer2 using kNetworkIsolationKey1. It should
+ // not affect information retrieved for kServer1, but should for kServer2 and
+ // kServer3.
+ properties->SetQuicServerInfo(kServer2, kNetworkIsolationKey1,
+ kQuicServerInfo2);
+ EXPECT_EQ(kQuicServerInfo1,
+ *properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2,
+ *properties->GetQuicServerInfo(kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2,
+ *properties->GetQuicServerInfo(kServer3, kNetworkIsolationKey1));
+ EXPECT_FALSE(properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey2));
+
+ // Set kQuicServerInfo3 for kServer1 using kNetworkIsolationKey2. It should
+ // not affect information stored for kNetworkIsolationKey1.
+ properties->SetQuicServerInfo(kServer1, kNetworkIsolationKey2,
+ kQuicServerInfo3);
+ EXPECT_EQ(kQuicServerInfo1,
+ *properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2,
+ *properties->GetQuicServerInfo(kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2,
+ *properties->GetQuicServerInfo(kServer3, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo3,
+ *properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey2));
+ EXPECT_EQ(kQuicServerInfo3,
+ *properties->GetQuicServerInfo(kServer2, kNetworkIsolationKey2));
+ EXPECT_EQ(kQuicServerInfo3,
+ *properties->GetQuicServerInfo(kServer3, kNetworkIsolationKey2));
+
+ // Wait until the data's been written to prefs, and then tear down the
+ // HttpServerProperties.
+ FastForwardBy(HttpServerProperties::GetUpdatePrefsDelayForTesting());
+ std::unique_ptr<base::DictionaryValue> saved_value =
+ unowned_pref_delegate->GetServerProperties()->CreateDeepCopy();
+ properties.reset();
+
+ // Create a new HttpServerProperties using the value saved to prefs above.
+ pref_delegate = std::make_unique<MockPrefDelegate>();
+ unowned_pref_delegate = pref_delegate.get();
+ properties = std::make_unique<HttpServerProperties>(
+ std::move(pref_delegate), /*net_log=*/nullptr, GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(*saved_value);
+
+ // All values should have been saved and be retrievable by suffix-matching
+ // servers.
+ //
+ // TODO(mmenke): The rest of this test corresponds exactly to behavior in
+ // CanonicalSuffixRoundTripWithNetworkIsolationKey. It seems like these lines
+ // should correspond as well.
+ EXPECT_EQ(kQuicServerInfo1,
+ *properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2,
+ *properties->GetQuicServerInfo(kServer2, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo2,
+ *properties->GetQuicServerInfo(kServer3, kNetworkIsolationKey1));
+ EXPECT_EQ(kQuicServerInfo3,
+ *properties->GetQuicServerInfo(kServer1, kNetworkIsolationKey2));
+ EXPECT_EQ(kQuicServerInfo3,
+ *properties->GetQuicServerInfo(kServer2, kNetworkIsolationKey2));
+ EXPECT_EQ(kQuicServerInfo3,
+ *properties->GetQuicServerInfo(kServer3, kNetworkIsolationKey2));
+}
+
+// Make sure QuicServerInfo associated with NetworkIsolationKeys with opaque
+// origins aren't saved.
+TEST_F(HttpServerPropertiesManagerTest,
+ NetworkIsolationKeyQuicServerInfoOpaqueOrigin) {
+ const url::Origin kOpaqueOrigin =
+ url::Origin::Create(GURL("data:text/plain,Hello World"));
+ const NetworkIsolationKey kNetworkIsolationKey(kOpaqueOrigin, kOpaqueOrigin);
+ const quic::QuicServerId kServer("foo", 443,
+ false /* privacy_mode_enabled */);
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+
+ // Create and initialize an HttpServerProperties, must be done after
+ // setting the feature.
+ std::unique_ptr<MockPrefDelegate> pref_delegate =
+ std::make_unique<MockPrefDelegate>();
+ MockPrefDelegate* unowned_pref_delegate = pref_delegate.get();
+ std::unique_ptr<HttpServerProperties> properties =
+ std::make_unique<HttpServerProperties>(std::move(pref_delegate),
+ /*net_log=*/nullptr,
+ GetMockTickClock());
+ unowned_pref_delegate->InitializePrefs(base::DictionaryValue());
+
+ properties->SetQuicServerInfo(kServer, kNetworkIsolationKey,
+ "QuicServerInfo");
+ EXPECT_TRUE(properties->GetQuicServerInfo(kServer, kNetworkIsolationKey));
+
+ // Wait until the data's been written to prefs, and then create a copy of
+ // the prefs data.
+ FastForwardBy(HttpServerProperties::GetUpdatePrefsDelayForTesting());
+
+ // No information should have been saved to prefs.
+ std::string preferences_json;
+ base::JSONWriter::Write(*unowned_pref_delegate->GetServerProperties(),
+ &preferences_json);
+ EXPECT_EQ("{\"quic_servers\":[],\"servers\":[],\"version\":5}",
+ preferences_json);
+}
+
} // namespace net
diff --git a/chromium/net/http/http_server_properties_unittest.cc b/chromium/net/http/http_server_properties_unittest.cc
index 2eca2e469f0..f0fc978637e 100644
--- a/chromium/net/http/http_server_properties_unittest.cc
+++ b/chromium/net/http/http_server_properties_unittest.cc
@@ -44,17 +44,21 @@ class HttpServerPropertiesPeer {
static void AddBrokenAlternativeServiceWithExpirationTime(
HttpServerProperties* impl,
const AlternativeService& alternative_service,
- base::TimeTicks when) {
+ base::TimeTicks when,
+ const NetworkIsolationKey network_isolation_key = NetworkIsolationKey()) {
+ BrokenAlternativeService broken_alternative_service(
+ alternative_service, network_isolation_key,
+ true /* use_network_isolation_key */);
BrokenAlternativeServiceList::iterator unused_it;
impl->broken_alternative_services_.AddToBrokenListAndMap(
- alternative_service, when, &unused_it);
+ broken_alternative_service, when, &unused_it);
auto it =
impl->broken_alternative_services_.recently_broken_alternative_services_
- .Get(alternative_service);
+ .Get(broken_alternative_service);
if (it == impl->broken_alternative_services_
.recently_broken_alternative_services_.end()) {
impl->broken_alternative_services_.recently_broken_alternative_services_
- .Put(alternative_service, 1);
+ .Put(broken_alternative_service, 1);
} else {
it->second++;
}
@@ -88,6 +92,11 @@ class HttpServerPropertiesTest : public TestWithTaskEnvironment {
&test_clock_) {
// Set |test_clock_| to some random time.
test_clock_.Advance(base::TimeDelta::FromSeconds(12345));
+
+ url::Origin origin1 = url::Origin::Create(GURL("https://foo.test/"));
+ network_isolation_key1_ = NetworkIsolationKey(origin1, origin1);
+ url::Origin origin2 = url::Origin::Create(GURL("https://bar.test/"));
+ network_isolation_key2_ = NetworkIsolationKey(origin2, origin2);
}
bool HasAlternativeService(const url::SchemeHostPort& origin,
@@ -118,56 +127,14 @@ class HttpServerPropertiesTest : public TestWithTaskEnvironment {
const base::TickClock* test_tick_clock_;
base::SimpleTestClock test_clock_;
+ // Two different non-empty network isolation keys for use in tests that need
+ // them.
+ NetworkIsolationKey network_isolation_key1_;
+ NetworkIsolationKey network_isolation_key2_;
+
HttpServerProperties impl_;
};
-TEST_F(HttpServerPropertiesTest, GetNormalizedSchemeHostPort) {
- url::SchemeHostPort server =
- HttpServerProperties::GetNormalizedSchemeHostPort(
- GURL("https://foo.test/"));
- EXPECT_EQ("https", server.scheme());
- EXPECT_EQ("foo.test", server.host());
- EXPECT_EQ(443, server.port());
-
- server = HttpServerProperties::GetNormalizedSchemeHostPort(
- GURL("wss://foo.test/"));
- EXPECT_EQ("https", server.scheme());
- EXPECT_EQ("foo.test", server.host());
- EXPECT_EQ(443, server.port());
-
- server = HttpServerProperties::GetNormalizedSchemeHostPort(
- GURL("wss://bar.test:7/"));
- EXPECT_EQ("https", server.scheme());
- EXPECT_EQ("bar.test", server.host());
- EXPECT_EQ(7, server.port());
-
- server = HttpServerProperties::GetNormalizedSchemeHostPort(
- GURL("http://foo.test/"));
- EXPECT_EQ("http", server.scheme());
- EXPECT_EQ("foo.test", server.host());
- EXPECT_EQ(80, server.port());
-
- server =
- HttpServerProperties::GetNormalizedSchemeHostPort(GURL("ws://foo.test/"));
- EXPECT_EQ("http", server.scheme());
- EXPECT_EQ("foo.test", server.host());
- EXPECT_EQ(80, server.port());
-
- server = HttpServerProperties::GetNormalizedSchemeHostPort(
- GURL("ws://bar.test:7/"));
- EXPECT_EQ("http", server.scheme());
- EXPECT_EQ("bar.test", server.host());
- EXPECT_EQ(7, server.port());
-
- // Neither of these should happen, except possibly when loading a bad
- // properties file, but neither should crash.
- server = HttpServerProperties::GetNormalizedSchemeHostPort(GURL());
- EXPECT_EQ("", server.host());
- server = HttpServerProperties::GetNormalizedSchemeHostPort(
- GURL("file:///foo/bar"));
- EXPECT_EQ(server, url::SchemeHostPort(GURL("file:///foo/bar")));
-}
-
TEST_F(HttpServerPropertiesTest, SetSupportsSpdy) {
// Check spdy servers are correctly set with SchemeHostPort key.
url::SchemeHostPort https_www_server("https", "www.google.com", 443);
@@ -216,29 +183,67 @@ TEST_F(HttpServerPropertiesTest, SetSupportsSpdy) {
impl_.SupportsRequestPriority(https_mail_server, NetworkIsolationKey()));
}
+TEST_F(HttpServerPropertiesTest, SetSupportsSpdyWebSockets) {
+ // The https and wss servers should be treated as the same server, as should
+ // the http and ws servers.
+ url::SchemeHostPort https_server("https", "www.test.com", 443);
+ url::SchemeHostPort wss_server("wss", "www.test.com", 443);
+ url::SchemeHostPort http_server("http", "www.test.com", 443);
+ url::SchemeHostPort ws_server("ws", "www.test.com", 443);
+
+ EXPECT_FALSE(impl_.GetSupportsSpdy(https_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(wss_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(http_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(ws_server, NetworkIsolationKey()));
+
+ impl_.SetSupportsSpdy(wss_server, NetworkIsolationKey(), true);
+ EXPECT_TRUE(impl_.GetSupportsSpdy(https_server, NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(wss_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(http_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(ws_server, NetworkIsolationKey()));
+
+ impl_.SetSupportsSpdy(http_server, NetworkIsolationKey(), true);
+ EXPECT_TRUE(impl_.GetSupportsSpdy(https_server, NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(wss_server, NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(http_server, NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(ws_server, NetworkIsolationKey()));
+
+ impl_.SetSupportsSpdy(https_server, NetworkIsolationKey(), false);
+ EXPECT_FALSE(impl_.GetSupportsSpdy(https_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(wss_server, NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(http_server, NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(ws_server, NetworkIsolationKey()));
+
+ impl_.SetSupportsSpdy(ws_server, NetworkIsolationKey(), false);
+ EXPECT_FALSE(impl_.GetSupportsSpdy(https_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(wss_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(http_server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(ws_server, NetworkIsolationKey()));
+}
+
TEST_F(HttpServerPropertiesTest, SetSupportsSpdyWithNetworkIsolationKey) {
const url::SchemeHostPort kServer("https", "foo.test", 443);
- const url::Origin kOrigin = url::Origin::Create(GURL("https://foo.test/"));
- const NetworkIsolationKey kNetworkIsolationKey(kOrigin, kOrigin);
- EXPECT_FALSE(impl_.GetSupportsSpdy(kServer, kNetworkIsolationKey));
- EXPECT_FALSE(impl_.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(kServer, network_isolation_key1_));
+ EXPECT_FALSE(impl_.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_FALSE(impl_.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_FALSE(impl_.SupportsRequestPriority(kServer, NetworkIsolationKey()));
// Without network isolation keys enabled for HttpServerProperties, passing in
// a NetworkIsolationKey should have no effect on behavior.
for (const auto network_isolation_key_to_set :
- {NetworkIsolationKey(), kNetworkIsolationKey}) {
+ {NetworkIsolationKey(), network_isolation_key1_}) {
impl_.SetSupportsSpdy(kServer, network_isolation_key_to_set, true);
- EXPECT_TRUE(impl_.GetSupportsSpdy(kServer, kNetworkIsolationKey));
- EXPECT_TRUE(impl_.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ EXPECT_TRUE(impl_.GetSupportsSpdy(kServer, network_isolation_key1_));
+ EXPECT_TRUE(
+ impl_.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_TRUE(impl_.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_TRUE(impl_.SupportsRequestPriority(kServer, NetworkIsolationKey()));
impl_.SetSupportsSpdy(kServer, network_isolation_key_to_set, false);
- EXPECT_FALSE(impl_.GetSupportsSpdy(kServer, kNetworkIsolationKey));
- EXPECT_FALSE(impl_.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ EXPECT_FALSE(impl_.GetSupportsSpdy(kServer, network_isolation_key1_));
+ EXPECT_FALSE(
+ impl_.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_FALSE(impl_.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_FALSE(impl_.SupportsRequestPriority(kServer, NetworkIsolationKey()));
}
@@ -255,41 +260,41 @@ TEST_F(HttpServerPropertiesTest, SetSupportsSpdyWithNetworkIsolationKey) {
nullptr /* net_log */, test_tick_clock_,
&test_clock_);
- EXPECT_FALSE(properties.GetSupportsSpdy(kServer, kNetworkIsolationKey));
+ EXPECT_FALSE(properties.GetSupportsSpdy(kServer, network_isolation_key1_));
EXPECT_FALSE(
- properties.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ properties.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_FALSE(properties.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_FALSE(
properties.SupportsRequestPriority(kServer, NetworkIsolationKey()));
- properties.SetSupportsSpdy(kServer, kNetworkIsolationKey, true);
- EXPECT_TRUE(properties.GetSupportsSpdy(kServer, kNetworkIsolationKey));
+ properties.SetSupportsSpdy(kServer, network_isolation_key1_, true);
+ EXPECT_TRUE(properties.GetSupportsSpdy(kServer, network_isolation_key1_));
EXPECT_TRUE(
- properties.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ properties.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_FALSE(properties.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_FALSE(
properties.SupportsRequestPriority(kServer, NetworkIsolationKey()));
properties.SetSupportsSpdy(kServer, NetworkIsolationKey(), true);
- EXPECT_TRUE(properties.GetSupportsSpdy(kServer, kNetworkIsolationKey));
+ EXPECT_TRUE(properties.GetSupportsSpdy(kServer, network_isolation_key1_));
EXPECT_TRUE(
- properties.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ properties.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_TRUE(properties.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_TRUE(
properties.SupportsRequestPriority(kServer, NetworkIsolationKey()));
- properties.SetSupportsSpdy(kServer, kNetworkIsolationKey, false);
- EXPECT_FALSE(properties.GetSupportsSpdy(kServer, kNetworkIsolationKey));
+ properties.SetSupportsSpdy(kServer, network_isolation_key1_, false);
+ EXPECT_FALSE(properties.GetSupportsSpdy(kServer, network_isolation_key1_));
EXPECT_FALSE(
- properties.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ properties.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_TRUE(properties.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_TRUE(
properties.SupportsRequestPriority(kServer, NetworkIsolationKey()));
properties.SetSupportsSpdy(kServer, NetworkIsolationKey(), false);
- EXPECT_FALSE(properties.GetSupportsSpdy(kServer, kNetworkIsolationKey));
+ EXPECT_FALSE(properties.GetSupportsSpdy(kServer, network_isolation_key1_));
EXPECT_FALSE(
- properties.SupportsRequestPriority(kServer, kNetworkIsolationKey));
+ properties.SupportsRequestPriority(kServer, network_isolation_key1_));
EXPECT_FALSE(properties.GetSupportsSpdy(kServer, NetworkIsolationKey()));
EXPECT_FALSE(
properties.SupportsRequestPriority(kServer, NetworkIsolationKey()));
@@ -671,35 +676,116 @@ TEST_F(AlternateProtocolServerPropertiesTest, Set) {
EXPECT_EQ(expiration4, (*service_info)[0].expiration());
}
+TEST_F(AlternateProtocolServerPropertiesTest, SetWebSockets) {
+ // The https and wss servers should be treated as the same server, as should
+ // the http and ws servers.
+ url::SchemeHostPort https_server("https", "www.test.com", 443);
+ url::SchemeHostPort wss_server("wss", "www.test.com", 443);
+ url::SchemeHostPort http_server("http", "www.test.com", 443);
+ url::SchemeHostPort ws_server("ws", "www.test.com", 443);
+
+ AlternativeService alternative_service(kProtoHTTP2, "bar", 443);
+
+ EXPECT_EQ(
+ 0u, impl_.GetAlternativeServiceInfos(https_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(wss_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(http_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(ws_server, NetworkIsolationKey())
+ .size());
+
+ SetAlternativeService(wss_server, alternative_service);
+ EXPECT_EQ(
+ 1u, impl_.GetAlternativeServiceInfos(https_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(1u,
+ impl_.GetAlternativeServiceInfos(wss_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(http_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(ws_server, NetworkIsolationKey())
+ .size());
+
+ SetAlternativeService(http_server, alternative_service);
+ EXPECT_EQ(
+ 1u, impl_.GetAlternativeServiceInfos(https_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(1u,
+ impl_.GetAlternativeServiceInfos(wss_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(1u,
+ impl_.GetAlternativeServiceInfos(http_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(1u,
+ impl_.GetAlternativeServiceInfos(ws_server, NetworkIsolationKey())
+ .size());
+
+ impl_.SetAlternativeServices(https_server, NetworkIsolationKey(),
+ AlternativeServiceInfoVector());
+ EXPECT_EQ(
+ 0u, impl_.GetAlternativeServiceInfos(https_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(wss_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(1u,
+ impl_.GetAlternativeServiceInfos(http_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(1u,
+ impl_.GetAlternativeServiceInfos(ws_server, NetworkIsolationKey())
+ .size());
+
+ impl_.SetAlternativeServices(ws_server, NetworkIsolationKey(),
+ AlternativeServiceInfoVector());
+ EXPECT_EQ(
+ 0u, impl_.GetAlternativeServiceInfos(https_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(wss_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(http_server, NetworkIsolationKey())
+ .size());
+ EXPECT_EQ(0u,
+ impl_.GetAlternativeServiceInfos(ws_server, NetworkIsolationKey())
+ .size());
+}
+
TEST_F(AlternateProtocolServerPropertiesTest, SetWithNetworkIsolationKey) {
const url::SchemeHostPort kServer("https", "foo.test", 443);
const AlternativeServiceInfoVector kAlternativeServices(
{AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
AlternativeService(kProtoHTTP2, "foo", 443),
base::Time::Now() + base::TimeDelta::FromDays(1) /* expiration */)});
- const url::Origin kOrigin = url::Origin::Create(GURL("https://foo.test/"));
- const NetworkIsolationKey kNetworkIsolationKey(kOrigin, kOrigin);
- EXPECT_TRUE(
- impl_.GetAlternativeServiceInfos(kServer, kNetworkIsolationKey).empty());
+ EXPECT_TRUE(impl_.GetAlternativeServiceInfos(kServer, network_isolation_key1_)
+ .empty());
EXPECT_TRUE(
impl_.GetAlternativeServiceInfos(kServer, NetworkIsolationKey()).empty());
// Without network isolation keys enabled for HttpServerProperties, passing in
// a NetworkIsolationKey should have no effect on behavior.
for (const auto network_isolation_key_to_set :
- {NetworkIsolationKey(), kNetworkIsolationKey}) {
+ {NetworkIsolationKey(), network_isolation_key1_}) {
impl_.SetAlternativeServices(kServer, network_isolation_key_to_set,
kAlternativeServices);
- EXPECT_EQ(kAlternativeServices,
- impl_.GetAlternativeServiceInfos(kServer, kNetworkIsolationKey));
+ EXPECT_EQ(kAlternativeServices, impl_.GetAlternativeServiceInfos(
+ kServer, network_isolation_key1_));
EXPECT_EQ(kAlternativeServices,
impl_.GetAlternativeServiceInfos(kServer, NetworkIsolationKey()));
impl_.SetAlternativeServices(kServer, network_isolation_key_to_set,
AlternativeServiceInfoVector());
- EXPECT_TRUE(impl_.GetAlternativeServiceInfos(kServer, kNetworkIsolationKey)
- .empty());
+ EXPECT_TRUE(
+ impl_.GetAlternativeServiceInfos(kServer, network_isolation_key1_)
+ .empty());
EXPECT_TRUE(impl_.GetAlternativeServiceInfos(kServer, NetworkIsolationKey())
.empty());
}
@@ -716,10 +802,10 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetWithNetworkIsolationKey) {
nullptr /* net_log */, test_tick_clock_,
&test_clock_);
- properties.SetAlternativeServices(kServer, kNetworkIsolationKey,
+ properties.SetAlternativeServices(kServer, network_isolation_key1_,
kAlternativeServices);
EXPECT_EQ(kAlternativeServices, properties.GetAlternativeServiceInfos(
- kServer, kNetworkIsolationKey));
+ kServer, network_isolation_key1_));
EXPECT_TRUE(
properties.GetAlternativeServiceInfos(kServer, NetworkIsolationKey())
.empty());
@@ -727,14 +813,14 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetWithNetworkIsolationKey) {
properties.SetAlternativeServices(kServer, NetworkIsolationKey(),
kAlternativeServices);
EXPECT_EQ(kAlternativeServices, properties.GetAlternativeServiceInfos(
- kServer, kNetworkIsolationKey));
+ kServer, network_isolation_key1_));
EXPECT_EQ(kAlternativeServices, properties.GetAlternativeServiceInfos(
kServer, NetworkIsolationKey()));
- properties.SetAlternativeServices(kServer, kNetworkIsolationKey,
+ properties.SetAlternativeServices(kServer, network_isolation_key1_,
AlternativeServiceInfoVector());
EXPECT_TRUE(
- properties.GetAlternativeServiceInfos(kServer, kNetworkIsolationKey)
+ properties.GetAlternativeServiceInfos(kServer, network_isolation_key1_)
.empty());
EXPECT_EQ(kAlternativeServices, properties.GetAlternativeServiceInfos(
kServer, NetworkIsolationKey()));
@@ -742,7 +828,7 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetWithNetworkIsolationKey) {
properties.SetAlternativeServices(kServer, NetworkIsolationKey(),
AlternativeServiceInfoVector());
EXPECT_TRUE(
- properties.GetAlternativeServiceInfos(kServer, kNetworkIsolationKey)
+ properties.GetAlternativeServiceInfos(kServer, network_isolation_key1_)
.empty());
EXPECT_TRUE(
properties.GetAlternativeServiceInfos(kServer, NetworkIsolationKey())
@@ -759,14 +845,15 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetWithEmptyHostname) {
const AlternativeService alternative_service_with_foo_hostname(kProtoHTTP2,
"foo", 1234);
SetAlternativeService(server, alternative_service_with_empty_hostname);
- impl_.MarkAlternativeServiceBroken(alternative_service_with_foo_hostname);
+ impl_.MarkAlternativeServiceBroken(alternative_service_with_foo_hostname,
+ NetworkIsolationKey());
std::unique_ptr<HttpServerProperties::ServerInfoMap> server_info_map =
std::make_unique<HttpServerProperties::ServerInfoMap>();
impl_.OnServerInfoLoadedForTesting(std::move(server_info_map));
- EXPECT_TRUE(
- impl_.IsAlternativeServiceBroken(alternative_service_with_foo_hostname));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(
+ alternative_service_with_foo_hostname, NetworkIsolationKey()));
const AlternativeServiceInfoVector alternative_service_info_vector =
impl_.GetAlternativeServiceInfos(server, NetworkIsolationKey());
ASSERT_EQ(1u, alternative_service_info_vector.size());
@@ -926,16 +1013,19 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service1,
alternative_service_info_vector[0].alternative_service());
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
// GetAlternativeServiceInfos should return the broken alternative service.
- impl_.MarkAlternativeServiceBroken(alternative_service1);
+ impl_.MarkAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey());
alternative_service_info_vector =
impl_.GetAlternativeServiceInfos(test_server, NetworkIsolationKey());
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service1,
alternative_service_info_vector[0].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
// SetAlternativeServices should add a broken alternative service to the map.
AlternativeServiceInfoVector alternative_service_info_vector2;
@@ -956,8 +1046,10 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
alternative_service_info_vector[0].alternative_service());
EXPECT_EQ(alternative_service2,
alternative_service_info_vector[1].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2,
+ NetworkIsolationKey()));
// SetAlternativeService should add a broken alternative service to the map.
SetAlternativeService(test_server, alternative_service1);
@@ -966,7 +1058,8 @@ TEST_F(AlternateProtocolServerPropertiesTest, SetBroken) {
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service1,
alternative_service_info_vector[0].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
}
TEST_F(AlternateProtocolServerPropertiesTest,
@@ -979,18 +1072,20 @@ TEST_F(AlternateProtocolServerPropertiesTest,
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service1,
alternative_service_info_vector[0].alternative_service());
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
// Mark the alternative service as broken until the default network changes.
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service1);
+ alternative_service1, NetworkIsolationKey());
// The alternative service should be persisted and marked as broken.
alternative_service_info_vector =
impl_.GetAlternativeServiceInfos(test_server, NetworkIsolationKey());
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service1,
alternative_service_info_vector[0].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
// SetAlternativeServices should add a broken alternative service to the map.
AlternativeServiceInfoVector alternative_service_info_vector2;
@@ -1011,8 +1106,10 @@ TEST_F(AlternateProtocolServerPropertiesTest,
alternative_service_info_vector[0].alternative_service());
EXPECT_EQ(alternative_service2,
alternative_service_info_vector[1].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2,
+ NetworkIsolationKey()));
// SetAlternativeService should add a broken alternative service to the map.
SetAlternativeService(test_server, alternative_service1);
@@ -1021,7 +1118,8 @@ TEST_F(AlternateProtocolServerPropertiesTest,
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(alternative_service1,
alternative_service_info_vector[0].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
}
TEST_F(AlternateProtocolServerPropertiesTest, MaxAge) {
@@ -1190,8 +1288,10 @@ TEST_F(AlternateProtocolServerPropertiesTest, BrokenShadowsCanonical) {
alternative_service_info_vector[0].alternative_service());
const AlternativeService broken_alternative_service(kProtoHTTP2, "foo", 443);
- impl_.MarkAlternativeServiceBroken(broken_alternative_service);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(broken_alternative_service));
+ impl_.MarkAlternativeServiceBroken(broken_alternative_service,
+ NetworkIsolationKey());
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(broken_alternative_service,
+ NetworkIsolationKey()));
SetAlternativeService(test_server, broken_alternative_service);
alternative_service_info_vector =
@@ -1199,21 +1299,134 @@ TEST_F(AlternateProtocolServerPropertiesTest, BrokenShadowsCanonical) {
ASSERT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(broken_alternative_service,
alternative_service_info_vector[0].alternative_service());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(broken_alternative_service));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(broken_alternative_service,
+ NetworkIsolationKey()));
}
TEST_F(AlternateProtocolServerPropertiesTest, ClearBroken) {
url::SchemeHostPort test_server("http", "foo", 80);
const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
SetAlternativeService(test_server, alternative_service);
- impl_.MarkAlternativeServiceBroken(alternative_service);
+ impl_.MarkAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey());
ASSERT_TRUE(HasAlternativeService(test_server, NetworkIsolationKey()));
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
// SetAlternativeServices should leave a broken alternative service marked
// as such.
impl_.SetAlternativeServices(test_server, NetworkIsolationKey(),
AlternativeServiceInfoVector());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+}
+
+TEST_F(AlternateProtocolServerPropertiesTest,
+ MarkBrokenWithNetworkIsolationKey) {
+ url::SchemeHostPort server("http", "foo", 80);
+ const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
+ const base::Time expiration =
+ test_clock_.Now() + base::TimeDelta::FromDays(1);
+
+ // Without NetworkIsolationKeys enabled, the NetworkIsolationKey parameter
+ // should be ignored.
+ impl_.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ impl_.MarkAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_);
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ impl_.ConfirmAlternativeService(alternative_service, network_isolation_key2_);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
+
+ properties.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+ properties.SetHttp2AlternativeService(server, network_isolation_key2_,
+ alternative_service, expiration);
+
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.ConfirmAlternativeService(alternative_service,
+ network_isolation_key1_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.ConfirmAlternativeService(alternative_service,
+ network_isolation_key2_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
}
TEST_F(AlternateProtocolServerPropertiesTest, MarkRecentlyBroken) {
@@ -1221,16 +1434,131 @@ TEST_F(AlternateProtocolServerPropertiesTest, MarkRecentlyBroken) {
const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
SetAlternativeService(server, alternative_service);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
+
+ impl_.MarkAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey());
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
+
+ impl_.ConfirmAlternativeService(alternative_service, NetworkIsolationKey());
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
+}
- impl_.MarkAlternativeServiceRecentlyBroken(alternative_service);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+TEST_F(AlternateProtocolServerPropertiesTest,
+ MarkRecentlyBrokenWithNetworkIsolationKey) {
+ url::SchemeHostPort server("http", "foo", 80);
+ const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
+ const base::Time expiration =
+ test_clock_.Now() + base::TimeDelta::FromDays(1);
+
+ // Without NetworkIsolationKeys enabled, the NetworkIsolationKey parameter
+ // should be ignored.
+ impl_.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ impl_.MarkAlternativeServiceRecentlyBroken(alternative_service,
+ network_isolation_key1_);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ impl_.ConfirmAlternativeService(alternative_service, network_isolation_key2_);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
- impl_.ConfirmAlternativeService(alternative_service);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ properties.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+ properties.SetHttp2AlternativeService(server, network_isolation_key2_,
+ alternative_service, expiration);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceRecentlyBroken(alternative_service,
+ network_isolation_key1_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceRecentlyBroken(alternative_service,
+ network_isolation_key2_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.ConfirmAlternativeService(alternative_service,
+ network_isolation_key1_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.ConfirmAlternativeService(alternative_service,
+ network_isolation_key2_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
}
TEST_F(AlternateProtocolServerPropertiesTest,
@@ -1239,17 +1567,133 @@ TEST_F(AlternateProtocolServerPropertiesTest,
const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
SetAlternativeService(server, alternative_service);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ alternative_service, NetworkIsolationKey());
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
+
+ impl_.ConfirmAlternativeService(alternative_service, NetworkIsolationKey());
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
+}
+
+TEST_F(AlternateProtocolServerPropertiesTest,
+ MarkBrokenUntilDefaultNetworkChangesWithNetworkIsolationKey) {
+ url::SchemeHostPort server("http", "foo", 80);
+ const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
+ const base::Time expiration =
+ test_clock_.Now() + base::TimeDelta::FromDays(1);
+
+ // Without NetworkIsolationKeys enabled, the NetworkIsolationKey parameter
+ // should be ignored.
+ impl_.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
+ alternative_service, network_isolation_key1_);
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ impl_.ConfirmAlternativeService(alternative_service, network_isolation_key2_);
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
- impl_.ConfirmAlternativeService(alternative_service);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ properties.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+ properties.SetHttp2AlternativeService(server, network_isolation_key2_,
+ alternative_service, expiration);
+
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
+ alternative_service, network_isolation_key1_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
+ alternative_service, network_isolation_key2_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.ConfirmAlternativeService(alternative_service,
+ network_isolation_key1_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.ConfirmAlternativeService(alternative_service,
+ network_isolation_key2_);
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
}
TEST_F(AlternateProtocolServerPropertiesTest, OnDefaultNetworkChanged) {
@@ -1257,45 +1701,117 @@ TEST_F(AlternateProtocolServerPropertiesTest, OnDefaultNetworkChanged) {
const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
SetAlternativeService(server, alternative_service);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ alternative_service, NetworkIsolationKey());
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
// Default network change clears alt svc broken until default network changes.
impl_.OnDefaultNetworkChanged();
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
-
- impl_.MarkAlternativeServiceBroken(alternative_service);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ alternative_service, NetworkIsolationKey());
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
+
+ impl_.MarkAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey());
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
// Default network change doesn't affect alt svc that was simply marked broken
// most recently.
impl_.OnDefaultNetworkChanged();
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ alternative_service, NetworkIsolationKey());
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
// Default network change clears alt svc that was marked broken until default
// network change most recently even if the alt svc was initially marked
// broken.
impl_.OnDefaultNetworkChanged();
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
+}
+
+TEST_F(AlternateProtocolServerPropertiesTest,
+ OnDefaultNetworkChangedWithNetworkIsolationKey) {
+ url::SchemeHostPort server("http", "foo", 80);
+ const AlternativeService alternative_service(kProtoHTTP2, "foo", 443);
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
+
+ const base::Time expiration =
+ test_clock_.Now() + base::TimeDelta::FromDays(1);
+ properties.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service, expiration);
+ properties.SetHttp2AlternativeService(server, network_isolation_key2_,
+ alternative_service, expiration);
+
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ properties.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
+ alternative_service, network_isolation_key1_);
+ properties.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
+ alternative_service, network_isolation_key2_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ // Default network change clears alt svc broken until default network changes.
+ properties.OnDefaultNetworkChanged();
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
}
TEST_F(AlternateProtocolServerPropertiesTest, Canonical) {
@@ -1359,11 +1875,6 @@ TEST_F(AlternateProtocolServerPropertiesTest, ClearCanonical) {
TEST_F(AlternateProtocolServerPropertiesTest,
CanonicalWithNetworkIsolationKey) {
- const url::Origin kOrigin1 = url::Origin::Create(GURL("https://foo.test/"));
- const NetworkIsolationKey kNetworkIsolationKey1(kOrigin1, kOrigin1);
- const url::Origin kOrigin2 = url::Origin::Create(GURL("https://bar.test/"));
- const NetworkIsolationKey kNetworkIsolationKey2(kOrigin2, kOrigin2);
-
base::test::ScopedFeatureList feature_list;
feature_list.InitAndEnableFeature(
features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
@@ -1374,10 +1885,11 @@ TEST_F(AlternateProtocolServerPropertiesTest,
&test_clock_);
url::SchemeHostPort test_server("https", "foo.c.youtube.com", 443);
- EXPECT_FALSE(HasAlternativeService(test_server, kNetworkIsolationKey1));
+ EXPECT_FALSE(HasAlternativeService(test_server, network_isolation_key1_));
url::SchemeHostPort canonical_server1("https", "bar.c.youtube.com", 443);
- EXPECT_FALSE(HasAlternativeService(canonical_server1, kNetworkIsolationKey1));
+ EXPECT_FALSE(
+ HasAlternativeService(canonical_server1, network_isolation_key1_));
AlternativeServiceInfoVector alternative_service_info_vector;
const AlternativeService canonical_alternative_service1(
@@ -1391,56 +1903,59 @@ TEST_F(AlternateProtocolServerPropertiesTest,
alternative_service_info_vector.push_back(
AlternativeServiceInfo::CreateHttp2AlternativeServiceInfo(
canonical_alternative_service2, expiration));
- properties.SetAlternativeServices(canonical_server1, kNetworkIsolationKey1,
+ properties.SetAlternativeServices(canonical_server1, network_isolation_key1_,
alternative_service_info_vector);
// Since |test_server| does not have an alternative service itself,
// GetAlternativeServiceInfos should return those of |canonical_server|.
AlternativeServiceInfoVector alternative_service_info_vector2 =
- properties.GetAlternativeServiceInfos(test_server, kNetworkIsolationKey1);
+ properties.GetAlternativeServiceInfos(test_server,
+ network_isolation_key1_);
ASSERT_EQ(2u, alternative_service_info_vector2.size());
EXPECT_EQ(canonical_alternative_service1,
alternative_service_info_vector2[0].alternative_service());
// Canonical information should not be visible for other NetworkIsolationKeys.
EXPECT_TRUE(
- properties.GetAlternativeServiceInfos(test_server, kNetworkIsolationKey2)
+ properties
+ .GetAlternativeServiceInfos(test_server, network_isolation_key2_)
.empty());
EXPECT_TRUE(
properties.GetAlternativeServiceInfos(test_server, NetworkIsolationKey())
.empty());
- // Now add an alternative service entry for kNetworkIsolationKey2 for a
+ // Now add an alternative service entry for network_isolation_key2_ for a
// different server and different NetworkIsolationKey, but with the same
// canonical suffix.
url::SchemeHostPort canonical_server2("https", "shrimp.c.youtube.com", 443);
- properties.SetAlternativeServices(canonical_server2, kNetworkIsolationKey2,
+ properties.SetAlternativeServices(canonical_server2, network_isolation_key2_,
{alternative_service_info_vector[0]});
// The canonical server information should reachable, and different, for both
// NetworkIsolationKeys.
EXPECT_EQ(
- 1u,
- properties.GetAlternativeServiceInfos(test_server, kNetworkIsolationKey2)
- .size());
+ 1u, properties
+ .GetAlternativeServiceInfos(test_server, network_isolation_key2_)
+ .size());
EXPECT_EQ(
- 2u,
- properties.GetAlternativeServiceInfos(test_server, kNetworkIsolationKey1)
- .size());
+ 2u, properties
+ .GetAlternativeServiceInfos(test_server, network_isolation_key1_)
+ .size());
EXPECT_TRUE(
properties.GetAlternativeServiceInfos(test_server, NetworkIsolationKey())
.empty());
- // Clearing the alternate service state of kNetworkIsolationKey1's canonical
- // server should only affect kNetworkIsolationKey1.
- properties.SetAlternativeServices(canonical_server1, kNetworkIsolationKey1,
+ // Clearing the alternate service state of network_isolation_key1_'s canonical
+ // server should only affect network_isolation_key1_.
+ properties.SetAlternativeServices(canonical_server1, network_isolation_key1_,
{});
EXPECT_EQ(
- 1u,
- properties.GetAlternativeServiceInfos(test_server, kNetworkIsolationKey2)
- .size());
+ 1u, properties
+ .GetAlternativeServiceInfos(test_server, network_isolation_key2_)
+ .size());
EXPECT_TRUE(
- properties.GetAlternativeServiceInfos(test_server, kNetworkIsolationKey1)
+ properties
+ .GetAlternativeServiceInfos(test_server, network_isolation_key1_)
.empty());
EXPECT_TRUE(
properties.GetAlternativeServiceInfos(test_server, NetworkIsolationKey())
@@ -1455,7 +1970,8 @@ TEST_F(AlternateProtocolServerPropertiesTest, CanonicalBroken) {
SetAlternativeService(canonical_server, canonical_alternative_service);
EXPECT_TRUE(HasAlternativeService(test_server, NetworkIsolationKey()));
- impl_.MarkAlternativeServiceBroken(canonical_alternative_service);
+ impl_.MarkAlternativeServiceBroken(canonical_alternative_service,
+ NetworkIsolationKey());
EXPECT_FALSE(HasAlternativeService(test_server, NetworkIsolationKey()));
}
@@ -1469,7 +1985,7 @@ TEST_F(AlternateProtocolServerPropertiesTest,
SetAlternativeService(canonical_server, canonical_alternative_service);
EXPECT_TRUE(HasAlternativeService(test_server, NetworkIsolationKey()));
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- canonical_alternative_service);
+ canonical_alternative_service, NetworkIsolationKey());
EXPECT_FALSE(HasAlternativeService(test_server, NetworkIsolationKey()));
}
@@ -1514,19 +2030,112 @@ TEST_F(AlternateProtocolServerPropertiesTest,
AlternativeService alternative_service(kProtoQUIC, "foo", 443);
SetAlternativeService(server, alternative_service);
EXPECT_TRUE(HasAlternativeService(server, NetworkIsolationKey()));
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey()));
base::TimeTicks past =
test_tick_clock_->NowTicks() - base::TimeDelta::FromSeconds(42);
HttpServerPropertiesPeer::AddBrokenAlternativeServiceWithExpirationTime(
&impl_, alternative_service, past);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
HttpServerPropertiesPeer::ExpireBrokenAlternateProtocolMappings(&impl_);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service));
- EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service));
+ EXPECT_FALSE(HasAlternativeService(server, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(alternative_service,
+ NetworkIsolationKey()));
+}
+
+TEST_F(AlternateProtocolServerPropertiesTest,
+ ExpireBrokenAlternateProtocolMappingsWithNetworkIsolationKey) {
+ url::SchemeHostPort server("https", "foo", 443);
+ AlternativeService alternative_service(kProtoHTTP2, "foo", 444);
+ base::TimeTicks past =
+ test_tick_clock_->NowTicks() - base::TimeDelta::FromSeconds(42);
+ base::TimeTicks future =
+ test_tick_clock_->NowTicks() + base::TimeDelta::FromSeconds(42);
+ const base::Time alt_service_expiration =
+ test_clock_.Now() + base::TimeDelta::FromDays(1);
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
+
+ properties.SetHttp2AlternativeService(server, network_isolation_key1_,
+ alternative_service,
+ alt_service_expiration);
+ properties.SetHttp2AlternativeService(server, network_isolation_key2_,
+ alternative_service,
+ alt_service_expiration);
+
+ EXPECT_FALSE(
+ properties.GetAlternativeServiceInfos(server, network_isolation_key1_)
+ .empty());
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(
+ properties.GetAlternativeServiceInfos(server, network_isolation_key2_)
+ .empty());
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ // Set broken alternative service with expiration date in the past for
+ // |network_isolation_key1_|.
+ HttpServerPropertiesPeer::AddBrokenAlternativeServiceWithExpirationTime(
+ &properties, alternative_service, past, network_isolation_key1_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_FALSE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ // Set broken alternative service with expiration date in the future for
+ // |network_isolation_key1_|.
+ HttpServerPropertiesPeer::AddBrokenAlternativeServiceWithExpirationTime(
+ &properties, alternative_service, future, network_isolation_key2_);
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
+
+ // Only the broken entry for |network_isolation_key1_| should be expired.
+ HttpServerPropertiesPeer::ExpireBrokenAlternateProtocolMappings(&properties);
+ EXPECT_TRUE(
+ properties.GetAlternativeServiceInfos(server, network_isolation_key1_)
+ .empty());
+ EXPECT_FALSE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key1_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key1_));
+ EXPECT_FALSE(
+ properties.GetAlternativeServiceInfos(server, network_isolation_key2_)
+ .empty());
+ EXPECT_TRUE(properties.IsAlternativeServiceBroken(alternative_service,
+ network_isolation_key2_));
+ EXPECT_TRUE(properties.WasAlternativeServiceRecentlyBroken(
+ alternative_service, network_isolation_key2_));
}
// Regression test for https://crbug.com/505413.
@@ -1562,10 +2171,10 @@ TEST_F(AlternateProtocolServerPropertiesTest, RemoveExpiredBrokenAltSvc) {
// The alternative service of "bar:443" should be unaffected.
EXPECT_TRUE(HasAlternativeService(bar_server2, NetworkIsolationKey()));
- EXPECT_TRUE(
- impl_.WasAlternativeServiceRecentlyBroken(bar_alternative_service));
- EXPECT_FALSE(
- impl_.WasAlternativeServiceRecentlyBroken(baz_alternative_service));
+ EXPECT_TRUE(impl_.WasAlternativeServiceRecentlyBroken(bar_alternative_service,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.WasAlternativeServiceRecentlyBroken(
+ baz_alternative_service, NetworkIsolationKey()));
}
// Regression test for https://crbug.com/724302
@@ -1589,12 +2198,14 @@ TEST_F(AlternateProtocolServerPropertiesTest, RemoveExpiredBrokenAltSvc2) {
// Repeatedly mark alt svc 1 broken and wait for its brokenness to expire.
// This will increase its time until expiration.
for (int i = 0; i < 3; ++i) {
- impl_.MarkAlternativeServiceBroken(alternative_service1);
+ impl_.MarkAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey());
// |impl_| should have posted task to expire the brokenness of
// |alternative_service1|
EXPECT_EQ(1u, GetPendingMainThreadTaskCount());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
// Advance time by just enough so that |alternative_service1|'s brokenness
// expires.
@@ -1602,27 +2213,35 @@ TEST_F(AlternateProtocolServerPropertiesTest, RemoveExpiredBrokenAltSvc2) {
// Ensure brokenness of |alternative_service1| has expired.
EXPECT_EQ(0u, GetPendingMainThreadTaskCount());
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
}
- impl_.MarkAlternativeServiceBroken(alternative_service1);
- impl_.MarkAlternativeServiceBroken(alternative_service2);
+ impl_.MarkAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey());
+ impl_.MarkAlternativeServiceBroken(alternative_service2,
+ NetworkIsolationKey());
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service2));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service2,
+ NetworkIsolationKey()));
// Advance time by just enough so that |alternative_service2|'s brokennness
// expires.
FastForwardBy(BROKEN_ALT_SVC_EXPIRE_DELAYS[0]);
- EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1));
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2));
+ EXPECT_TRUE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2,
+ NetworkIsolationKey()));
// Advance time by enough so that |alternative_service1|'s brokenness expires.
FastForwardBy(BROKEN_ALT_SVC_EXPIRE_DELAYS[3] -
BROKEN_ALT_SVC_EXPIRE_DELAYS[0]);
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1));
- EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service1,
+ NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.IsAlternativeServiceBroken(alternative_service2,
+ NetworkIsolationKey()));
}
// Regression test for https://crbug.com/994537. Having a ServerInfo entry
@@ -1688,11 +2307,11 @@ TEST_F(AlternateProtocolServerPropertiesTest,
NetworkIsolationKey(),
alternative_service_info_vector);
- impl_.MarkAlternativeServiceBroken(
- AlternativeService(kProtoQUIC, "bar", 443));
+ impl_.MarkAlternativeServiceBroken(AlternativeService(kProtoQUIC, "bar", 443),
+ NetworkIsolationKey());
impl_.MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- AlternativeService(kProtoQUIC, "baz", 443));
+ AlternativeService(kProtoQUIC, "baz", 443), NetworkIsolationKey());
alternative_service_info_vector.clear();
alternative_service_info_vector.push_back(
@@ -1731,41 +2350,84 @@ TEST_F(AlternateProtocolServerPropertiesTest,
EXPECT_EQ(expected_json, alternative_service_info_json);
}
-typedef HttpServerPropertiesTest SupportsQuicServerPropertiesTest;
-
-TEST_F(SupportsQuicServerPropertiesTest, Set) {
- HostPortPair quic_server_google("www.google.com", 443);
+TEST_F(HttpServerPropertiesTest, LoadLastLocalAddressWhenQuicWorked) {
+ const IPAddress kEmptyAddress;
+ const IPAddress kValidAddress1 = IPAddress::IPv4Localhost();
+ const IPAddress kValidAddress2 = IPAddress::IPv6Localhost();
// Check by initializing empty address.
- IPAddress initial_address;
- impl_.OnSupportsQuicLoadedForTesting(initial_address);
-
- IPAddress address;
- EXPECT_FALSE(impl_.GetSupportsQuic(&address));
- EXPECT_TRUE(address.empty());
+ impl_.OnLastLocalAddressWhenQuicWorkedForTesting(kEmptyAddress);
+ EXPECT_FALSE(impl_.HasLastLocalAddressWhenQuicWorked());
+ // Empty address should not be considered an address that was used when QUIC
+ // worked.
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
// Check by initializing with a valid address.
- initial_address = IPAddress::IPv4Localhost();
- impl_.OnSupportsQuicLoadedForTesting(initial_address);
-
- EXPECT_TRUE(impl_.GetSupportsQuic(&address));
- EXPECT_EQ(initial_address, address);
+ impl_.OnLastLocalAddressWhenQuicWorkedForTesting(kValidAddress1);
+ EXPECT_TRUE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_TRUE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
+
+ // Try another valid address.
+ impl_.OnLastLocalAddressWhenQuicWorkedForTesting(kValidAddress2);
+ EXPECT_TRUE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_TRUE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
+
+ // And loading an empty address clears the current one.
+ // TODO(mmenke): This seems like a bug, since if we've learned the current
+ // network supports QUIC, surely we want to save that to disk? Seems like a
+ // pre-existing value should take precedence, if non-empty, since if the
+ // current network is already known to support QUIC, the loaded value is no
+ // longer relevant.
+ impl_.OnLastLocalAddressWhenQuicWorkedForTesting(kEmptyAddress);
+ EXPECT_FALSE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
}
-TEST_F(SupportsQuicServerPropertiesTest, SetSupportsQuic) {
- IPAddress address;
- EXPECT_FALSE(impl_.GetSupportsQuic(&address));
- EXPECT_TRUE(address.empty());
-
- IPAddress actual_address(127, 0, 0, 1);
- impl_.SetSupportsQuic(true, actual_address);
-
- EXPECT_TRUE(impl_.GetSupportsQuic(&address));
- EXPECT_EQ(actual_address, address);
-
+TEST_F(HttpServerPropertiesTest, SetLastLocalAddressWhenQuicWorked) {
+ const IPAddress kEmptyAddress;
+ const IPAddress kValidAddress1 = IPAddress::IPv4Localhost();
+ const IPAddress kValidAddress2 = IPAddress::IPv6Localhost();
+
+ EXPECT_FALSE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
+
+ // Set to a valid address.
+ impl_.SetLastLocalAddressWhenQuicWorked(kValidAddress1);
+ EXPECT_TRUE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_TRUE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
+
+ // Clear only this value.
+ impl_.ClearLastLocalAddressWhenQuicWorked();
+ EXPECT_FALSE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
+
+ // Try another valid address.
+ impl_.SetLastLocalAddressWhenQuicWorked(kValidAddress2);
+ EXPECT_TRUE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_TRUE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
+
+ // Clear all values.
impl_.Clear(base::OnceClosure());
-
- EXPECT_FALSE(impl_.GetSupportsQuic(&address));
+ EXPECT_FALSE(impl_.HasLastLocalAddressWhenQuicWorked());
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kEmptyAddress));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress1));
+ EXPECT_FALSE(impl_.WasLastLocalAddressWhenQuicWorked(kValidAddress2));
}
TEST_F(HttpServerPropertiesTest, LoadServerNetworkStats) {
@@ -1889,18 +2551,21 @@ TEST_F(HttpServerPropertiesTest, ClearServerNetworkStats) {
NetworkIsolationKey()));
}
-typedef HttpServerPropertiesTest QuicServerInfoServerPropertiesTest;
-
-TEST_F(QuicServerInfoServerPropertiesTest, Set) {
+TEST_F(HttpServerPropertiesTest, OnQuicServerInfoMapLoaded) {
quic::QuicServerId google_quic_server_id("www.google.com", 443, true);
+ HttpServerProperties::QuicServerInfoMapKey google_key(
+ google_quic_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
const int kMaxQuicServerEntries = 10;
impl_.SetMaxServerConfigsStoredInProperties(kMaxQuicServerEntries);
EXPECT_EQ(10u, impl_.quic_server_info_map().max_size());
// Check empty map.
- std::unique_ptr<QuicServerInfoMap> init_quic_server_info_map =
- std::make_unique<QuicServerInfoMap>(kMaxQuicServerEntries);
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>
+ init_quic_server_info_map =
+ std::make_unique<HttpServerProperties::QuicServerInfoMap>(
+ kMaxQuicServerEntries);
impl_.OnQuicServerInfoMapLoadedForTesting(
std::move(init_quic_server_info_map));
EXPECT_EQ(0u, impl_.quic_server_info_map().size());
@@ -1908,15 +2573,17 @@ TEST_F(QuicServerInfoServerPropertiesTest, Set) {
// Check by initializing with www.google.com:443.
std::string google_server_info("google_quic_server_info");
init_quic_server_info_map =
- std::make_unique<QuicServerInfoMap>(kMaxQuicServerEntries);
- init_quic_server_info_map->Put(google_quic_server_id, google_server_info);
+ std::make_unique<HttpServerProperties::QuicServerInfoMap>(
+ kMaxQuicServerEntries);
+ init_quic_server_info_map->Put(google_key, google_server_info);
impl_.OnQuicServerInfoMapLoadedForTesting(
std::move(init_quic_server_info_map));
// Verify data for www.google.com:443.
EXPECT_EQ(1u, impl_.quic_server_info_map().size());
- EXPECT_EQ(google_server_info,
- *impl_.GetQuicServerInfo(google_quic_server_id));
+ EXPECT_EQ(
+ google_server_info,
+ *impl_.GetQuicServerInfo(google_quic_server_id, NetworkIsolationKey()));
// Test recency order and overwriting of data.
//
@@ -1924,43 +2591,54 @@ TEST_F(QuicServerInfoServerPropertiesTest, Set) {
// SetQuicServerInfoMap(), because |quic_server_info_map| has an
// entry for |docs_server|.
quic::QuicServerId docs_quic_server_id("docs.google.com", 443, true);
+ HttpServerProperties::QuicServerInfoMapKey docs_key(
+ docs_quic_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
std::string docs_server_info("docs_quic_server_info");
- impl_.SetQuicServerInfo(docs_quic_server_id, docs_server_info);
+ impl_.SetQuicServerInfo(docs_quic_server_id, NetworkIsolationKey(),
+ docs_server_info);
// Recency order will be |docs_server| and |google_server|.
- const QuicServerInfoMap& map = impl_.quic_server_info_map();
+ const HttpServerProperties::QuicServerInfoMap& map =
+ impl_.quic_server_info_map();
ASSERT_EQ(2u, map.size());
auto map_it = map.begin();
- EXPECT_EQ(map_it->first, docs_quic_server_id);
+ EXPECT_EQ(map_it->first, docs_key);
EXPECT_EQ(docs_server_info, map_it->second);
++map_it;
- EXPECT_EQ(map_it->first, google_quic_server_id);
+ EXPECT_EQ(map_it->first, google_key);
EXPECT_EQ(google_server_info, map_it->second);
// Prepare |quic_server_info_map| to be loaded by
// SetQuicServerInfoMap().
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map =
- std::make_unique<QuicServerInfoMap>(kMaxQuicServerEntries);
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>
+ quic_server_info_map =
+ std::make_unique<HttpServerProperties::QuicServerInfoMap>(
+ kMaxQuicServerEntries);
// Change the values for |docs_server|.
std::string new_docs_server_info("new_docs_quic_server_info");
- quic_server_info_map->Put(docs_quic_server_id, new_docs_server_info);
+ quic_server_info_map->Put(docs_key, new_docs_server_info);
// Add data for mail.google.com:443.
quic::QuicServerId mail_quic_server_id("mail.google.com", 443, true);
+ HttpServerProperties::QuicServerInfoMapKey mail_key(
+ mail_quic_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
std::string mail_server_info("mail_quic_server_info");
- quic_server_info_map->Put(mail_quic_server_id, mail_server_info);
+ quic_server_info_map->Put(mail_key, mail_server_info);
impl_.OnQuicServerInfoMapLoadedForTesting(std::move(quic_server_info_map));
// Recency order will be |docs_server|, |google_server| and |mail_server|.
- const QuicServerInfoMap& memory_map = impl_.quic_server_info_map();
+ const HttpServerProperties::QuicServerInfoMap& memory_map =
+ impl_.quic_server_info_map();
ASSERT_EQ(3u, memory_map.size());
auto memory_map_it = memory_map.begin();
- EXPECT_EQ(memory_map_it->first, docs_quic_server_id);
+ EXPECT_EQ(memory_map_it->first, docs_key);
EXPECT_EQ(new_docs_server_info, memory_map_it->second);
++memory_map_it;
- EXPECT_EQ(memory_map_it->first, google_quic_server_id);
+ EXPECT_EQ(memory_map_it->first, google_key);
EXPECT_EQ(google_server_info, memory_map_it->second);
++memory_map_it;
- EXPECT_EQ(memory_map_it->first, mail_quic_server_id);
+ EXPECT_EQ(memory_map_it->first, mail_key);
EXPECT_EQ(mail_server_info, memory_map_it->second);
// Shrink the size of |quic_server_info_map| and verify the MRU order is
@@ -1968,119 +2646,276 @@ TEST_F(QuicServerInfoServerPropertiesTest, Set) {
impl_.SetMaxServerConfigsStoredInProperties(2);
EXPECT_EQ(2u, impl_.quic_server_info_map().max_size());
- const QuicServerInfoMap& memory_map1 = impl_.quic_server_info_map();
+ const HttpServerProperties::QuicServerInfoMap& memory_map1 =
+ impl_.quic_server_info_map();
ASSERT_EQ(2u, memory_map1.size());
auto memory_map1_it = memory_map1.begin();
- EXPECT_EQ(memory_map1_it->first, docs_quic_server_id);
+ EXPECT_EQ(memory_map1_it->first, docs_key);
EXPECT_EQ(new_docs_server_info, memory_map1_it->second);
++memory_map1_it;
- EXPECT_EQ(memory_map1_it->first, google_quic_server_id);
+ EXPECT_EQ(memory_map1_it->first, google_key);
EXPECT_EQ(google_server_info, memory_map1_it->second);
// |QuicServerInfo| for |mail_quic_server_id| shouldn't be there.
- EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(mail_quic_server_id));
+ EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(mail_quic_server_id,
+ NetworkIsolationKey()));
}
-TEST_F(QuicServerInfoServerPropertiesTest, SetQuicServerInfo) {
- quic::QuicServerId quic_server_id("foo", 80, true);
- EXPECT_EQ(0u, impl_.quic_server_info_map().size());
+TEST_F(HttpServerPropertiesTest, SetQuicServerInfo) {
+ quic::QuicServerId server1("foo", 80, false /* privacy_mode_enabled */);
+ quic::QuicServerId server2("foo", 80, true /* privacy_mode_enabled */);
std::string quic_server_info1("quic_server_info1");
- impl_.SetQuicServerInfo(quic_server_id, quic_server_info1);
+ std::string quic_server_info2("quic_server_info2");
+ std::string quic_server_info3("quic_server_info3");
- EXPECT_EQ(1u, impl_.quic_server_info_map().size());
- EXPECT_EQ(quic_server_info1, *(impl_.GetQuicServerInfo(quic_server_id)));
+ // Without network isolation keys enabled for HttpServerProperties, passing in
+ // a NetworkIsolationKey should have no effect on behavior.
+ impl_.SetQuicServerInfo(server1, NetworkIsolationKey(), quic_server_info1);
+ EXPECT_EQ(quic_server_info1,
+ *(impl_.GetQuicServerInfo(server1, NetworkIsolationKey())));
+ EXPECT_FALSE(impl_.GetQuicServerInfo(server2, NetworkIsolationKey()));
+ EXPECT_EQ(quic_server_info1,
+ *(impl_.GetQuicServerInfo(server1, network_isolation_key1_)));
+ EXPECT_FALSE(impl_.GetQuicServerInfo(server2, network_isolation_key1_));
+
+ impl_.SetQuicServerInfo(server2, network_isolation_key1_, quic_server_info2);
+ EXPECT_EQ(quic_server_info1,
+ *(impl_.GetQuicServerInfo(server1, NetworkIsolationKey())));
+ EXPECT_EQ(quic_server_info2,
+ *(impl_.GetQuicServerInfo(server2, NetworkIsolationKey())));
+ EXPECT_EQ(quic_server_info1,
+ *(impl_.GetQuicServerInfo(server1, network_isolation_key1_)));
+ EXPECT_EQ(quic_server_info2,
+ *(impl_.GetQuicServerInfo(server2, network_isolation_key1_)));
+
+ impl_.SetQuicServerInfo(server1, network_isolation_key1_, quic_server_info3);
+ EXPECT_EQ(quic_server_info3,
+ *(impl_.GetQuicServerInfo(server1, NetworkIsolationKey())));
+ EXPECT_EQ(quic_server_info2,
+ *(impl_.GetQuicServerInfo(server2, NetworkIsolationKey())));
+ EXPECT_EQ(quic_server_info3,
+ *(impl_.GetQuicServerInfo(server1, network_isolation_key1_)));
+ EXPECT_EQ(quic_server_info2,
+ *(impl_.GetQuicServerInfo(server2, network_isolation_key1_)));
impl_.Clear(base::OnceClosure());
- EXPECT_EQ(0u, impl_.quic_server_info_map().size());
- EXPECT_EQ(nullptr, impl_.GetQuicServerInfo(quic_server_id));
+ EXPECT_FALSE(impl_.GetQuicServerInfo(server1, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetQuicServerInfo(server2, NetworkIsolationKey()));
+ EXPECT_FALSE(impl_.GetQuicServerInfo(server1, network_isolation_key1_));
+ EXPECT_FALSE(impl_.GetQuicServerInfo(server2, network_isolation_key1_));
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
+
+ properties.SetQuicServerInfo(server1, NetworkIsolationKey(),
+ quic_server_info1);
+ EXPECT_EQ(quic_server_info1,
+ *(properties.GetQuicServerInfo(server1, NetworkIsolationKey())));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, network_isolation_key1_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, network_isolation_key1_));
+
+ properties.SetQuicServerInfo(server1, network_isolation_key1_,
+ quic_server_info2);
+ EXPECT_EQ(quic_server_info1,
+ *(properties.GetQuicServerInfo(server1, NetworkIsolationKey())));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
+ EXPECT_EQ(quic_server_info2,
+ *(properties.GetQuicServerInfo(server1, network_isolation_key1_)));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, network_isolation_key1_));
+
+ properties.SetQuicServerInfo(server2, network_isolation_key1_,
+ quic_server_info3);
+ EXPECT_EQ(quic_server_info1,
+ *(properties.GetQuicServerInfo(server1, NetworkIsolationKey())));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
+ EXPECT_EQ(quic_server_info2,
+ *(properties.GetQuicServerInfo(server1, network_isolation_key1_)));
+ EXPECT_EQ(quic_server_info3,
+ *(properties.GetQuicServerInfo(server2, network_isolation_key1_)));
+
+ properties.Clear(base::OnceClosure());
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, network_isolation_key1_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, network_isolation_key1_));
}
// Tests that GetQuicServerInfo() returns server info of a host
// with the same canonical suffix when there is no exact host match.
-TEST_F(QuicServerInfoServerPropertiesTest, TestCanonicalSuffixMatch) {
+TEST_F(HttpServerPropertiesTest, QuicServerInfoCanonicalSuffixMatch) {
// Set up HttpServerProperties.
- // Add a host that has the same canonical suffix.
+ // Add a host with a canonical suffix.
quic::QuicServerId foo_server_id("foo.googlevideo.com", 443, false);
std::string foo_server_info("foo_server_info");
- impl_.SetQuicServerInfo(foo_server_id, foo_server_info);
+ impl_.SetQuicServerInfo(foo_server_id, NetworkIsolationKey(),
+ foo_server_info);
// Add a host that has a different canonical suffix.
quic::QuicServerId baz_server_id("baz.video.com", 443, false);
std::string baz_server_info("baz_server_info");
- impl_.SetQuicServerInfo(baz_server_id, baz_server_info);
+ impl_.SetQuicServerInfo(baz_server_id, NetworkIsolationKey(),
+ baz_server_info);
- // Create quic::QuicServerId with a host that has the same canonical suffix.
+ // Create SchemeHostPort with a host that has the initial canonical suffix.
quic::QuicServerId bar_server_id("bar.googlevideo.com", 443, false);
// Check the the server info associated with "foo" is returned for "bar".
- const std::string* bar_server_info = impl_.GetQuicServerInfo(bar_server_id);
+ const std::string* bar_server_info =
+ impl_.GetQuicServerInfo(bar_server_id, NetworkIsolationKey());
ASSERT_TRUE(bar_server_info != nullptr);
- EXPECT_STREQ(foo_server_info.c_str(), bar_server_info->c_str());
+ EXPECT_EQ(foo_server_info, *bar_server_info);
+}
+
+// Make sure that canonical suffices respect NetworkIsolationKeys when using
+// QuicServerInfo methods.
+TEST_F(HttpServerPropertiesTest,
+ QuicServerInfoCanonicalSuffixMatchWithNetworkIsolationKey) {
+ // Two servers with same canonical suffix.
+ quic::QuicServerId server1("foo.googlevideo.com", 80,
+ false /* privacy_mode_enabled */);
+ quic::QuicServerId server2("bar.googlevideo.com", 80,
+ false /* privacy_mode_enabled */);
+
+ std::string server_info1("server_info1");
+ std::string server_info2("server_info2");
+
+ base::test::ScopedFeatureList feature_list;
+ feature_list.InitAndEnableFeature(
+ features::kPartitionHttpServerPropertiesByNetworkIsolationKey);
+ // Since HttpServerProperties caches the feature value, have to create a new
+ // one.
+ HttpServerProperties properties(nullptr /* pref_delegate */,
+ nullptr /* net_log */, test_tick_clock_,
+ &test_clock_);
+
+ // Set QuicServerInfo for one canononical suffix and
+ // |network_isolation_key1_|. It should be accessible via another
+ // SchemeHostPort, but only when the NetworkIsolationKeys match.
+ properties.SetQuicServerInfo(server1, network_isolation_key1_, server_info1);
+ const std::string* fetched_server_info =
+ properties.GetQuicServerInfo(server1, network_isolation_key1_);
+ ASSERT_TRUE(fetched_server_info);
+ EXPECT_EQ(server_info1, *fetched_server_info);
+ fetched_server_info =
+ properties.GetQuicServerInfo(server2, network_isolation_key1_);
+ ASSERT_TRUE(fetched_server_info);
+ EXPECT_EQ(server_info1, *fetched_server_info);
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, network_isolation_key2_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, network_isolation_key2_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
+
+ // Set different QuicServerInfo for the same canononical suffix and
+ // |network_isolation_key2_|. Both infos should be retriveable by using the
+ // different NetworkIsolationKeys.
+ properties.SetQuicServerInfo(server1, network_isolation_key2_, server_info2);
+ fetched_server_info =
+ properties.GetQuicServerInfo(server1, network_isolation_key1_);
+ ASSERT_TRUE(fetched_server_info);
+ EXPECT_EQ(server_info1, *fetched_server_info);
+ fetched_server_info =
+ properties.GetQuicServerInfo(server2, network_isolation_key1_);
+ ASSERT_TRUE(fetched_server_info);
+ EXPECT_EQ(server_info1, *fetched_server_info);
+ fetched_server_info =
+ properties.GetQuicServerInfo(server1, network_isolation_key2_);
+ ASSERT_TRUE(fetched_server_info);
+ EXPECT_EQ(server_info2, *fetched_server_info);
+ fetched_server_info =
+ properties.GetQuicServerInfo(server2, network_isolation_key2_);
+ ASSERT_TRUE(fetched_server_info);
+ EXPECT_EQ(server_info2, *fetched_server_info);
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
+
+ // Clearing should destroy all information.
+ properties.Clear(base::OnceClosure());
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, network_isolation_key1_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, network_isolation_key1_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, network_isolation_key2_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, network_isolation_key2_));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server1, NetworkIsolationKey()));
+ EXPECT_FALSE(properties.GetQuicServerInfo(server2, NetworkIsolationKey()));
}
// Verifies that GetQuicServerInfo() returns the MRU entry if multiple records
// match a given canonical host.
-TEST_F(QuicServerInfoServerPropertiesTest,
- TestCanonicalSuffixMatchReturnsMruEntry) {
+TEST_F(HttpServerPropertiesTest,
+ QuicServerInfoCanonicalSuffixMatchReturnsMruEntry) {
// Set up HttpServerProperties by adding two hosts with the same canonical
// suffixes.
quic::QuicServerId h1_server_id("h1.googlevideo.com", 443, false);
std::string h1_server_info("h1_server_info");
- impl_.SetQuicServerInfo(h1_server_id, h1_server_info);
+ impl_.SetQuicServerInfo(h1_server_id, NetworkIsolationKey(), h1_server_info);
quic::QuicServerId h2_server_id("h2.googlevideo.com", 443, false);
std::string h2_server_info("h2_server_info");
- impl_.SetQuicServerInfo(h2_server_id, h2_server_info);
+ impl_.SetQuicServerInfo(h2_server_id, NetworkIsolationKey(), h2_server_info);
// Create quic::QuicServerId to use for the search.
quic::QuicServerId foo_server_id("foo.googlevideo.com", 443, false);
// Check that 'h2' info is returned since it is MRU.
- const std::string* server_info = impl_.GetQuicServerInfo(foo_server_id);
+ const std::string* server_info =
+ impl_.GetQuicServerInfo(foo_server_id, NetworkIsolationKey());
ASSERT_TRUE(server_info != nullptr);
- EXPECT_STREQ(h2_server_info.c_str(), server_info->c_str());
+ EXPECT_EQ(h2_server_info, *server_info);
// Access 'h1' info, so it becomes MRU.
- impl_.GetQuicServerInfo(h1_server_id);
+ impl_.GetQuicServerInfo(h1_server_id, NetworkIsolationKey());
// Check that 'h1' info is returned since it is MRU now.
- server_info = impl_.GetQuicServerInfo(foo_server_id);
+ server_info = impl_.GetQuicServerInfo(foo_server_id, NetworkIsolationKey());
ASSERT_TRUE(server_info != nullptr);
- EXPECT_STREQ(h1_server_info.c_str(), server_info->c_str());
+ EXPECT_EQ(h1_server_info, *server_info);
}
// Verifies that |GetQuicServerInfo| doesn't change the MRU order of the server
// info map when a record is matched based on a canonical name.
-TEST_F(QuicServerInfoServerPropertiesTest,
- TestCanonicalSuffixMatchDoesntChangeOrder) {
+TEST_F(HttpServerPropertiesTest,
+ QuicServerInfoCanonicalSuffixMatchDoesntChangeOrder) {
// Add a host with a matching canonical name.
quic::QuicServerId h1_server_id("h1.googlevideo.com", 443, false);
+ HttpServerProperties::QuicServerInfoMapKey h1_key(
+ h1_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
std::string h1_server_info("h1_server_info");
- impl_.SetQuicServerInfo(h1_server_id, h1_server_info);
+ impl_.SetQuicServerInfo(h1_server_id, NetworkIsolationKey(), h1_server_info);
// Add a host hosts with a non-matching canonical name.
quic::QuicServerId h2_server_id("h2.video.com", 443, false);
+ HttpServerProperties::QuicServerInfoMapKey h2_key(
+ h2_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
std::string h2_server_info("h2_server_info");
- impl_.SetQuicServerInfo(h2_server_id, h2_server_info);
+ impl_.SetQuicServerInfo(h2_server_id, NetworkIsolationKey(), h2_server_info);
// Check that "h2.video.com" is the MRU entry in the map.
- EXPECT_EQ(h2_server_id, impl_.quic_server_info_map().begin()->first);
+ EXPECT_EQ(h2_key, impl_.quic_server_info_map().begin()->first);
// Search for the entry that matches the canonical name
// ("h1.googlevideo.com").
quic::QuicServerId foo_server_id("foo.googlevideo.com", 443, false);
- const std::string* server_info = impl_.GetQuicServerInfo(foo_server_id);
+ const std::string* server_info =
+ impl_.GetQuicServerInfo(foo_server_id, NetworkIsolationKey());
ASSERT_TRUE(server_info != nullptr);
// Check that the search (although successful) hasn't changed the MRU order of
// the map.
- EXPECT_EQ(h2_server_id, impl_.quic_server_info_map().begin()->first);
+ EXPECT_EQ(h2_key, impl_.quic_server_info_map().begin()->first);
// Search for "h1.googlevideo.com" directly, so it becomes MRU
- impl_.GetQuicServerInfo(h1_server_id);
+ impl_.GetQuicServerInfo(h1_server_id, NetworkIsolationKey());
// Check that "h1.googlevideo.com" is the MRU entry now.
- EXPECT_EQ(h1_server_id, impl_.quic_server_info_map().begin()->first);
+ EXPECT_EQ(h1_key, impl_.quic_server_info_map().begin()->first);
}
// Tests that the canonical host matching works for hosts stored in memory cache
@@ -2088,44 +2923,53 @@ TEST_F(QuicServerInfoServerPropertiesTest,
// using SetQuicServerInfo() and SetQuicServerInfoMap() is taken into
// cosideration when searching for server info for a host with the same
// canonical suffix.
-TEST_F(QuicServerInfoServerPropertiesTest, TestCanonicalSuffixMatchSetInfoMap) {
+TEST_F(HttpServerPropertiesTest, QuicServerInfoCanonicalSuffixMatchSetInfoMap) {
// Add a host info using SetQuicServerInfo(). That will simulate an info
// entry stored in memory cache.
quic::QuicServerId h1_server_id("h1.googlevideo.com", 443, false);
std::string h1_server_info("h1_server_info_memory_cache");
- impl_.SetQuicServerInfo(h1_server_id, h1_server_info);
+ impl_.SetQuicServerInfo(h1_server_id, NetworkIsolationKey(), h1_server_info);
// Prepare a map with host info and add it using SetQuicServerInfoMap(). That
// will simulate info records read from the persistence storage.
quic::QuicServerId h2_server_id("h2.googlevideo.com", 443, false);
+ HttpServerProperties::QuicServerInfoMapKey h2_key(
+ h2_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
std::string h2_server_info("h2_server_info_from_disk");
quic::QuicServerId h3_server_id("h3.ggpht.com", 443, false);
+ HttpServerProperties::QuicServerInfoMapKey h3_key(
+ h3_server_id, NetworkIsolationKey(),
+ false /* use_network_isolation_key */);
std::string h3_server_info("h3_server_info_from_disk");
const int kMaxQuicServerEntries = 10;
impl_.SetMaxServerConfigsStoredInProperties(kMaxQuicServerEntries);
- std::unique_ptr<QuicServerInfoMap> quic_server_info_map(
- new QuicServerInfoMap(kMaxQuicServerEntries));
- quic_server_info_map->Put(h2_server_id, h2_server_info);
- quic_server_info_map->Put(h3_server_id, h3_server_info);
+ std::unique_ptr<HttpServerProperties::QuicServerInfoMap>
+ quic_server_info_map =
+ std::make_unique<HttpServerProperties::QuicServerInfoMap>(
+ kMaxQuicServerEntries);
+ quic_server_info_map->Put(h2_key, h2_server_info);
+ quic_server_info_map->Put(h3_key, h3_server_info);
impl_.OnQuicServerInfoMapLoadedForTesting(std::move(quic_server_info_map));
// Check that the server info from the memory cache is returned since unique
// entries from the memory cache are added after entries from the
// persistence storage and, therefore, are most recently used.
quic::QuicServerId foo_server_id("foo.googlevideo.com", 443, false);
- const std::string* server_info = impl_.GetQuicServerInfo(foo_server_id);
+ const std::string* server_info =
+ impl_.GetQuicServerInfo(foo_server_id, NetworkIsolationKey());
ASSERT_TRUE(server_info != nullptr);
- EXPECT_STREQ(h1_server_info.c_str(), server_info->c_str());
+ EXPECT_EQ(h1_server_info, *server_info);
// Check that server info that was added using SetQuicServerInfoMap() can be
// found.
foo_server_id = quic::QuicServerId("foo.ggpht.com", 443, false);
- server_info = impl_.GetQuicServerInfo(foo_server_id);
+ server_info = impl_.GetQuicServerInfo(foo_server_id, NetworkIsolationKey());
ASSERT_TRUE(server_info != nullptr);
- EXPECT_STREQ(h3_server_info.c_str(), server_info->c_str());
+ EXPECT_EQ(h3_server_info, *server_info);
}
} // namespace
diff --git a/chromium/net/http/http_stream_factory.cc b/chromium/net/http/http_stream_factory.cc
index 55df8648cbb..13f4b2a546b 100644
--- a/chromium/net/http/http_stream_factory.cc
+++ b/chromium/net/http/http_stream_factory.cc
@@ -74,8 +74,7 @@ void HttpStreamFactory::ProcessAlternativeServices(
net::ProcessAlternativeServices(
alternative_service_vector, session->params().enable_http2,
session->params().enable_quic,
- session->params().quic_params.supported_versions,
- session->params().quic_params.support_ietf_format_quic_altsvc));
+ session->params().quic_params.supported_versions));
}
url::SchemeHostPort HttpStreamFactory::RewriteHost(
@@ -197,89 +196,6 @@ void HttpStreamFactory::OnJobControllerComplete(JobController* controller) {
}
}
-HttpStreamFactory::PreconnectingProxyServer::PreconnectingProxyServer(
- ProxyServer proxy_server,
- PrivacyMode privacy_mode)
- : proxy_server(proxy_server), privacy_mode(privacy_mode) {}
-
-bool HttpStreamFactory::PreconnectingProxyServer::operator<(
- const PreconnectingProxyServer& other) const {
- return std::tie(proxy_server, privacy_mode) <
- std::tie(other.proxy_server, other.privacy_mode);
-}
-
-bool HttpStreamFactory::PreconnectingProxyServer::operator==(
- const PreconnectingProxyServer& other) const {
- return proxy_server == other.proxy_server &&
- privacy_mode == other.privacy_mode;
-}
-
-bool HttpStreamFactory::OnInitConnection(const JobController& controller,
- const ProxyInfo& proxy_info,
- PrivacyMode privacy_mode) {
- if (!controller.is_preconnect()) {
- // Connection initialization can be skipped only for the preconnect jobs.
- return false;
- }
-
- if (!ProxyServerSupportsPriorities(proxy_info))
- return false;
-
- PreconnectingProxyServer preconnecting_proxy_server(proxy_info.proxy_server(),
- privacy_mode);
-
- if (base::Contains(preconnecting_proxy_servers_,
- preconnecting_proxy_server)) {
- UMA_HISTOGRAM_EXACT_LINEAR("Net.PreconnectSkippedToProxyServers", 1, 2);
- // Skip preconnect to the proxy server since we are already preconnecting
- // (probably via some other job). See https://crbug.com/682041 for details.
- return true;
- }
-
- // Add the proxy server to the set of preconnecting proxy servers.
- // The maximum size of |preconnecting_proxy_servers_|.
- static const size_t kMaxPreconnectingServerSize = 3;
- if (preconnecting_proxy_servers_.size() >= kMaxPreconnectingServerSize) {
- // Erase the first entry. A better approach (at the cost of higher memory
- // overhead) may be to erase the least recently used entry.
- preconnecting_proxy_servers_.erase(preconnecting_proxy_servers_.begin());
- }
-
- preconnecting_proxy_servers_.insert(preconnecting_proxy_server);
- DCHECK_GE(kMaxPreconnectingServerSize, preconnecting_proxy_servers_.size());
- // The first preconnect should be allowed.
- return false;
-}
-
-void HttpStreamFactory::OnStreamReady(const ProxyInfo& proxy_info,
- PrivacyMode privacy_mode) {
- if (proxy_info.is_empty())
- return;
- preconnecting_proxy_servers_.erase(
- PreconnectingProxyServer(proxy_info.proxy_server(), privacy_mode));
-}
-
-bool HttpStreamFactory::ProxyServerSupportsPriorities(
- const ProxyInfo& proxy_info) const {
- if (proxy_info.is_empty() || !proxy_info.proxy_server().is_valid())
- return false;
-
- if (!proxy_info.proxy_server().is_https())
- return false;
-
- HostPortPair host_port_pair = proxy_info.proxy_server().host_port_pair();
- DCHECK(!host_port_pair.IsEmpty());
-
- url::SchemeHostPort scheme_host_port("https", host_port_pair.host(),
- host_port_pair.port());
-
- // TODO(https://crbug.com/993517): Figure out what NetworkIsolationKey() to
- // use here, and what to do about this and |preconnecting_proxy_servers_|,
- // which leaks data across NetworkIsolationKeys.
- return session_->http_server_properties()->SupportsRequestPriority(
- scheme_host_port, NetworkIsolationKey());
-}
-
void HttpStreamFactory::DumpMemoryStats(
base::trace_event::ProcessMemoryDump* pmd,
const std::string& parent_absolute_name) const {
diff --git a/chromium/net/http/http_stream_factory.h b/chromium/net/http/http_stream_factory.h
index b7909cc036a..5a16275dd18 100644
--- a/chromium/net/http/http_stream_factory.h
+++ b/chromium/net/http/http_stream_factory.h
@@ -129,20 +129,6 @@ class NET_EXPORT HttpStreamFactory {
url::SchemeHostPort RewriteHost(const url::SchemeHostPort& server);
- // |PreconnectingProxyServer| holds information of a connection to a single
- // proxy server.
- struct PreconnectingProxyServer {
- PreconnectingProxyServer(ProxyServer proxy_server,
- PrivacyMode privacy_mode);
-
- // Needed to be an element of std::set.
- bool operator<(const PreconnectingProxyServer& other) const;
- bool operator==(const PreconnectingProxyServer& other) const;
-
- const ProxyServer proxy_server;
- const PrivacyMode privacy_mode;
- };
-
// Values must not be changed or reused. Keep in sync with identically named
// enum in histograms.xml.
enum AlternativeServiceType {
@@ -179,21 +165,6 @@ class NET_EXPORT HttpStreamFactory {
// from |job_controller_set_|.
void OnJobControllerComplete(JobController* controller);
- // Returns true if a connection to the proxy server contained in |proxy_info|
- // that has privacy mode |privacy_mode| can be skipped by a job controlled by
- // |controller|.
- bool OnInitConnection(const JobController& controller,
- const ProxyInfo& proxy_info,
- PrivacyMode privacy_mode);
-
- // Notifies |this| that a stream to the proxy server contained in |proxy_info|
- // with privacy mode |privacy_mode| is ready.
- void OnStreamReady(const ProxyInfo& proxy_info, PrivacyMode privacy_mode);
-
- // Returns true if |proxy_info| contains a proxy server that supports request
- // priorities.
- bool ProxyServerSupportsPriorities(const ProxyInfo& proxy_info) const;
-
HttpNetworkSession* const session_;
// All Requests/Preconnects are assigned with a JobController to manage
@@ -206,10 +177,6 @@ class NET_EXPORT HttpStreamFactory {
// Factory used by job controllers for creating jobs.
std::unique_ptr<JobFactory> job_factory_;
- // Set of proxy servers that support request priorities to which subsequent
- // preconnects should be skipped.
- std::set<PreconnectingProxyServer> preconnecting_proxy_servers_;
-
DISALLOW_COPY_AND_ASSIGN(HttpStreamFactory);
};
diff --git a/chromium/net/http/http_stream_factory_job.cc b/chromium/net/http/http_stream_factory_job.cc
index 6dc97fa5f73..a5acdda8c0c 100644
--- a/chromium/net/http/http_stream_factory_job.cc
+++ b/chromium/net/http/http_stream_factory_job.cc
@@ -164,7 +164,8 @@ HttpStreamFactory::Job::Job(Delegate* delegate,
origin_url_,
request_info_.privacy_mode,
request_info_.socket_tag,
- request_info_.network_isolation_key)),
+ request_info_.network_isolation_key,
+ request_info_.disable_secure_dns)),
stream_type_(HttpStreamRequest::BIDIRECTIONAL_STREAM),
init_connection_already_resumed_(false) {
// QUIC can only be spoken to servers, never to proxies.
@@ -373,18 +374,19 @@ SpdySessionKey HttpStreamFactory::Job::GetSpdySessionKey(
const GURL& origin_url,
PrivacyMode privacy_mode,
const SocketTag& socket_tag,
- const NetworkIsolationKey& network_isolation_key) {
+ const NetworkIsolationKey& network_isolation_key,
+ bool disable_secure_dns) {
// In the case that we're using an HTTPS proxy for an HTTP url, look for a
// HTTP/2 proxy session *to* the proxy, instead of to the origin server.
if (!spdy_session_direct) {
return SpdySessionKey(proxy_server.host_port_pair(), ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
SpdySessionKey::IsProxySession::kTrue, socket_tag,
- network_isolation_key);
+ network_isolation_key, disable_secure_dns);
}
return SpdySessionKey(HostPortPair::FromURL(origin_url), proxy_server,
privacy_mode, SpdySessionKey::IsProxySession::kFalse,
- socket_tag, network_isolation_key);
+ socket_tag, network_isolation_key, disable_secure_dns);
}
bool HttpStreamFactory::Job::CanUseExistingSpdySession() const {
@@ -392,17 +394,22 @@ bool HttpStreamFactory::Job::CanUseExistingSpdySession() const {
if (proxy_info_.is_direct() &&
session_->http_server_properties()->RequiresHTTP11(
- HttpServerProperties::GetNormalizedSchemeHostPort(request_info_.url),
+ url::SchemeHostPort(request_info_.url),
request_info_.network_isolation_key)) {
return false;
}
+ if (is_websocket_)
+ return try_websocket_over_http2_;
+
+ DCHECK(origin_url_.SchemeIsHTTPOrHTTPS());
+
// We need to make sure that if a HTTP/2 session was created for
// https://somehost/ then we do not use that session for http://somehost:443/.
// The only time we can use an existing session is if the request URL is
// https (the normal case) or if we are connecting to a HTTP/2 proxy.
// https://crbug.com/133176
- return origin_url_.SchemeIs(url::kHttpsScheme) || try_websocket_over_http2_ ||
+ return origin_url_.SchemeIs(url::kHttpsScheme) ||
proxy_info_.proxy_server().is_https();
}
@@ -702,11 +709,6 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
DCHECK(proxy_info_.proxy_server().is_valid());
next_state_ = STATE_INIT_CONNECTION_COMPLETE;
- if (delegate_->OnInitConnection(proxy_info_)) {
- // Return since the connection initialization can be skipped.
- return OK;
- }
-
if (proxy_info_.is_https() || proxy_info_.is_quic()) {
// Disable network fetches for HTTPS proxies, since the network requests
// are probably going to need to go through the proxy too.
@@ -756,7 +758,8 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
int rv = quic_request_.Request(
destination, quic_version_, request_info_.privacy_mode, priority_,
request_info_.socket_tag, request_info_.network_isolation_key,
- ssl_config->GetCertVerifyFlags(), url, net_log_, &net_error_details_,
+ request_info_.disable_secure_dns, ssl_config->GetCertVerifyFlags(), url,
+ net_log_, &net_error_details_,
base::BindOnce(&Job::OnFailedOnDefaultNetwork,
ptr_factory_.GetWeakPtr()),
io_callback_);
@@ -797,9 +800,9 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
bool is_blocking_request_for_session;
existing_spdy_session_ = session_->spdy_session_pool()->RequestSession(
- spdy_session_key_, enable_ip_based_pooling_,
- try_websocket_over_http2_, net_log_, resume_callback, this,
- &spdy_session_request_, &is_blocking_request_for_session);
+ spdy_session_key_, enable_ip_based_pooling_, is_websocket_,
+ net_log_, resume_callback, this, &spdy_session_request_,
+ &is_blocking_request_for_session);
if (!existing_spdy_session_ && should_throttle_connect &&
!is_blocking_request_for_session) {
net_log_.AddEvent(NetLogEventType::HTTP_STREAM_JOB_THROTTLED);
@@ -818,8 +821,8 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
// callback.
existing_spdy_session_ =
session_->spdy_session_pool()->FindAvailableSession(
- spdy_session_key_, enable_ip_based_pooling_,
- try_websocket_over_http2_, net_log_);
+ spdy_session_key_, enable_ip_based_pooling_, is_websocket_,
+ net_log_);
}
}
if (existing_spdy_session_) {
@@ -843,7 +846,7 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
session_->http_server_properties();
if (http_server_properties) {
http_server_properties->MaybeForceHTTP11(
- HttpServerProperties::GetNormalizedSchemeHostPort(request_info_.url),
+ url::SchemeHostPort(request_info_.url),
request_info_.network_isolation_key, &server_ssl_config_);
if (proxy_info_.is_https()) {
http_server_properties->MaybeForceHTTP11(
@@ -862,7 +865,7 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
GetSocketGroup(), destination_, request_info_.load_flags, priority_,
session_, proxy_info_, server_ssl_config_, proxy_ssl_config_,
request_info_.privacy_mode, request_info_.network_isolation_key,
- net_log_, num_streams_);
+ request_info_.disable_secure_dns, net_log_, num_streams_);
}
ClientSocketPool::ProxyAuthCallback proxy_auth_callback =
@@ -870,6 +873,7 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
base::Unretained(this));
if (is_websocket_) {
DCHECK(request_info_.socket_tag == SocketTag());
+ DCHECK(!request_info_.disable_secure_dns);
SSLConfig websocket_server_ssl_config = server_ssl_config_;
websocket_server_ssl_config.alpn_protos.clear();
return InitSocketHandleForWebSocketRequest(
@@ -883,8 +887,8 @@ int HttpStreamFactory::Job::DoInitConnectionImpl() {
GetSocketGroup(), destination_, request_info_.load_flags, priority_,
session_, proxy_info_, server_ssl_config_, proxy_ssl_config_,
request_info_.privacy_mode, request_info_.network_isolation_key,
- request_info_.socket_tag, net_log_, connection_.get(), io_callback_,
- proxy_auth_callback);
+ request_info_.disable_secure_dns, request_info_.socket_tag, net_log_,
+ connection_.get(), io_callback_, proxy_auth_callback);
}
void HttpStreamFactory::Job::OnQuicHostResolution(int result) {
@@ -955,6 +959,13 @@ int HttpStreamFactory::Job::DoInitConnectionComplete(int result) {
was_alpn_negotiated_ = true;
negotiated_protocol_ = proxy_socket->GetProxyNegotiatedProtocol();
using_spdy_ = true;
+
+ // Using unencrypted websockets over an H2 proxy is not currently
+ // supported.
+ // TODO(mmenke): Should this case be treated like
+ // |try_websocket_over_http2_|, or should we force HTTP/1.1?
+ if (is_websocket_ && !try_websocket_over_http2_)
+ return ERR_NOT_IMPLEMENTED;
}
}
@@ -1082,9 +1093,8 @@ int HttpStreamFactory::Job::DoCreateStream() {
->CreateBasicStream(std::move(connection_), using_proxy,
session_->websocket_endpoint_lock_manager());
} else {
- stream_ = std::make_unique<HttpBasicStream>(
- std::move(connection_), using_proxy,
- session_->params().http_09_on_non_default_ports_enabled);
+ stream_ = std::make_unique<HttpBasicStream>(std::move(connection_),
+ using_proxy);
}
return OK;
}
@@ -1097,7 +1107,7 @@ int HttpStreamFactory::Job::DoCreateStream() {
// WebSocket over HTTP/2 is only allowed to use existing HTTP/2 connections.
// Therefore |using_spdy_| could not have been set unless a connection had
// already been found.
- DCHECK(!try_websocket_over_http2_);
+ DCHECK(!is_websocket_);
session_->spdy_session_pool()->push_promise_index()->ClaimPushedStream(
spdy_session_key_, origin_url_, request_info_, &existing_spdy_session_,
diff --git a/chromium/net/http/http_stream_factory_job.h b/chromium/net/http/http_stream_factory_job.h
index 94d1a9190f8..04a0b7a8c24 100644
--- a/chromium/net/http/http_stream_factory_job.h
+++ b/chromium/net/http/http_stream_factory_job.h
@@ -106,10 +106,6 @@ class HttpStreamFactory::Job
const ProxyInfo& used_proxy_info,
HttpAuthController* auth_controller) = 0;
- // Returns true if the connection initialization to the proxy server
- // contained in |proxy_info| can be skipped.
- virtual bool OnInitConnection(const ProxyInfo& proxy_info) = 0;
-
// Invoked when the |job| finishes pre-connecting sockets.
virtual void OnPreconnectsComplete(Job* job) = 0;
@@ -340,7 +336,8 @@ class HttpStreamFactory::Job
const GURL& origin_url,
PrivacyMode privacy_mode,
const SocketTag& socket_tag,
- const NetworkIsolationKey& network_isolation_key);
+ const NetworkIsolationKey& network_isolation_key,
+ bool disable_secure_dns);
// Returns true if the current request can use an existing spdy session.
bool CanUseExistingSpdySession() const;
diff --git a/chromium/net/http/http_stream_factory_job_controller.cc b/chromium/net/http/http_stream_factory_job_controller.cc
index 0d0665b085e..f5aef341c70 100644
--- a/chromium/net/http/http_stream_factory_job_controller.cc
+++ b/chromium/net/http/http_stream_factory_job_controller.cc
@@ -211,8 +211,6 @@ void HttpStreamFactory::JobController::OnStreamReady(
const SSLConfig& used_ssl_config) {
DCHECK(job);
- factory_->OnStreamReady(job->proxy_info(), request_info_.privacy_mode);
-
if (IsJobOrphaned(job)) {
// We have bound a job to the associated HttpStreamRequest, |job| has been
// orphaned.
@@ -419,12 +417,6 @@ void HttpStreamFactory::JobController::OnNeedsProxyAuth(
auth_controller);
}
-bool HttpStreamFactory::JobController::OnInitConnection(
- const ProxyInfo& proxy_info) {
- return factory_->OnInitConnection(*this, proxy_info,
- request_info_.privacy_mode);
-}
-
void HttpStreamFactory::JobController::OnPreconnectsComplete(Job* job) {
DCHECK_EQ(main_job_.get(), job);
main_job_.reset();
@@ -886,7 +878,8 @@ void HttpStreamFactory::JobController::MaybeReportBrokenAlternativeService() {
// network changes.
session_->http_server_properties()
->MarkAlternativeServiceBrokenUntilDefaultNetworkChanges(
- alternative_service_info_.alternative_service());
+ alternative_service_info_.alternative_service(),
+ request_info_.network_isolation_key);
// Reset error status for Jobs after reporting brokenness.
ResetErrorStatusForJobs();
return;
@@ -907,7 +900,8 @@ void HttpStreamFactory::JobController::MaybeReportBrokenAlternativeService() {
HistogramBrokenAlternateProtocolLocation(
BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_JOB_ALT);
session_->http_server_properties()->MarkAlternativeServiceBroken(
- alternative_service_info_.alternative_service());
+ alternative_service_info_.alternative_service(),
+ request_info_.network_isolation_key);
// Reset error status for Jobs after reporting brokenness.
ResetErrorStatusForJobs();
}
@@ -1010,7 +1004,8 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
if (!quic_advertised && alternative_service_info.protocol() == kProtoQUIC)
quic_advertised = true;
const bool is_broken = http_server_properties.IsAlternativeServiceBroken(
- alternative_service_info.alternative_service());
+ alternative_service_info.alternative_service(),
+ request_info.network_isolation_key);
net_log_.AddEvent(
NetLogEventType::HTTP_STREAM_JOB_CONTROLLER_ALT_SVC_FOUND, [&] {
return NetLogAltSvcParams(&alternative_service_info, is_broken);
@@ -1065,9 +1060,9 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
// Check whether there is an existing QUIC session to use for this origin.
HostPortPair mapped_origin(origin.host(), origin.port());
ignore_result(ApplyHostMappingRules(original_url, &mapped_origin));
- QuicSessionKey session_key(mapped_origin, request_info.privacy_mode,
- request_info.socket_tag,
- request_info.network_isolation_key);
+ QuicSessionKey session_key(
+ mapped_origin, request_info.privacy_mode, request_info.socket_tag,
+ request_info.network_isolation_key, request_info.disable_secure_dns);
HostPortPair destination(alternative_service_info.host_port_pair());
if (session_key.host() != destination.host() &&
diff --git a/chromium/net/http/http_stream_factory_job_controller.h b/chromium/net/http/http_stream_factory_job_controller.h
index d91a559c768..7c37e0254aa 100644
--- a/chromium/net/http/http_stream_factory_job_controller.h
+++ b/chromium/net/http/http_stream_factory_job_controller.h
@@ -121,8 +121,6 @@ class HttpStreamFactory::JobController
const ProxyInfo& used_proxy_info,
HttpAuthController* auth_controller) override;
- bool OnInitConnection(const ProxyInfo& proxy_info) override;
-
// Invoked when the |job| finishes pre-connecting sockets.
void OnPreconnectsComplete(Job* job) override;
diff --git a/chromium/net/http/http_stream_factory_job_controller_unittest.cc b/chromium/net/http/http_stream_factory_job_controller_unittest.cc
index 9d3c0521512..d49c9945401 100644
--- a/chromium/net/http/http_stream_factory_job_controller_unittest.cc
+++ b/chromium/net/http/http_stream_factory_job_controller_unittest.cc
@@ -303,7 +303,8 @@ class HttpStreamFactoryJobControllerTest : public TestWithTaskEnvironment {
EXPECT_EQ(1u, alternative_service_info_vector.size());
EXPECT_EQ(should_mark_broken,
session_->http_server_properties()->IsAlternativeServiceBroken(
- alternative_service_info_vector[0].alternative_service()));
+ alternative_service_info_vector[0].alternative_service(),
+ NetworkIsolationKey()));
}
void TestAltJobSucceedsAfterMainJobFailed(
@@ -713,7 +714,7 @@ TEST_F(JobControllerReconsiderProxyAfterErrorTest,
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromSeconds(100);
session_->http_server_properties()->SetServerNetworkStats(
@@ -871,6 +872,130 @@ TEST_F(HttpStreamFactoryJobControllerTest,
EXPECT_TRUE(HttpStreamFactoryPeer::IsJobControllerDeleted(factory_));
}
+TEST_F(HttpStreamFactoryJobControllerTest,
+ DoNotDelayMainJobIfQuicWasRecentlyBroken) {
+ crypto_client_stream_factory_.set_handshake_mode(
+ MockCryptoClientStream::COLD_START);
+ quic_data_ = std::make_unique<MockQuicData>(
+ HttpNetworkSession::Params().quic_params.supported_versions.front());
+ quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
+ tcp_data_ = std::make_unique<SequencedSocketData>();
+ tcp_data_->set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING));
+
+ HttpRequestInfo request_info;
+ request_info.method = "GET";
+ request_info.url = GURL("https://www.google.com");
+
+ Initialize(request_info);
+ url::SchemeHostPort server(request_info.url);
+ AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
+ base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+ session_->http_server_properties()->SetQuicAlternativeService(
+ server, NetworkIsolationKey(), alternative_service, expiration,
+ session_->params().quic_params.supported_versions);
+
+ // Enable QUIC but mark the alternative service as recently broken.
+ QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
+ session_->http_server_properties()->MarkAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey());
+
+ request_ =
+ job_controller_->Start(&request_delegate_, nullptr, net_log_.bound(),
+ HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY);
+
+ EXPECT_TRUE(job_controller_->main_job());
+ EXPECT_TRUE(job_controller_->alternative_job());
+
+ // The main job shouldn't have any delay since QUIC was recently broken.
+ EXPECT_FALSE(job_controller_->ShouldWait(
+ const_cast<net::HttpStreamFactory::Job*>(job_controller_->main_job())));
+
+ // Make |alternative_job| succeed.
+ auto http_stream = std::make_unique<HttpBasicStream>(
+ std::make_unique<ClientSocketHandle>(), false);
+ EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
+
+ HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
+ std::move(http_stream));
+ job_controller_->OnStreamReady(job_factory_.alternative_job(), SSLConfig());
+
+ base::RunLoop().RunUntilIdle();
+
+ // Check that alternative job is bound while main job is destroyed.
+ EXPECT_FALSE(job_controller_->main_job());
+ EXPECT_TRUE(job_controller_->alternative_job());
+
+ request_.reset();
+ VerifyBrokenAlternateProtocolMapping(request_info, false);
+ EXPECT_TRUE(HttpStreamFactoryPeer::IsJobControllerDeleted(factory_));
+}
+
+TEST_F(HttpStreamFactoryJobControllerTest,
+ DelayMainJobAfterRecentlyBrokenQuicWasConfirmed) {
+ crypto_client_stream_factory_.set_handshake_mode(
+ MockCryptoClientStream::COLD_START);
+ quic_data_ = std::make_unique<MockQuicData>(
+ HttpNetworkSession::Params().quic_params.supported_versions.front());
+ quic_data_->AddRead(SYNCHRONOUS, ERR_IO_PENDING);
+ tcp_data_ = std::make_unique<SequencedSocketData>();
+ tcp_data_->set_connect_data(MockConnect(SYNCHRONOUS, ERR_IO_PENDING));
+
+ HttpRequestInfo request_info;
+ request_info.method = "GET";
+ request_info.url = GURL("https://www.google.com");
+
+ Initialize(request_info);
+ url::SchemeHostPort server(request_info.url);
+ AlternativeService alternative_service(kProtoQUIC, server.host(), 443);
+ base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1);
+ session_->http_server_properties()->SetQuicAlternativeService(
+ server, NetworkIsolationKey(), alternative_service, expiration,
+ session_->params().quic_params.supported_versions);
+
+ // Enable QUIC but mark the alternative service as recently broken.
+ QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
+ session_->http_server_properties()->MarkAlternativeServiceRecentlyBroken(
+ alternative_service, NetworkIsolationKey());
+
+ // Confirm the alt service.
+ session_->http_server_properties()->ConfirmAlternativeService(
+ alternative_service, NetworkIsolationKey());
+
+ request_ =
+ job_controller_->Start(&request_delegate_, nullptr, net_log_.bound(),
+ HttpStreamRequest::HTTP_STREAM, DEFAULT_PRIORITY);
+
+ EXPECT_TRUE(job_controller_->main_job());
+ EXPECT_TRUE(job_controller_->alternative_job());
+
+ // The main job should wait but it should be unblocked because QUIC job
+ // doesn't return immediately.
+ EXPECT_TRUE(job_controller_->ShouldWait(
+ const_cast<net::HttpStreamFactory::Job*>(job_controller_->main_job())));
+ EXPECT_FALSE(JobControllerPeer::main_job_is_blocked(job_controller_));
+
+ // Make |alternative_job| succeed.
+ auto http_stream = std::make_unique<HttpBasicStream>(
+ std::make_unique<ClientSocketHandle>(), false);
+ EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
+
+ HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
+ std::move(http_stream));
+ job_controller_->OnStreamReady(job_factory_.alternative_job(), SSLConfig());
+
+ base::RunLoop().RunUntilIdle();
+
+ // Check that alternative job is bound while main job is destroyed.
+ EXPECT_FALSE(job_controller_->main_job());
+ EXPECT_TRUE(job_controller_->alternative_job());
+
+ request_.reset();
+ VerifyBrokenAlternateProtocolMapping(request_info, false);
+ EXPECT_TRUE(HttpStreamFactoryPeer::IsJobControllerDeleted(factory_));
+}
+
void HttpStreamFactoryJobControllerTest::TestOnStreamFailedForBothJobs(
bool alt_job_retried_on_non_default_network) {
quic_data_ = std::make_unique<MockQuicData>(
@@ -1022,7 +1147,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, AltJobSucceedsMainJobDestroyed) {
// Make |alternative_job| succeed.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
@@ -1046,7 +1171,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
AltJobSucceedsMainJobBlockedControllerDestroyed) {
quic_data_ = std::make_unique<MockQuicData>(
HttpNetworkSession::Params().quic_params.supported_versions.front());
- if (VersionUsesQpack(HttpNetworkSession::Params()
+ if (VersionUsesHttp3(HttpNetworkSession::Params()
.quic_params.supported_versions.front()
.transport_version)) {
quic_data_->AddWrite(SYNCHRONOUS,
@@ -1172,7 +1297,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// Make |alternative_job| succeed.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
std::move(http_stream));
// This should not call request_delegate_::OnStreamReady.
@@ -1222,7 +1347,7 @@ void HttpStreamFactoryJobControllerTest::TestAltJobSucceedsAfterMainJobFailed(
// Make |alternative_job| succeed.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
@@ -1297,7 +1422,7 @@ void HttpStreamFactoryJobControllerTest::
// Make |alternative_job| succeed.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
std::move(http_stream));
@@ -1371,7 +1496,7 @@ void HttpStreamFactoryJobControllerTest::
}
// Make |alternative_job| succeed.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
@@ -1445,7 +1570,7 @@ void HttpStreamFactoryJobControllerTest::TestMainJobFailsAfterAltJobSucceeded(
}
// Make |alternative_job| succeed.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
@@ -1623,7 +1748,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, GetLoadStateAfterMainJobFailed) {
// |alternative_job| succeeds and should report status to Request.
auto http_stream = std::make_unique<HttpBasicStream>(
- std::make_unique<ClientSocketHandle>(), false, false);
+ std::make_unique<ClientSocketHandle>(), false);
EXPECT_CALL(request_delegate_, OnStreamReadyImpl(_, _, http_stream.get()));
HttpStreamFactoryJobPeer::SetStream(job_factory_.alternative_job(),
@@ -1715,7 +1840,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, HostResolutionHang) {
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(10);
session_->http_server_properties()->SetServerNetworkStats(
@@ -1789,7 +1914,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCP) {
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(10);
session_->http_server_properties()->SetServerNetworkStats(
@@ -1853,7 +1978,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, ResumeMainJobLaterCanceled) {
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(10);
session_->http_server_properties()->SetServerNetworkStats(
@@ -1891,7 +2016,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, ResumeMainJobLaterCanceled) {
// Now the alt service is marked as broken (e.g. through a different request),
// so only non-alt job is restarted.
session_->http_server_properties()->MarkAlternativeServiceBroken(
- alternative_service);
+ alternative_service, NetworkIsolationKey());
job_controller_->OnStreamFailed(job_factory_.main_job(), ERR_FAILED,
SSLConfig());
@@ -1932,7 +2057,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCPWithLargeSrtt) {
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromSeconds(100);
session_->http_server_properties()->SetServerNetworkStats(
@@ -1975,8 +2100,10 @@ TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCPWithLargeSrtt) {
EXPECT_FALSE(job_controller_->alternative_job());
}
+// TODO(https://crbug.com/1007502): Disabled because the pending task count does
+// not match expectations.
TEST_F(HttpStreamFactoryJobControllerTest,
- ResumeMainJobImmediatelyOnStreamFailed) {
+ DISABLED_ResumeMainJobImmediatelyOnStreamFailed) {
HttpRequestInfo request_info;
request_info.method = "GET";
request_info.url = GURL("https://www.google.com");
@@ -1993,7 +2120,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(10);
session_->http_server_properties()->SetServerNetworkStats(
@@ -2116,7 +2243,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, DelayedTCPAlternativeProxy) {
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(10);
session_->http_server_properties()->SetServerNetworkStats(
@@ -2187,7 +2314,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, FailAlternativeProxy) {
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(300 * 1000);
session_->http_server_properties()->SetServerNetworkStats(
@@ -2240,7 +2367,7 @@ TEST_F(HttpStreamFactoryJobControllerTest,
// Enable delayed TCP and set time delay for waiting job.
QuicStreamFactory* quic_stream_factory = session_->quic_stream_factory();
- quic_stream_factory->set_require_confirmation(false);
+ quic_stream_factory->set_is_quic_known_to_work_on_current_network(true);
ServerNetworkStats stats1;
stats1.srtt = base::TimeDelta::FromMicroseconds(300 * 1000);
session_->http_server_properties()->SetServerNetworkStats(
@@ -2329,7 +2456,7 @@ TEST_F(HttpStreamFactoryJobControllerTest, PreconnectToHostWithValidAltSvc) {
auto version =
HttpNetworkSession::Params().quic_params.supported_versions.front();
quic_data_ = std::make_unique<MockQuicData>(version);
- if (VersionUsesQpack(version.transport_version)) {
+ if (VersionUsesHttp3(version.transport_version)) {
quic_data_->AddWrite(SYNCHRONOUS,
client_maker_.MakeInitialSettingsPacket(1));
}
@@ -2532,10 +2659,11 @@ TEST_F(HttpStreamFactoryJobControllerTest, SpdySessionInterruptsPreconnect) {
// Sanity check - make sure the SpdySession was created.
base::WeakPtr<SpdySession> spdy_session =
session_->spdy_session_pool()->FindAvailableSession(
- SpdySessionKey(HostPortPair::FromURL(request_info.url),
- ProxyServer::Direct(), request_info.privacy_mode,
- SpdySessionKey::IsProxySession::kFalse,
- request_info.socket_tag),
+ SpdySessionKey(
+ HostPortPair::FromURL(request_info.url), ProxyServer::Direct(),
+ request_info.privacy_mode, SpdySessionKey::IsProxySession::kFalse,
+ request_info.socket_tag, request_info.network_isolation_key,
+ request_info.disable_secure_dns),
false /* enable_ip_based_pooling */, false /* is_websocket */,
NetLogWithSource());
EXPECT_TRUE(spdy_session);
@@ -2678,18 +2806,18 @@ TEST_F(JobControllerLimitMultipleH2Requests,
TransportClientSocketPool* socket_pool =
reinterpret_cast<TransportClientSocketPool*>(session_->GetSocketPool(
HttpNetworkSession::NORMAL_SOCKET_POOL, ProxyServer::Direct()));
- ClientSocketPool::GroupId group_id0(HostPortPair::FromURL(request_info.url),
- ClientSocketPool::SocketType::kSsl,
- request_info.privacy_mode,
- NetworkIsolationKey());
- ClientSocketPool::GroupId group_id1(HostPortPair::FromURL(request_info.url),
- ClientSocketPool::SocketType::kSsl,
- request_info.privacy_mode,
- kNetworkIsolationKey1);
- ClientSocketPool::GroupId group_id2(HostPortPair::FromURL(request_info.url),
- ClientSocketPool::SocketType::kSsl,
- request_info.privacy_mode,
- kNetworkIsolationKey2);
+ ClientSocketPool::GroupId group_id0(
+ HostPortPair::FromURL(request_info.url),
+ ClientSocketPool::SocketType::kSsl, request_info.privacy_mode,
+ NetworkIsolationKey(), false /* disable_secure_dns */);
+ ClientSocketPool::GroupId group_id1(
+ HostPortPair::FromURL(request_info.url),
+ ClientSocketPool::SocketType::kSsl, request_info.privacy_mode,
+ kNetworkIsolationKey1, false /* disable_secure_dns */);
+ ClientSocketPool::GroupId group_id2(
+ HostPortPair::FromURL(request_info.url),
+ ClientSocketPool::SocketType::kSsl, request_info.privacy_mode,
+ kNetworkIsolationKey2, false /* disable_secure_dns */);
EXPECT_EQ(static_cast<uint32_t>(kNumRequests),
socket_pool->NumConnectJobsInGroupForTesting(group_id0));
EXPECT_EQ(1u, socket_pool->NumConnectJobsInGroupForTesting(group_id1));
@@ -3018,7 +3146,7 @@ TEST_P(HttpStreamFactoryJobControllerMisdirectedRequestRetry,
HttpNetworkSession::Params().quic_params.supported_versions.front();
quic_data_ = std::make_unique<MockQuicData>(version);
quic_data_->AddConnect(SYNCHRONOUS, OK);
- if (VersionUsesQpack(version.transport_version)) {
+ if (VersionUsesHttp3(version.transport_version)) {
quic_data_->AddWrite(SYNCHRONOUS,
client_maker_.MakeInitialSettingsPacket(1));
}
diff --git a/chromium/net/http/http_stream_factory_unittest.cc b/chromium/net/http/http_stream_factory_unittest.cc
index e4226c36d77..870d6954ef9 100644
--- a/chromium/net/http/http_stream_factory_unittest.cc
+++ b/chromium/net/http/http_stream_factory_unittest.cc
@@ -363,6 +363,7 @@ TestCase kTests[] = {
void PreconnectHelperForURL(int num_streams,
const GURL& url,
NetworkIsolationKey network_isolation_key,
+ bool disable_secure_dns,
HttpNetworkSession* session) {
HttpNetworkSessionPeer peer(session);
MockHttpStreamFactoryForPreconnect* mock_factory =
@@ -374,6 +375,7 @@ void PreconnectHelperForURL(int num_streams,
request.url = url;
request.load_flags = 0;
request.network_isolation_key = network_isolation_key;
+ request.disable_secure_dns = disable_secure_dns;
request.traffic_annotation =
MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
@@ -384,18 +386,21 @@ void PreconnectHelperForURL(int num_streams,
void PreconnectHelper(const TestCase& test, HttpNetworkSession* session) {
GURL url =
test.ssl ? GURL("https://www.google.com") : GURL("http://www.google.com");
- PreconnectHelperForURL(test.num_streams, url, NetworkIsolationKey(), session);
+ PreconnectHelperForURL(test.num_streams, url, NetworkIsolationKey(),
+ false /* disable_secure_dns */, session);
}
ClientSocketPool::GroupId GetGroupId(const TestCase& test) {
if (test.ssl) {
- return ClientSocketPool::GroupId(HostPortPair("www.google.com", 443),
- ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED);
- }
- return ClientSocketPool::GroupId(HostPortPair("www.google.com", 80),
- ClientSocketPool::SocketType::kHttp,
- PrivacyMode::PRIVACY_MODE_DISABLED);
+ return ClientSocketPool::GroupId(
+ HostPortPair("www.google.com", 443), ClientSocketPool::SocketType::kSsl,
+ PrivacyMode::PRIVACY_MODE_DISABLED, NetworkIsolationKey(),
+ false /* disable_secure_dns */);
+ }
+ return ClientSocketPool::GroupId(
+ HostPortPair("www.google.com", 80), ClientSocketPool::SocketType::kHttp,
+ PrivacyMode::PRIVACY_MODE_DISABLED, NetworkIsolationKey(),
+ false /* disable_secure_dns */);
}
class CapturePreconnectsTransportSocketPool : public TransportClientSocketPool {
@@ -421,7 +426,8 @@ class CapturePreconnectsTransportSocketPool : public TransportClientSocketPool {
// Group ID that shouldn't match much.
last_group_id_ = ClientSocketPool::GroupId(
HostPortPair(), ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_ENABLED);
+ PrivacyMode::PRIVACY_MODE_ENABLED, NetworkIsolationKey(),
+ false /* disable_secure_dns */);
}
int RequestSocket(
@@ -568,7 +574,8 @@ TEST_F(HttpStreamFactoryTest, PreconnectDirectWithExistingSpdySession) {
HostPortPair host_port_pair("www.google.com", 443);
SpdySessionKey key(host_port_pair, ProxyServer::Direct(),
PRIVACY_MODE_DISABLED,
- SpdySessionKey::IsProxySession::kFalse, SocketTag());
+ SpdySessionKey::IsProxySession::kFalse, SocketTag(),
+ NetworkIsolationKey(), false /* disable_secure_dns */);
ignore_result(CreateFakeSpdySession(session->spdy_session_pool(), key));
CommonConnectJobParams common_connect_job_params =
@@ -616,7 +623,8 @@ TEST_F(HttpStreamFactoryTest, PreconnectUnsafePort) {
peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
PreconnectHelperForURL(1, GURL("http://www.google.com:7"),
- NetworkIsolationKey(), session.get());
+ NetworkIsolationKey(), false /* disable_secure_dns */,
+ session.get());
EXPECT_EQ(-1, transport_conn_pool->last_num_streams());
}
@@ -648,17 +656,52 @@ TEST_F(HttpStreamFactoryTest, PreconnectNetworkIsolationKey) {
const auto kOriginBar = url::Origin::Create(GURL("http://bar.test"));
const NetworkIsolationKey kKey1(kOriginFoo, kOriginFoo);
const NetworkIsolationKey kKey2(kOriginBar, kOriginBar);
- PreconnectHelperForURL(1, kURL, kKey1, session.get());
+ PreconnectHelperForURL(1, kURL, kKey1, false /* disable_secure_dns */,
+ session.get());
EXPECT_EQ(1, transport_conn_pool->last_num_streams());
EXPECT_EQ(kKey1,
transport_conn_pool->last_group_id().network_isolation_key());
- PreconnectHelperForURL(2, kURL, kKey2, session.get());
+ PreconnectHelperForURL(2, kURL, kKey2, false /* disable_secure_dns */,
+ session.get());
EXPECT_EQ(2, transport_conn_pool->last_num_streams());
EXPECT_EQ(kKey2,
transport_conn_pool->last_group_id().network_isolation_key());
}
+// Verify that preconnects use the specified disable_secure_dns field.
+TEST_F(HttpStreamFactoryTest, PreconnectDisableSecureDns) {
+ SpdySessionDependencies session_deps(ProxyResolutionService::CreateDirect());
+ std::unique_ptr<HttpNetworkSession> session(
+ SpdySessionDependencies::SpdyCreateSession(&session_deps));
+ HttpNetworkSessionPeer peer(session.get());
+ CommonConnectJobParams common_connect_job_params =
+ session->CreateCommonConnectJobParams();
+ std::unique_ptr<CapturePreconnectsTransportSocketPool>
+ owned_transport_conn_pool =
+ std::make_unique<CapturePreconnectsTransportSocketPool>(
+ &common_connect_job_params);
+ CapturePreconnectsTransportSocketPool* transport_conn_pool =
+ owned_transport_conn_pool.get();
+ auto mock_pool_manager = std::make_unique<MockClientSocketPoolManager>();
+ mock_pool_manager->SetSocketPool(ProxyServer::Direct(),
+ std::move(owned_transport_conn_pool));
+ peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
+
+ const GURL kURL("http://foo.test/");
+ const auto kOriginFoo = url::Origin::Create(GURL("http://foo.test"));
+ const auto kOriginBar = url::Origin::Create(GURL("http://bar.test"));
+ PreconnectHelperForURL(1, kURL, NetworkIsolationKey(),
+ false /* disable_secure_dns */, session.get());
+ EXPECT_EQ(1, transport_conn_pool->last_num_streams());
+ EXPECT_FALSE(transport_conn_pool->last_group_id().disable_secure_dns());
+
+ PreconnectHelperForURL(2, kURL, NetworkIsolationKey(),
+ true /* disable_secure_dns */, session.get());
+ EXPECT_EQ(2, transport_conn_pool->last_num_streams());
+ EXPECT_TRUE(transport_conn_pool->last_group_id().disable_secure_dns());
+}
+
TEST_F(HttpStreamFactoryTest, JobNotifiesProxy) {
const char* kProxyString = "PROXY bad:99; PROXY maybe:80; DIRECT";
SpdySessionDependencies session_deps(
@@ -809,7 +852,8 @@ TEST_F(HttpStreamFactoryTest, QuicProxyMarkedAsBad) {
auto session =
std::make_unique<HttpNetworkSession>(session_params, session_context);
- session->quic_stream_factory()->set_require_confirmation(false);
+ session->quic_stream_factory()
+ ->set_is_quic_known_to_work_on_current_network(true);
StaticSocketDataProvider socket_data1;
socket_data1.set_connect_data(
@@ -1210,174 +1254,11 @@ TEST_F(HttpStreamFactoryTest, UsePreConnectIfNoZeroRTT) {
base::WrapUnique(http_proxy_pool));
peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
PreconnectHelperForURL(num_streams, url, NetworkIsolationKey(),
- session.get());
+ false /* disable_secure_dns */, session.get());
EXPECT_EQ(num_streams, http_proxy_pool->last_num_streams());
}
}
-// Verify that only one preconnect job succeeds to a proxy server that supports
-// request priorities.
-TEST_F(HttpStreamFactoryTest, OnlyOnePreconnectToProxyServer) {
- for (bool set_http_server_properties : {false, true}) {
- for (int num_streams = 1; num_streams < 3; ++num_streams) {
- base::HistogramTester histogram_tester;
- GURL url = GURL("http://www.google.com");
- std::unique_ptr<ProxyResolutionService> proxy_resolution_service =
- ProxyResolutionService::CreateFixedFromPacResult(
- "HTTPS myproxy.org:443", TRAFFIC_ANNOTATION_FOR_TESTS);
-
- // Set up the proxy server as a server that supports request priorities.
- HttpServerProperties http_server_properties;
- if (set_http_server_properties) {
- url::SchemeHostPort spdy_server("https", "myproxy.org", 443);
- http_server_properties.SetSupportsSpdy(spdy_server,
- NetworkIsolationKey(), true);
- }
-
- SpdySessionDependencies session_deps;
- HttpNetworkSession::Params session_params =
- SpdySessionDependencies::CreateSessionParams(&session_deps);
- session_params.enable_quic = true;
-
- HttpNetworkSession::Context session_context =
- SpdySessionDependencies::CreateSessionContext(&session_deps);
- session_context.proxy_resolution_service = proxy_resolution_service.get();
- session_context.http_server_properties = &http_server_properties;
-
- auto session =
- std::make_unique<HttpNetworkSession>(session_params, session_context);
-
- HttpNetworkSessionPeer peer(session.get());
- ProxyServer proxy_server(ProxyServer::SCHEME_HTTPS,
- HostPortPair("myproxy.org", 443));
-
- for (int preconnect_request = 0; preconnect_request < 2;
- ++preconnect_request) {
- CommonConnectJobParams common_connect_job_params =
- session->CreateCommonConnectJobParams();
- CapturePreconnectsTransportSocketPool* http_proxy_pool =
- new CapturePreconnectsTransportSocketPool(
- &common_connect_job_params);
-
- auto mock_pool_manager =
- std::make_unique<MockClientSocketPoolManager>();
- mock_pool_manager->SetSocketPool(proxy_server,
- base::WrapUnique(http_proxy_pool));
- peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
-
- HttpRequestInfo request;
- request.method = "GET";
- request.url = url;
- request.load_flags = 0;
- request.traffic_annotation =
- MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
-
- if (preconnect_request == 0) {
- // First preconnect job should succeed.
- session->http_stream_factory()->PreconnectStreams(num_streams,
- request);
- EXPECT_EQ(num_streams, http_proxy_pool->last_num_streams());
- } else {
- // Second preconnect job should not succeed.
- session->http_stream_factory()->PreconnectStreams(num_streams,
- request);
- if (set_http_server_properties) {
- EXPECT_EQ(-1, http_proxy_pool->last_num_streams());
- } else {
- EXPECT_EQ(num_streams, http_proxy_pool->last_num_streams());
- }
- }
- }
- // Preconnects should be skipped only to proxy servers that support
- // request priorities.
- if (set_http_server_properties) {
- histogram_tester.ExpectUniqueSample(
- "Net.PreconnectSkippedToProxyServers", 1, 1);
- } else {
- histogram_tester.ExpectTotalCount("Net.PreconnectSkippedToProxyServers",
- 0);
- }
- }
- }
-}
-
-// Verify that preconnect to a HTTP2 proxy server with a privacy mode different
-// than that of the in-flight preconnect job succeeds.
-TEST_F(HttpStreamFactoryTest, ProxyServerPreconnectDifferentPrivacyModes) {
- int num_streams = 1;
- base::HistogramTester histogram_tester;
- GURL url = GURL("http://www.google.com");
- std::unique_ptr<ProxyResolutionService> proxy_resolution_service =
- ProxyResolutionService::CreateFixedFromPacResult(
- "HTTPS myproxy.org:443", TRAFFIC_ANNOTATION_FOR_TESTS);
-
- // Set up the proxy server as a server that supports request priorities.
- HttpServerProperties http_server_properties;
-
- url::SchemeHostPort spdy_server("https", "myproxy.org", 443);
- http_server_properties.SetSupportsSpdy(spdy_server, NetworkIsolationKey(),
- true);
-
- SpdySessionDependencies session_deps;
- HttpNetworkSession::Params session_params =
- SpdySessionDependencies::CreateSessionParams(&session_deps);
- session_params.enable_quic = true;
-
- HttpNetworkSession::Context session_context =
- SpdySessionDependencies::CreateSessionContext(&session_deps);
- session_context.proxy_resolution_service = proxy_resolution_service.get();
- session_context.http_server_properties = &http_server_properties;
-
- auto session =
- std::make_unique<HttpNetworkSession>(session_params, session_context);
-
- HttpNetworkSessionPeer peer(session.get());
- ProxyServer proxy_server(ProxyServer::SCHEME_HTTPS,
- HostPortPair("myproxy.org", 443));
-
- CommonConnectJobParams common_connect_job_params =
- session->CreateCommonConnectJobParams();
- CapturePreconnectsTransportSocketPool* http_proxy_pool =
- new CapturePreconnectsTransportSocketPool(&common_connect_job_params);
-
- auto mock_pool_manager = std::make_unique<MockClientSocketPoolManager>();
- mock_pool_manager->SetSocketPool(proxy_server,
- base::WrapUnique(http_proxy_pool));
- peer.SetClientSocketPoolManager(std::move(mock_pool_manager));
-
- HttpRequestInfo request_privacy_mode_disabled;
- request_privacy_mode_disabled.method = "GET";
- request_privacy_mode_disabled.url = url;
- request_privacy_mode_disabled.load_flags = 0;
- request_privacy_mode_disabled.traffic_annotation =
- MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
-
- // First preconnect job should succeed.
- session->http_stream_factory()->PreconnectStreams(
- num_streams, request_privacy_mode_disabled);
- EXPECT_EQ(num_streams, http_proxy_pool->last_num_streams());
- http_proxy_pool->reset();
-
- // Second preconnect job with same privacy mode should not succeed.
- session->http_stream_factory()->PreconnectStreams(
- num_streams + 1, request_privacy_mode_disabled);
- EXPECT_EQ(-1, http_proxy_pool->last_num_streams());
-
- // Next request with a different privacy mode should succeed.
- HttpRequestInfo request_privacy_mode_enabled;
- request_privacy_mode_enabled.method = "GET";
- request_privacy_mode_enabled.url = url;
- request_privacy_mode_enabled.load_flags = 0;
- request_privacy_mode_enabled.privacy_mode = PRIVACY_MODE_ENABLED;
- request_privacy_mode_enabled.traffic_annotation =
- MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
-
- // Request with a different privacy mode should succeed.
- session->http_stream_factory()->PreconnectStreams(
- num_streams, request_privacy_mode_enabled);
- EXPECT_EQ(num_streams, http_proxy_pool->last_num_streams());
-}
-
namespace {
// Return count of distinct groups in given socket pool.
@@ -1488,6 +1369,81 @@ TEST_F(HttpStreamFactoryTest, PrivacyModeUsesDifferentSocketPoolGroup) {
EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2);
}
+TEST_F(HttpStreamFactoryTest, DisableSecureDnsUsesDifferentSocketPoolGroup) {
+ SpdySessionDependencies session_deps(ProxyResolutionService::CreateDirect());
+
+ StaticSocketDataProvider socket_data_1;
+ socket_data_1.set_connect_data(MockConnect(ASYNC, OK));
+ session_deps.socket_factory->AddSocketDataProvider(&socket_data_1);
+ StaticSocketDataProvider socket_data_2;
+ socket_data_2.set_connect_data(MockConnect(ASYNC, OK));
+ session_deps.socket_factory->AddSocketDataProvider(&socket_data_2);
+ StaticSocketDataProvider socket_data_3;
+ socket_data_3.set_connect_data(MockConnect(ASYNC, OK));
+ session_deps.socket_factory->AddSocketDataProvider(&socket_data_3);
+
+ SSLSocketDataProvider ssl_1(ASYNC, OK);
+ session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_1);
+ SSLSocketDataProvider ssl_2(ASYNC, OK);
+ session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_2);
+ SSLSocketDataProvider ssl_3(ASYNC, OK);
+ session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_3);
+
+ std::unique_ptr<HttpNetworkSession> session(
+ SpdySessionDependencies::SpdyCreateSession(&session_deps));
+ ClientSocketPool* ssl_pool = session->GetSocketPool(
+ HttpNetworkSession::NORMAL_SOCKET_POOL, ProxyServer::Direct());
+
+ EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 0);
+
+ HttpRequestInfo request_info;
+ request_info.method = "GET";
+ request_info.url = GURL("https://www.google.com");
+ request_info.load_flags = 0;
+ request_info.privacy_mode = PRIVACY_MODE_DISABLED;
+ request_info.traffic_annotation =
+ MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
+ request_info.disable_secure_dns = false;
+
+ SSLConfig ssl_config;
+ StreamRequestWaiter waiter;
+
+ std::unique_ptr<HttpStreamRequest> request1(
+ session->http_stream_factory()->RequestStream(
+ request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
+ /* enable_ip_based_pooling = */ true,
+ /* enable_alternative_services = */ true, NetLogWithSource()));
+ waiter.WaitForStream();
+
+ EXPECT_FALSE(
+ session_deps.host_resolver->last_secure_dns_mode_override().has_value());
+ EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 1);
+
+ std::unique_ptr<HttpStreamRequest> request2(
+ session->http_stream_factory()->RequestStream(
+ request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
+ /* enable_ip_based_pooling = */ true,
+ /* enable_alternative_services = */ true, NetLogWithSource()));
+ waiter.WaitForStream();
+
+ EXPECT_FALSE(
+ session_deps.host_resolver->last_secure_dns_mode_override().has_value());
+ EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 1);
+
+ request_info.disable_secure_dns = true;
+ std::unique_ptr<HttpStreamRequest> request3(
+ session->http_stream_factory()->RequestStream(
+ request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
+ /* enable_ip_based_pooling = */ true,
+ /* enable_alternative_services = */ true, NetLogWithSource()));
+ waiter.WaitForStream();
+
+ EXPECT_EQ(
+ net::DnsConfig::SecureDnsMode::OFF,
+ session_deps.host_resolver->last_secure_dns_mode_override().value());
+ EXPECT_EQ(GetSocketPoolGroupCount(ssl_pool), 2);
+}
+
TEST_F(HttpStreamFactoryTest, GetLoadState) {
SpdySessionDependencies session_deps(ProxyResolutionService::CreateDirect());
@@ -1701,93 +1657,6 @@ TEST_F(HttpStreamFactoryTest, RequestHttpStreamOverProxy) {
EXPECT_FALSE(waiter.used_proxy_info().is_direct());
}
-// Verifies that once a stream has been created to a proxy server (that supports
-// request priorities) the next preconnect job can again open new sockets.
-TEST_F(HttpStreamFactoryTest, RequestHttpStreamOverProxyWithPreconnects) {
- SpdySessionDependencies session_deps(ProxyResolutionService::CreateFixed(
- "https://myproxy.org:443", TRAFFIC_ANNOTATION_FOR_TESTS));
-
- // Set up the proxy server as a server that supports request priorities.
- auto http_server_properties = std::make_unique<HttpServerProperties>();
- url::SchemeHostPort spdy_server("https", "myproxy.org", 443);
- http_server_properties->SetSupportsSpdy(spdy_server, NetworkIsolationKey(),
- true);
- session_deps.http_server_properties = std::move(http_server_properties);
-
- StaticSocketDataProvider socket_data;
- socket_data.set_connect_data(MockConnect(ASYNC, OK));
- session_deps.socket_factory->AddSocketDataProvider(&socket_data);
-
- SSLSocketDataProvider ssl_data(ASYNC, OK);
- session_deps.socket_factory->AddSSLSocketDataProvider(&ssl_data);
-
- std::unique_ptr<HttpNetworkSession> session(
- SpdySessionDependencies::SpdyCreateSession(&session_deps));
-
- // Now preconnect a request. Only the first preconnect should succeed.
- HttpRequestInfo request_info;
- request_info.method = "GET";
- request_info.url = GURL("http://www.google.com");
- request_info.load_flags = 0;
- request_info.traffic_annotation =
- MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS);
-
- base::HistogramTester histogram_tester;
- const int num_preconnects = 5;
-
- // First preconnect would be successful. The next |num_preconnects-1| would be
- // skipped.
- for (int preconnect_request = 1; preconnect_request <= num_preconnects;
- ++preconnect_request) {
- session->http_stream_factory()->PreconnectStreams(1, request_info);
- base::RunLoop().RunUntilIdle();
- while (GetSocketPoolGroupCount(session->GetSocketPool(
- HttpNetworkSession::NORMAL_SOCKET_POOL,
- ProxyServer(ProxyServer::SCHEME_HTTPS,
- HostPortPair("myproxy.org", 443)))) == 0) {
- base::RunLoop().RunUntilIdle();
- }
- }
-
- histogram_tester.ExpectUniqueSample("Net.PreconnectSkippedToProxyServers", 1,
- num_preconnects - 1);
-
- // Start a request. This should cause subsequent preconnect to proxy server to
- // succeed.
- SSLConfig ssl_config;
- StreamRequestWaiter waiter;
- std::unique_ptr<HttpStreamRequest> request(
- session->http_stream_factory()->RequestStream(
- request_info, DEFAULT_PRIORITY, ssl_config, ssl_config, &waiter,
- /* enable_ip_based_pooling = */ true,
- /* enable_alternative_services = */ true, NetLogWithSource()));
- waiter.WaitForStream();
- EXPECT_TRUE(waiter.stream_done());
- ASSERT_TRUE(nullptr != waiter.stream());
- EXPECT_TRUE(nullptr == waiter.websocket_stream());
-
- EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSocketPool(
- HttpNetworkSession::NORMAL_SOCKET_POOL,
- ProxyServer(ProxyServer::SCHEME_HTTPS,
- HostPortPair("myproxy.org", 443)))));
- EXPECT_FALSE(waiter.used_proxy_info().is_direct());
-
- for (int preconnect_request = 1; preconnect_request <= num_preconnects;
- ++preconnect_request) {
- session->http_stream_factory()->PreconnectStreams(1, request_info);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(1, GetSocketPoolGroupCount(session->GetSocketPool(
- HttpNetworkSession::NORMAL_SOCKET_POOL,
- ProxyServer(ProxyServer::SCHEME_HTTPS,
- HostPortPair("myproxy.org", 443)))));
- }
-
- // First preconnect would be successful since the stream to the proxy server
- // has suceeded. The next |num_preconnects-1| would be skipped.
- histogram_tester.ExpectUniqueSample("Net.PreconnectSkippedToProxyServers", 1,
- 2 * (num_preconnects - 1));
-}
-
TEST_F(HttpStreamFactoryTest, RequestWebSocketBasicHandshakeStream) {
SpdySessionDependencies session_deps(ProxyResolutionService::CreateDirect());
@@ -2132,9 +2001,10 @@ TEST_F(HttpStreamFactoryTest, NewSpdySessionCloseIdleH2Sockets) {
base::MakeRefCounted<ClientSocketPool::SocketParams>(
std::make_unique<SSLConfig>() /* ssl_config_for_origin */,
nullptr /* ssl_config_for_proxy */);
- ClientSocketPool::GroupId group_id(host_port_pair,
- ClientSocketPool::SocketType::kSsl,
- PrivacyMode::PRIVACY_MODE_DISABLED);
+ ClientSocketPool::GroupId group_id(
+ host_port_pair, ClientSocketPool::SocketType::kSsl,
+ PrivacyMode::PRIVACY_MODE_DISABLED, NetworkIsolationKey(),
+ false /* disable_secure_dns */);
int rv = connection->Init(
group_id, socket_params, base::nullopt /* proxy_annotation_tag */,
MEDIUM, SocketTag(), ClientSocketPool::RespectLimits::ENABLED,
@@ -2326,7 +2196,7 @@ class HttpStreamFactoryBidirectionalQuicTest
ssl_config_service_(new SSLConfigServiceDefaults) {
clock_.AdvanceTime(quic::QuicTime::Delta::FromMilliseconds(20));
if (version_.handshake_protocol == quic::PROTOCOL_TLS1_3) {
- SetQuicFlag(FLAGS_quic_supports_tls_handshake, true);
+ SetQuicReloadableFlag(quic_supports_tls_handshake, true);
}
}
@@ -2370,7 +2240,8 @@ class HttpStreamFactoryBidirectionalQuicTest
session_context.ssl_config_service = ssl_config_service_.get();
session_context.client_socket_factory = &socket_factory_;
session_.reset(new HttpNetworkSession(params_, session_context));
- session_->quic_stream_factory()->set_require_confirmation(false);
+ session_->quic_stream_factory()
+ ->set_is_quic_known_to_work_on_current_network(true);
}
void AddQuicAlternativeService() {
@@ -2439,7 +2310,7 @@ TEST_P(HttpStreamFactoryBidirectionalQuicTest,
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
size_t spdy_headers_frame_length;
int packet_num = 1;
- if (VersionUsesQpack(version().transport_version)) {
+ if (VersionUsesHttp3(version().transport_version)) {
mock_quic_data.AddWrite(
client_packet_maker().MakeInitialSettingsPacket(packet_num++));
}
@@ -2568,7 +2439,7 @@ TEST_P(HttpStreamFactoryBidirectionalQuicTest,
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
size_t spdy_headers_frame_length;
int packet_num = 1;
- if (VersionUsesQpack(version().transport_version)) {
+ if (VersionUsesHttp3(version().transport_version)) {
mock_quic_data.AddWrite(
client_packet_maker().MakeInitialSettingsPacket(packet_num++));
}
@@ -2823,7 +2694,7 @@ TEST_P(HttpStreamFactoryBidirectionalQuicTest, Tag) {
ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY);
size_t spdy_headers_frame_length;
int packet_num = 1;
- if (VersionUsesQpack(version().transport_version)) {
+ if (VersionUsesHttp3(version().transport_version)) {
mock_quic_data.AddWrite(
client_packet_maker().MakeInitialSettingsPacket(packet_num++));
}
@@ -2846,7 +2717,7 @@ TEST_P(HttpStreamFactoryBidirectionalQuicTest, Tag) {
client_packet_maker().Reset();
MockQuicData mock_quic_data2(version());
packet_num = 1;
- if (VersionUsesQpack(version().transport_version)) {
+ if (VersionUsesHttp3(version().transport_version)) {
mock_quic_data2.AddWrite(
client_packet_maker().MakeInitialSettingsPacket(packet_num++));
}
@@ -3544,7 +3415,7 @@ TEST_F(ProcessAlternativeServicesTest, ProcessAltSvcQuic) {
scoped_refptr<HttpResponseHeaders> headers(
base::MakeRefCounted<HttpResponseHeaders>(""));
- headers->AddHeader("alt-svc: quic=\":443\"; v=\"99,48,47,46,43,39\"");
+ headers->AddHeader("alt-svc: quic=\":443\"; v=\"99,50,49,48,47,46,43,39\"");
session_->http_stream_factory()->ProcessAlternativeServices(
session_.get(), network_isolation_key, headers.get(), origin);
@@ -3577,7 +3448,9 @@ TEST_F(ProcessAlternativeServicesTest, ProcessAltSvcQuicIetf) {
base::MakeRefCounted<HttpResponseHeaders>(""));
headers->AddHeader(
"alt-svc: "
- "h3-Q099=\":443\",h3-Q048=\":443\",h3-Q047=\":443\",h3-Q043=\":443\",h3-"
+ "h3-Q099=\":443\",h3-Q050=\":443\",h3-Q049=\":443\",h3-Q048=\":443\",h3-"
+ "Q047=\":443\",h3-"
+ "Q043=\":443\",h3-"
"Q039=\":443\"");
session_->http_stream_factory()->ProcessAlternativeServices(
@@ -3585,6 +3458,8 @@ TEST_F(ProcessAlternativeServicesTest, ProcessAltSvcQuicIetf) {
quic::ParsedQuicVersionVector versions = {
{quic::PROTOCOL_QUIC_CRYPTO, quic::QUIC_VERSION_99},
+ {quic::PROTOCOL_QUIC_CRYPTO, quic::QUIC_VERSION_50},
+ {quic::PROTOCOL_QUIC_CRYPTO, quic::QUIC_VERSION_49},
{quic::PROTOCOL_QUIC_CRYPTO, quic::QUIC_VERSION_48},
{quic::PROTOCOL_QUIC_CRYPTO, quic::QUIC_VERSION_47},
{quic::PROTOCOL_QUIC_CRYPTO, quic::QUIC_VERSION_43},
diff --git a/chromium/net/http/http_stream_parser.cc b/chromium/net/http/http_stream_parser.cc
index 3112cae517a..c25ddf7029e 100644
--- a/chromium/net/http/http_stream_parser.cc
+++ b/chromium/net/http/http_stream_parser.cc
@@ -203,7 +203,6 @@ HttpStreamParser::HttpStreamParser(StreamSocket* stream_socket,
request_(request),
request_headers_(nullptr),
request_headers_length_(0),
- http_09_on_non_default_ports_enabled_(false),
read_buf_(read_buffer),
read_buf_unused_offset_(0),
response_header_start_offset_(std::string::npos),
@@ -1003,9 +1002,8 @@ int HttpStreamParser::ParseResponseHeaders(int end_offset) {
// If the port is not the default for the scheme, assume it's not a real
// HTTP/0.9 response, and fail the request.
base::StringPiece scheme = request_->url.scheme_piece();
- if (!http_09_on_non_default_ports_enabled_ &&
- url::DefaultPortForScheme(scheme.data(), scheme.length()) !=
- request_->url.EffectiveIntPort()) {
+ if (url::DefaultPortForScheme(scheme.data(), scheme.length()) !=
+ request_->url.EffectiveIntPort()) {
// Allow Shoutcast responses over HTTP, as it's somewhat common and relies
// on HTTP/0.9 on weird ports to work.
// See
diff --git a/chromium/net/http/http_stream_parser.h b/chromium/net/http/http_stream_parser.h
index 0d559c3a828..2b5c2f0aeb7 100644
--- a/chromium/net/http/http_stream_parser.h
+++ b/chromium/net/http/http_stream_parser.h
@@ -57,14 +57,6 @@ class NET_EXPORT_PRIVATE HttpStreamParser {
const NetLogWithSource& net_log);
virtual ~HttpStreamParser();
- // Sets whether or not HTTP/0.9 is only allowed on default ports. It's not
- // allowed, by default.
- void set_http_09_on_non_default_ports_enabled(
- bool http_09_on_non_default_ports_enabled) {
- http_09_on_non_default_ports_enabled_ =
- http_09_on_non_default_ports_enabled;
- }
-
// These functions implement the interface described in HttpStream with
// some additional functionality
int SendRequest(const std::string& request_line,
@@ -220,9 +212,6 @@ class NET_EXPORT_PRIVATE HttpStreamParser {
// |request_headers_| if the body was merged with the headers.
int request_headers_length_;
- // True if HTTP/0.9 should be permitted on non-default ports.
- bool http_09_on_non_default_ports_enabled_;
-
// Temporary buffer for reading.
scoped_refptr<GrowableIOBuffer> read_buf_;
diff --git a/chromium/net/http/http_stream_parser_unittest.cc b/chromium/net/http/http_stream_parser_unittest.cc
index 81fbaac2d70..15c02611158 100644
--- a/chromium/net/http/http_stream_parser_unittest.cc
+++ b/chromium/net/http/http_stream_parser_unittest.cc
@@ -1223,7 +1223,6 @@ class SimpleGetRunner {
public:
SimpleGetRunner()
: url_("http://localhost"),
- http_09_on_non_default_ports_enabled_(false),
read_buffer_(base::MakeRefCounted<GrowableIOBuffer>()),
sequence_number_(0) {
writes_.push_back(MockWrite(
@@ -1231,11 +1230,6 @@ class SimpleGetRunner {
}
void set_url(const GURL& url) { url_ = url; }
- void set_http_09_on_non_default_ports_enabled(
- bool http_09_on_non_default_ports_enabled) {
- http_09_on_non_default_ports_enabled_ =
- http_09_on_non_default_ports_enabled;
- }
HttpStreamParser* parser() { return parser_.get(); }
GrowableIOBuffer* read_buffer() { return read_buffer_.get(); }
@@ -1270,9 +1264,6 @@ class SimpleGetRunner {
false /* is_reused */, &request_info_,
read_buffer(), NetLogWithSource()));
- parser_->set_http_09_on_non_default_ports_enabled(
- http_09_on_non_default_ports_enabled_);
-
TestCompletionCallback callback;
ASSERT_EQ(OK, parser_->SendRequest("GET / HTTP/1.1\r\n", request_headers_,
TRAFFIC_ANNOTATION_FOR_TESTS,
@@ -1308,7 +1299,6 @@ class SimpleGetRunner {
private:
GURL url_;
- bool http_09_on_non_default_ports_enabled_;
HttpRequestHeaders request_headers_;
HttpResponseInfo response_info_;
@@ -1327,7 +1317,6 @@ class SimpleGetRunner {
TEST(HttpStreamParser, Http09PortTests) {
struct TestCase {
const char* url;
- bool http_09_on_non_default_ports_enabled;
// Expected result when trying to read headers and response is an HTTP/0.9
// non-Shoutcast response.
@@ -1340,30 +1329,18 @@ TEST(HttpStreamParser, Http09PortTests) {
const TestCase kTestCases[] = {
// Default ports should work for HTTP/0.9, regardless of whether the port
// is explicitly specified or not.
- {"http://foo.com/", false, OK, OK},
- {"http://foo.com:80/", false, OK, OK},
- {"https://foo.com/", false, OK, OK},
- {"https://foo.com:443/", false, OK, OK},
+ {"http://foo.com/", OK, OK},
+ {"http://foo.com:80/", OK, OK},
+ {"https://foo.com/", OK, OK},
+ {"https://foo.com:443/", OK, OK},
// Non-standard ports should not support HTTP/0.9, by default.
- {"http://foo.com:8080/", false, ERR_INVALID_HTTP_RESPONSE, OK},
- {"https://foo.com:8080/", false, ERR_INVALID_HTTP_RESPONSE,
+ {"http://foo.com:8080/", ERR_INVALID_HTTP_RESPONSE, OK},
+ {"https://foo.com:8080/", ERR_INVALID_HTTP_RESPONSE,
ERR_INVALID_HTTP_RESPONSE},
- {"http://foo.com:443/", false, ERR_INVALID_HTTP_RESPONSE, OK},
- {"https://foo.com:80/", false, ERR_INVALID_HTTP_RESPONSE,
+ {"http://foo.com:443/", ERR_INVALID_HTTP_RESPONSE, OK},
+ {"https://foo.com:80/", ERR_INVALID_HTTP_RESPONSE,
ERR_INVALID_HTTP_RESPONSE},
-
- // Allowing non-default ports should not break the default ones.
- {"http://foo.com/", true, OK, OK},
- {"http://foo.com:80/", true, OK, OK},
- {"https://foo.com/", true, OK, OK},
- {"https://foo.com:443/", true, OK, OK},
-
- // Check that non-default ports works.
- {"http://foo.com:8080/", true, OK, OK},
- {"https://foo.com:8080/", true, OK, OK},
- {"http://foo.com:443/", true, OK, OK},
- {"https://foo.com:80/", true, OK, OK},
};
const std::string kResponse = "hello\r\nworld\r\n";
@@ -1371,8 +1348,6 @@ TEST(HttpStreamParser, Http09PortTests) {
for (const auto& test_case : kTestCases) {
SimpleGetRunner get_runner;
get_runner.set_url(GURL(test_case.url));
- get_runner.set_http_09_on_non_default_ports_enabled(
- test_case.http_09_on_non_default_ports_enabled);
get_runner.AddRead(kResponse);
get_runner.SetupParserAndSendRequest();
@@ -1397,8 +1372,6 @@ TEST(HttpStreamParser, Http09PortTests) {
for (const auto& test_case : kTestCases) {
SimpleGetRunner get_runner;
get_runner.set_url(GURL(test_case.url));
- get_runner.set_http_09_on_non_default_ports_enabled(
- test_case.http_09_on_non_default_ports_enabled);
get_runner.AddRead(kShoutcastResponse);
get_runner.SetupParserAndSendRequest();
@@ -1450,7 +1423,6 @@ TEST(HttpStreamParser, NullFails) {
TEST(HttpStreamParser, ShoutcastSingleByteReads) {
SimpleGetRunner get_runner;
get_runner.set_url(GURL("http://foo.com:8080/"));
- get_runner.set_http_09_on_non_default_ports_enabled(false);
get_runner.AddRead("i");
get_runner.AddRead("c");
get_runner.AddRead("Y");
@@ -1471,7 +1443,6 @@ TEST(HttpStreamParser, ShoutcastSingleByteReads) {
TEST(HttpStreamParser, ShoutcastWeirdHeader) {
SimpleGetRunner get_runner;
get_runner.set_url(GURL("http://foo.com:8080/"));
- get_runner.set_http_09_on_non_default_ports_enabled(false);
get_runner.AddRead("iCyCreamSundae");
get_runner.SetupParserAndSendRequest();
diff --git a/chromium/net/http/http_util.cc b/chromium/net/http/http_util.cc
index e6331a7591a..e66cebf20ff 100644
--- a/chromium/net/http/http_util.cc
+++ b/chromium/net/http/http_util.cc
@@ -386,30 +386,31 @@ bool HttpUtil::ParseRetryAfterHeader(const std::string& retry_after_string,
namespace {
// A header string containing any of the following fields will cause
-// an error. The list comes from the XMLHttpRequest standard.
-// http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method
+// an error. The list comes from the fetch standard.
const char* const kForbiddenHeaderFields[] = {
- "accept-charset",
- "accept-encoding",
- "access-control-request-headers",
- "access-control-request-method",
- "connection",
- "content-length",
- "cookie",
- "cookie2",
- "content-transfer-encoding",
- "date",
- "expect",
- "host",
- "keep-alive",
- "origin",
- "referer",
- "te",
- "trailer",
- "transfer-encoding",
- "upgrade",
- "user-agent",
- "via",
+ "accept-charset",
+ "accept-encoding",
+ "access-control-request-headers",
+ "access-control-request-method",
+ "connection",
+ "content-length",
+ "cookie",
+ "cookie2",
+ "date",
+ "dnt",
+ "expect",
+ "host",
+ "keep-alive",
+ "origin",
+ "referer",
+ "te",
+ "trailer",
+ "transfer-encoding",
+ "upgrade",
+ // TODO(mmenke): This is no longer banned, but still here due to issues
+ // mentioned in https://crbug.com/571722.
+ "user-agent",
+ "via",
};
} // namespace
diff --git a/chromium/net/http/http_util.h b/chromium/net/http/http_util.h
index 2301d28a28f..14b638dc403 100644
--- a/chromium/net/http/http_util.h
+++ b/chromium/net/http/http_util.h
@@ -95,7 +95,9 @@ class NET_EXPORT HttpUtil {
static bool IsMethodIdempotent(base::StringPiece method);
// Returns true if it is safe to allow users and scripts to specify the header
- // named |name|.
+ // named |name|. Returns true for headers not in the list at
+ // https://fetch.spec.whatwg.org/#forbidden-header-name. Does not check header
+ // validity.
static bool IsSafeHeader(base::StringPiece name);
// Returns true if |name| is a valid HTTP header name.
diff --git a/chromium/net/http/http_util_unittest.cc b/chromium/net/http/http_util_unittest.cc
index d8d316ca101..305565ea3e8 100644
--- a/chromium/net/http/http_util_unittest.cc
+++ b/chromium/net/http/http_util_unittest.cc
@@ -14,35 +14,35 @@ namespace net {
TEST(HttpUtilTest, IsSafeHeader) {
static const char* const unsafe_headers[] = {
- "sec-",
- "sEc-",
- "sec-foo",
- "sEc-FoO",
- "proxy-",
- "pRoXy-",
- "proxy-foo",
- "pRoXy-FoO",
- "accept-charset",
- "accept-encoding",
- "access-control-request-headers",
- "access-control-request-method",
- "connection",
- "content-length",
- "cookie",
- "cookie2",
- "content-transfer-encoding",
- "date",
- "expect",
- "host",
- "keep-alive",
- "origin",
- "referer",
- "te",
- "trailer",
- "transfer-encoding",
- "upgrade",
- "user-agent",
- "via",
+ "sec-",
+ "sEc-",
+ "sec-foo",
+ "sEc-FoO",
+ "proxy-",
+ "pRoXy-",
+ "proxy-foo",
+ "pRoXy-FoO",
+ "accept-charset",
+ "accept-encoding",
+ "access-control-request-headers",
+ "access-control-request-method",
+ "connection",
+ "content-length",
+ "cookie",
+ "cookie2",
+ "date",
+ "dnt",
+ "expect",
+ "host",
+ "keep-alive",
+ "origin",
+ "referer",
+ "te",
+ "trailer",
+ "transfer-encoding",
+ "upgrade",
+ "user-agent",
+ "via",
};
for (size_t i = 0; i < base::size(unsafe_headers); ++i) {
EXPECT_FALSE(HttpUtil::IsSafeHeader(unsafe_headers[i]))
@@ -51,44 +51,45 @@ TEST(HttpUtilTest, IsSafeHeader) {
<< unsafe_headers[i];
}
static const char* const safe_headers[] = {
- "foo",
- "x-",
- "x-foo",
- "content-disposition",
- "update",
- "accept-charseta",
- "accept_charset",
- "accept-encodinga",
- "accept_encoding",
- "access-control-request-headersa",
- "access-control-request-header",
- "access_control_request_header",
- "access-control-request-methoda",
- "access_control_request_method",
- "connectiona",
- "content-lengtha",
- "content_length",
- "cookiea",
- "cookie2a",
- "cookie3",
- "content-transfer-encodinga",
- "content_transfer_encoding",
- "datea",
- "expecta",
- "hosta",
- "keep-alivea",
- "keep_alive",
- "origina",
- "referera",
- "referrer",
- "tea",
- "trailera",
- "transfer-encodinga",
- "transfer_encoding",
- "upgradea",
- "user-agenta",
- "user_agent",
- "viaa",
+ "foo",
+ "x-",
+ "x-foo",
+ "content-disposition",
+ "update",
+ "accept-charseta",
+ "accept_charset",
+ "accept-encodinga",
+ "accept_encoding",
+ "access-control-request-headersa",
+ "access-control-request-header",
+ "access_control_request_header",
+ "access-control-request-methoda",
+ "access_control_request_method",
+ "connectiona",
+ "content-lengtha",
+ "content_length",
+ "content-transfer-encoding",
+ "cookiea",
+ "cookie2a",
+ "cookie3",
+ "content-transfer-encodinga",
+ "content_transfer_encoding",
+ "datea",
+ "expecta",
+ "hosta",
+ "keep-alivea",
+ "keep_alive",
+ "origina",
+ "referera",
+ "referrer",
+ "tea",
+ "trailera",
+ "transfer-encodinga",
+ "transfer_encoding",
+ "upgradea",
+ "user-agenta",
+ "user_agent",
+ "viaa",
};
for (size_t i = 0; i < base::size(safe_headers); ++i) {
EXPECT_TRUE(HttpUtil::IsSafeHeader(safe_headers[i])) << safe_headers[i];
diff --git a/chromium/net/http/mock_sspi_library_win.cc b/chromium/net/http/mock_sspi_library_win.cc
index 95a3deb27f4..543a1c24695 100644
--- a/chromium/net/http/mock_sspi_library_win.cc
+++ b/chromium/net/http/mock_sspi_library_win.cc
@@ -98,8 +98,8 @@ struct MockContext {
} // namespace
-MockSSPILibrary::MockSSPILibrary() {
-}
+MockSSPILibrary::MockSSPILibrary(const wchar_t* package)
+ : SSPILibrary(package) {}
MockSSPILibrary::~MockSSPILibrary() {
EXPECT_TRUE(expected_package_queries_.empty());
@@ -110,7 +110,6 @@ MockSSPILibrary::~MockSSPILibrary() {
SECURITY_STATUS MockSSPILibrary::AcquireCredentialsHandle(
LPWSTR pszPrincipal,
- LPWSTR pszPackage,
unsigned long fCredentialUse,
void* pvLogonId,
void* pvAuthData,
@@ -122,7 +121,7 @@ SECURITY_STATUS MockSSPILibrary::AcquireCredentialsHandle(
auto* credential = new MockCredential;
credential->source_principal = pszPrincipal ? base::as_u16cstr(pszPrincipal)
: STRING16_LITERAL("<Default>");
- credential->package = base::as_u16cstr(pszPackage);
+ credential->package = base::as_u16cstr(package_name_.c_str());
credential->has_explicit_credentials = !!pvAuthData;
credential->StoreInHandle(phCredential);
@@ -232,12 +231,17 @@ SECURITY_STATUS MockSSPILibrary::QueryContextAttributesEx(PCtxtHandle phContext,
}
SECURITY_STATUS MockSSPILibrary::QuerySecurityPackageInfo(
- LPWSTR pszPackageName, PSecPkgInfoW *pkgInfo) {
- EXPECT_TRUE(!expected_package_queries_.empty());
+ PSecPkgInfoW* pkgInfo) {
+ if (expected_package_queries_.empty()) {
+ static SecPkgInfoW kDefaultPkgInfo{
+ 0, 0, 0, kDefaultMaxTokenLength, nullptr, nullptr};
+ *pkgInfo = &kDefaultPkgInfo;
+ expected_freed_packages_.insert(&kDefaultPkgInfo);
+ return SEC_E_OK;
+ }
+
PackageQuery package_query = expected_package_queries_.front();
expected_package_queries_.pop_front();
- std::wstring actual_package(pszPackageName);
- EXPECT_EQ(package_query.expected_package, actual_package);
*pkgInfo = package_query.package_info;
if (package_query.response_code == SEC_E_OK)
expected_freed_packages_.insert(package_query.package_info);
@@ -271,12 +275,10 @@ SECURITY_STATUS MockSSPILibrary::FreeContextBuffer(PVOID pvContextBuffer) {
}
void MockSSPILibrary::ExpectQuerySecurityPackageInfo(
- const std::wstring& expected_package,
SECURITY_STATUS response_code,
PSecPkgInfoW package_info) {
- PackageQuery package_query = {expected_package, response_code,
- package_info};
- expected_package_queries_.push_back(package_query);
+ expected_package_queries_.emplace_back(
+ PackageQuery{response_code, package_info});
}
} // namespace net
diff --git a/chromium/net/http/mock_sspi_library_win.h b/chromium/net/http/mock_sspi_library_win.h
index d3b82d3218c..bb37f67c0f0 100644
--- a/chromium/net/http/mock_sspi_library_win.h
+++ b/chromium/net/http/mock_sspi_library_win.h
@@ -16,9 +16,13 @@ namespace net {
// the system SSPI library calls.
class MockSSPILibrary : public SSPILibrary {
public:
- MockSSPILibrary();
+ explicit MockSSPILibrary(const wchar_t* package);
~MockSSPILibrary() override;
+ // Default max token length regardless of package name returned by
+ // QuerySecurityPackageInfo() if no expectations are set.
+ static constexpr unsigned long kDefaultMaxTokenLength = 1024;
+
// SSPILibrary methods:
// AcquireCredentialsHandle() returns a handle that must be freed using
@@ -26,7 +30,6 @@ class MockSSPILibrary : public SSPILibrary {
//
// On return ptsExpiry is set to a constant.
SECURITY_STATUS AcquireCredentialsHandle(LPWSTR pszPrincipal,
- LPWSTR pszPackage,
unsigned long fCredentialUse,
void* pvLogonId,
void* pvAuthData,
@@ -74,8 +77,7 @@ class MockSSPILibrary : public SSPILibrary {
PVOID pBuffer,
ULONG cbBuffer) override;
- SECURITY_STATUS QuerySecurityPackageInfo(LPWSTR pszPackageName,
- PSecPkgInfoW* pkgInfo) override;
+ SECURITY_STATUS QuerySecurityPackageInfo(PSecPkgInfoW* pkgInfo) override;
SECURITY_STATUS FreeCredentialsHandle(PCredHandle phCredential) override;
SECURITY_STATUS DeleteSecurityContext(PCtxtHandle phContext) override;
SECURITY_STATUS FreeContextBuffer(PVOID pvContextBuffer) override;
@@ -84,30 +86,7 @@ class MockSSPILibrary : public SSPILibrary {
//
// Each expectation established by |ExpectSecurityQueryPackageInfo()| must be
// matched by a call to |QuerySecurityPackageInfo()| during the lifetime of
- // the MockSSPILibrary. The |expected_package| argument must equal the
- // |*pszPackageName| argument to |QuerySecurityPackageInfo()| for there to be
- // a match. The expectations also establish an explicit ordering.
- //
- // For example, this sequence will be successful.
- // MockSSPILibrary lib;
- // lib.ExpectQuerySecurityPackageInfo(L"NTLM", ...)
- // lib.ExpectQuerySecurityPackageInfo(L"Negotiate", ...)
- // lib.QuerySecurityPackageInfo(L"NTLM", ...)
- // lib.QuerySecurityPackageInfo(L"Negotiate", ...)
- //
- // This sequence will fail since the queries do not occur in the order
- // established by the expectations.
- // MockSSPILibrary lib;
- // lib.ExpectQuerySecurityPackageInfo(L"NTLM", ...)
- // lib.ExpectQuerySecurityPackageInfo(L"Negotiate", ...)
- // lib.QuerySecurityPackageInfo(L"Negotiate", ...)
- // lib.QuerySecurityPackageInfo(L"NTLM", ...)
- //
- // This sequence will fail because there were not enough queries.
- // MockSSPILibrary lib;
- // lib.ExpectQuerySecurityPackageInfo(L"NTLM", ...)
- // lib.ExpectQuerySecurityPackageInfo(L"Negotiate", ...)
- // lib.QuerySecurityPackageInfo(L"NTLM", ...)
+ // the MockSSPILibrary. The expectations establish an explicit ordering.
//
// |response_code| is used as the return value for
// |QuerySecurityPackageInfo()|. If |response_code| is SEC_E_OK,
@@ -117,13 +96,11 @@ class MockSSPILibrary : public SSPILibrary {
// |package_info| is assigned to |*pkgInfo| in |QuerySecurityPackageInfo|.
// The lifetime of |*package_info| should last at least until the matching
// |QuerySecurityPackageInfo()| is called.
- void ExpectQuerySecurityPackageInfo(const std::wstring& expected_package,
- SECURITY_STATUS response_code,
+ void ExpectQuerySecurityPackageInfo(SECURITY_STATUS response_code,
PSecPkgInfoW package_info);
private:
struct PackageQuery {
- std::wstring expected_package;
SECURITY_STATUS response_code;
PSecPkgInfoW package_info;
};
diff --git a/chromium/net/http/transport_security_state_static.json b/chromium/net/http/transport_security_state_static.json
index 5992995c8de..32b3f7fa533 100644
--- a/chromium/net/http/transport_security_state_static.json
+++ b/chromium/net/http/transport_security_state_static.json
@@ -225,15 +225,6 @@
"SwehackBackup",
"COMODORSADomainValidationSecureServerCA"
]
- },
- {
- "name": "tumblr",
- "static_spki_hashes": [
- "DigiCertEVRoot",
- "DigiCertSHA2HighAssuranceServerCA",
- "TumblrBackup"
- ],
- "report_uri": "https://cspreports.srvcs.tumblr.com/hpkp"
}
],
@@ -2410,7 +2401,6 @@
{ "name": "musi.cx", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mykontool.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nostraforma.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "nzb.cat", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "orhideous.name", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ramsor-gaming.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "robertof.ovh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2450,7 +2440,6 @@
{ "name": "axka.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitcoin.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blablacar.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "blablacar.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blablacar.com.tr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blablacar.com.ua", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blablacar.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -2774,7 +2763,6 @@
{ "name": "nellacms.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nellacms.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nellafw.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "nextend.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nmd.so", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "null.tips", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ocrami.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -3960,7 +3948,6 @@
{ "name": "concentrade.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "crepererum.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cryptoparty.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "dannyrohde.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "devdoodle.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "diasp.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dime-staging.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4097,7 +4084,6 @@
{ "name": "wrara.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xetown.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xss.sk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "yingyj.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "zgrep.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "zortium.report", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "0x90.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4134,7 +4120,6 @@
{ "name": "edpubs.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eeqj.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "elitefishtank.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "endofnet.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "englerts.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eugenekay.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "evasovova.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4617,7 +4602,6 @@
{ "name": "bettween.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bike-shack.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bildermachr.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "bitok.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bizcms.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blmiller.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "boxintense.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4775,7 +4759,6 @@
{ "name": "vansieleghem.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vfdworld.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "viperdns.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "vitalorange.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "w.wiki", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wevolver.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wf-hosting.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4823,7 +4806,6 @@
{ "name": "bentley.link", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "berra.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bfw-online.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "biasmath.es", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "biou.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitcoinworld.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blauwwit.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -4943,7 +4925,6 @@
{ "name": "isondo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jacobphono.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jamesrains.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "jayharris.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jcraft.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jennythebaker.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jonaskjodt.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5743,7 +5724,6 @@
{ "name": "detoxsinutritie.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "deuxsolutions.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "devopsconnected.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "diegerbers.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dighans.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "digitalnonplus.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dipconsultants.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5791,8 +5771,6 @@
{ "name": "epicwalnutcreek.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "epublibre.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eq8.net.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "equate.net.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "equatetechnologies.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eressea.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "esko.bar", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "esocweb.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5824,7 +5802,6 @@
{ "name": "fikt.space", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "finfev.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "firebird.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "fireorbit.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fischers.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "flamingkeys.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "flocktofedora.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5838,7 +5815,6 @@
{ "name": "fritzrepair.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "frly.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "frogatto.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "frontmin.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "funderburg.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "furry.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "futuretechnologi.es", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -5995,7 +5971,6 @@
{ "name": "jupp0r.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kalami.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kantankye.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "kapucini.si", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kaputt.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "karguine.in", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "katericke.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6304,7 +6279,6 @@
{ "name": "septakkordeon.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "seq.tf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "serverco.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "servercode.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sharepic.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "shaunwheelhou.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "shibe.club", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6350,7 +6324,6 @@
{ "name": "stefanovski.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sternplastic.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "stoianlawfirm.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "storefrontify.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "strobeto.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "studenttravel.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "studyhub.cf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6391,7 +6364,6 @@
{ "name": "theinvisibletrailer.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "themerchandiser.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "theodorejones.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "therockawaysny.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thescientists.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thesled.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thetradinghall.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6427,7 +6399,6 @@
{ "name": "tsumi.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tty.space", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tuvalie.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "ty2u.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "uat-activesg.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ukrgadget.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "unexpected.nu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6615,7 +6586,6 @@
{ "name": "continuumgaming.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cool110.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "creep.im", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "crestasantos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cruzr.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "customd.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cvr.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6641,7 +6611,6 @@
{ "name": "dewalch.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dfranke.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "diddens.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "digitalriver.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "directme.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dittvertshus.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dizorg.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6893,7 +6862,6 @@
{ "name": "noop.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "noxlogic.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nsweb.solutions", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "nutrienti.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nyyu.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "obsydian.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "oceandns.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -6906,7 +6874,6 @@
{ "name": "okok-rent.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "okok.rent", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ols.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "onehourloan.sg", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "onepluscamps.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "oneway.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "onlinepollsph.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7135,7 +7102,6 @@
{ "name": "zhaofeng.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "zima.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "zoomingin.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "zrn.in", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "zulu7.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "zvps.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "020wifi.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7175,7 +7141,6 @@
{ "name": "carey.li", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cfh.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ciubotaru.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "cleaningsquad.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "clubmate.rocks", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cnam.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "codeplay.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -7700,7 +7665,6 @@
{ "name": "liquidcomm.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "loadingdeck.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "locomotive.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "loony.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lovemomiji.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lpak.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lynkos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8264,7 +8228,6 @@
{ "name": "and.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "andreastoneman.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "andrepicard.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "andrewhowden.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "andrewthelott.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "andsat.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "annarokina.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8292,9 +8255,7 @@
{ "name": "aran.me.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "arlen.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "arnesolutions.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "arpa.ph", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "arrowgrove.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "artisanhd.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "artistnetwork.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "arubasunsetbeach.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "arvid.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8396,7 +8357,6 @@
{ "name": "bithosting.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitmoe.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitref.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "bitsafe.systems", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitskins.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bivsi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bl4ckb0x.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8437,7 +8397,6 @@
{ "name": "bubblegumblog.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "buchheld.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "budgetthostels.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "buffalodrinkinggame.beer", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "buildbox.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "built.by", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bulletpoint.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8631,7 +8590,6 @@
{ "name": "datenreiter.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "david-corry.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "davidgouveia.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "davidhunter.scot", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dccoffeeproducts.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dckd.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dcmt.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -8702,7 +8660,6 @@
{ "name": "drainagebuizen.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "drawingcode.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dreamcreator108.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "dreweryinc.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "drhopeson.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "driftdude.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "droidboss.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9253,7 +9210,6 @@
{ "name": "kickerplaza.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kidbacker.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kiel-media.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "kienlen.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "killerrobots.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kimberg.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kiocloud.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9262,7 +9218,6 @@
{ "name": "kirinas.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kis-toitoidixi.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kisstyle.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "kita.id", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kitabgaul.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kittmedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kizil.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9504,7 +9459,6 @@
{ "name": "mrnonz.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mrpopat.in", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mtg-esport.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "mtn.cc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mumei.space", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "murfy.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "murodese.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -9536,7 +9490,6 @@
{ "name": "nako.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nalifornia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nargileh.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "naro.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "natalia.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "natalt.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "natanaelys.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10672,7 +10625,6 @@
{ "name": "bunaken.asia", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "canadianchristianity.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cablemod.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "buildsaver.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "caps.is", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "casovi.cf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "catarsisvr.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10780,7 +10732,6 @@
{ "name": "drew.red", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dollarstore24.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "docbox.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "dossplumbing.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "doubleavineyards.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "duelysthub.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dreamlinehost.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10835,7 +10786,6 @@
{ "name": "f-s-u.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "faretravel.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fachschaft-informatik.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "exploit.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "experts-en-gestion.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ess-cert.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "familjenm.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -10910,7 +10860,6 @@
{ "name": "happygastro.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "gold24.in", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "hdrboundless.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "hausarzt-stader-str.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "hatcherlawgroupnm.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "hepteract.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "hartlep.email", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -11676,7 +11625,6 @@
{ "name": "bchep.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "befundup.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "besixdouze.world", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "binaryfigments.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "binderapp.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "biophysik-ssl.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitfasching.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12172,7 +12120,6 @@
{ "name": "seconfig.sytes.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "secureobscure.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "securityglance.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "seesuite.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sefru.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "seoinc.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "seon.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12654,9 +12601,6 @@
{ "name": "ctrld.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cubecraftstore.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cubecraftstore.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "cubos.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "cubostecnologia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "cubostecnologia.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cucc.date", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "culturedcode.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cuongquach.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -12674,7 +12618,6 @@
{ "name": "dataswamp.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "davescomputertips.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "davidlillo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "dayman.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "daytonaseaside.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "db.gy", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dbcom.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13136,7 +13079,6 @@
{ "name": "kuschku.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kwok.tv", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kyliehunt.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "kyy.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kzjnet.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "l2guru.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "la-cave-a-nodo.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13303,7 +13245,6 @@
{ "name": "mythengay.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nakliyatsirketi.biz.tr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "namaho.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "nametaken-cloud.duckdns.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "namu.moe", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nanokamo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "naralogics.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13437,7 +13378,6 @@
{ "name": "points4unitedway.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pole.net.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "polycrypt.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "pomar.club", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ponteencima.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pontokay.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pornbay.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13675,7 +13615,6 @@
{ "name": "spookbook.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sporthit.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sportstraineradvisor.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "spotlightsrule.ddns.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "spr.id.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "spricknet.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sproutconnections.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -13795,7 +13734,6 @@
{ "name": "travisforte.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "travisfranck.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "travler.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "treinaweb.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tributh.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tripcombi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tsuyuzakihiroyuki.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14108,7 +14046,6 @@
{ "name": "berasavocate.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "anastasia-shamara.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bettertest.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "benjaminjurke.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "aymericlagier.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "borderlinegroup.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "awaremi-tai.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14184,7 +14121,6 @@
{ "name": "biteoftech.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "budger.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "buffaloautomation.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "bytesunlimited.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cheazey.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bueltge.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "businessimmigration-eu.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14305,7 +14241,6 @@
{ "name": "darkcores.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "danielkoster.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cvtparking.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "dataskydd.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "conflux.tw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "brain-e.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "danielhochleitner.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14402,7 +14337,6 @@
{ "name": "eam-gmbh.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "connect.dating", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ecos-ev.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "eimanavicius.lt", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dhome.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ericisaweso.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "entourneebeetle.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14446,7 +14380,6 @@
{ "name": "doctor.dating", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "energydrinkblog.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fm.ie", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "evasion-energie.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fiix.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fach-journalist.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "epizentrum.work", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14553,7 +14486,6 @@
{ "name": "gta-arabs.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "giga.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blitzprog.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "gem-indonesia.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "gorgiaxx.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "gamepad.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "glasner.photo", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14793,7 +14725,6 @@
{ "name": "learnedovo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kumalog.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jonas-thelemann.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "lacocinadelila.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "larptreff.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "itfix.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "krony.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -14900,7 +14831,6 @@
{ "name": "logicio.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mcea-hld.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mercadobitcoin.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "mesicka.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "machtweb.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "marketnsight.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mercadobitcoin.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15054,7 +14984,6 @@
{ "name": "oddsandevens.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nossasenhora.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "northumbriagames.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "occasion-impro.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "net2o.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nextcairn.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nothing.net.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15571,7 +15500,6 @@
{ "name": "ushare.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vdownloader.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "unicorncloud.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "unveiledgnosis.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "unixattic.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "van11y.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "stonefusion.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -15599,7 +15527,6 @@
{ "name": "vlogge.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vitsoft.by", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vician.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "warehost.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "whatwebcando.today", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wowjs.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "web-vision.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16018,7 +15945,6 @@
{ "name": "ebiografias.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dronexpertos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "doyoulyft.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "craigbates.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dwtm.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eduard-dopler.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eglek.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16075,7 +16001,6 @@
{ "name": "financier.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "epichouse.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "esample.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "feedthefuture.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "europapier.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "europapier.sk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fastograph.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16484,7 +16409,6 @@
{ "name": "mundodasmensagens.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "misiondelosangeles-mailing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "midlandgate.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "minf3-games.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "modistry.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "migueldemoura.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "muspla.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -16680,7 +16604,6 @@
{ "name": "rapenroer.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "salesflare.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "renideo.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "qbus.pl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "quickboysvrouwen2.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sarangsemutbandung.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "roesemann.email", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -17116,7 +17039,6 @@
{ "name": "andymoore.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "anivar.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "amphibo.ly", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "amsportuk.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "armandsdiscount.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "alrait.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "agatheetraphael.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -17285,7 +17207,6 @@
{ "name": "bugsmashed.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "brandtrapselfie.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "brianalawayconsulting.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "brunohenc.from.hr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bornandgrazed.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "blackpapermoon.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "biker.dating", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -17974,7 +17895,6 @@
{ "name": "ilhansubasi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "inforichjapan.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ict-radar.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "interchangedesign.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ict-radar.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ictradar.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "inviosolutions.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18007,7 +17927,6 @@
{ "name": "isthefieldcontrolsystemdown.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "integralblue.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jackrusselterrier.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "irmtrudjurke.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "internaldh.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ikulist.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "it-fernau.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18159,7 +18078,6 @@
{ "name": "laureltv.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lampegiganten.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lapolla.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "late.am", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "gorf.club", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "krizevackapajdasija.hr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kontakthuman.hu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18677,7 +18595,6 @@
{ "name": "robust.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rro.rs", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rootusers.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "rimo.site", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sa.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "proteapower.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rememberthis.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -18815,7 +18732,6 @@
{ "name": "socialprize.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sikevux.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sh-heppelmann.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "shishkin.link", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sifreuret.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "snowplane.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "seogeek.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19065,8 +18981,6 @@
{ "name": "ttuwiki.ee", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vavel.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "traderjoe-cloud.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "tyil.work", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "tyil.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "unblocked.works", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "upmchealthsecurity.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tumagiri.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19317,7 +19231,6 @@
{ "name": "advaithnikhi.ml", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "adamwilcox.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "724go.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "acourse.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "0g.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "7261696e626f77.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "525.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19831,7 +19744,6 @@
{ "name": "closingholding.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "deanpearce.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "deprecate.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "darkfriday.ddns.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dflcares.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "denimtoday.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "darkeststar.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -19894,7 +19806,6 @@
{ "name": "d2s.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "chatnbook.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ducalendars.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "diju.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "drawvesly.ovh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "douzer.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dreamlandmagic.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20379,7 +20290,6 @@
{ "name": "jake.eu.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jake.nom.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "igm-be.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "id-blog.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "isolta.lv", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "iplife.cn", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jake.ml", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -20429,7 +20339,6 @@
{ "name": "juni.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jakincode.army", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "itbrief.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "jebengotai.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "joyfulexpressions.gallery", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "joyful.house", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "itbrief.co.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -21535,7 +21444,6 @@
{ "name": "treatprostatewithhifu.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tulsameetingroom.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ugo.ninja", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "timeauction.hk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tremoureux.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "topanlage.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ultimate-garcinia-plus.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -21548,7 +21456,6 @@
{ "name": "todaymeow.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tubanten.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "trewe.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "tuttoandroid.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thomalaudan.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "utox.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "unixtime.pro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22216,7 +22123,6 @@
{ "name": "inceptionradionetwork.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "infinitioflynnwoodparts.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "infopagina.es", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "informaticapremium.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "inglesnarede.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "inobun.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "internetaanbieders.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22317,7 +22223,6 @@
{ "name": "lixiang.one", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "log2n.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "logfile.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "londonseedcentre.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "low-diets.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lpgram.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ltransferts.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22359,7 +22264,6 @@
{ "name": "megagifs.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mehrleben.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "melchizedek-forum.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "meltzow.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "melvinlammerts.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "meme-photostudio.com.tw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "memorytrace.space", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22385,7 +22289,6 @@
{ "name": "mobilebay.top", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mobileritelushi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mobiwalk.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "mocurio.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "modelservis.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moellers.it", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moellers.systems", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22853,7 +22756,6 @@
{ "name": "21x9.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "24-7.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "256k.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "25reinyan25.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "2c-b.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "2c-d.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "2c-e.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22878,7 +22780,6 @@
{ "name": "3weekdietworks.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "404forest.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "404notfound.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "42entrepreneurs.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "49889.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "4freepress.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "4hvac.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -22942,7 +22843,6 @@
{ "name": "acecerts.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "acerislaw.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "achterhoekseveiligheidsbeurs.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "acme.beer", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "acrepairdrippingsprings.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "acs-chantal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "actiontowingroundrock.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23143,7 +23043,6 @@
{ "name": "ayuru.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "azia.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "b-b-law.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "b-pi.duckdns.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "b-space.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "babyliss-pro.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "babyliss-pro.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23844,7 +23743,6 @@
{ "name": "epicmc.games", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "epolitiker.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "equalcloud.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "equipedefrance.tv", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "er.tl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "erinaceinae.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eriser.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23908,7 +23806,6 @@
{ "name": "facealacrise.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "facesnf.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fairviewmotel-simcoe.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "falkhusemann.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "falkus.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fame-agency.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "familyreal.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -23997,7 +23894,6 @@
{ "name": "fossgruppen.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fotostravestisbr.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fourwheelpartloanssimple.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "foxquill.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fr33tux.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fragilesolar.cf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "franchini.email", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -24719,7 +24615,6 @@
{ "name": "lubbockyounglawyers.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lubomirkazakov.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lucasgymnastics.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "luckystarfishing.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lucy.science", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lukeistschuld.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lumi.pw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -24758,7 +24653,6 @@
{ "name": "magwin.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mahjong.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "maiebanatulfruncea.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "maisvitaminas.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "malenyflorist.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mallach.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "malta-firma.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -24898,7 +24792,6 @@
{ "name": "mikro-inwestycje.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mikropixel.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "milesapart.dating", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "militarycarlot.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "milkingit.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "min-sky.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "minakov.pro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25303,7 +25196,6 @@
{ "name": "plustech.id", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pluta.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pocketmemories.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "pocobelli.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "podcast.style", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "podiumsdiskussion.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "poe.digital", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25514,7 +25406,6 @@
{ "name": "rijnmondeg.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rile5.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rimcountrymuseum.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "rioshop.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "risingsun.red", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rivaforum.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "riversideradio.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25771,7 +25662,6 @@
{ "name": "slash64.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "slash64.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "slashbits.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "sleeklounge.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sleepmap.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sloths.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "slovenskycestovatel.sk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25869,7 +25759,6 @@
{ "name": "suchmaschinen-werkstatt.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sugarcitycon.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sumguy.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "sunsmartresorts.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "supa.sexy", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "supercalorias.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "superklima.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25909,7 +25798,6 @@
{ "name": "targimieszkaniowe.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tateesq.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tatsidou.gr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "tchoukball.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tdsb.cf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tdsb.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tdsb.gq", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25949,7 +25837,6 @@
{ "name": "tessai.ga", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "testgeomed.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "teufelsystem.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "texasllcpros.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "texterseo.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "teysens.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tgui.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -25962,7 +25849,6 @@
{ "name": "theblackknightsings.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thebte.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thecarolingconnection.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "thecloudrevolution.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thedrinks.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "theeducationdirectory.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "theelitebuzz.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -26330,7 +26216,6 @@
{ "name": "wygodnie.pl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "x0r.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "x1616.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "x23.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xbc.nz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xenosphere.tk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xfd3.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -26826,7 +26711,6 @@
{ "name": "bikerebel.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bobkoetsier.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bjtxl.cn", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "bookingready.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bookmakersfreebets.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bitwrought.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bnin.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -27402,7 +27286,6 @@
{ "name": "ebop.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eworksmedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "exeintel.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "evolutionpets.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "example.wf", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "evilarmy.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "epistas.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28345,7 +28228,6 @@
{ "name": "mohanmekap.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "miguel.pw", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mobil-bei-uns.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "misrv.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lookart.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "millionairessecrets.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "meu-solutions.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28366,7 +28248,6 @@
{ "name": "monteurzimmerfrei.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moneytoday.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moonrhythm.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "moonrhythm.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mojoco.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moppeleinhorn.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mojefilmy.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -28601,7 +28482,6 @@
{ "name": "ovnrain.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "palabr.as", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "openiocdb.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "openacte.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ninjaspiders.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ofo2.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pasadenasandwichcompany.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -29141,7 +29021,6 @@
{ "name": "snatch.com.ua", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sophiaandmatt.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "silvergoldbull.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "smsg-dev.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "songsmp3.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "smit.com.ua", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "sgtsnookums.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -29369,7 +29248,6 @@
{ "name": "tierarztpraxis-weinert.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tlehseasyads.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "todaciencia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "thinkswap.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tibovanheule.site", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tele-alarme.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tommounsey.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -29981,7 +29859,6 @@
{ "name": "arenlor.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "altopartners.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "amoozesh98.ir", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "arox.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "azlo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "astral.gq", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "acendealuz.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30015,7 +29892,6 @@
{ "name": "bevnut.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "belpbleibtbelp.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "beetgroup.id", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "beverlyinternational.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "beingmad.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "anwaltsindex.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "belfasttechservices.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30042,7 +29918,6 @@
{ "name": "billy.pictures", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "24hrs.shopping", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "astutikhonda.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "bilder-designs.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bigerbio.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bgtgames.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "bernieware.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30154,10 +30029,8 @@
{ "name": "casamorelli.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ch-laborit.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "chrisbrakebill.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "chattergalerie.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cheeseemergency.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "burlesquemakeup.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "chattergallery.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ci-fo.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "chinahighlights.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "chat.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30231,7 +30104,6 @@
{ "name": "cryptorival.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cookingcrusade.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "csharpmarc.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "cosirex.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "controlarlaansiedad.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "csinfo.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cultofperf.org.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30293,7 +30165,6 @@
{ "name": "deltadata.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "capstansecurity.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "depedtayo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "deutschland-dsl.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dao.spb.su", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dhxxls.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "decorincasa.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30364,7 +30235,6 @@
{ "name": "drlangsdon.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "edeca.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eklepka.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "drfrey.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "elias-nicolas.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "elhossari.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ecoterramedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30434,7 +30304,6 @@
{ "name": "eyesoccer-didikh.rhcloud.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "erotpo.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "fantasiapainter.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "evony.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "esb112.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ewsfeed.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "eonhive.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30797,7 +30666,6 @@
{ "name": "kremalicious.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kabashop.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "keycenter.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "ken-electric.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kitchen-profi.by", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kobofarm.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kostecki.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -30936,7 +30804,6 @@
{ "name": "matcha-iga.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mayavi.co.in", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lunasqu.ee", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "maitrechaton.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "malmoesport.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "magazinedotreino.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "magnatronic.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31004,7 +30871,6 @@
{ "name": "mtirc.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "luca.swiss", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "morphy2k.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "moso.io", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "merojob.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mojnet.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mojnet.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31016,7 +30882,6 @@
{ "name": "moviefreeze.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mycircleworks.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "motonauticaibiza.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "multimedia-pool.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mylifeabundant.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mschuessler.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mopedreifen.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31142,10 +31007,7 @@
{ "name": "notablog.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nyphox.ovh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "numwave.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "octosys.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "octosys.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "mrksk.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "octosys.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "neurocny.cloud", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "netscaler.expert", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "opposer.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31642,7 +31504,6 @@
{ "name": "swisswebhelp.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tjl.rocks", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "titanlab.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "theroks.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "thomasetsophie.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "tomticket.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "timbishopartist.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -31865,12 +31726,10 @@
{ "name": "youngsook.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "yaharu.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "yougee.ml", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "wuchipc.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xx0r.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "youngsook.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "xn--7ca.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "youruseragent.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "yoonas.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "yoitoko.city", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "w4.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ymblaw.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32452,7 +32311,6 @@
{ "name": "viladochurrasco.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "visitkangaroovalley.com.au", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vitra-vcare.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "vividlumen.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "vwsoft.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "webbx.se", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "webless.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32518,7 +32376,6 @@
{ "name": "atelierssud.swiss", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "august.black", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "autozane.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "avidcruiser.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "aviv.nyc", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ayatk.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "badai.at", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32722,7 +32579,6 @@
{ "name": "ittop-gabon.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ivanpolchenko.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "izumi.tv", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "jakewalker.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "janada.cz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jeremy-chen.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "jinmaguoji.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -32891,7 +32747,6 @@
{ "name": "renascentia.asia", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "report-incident.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "restoruns.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "rivercruiseadvisor.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "robinflikkema.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "roeldevries.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "rosesciences.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33032,7 +32887,6 @@
{ "name": "wbci.us", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wbx.support", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "weyland-yutani.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "widegab.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wintermeyer-consulting.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wintermeyer.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wordpresspro.cl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33145,7 +32999,6 @@
{ "name": "kauplusprofesional.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "krsn.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "kuzbass-pwl.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "landflair-magazin.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "lavitrine-une-collection.be", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "logostock.jp", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "luav.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33166,7 +33019,6 @@
{ "name": "oliverspringer.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "onelawsuit.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "papatest24.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "pathwaystoresilience.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pik.bzh", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "politeiaudesa.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "psw-consulting.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33448,7 +33300,6 @@
{ "name": "catdecor.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "catgirl.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cavevinsdefrance.fr", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "ccgx.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "centralcountiesservices.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "certmonitor.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "cfno.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33580,7 +33431,6 @@
{ "name": "dirk-scheele.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "discount24.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "discountmania.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "discountplush.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "divedowntown.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "djipanov.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "dnfc.rocks", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33899,7 +33749,6 @@
{ "name": "inforisposte.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "infoworm.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "inge-r.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "innerform.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "innovation-workshop.ro", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "instawi.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "instelikes.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -33959,7 +33808,6 @@
{ "name": "juergenspecht.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "juliaoantiguidades.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "juniperroots.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "jurke.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "justbelieverecovery.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "justzz.xyz", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "juventusmania1897.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34169,7 +34017,6 @@
{ "name": "motomorgen.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "motoroilinfo.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "motorpointarenacardiff.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "motorring.ru", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moveltix.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "movil.uno", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "moy.cat", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34225,7 +34072,6 @@
{ "name": "niclasreich.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nien.gq", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nienkeslop.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "nintendoforum.no", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nixonlibrary.gov", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nlfant.eu", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "nodefiles.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34275,7 +34121,6 @@
{ "name": "orthodontiste-geneve-docteur-rioux.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "orui.com.br", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "oskrba.net", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "otakurumi.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "outdoorimagingportal.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "owlishmedia.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "paazmaya.fi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34319,7 +34164,6 @@
{ "name": "plumber-in-sandton.co.za", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "plussizereviews.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pmessage.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "pnimmobilier.ch", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pocketfruity.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pogoswine.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "pointhost.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34758,7 +34602,6 @@
{ "name": "wisdomize.me", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wishesbee.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wittepapaver.nl", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "witting.co", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wjg.ca", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wjg.dk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "wollongongbaptist.hopto.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -34891,7 +34734,6 @@
{ "name": "akazakov.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "akijo.de", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "akritikos.info", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "alviano.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "americafamilylawcenter.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "andrew.fi", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "andrewprokos.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -35292,7 +35134,6 @@
{ "name": "qualtrics.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "quasarelectronics.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ra.co.ke", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
- { "name": "rabotaescort.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "radicaloptimism.org", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "ratebridge.com", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
{ "name": "real-digital.co.uk", "policy": "bulk-18-weeks", "mode": "force-https", "include_subdomains": true },
@@ -35664,7 +35505,6 @@
{ "name": "blastentertainment.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "blastzoneentertainments.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "blivawesome.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "blivvektor.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bloggytalky.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bloglife-bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bnbsinflatablehire.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -35959,8 +35799,6 @@
{ "name": "derbybouncycastles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "derdewereldrommelmarkt.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "derehamcastles.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "derekseaman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "derekseaman.studio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "detalyedesigngroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "detroitzoo.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dev-brandywineglobal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36069,7 +35907,6 @@
{ "name": "fognini-depablo.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "formaliteo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "formapi.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "forum3.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fowlervwparts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "francesca-and-lucas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "freddysfuncastles.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36223,7 +36060,6 @@
{ "name": "jagbouncycastles.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jamieweb.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jammysplodgers.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jangocloud.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "janheidler.dynv6.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jballelectronics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jbsinternational.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -36510,7 +36346,6 @@
{ "name": "novecity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oakparkelectrical.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "obud.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ocsr.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "octothorpe.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "officefundays.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ogrodywstudniach.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -37423,7 +37258,6 @@
{ "name": "martijn.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mashandco.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mashandco.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mathias.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "maxwellmoore.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mdiv.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "media-credit.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -37497,7 +37331,6 @@
{ "name": "pony-cl.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pookl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "poy-tech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "preppertactics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "prestige-portal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "privatebanks.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "privilegevisa.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38047,7 +37880,6 @@
{ "name": "monothesis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "moteksystems.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mundolarraz.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "muqu.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "murfy.kiwi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myalliancechurch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "namethatporn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38540,7 +38372,6 @@
{ "name": "labcoat.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "landinfo.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lascana.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "lebarbatruc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ledeguisement.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lemonop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lenguajedeprogramacion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38653,8 +38484,6 @@
{ "name": "proggersession.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "projectforge.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "purplebricksplc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "pyjiaoyi.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "qimiao.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quarryhillrentals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quatrefoiscent.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quehacerencusco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38851,8 +38680,6 @@
{ "name": "alibababee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "allenosgood.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "allenscaravans.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "allgrass.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "allgrass.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "allgreenturf.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "allincoin.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alljamin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -38863,7 +38690,6 @@
{ "name": "alpinechaletrental.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "altaplana.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alwaysonssl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "alzonaprinting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "amaderelectronics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "amalficoastchauffeur.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "amalfitabula.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39184,7 +39010,6 @@
{ "name": "creatieven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "creativeconceptsvernon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "creato.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "creatujoya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "creditreporttips.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cribcore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cronologie.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39322,7 +39147,6 @@
{ "name": "esb16888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "esb17888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "esb222.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "esb555.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "esb555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "esb556.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "esb5889.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39436,7 +39260,6 @@
{ "name": "frejasdal.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "frugal-millennial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fs-community.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "fullhost.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "futurehack.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fwest98.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gaff-rig.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39565,7 +39388,6 @@
{ "name": "idrissi.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ig.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "iha6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ikkbb.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ikkev.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "immaternity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "imponet.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39853,7 +39675,6 @@
{ "name": "moreal.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "morepopcorn.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "motowilliams.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "movienized.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mozartgroup.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mrbuckykat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mrknee.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -39863,7 +39684,6 @@
{ "name": "mycareersfuture.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myessaygeek.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mygreatlakes.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mymarketingcourses.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mypaperdone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myref.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mysexydate24.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40085,7 +39905,6 @@
{ "name": "richamorindonesia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ricky.capital", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ristrutturazioneappartamento.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "rizalpalawan.gov.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "rlnunez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "robertnemec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "roboth.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40456,9 +40275,7 @@
{ "name": "xxxlbox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yacineboumaza.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yannick.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ybscareers.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yenibilgi.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "yetishirt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yocchan1513.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yoga-alliance-teacher-training.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yongbin.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40746,7 +40563,6 @@
{ "name": "dunamiscommunity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dushu.cat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "e-tonery.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "eastmidlandsstargazers.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "easyoutdoor.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "easyroad.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ecocreativity.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40833,7 +40649,6 @@
{ "name": "garten-bau.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gaysexpositions.guide", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gearallnews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "gearseo.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "geecrat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "geek1.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "genchev.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -40921,7 +40736,6 @@
{ "name": "joefixit.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "johansf.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jollygoodspudz.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jondowdle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jrabasco.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jsbevents.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jsblights.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41023,7 +40837,6 @@
{ "name": "mycuco.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mydentalplan.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mydna.bio", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "myotopie.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myperfecthome.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myrewardspoints.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myvitalhealthsolutions.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41067,7 +40880,6 @@
{ "name": "osepideasthatwork.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ostimwebyazilim.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "outlines.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "overtrolls.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "p.ki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pablo.im", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pabloarteaga.name", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41391,7 +41203,6 @@
{ "name": "zapatoshechoamano.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zoccarato.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zodgame.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "zofrex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zouyaoji.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zubro.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zwk.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -41527,7 +41338,6 @@
{ "name": "briefvorlagen-papierformat.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "btcp.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "buchverlag-scholz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bull.id.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "burgernet.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "businessfactors.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "buytermpaper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42203,7 +42013,6 @@
{ "name": "zanellidesigns.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zarabiaj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zatsepin.by", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "zelfoverstappen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zhome.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zhuihoude.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zielonakarta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42628,7 +42437,6 @@
{ "name": "marketlinks.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "martasibaja.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "matt-royal.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mauran.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mcfx.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mcivor.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mcprocdn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -42721,7 +42529,6 @@
{ "name": "play-charades.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "plumbingcentral.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "policesromandesrecrutement.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "policyreporter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "policyreporter.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "polit-it.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pomockypredeti.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43519,7 +43326,6 @@
{ "name": "lightbox.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "listekdo.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "livinglocalnashville.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "lobosdomain.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lode.li", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "logtalk.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "logtalk.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -43861,7 +43667,6 @@
{ "name": "chat2.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "chrisbryant.me.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "chundelac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "cio.go.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "claus-bahr.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cloudconsulting.net.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cloudconsulting.org.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -44092,7 +43897,6 @@
{ "name": "l.me.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lacantine.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ladadate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "laharilais.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lamclam.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lame1337.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "laperfumista.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45077,7 +44881,6 @@
{ "name": "u5.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uhasseltctf.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "un.fo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "unitedstreamers.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "unixfox.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "upupming.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uradisam.rs", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45136,7 +44939,6 @@
{ "name": "whateveraspidercan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "whatismycountry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "workinginsync.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wpcanban.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wvv-8522.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "www-86499.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "xcompany.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -45419,7 +45221,6 @@
{ "name": "tastic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "telekothonbd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tellusaboutus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tennispensacola.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "teto.nu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thehouseofgod.org.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thenowheremen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46059,7 +45860,6 @@
{ "name": "iren.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "isabelaflores.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ishet.al", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ispfontela.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "issa.org.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "isthedoorlocked.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ivre.rocks", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46149,7 +45949,6 @@
{ "name": "meintragebaby.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "melissaauclaire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "metro-lawn-care.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "michaeliscorp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "michaelpelletterie.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "michaelschmidt.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mikehilldesign.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46328,7 +46127,6 @@
{ "name": "shopalike.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shopalike.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shopalike.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "shybynature.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sictame-tigf.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "silent-clean.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "simonshine.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46352,7 +46150,6 @@
{ "name": "stellarguard.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stickertuningfetzt.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stolin.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "straightedgebarbers.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "strommenhome.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "studioproapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "subsistence.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46481,7 +46278,6 @@
{ "name": "778da.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "826468.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "826498.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "9vies.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "a632079.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "abitur97ag.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "accord-application.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46525,7 +46321,6 @@
{ "name": "aprikaner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aproposcomputing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arise19.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "arnsmedia.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arswb.men", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arts.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asianbet77.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -46768,7 +46563,6 @@
{ "name": "gigseekr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "girlz.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "giveaways.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "globalipaction.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "goand.run", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "goatbot.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gowithflo.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47402,7 +47196,6 @@
{ "name": "cropdiagnosis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "crowdwis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "crys.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "csbuilder.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "csd-sevnica.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "culturerain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "curtislinville.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47707,7 +47500,6 @@
{ "name": "londongallery.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lost.report", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lowerpricefinder.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "loxal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "loxal.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ludovic-muller.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "luera1959.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47753,7 +47545,6 @@
{ "name": "miku.party", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mingkyaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "miniglueck.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "misol.kr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mjt.me.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mkg-chirurgie-bruchsal.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mkg-palais-hanau.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47776,7 +47567,6 @@
{ "name": "mozgb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mpa-pro.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mtasa.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "muctool.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "musicompare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "muzhijy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "my-stuff-online.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47958,7 +47748,6 @@
{ "name": "se-theories.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "securecomms.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "securitypuppy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sedlakovalegal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "selea.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "selfoutlet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "seolaba.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -47967,7 +47756,6 @@
{ "name": "setsailanddive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shift.ooo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shopadvies.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "showpassword.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "siciliapulizie.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sidema.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "silkebeckmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48170,7 +47958,6 @@
{ "name": "aa1718.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aca-creative.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "accesskeycloning.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "acealters.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "achwo.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "acoshift.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "acoshift.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48374,7 +48161,6 @@
{ "name": "elektrotechnik-kaetzel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elhorizontal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elie.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "elstopstelten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eltrox.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "enderszone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "envoyworld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48607,7 +48393,6 @@
{ "name": "manuelahidalgo.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "marcel-veronetzki.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "margo.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mathias.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "matt.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mavobiz.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mavobiz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48676,7 +48461,6 @@
{ "name": "norbertschneider-music.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ntcoss.org.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nubeslayer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nzws.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oakparkexteriorlighting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oakparklandscapelighting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oakparklighting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48840,7 +48624,6 @@
{ "name": "somersetwellbeing.nhs.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sonavankova.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "songsmp3.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sportbetuwe.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sporttown.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "spritsail.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ssconn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48883,7 +48666,6 @@
{ "name": "thousandoaksoutdoorlighting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thpay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tiim.technology", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tomarns.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tonnycat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "topservercccam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "topservercccam.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -48972,7 +48754,6 @@
{ "name": "youlovehers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yourbonus.click", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yourfuturestrategy.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "yourname.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zeal-interior.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zealworks.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zebibyte.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -49135,7 +48916,6 @@
{ "name": "ibwc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "icake.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ignitedlocal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "incigma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "incompliance.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "inevitavelbrasil.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "infosimmo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -49563,7 +49343,6 @@
{ "name": "distillery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "diytechguides.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dmcglobaltravel.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dmitry.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dnlr.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dnscrypt.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "doceamoraviverbem.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -49906,7 +49685,6 @@
{ "name": "oldprop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oliveoilschool.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "omori.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "oneheartbali.church", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oneiroi.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oneprediction.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "onice.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -49989,7 +49767,6 @@
{ "name": "sandtonescorts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sandtonplumber24-7.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sandtonvipcompanions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sanitrak.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sasioglu.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schemingmind.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schwalliers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -50243,7 +50020,6 @@
{ "name": "aoaprograms.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "autoschadeschreuder.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "axtudo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "banes.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "behindthethrills.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "benjaminkopelke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "benz-hikaku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -50419,7 +50195,6 @@
{ "name": "nextcloud.nerdpol.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nhgteam.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ninverse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "noofficewalls.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nootronerd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nosqlzoo.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nutpanda.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -50845,7 +50620,6 @@
{ "name": "davidforward.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "davidmn.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dawgs.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dbjc.duckdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ddy.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dentistesdarveauetrioux.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "der-fliesenzauberer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51142,7 +50916,6 @@
{ "name": "jej.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jej.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jelmoli-shop.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jeroensangers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jerryweb.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jf-fotos.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jitlab.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51178,7 +50951,6 @@
{ "name": "komenamanda.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kotobox.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kucukayvaz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "labspack.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lanahallen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "landlordy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "landscape-photography.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51427,7 +51199,6 @@
{ "name": "promo-brille.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "propertyinside.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "protech.ge", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "protectr.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "prowise.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "psici.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "psicologajanainapresotto.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51436,7 +51207,6 @@
{ "name": "ptfiber.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ptfiber.spb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pty.gg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "pubmire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "puggan.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "purplegrapegames.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pusichatka.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51651,7 +51421,6 @@
{ "name": "thehoryzon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thelatedcult.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thepoplarswines.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "thepurem.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thereisnocloud.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "theworldexchange.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "theworldexchange.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51714,7 +51483,6 @@
{ "name": "usweme.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "utterberry.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uw1008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "uxp-it.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uziregister.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "valcardiesel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "valentin.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51985,7 +51753,6 @@
{ "name": "flavo.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "floorballpoint.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fnanen.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "follower98.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "forex-plus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "forextickler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "franzknoll.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -51994,7 +51761,6 @@
{ "name": "futcre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "galeria42.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "game4less.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "gamequest.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ganyouxuan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gazete.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "geniush.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52235,7 +52001,6 @@
{ "name": "plutiedev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pmheart.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "politicachubut.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "polska-robota.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "potzwonen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "poundwholesale.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "powerplaywashers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52371,7 +52136,6 @@
{ "name": "thelearningenterprise.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "themobilestuffs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "theproductpoet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "thepythianseed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "therepublicofliverpool.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "therugswarehouse.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thesslstore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52462,7 +52226,6 @@
{ "name": "ytx588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yugasun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yukari.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "yutaron.tokyo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zacchaeus.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zakariya.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zapmaster14.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -52521,7 +52284,6 @@
{ "name": "brzy-svoji.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bst.gg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bsuru.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "burningmarket.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "businesswebadmin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bytemix.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "c5h8no4na.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53069,7 +52831,6 @@
{ "name": "cypad.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d-parts.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dabasstacija.lv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "danholloway.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "danielsfirm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "darioclip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "darkrisks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53167,7 +52928,6 @@
{ "name": "gagliarducci.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "galabau-maurmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "galacg.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "gehas-wein-shop.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gemgroups.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "general-insurance.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "germancraft.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53272,7 +53032,6 @@
{ "name": "kalakarclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kan3.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kat.marketing", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "katcleaning.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "katex.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ketotadka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kettlebellkrusher.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -53634,7 +53393,6 @@
{ "name": "sellorbuy.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "semdynamics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sennase.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "seohouston.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sexymassageoil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sfaparish.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sgs-systems.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54061,7 +53819,6 @@
{ "name": "construction-colleges.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "costellofc.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "covaci.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "craazzyman21.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "crazy-cat.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "credittoken.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "criptolog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54153,7 +53910,6 @@
{ "name": "eveonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "evtasima.name.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "examedge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "exnovin.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "exordiumconcepts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "experise.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "expertofficefitouts.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54473,7 +54229,6 @@
{ "name": "ontservice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "openmirrors.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "openroademail.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "opure.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oriondynamic.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "orocojuco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "otmo7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -54686,7 +54441,6 @@
{ "name": "thepharm.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "therapiemi.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thermorecetas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "thestyleforme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thetotalemaildelivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "theverybusyoffice.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thewayofthedojo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55372,7 +55126,6 @@
{ "name": "citizenslasvegas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "civicforum.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cleaningbyrosie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "coffeetime.fun", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cognicom-gaming.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "communitymanagertorrejon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "conpath.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55739,7 +55492,6 @@
{ "name": "weingaertner-it.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wem.hr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wetrepublic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wette.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "whattominingrigrentals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "whitebirdclinic.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "whiteknightsafelockinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -55929,7 +55681,6 @@
{ "name": "casecoverkeygi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "caseycapitalpartners.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "casino-online.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "casinovergleich.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "catalyconv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cellebrite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "celltesequ.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56328,7 +56079,6 @@
{ "name": "lbmblaasmuziek.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leankit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leeaaronsrealestate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "legaldesk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lektier.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "letranif.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "levineteamestates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56581,7 +56331,6 @@
{ "name": "scholarshipplatform.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "scholarshipsplatform.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schuelerzeitung-ideenlos.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "scorerealtygroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "scottlanderkingman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "screefox.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "screen-fox.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56605,7 +56354,6 @@
{ "name": "sgs.systems", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shadowping.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shampoo63.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "shattered-souls.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shippercenter.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "showersnet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shtaketniki.kz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56727,7 +56475,6 @@
{ "name": "themeridianway.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "themiddle.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "theninenine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "thesnellvilledentist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thestandingroomrestaurant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thetinylife.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thevalueofarchitecture.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -56822,7 +56569,6 @@
{ "name": "wba.or.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wcrca.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wcsi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "web-thinker.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webnetforce.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webstart.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wedg.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57013,7 +56759,6 @@
{ "name": "auenhof-agrar.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "auntmia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aurnik.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ausrecord.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "australianattractions.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "autobarn.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "autokeyreplacementsanantonio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57191,7 +56936,6 @@
{ "name": "corscanplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "couplay.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "coworking-luzern.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "cpap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cpgarmor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cpsq.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "crackers4cheese.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57505,7 +57249,6 @@
{ "name": "hearinghelpexpress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hebamme-cranio.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hellerarko.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hellerup.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hemtest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hennies.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "heromuster.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -57561,7 +57304,6 @@
{ "name": "immarypoppinsyall.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "immersa.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "impera.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "incco.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "incore.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "inessoftsec.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "inethost.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58242,7 +57984,6 @@
{ "name": "sproutways.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "spt.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sqsd.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "srichan.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ssl24.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stadtkapelle-oehringen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stainternational.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58541,7 +58282,6 @@
{ "name": "233now.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3dgep.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "52hentai.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "adventuredrives.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "affarsnatverk.nu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "afterdwi.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "agenceactiv.immo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -58569,7 +58309,6 @@
{ "name": "bijancompany.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "blacktown.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "blakezone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "blendstudios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bloody.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bluebahari.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bmk-kramsach.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59011,7 +58750,6 @@
{ "name": "bestdoc.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "besti.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bestpractice.domains", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "betonmarkets.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bgp.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bibica.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59324,7 +59062,6 @@
{ "name": "lampsh.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lancelhoff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lancemanion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "larotayogaming.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "latinmusicrecords.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leaf-consulting.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lehmitz-weinstuben.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59835,7 +59572,6 @@
{ "name": "9950p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "9box.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "a-care.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "abaev.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "abasalehngo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "abhibhat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "abitidasposa.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -59901,7 +59637,6 @@
{ "name": "arunjoshua.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aryabusines.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ashessin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "asirigbakaute.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "askeustache.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asksatya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "astroalloys.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60189,13 +59924,11 @@
{ "name": "estefan.dyndns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "estonia.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eternalflame.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ethanchin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eurorecambios24.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "exadime.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "explorebigideas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "expmind.co.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "express1040.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "eyejobs.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "facai666.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "facai888.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "facarospauls.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60244,7 +59977,6 @@
{ "name": "furries-united.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "furry.bot", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "g3circuit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "gabrielkoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gadget-tips.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gailbartist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gallmeyer-consulting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60381,7 +60113,6 @@
{ "name": "j5lx.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "j5lx.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "j5lx.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jackwozny.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jackyliao.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jacobs-implantate.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jarrah-alsilawi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -60405,7 +60136,6 @@
{ "name": "jwz.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jzgj088.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kamen-master.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kayo.digital", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "keepitsecure24.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kennedyinsurancesolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kevindienst.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61054,7 +60784,6 @@
{ "name": "whocalledme.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wikilivres.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "winfographics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "withdewhua.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wmcns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wolfcrow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "woshiluo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61339,7 +61068,6 @@
{ "name": "miamaibaum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mifibra.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mindsetatx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "misakatang.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mistaken.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mjpak.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "modafinil.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61736,7 +61464,6 @@
{ "name": "securenets.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sektor41.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sentencing.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "seolotsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "seowordpress.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "serverping.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sextfriend.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61889,11 +61616,6 @@
{ "name": "blogit.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "briograce.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "buck-hydro.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "burakogun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "burakogun.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "burakogun.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "burakogun.net.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "burakogun.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "burzum.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cabanactf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "camping-le-pasquier.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61934,13 +61656,11 @@
{ "name": "dickord.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dictionarypro.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "directoriostelefonicos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "divineglowinghealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "donetsk24.su", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dotesports.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dpsg-hohenlinden.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "drros.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dubstep.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "e-webos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eallion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eblog.ink", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "educacionvirtual.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -61955,7 +61675,6 @@
{ "name": "excaliburtitle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "excess-baggage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eyemagic.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "facingbipolar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fantasysportsnews.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "farleybrass.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fb-feed.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62086,7 +61805,6 @@
{ "name": "nextcloud-miyamoto.spdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nilgirispice.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nonx.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nook.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "northebridge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "novengi.mu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "noxx.global", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62151,14 +61869,12 @@
{ "name": "shavit.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shdsub.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shiny.gift", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "shippinglabel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shopdongho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sietejefes.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "simulping.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sirihouse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "skillside.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "skinandglamour.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "skinwhiteningoptions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "skorpil.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "smaltimentoamianto.campania.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "smartphone-pliable.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62171,7 +61887,6 @@
{ "name": "spanch.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stgabrielavondalepa.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stoerevrouwensporten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "stretchmarkdestroyer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "studio-n.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "suchem.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "superenduro.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62202,7 +61917,6 @@
{ "name": "transferbags.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "trinitycorporateservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "troxal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "truecosmeticbeauty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "trustees.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tryplo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tryplo.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62406,7 +62120,6 @@
{ "name": "kt3i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kys.host", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "laceysfarm.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "lagranmoon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leaseourthings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "legoutcheznous.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "legyenkianegykereked.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62415,7 +62128,6 @@
{ "name": "lepourquoiducomment.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "les-explos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "letsprint3d.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "liaronce.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lieren4x4.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "life29.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lifewithdyna.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62655,7 +62367,6 @@
{ "name": "barcelonapremiummini.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "belle-lingerie.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "beratungswelt.dvag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bestinsider.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bgbaby.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bintangpiaggi.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "blackhawktreeinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62673,7 +62384,6 @@
{ "name": "cannaffiliate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "carlocksmithcarrollton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "carplus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "casaamor.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "castellannenberg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "castlemail.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cchen.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62738,7 +62448,6 @@
{ "name": "esthernariyoshi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "etwalldentalpractice.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "everlastingoak.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "expertnews.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "expressglobal.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fabrykowski.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "factorit.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -62873,7 +62582,6 @@
{ "name": "nextiva.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nextos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nicholasruddick.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nootroic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "noteboat.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nsoft.nu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "octomist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -63087,7 +62795,6 @@
{ "name": "cycledownunder.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cynicaloptimist.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daddyfinger.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dan-nixon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daniel-milnes.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daniel.domains", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daop.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -63381,7 +63088,6 @@
{ "name": "wangqr.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wanmen.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wardslager.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "weblegion.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webmaster-infographiste-lyon.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "websa.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weidehelp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -63600,7 +63306,6 @@
{ "name": "ibericartechnik.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "icci.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "icelandicasian.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "icnc.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "idbs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "impactingsports.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "infraredradiant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -63666,7 +63371,6 @@
{ "name": "maikoloc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "martinbaileyphotography.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mcblain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "medeurope.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "media101.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "medicine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "medicsz.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -63857,7 +63561,6 @@
{ "name": "yuvaindia.co.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zeiw.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zhl123.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "zinglix.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zocial.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zoptiks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0xff.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64140,7 +63843,6 @@
{ "name": "ql.tc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qoacher.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qqiao.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "qualitylogoproducts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "raeder-test.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "razvodguru.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "reactivelambda.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64209,7 +63911,6 @@
{ "name": "vifsoft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "viku.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "washoedems.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "watchcow.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wb2288.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webandsun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "well-around-the-world.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64313,7 +64014,6 @@
{ "name": "deconsolas.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deltaservers.blog.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "devinite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dewolden.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "die-besten-bewertungen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "digaxtest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "digitec.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64366,7 +64066,6 @@
{ "name": "heraldik-wiki.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hiczp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "highkick.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hoogeveen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "host97.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "houseandgarden.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "htmanager.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64550,7 +64249,6 @@
{ "name": "vuldb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vvild.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wasteman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wettbonus.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "whitevpn.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wigmore-hall.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wijwillendit.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64610,7 +64308,6 @@
{ "name": "bakerviewdentalcentre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "banka.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "barcelonabagels.cat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bavarianhiker.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "benstevinson.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bestbrokerindia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "blobemoji.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64821,7 +64518,6 @@
{ "name": "netz0.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nostalgimidi.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nudes.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nwmd.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oceanofapk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oneminutetomindfulness.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "opture.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64902,7 +64598,6 @@
{ "name": "ssmic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stadtundbaum.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "startstunter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "statistician-online.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stoicatedy.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sudya-dredd.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "svenskapsalmer.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -64926,7 +64621,6 @@
{ "name": "topmmogames.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "totalsport-bg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "travelinghacker.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tsunami.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tyroremotes.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "u17go.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ukuchordnamer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65039,7 +64733,6 @@
{ "name": "bogosity.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bongbabyhouse.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bourseauxservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "braithwaites.ltd", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "breard.tf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "brisignshop.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "brouskat.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65076,7 +64769,6 @@
{ "name": "danieljball.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dansaunders.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "davidzeegers.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dawgtag.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dazzit.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deavel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deavel.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65165,7 +64857,6 @@
{ "name": "intoparking.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "iparkki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ipslsig.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ironpony.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "itcbuerobedarf.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "itconsulting-wolfinger.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "itdo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65486,7 +65177,6 @@
{ "name": "agilicus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ai00.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aisin.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ajgroup-me.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "akoofs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alarmat.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alexjett.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65497,7 +65187,6 @@
{ "name": "alltherooms.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alov.blog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alphadefense.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "alquds.edu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "altea-pep18.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alteiria.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alteria.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65527,7 +65216,6 @@
{ "name": "apunkt.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aquaterm72.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arctic.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ardia.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arena-lemgo.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arjanenthijs.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "artofhomeorganizing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65556,7 +65244,6 @@
{ "name": "beautybh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "beautycarepack.com.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "beboldpr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "beecare.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bellware.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "belmarresort.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "benefits.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65567,7 +65254,6 @@
{ "name": "berlin-cuisine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "betor.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bevedo.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bewished.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "beyerm.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "beyondordinarylife.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bfkcloud.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65780,7 +65466,6 @@
{ "name": "elitsa.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ell888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "emigratieplanner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "emiliobonelli.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "enderle.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "energy-healings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "enterclaim.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -65986,14 +65671,12 @@
{ "name": "ks5000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks88.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ksoc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kumbayops.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kumpulannamabayi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kunvn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kupferschmids.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "laboratoriodemarketingb3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "labsys.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "laportedufutur.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "lat46.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lauralinde.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lavinaec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lazisbaiturrahman.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66056,7 +65739,6 @@
{ "name": "mcpebox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "medbreaker-friends.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "medpost.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "medvedkovo-hovrino.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "megaxhost.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "meinheizstrom.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "melosyne.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66116,7 +65798,6 @@
{ "name": "neuropatia-periferica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nextcloud.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nextcloud.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nguyenhongson.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nhakhoangocanh.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nicogrosser.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nicolas-simond.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66144,7 +65825,6 @@
{ "name": "offensity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oku-nara.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "okwu.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "oldnoob.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "on2it.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oncalltech.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "onelinkmmp.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66280,7 +65960,6 @@
{ "name": "redheadfuck.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "remmik.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "renefloresphotography.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "retzer.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "revhost-consulting.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "revolta-hosting.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "reyesfernando.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66317,7 +65996,6 @@
{ "name": "saz9001.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sbcargo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "scaffoldhiremidrand.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sccwf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schlick.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schuetzen-ehrenbreitstein.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schultz.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66392,7 +66070,6 @@
{ "name": "soundclick.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sounds-familiar.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "soyvigilante.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "spaziofamiglie.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "splash.solar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sportsmole.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "spurghi.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66639,7 +66316,6 @@
{ "name": "youdamom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yourcleaningcompany.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yoyoost.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8022.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zbib.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zenidees.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zhaostephen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66779,7 +66455,6 @@
{ "name": "gobytedesign.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "goldsteinlawgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "grabatt.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "grandworldnghiduong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hapimiennam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "happychungus.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "harms.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66845,7 +66520,6 @@
{ "name": "lokalna.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lonwan.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lunite.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "luosonghao.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lycetre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "magicroom.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "malenaamatomd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66863,7 +66537,6 @@
{ "name": "mindofmedia.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mistine.com.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mistine.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mobasuite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mobydog.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "moneylance.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mongolie.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -66880,7 +66553,6 @@
{ "name": "nivelul2.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "noiglosujemy.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "noiglosujemy.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "noobsunited.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "novema.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "noxx.solutions", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "olitham.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -67451,7 +67123,6 @@
{ "name": "k819.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kaioken.bar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kandofu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kevinschreuder.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kiczela.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kjfaudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "klev.su", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -67507,7 +67178,6 @@
{ "name": "mhurologytriad.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "midi-ctes.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mikemooresales.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "miniwolke.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "minmaxgame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mistinecn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mm4447761.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -67653,7 +67323,6 @@
{ "name": "vip380.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "visitorguard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vivaio.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "voordeuren-opmaat.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vwh-kunden.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wancai666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wancai880.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68204,7 +67873,6 @@
{ "name": "honigdealer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hrbrt.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hsiwen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hydrosnow.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hyper.lol", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hytzongxuan.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "i-hoz.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68242,7 +67910,6 @@
{ "name": "j9728.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jaduniv.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jedayoshi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jieac.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jimeaton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jj5197.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jj9297.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68373,7 +68040,6 @@
{ "name": "p9728.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "paratlantalalkozas.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "partin.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "passionate.org.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pentatec.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "permisecole.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "persefonne.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68451,7 +68117,6 @@
{ "name": "sartoria.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sbl001.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "scanmailx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "schmuggelware.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "schreinerei-schweikl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "scqpw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sculpturos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68721,8 +68386,6 @@
{ "name": "ambulari.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "apachezone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "argecord.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "arisechurch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ariseconference.org.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arterydb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arthritisrheumaticdiseases.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "artikelpendidikan.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68866,7 +68529,6 @@
{ "name": "frederikshavn.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "freds4buildings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fromanolderwoman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "galaxieblog.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gamster.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "garagesmart.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gaspapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -68885,11 +68547,9 @@
{ "name": "heartcomms.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "helijobs.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hghanbarimd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hidupnomad.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "homeeducator.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hostiberi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hostmywebsite.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hsts-webapp.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "htb.click", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "iberiserver.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "idysse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -69414,7 +69074,6 @@
{ "name": "tbpchan.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tealdotsinanorangeworld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "teamdog.pet", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "techcentral.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "teextee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tenniscourtsjoburg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "teramind.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70043,7 +69702,6 @@
{ "name": "j6957.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "j6957.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jbridal.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jcontspoord.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jdmgarage.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jj6729.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jj6729.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70225,11 +69883,9 @@
{ "name": "serrande.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "serviceair.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "setesat.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sexyfotosvandep.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shelbymunsch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shibbydex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "siikaflix.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sjamaan.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "skolnilogin.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "skolniweby.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sldlcdn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70317,7 +69973,6 @@
{ "name": "werkenbijsherpa.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wervingenselectieamsterdam.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wikibuy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "winterparkphotography.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "workingon.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wowin58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wowin88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70371,7 +70026,6 @@
{ "name": "yamei9911.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yamei9922.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yappy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ybos.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yesod.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yjst.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ym181.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70532,7 +70186,6 @@
{ "name": "dd6957.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deal30.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "debierhandel.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dedoho.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deeplink-medical.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "defibrillateur.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "delpark.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70642,13 +70295,11 @@
{ "name": "karinwerner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kashadriskill.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kevinquintero.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "khouryalexandre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kintana.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kirakirasoft.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kiumie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "knoxvilleimplants.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "koffie-enzo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kukoon.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kulpakko.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kunstkieken.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lasabina.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70718,7 +70369,6 @@
{ "name": "philia.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "phonefleet.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "phpmynewsletter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "pi3kum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pigliadesigns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pkvitality.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "plugins-telechargement.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70900,7 +70550,6 @@
{ "name": "acceptancerecoverycenter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "activephoto.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "adrian2023.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "advancedpestspecialists.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ag600.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ag800.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ag978.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70961,7 +70610,6 @@
{ "name": "contabilidadebrooklin.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "contactaffix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "correctemails.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "coteetciel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "creatic.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "crebita.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "crmenrich.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -70996,7 +70644,6 @@
{ "name": "emailtemporal.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "emcentrix-com-site-mvc.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "emotionalmente.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "encryptlist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "energybank.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "esalesclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "escobarservice7000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71034,7 +70681,6 @@
{ "name": "giaoxudongtri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "glexia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gobiz.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "goldenhostmyanmar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gordyf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "habbstars.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hallaminternet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71058,7 +70704,6 @@
{ "name": "idealize.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ilc666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ime-a-tolerancia-eredmenye.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "imedia.com.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "imediamyanmar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "imediasingapore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "immivest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71129,7 +70774,6 @@
{ "name": "k8dc17.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "k8md01.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "k8md12.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kebhanamyanmar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kf-59.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kf0000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kf388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71220,7 +70864,6 @@
{ "name": "noop.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "notablepeeps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "o98.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "okmyanmartravels.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ommcitalflex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "onetwosweetatelier.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "orchardnh.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71467,7 +71110,6 @@
{ "name": "deluxecccam.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dennishzg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "derco.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "digihoc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "districtcapital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dockstarter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dor-tak.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71481,7 +71123,6 @@
{ "name": "drivermototaxi.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dryudha.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "duggtec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "earn99.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ecpic.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "egold-keeper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ekimma.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71506,7 +71147,6 @@
{ "name": "frosty.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fulibyg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "funyirotraktor.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "fuvi-clan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "getonyx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "glammybabes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "goaskrose.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71550,7 +71190,6 @@
{ "name": "jaja.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "janome.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "javaweb.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jcsdevelopment.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jellysquid.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jenniferlucia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jordanhamilton.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71611,7 +71250,6 @@
{ "name": "model.earth", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "modul8infinity.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mondonet.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mousemade.art", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mrsheep.win", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "muratatifsayar.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "murmashi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -71675,7 +71313,6 @@
{ "name": "smaltimento.salerno.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "smartpatika.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "smartvita.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "smilesondemand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "smtvonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "snapintegrations.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "softwaresen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72298,7 +71935,6 @@
{ "name": "datatruckers.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "decipe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deepblue-web.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "deltav.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "diegogonzalez.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dolcesalatoweb.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "doubleglazingmasters.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72330,7 +71966,6 @@
{ "name": "ender.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "enter.eco", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ergonova.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "erodvd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "est-keyman.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "etaxigraz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eternalparking.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72486,7 +72121,6 @@
{ "name": "nanshy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "naturalbijou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "navroopsahdev.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nerofox.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "netdiode.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "netdiode.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "netdiode.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72869,35 +72503,8 @@
{ "name": "8230d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8809ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8830ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "886666z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "88btt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "918awx.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "918bio.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "918db.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "918ddk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "918hs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "918ui.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "91milk.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "999zlong.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72940,7 +72547,6 @@
{ "name": "athens-limousines.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "autocadperfmon.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aviasalon.spb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bandeiraimoveisitu.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bankapp.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bazqux.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -72959,12 +72565,9 @@
{ "name": "boxtreeclinic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "brickadia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "btopc.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "btt285.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "btt6262a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "btt9292a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "buysoft.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "byfeldt.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "c886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cadastroloteamento.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "calendriergn.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "careerdirectionsltd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73030,7 +72633,6 @@
{ "name": "dg68.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "digpath.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "distributore.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "djcatholic.or.kr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "doesinfotech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "donghochinhhang.store", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dragontours.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73066,7 +72668,6 @@
{ "name": "gku-winterling.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "golnet.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "growth-rocket.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "gunshyassassin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "guzlewski.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hbweb.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "heijmans.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73103,9 +72704,7 @@
{ "name": "jeroendev.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jigsawplanet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "josegdigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "k886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kanis.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "karimunsejahtera.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kartikmohta.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kashbet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kb4393.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73174,7 +72773,6 @@
{ "name": "mcstaralliance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mcwrapper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mdconnect.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mens-health.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "meodihoang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mhcdesignstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "micluz.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73194,7 +72792,6 @@
{ "name": "mrnathanpowell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mysasiedzi.bialystok.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myunicornshops.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nclf.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "negativeentropy.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "negocios-imatore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73216,7 +72813,6 @@
{ "name": "outstandingpromotion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pasarkoin.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "paulmarc.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "pcgho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pedago.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pediatersucha.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "performio.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73235,7 +72831,6 @@
{ "name": "pro-clean.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "profession.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pvpheroes.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "q886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qttransformation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quantumcrypto.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "raydolap.web.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73253,7 +72848,6 @@
{ "name": "rt1314.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "rupostel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ryanfamily.net.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "s886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "safarimasaimara.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "saletzki.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "samandej.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73312,7 +72906,6 @@
{ "name": "tuzagtcs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "twoguyswhoblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tytocare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "u886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uboratz.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uix.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ultrasdesign.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73363,18 +72956,9 @@
{ "name": "xtremecoatingtechnologies.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "xyloefarmoges.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y0bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y1992.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y2212.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y2232.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y2242.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y2252.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y2272.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y2bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y3343.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y3353.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y3bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y4bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y5545.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y5bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y6bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y7bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73664,12 +73248,9 @@
{ "name": "bryanfalchuk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "btshenqi.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "btsou.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "budgetinsurance.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "buhex.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "burbankdental.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "buzzpop.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "calbertsen.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "californialemonlaw.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "canavilage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "capillary.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cargoguard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73722,7 +73303,6 @@
{ "name": "elementarewatson.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elitedangerous.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "emergesydney.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "encd.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ep-cortex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "epilepsiyle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "es-tools.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73798,7 +73378,6 @@
{ "name": "ishimen.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "j3349.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jackingsolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "jarv.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "javiscoffee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jerome.to", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jewelers.expert", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -73837,7 +73416,6 @@
{ "name": "kb8892.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kb9494.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kb957.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kidonng.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kieskundig.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kimkhisaigon.com.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kinderopvangthuis.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74069,13 +73647,8 @@
{ "name": "z8109.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "z8132.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "z8182.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "z8851.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8905.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8906.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "z8922.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8925.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8929.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zaffke.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zakonu.net.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zd0808.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74186,11 +73759,7 @@
{ "name": "0123456789365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0138365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0139365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "0165365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "0175365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "0185365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "018663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "0195365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "038456.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "038663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0393ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74198,11 +73767,6 @@
{ "name": "0393hh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0393ii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "03region.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "040552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "041552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "042552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "046552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "049552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "050.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "050a1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "050a2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74210,8 +73774,6 @@
{ "name": "050a4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "050a5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "050a6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "051552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "054552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "065l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0681a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0681b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74237,15 +73799,11 @@
{ "name": "0681x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0681y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0681z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "068552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "068663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "071552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0737399.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "078663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "083832.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "084552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "085851.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1004233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "100pudov.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "100visits.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "107996.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74257,72 +73815,16 @@
{ "name": "1199bet.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "11b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "1220323.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365vip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234365z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "12344048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "12345678365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "123456789365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1234a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "123seo.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "12n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "131365ll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "131365qq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "142552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "146552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "146773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "148663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1517598.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1517668.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1517669.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1517883.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1517886.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1517889.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "154552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "16-qw.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "16qw.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "16region.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1831365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1832365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1834365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "1837365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "19990kk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "1baks.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "1cprosto.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74359,18 +73861,11 @@
{ "name": "2033y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "2033z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "20n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "2155hg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "22245j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "22256j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "22267j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "22289j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "222b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "228668.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "2288bet.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "22b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "23454048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "241552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "242552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "246773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "2484811.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848168.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74380,7 +73875,6 @@
{ "name": "2484855.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "24848918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848a.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848b.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848c.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74394,7 +73888,6 @@
{ "name": "24848oo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848pp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848qq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "24848rr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848ss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848tt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "24848uu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74433,7 +73926,6 @@
{ "name": "2evip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "2kvn.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "2lovebirdsblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "3004233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3006789.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "30n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "317811111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74477,7 +73969,6 @@
{ "name": "3178ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3178xx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3178yy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "3265623.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "333b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3344985.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "335a.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74485,7 +73976,6 @@
{ "name": "33n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "348663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "351365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "3539783.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "360365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "36588801.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365888012.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74512,18 +74002,6 @@
{ "name": "3659867.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3659980.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eib.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eif.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eiq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eiv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365eiw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365nnn.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365nnnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365r.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365rr.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365xxx.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365y0.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365y00.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365y1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74542,7 +74020,6 @@
{ "name": "365y99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365ypw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365zg.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "365zzz.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "37987.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "380111000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "380111111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74554,7 +74031,6 @@
{ "name": "380111777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "380111888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3809955.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "382228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3837b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3837c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3837d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74580,7 +74056,6 @@
{ "name": "3837y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3837z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "38irkutsk.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "391231.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "392365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3957b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3957c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74632,7 +74107,6 @@
{ "name": "3w-solutions.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4001365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4002365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4004233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4025360.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4025361.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4025362.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74708,15 +74182,6 @@
{ "name": "40n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "416365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "418663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233330.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233331.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233332.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233334.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233335.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233336.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233337.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233338.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4233339.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "426773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4345.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "436773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74729,13 +74194,11 @@
{ "name": "458663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "476773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "486773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "497552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "498663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4best.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4dillusion.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4evip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "4tgw34.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5004233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "500wordessay.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5017503.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5055990.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74773,7 +74236,6 @@
{ "name": "52002w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "52002x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "52002y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "520xpjxpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "55554048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "555b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5566bet.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74781,55 +74243,11 @@
{ "name": "55ks.app", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "55n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "56784048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5898657.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "59759vip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "59759z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981168.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981611.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981622.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981644.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981655.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981667.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981668.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981669.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981677.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981699.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981800.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981811.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981822.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981833.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5981844.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981855.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981866.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981877.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981899.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5981h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5981m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "59859h.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "59859j.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "59859k.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74839,18 +74257,10 @@
{ "name": "598877.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "59rus.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5ilg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6004233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "60n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "611121.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "611125.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "611165.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "611195.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "616675.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "635-488.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "635-588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "635-788.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "635-888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "635-988.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6365ah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6365am.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6365bj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74916,7 +74326,6 @@
{ "name": "6396hhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6396iii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6396jjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "657843.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "66321aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "66321bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "66321cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74954,8 +74363,6 @@
{ "name": "663365g.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "663365h.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "663365i.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "663365j.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "663365k.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "664048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "666111bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "666222bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74964,7 +74371,6 @@
{ "name": "66664048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "666777bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "666888bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "66689j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6669255.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "666999bet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "666b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -74985,35 +74391,16 @@
{ "name": "678678365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "67894048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "67y7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68522.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68522c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68522k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68522m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68522s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68622.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68622a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68622b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6863070.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "68722.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "7004233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "70365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "70n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "71365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "733575.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "73365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "74365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "75365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755204.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "755243.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755245.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755246.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755249.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755274.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755284.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "755294.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "755a.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "76365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "76678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "769k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "77018aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "77018bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75021,7 +74408,6 @@
{ "name": "77018dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "77018ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "77774048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "77789j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "7788bet.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "77b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "78365aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75037,9 +74423,6 @@
{ "name": "7888821.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "78904048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "789451.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "789453.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "789455.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "791188.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "792ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "793ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "80365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75094,8 +74477,6 @@
{ "name": "8278ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8278y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8278yy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8286hg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8289hg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "83365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "842365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "846773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75104,35 +74485,6 @@
{ "name": "8521.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8602012.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8602013.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365vip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "861365z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "866300.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "866304.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "866305.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75158,22 +74510,11 @@
{ "name": "878365ll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "878365mm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "878365nn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "878989.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "88740n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8881234j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8882345j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "888234j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8883456j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "888345j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8884567j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "888456j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "888567j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8886789j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "888789j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "88884048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "888b58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "88n13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8914499.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8b8888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8btt.app", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8me.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75208,19 +74549,12 @@
{ "name": "940365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "946773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "96002.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "961705.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "96678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "966ty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "97736.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "97737.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "97738.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "97739.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "9836952.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "988316.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "99123j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "99456j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "9977432.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "99789j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "9988551.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "9988959.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "99994048.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75233,27 +74567,7 @@
{ "name": "a365vip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "a365vip7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "a365vip9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a66.la", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6619.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6621.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6623.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6627.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6631.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "a6632.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6651.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6652.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6657.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6659.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6671.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6672.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6673.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6675.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6682.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6683.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6687.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6691.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6692.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "a6695.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aa4888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aa7666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aadv.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75304,7 +74618,6 @@
{ "name": "aido.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "airwolf.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ajman-realty.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ajs5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "akhabar.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alantica.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alargarlavida.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75391,7 +74704,6 @@
{ "name": "artitbe.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asdyx.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asiasmi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "asjas.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "assemblage.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "assignacii.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "atayia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75428,33 +74740,12 @@
{ "name": "b1111.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b3333.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36510.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b36512.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36513.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36516.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36517.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36518.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36519.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b36520.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b365cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b365ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b365h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b365k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b538.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b58365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b58app.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b58appb58app.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b58appb58appb58app.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5901.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5902.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5903.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5904.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5905.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5906.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5907.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5908.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b5909.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b5910.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b62g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b6710.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b6720.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75478,27 +74769,12 @@
{ "name": "b83ii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b83jj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b83kk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b88aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b88cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b88dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b88ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b89ff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b89gg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b89hh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b960.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b9902.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9904.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9905.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9912.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9951.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9954.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9957.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9961.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9962.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b9967.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9970.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9973.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b9976.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "baby-massage.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "babybuddah.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "backgroundscreenersofamerica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75581,14 +74857,7 @@
{ "name": "bet365q9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet365r8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet365u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet365vip7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet365vip9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet365x0.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet365x1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet365x2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75600,7 +74869,6 @@
{ "name": "bet66669999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet666888.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bet721.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bet916.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "betaa0.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "betaa1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "betaa2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75770,7 +75038,6 @@
{ "name": "caterbing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "catiadecastro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ccblicense.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ccc88.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cctv-supraveghere.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cdlinares.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "celadas.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75862,7 +75129,6 @@
{ "name": "d-consultant.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d-soft.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d88.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daemon-hentai.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dahobo.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -75920,7 +75186,6 @@
{ "name": "devcore.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "devildog.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "devils-co.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dfc52.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dieta-figura.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "differentgirleveryday.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dimitrovi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76023,7 +75288,6 @@
{ "name": "elikers.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elite-design.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elriacdn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "em888.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "emersoncanada.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "endlesswebsite.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "enerypa.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76067,19 +75331,7 @@
{ "name": "eyetooth.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ezik-ido.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "f30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "f51365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9850.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9851.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9852.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9854.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9855.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9880.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9881.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9882.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9883.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9884.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9885.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "factslider.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fairyth.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fake-show.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76232,18 +75484,6 @@
{ "name": "helloafrica.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "herqqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hexsafe.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg2018hg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg61388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg62388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg67388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg67855.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg67877.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg72988.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg97188.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg97288.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg97388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg97588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hg97688.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hiddenimage.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hieisuki.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hightechreviews.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76278,7 +75518,6 @@
{ "name": "hyhy98.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "i30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "i365365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "i36588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "i51365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "i7sas.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "iamwill.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76329,8 +75568,6 @@
{ "name": "ireland.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "irob.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ironraven.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "isae-supaero.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "isae.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "islamabadcourt.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "islamnewss.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ismadgeintrouble.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76391,9 +75628,6 @@
{ "name": "journeyfitness.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jovenescontraelaburrimiento.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jqk918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "js636.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "js637.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "js638.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jsidefox.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "julia-clarete.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "jungyonghwa.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76470,7 +75704,6 @@
{ "name": "kylie-pomada.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kyrylych.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "l30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "l3l365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "la-paco.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "labandadelamente.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lablnet.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76480,9 +75713,6 @@
{ "name": "lasdelgadas.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lavozdelamusicachilena.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lbc-podcast.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ld66999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ld699.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ld6999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "learnhowtoplayguitar.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "learningladderacademy.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lesbianlovers.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76749,7 +75979,6 @@
{ "name": "numericall.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nurmio.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "o30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "o365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "o3c.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oakparkmedicalcentre.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oaktravel.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76762,7 +75991,6 @@
{ "name": "ogo-knigi.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oimexico.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ok118.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ok7779.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "okpo.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oldaine.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "oldbkcom.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76776,7 +76004,6 @@
{ "name": "omretreats.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "one-news.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "onlineautodealered.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "onurerhan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ooo-santal.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "operanavigation.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "opncld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -76982,7 +76209,6 @@
{ "name": "qq6396.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qqq6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qqq63.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "qqq67.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quantumfinance.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qubhockey.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "queirozmiotto.adv.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77318,24 +76544,9 @@
{ "name": "test-school.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "testthis.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "textpages.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo0000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo0088.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo1111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo2222.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tgo3333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tgo4444.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo456.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tgo5555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo58.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo6688.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo7777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo7788.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo789.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo8899.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgo9988.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgoaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgoall.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "tgoasia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thaiboystory.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thaihotmodels.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "thaiportal.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77514,7 +76725,6 @@
{ "name": "uzbekkizlari.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uzbektumblers.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uzhas-uzhasny.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v05666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v1.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v10006.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v10008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77527,21 +76737,12 @@
{ "name": "v55510.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v55520.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v55530.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v55565.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v55569.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v55580.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v55590.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v55593.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v55v55.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v6021.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v6170.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v6350.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v637.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v6506.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v66233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v66255.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v66557.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v66615.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v66618.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v66619.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v66629.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77551,17 +76752,10 @@
{ "name": "v6791.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v700a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v700b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v700w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v76555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v88299.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v88511.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v88559.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v88656.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v88799.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v9285.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v9286.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v9289.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v9812.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v9820.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v9821.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v9823.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77604,7 +76798,6 @@
{ "name": "vlcentre.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vmf365.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vneftekamske.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns168.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vns377a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vns377b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vns377c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77616,26 +76809,13 @@
{ "name": "vns377i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vns377j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vns5656.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns5858.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns68611.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns68655.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns68669.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vns6868.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns6868.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vns68722.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vnsr112233.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "voetbalclubinfo.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "volosnet.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vovkamagazine.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vremyachko.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vrostove.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs106.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs107.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs303.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs313.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs601.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs603.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vs680.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vsaratove.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vsem-privet.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vstavropole.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77643,11 +76823,8 @@
{ "name": "vulgar-teens.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vysokoe.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w000999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w123123.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w234234.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w456456.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w567567.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w66w66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w678678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77655,7 +76832,6 @@
{ "name": "w888022.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w888033.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w888044.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w888066.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w888077.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w888088.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w888099.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77673,8 +76849,6 @@
{ "name": "w97cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "waermekabine.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "waimanu.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wajs1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wajs2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wangshengze.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wapnews.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wash-house.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77704,13 +76878,6 @@
{ "name": "wither.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wizardschool.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wkhs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns68123.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns6852.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns6862.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns68622.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns6865.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns68666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wns6872.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wnsr3970.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wolflambert.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wonderlab.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77738,30 +76905,10 @@
{ "name": "x3828.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x3927.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x58.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x58f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x58p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x58t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x58v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x58z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5901.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5902.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5903.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5904.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5905.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5906.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5907.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5908.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "x5910.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x7008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x7713.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "x7715.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77818,31 +76965,6 @@
{ "name": "xpjai.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "xucha.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "xx6396.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09app.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09app.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y09x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y30365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y3650.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y36500.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -77893,7 +77015,6 @@
{ "name": "y68yn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y68zj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y70101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "y70102.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y70103.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y70104.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "y70105.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78042,19 +77163,7 @@
{ "name": "zsoltbereczki.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zumberak.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zverskij-site.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "zzzz365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "011ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "015ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "017ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "019ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "026ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "031ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "032ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "033ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "036ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "039ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "050ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "052ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "05am8.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "1080.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "1lc11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78073,54 +77182,19 @@
{ "name": "2026j95.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "2226321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "230110.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "2346321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "3336321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365888456.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365securitymg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "365yapan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "369028.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "369038.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3963dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "4566321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5017501.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5017502.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5017504.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5017505.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5017601.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5017602.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5017603.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5017604.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "52062z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5536z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5539z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5556321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5676321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "5981688.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "5goglobal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "611136.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "611151.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632017.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632025.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632026.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632027.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632035.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632040.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632045.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632046.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632047.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6321000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6321007.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6321008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6321009.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6321222.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "6321333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632140.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632142.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632143.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632144.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632147.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632148.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "632174.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "65131a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "65131c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "65131e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78137,15 +77211,10 @@
{ "name": "6810app.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "6830521.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "690918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "690928.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "700wns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "7666321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "7776321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "7g31.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "7win.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "800139.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "8666321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "888xpjxpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "8win.am", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "900823.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "91d75.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78153,7 +77222,6 @@
{ "name": "91d78.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "91d79.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "91d92.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "946321.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "9499060.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "9499066.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "9499068.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78257,8 +77325,6 @@
{ "name": "agaveandpine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "agks02.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "agrodronechile.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "agweili.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "agzlapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aimare-web.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "airmash.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ajaxtime.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78323,7 +77389,6 @@
{ "name": "areacinquentaeum.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arquitet.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "artcenter.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "as398.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asabacortoscaseros.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "asdchieti.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78346,7 +77411,6 @@
{ "name": "b70661.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b70663.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b70664.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "b70665.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b70771.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b70772.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "b70773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78722,7 +77786,6 @@
{ "name": "hamiltonzinelibrary.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hamsystems.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "harabar.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hardcore-bodybuilding.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hbaa.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hbxianghang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "healthcarereviews.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78760,7 +77823,6 @@
{ "name": "inlt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "innovationgarage.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "input.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "inspiringfuture.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "integ.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "integsystem.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "interminsk.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78814,20 +77876,11 @@
{ "name": "kamildrozd.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kapelya.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kareltrans.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "karhoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "karimsaadati.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kariyam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kateysagal.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "katherineswynford.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kavatasygarety.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb22.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb28.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb35.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb38.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb57.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb65.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb68.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb99.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kemerovo.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kemerovo.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kemerovo42.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78860,18 +77913,7 @@
{ "name": "krossakorven.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "krovatka.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks015.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks05.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks06.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks17.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks19.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks35.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks410.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks56.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks82.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks82.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks85.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks96.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks97.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kudinilam.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kulthist.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kupibilet.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -78898,7 +77940,6 @@
{ "name": "lazer.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leak.media", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leeyoungaeph.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "lelux.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lenn-blaschke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leomwilson.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "leon-tec.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79129,14 +78170,6 @@
{ "name": "myresidence.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myreviews.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mystore24.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888-qieji.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888388.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888599.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888677.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888699.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n88890.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888duchang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "n888go.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "n888ok.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nadjabenaissa.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nadoske.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79340,7 +78373,6 @@
{ "name": "plastischechirurgie-linz.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "platter.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pleger.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "pmk.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "poemwall.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pointzip.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pokemonargentina.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79788,7 +78820,6 @@
{ "name": "user-agent.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "uslugi-voronezh.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v-novosibirske.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "v12555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v800a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v800e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "v800f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79860,7 +78891,6 @@
{ "name": "w668899.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w668989.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w66hao.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w6808.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w682w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w6863.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w7355.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79869,11 +78899,8 @@
{ "name": "w8605.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w8609.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w8620.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w8625.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w8626.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w8628.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w8659.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w888055.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w9196.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wa3368.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "waplumber.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79889,7 +78916,6 @@
{ "name": "websiteguider.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "websitemarketers.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webtaxi.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "weili.bet", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weili1111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weili1120.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weili1121.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79897,7 +78923,6 @@
{ "name": "weili1123.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weili1127.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weili1128.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "weili8888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weili88888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weilibet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "weilibet.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79916,7 +78941,6 @@
{ "name": "wiskundeonderzoek.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wispmaeksmusic.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wl.bet", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wl511.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wl970.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wl971.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wl972.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -79980,7 +79004,6 @@
{ "name": "ym063.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yourloan.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yura.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zaimdengi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zaimexpress.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zajm-bez-poruchitelej.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80020,8 +79043,6 @@
{ "name": "zuitaotu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zwergenfreiheit.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zxfiles.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "030ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "035ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "080261.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "1000wordsevents.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "166jk.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80063,7 +79084,6 @@
{ "name": "3970ku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3970ok.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3970win.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "3970yes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3970ylc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3blazing.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "3dprinterwiki.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80377,7 +79397,6 @@
{ "name": "dogandoganay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "domainstaff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dominictaylor.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "domsoty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dondiabolo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dracula.city", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "druzya.store", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80412,7 +79431,6 @@
{ "name": "freelance-webdesigner.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "freewerkt.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "friend.tours", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "from.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fuuko.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "gadgets-cars.com.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "garbott.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80478,8 +79496,6 @@
{ "name": "jw66.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kajabutik.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kamagraerektion.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb82.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kf2000.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kocka.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kocka.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kp0808.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80560,7 +79576,6 @@
{ "name": "p333j.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pagamentosdigitais.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pandagifts.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "panezasociados.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "paradordelgitano.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "parsuv.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "payment.ac.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80581,9 +79596,7 @@
{ "name": "qgr.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "queryquinton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quhyu.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "r85555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ramsaver.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "raphaelschmid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "realgogo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "rebelbranding.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "renyiyou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80651,7 +79664,6 @@
{ "name": "taguette.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "taguette.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "taguette.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "talsam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "teamacadia.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "teamsuccess.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tech-professor.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80722,15 +79734,10 @@
{ "name": "yugodi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yy366.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yzh8.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8892.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8895.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8920.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8921.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zeroanarchy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zerobajt.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zeusec.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zixin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "053ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "0x3bb.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "11335835.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "11445835.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80830,11 +79837,7 @@
{ "name": "cyberforensics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d81818.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d88.cn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d8846.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d8855.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d8877.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d88agent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88f.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "damifph.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "danielkeppler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "decologisticsgh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80919,7 +79922,6 @@
{ "name": "hohlhupen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "homeandliving.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "homs.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "hosting-tools.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "houstonlockout.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hugonote.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "hugonote.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80959,10 +79961,6 @@
{ "name": "kasperstad.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kassarsoap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "katcr.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb15.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb86.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb96.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kf200.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "khojhealth.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kireilign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "klocast.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80972,7 +79970,6 @@
{ "name": "kodomo.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "koflegend.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "krillz.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks36.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks6807.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks6812.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks6815.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -80985,12 +79982,10 @@
{ "name": "ks6829.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks6830.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks6831.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks70.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks8126.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks8892.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks8895.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ks8915.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "ks91.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kuhnerts.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kupu.maori.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "l81818.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81070,7 +80065,6 @@
{ "name": "pepperandpartner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "petwatchersnj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pierreau.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "piloten.digital", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pisf.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "playmytime.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "podcrto.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81117,7 +80111,6 @@
{ "name": "seyrederiz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sh68.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shelfplanner.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "shiftsecurityleft.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shopmacher.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "simpleshirts.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sinalizeweb.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81192,7 +80185,6 @@
{ "name": "virtuewisdomfund.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "voloskova.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "votemate.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "vv1234.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w3n14izy.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w3n14izy.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "w3n14izy.gq", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81232,8 +80224,6 @@
{ "name": "yolocast.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yourpocketbook.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "yspa.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8891.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8926.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zeilenwind.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zenideen.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zeta.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81306,7 +80296,6 @@
{ "name": "bachmatt-baar.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bachweid-baar.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bastide-viens.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "belkys.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "berksarl.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bestcomputersecuritybooks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "beyondboxgifts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81339,8 +80328,6 @@
{ "name": "creamyfox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ctes.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "d8814.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d8899.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88h.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daily-exps.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daimafengzi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "danielkanchev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81364,7 +80351,6 @@
{ "name": "dyneco.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "earthsgoldmine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "easyeditcms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "echtgeld-casino.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "electricfenceboksburg.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "electricfenceroodepoort.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elo-rocket.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81503,7 +80489,6 @@
{ "name": "mjproduction.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "modderday.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "moens.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "nemhaisan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "netface.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "netfolio.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "nix13.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81528,22 +80513,17 @@
{ "name": "planetpowershell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "platform161.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "podlibre.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "portugal.gov.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pousadaestreladapraia.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "precedencemedia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "premiumhosting.com.hr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "previsora.gov.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pricena.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pro-co.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "promocodius.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "propiteer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "psychotherapie1220wien.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pubgbattleworld.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "punishment.institute", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "purple.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qcbrna.qa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "r8100.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "r89999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "readifycloud.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "redeshoprural.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "reputatiedesigners.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81623,7 +80603,6 @@
{ "name": "wildandwonderfulketo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wils.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wintzenterprise.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "wormpress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wuyiwa.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "xc9988.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "xerbo.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81645,12 +80624,8 @@
{ "name": "z-cert.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "z3u5.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "z81818.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8927.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "z8950.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zombmage.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zoohaus.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "04d88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "051ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "111plus.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "168fff.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "281ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81672,10 +80647,8 @@
{ "name": "aigner-club.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aigner-club.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aignerimage.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "akmade.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "albstaedter-kids-cup.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "alibaba-test.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "anonymoushackers.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "antyfake.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "arslonga.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "aucospa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81711,7 +80684,6 @@
{ "name": "carlosmfalves.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "catalogobiblioteca.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cdigitale.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "censys.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "chathund.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "checkrent.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "clinicaarques.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81724,21 +80696,14 @@
{ "name": "cp015.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "creativeideasagency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cryptex.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "cryptoninjas.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ctf-albstadt.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88a.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88b.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88e.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88g.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "daunatotala.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "dbettenleur.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "de-kramers.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "deckersheaven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dermaldistinction.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "descargar-apk.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "desentupidorademais.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "desheng28.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "diananeves.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ds138.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dtinel.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dylnuge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81840,10 +80805,8 @@
{ "name": "jshub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "juezz.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "justeducationonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "karoke.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kartoffel-tobi.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kazmamall.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "kb98.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kcfmradio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kerner.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kettinggeleider.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81866,13 +80829,11 @@
{ "name": "lideradigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lighthouseglobal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lilianejuchli.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "linuxhub.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "locksmithfourways24-7.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "loli.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lonelypawn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "loverngifts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "lz898.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "lzh.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "m6pub.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "machinerysafety101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "magicnethosting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81943,8 +80904,6 @@
{ "name": "qlinksgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quuck.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quuck.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "r8369.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "r8700.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "racevinyl.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "radlina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "raketa.travel", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81971,7 +80930,6 @@
{ "name": "serkanceyhan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sham-group.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "shoppingvrimini.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sksongs.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "skuizy.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sm-kyoushitsu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "smakoszwegrzynka.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -81984,12 +80942,10 @@
{ "name": "sonderfloral.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "songyang.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "spectrum-markets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "spikefishdesigns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "srfloki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "srkb.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "stainhaufen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "studiovictorialimited.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "stuffie.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "summusglobal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "suniru.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sunnistan.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82126,7 +81082,6 @@
{ "name": "bog8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "bombayfashionclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "boschsplit.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "bread.red", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "buyplore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cambiemosjuegos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "camshowhive.to", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82149,7 +81104,6 @@
{ "name": "crossformer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cubsbestteaminbaseball.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "cvtshop.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "d88c.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dapperdom.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "davidschubert.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "dbw678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82268,7 +81222,6 @@
{ "name": "julienstalder.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kajakswaderki.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kapler.family", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "katerinaverbovskaya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kevinpatel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "kgt10.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "khamphafood.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82315,7 +81268,6 @@
{ "name": "meran.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "miklagard.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "mlathrom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "moca-2080.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "momocogames.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "monitord.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ms-australia.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82326,7 +81278,6 @@
{ "name": "myinsuranceauto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myinsurancelife.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myinsurancesource.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "mylifeinsurancerates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myndighetermeddnssec.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myndighetermedipv6.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "myroofandhome.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82375,7 +81326,6 @@
{ "name": "profsaranya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pymeup.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quiqurl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "r8600.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "reachout-ghana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "recoba3d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "remodelingfy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82635,11 +81585,9 @@
{ "name": "edefrutos.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "educative.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "elementblend.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "escritamusical.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "eveil-et-savoirs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "excelsiorcomics.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "exploringmorocco.tours", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "f9marketing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fibercoverage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fokus.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "fos-apps.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82866,8 +81814,6 @@
{ "name": "orxideya.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "osszekotatermeszettel.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "owner.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "oyungg.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "pajskr.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "partiono.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "peawo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "photosgaia.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82884,7 +81830,6 @@
{ "name": "primglaz.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "proweb.solutions", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "pugetsoundspas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "punematka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "qosmoschools.edu.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "quiz4math.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "ra3y.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82904,7 +81849,6 @@
{ "name": "roisu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "roopakvenkatakrishnan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "rotamap.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "roxxz.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "roys.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "rrbts.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "run4gameplay.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82913,7 +81857,6 @@
{ "name": "sand66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sanjosecolorectal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sarjakuvakauppa.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "sattamatkamobi.mobi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sattaresult.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "secapp.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "sedesignxtra.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82954,7 +81897,6 @@
{ "name": "tierradeayala.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tilde.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tinminnow.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "titrespresse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tmailz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "todaslascafeteras.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "tokky.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -82980,7 +81922,6 @@
{ "name": "vpsvz.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vpsvz.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "vpsvz.ninja", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
- { "name": "w88-yes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webinstit.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "webkindergarten.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "wikpa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
@@ -83015,6 +81956,4002 @@
{ "name": "zd1515.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "zl8282.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
{ "name": "znn.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "058kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "066kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "068kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0x15.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "111z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "112z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "113ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "113z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "116ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "116z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "117z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "118z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "119z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "122kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "131ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "131ks.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "132ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "158z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "162229.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1666ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "168z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "171ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "182ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "188z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "199ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22i.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "266z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "26z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "277z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "27is.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "288z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "299ks.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "31du.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3369p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3389p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "355ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3666ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "366z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "388z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "399ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "508kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "52062n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "52062o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "52062s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "566z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "572kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "575kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5agks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "61z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "621kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "625kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "688z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "699z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "69ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "712kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "713kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "767kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "76z66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8028d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8029d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8065d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "806kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8128d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8129d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8202d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8208d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "856kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "861kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "866z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "869kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86z66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8802ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8828ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "882kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "885z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8861ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8862d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8869ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "886z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8871d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8872d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8876d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8879d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8882ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8891ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8895ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "88djl.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9118inc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "91z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "966kb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "96z66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "99kb88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aanwp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "abraxasteam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "academie-musique-nice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "acmi.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "acneintelligence.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "acunetix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ag98ks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agencyalacarte.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks006.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks06.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks12.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks138.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks168.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks68.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks89.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks98.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks988.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks99.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agks998.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aini99.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "airconrandburg.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aljaspod.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alpharoofga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "amdm.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "andersonpowerservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "antizon.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "anyi.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "anyilin.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apothecarydouglasville.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aramyss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "archambault.paris", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "area.ge", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asakoh.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "askme-events.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "assetsman-assetsvalue.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "atmmantenimiento.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "audiohub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "audiohub.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aw.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bananacloud.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bdpestsolutionsstlouis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beatrice-raws.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bhglamour.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "billionairemailinglist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biobone.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biuropulawy.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bookingtool.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bookingtool.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brandonlin.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brasserie-twins.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brasserie-twins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bring-heaven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brojagraphics.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bumble.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cabinet-life.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "campo-salado.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "carbonvision.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "caycehouse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cbnainital.org.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ccli.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centralhealthplan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centrumpieknairelaksu.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chartsheets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chiavistello.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "christiandiscourse.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "christopherd.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "clarkwifi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "claudeleveille.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cleveille.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cliksource.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "clinicos.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "codingblog.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "colonize.africa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "congresscoverage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "corsomassaggi.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "countrylife.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "craftmachinec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crys.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crys.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crys.pw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crys.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d8778.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d8813.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d8817.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d8854.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "darlenejacques.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dechetor.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dejongonline.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dennhat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "depot24.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "desertbloomplasticsurgery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "devmode.fm", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "diariocibao.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "diepanhcare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digitalcronies.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digitiqo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dobryautoskup.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "docteurcardin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "domainname.forsale", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "domyiadaptacje.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "doradocomputer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "drrhonda.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "drsheri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ea-lateleassistance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eaglemoe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "easypets.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ecotechnologyti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "electrichome.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elprint.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "emeraldislerealty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "employer411.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eqiware.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "escandille.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eurotop.net.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "evolvingsouls.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "examopedia.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "exodiac.ph", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eyemedica.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "febeditora.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "feilestrokestown.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fiduciaire-azur.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fieldexpert.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "firtreetechnology.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "formi9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fourmies.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "francepandi.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freedomhkg.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freegovernmentcellphoneguide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "frosoku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "funfun.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gemeentestein.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "genomedia.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "go.exchange", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "goldenhost.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "goldships.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gorgeconnect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grasscity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gridtennis.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "h-server.myfirewall.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "heightselectrical.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "histoiresdecontenu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "home-sud-renovation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "honeymaze.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ictindia.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "iki4you.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "incomeproshoutr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "irequi.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "itsallaboutplumbing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "itschromeos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "iycharter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jakse.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jan-gerd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "japonyol.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jeansdiscounter.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "junglevet.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "justin-p.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb0404.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb0505.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb096.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb1313.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb3434.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb3535.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb367.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb415.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb458.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb5050.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb5252.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb545.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb5648.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb5656.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb702.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb7474.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb840.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb8803.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb881.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb882.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb8889.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb88dc28.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kilbi-reussbuehl.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kingdominnergy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kingshome.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kirscrb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kiwibird.tokyo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "klempin.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "klikweb.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "knowledgebuilds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kroyclothing.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "krupacars.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks016.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks017.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks0558.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks0660.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks068.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks082.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks10.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks15.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks182.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks20.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks202.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks206.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks30.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks330.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks3737.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks380.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks40.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks50.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks515.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks539.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks55.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks571.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks58.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks597.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks60.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6225.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks637.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6522.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6525.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6535.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks657.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6626.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks668.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6681.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6685.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6686.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6687.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6733.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6735.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6799.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks68.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6887.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks6998.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks70.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks8.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks80.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks86.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks8787.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks8860.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks89.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks90.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kstr.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "la-bolle.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "labastidedesaromes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lacochinacounselor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lacocina.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "laimut.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "landsbankinn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lederkleren.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lelac-capfrance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.store", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leruevintage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "letsbrand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lettings101.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "libertyachts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lightography.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lindajahn.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "loader.us.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lookingstores.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lorenzocampagna.myqnapcloud.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lou-castelet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ltcwaterwijk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lueurexterne-audiovisuel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lueurexterne.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "macaos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "madeinolive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magniflood.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mangabank.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mansora.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marijuanajobscannabiscareers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maroquineriepirlot.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "martindoe.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "masterplumber.coach", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mcs-kutc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mcukhost.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mediafamous.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "melania-voyance.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mentorbuk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "middletonshoppingcentre.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mjjlab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mjs-domy.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mkfilm.ma", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mokeedev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "moobl.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mostbelehuzunk.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "muloft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mycounterstrike.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "myremotelogin.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nathanbarry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "natteravneneibergen.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nejprivlac.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "neusoft.ren", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "newmall.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "newshell.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nicholasrhodes.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nikka.systems", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "noeontheend.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "novotoznanie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nutrashop.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nvoip.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "omangrid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onceuponabow.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "only-fragrances.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oortcast.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oralb.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "orgoniteindonesia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "osci.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paesi.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "page-rank1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paknetworking.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "parfumerie-de-grasse.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "parkeerbordenhuren.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paroisses-theix-surzur.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pcdbank.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pfonks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "piektraining.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pitoufi.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plage-les-pirates.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "planisys.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "playlisten.radio.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prankstercompany.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "proevlifecycle.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "progresivoptic.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "propertyauctionaction.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "protiksana.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pvhe.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quemadoresdegrasa.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quprop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "radiosendungen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "radyodinle.mobi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ratujemyzwierzaki.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rawdamental.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rcpdesign.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rebellion.global", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redkiwi.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redray.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "remetall.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "remitano.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "require.software", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rightfold.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "riveroacessorios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ronbongamis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "safevault.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "samlam.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "santaijia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "santamariaretreats.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "schbebtv.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scholtensupport.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scribbler.monster", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "securegovernment.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "senimag.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sewfarsewgood.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sewfarsewgood.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shoposal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "siepomaga.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "simmtronic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sinakuhestani.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "siulam-wingchun.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skooks.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skyblockrebellion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "slalix.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "smaltimento-rifiuti.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "snowsubs.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "solucionupsperu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "srqpedals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stapvoorstapduurzaam.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "steliosmanousakis.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "steuerberater-hopfner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "storingdesk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stroifenix.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "subarulegends.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "subrad.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sungari.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swimminglessons.com.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swrelay.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "synedat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "synrestaccounting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "syuez.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "syzdev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tablemagnet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tato.noip.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thebridalcollection.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thelicagency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thsecurity.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "towsonpediatrics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tualiadaenlimpieza.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tycycles.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ucc.edu.gh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "unblocked.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "unitedfitness.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "univet-veterinaire.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "univetnature.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upliving.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "urb-budex.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vangore.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ventadecolchones.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "veryswing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "voix-bien-etre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "votre-avenir.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vrikshamindia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vsactivity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vsportage.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vuelacaruru.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "walkingandcycling.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "warthog.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wegiel24.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wellandslim.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "weloveliving.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wemajin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "whatismypublicip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wielrenbond.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wso01.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wuzigackl.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www-9118.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xn--80ancacgircb8q.xn--p1ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yanniclandsmann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ydraulikos.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yeah-shop.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ytec.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yuansecard.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yukaction.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yukonconnector.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yukonlip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yukontec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ywyz.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6121.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6151.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6181.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6182.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6218.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6252.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6278.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6285.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6289.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6323.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6353.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6359.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6371.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6372.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6373.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6375.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6382.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6385.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6398.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6519.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6523.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6527.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6529.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6537.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6539.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6573.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6579.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6581.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6587.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6591.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6616.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6727.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6751.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6753.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6757.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6758.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6759.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6798.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6812.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6813.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6827.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6829.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6837.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6851.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6852.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6853.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6857.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6871.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6873.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6881.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6882.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6883.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6891.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6895.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6897.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6925.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8857.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8861.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8862.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8871.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8872.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd625.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd627.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd629.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd632.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd637.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd657.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd659.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd675.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd692.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd693.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd723.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd725.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd726.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd729.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd732.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd735.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd736.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd739.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd752.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd756.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd763.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd792.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd793.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd795.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd796.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd802.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd803.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd806.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd807.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd809.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd823.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd827.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zone-de-confiance.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zorgenvoorandrea.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zoubaa.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0cd.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "115z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "123666365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "14erc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "14ercooper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16z66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "222tips.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "234666365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "235u.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "345666365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "35089y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "35089y1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "35089y2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "40percentpapermache.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "45b.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "4investors.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "4wrd.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "52062i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "52062m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "588z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "616xin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "654666365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "668z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "765666365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8156d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8238d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "868z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "881z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8875d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "92owl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a04gameapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a04webapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a06gameapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a06webapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aberon.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "actingcxo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adonis.hosting", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adonis.media", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "advaith.fun", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "affiliates.trade", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "airconditioning-sandton.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ajsgall.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allanta.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allmajestic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apkright.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "appbydl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apply-esta.us.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apwide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "artifexnet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "artigoos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asesoriaglobalenseguros.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autodius.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autogestioninmobiliaria.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "awangardaszkola.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ayyz66.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b1nzy-pinged.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bachmannyachts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bacsmegye.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "balanceado.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baltimorecashflow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baranyavar.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "barnhardt4berks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "basechat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beautyseasons.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beckijayes.family", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bergfex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bestehostingproviders.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bettashoerepairs.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bettmer.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bettmer.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bhaweshkumar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bhrenovations.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bi5.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biancazapatka.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bisoga.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "blogauto.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bloomscape.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "blueangel.org.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bmcorp.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "boomfestival.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "br1334shop.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brickweb.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bridalfabrics.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bridalfabrics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bridalfabrics.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bridalfabrics.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brokolit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brugerklub.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bryanphilton.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bsstainless.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "callmewhatever.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cameramark.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "canhas.report", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cardozovargas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cardozovargas.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "casashmodel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ceramiche.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "changinglivestoday.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chernyak.id.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chicagenial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "christineandcie.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "christineprayon.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cialisonlinee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "clairette-de-die-lantheaume.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cloudsters.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coderscripts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "codista.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coinsuggest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "comfortsolutionsair.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "commure.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "conory.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "consommation-locale.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "contractorswestga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "correctconstructions.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "creativeground.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crowcloud.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ctmrepository.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cubesugar.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cuckoo.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cursosgratuitos.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cybertrash.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d1qvlbepn0kduz.cloudfront.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dal.net.sa", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dating.wedding", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "decoacerospanama.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "decorativeflooring.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "demedx.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dianpi.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "disinfestazioni24.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dobbshvac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "douglascountybar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "douglascountyfilmtrail.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ds28s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dungdev.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dustandsand.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "e-surety.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eecs388.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eimmigration.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eleganceperfumes.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elgringosrentals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elycoin.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "emrahcinik.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "encoro.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "enjoytech.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "enlamochiladeadri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "enlilrosse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "epawnatl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "equipoweb.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "espacobebecia.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "everydaylatestnews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "evthing.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "exploredouglascountyga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f9marketing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fachfusspflege-exner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fejervar.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "finda.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fireglow.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "framer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freshbean.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fridaysforfuture-bremen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "froogo.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fuckssl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "funktionevents.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gaetantremois.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gaozj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "garduri-electrice-animale.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "georgesand.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "globalairsea.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "globaleaks.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "globalvoice.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gorpg.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greengates.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gregorydorrifourt.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grexx.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gympass.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hac2er.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "haramainbd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "harington.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "has.report", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hasandeniz.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "heardcountyathletics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hellofrom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hi-media.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hinepaving.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hklbgd.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "homecaring.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "homeehome.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "homelabalert.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "horizon.ne.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hotelstanford.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "husk.house", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "i-pinged-everyone.today", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "icanhas.report", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "igramfollower.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "im-a.cricket", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "imoe.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inkthreadable.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inpatec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "intelligentcontacts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "intelligentnegotiator.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "introspectivemarketresearch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "investinweed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "invetep.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "irishsessions.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jack-p2.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "janostheil.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jaramilloconstrucciones.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jitterbit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jnsz.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jobfury.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jobtarget.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "johannfritsche.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jyk.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "karawanken-tunnel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "karolak.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "katapult.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "keestalkstech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kingfast.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kingsblueblue.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kita-freie-schule.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kleor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "klimmzugstange-fitness.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "knuterikskare.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kodkollen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kodkollen.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kopfkrieg.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kreatorbus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kurierwilenski.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "laboiteare.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lcv.psc.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicos.etc.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.rio.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leoservicosetc.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "levels.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leveluprankings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "libertarian-party.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "libwebsockets.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lifetoolscdc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lintelliftusa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "load.pm", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "love-spells-tarot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "luisfernandoosorio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lumacurve.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magicstay.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magyarepitok.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maiet.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mailtrap.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maklerinfo.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "malwar.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "malwar.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "malwr.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "martellosecurity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marvinschopf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marvman.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marvnetdigital.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mawulihotel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maylamtoiden.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mazloum.adv.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mbsync4supply.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meiksbar.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "merchant.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "metrosahel.tn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mgsdb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "michelwolf.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "micropigpets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mikkei.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "millerwalker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "miniwaplus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "miss-alisa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "misterandersson.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mlonline.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mlwr.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "modelspoor-projecten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "modelspoorprojecten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "modernautorepairs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mont-thabor.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mountainutilities.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mraag.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mrvnt.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "muot.tv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mustsellacarglobal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "my-web.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "myphamthemis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nan.cm", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "natmal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "noahenco.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nocloud.website", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nogradhont.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "objectif-securite.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "officezoneonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "okkhor52.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "olive.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ollies.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onchol.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oneartyminute.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onlytrong.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onpointplugins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "optiekdemeester.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oqpo.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "osmdroid.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "osomagicmountain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ownian.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pandahut.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paradiseprivatehospital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "partnersofprc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pdfget.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pestpilis.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pfnext.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plaisirs-coquins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "planetchiropracticga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "planosylicencias.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plans3ds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plcgurus.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "please-uwu.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plz.report", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pokoleniebar.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "priv.gc.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "privatenebula.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "programador-web-freelance.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "putnamcollision.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "querencia.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quickformspro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rdviitd.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "recruitnow.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "renewedhopefc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "restore-aid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rinkhill.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "riptidetech.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rohrle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "roomkey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rosebankplumber24-7.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "roseberyvenues.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rsquare.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rswow.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rubymediagroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rummey.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saalfrank.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saalfrank.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "safetysite.tips", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sakerhetsbubblan.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "samandroscosrestaurant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "samusil.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sand-stoneinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "santa-fell-from.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sapphireservicesga.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "satmali.az", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "segurosmaurobracchieri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sergio.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sherrikelley.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shiganmartialarts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sideleau.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skjt.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skolebil.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sofialobocera.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "solucionespicadelly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "somogyivar.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "songsmp3.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "songun.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sonictonic.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "soundorabilia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "staticfury.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stau-a.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stelinauto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "strousberg.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "structuralfix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "surveil.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swoffordconstruction.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tarife.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tauedu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "technicaloffice.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "temariogratis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "terass.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "the-spoonfeed.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theboulders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theepicsponge.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theolivetreerestaurants.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thethoughttrainer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thetuco.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thevenuevr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toddcullumresearch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tolnavar.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tomik.fun", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tradecloud.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tradelogicintl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tradie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "trainme.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "travauxcontact.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "travelamm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "trebnie.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tusi.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "twdtulelo.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "twistfix.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tylervigario.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ucnedu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "unique-tutorials.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "universal-edge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "usa-viagra.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v800y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vabusinesses.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "versicherungen-blog.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vnministries.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "void.to", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "waehlefamilie.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "warmcat.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wearebase.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wefound.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wenceslas.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "werbetopshop.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "west-nerica.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "whistleblowing.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wildrough.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wohnbegleitung.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "writemyestimate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wsave.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wuz.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xn--5kv19nxn6b.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xn--birkenblttertee-7kb.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xuwei.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xxxbunker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xzibits.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y2g.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yabbarov.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yachtfolio1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yocto.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "youngsoad.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yourdailyalerts.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ys633.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ysuna.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z33d.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6192.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6281.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6325.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6381.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6512.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6571.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6592.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6791.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6817.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6823.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6893.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6912.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8870.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zanjirzanane-shanbeghazan.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd623.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd635.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd652.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd653.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd673.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd697.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd753.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd759.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd762.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd805.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd825.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd826.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd829.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0166z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0177z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0188z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0199z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0222z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0288z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0311z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0312z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0313z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0315z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0316z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0317z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0318z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0319z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0335z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0351z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0352z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0353z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0356z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0357z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0358z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0359z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0371z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0372z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0373z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0375z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0376z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0377z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0399z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0511z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0512z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0513z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0515z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0516z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0517z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0518z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0521z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0523z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0531z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0532z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0533z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0535z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0536z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0537z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0538z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0539z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0551z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0552z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0553z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0555z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0556z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0571z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0572z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0573z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0575z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0576z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0577z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0578z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0579z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0591z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0592z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0593z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0595z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0596z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0597z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0598z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0599z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0666z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0711z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0712z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0713z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0715z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0716z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0717z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0718z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0719z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0722z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0728z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0771z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0772z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0773z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0775z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0776z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0777z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0779z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0871z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0872z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0873z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0875z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0876z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0877z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0888z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0996z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0998z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0999z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "09am8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "10k.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1112z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1113z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1115z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1116z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1117z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1119z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1122z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1133z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1166z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1177z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1188z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1199z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1212z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1221z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1222z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "123z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1313z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "131z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "132z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1333z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "133z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "135z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "136z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "137z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "138z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "139z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "151z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "152z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "153z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "155z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "156z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "157z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "159z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "180ks.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "181z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "182z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "183z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "185z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "186z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "187z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "189z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1u0m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2333z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2555z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2666z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2777z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2888z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2999z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2nics.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3222z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3322z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3333ylc.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3333z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3366z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "364553.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365600dl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36594a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36594b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36594c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "373.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "399z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "4000milestare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "552z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "553z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "556z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "557z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "558z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "559z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5763.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "577z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5781.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5792.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5796.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5797.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "602yb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "603yb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "622z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "633z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "655z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "661z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "662z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "665z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "667z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "669z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "677z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "678z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "722z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "733z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "772z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "773z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "775z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "776z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7776365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "778z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "779z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "799z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7lb.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "811z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "818z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "822z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "833z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "877z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "882z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "883z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "887z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "889z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "898z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "899z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "922z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "933z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "94imk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "955z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "966z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "977z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "988z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "989z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "991z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "992z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "993z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "995z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "997z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "998z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9kopb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ae86.dog", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ae86b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ae86c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ae86dj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ag888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ag918.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agendo.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ahsyg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aiva.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alarelleimpresiones.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alko-centr.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allbestcbdoil.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allsoulinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allsoulmobile.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allsoultech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allurefest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alphaperfumes.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "altairlyh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "altsdigital.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "am88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "amethyste.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "amsel305nc.ddnss.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "antennajunkies.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "antennista.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "antikvariat.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apa-canal.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apostalegal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apostalegal.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "assemblywithoutthewalls.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "astrojunkies.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asurgiant.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "atrafloor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aussieseoadelaide.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aussieseobrisbane.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autodilyhulin.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "avalyuan.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "avivaplasticsurgery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aycasac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baese.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bariatricsurgerysmg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baronspices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bcmguide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beeksnetwork.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beeremovalspretoria.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beestation13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "berndklaus.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bestcivilattorneys.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bestroofbox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "betmobilenigeria.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biblionix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "binoqlo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biol.moscow", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bither.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bloom.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "boreacr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bossdistribuidora.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brandonforce.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brunchandmatch.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bs-herting.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bsdio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bubulazy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buffup.media", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buyessayscheap.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "c36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cacrm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cargoio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "casinosblockchain.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centre-momboye.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chaip.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chupanhcotrang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cissa.org.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "clipchamp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "closoltech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cnxy.eu.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coastmedicalservice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coatl-industries.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "code4.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "codebrew.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "codein.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coecho.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coffeestain.ltd", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coiffure-andrea.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coin.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coinpath.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "comfintouch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "complexcoral.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "concierge.diet", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "conversationsri.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "copleylawfirm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "counselingfw.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "creareup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "credito360.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "creditorapido.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crfcap.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "criptoinvest.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cristianuibar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crossword.city", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cruciverba.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cupclub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d88111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d88322.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d88333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d88522.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d888.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d888.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d88998.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dark.fail", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dayman.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ddepot.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "delbrouck.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "diamondrose.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digitalcoffeepodcast.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "diyanet.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "doctor360.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dosje.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "drewlearns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ducksoft.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eaglenation.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ecuteam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "edisa.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "electrum.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elena-baykova.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elkim.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "equifaxobjection.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eth1.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eulessplumbers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "evoting.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ewc.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ewcd.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "examika.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eyep.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fantasticservicesgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fastboyscouts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fastboyscouts.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "felixduart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fengchuiyudaqu.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flightright.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "foair.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fojing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fraufries.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freedomtoolkit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ftl13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ftworthhousekeeper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "futurefastforward.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "g36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gamblinghero.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gameindustry.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "garsio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gcode.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "geekclubbooks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "geektarven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "geschichtscheck.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "geseduc.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gesmav-trier.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gietvloer-wand.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gkv-gorinchem.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "glimhome.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gloalerts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "globalaccountservice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "globetalent.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "goldskysecurity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gramtrans.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greaterreadingyp.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greek-kitchen.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "guoke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gwbet99.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "h36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hair-reborn.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hao6.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hao8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "haozhuanfa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "happyhourboard.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "harrisonm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hendranicholas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hl8id.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hl8th.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hosteons.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hotelmonal.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hvenetworks.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hypotheca.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "i36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "icharme.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "id3global.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "idoo24.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "imlec.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "impakho.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "imposingoods.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "imydl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "infopier.sg", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inovatecapi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inpdp.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "insights.is", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "intentanalytica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "internetwork.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inversionesgalindo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ioasync.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "isamiok.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "j36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ja-publications.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jiji.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jjj917.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jjrstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jkdhn.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jsh173.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jsh920.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jtl-software.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jumprun.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "just3preety.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "justsome.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jyrilaitinen.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jyvaskylantykkimies.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k10.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k10.app", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k10.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k51365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k666.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88256.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88257.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88258.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88259.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88260.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88261.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88262.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88263.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88265.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88267.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88268.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88269.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88270.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88271.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88272.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88273.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88275.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88276.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88277.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k88285.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kaishi.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kashis.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kasual.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb8.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb802.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb88.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kb888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kevin.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kirchenchor-olzheim.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kirillpokrovsky.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kmucsu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kromonos.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kroy.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "krugersdorpplumber24-7.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks10.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks88.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ks888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ksbet.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ksvip10.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kursk-otoplenie.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kuruma-ex.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kustod.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kvetinyumarkety.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "l10n.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "l36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lalaloe.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lapelpinsandcoins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "larch.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "learngreenlandic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lethosdesigns.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lethosdesigns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lgcamsps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liberhk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liberhk.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liberty-med.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "librerias-he.com.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lisasworkshop.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "listyourinfo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lockr.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lowcarbmaven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lrs.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ltprtz.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lucybles.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ludothek-burgdorf.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lukasrod.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lukestebbing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lunis.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "m36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "m4all.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "m51365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "madisoncountyhelps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mariage-protestant.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "martinboerhof.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "masstercurssos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mastdi.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mathematik.rocks", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "memberhk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "merite.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "micamisetaestampada.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mmassemblyline.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "motscroises.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "multicore.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "multimatte.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "muralswallpaper.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "muralswallpaper.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mushfiqweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "my-hps.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mybestmattress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mybestwebsitebuilder.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "myecms.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mylegacyvip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mylennonbuddy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mylennonbuddy.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mylennonbuddy.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mylennonbuddy.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "n36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nad-r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "narrative.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "navlnachekg.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "neo-novarion.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "neuroandspineconsultants.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "niclewis.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "njprimary.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "noematic.space", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "notenarchiv.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "numbrz.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "o36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "obdchekautomotriz.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "odesenvolvedor.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ohmy.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ohoreviews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ojojz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "on9.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ondeapostar.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "one6688.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "online-eikaiwa-guide.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "orbitalcommerce.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ortlepp.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "p36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pacxodka.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pakho.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "parkrocker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "peakslead.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "peerbanking.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "perfectgarden.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "peterfiorella.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pfarreiengemeinschaft-neuerburg.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pianyigou.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plantarportugal.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "playsawdust.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plumberlewisvilletexas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "podshrink.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pompoco.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "porelcorazon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ppoozl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prepfba.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "projectemail.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "projectmailext.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prophiler.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prosecomgdl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prostoporno.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prowpcare.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "psychometrictest.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "q36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qnome.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quanttydesignweb.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quantum-evolution.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "r36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "radioldpr.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ranalawassociates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rankgiants.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rastasorganics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "raza.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "razalabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "razalabs.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rc-respect.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redper.serveminecraft.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "regateoapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "reinhart-auto.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "resolvergroup.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rfid-schutz.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "riograndesurgeons.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "risxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "roelenscitynews.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rogersnowing.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rory.best", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "roulettecarnival.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rthsoftware.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rtwcourse.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ruri.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ryanhowell.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "s36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saintleochurch.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sanqianssr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "santo.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scanwords.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sdn.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sekfung.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "seolabuitest.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "serenavillageresidence.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sgh.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shaloc.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shanoviyam.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shenqi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shota.soy", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shutupbabyiknowit.party", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "silentkernel.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "silesianlawyer.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sinfulthrills.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sitahk.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skena.lt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skullbite.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sky-torch.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skyntalent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sluimann.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "snip.city", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "snipermarkettiming.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "snoopyfacts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "solsocog.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sombemerchant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sonnenta.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "souleymanecamara.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sourcebox.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "souzanabellydance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sqreemtech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stickyricelove.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "storgaarddieu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "strick-welt.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "studiotres.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sujblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sunsmartresorts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "surtisitio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "syswiki.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "the-forgotten.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "the-medium-dolphore.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thouqi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tickettailor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "timawesomeness.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tommihynynen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toopita.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toughlife.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toutelathailande.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "transette.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "travelwithbender.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tumarcafe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "u32i64.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "u36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ulickaprozivot.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "unikalo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uphabit.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "usabackground.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uspesnyprvnacek-staging.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uspesnyprvnacek-testing.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uspesnyprvnacek.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uspesnyprvnacek.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v88158.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vivoregularizafacil.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vulpr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "w36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "w666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "w888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wakastream.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "walruscode.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "watchlol.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wca.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wicksandwonders.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wildandisle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wildcraft.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "worlddeafarchitecture.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7ooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7ppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7qqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7rrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7sss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7ttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7uuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7www.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7xxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xh7zzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xmr.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xn--kreuzwortrtsel-fib.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xtaboo3d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yayl888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ybdh88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ycwt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yuanbaohd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yy6.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yy8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z1.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z10.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z2.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z36594.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z4.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z5.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z6.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z7.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z9.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zarfinakber.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd6.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zd88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zindec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zl6.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zl66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zl666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zl8.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zl88.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zl888.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zlatom.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zugfahrplan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228gg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228hh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228jj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228kk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228mm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228nn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228pp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228rr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228ss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228tt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228vip1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228vip3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228vip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228vip6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228vip8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228vv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228xx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228yy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00228zz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "00365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "01365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "02365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0355z6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "04365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "05365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "06365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "07365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "08365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "09365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1002712.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "105318.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1068511.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1088.fun", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "11018vip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "11018xpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1111365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "111365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "11168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1119968.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "11365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "123365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "12365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836500.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683651.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836511.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683652.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836522.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683653.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683654.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836544.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683655.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683657.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836577.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836588.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1683659.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "16836599.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "168365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "169xpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2222365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "222321365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2288422.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2288499.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22884h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22994.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299411.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299422.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299433.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299455.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299466.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299477.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2299488.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "23365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "235998.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "242712.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "25north.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3033888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "308xpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "30bet365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "313xpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "315xpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "319xpj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "32bet365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "33168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3333365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "333365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "33365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "34365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36525.hk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "37987a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "37987c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "37987d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "37987e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "37987f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "37987g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "396228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "4048.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "44168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "44365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "444321365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "45365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "456365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017701.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017702.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017703.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017704.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017705.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017801.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017802.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017803.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017804.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5017805.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "505343.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "55365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "555321365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "56365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5795111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "579533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5795333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5795444.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5795885.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5795886.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5795887.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5lc8.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396ooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396qqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396rrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396sss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396ttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396vvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396www.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396xxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396yyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6396zzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "65131y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "66168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365x.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365y.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "663365z.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "666321365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "666365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "678365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "67877777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7652.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7654321c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "77018vip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "77168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "777234567.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "777365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "789365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "88168365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "88365.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "88365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "888321365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "88yule3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "88yule5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "89365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "96002e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "99365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968131.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968166.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968282.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968363.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968389.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968393.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968404.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968505.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968508.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968535.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968595.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968600.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968656.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968707.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968717.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968838.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968909.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968959.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968969.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968aaa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968abc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968app.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968bbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968caipiao.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ccc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968com.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968eee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968fff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968gg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ggg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968go.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968hh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968hhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968iii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968jj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968jjj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968lll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968mm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968mmm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968nn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968nnn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ok.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968oo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ooo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968pp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ppp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968qq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968qqq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968rr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968rrr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968sss.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ttt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968uu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968uuu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968vv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968vvv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968www.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968xl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968xx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968xxx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968yy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968yyy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968zz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9968zzz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "999321365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "999365t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "99qp.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a77018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aa00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "abruzzobeautybar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "acces-elevation.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adelgace.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adonisgrup.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adoptionpregnancycenter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adoptionpregnancycenter.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agromotorsburzaco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "akeenext.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alamo-analytics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allinsuranceinformation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "almeeraloyalty.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "almusbahperfume.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alpineplumbingandrooter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "amxpj888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "anageorgia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "anepsa.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "anzacparkeast.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aperture-science.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aplazame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "app00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "app11018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "app77018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "appliancesrepairservice.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aquasun.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "artmosfilms.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asmanyasgiven.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "assemblytechnicianjobs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "atrias.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "audiohub.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autopower.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autotrac.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autozet.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "avtosept.by", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "az11018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b131000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b2222.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62102.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62103.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62104.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62105.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b62h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b6730.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b6740.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67772.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67773.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67774.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67775.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67801.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67802.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67803.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67804.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b67805.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b70881.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b70882.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b70883.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b70884.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b70885.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b77018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b789.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baanpingchan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "babblenotes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "balsamaiso.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bandeirasnacionais.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "banderas-mundo.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bandiere-mondo.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baoxue9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "barakayu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "barbaderespeito.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bayraklar.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bb00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beercast.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beers.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bekchy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bescoutednow.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bestinbarter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166222.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166444.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet1668888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166bbb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166ddd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166eee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166fff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166hhh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166tt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166uu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166ww.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166xx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet166yy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet819.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet820.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bfanis.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bienestarfacial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bigbrotherco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biol.spb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bitcoingah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bitvps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bizpay.su", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bizzit.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "blue-nijmegen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bodrumhotelsresorts.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bonn.digital", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bosekarmelitky.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "boutiqueinfantil.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brawlstarsitalia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "breadpirates.chat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bretech.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brindesgrafica.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brisq.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brownesgas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buttoned.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxdj9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bxzx9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "c3kidspace.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "c86255.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "calluro.hr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "camago.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "camping-aupigeonnier.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cc00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cdbtech.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centurion-consulting-cie.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centurystonedental.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ceskaexpedice.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chapek9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chemical-shark.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chicagobreastaugdrs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chriswilding.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chronograph.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chronosgroup.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "classicfg.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "climed.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cmpsc.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "comicbank.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "computingsociety.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "comschool.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "contentmarathon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coteibem.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "couponbre.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cozumel-activities.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crafted.cat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "creaintel.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crownsterling.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "curanderosantiago.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cvdc.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "danskefilm.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dartydiscount.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dc-acupuncture.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dd00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "deanstreettacochips.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "decofiori.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "denisadinu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "desert-maroc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "destinfloor.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5102.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5103.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5104.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5105.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "df5ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dfafacts.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digimaat.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digital-sign.com.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digitalarchives.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ditec.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip10.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "djvip9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "domainevanina.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "donsremovals.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dragowebdesign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "drapeauxdespays.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dreamhouses.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dtleague.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dubbningshemsidan.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dziscover.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "e00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ee00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eentertain.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eldoradocylinders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "electricfencesandton.co.za", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "engagelogic.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "engima.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "engym.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eprojectfreetv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ericsilva.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "erperium.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "exbolivo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "express-vyvoz.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88yule3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88yule9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8cp1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8cp4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8cp7.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8cp9.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "faizanullah.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fam-borsch.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fantasticcleanersbristol.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fastighetsekonomi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ferc.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fetishbazar.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ff00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fffinfo.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fibroarrendacaseton.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "firstnet.gov", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flaggorvarlden.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flagi-panstw.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flagistrany.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flagpedia.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flagpedia.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flixtube.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fordtrac.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "forextraders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "francescopalazzo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "franchisehive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freedomhk.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freedomhkg.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freedomhkg.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freevision.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fujieb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fxsshiwo.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "g00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "galeriakobylarz.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gchc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "geohoney.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "getbookked.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "getsmarterinsurance.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "go9968.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "goc4wraps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grabtech.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grand-city38.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grimm.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grupocata.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "haircode.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hardcore-bodybuilding.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hbudd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hearthstonehungary.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hedys.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "helderneves.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "houhuayuan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hygieneproclean.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "i00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ibhgospel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ifoa.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "infinityvr.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inh.gob.ve", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "iopool.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ios11018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "iosprivacy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "isigmaonline.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "j00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jaimesotelo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jamestown.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jebengotai.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jenslody.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jessietessiephptrouble.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jftw.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jinduoduo666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jtl-connect.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jtl-pos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kappershuis-meppel.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kettlemetalbbq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kidsphysiotherapy.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kingnutrition.com.ar", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kinothek.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "koki.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kuscu.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kwickshop.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "laopcionb.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lasonorastereo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "last-strike.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "latanews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "latinosup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "latinosuptv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lc3732.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lc3751.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lc861.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lc862.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lc863.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "le-cameleon.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leemankuiper.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lelux.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "levittasaude.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liberhk.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liberhk.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "librehk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "librehk.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "librehk.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "librehk.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lifeinsuranceresource.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "linuxhilux.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "livelondon.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "livingspace.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liz-fry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lohr.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lowestpriceremovals.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lsmarketing.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lumierewithinspirato.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lushnikov-alex.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "macbay.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maidenliput.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "manchestercleaner.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maquinariastitan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marilynhartman.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "master-tmb.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mattknight.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mcfarlow.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meditest.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meetfranz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "memoirmedie.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "metalartbylaser.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meuautotrac.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "micr0lab.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "midlandslotus.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mindseyesolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mlohr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mml.cx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mojitoparty-articlespara.website", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "momentumcoach.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mountbatten.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "msoll.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "msoll.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "msopopop.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "murmu.re", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "myinjuryattorney.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mythoughtmachine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "naidonline.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nccfa.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nei.st", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nemzetizaszlok.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "novonegoc.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nr-sputnik.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nutrizionista.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nvmo.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "o00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "o2oxy.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "officiants.wedding", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oldtimerparts.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onlinevergidanismani.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "orablanket.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "otherlandlabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ounage.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ozli.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pablovaldiviesoar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pandemic.group", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pantsu.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "parkers.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "part.la", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pascal90.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paulalutz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pbfashionexhibition.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "penconsultants.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "philipdeussen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "philipdeussen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "philo.shop", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "phongthuytaitam.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pj1100.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pj11018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pj4488.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "planhub.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "platform39.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "playinfinityvr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "plumbingofmesquite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prismintl.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "proclassifieds.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prodesigntools.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prof-toplivo.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "promexbol.com.bo", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "publivate.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "q00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qoptalk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qr1.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qrd.by", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quiq-uri.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "randomdata.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ranwest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rebellionbrewing.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "refinedroomsllc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "regon.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "repuestosmedellin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "revampweb-development.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rightpol.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "romanticasfm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "royaume-smoke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rubenroy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ruddick.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sailanitours.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sakuradata.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saltedfish.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sandiegoopticas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saskadoodle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scip.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "seaviewkohchang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "secoseal.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sedlakovalegal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sekainokokki.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "seolotsen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sexyfotosvandep.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shahpurjat.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shearin.pro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shixuen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shotsleeve.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shulyaka.org.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "simbamail.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sinanaydemir.com.tr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sneakersmexs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sofaclean.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "speventos.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ssmm88.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "starfishconstruction.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "statnevlajky.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "statnivlajky.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stefan.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stina-vino.hr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stmohrael.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stortiservices.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "straat.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "strathspeycrown.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "studiokilund.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "suchtv.pk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "summitlighthousela.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sunsdesign.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swindontennisclub.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swisstacticaldevelopment.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swrelay.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t1208.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t2183.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t3dynamics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t6354.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t6360.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t6364.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t6371.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t6880.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t6881.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t7809.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t8250.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tackleyourfeelings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tanks.je", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tarek.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "taskworld.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "taylorshillsamoan.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "teamif.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "teedb.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theheatingoilclub.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "timeai.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tobefree.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "togtider.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tommyemo.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toolnerds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "towellconstruction.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "trajano.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "treintijden.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "trisect.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tropicaltravelco.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "turuncu-sepet.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tves.gob.ve", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "u00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ucngame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uddin.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uwe-r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uwe.training", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v5017.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v6004.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v700bb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v700cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v700dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v700w.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v9037.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "valx.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vandommelenart.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vaperion.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "verdensflag.dk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "veteranreservecorps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "villagenscamuria.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vilnagaon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vip00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vip11018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vip22884.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vip22994.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vip77018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viveport.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viveport.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viveport.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viveport.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viveportal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viveportchina.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vizeyurdu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vlaggen-landen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vrba.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vscm888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vttnordisere.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vtupro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "w00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "waivcollective.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wealthsetsyoufree.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webhostingzzp.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webpagetest.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wedohair.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "weinboxbuilders.co.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "weitsolutions.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "welt-flaggen.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wepa.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "westlandplacestudios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "whatnot.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "whattodo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "williamtai.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "worldonwheels.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "worongarymedical.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wossl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wppeeps.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ww00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www00228a.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www00228b.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www00228c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www00228d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www00228e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wwwn888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x00701.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x00708.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x00738.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x00776.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x00786.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x10007.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x10008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x668.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x9016.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x9017.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x9718.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xinnermedia.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xinpujing198.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xinpujing200.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xinpujing518.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xinpujing918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xs00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68cc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68dd.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68ff.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68gg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68hh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68ii.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68jj.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68ll.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68oo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68pp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68qq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68rr.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68tt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68uu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68yy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y68zz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y70102.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y70301.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y70302.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y70303.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yert.pink", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z00228.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zach.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zaledia.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zijemvedu.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ziledelaultimagafaavioricai.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2017c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "222111.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "233ss.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2712aa.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658880000.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888001.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888002.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888003.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888004.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888005.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888006.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888007.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365888009.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658880123.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658881111.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658881234.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658882222.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658882345.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658883333.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658883456.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658884444.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658884567.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658885555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658885678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658886666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658886789.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658888888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3658889999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3970yes.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6617365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6627365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6629365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6666sb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602014.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602015.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602016.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602017.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602018.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602019.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602020.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8602021.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086011.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086022.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086033.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086044.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086055.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086066.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086077.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "86086099.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "861365.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8888209.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "889vip2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "889vip3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "889vip4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8914499.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "93cq.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "about-ti.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adomicilio.com.gt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "advancedurologyswla.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aecis.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "afrikmag.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agencytsunami.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "airline-economy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ajs5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "akerboom.family", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "akerboom.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alphasib.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "americans.cam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "amymabel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "andrey1p.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "anna-dance.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apalancamiento.trade", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aravatul.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arcadio.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arno-klein.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arno-klein.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arnoklein.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arnoklein.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "artc.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arx-libertatis.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asianwebcams.webcam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asmarketero.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "asperger-ag.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "atheit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aufwecken.dynu.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "autoglass.com.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "avancen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "avisofi-credit-immobilier.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b0hr.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b88vip2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b88vip3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b88vip4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b88vip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99011.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99022.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99033.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9904.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99044.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9905.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99055.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99066.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99077.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99088.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99099.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99118.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9912.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99218.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99318.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99418.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9951.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99518.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9954.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9957.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9961.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99618.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9962.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9970.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99718.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9973.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b9976.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99818.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "b99918.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bairuo.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baiurl.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bekolite.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "benjamin-mary.herokuapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44401.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44402.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44403.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44404.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44405.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44406.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44407.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44409.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bet44410.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bienhacerlimpiezas.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bionezis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "blaargh.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bloggingtipsfornewblogger.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bongocams.webcam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "botsiah.fail", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "breizh.pm", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bryandesrosiers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bureaugoodwork.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buriramradio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buyplaytix.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "byrnesagency.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cakesbyzoey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cargosapiens.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "carpet---cleaning.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "casaasia.cat", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "casaasia.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cdemi.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cedric-bour.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "censys.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centraldoencanador.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "centurion-consulting.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "certisoncologysolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chainge-re.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "change-coaching-gmbh.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chicjrajeevalochana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chmc.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chris-siedler.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "citationranker.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ckpl.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cldejessey.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "clean-mailbox.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cncn.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "colombianas.webcam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "compassleaf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "connectme.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "conservativenewsandviews.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "consteval.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "constexpr.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "constinit.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "consultinghero.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "contact.inc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cooljv.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "craft-beer.life", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crafters.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "craftsandsweets.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crtalleres.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cuir-lipari.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cvo-group.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cyberpcforum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d4designstudios.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d4designstudios.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dafassl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "darkhunter.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "davidje13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dbb.wtf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dearstackexchange.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "debarras-diogene.paris", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "decarrouseloss.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "delosgaia.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "deltna.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "deped.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "deshobi.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "desklite.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "diamgroup.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digirechnung.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "digital-eastside.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dilibel.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "divup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "diyibo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "docupaymentuat.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "domeindns.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "donpanda.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dottore.roma.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ds.lol", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dscharrer.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dtcp8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dtnx.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dyxe.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dyxe.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "earlybetter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eazyproject.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ebooknetworking.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eco-repair.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "editionsnoiretrouge.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eficsolar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elitedns.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elvendrim.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "emoxie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "endbox.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "erichoekstra.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "erichoekstra.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "erkiss.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "errolstambler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "essays.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "euroexpres.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "exploithe.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eyedesignuniversity.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eziwine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88qin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip102.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip103.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip104.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip105.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip106.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip19.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip20.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip21.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip22.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip23.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip4.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f88vip6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8cp3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8cp6.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fabslabour.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "facemd.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fh999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fhyl789.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fhyl888.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fidoo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fitequilibrio.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flatfix.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "foreignxchange.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freddieleeman.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freelancebest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freevst.ir", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "frsra.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fryergroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fx-rating.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gampa.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "geluleminceur.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "genealogiegazet.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gentoocn.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ghostsupreme.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gluhov-ss.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gotowebsites.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "graficasantana.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greenpark.uz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greenpathscience.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grupog2i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hackingvision.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hairfitwolvega.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hardcoen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hasst.schule", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hif88.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hitsbola.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "houseofpertijs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hrpage.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "igap.pt", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ikaria.com.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ilgiornaledelticino.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "imiix.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "incrom.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inflatiecalculator.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "influencerchampions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "infoprosnetwork.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inkbunny.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "innovum.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "instagc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "institutointersistemico.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "internetzonei.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "interstateremovalists.sydney", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inu.codes", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "investigatore.torino.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "itvaatlik.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ixit.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jaisiam.co.th", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jamesusandra.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "janeymac.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jasminlive.cam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jesusthegoodshepherd.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jonglvab.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "journalof.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "js636.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "js637.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "js638.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "js6868.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "juliaknightly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "justimports.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jyoba.co.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kas.ie", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kbst.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kelis.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "key-form.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "keysso.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kjkmail.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "klikacc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kneppe.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "knulla.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "knulle.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "koef.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kolkinn.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kpntdolive.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kraftpc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kunzesoftware.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kupriy-coach.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kuretru.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kycisrael.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lanzalex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "latinoramarecords.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "le-fumoir.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lesptitstutos.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lg2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liborburda.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lightyear.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liypoi.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lms-luch.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lojapos.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lomaem-nsk.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "londonlegaltranslation.ae", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "londonseedcentre.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lostandfound.mu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "loxal.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lucyhancock.tech", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ludofantasy.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "macha.love", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maephorncurry.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maisvitaminas.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maisy.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mandilabeachhotel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "manitaggarwal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marjonruns.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marvin.rocks", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "marvnet.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maydn.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mbardot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meayne.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meditarenargentina.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "megapixelweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "megapixelweb.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "megatravel.com.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "menthiere.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mijngiftshop.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mindmusic.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mispromo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "miss.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mizoey.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mooremetrics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mountaintree.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mpoonamchandpearls.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "musthinsider.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "my-sex-cam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mywindscreen.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nbclinic.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "neilsonmarketing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nfl.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ng911services.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nickkallis.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nicolettajennings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nicoobank.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nielsbohr.ai", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nilahue.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nlpdiscovery.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nobreinox.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nrthcdn.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nutextonline.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nyan.kim", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nyerjanegroval.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "obra.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ohbabybean.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ok7779.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ondiet.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onlysim.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oumyshop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "overwatchss.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oxfordbio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "p4g.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paguponku.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paiementdp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paradigma-med.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "partenopei.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pazerandepstein.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pbwebdev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "personadecoded.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pfstaging.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pimichi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pixelumin3d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pizza-calzone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pjax.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "points-pote.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "poolvilla-margarita.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pornleg.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "postmistress.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pragma-solution.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "premium-computer.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "previousmagazine.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prodampro.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "profritual.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "psychiatrie-ricany.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "puntaprop.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pytradebot.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qnected.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quatulo.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "quik.legal", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qurplus.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rabbitcallcenter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ravelin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redmoon.cloud", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redworks.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "referat.club", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "referat.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "renanoliveira.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "restaurantedonono.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "revampweb-staging.azurewebsites.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "revistasomos.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rexfinland.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rfid-schutz.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ripp-it.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "romanian.cam", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rotate4all.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "royalaubar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ruvinroshan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rw2.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rythm.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saiyans.com.ve", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "saledump.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "salonderecepcionessjl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "salto.si", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sarkaariseva.live", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scenari-community.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scenari.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scenari.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sdebitati.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "seishinchuo-lawoffice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sendzik.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sex-sex-cam.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shahzaibm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shoemakerywc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shokureach.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "signaturechannel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "simonssh.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "slc.gd", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sleep-go.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sm.link", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "socaliente.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "soccers.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sockfetish.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "softwarepara.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "soulcraft-cracked.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "southpointcollision.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "spacehighways.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "spiritualites.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sportticino.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "st42.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stacktrace.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stamboomgids.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sth.sh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stopyhrdinu.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "storiesbysign.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stripe.network", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stripecdn.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stronku-gaming.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stroyka-iz-brusa.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "studio678.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sukherchador.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "svtr.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sydneychillies.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sztoriboljeles.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t39.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t3hty.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "techaraby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "televotia.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "temp.hopto.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thebasicstudio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thefestivals.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theo-andreou.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theorioncorrelation.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thetwistedrabbit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thomasecookedds.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thundercloud.onthewifi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "timacdonald.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "timeless-spirit.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tixel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tls.blue", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toddexler.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "todotecnohoy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toorl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "torrentgalaxy.to", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "toudum.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tupeuxpastest.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tussier.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "twtr.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ubezpieczenia-poznan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uborka-812.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ukriate.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ultimateappreviews.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upholsterycleanerslondon.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "urkult.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "username.nz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "usjunkyardsnearme.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uv.uy", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v05666.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v06999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v12555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v67555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v68777.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v700ee.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v76555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v78555.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "veg.lv", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "verbmaestro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vertretungsplan.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "videolabsinc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vinhodragao.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "visuri.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "voidancerecords.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vostok-zapad54.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "voyagewonders.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs106.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs107.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs301.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs302.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs303.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs313.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs601.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs603.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs677.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vs680.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vz.al", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "w3app.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wajs1.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wajs2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "waterheaterirvingtx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "watthasawang.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wbuhs.ac.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webkam-sex.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webshaped.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "websitecyber.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "weeklydcoupgen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "weldotherm.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "werxus.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "whiteeagleca.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wibness.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wikileaks.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "williamvds.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "winckelmann2020.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "woodwo.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wossl.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wtfbryan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wulala.us", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xahbspl.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xprometheus.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ya.mk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yachtfolio.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yanik.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yeswecan.co.bw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ygm.org.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yl8.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yugodi.team", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yvb.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zalure.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zdenekpasek.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zenassociates.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "040552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "041552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "042552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "046552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "049552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "04d.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "051552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "054552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "068552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "071552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "084552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "09000113.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "0x7.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "12l.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "131k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "132k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "136k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "136k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "137k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "137k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "138k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "139k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "142552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "146552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "151k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "151k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "152k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "152k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "154552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "155k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "155k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "156k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "157k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "158k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "158k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "159k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "159k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "1stcarpetcleaning.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033002.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033003.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033004.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033005.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033006.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033007.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033008.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033009.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033010.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "2033011.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22245j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "22256j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "241552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "242552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "24hourelectricalservices.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "266k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "347552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3651143.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3651145.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3651146.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3651147.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "3651149.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533c.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533d.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533e.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533f.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533g.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533h.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533i.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533k.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533l.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533m.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533n.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533o.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533p.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533r.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533s.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533t.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533u.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "36533v.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q01.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q02.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q03.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q04.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q05.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q06.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q07.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q08.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q10.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q11.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q12.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q13.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q14.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "365q15.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "366k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "4151365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "420screen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "427552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "457552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "487552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "497552.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "566k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "5k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "60062b.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "60062h.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "60062i.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "611121.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "611125.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "662k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6666365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "66689j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "666k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "66k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6k662.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6k663.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6k666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6k666.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "6k669.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755204.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755245.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755246.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755249.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755274.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755284.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "755294.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "766k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7777365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "77zxdy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7878365.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "7k66.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8225.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "866k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "886k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "887k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8881234j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8882345j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "888234j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8883456j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "888345j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8884567j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "888456j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "888567j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8886789j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8888365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "888k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "889vip5.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "8k66.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "966k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "99123j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "99456j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "99789j.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "998k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "9999365q.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "999k66.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "a36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aaainfosystems.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "abrikos.group", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "accs.org.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ackis.duckdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "adminrezo.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "agences-cegee.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aimiastestseries.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aland.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alice-of-alice.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "alkemi-si.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "allisonchapleau.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ammrio.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "amperaa.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aotearoafreepress.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apod.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "apollo-auto.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aqua-ferra.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arnove.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "arteerotiko.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "artofhappyliving.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aspireuniversal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aspirevc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "aussiemilfs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "background-checks-systems.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "background-checks.asia", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "background-checks.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "background-checks.mobi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "backgroundchecks.online", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bairuo.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bandolino-bewind.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bandolino.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "barnflix.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "baypromoteam.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beautyandfashionadvice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bernmail.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bestbuyzone.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bestprint.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bettercleaningcompany.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "beverhof.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biotera.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "biz-architect.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bluehillhosting.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bluesoap.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bobstenancycleaning.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bocawa.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "boomkins.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "boxt.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brindisi.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "brucherlaw.lu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buddyme.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "buri.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bvgt.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "bytynazizkove.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "c36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cadep2019.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "canada.ind.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "canttboardpachmarhi.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "car-spaw-rac.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "careertransformed.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "carium.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "carwashdruten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cdf.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cdnya.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ceiba.com.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cgp.moe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chadlenz.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chianti2002.jp", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chineserecipes.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chloes.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "chpwmedicare.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ciagutek.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cineworld.co.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "citsc.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "claumarservice.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "coinclickz.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "courses-nlp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "craterx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "crazymarvin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "cyber-travel.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "d36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dandan101.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "datacommissioner.gov.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "de8468.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "defendtheweb.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dekel.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "delhitalkie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "deltafinanceiro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "deltaloja.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "devicom.mx", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "devlinjurister.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dhit.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dianadrive.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dipietro.id.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "discarica.napoli.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "discounto.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "divjak.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dmarcian.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "doadaybook.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "doanhnhankhanhhoa.vn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "doinaruscior.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "draireneborro.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "drradin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "dspropertyservicesltd.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "e36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "easycosmetic.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ecriminalrecords.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "edtech.ee", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "edukador.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eion.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "eisen-biomed.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "elektrownie-tanio.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "emeliemai.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "emmiwelentain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "employment-applicant.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "emptybox.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "epicsoft.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "equabanking.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "erty.stream", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "esfahanahan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "esoteric.website", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "f8908.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "familiearchivaris.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "familytreesbyjackie.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "faretrotter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "farodeluz.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "felixklenner.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ffg.berlin", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fietsvierdaagsen.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "flassetlocators.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "forensicsoftware.biz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "freedygist.org.ng", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "friendlycleaners.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "frovi.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fullmoviez.co", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "fxstrategics.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "g36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "galaxyscientific.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gamewinninggoal.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gearwise.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "genealogiewerkbalk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gentlent.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "girl.science", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "glidestep.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "globemusic.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gnaucke.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gogs.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "goover.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gospicers.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gratefullane.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greekplots.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greiner-it.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "greinerj.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "groupescr.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "grupoalpi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "gryinx.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "h36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hakkasan.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hardfloorcleaninglondon.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "heathersmithcommercial.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hermiu.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "heyapakabar.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hifly.com.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "himalayanyogashram.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hobby-freizeit.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "holtslander.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "holundersberg.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "homeportal.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "hydroponicglobal.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "i36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "icecutethings.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "illange.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inspiresurgery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "intrixgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "intrixlifestyle.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "inyr.hu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ipinfo.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "irenkuhn.ch", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "isaob.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ispfontela.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "it-market.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ivetazivot.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "iwashealthy.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "j36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jan.gl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jkvov.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jmlogistica.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "joanjensen.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "joyofhaskell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jrt.ovh", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "juliuseskola.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jumpingdeliege-vip.be", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "jwtv2.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k66.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k663.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k663.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k665.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k6666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k66666.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k6668.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k667.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k668.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k668.vip", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k6688.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "k669.ag", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kaibo.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kanpian369.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kaputtzich.duckdns.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kartashev.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "keoliz.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kernkompas.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kkcinemas.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kochbar.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kojy.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kranjnakolo.ml", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kubanitoscali.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "kzmhk.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "l36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "langleyporter.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "laurajeandesigns.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ld66999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ld6999.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "leathersofacleaning.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lelux.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lewiatan.opole.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lidl-shop.sk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lidl-sklep.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lidlonline.es", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liebt.schule", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lightningwirelabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lincore.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "liveint.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "loveluna.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lxx4380.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "lyonslawlink.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "m36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mademoe.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnes.priv.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnesy-neodymowe.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnesy-neodymowe.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnesy-tanio.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnesy.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnesy.net.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "magnesy.priv.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "manicminers.tk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "markxpdesign.ga", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "martinelias.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mateuszmajewski.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "matt.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "matts.wiki", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "matts.world", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "maxuniverse.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mcjars.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mediasst.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "medsourcelabs.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "memorind.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mercadosex.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "meridanas.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mgae.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mia.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mijngeldcoach.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mimolo.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mist79.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mittwoch-nacht.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mkm.szczecin.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mmxblog.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mo-mochizuki.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "moca-2080.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "moneyfortitude.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "montrain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "moteksystems.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mott.pe", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "move-out-cleaning.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mservers.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mt-tech.fi", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mtasts.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "musicinsiderdigest.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "myofficeconnect.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "myoptimalbrain.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "mypt3.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "n36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nepozitkova.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "netolink.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "netolink.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "niklasstinkt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nixnet.email", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nrvc.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "nzelaweb.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "o36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oberhof-hotel.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oceanlogisticgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "octopuslab.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ocupat.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "odegua.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "oegd.at", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ololmke.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "omega-marijuana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "omshivalab.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "onlinestoresite.com.au", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "opsre.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "optigear.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "optimalrehab.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "optimumterapia.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "orphee-beaute.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ostylelimo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "otus.ru", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "overspeed.ddns.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "p36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "paramountelectronics.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "patchyvideo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "planovivofibra.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "poolmans.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "postari.ro", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "preparetheword.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pressplayandrelax.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prexxorvita.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "primelogistics.cf", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "producentbalustrad.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "projectborealisgitlab.site", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prolinq.in", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "proshow.com.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "protocol.co.il", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prove-uru.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "providentins.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "prvcy.one", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "pure-host.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "qr70.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "r36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rcjescrow.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redpen.gr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "redsequence.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "reflectiondentallasvegas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "restaurant-fujiyama.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "revworld.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rezendemultimarcas.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rhubarb.land", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ricomp.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rmdscreen.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rtd.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rugcleaninglondon.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rusdigisolutions.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "rutracker.appspot.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "s-socks.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "s36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sakenohana.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "samindgroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "santi-club.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scanwords.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "scenariossecuritygroup.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "seandawson.info", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "seccast.my", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "serverhost.no", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sggame990.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shepherdsfriendly.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "shymeck.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "simplemining.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sinargasht.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sinhnhatbaby.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sittogether.tw", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "skydiverapp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "slan.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "slidesvideo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "slyvon.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "smoothiecriminals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "smtenants.cn", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sofacleanerslondon.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "softweb-dev.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "soko.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "soterdev.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "soupbuahtaza.id", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sphericalvision.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "spmax.design", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "spmax.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sprossenwand.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ssrr.xyz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stagemaster.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stamboomforum.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "statuswatch.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stevenselectricllc.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stonearm.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "stormboost.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "strelnicesmirice.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "sunsetdentalhenderson.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "supercharged.co.uk", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swapfin.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "swmlink.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "systemdynamics.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "szkolajazdykaleta.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "t36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "taffe-elec.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "taxisaeropuertomadrid.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "tcgpraktijk.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "telhabrasil.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theartistjournal.ca", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "theindiantrip.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thelittlepeartree.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "thomasbnt.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totalemaiildelivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totalemaiilldelivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totalemaildeliivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totalemaildellivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totalemailldeliivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totalemailldelivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totallemaiildelivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "totallemaildelivery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "trabajaenvitamina.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "traiteur-laporte.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "turbomag.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "txtfile.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "typeclasses.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "u36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ubicaciones-vitamina.cl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "umcpc.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "unblocked.ltda", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "unidrogas.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "universoscuola.it", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upbtrbt.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upbtrbt.eu", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upbtrbt.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upbtrbt.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "upbtrbt.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "us-10.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "usapublicrecords.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "usmiddleclass.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "ustaywell.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "utiars.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "uxp-it.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v0v.cc", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "v36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vegetalvalley.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vicenez.agency", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "videodrome.me", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "viewbykrian.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "visualmarketingdeals.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "visvolunteers.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vitavista.health", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vocationnetwork.org", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "vponline.com.br", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "w36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "watchesonwrist.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "watchmoviesgallery.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "watzijnmijnkerntalenten.nl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "weadvize.fr", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wealthadvisorsmf.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webceo.se", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webservertalk.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "webzoly.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wkz.io", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "wowprezi.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "www-8225.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "x36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xinxin.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xlink.com.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xmag.pl", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xxgalgame.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "xyz.blue", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "y36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yauatcha.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yogamexico.net", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yogshrihealing.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "youber.cz", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yourcareerhost.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "yzblack.top", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "z36533.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zaixsp.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zambranopublicidadvideo.com", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zlol.lg.ua", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zuim.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
+ { "name": "zurlin.de", "policy": "bulk-1-year", "mode": "force-https", "include_subdomains": true },
// END OF 1-YEAR BULK HSTS ENTRIES
// Only eTLD+1 domains can be submitted automatically to hstspreload.org,
@@ -83096,6 +86033,11 @@
{ "name": "www.raiffeisen.ch", "policy": "custom", "mode": "force-https", "include_subdomains": true },
{ "name": "ebanking.raiffeisen.ch", "policy": "custom", "mode": "force-https", "include_subdomains": true },
{ "name": "login.raiffeisen.ch", "policy": "custom", "mode": "force-https", "include_subdomains": true },
+ { "name": "alessandroz.pro", "policy": "custom", "mode": "force-https", "include_subdomains": true },
+ { "name": "minecraftforum.de", "policy": "custom", "mode": "force-https", "include_subdomains": true },
+ { "name": "weeblrpress.com", "policy": "custom", "mode": "force-https", "include_subdomains": true },
+ { "name": "photistic.org", "policy": "custom", "mode": "force-https", "include_subdomains": true },
+ { "name": "cortis-consulting.ch", "policy": "custom", "mode": "force-https", "include_subdomains": true },
// Burton domains (contact: burton at typewritten.net)
{ "name": "typewritten.net", "policy": "custom", "mode": "force-https", "include_subdomains": true },
{ "name": "codebreaking.org", "policy": "custom", "mode": "force-https", "include_subdomains": true },
@@ -83110,6 +86052,7 @@
{ "name": "www.ft.com", "policy": "custom", "mode": "force-https", "include_subdomains": true },
{ "name": "va.gov", "policy": "custom", "mode": "force-https", "include_subdomains": false },
{ "name": "gov.uk", "policy": "custom", "mode": "force-https", "include_subdomains": false },
+ { "name": "www.tumblr.com", "policy": "custom", "mode": "force-https", "include_subdomains": false },
// HPKP
{ "name": "swehack.org", "policy": "custom", "mode": "force-https", "include_subdomains": true, "pins": "swehackCom" },
// TODO(elawrence): hstspreload.org can't scan IPv6-only sites due to Google
@@ -83154,16 +86097,6 @@
"expect_ct_report_uri": "https://matteomarescotti.report-uri.com/r/d/ct/reportOnly"
},
{
- "name": "alessandroz.pro",
- "policy": "custom",
- "mode": "force-https", "include_subdomains": true
- },
- {
- "name": "minecraftforum.de",
- "policy": "custom",
- "mode": "force-https", "include_subdomains": true
- },
- {
"name": "tobiassachs.de",
"policy": "custom",
"mode": "force-https", "include_subdomains": true,
@@ -83192,33 +86125,12 @@
"expect_ct_report_uri": "https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
},
{
- "name": "weeblrpress.com",
- "policy": "custom",
- "mode": "force-https", "include_subdomains": true
- },
- {
- "name": "photistic.org",
- "policy": "custom",
- "mode": "force-https", "include_subdomains": true
- },
- {
- "name": "www.tumblr.com",
- "policy": "custom",
- "mode": "force-https", "include_subdomains": false,
- "include_subdomains_for_pinning": true, "pins": "tumblr"
- },
- {
"name": "history.pe",
"policy": "custom",
"mode": "force-https", "include_subdomains": true,
"expect_ct": true,
"expect_ct_report_uri": "https://history.report-uri.com/r/d/ct/reportOnly"
},
- {
- "name": "cortis-consulting.ch",
- "policy": "custom",
- "mode": "force-https", "include_subdomains": true
- },
// END OF MANUAL CUSTOM ENTRIES
// eTLD owners who are working towards wide HSTS adoption can request to
@@ -83434,6 +86346,45 @@
{ "name": "pleasantonca.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
{ "name": "elonma.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
{ "name": "carrolcountyohioelections.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "alabamaag.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "clinchcountyga.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "columbiacountyor.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "columbusks.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "cuyahogacountyvotesoh.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "dentoncounty.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "elon.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "gainesvillega.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "gravescountyky.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "guernseycounty.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "gurleyal.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "highlandsfl.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "huntingtonwv.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "icountnm.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "jisnashville.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "juabcounty.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "knoxcountytn.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "laurelcountycorrectionsky.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "lavoniaga.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "lawrencecountyboe-ohio.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "louisacountyia.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "mackinawil.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "mariescountymo.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "menomineemi.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "mercercountyohio.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "nashvillesheriff.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "ohioago.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "portagein.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "purchasetncrash.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "recoveryohio.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "ritaohio.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "sadievilleky.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "sthelensoregon.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "strongohio.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "tampa.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "venicefl.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "waverlytn.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "wilderky.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
+ { "name": "williamscountyoh.gov", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
{ "name": "bmoattachments.org", "policy": "public-suffix-requested", "mode": "force-https", "include_subdomains": true },
// END OF ETLD-OWNER REQUESTED ENTRIES
diff --git a/chromium/net/http/transport_security_state_static.pins b/chromium/net/http/transport_security_state_static.pins
index f199694822f..24ca599bafb 100644
--- a/chromium/net/http/transport_security_state_static.pins
+++ b/chromium/net/http/transport_security_state_static.pins
@@ -308,37 +308,6 @@ YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
-# https://www.digicert.com/digicert-root-certificates.htm
-DigiCertSHA2HighAssuranceServerCA
------BEGIN CERTIFICATE-----
-MIIEsTCCA5mgAwIBAgIQBOHnpNxc8vNtwCtCuF0VnzANBgkqhkiG9w0BAQsFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTEzMTAyMjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTEvMC0GA1UEAxMmRGlnaUNlcnQgU0hBMiBIaWdoIEFzc3Vy
-YW5jZSBTZXJ2ZXIgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC2
-4C/CJAbIbQRf1+8KZAayfSImZRauQkCbztyfn3YHPsMwVYcZuU+UDlqUH1VWtMIC
-Kq/QmO4LQNfE0DtyyBSe75CxEamu0si4QzrZCwvV1ZX1QK/IHe1NnF9Xt4ZQaJn1
-itrSxwUfqJfJ3KSxgoQtxq2lnMcZgqaFD15EWCo3j/018QsIJzJa9buLnqS9UdAn
-4t07QjOjBSjEuyjMmqwrIw14xnvmXnG3Sj4I+4G3FhahnSMSTeXXkgisdaScus0X
-sh5ENWV/UyU50RwKmmMbGZJ0aAo3wsJSSMs5WqK24V3B3aAguCGikyZvFEohQcft
-bZvySC/zA/WiaJJTL17jAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
-MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
-NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2Vy
-dC5jb20wSwYDVR0fBEQwQjBAoD6gPIY6aHR0cDovL2NybDQuZGlnaWNlcnQuY29t
-L0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZUVWUm9vdENBLmNybDA9BgNVHSAENjA0MDIG
-BFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQ
-UzAdBgNVHQ4EFgQUUWj/kK8CB3U8zNllZGKiErhZcjswHwYDVR0jBBgwFoAUsT7D
-aQP4v0cB1JgmGggC72NkK8MwDQYJKoZIhvcNAQELBQADggEBABiKlYkD5m3fXPwd
-aOpKj4PWUS+Na0QWnqxj9dJubISZi6qBcYRb7TROsLd5kinMLYBq8I4g4Xmk/gNH
-E+r1hspZcX30BJZr01lYPf7TMSVcGDiEo+afgv2MW5gxTs14nhr9hctJqvIni5ly
-/D6q1UEL2tU2ob8cbkdJf17ZSHwD2f2LSaCYJkJA69aSEaRkCldUxPUd1gJea6zu
-xICaEnL6VpPX/78whQYwvwt/Tv9XBZ0k7YXDK/umdaisLRbvfXknsuvCnQsH6qqF
-0wGjIChBWUMo0oHjqvbsezt3tkBigAVBRQHvFwY+3sAzm2fTYS5yh+Rp/BIAV0Ae
-cPUeybQ=
------END CERTIFICATE-----
-
Tor1
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlOpp8zfF+jEbI6R7nxnm
@@ -1724,18 +1693,6 @@ lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf
+AZxAeKCINT+b72x
-----END CERTIFICATE-----
-# From https://crbug.com/745781#c7
-TumblrBackup
------BEGIN PUBLIC KEY-----
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvRHwz8nF03wWD2yzXa9t
-zxuxs0ITJIPofPKNshVgIKg7HIMgZ/i7e5Gr6pfoC/majqbcxPFd/AaGcQLjTxv0
-hnDPOnIicG2NpofNDE8n1cmZ0TM3fNp73E+Rp9Fb0p2uLglLBN4SaXRDNXCGGZBI
-uGs1xJmIDdgaYCKMCekvD2xwvpXKO9kcSrA7gvCFFP1hKBI6DAL1CNTBCiRKcm/S
-GWJTdi+BsmLN41ctt9HKOJ4/J/yrsl8Fbnatt55dEByJDJnwGvgCvkgYbM+pgc1H
-3zdFfyi/c3LKxf6ZkKYRNCSCL3UXZcLZZhHBwwC9kMMJQohmxwkV7t2imWWbtnTX
-jQIDAQAB
------END PUBLIC KEY-----
-
# DigiCert Global Root G2
# https://www.digicert.com/CACerts/DigiCertGlobalRootG2.crt
DigiCertGlobalRootG2
diff --git a/chromium/net/http/webfonts_histogram.cc b/chromium/net/http/webfonts_histogram.cc
new file mode 100644
index 00000000000..2f27c82344c
--- /dev/null
+++ b/chromium/net/http/webfonts_histogram.cc
@@ -0,0 +1,65 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/http/webfonts_histogram.h"
+
+#include "base/strings/string_piece.h"
+#include "net/disk_cache/blockfile/histogram_macros.h"
+
+namespace {
+
+// Tests if the substring of str that begins at pos starts with substr. If so,
+// returns true and advances pos by the length of substr.
+bool Consume(const std::string& str,
+ base::StringPiece substr,
+ std::string::size_type* pos) {
+ if (!str.compare(*pos, substr.length(), substr.data())) {
+ *pos += substr.length();
+ return true;
+ }
+ return false;
+}
+
+const char kRoboto[] = "roboto";
+const char kOpenSans[] = "opensans";
+
+const char kRobotoHistogramName[] = "WebFont.HttpCacheStatus_roboto";
+const char kOpenSansHistogramName[] = "WebFont.HttpCacheStatus_opensans";
+const char kOthersHistogramName[] = "WebFont.HttpCacheStatus_others";
+
+void RecordCacheEvent(net::HttpResponseInfo::CacheEntryStatus cache_status,
+ const std::string& histogram_name) {
+ CACHE_HISTOGRAM_ENUMERATION(
+ histogram_name, cache_status,
+ net::HttpResponseInfo::CacheEntryStatus::ENTRY_MAX);
+}
+
+} // namespace
+
+namespace net {
+namespace web_fonts_histogram {
+
+// Check if |key| is a URL for a font resource of Google Fonts.
+// If so, record the WebFont.HttpCacheStatus histogram suffixed by "roboto",
+// "opensans" or "others".
+void MaybeRecordCacheStatus(HttpResponseInfo::CacheEntryStatus cache_status,
+ const std::string& key) {
+ std::string::size_type pos = 0;
+ if (Consume(key, "https://", &pos) || Consume(key, "http://", &pos)) {
+ if (Consume(key, "themes.googleusercontent.com/static/fonts/", &pos) ||
+ Consume(key, "ssl.gstatic.com/fonts/", &pos) ||
+ Consume(key, "fonts.gstatic.com/s/", &pos)) {
+ if (Consume(key, kRoboto, &pos)) {
+ RecordCacheEvent(cache_status, kRobotoHistogramName);
+ } else if (Consume(key, kOpenSans, &pos)) {
+ RecordCacheEvent(cache_status, kOpenSansHistogramName);
+ } else {
+ RecordCacheEvent(cache_status, kOthersHistogramName);
+ }
+ }
+ }
+}
+
+} // namespace web_fonts_histogram
+} // namespace net
diff --git a/chromium/net/http/webfonts_histogram.h b/chromium/net/http/webfonts_histogram.h
new file mode 100644
index 00000000000..9da1fd3bac6
--- /dev/null
+++ b/chromium/net/http/webfonts_histogram.h
@@ -0,0 +1,25 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NET_HTTP_WEBFONTS_HISTOGRAM_H_
+#define NET_HTTP_WEBFONTS_HISTOGRAM_H_
+
+#include <string>
+
+#include "net/http/http_response_info.h"
+
+namespace net {
+
+// A collection of functions for histogram reporting about web fonts.
+namespace web_fonts_histogram {
+
+NET_EXPORT void MaybeRecordCacheStatus(
+ HttpResponseInfo::CacheEntryStatus cache_status,
+ const std::string& key);
+
+} // namespace web_fonts_histogram
+
+} // namespace net
+
+#endif // NET_HTTP_WEBFONTS_HISTOGRAM_H_
diff --git a/chromium/net/http/webfonts_histogram_unittest.cc b/chromium/net/http/webfonts_histogram_unittest.cc
new file mode 100644
index 00000000000..d14481c30ad
--- /dev/null
+++ b/chromium/net/http/webfonts_histogram_unittest.cc
@@ -0,0 +1,138 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/http/webfonts_histogram.h"
+
+#include "base/strings/strcat.h"
+#include "base/test/metrics/histogram_tester.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace net {
+namespace web_fonts_histogram {
+
+namespace {
+
+const char kRobotoHistogramName[] = "WebFont.HttpCacheStatus_roboto";
+const char kOpenSansHistogramName[] = "WebFont.HttpCacheStatus_opensans";
+const char kOthersHistogramName[] = "WebFont.HttpCacheStatus_others";
+
+const char kHttps[] = "https://";
+const char kHttp[] = "http://";
+
+const char kPattern1[] = "themes.googleusercontent.com/static/fonts/";
+const char kPattern2[] = "ssl.gstatic.com/fonts/";
+const char kPattern3[] = "fonts.gstatic.com/s/";
+
+const char kRoboto[] = "roboto";
+const char kOpenSans[] = "opensans";
+
+} // namespace
+
+TEST(WebfontsHistogramTest, EmptyKey_NoRecord) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED, "");
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, RecordRoboto) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED,
+ base::StrCat({kHttps, kPattern1, kRoboto}));
+ histograms.ExpectUniqueSample(kRobotoHistogramName, 3 /* ENTRY_USED */, 1);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, RecordOpenSans) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_NOT_IN_CACHE,
+ base::StrCat({kHttp, kPattern2, kOpenSans}));
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectUniqueSample(kOpenSansHistogramName,
+ 2 /* ENTRY_NOT_IN_CACHE */, 1);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, EmptyFont_RecordOthers) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_CANT_CONDITIONALIZE,
+ base::StrCat({kHttps, kPattern3}));
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectUniqueSample(kOthersHistogramName,
+ 6 /* ENTRY_CANT_CONDITIONALIZE */, 1);
+}
+
+TEST(WebfontsHistogramTest, ArbitraryFont_RecordOthers) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_OTHER,
+ base::StrCat({kHttps, kPattern2, "abc"}));
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectUniqueSample(kOthersHistogramName, 1 /* ENTRY_OTHER */, 1);
+}
+
+TEST(WebfontsHistogramTest, WithSuffix_Record) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED,
+ base::StrCat({kHttps, kPattern1, kRoboto, "abc"}));
+ histograms.ExpectUniqueSample(kRobotoHistogramName, 3 /* ENTRY_USED */, 1);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, WithPrefix_NoRecord) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED,
+ base::StrCat({"abc", kHttps, kPattern1, kRoboto}));
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, OtherProtocol_NoRecord) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_OTHER,
+ base::StrCat({"ftp://", kPattern1, kRoboto}));
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, OtherPattern_NoRecord) {
+ base::HistogramTester histograms;
+ MaybeRecordCacheStatus(
+ HttpResponseInfo::ENTRY_USED,
+ base::StrCat({kHttps, "fonts.gstatic.com//s/", kRoboto}));
+ histograms.ExpectTotalCount(kRobotoHistogramName, 0);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 0);
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+TEST(WebfontsHistogramTest, TwoRobotoSameBucket_TwoOpenSansDifferentBucket) {
+ base::HistogramTester histograms;
+
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED,
+ base::StrCat({kHttps, kPattern2, kRoboto}));
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED,
+ base::StrCat({kHttp, kPattern3, kRoboto}));
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_USED,
+ base::StrCat({kHttps, kPattern2, kOpenSans}));
+ MaybeRecordCacheStatus(HttpResponseInfo::ENTRY_OTHER,
+ base::StrCat({kHttp, kPattern3, kOpenSans}));
+
+ histograms.ExpectUniqueSample(kRobotoHistogramName, 3 /* ENTRY_USED */, 2);
+ histograms.ExpectTotalCount(kRobotoHistogramName, 2);
+
+ histograms.ExpectBucketCount(kOpenSansHistogramName, 3 /* ENTRY_USED */, 1);
+ histograms.ExpectBucketCount(kOpenSansHistogramName, 1 /* ENTRY_OTHER */, 1);
+ histograms.ExpectTotalCount(kOpenSansHistogramName, 2);
+
+ histograms.ExpectTotalCount(kOthersHistogramName, 0);
+}
+
+} // namespace web_fonts_histogram
+} // namespace net